Commit Graph

116 Commits

Author SHA1 Message Date
Shaan Khosla
3dfbd23f96 POC Recharts charting library (#1740) 2023-10-11 08:02:01 +01:00
Matiss Janis Aboltins
a1dd6cf3dc 🔧 removing unnecessary manual module resolution (#1707) 2023-09-18 18:42:57 +01:00
Matiss Janis Aboltins
0e66ebfeef ⬆️ (electron) upgrading electron-based dependencies (#1674) 2023-09-10 16:15:27 +01:00
Matiss Janis Aboltins
0e539d91fe (mobile) pull down to trigger bank-sync (#1663)
*  (mobile) pull down to trigger bank-sync

* Release notes

* Remove canSync checks
2023-09-07 06:56:02 +01:00
Joel Jeremy Marquez
319d196e93 Webpack + SWC Loader (#1650)
* desktopc-client swc-loader

* More swc

* Jest swc + upgrades

* Revert @swc/jest usage for now

* SWC minify

* Remove setupFilesAfterEnv in package.json as per warning message in CI

* Release notes

* Minify on CI

* swc helpers in loot-core

* @swc/jest

* Upgrade webpack

* Add @swc/core to crdt

* Use yarn cache in github actions

* Cleanup

* Fix electron

* Revert "Fix electron"

This reverts commit 787af1980648fa30788a1d1678dcda534716f31d.

* Revert action.yml cache changes

---------

Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
2023-09-05 13:42:44 -07:00
Oleh
65899b0ef0 Add support for markdown in notes (#1587) 2023-09-04 08:28:07 +01:00
Matiss Janis Aboltins
246e0d76c1 ⬆️ (better-sqlite3) upgrade to 8.6.0 to fix electron export crash (#1643) 2023-09-03 21:57:12 +01:00
Joel Jeremy Marquez
8ef2c4013a Experimental OFX parser (#1600)
* Experimental OFX parser

* Release notes

* Enable enableExperimentalOfxParser in tests

* Move experimental ofx parser to ofx2json

* Enable experimental ofx parser by default

* Address PR comments
2023-09-03 10:33:06 -07:00
Matiss Janis Aboltins
6817c45ddc ⬆️ upgrade absurd-sql and remove patch-package (#1632) 2023-09-03 17:26:01 +01:00
Trevor Farlow
d4422f89aa 🐛 Mobile: Account ledger jumps on first selection (#1625) 2023-09-01 10:58:26 -06:00
Matiss Janis Aboltins
a0290609f9 👷 visual regression tests (#1553) 2023-08-25 17:34:10 +01:00
Joel Jeremy Marquez
79f4d02350 Port App and FatalError components to TS and functional components (#1535)
* Port app to functional component and tsx

* FatalError functional component + tsx

* Release notes

* Exports cleanup

* App cleanup

* Address PR comments
2023-08-19 12:53:34 -07:00
Matiss Janis Aboltins
421aa65e6d ⬆️ (crdt) upgrade murmurhash (#1438)
Upgrading murmurhash. The new version has TS types.

Apart from that, it looks pretty much the same.

Diff: https://www.diffchecker.com/CEpBedX1
2023-08-04 08:06:44 +01:00
Matiss Janis Aboltins
d349354c9d 🐛 fix number formatter not listening to state changes (#1423)
Closes #1415

Fix number formatter not listening to state changes. This is not a fully
comprehensive solution. We will need to run a migration campaign to port
over from direct usage of `format` util to `useFormat`, but this is a
first step that solves the most glaring issue.
2023-07-30 20:57:05 +01:00
Jed Fox
fd5ace58b4 Move YNAB4/5 import code into loot-core (#1208) 2023-07-30 07:21:57 -07:00
Jed Fox
a99e88b46c Update node-fetch in the API to fix connection drop issue (#1397) 2023-07-29 05:24:51 -07:00
Jed Fox
5cd6b6b7c5 Update to the latest SVGR version & re-generate all icons (#1368)
Co-authored-by: biohzrddd <10577752+biohzrddd@users.noreply.github.com>
2023-07-19 18:57:50 -04:00
Jed Fox
2860837741 Add typings to most of the Redux logic (#1269) 2023-07-18 15:02:40 -04:00
Jed Fox
1031bbbce7 Add a few more ESLint rules (#1355) 2023-07-17 17:32:22 -04:00
Matiss Janis Aboltins
8d112d2e93 Revert "Fix drag and drop on touch devices (#1194)" (#1306)
Reverts actualbudget/actual#1204

Closes https://github.com/actualbudget/actual/issues/1293

This is way more complicated than originally anticipated. Reverting the
change to fix the prod build. Someone can work on re-introducing this in
a later build, but we need to be sure it doesn't break once more.
2023-07-07 19:15:25 +01:00
Jed Fox
0286fa4ed0 Remove usage of Formik (#1212) 2023-06-30 17:01:43 -04:00
Shazib Hussain
7165a2159d Lint tweaks (#1223) 2023-06-30 10:20:18 -04:00
Matiss Janis Aboltins
9e03a5f7bd 🔧 improved dev-server - enable asset cache (#1230)
Bringing back asset caching. This means we won't need to do a full
re-build for every change.

I had previously disabled caching because the backend changes (kcab)
were not picked up properly. But now that should be fixed too.
2023-06-30 14:37:42 +01:00
Joel Jeremy Marquez
81afe28901 Fix drag and drop on touch devices (#1204)
For #1194
2023-06-28 15:53:34 -04:00
Jed Fox
1733179bfb Remove redundant UUID wrapper module, update uuid package to 9.x (#1216)
I noticed that:

- The web and electron versions of our `uuid` module both looked exactly
the same…
- …and deferred to the `uuid` package…
- …and the async version just called the sync API.

So now we will just use the `uuid` package directly everywhere.
2023-06-28 12:24:24 -04:00
Jed Fox
982d57c9ae Move the rest of the syncing protobuf code to the CRDT package (#1217) 2023-06-28 07:03:52 -04:00
Jed Fox
38b8000d2a Bundle only the variable font version of Inter (#1213) 2023-06-28 07:02:59 -04:00
Jed Fox
d5387c5d46 Improve some of the typings in loot-core (#1180)
<!-- Thank you for submitting a pull request! Make sure to follow the
instructions to write release notes for your PR — it should only take a
minute or two:
https://github.com/actualbudget/docs#writing-good-release-notes -->
2023-06-27 13:02:58 -04:00
Jed Fox
081c9d068f Display bundle size changes in comments on opened PRs (#1205) 2023-06-27 12:46:27 -04:00
Jed Fox
45247e6d59 Remove unused deps from desktop-client (#1200)
This will reduce install/lockfile size but won’t affect the built bundle
size. Still nice, hopefully!
2023-06-26 15:15:47 -04:00
Matiss Janis Aboltins
b7d5602cce ⬆️ upgrade hotkeys-js from v3.8.2 to v3.10.3, remove monkeypatch (#1195) 2023-06-26 17:19:11 +01:00
Matiss Janis Aboltins
0f81d877ef ⬆️ upgrade react-dnd and remove monkeypatch (#1192)
Another monkeypatch bites the dust.

AFAIK there is no regression in functionality. But please test
yourselves too to double check.
2023-06-26 07:03:04 +01:00
Matiss Janis Aboltins
a3ca5a26ae ⬆️ upgrade @reach/listbox and remove monkeypatch (#1190)
It me it seems the monkey patch is no longer necessary.. At least I'm
not able to reproduce any `escape` key related issues. But LMK what you
think.

The `@reach/listbox` component is used for the custom select component
(for example: for filters).
2023-06-25 22:09:31 +01:00
Shazib Hussain
228cff3cfd New linter rule import/no-unused-modules & fixing import on typescript (#1173)
- New linter rules are now added
- Perhaps the `createPayee` method i've tagged with a disable should be
deleted.
- I have ignored unused methods in Plaid/Mobile as this stuff is still
WIP/experimental?
2023-06-24 11:58:40 -04:00
Trevor Farlow
9d041aaa7a react-router 6 upgrade (#1066)
Co-authored-by: Jed Fox <git@jedfox.com>
2023-06-23 14:40:59 -04:00
Matiss Janis Aboltins
610c42a1ae ♻️ (crdt) moved re-used utils in actual-server to separate package (#1150)
actual-server does not need to import the full actual-app/api package.
It can import only the CRDT stuff.. so I'm extracting it into a new
package to reduce the size of actual-server and make the link between
things more transparent.
2023-06-18 20:16:50 +01:00
Jed Fox
f06edd723d Update loot-core to webpack 5 (#1115)
~based on #1114~

This brings its build process up to date with the rest of the project.
We can now use Node 20 to build successfully.

Closes #918
2023-06-10 12:59:51 -04:00
Davis Silverman
87d269ba5c Remove 'new' OFX parser as it is too buggy (#1111)
Draft because it is untested, maybe tonight I will test it! Just wanted
to get some code out cause i had a spare 5 minutes.

The new parser isn't immediately good enough to replace the old parser,
and I sadly lost the time to contribute more! Sorry! If someone else
wants to take maintenance burden of this code, we can not merge this.
Otherwise, it should go the way of the Dodo it seems.

Thanks!

Closes #1044
2023-06-08 14:52:34 -04:00
Matiss Janis Aboltins
3cba838412 🔧 (cross-env) add missing dep and upgrade all to same version (#1106)
1. Upgrade all `cross-env` versions to be the same
2. Added `cross-env` to `desktop-electron` - it was used there, but was
missing as a dep
2023-06-04 21:11:09 +01:00
Shazib Hussain
461132b95e Fix electron app (#1003)
Updates to the latest version of electron and moves the backend-frontend
communication from node-ipc to websockets. This resolves the previous
roadblock regarding `nodeIntegration` .

Done

- Remove node-ipc in favour of websockets. 
- Move file copying out of `preload.js` to avoid importing module `fs`
there
- Bump all electron pacakge versions to the latest
- Added new package for finding open ports as node-ipc is gone
- Tweaked webpack config for above changes


Partially fixes #468

Questions/ Pending:
- Literally every single test fails for me, presumably some issue with
my setup/environment.
- The websocket communication is not using TLS. I'm not sure how to
enable this, or if we even need to as its all local.
- Still need to create the CI for building/deploying but I'm not sure
where start in this regard as i have no exp with it. Presumably we will
need to point the electron auto-updater to the github releases url's. If
people are happy with this PR I will look at adding the CI before its
merged.
- In dev mode only, I have disabled TLS security becuase my docker
container's cert is not signed. I _assume_ this will be true for other
people who spin up the server on thier own hardware. Perhaps I just need
to change my cert to one from letsencrypt or something...

Notes.
I have not touched javascript in eons so my apologies if the commit
trail is a bit fragmented. I tried to keep them fairly contained and
then there is a slightly gnarly final commit fixing all the linter
issues... Please let me know if you want me to squash some commits etc.

I initially tried to move this to web workers the same way the web app
does it but this was unsuccessful. I have found no way to spin up a
worker in one place (frontend/backend) and then pass this worker to the
other. The electron ipc channels don't allow you to directly pass
objects such as workers, everything is cloned/serialised. Passing a port
number so the other end can spin up its own socket works fine.

---------

Co-authored-by: Shazib Hussain <contact@shazib.com>
Co-authored-by: Jed Fox <git@jedfox.com>
2023-05-18 19:56:48 -04:00
Jed Fox
19af0b36a2 Upgrade react-spring, remove wobble (#1043)
Now we just have one spring animation library
2023-05-17 20:04:07 -04:00
Jed Fox
6fc4fc294a Update Yarn (#1042) 2023-05-17 18:54:06 -04:00
Jed Fox
34c8a73ee5 Remove @reactions/component dependency (#1036)
We can use hooks now!
2023-05-16 14:41:36 -04:00
Alberto Gasparin
f618055aab Migrate top common components to TS (#979) 2023-05-09 20:31:22 +10:00
Matiss Janis Aboltins
4aab3dec0c 🔥 remove unused prop-types dependency (#976)
Removing unused `prop-types` dependency.
2023-05-01 10:47:27 +01:00
Matiss Janis Aboltins
76c69a6e70 ⬆️ (autocomplete) upgrade Downshift dependency (#945)
Upgrading `Downshift` dependency
2023-04-23 16:57:15 +01:00
Alberto Gasparin
e8a62f89a1 Migrate core to TS p3 (#896)
Another batch of `loot-core` migrated.
2023-04-22 20:43:47 -04:00
Davis Silverman
b0c5a9389c Use Peggy instead of deprecated Peg.js (#934)
Hi there, `Peg.js` is unmaintained, so I figure you all would appreciate
if I replaced it with the drop-in replacement of Peggy. This is work I
am breaking out of #918.

Peggy adds new features like source map support that we could use,
although I do not include that in this change-set. It may be useful for
debugging changes to the .pegjs file we have.e
2023-04-22 20:16:07 -04:00
Davis Silverman
a1d321d65e Add experimental new OFX importer (#921)
Hi there, 

I try to tackle #798 here. It was suggested to throw this behind a
feature flag, so here it is!

this does its best to import the problem file in #767. 

I am working on this because it would make my work on #918 easier :)

Feel free to set the feature flag to true and try the new importer. The
date parser is not as sophisticated as the one in `node-libofx`, but I
tried 3 different OFX files, one from my bank, one from the mocks, and
one from #767. They all seem to work well enough on that front, but this
is definitely the weak point of the new implementation.

Let me know what you think!
2023-04-22 12:36:12 -04:00
Matiss Janis Aboltins
eed097d41e 🔥 remove new autocomplete experiment (react-select) (#924)
Removing `react-select` and the new autocomplete. This experiment has
failed, so cleaning things up now.
2023-04-19 22:08:32 +01:00