Commit graph

453 commits

Author SHA1 Message Date
Manav Rathi 6a7220ca43
Remove support files for (removed) Windows GGML binary
These were added together with the GGML Windows binary in commit
c3887847bc.
2024-04-09 21:32:41 +05:30
Manav Rathi e8d224c511
Remove stale ggml reference 2024-04-09 21:29:15 +05:30
Manav Rathi 7dccdecff3
Improve log 2024-04-09 21:24:31 +05:30
Manav Rathi 4327cfdb23
Only ONNX, desktop 2024-04-09 20:46:27 +05:30
Manav Rathi af07de58f6
More docs 2024-04-09 16:36:23 +05:30
Manav Rathi b937102cda
A more apropos link 2024-04-09 16:22:02 +05:30
Manav Rathi 2b7aa372bd
Switch 2024-04-09 10:33:54 +05:30
Manav Rathi 3c9f11ee60
Tweak log format 2024-04-09 10:03:30 +05:30
Manav Rathi 90a770c619
WIP 2024-04-08 18:09:08 +05:30
Manav Rathi f4f041552f
Move electron API types to lower layer 2024-04-08 16:51:48 +05:30
Manav Rathi 48f741b792
Tweak docs 2024-04-08 15:02:32 +05:30
Manav Rathi 7be4b47e51
Tighten type checking progressively 2024-04-08 14:57:49 +05:30
Manav Rathi f65e738507
Move to types 2024-04-08 14:42:44 +05:30
Manav Rathi c8089fbb60
Inline uncaptured errors 2024-04-08 14:40:44 +05:30
Manav Rathi 15e290a993
api => services 2024-04-08 14:31:19 +05:30
Manav Rathi 12fa3be6c5
Event handler cleanup 2024-04-08 14:24:50 +05:30
Manav Rathi 5ae6d7d47b
Don't wait for ready before logging startup banner
> The only hint is to call the code in main.ts without waiting for the ready event.
>
> https://github.com/megahertz/electron-log/issues/408
2024-04-08 14:17:02 +05:30
Manav Rathi 18e47b3d4e
Synchronize startup banners 2024-04-08 14:09:59 +05:30
Manav Rathi 35736c447d
Cleanup 2024-04-08 13:59:40 +05:30
Manav Rathi c458b429a0
Let the web side log errors for the bridged methods 2024-04-08 13:58:28 +05:30
Manav Rathi c5bb479c4f
Consolidate logging / desktop 2024-04-08 13:44:39 +05:30
Manav Rathi 5810d2b762
Add yarn preview:* 2024-03-30 18:06:58 +05:30
Manav Rathi 3706b99d36
Remove debug print 2024-03-27 21:21:31 +05:30
Manav Rathi 1bb79854a5
Mollify TypeScript 2024-03-27 21:17:30 +05:30
Manav Rathi c9f8ad3e88
Tidy and prune the app's menu
- Switch to title case (discussed with others that the app's main menu is an
  appropriate choice and exception to our sentence casing otherwise).

- Prune
2024-03-27 21:12:45 +05:30
Manav Rathi 0dda25800e
Update the node version number in tsconfig doc comments 2024-03-27 20:34:10 +05:30
Manav Rathi 95eec1f3d6
Remove brew special casing
Brew Formulae support an `auto_updates true` flag which tells brew's auto update
mechanism to stay out of the way.

Ref: https://docs.brew.sh/FAQ#why-arent-some-apps-included-during-brew-upgrade

Will need to open a PR to update our Formula though.

9241d331b6/Casks/e/ente.rb (L9)
2024-03-27 20:29:11 +05:30
Manav Rathi 5ac4799ce1
Support arbitrary parameters like console.log 2024-03-27 20:26:16 +05:30
Manav Rathi 3699118f0c
Don't shellescape fully formed commands 2024-03-27 20:10:45 +05:30
Manav Rathi cf71d1477b
update to new functions in more places 2024-03-27 17:44:49 +05:30
Manav Rathi 937e09f6a3
Fix import errors 2024-03-27 17:21:42 +05:30
Manav Rathi 8ffe1ece2d
Relay isFolder error back to renderer 2024-03-27 17:13:25 +05:30
Manav Rathi 175ea274c4
Alternative formatting 2024-03-27 17:07:56 +05:30
Manav Rathi 08489c8237
Tweak "render-process-gone" handler 2024-03-27 17:04:46 +05:30
Manav Rathi 3e61ebf1df
Add types for shellescape
Refs:

- https://github.com/boazy/any-shell-escape
- https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/shell-escape/index.d.ts
- https://www.typescriptlang.org/docs/handbook/declaration-files/templates/module-d-ts.html
2024-03-27 16:36:31 +05:30
Manav Rathi e1c2c9fc98
Rearrange 2024-03-27 15:55:02 +05:30
Manav Rathi c38542dbfb
Init logging 2024-03-27 15:34:29 +05:30
Manav Rathi 27047da08b
Use a truthy check 2024-03-27 15:12:40 +05:30
Manav Rathi 846c2af02b
Outline a potential approach 2024-03-27 15:10:35 +05:30
Manav Rathi 42679bc9da
Remove duplicated icon
Per https://www.electron.build/icons, a single 512x512 icon.png placed in the
buildResources directory (default `build`) is enough to generate icons for all
three - macOS, Windows and Linux.
2024-03-27 15:00:25 +05:30
Manav Rathi 88e8e1a18d
Remove hacky splash window with a background color
...hacky because it was using a timer instead of the "ready-to-show" event
(which wasn't getting fired for some reason). It is recommended that we set a
background color anyway.
2024-03-26 21:45:21 +05:30
Manav Rathi ac97d65c12
Remove one copy of duplication from IPC types 2024-03-26 21:45:21 +05:30
Manav Rathi b0ca3a1a9f
Preload won't have logging 2024-03-26 21:45:21 +05:30
Manav Rathi c055cd9b4a
Remove the tscw 2024-03-26 21:45:21 +05:30
Manav Rathi 9e987f62f6
Fix paths of splash etc 2024-03-26 21:45:21 +05:30
Manav Rathi cb33b6df10
Refactor the init process 2024-03-26 21:45:20 +05:30
Manav Rathi c3dfa46514
Major version update of Electron
And other surrounding packages.
2024-03-26 21:42:48 +05:30
Manav Rathi 24176d8c40
Document a few more dependencies 2024-03-26 21:42:48 +05:30
Manav Rathi 6e737cdf9a
Mention package.json in the shx description 2024-03-26 21:42:48 +05:30
Manav Rathi 8f978a3d3d
Manually update the version info in package.json 2024-03-26 21:42:48 +05:30
Manav Rathi fe94a4cd77
yarn-upgrade interactive 2024-03-26 21:42:48 +05:30
Manav Rathi 140b65b69d
Use default import instead of star import
Refs:
https://stackoverflow.com/questions/31386631/difference-between-import-x-and-import-as-x-in-node-js-es6-babel
2024-03-26 21:42:48 +05:30
Manav Rathi db930feaf3
Stop source map generation
This isn't doing anything for us currently, and I suspect is also the source of
this error when trying to run a binary built using `yarn build:quick`

> DevTools failed to load source map: Could not load content for next://app/preload.js.map:
  Unexpected token '<', "<!DOCTYPE "... is not valid JSON

Note that the renderer process already has source maps.
2024-03-26 21:42:48 +05:30
Manav Rathi 2038b036c5
Remove baseUrl that didn't work
From what I've understood, there isn't a way for us to use the baseUrl for
absolute imports without also using a bundler. The baseUrl works for the
tsconfig, but not for the generated JS.

Since this setting was anyways not working, remove it. Tested by doing `yarn
dev`, `yarn build` and also doing a quick perusal in VSCode to see that it is
not reporting any errors.

Refs:

- https://stackoverflow.com/questions/50679031/why-are-these-tsconfig-paths-not-working
- https://github.com/electron-react-boilerplate/electron-react-boilerplate/issues/2737
- https://stackoverflow.com/questions/40407342/resolving-paths-in-typescript-outdir
- https://stackoverflow.com/questions/51683827/using-paths-in-typescript-in-a-nodejs-project
2024-03-26 21:42:48 +05:30
Manav Rathi a4ecc2c344
Update ente.io/faq => help.ente.io where possible
On desktop, now there Help menu will have an "Ente Help" option instead of "FAQ"
(Unrelated: I noticed that user facing strings in the desktop app are not
localized).

The only place remaining after this is the sidebar on mobile
(`support_section_widget.dart`), but I wasn't sure of what string to use (and
how to add it to the localized strings for mobile) so I've left it unchanged.
2024-03-25 19:26:10 +05:30
LI-NA 8e4ca0bc79 [desktop] Add shx and change the build command
To make the build script work on Windows, added the `shx` package in dev dependency and changed the `rm` and `ln` commands to `shx rm` and `shx ln`.
2024-03-25 20:11:44 +09:00
Manav Rathi f8a36852a6
Prepare for test 2024-03-25 15:39:29 +05:30
Manav Rathi 892bf852a5
Convert remaining upload functions 2024-03-25 15:29:39 +05:30
Manav Rathi f53b1361e8
Move file related functions 2024-03-25 15:09:51 +05:30
Manav Rathi 4261624da5
Handle rest of watch related functions 2024-03-25 14:03:20 +05:30
Manav Rathi 186e76c62b
Move add/remove watch functions to preload 2024-03-25 13:49:48 +05:30
Manav Rathi 96ea53face
preload / watch - part 1
The change event was not being used (since
dca542e781), so also remove that dead code.
2024-03-25 13:31:28 +05:30
Manav Rathi 67468c6ff9
Move the selection dialogs 2024-03-25 13:02:06 +05:30
Manav Rathi e8acbd8c9f
Convert the other conversion functions 2024-03-25 12:45:21 +05:30
Manav Rathi 2522da2b5e
Handle runFFMPEGCmd in preload 2024-03-25 12:32:57 +05:30
Manav Rathi dd7e87274a
Handle set/getEncryptionKey in preload 2024-03-25 12:19:19 +05:30
Manav Rathi 106ba270fe
Handle ML related functions in updated preload 2024-03-25 12:09:11 +05:30
Manav Rathi d3093809d6
Inline more into preload 2024-03-23 20:25:56 +05:30
Manav Rathi 81ba5379c9
Move checkExistsAndCreateDir out of preload 2024-03-23 20:06:27 +05:30
Manav Rathi f21dc84840
Switch to async fs.exists
We cannot expose the sync version over the context bridge - the node:fs module
is not available to the preload script under context isolation.
2024-03-23 19:59:47 +05:30
Manav Rathi a5c3aff54b
Expose an fs.exists over the context bridge 2024-03-23 18:28:22 +05:30
Manav Rathi 7a3209ebf6
Fix preload.ts - Part x/x 2024-03-23 16:13:16 +05:30
Manav Rathi 0fdb2fb357
Fix type errors in fs.ts 2024-03-22 20:01:02 +05:30
Manav Rathi 6c8f4185f7
Fix error in clipService 2024-03-22 19:56:36 +05:30
Manav Rathi 31ad9a3eb3
Document that the main process is not restarted 2024-03-22 19:55:57 +05:30
Manav Rathi 68fe6f45c4
Validate that getPath is not throwing 2024-03-22 17:54:02 +05:30
Manav Rathi 3dbf82552d
Use the web native cache only - desktop side changes 2024-03-22 17:28:05 +05:30
Manav Rathi 22e57669fb
[photos-desktop] Disable node integration - Part x/x (#1176)
This continues the refactoring to disable node integration in our
rendered process. The code is still in a WIP state, and more PRs in this
series will come.
2024-03-22 16:06:16 +05:30
Manav Rathi f083f0633d
Remove electron-reload
It reloads the BrowserWindow, but that already has HMR since we're connecting to
a Next dev server on localhost.

What we want is the main process to reload if the files for the main process are
changed. All options I've found so far just restart the main app on changes to
the main process code. I'm not sure that'll be useful, so not adding them right
now (and in any case, this is not a regression, it just wasn't working with
electron-reload either). For future reference if I need to revisit this, these
are the things I scouted:

- https://www.electronforge.io/config/plugins/webpack
- https://github.com/sindresorhus/electron-reloader
- https://electron-vite.org/guide/hot-reloading.html
2024-03-22 15:55:25 +05:30
Manav Rathi f2c288bdab
Remove promise-fs
Unnecessary, and unmaintained (since now node offers it natively)
2024-03-22 15:54:18 +05:30
Mathieu Velten 87de9e2afa Fix an error in the order of the arguments for imagemagick 2024-03-22 11:21:36 +01:00
Manav Rathi 1830a1b931
Let fs.readFile throw on non-existent files 2024-03-22 15:39:05 +05:30
Manav Rathi b6b4ee7e3a
recursive: true is mkdir -p 2024-03-22 15:31:45 +05:30
Manav Rathi c41bb571f6
Convert more promise-fs 2024-03-22 15:23:41 +05:30
Manav Rathi 94ac21950d
Convert to Electron's native fetch 2024-03-22 15:21:27 +05:30
Manav Rathi 8c40b950c7
Remove old and no longer necessary desktop cutoff version flag
It's been more than an 1.5 years since this was needed, everyone should've
updated by now.
2024-03-22 15:17:59 +05:30
Manav Rathi 8391e7edfc
Start migrating from promise-fs 2024-03-22 15:13:37 +05:30
Manav Rathi d98c3686c5
Inline 2024-03-22 11:33:24 +05:30
Manav Rathi 025ef4e1d9
Shorten 2024-03-22 11:26:04 +05:30
Manav Rathi 18deac3a41
Document 2024-03-22 11:21:05 +05:30
Manav Rathi b1f45c8602
Move export functions to preload 2024-03-22 09:49:11 +05:30
Manav Rathi 3c4619e5e4
Add a notice 2024-03-21 12:13:39 +05:30
Manav Rathi 4ea43e619b
More docs 2024-03-21 10:54:32 +05:30
Manav Rathi cd1d22cdfb
Shorten 2024-03-21 10:45:48 +05:30
Manav Rathi cc623e5010
Remove unnecessary steps
I'm not sure how it is happening, but both ffmpeg-static and onnx get to their
correct path without this configuration. the paths it gets to is also slightly
different, so it seems that this snippet does not have any effect (at best):

    ente.app/Contents/Resources/app.asar.unpacked/node_modules
2024-03-21 10:43:33 +05:30
Manav Rathi bb865a7b15
Add documentation about ffmpeg
https://alexandercleasby.dev/blog/use-ffmpeg-electron
2024-03-21 10:16:21 +05:30
Manav Rathi 7b1b6bf88f
Document a better, more explicit, reference 2024-03-20 13:47:38 +05:30
Manav Rathi 4c651da244
Document my current understanding 2024-03-20 13:17:41 +05:30
Manav Rathi 467acf2b8e
Remove old migration path
This migration path was in the last release v1.6.63, and it has now been out
there for a couple of months so apart from some outliers the migration should've
already happened. Even for the outliers, this will increase their cache size but
won't have a functional impact.

Cleaning this code now to reduce the amount that needs to be changed to support
a contextBridge aware cache.
2024-03-20 12:29:58 +05:30
Manav Rathi 0eedd5e57f
Add deprecation notice to ElectronFile 2024-03-20 10:52:31 +05:30
Manav Rathi 0634727ef3
Remove unused file
From my understanding, this was accidentally leftover from 3c8af97f69
2024-03-20 10:34:17 +05:30
Manav Rathi 8b0ce5d521
Add documentation links 2024-03-20 10:32:29 +05:30
Manav Rathi 8f2bb9c861
Add note about custom errors 2024-03-19 19:18:05 +05:30
Manav Rathi 83477cfe37
Forward clearElectronStore 2024-03-19 19:18:05 +05:30
Manav Rathi 3ce8513e48
Move more standalone methods to preload 2024-03-19 19:18:05 +05:30
Manav Rathi b3289f2b8d
Remove (kindof) unused reloadWindow IPC
We now bundle the renderer code within the app. So a load-fail indicates
something really wrong, not something we can deal with upfront (the code wasn't
probably even working - e.g. it was assigning to a function parameter
mainWindow, not the actual global var behind it).
2024-03-19 19:18:05 +05:30
Manav Rathi 3a6c7b2dcd
Remove unused sendNotification IPC 2024-03-19 19:18:05 +05:30
Manav Rathi 502469e97f
Move some non-duplicated FS related functions to preload 2024-03-19 19:18:05 +05:30
Manav Rathi c98762b448
Inline ML related functions 2024-03-19 19:18:05 +05:30
Manav Rathi e00b8fd2f1
Remove unused IPC for getPlatform 2024-03-19 19:18:05 +05:30
Manav Rathi eeaa5165ab
Remove custom cache directory
From discussions, it seems that it was pre-emptively added but not specifically
requested by a customer. We can bring this back later if needed, or at least
offer better options to clean it, but for now I'm pruning the IPC surface to
reduce the amount of work needed for handling contextIsolation and sandboxing.
2024-03-19 19:18:04 +05:30
Manav Rathi e4684b22df
Move out the electron-builder config to separate file 2024-03-19 19:17:01 +05:30
Manav Rathi d80fad6cf1
Remove unused vscode extension support
This doesn't belong in the repo even if were used
https://github.com/standard/vscode-standard
2024-03-19 19:17:01 +05:30
Manav Rathi a8de049519
Update concurrently's major version
No breaking changes that impact us - https://github.com/open-cli-tools/concurrently/releases
2024-03-19 19:17:01 +05:30
Manav Rathi e9fa525fe9
Remove unused electron-download
It was used for downloading symbols
2024-03-19 19:17:01 +05:30
Manav Rathi bff58f7b78
Update eslint settings to match main project 2024-03-19 19:17:01 +05:30
Manav Rathi a0f95b6080
Settle on a tsconfig for now
Electron also comes with its own type definitions, and from a (possibly dated)
blog post announcing this I got that we should not be overriding it with
@types/node: https://www.electronjs.org/pt/blog/typescript
2024-03-19 19:17:01 +05:30
Manav Rathi c19370ec51
Outline an ideal tsconfig.json 2024-03-19 19:17:01 +05:30
Manav Rathi 341f0fa559
Upgrade TypeScript 2024-03-19 19:17:01 +05:30
Manav Rathi e64d44639d
Document the conceputal way forward
Alternatives considered:

- https://github.com/alex8088/electron-toolkit
- https://electron-vite.org/
- https://github.com/cawa-93/vite-electron-builder/
2024-03-19 19:17:01 +05:30
Manav Rathi 04b9966425
Quicker quick
Ref: https://webpack.electron.build/building
2024-03-19 19:17:01 +05:30
Manav Rathi 0e861d5c48
Add some notes
The helpful snippet about the purpose of install-app-deps taken from
https://webpack.electron.build/dependency-management
2024-03-19 19:17:01 +05:30
Manav Rathi b7b33eba4a
Switch to contextBridge - Part 1 2024-03-19 19:17:01 +05:30
Manav Rathi 1266648562
Merge docs 2024-03-19 19:17:01 +05:30
Manav Rathi eb4f9402db
Enable prose-wrap 2024-03-19 19:17:01 +05:30
Manav Rathi 983beb89dc
Enable prose-wrap 2024-03-19 19:17:01 +05:30
Manav Rathi f29d9e1583
Re-enable contextIsolation and sandboxing
Things will break, but let's try to fix them. In the current state, this is
preventing us from running `yarn dev` without reverting back to Electron 21.
2024-03-19 19:17:01 +05:30
Manav Rathi d83f9d0210
Still need submodules
Until web needs them
2024-03-19 19:17:01 +05:30
Manav Rathi b79f8347b6
Import the existing DesktopDistribute notes 2024-03-14 20:31:47 +05:30
Manav Rathi a5e6f0cc30
Let Prettier 3 have a go at it 2024-03-12 18:01:09 +05:30
Manav Rathi 2322b41f67
Watch during dev 2024-03-12 17:56:46 +05:30
Manav Rathi 685e75d97d
Switch to upstream 2024-03-12 17:38:39 +05:30
Manav Rathi cde87716a1
Remove the custom next-electron-server
The only change this has in addition to next-electron-server seems to be
https://github.com/ente-io/next-electron-server/pull/1/files, will try to test
along the way to determine its impact.
2024-03-12 17:02:28 +05:30
Manav Rathi dff0af3397
Fix path to main process entrypoint 2024-03-12 16:47:41 +05:30
Manav Rathi c8b9b4cd8f
Document better 2024-03-12 16:33:43 +05:30
Manav Rathi d7cd2cecbc
Default buildResources is build 2024-03-12 16:12:53 +05:30
Manav Rathi e219197e2f
Fix import 2024-03-12 15:07:06 +05:30
Manav Rathi 9b6e47d291
[desktop] Remove sentry
See 70cddfdf0b
2024-03-12 13:54:17 +05:30
Manav Rathi 84926cbee1 build take 2 2024-03-11 18:52:28 +05:30
Manav Rathi 027ae1cfb9 build => resources 2024-03-11 17:37:43 +05:30
Manav Rathi 621f81355b Work towards fixing build 2024-03-11 17:37:10 +05:30
Manav Rathi 849b61c5cf Document some and fix the path 2024-03-11 17:29:39 +05:30
Manav Rathi 267ad0d11f [desktop] Fix yarn build 2024-03-11 17:04:17 +05:30
Manav Rathi 88741083fe Prettier 3 + reformat (same as web) 2024-03-11 16:46:52 +05:30
Manav Rathi 829406fa62 Tweak .gitignore 2024-03-11 16:38:32 +05:30
Manav Rathi df13eac6ef Remove unused files 2024-03-11 16:35:00 +05:30
Manav Rathi 25dda3598c Remove husky and lint-staged 2024-03-11 16:31:48 +05:30
Manav Rathi 918e70b516 Update links to GitHub from within the apps 2024-03-03 18:08:11 +05:30
Manav Rathi 6f7a47f04e Update desktop/ to account for new monorepo structure 2024-03-02 17:57:37 +05:30
Manav Rathi 0fc7f31818 Remove the recursive submodule 2024-03-01 16:38:56 +05:30
Manav Rathi d7ef0e238c Add README notices about the in-progress migration to this repository 2024-03-01 16:35:45 +05:30
Manav Rathi 9cdaabc403
Move all submodules to the top level (#505)
## Description

## Tests
2024-03-01 16:16:25 +05:30
Manav Rathi 1ac5222b09 Move into desktop/ 2024-03-01 12:36:35 +05:30