From 25ba65016178aae88c5b1f2cd5cab45805f5b7a9 Mon Sep 17 00:00:00 2001 From: ThaUnknown <6506529+ThaUnknown@users.noreply.github.com> Date: Tue, 6 Aug 2024 00:45:01 +0200 Subject: [PATCH] fix: fake update for macos, simply open miru download page because macos sucks --- .github/workflows/main.yml | 5 ++ electron/buildResources/notarize.js | 30 ------- electron/package.json | 9 ++- electron/src/main/updater.js | 3 +- pnpm-lock.yaml | 119 +++++++++++++++------------- 5 files changed, 75 insertions(+), 91 deletions(-) delete mode 100644 electron/buildResources/notarize.js diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 834fda3..6cfa182 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -39,4 +39,9 @@ jobs: - name: Build and Publish env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # CSC_LINK: ${{ secrets.APPLE_SIGNING_CERT }} + # API_KEY: ${{ secrets.APPLE_API_KEY }} + # APPLE_API_KEY: apple.p8 + # APPLE_API_KEY_ID: ${{ secrets.APPLE_API_KEY_ID }} + # APPLE_API_ISSUER: ${{ secrets.APPLE_API_ISSUER }} run: cd electron && npm run publish diff --git a/electron/buildResources/notarize.js b/electron/buildResources/notarize.js deleted file mode 100644 index c4c9089..0000000 --- a/electron/buildResources/notarize.js +++ /dev/null @@ -1,30 +0,0 @@ -const { notarize } = require('@electron/notarize') -const path = require('path') - -exports.default = async function notarizing (context) { - if (context.electronPlatformName !== 'darwin' || process.env.CSC_IDENTITY_AUTO_DISCOVERY === 'false') { - console.log('Skipping notarization') - return - } - console.log('Notarizing...') - - const appBundleId = context.packager.appInfo.info._configuration.appId - const appName = context.packager.appInfo.productFilename - const appPath = path.normalize(path.join(context.appOutDir, `${appName}.app`)) - const appleId = process.env.APPLE_ID - const appleIdPassword = process.env.APPLE_ID_PASSWORD - if (!appleId) { - console.warn('Not notarizing: Missing APPLE_ID environment variable') - return - } - if (!appleIdPassword) { - console.warn('Not notarizing: Missing APPLE_ID_PASSWORD environment variable') - return - } - return notarize({ - appBundleId, - appPath, - appleId, - appleIdPassword - }) -} diff --git a/electron/package.json b/electron/package.json index b3cd6a2..7b0d796 100644 --- a/electron/package.json +++ b/electron/package.json @@ -1,6 +1,6 @@ { "name": "Miru", - "version": "5.2.12", + "version": "5.2.14", "private": true, "author": "ThaUnknown_ ", "description": "Stream anime torrents, real-time with no waiting for downloads.", @@ -20,9 +20,9 @@ "discord-rpc": "4.0.1", "electron": "29.1.4", "electron-builder": "^24.13.3", - "electron-log": "^5.1.5", + "electron-log": "^5.1.7", "electron-updater": "^6.2.1", - "webpack-merge": "^5.10.0" + "webpack-merge": "^6.0.1" }, "dependencies": { "@paymoapp/electron-shutdown-handler": "^1.1.2", @@ -61,7 +61,6 @@ "repo": "miru" } ], - "afterSign": "./buildResources/notarize.js", "appId": "com.github.thaunknown.miru", "productName": "Miru", "files": [ @@ -73,8 +72,10 @@ "defaultArch": "universal", "singleArchFiles": "node_modules/+(register-scheme|utp-native|fs-native-extensions)/**", "category": "public.app-category.video", + "darkModeSupport": true, "icon": "buildResources/icon.icns", "hardenedRuntime": true, + "notarize": false, "entitlements": "buildResources/entitlements.mac.plist", "target": [ { diff --git a/electron/src/main/updater.js b/electron/src/main/updater.js index 429672d..aa4ed7f 100644 --- a/electron/src/main/updater.js +++ b/electron/src/main/updater.js @@ -1,6 +1,6 @@ import log from 'electron-log' import { autoUpdater } from 'electron-updater' -import { ipcMain } from 'electron' +import { ipcMain, shell } from 'electron' log.initialize({ spyRendererConsole: true }) log.transports.file.level = 'info' @@ -37,6 +37,7 @@ export default class Updater { this.torrentWindow.close() autoUpdater.quitAndInstall(true, forceRunAfter) }) + if (process.platform === 'darwin') shell.openExternal('https://miru.watch/download') this.hasUpdate = false return true } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bd6b5ef..38c7622 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -222,14 +222,14 @@ importers: specifier: ^24.13.3 version: 24.13.3(electron-builder-squirrel-windows@24.13.3) electron-log: - specifier: ^5.1.5 - version: 5.1.5 + specifier: ^5.1.7 + version: 5.1.7 electron-updater: specifier: ^6.2.1 version: 6.2.1 webpack-merge: - specifier: ^5.10.0 - version: 5.10.0 + specifier: ^6.0.1 + version: 6.0.1 web: dependencies: @@ -351,7 +351,7 @@ packages: '@ionic/utils-subprocess': 2.1.14 '@ionic/utils-terminal': 2.3.5 commander: 9.5.0 - debug: 4.3.4 + debug: 4.3.6 env-paths: 2.2.1 kleur: 4.1.5 native-run: 2.0.1 @@ -361,7 +361,7 @@ packages: rimraf: 4.4.1 semver: 7.6.3 tar: 6.2.1 - tslib: 2.6.2 + tslib: 2.6.3 xml2js: 0.5.0 transitivePeerDependencies: - supports-color @@ -489,7 +489,7 @@ packages: resolution: {integrity: sha512-zfayxCe19euNwRycCty1C7lF7snk9YwfRpB5M8GLr1a4ICH63znxaPNAubrMvj0yDvVozqfgsdYpXVUnpWBDpg==} engines: {node: '>= 10.0.0'} dependencies: - debug: 4.3.5 + debug: 4.3.6 fs-extra: 9.1.0 promise-retry: 2.0.1 transitivePeerDependencies: @@ -837,8 +837,8 @@ packages: resolution: {integrity: sha512-0JZ1Zkp3wURnv8oq6Qt7fMPo5MpjbLoUoa9Bu2Q4PJuSDWM8H8gwF3dQO7VTeUj3/0o1IB1wGkFWZZYgUXZMUg==} engines: {node: '>=16.0.0'} dependencies: - debug: 4.3.4 - tslib: 2.6.2 + debug: 4.3.6 + tslib: 2.6.3 transitivePeerDependencies: - supports-color dev: true @@ -860,9 +860,9 @@ packages: engines: {node: '>=16.0.0'} dependencies: '@types/fs-extra': 8.1.5 - debug: 4.3.4 + debug: 4.3.6 fs-extra: 9.1.0 - tslib: 2.6.2 + tslib: 2.6.3 transitivePeerDependencies: - supports-color dev: true @@ -907,10 +907,10 @@ packages: dependencies: '@ionic/utils-object': 2.1.6 '@ionic/utils-terminal': 2.3.4 - debug: 4.3.4 + debug: 4.3.6 signal-exit: 3.0.7 tree-kill: 1.2.2 - tslib: 2.6.2 + tslib: 2.6.3 transitivePeerDependencies: - supports-color dev: true @@ -943,8 +943,8 @@ packages: resolution: {integrity: sha512-4+Kitey1lTA1yGtnigeYNhV/0tggI3lWBMjC7tBs1K9GXa/q7q4CtOISppdh8QgtOhrhAXS2Igp8rbko/Cj+lA==} engines: {node: '>=16.0.0'} dependencies: - debug: 4.3.4 - tslib: 2.6.2 + debug: 4.3.6 + tslib: 2.6.3 transitivePeerDependencies: - supports-color dev: true @@ -975,8 +975,8 @@ packages: '@ionic/utils-stream': 3.1.6 '@ionic/utils-terminal': 2.3.4 cross-spawn: 7.0.3 - debug: 4.3.4 - tslib: 2.6.2 + debug: 4.3.6 + tslib: 2.6.3 transitivePeerDependencies: - supports-color dev: true @@ -1003,12 +1003,12 @@ packages: engines: {node: '>=16.0.0'} dependencies: '@types/slice-ansi': 4.0.0 - debug: 4.3.4 + debug: 4.3.6 signal-exit: 3.0.7 slice-ansi: 4.0.0 string-width: 4.2.3 strip-ansi: 6.0.1 - tslib: 2.6.2 + tslib: 2.6.3 untildify: 4.0.0 wrap-ansi: 7.0.0 transitivePeerDependencies: @@ -1312,7 +1312,7 @@ packages: dependencies: chrome-dgram: 3.0.6 cross-fetch-ponyfill: 1.0.3 - debug: 4.3.5 + debug: 4.3.6 default-gateway: 6.0.3 unordered-array-remove: 1.0.2 xml2js: 0.6.2 @@ -1383,7 +1383,7 @@ packages: vite: ^5.0.0 dependencies: '@sveltejs/vite-plugin-svelte': 3.0.2(svelte@4.2.12)(vite@5.1.5) - debug: 4.3.6 + debug: 4.3.4 svelte: 4.2.12 vite: 5.1.5 transitivePeerDependencies: @@ -1431,7 +1431,7 @@ packages: /@thaunknown/simple-peer@10.0.9: resolution: {integrity: sha512-oS+iZWrMp/kd0pygyCAoZYYWoZCshKbjFLRuyRH58zYJ/Yyjzksgwj1g+m6wHY7pznl2+cKXttuLDD9Td4QXWA==} dependencies: - debug: 4.3.5 + debug: 4.3.6 err-code: 3.0.1 streamx: 2.18.0 uint8-util: 2.2.5 @@ -1456,7 +1456,7 @@ packages: /@thaunknown/simple-websocket@9.1.3(bufferutil@4.0.8)(utf-8-validate@5.0.10): resolution: {integrity: sha512-pf/FCJsgWtLJiJmIpiSI7acOZVq3bIQCpnNo222UFc8Ph1lOUOTpe6LoYhhiOSKB9GUaWJEVUtZ+sK1/aBgU5Q==} dependencies: - debug: 4.3.5 + debug: 4.3.6 queue-microtask: 1.2.3 streamx: 2.18.0 uint8-util: 2.2.5 @@ -1470,7 +1470,7 @@ packages: /@thaunknown/simple-websocket@9.1.3(bufferutil@4.0.8)(utf-8-validate@6.0.4): resolution: {integrity: sha512-pf/FCJsgWtLJiJmIpiSI7acOZVq3bIQCpnNo222UFc8Ph1lOUOTpe6LoYhhiOSKB9GUaWJEVUtZ+sK1/aBgU5Q==} dependencies: - debug: 4.3.5 + debug: 4.3.6 queue-microtask: 1.2.3 streamx: 2.18.0 uint8-util: 2.2.5 @@ -1561,7 +1561,7 @@ packages: /@types/bonjour@3.5.13: resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} dependencies: - '@types/node': 20.14.2 + '@types/node': 22.1.0 /@types/cacheable-request@6.0.3: resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} @@ -1576,7 +1576,7 @@ packages: resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} dependencies: '@types/express-serve-static-core': 4.19.1 - '@types/node': 20.14.2 + '@types/node': 22.1.0 /@types/connect@3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} @@ -1681,10 +1681,11 @@ packages: dependencies: '@types/node': 22.1.0 - /@types/node@20.14.2: - resolution: {integrity: sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==} + /@types/node@20.14.14: + resolution: {integrity: sha512-d64f00982fS9YoOgJkAMolK7MN8Iq3TDdVjchbYHdEmjth/DHowx82GnoA+tVUAN+7vxfYUgAzi+JXbKNd2SDQ==} dependencies: undici-types: 5.26.5 + dev: true /@types/node@22.1.0: resolution: {integrity: sha512-AOmuRF0R2/5j1knA3c6G3HOk523Ga+l+ZXltX8SF1+5oqcXijjfTd8fY3XRZqSihEu9XhtQnKYLmkFaoxgsJHw==} @@ -1738,7 +1739,7 @@ packages: resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} dependencies: '@types/http-errors': 2.0.4 - '@types/node': 20.14.2 + '@types/node': 22.1.0 '@types/send': 0.17.4 /@types/slice-ansi@4.0.0: @@ -1748,7 +1749,7 @@ packages: /@types/sockjs@0.3.36: resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} dependencies: - '@types/node': 20.14.2 + '@types/node': 22.1.0 /@types/verror@1.10.10: resolution: {integrity: sha512-l4MM0Jppn18hb9xmM6wwD1uTdShpf9Pn80aXTStnK1C94gtPvJcV2FrDmbOQUAQfJ1cKZHktkQUDwEqaAKXMMg==} @@ -1759,7 +1760,7 @@ packages: /@types/ws@8.5.10: resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} dependencies: - '@types/node': 20.14.2 + '@types/node': 22.1.0 /@types/yauzl@2.10.3: resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} @@ -2553,7 +2554,7 @@ packages: engines: {node: '>=12.20.0'} dependencies: bencode: 4.0.0 - debug: 4.3.5 + debug: 4.3.6 k-bucket: 5.1.0 k-rpc: 5.1.0 last-one-wins: 1.0.4 @@ -2569,7 +2570,7 @@ packages: engines: {node: '>=12.20.0'} dependencies: chrome-dgram: 3.0.6 - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color dev: false @@ -2584,7 +2585,7 @@ packages: dependencies: bencode: 4.0.0 bitfield: 4.2.0 - debug: 4.3.5 + debug: 4.3.6 rc4: 0.1.5 streamx: 2.18.0 throughput: 1.0.1 @@ -2640,7 +2641,7 @@ packages: chrome-dgram: 3.0.6 compact2string: 1.4.1 cross-fetch-ponyfill: 1.0.3 - debug: 4.3.5 + debug: 4.3.6 ip: 2.0.1 lru: 3.1.0 minimist: 1.2.8 @@ -2775,7 +2776,7 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001647 + caniuse-lite: 1.0.30001649 electron-to-chromium: 1.5.4 node-releases: 2.0.18 update-browserslist-db: 1.1.0(browserslist@4.23.3) @@ -2928,8 +2929,8 @@ packages: /caniuse-lite@1.0.30001624: resolution: {integrity: sha512-0dWnQG87UevOCPYaOR49CBcLBwoZLpws+k6W37nLjWUhumP1Isusj0p2u+3KhjNloRWK9OKMgjBBzPujQHw4nA==} - /caniuse-lite@1.0.30001647: - resolution: {integrity: sha512-n83xdNiyeNcHpzWY+1aFbqCK7LuLfBricc4+alSQL2Xb6OR3XpnQAmlDG+pQcdTfiHRuLcQ96VOfrPSGiNJYSg==} + /caniuse-lite@1.0.30001649: + resolution: {integrity: sha512-fJegqZZ0ZX8HOWr6rcafGr72+xcgJKI9oWfDW5DrD7ExUtgZC7a7R7ZYmZqplh7XDocFdGeIFn7roAxhOeYrPQ==} dev: true /capacitor-plugin-safe-area@2.0.6(@capacitor/core@6.1.1): @@ -3250,7 +3251,7 @@ packages: resolution: {integrity: sha512-6boGVaglwblBgJqGyxm4+xCmEGcWgnWHSWHY5jad58awQhB6gftq0G8HbzU39YqCIYHMLAiL1yjwiZ36m/CL8w==} dependencies: glob: 10.4.5 - typescript: 5.4.5 + typescript: 5.5.4 dev: true /connect-history-api-fallback@2.0.0: @@ -3715,6 +3716,7 @@ packages: optional: true dependencies: ms: 2.1.2 + dev: false /debug@4.3.6: resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} @@ -4047,7 +4049,7 @@ packages: engines: {node: '>=0.10.0'} hasBin: true dependencies: - jake: 10.9.1 + jake: 10.9.2 dev: true /electron-builder-squirrel-windows@24.13.3(dmg-builder@24.13.3): @@ -4083,8 +4085,8 @@ packages: - supports-color dev: true - /electron-log@5.1.5: - resolution: {integrity: sha512-vuq10faUAxRbILgQx7yHoMObKZDEfj7hMSZrJPsVrDNeCpV/HN11dU7QuY4UDUe055pzBxhSCB3m0+6D3Aktjw==} + /electron-log@5.1.7: + resolution: {integrity: sha512-/PjrS9zGkrZCDTHt6IgNE3FeciBbi4wd7U76NG9jAoNXF99E9IJdvBkqvaUJ1NjLojYDKs0kTvn9YhKy1/Zi+Q==} engines: {node: '>= 14'} dev: true @@ -4118,7 +4120,7 @@ packages: lazy-val: 1.0.5 lodash.escaperegexp: 4.1.2 lodash.isequal: 4.5.0 - semver: 7.6.2 + semver: 7.6.3 tiny-typed-emitter: 2.1.0 transitivePeerDependencies: - supports-color @@ -4131,7 +4133,7 @@ packages: requiresBuild: true dependencies: '@electron/get': 2.0.3 - '@types/node': 20.14.2 + '@types/node': 20.14.14 extract-zip: 2.0.1 transitivePeerDependencies: - supports-color @@ -6004,8 +6006,8 @@ packages: optionalDependencies: '@pkgjs/parseargs': 0.11.0 - /jake@10.9.1: - resolution: {integrity: sha512-61btcOHNnLnsOdtLgA5efqQWjnSi/vow5HbI7HMdKKWqvrKR1bLK3BPlJn9gcSaP2ewuamUSMB5XEy76KUIS2w==} + /jake@10.9.2: + resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} engines: {node: '>=10'} hasBin: true dependencies: @@ -6347,7 +6349,7 @@ packages: resolution: {integrity: sha512-GhiKG7CGTXzOQq56tIx40Ae26EbrgBq1owuuPqgCTaJDQYO1qW5G+YGaurOLx7s+Aaeta8MputrVFDr0kuiogg==} engines: {node: '>=12.20.0'} dependencies: - debug: 4.3.5 + debug: 4.3.6 unordered-array-remove: 1.0.2 transitivePeerDependencies: - supports-color @@ -8024,6 +8026,7 @@ packages: resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} engines: {node: '>=10'} hasBin: true + dev: false /semver@7.6.3: resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} @@ -9014,7 +9017,7 @@ packages: bittorrent-dht: 11.0.6 bittorrent-lsd: 2.0.0 bittorrent-tracker: 11.1.1 - debug: 4.3.5 + debug: 4.3.6 run-parallel: 1.2.0 transitivePeerDependencies: - supports-color @@ -9228,12 +9231,6 @@ packages: hasBin: true dev: true - /typescript@5.4.5: - resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} - engines: {node: '>=14.17'} - hasBin: true - dev: true - /typescript@5.5.4: resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} engines: {node: '>=14.17'} @@ -9267,6 +9264,7 @@ packages: /undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + dev: true /undici-types@6.13.0: resolution: {integrity: sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==} @@ -9342,7 +9340,7 @@ packages: dependencies: bencode: 4.0.0 bitfield: 4.2.0 - debug: 4.3.5 + debug: 4.3.6 uint8-util: 2.2.5 transitivePeerDependencies: - supports-color @@ -9673,6 +9671,15 @@ packages: flat: 5.0.2 wildcard: 2.0.1 + /webpack-merge@6.0.1: + resolution: {integrity: sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==} + engines: {node: '>=18.0.0'} + dependencies: + clone-deep: 4.0.1 + flat: 5.0.2 + wildcard: 2.0.1 + dev: true + /webpack-sources@3.2.3: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} @@ -9874,7 +9881,7 @@ packages: /wide-align@1.1.5: resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} dependencies: - string-width: 1.0.2 + string-width: 4.2.3 dev: true /wildcard@2.0.1: