1228 Commits
Author SHA1 Message Date
Christopher Serr 75f5844159 Automatically release Tauri binaries (#951)
This makes it so we automatically release the Tauri binaries when we
merge a new change to the master branch.
latest
2024-07-21 17:04:54 +00:00
Christopher Serr da502a6f9f Add Always On Top setting for Tauri (#950)
This adds support for the `Always On Top` setting in the Tauri version
of LiveSplit One. This setting allows you to keep the LiveSplit One
window on top of all other windows.
2024-07-18 00:26:04 +02:00
Christopher Serr 4c078c1feb Fix binaryen usage in CI (#949)
More CI problems :(
2024-07-17 17:44:41 +00:00
Christopher Serr 5d3ee0402c Fix CI (#948)
Turns out it's not quite right yet.
2024-07-16 21:57:14 +02:00
Christopher Serr ccb4bbd1b4 Introduce a Tauri based desktop version (#940)
This introduces a Tauri based desktop version of LiveSplit One. For now
very few changes have been done. It's mostly global hotkeys that work
now. It's unclear if Tauri is the long term solution for LiveSplit One,
but it gets us global hotkeys and auto splitting with very little
effort, so we'll use it until something better comes along.
2024-07-15 21:14:45 +02:00
Christopher Serr f6817019ab Move Server Protocol to livesplit-core (#932)
This moves the server protocol to `livesplit-core` and improves on it in
various ways:
- The protocol is based on JSON messages. This allows for example for
  more structured commands where it's easier to provide multiple
  arguments for a command and even have optional arguments.
- For each command, there is a corresponding response. It is either a
  `success` response with possibly the value that you requested, or an
  `error` response with an error `code`.
- On top of the responses you also get sent `event` messages that
  indicate changes to the timer. These can either be changes triggered
  via a command that you sent or by changes that happened through other
  sources, such as the user directly interacting with the timer or an
  auto splitter.

The protocol is still work in progress and we will evolve it into a
protocol that fully allows synchronizing timers over the network.

The event sink has now been renamed to command sink, because there is
now a clear distinction between incoming commands and events that are
the results of these commands.

Changelog: The protocol used for the server connection has been
significantly improved. There is a response for each command and clear
errors when something goes wrong. Additionally, there are now event
messages that indicate changes to the timer.
2024-06-22 13:53:26 +02:00
Christopher Serr e897dd8eff Request only a single JS bundle from index.ts (#931)
We introduce a new `indexDelayed.ts` file that bundles all the imports
that are used in the `index.ts` file. They are not imported directly
there, because we want to keep the size of the `index.html` as small as
possible, so it can focus on requesting the WASM file as soon as
possible. This should result in the `indexDelayed.ts` bundle containing
basically all the JS. This JS bundle and the WASM file should then be
requested in parallel. While it would be possible to request these all
individually over in the `index.ts`, browsers don't actually like doing
too many requests in parallel and it turns out that big JavaScript files
actually compress better than having many small ones. The WASM file also
is pretty big, so ideally we are not bottlenecked by the large JS file.
If necessary, we could do some more bundle splitting for stuff that
isn't used until much later, like the Markdown library.
2024-06-19 20:14:38 +02:00
Christopher Serr 9f3ed503ec Clean up some async race conditions & CSS fixes (#930)
The dialogs are now asynchronous as opposed to the browser built-in ones
that are synchronous, probably because they are incredibly old. The
problem with the new dialogs being asynchronous is that for example the
hotkeys, the server protocol and honestly any sort of async download
that's still running in the background can all mess with the timer while
the dialog is open. This could lead to all sorts of weird issues, like
the timer being in a different state than what the dialog expects, the
timer being reset twice and creating two dialogs that are open at the
same time and possibly even memory corruption in the Rust code.

This commit ensures that the timer can not be interacted with while it
is "locked for interaction". In fact we already had such a notion where
when you navigate to the settings, layout or run editor, the hotkeys
would be disabled. Now this is concept is extended so the event sink
also can prevent interaction with the timer. Navigating to these menus
and opening dialogs will now trigger this locking mechanism.

Additionally this improves various async race conditions in the splits
editor related to downloading resources from speedrun.com or splits.io.

This also touches the CSS of the dialogs again, adding some spacing
around the dialog, so it doesn't touch the edges of the window and
allowing the buttons to have more dynamic sizing. In particular I've
noticed that the text sometimes doesn't fit into the buttons on iOS, so
they are now allowed to grow a little to handle that situation.

File open dialogs also now know the file extensions of the files we are
looking for.
2024-06-19 19:47:08 +02:00
Christopher Serr 5b575d899f Introduce Custom Dialogs (#928)
This introduces custom dialogs to LiveSplit One. Previously we've used
the builtin browser dialogs that are very limited in what they can do.

Additionally this introduces a bunch of smaller changes:
- The splits editor is now more optimized and only searches for the game
  name whenever it or the list of games changes.
- The PWA badge now resets when the app is reloaded.
- Guests on the leaderboard can now have flags.
- If a user encounters a bug, there's now dedicated toast popups that
  don't disappear and direct the user to the issue tracker.
- The Sum of Best cleaner now ensures the run can't be modified while
  the cleaning is in progress, which would lead to memory corruption,
  especially with the async nature of the new dialogs.
- Cancelling out of opening files doesn't lead to an error anymore.

The following changes are introduced by updating `livesplit-core`:
- When resizing images / reencoding them as PNG, we now use a higher
  compression setting.
- Invalid timer states are not unrepresentable anymore.
2024-06-18 21:33:54 +02:00
Christopher Serr 3b32a7b085 Add a fallback for the time tracking in the web (#814) (#927)
Every browser's `performance.now()` implementation is not spec
compliant, unless the browser is running on Windows. On every other
operating system, `performance.now()` does not properly keep ticking
while the operating system is suspended / sleeping. There isn't much
that we can do. What we can do is we calculate the initial difference
between `performance.now()` and `Date.now()` and store it in a thread
local. Later, when the phone gets locked, `performance.now()` starts to
break. However, we can detect when the phone gets unlocked again by
listening to the `visibilitychange` event. This is where we can update
the difference again. This of course isn't ideal, as `Date.now()` gets
adjusted by NTP synchronizations, but it's the best we can do.

More information:
https://developer.mozilla.org/en-US/docs/Web/API/Performance/now#ticking_during_sleep
https://www.igvita.com/2015/11/20/dont-lose-user-and-app-state-use-page-visibility/
2024-06-09 23:38:41 +02:00
Christopher Serr ba45f1759c Dynamically adjust the column widths (#926)
Instead of assuming each column has the width of the text `88:88:88`, we
now determine the largest string per column (based on unicode scalar
values) and adjust the column width accordingly. There is still a fixed
minimum width based on the string `88:88`, which ensures that the
columns don't switch sizes too often, especially if you start with empty
splits. We could've also chosen `8:88:88`, which would ensure there's no
column size change as you approach the hour mark. However, this would
increase the size of delta columns unnecessarily. So it's a little bit
of a trade-off.
2024-06-09 18:05:53 +02:00
Christopher Serr 97c741c5db Make the PWA Icon maskable (#925)
Even though we added the margin, some Android devices still need it to
be maskable to properly understand the margin.
2024-06-09 17:33:37 +02:00
Christopher Serr 5ff3d171a2 Enable the WebAssembly Multivalue feature (#924)
This enables the multivalue feature when building with the nightly Rust
compiler. This is because the Rust standard library is not built with
the multivalue feature enabled by default. Also we need to specifically
use the spec compliant C ABI for it to work, which is also nightly only.
2024-06-08 22:56:52 +02:00
Christopher Serr d4eec06357 Store the comparison and timing method (#923)
We now automatically store the current comparison and timing method into
the Indexed DB. This allows us to restore the comparison and timing
method when the user reloads the page.

Changelog: The comparison and timing method (Real Time / Game Time) that
you choose now stay chosen when you reload LiveSplit One.
2024-06-08 20:51:04 +02:00
wooferzfg ea0a7783ba Use background for Android icon (#922) 2024-06-08 19:35:02 +02:00
Christopher Serr ba7e746618 Allow copying comparisons (#918)
This adds functionality to the run editor to allow copying comparisons.
This is not only useful for copying custom comparisons, but also for
"baking" the times of a generated comparison, such as the `Latest Run` or
the `Average Segments` to a custom comparison that you can keep around
as long as you want. This is somewhat also meant to replace the
functionality of storing the current run as a Personal Best. Instead you
can just store the `Latest Run` as a custom comparison after you are
done with it.

Changelog: The splits editor now allows copying comparisons. This can
also be used to keep the times of an automatic comparison around as a
custom comparison. One example for using this is keeping around the
latest run as a custom comparison, so that you can compare against it
later on, even if you have already done another run.
2024-06-08 18:59:45 +02:00
Christopher Serr 641bcb17b1 Fix the margin for the PWA Icon on iOS (#921)
This adjusts the margin for the PWA Icon on iOS to roughly match the
Apple guidelines, but more importantly, to just finally look good.
2024-06-08 18:06:14 +02:00
wooferzfg f845c6083c Skip update prompts in invalid situations (#917)
When it's the first install of the service worker, or when the user clears the site data, the controllerchange event gets triggered. However, in these situations, we want to avoid prompting the user about an update.
2024-06-08 11:49:45 +02:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 4e40e7e065 Bump style-loader from 3.3.4 to 4.0.0 (#906)
Bumps [style-loader](https://github.com/webpack-contrib/style-loader) from 3.3.4 to 4.0.0.
- [Release notes](https://github.com/webpack-contrib/style-loader/releases)
- [Changelog](https://github.com/webpack-contrib/style-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/style-loader/compare/v3.3.4...v4.0.0)

---
updated-dependencies:
- dependency-name: style-loader
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-06 08:46:18 +00:00
Christopher Serr 1351da3d7c Fix some small bugs (#915)
The APIs that are not supported by every browser or may not always be
allowed (Battery and Wake Lock) are requested in try catch blocks. The
problem was that both of them actually yield promises. If the promises
fail, then those exceptions would not be caught properly, because we
forgot to await them. So especially for the wake lock you would
sometimes see an error message when it gets hot reloaded. This should be
fixed now.

Additionally this changes the window title for when there are unsaved
changes. Apparently when LiveSplit One is used as a PWA, then
at least Chrome wants to always keep the app name in the title. If the
title itself is changed, then it gets shown as `LiveSplit One - The new
title`. By us putting an asterisk in the front of the title, the PWA
then shows `LiveSplit One - *LiveSplit One`, which is pretty bad. I
noticed that if the app name is also the prefix of the title, Chrome
recognizes that and does not end up showing the app name twice.

There also was a small bug in the event sink where the
`togglePauseOrStart` event did not update the splits modified state.
2024-06-05 21:26:37 +02:00
Christopher Serr fe1878be5e Save the layout dimensions when saving layout (#914)
This changes it so the layout dimensions are not immediately saved when
resizing a layout. Instead they are saved when saving the layout.
Additionally, resizing marks the layout as unsaved, so you don't forget about
saving the new dimensions.
2024-06-05 21:03:32 +02:00
Christopher Serr 0902aa339b Add indicators for unsaved changes (#912)
This adds indicators to various parts of the UI to indicate that there
are unsaved changes. The indicators are mainly shown as white dots in
the sidebar highlighting what is unsaved. The title is also updated to
reflect this. The Badging API is also used to show a badge on the "app
icon" if it's installed as a PWA. In addition to the splits, the layouts
are also now properly tracked when it comes to unsaved changes.

Changelog: There are now indicators in the user interface that remind
you about unsaved changes to your splits and layouts.
2024-06-04 22:37:19 +00:00
Christopher Serr af383c7062 Allow choosing comparisons from a list (#911)
This changes the way the user chooses the comparisons. This affects both
the sidebar and the way you specify comparison overrides for the
components. In both cases you now choose the comparison from a list of
all the comparisons that are available.

Changelog: You can now choose the comparisons from a list in the
sidebar. Settings that allow you to specify a comparison now also
provide a list to choose from.
2024-06-03 21:25:49 +02:00
Christopher Serr a0c0950a18 Implement Save On Reset (#910)
This adds a save on reset setting to the general settings. When enabled,
the splits are automatically saved when the timer is reset.

Changelog: You can now enable **Save On Reset** in the settings, which
will automatically save the splits when you reset the timer.
2024-06-03 16:49:02 +00:00
Christopher Serr ec06801ffa Remove the remaining Electron code (#909)
We will almost certainly not be using Electron in the future. Nowadays
there's Tauri, which is basically a more lightweight Electron that also
allows us to use Rust code on the native side, so it's the much better
solution, if we ever even decide to go down that road.
2024-06-03 15:47:45 +00:00
Christopher Serr 9a4c56adbc Fix Date matching for Changelog generation (#908)
Welp, the previous PR also broke something. This should fix it.
2024-06-01 10:31:31 +00:00
Christopher Serr e765dc2e65 Merge pull request #907 from CryZe/ci-full-history
Clone the entire history in the CI workflow
2024-06-01 12:10:30 +02:00
Christopher Serr 3b1b8b15c1 Clone the entire history in the CI workflow
This is necessary for the changelog generation to work correctly.
Additionally this includes an improvement to sort the contributors
alphabetically, if they have the same amount of contributions.
2024-06-01 12:05:18 +02:00
Christopher Serr d4e47647cd Merge pull request #897 from wooferzfg/react-upgrade
Upgrade React to v18
2024-06-01 11:08:13 +02:00
Christopher Serr 1578938aa8 Add a changelog and improve contributors section (#898)
This improves the contributors section in the About page. It now uses
flexbox to dynamically place the contributors. Additionally their avatar
is now being shown.

Also the ten most recent changes are now being shown in the About page.
The information is extracted from the git history. The idea is to mark
commit messages with a special changelog section at the end that's
specifically meant to be shown as a user facing change. It can be
arbitrary markdown and looks like this (which is also the first one):

Changelog: The About page now shows the most recent changes. The
contributors section has also been improved. It now shows the avatar of
each contributor.
2024-05-31 21:57:14 +02:00
wooferzfg 9be1fa8322 Fix type definitions due to removal of implicit children prop
https://solverfox.dev/writing/no-implicit-children/
2024-05-28 20:02:45 -05:00
wooferzfg 98e4fb0886 Add -f to npm ci
Some packages' peer dependencies are broken now since they haven't been updated in years
2024-05-28 17:36:54 -05:00
wooferzfg 538fef5fa0 Switch to npm install -f
Some packages' peer dependencies are broken now since they haven't been updated in years
2024-05-28 17:33:39 -05:00
wooferzfg e33d578f53 Update index.tsx for React 18 interface
Also no longer use toast.POSITION since it was removed in v10
2024-05-28 17:33:19 -05:00
wooferzfg d2d7d9732f Upgrade react, react-dom, react-toastify
Upgrading React to v18
Upgrading react-toastify to v10
2024-05-28 17:32:14 -05:00
Christopher Serr 909d61568d Use the new event system (#896)
This makes use of the new event system that got added to
`livesplit-core`. This allows the UI to react to events that happen.
Right now this is used for three things:
1. Resetting a run can now ask you for confirmation of whether to save
   the current run if it contains new best segments or it's a new
   Personal Best.
2. The side bar used to refresh the comparison and timing method 10
   times per second. Now we can just react to those being changed,
   resulting in better performance.
3. The control buttons underneath the timer now get disabled when they
   don't apply to the current situation. The pause button also changes
   its icon based on the state of the timer.
2024-05-28 20:10:20 +02:00
Christopher Serr 392d669ed0 Clean up and move server connection to settings (#895)
This moves the server connection button to the settings and cleans the
entire functionality up in various ways. The server connection no longer
gets closed by navigating around the application. Additionally the
server URL is now being remembered between sessions.

This also improves the design of the toast messages.
2024-05-27 19:16:55 +02:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 84c42503dd Bump @typescript-eslint/parser from 7.7.0 to 7.10.0 (#890)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 7.7.0 to 7.10.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.10.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-26 19:07:07 +00:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> e29e1ad0e9 Bump chromedriver from 122.0.3 to 125.0.2 (#892)
Bumps [chromedriver](https://github.com/giggio/node-chromedriver) from 122.0.3 to 125.0.2.
- [Commits](https://github.com/giggio/node-chromedriver/compare/122.0.3...125.0.2)

---
updated-dependencies:
- dependency-name: chromedriver
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-26 19:02:52 +00:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 9ed7911a74 Bump @pmmmwh/react-refresh-webpack-plugin from 0.5.11 to 0.5.13 (#862)
Bumps [@pmmmwh/react-refresh-webpack-plugin](https://github.com/pmmmwh/react-refresh-webpack-plugin) from 0.5.11 to 0.5.13.
- [Release notes](https://github.com/pmmmwh/react-refresh-webpack-plugin/releases)
- [Changelog](https://github.com/pmmmwh/react-refresh-webpack-plugin/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pmmmwh/react-refresh-webpack-plugin/compare/v0.5.11...v0.5.13)

---
updated-dependencies:
- dependency-name: "@pmmmwh/react-refresh-webpack-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-26 19:02:31 +00:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> d8f7abaa64 Bump sass from 1.76.0 to 1.77.2 (#891)
Bumps [sass](https://github.com/sass/dart-sass) from 1.76.0 to 1.77.2.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.76.0...1.77.2)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-26 19:02:09 +00:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> a706c7aa59 Bump @typescript-eslint/parser from 7.7.0 to 7.8.0 (#866)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 7.7.0 to 7.8.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.8.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-26 13:59:01 -05:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> c3b55eeb3a Bump sass from 1.71.1 to 1.76.0 (#865)
Bumps [sass](https://github.com/sass/dart-sass) from 1.71.1 to 1.76.0.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.71.1...1.76.0)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-26 13:58:49 -05:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 73079afd1a Bump sharp from 0.33.2 to 0.33.3 (#867)
Bumps [sharp](https://github.com/lovell/sharp) from 0.33.2 to 0.33.3.
- [Release notes](https://github.com/lovell/sharp/releases)
- [Changelog](https://github.com/lovell/sharp/blob/main/docs/changelog.md)
- [Commits](https://github.com/lovell/sharp/compare/v0.33.2...v0.33.3)

---
updated-dependencies:
- dependency-name: sharp
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-26 13:58:31 -05:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 656b5a6765 Bump mocha from 10.3.0 to 10.4.0 (#868)
Bumps [mocha](https://github.com/mochajs/mocha) from 10.3.0 to 10.4.0.
- [Release notes](https://github.com/mochajs/mocha/releases)
- [Changelog](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mochajs/mocha/compare/v10.3.0...v10.4.0)

---
updated-dependencies:
- dependency-name: mocha
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-26 13:58:10 -05:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 230685d09d Bump @types/node from 20.11.20 to 20.12.7 (#870)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.11.20 to 20.12.7.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-26 13:58:03 -05:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 70433e2b18 Bump ejs from 3.1.9 to 3.1.10 (#872)
Bumps [ejs](https://github.com/mde/ejs) from 3.1.9 to 3.1.10.
- [Release notes](https://github.com/mde/ejs/releases)
- [Commits](https://github.com/mde/ejs/compare/v3.1.9...v3.1.10)

---
updated-dependencies:
- dependency-name: ejs
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-26 13:57:54 -05:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 2fbedd7647 Bump webpack from 5.90.3 to 5.91.0 (#861)
Bumps [webpack](https://github.com/webpack/webpack) from 5.90.3 to 5.91.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.90.3...v5.91.0)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-26 13:57:44 -05:00
wooferzfg 5dd6ef4cca Prompt when there is an update (#889)
* Prompt when there is an update

* Fix linter
2024-05-26 18:47:26 +00:00
Christopher Serr f8a75b37eb Merge pull request #887 from CryZe/context-menu-tooltip
Add Tooltips to all Context Menus
2024-05-25 18:58:32 +02:00