diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6103706..664ead8 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -18,11 +18,8 @@ jobs: matrix: node-version: - '22.11' - - '20.18' - - '18.20' os: - macos-latest - - ubuntu-latest - windows-latest runs-on: '${{ matrix.os }}' steps: diff --git a/package.json b/package.json index 04fa034..bbf7d84 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "@types/jest": "^29.5.14", "@types/ms": "^0.7.31", "@types/node": "^22.10.1", - "electron": "^39.8.4", + "electron": "^41.1.1", "husky": "^9.1.7", "jest": "^29.0.0", "lint-staged": "^16.4.0", diff --git a/src/index.ts b/src/index.ts index 1ef2901..b06003b 100644 --- a/src/index.ts +++ b/src/index.ts @@ -166,9 +166,10 @@ function initUpdater(opts: ReturnType) { let serverType: 'default' | 'json' = 'default'; switch (updateSource.type) { case UpdateSourceType.ElectronPublicUpdateService: { + const formatSegment = process.windowsStore ? '/msix' : ''; feedURL = `${updateSource.host}/${updateSource.repo}/${process.platform}-${ process.arch - }/${app.getVersion()}`; + }${formatSegment}/${app.getVersion()}`; break; } case UpdateSourceType.StaticStorage: { diff --git a/test/index.test.ts b/test/index.test.ts index f45de9b..7663419 100644 --- a/test/index.test.ts +++ b/test/index.test.ts @@ -66,6 +66,38 @@ describe('updateElectronApp', () => { }); }); + describe('updateFormat', () => { + it('includes /msix/ in feed URL when process.windowsStore is true', () => { + const original = process.windowsStore; + Object.defineProperty(process, 'windowsStore', { value: true, configurable: true }); + const logSpy = jest.spyOn(console, 'log'); + updateElectronApp({ + updateSource: { + type: UpdateSourceType.ElectronPublicUpdateService, + repo, + }, + }); + expect(logSpy).toHaveBeenCalledWith('feedURL', expect.stringContaining('/msix/')); + logSpy.mockRestore(); + Object.defineProperty(process, 'windowsStore', { value: original, configurable: true }); + }); + + it('omits format from feed URL when process.windowsStore is falsy', () => { + const original = process.windowsStore; + Object.defineProperty(process, 'windowsStore', { value: undefined, configurable: true }); + const logSpy = jest.spyOn(console, 'log'); + updateElectronApp({ + updateSource: { + type: UpdateSourceType.ElectronPublicUpdateService, + repo, + }, + }); + expect(logSpy).toHaveBeenCalledWith('feedURL', expect.not.stringContaining('/msix/')); + logSpy.mockRestore(); + Object.defineProperty(process, 'windowsStore', { value: original, configurable: true }); + }); + }); + describe('updateInterval', () => { it('must be 5 minutes or more', () => { expect(() => { diff --git a/yarn.lock b/yarn.lock index 8c95a78..24e2864 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1105,135 +1105,135 @@ __metadata: languageName: node linkType: hard -"@oxlint/binding-android-arm-eabi@npm:1.59.0": - version: 1.59.0 - resolution: "@oxlint/binding-android-arm-eabi@npm:1.59.0" +"@oxlint/binding-android-arm-eabi@npm:1.60.0": + version: 1.60.0 + resolution: "@oxlint/binding-android-arm-eabi@npm:1.60.0" conditions: os=android & cpu=arm languageName: node linkType: hard -"@oxlint/binding-android-arm64@npm:1.59.0": - version: 1.59.0 - resolution: "@oxlint/binding-android-arm64@npm:1.59.0" +"@oxlint/binding-android-arm64@npm:1.60.0": + version: 1.60.0 + resolution: "@oxlint/binding-android-arm64@npm:1.60.0" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@oxlint/binding-darwin-arm64@npm:1.59.0": - version: 1.59.0 - resolution: "@oxlint/binding-darwin-arm64@npm:1.59.0" +"@oxlint/binding-darwin-arm64@npm:1.60.0": + version: 1.60.0 + resolution: "@oxlint/binding-darwin-arm64@npm:1.60.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@oxlint/binding-darwin-x64@npm:1.59.0": - version: 1.59.0 - resolution: "@oxlint/binding-darwin-x64@npm:1.59.0" +"@oxlint/binding-darwin-x64@npm:1.60.0": + version: 1.60.0 + resolution: "@oxlint/binding-darwin-x64@npm:1.60.0" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@oxlint/binding-freebsd-x64@npm:1.59.0": - version: 1.59.0 - resolution: "@oxlint/binding-freebsd-x64@npm:1.59.0" +"@oxlint/binding-freebsd-x64@npm:1.60.0": + version: 1.60.0 + resolution: "@oxlint/binding-freebsd-x64@npm:1.60.0" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@oxlint/binding-linux-arm-gnueabihf@npm:1.59.0": - version: 1.59.0 - resolution: "@oxlint/binding-linux-arm-gnueabihf@npm:1.59.0" +"@oxlint/binding-linux-arm-gnueabihf@npm:1.60.0": + version: 1.60.0 + resolution: "@oxlint/binding-linux-arm-gnueabihf@npm:1.60.0" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@oxlint/binding-linux-arm-musleabihf@npm:1.59.0": - version: 1.59.0 - resolution: "@oxlint/binding-linux-arm-musleabihf@npm:1.59.0" +"@oxlint/binding-linux-arm-musleabihf@npm:1.60.0": + version: 1.60.0 + resolution: "@oxlint/binding-linux-arm-musleabihf@npm:1.60.0" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@oxlint/binding-linux-arm64-gnu@npm:1.59.0": - version: 1.59.0 - resolution: "@oxlint/binding-linux-arm64-gnu@npm:1.59.0" +"@oxlint/binding-linux-arm64-gnu@npm:1.60.0": + version: 1.60.0 + resolution: "@oxlint/binding-linux-arm64-gnu@npm:1.60.0" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@oxlint/binding-linux-arm64-musl@npm:1.59.0": - version: 1.59.0 - resolution: "@oxlint/binding-linux-arm64-musl@npm:1.59.0" +"@oxlint/binding-linux-arm64-musl@npm:1.60.0": + version: 1.60.0 + resolution: "@oxlint/binding-linux-arm64-musl@npm:1.60.0" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@oxlint/binding-linux-ppc64-gnu@npm:1.59.0": - version: 1.59.0 - resolution: "@oxlint/binding-linux-ppc64-gnu@npm:1.59.0" +"@oxlint/binding-linux-ppc64-gnu@npm:1.60.0": + version: 1.60.0 + resolution: "@oxlint/binding-linux-ppc64-gnu@npm:1.60.0" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@oxlint/binding-linux-riscv64-gnu@npm:1.59.0": - version: 1.59.0 - resolution: "@oxlint/binding-linux-riscv64-gnu@npm:1.59.0" +"@oxlint/binding-linux-riscv64-gnu@npm:1.60.0": + version: 1.60.0 + resolution: "@oxlint/binding-linux-riscv64-gnu@npm:1.60.0" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@oxlint/binding-linux-riscv64-musl@npm:1.59.0": - version: 1.59.0 - resolution: "@oxlint/binding-linux-riscv64-musl@npm:1.59.0" +"@oxlint/binding-linux-riscv64-musl@npm:1.60.0": + version: 1.60.0 + resolution: "@oxlint/binding-linux-riscv64-musl@npm:1.60.0" conditions: os=linux & cpu=riscv64 & libc=musl languageName: node linkType: hard -"@oxlint/binding-linux-s390x-gnu@npm:1.59.0": - version: 1.59.0 - resolution: "@oxlint/binding-linux-s390x-gnu@npm:1.59.0" +"@oxlint/binding-linux-s390x-gnu@npm:1.60.0": + version: 1.60.0 + resolution: "@oxlint/binding-linux-s390x-gnu@npm:1.60.0" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@oxlint/binding-linux-x64-gnu@npm:1.59.0": - version: 1.59.0 - resolution: "@oxlint/binding-linux-x64-gnu@npm:1.59.0" +"@oxlint/binding-linux-x64-gnu@npm:1.60.0": + version: 1.60.0 + resolution: "@oxlint/binding-linux-x64-gnu@npm:1.60.0" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@oxlint/binding-linux-x64-musl@npm:1.59.0": - version: 1.59.0 - resolution: "@oxlint/binding-linux-x64-musl@npm:1.59.0" +"@oxlint/binding-linux-x64-musl@npm:1.60.0": + version: 1.60.0 + resolution: "@oxlint/binding-linux-x64-musl@npm:1.60.0" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@oxlint/binding-openharmony-arm64@npm:1.59.0": - version: 1.59.0 - resolution: "@oxlint/binding-openharmony-arm64@npm:1.59.0" +"@oxlint/binding-openharmony-arm64@npm:1.60.0": + version: 1.60.0 + resolution: "@oxlint/binding-openharmony-arm64@npm:1.60.0" conditions: os=openharmony & cpu=arm64 languageName: node linkType: hard -"@oxlint/binding-win32-arm64-msvc@npm:1.59.0": - version: 1.59.0 - resolution: "@oxlint/binding-win32-arm64-msvc@npm:1.59.0" +"@oxlint/binding-win32-arm64-msvc@npm:1.60.0": + version: 1.60.0 + resolution: "@oxlint/binding-win32-arm64-msvc@npm:1.60.0" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@oxlint/binding-win32-ia32-msvc@npm:1.59.0": - version: 1.59.0 - resolution: "@oxlint/binding-win32-ia32-msvc@npm:1.59.0" +"@oxlint/binding-win32-ia32-msvc@npm:1.60.0": + version: 1.60.0 + resolution: "@oxlint/binding-win32-ia32-msvc@npm:1.60.0" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@oxlint/binding-win32-x64-msvc@npm:1.59.0": - version: 1.59.0 - resolution: "@oxlint/binding-win32-x64-msvc@npm:1.59.0" +"@oxlint/binding-win32-x64-msvc@npm:1.60.0": + version: 1.60.0 + resolution: "@oxlint/binding-win32-x64-msvc@npm:1.60.0" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -1420,7 +1420,7 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:^22.10.1, @types/node@npm:^22.7.7": +"@types/node@npm:*, @types/node@npm:^22.10.1": version: 22.18.0 resolution: "@types/node@npm:22.18.0" dependencies: @@ -1429,6 +1429,15 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:^24.9.0": + version: 24.12.0 + resolution: "@types/node@npm:24.12.0" + dependencies: + undici-types: "npm:~7.16.0" + checksum: 10c0/8b31c0af5b5474f13048a4e77c57f22cd4f8fe6e58c4b6fde9456b0c13f46a5bfaf5744ff88fd089581de9f0d6e99c584e022681de7acb26a58d258c654c4843 + languageName: node + linkType: hard + "@types/prettier@npm:^2.1.5": version: 2.7.1 resolution: "@types/prettier@npm:2.7.1" @@ -2076,16 +2085,16 @@ __metadata: languageName: node linkType: hard -"electron@npm:^39.8.4": - version: 39.8.6 - resolution: "electron@npm:39.8.6" +"electron@npm:^41.1.1": + version: 41.1.1 + resolution: "electron@npm:41.1.1" dependencies: "@electron/get": "npm:^2.0.0" - "@types/node": "npm:^22.7.7" + "@types/node": "npm:^24.9.0" extract-zip: "npm:^2.0.1" bin: electron: cli.js - checksum: 10c0/6b86d4ee2fab2daa89792ce62c48b8d4cda46a2d1aead2fd9150b796eb5aada334b7d4cae666ce6ded3b322d16b31996fd019dcc1ac4bba3174eff8801ed2a9f + checksum: 10c0/b52df5c263ee612e62b7d804bf97d739f2876b5b16cf46cf99ec338d59093cb066bf85d1ad77115d4839a5ea64bba66ecb27111696a409cbe64eb81c3e71449e languageName: node linkType: hard @@ -2415,16 +2424,16 @@ __metadata: linkType: hard "glob@npm:^7.1.3, glob@npm:^7.1.4": - version: 7.2.3 - resolution: "glob@npm:7.2.3" + version: 7.1.6 + resolution: "glob@npm:7.1.6" dependencies: fs.realpath: "npm:^1.0.0" inflight: "npm:^1.0.4" inherits: "npm:2" - minimatch: "npm:^3.1.1" + minimatch: "npm:^3.0.4" once: "npm:^1.3.0" path-is-absolute: "npm:^1.0.0" - checksum: 10c0/65676153e2b0c9095100fe7f25a778bf45608eeb32c6048cf307f579649bcc30353277b3b898a3792602c65764e5baa4f643714dfbdfd64ea271d210c7a425fe + checksum: 10c0/2575cce9306ac534388db751f0aa3e78afedb6af8f3b529ac6b2354f66765545145dba8530abf7bff49fb399a047d3f9b6901c38ee4c9503f592960d9af67763 languageName: node linkType: hard @@ -3490,7 +3499,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^3.0.4, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": +"minimatch@npm:^3.0.4, minimatch@npm:^3.1.2": version: 3.1.5 resolution: "minimatch@npm:3.1.5" dependencies: @@ -3692,28 +3701,28 @@ __metadata: linkType: hard "oxlint@npm:^1.59.0": - version: 1.59.0 - resolution: "oxlint@npm:1.59.0" - dependencies: - "@oxlint/binding-android-arm-eabi": "npm:1.59.0" - "@oxlint/binding-android-arm64": "npm:1.59.0" - "@oxlint/binding-darwin-arm64": "npm:1.59.0" - "@oxlint/binding-darwin-x64": "npm:1.59.0" - "@oxlint/binding-freebsd-x64": "npm:1.59.0" - "@oxlint/binding-linux-arm-gnueabihf": "npm:1.59.0" - "@oxlint/binding-linux-arm-musleabihf": "npm:1.59.0" - "@oxlint/binding-linux-arm64-gnu": "npm:1.59.0" - "@oxlint/binding-linux-arm64-musl": "npm:1.59.0" - "@oxlint/binding-linux-ppc64-gnu": "npm:1.59.0" - "@oxlint/binding-linux-riscv64-gnu": "npm:1.59.0" - "@oxlint/binding-linux-riscv64-musl": "npm:1.59.0" - "@oxlint/binding-linux-s390x-gnu": "npm:1.59.0" - "@oxlint/binding-linux-x64-gnu": "npm:1.59.0" - "@oxlint/binding-linux-x64-musl": "npm:1.59.0" - "@oxlint/binding-openharmony-arm64": "npm:1.59.0" - "@oxlint/binding-win32-arm64-msvc": "npm:1.59.0" - "@oxlint/binding-win32-ia32-msvc": "npm:1.59.0" - "@oxlint/binding-win32-x64-msvc": "npm:1.59.0" + version: 1.60.0 + resolution: "oxlint@npm:1.60.0" + dependencies: + "@oxlint/binding-android-arm-eabi": "npm:1.60.0" + "@oxlint/binding-android-arm64": "npm:1.60.0" + "@oxlint/binding-darwin-arm64": "npm:1.60.0" + "@oxlint/binding-darwin-x64": "npm:1.60.0" + "@oxlint/binding-freebsd-x64": "npm:1.60.0" + "@oxlint/binding-linux-arm-gnueabihf": "npm:1.60.0" + "@oxlint/binding-linux-arm-musleabihf": "npm:1.60.0" + "@oxlint/binding-linux-arm64-gnu": "npm:1.60.0" + "@oxlint/binding-linux-arm64-musl": "npm:1.60.0" + "@oxlint/binding-linux-ppc64-gnu": "npm:1.60.0" + "@oxlint/binding-linux-riscv64-gnu": "npm:1.60.0" + "@oxlint/binding-linux-riscv64-musl": "npm:1.60.0" + "@oxlint/binding-linux-s390x-gnu": "npm:1.60.0" + "@oxlint/binding-linux-x64-gnu": "npm:1.60.0" + "@oxlint/binding-linux-x64-musl": "npm:1.60.0" + "@oxlint/binding-openharmony-arm64": "npm:1.60.0" + "@oxlint/binding-win32-arm64-msvc": "npm:1.60.0" + "@oxlint/binding-win32-ia32-msvc": "npm:1.60.0" + "@oxlint/binding-win32-x64-msvc": "npm:1.60.0" peerDependencies: oxlint-tsgolint: ">=0.18.0" dependenciesMeta: @@ -3760,7 +3769,7 @@ __metadata: optional: true bin: oxlint: bin/oxlint - checksum: 10c0/68614addf6b6a95df8a0c8ba764ee09d2d6d1693b55b62a4f31eda3be63915d24666a11b31dfe1fabbe88e1d7ab814243a1e7ecb40db87d0f567135d17f44e2c + checksum: 10c0/d12a2f4a6aeba5263e37b28e565b04ba8707eaec7cae53a43f3976771ec019f341fdd0f7fbd089e02c6c135d12a149a07b7162f96c2b3fa702b0642c93aff72f languageName: node linkType: hard @@ -4497,6 +4506,13 @@ __metadata: languageName: node linkType: hard +"undici-types@npm:~7.16.0": + version: 7.16.0 + resolution: "undici-types@npm:7.16.0" + checksum: 10c0/3033e2f2b5c9f1504bdc5934646cb54e37ecaca0f9249c983f7b1fc2e87c6d18399ebb05dc7fd5419e02b2e915f734d872a65da2e3eeed1813951c427d33cc9a + languageName: node + linkType: hard + "universalify@npm:^0.1.0": version: 0.1.2 resolution: "universalify@npm:0.1.2" @@ -4526,7 +4542,7 @@ __metadata: "@types/jest": "npm:^29.5.14" "@types/ms": "npm:^0.7.31" "@types/node": "npm:^22.10.1" - electron: "npm:^39.8.4" + electron: "npm:^41.1.1" github-url-to-object: "npm:^4.0.4" husky: "npm:^9.1.7" jest: "npm:^29.0.0"