| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  | const path = require("path"); | 
					
						
							|  |  |  | const fs = require("fs-extra"); | 
					
						
							| 
									
										
										
										
											2024-08-05 18:47:57 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-02-24 00:44:50 +00:00
										 |  |  | const APP_NAME = "TriliumNext Notes"; | 
					
						
							| 
									
										
										
										
											2024-08-11 06:57:34 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-02-05 09:33:33 +01:00
										 |  |  | const extraResourcesForPlatform = getExtraResourcesForPlatform(); | 
					
						
							| 
									
										
										
										
											2025-02-05 09:30:55 +01:00
										 |  |  | const baseLinuxMakerConfigOptions = { | 
					
						
							|  |  |  |   icon: "./images/app-icons/png/128x128.png", | 
					
						
							|  |  |  |   desktopTemplate: path.resolve("./bin/electron-forge/desktop.ejs"), | 
					
						
							| 
									
										
										
										
											2025-02-07 08:57:20 +01:00
										 |  |  |   categories: ["Office", "Utility"] | 
					
						
							| 
									
										
										
										
											2025-02-05 09:30:55 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-08 21:27:48 +02:00
										 |  |  | module.exports = { | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |     packagerConfig: { | 
					
						
							|  |  |  |         executableName: "trilium", | 
					
						
							|  |  |  |         name: APP_NAME, | 
					
						
							|  |  |  |         overwrite: true, | 
					
						
							|  |  |  |         asar: true, | 
					
						
							|  |  |  |         icon: "./images/app-icons/icon", | 
					
						
							| 
									
										
										
										
											2025-02-22 22:43:09 +00:00
										 |  |  |         osxSign: {}, | 
					
						
							|  |  |  |         osxNotarize: { | 
					
						
							|  |  |  |             appleId: process.env.APPLE_ID, | 
					
						
							|  |  |  |             appleIdPassword: process.env.APPLE_ID_PASSWORD, | 
					
						
							|  |  |  |             teamId: process.env.APPLE_TEAM_ID | 
					
						
							|  |  |  |         }, | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |         extraResource: [ | 
					
						
							| 
									
										
										
										
											2025-02-22 22:43:09 +00:00
										 |  |  |             // All resources should stay in Resources directory for macOS
 | 
					
						
							|  |  |  |             ...(process.platform === "darwin" ? [] : extraResourcesForPlatform), | 
					
						
							| 
									
										
										
										
											2024-10-13 14:24:46 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-02-22 22:43:09 +00:00
										 |  |  |             // These always go in Resources
 | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |             "translations/", | 
					
						
							|  |  |  |             "node_modules/@highlightjs/cdn-assets/styles" | 
					
						
							|  |  |  |         ], | 
					
						
							|  |  |  |         afterComplete: [ | 
					
						
							|  |  |  |             (buildPath, _electronVersion, platform, _arch, callback) => { | 
					
						
							| 
									
										
										
										
											2025-02-22 22:43:09 +00:00
										 |  |  |                 // Only move resources on non-macOS platforms
 | 
					
						
							|  |  |  |                 if (platform !== "darwin") { | 
					
						
							|  |  |  |                     for (const resource of extraResourcesForPlatform) { | 
					
						
							|  |  |  |                         const baseName = path.basename(resource); | 
					
						
							|  |  |  |                         const sourcePath = path.join(buildPath, "resources", baseName); | 
					
						
							| 
									
										
										
										
											2025-02-24 16:12:53 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |                         // prettier-ignore
 | 
					
						
							| 
									
										
										
										
											2025-02-22 22:43:09 +00:00
										 |  |  |                         const destPath = (baseName !== "256x256.png") | 
					
						
							|  |  |  |                             ? path.join(buildPath, baseName) | 
					
						
							|  |  |  |                             : path.join(buildPath, "icon.png"); | 
					
						
							| 
									
										
										
										
											2024-08-05 18:47:57 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-02-22 22:43:09 +00:00
										 |  |  |                         fs.move(sourcePath, destPath) | 
					
						
							|  |  |  |                             .then(() => callback()) | 
					
						
							|  |  |  |                             .catch((err) => callback(err)); | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                 } else { | 
					
						
							|  |  |  |                     callback(); | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |                 } | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         ] | 
					
						
							| 
									
										
										
										
											2024-08-05 18:47:57 +02:00
										 |  |  |     }, | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |     rebuildConfig: { | 
					
						
							|  |  |  |         force: true | 
					
						
							| 
									
										
										
										
											2024-08-05 18:47:57 +02:00
										 |  |  |     }, | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |     makers: [ | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             name: "@electron-forge/maker-deb", | 
					
						
							|  |  |  |             config: { | 
					
						
							|  |  |  |                 options: { | 
					
						
							| 
									
										
										
										
											2025-02-05 09:30:55 +01:00
										 |  |  |                   ...baseLinuxMakerConfigOptions | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |                 } | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         }, | 
					
						
							| 
									
										
										
										
											2025-02-03 23:21:27 +01:00
										 |  |  |         { | 
					
						
							|  |  |  |             name: "@electron-forge/maker-flatpak", | 
					
						
							|  |  |  |             config: { | 
					
						
							|  |  |  |                 options: { | 
					
						
							| 
									
										
										
										
											2025-02-07 08:52:55 +01:00
										 |  |  |                     ...baseLinuxMakerConfigOptions, | 
					
						
							| 
									
										
										
										
											2025-02-07 18:17:06 +02:00
										 |  |  |                     id: "com.triliumnext.notes", | 
					
						
							| 
									
										
										
										
											2025-02-05 08:32:59 +01:00
										 |  |  |                     runtimeVersion: "24.08", | 
					
						
							|  |  |  |                     base: "org.electronjs.Electron2.BaseApp", | 
					
						
							|  |  |  |                     baseVersion: "24.08", | 
					
						
							|  |  |  |                     baseFlatpakref: "https://flathub.org/repo/flathub.flatpakrepo", | 
					
						
							|  |  |  |                     modules: [ | 
					
						
							|  |  |  |                         { | 
					
						
							|  |  |  |                             name: "zypak", | 
					
						
							|  |  |  |                             sources: { | 
					
						
							|  |  |  |                                 type: "git", | 
					
						
							|  |  |  |                                 url: "https://github.com/refi64/zypak", | 
					
						
							|  |  |  |                                 tag: "v2024.01.17" | 
					
						
							|  |  |  |                             } | 
					
						
							|  |  |  |                         } | 
					
						
							|  |  |  |                     ] | 
					
						
							| 
									
										
										
										
											2025-02-03 23:21:27 +01:00
										 |  |  |                 }, | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         }, | 
					
						
							| 
									
										
										
										
											2025-02-02 23:00:22 +01:00
										 |  |  |         { | 
					
						
							|  |  |  |             name: "@electron-forge/maker-rpm", | 
					
						
							|  |  |  |             config: { | 
					
						
							|  |  |  |                 options: { | 
					
						
							| 
									
										
										
										
											2025-02-05 09:30:55 +01:00
										 |  |  |                   ...baseLinuxMakerConfigOptions | 
					
						
							| 
									
										
										
										
											2025-02-02 23:00:22 +01:00
										 |  |  |                 } | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         }, | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |         { | 
					
						
							|  |  |  |             name: "@electron-forge/maker-squirrel", | 
					
						
							|  |  |  |             config: { | 
					
						
							|  |  |  |                 iconUrl: "https://raw.githubusercontent.com/TriliumNext/Notes/develop/images/app-icons/icon.ico", | 
					
						
							| 
									
										
										
										
											2025-02-01 14:36:55 +02:00
										 |  |  |                 setupIcon: "./images/app-icons/win/setup.ico", | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |                 loadingGif: "./images/app-icons/win/setup-banner.gif" | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             name: "@electron-forge/maker-dmg", | 
					
						
							|  |  |  |             config: { | 
					
						
							|  |  |  |                 icon: "./images/app-icons/icon.icns" | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             name: "@electron-forge/maker-zip", | 
					
						
							|  |  |  |             config: { | 
					
						
							|  |  |  |                 options: { | 
					
						
							|  |  |  |                     iconUrl: "https://raw.githubusercontent.com/TriliumNext/Notes/develop/images/app-icons/icon.ico", | 
					
						
							|  |  |  |                     icon: "./images/app-icons/icon.ico" | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2024-08-05 18:47:57 +02:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |     ], | 
					
						
							|  |  |  |     plugins: [ | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             name: "@electron-forge/plugin-auto-unpack-natives", | 
					
						
							|  |  |  |             config: {} | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     ] | 
					
						
							| 
									
										
										
										
											2023-11-08 21:27:48 +02:00
										 |  |  | }; | 
					
						
							| 
									
										
										
										
											2024-08-05 18:47:57 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | function getExtraResourcesForPlatform() { | 
					
						
							| 
									
										
										
										
											2025-03-10 18:11:56 +01:00
										 |  |  |     const resources = ["./bin/tpl/anonymize-database.sql"]; | 
					
						
							| 
									
										
										
										
											2025-02-05 09:56:08 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     const getScriptRessources = () => { | 
					
						
							|  |  |  |         const scripts = ["trilium-portable", "trilium-safe-mode", "trilium-no-cert-check"]; | 
					
						
							|  |  |  |         const scriptExt = (process.platform === "win32") ? "bat" : "sh"; | 
					
						
							|  |  |  |         return scripts.map(script => `./bin/tpl/${script}.${scriptExt}`); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |     switch (process.platform) { | 
					
						
							|  |  |  |         case "win32": | 
					
						
							| 
									
										
										
										
											2025-02-05 09:56:08 +01:00
										 |  |  |             resources.push(...getScriptRessources()) | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |             break; | 
					
						
							|  |  |  |         case "linux": | 
					
						
							| 
									
										
										
										
											2025-02-05 09:56:08 +01:00
										 |  |  |             resources.push(...getScriptRessources(), "images/app-icons/png/256x256.png"); | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |             break; | 
					
						
							|  |  |  |         default: | 
					
						
							|  |  |  |             break; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2024-08-05 18:47:57 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |     return resources; | 
					
						
							|  |  |  | } |