diff --git a/.gitignore b/.gitignore index 9f7558f..b4f63ed 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ /node_modules /out /dist +tests/screenshot +tests/tracing .DS_Store diff --git a/README.md b/README.md index 495a0a2..3588a12 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,7 @@ For publish purpose: For test purpose: - `npm run test`: test the app +- `npm run test:show-trace`: open the saved testing trace using [Playwright CLI](https://playwright.dev/docs/trace-viewer) ## Notes diff --git a/package-lock.json b/package-lock.json index d5c977d..b8ad8bc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { "name": "memento-svelte-electron-typescript", - "version": "0.0.14", + "version": "0.0.15", "lockfileVersion": 2, "requires": true, "packages": { "": { - "version": "0.0.14", + "version": "0.0.15", "license": "MIT", "dependencies": { "@el3um4s/to-try": "^0.0.2", @@ -15,31 +15,31 @@ }, "devDependencies": { "@playwright/test": "^1.15.2", - "@rollup/plugin-commonjs": "^20.0.0", - "@rollup/plugin-node-resolve": "^13.0.5", - "@rollup/plugin-typescript": "^8.2.5", + "@rollup/plugin-commonjs": "^21.0.0", + "@rollup/plugin-node-resolve": "^13.0.6", + "@rollup/plugin-typescript": "^8.3.0", "@tsconfig/svelte": "^2.0.1", - "autoprefixer": "^10.3.6", - "electron": "^15.0.0", - "electron-builder": "^22.11.7", - "nodemon": "^2.0.13", + "autoprefixer": "^10.3.7", + "electron": "^15.2.0", + "electron-builder": "^22.13.1", + "nodemon": "^2.0.14", "playwright": "^1.15.2", - "postcss": "^8.3.8", + "postcss": "^8.3.9", "postcss-load-config": "^3.1.0", - "rollup": "^2.57.0", + "rollup": "^2.58.0", "rollup-plugin-copy": "^3.4.0", "rollup-plugin-css-only": "^3.1.0", "rollup-plugin-livereload": "^2.0.5", "rollup-plugin-postcss": "^4.0.1", "rollup-plugin-svelte": "^7.1.0", "rollup-plugin-terser": "^7.0.2", - "semver": "^6.3.0", - "svelte": "^3.43.0", - "svelte-check": "^2.2.6", - "svelte-preprocess": "^4.9.5", - "tailwindcss": "^2.2.16", + "semver": "^7.3.5", + "svelte": "^3.44.0", + "svelte-check": "^2.2.7", + "svelte-preprocess": "^4.9.8", + "tailwindcss": "^2.2.17", "tslib": "^2.3.1", - "typescript": "^4.4.3" + "typescript": "^4.4.4" } }, "node_modules/@babel/code-frame": { @@ -93,6 +93,15 @@ "url": "https://opencollective.com/babel" } }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/core/node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -155,6 +164,15 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/helper-create-class-features-plugin": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.4.tgz", @@ -897,6 +915,15 @@ "global-tunnel-ng": "^2.7.1" } }, + "node_modules/@electron/get/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@electron/universal": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-1.0.5.tgz", @@ -1228,9 +1255,9 @@ "integrity": "sha512-88p7+M0QGxKpmnkfXjS4V26AnoC/eiqZutE8GLdaI5X12NY75bXSdTY9NkmYb2Xyk1O+MmkuO6Frmsj84V6I8Q==" }, "node_modules/@rollup/plugin-commonjs": { - "version": "20.0.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-20.0.0.tgz", - "integrity": "sha512-5K0g5W2Ol8hAcTHqcTBHiA7M58tfmYi1o9KxeJuuRNpGaTa5iLjcyemBitCBcKXaHamOBBEH2dGom6v6Unmqjg==", + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-21.0.0.tgz", + "integrity": "sha512-XDQimjHl0kNotAV5lLo34XoygaI0teqiKGJ100B3iCU8+15YscJPeqk2KqkqD3NIe1H8ZTUo5lYjUFZyEgASTw==", "dev": true, "dependencies": { "@rollup/pluginutils": "^3.1.0", @@ -1249,9 +1276,9 @@ } }, "node_modules/@rollup/plugin-node-resolve": { - "version": "13.0.5", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.0.5.tgz", - "integrity": "sha512-mVaw6uxtvuGx/XCI4qBQXsDZJUfyx5vp39iE0J/7Hd6wDhEbjHr6aES7Nr9yWbuE0BY+oKp6N7Bq6jX5NCGNmQ==", + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.0.6.tgz", + "integrity": "sha512-sFsPDMPd4gMqnh2gS0uIxELnoRUp5kBl5knxD2EO0778G1oOJv4G1vyT2cpWz75OU2jDVcXhjVUuTAczGyFNKA==", "dev": true, "dependencies": { "@rollup/pluginutils": "^3.1.0", @@ -1269,9 +1296,9 @@ } }, "node_modules/@rollup/plugin-typescript": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-8.2.5.tgz", - "integrity": "sha512-QL/LvDol/PAGB2O0S7/+q2HpSUNodpw7z6nGn9BfoVCPOZ0r4EALrojFU29Bkoi2Hr2jgTocTejJ5GGWZfOxbQ==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-8.3.0.tgz", + "integrity": "sha512-I5FpSvLbtAdwJ+naznv+B4sjXZUcIvLLceYpITAn7wAP8W0wqc5noLdGIp9HGVntNhRWXctwPYrSSFQxtl0FPA==", "dev": true, "dependencies": { "@rollup/pluginutils": "^3.1.0", @@ -1481,9 +1508,9 @@ "optional": true }, "node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "version": "17.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.4.tgz", + "integrity": "sha512-D/wihO9WFYqwsmJI0e0qS+U09wIQtYRSBJlXWjTFGjouEuOCy0BU4N/ZK5utb00S5lW/9LO7vOpvGDd8M06NvQ==", "dev": true, "dependencies": { "@types/yargs-parser": "*" @@ -1674,15 +1701,15 @@ } }, "node_modules/app-builder-bin": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.5.13.tgz", - "integrity": "sha512-ighVe9G+bT1ENGdp9ecO1P+94vv/f+FUwaI+XkNzeg9bYF8Oi3BQ+mJuxS00UgyHs8luuOzjzC+qnAtdb43Mpg==", + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.7.1.tgz", + "integrity": "sha512-ql93vEUq6WsstGXD+SBLSIQw6SNnhbDEM0swzgugytMxLp3rT24Ag/jcC80ZHxiPRTdew1niuR7P3/FCrDqIjw==", "dev": true }, "node_modules/app-builder-lib": { - "version": "22.11.7", - "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.11.7.tgz", - "integrity": "sha512-pS9/cR4/TnNZVAHZECiSvvwTBzbwblj7KBBZkMKDG57nibq0I1XY8zAaYeHFdlYTyrRcz9JUXbAqJKezya7UFQ==", + "version": "22.13.1", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.13.1.tgz", + "integrity": "sha512-TsUe7gCdH1cnSknUcqwVRAAxsFxsxcU/BJvnKR8ASzjaZtePW7MU+AEaDVDUURycgYxQ9XeymGjmuQGS32jcbw==", "dev": true, "dependencies": { "@develar/schema-utils": "~2.6.5", @@ -1691,12 +1718,13 @@ "7zip-bin": "~5.1.1", "async-exit-hook": "^2.0.1", "bluebird-lst": "^1.0.9", - "builder-util": "22.11.7", - "builder-util-runtime": "8.7.7", + "builder-util": "22.13.1", + "builder-util-runtime": "8.8.1", "chromium-pickle-js": "^0.2.0", "debug": "^4.3.2", "ejs": "^3.1.6", - "electron-publish": "22.11.7", + "electron-osx-sign": "^0.5.0", + "electron-publish": "22.13.1", "fs-extra": "^10.0.0", "hosted-git-info": "^4.0.2", "is-ci": "^3.0.0", @@ -1739,21 +1767,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/app-builder-lib/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/app-builder-lib/node_modules/universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -1839,16 +1852,16 @@ } }, "node_modules/autoprefixer": { - "version": "10.3.6", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.3.6.tgz", - "integrity": "sha512-3bDjTfF0MfZntwVCSd18XAT2Zndufh3Mep+mafbzdIQEeWbncVRUVDjH8/EPANV9Hq40seJ24QcYAyhUsFz7gQ==", + "version": "10.3.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.3.7.tgz", + "integrity": "sha512-EmGpu0nnQVmMhX8ROoJ7Mx8mKYPlcUHuxkwrRYEYMz85lu7H09v8w6R1P0JPdn/hKU32GjpLBFEOuIlDWCRWvg==", "dev": true, "dependencies": { - "browserslist": "^4.17.1", - "caniuse-lite": "^1.0.30001260", + "browserslist": "^4.17.3", + "caniuse-lite": "^1.0.30001264", "fraction.js": "^4.1.1", - "nanocolors": "^0.2.8", "normalize-range": "^0.1.2", + "picocolors": "^0.2.1", "postcss-value-parser": "^4.1.0" }, "bin": { @@ -1898,8 +1911,7 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "optional": true + ] }, "node_modules/big.js": { "version": "5.2.2", @@ -2052,16 +2064,16 @@ } }, "node_modules/browserslist": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.1.tgz", - "integrity": "sha512-aLD0ZMDSnF4lUt4ZDNgqi5BUn9BZ7YdQdI/cYlILrhdSSZJLU9aNZoD5/NBmM4SK34APB2e83MOsRt1EnkuyaQ==", + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.4.tgz", + "integrity": "sha512-Zg7RpbZpIJRW3am9Lyckue7PLytvVxxhJj1CaJVlCWENsGEAOlnlt8X0ZxGRPp7Bt9o8tIRM5SEXy4BCPMJjLQ==", "dev": true, "dependencies": { - "caniuse-lite": "^1.0.30001259", - "electron-to-chromium": "^1.3.846", + "caniuse-lite": "^1.0.30001265", + "electron-to-chromium": "^1.3.867", "escalade": "^3.1.1", - "nanocolors": "^0.1.5", - "node-releases": "^1.1.76" + "node-releases": "^2.0.0", + "picocolors": "^1.0.0" }, "bin": { "browserslist": "cli.js" @@ -2074,10 +2086,10 @@ "url": "https://opencollective.com/browserslist" } }, - "node_modules/browserslist/node_modules/nanocolors": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.1.12.tgz", - "integrity": "sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ==", + "node_modules/browserslist/node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", "dev": true }, "node_modules/buffer": { @@ -2105,6 +2117,22 @@ "ieee754": "^1.1.13" } }, + "node_modules/buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dev": true, + "dependencies": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "node_modules/buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "dev": true + }, "node_modules/buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", @@ -2123,6 +2151,12 @@ "node": ">=0.4.0" } }, + "node_modules/buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", + "dev": true + }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -2130,18 +2164,19 @@ "dev": true }, "node_modules/builder-util": { - "version": "22.11.7", - "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.11.7.tgz", - "integrity": "sha512-ihqUe5ey82LM9qqQe0/oIcaSm9w+B9UjcsWJZxJliTBsbU+sErOpDFpHW+sim0veiTF/EIcGUh9HoduWw+l9FA==", + "version": "22.13.1", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.13.1.tgz", + "integrity": "sha512-gMdoW9aQbWYxuQ4k4jT4An1BTo/hWzvsdv3pwNz18iNYnqn9j+xMllQOg9CHgfQYKSUd8VuMsZnbCvLO4NltYw==", "dev": true, "dependencies": { - "@types/debug": "^4.1.5", + "@types/debug": "^4.1.6", "@types/fs-extra": "^9.0.11", "7zip-bin": "~5.1.1", - "app-builder-bin": "3.5.13", + "app-builder-bin": "3.7.1", "bluebird-lst": "^1.0.9", - "builder-util-runtime": "8.7.7", + "builder-util-runtime": "8.8.1", "chalk": "^4.1.1", + "cross-spawn": "^7.0.3", "debug": "^4.3.2", "fs-extra": "^10.0.0", "is-ci": "^3.0.0", @@ -2152,9 +2187,9 @@ } }, "node_modules/builder-util-runtime": { - "version": "8.7.7", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.7.tgz", - "integrity": "sha512-RUfoXzVrmFFI0K/Oft0CtP1LpTIOlBeLJatt5DePTI0KlxE156am4SGUpqtbbdqZNm++LkV9mX4olBDcXyGPow==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.8.1.tgz", + "integrity": "sha512-xHxAzdsJmMV8m/N+INzYUKfyJASeKyKHnA1uGkY8Y8JKLI/c4BG+If+L0If2YETv96CiRASkvd02tIt2pvrchQ==", "dev": true, "dependencies": { "debug": "^4.3.2", @@ -2318,24 +2353,15 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001260", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001260.tgz", - "integrity": "sha512-Fhjc/k8725ItmrvW5QomzxLeojewxvqiYCKeFcfFEhut28IVLdpHU19dneOmltZQIE5HNbawj1HYD+1f2bM1Dg==", + "version": "1.0.30001269", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001269.tgz", + "integrity": "sha512-UOy8okEVs48MyHYgV+RdW1Oiudl1H6KolybD6ZquD0VcrPSgj25omXO1S7rDydjpqaISCwA8Pyx+jUQKZwWO5w==", "dev": true, - "dependencies": { - "nanocolors": "^0.1.0" - }, "funding": { "type": "opencollective", "url": "https://opencollective.com/browserslist" } }, - "node_modules/caniuse-lite/node_modules/nanocolors": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.1.12.tgz", - "integrity": "sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ==", - "dev": true - }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -2554,6 +2580,15 @@ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, + "node_modules/compare-version": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz", + "integrity": "sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -3041,14 +3076,14 @@ "dev": true }, "node_modules/dmg-builder": { - "version": "22.11.7", - "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.11.7.tgz", - "integrity": "sha512-+I+XfP2DODHB6PwFANgpH/WMzzCA5r5XoMvbFCIYjQjJpXlO0XnqQaamzFl2vh/Wz/Qt0d0lJMgRy8gKR3MGdQ==", + "version": "22.13.1", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.13.1.tgz", + "integrity": "sha512-qgfLN2fo4q2wIWNvbcKlZ71DLRDLvWIElOB7oxlSxUrMi6xhI+9v1Mh7E0FJ+r5UXhQzaQXaGuyMsQRbGgrSwg==", "dev": true, "dependencies": { - "app-builder-lib": "22.11.7", - "builder-util": "22.11.7", - "builder-util-runtime": "8.7.6", + "app-builder-lib": "22.13.1", + "builder-util": "22.13.1", + "builder-util-runtime": "8.8.1", "fs-extra": "^10.0.0", "iconv-lite": "^0.6.2", "js-yaml": "^4.1.0" @@ -3057,19 +3092,6 @@ "dmg-license": "^1.0.9" } }, - "node_modules/dmg-builder/node_modules/builder-util-runtime": { - "version": "8.7.6", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.6.tgz", - "integrity": "sha512-rj9AIY7CzLSuTOXpToiaQkruYh6UEQ+kYnd5UET22ch8MGClEtIZKXHG14qEiXEr2x4EOKDMxkcTa+9TYaE+ug==", - "dev": true, - "dependencies": { - "debug": "^4.3.2", - "sax": "^1.2.4" - }, - "engines": { - "node": ">=12.0.0" - } - }, "node_modules/dmg-builder/node_modules/fs-extra": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", @@ -3236,9 +3258,9 @@ } }, "node_modules/electron": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/electron/-/electron-15.0.0.tgz", - "integrity": "sha512-LlBjN5nCJoC7EDrgfDQwEGSGSAo/o08nSP5uJxN2m+ZtNA69SxpnWv4yPgo1K08X/iQPoGhoZu6C8LYYlk1Dtg==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/electron/-/electron-15.2.0.tgz", + "integrity": "sha512-kg0JdlsVbJgD/hO/A7o9VH8U44pQWkIsyt/sALxH6g8CiHQxMujLn2JfB2gyUfHXPT7m8vD4Z+CurS2KodEsWw==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -3254,17 +3276,17 @@ } }, "node_modules/electron-builder": { - "version": "22.11.7", - "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.11.7.tgz", - "integrity": "sha512-yQExSLt7Hbz/P8lLkZDdE/OnJJ7NCX+uiQcV+XIH0TeEZcD87ZnSqBBzGUN5akySU4BXXlrVZKeUsXACWrm5Kw==", + "version": "22.13.1", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.13.1.tgz", + "integrity": "sha512-ajlI40L60qKBBxvpf770kcjxHAccMpEWpwsHAppytl3WmWgJfMut4Wz9VUFqyNtX/9a624QTatk6TqoxqewRug==", "dev": true, "dependencies": { - "@types/yargs": "^16.0.2", - "app-builder-lib": "22.11.7", - "builder-util": "22.11.7", - "builder-util-runtime": "8.7.7", + "@types/yargs": "^17.0.1", + "app-builder-lib": "22.13.1", + "builder-util": "22.13.1", + "builder-util-runtime": "8.8.1", "chalk": "^4.1.1", - "dmg-builder": "22.11.7", + "dmg-builder": "22.13.1", "fs-extra": "^10.0.0", "is-ci": "^3.0.0", "lazy-val": "^1.0.5", @@ -3315,15 +3337,63 @@ "node": ">= 10.0.0" } }, + "node_modules/electron-osx-sign": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.5.0.tgz", + "integrity": "sha512-icoRLHzFz/qxzDh/N4Pi2z4yVHurlsCAYQvsCSG7fCedJ4UJXBS6PoQyGH71IfcqKupcKeK7HX/NkyfG+v6vlQ==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.0", + "compare-version": "^0.1.2", + "debug": "^2.6.8", + "isbinaryfile": "^3.0.2", + "minimist": "^1.2.0", + "plist": "^3.0.1" + }, + "bin": { + "electron-osx-flat": "bin/electron-osx-flat.js", + "electron-osx-sign": "bin/electron-osx-sign.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/electron-osx-sign/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/electron-osx-sign/node_modules/isbinaryfile": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", + "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", + "dev": true, + "dependencies": { + "buffer-alloc": "^1.2.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/electron-osx-sign/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, "node_modules/electron-publish": { - "version": "22.11.7", - "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.11.7.tgz", - "integrity": "sha512-A4EhRRNBVz4SPzUlBrPO6BmuyDeI0pyprggPAV9rQ+SDVSnSB/WKPot9JwWMyArkGj3AUUTMNVT6hwZhMvhfqw==", + "version": "22.13.1", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.13.1.tgz", + "integrity": "sha512-5nCXhnsqrRxP5NsZxUKjiMkcFmQglXp7i/YY4rp3h1s1psg3utOIkM29Z93YTSXicZJU1J+8811eo5HX1vpoKg==", "dev": true, "dependencies": { "@types/fs-extra": "^9.0.11", - "builder-util": "22.11.7", - "builder-util-runtime": "8.7.7", + "builder-util": "22.13.1", + "builder-util-runtime": "8.8.1", "chalk": "^4.1.1", "fs-extra": "^10.0.0", "lazy-val": "^1.0.5", @@ -3374,9 +3444,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.3.850", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.850.tgz", - "integrity": "sha512-ZzkDcdzePeF4dhoGZQT77V2CyJOpwfTZEOg4h0x6R/jQhGt/rIRpbRyVreWLtD7B/WsVxo91URm2WxMKR9JQZA==", + "version": "1.3.872", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.872.tgz", + "integrity": "sha512-qG96atLFY0agKyEETiBFNhpRLSXGSXOBuhXWpbkYqrLKKASpRyRBUtfkn0ZjIf/yXfA7FA4nScVOMpXSHFlUCQ==", "dev": true }, "node_modules/electron-updater": { @@ -3430,20 +3500,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/electron-updater/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/electron-updater/node_modules/universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -3861,22 +3917,6 @@ "node": ">=10.0" } }, - "node_modules/global-agent/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "optional": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/global-dirs": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", @@ -4960,6 +5000,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/matcher": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", @@ -5091,12 +5140,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "node_modules/nanocolors": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.8.tgz", - "integrity": "sha512-lFtwopLYUwJ/w+VcBib+Ti1J+USzc/m2XN9LCCl/AhibkzYlXk6FHeqkJqBWRd70RpjArGWYZQjwa6UgwYycBA==", - "dev": true - }, "node_modules/nanoid": { "version": "3.1.28", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.28.tgz", @@ -5135,15 +5178,15 @@ } }, "node_modules/node-releases": { - "version": "1.1.76", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.76.tgz", - "integrity": "sha512-9/IECtNr8dXNmPWmFXepT0/7o5eolGesHUa3mtr0KlgnCvnZxwh2qensKL42JJY2vQKC3nIBXetFAqR+PW1CmA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.0.tgz", + "integrity": "sha512-aA87l0flFYMzCHpTM3DERFSYxc6lv/BltdbRTOMZuxZ0cwZCD3mejE5n9vLhSJCN++/eOqr77G1IO5uXxlQYWA==", "dev": true }, "node_modules/nodemon": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.13.tgz", - "integrity": "sha512-UMXMpsZsv1UXUttCn6gv8eQPhn6DR4BW+txnL3IN5IHqrCwcrT/yWHfL35UsClGXknTH79r5xbu+6J1zNHuSyA==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.14.tgz", + "integrity": "sha512-frcpDx+PviKEQRSYzwhckuO2zoHcBYLHI754RE9z5h1RGtrngerc04mLpQQCPWBkH/2ObrX7We9YiwVSYZpFJQ==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -5401,6 +5444,15 @@ "node": ">=8" } }, + "node_modules/package-json/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -5470,6 +5522,12 @@ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", "dev": true }, + "node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "node_modules/picomatch": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", @@ -5617,7 +5675,6 @@ "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.4.tgz", "integrity": "sha512-ksrr8y9+nXOxQB2osVNqrgvX/XQPOXaU4BQMKjYq8PvaY1U18mo+fKgBSwzK+luSyinOuPae956lSVcBwxlAMg==", "dev": true, - "optional": true, "dependencies": { "base64-js": "^1.5.1", "xmlbuilder": "^9.0.7" @@ -5631,7 +5688,6 @@ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", "dev": true, - "optional": true, "engines": { "node": ">=4.0" } @@ -5646,13 +5702,13 @@ } }, "node_modules/postcss": { - "version": "8.3.8", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.8.tgz", - "integrity": "sha512-GT5bTjjZnwDifajzczOC+r3FI3Cu+PgPvrsjhQdRqa2kTJ4968/X9CUce9xttIB0xOs5c6xf0TCWZo/y9lF6bA==", + "version": "8.3.9", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.9.tgz", + "integrity": "sha512-f/ZFyAKh9Dnqytx5X62jgjhhzttjZS7hMsohcI7HEI5tjELX/HxCy3EFhsRxyzGvrzFF+82XPvCS8T9TFleVJw==", "dev": true, "dependencies": { - "nanocolors": "^0.2.2", - "nanoid": "^3.1.25", + "nanoid": "^3.1.28", + "picocolors": "^0.2.1", "source-map-js": "^0.6.2" }, "engines": { @@ -6653,9 +6709,9 @@ } }, "node_modules/rollup": { - "version": "2.57.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.57.0.tgz", - "integrity": "sha512-bKQIh1rWKofRee6mv8SrF2HdP6pea5QkwBZSMImJysFj39gQuiV8MEPBjXOCpzk3wSYp63M2v2wkWBmFC8O/rg==", + "version": "2.58.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.58.0.tgz", + "integrity": "sha512-NOXpusKnaRpbS7ZVSzcEXqxcLDOagN6iFS8p45RkoiMqPHDLwJm758UF05KlMoCRbLBTZsPOIa887gZJ1AiXvw==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -6905,12 +6961,17 @@ } }, "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dependencies": { + "lru-cache": "^6.0.0" + }, "bin": { "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/semver-compare": { @@ -6932,6 +6993,15 @@ "node": ">=8" } }, + "node_modules/semver-diff/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/serialize-error": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", @@ -7268,18 +7338,18 @@ } }, "node_modules/svelte": { - "version": "3.43.0", - "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.43.0.tgz", - "integrity": "sha512-T2pMPHrxXp+SM8pLLUXLQgkdo+JhTls7aqj9cD7z8wT2ccP+OrCAmtQS7h6pvMjitaZhXFNnCK582NxDpy8HSw==", + "version": "3.44.0", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.44.0.tgz", + "integrity": "sha512-zWACSJBSncGiDvFfYOMFGNV5zDLOlyhftmO5yOZ0lEtQMptpElaRtl39MWz1+lYCpwUq4F3Q2lTzI9TrTL+eMA==", "dev": true, "engines": { "node": ">= 8" } }, "node_modules/svelte-check": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-2.2.6.tgz", - "integrity": "sha512-oJux/afbmcZO+N+ADXB88h6XANLie8Y2rh2qBlhgfkpr2c3t/q/T0w2JWrHqagaDL8zeNwO8a8RVFBkrRox8gg==", + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-2.2.7.tgz", + "integrity": "sha512-lH8ArmwVC+D314cToZkXBBfj7NlpvgQGP7nXCAMnNHo6hTEcbKcf/cAZgzbnAOTftjIJrmLHp+EDW887VJFSOQ==", "dev": true, "dependencies": { "chalk": "^4.0.0", @@ -7309,9 +7379,9 @@ } }, "node_modules/svelte-preprocess": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-4.9.5.tgz", - "integrity": "sha512-RbJbtuwKbuZq9RyzlljZUmmFNaojrg/zUEyDrS8io7haTcuITQmE4NERx8qiqHreApo6cQst5Qtp4MxUwr58Ew==", + "version": "4.9.8", + "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-4.9.8.tgz", + "integrity": "sha512-EQS/oRZzMtYdAprppZxY3HcysKh11w54MgA63ybtL+TAZ4hVqYOnhw41JVJjWN9dhPnNjjLzvbZ2tMhTsla1Og==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -7411,9 +7481,9 @@ "dev": true }, "node_modules/tailwindcss": { - "version": "2.2.16", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-2.2.16.tgz", - "integrity": "sha512-EireCtpQyyJ4Xz8NYzHafBoy4baCOO96flM0+HgtsFcIQ9KFy/YBK3GEtlnD+rXen0e4xm8t3WiUcKBJmN6yjg==", + "version": "2.2.17", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-2.2.17.tgz", + "integrity": "sha512-WgRpn+Pxn7eWqlruxnxEbL9ByVRWi3iC10z4b6dW0zSdnkPVC4hPMSWLQkkW8GCyBIv/vbJ0bxIi9dVrl4CfoA==", "dev": true, "dependencies": { "arg": "^5.0.1", @@ -7738,9 +7808,9 @@ } }, "node_modules/typescript": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.3.tgz", - "integrity": "sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA==", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", + "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -7847,21 +7917,6 @@ "is-ci": "bin.js" } }, - "node_modules/update-notifier/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -8297,6 +8352,12 @@ "source-map": "^0.5.0" }, "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -8343,6 +8404,14 @@ "@babel/helper-validator-option": "^7.14.5", "browserslist": "^4.16.6", "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, "@babel/helper-create-class-features-plugin": { @@ -8877,6 +8946,14 @@ "progress": "^2.0.3", "semver": "^6.2.0", "sumchecker": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, "@electron/universal": { @@ -9135,9 +9212,9 @@ "integrity": "sha512-88p7+M0QGxKpmnkfXjS4V26AnoC/eiqZutE8GLdaI5X12NY75bXSdTY9NkmYb2Xyk1O+MmkuO6Frmsj84V6I8Q==" }, "@rollup/plugin-commonjs": { - "version": "20.0.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-20.0.0.tgz", - "integrity": "sha512-5K0g5W2Ol8hAcTHqcTBHiA7M58tfmYi1o9KxeJuuRNpGaTa5iLjcyemBitCBcKXaHamOBBEH2dGom6v6Unmqjg==", + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-21.0.0.tgz", + "integrity": "sha512-XDQimjHl0kNotAV5lLo34XoygaI0teqiKGJ100B3iCU8+15YscJPeqk2KqkqD3NIe1H8ZTUo5lYjUFZyEgASTw==", "dev": true, "requires": { "@rollup/pluginutils": "^3.1.0", @@ -9150,9 +9227,9 @@ } }, "@rollup/plugin-node-resolve": { - "version": "13.0.5", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.0.5.tgz", - "integrity": "sha512-mVaw6uxtvuGx/XCI4qBQXsDZJUfyx5vp39iE0J/7Hd6wDhEbjHr6aES7Nr9yWbuE0BY+oKp6N7Bq6jX5NCGNmQ==", + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.0.6.tgz", + "integrity": "sha512-sFsPDMPd4gMqnh2gS0uIxELnoRUp5kBl5knxD2EO0778G1oOJv4G1vyT2cpWz75OU2jDVcXhjVUuTAczGyFNKA==", "dev": true, "requires": { "@rollup/pluginutils": "^3.1.0", @@ -9164,9 +9241,9 @@ } }, "@rollup/plugin-typescript": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-8.2.5.tgz", - "integrity": "sha512-QL/LvDol/PAGB2O0S7/+q2HpSUNodpw7z6nGn9BfoVCPOZ0r4EALrojFU29Bkoi2Hr2jgTocTejJ5GGWZfOxbQ==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-8.3.0.tgz", + "integrity": "sha512-I5FpSvLbtAdwJ+naznv+B4sjXZUcIvLLceYpITAn7wAP8W0wqc5noLdGIp9HGVntNhRWXctwPYrSSFQxtl0FPA==", "dev": true, "requires": { "@rollup/pluginutils": "^3.1.0", @@ -9355,9 +9432,9 @@ "optional": true }, "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "version": "17.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.4.tgz", + "integrity": "sha512-D/wihO9WFYqwsmJI0e0qS+U09wIQtYRSBJlXWjTFGjouEuOCy0BU4N/ZK5utb00S5lW/9LO7vOpvGDd8M06NvQ==", "dev": true, "requires": { "@types/yargs-parser": "*" @@ -9511,15 +9588,15 @@ } }, "app-builder-bin": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.5.13.tgz", - "integrity": "sha512-ighVe9G+bT1ENGdp9ecO1P+94vv/f+FUwaI+XkNzeg9bYF8Oi3BQ+mJuxS00UgyHs8luuOzjzC+qnAtdb43Mpg==", + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.7.1.tgz", + "integrity": "sha512-ql93vEUq6WsstGXD+SBLSIQw6SNnhbDEM0swzgugytMxLp3rT24Ag/jcC80ZHxiPRTdew1niuR7P3/FCrDqIjw==", "dev": true }, "app-builder-lib": { - "version": "22.11.7", - "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.11.7.tgz", - "integrity": "sha512-pS9/cR4/TnNZVAHZECiSvvwTBzbwblj7KBBZkMKDG57nibq0I1XY8zAaYeHFdlYTyrRcz9JUXbAqJKezya7UFQ==", + "version": "22.13.1", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.13.1.tgz", + "integrity": "sha512-TsUe7gCdH1cnSknUcqwVRAAxsFxsxcU/BJvnKR8ASzjaZtePW7MU+AEaDVDUURycgYxQ9XeymGjmuQGS32jcbw==", "dev": true, "requires": { "@develar/schema-utils": "~2.6.5", @@ -9528,12 +9605,13 @@ "7zip-bin": "~5.1.1", "async-exit-hook": "^2.0.1", "bluebird-lst": "^1.0.9", - "builder-util": "22.11.7", - "builder-util-runtime": "8.7.7", + "builder-util": "22.13.1", + "builder-util-runtime": "8.8.1", "chromium-pickle-js": "^0.2.0", "debug": "^4.3.2", "ejs": "^3.1.6", - "electron-publish": "22.11.7", + "electron-osx-sign": "^0.5.0", + "electron-publish": "22.13.1", "fs-extra": "^10.0.0", "hosted-git-info": "^4.0.2", "is-ci": "^3.0.0", @@ -9568,15 +9646,6 @@ "universalify": "^2.0.0" } }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -9641,16 +9710,16 @@ "dev": true }, "autoprefixer": { - "version": "10.3.6", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.3.6.tgz", - "integrity": "sha512-3bDjTfF0MfZntwVCSd18XAT2Zndufh3Mep+mafbzdIQEeWbncVRUVDjH8/EPANV9Hq40seJ24QcYAyhUsFz7gQ==", + "version": "10.3.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.3.7.tgz", + "integrity": "sha512-EmGpu0nnQVmMhX8ROoJ7Mx8mKYPlcUHuxkwrRYEYMz85lu7H09v8w6R1P0JPdn/hKU32GjpLBFEOuIlDWCRWvg==", "dev": true, "requires": { - "browserslist": "^4.17.1", - "caniuse-lite": "^1.0.30001260", + "browserslist": "^4.17.3", + "caniuse-lite": "^1.0.30001264", "fraction.js": "^4.1.1", - "nanocolors": "^0.2.8", "normalize-range": "^0.1.2", + "picocolors": "^0.2.1", "postcss-value-parser": "^4.1.0" } }, @@ -9673,8 +9742,7 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "optional": true + "dev": true }, "big.js": { "version": "5.2.2", @@ -9796,22 +9864,22 @@ } }, "browserslist": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.1.tgz", - "integrity": "sha512-aLD0ZMDSnF4lUt4ZDNgqi5BUn9BZ7YdQdI/cYlILrhdSSZJLU9aNZoD5/NBmM4SK34APB2e83MOsRt1EnkuyaQ==", + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.4.tgz", + "integrity": "sha512-Zg7RpbZpIJRW3am9Lyckue7PLytvVxxhJj1CaJVlCWENsGEAOlnlt8X0ZxGRPp7Bt9o8tIRM5SEXy4BCPMJjLQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001259", - "electron-to-chromium": "^1.3.846", + "caniuse-lite": "^1.0.30001265", + "electron-to-chromium": "^1.3.867", "escalade": "^3.1.1", - "nanocolors": "^0.1.5", - "node-releases": "^1.1.76" + "node-releases": "^2.0.0", + "picocolors": "^1.0.0" }, "dependencies": { - "nanocolors": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.1.12.tgz", - "integrity": "sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ==", + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", "dev": true } } @@ -9827,6 +9895,22 @@ "ieee754": "^1.1.13" } }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dev": true, + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "dev": true + }, "buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", @@ -9839,6 +9923,12 @@ "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=", "dev": true }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", + "dev": true + }, "buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -9846,18 +9936,19 @@ "dev": true }, "builder-util": { - "version": "22.11.7", - "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.11.7.tgz", - "integrity": "sha512-ihqUe5ey82LM9qqQe0/oIcaSm9w+B9UjcsWJZxJliTBsbU+sErOpDFpHW+sim0veiTF/EIcGUh9HoduWw+l9FA==", + "version": "22.13.1", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.13.1.tgz", + "integrity": "sha512-gMdoW9aQbWYxuQ4k4jT4An1BTo/hWzvsdv3pwNz18iNYnqn9j+xMllQOg9CHgfQYKSUd8VuMsZnbCvLO4NltYw==", "dev": true, "requires": { - "@types/debug": "^4.1.5", + "@types/debug": "^4.1.6", "@types/fs-extra": "^9.0.11", "7zip-bin": "~5.1.1", - "app-builder-bin": "3.5.13", + "app-builder-bin": "3.7.1", "bluebird-lst": "^1.0.9", - "builder-util-runtime": "8.7.7", + "builder-util-runtime": "8.8.1", "chalk": "^4.1.1", + "cross-spawn": "^7.0.3", "debug": "^4.3.2", "fs-extra": "^10.0.0", "is-ci": "^3.0.0", @@ -9897,9 +9988,9 @@ } }, "builder-util-runtime": { - "version": "8.7.7", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.7.tgz", - "integrity": "sha512-RUfoXzVrmFFI0K/Oft0CtP1LpTIOlBeLJatt5DePTI0KlxE156am4SGUpqtbbdqZNm++LkV9mX4olBDcXyGPow==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.8.1.tgz", + "integrity": "sha512-xHxAzdsJmMV8m/N+INzYUKfyJASeKyKHnA1uGkY8Y8JKLI/c4BG+If+L0If2YETv96CiRASkvd02tIt2pvrchQ==", "dev": true, "requires": { "debug": "^4.3.2", @@ -9991,21 +10082,10 @@ } }, "caniuse-lite": { - "version": "1.0.30001260", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001260.tgz", - "integrity": "sha512-Fhjc/k8725ItmrvW5QomzxLeojewxvqiYCKeFcfFEhut28IVLdpHU19dneOmltZQIE5HNbawj1HYD+1f2bM1Dg==", - "dev": true, - "requires": { - "nanocolors": "^0.1.0" - }, - "dependencies": { - "nanocolors": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.1.12.tgz", - "integrity": "sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ==", - "dev": true - } - } + "version": "1.0.30001269", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001269.tgz", + "integrity": "sha512-UOy8okEVs48MyHYgV+RdW1Oiudl1H6KolybD6ZquD0VcrPSgj25omXO1S7rDydjpqaISCwA8Pyx+jUQKZwWO5w==", + "dev": true }, "chalk": { "version": "4.1.2", @@ -10186,6 +10266,12 @@ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, + "compare-version": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz", + "integrity": "sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=", + "dev": true + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -10557,30 +10643,20 @@ "dev": true }, "dmg-builder": { - "version": "22.11.7", - "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.11.7.tgz", - "integrity": "sha512-+I+XfP2DODHB6PwFANgpH/WMzzCA5r5XoMvbFCIYjQjJpXlO0XnqQaamzFl2vh/Wz/Qt0d0lJMgRy8gKR3MGdQ==", + "version": "22.13.1", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.13.1.tgz", + "integrity": "sha512-qgfLN2fo4q2wIWNvbcKlZ71DLRDLvWIElOB7oxlSxUrMi6xhI+9v1Mh7E0FJ+r5UXhQzaQXaGuyMsQRbGgrSwg==", "dev": true, "requires": { - "app-builder-lib": "22.11.7", - "builder-util": "22.11.7", - "builder-util-runtime": "8.7.6", + "app-builder-lib": "22.13.1", + "builder-util": "22.13.1", + "builder-util-runtime": "8.8.1", "dmg-license": "^1.0.9", "fs-extra": "^10.0.0", "iconv-lite": "^0.6.2", "js-yaml": "^4.1.0" }, "dependencies": { - "builder-util-runtime": { - "version": "8.7.6", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.6.tgz", - "integrity": "sha512-rj9AIY7CzLSuTOXpToiaQkruYh6UEQ+kYnd5UET22ch8MGClEtIZKXHG14qEiXEr2x4EOKDMxkcTa+9TYaE+ug==", - "dev": true, - "requires": { - "debug": "^4.3.2", - "sax": "^1.2.4" - } - }, "fs-extra": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", @@ -10702,9 +10778,9 @@ } }, "electron": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/electron/-/electron-15.0.0.tgz", - "integrity": "sha512-LlBjN5nCJoC7EDrgfDQwEGSGSAo/o08nSP5uJxN2m+ZtNA69SxpnWv4yPgo1K08X/iQPoGhoZu6C8LYYlk1Dtg==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/electron/-/electron-15.2.0.tgz", + "integrity": "sha512-kg0JdlsVbJgD/hO/A7o9VH8U44pQWkIsyt/sALxH6g8CiHQxMujLn2JfB2gyUfHXPT7m8vD4Z+CurS2KodEsWw==", "dev": true, "requires": { "@electron/get": "^1.13.0", @@ -10721,17 +10797,17 @@ } }, "electron-builder": { - "version": "22.11.7", - "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.11.7.tgz", - "integrity": "sha512-yQExSLt7Hbz/P8lLkZDdE/OnJJ7NCX+uiQcV+XIH0TeEZcD87ZnSqBBzGUN5akySU4BXXlrVZKeUsXACWrm5Kw==", + "version": "22.13.1", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.13.1.tgz", + "integrity": "sha512-ajlI40L60qKBBxvpf770kcjxHAccMpEWpwsHAppytl3WmWgJfMut4Wz9VUFqyNtX/9a624QTatk6TqoxqewRug==", "dev": true, "requires": { - "@types/yargs": "^16.0.2", - "app-builder-lib": "22.11.7", - "builder-util": "22.11.7", - "builder-util-runtime": "8.7.7", + "@types/yargs": "^17.0.1", + "app-builder-lib": "22.13.1", + "builder-util": "22.13.1", + "builder-util-runtime": "8.8.1", "chalk": "^4.1.1", - "dmg-builder": "22.11.7", + "dmg-builder": "22.13.1", "fs-extra": "^10.0.0", "is-ci": "^3.0.0", "lazy-val": "^1.0.5", @@ -10769,15 +10845,55 @@ } } }, + "electron-osx-sign": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.5.0.tgz", + "integrity": "sha512-icoRLHzFz/qxzDh/N4Pi2z4yVHurlsCAYQvsCSG7fCedJ4UJXBS6PoQyGH71IfcqKupcKeK7HX/NkyfG+v6vlQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.0", + "compare-version": "^0.1.2", + "debug": "^2.6.8", + "isbinaryfile": "^3.0.2", + "minimist": "^1.2.0", + "plist": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "isbinaryfile": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", + "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", + "dev": true, + "requires": { + "buffer-alloc": "^1.2.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, "electron-publish": { - "version": "22.11.7", - "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.11.7.tgz", - "integrity": "sha512-A4EhRRNBVz4SPzUlBrPO6BmuyDeI0pyprggPAV9rQ+SDVSnSB/WKPot9JwWMyArkGj3AUUTMNVT6hwZhMvhfqw==", + "version": "22.13.1", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.13.1.tgz", + "integrity": "sha512-5nCXhnsqrRxP5NsZxUKjiMkcFmQglXp7i/YY4rp3h1s1psg3utOIkM29Z93YTSXicZJU1J+8811eo5HX1vpoKg==", "dev": true, "requires": { "@types/fs-extra": "^9.0.11", - "builder-util": "22.11.7", - "builder-util-runtime": "8.7.7", + "builder-util": "22.13.1", + "builder-util-runtime": "8.8.1", "chalk": "^4.1.1", "fs-extra": "^10.0.0", "lazy-val": "^1.0.5", @@ -10822,9 +10938,9 @@ } }, "electron-to-chromium": { - "version": "1.3.850", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.850.tgz", - "integrity": "sha512-ZzkDcdzePeF4dhoGZQT77V2CyJOpwfTZEOg4h0x6R/jQhGt/rIRpbRyVreWLtD7B/WsVxo91URm2WxMKR9JQZA==", + "version": "1.3.872", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.872.tgz", + "integrity": "sha512-qG96atLFY0agKyEETiBFNhpRLSXGSXOBuhXWpbkYqrLKKASpRyRBUtfkn0ZjIf/yXfA7FA4nScVOMpXSHFlUCQ==", "dev": true }, "electron-updater": { @@ -10870,14 +10986,6 @@ "universalify": "^2.0.0" } }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } - }, "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -11205,18 +11313,6 @@ "roarr": "^2.15.3", "semver": "^7.3.2", "serialize-error": "^7.0.1" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "optional": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "global-dirs": { @@ -12051,6 +12147,14 @@ "dev": true, "requires": { "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, "matcher": { @@ -12148,12 +12252,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "nanocolors": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.8.tgz", - "integrity": "sha512-lFtwopLYUwJ/w+VcBib+Ti1J+USzc/m2XN9LCCl/AhibkzYlXk6FHeqkJqBWRd70RpjArGWYZQjwa6UgwYycBA==", - "dev": true - }, "nanoid": { "version": "3.1.28", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.28.tgz", @@ -12183,15 +12281,15 @@ "dev": true }, "node-releases": { - "version": "1.1.76", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.76.tgz", - "integrity": "sha512-9/IECtNr8dXNmPWmFXepT0/7o5eolGesHUa3mtr0KlgnCvnZxwh2qensKL42JJY2vQKC3nIBXetFAqR+PW1CmA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.0.tgz", + "integrity": "sha512-aA87l0flFYMzCHpTM3DERFSYxc6lv/BltdbRTOMZuxZ0cwZCD3mejE5n9vLhSJCN++/eOqr77G1IO5uXxlQYWA==", "dev": true }, "nodemon": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.13.tgz", - "integrity": "sha512-UMXMpsZsv1UXUttCn6gv8eQPhn6DR4BW+txnL3IN5IHqrCwcrT/yWHfL35UsClGXknTH79r5xbu+6J1zNHuSyA==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.14.tgz", + "integrity": "sha512-frcpDx+PviKEQRSYzwhckuO2zoHcBYLHI754RE9z5h1RGtrngerc04mLpQQCPWBkH/2ObrX7We9YiwVSYZpFJQ==", "dev": true, "requires": { "chokidar": "^3.2.2", @@ -12375,6 +12473,14 @@ "registry-auth-token": "^4.0.0", "registry-url": "^5.0.0", "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, "parent-module": { @@ -12428,6 +12534,12 @@ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", "dev": true }, + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "picomatch": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", @@ -12531,7 +12643,6 @@ "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.4.tgz", "integrity": "sha512-ksrr8y9+nXOxQB2osVNqrgvX/XQPOXaU4BQMKjYq8PvaY1U18mo+fKgBSwzK+luSyinOuPae956lSVcBwxlAMg==", "dev": true, - "optional": true, "requires": { "base64-js": "^1.5.1", "xmlbuilder": "^9.0.7" @@ -12541,8 +12652,7 @@ "version": "9.0.7", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", - "dev": true, - "optional": true + "dev": true } } }, @@ -12553,13 +12663,13 @@ "dev": true }, "postcss": { - "version": "8.3.8", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.8.tgz", - "integrity": "sha512-GT5bTjjZnwDifajzczOC+r3FI3Cu+PgPvrsjhQdRqa2kTJ4968/X9CUce9xttIB0xOs5c6xf0TCWZo/y9lF6bA==", + "version": "8.3.9", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.9.tgz", + "integrity": "sha512-f/ZFyAKh9Dnqytx5X62jgjhhzttjZS7hMsohcI7HEI5tjELX/HxCy3EFhsRxyzGvrzFF+82XPvCS8T9TFleVJw==", "dev": true, "requires": { - "nanocolors": "^0.2.2", - "nanoid": "^3.1.25", + "nanoid": "^3.1.28", + "picocolors": "^0.2.1", "source-map-js": "^0.6.2" } }, @@ -13253,9 +13363,9 @@ } }, "rollup": { - "version": "2.57.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.57.0.tgz", - "integrity": "sha512-bKQIh1rWKofRee6mv8SrF2HdP6pea5QkwBZSMImJysFj39gQuiV8MEPBjXOCpzk3wSYp63M2v2wkWBmFC8O/rg==", + "version": "2.58.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.58.0.tgz", + "integrity": "sha512-NOXpusKnaRpbS7ZVSzcEXqxcLDOagN6iFS8p45RkoiMqPHDLwJm758UF05KlMoCRbLBTZsPOIa887gZJ1AiXvw==", "dev": true, "requires": { "fsevents": "~2.3.2" @@ -13450,10 +13560,12 @@ "integrity": "sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==" }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "requires": { + "lru-cache": "^6.0.0" + } }, "semver-compare": { "version": "1.0.0", @@ -13469,6 +13581,14 @@ "dev": true, "requires": { "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, "serialize-error": { @@ -13738,15 +13858,15 @@ } }, "svelte": { - "version": "3.43.0", - "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.43.0.tgz", - "integrity": "sha512-T2pMPHrxXp+SM8pLLUXLQgkdo+JhTls7aqj9cD7z8wT2ccP+OrCAmtQS7h6pvMjitaZhXFNnCK582NxDpy8HSw==", + "version": "3.44.0", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.44.0.tgz", + "integrity": "sha512-zWACSJBSncGiDvFfYOMFGNV5zDLOlyhftmO5yOZ0lEtQMptpElaRtl39MWz1+lYCpwUq4F3Q2lTzI9TrTL+eMA==", "dev": true }, "svelte-check": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-2.2.6.tgz", - "integrity": "sha512-oJux/afbmcZO+N+ADXB88h6XANLie8Y2rh2qBlhgfkpr2c3t/q/T0w2JWrHqagaDL8zeNwO8a8RVFBkrRox8gg==", + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-2.2.7.tgz", + "integrity": "sha512-lH8ArmwVC+D314cToZkXBBfj7NlpvgQGP7nXCAMnNHo6hTEcbKcf/cAZgzbnAOTftjIJrmLHp+EDW887VJFSOQ==", "dev": true, "requires": { "chalk": "^4.0.0", @@ -13769,9 +13889,9 @@ } }, "svelte-preprocess": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-4.9.5.tgz", - "integrity": "sha512-RbJbtuwKbuZq9RyzlljZUmmFNaojrg/zUEyDrS8io7haTcuITQmE4NERx8qiqHreApo6cQst5Qtp4MxUwr58Ew==", + "version": "4.9.8", + "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-4.9.8.tgz", + "integrity": "sha512-EQS/oRZzMtYdAprppZxY3HcysKh11w54MgA63ybtL+TAZ4hVqYOnhw41JVJjWN9dhPnNjjLzvbZ2tMhTsla1Og==", "dev": true, "requires": { "@types/pug": "^2.0.4", @@ -13812,9 +13932,9 @@ } }, "tailwindcss": { - "version": "2.2.16", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-2.2.16.tgz", - "integrity": "sha512-EireCtpQyyJ4Xz8NYzHafBoy4baCOO96flM0+HgtsFcIQ9KFy/YBK3GEtlnD+rXen0e4xm8t3WiUcKBJmN6yjg==", + "version": "2.2.17", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-2.2.17.tgz", + "integrity": "sha512-WgRpn+Pxn7eWqlruxnxEbL9ByVRWi3iC10z4b6dW0zSdnkPVC4hPMSWLQkkW8GCyBIv/vbJ0bxIi9dVrl4CfoA==", "dev": true, "requires": { "arg": "^5.0.1", @@ -14072,9 +14192,9 @@ } }, "typescript": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.3.tgz", - "integrity": "sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA==", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", + "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==", "dev": true }, "undefsafe": { @@ -14160,15 +14280,6 @@ "requires": { "ci-info": "^2.0.0" } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } } } }, diff --git a/package.json b/package.json index cc9de3c..17c8952 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "Template to create a desktop app with Svelte, Electron and TypeScript (with electron-updater, electron-reload and electron-builder)", "author": "Samuele de Tomasi ", "license": "MIT", - "version": "0.0.15", + "version": "0.0.16", "main": "dist/index.js", "scripts": { "nodemon": "nodemon", @@ -17,35 +17,36 @@ "check-updates": "npx npm-check-updates", "check-updates:minor": "npx npm-check-updates --target minor", "check-updates:patch": "npx npm-check-updates --target patch", - "test": "npx playwright test" + "test": "npx playwright test", + "test:show-trace": "npx playwright show-trace tests/tracing/trace.zip" }, "devDependencies": { "@playwright/test": "^1.15.2", - "@rollup/plugin-commonjs": "^20.0.0", - "@rollup/plugin-node-resolve": "^13.0.5", - "@rollup/plugin-typescript": "^8.2.5", + "@rollup/plugin-commonjs": "^21.0.0", + "@rollup/plugin-node-resolve": "^13.0.6", + "@rollup/plugin-typescript": "^8.3.0", "@tsconfig/svelte": "^2.0.1", - "autoprefixer": "^10.3.6", - "electron": "^15.0.0", - "electron-builder": "^22.11.7", - "nodemon": "^2.0.13", + "autoprefixer": "^10.3.7", + "electron": "^15.2.0", + "electron-builder": "^22.13.1", + "nodemon": "^2.0.14", "playwright": "^1.15.2", - "postcss": "^8.3.8", + "postcss": "^8.3.9", "postcss-load-config": "^3.1.0", - "rollup": "^2.57.0", + "rollup": "^2.58.0", "rollup-plugin-copy": "^3.4.0", "rollup-plugin-css-only": "^3.1.0", "rollup-plugin-livereload": "^2.0.5", "rollup-plugin-postcss": "^4.0.1", "rollup-plugin-svelte": "^7.1.0", "rollup-plugin-terser": "^7.0.2", - "semver": "^6.3.0", - "svelte": "^3.43.0", - "svelte-check": "^2.2.6", - "svelte-preprocess": "^4.9.5", - "tailwindcss": "^2.2.16", + "semver": "^7.3.5", + "svelte": "^3.44.0", + "svelte-check": "^2.2.7", + "svelte-preprocess": "^4.9.8", + "tailwindcss": "^2.2.17", "tslib": "^2.3.1", - "typescript": "^4.4.3" + "typescript": "^4.4.4" }, "dependencies": { "@el3um4s/to-try": "^0.0.2", diff --git a/playwright.config.ts b/playwright.config.ts new file mode 100644 index 0000000..18f9e37 --- /dev/null +++ b/playwright.config.ts @@ -0,0 +1,11 @@ +import { PlaywrightTestConfig } from '@playwright/test' + +const config: PlaywrightTestConfig = { + testDir: './tests', + retries: 1, + use: { + trace: 'on', + }, +} + +export default config \ No newline at end of file diff --git a/src/tests/base.test.ts b/src/tests/base.test.ts deleted file mode 100644 index d48a983..0000000 --- a/src/tests/base.test.ts +++ /dev/null @@ -1,75 +0,0 @@ -// https://playwright.dev/docs/intro -// https://playwright.dev/docs/api/class-electron/ -// https://playwright.dev/docs/api/class-electronapplication/ -// https://playwright.dev/docs/api/class-page/ -// https://github.com/cawa-93/vite-electron-builder/blob/7d2df55fd8a0b3a803963d62558f719c9034ba2a/tests/app.spec.js - -import { _electron as electron } from 'playwright'; -import { test, expect } from '@playwright/test'; -import semver from 'semver'; -import { describe } from 'yargs'; - - -test('basic test', async ({ page }) => { - await page.goto('https://playwright.dev/'); - const title = page.locator('.navbar__inner .navbar__title'); - await expect(title).toHaveText('Playwright'); -}); - -test('Launch electron app', async() => { - const electronApp = await electron.launch({ args: ["."] }); - - const windowState: { isVisible: boolean; isDevToolsOpened: boolean; isCrashed: boolean; } = await electronApp.evaluate(async ({ BrowserWindow }) => { - const mainWindow = BrowserWindow.getAllWindows()[0]; - - const getState = () => ({ - isVisible: mainWindow.isVisible(), - isDevToolsOpened: mainWindow.webContents.isDevToolsOpened(), - isCrashed: mainWindow.webContents.isCrashed(), - }); - - return new Promise((resolve) => { - if (mainWindow.isVisible()) { - resolve(getState()); - } else { - mainWindow.once('ready-to-show', () => setTimeout(() => resolve(getState()), 0)); - } - }); - }); - - expect(windowState.isVisible).toBeTruthy(); - expect(windowState.isDevToolsOpened).toBeFalsy(); - expect(windowState.isCrashed).toBeFalsy(); - - await electronApp.close(); -}); - -test('Check Main Page', async () => { - const electronApp = await electron.launch({ args: ["."] }); - const firstWindow = await electronApp.firstWindow(); - - const title = await firstWindow.title(); - expect(title).toBe("MEMENTO - Svelte, TailwindCSS, Electron and TypeScript"); - - await firstWindow.screenshot({ path: 'src/tests/screenshot/firstWindow.png' }); - - const versionNumberApp = await firstWindow.innerText('data-testid=version-number-app'); - expect(versionNumberApp).not.toBe('-'); - const isValidNumberApp = semver.valid(semver.coerce(versionNumberApp)) - expect(semver.valid(isValidNumberApp)).not.toBeNull(); - - const versionNumberNodeJS = await firstWindow.innerText('data-testid=version-number-nodejs'); - expect(versionNumberNodeJS).not.toBe('-'); - const isValidNodeJS = semver.valid(semver.coerce(versionNumberNodeJS)) - expect(semver.valid(isValidNodeJS)).not.toBeNull(); - - const versionNumberChrome = await firstWindow.innerText('data-testid=version-number-chrome'); - expect(versionNumberChrome).not.toBe('-'); - const isValidChrome = semver.valid(semver.coerce(versionNumberChrome)) - expect(semver.valid(isValidChrome)).not.toBeNull(); - - const versionNumberElectron = await firstWindow.innerText('data-testid=version-number-electron'); - expect(versionNumberElectron).not.toBe('-'); - const isValidElectron = semver.valid(semver.coerce(versionNumberElectron)) - expect(semver.valid(isValidElectron)).not.toBeNull(); -}); diff --git a/src/tests/screenshot/firstWindow.png b/src/tests/screenshot/firstWindow.png deleted file mode 100644 index 355730f..0000000 Binary files a/src/tests/screenshot/firstWindow.png and /dev/null differ diff --git a/tests/base.test.ts b/tests/base.test.ts new file mode 100644 index 0000000..eebb377 --- /dev/null +++ b/tests/base.test.ts @@ -0,0 +1,92 @@ +// https://playwright.dev/docs/intro +// https://playwright.dev/docs/api/class-electron/ +// https://playwright.dev/docs/api/class-electronapplication/ +// https://playwright.dev/docs/api/class-page/ +// https://github.com/cawa-93/vite-electron-builder/blob/7d2df55fd8a0b3a803963d62558f719c9034ba2a/tests/app.spec.js +// https://github.com/microsoft/playwright/tree/master/tests/electron +// https://github.com/spaceagetv/electron-playwright-example + +import { ElectronApplication, Page, _electron as electron } from 'playwright'; +import { test, expect } from '@playwright/test'; +import semver from 'semver'; + +test('Launch electron app', async() => { + const electronApp = await electron.launch({ args: ["."] }); + + const windowState: { isVisible: boolean; isDevToolsOpened: boolean; isCrashed: boolean; } = await electronApp.evaluate(async ({ BrowserWindow }) => { + const mainWindow = BrowserWindow.getAllWindows()[0]; + + const getState = () => ({ + isVisible: mainWindow.isVisible(), + isDevToolsOpened: mainWindow.webContents.isDevToolsOpened(), + isCrashed: mainWindow.webContents.isCrashed(), + }); + + return new Promise((resolve) => { + if (mainWindow.isVisible()) { + resolve(getState()); + } else { + mainWindow.once('ready-to-show', () => setTimeout(() => resolve(getState()), 0)); + } + }); + }); + + expect(windowState.isVisible).toBeTruthy(); + expect(windowState.isDevToolsOpened).toBeFalsy(); + expect(windowState.isCrashed).toBeFalsy(); + + await electronApp.close(); +}); + +test.describe('Check Man Page', async () => { + let electronApp: ElectronApplication; + let firstWindow: Page; + let context; + + test.beforeAll( async () => { + electronApp = await electron.launch({ args: ["."] }); + context = electronApp.context(); + await context.tracing.start({ screenshots: true, snapshots: true }); + firstWindow = await electronApp.firstWindow(); + + await firstWindow.screenshot({ path: 'tests/screenshot/firstWindow.png' }); + }) + + test('Check title', async () => { + const title = await firstWindow.title(); + expect(title).toBe("MEMENTO - Svelte, TailwindCSS, Electron and TypeScript"); + }); + + test('Check version number: APP', async () => { + const versionNumberApp = await firstWindow.innerText('data-testid=version-number-app'); + expect(versionNumberApp).not.toBe('-'); + const isValidNumberApp = semver.valid(semver.coerce(versionNumberApp)) + expect(semver.valid(isValidNumberApp)).not.toBeNull(); + }); + + test('Check version number: NODEJS', async () => { + const versionNumberNodeJS = await firstWindow.innerText('data-testid=version-number-nodejs'); + expect(versionNumberNodeJS).not.toBe('-'); + const isValidNodeJS = semver.valid(semver.coerce(versionNumberNodeJS)) + expect(semver.valid(isValidNodeJS)).not.toBeNull(); + }); + + test('Check version number: CHROME', async () => { + const versionNumberChrome = await firstWindow.innerText('data-testid=version-number-chrome'); + expect(versionNumberChrome).not.toBe('-'); + const isValidChrome = semver.valid(semver.coerce(versionNumberChrome)) + expect(semver.valid(isValidChrome)).not.toBeNull(); + }); + + test('Check version number: ELECTRON', async () => { + const versionNumberElectron = await firstWindow.innerText('data-testid=version-number-electron'); + expect(versionNumberElectron).not.toBe('-'); + const isValidElectron = semver.valid(semver.coerce(versionNumberElectron)) + expect(semver.valid(isValidElectron)).not.toBeNull(); + }); + + test.afterAll( async () => { + await context.tracing.stop({ path: 'tests/tracing/trace.zip' }); + await electronApp.close(); + }) +})