From 89efc55d52742ecae9964d063474d436eefce727 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 23 Mar 2025 21:00:37 +0200 Subject: [PATCH 01/67] chore(ci): trigger windows only for now --- .github/workflows/nightly.yml | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 0ab203be0..4cebdf8c3 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -8,6 +8,7 @@ on: pull_request: paths: - .github/actions/build-electron/* + push: env: GITHUB_UPLOAD_URL: https://uploads.github.com/repos/TriliumNext/Notes/releases/179589950/assets{?name,label} GITHUB_RELEASE_ID: 179589950 @@ -19,14 +20,8 @@ jobs: strategy: fail-fast: false matrix: - arch: [x64, arm64] + arch: [x64] os: - - name: macos - image: macos-latest - extension: [dmg, zip] - - name: linux - image: ubuntu-latest - extension: [deb, rpm, zip, flatpak] - name: windows image: windows-latest extension: [exe, zip] From d77b3a07e2ab531e9d4ca65c700dca44ef32a7d3 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 23 Mar 2025 21:02:16 +0200 Subject: [PATCH 02/67] chore(ci): remove unnecessary shell --- .github/workflows/nightly.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 4cebdf8c3..03e0bbf55 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -33,7 +33,6 @@ jobs: with: node-version: 20 - name: Install dependencies - shell: bash run: npm ci - name: Update nightly version run: npm run chore:ci-update-nightly-version From c50a67f36b01bcb8e8f5f05ca3a7a54ee6cc1542 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 23 Mar 2025 21:02:37 +0200 Subject: [PATCH 03/67] chore(ci): remove server build temporarily --- .github/workflows/nightly.yml | 33 --------------------------------- 1 file changed, 33 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 03e0bbf55..0a2b88baa 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -62,36 +62,3 @@ jobs: files: upload/*.* tag_name: nightly name: Nightly Build - - nightly-server: - name: Deploy server nightly - strategy: - fail-fast: false - matrix: - arch: [x64, arm64] - include: - - arch: x64 - runs-on: ubuntu-latest - - arch: arm64 - runs-on: ubuntu-24.04-arm - runs-on: ${{ matrix.runs-on }} - steps: - - uses: actions/checkout@v4 - - - name: Run the build - uses: ./.github/actions/build-server - with: - os: linux - arch: ${{ matrix.arch }} - - - name: Publish release - uses: softprops/action-gh-release@v2 - if: ${{ github.event_name != 'pull_request' }} - with: - make_latest: false - prerelease: true - draft: false - fail_on_unmatched_files: true - files: upload/*.* - tag_name: nightly - name: Nightly Build From 98013bc725e1085e763865bea2ac30b614f4c2bb Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 23 Mar 2025 21:10:55 +0200 Subject: [PATCH 04/67] chore(ci): use cmd --- .github/actions/build-electron/action.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/actions/build-electron/action.yml b/.github/actions/build-electron/action.yml index 51b022bed..2c168c7ac 100644 --- a/.github/actions/build-electron/action.yml +++ b/.github/actions/build-electron/action.yml @@ -38,21 +38,21 @@ runs: - name: Verify certificates if: inputs.os == 'macos' - shell: bash + shell: cmd run: | echo "Available signing identities:" security find-identity -v -p codesigning build.keychain - name: Set up Python and other macOS dependencies if: ${{ inputs.os == 'macos' }} - shell: bash + shell: cmd run: | brew install python-setuptools brew install create-dmg - name: Install dependencies for RPM and Flatpak package building if: ${{ inputs.os == 'linux' }} - shell: bash + shell: cmd run: | sudo apt-get update && sudo apt-get install rpm flatpak-builder elfutils flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo @@ -62,16 +62,16 @@ runs: # Build setup - name: Install dependencies - shell: bash + shell: cmd run: npm ci - name: Update build info - shell: bash + shell: cmd run: npm run chore:update-build-info # Critical debugging configuration - name: Run electron-forge build with enhanced logging - shell: bash + shell: cmd env: # Pass through required environment variables for signing and notarization APPLE_TEAM_ID: ${{ env.APPLE_TEAM_ID }} @@ -94,7 +94,7 @@ runs: # Add DMG signing step - name: Sign DMG if: inputs.os == 'macos' - shell: bash + shell: cmd run: | echo "Signing DMG file..." dmg_file=$(find ./dist -name "*.dmg" -print -quit) @@ -119,7 +119,7 @@ runs: - name: Verify code signing if: inputs.os == 'macos' - shell: bash + shell: cmd run: | echo "Verifying code signing for all artifacts..." @@ -167,7 +167,7 @@ runs: fi - name: Prepare artifacts - shell: bash + shell: cmd run: | mkdir -p upload From c477e728ea21a47935bd41fad6b1080597a1406f Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 23 Mar 2025 21:14:51 +0200 Subject: [PATCH 05/67] chore(ci): define forge platform at workflow level --- .github/actions/build-electron/action.yml | 13 +++---------- .github/workflows/nightly.yml | 1 + 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/.github/actions/build-electron/action.yml b/.github/actions/build-electron/action.yml index 2c168c7ac..fb41ac392 100644 --- a/.github/actions/build-electron/action.yml +++ b/.github/actions/build-electron/action.yml @@ -11,6 +11,8 @@ inputs: extension: description: "Platform specific extensions to copy in the output: dmg, deb, rpm, exe, zip" required: true + forge_platform: + required: true runs: using: composite @@ -78,18 +80,9 @@ runs: APPLE_ID: ${{ env.APPLE_ID }} APPLE_ID_PASSWORD: ${{ env.APPLE_ID_PASSWORD }} run: | - # Map OS names to Electron Forge platform names - if [ "${{ inputs.os }}" = "macos" ]; then - PLATFORM="darwin" - elif [ "${{ inputs.os }}" = "windows" ]; then - PLATFORM="win32" - else - PLATFORM="${{ inputs.os }}" - fi - npm run electron-forge:make -- \ --arch=${{ inputs.arch }} \ - --platform=$PLATFORM + --platform=${{ inputs.forge_platform }} # Add DMG signing step - name: Sign DMG diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 0a2b88baa..eda9e3107 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -25,6 +25,7 @@ jobs: - name: windows image: windows-latest extension: [exe, zip] + forge_platform: win32 runs-on: ${{ matrix.os.image }} steps: - uses: actions/checkout@v4 From a13c9790bd1dacb9bbade104e6e4f8d4ac5125fe Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 23 Mar 2025 21:31:42 +0200 Subject: [PATCH 06/67] chore(ci): try running npm i at build step --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9fdf6cd2e..ba91c45b6 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "docs:edit-nix": "electron-rebuild --version 33.3.1 && cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_DATA_DIR=./data-docs TRILIUM_PORT=37741 TRILIUM_ENV=dev nix-shell -p electron_33 --run \"electron ./electron-docs-main.ts .\"", "electron-forge:prepare": "npm run build:prepare-dist && cp -r node_modules ./build", "electron-forge:start": "npm run electron-forge:prepare && cd ./build && electron-forge start", - "electron-forge:make": "npm run electron-forge:prepare && cd ./build && electron-forge make", + "electron-forge:make": "cd .\\build && npm i && electron-forge make", "electron-forge:package": "npm run electron-forge:prepare && cd ./build && electron-forge package", "docs:build-backend": "rimraf ./docs/backend_api && typedoc ./docs/backend_api src/becca/entities/*.ts src/services/backend_script_api.ts src/services/sql.ts", "docs:build-frontend": "rimraf ./docs/frontend_api && jsdoc -c jsdoc-conf.json -d ./docs/frontend_api src/public/app/entities/*.js src/public/app/services/frontend_script_api.js src/public/app/widgets/basic_widget.js src/public/app/widgets/note_context_aware_widget.js src/public/app/widgets/right_panel_widget.js", From 9358f90b4877a52a640fc7c24cd68bb3a346a858 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 23 Mar 2025 21:41:27 +0200 Subject: [PATCH 07/67] chore(ci): revert change --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ba91c45b6..9fdf6cd2e 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "docs:edit-nix": "electron-rebuild --version 33.3.1 && cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_DATA_DIR=./data-docs TRILIUM_PORT=37741 TRILIUM_ENV=dev nix-shell -p electron_33 --run \"electron ./electron-docs-main.ts .\"", "electron-forge:prepare": "npm run build:prepare-dist && cp -r node_modules ./build", "electron-forge:start": "npm run electron-forge:prepare && cd ./build && electron-forge start", - "electron-forge:make": "cd .\\build && npm i && electron-forge make", + "electron-forge:make": "npm run electron-forge:prepare && cd ./build && electron-forge make", "electron-forge:package": "npm run electron-forge:prepare && cd ./build && electron-forge package", "docs:build-backend": "rimraf ./docs/backend_api && typedoc ./docs/backend_api src/becca/entities/*.ts src/services/backend_script_api.ts src/services/sql.ts", "docs:build-frontend": "rimraf ./docs/frontend_api && jsdoc -c jsdoc-conf.json -d ./docs/frontend_api src/public/app/entities/*.js src/public/app/services/frontend_script_api.js src/public/app/widgets/basic_widget.js src/public/app/widgets/note_context_aware_widget.js src/public/app/widgets/right_panel_widget.js", From d128e9df25a8bafc9c74d154ffc7855f854b7ebd Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 23 Mar 2025 21:48:40 +0200 Subject: [PATCH 08/67] chore(ci): run with debug --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 9fdf6cd2e..4f746677b 100644 --- a/package.json +++ b/package.json @@ -38,16 +38,16 @@ "electron:switch": "electron-rebuild", "docs:edit": "cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_DATA_DIR=./data-docs TRILIUM_ENV=dev TRILIUM_PORT=37741 electron ./electron-docs-main.ts .", "docs:edit-nix": "electron-rebuild --version 33.3.1 && cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_DATA_DIR=./data-docs TRILIUM_PORT=37741 TRILIUM_ENV=dev nix-shell -p electron_33 --run \"electron ./electron-docs-main.ts .\"", - "electron-forge:prepare": "npm run build:prepare-dist && cp -r node_modules ./build", + "electron-forge:prepare": "npm run build:prepare-dist", "electron-forge:start": "npm run electron-forge:prepare && cd ./build && electron-forge start", - "electron-forge:make": "npm run electron-forge:prepare && cd ./build && electron-forge make", + "electron-forge:make": "npm run electron-forge:prepare && cd ./build && cross-env DEBUG=electron-forge:* electron-forge make", "electron-forge:package": "npm run electron-forge:prepare && cd ./build && electron-forge package", "docs:build-backend": "rimraf ./docs/backend_api && typedoc ./docs/backend_api src/becca/entities/*.ts src/services/backend_script_api.ts src/services/sql.ts", "docs:build-frontend": "rimraf ./docs/frontend_api && jsdoc -c jsdoc-conf.json -d ./docs/frontend_api src/public/app/entities/*.js src/public/app/services/frontend_script_api.js src/public/app/widgets/basic_widget.js src/public/app/widgets/note_context_aware_widget.js src/public/app/widgets/right_panel_widget.js", "docs:build": "npm run docs:build-backend && npm run docs:build-frontend", "build:webpack": "tsx node_modules/webpack/bin/webpack.js -c webpack.config.ts --progress", "build:ts": "tsc -p tsconfig.build.json", - "build:clean": "rimraf ./dist ./build", + "build:clean": "rimraf ./dist", "build:prepare-dist": "npm run build:clean && npm run build:ts && npm run build:webpack && tsx ./bin/copy-dist.ts", "test": "npm run client:test && npm run server:test", "server:test": "cross-env TRILIUM_ENV=dev TRILIUM_DATA_DIR=./integration-tests/db TRILIUM_INTEGRATION_TEST=memory vitest", From ab927ad88531f080c592b98947b5daec21085d1e Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 23 Mar 2025 21:55:48 +0200 Subject: [PATCH 09/67] chore(ci): set up npm ci again --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4f746677b..282d7c109 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "docs:edit-nix": "electron-rebuild --version 33.3.1 && cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_DATA_DIR=./data-docs TRILIUM_PORT=37741 TRILIUM_ENV=dev nix-shell -p electron_33 --run \"electron ./electron-docs-main.ts .\"", "electron-forge:prepare": "npm run build:prepare-dist", "electron-forge:start": "npm run electron-forge:prepare && cd ./build && electron-forge start", - "electron-forge:make": "npm run electron-forge:prepare && cd ./build && cross-env DEBUG=electron-forge:* electron-forge make", + "electron-forge:make": "npm run electron-forge:prepare && cd ./build && npm ci && cross-env DEBUG=electron-forge:* electron-forge make", "electron-forge:package": "npm run electron-forge:prepare && cd ./build && electron-forge package", "docs:build-backend": "rimraf ./docs/backend_api && typedoc ./docs/backend_api src/becca/entities/*.ts src/services/backend_script_api.ts src/services/sql.ts", "docs:build-frontend": "rimraf ./docs/frontend_api && jsdoc -c jsdoc-conf.json -d ./docs/frontend_api src/public/app/entities/*.js src/public/app/services/frontend_script_api.js src/public/app/widgets/basic_widget.js src/public/app/widgets/note_context_aware_widget.js src/public/app/widgets/right_panel_widget.js", From b4dc493a5fcf21744a1abf121d4022da8e9b2f1e Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 23 Mar 2025 22:12:31 +0200 Subject: [PATCH 10/67] chore(ci): use different way of specifying app dir --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 282d7c109..ab24d0216 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "docs:edit-nix": "electron-rebuild --version 33.3.1 && cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_DATA_DIR=./data-docs TRILIUM_PORT=37741 TRILIUM_ENV=dev nix-shell -p electron_33 --run \"electron ./electron-docs-main.ts .\"", "electron-forge:prepare": "npm run build:prepare-dist", "electron-forge:start": "npm run electron-forge:prepare && cd ./build && electron-forge start", - "electron-forge:make": "npm run electron-forge:prepare && cd ./build && npm ci && cross-env DEBUG=electron-forge:* electron-forge make", + "electron-forge:make": "npm run electron-forge:prepare && npm ci && cross-env DEBUG=electron-forge:* electron-forge make --app-path=./build", "electron-forge:package": "npm run electron-forge:prepare && cd ./build && electron-forge package", "docs:build-backend": "rimraf ./docs/backend_api && typedoc ./docs/backend_api src/becca/entities/*.ts src/services/backend_script_api.ts src/services/sql.ts", "docs:build-frontend": "rimraf ./docs/frontend_api && jsdoc -c jsdoc-conf.json -d ./docs/frontend_api src/public/app/entities/*.js src/public/app/services/frontend_script_api.js src/public/app/widgets/basic_widget.js src/public/app/widgets/note_context_aware_widget.js src/public/app/widgets/right_panel_widget.js", From 8e2a95b5c4bffaa414c0f05940a60504c91e52e8 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 23 Mar 2025 22:41:26 +0200 Subject: [PATCH 11/67] chore(ci): use different way of specifying app dir pt. 2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ab24d0216..3acb9b455 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "docs:edit-nix": "electron-rebuild --version 33.3.1 && cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_DATA_DIR=./data-docs TRILIUM_PORT=37741 TRILIUM_ENV=dev nix-shell -p electron_33 --run \"electron ./electron-docs-main.ts .\"", "electron-forge:prepare": "npm run build:prepare-dist", "electron-forge:start": "npm run electron-forge:prepare && cd ./build && electron-forge start", - "electron-forge:make": "npm run electron-forge:prepare && npm ci && cross-env DEBUG=electron-forge:* electron-forge make --app-path=./build", + "electron-forge:make": "npm run electron-forge:prepare && npm ci && cross-env DEBUG=electron-forge:* electron-forge make ./build", "electron-forge:package": "npm run electron-forge:prepare && cd ./build && electron-forge package", "docs:build-backend": "rimraf ./docs/backend_api && typedoc ./docs/backend_api src/becca/entities/*.ts src/services/backend_script_api.ts src/services/sql.ts", "docs:build-frontend": "rimraf ./docs/frontend_api && jsdoc -c jsdoc-conf.json -d ./docs/frontend_api src/public/app/entities/*.js src/public/app/services/frontend_script_api.js src/public/app/widgets/basic_widget.js src/public/app/widgets/note_context_aware_widget.js src/public/app/widgets/right_panel_widget.js", From a709f68af90e230c79b1139d5fca59c47aadc647 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 23 Mar 2025 22:47:59 +0200 Subject: [PATCH 12/67] chore(ci): set up node modules --- bin/copy-dist.ts | 1 + package.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/bin/copy-dist.ts b/bin/copy-dist.ts index 2c071142c..4e4808137 100644 --- a/bin/copy-dist.ts +++ b/bin/copy-dist.ts @@ -21,6 +21,7 @@ function copyNodeModuleFileOrFolder(source: string) { try { const assetsToCopy = new Set([ + "./node_modules", "./images", "./libraries", "./translations", diff --git a/package.json b/package.json index 3acb9b455..a5a02d1f2 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "docs:edit-nix": "electron-rebuild --version 33.3.1 && cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_DATA_DIR=./data-docs TRILIUM_PORT=37741 TRILIUM_ENV=dev nix-shell -p electron_33 --run \"electron ./electron-docs-main.ts .\"", "electron-forge:prepare": "npm run build:prepare-dist", "electron-forge:start": "npm run electron-forge:prepare && cd ./build && electron-forge start", - "electron-forge:make": "npm run electron-forge:prepare && npm ci && cross-env DEBUG=electron-forge:* electron-forge make ./build", + "electron-forge:make": "npm run electron-forge:prepare && cross-env DEBUG=electron-forge:* electron-forge make ./build", "electron-forge:package": "npm run electron-forge:prepare && cd ./build && electron-forge package", "docs:build-backend": "rimraf ./docs/backend_api && typedoc ./docs/backend_api src/becca/entities/*.ts src/services/backend_script_api.ts src/services/sql.ts", "docs:build-frontend": "rimraf ./docs/frontend_api && jsdoc -c jsdoc-conf.json -d ./docs/frontend_api src/public/app/entities/*.js src/public/app/services/frontend_script_api.js src/public/app/widgets/basic_widget.js src/public/app/widgets/note_context_aware_widget.js src/public/app/widgets/right_panel_widget.js", From fae9a1f796d083653e7c7b4cc225a9571351c124 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 23 Mar 2025 23:06:41 +0200 Subject: [PATCH 13/67] chore(ci): use electron-forge hook for gathering artifacts --- .github/actions/build-electron/action.yml | 46 ----------------------- forge.config.cjs | 15 +++++++- 2 files changed, 14 insertions(+), 47 deletions(-) diff --git a/.github/actions/build-electron/action.yml b/.github/actions/build-electron/action.yml index fb41ac392..5a4aa11a2 100644 --- a/.github/actions/build-electron/action.yml +++ b/.github/actions/build-electron/action.yml @@ -158,49 +158,3 @@ runs: echo "Found ZIP: $zip_file" echo "Note: ZIP files are not code signed, but their contents should be" fi - - - name: Prepare artifacts - shell: cmd - run: | - mkdir -p upload - - if [ "${{ inputs.os }}" = "macos" ]; then - # For macOS, we need to look in specific directories based on the maker - echo "Collecting macOS artifacts..." - - # Look for DMG files recursively - echo "Looking for DMG files..." - dmg_file=$(find ./dist -name "*.dmg" -print -quit) - if [ -n "$dmg_file" ]; then - echo "Found DMG: $dmg_file" - cp "$dmg_file" "upload/TriliumNextNotes-${{ github.ref_name }}-macos-${{ inputs.arch }}.dmg" - else - echo "Warning: No DMG file found" - fi - - # Look for ZIP files recursively - echo "Looking for ZIP files..." - zip_file=$(find ./dist -name "*.zip" -print -quit) - if [ -n "$zip_file" ]; then - echo "Found ZIP: $zip_file" - cp "$zip_file" "upload/TriliumNextNotes-${{ github.ref_name }}-macos-${{ inputs.arch }}.zip" - else - echo "Warning: No ZIP file found" - fi - else - # For other platforms, use the existing logic but with better error handling - echo "Collecting artifacts for ${{ inputs.os }}..." - for ext in ${{ inputs.extension }}; do - echo "Looking for .$ext files..." - file=$(find ./dist -name "*.$ext" -print -quit) - if [ -n "$file" ]; then - echo "Found $file for extension $ext" - cp "$file" "upload/TriliumNextNotes-${{ github.ref_name }}-${{ inputs.os }}-${{ inputs.arch }}.$ext" - else - echo "Warning: No file found with extension .$ext" - fi - done - fi - - echo "Final contents of upload directory:" - ls -la upload/ diff --git a/forge.config.cjs b/forge.config.cjs index dabcd7ca4..7cd50d44d 100644 --- a/forge.config.cjs +++ b/forge.config.cjs @@ -129,7 +129,20 @@ module.exports = { name: "@electron-forge/plugin-auto-unpack-natives", config: {} } - ] + ], + hooks: { + postMake(_, makeResults) { + const outputDir = path.join(__dirname, "upload"); + fs.mkdirp(outputDir); + for (const makeResult of makeResults) { + for (const artifactPath of makeResult.artifacts) { + const outputPath = path.join(outputDir, path.basename(artifactPath)); + console.log(`[Artifact] ${artifactPath} -> ${outputPath}`); + fs.copyFile(artifactPath, outputPath); + } + } + } + } }; function getExtraResourcesForPlatform() { From 5d2ea4337c69538c330c621321a6f86c0f7b144f Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 23 Mar 2025 23:08:02 +0200 Subject: [PATCH 14/67] fix(ci): use right directory for artifact gathering --- forge.config.cjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge.config.cjs b/forge.config.cjs index 7cd50d44d..463a6a19f 100644 --- a/forge.config.cjs +++ b/forge.config.cjs @@ -132,7 +132,7 @@ module.exports = { ], hooks: { postMake(_, makeResults) { - const outputDir = path.join(__dirname, "upload"); + const outputDir = path.join(__dirname, "..", "upload"); fs.mkdirp(outputDir); for (const makeResult of makeResults) { for (const artifactPath of makeResult.artifacts) { From dd26762b1f588e145a8a3732b3f9b7a5eeb9677e Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 23 Mar 2025 23:17:54 +0200 Subject: [PATCH 15/67] feat(ci): upload test artifacts for nightly build --- .github/workflows/nightly.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index eda9e3107..959c0807a 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -63,3 +63,10 @@ jobs: files: upload/*.* tag_name: nightly name: Nightly Build + + - name: Publish artifacts + uses: actions/upload-artifact@v4 + if: ${{ github.event_name == 'pull_request' }} + with: + name: TriliumNextNotes ${{ matrix.os.name }} ${{ matrix.arch }}.zip + path: upload From ad0f84468192e7be3455da0a928d230a30b41ffc Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 23 Mar 2025 23:20:13 +0200 Subject: [PATCH 16/67] chore(ci): use signing runner --- .github/workflows/nightly.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 959c0807a..5bfe3aa29 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -23,7 +23,7 @@ jobs: arch: [x64] os: - name: windows - image: windows-latest + image: win-signing extension: [exe, zip] forge_platform: win32 runs-on: ${{ matrix.os.image }} From 40f4fdab4761d25f89034f23b64d099a7d539e2e Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 23 Mar 2025 23:22:22 +0200 Subject: [PATCH 17/67] feat(ci): set up signing hook --- bin/copy-dist.ts | 1 + bin/electron-forge/sign-windows.cjs | 8 ++++++++ forge.config.cjs | 3 +++ 3 files changed, 12 insertions(+) create mode 100644 bin/electron-forge/sign-windows.cjs diff --git a/bin/copy-dist.ts b/bin/copy-dist.ts index 4e4808137..eaa79808e 100644 --- a/bin/copy-dist.ts +++ b/bin/copy-dist.ts @@ -34,6 +34,7 @@ try { "./forge.config.cjs", "./bin/tpl/", "./bin/electron-forge/desktop.ejs", + "./bin/electron-forge/sign-windows.cjs", "./src/views/", "./src/etapi/etapi.openapi.yaml", "./src/routes/api/openapi.json", diff --git a/bin/electron-forge/sign-windows.cjs b/bin/electron-forge/sign-windows.cjs new file mode 100644 index 000000000..446a6279e --- /dev/null +++ b/bin/electron-forge/sign-windows.cjs @@ -0,0 +1,8 @@ +const child_process = require("child_process"); +const SIGN_EXECUTABLE = "C:\\ev_signer_trilium\\ev_signer_trilium.exe"; + +module.exports = function (filePath) { + const command = `${SIGN_EXECUTABLE} --executable "${filePath}"`; + console.log(`> ${command}`); + child_process.execSync(command); +} \ No newline at end of file diff --git a/forge.config.cjs b/forge.config.cjs index 463a6a19f..288826f8a 100644 --- a/forge.config.cjs +++ b/forge.config.cjs @@ -26,6 +26,9 @@ module.exports = { appleIdPassword: process.env.APPLE_ID_PASSWORD, teamId: process.env.APPLE_TEAM_ID }, + windowsSign: { + hookModulePath: "bin\\sign-windows.cjs" + }, extraResource: [ // All resources should stay in Resources directory for macOS ...(process.platform === "darwin" ? [] : extraResourcesForPlatform), From ad8b5c7c9d9445d61cc0a5f3568c8d25e155cfba Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 24 Mar 2025 08:59:46 +0200 Subject: [PATCH 18/67] fix(ci): path for hook module script --- forge.config.cjs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/forge.config.cjs b/forge.config.cjs index 288826f8a..0524d71fa 100644 --- a/forge.config.cjs +++ b/forge.config.cjs @@ -2,11 +2,12 @@ const path = require("path"); const fs = require("fs-extra"); const APP_NAME = "TriliumNext Notes"; +const BIN_PATH = path.normalize("./bin/electron-forge"); const extraResourcesForPlatform = getExtraResourcesForPlatform(); const baseLinuxMakerConfigOptions = { icon: "./images/app-icons/png/128x128.png", - desktopTemplate: path.resolve("./bin/electron-forge/desktop.ejs"), + desktopTemplate: path.resolve(path.join(BIN_PATH, desktop.ejs)), categories: ["Office", "Utility"] }; @@ -27,7 +28,7 @@ module.exports = { teamId: process.env.APPLE_TEAM_ID }, windowsSign: { - hookModulePath: "bin\\sign-windows.cjs" + hookModulePath: path.join(BIN_PATH, "sign-windows.cjs") }, extraResource: [ // All resources should stay in Resources directory for macOS From bfdb3e2add46f6ea23d9a5ac386c4f62c1eb9c58 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 24 Mar 2025 09:00:30 +0200 Subject: [PATCH 19/67] fix(ci): double trigger for nightly --- .github/workflows/nightly.yml | 1 - forge.config.cjs | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 5bfe3aa29..326c88fe6 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -8,7 +8,6 @@ on: pull_request: paths: - .github/actions/build-electron/* - push: env: GITHUB_UPLOAD_URL: https://uploads.github.com/repos/TriliumNext/Notes/releases/179589950/assets{?name,label} GITHUB_RELEASE_ID: 179589950 diff --git a/forge.config.cjs b/forge.config.cjs index 0524d71fa..153567017 100644 --- a/forge.config.cjs +++ b/forge.config.cjs @@ -7,7 +7,7 @@ const BIN_PATH = path.normalize("./bin/electron-forge"); const extraResourcesForPlatform = getExtraResourcesForPlatform(); const baseLinuxMakerConfigOptions = { icon: "./images/app-icons/png/128x128.png", - desktopTemplate: path.resolve(path.join(BIN_PATH, desktop.ejs)), + desktopTemplate: path.resolve(path.join(BIN_PATH, "desktop.ejs")), categories: ["Office", "Utility"] }; From 58e9c7e389183be2e86467af039ff10551017cc2 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 24 Mar 2025 11:21:31 +0200 Subject: [PATCH 20/67] feat(ci): pass signing to squirrel --- forge.config.cjs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/forge.config.cjs b/forge.config.cjs index 153567017..a78f92f6c 100644 --- a/forge.config.cjs +++ b/forge.config.cjs @@ -109,7 +109,10 @@ module.exports = { config: { iconUrl: "https://raw.githubusercontent.com/TriliumNext/Notes/develop/images/app-icons/icon.ico", setupIcon: "./images/app-icons/win/setup.ico", - loadingGif: "./images/app-icons/win/setup-banner.gif" + loadingGif: "./images/app-icons/win/setup-banner.gif", + windowsSign: { + hookModulePath: path.join(BIN_PATH, "sign-windows.cjs") + } } }, { From 10d8cd95a631a641b9ea54aae6605c8d53d4c384 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 24 Mar 2025 12:05:34 +0200 Subject: [PATCH 21/67] chore(ci): enable windows installer logs --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a5a02d1f2..25118877c 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "docs:edit-nix": "electron-rebuild --version 33.3.1 && cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_DATA_DIR=./data-docs TRILIUM_PORT=37741 TRILIUM_ENV=dev nix-shell -p electron_33 --run \"electron ./electron-docs-main.ts .\"", "electron-forge:prepare": "npm run build:prepare-dist", "electron-forge:start": "npm run electron-forge:prepare && cd ./build && electron-forge start", - "electron-forge:make": "npm run electron-forge:prepare && cross-env DEBUG=electron-forge:* electron-forge make ./build", + "electron-forge:make": "npm run electron-forge:prepare && cross-env DEBUG=electron-forge:*,electron-windows-installer:* electron-forge make ./build", "electron-forge:package": "npm run electron-forge:prepare && cd ./build && electron-forge package", "docs:build-backend": "rimraf ./docs/backend_api && typedoc ./docs/backend_api src/becca/entities/*.ts src/services/backend_script_api.ts src/services/sql.ts", "docs:build-frontend": "rimraf ./docs/frontend_api && jsdoc -c jsdoc-conf.json -d ./docs/frontend_api src/public/app/entities/*.js src/public/app/services/frontend_script_api.js src/public/app/widgets/basic_widget.js src/public/app/widgets/note_context_aware_widget.js src/public/app/widgets/right_panel_widget.js", From 6f54ac7446df7f1fe5174ea1c2fc81ce58d883f8 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 24 Mar 2025 12:05:46 +0200 Subject: [PATCH 22/67] chore(ci): change signing log --- bin/electron-forge/sign-windows.cjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/electron-forge/sign-windows.cjs b/bin/electron-forge/sign-windows.cjs index 446a6279e..0862cdfaa 100644 --- a/bin/electron-forge/sign-windows.cjs +++ b/bin/electron-forge/sign-windows.cjs @@ -3,6 +3,6 @@ const SIGN_EXECUTABLE = "C:\\ev_signer_trilium\\ev_signer_trilium.exe"; module.exports = function (filePath) { const command = `${SIGN_EXECUTABLE} --executable "${filePath}"`; - console.log(`> ${command}`); + console.log(`[Sign] ${command}`); child_process.execSync(command); } \ No newline at end of file From 53860c488557eaf1c0503dbcf03ae74f025410f3 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 24 Mar 2025 12:15:15 +0200 Subject: [PATCH 23/67] chore(ci): try to use basic sign tool config --- forge.config.cjs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/forge.config.cjs b/forge.config.cjs index a78f92f6c..30a90834c 100644 --- a/forge.config.cjs +++ b/forge.config.cjs @@ -110,9 +110,8 @@ module.exports = { iconUrl: "https://raw.githubusercontent.com/TriliumNext/Notes/develop/images/app-icons/icon.ico", setupIcon: "./images/app-icons/win/setup.ico", loadingGif: "./images/app-icons/win/setup-banner.gif", - windowsSign: { - hookModulePath: path.join(BIN_PATH, "sign-windows.cjs") - } + signToolPath: "C:\\ev_signer_trilium\\ev_signer_trilium.exe", + signWithParams: "" } }, { From d5a8387c06f3dc63d4be7cfb15e17388720d4db1 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 24 Mar 2025 12:41:38 +0200 Subject: [PATCH 24/67] Revert "chore(ci): try to use basic sign tool config" This reverts commit 53860c488557eaf1c0503dbcf03ae74f025410f3. --- forge.config.cjs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/forge.config.cjs b/forge.config.cjs index 30a90834c..a78f92f6c 100644 --- a/forge.config.cjs +++ b/forge.config.cjs @@ -110,8 +110,9 @@ module.exports = { iconUrl: "https://raw.githubusercontent.com/TriliumNext/Notes/develop/images/app-icons/icon.ico", setupIcon: "./images/app-icons/win/setup.ico", loadingGif: "./images/app-icons/win/setup-banner.gif", - signToolPath: "C:\\ev_signer_trilium\\ev_signer_trilium.exe", - signWithParams: "" + windowsSign: { + hookModulePath: path.join(BIN_PATH, "sign-windows.cjs") + } } }, { From 18a5a55384aa55cd46db029a2d7f3022dc63f451 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 24 Mar 2025 12:42:01 +0200 Subject: [PATCH 25/67] chore(ci): remove debug logs --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 25118877c..92ed50fb3 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "docs:edit-nix": "electron-rebuild --version 33.3.1 && cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_DATA_DIR=./data-docs TRILIUM_PORT=37741 TRILIUM_ENV=dev nix-shell -p electron_33 --run \"electron ./electron-docs-main.ts .\"", "electron-forge:prepare": "npm run build:prepare-dist", "electron-forge:start": "npm run electron-forge:prepare && cd ./build && electron-forge start", - "electron-forge:make": "npm run electron-forge:prepare && cross-env DEBUG=electron-forge:*,electron-windows-installer:* electron-forge make ./build", + "electron-forge:make": "npm run electron-forge:prepare && cross-env electron-forge make ./build", "electron-forge:package": "npm run electron-forge:prepare && cd ./build && electron-forge package", "docs:build-backend": "rimraf ./docs/backend_api && typedoc ./docs/backend_api src/becca/entities/*.ts src/services/backend_script_api.ts src/services/sql.ts", "docs:build-frontend": "rimraf ./docs/frontend_api && jsdoc -c jsdoc-conf.json -d ./docs/frontend_api src/public/app/entities/*.js src/public/app/services/frontend_script_api.js src/public/app/widgets/basic_widget.js src/public/app/widgets/note_context_aware_widget.js src/public/app/widgets/right_panel_widget.js", From 308632ea516e46b65d3f0998bf412ab3750782c7 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 24 Mar 2025 13:30:37 +0200 Subject: [PATCH 26/67] chore(ci): re-enable Windows signing logs --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 92ed50fb3..2dbb59fda 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "docs:edit-nix": "electron-rebuild --version 33.3.1 && cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_DATA_DIR=./data-docs TRILIUM_PORT=37741 TRILIUM_ENV=dev nix-shell -p electron_33 --run \"electron ./electron-docs-main.ts .\"", "electron-forge:prepare": "npm run build:prepare-dist", "electron-forge:start": "npm run electron-forge:prepare && cd ./build && electron-forge start", - "electron-forge:make": "npm run electron-forge:prepare && cross-env electron-forge make ./build", + "electron-forge:make": "npm run electron-forge:prepare && cross-env DEBUG=electron-windows-installer:* electron-forge make ./build", "electron-forge:package": "npm run electron-forge:prepare && cd ./build && electron-forge package", "docs:build-backend": "rimraf ./docs/backend_api && typedoc ./docs/backend_api src/becca/entities/*.ts src/services/backend_script_api.ts src/services/sql.ts", "docs:build-frontend": "rimraf ./docs/frontend_api && jsdoc -c jsdoc-conf.json -d ./docs/frontend_api src/public/app/entities/*.js src/public/app/services/frontend_script_api.js src/public/app/widgets/basic_widget.js src/public/app/widgets/note_context_aware_widget.js src/public/app/widgets/right_panel_widget.js", From d4e8d9e942b6f054b735b4a8b844f72ec664ed4f Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 24 Mar 2025 16:55:39 +0200 Subject: [PATCH 27/67] fix(docker): missing sign windows script --- .dockerignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.dockerignore b/.dockerignore index a4e242a99..2ceb847c9 100644 --- a/.dockerignore +++ b/.dockerignore @@ -34,6 +34,7 @@ npm-debug.log # exceptions !/bin/copy-dist.ts +!/bin/electron-forge/sign-windows.cjs # temporary exception to make copy-dist inside Docker build not fail # TriliumNextTODO: make copy-dist *not* requiring to copy this file for builds other than electron-forge From 3413c5e40104eadaec650d0960aa1c1e11facc45 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 24 Mar 2025 16:55:47 +0200 Subject: [PATCH 28/67] fix(nightly): double .zip in name --- .github/workflows/nightly.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 326c88fe6..cf8b894e8 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -67,5 +67,5 @@ jobs: uses: actions/upload-artifact@v4 if: ${{ github.event_name == 'pull_request' }} with: - name: TriliumNextNotes ${{ matrix.os.name }} ${{ matrix.arch }}.zip + name: TriliumNextNotes ${{ matrix.os.name }} ${{ matrix.arch }} path: upload From 34043a8a70206af7262d6a87027d1c6df7e7f406 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 24 Mar 2025 17:00:37 +0200 Subject: [PATCH 29/67] feat(signing): use environment variables for the executable path --- .github/actions/build-electron/action.yml | 1 + .github/workflows/nightly.yml | 1 + bin/electron-forge/sign-windows.cjs | 10 ++++++++-- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.github/actions/build-electron/action.yml b/.github/actions/build-electron/action.yml index 5a4aa11a2..4f8f0bea2 100644 --- a/.github/actions/build-electron/action.yml +++ b/.github/actions/build-electron/action.yml @@ -79,6 +79,7 @@ runs: APPLE_TEAM_ID: ${{ env.APPLE_TEAM_ID }} APPLE_ID: ${{ env.APPLE_ID }} APPLE_ID_PASSWORD: ${{ env.APPLE_ID_PASSWORD }} + WINDOWS_SIGN_EXECUTABLE: ${{ env.WINDOWS_SIGN_EXECUTABLE }} run: | npm run electron-forge:make -- \ --arch=${{ inputs.arch }} \ diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index cf8b894e8..1b947391f 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -50,6 +50,7 @@ jobs: APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} APPLE_ID: ${{ secrets.APPLE_ID }} APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} + WINDOWS_SIGN_EXECUTABLE: ${{ vars.WINDOWS_SIGN_EXECUTABLE }} - name: Publish release uses: softprops/action-gh-release@v2 diff --git a/bin/electron-forge/sign-windows.cjs b/bin/electron-forge/sign-windows.cjs index 0862cdfaa..527a27dc6 100644 --- a/bin/electron-forge/sign-windows.cjs +++ b/bin/electron-forge/sign-windows.cjs @@ -1,8 +1,14 @@ const child_process = require("child_process"); -const SIGN_EXECUTABLE = "C:\\ev_signer_trilium\\ev_signer_trilium.exe"; module.exports = function (filePath) { - const command = `${SIGN_EXECUTABLE} --executable "${filePath}"`; + const { WINDOWS_SIGN_EXECUTABLE } = process.env; + + if (!WINDOWS_SIGN_EXECUTABLE) { + console.warn("[Sign] Skip signing due to missing environment variable."); + return; + } + + const command = `${WINDOWS_SIGN_EXECUTABLE} --executable "${filePath}"`; console.log(`[Sign] ${command}`); child_process.execSync(command); } \ No newline at end of file From 9aaada3f6e43c2d4a970fafbf76dc1d093c5bd3a Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 24 Mar 2025 17:04:22 +0200 Subject: [PATCH 30/67] refactor(forge): deduplicate windows signing configuration --- forge.config.cjs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/forge.config.cjs b/forge.config.cjs index a78f92f6c..2e381386f 100644 --- a/forge.config.cjs +++ b/forge.config.cjs @@ -10,6 +10,9 @@ const baseLinuxMakerConfigOptions = { desktopTemplate: path.resolve(path.join(BIN_PATH, "desktop.ejs")), categories: ["Office", "Utility"] }; +const windowsSignConfiguration = { + hookModulePath: path.join(BIN_PATH, "sign-windows.cjs") +} module.exports = { // we run electron-forge inside the ./build folder, @@ -27,9 +30,7 @@ module.exports = { appleIdPassword: process.env.APPLE_ID_PASSWORD, teamId: process.env.APPLE_TEAM_ID }, - windowsSign: { - hookModulePath: path.join(BIN_PATH, "sign-windows.cjs") - }, + windowsSign: windowsSignConfiguration, extraResource: [ // All resources should stay in Resources directory for macOS ...(process.platform === "darwin" ? [] : extraResourcesForPlatform), @@ -110,9 +111,7 @@ module.exports = { iconUrl: "https://raw.githubusercontent.com/TriliumNext/Notes/develop/images/app-icons/icon.ico", setupIcon: "./images/app-icons/win/setup.ico", loadingGif: "./images/app-icons/win/setup-banner.gif", - windowsSign: { - hookModulePath: path.join(BIN_PATH, "sign-windows.cjs") - } + windowsSign: windowsSignConfiguration } }, { From d942daea9486d25b23091f17bd93c681769eb3b8 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 24 Mar 2025 17:10:19 +0200 Subject: [PATCH 31/67] chore(ci): customize shell per platform --- .github/actions/build-electron/action.yml | 19 +++++++++++-------- .github/workflows/main.yml | 4 ++++ .github/workflows/nightly.yml | 2 ++ .github/workflows/release.yml | 4 ++++ 4 files changed, 21 insertions(+), 8 deletions(-) diff --git a/.github/actions/build-electron/action.yml b/.github/actions/build-electron/action.yml index 4f8f0bea2..5a355a2f7 100644 --- a/.github/actions/build-electron/action.yml +++ b/.github/actions/build-electron/action.yml @@ -11,6 +11,9 @@ inputs: extension: description: "Platform specific extensions to copy in the output: dmg, deb, rpm, exe, zip" required: true + shell: + description: "Which shell to use" + required: true forge_platform: required: true @@ -40,21 +43,21 @@ runs: - name: Verify certificates if: inputs.os == 'macos' - shell: cmd + shell: ${{ inputs.shell }} run: | echo "Available signing identities:" security find-identity -v -p codesigning build.keychain - name: Set up Python and other macOS dependencies if: ${{ inputs.os == 'macos' }} - shell: cmd + shell: ${{ inputs.shell }} run: | brew install python-setuptools brew install create-dmg - name: Install dependencies for RPM and Flatpak package building if: ${{ inputs.os == 'linux' }} - shell: cmd + shell: ${{ inputs.shell }} run: | sudo apt-get update && sudo apt-get install rpm flatpak-builder elfutils flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo @@ -64,16 +67,16 @@ runs: # Build setup - name: Install dependencies - shell: cmd + shell: ${{ inputs.shell }} run: npm ci - name: Update build info - shell: cmd + shell: ${{ inputs.shell }} run: npm run chore:update-build-info # Critical debugging configuration - name: Run electron-forge build with enhanced logging - shell: cmd + shell: ${{ inputs.shell }} env: # Pass through required environment variables for signing and notarization APPLE_TEAM_ID: ${{ env.APPLE_TEAM_ID }} @@ -88,7 +91,7 @@ runs: # Add DMG signing step - name: Sign DMG if: inputs.os == 'macos' - shell: cmd + shell: ${{ inputs.shell }} run: | echo "Signing DMG file..." dmg_file=$(find ./dist -name "*.dmg" -print -quit) @@ -113,7 +116,7 @@ runs: - name: Verify code signing if: inputs.os == 'macos' - shell: cmd + shell: ${{ inputs.shell }} run: | echo "Verifying code signing for all artifacts..." diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 1acdf4709..4479d8f07 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -24,12 +24,15 @@ jobs: - name: macos image: macos-latest extension: [dmg, zip] + shell: bash - name: linux image: ubuntu-latest extension: [deb, rpm, zip, flatpak] + shell: bash - name: windows image: windows-latest extension: [exe, zip] + shell: cmd runs-on: ${{ matrix.os.image }} steps: - uses: actions/checkout@v4 @@ -43,6 +46,7 @@ jobs: os: ${{ matrix.os.name }} arch: ${{ matrix.arch }} extension: ${{ matrix.os.extension }} + shell: ${{ matrix.os.shell }} env: APPLE_APP_CERTIFICATE_BASE64: ${{ secrets.APPLE_APP_CERTIFICATE_BASE64 }} APPLE_APP_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_APP_CERTIFICATE_PASSWORD }} diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 1b947391f..6c70d1046 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -25,6 +25,7 @@ jobs: image: win-signing extension: [exe, zip] forge_platform: win32 + shell: cmd runs-on: ${{ matrix.os.image }} steps: - uses: actions/checkout@v4 @@ -42,6 +43,7 @@ jobs: os: ${{ matrix.os.name }} arch: ${{ matrix.arch }} extension: ${{ join(matrix.os.extension, ' ') }} + shell: ${{ matrix.os.shell }} env: APPLE_APP_CERTIFICATE_BASE64: ${{ secrets.APPLE_APP_CERTIFICATE_BASE64 }} APPLE_APP_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_APP_CERTIFICATE_PASSWORD }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index dc523893b..dca1c1c08 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,12 +21,15 @@ jobs: - name: macos image: macos-latest extension: [dmg, zip] + shell: bash - name: linux image: ubuntu-latest extension: [deb, rpm, zip, flatpak] + shell: bash - name: windows image: windows-latest extension: [exe, zip] + shell: cmd runs-on: ${{ matrix.os.image }} steps: - uses: actions/checkout@v4 @@ -40,6 +43,7 @@ jobs: os: ${{ matrix.os.name }} arch: ${{ matrix.arch }} extension: ${{ join(matrix.os.extension, ' ') }} + shell: ${{ matrix.os.shell }} env: APPLE_APP_CERTIFICATE_BASE64: ${{ secrets.APPLE_APP_CERTIFICATE_BASE64 }} APPLE_APP_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_APP_CERTIFICATE_PASSWORD }} From 6a2818cea6679bddaec80f7f350d48de7210b8b5 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 24 Mar 2025 17:12:11 +0200 Subject: [PATCH 32/67] chore(ci): define forge_platform everywhere --- .github/workflows/main.yml | 4 ++++ .github/workflows/nightly.yml | 1 + .github/workflows/release.yml | 4 ++++ 3 files changed, 9 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4479d8f07..a01f4bdbd 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -25,14 +25,17 @@ jobs: image: macos-latest extension: [dmg, zip] shell: bash + forge_platform: darwin - name: linux image: ubuntu-latest extension: [deb, rpm, zip, flatpak] shell: bash + forge_platform: linux - name: windows image: windows-latest extension: [exe, zip] shell: cmd + forge_platform: win32 runs-on: ${{ matrix.os.image }} steps: - uses: actions/checkout@v4 @@ -47,6 +50,7 @@ jobs: arch: ${{ matrix.arch }} extension: ${{ matrix.os.extension }} shell: ${{ matrix.os.shell }} + forge_platform: ${{ matrix.os.forge_platform }} env: APPLE_APP_CERTIFICATE_BASE64: ${{ secrets.APPLE_APP_CERTIFICATE_BASE64 }} APPLE_APP_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_APP_CERTIFICATE_PASSWORD }} diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 6c70d1046..a23e0a1c8 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -44,6 +44,7 @@ jobs: arch: ${{ matrix.arch }} extension: ${{ join(matrix.os.extension, ' ') }} shell: ${{ matrix.os.shell }} + forge_platform: ${{ matrix.os.forge_platform }} env: APPLE_APP_CERTIFICATE_BASE64: ${{ secrets.APPLE_APP_CERTIFICATE_BASE64 }} APPLE_APP_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_APP_CERTIFICATE_PASSWORD }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index dca1c1c08..675801a2d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -22,14 +22,17 @@ jobs: image: macos-latest extension: [dmg, zip] shell: bash + forge_platform: darwin - name: linux image: ubuntu-latest extension: [deb, rpm, zip, flatpak] shell: bash + forge_platform: linux - name: windows image: windows-latest extension: [exe, zip] shell: cmd + forge_platform: win32 runs-on: ${{ matrix.os.image }} steps: - uses: actions/checkout@v4 @@ -44,6 +47,7 @@ jobs: arch: ${{ matrix.arch }} extension: ${{ join(matrix.os.extension, ' ') }} shell: ${{ matrix.os.shell }} + forge_platform: ${{ matrix.os.forge_platform }} env: APPLE_APP_CERTIFICATE_BASE64: ${{ secrets.APPLE_APP_CERTIFICATE_BASE64 }} APPLE_APP_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_APP_CERTIFICATE_PASSWORD }} From 3acb5dad30d61e2af918c395e4c4553acd1ab3d7 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 24 Mar 2025 17:13:08 +0200 Subject: [PATCH 33/67] refactor(ci): remove redundant main workflow --- .github/workflows/main.yml | 101 ------------------------------------- 1 file changed, 101 deletions(-) delete mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml deleted file mode 100644 index a01f4bdbd..000000000 --- a/.github/workflows/main.yml +++ /dev/null @@ -1,101 +0,0 @@ -name: Main -on: - push: - branches: - - "feature/update**" - - "feature/server_esm**" - paths-ignore: - - "docs/**" - - ".github/workflows/main-docker.yml" - workflow_dispatch: - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - make-electron: - name: Make Electron - strategy: - fail-fast: false - matrix: - arch: [x64, arm64] - os: - - name: macos - image: macos-latest - extension: [dmg, zip] - shell: bash - forge_platform: darwin - - name: linux - image: ubuntu-latest - extension: [deb, rpm, zip, flatpak] - shell: bash - forge_platform: linux - - name: windows - image: windows-latest - extension: [exe, zip] - shell: cmd - forge_platform: win32 - runs-on: ${{ matrix.os.image }} - steps: - - uses: actions/checkout@v4 - - name: Set up node & dependencies - uses: actions/setup-node@v4 - with: - node-version: 20 - - name: Run the build - uses: ./.github/actions/build-electron - with: - os: ${{ matrix.os.name }} - arch: ${{ matrix.arch }} - extension: ${{ matrix.os.extension }} - shell: ${{ matrix.os.shell }} - forge_platform: ${{ matrix.os.forge_platform }} - env: - APPLE_APP_CERTIFICATE_BASE64: ${{ secrets.APPLE_APP_CERTIFICATE_BASE64 }} - APPLE_APP_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_APP_CERTIFICATE_PASSWORD }} - APPLE_INSTALLER_CERTIFICATE_BASE64: ${{ secrets.APPLE_INSTALLER_CERTIFICATE_BASE64 }} - APPLE_INSTALLER_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_INSTALLER_CERTIFICATE_PASSWORD }} - APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} - APPLE_ID: ${{ secrets.APPLE_ID }} - APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} - - # Clean up keychain after build - - name: Clean up keychain - if: matrix.os.name == 'macos' && always() - run: | - security delete-keychain build.keychain - - - name: Publish artifacts - uses: actions/upload-artifact@v4 - with: - name: TriliumNextNotes ${{ matrix.os.name }} ${{ matrix.arch }}.zip - path: upload/*.zip - - name: Publish installer artifacts - uses: actions/upload-artifact@v4 - with: - name: TriliumNextNotes ${{ matrix.os.name }} ${{ matrix.arch }}.${{matrix.os.extension}} - path: upload/*.${{ matrix.os.extension }} - - build_linux_server: - name: Build Linux Server - strategy: - fail-fast: false - matrix: - arch: [x64, arm64] - include: - - arch: x64 - runs-on: ubuntu-latest - - arch: arm64 - runs-on: ubuntu-24.04-arm - runs-on: ${{ matrix.runs-on }} - steps: - - uses: actions/checkout@v4 - - name: Run the build - uses: ./.github/actions/build-server - with: - arch: ${{ matrix.arch }} - - uses: actions/upload-artifact@v4 - with: - name: TriliumNextNotes linux server ${{ matrix.arch }} - path: upload/TriliumNextNotes-linux-${{ matrix.arch }}-${{ github.ref_name }}.tar.xz From 2045865df2b5821f4ff3b990969d85eb9e3495e1 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 24 Mar 2025 17:14:22 +0200 Subject: [PATCH 34/67] chore(ci): add back all platforms --- .github/workflows/nightly.yml | 16 +++++++++++++--- .github/workflows/release.yml | 1 + 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index a23e0a1c8..dce554492 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -19,13 +19,23 @@ jobs: strategy: fail-fast: false matrix: - arch: [x64] + arch: [x64, arm64] os: + - name: macos + image: macos-latest + extension: [dmg, zip] + shell: bash + forge_platform: darwin + - name: linux + image: ubuntu-latest + extension: [deb, rpm, zip, flatpak] + shell: bash + forge_platform: linux - name: windows - image: win-signing + image: windows-latest extension: [exe, zip] - forge_platform: win32 shell: cmd + forge_platform: win32 runs-on: ${{ matrix.os.image }} steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 675801a2d..e3925d2c9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -56,6 +56,7 @@ jobs: APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} APPLE_ID: ${{ secrets.APPLE_ID }} APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} + WINDOWS_SIGN_EXECUTABLE: ${{ vars.WINDOWS_SIGN_EXECUTABLE }} - name: Publish release uses: softprops/action-gh-release@v2 From 9f3fee2d06f7034fccc21524dc7cb9f5cdfd57b4 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 24 Mar 2025 17:15:46 +0200 Subject: [PATCH 35/67] chore(ci): remove now redundant input --- .github/actions/build-electron/action.yml | 3 --- .github/workflows/nightly.yml | 3 --- .github/workflows/release.yml | 3 --- 3 files changed, 9 deletions(-) diff --git a/.github/actions/build-electron/action.yml b/.github/actions/build-electron/action.yml index 5a355a2f7..3695e9f35 100644 --- a/.github/actions/build-electron/action.yml +++ b/.github/actions/build-electron/action.yml @@ -8,9 +8,6 @@ inputs: arch: description: "The architecture to build for: x64, arm64" required: true - extension: - description: "Platform specific extensions to copy in the output: dmg, deb, rpm, exe, zip" - required: true shell: description: "Which shell to use" required: true diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index dce554492..ffbfc554c 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -23,17 +23,14 @@ jobs: os: - name: macos image: macos-latest - extension: [dmg, zip] shell: bash forge_platform: darwin - name: linux image: ubuntu-latest - extension: [deb, rpm, zip, flatpak] shell: bash forge_platform: linux - name: windows image: windows-latest - extension: [exe, zip] shell: cmd forge_platform: win32 runs-on: ${{ matrix.os.image }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e3925d2c9..ca5a59c4e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -20,17 +20,14 @@ jobs: os: - name: macos image: macos-latest - extension: [dmg, zip] shell: bash forge_platform: darwin - name: linux image: ubuntu-latest - extension: [deb, rpm, zip, flatpak] shell: bash forge_platform: linux - name: windows image: windows-latest - extension: [exe, zip] shell: cmd forge_platform: win32 runs-on: ${{ matrix.os.image }} From c25d42cf5d6d210d817a15caba1b4f944d051004 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 24 Mar 2025 17:30:37 +0200 Subject: [PATCH 36/67] chore(ci): solve issues after review --- .github/actions/build-electron/action.yml | 1 + package.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/actions/build-electron/action.yml b/.github/actions/build-electron/action.yml index 3695e9f35..dc203c667 100644 --- a/.github/actions/build-electron/action.yml +++ b/.github/actions/build-electron/action.yml @@ -12,6 +12,7 @@ inputs: description: "Which shell to use" required: true forge_platform: + description: "The --platform to pass to Electron Forge" required: true runs: diff --git a/package.json b/package.json index 2dbb59fda..b7e5ea491 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "docs:build": "npm run docs:build-backend && npm run docs:build-frontend", "build:webpack": "tsx node_modules/webpack/bin/webpack.js -c webpack.config.ts --progress", "build:ts": "tsc -p tsconfig.build.json", - "build:clean": "rimraf ./dist", + "build:clean": "rimraf ./dist ./build", "build:prepare-dist": "npm run build:clean && npm run build:ts && npm run build:webpack && tsx ./bin/copy-dist.ts", "test": "npm run client:test && npm run server:test", "server:test": "cross-env TRILIUM_ENV=dev TRILIUM_DATA_DIR=./integration-tests/db TRILIUM_INTEGRATION_TEST=memory vitest", From 04a8bb94b6375ba0d983403265424faeda0baadb Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 24 Mar 2025 17:32:14 +0200 Subject: [PATCH 37/67] fix(ci): wrong runner for signing --- .github/workflows/nightly.yml | 2 +- .github/workflows/release.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index ffbfc554c..898a0ba8c 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -30,7 +30,7 @@ jobs: shell: bash forge_platform: linux - name: windows - image: windows-latest + image: win-signing shell: cmd forge_platform: win32 runs-on: ${{ matrix.os.image }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ca5a59c4e..704dce32d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -27,7 +27,7 @@ jobs: shell: bash forge_platform: linux - name: windows - image: windows-latest + image: win-signing shell: cmd forge_platform: win32 runs-on: ${{ matrix.os.image }} From 3e14ffe1e73f371db67eb2fbd84a20e599f9275c Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 24 Mar 2025 17:42:38 +0200 Subject: [PATCH 38/67] fix(test): flaky test due to concurrency --- src/services/backup.ts | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/services/backup.ts b/src/services/backup.ts index 8e9851602..5a4b1077d 100644 --- a/src/services/backup.ts +++ b/src/services/backup.ts @@ -76,6 +76,10 @@ async function backupNow(name: string) { return await syncMutexService.doExclusively(async () => { const backupFile = `${dataDir.BACKUP_DIR}/backup-${name}.db`; + if (!fs.existsSync(dataDir.BACKUP_DIR)) { + fs.mkdirSync(dataDir.BACKUP_DIR, 0o700); + } + await sql.copyDatabase(backupFile); log.info(`Created backup at ${backupFile}`); @@ -83,11 +87,6 @@ async function backupNow(name: string) { return backupFile; }); } - -if (!fs.existsSync(dataDir.BACKUP_DIR)) { - fs.mkdirSync(dataDir.BACKUP_DIR, 0o700); -} - export default { getExistingBackups, backupNow, From 9aef24eeccfeba0e5bfe165e484e2f266eef2fb0 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 24 Mar 2025 17:52:01 +0200 Subject: [PATCH 39/67] chore(ci): remove unnecessary extension input --- .github/workflows/nightly.yml | 1 - .github/workflows/release.yml | 1 - 2 files changed, 2 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 898a0ba8c..f63c9f578 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -49,7 +49,6 @@ jobs: with: os: ${{ matrix.os.name }} arch: ${{ matrix.arch }} - extension: ${{ join(matrix.os.extension, ' ') }} shell: ${{ matrix.os.shell }} forge_platform: ${{ matrix.os.forge_platform }} env: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 704dce32d..4f791bda0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -42,7 +42,6 @@ jobs: with: os: ${{ matrix.os.name }} arch: ${{ matrix.arch }} - extension: ${{ join(matrix.os.extension, ' ') }} shell: ${{ matrix.os.shell }} forge_platform: ${{ matrix.os.forge_platform }} env: From 6f26f4d7986ccc737b5e2567de21d0f8da807714 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 24 Mar 2025 17:53:04 +0200 Subject: [PATCH 40/67] fix(forge): allow local building by ignoring the signing options --- forge.config.cjs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/forge.config.cjs b/forge.config.cjs index 2e381386f..71973e29e 100644 --- a/forge.config.cjs +++ b/forge.config.cjs @@ -10,9 +10,9 @@ const baseLinuxMakerConfigOptions = { desktopTemplate: path.resolve(path.join(BIN_PATH, "desktop.ejs")), categories: ["Office", "Utility"] }; -const windowsSignConfiguration = { +const windowsSignConfiguration = process.env.WINDOWS_SIGN_EXECUTABLE ? { hookModulePath: path.join(BIN_PATH, "sign-windows.cjs") -} +} : undefined; module.exports = { // we run electron-forge inside the ./build folder, From 4108f7f35314f63e168648e4d1ca88d71946f132 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 24 Mar 2025 19:04:38 +0200 Subject: [PATCH 41/67] chore(forge): ignore certain artifacts --- forge.config.cjs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/forge.config.cjs b/forge.config.cjs index 71973e29e..6032eec04 100644 --- a/forge.config.cjs +++ b/forge.config.cjs @@ -142,7 +142,13 @@ module.exports = { fs.mkdirp(outputDir); for (const makeResult of makeResults) { for (const artifactPath of makeResult.artifacts) { - const outputPath = path.join(outputDir, path.basename(artifactPath)); + // Ignore certain artifacts. + const fileName = path.basename(artifactPath); + if (fileName === "RELEASES" || path.extname(fileName) === ".nupkg") { + continue; + } + + const outputPath = path.join(outputDir, fileName); console.log(`[Artifact] ${artifactPath} -> ${outputPath}`); fs.copyFile(artifactPath, outputPath); } From a7d6bf1bd8764c775a3be0023ee98bee4c732213 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 24 Mar 2025 19:10:29 +0200 Subject: [PATCH 42/67] feat(forge): match name for artifacts --- .github/actions/build-electron/action.yml | 1 + forge.config.cjs | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.github/actions/build-electron/action.yml b/.github/actions/build-electron/action.yml index dc203c667..6c1b6d819 100644 --- a/.github/actions/build-electron/action.yml +++ b/.github/actions/build-electron/action.yml @@ -81,6 +81,7 @@ runs: APPLE_ID: ${{ env.APPLE_ID }} APPLE_ID_PASSWORD: ${{ env.APPLE_ID_PASSWORD }} WINDOWS_SIGN_EXECUTABLE: ${{ env.WINDOWS_SIGN_EXECUTABLE }} + TRILIUM_ARTIFACT_NAME_HINT: TriliumNextNotes ${{ inputs.os }} ${{ inputs.arch }} run: | npm run electron-forge:make -- \ --arch=${{ inputs.arch }} \ diff --git a/forge.config.cjs b/forge.config.cjs index 6032eec04..ba3d8c3ff 100644 --- a/forge.config.cjs +++ b/forge.config.cjs @@ -143,11 +143,18 @@ module.exports = { for (const makeResult of makeResults) { for (const artifactPath of makeResult.artifacts) { // Ignore certain artifacts. - const fileName = path.basename(artifactPath); - if (fileName === "RELEASES" || path.extname(fileName) === ".nupkg") { + let fileName = path.basename(artifactPath); + const extension = path.extname(fileName); + if (fileName === "RELEASES" || extension === ".nupkg") { continue; } + // Override the extension for the CI. + const { TRILIUM_ARTIFACT_NAME_HINT } = process.env; + if (TRILIUM_ARTIFACT_NAME_HINT) { + fileName = TRILIUM_ARTIFACT_NAME_HINT + extension; + } + const outputPath = path.join(outputDir, fileName); console.log(`[Artifact] ${artifactPath} -> ${outputPath}`); fs.copyFile(artifactPath, outputPath); From 19389e4ea04a90b8532fef2378248ba265334fb8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 25 Mar 2025 02:58:22 +0000 Subject: [PATCH 43/67] chore(deps): update dependency @types/react to v18.3.20 --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 24b1755ef..4af5a28df 100644 --- a/package-lock.json +++ b/package-lock.json @@ -143,7 +143,7 @@ "@types/mime-types": "2.1.4", "@types/multer": "1.4.12", "@types/node": "22.13.11", - "@types/react": "18.3.19", + "@types/react": "18.3.20", "@types/react-dom": "18.3.5", "@types/safe-compare": "1.1.2", "@types/sanitize-html": "2.13.0", @@ -5955,9 +5955,9 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "18.3.19", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.19.tgz", - "integrity": "sha512-fcdJqaHOMDbiAwJnXv6XCzX0jDW77yI3tJqYh1Byn8EL5/S628WRx9b/y3DnNe55zTukUQKrfYxiZls2dHcUMw==", + "version": "18.3.20", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.20.tgz", + "integrity": "sha512-IPaCZN7PShZK/3t6Q87pfTkRm6oLTd4vztyoj+cbHUF1g3FfVb2tFIL79uCRKEfv16AhqDMBywP2VW3KIZUvcg==", "devOptional": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 2f7f8d0e8..d25144657 100644 --- a/package.json +++ b/package.json @@ -200,7 +200,7 @@ "@types/mime-types": "2.1.4", "@types/multer": "1.4.12", "@types/node": "22.13.11", - "@types/react": "18.3.19", + "@types/react": "18.3.20", "@types/react-dom": "18.3.5", "@types/safe-compare": "1.1.2", "@types/sanitize-html": "2.13.0", From 042172cd5358b0a1c6499d42154b2d9c38ebee14 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 25 Mar 2025 02:58:33 +0000 Subject: [PATCH 44/67] chore(deps): update dependency @types/supertest to v6.0.3 --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 24b1755ef..47ef02020 100644 --- a/package-lock.json +++ b/package-lock.json @@ -152,7 +152,7 @@ "@types/session-file-store": "1.2.5", "@types/source-map-support": "0.5.10", "@types/stream-throttle": "0.1.4", - "@types/supertest": "6.0.2", + "@types/supertest": "6.0.3", "@types/swagger-ui-express": "4.1.8", "@types/tmp": "0.2.6", "@types/turndown": "5.0.5", @@ -6106,9 +6106,9 @@ } }, "node_modules/@types/supertest": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@types/supertest/-/supertest-6.0.2.tgz", - "integrity": "sha512-137ypx2lk/wTQbW6An6safu9hXmajAifU/s7szAHLN/FeIm5w7yR0Wkl9fdJMRSHwOn4HLAI0DaB2TOORuhPDg==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/supertest/-/supertest-6.0.3.tgz", + "integrity": "sha512-8WzXq62EXFhJ7QsH3Ocb/iKQ/Ty9ZVWnVzoTKc9tyyFRRF3a74Tk2+TLFgaFFw364Ere+npzHKEJ6ga2LzIL7w==", "dev": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 2f7f8d0e8..71c53ab53 100644 --- a/package.json +++ b/package.json @@ -209,7 +209,7 @@ "@types/session-file-store": "1.2.5", "@types/source-map-support": "0.5.10", "@types/stream-throttle": "0.1.4", - "@types/supertest": "6.0.2", + "@types/supertest": "6.0.3", "@types/swagger-ui-express": "4.1.8", "@types/tmp": "0.2.6", "@types/turndown": "5.0.5", From 220bcbd12c0560450a774c133248fc541533af16 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 25 Mar 2025 02:58:48 +0000 Subject: [PATCH 45/67] chore(deps): update dependency typescript-eslint to v8.28.0 --- package-lock.json | 98 +++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 50 insertions(+), 50 deletions(-) diff --git a/package-lock.json b/package-lock.json index 24b1755ef..891904ed0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -192,7 +192,7 @@ "tsx": "4.19.3", "typedoc": "0.28.1", "typescript": "5.8.2", - "typescript-eslint": "8.27.0", + "typescript-eslint": "8.28.0", "vitest": "3.0.9", "webpack": "5.98.0", "webpack-cli": "6.0.1", @@ -6210,17 +6210,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.27.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.27.0.tgz", - "integrity": "sha512-4henw4zkePi5p252c8ncBLzLce52SEUz2Ebj8faDnuUXz2UuHEONYcJ+G0oaCF+bYCWVZtrGzq3FD7YXetmnSA==", + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.28.0.tgz", + "integrity": "sha512-lvFK3TCGAHsItNdWZ/1FkvpzCxTHUVuFrdnOGLMa0GGCFIbCgQWVk3CzCGdA7kM3qGVc+dfW9tr0Z/sHnGDFyg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.27.0", - "@typescript-eslint/type-utils": "8.27.0", - "@typescript-eslint/utils": "8.27.0", - "@typescript-eslint/visitor-keys": "8.27.0", + "@typescript-eslint/scope-manager": "8.28.0", + "@typescript-eslint/type-utils": "8.28.0", + "@typescript-eslint/utils": "8.28.0", + "@typescript-eslint/visitor-keys": "8.28.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -6240,16 +6240,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.27.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.27.0.tgz", - "integrity": "sha512-XGwIabPallYipmcOk45DpsBSgLC64A0yvdAkrwEzwZ2viqGqRUJ8eEYoPz0CWnutgAFbNMPdsGGvzjSmcWVlEA==", + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.28.0.tgz", + "integrity": "sha512-LPcw1yHD3ToaDEoljFEfQ9j2xShY367h7FZ1sq5NJT9I3yj4LHer1Xd1yRSOdYy9BpsrxU7R+eoDokChYM53lQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.27.0", - "@typescript-eslint/types": "8.27.0", - "@typescript-eslint/typescript-estree": "8.27.0", - "@typescript-eslint/visitor-keys": "8.27.0", + "@typescript-eslint/scope-manager": "8.28.0", + "@typescript-eslint/types": "8.28.0", + "@typescript-eslint/typescript-estree": "8.28.0", + "@typescript-eslint/visitor-keys": "8.28.0", "debug": "^4.3.4" }, "engines": { @@ -6265,14 +6265,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.27.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.27.0.tgz", - "integrity": "sha512-8oI9GwPMQmBryaaxG1tOZdxXVeMDte6NyJA4i7/TWa4fBwgnAXYlIQP+uYOeqAaLJ2JRxlG9CAyL+C+YE9Xknw==", + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.28.0.tgz", + "integrity": "sha512-u2oITX3BJwzWCapoZ/pXw6BCOl8rJP4Ij/3wPoGvY8XwvXflOzd1kLrDUUUAIEdJSFh+ASwdTHqtan9xSg8buw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.27.0", - "@typescript-eslint/visitor-keys": "8.27.0" + "@typescript-eslint/types": "8.28.0", + "@typescript-eslint/visitor-keys": "8.28.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6283,14 +6283,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.27.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.27.0.tgz", - "integrity": "sha512-wVArTVcz1oJOIEJxui/nRhV0TXzD/zMSOYi/ggCfNq78EIszddXcJb7r4RCp/oBrjt8n9A0BSxRMKxHftpDxDA==", + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.28.0.tgz", + "integrity": "sha512-oRoXu2v0Rsy/VoOGhtWrOKDiIehvI+YNrDk5Oqj40Mwm0Yt01FC/Q7nFqg088d3yAsR1ZcZFVfPCTTFCe/KPwg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.27.0", - "@typescript-eslint/utils": "8.27.0", + "@typescript-eslint/typescript-estree": "8.28.0", + "@typescript-eslint/utils": "8.28.0", "debug": "^4.3.4", "ts-api-utils": "^2.0.1" }, @@ -6307,9 +6307,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.27.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.27.0.tgz", - "integrity": "sha512-/6cp9yL72yUHAYq9g6DsAU+vVfvQmd1a8KyA81uvfDE21O2DwQ/qxlM4AR8TSdAu+kJLBDrEHKC5/W2/nxsY0A==", + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.28.0.tgz", + "integrity": "sha512-bn4WS1bkKEjx7HqiwG2JNB3YJdC1q6Ue7GyGlwPHyt0TnVq6TtD/hiOdTZt71sq0s7UzqBFXD8t8o2e63tXgwA==", "dev": true, "license": "MIT", "engines": { @@ -6321,14 +6321,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.27.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.27.0.tgz", - "integrity": "sha512-BnKq8cqPVoMw71O38a1tEb6iebEgGA80icSxW7g+kndx0o6ot6696HjG7NdgfuAVmVEtwXUr3L8R9ZuVjoQL6A==", + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.28.0.tgz", + "integrity": "sha512-H74nHEeBGeklctAVUvmDkxB1mk+PAZ9FiOMPFncdqeRBXxk1lWSYraHw8V12b7aa6Sg9HOBNbGdSHobBPuQSuA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.27.0", - "@typescript-eslint/visitor-keys": "8.27.0", + "@typescript-eslint/types": "8.28.0", + "@typescript-eslint/visitor-keys": "8.28.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -6374,16 +6374,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.27.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.27.0.tgz", - "integrity": "sha512-njkodcwH1yvmo31YWgRHNb/x1Xhhq4/m81PhtvmRngD8iHPehxffz1SNCO+kwaePhATC+kOa/ggmvPoPza5i0Q==", + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.28.0.tgz", + "integrity": "sha512-OELa9hbTYciYITqgurT1u/SzpQVtDLmQMFzy/N8pQE+tefOyCWT79jHsav294aTqV1q1u+VzqDGbuujvRYaeSQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.27.0", - "@typescript-eslint/types": "8.27.0", - "@typescript-eslint/typescript-estree": "8.27.0" + "@typescript-eslint/scope-manager": "8.28.0", + "@typescript-eslint/types": "8.28.0", + "@typescript-eslint/typescript-estree": "8.28.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6398,13 +6398,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.27.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.27.0.tgz", - "integrity": "sha512-WsXQwMkILJvffP6z4U3FYJPlbf/j07HIxmDjZpbNvBJkMfvwXj5ACRkkHwBDvLBbDbtX5TdU64/rcvKJ/vuInQ==", + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.28.0.tgz", + "integrity": "sha512-hbn8SZ8w4u2pRwgQ1GlUrPKE+t2XvcCW5tTRF7j6SMYIuYG37XuzIW44JCZPa36evi0Oy2SnM664BlIaAuQcvg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.27.0", + "@typescript-eslint/types": "8.28.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -20681,15 +20681,15 @@ } }, "node_modules/typescript-eslint": { - "version": "8.27.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.27.0.tgz", - "integrity": "sha512-ZZ/8+Y0rRUMuW1gJaPtLWe4ryHbsPLzzibk5Sq+IFa2aOH1Vo0gPr1fbA6pOnzBke7zC2Da4w8AyCgxKXo3lqA==", + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.28.0.tgz", + "integrity": "sha512-jfZtxJoHm59bvoCMYCe2BM0/baMswRhMmYhy+w6VfcyHrjxZ0OJe0tGasydCpIpA+A/WIJhTyZfb3EtwNC/kHQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.27.0", - "@typescript-eslint/parser": "8.27.0", - "@typescript-eslint/utils": "8.27.0" + "@typescript-eslint/eslint-plugin": "8.28.0", + "@typescript-eslint/parser": "8.28.0", + "@typescript-eslint/utils": "8.28.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" diff --git a/package.json b/package.json index 2f7f8d0e8..fb040b644 100644 --- a/package.json +++ b/package.json @@ -249,7 +249,7 @@ "tsx": "4.19.3", "typedoc": "0.28.1", "typescript": "5.8.2", - "typescript-eslint": "8.27.0", + "typescript-eslint": "8.28.0", "vitest": "3.0.9", "webpack": "5.98.0", "webpack-cli": "6.0.1", From 9b96cb61cc453a39c01e5a15eba2f2d2a2de7274 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 25 Mar 2025 02:59:03 +0000 Subject: [PATCH 46/67] chore(deps): update electron-forge monorepo to v7.8.0 --- package-lock.json | 243 +++++++++++++++++++++++----------------------- package.json | 16 +-- 2 files changed, 130 insertions(+), 129 deletions(-) diff --git a/package-lock.json b/package-lock.json index 24b1755ef..dbd375048 100644 --- a/package-lock.json +++ b/package-lock.json @@ -100,14 +100,14 @@ "trilium": "src/main.js" }, "devDependencies": { - "@electron-forge/cli": "7.7.0", - "@electron-forge/maker-deb": "7.7.0", - "@electron-forge/maker-dmg": "7.7.0", - "@electron-forge/maker-flatpak": "7.7.0", - "@electron-forge/maker-rpm": "7.7.0", - "@electron-forge/maker-squirrel": "7.7.0", - "@electron-forge/maker-zip": "7.7.0", - "@electron-forge/plugin-auto-unpack-natives": "7.7.0", + "@electron-forge/cli": "7.8.0", + "@electron-forge/maker-deb": "7.8.0", + "@electron-forge/maker-dmg": "7.8.0", + "@electron-forge/maker-flatpak": "7.8.0", + "@electron-forge/maker-rpm": "7.8.0", + "@electron-forge/maker-squirrel": "7.8.0", + "@electron-forge/maker-zip": "7.8.0", + "@electron-forge/plugin-auto-unpack-natives": "7.8.0", "@electron/rebuild": "3.7.1", "@eslint/js": "9.23.0", "@fullcalendar/core": "6.1.15", @@ -569,9 +569,9 @@ } }, "node_modules/@electron-forge/cli": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@electron-forge/cli/-/cli-7.7.0.tgz", - "integrity": "sha512-QfnjghmlHMb7dyArR5cbPA+MP9ff/ulWZi6R/a5MkHlKyhrysRfjzDtZDsmkEv9mGQgRwylssgXrZrKHGlxFkw==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@electron-forge/cli/-/cli-7.8.0.tgz", + "integrity": "sha512-XZ+Hg7pxeE9pgrahqcpMlND+VH0l0UTZLyO5wkI+YfanNyBQksB2mw24XeEtCA6x8F2IaEYdIGgijmPF6qpjzA==", "dev": true, "funding": [ { @@ -585,15 +585,16 @@ ], "license": "MIT", "dependencies": { - "@electron-forge/core": "7.7.0", - "@electron-forge/core-utils": "7.7.0", - "@electron-forge/shared-types": "7.7.0", + "@electron-forge/core": "7.8.0", + "@electron-forge/core-utils": "7.8.0", + "@electron-forge/shared-types": "7.8.0", "@electron/get": "^3.0.0", "chalk": "^4.0.0", "commander": "^11.1.0", "debug": "^4.3.1", "fs-extra": "^10.0.0", "listr2": "^7.0.2", + "log-symbols": "^4.0.0", "semver": "^7.2.1" }, "bin": { @@ -634,9 +635,9 @@ } }, "node_modules/@electron-forge/core": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@electron-forge/core/-/core-7.7.0.tgz", - "integrity": "sha512-BWhg1Zw1bhpDuZowGH3lXDiL9zZBsYFNjtqyMqmkjcEm5xf9Dzs8mpRpNjtkpf3jit3LB4PNGMLj3c8ix0h4vQ==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@electron-forge/core/-/core-7.8.0.tgz", + "integrity": "sha512-7byf660ECZND+irOhGxvpmRXjk1bMrsTWh5J2AZMEvaXI8tub9OrZY9VSbi5fcDt0lpHPKmgVk7NRf/ZjJ+beQ==", "dev": true, "funding": [ { @@ -650,17 +651,17 @@ ], "license": "MIT", "dependencies": { - "@electron-forge/core-utils": "7.7.0", - "@electron-forge/maker-base": "7.7.0", - "@electron-forge/plugin-base": "7.7.0", - "@electron-forge/publisher-base": "7.7.0", - "@electron-forge/shared-types": "7.7.0", - "@electron-forge/template-base": "7.7.0", - "@electron-forge/template-vite": "7.7.0", - "@electron-forge/template-vite-typescript": "7.7.0", - "@electron-forge/template-webpack": "7.7.0", - "@electron-forge/template-webpack-typescript": "7.7.0", - "@electron-forge/tracer": "7.7.0", + "@electron-forge/core-utils": "7.8.0", + "@electron-forge/maker-base": "7.8.0", + "@electron-forge/plugin-base": "7.8.0", + "@electron-forge/publisher-base": "7.8.0", + "@electron-forge/shared-types": "7.8.0", + "@electron-forge/template-base": "7.8.0", + "@electron-forge/template-vite": "7.8.0", + "@electron-forge/template-vite-typescript": "7.8.0", + "@electron-forge/template-webpack": "7.8.0", + "@electron-forge/template-webpack-typescript": "7.8.0", + "@electron-forge/tracer": "7.8.0", "@electron/get": "^3.0.0", "@electron/packager": "^18.3.5", "@electron/rebuild": "^3.7.0", @@ -689,13 +690,13 @@ } }, "node_modules/@electron-forge/core-utils": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@electron-forge/core-utils/-/core-utils-7.7.0.tgz", - "integrity": "sha512-kgOkiLzqnySkcpt26rBg8AoZsI1ID3f6s/dQlzfRJisWZTKTu4ryiMcaC0F07DVjaYFnEl9SQ86IvkTcyS97mQ==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@electron-forge/core-utils/-/core-utils-7.8.0.tgz", + "integrity": "sha512-ZioRzqkXVOGuwkfvXN/FPZxcssJ9AkOZx6RvxomQn90F77G2KfEbw4ZwAxVTQ+jWNUzydTic5qavWle++Y5IeA==", "dev": true, "license": "MIT", "dependencies": { - "@electron-forge/shared-types": "7.7.0", + "@electron-forge/shared-types": "7.8.0", "@electron/rebuild": "^3.7.0", "@malept/cross-spawn-promise": "^2.0.0", "chalk": "^4.0.0", @@ -766,13 +767,13 @@ } }, "node_modules/@electron-forge/maker-base": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@electron-forge/maker-base/-/maker-base-7.7.0.tgz", - "integrity": "sha512-9u+mmBLBAUHuH0+IGw94EGVTDD4CPKX05h5pp5/PIaijy16ss5dymK4vEp3s2XJMFlza2PsCgLLYBgDcAE2Dqg==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-base/-/maker-base-7.8.0.tgz", + "integrity": "sha512-yGRvz70w+NnKO7PhzNFRgYM+x6kxYFgpbChJIQBs3WChd9bGjL+MZLrwYqmxOFLpWNwRAJ6PEi4E/8U5GgV6AQ==", "dev": true, "license": "MIT", "dependencies": { - "@electron-forge/shared-types": "7.7.0", + "@electron-forge/shared-types": "7.8.0", "fs-extra": "^10.0.0", "which": "^2.0.2" }, @@ -809,14 +810,14 @@ } }, "node_modules/@electron-forge/maker-deb": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@electron-forge/maker-deb/-/maker-deb-7.7.0.tgz", - "integrity": "sha512-yMT0TWpCwXaC9+AYpSr9PBIhcZR297wdJUk5PnEnIROsvOW2y1sh7ny7YdHXTxkvhWdbqY8sLQruL3BE+CyE8w==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-deb/-/maker-deb-7.8.0.tgz", + "integrity": "sha512-9jjhLm/1IBIo0UuRdELgvBhUkNjK3tHNlUsrqeb8EJwWJZShbPwHYZJj+VbgjQfJFFzhHwBBDJViBXJ/4ePv+g==", "dev": true, "license": "MIT", "dependencies": { - "@electron-forge/maker-base": "7.7.0", - "@electron-forge/shared-types": "7.7.0" + "@electron-forge/maker-base": "7.8.0", + "@electron-forge/shared-types": "7.8.0" }, "engines": { "node": ">= 16.4.0" @@ -826,14 +827,14 @@ } }, "node_modules/@electron-forge/maker-dmg": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@electron-forge/maker-dmg/-/maker-dmg-7.7.0.tgz", - "integrity": "sha512-Hq4nsY6eOdtigN4RLc9i2SbLEr46J6FfbdU+r39R/EVIJ82WRk7JPrCqbckEM7KY1TjhmrnhPWeviWoGAjbXhA==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-dmg/-/maker-dmg-7.8.0.tgz", + "integrity": "sha512-ml6GpHvUyhOapIF1ALEM4zCqXiAf2+t+3FqKnjNtiVbH5fnV2CW//SWWozrvAGTrYGi/6V4s9TL/rIek0BHOPA==", "dev": true, "license": "MIT", "dependencies": { - "@electron-forge/maker-base": "7.7.0", - "@electron-forge/shared-types": "7.7.0", + "@electron-forge/maker-base": "7.8.0", + "@electron-forge/shared-types": "7.8.0", "fs-extra": "^10.0.0" }, "engines": { @@ -872,14 +873,14 @@ } }, "node_modules/@electron-forge/maker-flatpak": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@electron-forge/maker-flatpak/-/maker-flatpak-7.7.0.tgz", - "integrity": "sha512-WDNmGTulgPe4FEgxq128TI58EtVyS2Fq3loXhfirNuzoXpBtvt0LHK447cmtKHAvZZ+R802uriTcj28L+Iub3A==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-flatpak/-/maker-flatpak-7.8.0.tgz", + "integrity": "sha512-tnOWQLVvNZVO9xWmhUHK4OsQgYUpEIn0DX1M8FkgQCYSDXcPg/CZaZ66zqj/gu1KzGAOWg1m5KlTbITRY5Jmcg==", "dev": true, "license": "MIT", "dependencies": { - "@electron-forge/maker-base": "7.7.0", - "@electron-forge/shared-types": "7.7.0", + "@electron-forge/maker-base": "7.8.0", + "@electron-forge/shared-types": "7.8.0", "fs-extra": "^10.0.0" }, "engines": { @@ -918,14 +919,14 @@ } }, "node_modules/@electron-forge/maker-rpm": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@electron-forge/maker-rpm/-/maker-rpm-7.7.0.tgz", - "integrity": "sha512-M9cFO6bCnOuA6BwBUUw35FrnWciWeFyLuByO0KOn3zEYeBDqG2fbBgXXS6OKcRHrpnJVTwiLY5S7eviyO1DJzQ==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-rpm/-/maker-rpm-7.8.0.tgz", + "integrity": "sha512-oTH951NE39LOX2wYMg+C06vBZDWUP/0dsK01PlXEl5e5YfQM5Cifsk3E7BzE6BpZdWRJL3k/ETqpyYeIGNb1jw==", "dev": true, "license": "MIT", "dependencies": { - "@electron-forge/maker-base": "7.7.0", - "@electron-forge/shared-types": "7.7.0" + "@electron-forge/maker-base": "7.8.0", + "@electron-forge/shared-types": "7.8.0" }, "engines": { "node": ">= 16.4.0" @@ -935,14 +936,14 @@ } }, "node_modules/@electron-forge/maker-squirrel": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@electron-forge/maker-squirrel/-/maker-squirrel-7.7.0.tgz", - "integrity": "sha512-9Gcq8e6+1MuXGeE7bEpk7VTd86c0riXTsDFKW8OqwVozeBYhoCd6GU59RmI3b7mcAIKOY1cBY97B+/5bnZ8ZYg==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-squirrel/-/maker-squirrel-7.8.0.tgz", + "integrity": "sha512-On8WIyjNtNlWf8NJRRVToighGCCU+wcxytFM0F8Zx/pLszgc01bt7wIarOiAIzuIT9Z8vshAYA0iG1U099jfeA==", "dev": true, "license": "MIT", "dependencies": { - "@electron-forge/maker-base": "7.7.0", - "@electron-forge/shared-types": "7.7.0", + "@electron-forge/maker-base": "7.8.0", + "@electron-forge/shared-types": "7.8.0", "fs-extra": "^10.0.0" }, "engines": { @@ -981,14 +982,14 @@ } }, "node_modules/@electron-forge/maker-zip": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@electron-forge/maker-zip/-/maker-zip-7.7.0.tgz", - "integrity": "sha512-/rRFiPcojk0hcn+NOfHv2SlMNvghBk1RN0nuLHbbe8r+C0vG4LJV9ee/Y0HhVKkcpapJOQ+MasXJ86fzAp5uAg==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-zip/-/maker-zip-7.8.0.tgz", + "integrity": "sha512-7MLD7GkZdlGecC9GvgBu0sWYt48p3smYvr+YCwlpdH1CTeLmWhvCqeH33a2AB0XI5CY8U8jnkG2jgdTkzr/EQw==", "dev": true, "license": "MIT", "dependencies": { - "@electron-forge/maker-base": "7.7.0", - "@electron-forge/shared-types": "7.7.0", + "@electron-forge/maker-base": "7.8.0", + "@electron-forge/shared-types": "7.8.0", "cross-zip": "^4.0.0", "fs-extra": "^10.0.0", "got": "^11.8.5" @@ -1026,53 +1027,53 @@ } }, "node_modules/@electron-forge/plugin-auto-unpack-natives": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@electron-forge/plugin-auto-unpack-natives/-/plugin-auto-unpack-natives-7.7.0.tgz", - "integrity": "sha512-cYeD4x2oQXUyK4+DtIR6wMxcIHvyPgsJq1diEuBoQ+MFTh+s6DXZl6JvwtI3scD0XieCkzcmUmf8ygzqs124+w==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@electron-forge/plugin-auto-unpack-natives/-/plugin-auto-unpack-natives-7.8.0.tgz", + "integrity": "sha512-JGal5ltZmbTQ5rNq67OgGC4MJ2zjjFW0fqykHy8X9J8cgaH7SRdKkT4yYZ8jH01IAF1J57FD2zIob1MvcBqjcg==", "dev": true, "license": "MIT", "dependencies": { - "@electron-forge/plugin-base": "7.7.0", - "@electron-forge/shared-types": "7.7.0" + "@electron-forge/plugin-base": "7.8.0", + "@electron-forge/shared-types": "7.8.0" }, "engines": { "node": ">= 16.4.0" } }, "node_modules/@electron-forge/plugin-base": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@electron-forge/plugin-base/-/plugin-base-7.7.0.tgz", - "integrity": "sha512-6wisQ4ZKOWey48wFF+JHzih7AuQuVma5KauwNEju2Dh2ibwDMJmPy0FWVolMSg7XUIMbGKLADGilxX6XRv8qNQ==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@electron-forge/plugin-base/-/plugin-base-7.8.0.tgz", + "integrity": "sha512-rDeeChRWIp5rQVo3Uc1q0ncUvA+kWWURW7tMuQjPvy2qVSgX+jIf5krk+T1Dp06+D4YZzEIrkibRaamAaIcR1w==", "dev": true, "license": "MIT", "dependencies": { - "@electron-forge/shared-types": "7.7.0" + "@electron-forge/shared-types": "7.8.0" }, "engines": { "node": ">= 16.4.0" } }, "node_modules/@electron-forge/publisher-base": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@electron-forge/publisher-base/-/publisher-base-7.7.0.tgz", - "integrity": "sha512-jHKvUc1peBBSl2t5d1x6M3CNyCMyNB+NnTO9LmA1dWFQ3oRDFwromIH5KjRqPJj6l4AyH0/XJogdO7Nn4Eyn6Q==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@electron-forge/publisher-base/-/publisher-base-7.8.0.tgz", + "integrity": "sha512-wrZyptJ0Uqvlh2wYzDZfIu2HgCQ+kdGiBlcucmLY4W+GUqf043O8cbYso3D9NXQxOow55QC/1saCQkgLphprPA==", "dev": true, "license": "MIT", "dependencies": { - "@electron-forge/shared-types": "7.7.0" + "@electron-forge/shared-types": "7.8.0" }, "engines": { "node": ">= 16.4.0" } }, "node_modules/@electron-forge/shared-types": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@electron-forge/shared-types/-/shared-types-7.7.0.tgz", - "integrity": "sha512-1zQsmudkAuHv0HnJtSJY3pvTeuN3fnSa9BR6cbeUlcpOfrnG4OTG03FqerHfyIWaBRVy7jGgif0NhKKE9azKyg==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@electron-forge/shared-types/-/shared-types-7.8.0.tgz", + "integrity": "sha512-Ul+7HPvAZiAirqpZm0vc9YvlkAE+2bcrI10p3t50mEtuxn5VO/mB72NXiEKfWzHm8F31JySIe9bUV6s1MHQcCw==", "dev": true, "license": "MIT", "dependencies": { - "@electron-forge/tracer": "7.7.0", + "@electron-forge/tracer": "7.8.0", "@electron/packager": "^18.3.5", "@electron/rebuild": "^3.7.0", "listr2": "^7.0.2" @@ -1082,14 +1083,14 @@ } }, "node_modules/@electron-forge/template-base": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@electron-forge/template-base/-/template-base-7.7.0.tgz", - "integrity": "sha512-jwnhEHNIyQfbwJ6R8SuZIJApHKBykDr/rSgUF3km9nr2qAUSoUUV7RaJa/uiQJMtvamXenuo5K84C2NzumzS3A==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@electron-forge/template-base/-/template-base-7.8.0.tgz", + "integrity": "sha512-hc8NwoDqEEmZFH/p0p3MK/7xygMmI+cm8Gavoj2Mr2xS7VUUu4r3b5PwIGKvkLfPG34uwsiVwtid2t1rWGF4UA==", "dev": true, "license": "MIT", "dependencies": { - "@electron-forge/core-utils": "7.7.0", - "@electron-forge/shared-types": "7.7.0", + "@electron-forge/core-utils": "7.8.0", + "@electron-forge/shared-types": "7.8.0", "@malept/cross-spawn-promise": "^2.0.0", "debug": "^4.3.1", "fs-extra": "^10.0.0", @@ -1128,14 +1129,14 @@ } }, "node_modules/@electron-forge/template-vite": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@electron-forge/template-vite/-/template-vite-7.7.0.tgz", - "integrity": "sha512-6p+U6FDWrmF7XgSLkrO07OOgJcrrrArbnExSckGJdBnupxmIDf1Y+exwfHHKdxX6/FfkA6JST5nRGjgA5CFqcw==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@electron-forge/template-vite/-/template-vite-7.8.0.tgz", + "integrity": "sha512-bf/jd8WzD0gU7Jet+WSi0Lm0SQmseb08WY27ZfJYEs2EVNMiwDfPicgQnOaqP++2yTrXhj1OY/rolZCP9CUyVw==", "dev": true, "license": "MIT", "dependencies": { - "@electron-forge/shared-types": "7.7.0", - "@electron-forge/template-base": "7.7.0", + "@electron-forge/shared-types": "7.8.0", + "@electron-forge/template-base": "7.8.0", "fs-extra": "^10.0.0" }, "engines": { @@ -1143,14 +1144,14 @@ } }, "node_modules/@electron-forge/template-vite-typescript": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@electron-forge/template-vite-typescript/-/template-vite-typescript-7.7.0.tgz", - "integrity": "sha512-32C/+PF+hIloTdbRx7OutvqnTkkC7BHeQxNw4/zG2TfQ3cjl7JUD6A2UvTUHtv5KHkK2hDw6ZdahPwpJO41YSA==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@electron-forge/template-vite-typescript/-/template-vite-typescript-7.8.0.tgz", + "integrity": "sha512-kW3CaVxKHUYuVfY+rT3iepeZ69frBRGh3YZOngLY2buCvGIqNEx+VCgrFBRDDbOKGmwQtwO1E9wp2rtC8q6Ztg==", "dev": true, "license": "MIT", "dependencies": { - "@electron-forge/shared-types": "7.7.0", - "@electron-forge/template-base": "7.7.0", + "@electron-forge/shared-types": "7.8.0", + "@electron-forge/template-base": "7.8.0", "fs-extra": "^10.0.0" }, "engines": { @@ -1214,14 +1215,14 @@ } }, "node_modules/@electron-forge/template-webpack": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@electron-forge/template-webpack/-/template-webpack-7.7.0.tgz", - "integrity": "sha512-7Hb1wejKqtvPXqhelubUNAh39FtClB/4JDtWzyAsL2iC3XeB5qh6pITz8+nW/rF2qW/JAepc/lnreqKn34P2ig==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@electron-forge/template-webpack/-/template-webpack-7.8.0.tgz", + "integrity": "sha512-AdLGC6NVgrd7Q0SaaeiwJKmSBjN6C2EHxZgLMy1yxNSpazU9m3DtYQilDjXqmCWfxkeNzdke0NaeDvLgdJSw5A==", "dev": true, "license": "MIT", "dependencies": { - "@electron-forge/shared-types": "7.7.0", - "@electron-forge/template-base": "7.7.0", + "@electron-forge/shared-types": "7.8.0", + "@electron-forge/template-base": "7.8.0", "fs-extra": "^10.0.0" }, "engines": { @@ -1229,14 +1230,14 @@ } }, "node_modules/@electron-forge/template-webpack-typescript": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@electron-forge/template-webpack-typescript/-/template-webpack-typescript-7.7.0.tgz", - "integrity": "sha512-w1vRAjGy0MjjdEDYPpZcpkMo2e3z5uEwfJdwVOpBeha7p2WM/Y6go21K+7pSqGp8Xmq4zlE20hq5MEx8Bs8eZg==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@electron-forge/template-webpack-typescript/-/template-webpack-typescript-7.8.0.tgz", + "integrity": "sha512-Pl8l+gv3HzqCfFIMLxlEsoAkNd0VEWeZZ675SYyqs0/kBQUifn0bKNhVE4gUZwKGgQCcG1Gvb23KdVGD3H3XmA==", "dev": true, "license": "MIT", "dependencies": { - "@electron-forge/shared-types": "7.7.0", - "@electron-forge/template-base": "7.7.0", + "@electron-forge/shared-types": "7.8.0", + "@electron-forge/template-base": "7.8.0", "fs-extra": "^10.0.0" }, "engines": { @@ -1300,9 +1301,9 @@ } }, "node_modules/@electron-forge/tracer": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@electron-forge/tracer/-/tracer-7.7.0.tgz", - "integrity": "sha512-R/JiGFzWhwfVyc6ioT4l5FFChRLS4Z2tWPeQfPcyoemdpzKpI1rvMHti42gzWXFW8GdzkhG0G3ZWfKiF3y3x/Q==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@electron-forge/tracer/-/tracer-7.8.0.tgz", + "integrity": "sha512-t4fIATZEX6/7PJNfyh6tLzKEsNMpO01Nz/rgHWBxeRvjCw5UNul9OOxoM7b43vfFAO9Jv++34oI3VJ09LeVQ2Q==", "dev": true, "license": "MIT", "dependencies": { @@ -1313,9 +1314,9 @@ } }, "node_modules/@electron/asar": { - "version": "3.2.17", - "resolved": "https://registry.npmjs.org/@electron/asar/-/asar-3.2.17.tgz", - "integrity": "sha512-OcWImUI686w8LkghQj9R2ynZ2ME693Ek6L1SiaAgqGKzBaTIZw3fHDqN82Rcl+EU1Gm9EgkJ5KLIY/q5DCRbbA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@electron/asar/-/asar-3.3.1.tgz", + "integrity": "sha512-WtpC/+34p0skWZiarRjLAyqaAX78DofhDxnREy/V5XHfu1XEXbFCSSMcDQ6hNCPJFaPy8/NnUgYuf9uiCkvKPg==", "dev": true, "license": "MIT", "dependencies": { @@ -1511,9 +1512,9 @@ } }, "node_modules/@electron/osx-sign": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@electron/osx-sign/-/osx-sign-1.3.2.tgz", - "integrity": "sha512-KqVlm9WMWq19lBpCXQoThC/Koaiji2zotUDYwZDaZlZZym+FXY9mQW8wN6sUQ93nkVc42f3TQ1S/XN9S1kjM5Q==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@electron/osx-sign/-/osx-sign-1.3.3.tgz", + "integrity": "sha512-KZ8mhXvWv2rIEgMbWZ4y33bDHyUKMXnx4M0sTyPNK/vcB81ImdeY9Ggdqy0SWbMDgmbqyQ+phgejh6V3R2QuSg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -1677,13 +1678,13 @@ } }, "node_modules/@electron/universal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-2.0.1.tgz", - "integrity": "sha512-fKpv9kg4SPmt+hY7SVBnIYULE9QJl8L3sCfcBsnqbJwwBwAeTLokJ9TRt9y7bK0JAzIW2y78TVVjvnQEms/yyA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-2.0.2.tgz", + "integrity": "sha512-mqY1szx5/d5YLvfCDWWoJdkSIjIz+NdWN4pN0r78lYiE7De+slLpuF3lVxIT+hlJnwk5sH2wFRMl6/oUgUVO3A==", "dev": true, "license": "MIT", "dependencies": { - "@electron/asar": "^3.2.7", + "@electron/asar": "^3.3.1", "@malept/cross-spawn-promise": "^2.0.0", "debug": "^4.3.1", "dir-compare": "^4.2.0", diff --git a/package.json b/package.json index 2f7f8d0e8..ec3db7f27 100644 --- a/package.json +++ b/package.json @@ -157,14 +157,14 @@ "yauzl": "3.2.0" }, "devDependencies": { - "@electron-forge/cli": "7.7.0", - "@electron-forge/maker-deb": "7.7.0", - "@electron-forge/maker-dmg": "7.7.0", - "@electron-forge/maker-flatpak": "7.7.0", - "@electron-forge/maker-rpm": "7.7.0", - "@electron-forge/maker-squirrel": "7.7.0", - "@electron-forge/maker-zip": "7.7.0", - "@electron-forge/plugin-auto-unpack-natives": "7.7.0", + "@electron-forge/cli": "7.8.0", + "@electron-forge/maker-deb": "7.8.0", + "@electron-forge/maker-dmg": "7.8.0", + "@electron-forge/maker-flatpak": "7.8.0", + "@electron-forge/maker-rpm": "7.8.0", + "@electron-forge/maker-squirrel": "7.8.0", + "@electron-forge/maker-zip": "7.8.0", + "@electron-forge/plugin-auto-unpack-natives": "7.8.0", "@electron/rebuild": "3.7.1", "@eslint/js": "9.23.0", "@fullcalendar/core": "6.1.15", From 269cfc46898111471642f2623e6fcdf2733e69f3 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 25 Mar 2025 10:47:13 +0200 Subject: [PATCH 47/67] feat(ci): trigger on renovate electron forge --- .github/workflows/nightly.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 0ab203be0..184f69c93 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -5,6 +5,9 @@ on: - cron: "0 2 * * *" # run at 2 AM UTC # This can be used to allow manually triggering nightlies from the web interface workflow_dispatch: + push: + branches: + - renovate/electron-forge* pull_request: paths: - .github/actions/build-electron/* From 4aa834b23a9340e2281aa99244a3fd34df88e6e0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 25 Mar 2025 08:51:39 +0000 Subject: [PATCH 48/67] chore(deps): update dependency @types/node to v22.13.13 --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4d5310916..0d733311a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -142,7 +142,7 @@ "@types/leaflet-gpx": "1.3.7", "@types/mime-types": "2.1.4", "@types/multer": "1.4.12", - "@types/node": "22.13.11", + "@types/node": "22.13.13", "@types/react": "18.3.20", "@types/react-dom": "18.3.5", "@types/safe-compare": "1.1.2", @@ -5925,9 +5925,9 @@ } }, "node_modules/@types/node": { - "version": "22.13.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.11.tgz", - "integrity": "sha512-iEUCUJoU0i3VnrCmgoWCXttklWcvoCIx4jzcP22fioIVSdTmjgoEvmAO/QPw6TcS9k5FrNgn4w7q5lGOd1CT5g==", + "version": "22.13.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.13.tgz", + "integrity": "sha512-ClsL5nMwKaBRwPcCvH8E7+nU4GxHVx1axNvMZTFHMEfNI7oahimt26P5zjVCRrjiIWj6YFXfE1v3dEp94wLcGQ==", "license": "MIT", "dependencies": { "undici-types": "~6.20.0" diff --git a/package.json b/package.json index 10dd49835..221d27286 100644 --- a/package.json +++ b/package.json @@ -199,7 +199,7 @@ "@types/leaflet-gpx": "1.3.7", "@types/mime-types": "2.1.4", "@types/multer": "1.4.12", - "@types/node": "22.13.11", + "@types/node": "22.13.13", "@types/react": "18.3.20", "@types/react-dom": "18.3.5", "@types/safe-compare": "1.1.2", From c4559749f14494f6e6bc2a9e9466765726043fbe Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 25 Mar 2025 19:48:07 +0200 Subject: [PATCH 49/67] feat(settings): display option to adjust formatting locale --- .../widgets/type_widgets/options/i18n/i18n.ts | 32 ++++++++++++++++--- src/public/translations/en/translation.json | 3 +- src/services/i18n.ts | 5 ++- 3 files changed, 34 insertions(+), 6 deletions(-) diff --git a/src/public/app/widgets/type_widgets/options/i18n/i18n.ts b/src/public/app/widgets/type_widgets/options/i18n/i18n.ts index 6f3861920..e3bf86837 100644 --- a/src/public/app/widgets/type_widgets/options/i18n/i18n.ts +++ b/src/public/app/widgets/type_widgets/options/i18n/i18n.ts @@ -3,6 +3,7 @@ import server from "../../../../services/server.js"; import utils from "../../../../services/utils.js"; import { getAvailableLocales, t } from "../../../../services/i18n.js"; import type { OptionMap } from "../../../../../../services/options_interface.js"; +import type { Locale } from "../../../../../../services/i18n.js"; const TPL = `
@@ -14,6 +15,13 @@ const TPL = `
+
+ + +
+ + +
@@ -35,6 +43,7 @@ const TPL = ` export default class LocalizationOptions extends OptionsWidget { private $localeSelect!: JQuery; + private $formattingLocaleSelect!: JQuery; doRender() { this.$widget = $(TPL); @@ -46,6 +55,8 @@ export default class LocalizationOptions extends OptionsWidget { utils.reloadFrontendApp("locale change"); }); + this.$formattingLocaleSelect = this.$widget.find(".formatting-locale-select"); + this.$widget.find(`input[name="first-day-of-week"]`).on("change", () => { const firstDayOfWeek = String(this.$widget.find(`input[name="first-day-of-week"]:checked`).val()); this.updateOption("firstDayOfWeek", firstDayOfWeek); @@ -53,14 +64,27 @@ export default class LocalizationOptions extends OptionsWidget { } async optionsLoaded(options: OptionMap) { - const availableLocales = getAvailableLocales().filter(l => !l.contentOnly); - this.$localeSelect.empty(); + const allLocales = getAvailableLocales(); - for (const locale of availableLocales) { - this.$localeSelect.append($("