Compare commits

...

697 Commits

Author SHA1 Message Date
github-actions[bot]
82b6589c37 🔖 (25.4.0) (#4728)
* 🔖 (25.4.0)

* Remove used release notes

* Remove used release notes

---------

Co-authored-by: matt-fidd <81489167+matt-fidd@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
2025-04-04 23:49:46 -04:00
Matt Fiddaman
56f509dcda fix balance menu alignment (#4729)
* fix alignment

* note

* fix mobile

* Fix for width

---------

Co-authored-by: Leandro Menezes <lelemm@gmail.com>
2025-04-03 23:47:10 -04:00
dependabot[bot]
bbfa0093cd bump tar-fs from 2.1.1 to 2.1.2 (#4717) 2025-03-31 16:44:40 -04:00
Matiss Janis Aboltins
aef38f1679 🐛 fix menu not closing when menu item is clicked (#4716) 2025-03-31 18:15:17 +01:00
lelemm
e04ca554e2 🐛 Fix pluggy.ai foreigner currency transaction (#4712)
* Fix pluggy.ai foreigner currency transaction

* Trigger actions

* removed folder
2025-03-31 06:36:36 -03:00
lelemm
77949ad276 🐛 Fix Make Transfer closing the Popover when clicked (#4697)
* Fix `Make Transfer` closing the Popover

* MD

* MD

* linter

* trigger actions

* removed junk from PR

* changed solution

* using focused state
2025-03-28 10:40:56 -03:00
Saahil Jaffer
45f9cc3c1d Fix for iss parameter missing from openid response (#4626)
* fix: iss missing from the response

* add release notes

* add parameter validation check

* remove additional validation

---------

Co-authored-by: lelemm <lelemm@gmail.com>
2025-03-26 16:50:13 -03:00
Mario Lamacchia
31ed12832c Fix error spread in non-batch bank sync (#4689) 2025-03-26 09:12:54 -04:00
Margarida Reis
0f8a1aeb2b fix: apply filters in Reports dashboard for cash flow widget (#4683)
fix issue where filters set in the widget editor for the cash flow widget were not applied in the Reports dashboard
2025-03-26 00:16:23 -04:00
lelemm
161c0625b1 🐛 Fix for objects in config files (#4688)
* fix for objects in config

* md

* linter
2025-03-25 20:54:04 +00:00
Joel Jeremy Marquez
009a3dff4e Show hidden overspent categories (#4680) 2025-03-24 16:25:17 -07:00
Alec Bakholdin
5d01e109e6 🐛 [Bug] Cant edit template rules (#4686)
* Can now save template rules

* added release notes

---------

Co-authored-by: Alec Bakholdin <abakho@icims.com>
2025-03-24 17:54:39 -04:00
Michael Clark
b2287cded3 Local docker build fix (#4677)
* local docker build fix

* Create 4677

* Update sync-server.Dockerfile

* Rename 4677 to 4677.md
2025-03-22 16:25:50 +00:00
Alec Bakholdin
19dbfd0673 fixed can't rename notes (#4675) 2025-03-22 08:20:04 -07:00
Joel Jeremy Marquez
36c40d90d2 [Mobile] Add banners to alert users of recommended budget actions (#4643)
* Add banners to alert users of recommended budget actions

* Update wording for consistency

* Release notes

* Fix release notes

* Code review feedback

* Cleanup

* Extend playwright timeout

* Update Categorize button locator in test

* Update VRT

* Dummy commit

* Streamline cover spending flow

* VRT

* Remove category from modal when covered and close modal when all categories are covered

* Coderabbit suggestions

* Update translations

* VRT

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-21 17:19:09 -07:00
Alec Bakholdin
00ff2e2522 🐛 [Bug] fixed bug in Accounts.tsx for applying rules that split transactions (#4623)
* fixed bug in Accounts.tsx for applying rules that split transactions

* added release notes

* Update packages/desktop-client/src/components/accounts/Account.tsx

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: Alec Bakholdin <abakho@icims.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-03-21 16:12:29 -04:00
dependabot[bot]
1d074730f4 Bump axios from 1.7.9 to 1.8.3 (#4654)
* Bump axios from 1.7.9 to 1.8.3

Bumps [axios](https://github.com/axios/axios) from 1.7.9 to 1.8.3.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.7.9...v1.8.3)

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

Signed-off-by: dependabot[bot] <support@github.com>

* note

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
2025-03-21 13:11:29 -04:00
Joel Jeremy Marquez
1e685b993b Extract sync related server handlers from main.ts to server/sync/app.ts (#4661)
* Extract sync related server handlers from main.ts to server/sync/app.ts

* Release notes

* Revert async
2025-03-21 08:04:07 -07:00
Alec Bakholdin
6b2d2420a5 🐛 Fixed GoCardless SelectLinkedAccounts institution bug (#4667)
* Fixed GoCardless SelectLinkedAccounts institution bug

* Modified to guarantee string return type

* Update packages/desktop-client/src/components/modals/SelectLinkedAccountsModal.jsx

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update packages/desktop-client/src/components/modals/SelectLinkedAccountsModal.jsx

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update packages/desktop-client/src/components/modals/SelectLinkedAccountsModal.jsx

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Formatting

* Fixed spread syntax

* consistency in method (probably redundant)

---------

Co-authored-by: Alec Bakholdin <abakho@icims.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-03-21 07:56:25 -07:00
Joel Jeremy Marquez
af09e5b1d5 Fix error on budget file selection page when using server (#4670)
* Fix error on budget file selection page when using server

* Release notes
2025-03-21 06:29:07 -07:00
Michael Clark
8f12893ff0 :electron: Fix electron loot core resolutions (#4668)
* fix electron resolutions

* temp fix

* dont include build-electron in the web bundle assuming its built

* lowering size of build

* removing exports

* release notes

* adding bits back

* remove bad config
2025-03-21 09:01:20 +00:00
Joel Jeremy Marquez
a85dc890e5 Fix nested button error in budget file selection page (#4625)
* Resolve nested button error by converting to GridList

* Release notes
2025-03-20 13:12:43 -07:00
Joel Jeremy Marquez
8180476531 Fix embedded autocomplete unexpectedly closing when an item is clicked (#4645)
* Fix autocomplete unexpectedly closing when an item is clicked on embedded setting

* Release notes
2025-03-20 13:11:13 -07:00
Matt Fiddaman
ad1df689d7 bump various dependencies (#4656) 2025-03-20 13:27:17 -04:00
Alec Bakholdin
d9716caf5d 🔧 Added release-notes-generator.ts under generate:release-notes (#4664) 2025-03-20 10:19:04 -04:00
Michael Clark
b2cca2337c 🐛 Allowing service worker to cache files up to 5mb - fixes edge & offline mode (#4665)
* allowing sw to cache files up to 5mb

* release notes
2025-03-19 23:14:58 +00:00
Joel Jeremy Marquez
e0bddaeb99 Extract spreadsheet related server handlers from main.ts to server/spreadsheet/app.ts (#4649)
* Extract spreadsheet related server handlers from main.ts to server/spreadsheet/app.ts

* Release notes

* Fix get-cell

* Update type of initServer
2025-03-19 11:14:46 -07:00
Alec Bakholdin
2c4c5014ea 🐛 fixed current month upcoming calculation (#4629)
* fixed current month upcoming calculation

* added release notes

* updated test to validate the new behavior of getUpcoming

* modified one month and added more tests for leap years and months with different dates

* Fixed odd error

---------

Co-authored-by: Alec Bakholdin <abakho@icims.com>
2025-03-19 08:20:42 -07:00
Matiss Janis Aboltins
c7f3dadc07 🐛 (mobile) fix for iOS - keyboard focus when editing budget (#4651) 2025-03-19 04:50:04 +00:00
Matiss Janis Aboltins
999010cca6 🐛 (reports) fix conditionsOp not applying for saved reports (#4652) 2025-03-19 04:49:29 +00:00
Martin Sebek
b9603d0e54 Added CZ AirBank to banks with only 90 days of history (#4595)
* Added CZ AirBank to banks with only 90 days of history

* Added release notes
2025-03-19 00:01:52 -04:00
Alec Bakholdin
0c85523037 Add org name to bank sync UI (#4646)
* Added institution name to the LinkModal

* Added release notes

* removed a stray import I did not mean to leave in

* updated release note number

* Separated institution into its own column and updated sorting to sort by institution -> name

* Added tooltips to allow users to hover over institution name and account name when linking bank accounts

---------

Co-authored-by: Alec Bakholdin <abakho@icims.com>
2025-03-18 19:55:53 -07:00
Alec Bakholdin
eb5944b353 Bank sync avoid reimporting deleted transactions (#4644)
* matchTransactions imported_id query checks for deleted transactions

* added release notes

* removed stray import

* Added configuration option to control reimporting deleted transactions

* Updated release notes

* Unused import

* Typo

* Linting errors

* Fixed Checkbox id to match what it's for

* Added tooltip for the checkbox

---------

Co-authored-by: Alec Bakholdin <abakho@icims.com>
2025-03-18 16:21:59 -07:00
Matiss Janis Aboltins
f35a850e3d ♻️ moved loot-core import resolution from TS to yarn workspaces (#4592) 2025-03-18 17:38:57 +00:00
Matt Fiddaman
3ca9f6ecbc Update README.md (#4648) 2025-03-18 14:44:32 +00:00
Joel Jeremy Marquez
602b84342b Update server handlers to use the implementation function type instead of duplicating the function arguments/return types (#4650)
* Update server handlers types to be more strict

* Release notes
2025-03-18 06:43:15 -07:00
Joel Jeremy Marquez
b5cbaa52b2 Simplify Modals component by destructuring modal.options instead of passing options one by one (#4647)
* Simplify Modals component

* Release notes
2025-03-18 06:43:01 -07:00
Matiss Janis Aboltins
5fdaa98249 ♻️ removal of '.testing.ts' file extensions in favour of mocks (#4632) 2025-03-18 06:13:11 +00:00
Joel Jeremy Marquez
c8813e9953 Extract budget category related server handlers from main.ts to server/budget/app.ts (#4442)
* Extract category related server handlers from main.ts to server/budget/app.ts

* Release notes

* On DB layer, replace Entity model usage with DB models

* Fix typecheck errors

* Fix type error

* Fix types

* Fix typecheck error

* Fix lint errors

* Fix test errors

* Fix model mapping
2025-03-17 21:39:10 -07:00
Matiss Janis Aboltins
074d5b76cf ⬆️ upgrade yarn from v4.3.1 to v4.7.0 (#4641) 2025-03-17 17:21:28 +00:00
Matiss Janis Aboltins
9f9f349cbf ♻️ (api) do not bundle test files in package output (#4640) 2025-03-17 17:21:09 +00:00
lelemm
78e763659e 📚 More translations for rules and fields (#4635)
* More translations

* md

* more places
2025-03-17 10:43:45 -03:00
Joel Jeremy Marquez
0cc817f2ef [Redux Toolkit Migration] usersSlice [Final PR] (#4128)
* Migrate to accountSlice

* Fix lint and typecheck errors

* Update types

* Fix lint

* Fix types

* Cleanup

* Rename file

* Rename state

* Cleanup

* Fix typecheck error

* Move createAppAsyncThunk

* Queries slice

* Budgets slice

* Fix lint errors

* Undo auto removal of import/no-unresolved

* Update index.ts

* Release notes

* usersSlice

* Delete actions folder

* Remove action imports

* Fix lint

* Delete constants

* Fix lint error

* Update thunk name

* Replace CLOSE_BUDGET with resetApp
2025-03-16 21:51:58 -07:00
Alec Bakholdin
f00484b17c 🐛 added null/undefined check for scheduleIsRecurring (#4627) 2025-03-15 20:23:31 +00:00
lelemm
0cdaac6944 🐛 Pluggy.ai credit card transactions were inverted (#4628)
* bugfix

* md
2025-03-15 00:08:40 -03:00
Matiss Janis Aboltins
864aaacd11 ♻️ (loot-core) unify some electron/web/api logic (#4610)
* ♻️ (loot-core) unify some electron/web/api logic

* Add missing mock
2025-03-14 22:46:11 +00:00
Michael Clark
bdf76f6c63 :electron: Embed the sync-server (experimental) (#4526)
* sync server embedded

* cleanup

* remove comment

* remove comment

* changing settings names

* release notes

* release notes

* making dev easier (and slower)

* updating reference to webroot

* using the workspace package yo

* coderabbit
2025-03-14 22:22:17 +00:00
Joel Jeremy Marquez
47c0d394ee [Redux Toolkit Migration] prefsSlice (#4127)
* Migrate to accountSlice

* Fix lint and typecheck errors

* Update types

* Fix lint

* Fix types

* Cleanup

* Rename file

* Rename state

* Cleanup

* Fix typecheck error

* Move createAppAsyncThunk

* Queries slice

* Budgets slice

* Fix lint errors

* Undo auto removal of import/no-unresolved

* Update index.ts

* Prefs slice

* Remove old prefs types

* Fix import

* Fix typecheck errors

* Release notes

* Add checks on prefs saving

* Update prefs checking

* Fix set-theme
2025-03-14 06:35:43 -07:00
lelemm
fdac2839c9 🔨 OPENID: Refactor mixed stuff (#4428)
* Refactor

* changed the variable name back to loginMethod

* md

* Update packages/sync-server/src/app.js

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-03-14 08:38:33 -03:00
Michael Clark
379a84d2e2 🐳 @actual-app/web workspace in sync-server (#4569)
* Workspace ref web client (#9)
---------

Co-authored-by: lelemm <lelemm@gmail.com>
2025-03-14 09:07:59 +00:00
Joel Jeremy Marquez
d16d022b50 Remove height transition animation from modals when adjusting to viewport height for smoother experience (#4620)
* Use dvh to determine height of modal based on dynamic visual viewport

* Apply to dialog instead of another div

* Remove modal transition

* Release notes
2025-03-13 10:49:58 -07:00
Joel Jeremy Marquez
606e39252f [Mobile] Click on income category balance to show transactions (#4621)
* [Mobile] Click on income category balance to show transactions

* Release notes
2025-03-13 10:49:14 -07:00
Margarida Reis
2523c091c3 improvement: enable collapse split transactions with searches or filters (#4600)
* improvement: enable collapse split transactions with searches or filters

enable the "Collapse|Expand split transactions" button with searches or filters

* Update VRT

* chore: trigger GitHub actions

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-13 10:36:01 -07:00
tempiz
d4b37baa4d Modified transaction edit button on mobile to display "Add New Split" (#4536)
* Created Add Split Button

* Create 4536.md

* Fix Lint Check Error

* Fix Release Note Category

* Added add split text to amount left/save button

Removed my add split button and instead added functionality for the button save/amount left button to display "Add New Split" when all amounts are entered.

* Fix Lint

* Update release notes

* Show remaining on add split button

* Fix lint

* Added requested changes

* Fix lint
2025-03-12 17:05:20 -07:00
Matiss Janis Aboltins
ed4ef5b30e ♻️ solve most peer dependency issues reported on install (#4613)
* ♻️ solve most peer dependency issues reported on install

* Release notes

* Patch unit tests
2025-03-12 17:13:35 +00:00
Matiss Janis Aboltins
baadafb15e ♻️ (loot-core) updated all data model imports to use barrel file (#4609) 2025-03-12 17:05:46 +00:00
James Skinner
346727a539 Mobile budget file switching logical error fix (#4596)
* Fix logical error to filter out just the current file from list of files, rather than excluding remote files.

* Add release note and update comment
2025-03-12 07:45:30 -07:00
Matiss Janis Aboltins
ddcd771488 ♻️ (sync-server) align dependency versions; cleanup lint & typecheck (#4605) 2025-03-12 14:03:23 +00:00
Joel Jeremy Marquez
3ecfb4be7e Swipe to dismiss notifications (#4606)
* Swipe to dismiss notifications

* Release notes

* Update VRT

* Dummy commit

* Make notification swipe a bit snappier

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-11 14:35:01 -07:00
Margarida Reis
bf154db3d6 fix: align action buttons in modal for confirming transaction edit (#4604)
align the "Cancel" and "Confirm" buttons in the modal for confirming a transaction edit to the right-hand side for consistency
2025-03-11 14:15:49 -07:00
Joel Jeremy Marquez
4b48f09112 [TypeScript] Make db.all generic to make it easy to type DB query results (#4542)
* [TypeScript] Make db.all generic to make it easy to type DB query results

* Release notes

* Fix type

* Update return type
2025-03-10 12:14:13 -07:00
Matiss Janis Aboltins
6c7df7c1f9 ♻️ (components) updated old import paths to use the new paths (#4591) 2025-03-10 18:11:30 +00:00
Matiss Janis Aboltins
0b9b440a7a ♻️ (components) remove InputWithContent component (#4566) 2025-03-10 17:21:00 +00:00
Matiss Janis Aboltins
ebb83aca51 ♻️ (components) refactor useResponsive and move to comp. lib (#4568) 2025-03-10 15:32:17 +00:00
Joel Jeremy Marquez
e5c2ef47ac [Mobile] Drag and drop income categories to re-order (#4482)
* [Mobile] Drag and drop income categories to re-order

* Fix category group ID

* Update borders

* Use list item value prop

* Cleanup

* useCallback

* Remvoe usage of useListData

* Fix typecheck error

* Release notes

* Fix import

* Update DropIndicator

* Update DropIndicator

* Fix drop indicator
2025-03-10 08:14:33 -07:00
Matiss Janis Aboltins
af068d1f89 🐛 fix rules page table incorrect row heights (#4586) 2025-03-10 12:11:09 +00:00
James Skinner
35fe969b1b Typo fix in OutOfSyncMigrationsModal (#4585)
* Fix typo in OutOfSyncMigrationsModal.tsx

* Add release note

* Rename release note file to be id of PR rather than issue
2025-03-09 22:50:37 +00:00
Matiss Janis Aboltins
cc44fad62e ♻️ (components) rename SimpleTable to InfiniteScrollWrapper and cleanup (#4578) 2025-03-08 23:22:39 +00:00
lelemm
42294d4a53 🐛 Fix for var ACTUAL_OPENID_ENFORCE (#4533)
* Fix for var `ACTUAL_OPENID_ENFORCE`

* md
2025-03-08 13:34:56 -03:00
Joel Jeremy Marquez
d8fcd43324 Upgrade React Aria packages and address deprecated Section component warnings (#4572)
* Update react-aria packages and replace deprecated RAC Section component

* Release notes
2025-03-08 02:18:37 -08:00
Joel Jeremy Marquez
ccb07e12db Delete no longer used deprecated Button component (#4564)
* Delete no longer used deprecated Button component

* Release notes

* Release notes

* Delete upcoming-release-notes/4127.md
2025-03-07 10:15:05 -08:00
Matiss Janis Aboltins
f2267587c8 ♻️ (components) moving Input component to comp. library (#4563) 2025-03-07 16:56:17 +00:00
Joel Jeremy Marquez
4bc34776fb Replace usage of deprecated Button in Autocomplete with new Button component (#4561)
* Replace usage of deprecated Button in Autocomplete with new Button component

* Release notes

* Remove console.log
2025-03-07 08:47:46 -08:00
Joel Jeremy Marquez
63657a8496 Replace usage of deprecated Button component in MobileForms with new Button component (#4559)
* Update mobile forms TapField to use the new Button component

* Release notes

* Fix typecheck error

* Cleanup

* Update VRT

* Dummy commit

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-07 08:44:11 -08:00
Joel Jeremy Marquez
b3e82c55f6 [Mobile] Drag and drop on accounts to re-order (#4476)
* Drag and drop on mobile accounts page

* Fix width

* Move account in DB

* Update onReorder

* Use ID as key

* Fix typecheck error

* Rename prop

* Alert for debugging

* Fix retrieval of keys

* Update after logic

* Fix retrieval of nextToTargetAccount

* More debug

* Remove alert

* Cleanup

* Fix typecheck error

* Drop indicator

* Use DropIndicator component

* Update drop indicator style

* Release notes

* Remove useListData

* Upgrade react aria components in case bug fixes were introduced

* Dummy commit

* Updat e react aria packages

* Revert react aria versions

* Update AccountListItem

* Dummy commit

* Pass ListBoxItem render props to child Button

* Update release notes
2025-03-07 07:59:07 -08:00
Matiss Janis Aboltins
9a45d6707d ♻️ (components) moving select component to component library (#4556) 2025-03-07 14:48:30 +00:00
Matiss Janis Aboltins
46138997d1 ♻️ removing 'focused' prop from generic Input component (#4557) 2025-03-07 09:14:18 +00:00
Joel Jeremy Marquez
c19d5a5722 Replace usage of deprecated Button in TransactionEdit with new Button component (#4560)
* Replace usage of deprecated Button in TransactionEdit with new Button component

* Release notes
2025-03-06 19:59:45 -08:00
Joel Jeremy Marquez
c2cb61eb70 [Redux Toolkit Migration] notificationsSlice (#4126)
* Migrate to accountSlice

* Fix lint and typecheck errors

* Update types

* Fix lint

* Fix types

* Cleanup

* Rename file

* Rename state

* Cleanup

* Fix typecheck error

* Move createAppAsyncThunk

* Queries slice

* Budgets slice

* Fix lint errors

* Undo auto removal of import/no-unresolved

* Update index.ts

* Release notes

* Notifications slice

* Update payloads

* Fix addNotification import

* Fix addNotification import

* Fix typecheck error

* Fix build error

* Fix lint and typecheck error

* Coderabbit feedback

* Fix lint error
2025-03-06 19:59:19 -08:00
tempiz
ca5cd55585 Display Goal/Target Information on Mobile (#4546)
* Display Goal/Target Information on Mobile

* Create 4546.md

* Fix lint issues

* change hr and div to View and modified styling

* Fix lint errors again

---------

Co-authored-by: lelemm <lelemm@gmail.com>
2025-03-06 22:53:20 -03:00
Matiss Janis Aboltins
6fd5164987 ♻️ removing usages of MenuButton (#4555) 2025-03-06 18:48:23 +00:00
lelemm
60a864a790 📚 Translate calendar related strings (#4211)
* Translate dates POC

* more dynamic loading of locales

* added locale

* linter

* linter and typecheck

* added md

* translated DateSelect component

* more translations and fixes

* removed redux state for locale

* linter

* typecheck fix

* fix test for schedules.ts

* linter

* fixed System Default language

* loading all locales at once

* added some fallback cases

* bugfix, linter and typecheck

* schedule description rework to have better translation labels

* fixes

* test fix

* Trigger actions

* merge of #4459

---------

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
2025-03-06 15:17:38 -03:00
Matiss Janis Aboltins
c510f722ef ♻️ (components) moving icons to the component lib (#4554) 2025-03-06 18:16:59 +00:00
lelemm
1fed3ebbd7 Memoize external accounts for bank sync (#4540)
* Memoize external accounts

* md
2025-03-05 12:23:08 -03:00
Joel Jeremy Marquez
84e4cda6ad [TypeScript] Make db.firstSync generic to make it easy to type DB query results (#4249)
* [TypeScript] Make db.first generic

* Release notes

* Fix typecheck error

* Cleanup type

* Update db.first calls

* Fix strict type

* [TypeScript] Make db.firstSync generic

* Release notes

* Coderabbit review
2025-03-04 15:00:44 -08:00
Joel Jeremy Marquez
4fb5bbca34 Extract payees related server handlers from main.ts to server/payees/app.ts (#4443)
* Extract payees related server handlers from main.ts to server/payees/app.ts

* Release notes

* Payee model mapping methods

* Re-arrange methods

* Update types

* Remove undoable because there is withUndo already

* Support meta in undoable

* Fix types

* Fix typo on test
2025-03-04 15:00:27 -08:00
lelemm
e0805c125f 🐛 Fix for ACTUAL_PORT and PORT vars (#4537)
* Fix for ACTUAL_PORT and PORT vars

* md
2025-03-04 20:26:45 +00:00
Matt Fiddaman
a2fc6bdd31 Add "payee is nothing" condition to rule if there is no payee set in a schedule (#4267)
* if no payee set in schedule, add payee = nothing to rule

* note
2025-03-04 19:13:00 +00:00
Joel Jeremy Marquez
866f4891ce [TypeScript] More specific types on budget table components (#4524)
* [TypeScript] More specific types on budget table components

* Release notes

* Wrong PR number
2025-03-04 11:00:34 -08:00
Joel Jeremy Marquez
0f7a1e6b97 [Redux Toolkit Migration] modalsSlice (#4119)
* Migrate to accountSlice

* Fix lint and typecheck errors

* Update types

* Fix lint

* Fix types

* Cleanup

* Rename file

* Rename state

* Cleanup

* Fix typecheck error

* Move createAppAsyncThunk

* Queries slice

* Budgets slice

* Fix lint errors

* Undo auto removal of import/no-unresolved

* Update index.ts

* Modal slice

* Use loot-core Modal type in all modals

* Fix typecheck error

* Fix errors

* Remove ModalsState

* Fix typecheck error

* Update payload

* Fix typecheck error

* Update new modals

* Fix typecheck errors

* Fix lint error

* Fix typecheck error

* Fix typecheck error

* Update packages/desktop-client/src/components/modals/PluggyAiInitialiseModal.tsx

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-03-04 10:38:33 -08:00
Matt Fiddaman
0b15ba18a0 disable mangling when building (#4532)
* disable mangling

* note
2025-03-04 18:09:08 +00:00
lelemm
cfc8186da1 🐛 Fix config for default data dir (#4535)
* Fix config for default data dir

* md

* Fix for testing

* linter
2025-03-04 18:06:13 +00:00
lelemm
47ad1492dc 🐛 Fix production builds missing convict and pluggy-sdk (#4534)
* Fix production builds

* md
2025-03-04 14:33:44 -03:00
lelemm
90af0466f4 🐛 Fixes for OpenID with the new config (#4530)
* Fixes for openid with the new config

* md
2025-03-04 13:57:18 -03:00
Luke
98e4ece50a Allow marking transactions as Transfers on mobile devices (#4511)
* Extract existing "Make Transfer" functionality

* Add "Make Transfer" functionality to mobile menu

* Don't just blindly allow setting as transfer

* Update disabled colour and missing translations

* Fix import warnings

* Add release note

* Use correct translation function

* Determine whether to show the "Make Transfer" option or not based on the presence of an account

* Build list of menu options nicer

* Fix types

* Fix translations

* Use Trans component instead of t function

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>

---------

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
2025-03-04 13:37:58 +00:00
Szymon Romanko
9e82032595 Fixed transaction dates in bank sync with MBANK_RETAIL_BREXPLPW (#4493)
* fixed transaction date for MBANK_RETAIL_BREXPLPW

* cleared up imports after previous commit (9251d3e1)

* added release notes

* linted code

* Update packages/sync-server/src/app-gocardless/banks/mbank_retail_brexplpw.js

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>

---------

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
2025-03-04 12:34:01 +00:00
lelemm
abb6e86f35 🐛 Fix on typed select (#4529)
* Fix on typed select

* md

* merge fix

* linter
2025-03-04 09:06:37 -03:00
Matt Fiddaman
c8d14cae09 improve summary report monthly average calculation (#4302) 2025-03-04 11:33:29 +00:00
lelemm
d815a22f6b Refactoring load-config.js (#4440) 2025-03-04 08:15:46 -03:00
lelemm
d5e2030d23 Pluggy.ai bank sync (#4049)
* added Pluggy.ai bank sync

* added md

* code review nits

* small fixes

* fix syncs

* refactory after redux changes

* changed trunc to round

* removed debugger

* linter

* linter again

* sync-server changes

* types

* code review

* typecheck

* fixes

* removed old sync server file

* code review

* added more fields to mapping

* linter

* code review

* Update packages/sync-server/src/app-pluggyai/app-pluggyai.js

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>

* code review

---------

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
2025-03-04 08:07:58 -03:00
Matiss Janis Aboltins
f9b8dde199 🐛 make custom report side nav bar responsive (#4522) 2025-03-04 04:14:45 +00:00
Matt Fiddaman
c17cd28525 Show the last bank sync in plain language instead of timestamp (#4523)
* use relative time strings for last bank sync

* note
2025-03-03 21:58:53 +00:00
Margarida Reis
5ebbff4f87 feat: add "last reconciled" timestamp to accounts (#4459)
* feat: add "last reconciled" timestamp to accounts

add a `last_reconciled` column to the `accounts` table, which stores a UNIX timestamp indicating when each account was last reconciled
upon initial release, all accounts will display "Not yet reconciled"; however, after completing reconciliation and pressing the "Done reconciling" button, the timestamp will be updated accordingly

* test: generate mock accounts with `last_reconciled` as `null`

generate mock accounts with the `last_reconciled` value set to `null`, to match the expected behaviour that new accounts will start with a "Not yet reconciled" status

* improvement: display "last reconciled" timestamp in tooltip

relocate the "last reconciled" timestamp from the account balances header to a tooltip displayed when hovering over the "Reconcile" button
2025-03-03 12:27:57 -07:00
Matt Fiddaman
ca2a930bd5 bump versions to v25.3.1 (#4521)
* bump versions

* remove release notes from patch release
2025-03-03 19:13:29 +00:00
Margarida Reis
7346198360 fix: filtering of transfer transactions (#4519)
fix issue where transactions for transfers between accounts (i.e., transactions where the payee is another account) were not properly filtered during searches
2025-03-03 18:49:50 +00:00
Michael Clark
17c4d168fa 🐛 Fix error modal not showing when in non-secure context (#4499)
* init when not ssl

* bringing it all back

* huh

* race conditions....

* release notes

* remove unneeded console log
2025-03-03 18:47:27 +00:00
Michael Clark
b74175e660 :electron: Copy budget files to succeed even if cleanup fails & adding retries (#4507)
* allowing copy budget files to succeed even if cleanup fails

* release notes

* updating fs-extra

* retries in for removing dir

* better retry defaults

* defaults
2025-03-03 18:46:22 +00:00
youngcw
3628deee95 [Goals] Better processing for by templates (#4486)
* upgrade the by templates

* note

* lint
2025-03-03 09:37:20 -07:00
Matt Fiddaman
7650eed644 increase timeout for SimpleFIN batch sync and add debug logging (#4515)
* increase timeout for SimpleFIN batch sync, add logging

* note

* ensure errors bubble up to the UI
2025-03-03 15:49:10 +00:00
Mahmoud Hanafy
eeeb1d3bcd Ignore user's fly.toml (#4508)
* Ignore user's fly.toml

* Add release notes
2025-03-03 14:17:42 +00:00
Gianluca Trombetta
3863ce369d Fix typo (#4506)
* Fix typo

* Release notes
2025-03-03 10:30:58 +00:00
Julian Dominguez-Schatz
e10b105756 Fix number input on mobile with hidden decimals (#4503)
* Fix number input on mobile with hidden decimals

* Add release notes
2025-03-02 12:18:27 -05:00
Joel Jeremy Marquez
89006275a0 [TypeScript] Make db.first generic to make it easy to type DB query results (#4248)
* [TypeScript] Make db.first generic

* Release notes

* Fix typecheck error

* Cleanup type

* Update db.first calls

* Fix strict type

* Code review

* Fix typo
2025-03-01 09:33:45 -08:00
Joel Jeremy Marquez
b4f423eac0 [Mobile] Add support for searching child transactions (#4471)
* [Mobile] Add support for searching child transactions

* Release notes
2025-02-28 23:31:54 -08:00
Joel Jeremy Marquez
d5f55cee80 Fix react-hooks/exhaustive-deps error on useSheetValue.ts (#4278)
* Fix react-hooks/exhaustive-deps error on useSheetValue.ts

* Release notes

* Add comments

* Fix typecheck error
2025-02-28 23:20:25 -08:00
Joel Jeremy Marquez
fcf110749d [Redux Toolkit Migration] budgetsSlice (#4114)
* Migrate to accountSlice

* Fix lint and typecheck errors

* Update types

* Fix lint

* Fix types

* Cleanup

* Rename file

* Rename state

* Cleanup

* Fix typecheck error

* Move createAppAsyncThunk

* Queries slice

* Budgets slice

* Fix lint errors

* Fix import

* Release notes

* Undo auto removal of import/no-unresolved

* Move backup actions to budgetSlice

* Fix lint error

* Fix loadBudget

* Update index.ts
2025-02-28 22:59:51 -08:00
Matt Fiddaman
6db52ca7a8 fix negative amount parsing (#4489)
* fix negative amount parsing

* note
2025-03-01 03:50:16 +00:00
Th3Heavy
e91f8e7e06 Update bank-factory.js add bank to BANKS_WITH_LIMITED_HISTORY (#4416)
* Update bank-factory.js

add bank  90 days limit history:
INDUSTRIEL_CMCIFRPAXXX
QONTO_QNTOFRP1

* Create 4416

* Rename 4416 to 4416.md
2025-03-01 02:54:54 +00:00
Matt Fiddaman
1425671d16 prevent subsequent builds from failing when fetching translations (#4485)
* bring back deleted files for subsequent builds

* note
2025-03-01 02:49:41 +00:00
Tim
61364fb846 align month picker years to the month text (#4474)
* align month picker years to the month text

* update vrt

* add upcoming-release-notes
2025-02-28 21:23:24 -05:00
Julian Dominguez-Schatz
1a5f83d78c Update transaction repair tool to remove erroneous transaction errors (#4464)
* Update transaction fix tool to remove errors from regular transactions

* Add release notes

* Update 4464.md
2025-02-28 21:21:27 -05:00
github-actions[bot]
b0deedb411 🔖 (25.3.0) (#4478)
* 🔖 (25.3.0)

* Empty commit to bump ci

* Remove used release notes

* Empty commit to bump ci

* Bump sync-server for web release

* Remove used release notes

* Empty commit to bump ci

---------

Co-authored-by: jfdoming <9922514+jfdoming@users.noreply.github.com>
Co-authored-by: Julian Dominguez-Schatz <julian.dominguezschatz@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-02-28 20:19:57 -05:00
Michael Clark
103d95bbc8 🐳 Docker images to be published under the actual repo (#4483)
* docker images to be published to the main repo

* release notes
2025-02-28 19:38:34 -05:00
Julian Dominguez-Schatz
d11fc59ec9 Update bump-package-versions script to handle no input version (#4477) 2025-02-27 19:15:15 -05:00
Matt Fiddaman
1c931cf01c add last bank sync tracking back in (#4472)
* add last sync tracking back in

* note

* type

* db.update
2025-02-27 19:41:24 +00:00
Matt Fiddaman
7f50c73866 fix category group deletion on mobile (#4469)
* fix deleting category groups on mobile

* note
2025-02-27 17:17:07 +00:00
youngcw
a7cde1f90d fix #4445 (#4468)
* change condition

* new message

* fix

* lint
2025-02-27 10:06:08 -07:00
Julian Dominguez-Schatz
398ada0afd Fix crash when deleting child transactions from an errored split (#4465)
* Fix crash when deleting child transactions from an errored split

* Add tests

* Add release notes

* Add graceful fallback

Fallback: don't try to show errors on a transaction if it's not actually
a split.
2025-02-27 09:16:52 -05:00
Julian Dominguez-Schatz
8b928b3b21 Fix missing space in bank sync strings (#4463)
* Fix missing space in string

* Add release notes
2025-02-26 20:17:02 -05:00
Matt Fiddaman
3897a5a51c fix row spacing on bank sync page (#4458)
* fix bank sync row heights

* note
2025-02-27 01:05:46 +00:00
Alec Bakholdin
94f94497af resets transaction search even if search text is not empty (#4461)
* resets transaction search even if search text is not empty

* added release notes

---------

Co-authored-by: Alec Bakholdin <abakho@icims.com>
2025-02-27 00:03:50 +00:00
Alec Bakholdin
a72fd74c5e Resolves #4429 crash where clicking "manage payees" with an empty payee then clicking dropdown (#4462)
* added release notes

* only set payee in state on page navigation if payee id is present

---------

Co-authored-by: Alec Bakholdin <abakho@icims.com>
2025-02-27 00:02:23 +00:00
Joel Jeremy Marquez
5214549ed3 [Mobile] Change budget table colors when on non-current month (#4448)
* Change budget table colors when on non-current month

* Release notes

* Update VRT

* Dummy commit

* Revert calendar icon

* Update VRT

* Update schedule icons

* Update VRT

* Dummy commit

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-25 08:41:40 -08:00
Matt Fiddaman
3c8212e130 change i18n errors to info (#4453) 2025-02-25 16:02:45 +00:00
Matt Fiddaman
eface19216 sort schedule previews by date, then amount (#4452)
* sort schedule previews by date, then amount

* note
2025-02-25 15:10:38 +00:00
lelemm
f413fa03ae 🐛 Fix the default language init for electron (#4439)
* Fix for the default language for electron

* md
2025-02-24 00:03:12 -03:00
Matt Fiddaman
81b30d74e4 prevent docker-edge workflow from running on pushes to forks (#4430) 2025-02-22 22:48:18 +00:00
lelemm
0fddcac76d 📚 Start the application with the browser default language (#4415)
* Start the application with browser default language

* md
2025-02-22 12:21:06 -03:00
Andrey Romanov
1511587e88 Mobile: adjust modals height to visual viewport (#4427)
* Mobile: adapt autocomplete modals to visual viewport

* Fix modal max-height, animate height changes

* Update VRT

* Update max-height to be 90% of visual viewport

* Update VRT

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-22 00:18:18 +00:00
Michael Clark
ff7c358b83 :electron: Improving electron logs (#4407)
* enhancing electron logs to send messages to client window about logs send before client window startup

* release notes

* typing the logs

* ts
2025-02-21 19:58:18 +00:00
Joel Jeremy Marquez
f88b00ae77 Extract preferences related server handlers from main.ts to server/preferences/app.ts (#4420)
* Extract preferences related server handlers from main.ts to server/preferences/app.ts

* Release notes

* Fix types

* FIx typecheck errors

* Code review
2025-02-21 09:43:30 -08:00
lelemm
f5a1293e3c Enforce OPENID login (#4423)
* Enforce OPENID login

* Added `ACTUAL_OPENID_ENFORCE=true` enviroment variable to enforce only OpenID auth.

* Apply suggestions from code review

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>

* code review

---------

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
2025-02-20 23:20:30 -03:00
Joel Jeremy Marquez
5a79beadfa Fix react-hooks/exhaustive-deps error on TransactionList.jsx (#4272)
* Fix react-hooks/exhaustive-deps error on TransactionList.jsx

* Release notes

* Remove useLayoutEffect

* Add back the useLayoutEffect
2025-02-20 16:38:03 -08:00
Joel Jeremy Marquez
6e934e46a8 Extract accounts related server handlers from main.ts to server/accounts/app.ts (#4227)
* Move transaction related handlers to server/transactions folder and use the new convention

* Fix lint and typecheck

* Move server account handlers from main.ts to accounts/app.ts

* Add accounts app to main.ts

* Release notes

* Fix types

* Fix typecheck error

* Fix types

* Fix build error

* Use main app
2025-02-20 16:36:27 -08:00
dependabot[bot]
18423a3167 Bump vitest from 1.6.0 to 1.6.1 (#4410)
* Bump vitest from 1.6.0 to 1.6.1

Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 1.6.0 to 1.6.1.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v1.6.1/packages/vitest)

---
updated-dependencies:
- dependency-name: vitest
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

* note

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
2025-02-20 21:56:37 +00:00
Matt Fiddaman
c1a70377b9 prevent bank sync from crashing when payee not found (#4413) 2025-02-20 20:33:20 +00:00
Matt Fiddaman
dd4b891fd9 bump express dependencies (#4411) 2025-02-20 19:20:39 +00:00
Joel Jeremy Marquez
89a92ecbbe [TypeScript] Add types to SpreadsheetProvider (#4409)
* [TypeScript] SpreadsheetProvider

* Cleanup

* Release notes

* Update upcoming-release-notes/4409.md

Co-authored-by: Michael Clark <5285928+MikesGlitch@users.noreply.github.com>

---------

Co-authored-by: Michael Clark <5285928+MikesGlitch@users.noreply.github.com>
2025-02-20 11:05:34 -08:00
lelemm
bde99b75ae 🐛 Fix On budget / Off budget underline with translated languages (#4417)
* Fix `On budget` / `Off budget` underline

* md
2025-02-20 11:47:40 -07:00
Joel Jeremy Marquez
8d3b046bef Extract transaction related server handlers from main.ts to server/transactions/app.ts (#4221)
* Move transaction related handlers to server/transactions folder and use the new convention

* Fix lint and typecheck

* Release notes

* Update handler names

* Move get-earliest-transaction

* Update release notes

* Fix tests

* Fix types

* Fix lint

* Update snapshot

* Remove duplicate parse-file.ts

* Fix lint
2025-02-19 15:57:18 -08:00
Joel Jeremy Marquez
f7f58847dc useDisplayPayee hook to unify payee names in mobile and desktop. (#4213)
* useDisplayPayee hook to unify payee logic in mobile and desktop

* Release notes

* Fix typecheck errors

* Fix test

* Update test

* Revert (No payee) color

* Fix tests

* VRT

* Fix category transactions

* Fix lint and VRT

* Update VRT

* Translate

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-19 15:57:01 -08:00
Antoine Taillard
23752f1da9 Fix currencyToAmount incorrectly converting input (#4383)
* fix: ensure currencyToAmount works regardless of the configured number format

* chore: linting

* docs: add release note

* test: ensure correct amount is entered for debit when adding split transactions

* chore: rename variable thousandsSep to thousandsSeparator

Co-authored-by: Joel Jeremy Marquez <joeljeremy.marquez@gmail.com>

* chore: rename variable decimalSep to decimalSeparator

Co-authored-by: Joel Jeremy Marquez <joeljeremy.marquez@gmail.com>

* chore: rename decimalSep and thousandsSep variables to decimalSeparator and thousandsSeparator

---------

Co-authored-by: Joel Jeremy Marquez <joeljeremy.marquez@gmail.com>
2025-02-19 15:31:48 -08:00
lelemm
1cc2da1de3 📚 Translation batch #1 (#4408)
* Translation batch

* md

* Update packages/desktop-client/src/components/settings/Export.tsx

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix code review from coderabbit

* code review

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-02-19 18:24:15 -05:00
Michael Clark
04b5bdc62f 👷 Typescript: Improving typing of asyncStorage (global-store.json) (#4369)
* typing globalprefs

* adding release notes

* unneeded partial

* removing prop that crept in
2025-02-19 18:40:12 +00:00
Joel Jeremy Marquez
fc78d5b546 Fix react-hooks/exhaustive-deps error on useCategories.ts (#4261)
* Fix react-hooks/exhaustive-deps error on useCategories.ts

* Release notes
2025-02-19 08:40:02 -08:00
Joel Jeremy Marquez
f5586501bf Fix react-hooks/exhaustive-deps error on table.tsx (#4274)
* Fix react-hooks/exhaustive-deps error on table.tsx

* Release notes
2025-02-19 07:06:59 -08:00
Joel Jeremy Marquez
d902c38253 Fix react-hooks/exhaustive-deps error on TransactionsTable.jsx (#4268)
* Fix react-hooks/exhaustive-deps error on TransactionsTable.jsx

* Release notes

* Fix lint
2025-02-19 07:06:41 -08:00
Joel Jeremy Marquez
a085945898 Fix react-hooks/exhaustive-deps error on useProperFocus.tsx (#4259)
* Fix react-hooks/exhaustive-deps error on useProperFocus.tsx

* Remove comment in eslint config

* Release notes
2025-02-19 07:06:17 -08:00
Michał Gołąb
def06693ab [WIP] BANKS_WITH_LIMITED_HISTORY constant update (#4388) 2025-02-19 12:57:42 +00:00
Joel Jeremy Marquez
bf72a26e5c Fix react-hooks/exhaustive-deps error on Titlebar.tsx (#4273)
* Fix react-hooks/exhaustive-deps error on Titlebar.tsx

* Release notes
2025-02-18 22:36:19 -08:00
Joel Jeremy Marquez
10c35e18d3 Fix react-hooks/exhaustive-deps error on useAccounts.ts (#4262)
* Fix react-hooks/exhaustive-deps error on useAccounts.ts

* Release notes
2025-02-18 22:35:34 -08:00
Joel Jeremy Marquez
aea6e79402 Fix react-hooks/exhaustive-deps error on usePayees.ts (#4260)
* Fix react-hooks/exhaustive-deps error on usePayees.ts

* Rename

* Release notes
2025-02-18 22:32:30 -08:00
Joel Jeremy Marquez
81db7399da Fix react-hooks/exhaustive-deps error on useSelected.tsx (#4258)
* Fix react-hooks/exhaustive-deps error on useSelected.tsx

* Release notes
2025-02-18 22:18:02 -08:00
Julian Dominguez-Schatz
7c9a499f91 Foundations for the budget automations UI (#4308)
* Foundations for the budget automations UI

* Coderabbit
2025-02-18 20:06:54 -05:00
Julian Dominguez-Schatz
df9e6ec66d Fix top-level types of send function (#4145)
* Add release notes

* Fix types of `send` function

* Fix `send` types in a number of places

* PR feedback
2025-02-18 19:59:09 -05:00
Matt Fiddaman
a4d3f277ea update mapping data for existing synced transactions and always show direction dropdown (#4403)
* update sync mapping data for existing transactions on sync

* show payment direction dropdown regardless of sample data

* note

* ignore changes in raw_synced_data
2025-02-18 23:06:00 +00:00
Joel Jeremy Marquez
cab24df3ce [TypeScript] Make db.runQuery generic to make it easy to type DB query results (#4247)
* Make runQuery generic to make it easy to type DB query results.

* Release notes

* typo
2025-02-18 12:14:49 -08:00
youngcw
c92e445416 fix tooltip translation (#4402) 2025-02-18 11:19:31 -07:00
Gabriel J. Michael
e86cbcdbb3 Fixes #4069 : Ignore CSV inOutMode during OFX imports (#4382)
* Ignore inOutMode during OFX imports

* Add release notes

---------

Co-authored-by: youngcw <calebyoung94@gmail.com>
2025-02-18 10:19:08 -07:00
youngcw
3a14d46a05 lint 2025-02-18 10:12:30 -07:00
youngcw
14c1d9f03b don't unbudget goals 2025-02-18 10:06:28 -07:00
Alberto Cortina Eduarte
1884a188b7 Remove deprecated imports for several components (#4385) 2025-02-18 14:57:13 +00:00
Michael Clark
c471c8908b 🐛 Fix new proxy middleware dependency missing on prod build (#4400)
* fix new proxy middleware not installed on prod build

* release notes
2025-02-18 13:37:42 +00:00
lelemm
7a252d0694 🐛 Fix: Error rate limit at user directory page (#4397)
* Error rate limit

* md
2025-02-17 19:49:23 -05:00
lelemm
3b6c97faab Development mode for sync server (React Fast Refresh on port 5006) (#4372)
* devmode for sync server

* removed pluggy from this version

* md

* code review

* changed how open browser

* missed this

* linter

* trigger actions
2025-02-17 20:49:46 +00:00
Adam Stück
bc09c0412c Add today button on mobile budget page (#4380)
* feat: today button on mobile budget page

Jumps to the current month

* add release note

* cleaner onCurrentMonth

* Update VRT

* use SvgCalendar from icons/v2

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>

* Update VRT

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
2025-02-16 23:00:58 +00:00
Michael Clark
87779d3199 Updating sync server package name to @actual-app/sync-server (#4370)
* updating sync server to have a consistent package name

* release notes
2025-02-16 22:37:00 +00:00
Matt Fiddaman
e5eb8646c2 rename two migrations to realign with convention (#4343) 2025-02-16 18:57:03 +00:00
Joel Jeremy Marquez
0504becaf5 [TypeScript] Convert test page models to TS (#4218)
* Dummy commit

* Delete js snapshots

* Move extended expect and test to fixtures

* Fix wrong commit

* Update VRT

* Dummy commit to run GH actions

* Convert test page models to TS

* Release notes

* Fix typecheck errors

* New page models to TS

* Fix typecheck error

* Fix page name

* Put awaits on getTableTotals

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-16 10:24:38 -08:00
Martin Michotte
04f8140d26 Add fallback value for payeename: 'undefined' - CBC Bank (#4384)
* Add fallback value for payename: 'undefined'

* docs: add release note

* Add fallback value for payename: 'undefined' (for negative amounts)
2025-02-16 14:03:06 +01:00
Matt Fiddaman
9fd004205c Custom mapping and import settings for bank sync providers (#4253)
* barebones UI

* add saving and prefs

* add last sync functionality

* use mapping for synced transactions

* note

* jest -u

* Update VRT

* Coderabbit

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* add new fields

* rename migration, newer in master

* lint

* coderabbit

* update snapshots

* GoCardless handlers fallback and notes

* expose new fields from SimpleFIN

* update tests

* update instructions on GoCardless handlers

* lint

* feedback

* Update VRT

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: youngcw <calebyoung94@gmail.com>
2025-02-14 13:57:03 +00:00
Matt Farrell
f90fc69341 Add percentage adjustments to schedule templates (#4098) (#4257)
* add percentage adjustments to schedule templates

* update release note

* remove unecessary parentheses

* Update packages/loot-core/src/server/budget/goalsSchedule.ts

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* PR comments addressed

* Linting fixes

* Updated error handling, added tests

* Linting fixes

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: youngcw <calebyoung94@gmail.com>
2025-02-13 16:53:28 -07:00
Michael Clark
7e1c0a8682 🐛 Fix Initializing the connection to the local database hang (#4375)
* fix initializing to the local db

* release notes
2025-02-13 22:43:33 +00:00
Julian Dominguez-Schatz
454f019f7a Make loot-core compatible with exactOptionalPropertyTypes (#4214)
* Make `loot-core` compatible with `exactOptionalPropertyTypes`

* Add release notes
2025-02-12 18:43:47 -05:00
Matt Fiddaman
f1a4c888b2 Re-enable linting on the server (#4363)
* getAccountDb

* uuidv4

* === / !==

* default exports

* re-enable linting for the server

* fix jest

* note
2025-02-12 21:42:07 +00:00
Matiss Janis Aboltins
524707cecc 🐛 fix category is nothing rule crashing spending report widget (#4360) 2025-02-12 14:54:47 +00:00
Matiss Janis Aboltins
8351edc8bb ♻️ (imports) updating some common component import paths to the component lib (#4358) 2025-02-12 09:15:34 +00:00
Julian Dominguez-Schatz
4957cd652b Correct link to translation setup for local install (#4353)
* Correct link to translation setup for local install

* Add release notes
2025-02-11 19:14:48 -05:00
Matt Fiddaman
ad58561f4e sync-server eslint --fix (#4362) 2025-02-11 23:25:37 +00:00
Koen van Staveren
dbdc5af2b9 fix: helpers with empty or undefined values (#4356)
* fix: helpers with empty or undefined values

* chore: note
2025-02-11 21:21:54 +01:00
Matiss Janis Aboltins
679b94a626 ♻️ moving more components to the new component-lib pkg (#4346) 2025-02-11 18:33:50 +00:00
Matt Fiddaman
5e217ec9a2 Sort SimpleFIN transactions in date order (#4354)
* sort SimpleFIN transactions

* note
2025-02-11 18:26:25 +00:00
Matiss Janis Aboltins
52ce2a179e ♻️ (api) removing deprecated 'methods' export (#4350) 2025-02-11 18:22:23 +00:00
Matiss Janis Aboltins
be1c194eb4 ♻️ (eslint) disallow importing actual-app/web in loot-core (#4347) 2025-02-11 18:22:09 +00:00
Matiss Janis Aboltins
7d9190ea9c ♻️ replace loot-core/src imports with loot-core (#4349) 2025-02-11 18:21:35 +00:00
ChickenSaysBak
c883e71e49 Fix calendar interaction when editing reports dashboard (#4336)
* Fix calendar interaction when editing reports dashboard

* Release notes
2025-02-11 11:02:00 -07:00
Michael Clark
6710456c05 ⚒ Workflow updates to only trigger when needed (#4352) 2025-02-11 14:54:40 +00:00
Michael Clark
be2126e136 ☁️ Server workflows run only when server files have changed (#4348)
* making the server workflows run only when server files have changed

* release notes

* also on merge to master

* rabbit suggestion

* e2e tests and size compare dont need to run when server changes

* adding to the paths ignore
2025-02-10 22:46:25 +00:00
Michael Clark
ac08b87273 Move sync-server into Actual repo (#4334) 2025-02-10 20:44:45 +00:00
Mike Clark
7ddd79c61e bringing in the lastest updates 2025-02-10 20:11:08 +00:00
Matiss Janis Aboltins
4ee70e7f1f component library - minimalistic infrastructure (#4169) 2025-02-10 19:49:59 +00:00
Michael Clark
7faecf4273 feedback (#5)
* feedback

* remove temp script
2025-02-10 19:26:54 +00:00
Mike Clark
ce99c49ddb updating the way the server loads the actual web build path to account for different folder structure 2025-02-09 10:16:29 +00:00
Mike Clark
c947d964fa release notes 2025-02-08 22:34:02 +00:00
mikesglitch
46aa79ab7c updating docker with new references to sync-server 2025-02-08 22:18:01 +00:00
Mike Clark
af3598ec76 docker updates for the new structure of sync server 2025-02-08 20:01:30 +00:00
Mike Clark
83ba751410 integrating actual-server git workflows 2025-02-07 20:30:41 +00:00
Mike Clark
722e30e385 updating yarn lock file to accomodate sync-server 2025-02-07 19:13:30 +00:00
Mike Clark
e88bd783f2 Merge branch 'oldserver_master' into actual-server-into-actual 2025-02-07 19:02:14 +00:00
Mike Clark
8c0ca48781 Moved actual-server into actual repo 2025-02-07 19:01:23 +00:00
Michael Clark
5f1fadb7cc Fix hard crash when closing budget thats synced to cloud file (#4322)
* fix hard crash when closing budget thats synced to cloud file

* release notes
2025-02-06 21:49:07 +00:00
Matt Fiddaman
cac4761982 🔖 (25.2.1) (#565) 2025-02-06 20:39:18 +00:00
Michael Clark
e1a694a554 Fix esm error on windows (#566)
* fix esm error on windows

* release notes

* renaming release note
2025-02-06 20:34:30 +00:00
Matt Fiddaman
c4ad24edde bump versions to v25.2.1 (#4319) 2025-02-06 19:01:37 +00:00
Michael Clark
f5b9a5b23d Fix electron translations (#4317)
* fix electron translations
2025-02-06 18:16:17 +00:00
Michael Clark
8b49a25ab4 A note informing of the repo merge of actual-server into the actual repo (#560)
* Update README.md

* Create 560.md

* Update README.md

Co-authored-by: Julian Dominguez-Schatz <julian.dominguezschatz@gmail.com>

---------

Co-authored-by: Julian Dominguez-Schatz <julian.dominguezschatz@gmail.com>
2025-02-06 16:12:45 +00:00
Matt Fiddaman
15298703ac fix Weblate URL if language has never been changed (#4312)
* fix weblate URL if language has never been changed

* note
2025-02-06 15:00:56 +00:00
youngcw
7096d00fc6 nYNAB import - properly handle hidden categories and groups (#4294)
* add error handler

* lint

* note

* rabbit

* handle groups

* handle hidden right

* cleanup mock file

* lint;note
2025-02-06 07:56:14 -07:00
youngcw
e8b4a750ed Handle duplicate categories/groups in nYNAB importer. (#4293)
* add error handler

* lint

* note

* rabbit

* handle groups
2025-02-06 07:36:31 -07:00
Julian Dominguez-Schatz
4a7b0e7365 Add an action to automatically generate release PRs (#4306)
* Add an action to automatically generate release PRs

* Add release notes

* PR feedback: error handling
2025-02-06 08:37:42 -05:00
Julian Dominguez-Schatz
f1da358186 Fix crashes on reports page with translations enabled (#4303)
* Fix crashes

* Add release notes
2025-02-06 08:37:23 -05:00
youngcw
a23a28522f [Goals]: Handle tracking budget income categories (#4300)
* handle tracking income categories

* note
2025-02-05 17:49:29 -07:00
Harry Digos
6a5de96033 fix deleting rules considering the applied filters (#4224)
* fix: combine selected and filtered rules when deleting

* chore: add release note

* fix: update deps array

* refactor: replace intersection

* fix: keep selected after filters
2025-02-05 22:38:22 +00:00
Matt Fiddaman
abeeb05091 dynamically load GoCardless handlers (#557)
* dynamically load GoCardless handlers

* note
2025-02-05 22:38:00 +00:00
Bruno Ribeiro
bd063423e5 fix(#2495): fix GoCardless transaction ID to fallback to it's own generated ID on sync (#4241)
* fix(#2495): fixed gocardless import ID

* chore: added release note

* chore: updated release note

* refactor: made condition more clear

* Revert "refactor: made condition more clear"

This reverts commit ec16c99041.

* fix: added edge case
2025-02-05 22:37:47 +00:00
Julian Dominguez-Schatz
ca480a8269 🔖 (25.2.0) (#561)
* 🔖 (25.2.0)

* Remove used release notes

* Pull in newly built npm package

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-02-05 16:11:05 -05:00
Julian Dominguez-Schatz
bdf4dda3a8 🔖 (25.2.0) (#4296)
* 🔖 (25.2.0)

* Remove used release notes

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-02-05 16:10:13 -05:00
Matt Fiddaman
0c1c8e6adb Make password login page more mobile responsive (#4266)
* make password screen more responsive

* note
2025-02-03 08:33:39 +00:00
Matt Fiddaman
ed91fb1ef4 fix first occurrence of some schedules moved after the weekend not showing in preview (#4256) 2025-02-03 00:08:13 +00:00
Koen van Staveren
b14c77aed7 report sorting on dashboard (#4276)
* fix: report sorting on dashboard

* chore: note

* chore: feedback

* chore: fix vrt's

* Update packages/loot-core/migrations/1736640000000__custom_report_sorting.sql

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>

* chore: use new migration

* Update packages/loot-core/migrations/1738491452000__sorting_rename.sql

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>

---------

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
2025-02-02 16:56:04 +00:00
youngcw
64df0e107c 🐛 [Goals]: Fix inconsistent schedule amounts (#4265)
* remove the balance check

* fix inconsistent schedule amounts

* note, cleanup

* update error

* lint;test
2025-01-30 16:03:22 -07:00
Matt Fiddaman
9b59333563 keep all English translations regardless of translated % (#4232)
* keep all English translations regardless of translated %

* note
2025-01-30 09:00:59 +00:00
Julian Dominguez-Schatz
b09d800e40 fix: allow child transactions to have different transfer payees (#4255)
* fix: allow child transactions to have different transfer payees

* Add release notes
2025-01-29 18:54:53 -05:00
Koen van Staveren
d1c3b9bab1 enhance: add more action rule templating helpers (#4243)
* enhance: add more action rule templating helpers

* chore: note
2025-01-28 19:09:39 +01:00
Koen van Staveren
663f830cc9 fix: hide to budget tooltip when menu is open (#4246) 2025-01-28 16:44:58 +01:00
Denna
0312f516ad SSK_DUSSELDORF_DUSSDEDDXXX: remove non-booked transactions from import (#553)
* remove non-booked transactions from import

* Add release notes

* minor fix to please the linter

* Add coderabbit suggestions

* add test file

* fix test

* add coderabbit fixes to test file

* fix mock console

* Correct consoleSpy to make linter happy

* Add mock cleanup
2025-01-27 21:01:22 +00:00
Matt Fiddaman
9dcd22962c Fix persistent split error popover (#4225)
* unset transaction error in db when no longer present

* note
2025-01-27 14:51:49 +00:00
Samuel Barnes
f09f4af667 Custom upcoming length (#4206)
* save button

* release notes

* custom component shows

* custom input and saving working

* updated getUpcomingDays to handle custom values

* close modal after save

* test around getUpcomingDays

* updated to use more accurate timespan calculation

* fix for scheduled events only occurring till end of period

* add a day

* fixed input step down
2025-01-23 19:56:43 +00:00
Joel Jeremy Marquez
1f5e5d41a4 Remove unnecessary dispatch calls that are already being handled by shared-listeners.ts (#4179)
* Remove unnecessary dispatch calls that are already being handles by shared-listeners.ts

* Release notes

* Fix lint error
2025-01-23 08:28:05 -08:00
Matt Fiddaman
46f04f5d4c fix mobile template application e2e test (#4223) 2025-01-23 16:13:27 +00:00
Matt Fiddaman
caaa801d24 add option to complete non-recurring schedules from transaction menu (#4180) 2025-01-23 15:18:33 +00:00
youngcw
5448a5c264 🐛 [Goals]: Fix notifications not showing for single category template applications (#4222)
* show broken transfers

* more detail

* feat: add step to fix splits for fixing transfers with categories that should not be there

* reword

* update the setting

* note

* lint

* typo

* another misspelling

* fix single notification

* note

* Update VRT

* run checks

---------

Co-authored-by: UnderKoen <koenvanstaveren@hotmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-22 18:02:51 -07:00
youngcw
977657a0be Identify and fix broken transfers (#4216)
* show broken transfers

* more detail

* feat: add step to fix splits for fixing transfers with categories that should not be there

* reword

* update the setting

* note

* lint

* typo

* another misspelling

---------

Co-authored-by: UnderKoen <koenvanstaveren@hotmail.com>
2025-01-22 17:07:15 -07:00
Matt Fiddaman
2f8b839036 release schedule upcoming length adjustment (#4173)
* release schedule upcoming length adjustment

* note

* Update VRT

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-22 20:09:27 +00:00
DarkWolfSLV
1cf64f87ab Display transaction notes on mobile, fixes #1764 (#4159)
* Display transaction notes on mobile, fixes #1764

* Display transaction notes on mobile, fixes #1764

* Display transaction notes on mobile, fixes #1764

* Display transaction notes on mobile, fixes #1764

* Moving the notes to the bottom

* Moving the notes to the bottom - right file.

* Updating the code as requested

* Adding conditional rendering as suggested by Bugs Bunny

* Adding conditional rendering as suggested by Bugs Bunny and lint

---------

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
2025-01-22 09:08:24 -08:00
Joel Jeremy Marquez
012cfd09ea [TypeScript] Convert playwright config and tests to TS (#4217)
* Convert playwright config and tests to TS

* Release notes

* Update VRT

* Dummy commit

* Delete js snapshots

* Fix call to expect

* Move extended expect and test to fixtures

* Fix wrong commit

* Fix typecheck error

* Update VRT

* Dummy commit to run GH actions

* Delete mobile budget test JS

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-22 09:00:10 -08:00
Kate
39361e5b62 Spending Report: Fix budget category filtering (#4194)
* Spending: Fix budget comparison filters
- Previously only worked for category *is*, now should work for any category filters

* Add release notes

* Spending Report: Fix linting, remove unused filters from budget filter options
- Removed ability to select 'contains', 'doesNotContain', or 'matches' filters for budget categories

* enhance: add possibility for join between zero budget and category

---------

Co-authored-by: Koen van Staveren <koenvanstaveren@hotmail.com>
2025-01-22 10:08:05 +01:00
Luca Fenu
5ada00cf97 Add health check to docker compose (#546)
* Add health check to docker compose

* Added release note for PR

* Readded the mistakenly-deleted array to the release note author
2025-01-22 08:50:27 +00:00
Lenno Nagel
0f2226e993 Add support for LHV_LHVBEE22 (#542)
* Add support for LHV_LHVBEE22

* Add upcoming-release-notes/542.md

* Don't set bookingDate unless booked

* Add a basic spec file

* Add test case for invalid date and date validation to handle it

* Remove accessValidForDays
2025-01-22 08:46:11 +00:00
Joel Jeremy Marquez
f0c81eebbf Update global event listeners to handle sync server and DB update sync events (#4161)
* Update global event listeners

* Release notes

* Fix lint error
2025-01-21 22:18:06 -08:00
Joel Jeremy Marquez
a84af23e7e [e2e] Mobile budget menu modal VRT (#3583)
* Initial tests

* Mobile budget menu tests

* Fix + release notes

* Apply budget template test

* Fix test

* Fix category menu modal test

* Cleanup balance menu modal test

* Cleanup budget summary tests

* Updates

* Fix flakiness

* Cleanup

* Update packages/desktop-client/src/components/mobile/MobileNavTabs.tsx

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Cleanup based on coderabbit

* Fix flaky mobile test

* Assert data-navbar-state attribute

* Fix lint

* Update playwright timeout

* Remove Budget mode toggle logic

* VRT

* Update VRT

* Dummy commit

* Remove expect in mobile-navigation

* Update VRT

* Dummy commit to rerun GH actions

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-21 20:08:40 -08:00
Joel Jeremy Marquez
1442662eb7 [Typescript] Update validateBudgetName and uniqueBudgetName return types (#4208)
* Update validateBudgetName and uniqueBudgetName per coderabbit review

* Release notes
2025-01-21 10:44:03 -08:00
Joel Jeremy Marquez
4850034e6f [TypeScript] Add types to amount utils (#4207)
* Add types to amount utils

* Release notes
2025-01-21 10:03:54 -08:00
Matt Fiddaman
90dc050102 🌍 improve translation strings - part 2 (#4154) 2025-01-21 16:40:37 +00:00
Julian Dominguez-Schatz
7791b7401e Make Account.tsx compatible with exactOptionalPropertyTypes (#4189)
* Make `Account.tsx` compatible with `exactOptionalPropertyTypes`

* Add release notes
2025-01-20 21:40:43 -05:00
Julian Dominguez-Schatz
a97471557b Fix send types in a number of places (2/2) (#4147)
* Fix `send` types in a number of places

* Add release notes

* PR feedback
2025-01-20 17:09:27 -05:00
Matt Fiddaman
5f823156b7 add direkt_heladef1822 to bank-factory (#554) 2025-01-20 19:24:15 +00:00
Joel Jeremy Marquez
dd2b0a8bd5 [Mobile] Fix "Category budget has been updated to ..." notification even when the budget was not updated (#4200)
* Fix FocusableAmountInput's onUpdate to only fire when amount was updated

* Release notes
2025-01-20 06:31:51 -08:00
Nikita Zonov
c53e9e9e41 Add "Caixa Geral De Depositos" Portugal to banks with limited history (#547)
* Add "Caixa Geral De Depositos" Portugal to banks with limited history

* Create Release Notes file

* Update to alphabetical order
2025-01-20 10:20:49 +00:00
Samuel Barnes
6cbf3e33e6 Fix type mismatch in getStatus (#4199)
* fixed type mismatch

* release notes

* updated references to submit string

* fixed type in test

* updated test to work with add days method
2025-01-20 08:40:28 +00:00
Pierre Payet
cdbf3e06c1 Fix: update toolbar server status on sync (#4075)
* fix/#3128: listen to 'sync-event' to update user data when sync status changed, so 'userData.offline' is up to date and server status displayed is valid

* add upcoming release note

* fix: use of optional chaining for 'userData.offline' to fix typecheck errors

* fix: replace 'userData?.offline' by 'userDate' in useEffect's dependencies

* fix: add error handling for 'initializeUserData' method

* fix: remove optional chaining for 'userData.offline' and directly check if userData is not null

* fix: eslint warning "`loot-core/client/actions` import should occur before import of `loot-core/src/platform/client/fetch`"
2025-01-19 14:39:22 -08:00
Matt Fiddaman
1f2c6541b8 fix api crash - schedule upcoming length used raw (#4195)
* fix schedule bug

* note
2025-01-19 20:20:25 +00:00
sergiofmreis
ecb4d7153c Add support for ABANCA_CORP_CAGLPTPL payee name (#550)
* add support for ABANCA_CORP_CAGLPTPL payee name

* Create Release Notes file

* Lint institutionIds array

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-01-19 20:03:48 +00:00
Bruno Ribeiro
e70dc4efb0 enhance: add ability to control category learning per payee and globally (#4081)
* Added ability to control auto categories per payee and globally

* Added unit test

* Changed order of Learn Categories in settings page

* Removed console log and fixed prefs type

* Added release note

* Fixed default value for global setting

* Added tooltip and context menu option

* Removed test assertion

* Refactored default value for global setting

* Added missing boolean to saveDiff and saveDiffAndApply

* Fixed default global value

* Icon and Disable payee menu hidden when globally disabled

* Moved category learning settings to payees page

* Added automatic centering for payee SVGs

* Lint changes

* Typecheck changes

* Fixed copy paste

* Added more translation

* Changed global setting to a modal

* Fixed import order

* Renamed migration

* Update packages/desktop-client/src/components/payees/CategoryLearning.tsx

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>

* Update packages/desktop-client/src/components/payees/CategoryLearning.tsx

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>

* Update packages/desktop-client/src/components/payees/ManagePayees.tsx

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>

* Update packages/desktop-client/src/components/payees/CategoryLearning.tsx

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>

* Changed wording

---------

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
2025-01-19 19:41:43 +00:00
Julian Dominguez-Schatz
bbebf71378 Use 'cimode' as default language in tests (#4191)
* Use cimode as default language in tests

* Add release notes

* Temp: testing VRT

* Update VRT

* Revert test change

* Update VRT

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-19 11:37:01 -05:00
Matt Fiddaman
f35c5a0ed9 Fix app hanging when schedule moved before weekend (#4196) 2025-01-19 16:32:17 +00:00
Joel Jeremy Marquez
9d63b23463 [Mobile] Show undo notification when updating category budget (#4181)
* [Mobile] Show undo notification when updating category budget

* Release notes

* Update VRT

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
2025-01-18 23:57:23 -08:00
Julian Dominguez-Schatz
705985a8df Fix rounding of split rules (#4190)
* Fix rounding of split rules

* Add release notes

* PR feedback
2025-01-18 20:02:02 -05:00
Matt Fiddaman
eb31071043 fix paid schedules showing as upcoming in the account (#4188) 2025-01-18 21:34:15 +00:00
Joel Jeremy Marquez
91c4e3e067 [Redux Toolkit Migration] appSlice (#4018)
* Migrate to accountSlice

* Fix lint and typecheck errors

* Update types

* Fix lint

* Fix types

* Cleanup

* Rename file

* Rename state

* Cleanup

* Fix typecheck error

* Move createAppAsyncThunk

* Queries slice

* App slice

* Release notes

* Remove app state type

* [TS] Actual startOAuthServer function

* Rename slice

* Fix types

* Slice name

* Cleanup

* Fix lint errors

* Fix import

* Move sync actions to appSlice

* Revert to window

* Updates

* Revert browser-preload.browser.js
2025-01-18 13:34:04 -08:00
Matiss Janis Aboltins
7cb53502b8 ♻️ do not check outdated version for preview builds (#4183) 2025-01-18 20:23:38 +00:00
Matiss Janis Aboltins
87c26042b9 🐛 (mobile) fix amount input requiring two clicks on safari mobile (#4182) 2025-01-18 20:23:10 +00:00
Julian Dominguez-Schatz
6070166f4e Fix i18n language fallback for regional languages (#4185)
* Fix i18n language fallback for regional languages

* Add release notes

* Fix test
2025-01-18 15:07:15 -05:00
Julian Dominguez-Schatz
66619fa20d Fix various split transaction edits not working (#4186)
* Fix various split transaction edits not working

* Add release notes
2025-01-18 15:00:32 -05:00
Thiago Rodrigues (xthiago)
5e8a24f283 ensure GitHub name is used correctly across the project (#4187)
It follows the official trademark style[1].

[1] https://docs.github.com/en/site-policy/content-removal-policies/github-trademark-policy
2025-01-18 19:54:05 +00:00
Matiss Janis Aboltins
278e4ad74f 🐛 patch lint issues in master branch (#4184) 2025-01-17 22:08:48 +00:00
Joel Jeremy Marquez
c347653566 [Address suppressed ESLint errors] Fix exhaustive deps errors in App.tsx (#4124)
* Fix exhaustive deps errors in App.tsx

* Release notes
2025-01-17 11:37:52 -08:00
Joel Jeremy Marquez
c4593f3be9 [Redux Toolkit Migration] queriesSlice (#4016)
* Migrate to accountSlice

* Fix lint and typecheck errors

* Update types

* Fix lint

* Fix types

* Cleanup

* Rename file

* Rename state

* Cleanup

* Fix typecheck error

* Move createAppAsyncThunk

* Queries slice

* Release notes

* Cleanup types

* Cleanup

* Fix typecheck error

* Lint

* Fix typecheck error

* Fix import

* Fix typo

* Fix typo

* Update

* Copy category list so that sorting is not applied directly on category list redux state

* Update setLastTransaction payload

* Remove optional optional chaining on unwrap

* Rename accountId

* Fix type

* Remove return value of initiallyLoadPayees since no callers use it

* No need to getPayees. Just use the already loaded payees.

* Notify on action errors
2025-01-17 10:33:58 -08:00
Julian Dominguez-Schatz
99724f611c Add language setting (#4112)
* Add language global pref

* Add setting to control language

* Add release notes

* Update VRT

* Wrap missed strings in `t`

* Update VRT

* [placeholder] Bump CI

* Fix crash on old language file

* Fix loading wrong language

* Update packages/desktop-client/src/i18n.ts

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
2025-01-17 12:39:16 -05:00
Joel Jeremy Marquez
f07ad1f8c6 [TypeScript] Add types to loot-core app (#4155)
* Add types to loot-core app

* Release notes

---------

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
2025-01-17 09:26:47 -08:00
Sam Pellino
4bfb64cdfc Update ConfirmCategoryDeleteModal.tsx (#4175)
* Update ConfirmCategoryDeleteModal.tsx

Added space between category name and "is"

* Create 4175.md

* added space to trigger change; cloned repo in vscode with prettier linter to fix github bot alerting about lint

* Formatted chate with Prettier
2025-01-17 14:50:06 +00:00
rodriguestiago0
626e7973ac Add YTD and last year to Reports headers (#4019)
* Add YTD and last year to Reports headers

* Add release note

* lint

* fix end date picker

* remove debugger

* Update VRT

* Update VRT

* Fix year to date and last year

* remove debugger

* pr comments

* fix small size

* Update VRT

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: youngcw <calebyoung94@gmail.com>
2025-01-17 09:48:44 +00:00
Leo Lee
7ae6442296 (typescript) Refactoring the mobile TransactionList component to typescript (#4063)
* refactor: transaction-list to ts

* docs: add release note

* address PR comments

* typing getMenuItemStyle

* refactor: added runtime check for NaN
2025-01-16 14:38:22 -08:00
Matt Fiddaman
774402503f fix mobile schedule status (#4172) 2025-01-16 21:51:51 +00:00
Matt Fiddaman
cf360ad398 make one month schedule upcoming length dynamic and add current month option (#4168)
* improve one month upcoming length

* add current month upcoming length option

* note

* fix undefined
2025-01-16 20:47:39 +00:00
Matt Fiddaman
2a275b3821 Fix schedule actions not applying and schedules paid the same day not showing (#4171)
* fix schedule actions and schedules paid on current day not displaying

* note

* change wording of post/skip actions
2025-01-16 20:16:41 +00:00
Matiss Janis Aboltins
87428a7b65 🔧 (typescript) change moduleResolution to bundler (#4163) 2025-01-16 18:35:22 +00:00
Matt Fiddaman
6655f51ccc show all occurrences of upcoming schedules within the upcoming period (#4166)
* load all instances of scheduled transactions that occur within the upcoming period

* correct status in transaction table

* ts

* note

* ci

* upcoming -> forceUpcoming

* remove caveat from upcoming length setting modal
2025-01-16 17:04:31 +00:00
NiceDevil
ceeef91a45 Update Link to official authentik documentation (#4165) 2025-01-16 08:31:47 -07:00
Matt Fiddaman
b831d15eab upcoming schedule setting: move setting to modal (#4164)
* upcoming schedule setting: move setting to modal

* note

* change nomenclature

* remove strict override
2025-01-16 15:13:45 +00:00
Julian Dominguez-Schatz
26907d3b12 Improve string to be clearer in other languages (#4167)
* Improve string to be clearer in other languages

Change from using ':' and no question mark to a full sentence and a question mark

* Create 4167.md

* Fix quotes

* Fix

* Fix
2025-01-16 10:12:26 -05:00
Michael Clark
b9eaeafc1c 👷 Prep work for merging actual-server into actual repo (#4160)
* prep work for merging actual-server into actual repo

* release notes
2025-01-16 09:51:37 +00:00
Matt Fiddaman
45d53ff771 Use the maximum access validity time provided by GoCardless (#551)
* use validForMax supplied by GoCardless

* remove overrides in bank handlers

* note

* update types
2025-01-15 23:34:00 +00:00
Julian Dominguez-Schatz
b1627d7073 Fix send types in a number of places (1/2) (#4146)
* Fix `send` types in a number of places

* Add release notes
2025-01-15 17:18:55 -05:00
Matt Fiddaman
5fc3e2ea47 Fix inconsistent legend coloring in custom reports (#4162)
* fix inconsistent legend colouring in custom reports

* note

* Update VRT

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-15 21:25:55 +00:00
Koen van Staveren
97b28ca375 Remove code injection for /update-vrt (#4151)
* Remove code injection for /update-vrt

* chore: release note

---------

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
2025-01-15 13:13:44 +01:00
Nik
aa529a2cf1 Add ability to provide defaults for and skip updating cleared status in API (#4129)
* Cleared import changes
- Add ability to provide default for cleared field
- Add ability to skip updating cleared field

* Add release notes

* Make linter happy

* Fix optional param

* Use nullish coalescing operator
2025-01-15 11:21:21 +00:00
nsulzer
205ccfe3d6 Add GoCardless integration for COMMERZBANK_COBADEFF (#537)
* Add GoCardless integration for COMMERZBANK_COBADEFF

* Add optional iban property to creditorAccount

* Use fallback for normalizeAccount and calculateStartingBalance

* Update src/app-gocardless/banks/commerzbank_cobadeff.js

---------

Co-authored-by: Koen van Staveren <koenvanstaveren@hotmail.com>
2025-01-14 22:21:59 +01:00
Matiss Janis Aboltins
b92fa709eb ♻️ (typescript) ported TransactionsTable.test to TS (#4108) 2025-01-14 18:33:02 +00:00
Julian Dominguez-Schatz
5d91d29d77 Exclude untranslated languages from builds (#4148)
* Add script to remove untranslated language JSON files

* Remove untranslated languages in CI

* Add release notes
2025-01-14 09:57:11 -05:00
Julian Dominguez-Schatz
61d41cc28a Update issue template with translation issue type (#4144)
* Update issue template with translation issue type

* Add release notes
2025-01-14 09:44:11 -05:00
Julian Dominguez-Schatz
5921a35340 Fix string upload if new changes are present (#4149)
* Fix string upload if new changes are present

* Add release notes
2025-01-14 09:19:37 -05:00
Joel Jeremy Marquez
6573a52411 [Redux Toolkit Migration] accountsSlice (#4012)
* Migrate to accountSlice

* Release notes

* Fix lint and typecheck errors

* Update types

* Fix lint

* Fix types

* Cleanup

* Rename file

* Rename state

* Cleanup types

* Cleanup

* Remove useActions

* AppStore type

* Fix typecheck error

* Fix typecheck error

* Move createAppAsyncThunk

* Fix errors

* Rename LinkAccountArgs to LinkAccountPayload

* Fix import transactions modal

* Update upgradingId type

* Undo accounts redux state rename

* Fix typecheck error

* Fix lint error

* Revert PayeeEntity import order
2025-01-13 14:42:12 -08:00
Matt Fiddaman
bec841932d Add sorting option to custom reports (#4141)
* support sorting data in custom reports

* disable on unsupported report types

* db migration

* note

* typecheck

* split out sorting function and support complete sorting of nested data

* Update VRT

* fix defaults

* Update VRT

* always allow sorting on data tables

* Update VRT

* coderabbit

* migration: populate sort_by for existing reports

* automagically reverse sort direction, add options for alphabetical and budget sort order

* Update VRT

* fix migration

* default sorting options for different report types

* revert vrt

* Update VRT

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-13 22:11:51 +00:00
youngcw
629b001c01 [Goals]: fix stacked templates (#4120)
* fix stacked amounts

* note/lint
2025-01-13 15:10:32 -07:00
DJ Mountney
4bb59fd7f6 fix: Fix the auth proxy trust by ensuring the proxy is in the trust (#499) 2025-01-13 19:43:24 +00:00
Stefano
a1be1d43f6 Enactment: enable triggering of rules on selected transaction form the account view. (#3805)
* Adding functionality to trigger the rules of transaction from the transaction view

Signed-off-by: Stefano Tranquillini <stefano.tranquillini@gmail.com>

* fix warnings

Signed-off-by: Stefano Tranquillini <stefano.tranquillini@gmail.com>

* Fixing errors on the checks: adding changelog and lint

Signed-off-by: Stefano Tranquillini <1928354+esseti@users.noreply.github.com>

* Applying suggestion from the bot.

Signed-off-by: Stefano Tranquillini <1928354+esseti@users.noreply.github.com>

*  Enhance transaction processing in Account component by implementing rules execution and batch updates. Added utility function imports for improved functionality.

* Update packages/desktop-client/src/components/accounts/Account.tsx

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Refactor Account component imports by removing unused utility functions for cleaner code.

* Update packages/desktop-client/src/components/accounts/Account.tsx

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore: correct coderabbitai

* Removed hotkey

* Update packages/desktop-client/src/components/transactions/SelectedTransactionsButton.tsx

---------

Signed-off-by: Stefano Tranquillini <stefano.tranquillini@gmail.com>
Signed-off-by: Stefano Tranquillini <1928354+esseti@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: UnderKoen <koenvanstaveren@hotmail.com>
2025-01-12 19:37:12 +01:00
Julian Dominguez-Schatz
1c6697a7ee Fix translations missing from preview deploys (#4130)
* Fix translations missing from preview deploys

* Add release notes
2025-01-11 12:31:07 -05:00
NiceDevil
da13dfa570 Correct name for authentik IDP (#4121) 2025-01-10 15:41:02 -07:00
Joel Jeremy Marquez
6bcccaa943 Add back eslint useDispatch and useSelector rules (#4123)
* Add back eslint useDispatch and useSelector rules

* Release notes

* Bring back import/no-unresolved
2025-01-10 14:06:10 -08:00
Matt Fiddaman
58f87dc80f ♻️ standardise GoCardless handlers (#541) 2025-01-10 11:20:11 +00:00
Julian Dominguez-Schatz
5a34c06859 Include translations in builds (#4089)
* Pull/push strings via Git instead of via API

This is necessary because the Weblate API doesn't handle stale strings
well. In particular, it won't remove them automatically.

* Schedule workflow instead of running on every commit

This is so we can minimize downtime for Weblate translations.

* Prevent pull requests modifying translations

* Don't commit translations during the merge freeze

* Add release notes

* Undo rename

* Don't commit translations nightly, per feedback

* Include translations just-in-time in builds

* Revert "Prevent pull requests modifying translations"

This reverts commit 8c19a0ce13.

* Re-ignore translations

* Update release notes to be accurate

* Create missing directory

* Fix conditional logic
2025-01-09 20:13:25 -05:00
Joel Jeremy Marquez
92c93b3f6e [Typescript] Server event types (#4110)
* [Typescript] Server event types

* Release notes
2025-01-09 15:09:52 -08:00
Rob Hofman
c017b8a228 Add default undefined option for payeename in KBC integration (#533) 2025-01-09 18:49:49 +00:00
Matiss Janis Aboltins
34ffc5c4b2 ♻️ refactor theme variable to be statically defined (#4086) 2025-01-09 18:12:16 +00:00
Koen van Staveren
14b0cd7b1d fix: notes is (nothing) not working (#3998) 2025-01-09 09:21:38 +01:00
Koen van Staveren
daca767808 enhance: allow prefix for budget templates (#4032)
* enhance: allow prefix for budget templates

for example:
Prime video: #template $10

* chore: note

* chore: fix test

* chore: move prefix to template-notes.ts
2025-01-09 09:20:43 +01:00
Matt Fiddaman
6111f94b51 Sort barchart data (#4072) 2025-01-08 17:52:51 +00:00
Matiss Janis Aboltins
0637b1d5f8 add bank adapter for BOI (#539)
*  add bank adapter for BOI

* Remove console log
2025-01-07 21:30:48 +00:00
spideraxal
e6ed4505b3 Corner case transaction for GoCardLess adapater (ING Romania) (#535)
* Added special corner case

* One additional validation + Release notes

* Fixed duplicate code

* Improved comment

* Improved comment

---------

Co-authored-by: spideraxal <me@spideraxal.com>
2025-01-07 22:17:51 +01:00
Koen van Staveren
215e00ac14 Improve abn amro sync (#534)
* chore: payee name for google pay

* chore: revert notes to include all data

* chore: release note

* chore: fix tests
2025-01-07 20:05:48 +01:00
Denna
1808f51e85 Add proper transaction formatting for Stadtsparkasse Düsseldorf (Germany) (#531) 2025-01-07 18:55:32 +00:00
Lenno Nagel
0f1c231d37 Fix WARN: FromAsCasing: 'as' and 'FROM' keywords' casing do not match (#538) 2025-01-07 18:53:04 +00:00
Julian Dominguez-Schatz
95180cc780 🔖 (25.1.0) (#536)
* 🔖 (25.1.0)

* Remove used release notes

* Update web package

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-07 01:36:47 -05:00
zenminimalist
2005c1b0ac [WIP] Update bank-factory.js and add Deutsche Kreditbank AG (DKB) (DKB_BYLADEM1) to the 90-days sync limited list (#528) 2024-12-31 15:32:01 +00:00
lelemm
2ef397112c Added command lines to enable/disable openid from console (#527)
* Added command lines to enable/disable openid

* md

* Update src/scripts/disable-openid.js

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* changed error codes based on code rabbit review

* fix for github auth

* code review

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2024-12-20 14:28:25 +00:00
Sthaagg Memnochs
6c57b4ec9e Add support for "FORTUNEO_FTNOFRP1XXX" to BANKS_WITH_LIMITED_HISTORY (#518) 2024-12-19 21:25:37 +00:00
Arne Keller
efb50edf9f 🔧 upgrade better-sqlite3 (#524) 2024-12-18 09:05:41 +00:00
lelemm
96c37350d5 ⚙️Enchancement: Status code 500 for password invalid when disabling openid (#526)
* Error 500 when password invalid

* md
2024-12-17 09:11:54 +00:00
lelemm
f80eb888a0 🐛 Fix for Electron OpenID Authentication (#523)
* OpenID implementation

* Fix password login and session token initialization

* Disallow multiple authentication methods simultaneously.

Note this is only disallowed at bootstrap. If the database is edited
manually, we make no attempt to detect this.

* Refactored account-db.js into separate files in accounts/

* Migrate old database version

* Fix lint errors

* Add release note

* Add unit tests for runMigrations

* Integrate secrets database into migration system

* Remove unused imports

* trying local package

* merge

* working example

* working example

* working example

* forbidden instead of 401 when session expired

* cleanup

* small fix

* moving to another pc

* features

* more features

* added multiuser configuration

* lint fixes

* adjustments and linter

* making code more readible

* added token expiration and fixes

* fix on custom token_expiration

* lint

* build fixes

* fixes

* missing file

* linter

* linter

* test fixes

* linter

* first tests

* tests

* typo fix

* remove the init code from the old PR

* minor bug when enabling openid is deleting the password user

* fix bug when disabling openid

* another fix bug when disabling openid

* added option to login without discovery url

* adjustments for keycloak

* linter

* more tests

* adjustments

* linter fix

* added environment variable

* merge fixes for using middleware

* linter fix

* linter and tests

* tests adjustments

* added environment variables

* linter

* enhancements

* removed old files

* Added token expiration as environment variable

* fixes

* typescript fix

* linter

* unwanted code

* changed master to owner

* fixed down migrations and added transactions to it

* changed to the 'in' operator

* fixed typo

* code review

* code review

* json.parse may fail

* code review and removed duplicated methods

* multiple fixes and refactories

* bunch of fixes

* removed logs

* descriptive variable names

* linter

* code review

* linter

* improved variables

* fixes and refactories

* more code review

* variable name

* code review

* linter

* wrong logic after refactor

* refactor query

* fixes

* changes from code review

* added logs to toggleAuthentication

* removed not used route

* merged master into the branch

* removed toggleAuthenticatiomethod because you have to pass thru password config before enabling openid

* changed md file

* fixes on merge

* linter

* fix on tests

* more fixes

* fix

* another fix

* Update src/app-admin.js

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update jest.global-setup.js

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* code rabbit reviews

* linter

* Update migrations/1719409568000-multiuser.js

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update migrations/1719409568000-multiuser.js

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update src/account-db.js

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update src/accounts/openid.js

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix on code suggestion

* suggestion from coderabbit

* linter

* Apply suggestions from code review

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* linter and code review

* Apply suggestions from code review

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update src/util/middlewares.js

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fixes, ai code review, linter

* reverting res.locals and fixes

* Update src/accounts/openid.js

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update src/load-config.js

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update src/account-db.js

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fixes and refactories

* merge fix

* fix

* merge fix

* linter

* Update src/accounts/openid.js

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update src/services/user-service.js

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update src/services/user-service.js

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update src/services/user-service.js

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* more code review

* linter accepted code

* typo

* code review suggestion

* change to enable backward compatibility

* removed the userId = null

* fixes from code review

* Update jest.global-setup.js

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* code review

* minor change

* code rabbit commit was wrong

* Fix for existing user sessions

* fixes on migration

* md

* Update migrations/1719409568000-multiuser.js

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* added variable loginMethod for backward compatibility and renamed the other variable to make it more clear

* small fixes

* fix for electron

* md

---------

Co-authored-by: apilat <github@tmp.pegazy.org>
Co-authored-by: Jed Fox <git@jedfox.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2024-12-16 21:42:59 +00:00
Johannes Löthberg
70f6afbda6 Add GoCardless integration for ENTERCARD_SWEDNOKK (#506)
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2024-12-16 20:12:13 +00:00
guglicap
0d06bc1f7e Hype Bank (HYPE_HYEEIT22) Enhancements (#512) 2024-12-16 20:11:32 +00:00
nsulzer
6281d54a38 Add GoCardless integration for ABNAMRO_ABNANL2A (#513) 2024-12-16 20:10:47 +00:00
Matt Fiddaman
d637a69ee4 ISYBANK_ITBBITMM should prefer valueDate over bookingDate (#510)
* prefer valueDate for isybank-itbbitmm

* note

* fix
2024-12-16 20:05:09 +00:00
Matt Fiddaman
645958bbeb Return GoCardless rate limit information on error (#509) 2024-12-06 21:29:26 +00:00
Matt Fiddaman
df958eb35c update yarn.lock (#520) 2024-12-06 17:55:52 +00:00
Matt Fiddaman
39dbdc0418 🔖 (24.12.0) (#515)
* bump version

* Remove used release notes

* bump web version

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-06 16:39:22 +00:00
Froghut
d3a7b6228a Fix gocardless bank "Hanseatic Bank" (access_valid_for_days max 89) (#514)
* Add support for "Hanseatic Bank" (access_valid_for_days max 89)

* add PR changelog file

* fix line endings + author format

* make linter happy

* make linter happy

* use alphabetical order for import and banks list
2024-12-03 17:53:00 +00:00
guglicap
484211185b Fix Hype Bank sync (HYPE_HYEEIT22) (#511)
* fix: wrong institution_id for HYPE_HYEEIT22 in `BANKS_WITH_LIMITED_HISTORY` array

* added upcoming-release-note

* fixed author name in release note
2024-11-28 18:56:47 +00:00
lelemm
8506b87f2c 🐛 Fix existing sessions when using the latest version with Openid (#507) 2024-11-26 19:00:54 +00:00
dependabot[bot]
69a04a5c21 build(deps): bump cross-spawn from 7.0.3 to 7.0.6 (#505)
Bumps [cross-spawn](https://github.com/moxystudio/node-cross-spawn) from 7.0.3 to 7.0.6.
- [Changelog](https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/moxystudio/node-cross-spawn/compare/v7.0.3...v7.0.6)

---
updated-dependencies:
- dependency-name: cross-spawn
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-23 12:18:51 +00:00
lelemm
826511779e OpenID (#498) 2024-11-23 11:55:56 +00:00
Matt Fiddaman
30f21497a6 fix bug in batch SimpleFIN startDate logic (#504) 2024-11-21 15:49:08 +00:00
Matt Fiddaman
b1bf7ee7cd add support for 1822-DIREKT-HELADEF1822 transaction information (#484) 2024-11-09 09:26:49 +00:00
Matt Fiddaman
266de169db use SimpleFin pending flag for cleared status (#494) 2024-11-09 09:26:40 +00:00
Matt Fiddaman
d412590b33 ING_PL_INGBPLPW should prefer valueDate over bookingDate (#493) 2024-11-09 09:26:26 +00:00
Dāvis
635ef27696 Enrich pending transaction creditor info for SWEDBANK_HABALV22 (#497) 2024-11-08 22:05:51 +00:00
Dāvis
ed098c4a69 Add support for SWEDBANK_HABALV22 transaction date (#490) 2024-11-05 22:31:21 +00:00
Nuno
b98ff3f50d build: bump docker image base, set node_env=prod (#479)
* build: bump docker image base, set node_env=prod

Signed-off-by: rare-magma <rare-magma@posteo.eu>

* docs: add release note

Signed-off-by: rare-magma <rare-magma@posteo.eu>

* build: use COPY commands

Signed-off-by: rare-magma <rare-magma@posteo.eu>

---------

Signed-off-by: rare-magma <rare-magma@posteo.eu>
2024-11-03 20:53:03 +00:00
Robert Dyer
879869c85a Check SimpleFIN access key format (#485) 2024-11-03 20:35:27 +00:00
Julian Dominguez-Schatz
2cd3c9f8a9 Update yarn.lock file (#495) 2024-11-03 10:44:21 -05:00
Julian Dominguez-Schatz
81afedb610 Bump web package 2024-11-03 10:23:12 -05:00
Julian Dominguez-Schatz
1c9b43671e 🔖 (24.11.0) (#492)
* 🔖 (24.11.0)

* Remove used release notes

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-03 09:43:37 -05:00
Robert Dyer
b5f8aa4d05 Only pull single account data from SimpleFIN if syncing one account (#483)
* only pull single account data from SimpleFIN if syncing one account

* add release note

* fix linter

* remove debug print

* Update src/app-simplefin/app-simplefin.js

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2024-10-30 00:03:32 +00:00
clutwo
e659ccf3f4 Update easybank-bawaatww.js to change accessValidForDays: 179 from 180 (#486)
* Update easybank-bawaatww.js to change accessValidForDays: 179 from 180

* added release notes

* changed author in releasenote
2024-10-30 00:01:09 +00:00
Michael Clark
603f970f12 🐛 Fix migrations not working on fresh clone (#487) 2024-10-28 22:17:35 +00:00
Robert Dyer
c9e6d7897b Do not request transactions when listing accounts (#482)
* Do not request transactions when listing accounts

* add release note

* fix linter
2024-10-23 10:04:32 +01:00
Tom Crasset
cc347aef08 integrate FileService for app-sync.js (#432)
* integrate FilesService for app-sync.js

* integrate comments

* fix linter

---------

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
2024-10-23 10:03:23 +01:00
Koen van Staveren
49c5adc9cf feat: sort transactions better (#470)
* feat: sort transactions better

* chore: release note

* chore: pr feedback
2024-10-23 09:53:12 +01:00
alcroito
b8c92b98b8 Add "N26" to banks with limited history (#473) 2024-10-23 09:46:24 +01:00
Nuno
f6f49b1fe7 refactor: set correct log level (#478)
* refactor: set correct log level

Signed-off-by: rare-magma <rare-magma@posteo.eu>

* docs: set correct pr number

Signed-off-by: rare-magma <rare-magma@posteo.eu>

---------

Signed-off-by: rare-magma <rare-magma@posteo.eu>
2024-10-23 09:39:10 +01:00
Francesco Truzzi
df42cccce7 Add Fineco to banks with limited history (#481)
* Add Fineco to banks with limited history

* update release notes
2024-10-23 09:38:33 +01:00
Michael Clark
c30981638e Allowing data dir to be overridden (#480)
* allowing data dir to be overridden

* release notes

* Update load-config.js
2024-10-15 20:20:42 +01:00
David Martos
a8c4c5fa23 fix: Sabadell Bank regression, missing date field during normalization (#474)
* fix: Sabadell Bank regression, missing date field during normalization

* release notes
2024-10-12 17:27:36 +01:00
Matiss Janis Aboltins
290c6f646f 🔖 (24.10.1) (#475)
* 🔖 (24.10.1)

* Upgrade app
2024-10-08 18:26:04 +01:00
Matiss Janis Aboltins
6658dc2197 🔖 (24.10.0) (#472)
* 🔖 (24.10.0)

* Remove used release notes

* Upgrade @actual-app/web

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-10-03 18:27:34 +01:00
Matiss Janis Aboltins
f3385dafa2 🔧 update issue links to point to discord & main actual repo (#471) 2024-10-02 12:00:12 +01:00
Mariana Moreira
73f2de1ea6 [WIP] Add "Banco ActivoBank" (PT) to list of banks with limited history (#449)
* Update bank-factory.js

Add "Banco ActivoBank" to list of banks with a limited history

* Update README.md

* Rename README.md to 449.md

* Update 449.md

* Remove two duplicate lines
2024-10-01 18:39:28 -04:00
Rubén Martínez Hostyn
0757f9d680 Add support for Bizum transactions in Revolut (#459)
* fix: rename proprietaryBank to proprietaryBankTransactionCode

* feat: Add support for RevolutRevolt21 Bizum transactions

* test: Add RevolutRevolt21 bizum transactions tests

* chore: Add upcoming release note

* fix: Add missing bookingDate to tests

* fix: sort everything alphabetically
2024-09-26 09:56:50 +01:00
DirgoSalga
835b6987a7 Add custom handler for the German bank Rheinhessen Sparkasse to the GoCardless app (#454)
* Add custom handler for the German bank Rheinhessen Sparkasse to the GoCardless app.

Following the guide and using the template added the code, similar to other handlers, that should match the transaction as seen in the logs when syncing my bank through Actual.

The only thing that had to be added was the notes about the transaction are stored under remittanceInformationStructured and not under remittanceInformationUnstructured.

Testing still pending.

* FIx linting errors and add release notes

Replaced the indentation from 4 spaces to 2, to fix linting error as recommended by the yarn test.

Added the release notes file 454.md.

* FIx linting errors (second try) and fix error in the release notes

* Fix linting errors

* Update src/app-gocardless/bank-factory.js

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>

* Update src/app-gocardless/bank-factory.js

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>

* Update src/app-gocardless/banks/spk_worms_alzey_ried_malade51wor.js

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>

* Update upcoming-release-notes/454.md

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>

* Rename file "spk-worms-alzey-ried-malade51wor.js"

* Remove functions normalizeAccount and CalculateStartingBalance

Since no changes were made to the default functions, they should be deleted from this specific bank (SPK_WORMS_ALZEY_RIED_MALADE51WOR).

* Correct linting error

Remove import of unsed variables.

---------

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
2024-09-26 08:38:46 +01:00
Matt Fiddaman
2e70c11c74 Fix AccountNotLinedToRequisition Error typo (#465)
* fix GCL AccountNotLinedToRequisition typo

* release note
2024-09-25 23:03:46 +01:00
dependabot[bot]
c01e229bd7 build(deps): bump express from 4.19.2 to 4.20.0 (#457)
Bumps [express](https://github.com/expressjs/express) from 4.19.2 to 4.20.0.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.19.2...4.20.0)

---
updated-dependencies:
- dependency-name: express
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-22 20:04:52 +01:00
dependabot[bot]
e8ff02b2e7 build(deps): bump body-parser from 1.20.2 to 1.20.3 (#458)
Bumps [body-parser](https://github.com/expressjs/body-parser) from 1.20.2 to 1.20.3.
- [Release notes](https://github.com/expressjs/body-parser/releases)
- [Changelog](https://github.com/expressjs/body-parser/blob/master/HISTORY.md)
- [Commits](https://github.com/expressjs/body-parser/compare/1.20.2...1.20.3)

---
updated-dependencies:
- dependency-name: body-parser
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-22 19:46:10 +01:00
Rubén Martínez Hostyn
b1c8b3d689 fix: Update upcoming-release-notes link (#460) 2024-09-22 17:36:34 +01:00
Martin Michotte
7b314e3b25 fix: Wrong payeeName used for CBC_CREGBEBB (#451) 2024-09-17 21:12:22 +01:00
mezger6
f78383be29 Fix pending transaction amount sign and payee name for National Bank of Greece import (#448)
* fixed pending transaction amount sign and payeeName for NBG bank import

* added release note

---------

Co-authored-by: Stefanos Chatzimichelakis <s.chatzimichelakis@iccs.gr>
2024-09-17 21:12:12 +01:00
Matt Fiddaman
9ea7bd255a add support for ABANCA_CAGLPTPL payee name (#455) 2024-09-16 20:18:31 +01:00
molnarti
fe8532578d Update bank-factory.js (#452) 2024-09-12 19:27:39 +01:00
David Martos
41b12151f6 Fix BancSabadell payee name based on the transaction amount (#445)
* Fix BancSabadell creditor and debtor names

* release notes
2024-09-08 19:45:17 +01:00
Robert Dyer
d60e7501cc Sync multiple accounts in a single SimpleFIN API call. (#384) 2024-09-07 10:33:17 +01:00
dependabot[bot]
0760583359 build(deps): bump micromatch from 4.0.7 to 4.0.8 (#447)
Bumps [micromatch](https://github.com/micromatch/micromatch) from 4.0.7 to 4.0.8.
- [Release notes](https://github.com/micromatch/micromatch/releases)
- [Changelog](https://github.com/micromatch/micromatch/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/micromatch/compare/4.0.7...4.0.8)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-03 18:39:42 +01:00
Matiss Janis Aboltins
a757ba6bdc 🔖 (24.9.0) (#444)
* 🔖 (24.9.0)

* Remove used release notes

* Upgrade actual-web

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-09-03 18:21:51 +01:00
Arnaud Weyts
7a018e09a9 Fix wrong payeeName used for KBC_KREDBEBB (#442) 2024-09-02 13:32:03 +01:00
hsk-dk
c4d01fe63f Update bank-factory.js (#441)
* Update bank-factory.js

Added NORDEA_NDEADKKK (Nordea Personal Denmark) to the list BANKS_WITH_LIMITED_HISTORY

* Create 340.md

* Rename 340.md to 440.md

* Rename 440.md to 441.md
2024-08-31 20:09:56 +01:00
Rubén Martínez Hostyn
446f40714d Prevent account fallback if name is defined in formatPayeeName (#429)
* Prevent account fallback if name is defined

* Update realease-notes

* Add comment
2024-08-29 22:10:55 +01:00
Rubén Martínez Hostyn
3b26aa05b5 Fallback creditorName to remittanceInformationUnstructured in BANKINTER_BKBKESMM (#428)
* fallback creditorName to remittanceInformationUnstructured

* Update release-notes
2024-08-29 21:45:09 +01:00
Matt Fiddaman
d613a6be6e 🧹 optimise GoCardless bank sync to use fewer api calls (#436)
* don't fetch balance from gocardless unless it's needed

* release note

* refactor into common function

* Update src/app-gocardless/app-gocardless.js

Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>

---------

Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
2024-08-26 11:03:59 +01:00
Matt Fiddaman
2b37d5a642 fix gocardless error handling (#439)
* fix gocardless error handling

* release note

* remove redundant tests

* tcrasset feedback
2024-08-25 17:53:16 +01:00
Tom Crasset
6a41d28404 add logging middleware (#434) 2024-08-22 18:57:25 +01:00
Matt Fiddaman
8d4dbbf5f2 🧹 remove unused accountMetadata GoCardless API call on sync (#435) 2024-08-19 01:01:34 +01:00
Tom Crasset
b8d2797259 Add integration tests for remaining app-sync.js endpoints% (#425) 2024-08-18 21:11:01 +01:00
Matt Fiddaman
8201085ccb fix payee name selection based on the amount (#427)
* fix payee name selection based on the amount

* release note

* fix unnecessary check, trans.amount is never set
2024-08-17 16:05:13 +01:00
Tom Crasset
c16a8faa3f add integration tests for the /sync endpoint (#423) 2024-08-17 15:21:03 +01:00
Matt Fiddaman
4ce7f55e0c add stale workflow update from actual (#430) 2024-08-17 12:34:40 +01:00
dependabot[bot]
574448ff3b build(deps): bump axios from 1.7.2 to 1.7.4 (#424)
Bumps [axios](https://github.com/axios/axios) from 1.7.2 to 1.7.4.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.7.2...v1.7.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-17 12:28:20 +01:00
Tom Crasset
7fcda084ab refactor user validation into middleware (#422) 2024-08-16 21:41:22 +01:00
Tom Crasset
baf04a4d48 [Maintenance] improve testing utils and add delete-user-file test (#421)
* improve testing utils and add delete-user-file test

* remove linting errors

* add release notes

* match npm scripts naming style

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>

* add raw middleware for /sync

---------

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
2024-08-15 17:52:39 +01:00
sarfios20
a879960a2d Add SANTANDER_BSCHESMM to banks with limited history (#418) 2024-08-15 08:44:37 +01:00
Jakob Petsovits
eec5fbb1cc Return early from SimpleFIN /transactions if the account needs attention (#413) 2024-08-11 17:59:48 +01:00
Robert Dyer
b74f0f2982 Show better error if SimpleFIN account cant be found. (#412) 2024-08-08 20:26:36 +01:00
Robert Dyer
12f4295932 Stop server crashing when SimpleFIN is down. (#410) 2024-08-05 10:13:43 +01:00
Robert Dyer
d33e5cc766 Fix crash when SimpleFIN JSON data is bad. (#409) 2024-08-04 21:19:26 +01:00
Peccadilloz
df3aaf961d Add gocardless support for Berliner Sparkasse (Germany) (#358) 2024-08-03 17:00:54 +01:00
Matiss Janis Aboltins
6b57e45e04 🔖 (24.8.0) (#408) 2024-08-03 14:56:21 +01:00
vrozaksen
842e11b3a1 [WIP] Update mbank-retail-brexplpw.js (#407) 2024-08-02 19:39:34 +01:00
spideraxal
e3101fb86b Improve GoCardless adapter for ING (Romania) (#405)
* Alphabetical order of banks

* Fix notes field for pendingg transactions

* Release notes fix

---------

Co-authored-by: spideraxal <me@spideraxal.com>
2024-08-01 17:59:27 +01:00
Matt Fiddaman
943f903646 fix date calculation in Nationwide bank handler (#406)
* fix date calculation in Nationwide bank handler

* release note
2024-07-29 18:55:34 +01:00
rodriguestiago0
b4a620e74e Obfuscate password when login the login header (#402) 2024-07-29 18:49:59 +01:00
Matiss Janis Aboltins
d3d9f70657 ⬆️ upgrade yarn to 4.3.1 (#403) 2024-07-23 05:45:10 +01:00
spideraxal
c19cc56c55 Added GoCardless Integration for ING (Romania) (#401) 2024-07-18 20:40:03 +01:00
djm
40e432dedb Fix verify script (#400) 2024-07-17 20:08:17 +01:00
Dan D.
7824c52d9f Fix SimpleFIN blank payee introduced in #353 (#397) 2024-07-15 18:21:37 +01:00
Oskar
145659b256 Add gocardless support for easybank (Austria) (#396) 2024-07-13 19:54:52 +01:00
Tom Crasset
7e84cf897c add Fortuneo Banque GoCardless integration (#389) 2024-07-10 19:41:36 +01:00
Matt Fiddaman
3661c1585e Move bank sync payee name normalisation from actual to actual-server (#353) 2024-07-09 19:05:20 +01:00
Craig Dennis
17cdea9beb Update SEB Credit Card adapter to include SEB Card Accounts (#391) 2024-07-09 18:04:06 +01:00
DJ Mountney
228f38617b Remove trafico in favor of our community bot (#390)
* Remove traffico in favor of our community bot

* Add changelog
2024-07-08 13:37:47 -07:00
Robert Dyer
74ade73476 Update URL to log into SimpleFIN. (#385) 2024-07-07 20:31:59 +01:00
wdpk
81acd29c73 remove version from docker-compose.yml (#388) 2024-07-07 20:30:09 +01:00
Tom Crasset
1da9c821ee Prettify GoCardless Bank Integration README (#386) 2024-07-04 17:24:26 +01:00
Matiss Janis Aboltins
2006d885b8 🔖 (24.7.0) custom reports, splits in rules, tags and more (#383) 2024-07-02 21:49:02 +01:00
Matiss Janis Aboltins
167522d322 ⬆️ upgrade dependency tree to solve CVE-2023-42282 (#378) 2024-06-29 08:55:37 +01:00
Matt Fiddaman
f5307e4bd4 Copy trafico workflow from actual (#380) 2024-06-19 21:22:47 +01:00
dependabot[bot]
382d347508 build(deps): bump braces from 3.0.2 to 3.0.3 (#377)
Bumps [braces](https://github.com/micromatch/braces) from 3.0.2 to 3.0.3.
- [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/braces/compare/3.0.2...3.0.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-18 20:42:21 +01:00
Matiss Janis Aboltins
c792c0f54e 🔧 add github action for handling stale PRs (#376) 2024-06-18 20:24:45 +01:00
Robert Dyer
73d0f04d45 Properly handle errors for SimpleFIN. (#375) 2024-06-18 19:39:08 +01:00
Matt Fiddaman
925926f542 Add bank handler for NATIONWIDE_NAIAGB21 (Nationwide) (#372) 2024-06-16 14:47:41 +01:00
vojeroen
44ddf210ea fix TypeError in GoCardless bnp-be-gebabebb sync (#370) 2024-06-16 14:45:03 +01:00
Matt Fiddaman
62c6a8775c Add bank handler for VIRGIN_NRNBGB22 (Virgin Money) (#360) 2024-06-16 14:38:49 +01:00
daca11
1af5ab09e9 Grab payee name for Abanca gocardless integration (#359) 2024-06-08 14:09:05 +01:00
Robert Dyer
aa22e6951d Add GoCardless banks to the bank factory test suite. (#367) 2024-06-05 17:33:23 +01:00
Robert Dyer
55724acafa Refactor GoCardless bank code to avoid duplication (#362) 2024-06-05 17:32:44 +01:00
Robert Dyer
e3934b96dc Ignore coverage folder in the coverage report. (#366) 2024-06-04 20:07:55 +01:00
Matiss Janis Aboltins
2221fd8dff 🔖 (24.6.0) (#368) 2024-06-03 11:05:23 +01:00
Michael Clark
db6b4e4800 ⬆️ Updated better-sqlite3 to 9.6.0 (#357) 2024-05-16 21:10:40 +01:00
vojeroen
abd049e715 fill in creditor name for BNP bank transactions (#349) 2024-05-16 19:57:24 +01:00
Rubén Martínez Hostyn
c51e636637 Add BANKS_WITH_LIMITED_HISTORY constant and Implement BANKINTER_BKBKESMM Bank Adapter (#355) 2024-05-16 19:56:51 +01:00
Joseph Livecchi
3a486ed973 Added Header Authentication - Server Part (#312)
* Added loginMethod config option

Added a new config option loginMethod that can be password (default) or header for header authentication. This value is returned to the client to be used on the front end


---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
Co-authored-by: DJ Mountney <david.mountney@twkie.net>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Johannes Löthberg <johannes@kyriasis.com>
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
Co-authored-by: DJ Mountney <david@twkie.net>
2024-05-04 10:29:58 -07:00
Jakob Lover
33c204dedb Extend bank adapter for SEB Kort (#350) 2024-05-04 11:41:26 +01:00
Dario Ernst
41a34d0f1c Add gocardless support for Sparkasse Karlsruhe (Germany) (#346) 2024-05-03 20:56:58 +01:00
Matiss Janis Aboltins
f1488077dd 🔖 (24.5.0) mobile improvements and much more (#351) 2024-05-03 17:51:23 +01:00
Matt Fiddaman
c0b21a9f7e Add backup date field for GoCardless transactions with bank BNP_BE_GEBABEBB (#345)
* Add backup date field for GoCardless transactions with bank BNP_BE_GEBABEBB

* release note
2024-04-22 18:27:04 +01:00
Matt Fiddaman
4ae654d54d Refactor to add strict type comparisons and remove unnecessary else blocks (#343) 2024-04-20 18:57:07 +01:00
Matt Fiddaman
1bbba663b2 Make /admin/login return a descriptive error when no password is provided (#342) 2024-04-19 21:35:19 +01:00
Matt Fiddaman
44c7b4eab0 Make running app.js cwd agnostic, extend config to allow changing dataDir (#341) 2024-04-19 21:24:00 +01:00
Johannes Löthberg
ae0faf467f Allow setting accessValidForDays and maxHistoricalDays per bank (#334)
* Allow setting accessValidForDays per bank

This also stops taking `accessValidForDays` from the client since it's
hardcoded there anyway and it's simpler to just have these per-bank
values in one place.

Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>

* Get the max allowed maxHistoricalDays value from the GoCardless API

Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>

* Upgrade nordigen-node to 1.4.0

Contrary to the claims in the nordigen-node changelog 1.3.0 did *not*
fix the missing support for passing in accessValidForDays, so we have to
upgrade to 1.4.0 to actually get the fix.

Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>

---------

Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2024-04-14 17:21:47 +01:00
dependabot[bot]
a5a5f30dd7 build(deps): bump tar from 6.1.11 to 6.2.1 (#335)
Bumps [tar](https://github.com/isaacs/node-tar) from 6.1.11 to 6.2.1.
- [Release notes](https://github.com/isaacs/node-tar/releases)
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/node-tar/compare/v6.1.11...v6.2.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-12 21:25:59 +01:00
Robert Dyer
f06bbf9a51 Add ACTUAL_PORT environment variable to docker-compose.yml (#333) 2024-04-07 16:27:48 +01:00
dependabot[bot]
1c61508abb build(deps): bump express from 4.18.2 to 4.19.2 (#329)
Bumps [express](https://github.com/expressjs/express) from 4.18.2 to 4.19.2.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.18.2...4.19.2)

---
updated-dependencies:
- dependency-name: express
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-02 18:29:59 +01:00
Matiss Janis Aboltins
deec1f998c 🔖 (24.4.0) custom reports improvements, stability enhancements (#332)
* 🔖 (24.4.0) custom reports improvements, stability enhancements

* Remove used release notes

* Upgrade actual

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-04-02 07:30:31 +01:00
Björn Wallebäck
bf404104c2 feat: add 'SEB Kort Bank AB' credit card support (#325)
* feat: add 'SEB Kort Bank AB' credit card support

* add: release notes for #325

* Calculate balance correctly for SEB Kort credit cards
2024-03-23 11:04:00 +00:00
dependabot[bot]
5fde6561d0 build(deps): bump follow-redirects from 1.15.4 to 1.15.6 (#322)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.4 to 1.15.6.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.4...v1.15.6)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-21 19:39:58 +00:00
Martin Myhrman
6e9eddeb56 feat: add SEB Privat bank (#316) 2024-03-03 20:11:56 +00:00
Matiss Janis Aboltins
b926af286a 🔖 (24.3.0) (#317)
* 🔖 (24.3.0)

* Remove used release notes

* Upgrade @actual/web

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-03 17:25:45 +00:00
dependabot[bot]
f43097f813 build(deps): bump ip from 2.0.0 to 2.0.1 (#314) 2024-02-28 08:10:17 +00:00
Dan D
04147fb9b9 Pending Transaction Support for SimpleFIN Integration (#315)
* Add Pending Transaction Support

Adds support for pending transactions (for banks that support them) from SimpleFIN.

* Release Note - Pending Transactions for SimpleFIN

* Fix Linter Errors

* Fix additional Iinter errors

* Spacing - Lint Error Fix
2024-02-21 13:28:10 -07:00
DJ Mountney
cd4a2b6678 Fix the link page for gocardless (#311)
* Fix the link page for gocardless

Ensures the redirect page is auto-closed after linking
2024-02-13 11:20:31 -08:00
DJ Mountney
16faf49438 Update the nordigen-node gem to get new endpoints (#310)
* Update the nordigen-node gem to get new endpoints
2024-02-13 09:34:35 -08:00
Matiss Janis Aboltins
13a39168c4 🔧 upgrade deprecated github actions (#307) 2024-02-02 20:35:24 +00:00
circle3451
10d53fbe5f Add gocardles ssupport for Andelskassen Fælleskassen (#305) 2024-02-02 20:06:34 +00:00
Matiss Janis Aboltins
21c65cf68f 🔖 (24.2.0) cleared transaction improvements; experimental simplefin bank-sync (#306) 2024-02-02 19:40:44 +00:00
Zach Whelchel
e7f6348d9a SimpleFin (#296)
* Initial support for SimpleFin.

* Added release notes and lint cleanup.

* Changed some notes for better context.

* Fixed logic.

* Changes per requests on PR.

* More cleanup of null checks.
2024-01-20 14:35:30 -08:00
Norbert Takács
af6de6b585 Update README.md broken link (#303)
* Update README.md broken link

* added release notes

* moved release file

* Delete upcoming-release-notes/299.md

---------

Co-authored-by: Norbert Takacs <norbert.takacs@postnord.com>
Co-authored-by: youngcw <calebyoung94@gmail.com>
2024-01-18 11:20:22 -07:00
Harrison Kiang
d8c7a0a358 non-root users for Dockerfiles (#300)
* Optional non-root users for Dockerfiles
2024-01-18 09:26:51 -08:00
DJ Mountney
58f7b09e8d Limit yarn concurrency on 32bit (#302)
* Limit yarn concurrency on 32bit

- improves ci stability
2024-01-18 09:04:04 -08:00
albertchae
7b36c2207a Remove obsolete fly.template.toml (#284) 2024-01-12 17:19:20 +00:00
dependabot[bot]
6de1fe34e3 build(deps): bump follow-redirects from 1.15.2 to 1.15.4 (#299)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.2 to 1.15.4.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.2...v1.15.4)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-11 19:08:01 +00:00
Matiss Janis Aboltins
ff073b1221 ♻️ (gocardless) renamed nordigen_* secrets to gocardless_* (#293) 2024-01-09 19:21:28 +00:00
Waseh
1d4eaaa79c Change SparNord integration to add support for Lægernes Bank (#298) 2024-01-09 09:00:33 +00:00
visurel
3b83f064d4 Add GoCardless bank integration for SPK_MARBURG_BIEDENKOPF_HELADEF1MAR (#297) 2024-01-09 08:59:16 +00:00
t4cmyk
c330020487 Add GoCardless bank integration for ING_INGDDEFF (#294)
including some test data

Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
2024-01-06 16:29:45 +00:00
Matiss Janis Aboltins
2f7b3917ed 🔖 (24.1.0) Mobile split transactions (#295) 2024-01-06 10:18:51 +00:00
Matiss Janis Aboltins
933fc27126 📝 (gocardless) updated the docs - removed redundant information (#292) 2023-12-22 21:33:06 +00:00
Matiss Janis Aboltins
c910b6efcb Revert "♻️ (gocardless) renamed nordigen_* secrets to gocardless_*"
This reverts commit 633463a184.
2023-12-15 19:20:57 +00:00
Matiss Janis Aboltins
633463a184 ♻️ (gocardless) renamed nordigen_* secrets to gocardless_* 2023-12-15 19:18:54 +00:00
Matiss Janis Aboltins
5ac4c58d1e 🔖 (23.12.1) fix '.migrate' file causing Synology NAS problems (#290) 2023-12-07 18:28:42 +00:00
Bernd Schorgers
f93893e007 Store migrations statestore in datadir (#289) 2023-12-05 21:10:17 +00:00
Matiss Janis Aboltins
42699ac044 🔖 (23.12.0) darkmode, transaction locking, mobile updates and more (#286) 2023-12-02 19:45:50 +00:00
Feliciaan De Palmenaer
bb07652cf8 Changed fintro specific bank integration to work with BNP and Hello Bank (#285) 2023-12-01 17:50:53 +00:00
Matiss Janis Aboltins
dc47c6d72a 🐛 improved gocardless error handling (#282) 2023-12-01 17:49:27 +00:00
Toon Willems
4b12561905 Add workaround for non-unique transactionIds for Belfius bank (#283)
Co-authored-by: Toon Willems <toon.willems@silverfin.com>
2023-11-30 17:51:39 +00:00
Matiss Janis Aboltins
ca4ea97768 ⬆️ (node-migrate) upgraded to v2.0.1 (#281) 2023-11-22 22:14:02 +00:00
Val Markovic
87813b398a Add "docker.io/" registry prefix to docker compose image (#274)
Required by Podman Compose. Docker Compose should not care either way. The registry prefix is explicitly supported in the [compose file spec](https://github.com/compose-spec/compose-spec/blob/master/spec.md#image)
2023-11-21 11:14:45 -08:00
Matiss Janis Aboltins
7865e08c91 ⬆️ (yarn) upgrade yarn to v4 and better-sqlite3 to v9.1.1 and node to v18 (#277) 2023-11-17 22:20:53 +00:00
Matiss Janis Aboltins
e116d01453 🐛 (gocardless) fix banksync - create singleton client (#278) 2023-11-16 07:19:19 +00:00
dependabot[bot]
a6c1443669 build(deps): bump axios from 1.3.2 to 1.6.1 (#276)
Bumps [axios](https://github.com/axios/axios) from 1.3.2 to 1.6.1.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.3.2...v1.6.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-11 18:49:16 +00:00
Matiss Janis Aboltins
de604b9f3a 🐛 (docker) add missing migrations folder (#275) 2023-11-09 07:53:19 +00:00
Matiss Janis Aboltins
1f79708ea3 ability to add migrations (#267) 2023-11-07 18:10:16 +00:00
Matiss Janis Aboltins
494d67459f Create FUNDING.yml (#270) 2023-11-06 20:06:51 +00:00
Matiss Janis Aboltins
9e7c2e7a65 🔖 (23.11.0) (#273) 2023-11-04 10:32:08 +00:00
dependabot[bot]
1f5ff932b1 build(deps): bump @babel/traverse from 7.20.13 to 7.23.2 (#272) 2023-10-19 08:44:25 +01:00
Matiss Janis Aboltins
75af7b9987 🔧 (github) adding issue templates (#262)
* 🔧 (github) adding issue templates

* Release notes
2023-10-05 08:40:11 +01:00
Matiss Janis Aboltins
b8fbc9b19c 🔥 remove jlongster/actual-server package (#260)
* 🔥  remove jlongster/actual-server package

* Release notes
2023-10-05 08:40:00 +01:00
Matiss Janis Aboltins
fc643d28c6 ⬆️ upgrade better-sqlite3 to v8.6.0 (#268)
* ⬆️  upgrade better-sqlite3 to v8.6.0

* Release notes
2023-10-05 08:39:45 +01:00
Matiss Janis Aboltins
9d6b9c556d 🔖 (23.10.0) (#269)
* 🔖 (23.10.0)

* Remove used release notes

* Upgrade web

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-10-04 18:00:13 +01:00
Johannes Löthberg
46dbc89482 Make edge builds fetch master builds from correct repository (#265)
If we don't verify that the repository ID is what we expected then we
will pull artifacts from PRs where the source branch is `master`.

Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2023-09-10 20:04:19 -05:00
Jakob Aarup Skov
bde303ec45 Add GoCardless bank integration for Spar Nord SPARNORD_SPNODK22 (#257) 2023-09-03 17:42:41 +01:00
James Hackett
6512c465f0 Make file size uploads configurable via env vars (#245) 2023-09-03 17:42:28 +01:00
Matiss Janis Aboltins
6f216cc1aa 🔖 (23.9.0) mobile transaction entry, privacy mode (#259) 2023-09-03 16:22:20 +01:00
Constantin Mihai
ad65fcdffc Fix config file not being loaded from the project root by default (#249) 2023-08-16 20:03:58 +01:00
Dylan Myers
87747a83b9 Disable Express x-powered-by Header (#248) 2023-08-16 18:36:33 +01:00
Ludvig Hozman
0501deac2d Add DANSKEBANK_DABANO22 integration (#244) 2023-08-15 19:07:17 +01:00
Johannes Löthberg
95c7d5bc2c Decide on transaction date during GoCardless transaction normalization (#243) 2023-08-15 08:29:38 +01:00
CharlieMK
09380db661 Add FINTRO_BE_GEBABEBB GoCardless integration (Include additionalInformation in notes) (#242) 2023-08-09 21:20:50 +01:00
Johannes Löthberg
52c1676005 Add NORWEGIAN_SE_NORWNOK1 bank (#237)
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2023-08-09 17:54:36 +01:00
Johannes Löthberg
9c9f6645d3 Add GoCardless bank integration for American Express AESUDEF1 (#239) 2023-08-09 08:27:47 +01:00
Johannes Löthberg
9102d974a5 Make endDate optional when downloading GoCardless transactions (#241) 2023-08-09 08:22:57 +01:00
Matiss Janis Aboltins
7cef3fe24b 🔖 (23.8.1) fix nYNAB import, mobile colors and other smaller fixes (#240)
- web: https://github.com/actualbudget/actual/pull/1475
- server: https://github.com/actualbudget/actual-server/pull/240
- docs: https://github.com/actualbudget/docs/pull/260
2023-08-07 18:58:41 +01:00
Matiss Janis Aboltins
496d60c3a7 🔖 (23.8.0) stability improvements and new experimental features (#238)
- web: https://github.com/actualbudget/actual/pull/1444
- server: https://github.com/actualbudget/actual-server/pull/238
- docs: https://github.com/actualbudget/docs/pull/257

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-08-02 21:01:54 +01:00
Matiss Janis Aboltins
ce8d53a513 🔥 (nordigen) removing env var/config file support (#235)
Removing env var/config file support for Nordigen secrets. These have
been migrated to the new `secrets` db table a while ago. We can now
clean up the legacy implementation for these secrets.
2023-07-29 19:59:31 +01:00
Matiss Janis Aboltins
20c2f1950b ♻️ rename nordigen to gocardless (#231)
Just renaming things from Nordigen to Gocardless.
2023-07-24 19:41:25 +01:00
dependabot[bot]
723d9cd62c build(deps): bump word-wrap from 1.2.3 to 1.2.4 (#230)
Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3
to 1.2.4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/jonschlinkert/word-wrap/releases">word-wrap's
releases</a>.</em></p>
<blockquote>
<h2>1.2.4</h2>
<h2>What's Changed</h2>
<ul>
<li>Remove default indent by <a
href="https://github.com/mohd-akram"><code>@​mohd-akram</code></a> in <a
href="https://redirect.github.com/jonschlinkert/word-wrap/pull/24">jonschlinkert/word-wrap#24</a></li>
<li>🔒fix: CVE 2023 26115 (2) by <a
href="https://github.com/OlafConijn"><code>@​OlafConijn</code></a> in <a
href="https://redirect.github.com/jonschlinkert/word-wrap/pull/41">jonschlinkert/word-wrap#41</a></li>
<li>🔒 fix: CVE-2023-26115 by <a
href="https://github.com/aashutoshrathi"><code>@​aashutoshrathi</code></a>
in <a
href="https://redirect.github.com/jonschlinkert/word-wrap/pull/33">jonschlinkert/word-wrap#33</a></li>
<li>chore: publish workflow by <a
href="https://github.com/OlafConijn"><code>@​OlafConijn</code></a> in <a
href="https://redirect.github.com/jonschlinkert/word-wrap/pull/42">jonschlinkert/word-wrap#42</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/mohd-akram"><code>@​mohd-akram</code></a> made
their first contribution in <a
href="https://redirect.github.com/jonschlinkert/word-wrap/pull/24">jonschlinkert/word-wrap#24</a></li>
<li><a
href="https://github.com/OlafConijn"><code>@​OlafConijn</code></a> made
their first contribution in <a
href="https://redirect.github.com/jonschlinkert/word-wrap/pull/41">jonschlinkert/word-wrap#41</a></li>
<li><a
href="https://github.com/aashutoshrathi"><code>@​aashutoshrathi</code></a>
made their first contribution in <a
href="https://redirect.github.com/jonschlinkert/word-wrap/pull/33">jonschlinkert/word-wrap#33</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/jonschlinkert/word-wrap/compare/1.2.3...1.2.4">https://github.com/jonschlinkert/word-wrap/compare/1.2.3...1.2.4</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="f64b188c72"><code>f64b188</code></a>
run verb to generate README</li>
<li><a
href="03ea08256b"><code>03ea082</code></a>
Merge pull request <a
href="https://redirect.github.com/jonschlinkert/word-wrap/issues/42">#42</a>
from jonschlinkert/chore/publish-workflow</li>
<li><a
href="420dce9a24"><code>420dce9</code></a>
Merge pull request <a
href="https://redirect.github.com/jonschlinkert/word-wrap/issues/41">#41</a>
from jonschlinkert/fix/CVE-2023-26115-2</li>
<li><a
href="bfa694edf5"><code>bfa694e</code></a>
Update .github/workflows/publish.yml</li>
<li><a
href="ace0b3c78f"><code>ace0b3c</code></a>
chore: bump version to 1.2.4</li>
<li><a
href="6fd7275946"><code>6fd7275</code></a>
chore: add publish workflow</li>
<li><a
href="30d6daf60f"><code>30d6daf</code></a>
chore: fix test</li>
<li><a
href="655929cabe"><code>655929c</code></a>
chore: remove package-lock</li>
<li><a
href="49e08bbc32"><code>49e08bb</code></a>
chore: added an additional testcase</li>
<li><a
href="9f626935f3"><code>9f62693</code></a>
fix: cve 2023-26115</li>
<li>Additional commits viewable in <a
href="https://github.com/jonschlinkert/word-wrap/compare/1.2.3...1.2.4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=word-wrap&package-manager=npm_and_yarn&previous-version=1.2.3&new-version=1.2.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/actualbudget/actual-server/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-19 17:08:34 +01:00
Matiss Janis Aboltins
1de788ea68 ⬆️ (nordigen-node) upgrade to v1.2.6 (#229)
1. upgrade `nordigen-node` to 1.2.6 (which uses the new gocardless
domain)
2. allow accessing `nordigen` functionality via `/gocardless` to unblock
using the new API path in actual-web
2023-07-18 18:31:54 +01:00
Matiss Janis Aboltins
354152dbb5 🔖 (23.7.2) more patches (not so critical, but still annoying) (#225)
- web: https://github.com/actualbudget/actual/pull/1322
- server: https://github.com/actualbudget/actual-server/pull/225
- docs: https://github.com/actualbudget/docs/pull/230
2023-07-09 17:03:55 +01:00
Matiss Janis Aboltins
c2ee92878c 🔖 (23.7.1) critical sync fixes (#224)
- web: https://github.com/actualbudget/actual/pull/1295
- server: https://github.com/actualbudget/actual-server/pull/224
- docs: https://github.com/actualbudget/docs/pull/225
2023-07-05 21:51:03 +01:00
Matiss Janis Aboltins
8237eb56ab 🔖 (23.7.0) Nordigen release, stability improvements (#222)
- web: https://github.com/actualbudget/actual/pull/1280
 - server: https://github.com/actualbudget/actual-server/pull/222
 - docs: https://github.com/actualbudget/docs/pull/223

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-07-04 22:08:39 +01:00
Shazib Hussain
28e0d712ab Update comments in docker-compose.yml (#221) 2023-06-30 21:16:35 -04:00
Matiss Janis Aboltins
debb33a63d ♻️ (crdt) use actual-app/crdt package instead of api (#218)
Using the new CRDT package instead of API.
2023-06-19 08:07:21 +01:00
Jed Fox
5252f45073 Add a health check script (#214)
This allows running a health check from inside the container. Usage:
`npm run health-check`. That may not work inside of Alpine containers,
so you can do `node src/scripts/health-check.js` directly instead. Fixes
#213.
2023-06-18 22:36:16 -04:00
Rich Howell
5954141c15 Contributing readme link update (#217)
Replaced contributing link

<!-- 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-14 20:07:50 +01:00
Jed Fox
ca27949989 Update “how it works” link (#216)
- https://github.com/actualbudget/docs/pull/202
2023-06-14 07:33:52 +01:00
Rich Howell
8ac74ed397 Update README.md (#215)
Remove the bulk in favour of links to our core docs.

---------

Co-authored-by: Jed Fox <git@jedfox.com>
2023-06-13 14:05:59 -04:00
Matiss Janis Aboltins
7c8e9bb5ec 🔖 (23.6.0) category hiding and filters for reports (#207)
Web: https://github.com/actualbudget/actual/pull/1087
Server: https://github.com/actualbudget/actual-server/pull/207
Docs: https://github.com/actualbudget/docs/pull/179

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-01 21:13:18 +01:00
Jed Fox
d1ff06840e Migrate to combined release notes action from main repo (#208) 2023-06-01 16:07:42 -04:00
Jed Fox
c2c8c1719e Authenticate request for artifacts (#204)
Previously, the latest artifact list was requested unauthenticated using
`ADD "https://api.github.com/..." /tmp/artifacts.json`. While this works
locally, on GitHub’s servers it seems that the per-IP rate limit was
exceeded. There isn’t a way to get Docker to pass the `Authorization`
header that I know of, so this work has been moved to an external shell
script that pulls down the relevant data.
2023-05-15 17:47:10 -04:00
Jed Fox
5d36ecbbbb Update README (#201) 2023-05-05 19:34:02 -04:00
Matiss Janis Aboltins
9169bfabad 🔖 (23.5.0) various improvements (#200) 2023-05-04 18:51:03 +01:00
Matiss Janis Aboltins
fb6dc5e8f1 🐛 (nordigen) return JSON response for the secrets API (#197)
A small fix: returning JSON response instead of plain-text.

The frontend always expects a JSON response. So a tiny fix here..
2023-05-02 19:06:14 +01:00
Henrik Maaland
d60bb6a19e App secret service (#194)
Co-authored-by: Henrik Maaland <henrikm@netpower.no>
2023-04-26 08:41:07 -04:00
Jed Fox
996f238648 Remove the unused migrations folder (#195) 2023-04-25 16:18:41 -04:00
Jakub Kuczys
7c744f0e3d Add a field with all transactions to /nordigen/transactions endpoint (#190)
Helps with actualbudget/actual#919 by adding the `all` field wit both
pending and booked transactions to the output of
`getTransactionsWithBalance()` and, by extension, the
`/nordigen/transactions` endpoint.

I could alter the `getTransactions()` to return the `all` field as well
but I figured that keeping it such that it returns the output from
Nordigen API 1:1 might be better so I left it as is. If you don't agree,
let me know and I'll update this.
2023-04-22 16:44:43 +01:00
Matiss Janis Aboltins
2f54a948be 🔖 (23.4.2) revert back to old autocomplete & keyboard shortcut fix (#192)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-04-22 15:43:51 +01:00
Jed Fox
652d75a939 Add a handler for AxiosError errors (#189) 2023-04-17 15:54:36 -04:00
Jed Fox
104c9803f7 Add a password set/reset script (#186)
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
2023-04-16 15:08:06 -04:00
Matiss Janis Aboltins
bc93604576 🔖 (23.4.1) fix rule creation from transaction list (#188) 2023-04-16 18:11:43 +01:00
Jed Fox
a1af1ff3d2 Add express-rate-limit (#187)
CodeQL keeps yelling at us about this… I’m not sure if the filter is
smart enough to use this rate limit middleware to remove the warnings,
but at least we will be setting a reasonable bound on attempts to crack
the server password.
2023-04-12 16:38:43 -04:00
Alberto Gasparin
47d77a3198 Use babel preset-typescript (#185)
Seems like we already added `tsc` to build the project, but we use the
wrong babel preset (Flow) instead of the specific TS one. This is only
used in testing to make Jest work (from what I can tell).
2023-04-08 23:21:14 -04:00
intiplink
82b4643c78 github action workflow: revert old way to build images (#184) 2023-04-08 12:13:25 -04:00
Jed Fox
0096907368 Add workflow_dispatch to edge image action so it can be manually run 2023-04-08 07:47:42 -04:00
Jed Fox
1504127979 Blank commit to trigger image build 2023-04-08 07:46:29 -04:00
Jed Fox
6f7306cd37 Don’t check for release notes on release/* branches (#181) 2023-04-07 16:26:29 -04:00
intiplink
063d468836 Add support for armv6l (alpine based images) (#182)
GitHub CI log:
```
[linux/arm/v6 base 6/8] RUN yarn workspaces focus --all --production
204.6 ➤ YN0007: │ bcrypt@npm:5.1.0 must be built because it never has been before or the last one failed
204.6 ➤ YN0007: │ better-sqlite3@npm:8.2.0 must be built because it never has been before or the last one failed
...
[linux/arm/v7 base 6/8] RUN yarn workspaces focus --all --production
203.8 ➤ YN0007: │ bcrypt@npm:5.1.0 must be built because it never has been before or the last one failed
203.8 ➤ YN0007: │ better-sqlite3@npm:8.2.0 must be built because it never has been before or the last one failed
```

It seems that both armv6 and armv7 have the same issues with `bcrypt`
and `better-sqlite3` not being built. These packages are required to
build from source, luckily QEMU use armv7l for compiling.

Tested and working on RPi Zero W.

---------

Co-authored-by: Jed Fox <git@jedfox.com>
2023-04-07 14:37:10 -04:00
Matiss Janis Aboltins
7e88de182e 🔖 (23.4.0) (#180) 2023-04-06 22:16:15 +01:00
Jed Fox
bf4319d978 Add some basic debug logging (#178)
This will help people sort out configuration issues. Will open a PR to
the docs as well to guide people to troubleshoot using this!
2023-04-06 13:24:46 -04:00
Trevor Farlow
c3d89b6509 New Docker Hub org in CI and README (#175)
Update all Docker Hub references to new `actualbudget` organization from
`jlongster` personal account.
We're officially an org now!

A bit of markdown/yaml auto-formatting snuck in, too.

Closes https://github.com/actualbudget/actual/issues/364
Corresponding update for the docs site in
https://github.com/actualbudget/docs/pull/144

Simultaneous to merging, we need to update our `DOCKER_HUB_*` GitHub
secrets in this repo.

---------

Co-authored-by: Jed Fox <git@jedfox.com>
2023-03-31 14:07:15 -06:00
James Mortensen
cb731099e6 Add linux/arm/v7 to the list of platforms for the Docker image (#141)
Users in #99 report that Actual in Docker runs on armv7 platforms,
although a bit sluggish. I confirmed that the base images for Debian and
Alpine support the linux/arm/v7 target and have added them to the
platform list in the GitHub Actions workflow.

At least one user confirms it works with the bullseye default
`Dockerfile`, but before merging it would be great if someone can
confirm it works with the Dockerfile.alpine image:

```
git clone https://github.com/jamesmortensen/actual-server.git
cd actual-server
git checkout armv7-image
docker build -t actual-server -f Dockerfile.alpine .
docker run -p 5006:5006 actual-server
```

---------

Co-authored-by: Jed Fox <git@jedfox.com>
2023-03-30 18:52:45 -05:00
Jed Fox
b6073f7e6f Update docker-compose.yml (#150) 2023-03-29 18:31:06 -05:00
Jakub Kuczys
9b2d74c3ad Stream file without loading to memory in /download-user-file (#172) 2023-03-28 21:05:31 +01:00
Jakub Kuczys
7713848067 Include *.test.js files in test run (#171)
When working on something else, I noticed that `.test.js` files were not
running due to `jest.config.json` not including them. I went ahead and
re-enabled these tests to make sure that unit tests are actually being
run.
2023-03-27 08:55:32 -05:00
Jakub Kuczys
c8a901d3ff (nordigen) Include hashed IBAN in get-accounts and transactions endpoints (#166)
Exposes IBAN in the API which is required for
https://github.com/actualbudget/actual/pull/766 to work reliably.
2023-03-24 21:59:12 +00:00
Jakub Kuczys
d02e1b3640 Report parse issues for config.json in default location (#167)
This changes the behavior of configuration loading when
ACTUAL_CONFIG_PATH env var is not specified. With this change, syntax
errors in config.json will now be reported if ACTUAL_CONFIG_PATH env var
is not specified and the app will not proceed. When the config.json file
is not present or cannot be read, the behavior remains the same.
2023-03-21 17:47:11 +00:00
Matiss Janis Aboltins
19dbf815e6 (bank-sync) expose demo bank in the get-banks endpoint (#168)
Exposing the demo bank again in the get-banks endpoint.

Frontend implementation of the `showDemo` will come next. The demo bank
will only be available for DEV and PREVIEW builds.
2023-03-19 19:55:51 +00:00
Jed Fox
df70a791fd Add support for automatically generating release notes (#165) 2023-03-16 23:53:47 -04:00
Matiss Janis Aboltins
a84036e0c6 🔖 (23.3.2) nordigen fixes (#164) 2023-03-13 19:00:44 +00:00
Matiss Janis Aboltins
973070f22b Remove year from the LICENSE (#140) 2023-03-13 10:06:25 -04:00
Matiss Janis Aboltins
5f0df5ed53 🐛 (nordigen) add currency to account name (#163)
Sometimes accounts have the same names and the same IBAN, but different
currencies (Paypal).

This should make the account names a bit more unique.. thus easier to
distinguish.


https://github.com/actualbudget/actual/issues/724#issuecomment-1464902166

Obviously the user can choose to use different names in `Actual`. They
are not forced to use this name.
2023-03-12 17:30:50 +00:00
Matiss Janis Aboltins
80be279e11 (nordigen) add status endpoint for checking status (#162)
Add a small endpoint that will be used to check the configuration status
of Nordigen. If it is not configured - we should not allow people to
proceed in the account-link flow.
2023-03-12 16:17:16 +00:00
Surya
1aaafbf435 Update README.md (#161)
Add text to show how to open the app
2023-03-11 21:53:10 +00:00
Matiss Janis Aboltins
1dd1283d56 🐛 (nordigen) close window when opening /nordigen/link path (#160)
When Nordigen accounts are linked 2x windows get opened: 1x (initial
tab) is polling for the status; the other window is for authenticating
with bank. Once the auth is done - customer is redirected back to app:
`/nordigen/link` page. At this point we can just close the tab.


https://github.com/actualbudget/actual/issues/724#issuecomment-1462853590
2023-03-11 21:13:09 +00:00
Jed Fox
184ec5f1c0 Don’t make Dockerfile a symlink (#157)
People have been having issues with this. I copied it from
`docker/stable-ubuntu.Dockerfile`. We should follow up on this to remove
the duplication at some point but this will help fix the problems people
are having now.
2023-03-11 15:52:35 -05:00
Filip Stybel
56e5c33c3e Re-generate nordigen token (#156)
This PR fixes the regeneration Nordigen token when it expires.

https://github.com/actualbudget/actual/issues/724
2023-03-10 18:43:21 +00:00
Matiss Janis Aboltins
37c5278abf 🔖 (23.3.1) fix nordigen usage in fly.io (#155)
This _slightly_ changes the interface for configuring Nordigen, but IMO
it's safe to do because

1. the nordigen support is still experimental and subject to breaking
changes
2. we released 23.3.0 only an hour ago
2023-03-09 21:37:29 +00:00
Jed Fox
d1482e38fe Remove extraneous $ 2023-03-09 15:56:20 -05:00
Matiss Janis Aboltins
1cce6137a0 🔖 (23.3.0) experimental bank-sync, maintenance, fixes (#154)
Docs: https://github.com/actualbudget/docs/pull/119
2023-03-09 19:44:45 +00:00
Jed Fox
27ea0ddd98 Fix Docker actions failing on PRs from forks (#153) 2023-03-09 07:37:17 -05:00
Matiss Janis Aboltins
bd7992a45a 🚨 adding trailing commas everywhere (#148)
Two changes in this PR:

1. fail CI jobs if there are lint warnings
2. add trailing comas everywhere (this aligns `actual-server` with
`actual`)
2023-03-07 19:45:51 +00:00
Jed Fox
95a0769eaa Fix edge image tagging (#149) 2023-03-07 14:25:18 -05:00
Matiss Janis Aboltins
af9713d5b1 (bank-sync) meaningful default balance calculation (#144)
Set a default balance calculation logic. This will allow us to integrate
with the majority of the Nordigen supported banks without needing to
manually implement each individual bank.

Frontend change: https://github.com/actualbudget/actual/pull/727

**Important**: some banks might break.. sadly I cannot test all of the
banks. But we should successfully cover ~80-90% of the supported banks
with these defaults. And if people notice that some specific bank is
broken - they can alwys report it to us and we can try and implement a
custom bank class for them.
2023-03-07 18:44:55 +00:00
Jed Fox
ab9f771829 Improve edge image build times (#147) 2023-03-07 13:35:29 -05:00
Matiss Janis Aboltins
fa0c91b22c ⬆️ upgrade yarn to v3.4.1 and add interactive-tools plugin (#146)
Upgraded yarn and added interactive-tools plugin.

This is to align yarn version with the other `actual` repositories.
2023-03-06 17:51:05 +00:00
Matiss Janis Aboltins
2e5f5b48fa (bank-sync) expose available banks via an endpoint (#145)
Related to: https://github.com/actualbudget/actual/pull/727

Exposing the available banks via an endpoint. Currently only the "fully"
supported banks are exposed, but very soon the plan is to expose all of
the bank by default (as part of
https://github.com/actualbudget/actual-server/pull/144)
2023-03-06 17:49:15 +00:00
Jed Fox
a52ae2dba1 Update the :edge images to use the very latest web UI version (#121)
- The `:edge` and `:edge-alpine` containers will now download the latest
commit of the frontend repo and build it when they are built.
- The backend dependency install process now uses the local copy of Yarn
(from #56) to install dependencies
- Extraneous files are no longer copied into the production image. This
is mostly a win for local builds (where the `.yarn` cache folder used to
get copied in) but it’s also a small win for CI-built containers which
will no longer have the README/configuration files/Yarn source code
lying around
- The dockerfiles now say `EXPOSE 5006`. This doesn’t have an effect on
anything by default as far as I can tell but it does mean that tools
know we will be listening on that port and can help users set up their
container accordingly (for example, Docker Desktop)
- Remove some extraneous dependencies from the containers (including
openssl)

---------

Co-authored-by: Trevor Farlow <trevdor@users.noreply.github.com>
2023-03-05 22:19:10 -05:00
Filip Stybel
19cd163b30 Backend integration with Nordigen - account sync (#74)
* Add nordigen integration

* Move normalizatoin of accounts to the backend side

* Remove .idea from git

* Move normalization of transactions to the backend side

* Fix some edgecases

* Move nordigen to separate directory

* Partial refactor of nordigen and e2e test

* WIP refactor

* Refactoring

* Refactoring

* Add more tests

* Update get accounts path

* Rm not needed import

* Fix after merge

* Fix AnimatedLoading

* Fix coverage, jest config, linter

* Code review changes

* Upgrade to ESM nordigen

* Upgrade to ESM nordigen

* Remove e2e tests and cleanup packages

* Move env vars to config

* Rollback prettierrc config

* Move nordigen app behind to src

* Revert supertest lib

* Fixing specs

* fixes linter

* Fix build errors

* Fix linter

* Update nordigen-node lib

* remove snapshot

* remove babel

* Fix spec

* fix linter

* Revert "remove babel"

This reverts commit 07ce9fc46043a425f6e83b0b5ce15789fd07e12e.

* Fix coverage

* Add supertest

* Add sortByBookingDate as default sort option for integration bank

* Add comment with explanation of client const

---------

Co-authored-by: Filip Stybel <filip.stybel@ynd.co>
2023-03-03 19:40:49 -05:00
Jed Fox
06b687e899 Auto-configure the client’s server URL (#135)
* Respond to the /client-bootstrap route

* Move the bootstrap route to /account/needs-bootstrap

* needs-bootstrap is not authenticated

* we don’t need isActual
2023-02-22 10:17:55 -05:00
Jed Fox
fa42c2202e Replace require with import (#133) 2023-02-11 21:26:04 -05:00
Matiss Janis Aboltins
0537544de2 🔖 (23.2.9) ability to ignore SharedArrayBuffer error (#132) 2023-02-09 20:34:55 +00:00
Jed Fox
be1c119799 Upgrade to ESM, update to latest dependencies (#128)
* Port to ESM

* + @types packages

* s/rmdir/rm/

* bump uuid

* Fix reading in eslintrc

* Add /build to eslintignore

* Update linting/types packages

* Stronger error checking

* - DOM globals

* update better-sqlite3

* Create .node-version

* Revert "update better-sqlite3"

This reverts commit 6b8003804fc09ade6c81324f591e5ad853517dfa.
2023-02-09 13:57:39 -05:00
Jed Fox
76f398dd16 Move source code to an src/ directory (#131)
* Move code to src/

* Add back missing app.js

* Delete async.js
2023-02-07 15:42:07 -05:00
Matiss Janis Aboltins
064d3e5dbb 🔖 (23.2.6) improved HTTPs configurability (#129) 2023-02-06 21:20:36 +00:00
Jed Fox
c6c3243234 Replace '\n' in key/cert text with literal newlines (#127) 2023-02-06 10:46:22 -05:00
Jed Fox
60b183b094 Fix / route returning the wrong MIME type (#125) 2023-02-06 07:39:47 +00:00
Jed Fox
9b5fb43ad3 Improve the server config (#120)
* Add a `webRoot` property to the config file to override the web UI used

* Allow all config options to be set via env variables

* Fix TS

* Fix test file paths

* Move “Listening on” message to after we’re actually listening

* Fix codeql warning

* Fix bug when config.https is null but HTTPS_* env vars are defined

* Allow passing raw key/cert into `https.key`/`https.cert`

* Allow passing config file as ACTUAL_CONFIG_PATH

* Forgot to handle userConfig not being specified
2023-02-05 16:32:50 -05:00
Matiss Janis Aboltins
7c58261b72 🔖 (23.2.5) security focused release (#122) 2023-02-05 17:26:45 +00:00
Matiss Janis Aboltins
712ca71656 ⬆️ upgrade express*, bcrypt and body-parser (#119) 2023-02-03 19:53:17 +00:00
Jed Fox
c8ad8a693b Add support for HTTPS (#115)
* Add support for starting an HTTPS instead of HTTP server

* Add HTTPS-related file extensions to gitignore
2023-02-03 14:39:50 -05:00
Matiss Janis Aboltins
1be74096f6 ⬆️ upgrade @actual-app/api to 4.1.6: node-fetch v2 support (#118)
* ⬆️  upgrade @actual-app/api to 4.1.6: node-fetch v2 support

* Pin api version
2023-02-02 22:00:50 +00:00
dependabot[bot]
92b4eec36a build(deps): bump http-cache-semantics from 4.1.0 to 4.1.1 (#117)
Bumps [http-cache-semantics](https://github.com/kornelski/http-cache-semantics) from 4.1.0 to 4.1.1.
- [Release notes](https://github.com/kornelski/http-cache-semantics/releases)
- [Commits](https://github.com/kornelski/http-cache-semantics/compare/v4.1.0...v4.1.1)

---
updated-dependencies:
- dependency-name: http-cache-semantics
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-02 18:13:02 +00:00
Matiss Janis Aboltins
44038fbdce 🔥 remove unused code (plaid, sync-full) (#116) 2023-02-02 18:05:58 +00:00
dependabot[bot]
b4c7996d1a build(deps): bump minimatch from 3.0.4 to 3.1.2 (#111)
Bumps [minimatch](https://github.com/isaacs/minimatch) from 3.0.4 to 3.1.2.
- [Release notes](https://github.com/isaacs/minimatch/releases)
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v3.0.4...v3.1.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-31 21:57:04 +00:00
dependabot[bot]
39fd8a5457 build(deps): bump moment from 2.29.3 to 2.29.4 (#112)
Bumps [moment](https://github.com/moment/moment) from 2.29.3 to 2.29.4.
- [Release notes](https://github.com/moment/moment/releases)
- [Changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/moment/moment/compare/2.29.3...2.29.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-31 21:01:40 +00:00
dependabot[bot]
24da9b7b5a build(deps): bump node-fetch from 2.2.0 to 2.6.7 (#110)
Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 2.2.0 to 2.6.7.
- [Release notes](https://github.com/node-fetch/node-fetch/releases)
- [Commits](https://github.com/node-fetch/node-fetch/compare/v2.2.0...v2.6.7)

---
updated-dependencies:
- dependency-name: node-fetch
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-31 21:00:41 +00:00
Felix Heilmeyer
3edb8db94b fix: listen also listen on ipv6 addresses (#109)
listening on '::' will make node listen on ipv4 as well as ipv6 addresses
2023-01-31 20:54:09 +00:00
Urjeet Patel
909b4b1c0b fix: 🔒 Password change now invalidates old token (#102) 2023-01-31 19:32:39 +00:00
nfaucher8
38f2ab252e Allow config.json to contain a partial config (#89) 2023-01-28 18:34:02 +00:00
Matiss Janis Aboltins
f0772b147f (adding jest for unit/integration tests) (#91) 2023-01-28 17:56:37 +00:00
Tom French
9fc9d5c642 Migrate to yarn v3.2.1 (#56)
Co-authored-by: Jed Fox <git@jedfox.com>
2023-01-27 16:56:58 -05:00
Matiss Janis Aboltins
73db82042c Merge pull request #103 from actualbudget/matiss/release
🔖 (23.1.12) responsive mobile version and sidebar improvements
2023-01-12 21:58:48 +00:00
Matiss Janis Aboltins
a14f558258 🔖 (23.1.12) responsive mobile version and sidebar improvements 2023-01-12 20:54:48 +00:00
James Long
97081d46c4 Fix reference to Timestamp; version 22.12.09 2022-12-08 17:38:26 -05:00
James Long
60f83b334e 22.12.08 2022-12-08 16:00:20 -05:00
James Long
340ac869ce Bump API to working version 2022-12-08 16:00:01 -05:00
Trevor Farlow
b2b6ba4921 Docker workflow: Drop major.minor tagging 2022-12-08 14:53:48 -05:00
James Long
3274a06e34 Bump to 22.12.03 2022-12-08 12:11:21 -05:00
James Long
e9850bfc56 Bump @actual-app/web and @actual-app/api 2022-12-08 11:30:07 -05:00
James Long
529c42cccf Version 22.10.25 of actual-server 2022-10-25 12:19:40 -04:00
Rich In SQL
2a00227486 Update Actual to 22.10.25 2022-10-25 11:28:16 -04:00
Trevor Farlow
5252edbf70 Merge pull request #82 from trevdor/patch-1
Build docker image on push to master or tag
2022-10-19 21:32:16 -06:00
Trevor Farlow
74c15b4f42 fixup! Build docker image on push to master or tag 2022-10-13 00:19:59 -06:00
Trevor Farlow
d482b9baf6 Build docker image on push to master or tag 2022-10-13 00:17:12 -06:00
James Long
cde216523e Store user files as blobs instead of unzipping them 2022-10-05 21:47:14 -04:00
James Long
8aeb815b5a Respect configuration for user-files 2022-09-15 10:19:22 -04:00
James Long
3c602268e3 Log sync method in response 2022-09-14 23:43:12 -04:00
James Long
9177fb4d77 Fix lint 2022-09-14 23:43:12 -04:00
James Long
e3f1fafad9 Switch syncing to simple sync method 2022-09-14 23:43:12 -04:00
Arthur E. Jones
32bf923c1a build: add node GC argument to fly template
Fly deployments on the free tier have ~256mb of memory available. Users
with large transaction histories were encountering out of memory errors
when attempting to export their data. This commit adds a node argument
to (more or less) run the garbage collector at a smaller memory usage,
helping keep users on flyio within their available limit.
2022-08-31 23:51:05 -04:00
Arthur E. Jones
d3a0e8067e build: add tini subreaper arg to fly template
Fly deployments with the previous template setting are running without
tini's subreaper capabilities. This change enables tini as a subreaper
in that environment.
2022-08-31 23:50:26 -04:00
Arthur E. Jones
105d5007cf fix: zip only necessary files in budget download
While investigating #54 it was noted that the previous implementation
zips the entire budget folder in the download endpoint. Once received on
the client side, only the most recent db and metadata are actually used.
This means up to 10 backups are being zipped in memory and transferred
to the client (in addition to the two necessary files) despite none of
that data being used. While this inefficiency isn't a major concern in
some environments, it may be problematic in memory constrained
environments.

This change transfers only the files that are actually utilized.

issue #54
2022-08-31 23:49:52 -04:00
Tom French
bafa486668 style: ignore unused variables which begin with an underscore 2022-08-29 23:11:51 -04:00
Tom French
80a2b34d43 style: apply prettier fixes 2022-08-29 23:11:51 -04:00
Tom French
a5e1e38e74 fix: activate prettier rules 2022-08-29 23:11:51 -04:00
Tom French
0486e9e37b ci: check that the server builds correctly on PRs/master 2022-08-29 23:11:02 -04:00
Tom French
09722d8678 ci: rename github workflow file from build to docker 2022-08-29 23:11:02 -04:00
Rich In SQL
cd22e38660 Express version update
Update: Updated express version, this resolves #69
2022-08-09 10:41:29 -04:00
James Long
f83fe76280 1.0.1 2022-06-26 17:33:32 -04:00
James Long
b9e1e6030f Remove changes to messages transform 2022-06-26 17:31:55 -04:00
brend
4874b53c7c move messages generation into sync-full.js 2022-06-26 17:31:55 -04:00
brend
b1a48f4f27 fix 'Out of sync' error 2022-06-26 17:31:55 -04:00
Jared Gharib
3fee9cbb42 fix: error handling middleware signature
Error handling middleware functions must have four arguments to
identify it as such.

Fixes #40
2022-05-28 23:16:46 -04:00
James Long
a2a460a883 Fix CORS issues 2022-05-28 23:15:14 -04:00
James Long
6bcd67a906 Bump Actual to 4.1.0 2022-05-28 23:14:36 -04:00
Arthur E. Jones
9e2d253fb6 fix: correct tsconfig for node.js
- specify module type, resolution, and interop. this package runs under
  nodejs, not a browser environment, and needs ts to be configured
  accordingly.
2022-05-20 13:58:48 -04:00
Arthur E. Jones
a7efc82944 fix: suppress missing module error
- code as written expects the file may be absent and has a fallback
  implemented, so the error can be safely ignored. There may be a better
  strategy for dealing with this, however.
2022-05-20 13:58:48 -04:00
Arthur E. Jones
25f4bb5557 fix: remove unused variable in fn call
- the WrappedDatabase.all() function only has two arguments
2022-05-20 13:58:48 -04:00
Arthur E. Jones
74d6b7edc5 build: add ts build script 2022-05-20 13:58:48 -04:00
Arthur E. Jones
1204b5b1a6 chore: add build dir to gitignore 2022-05-20 13:58:48 -04:00
Arthur E. Jones
59ddc965ec build: skip typechecking app-plaid.js
Doesn't appear to be used; there isn't any plaid depedency in the
package file.
2022-05-20 13:58:48 -04:00
Arthur E. Jones
9cc4ffaf33 build: add typecheck script 2022-05-20 13:58:48 -04:00
Arthur E. Jones
11ba63d086 chore: add better-sqlite3 type definitions 2022-05-20 13:58:48 -04:00
Arthur E. Jones
06d2aba57c chore: add node type definitions 2022-05-20 13:58:48 -04:00
Tom French
7ecaad529f ci: rename linting workflow 2022-05-20 12:19:22 -04:00
Tom French
5ef3aa4153 ci: check linting in CI 2022-05-20 12:19:22 -04:00
Tom French
5e83e14637 style: silence error for old-style require statements
This will be removed once we migrate to typescript
2022-05-20 09:24:19 -04:00
Tom French
8dbc10efd7 style: silence warning for empty function 2022-05-20 09:24:19 -04:00
Tom French
592f0540f9 style: fix linting errors 2022-05-20 09:24:19 -04:00
Tom French
0e28f77a1f build: add prettier plugin 2022-05-20 09:24:19 -04:00
Tom French
618609dbfa build: migrate to use typescript compatible linter setup 2022-05-20 09:24:19 -04:00
James Long
c86f1f5546 Add pikapods under one-click hosted (closes #20) 2022-05-19 22:52:32 -04:00
Manu
a09a028dc9 Move to deployment options 2 2022-05-19 22:51:42 -04:00
Manu
44da71bcdd Move to deployment options 2022-05-19 22:51:38 -04:00
Manu
343ea0c306 Add one-click hosting option. 2022-05-19 22:50:40 -04:00
James Long
a60f22ef5c Update README.md 2022-05-19 12:43:55 -04:00
Kovah
d614070f44 Update readme with details about the Docker images 2022-05-19 08:16:40 -04:00
Kovah
fd5d81e399 Adjust Docker hub image name 2022-05-19 08:16:40 -04:00
Kovah
841d3ac115 Fix tag handling for standard and alpine image 2022-05-19 08:16:40 -04:00
Kovah
3df101a91d Update build process with requested changes
- push to both Docker Hub and Github registry
- use git tags for versioning
- update Docker tags to reflect the git tags and commit SHA
2022-05-19 08:16:40 -04:00
Kovah
3124c29052 Add additional build step for the Alpine image 2022-05-19 08:16:40 -04:00
Kovah
a4a4eda0eb Fix typo 2022-05-19 08:16:40 -04:00
Kovah
7d418b91b4 Update checkout action to v3 2022-05-19 08:16:40 -04:00
Kovah
9ef7771adc Add Github Actions workflow to automatically build a Docker image on pushes to master 2022-05-19 08:16:40 -04:00
Chris
d0a8b678d3 Correct fly template port
Deployments to fly.io were failing with error:
> Failed due to unhealthy allocations
Fixes #16
2022-05-19 07:25:50 -04:00
Kk-ships
6d52cc7c73 Update docker-compose.yml
Co-authored-by: Nathan Isaac <nathanjisaac@users.noreply.github.com>
2022-05-19 07:19:33 -04:00
Kaustubh Shirpurkar
2acc034fc1 added a basic docker-compose file 2022-05-19 07:19:33 -04:00
James Long
51a2cb91f2 Update README.md 2022-05-05 14:25:03 -04:00
James Long
44d045f546 Bump fly.io grace_period 2022-05-03 09:36:28 -04:00
brtwrst
6be206ff28 Move alpine build to Dockerfile.alpine; add tini to debian Dockerfile 2022-05-03 08:38:27 -04:00
James Long
c4badb9daf Revert "Revert "Rebase docker image on top of alpine linux""
This reverts commit f8ad766695.
2022-05-03 08:38:14 -04:00
James Long
f8ad766695 Revert "Rebase docker image on top of alpine linux"
This reverts commit 42bc4c8acb.
2022-05-03 08:35:38 -04:00
Mark Lopez
a55d4634b1 Added health check endpoint. 2022-05-02 23:06:43 -04:00
Luis López
42bc4c8acb Rebase docker image on top of alpine linux 2022-05-02 22:49:07 -04:00
Alex Richards
efd273bfa5 Instructions for running via Docker 2022-04-30 12:14:04 -04:00
Kovah
3fb71b74cd Adjust file handling in Docker build process 2022-04-30 12:12:45 -04:00
Kovah
2bb3e3ea48 Adjust Dockerfile to use multi-stage builds 2022-04-30 12:12:45 -04:00
Wout Mertens
59ec877ddd add: tsconfig.json
This configures TS to look at JS files as well, so that IDEs like VSCode
can provide better edit-time checks
2022-04-30 12:11:17 -04:00
James Long
31e9025df3 Merge pull request #6 from UnexomWid/master-hostname-binding
Add hostname binding
2022-04-29 17:56:34 -04:00
James Long
1b42bc0e75 Merge pull request #1 from Kovah/master
Adjust Dockerfile to build successfully
2022-04-29 17:55:49 -04:00
UnexomWid
0ad3f12686 modify: default hostname 2022-04-30 00:33:59 +03:00
UnexomWid
6de775a1bf add: hostname binding support 2022-04-30 00:30:30 +03:00
James Long
1d74b9d782 Minor cleanup 2022-04-29 16:21:09 -04:00
Kovah
933a5f5e7c Adjust Dockerfile to build successfully 2022-04-29 18:37:53 +02:00
James Long
cd280802de Improve how data dirs are treated 2022-04-29 11:10:20 -04:00
James Long
b53a4e5bf8 Path fix 2022-04-29 10:51:06 -04:00
James Long
c20648c33a Improve bootstrap process 2022-04-29 10:48:58 -04:00
James Long
fa32948508 Log which file dir it uses 2022-04-29 10:42:04 -04:00
James Long
9ec349e733 license 2022-04-29 10:39:57 -04:00
James Long
4fa2bf1b29 Remove fly.toml from git 2022-04-29 10:35:25 -04:00
James Long
3d01a76296 Updates 2022-04-29 10:35:13 -04:00
James Long
f9c0539d68 Bump actual 2022-04-29 10:10:47 -04:00
James Long
dde1495854 Allow user files directory to be configured via env vars 2022-04-29 09:52:35 -04:00
James Long
065f87c2e8 links 2022-04-29 01:22:32 -04:00
James Long
c049cf440f README 2022-04-28 22:40:58 -04:00
James Long
1149730962 Fixes 2022-04-28 22:40:13 -04:00
James Long
16de8cb91b Remove source-map-support 2022-04-28 22:29:45 -04:00
James Long
caec05df14 cleanup 2022-04-28 22:21:18 -04:00
James Long
e387f4ca1c readme 2022-04-28 22:19:23 -04:00
James Long
6d7ffe6a25 Add actual deps, fly config, and more 2022-04-28 22:09:40 -04:00
James Long
ad0c0f6865 Cleanup 2022-03-31 13:24:52 -04:00
James Long
dd541e5f70 initial (open-source) 2022-03-31 13:19:08 -04:00
2116 changed files with 46120 additions and 20105 deletions

View File

@@ -12,7 +12,7 @@ body:
id: intro-md
attributes:
value: |
**IMPORTANT:** we use Github Issues only for BUG REPORTS and FEATURE REQUESTS. If you are looking for help/support - please reach out to the [community on Discord](https://discord.gg/pRYNYr4W5A). All non-bug and non-feature-request issues will be closed.
**IMPORTANT:** we use GitHub Issues only for BUG REPORTS and FEATURE REQUESTS. If you are looking for help/support - please reach out to the [community on Discord](https://discord.gg/pRYNYr4W5A). All non-bug and non-feature-request issues will be closed.
**Bank-sync problems (SimpleFin / GoCardless)?** Reach out via the [community Discord](https://discord.gg/pRYNYr4W5A) first and open an issue only if the community deems the issue to be a legitimate bug in Actual.
- type: checkboxes

View File

@@ -6,3 +6,6 @@ contact_links:
- name: Support
url: https://discord.gg/pRYNYr4W5A
about: Need help with something? Having troubles setting up? Or perhaps issues using the API? Reach out to the community on Discord.
- name: Translations
url: https://hosted.weblate.org/projects/actualbudget/actual/
about: Found a string that needs a better translation? Add your suggestion or upvote an existing one in Weblate.

View File

@@ -1 +1 @@
<!-- 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 -->
<!-- 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. Try running yarn generate:release-notes *before* pushing your PR for an interactive experience. -->

30
.github/actions/bump-package-versions vendored Executable file
View File

@@ -0,0 +1,30 @@
#!/bin/bash
set -euo pipefail
if [ "$#" -gt 0 ]; then
version="${1#v}"
else
version=""
fi
files_to_bump=(
packages/api/package.json
packages/desktop-client/package.json
packages/desktop-electron/package.json
)
for file in "${files_to_bump[@]}"; do
if [ -z "$version" ]; then
# version format: YY.MM.patch
# logic: if before the 25th, bump patch, else set minor/major to next month
version="$(jq -r .version "$file" | perl -e '($y,$m,$p)=split/\./,<>;$d=(localtime)[3];$d>25?($p=0,++$m,$m>12&&($m=1,++$y)):$p++;print"$y.$m.$p\n"')"
if [ -z "$version" ]; then
echo "Error: Failed to calculate new version" >&2
exit 1
fi
fi
echo "Bumping $file to version $version"
jq '.version = "'"$version"'"' "$file" > "$file.tmp"
mv "$file.tmp" "$file"
done

View File

@@ -1,5 +1,15 @@
name: Setup
inputs:
working-directory:
description: 'Working directory to run in, default .'
required: false
default: '.'
download-translations:
description: 'Whether to download translations as part of setup, default true'
required: false
default: 'true'
runs:
using: composite
steps:
@@ -15,9 +25,20 @@ runs:
uses: actions/cache@v4
id: cache
with:
path: '**/node_modules'
key: yarn-v1-${{ runner.os }}-${{ hashFiles('.nvmrc') }}-${{ hashFiles('**/yarn.lock') }}
path: ${{ format('{0}/**/node_modules', inputs.working-directory) }}
key: yarn-v1-${{ runner.os }}-${{ hashFiles(format('{0}/.nvmrc', inputs.working-directory)) }}-${{ hashFiles(format('{0}/**/yarn.lock', inputs.working-directory)) }}
- name: Install
working-directory: ${{ inputs.working-directory }}
run: yarn --immutable
shell: bash
if: steps.cache.outputs.cache-hit != 'true'
- name: Download translations
uses: actions/checkout@v4
with:
repository: actualbudget/translations
path: ${{ inputs.working-directory }}/packages/desktop-client/locale
if: ${{ inputs.download-translations == 'true' }}
- name: Remove untranslated languages
run: packages/desktop-client/bin/remove-untranslated-languages
shell: bash
if: ${{ inputs.download-translations == 'true' }}

View File

@@ -68,3 +68,17 @@ jobs:
with:
name: build-stats
path: packages/desktop-client/build-stats
server:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up environment
uses: ./.github/actions/setup
- name: Build Server
run: cd packages/sync-server && yarn build
- name: Upload Build
uses: actions/upload-artifact@v4
with:
name: sync-server
path: packages/sync-server/build

92
.github/workflows/docker-edge.yml vendored Normal file
View File

@@ -0,0 +1,92 @@
name: Build Edge Docker Image
# Edge Docker images are built for every commit, and daily
on:
push:
branches:
- master
paths:
- 'packages/sync-server/**'
pull_request:
branches:
- master
paths:
- 'packages/sync-server/**'
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
permissions:
contents: read
packages: write
env:
IMAGES: |
actualbudget/actual-server
ghcr.io/actualbudget/actual-server
ghcr.io/actualbudget/actual
# Creates the following tags:
# - actual-server:edge
TAGS: |
type=edge,value=edge
type=sha
jobs:
build:
if: ${{ github.event.repository.fork == false }}
name: Build Docker image
runs-on: ubuntu-latest
strategy:
matrix:
os: [ubuntu, alpine]
steps:
- uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
# Push to both Docker Hub and Github Container Registry
images: ${{ env.IMAGES }}
flavor: ${{ matrix.os != 'ubuntu' && format('suffix=-{0}', matrix.os) || '' }}
tags: ${{ env.TAGS }}
- name: Login to Docker Hub
uses: docker/login-action@v3
if: github.event_name != 'pull_request'
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
if: github.event_name != 'pull_request'
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
# Building outside of the docker image allows us to build once and push to multiple platforms
# This is faster and avoids yarn memory issues
- name: Set up environment
uses: ./.github/actions/setup
- name: Build Web
run: ./bin/package-browser
- name: Build and push image
uses: docker/build-push-action@v5
with:
context: .
push: ${{ github.event_name != 'pull_request' }}
file: packages/sync-server/docker/${{ matrix.os }}.Dockerfile
platforms: linux/amd64,linux/arm64,linux/arm/v7${{ matrix.os == 'alpine' && ',linux/arm/v6' || '' }}
tags: ${{ steps.meta.outputs.tags }}
build-args: |
GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }}

96
.github/workflows/docker-release.yml vendored Normal file
View File

@@ -0,0 +1,96 @@
name: Build Stable Docker Image
# Stable Docker images are built for every new tag
on:
push:
tags:
- 'v*.*.*'
paths-ignore:
- README.md
- LICENSE.txt
env:
IMAGES: |
actualbudget/actual-server
ghcr.io/actualbudget/actual-server
ghcr.io/actualbudget/actual
# Creates the following tags:
# - actual-server:latest (see docker/metadata-action flavor inputs, below)
# - actual-server:1.3
# - actual-server:1.3.7
# - actual-server:sha-90dd603
TAGS: |
type=semver,pattern={{version}}
jobs:
build:
name: Build Docker image
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
# Push to both Docker Hub and Github Container Registry
images: ${{ env.IMAGES }}
# Automatically update :latest
flavor: latest=true
tags: ${{ env.TAGS }}
- name: Docker meta for Alpine image
id: alpine-meta
uses: docker/metadata-action@v5
with:
images: ${{ env.IMAGES }}
# Automatically update :latest
flavor: |
latest=true
suffix=-alpine,onlatest=true
tags: ${{ env.TAGS }}
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
# Building outside of the docker image allows us to build once and push to multiple platforms
# This is faster and avoids yarn memory issues
- name: Set up environment
uses: ./.github/actions/setup
- name: Build Web
run: ./bin/package-browser
- name: Build and push ubuntu image
uses: docker/build-push-action@v5
with:
context: .
push: true
file: packages/sync-server/docker/ubuntu.Dockerfile
platforms: linux/amd64,linux/arm64,linux/arm/v7
tags: ${{ steps.meta.outputs.tags }}
- name: Build and push alpine image
uses: docker/build-push-action@v5
with:
context: .
push: true
file: packages/sync-server/docker/alpine.Dockerfile
platforms: linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6
tags: ${{ steps.alpine-meta.outputs.tags }}

View File

@@ -1,6 +1,7 @@
name: E2E Tests
on: [pull_request]
on:
pull_request:
env:
GITHUB_PR_NUMBER: ${{github.event.pull_request.number}}

View File

@@ -0,0 +1,35 @@
name: Generate release PR
on:
workflow_dispatch:
inputs:
ref:
description: 'Commit or branch to release'
required: true
default: 'master'
version:
description: 'Version number for the release (optional)'
required: false
default: ''
jobs:
generate-release-pr:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ github.event.inputs.ref }}
- name: Bump package versions
id: bump_package_versions
shell: bash
run: |
.github/actions/bump-package-versions ${{ github.event.inputs.version }}
echo "version=$(jq -r .version packages/desktop-client/package.json)" > $GITHUB_OUTPUT
- name: Create PR
uses: peter-evans/create-pull-request@v7
with:
commit-message: '🔖 (${{ steps.bump_package_versions.outputs.version }})'
title: '🔖 (${{ steps.bump_package_versions.outputs.version }})'
body: 'Generated by [generate-release-pr.yml](../tree/master/.github/workflows/generate-release-pr.yml)'
branch: 'release/v${{ steps.bump_package_versions.outputs.version }}'

View File

@@ -1,36 +1,87 @@
name: Extract and upload i18n strings
on:
push:
branches:
- master
schedule:
# 4am UTC
- cron: "0 4 * * *"
workflow_dispatch:
jobs:
extract-and-upload-i18n-strings:
runs-on: ubuntu-latest
if: github.repository == 'actualbudget/actual'
steps:
- uses: actions/checkout@v4
- name: Set up environment
uses: ./.github/actions/setup
- name: Configure i18n client
run: |
pip install wlc
- name: Generate i18n strings
run: yarn generate:i18n
- name: Upload i18n strings
run: |
if [[ ! -f packages/desktop-client/locale/en.json ]]; then
echo "File packages/desktop-client/locale/en.json not found. Ensure the file was generated correctly."
exit 1
fi
wlc \
--url https://hosted.weblate.org/api/ \
--key "${{ secrets.WEBLATE_API_KEY_CI_STRINGS }}" \
upload \
--author-name "Actual Budget" \
--author-email "dev@actualbudget.org" \
--method add \
--input packages/desktop-client/locale/en.json \
actualbudget/actual/en
echo "Translations uploaded"
- name: Check out main repository
uses: actions/checkout@v4
with:
path: actual
- name: Set up environment
uses: ./actual/.github/actions/setup
with:
working-directory: actual
download-translations: false # As we'll manually clone instead
- name: Configure Git config
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
- name: Configure i18n client
run: |
pip install wlc
- name: Lock translations
run: |
wlc \
--url https://hosted.weblate.org/api/ \
--key "${{ secrets.WEBLATE_API_KEY_CI_STRINGS }}" \
lock \
actualbudget/actual
- name: Update VCS with latest translations
run: |
wlc \
--url https://hosted.weblate.org/api/ \
--key "${{ secrets.WEBLATE_API_KEY_CI_STRINGS }}" \
push \
actualbudget/actual
- name: Check out updated translations
uses: actions/checkout@v4
with:
ssh-key: ${{ secrets.STRING_IMPORT_DEPLOY_KEY }}
repository: actualbudget/translations
path: translations
- name: Generate i18n strings
working-directory: actual
run: |
mkdir -p packages/desktop-client/locale/
cp ../translations/en.json packages/desktop-client/locale/
yarn generate:i18n
if [[ ! -f packages/desktop-client/locale/en.json ]]; then
echo "File packages/desktop-client/locale/en.json not found. Ensure the file was generated correctly."
exit 1
fi
- name: Check in new i18n strings
working-directory: translations
run: |
cp ../actual/packages/desktop-client/locale/en.json .
git add .
if git commit -m "Update source strings"; then
git push
else
echo "No changes to commit"
fi
- name: Update Weblate with latest translations
run: |
wlc \
--url https://hosted.weblate.org/api/ \
--key "${{ secrets.WEBLATE_API_KEY_CI_STRINGS }}" \
pull \
actualbudget/actual
- name: Unlock translations
if: always() # Clean up even on failure
run: |
wlc \
--url https://hosted.weblate.org/api/ \
--key "${{ secrets.WEBLATE_API_KEY_CI_STRINGS }}" \
unlock \
actualbudget/actual

View File

@@ -13,6 +13,9 @@ name: Compare Sizes
on:
pull_request_target:
paths:
- 'packages/**'
- '!packages/sync-server/**'
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}

View File

@@ -79,6 +79,8 @@ jobs:
with:
name: patch
- name: Apply patch and push
env:
BRANCH_NAME: ${{ steps.comment-branch.outputs.head_ref }}
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
@@ -89,7 +91,7 @@ jobs:
exit 0
fi
git commit -m "Update VRT"
git push origin HEAD:${{ steps.comment-branch.outputs.head_ref }}
git push origin HEAD:${BRANCH_NAME}
- name: Add finished reaction
uses: dkershner6/reaction-action@v2
with:

3
.gitignore vendored
View File

@@ -53,3 +53,6 @@ bundle.mobile.js.map
# build output
package.tgz
# Fly.io configuration
fly.toml

File diff suppressed because one or more lines are too long

935
.yarn/releases/yarn-4.7.0.cjs vendored Executable file

File diff suppressed because one or more lines are too long

View File

@@ -2,6 +2,8 @@ compressionLevel: mixed
enableGlobalCache: false
enableTransparentWorkspaces: false
nodeLinker: node-modules
yarnPath: .yarn/releases/yarn-4.3.1.cjs
yarnPath: .yarn/releases/yarn-4.7.0.cjs

View File

@@ -68,6 +68,10 @@ To add new feature requests, open a new Issue of the "Feature Request" type.
Make Actual Budget accessible to more people by helping with the [Internationalization](https://actualbudget.org/docs/contributing/i18n/) of Actual. We are using a crowd sourcing tool to manage the translations, see our [Weblate Project](https://hosted.weblate.org/projects/actualbudget/). Weblate proudly supports open-source software projects through their [Libre plan](https://weblate.org/en/hosting/#libre).
<a href="https://hosted.weblate.org/engage/actualbudget/">
<img src="https://hosted.weblate.org/widget/actualbudget/actual/287x66-grey.png" alt="Translation status" />
</a>
## Repo Activity
![Alt](https://repobeats.axiom.co/api/embed/e20537dd8b74956f86736726ccfbc6f0565bec22.svg 'Repobeats analytics image')

View File

@@ -4,6 +4,16 @@ ROOT=`dirname $0`
cd "$ROOT/.."
echo "Updating translations..."
if ! [ -d packages/desktop-client/locale ]; then
git clone https://github.com/actualbudget/translations packages/desktop-client/locale
fi
pushd packages/desktop-client/locale > /dev/null
git checkout .
git pull
popd > /dev/null
packages/desktop-client/bin/remove-untranslated-languages
yarn workspace loot-core build:browser
yarn workspace @actual-app/web build:browser

View File

@@ -34,10 +34,23 @@ if [ "$OSTYPE" == "msys" ]; then
fi
fi
yarn workspace loot-core build:node
# Get translations
echo "Updating translations..."
if ! [ -d packages/desktop-client/locale ]; then
git clone https://github.com/actualbudget/translations packages/desktop-client/locale
fi
pushd packages/desktop-client/locale > /dev/null
git pull
popd > /dev/null
packages/desktop-client/bin/remove-untranslated-languages
yarn workspace loot-core build:node
yarn workspace @actual-app/web build --mode=desktop # electron specific build
# required for running the sync-server server
yarn workspace loot-core build:browser
yarn workspace @actual-app/web build:browser
yarn workspace desktop-electron update-client
(

View File

@@ -0,0 +1,182 @@
import { exec } from 'node:child_process';
import { existsSync, writeFile } from 'node:fs';
import { exit } from 'node:process';
import prompts from 'prompts';
async function run() {
const username = await execAsync(
// eslint-disable-next-line rulesdir/typography
"gh api user --jq '.login'",
'To avoid having to enter your username, consider installing the official GitHub CLI (https://github.com/cli/cli) and logging in with `gh auth login`.',
);
const activePr = await getActivePr(username);
if (activePr) {
console.log(
`Found potentially matching PR ${activePr.number}: ${activePr.title}`,
);
}
const prNumber = activePr?.number ?? (await getNextPrNumber());
const result = await prompts([
{
name: 'githubUsername',
message: 'Comma-separated GitHub username(s)',
type: 'text',
initial: username,
},
{
name: 'pullRequestNumber',
message: 'PR Number',
type: 'number',
initial: prNumber,
},
{
name: 'releaseNoteType',
message: 'Release Note Type',
type: 'select',
choices: [
{ title: 'Features', value: 'Features' },
{ title: 'Enhancements', value: 'Enhancements' },
{ title: 'Bugfix', value: 'Bugfix' },
{ title: 'Maintenance', value: 'Maintenance' },
],
},
{
name: 'oneLineSummary',
message: 'Brief Summary',
type: 'text',
initial: activePr?.title,
},
]);
if (
!result.githubUsername ||
!result.oneLineSummary ||
!result.releaseNoteType
) {
console.log('All questions must be answered. Exiting');
exit(1);
}
const fileContents = getFileContents(
result.releaseNoteType,
result.githubUsername,
result.oneLineSummary,
);
const filepath = `./upcoming-release-notes/${prNumber}.md`;
if (existsSync(filepath)) {
const { confirm } = await prompts({
name: 'confirm',
type: 'confirm',
message: `This will overwrite the existing release note ${filepath} Are you sure?`,
});
if (!confirm) {
console.log('Exiting');
exit(1);
}
}
writeFile(filepath, fileContents, err => {
if (err) {
console.error('Failed to write release note file:', err);
exit(1);
} else {
console.log(
`Release note generated successfully: ./upcoming-release-notes/${prNumber}.md`,
);
}
});
}
// makes an attempt to find an existing open PR from <username>:<branch>
async function getActivePr(
username: string,
): Promise<{ number: number; title: string } | undefined> {
if (!username) {
return undefined;
}
const branchName = await execAsync('git rev-parse --abbrev-ref HEAD');
if (!branchName) {
return undefined;
}
const forkHead = `${username}:${branchName}`;
return getPrNumberFromHead(forkHead);
}
async function getPrNumberFromHead(
head: string,
): Promise<{ number: number; title: string } | undefined> {
try {
// head is a weird query parameter in this API call. If nothing matches, it
// will return as if the head query parameter doesn't exist. To get around
// this, we make the page size 2 and only return the number if the length.
const resp = await fetch(
'https://api.github.com/repos/actualbudget/actual/pulls?state=open&per_page=2&head=' +
head,
);
if (!resp.ok) {
console.warn('error fetching from github pulls api:', resp.status);
return undefined;
}
const ghResponse = await resp.json();
if (ghResponse?.length === 1) {
return ghResponse[0];
} else {
return undefined;
}
} catch (e) {
console.warn('error fetching from github pulls api:', e);
}
}
async function getNextPrNumber(): Promise<number> {
try {
const resp = await fetch(
'https://api.github.com/repos/actualbudget/actual/issues?state=all&per_page=1',
);
if (!resp.ok) {
throw new Error(`API responded with status: ${resp.status}`);
}
const ghResponse = await resp.json();
const latestPrNumber = ghResponse?.[0]?.number;
if (!latestPrNumber) {
console.error(
'Could not find latest issue number in GitHub API response',
ghResponse,
);
exit(1);
}
return latestPrNumber + 1;
} catch (error) {
console.error('Failed to fetch next PR number:', error);
exit(1);
}
}
function getFileContents(type: string, username: string, summary: string) {
return `---
category: ${type}
authors: [${username}]
---
${summary}
`;
}
// simple exec that fails silently and returns an empty string on failure
async function execAsync(cmd: string, errorLog?: string): Promise<string> {
return new Promise<string>(res => {
exec(cmd, (error, stdout) => {
if (error) {
console.log(errorLog);
res('');
} else {
res(stdout.trim());
}
});
});
}
run();

View File

@@ -94,6 +94,7 @@ export default [
'packages/api/@types',
'packages/api/migrations',
'packages/crdt/dist',
'packages/component-library/src/icons/**/*',
'packages/desktop-client/bundle.browser.js',
'packages/desktop-client/build/',
'packages/desktop-client/build-electron/',
@@ -102,7 +103,6 @@ export default [
'packages/desktop-client/public/data/',
'packages/desktop-client/**/node_modules/*',
'packages/desktop-client/node_modules/',
'packages/desktop-client/src/icons/**/*',
'packages/desktop-client/test-results/',
'packages/desktop-client/playwright-report/',
'packages/desktop-electron/client-build/',
@@ -587,11 +587,7 @@ export default [
'packages/desktop-client/**/*.{ts,tsx}',
'packages/loot-core/src/client/**/*.{ts,tsx}',
],
rules: {
// enforce type over interface
'@typescript-eslint/consistent-type-definitions': ['warn', 'type'],
// enforce import type
'@typescript-eslint/consistent-type-imports': [
'warn',
@@ -628,11 +624,44 @@ export default [
'no-restricted-imports': [
'warn',
{
patterns: [
paths: [
{
group: ['react-router-dom'],
name: 'react-router-dom',
importNames: ['useNavigate'],
message: "Please use Actual's useNavigate() hook instead.",
message:
"Please import Actual's useNavigate() hook from `src/hooks` instead.",
},
],
},
],
},
},
{
files: ['packages/desktop-client/**/*', 'packages/loot-core/**/*'],
ignores: ['packages/desktop-client/src/redux/index.{ts,tsx}'],
rules: {
'no-restricted-imports': [
'warn',
{
paths: [
{
name: 'react-redux',
importNames: ['useDispatch'],
message:
"Please import Actual's useDispatch() hook from `src/redux` instead.",
},
{
name: 'react-redux',
importNames: ['useSelector'],
message:
"Please import Actual's useSelector() hook from `src/redux` instead.",
},
{
name: 'react-redux',
importNames: ['useStore'],
message:
"Please import Actual's useStore() hook from `src/redux` instead.",
},
],
},
@@ -641,7 +670,6 @@ export default [
},
{
files: ['packages/loot-core/src/**/*'],
rules: {
'no-restricted-imports': [
'warn',
@@ -661,6 +689,10 @@ export default [
message:
'Please use relative imports in loot-core instead of importing from `loot-core/*`',
},
{
group: ['@actual-app/web/*'],
message: 'Please do not import `@actual-app/web` in `loot-core`',
},
],
},
],
@@ -708,6 +740,12 @@ export default [
'import/no-default-export': 'off',
},
},
{
files: ['packages/api/index.ts'],
rules: {
'import/no-unresolved': 'off',
},
},
{},
{
// TODO: fix the issues in these files
@@ -715,7 +753,6 @@ export default [
'packages/desktop-client/src/components/accounts/Account.jsx',
'packages/desktop-client/src/components/accounts/MobileAccount.jsx',
'packages/desktop-client/src/components/accounts/MobileAccounts.jsx',
'packages/desktop-client/src/components/App.tsx',
'packages/desktop-client/src/components/budget/BudgetCategories.jsx',
'packages/desktop-client/src/components/budget/BudgetSummaries.tsx',
'packages/desktop-client/src/components/budget/DynamicBudgetTable.tsx',
@@ -723,7 +760,7 @@ export default [
'packages/desktop-client/src/components/budget/MobileBudget.tsx',
'packages/desktop-client/src/components/budget/envelope/HoldMenu.tsx',
'packages/desktop-client/src/components/budget/envelope/TransferMenu.tsx',
'packages/desktop-client/src/components/common/Menu.tsx',
'packages/component-library/src/Menu.tsx',
'packages/desktop-client/src/components/FinancesApp.tsx',
'packages/desktop-client/src/components/GlobalKeys.ts',
'packages/desktop-client/src/components/LoggedInUser.tsx',
@@ -752,21 +789,6 @@ export default [
'packages/desktop-client/src/components/select/DateSelect.tsx',
'packages/desktop-client/src/components/sidebar/Tools.tsx',
'packages/desktop-client/src/components/sort.tsx',
'packages/desktop-client/src/components/spreadsheet/useSheetValue.ts',
'packages/desktop-client/src/components/table.tsx',
'packages/desktop-client/src/components/Titlebar.tsx',
'packages/desktop-client/src/components/transactions/MobileTransaction.jsx',
'packages/desktop-client/src/components/transactions/SelectedTransactions.jsx',
'packages/desktop-client/src/components/transactions/SimpleTransactionsTable.jsx',
'packages/desktop-client/src/components/transactions/TransactionList.jsx',
'packages/desktop-client/src/components/transactions/TransactionsTable.jsx',
'packages/desktop-client/src/components/transactions/TransactionsTable.test.jsx',
'packages/desktop-client/src/hooks/useAccounts.ts',
'packages/desktop-client/src/hooks/useCategories.ts',
'packages/desktop-client/src/hooks/usePayees.ts',
'packages/desktop-client/src/hooks/useProperFocus.tsx',
'packages/desktop-client/src/hooks/useSelected.tsx',
'packages/loot-core/src/client/query-hooks.tsx',
],
rules: {
@@ -780,10 +802,39 @@ export default [
'**/*.test.ts',
'**/*.test.jsx',
'**/*.test.tsx',
'**/*.spec.js',
],
rules: {
'rulesdir/typography': 'off',
},
},
{
files: [
'packages/desktop-client/**/*.{ts,tsx}',
'packages/loot-core/src/client/**/*.{ts,tsx}',
],
ignores: ['**/**/globals.d.ts'],
rules: {
// enforce type over interface
'@typescript-eslint/consistent-type-definitions': ['warn', 'type'],
},
},
{
files: ['packages/sync-server/**/*'],
// TODO: fix the issues in these files
rules: {
'import/extensions': 'off',
'rulesdir/typography': 'off',
},
},
{
files: ['packages/sync-server/src/app-gocardless/banks/*.js'],
rules: {
'import/no-anonymous-default-export': 'off',
'import/no-default-export': 'off',
// can be re-enabled after https://github.com/actualbudget/actual/pull/4253
'@typescript-eslint/no-unused-vars': 'off',
},
},
];

View File

@@ -19,18 +19,24 @@
},
"scripts": {
"start": "yarn start:browser",
"start:desktop": "yarn rebuild-electron && npm-run-all --parallel 'start:desktop-*'",
"start:server": "yarn workspace @actual-app/sync-server start",
"start:server-monitor": "yarn workspace @actual-app/sync-server start-monitor",
"start:server-dev": "NODE_ENV=development BROWSER_OPEN=localhost:5006 yarn npm-run-all --parallel 'start:server-monitor' 'start'",
"start:desktop": "yarn desktop-dependencies && npm-run-all --parallel 'start:desktop-*'",
"desktop-dependencies": "yarn rebuild-electron && yarn workspace loot-core build:browser",
"start:desktop-node": "yarn workspace loot-core watch:node",
"start:desktop-client": "yarn workspace @actual-app/web watch",
"start:desktop-server-client": "yarn workspace @actual-app/web build:browser",
"start:desktop-electron": "yarn workspace desktop-electron watch",
"start:electron": "yarn start:desktop",
"start:browser": "npm-run-all --parallel 'start:browser-*'",
"start:browser-backend": "yarn workspace loot-core watch:browser",
"start:browser-frontend": "yarn workspace @actual-app/web start:browser",
"build:server": "yarn build:browser",
"build:browser": "./bin/package-browser",
"build:desktop": "./bin/package-electron",
"build:api": "yarn workspace @actual-app/api build",
"generate:i18n": "yarn workspace @actual-app/web generate:i18n",
"generate:release-notes": "ts-node ./bin/release-note-generator.ts",
"test": "yarn workspaces foreach --all --parallel --verbose run test",
"test:debug": "yarn workspaces foreach --all --verbose run test",
"e2e": "yarn workspaces foreach --all --parallel --verbose run e2e",
@@ -40,31 +46,35 @@
"rebuild-node": "yarn workspace loot-core rebuild",
"lint": "eslint . --max-warnings 0",
"lint:verbose": "DEBUG=eslint:cli-engine eslint . --max-warnings 0",
"install:server": "yarn workspaces focus @actual-app/sync-server --production",
"typecheck": "yarn tsc && tsc-strict",
"jq": "./node_modules/node-jq/bin/jq",
"prepare": "husky"
},
"devDependencies": {
"@typescript-eslint/parser": "^8.18.1",
"@types/prompts": "^2.4.9",
"@typescript-eslint/parser": "^8.26.1",
"cross-env": "^7.0.3",
"eslint": "^9.17.0",
"eslint-config-prettier": "^9.1.0",
"eslint-import-resolver-typescript": "^3.7.0",
"eslint": "^9.22.0",
"eslint-config-prettier": "^10.1.1",
"eslint-import-resolver-typescript": "^4.2.2",
"eslint-plugin-import": "^2.31.0",
"eslint-plugin-jsx-a11y": "^6.10.2",
"eslint-plugin-prettier": "5.2.1",
"eslint-plugin-react": "^7.37.2",
"eslint-plugin-react-hooks": "^5.1.0",
"eslint-plugin-prettier": "5.2.3",
"eslint-plugin-react": "^7.37.4",
"eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-rulesdir": "^0.2.2",
"globals": "^15.13.0",
"husky": "^9.0.11",
"lint-staged": "^15.2.9",
"node-jq": "^4.0.1",
"husky": "^9.1.7",
"lint-staged": "^15.5.0",
"node-jq": "^4.0.2",
"npm-run-all": "^4.1.5",
"prettier": "^3.4.2",
"prettier": "^3.5.3",
"prompts": "^2.4.2",
"source-map-support": "^0.5.21",
"typescript": "^5.5.4",
"typescript-eslint": "^8.18.1",
"ts-node": "^10.9.2",
"typescript": "^5.8.2",
"typescript-eslint": "^8.26.1",
"typescript-strict-plugin": "^2.4.4"
},
"resolutions": {
@@ -76,7 +86,7 @@
"lint-staged": {
"*.{js,jsx,ts,tsx,md,json}": "prettier --write"
},
"packageManager": "yarn@4.3.1",
"packageManager": "yarn@4.7.0",
"browserslist": [
"electron 24.0",
"defaults"

View File

@@ -1,7 +1,7 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`API setup and teardown successfully loads budget 1`] = `
Array [
[
"2016-10",
"2016-11",
"2016-12",

View File

@@ -1,14 +1,13 @@
import type {
RequestInfo as FetchInfo,
RequestInit as FetchInit,
// @ts-ignore: false-positive commonjs module error on build until typescript 5.3
} from 'node-fetch'; // with { 'resolution-mode': 'import' };
} from 'node-fetch';
// loot-core types
import type { InitConfig } from 'loot-core/server/main';
// @ts-ignore: bundle not available until we build it
// eslint-disable-next-line import/extensions, import/no-unresolved
// eslint-disable-next-line import/extensions
import * as bundle from './app/bundle.api.js';
import * as injected from './injected';
import { validateNodeVersion } from './validateNodeVersion';
@@ -16,9 +15,6 @@ import { validateNodeVersion } from './validateNodeVersion';
let actualApp: null | typeof bundle.lib;
export const internal = bundle.lib;
// DEPRECATED: remove the next line in @actual-app/api v7
export * as methods from './methods';
export * from './methods';
export * as utils from './utils';

View File

@@ -1,7 +1,5 @@
module.exports = {
moduleFileExtensions: [
'testing.js',
'testing.ts',
'api.js',
'api.ts',
'api.tsx',

View File

@@ -1,5 +1,5 @@
// @ts-strict-ignore
import type { Handlers } from 'loot-core/src/types/handlers';
import type { Handlers } from 'loot-core/types/handlers';
import * as injected from './injected';
@@ -85,10 +85,21 @@ export function addTransactions(
});
}
export function importTransactions(accountId, transactions) {
export interface ImportTransactionsOpts {
defaultCleared?: boolean;
}
export function importTransactions(
accountId,
transactions,
opts: ImportTransactionsOpts = {
defaultCleared: true,
},
) {
return send('api/transactions-import', {
accountId,
transactions,
opts,
});
}

View File

@@ -1,6 +1,6 @@
{
"name": "@actual-app/api",
"version": "25.1.0",
"version": "25.4.0",
"license": "MIT",
"description": "An API for Actual",
"engines": {
@@ -23,18 +23,18 @@
},
"dependencies": {
"@actual-app/crdt": "workspace:^",
"better-sqlite3": "^11.7.0",
"compare-versions": "^6.1.0",
"better-sqlite3": "^11.9.1",
"compare-versions": "^6.1.1",
"node-fetch": "^3.3.2",
"uuid": "^9.0.1"
},
"devDependencies": {
"@swc/core": "^1.5.3",
"@swc/jest": "^0.2.36",
"@types/jest": "^27.5.2",
"@types/uuid": "^9.0.2",
"jest": "^27.5.1",
"tsc-alias": "^1.8.8",
"typescript": "^5.5.4"
"@types/jest": "^29.5.14",
"@types/uuid": "^9.0.8",
"jest": "^29.7.0",
"tsc-alias": "^1.8.11",
"typescript": "^5.8.2"
}
}

View File

@@ -5,15 +5,15 @@
// the latest Node 16.x release supports all of the features
"target": "ES2021",
"module": "CommonJS",
"moduleResolution": "node10",
"noEmit": false,
"declaration": true,
"outDir": "dist",
"declarationDir": "@types",
"paths": {
"loot-core/src/*": ["./loot-core/*"],
"loot-core/*": ["./@types/loot-core/*"],
"loot-core/*": ["./@types/loot-core/*"]
}
},
"include": ["."],
"exclude": ["**/node_modules/*", "dist", "@types"]
"exclude": ["**/node_modules/*", "dist", "@types", "*.test.ts"]
}

View File

@@ -0,0 +1,55 @@
{
"name": "@actual-app/components",
"version": "0.0.1",
"license": "MIT",
"peerDependencies": {
"react": ">=18.2",
"react-dom": ">=18.2"
},
"dependencies": {
"@emotion/css": "^11.13.5",
"react-aria-components": "^1.7.1",
"usehooks-ts": "^3.0.2"
},
"devDependencies": {
"@svgr/cli": "^8.1.0",
"@types/react": "^18.2.79",
"react": "18.2.0",
"react-dom": "18.2.0"
},
"exports": {
"./hooks/*": "./src/hooks/*.ts",
"./icons/logo": "./src/icons/logo/index.ts",
"./icons/v0": "./src/icons/v0/index.ts",
"./icons/v1": "./src/icons/v1/index.ts",
"./icons/v2": "./src/icons/v2/index.ts",
"./icons/AnimatedLoading": "./src/icons/AnimatedLoading.tsx",
"./icons/Loading": "./src/icons/Loading.tsx",
"./aligned-text": "./src/AlignedText.tsx",
"./block": "./src/Block.tsx",
"./button": "./src/Button.tsx",
"./card": "./src/Card.tsx",
"./form-error": "./src/FormError.tsx",
"./initial-focus": "./src/InitialFocus.ts",
"./inline-field": "./src/InlineField.tsx",
"./input": "./src/Input.tsx",
"./label": "./src/Label.tsx",
"./menu": "./src/Menu.tsx",
"./paragraph": "./src/Paragraph.tsx",
"./popover": "./src/Popover.tsx",
"./select": "./src/Select.tsx",
"./space-between": "./src/SpaceBetween.tsx",
"./stack": "./src/Stack.tsx",
"./styles": "./src/styles.ts",
"./text": "./src/Text.tsx",
"./text-one-line": "./src/TextOneLine.tsx",
"./theme": "./src/theme.ts",
"./tokens": "./src/tokens.ts",
"./toggle": "./src/Toggle.tsx",
"./tooltip": "./src/Tooltip.tsx",
"./view": "./src/View.tsx"
},
"scripts": {
"generate:icons": "rm src/icons/*/*.tsx; cd src/icons && svgr --template template.ts --index-template index-template.ts --typescript --expand-props start -d . ."
}
}

View File

@@ -1,7 +1,9 @@
import { type HTMLProps, type Ref, type CSSProperties } from 'react';
import { type HTMLProps, type Ref } from 'react';
import { css, cx } from '@emotion/css';
import { type CSSProperties } from './styles';
type BlockProps = HTMLProps<HTMLDivElement> & {
innerRef?: Ref<HTMLDivElement>;
style?: CSSProperties;

View File

@@ -9,9 +9,9 @@ import { Button as ReactAriaButton } from 'react-aria-components';
import { css } from '@emotion/css';
import { AnimatedLoading } from '../../icons/AnimatedLoading';
import { styles, theme } from '../../style';
import { AnimatedLoading } from './icons/AnimatedLoading';
import { styles } from './styles';
import { theme } from './theme';
import { View } from './View';
const backgroundColor: {

View File

@@ -1,7 +1,6 @@
import { type ComponentProps, forwardRef } from 'react';
import { theme } from '../../style';
import { theme } from './theme';
import { View } from './View';
type CardProps = ComponentProps<typeof View>;

View File

@@ -1,7 +1,9 @@
import { type ReactNode, type CSSProperties } from 'react';
import { type ReactNode } from 'react';
import { css } from '@emotion/css';
import { type CSSProperties } from './styles';
type InlineFieldProps = {
label: ReactNode;
labelWidth?: number;

View File

@@ -2,15 +2,12 @@ import React, {
type InputHTMLAttributes,
type KeyboardEvent,
type Ref,
type CSSProperties,
useRef,
} from 'react';
import { css, cx } from '@emotion/css';
import { useMergedRefs } from '../../hooks/useMergedRefs';
import { useProperFocus } from '../../hooks/useProperFocus';
import { styles, theme } from '../../style';
import { styles, type CSSProperties } from './styles';
import { theme } from './theme';
export const defaultInputStyle = {
outline: 0,
@@ -29,7 +26,6 @@ type InputProps = InputHTMLAttributes<HTMLInputElement> & {
onEscape?: (event: KeyboardEvent<HTMLInputElement>) => void;
onChangeValue?: (newValue: string) => void;
onUpdate?: (newValue: string) => void;
focused?: boolean;
};
export function Input({
@@ -39,22 +35,19 @@ export function Input({
onEscape,
onChangeValue,
onUpdate,
focused,
className,
...nativeProps
}: InputProps) {
const ref = useRef<HTMLInputElement>(null);
useProperFocus(ref, focused);
const mergedRef = useMergedRefs<HTMLInputElement>(ref, inputRef);
return (
<input
ref={mergedRef}
ref={inputRef}
className={cx(
css(
defaultInputStyle,
{
color: nativeProps.disabled
? theme.formInputTextPlaceholder
: theme.formInputText,
whiteSpace: 'nowrap',
overflow: 'hidden',
flexShrink: 0,

View File

@@ -1,8 +1,8 @@
import { forwardRef, type ReactNode, type CSSProperties } from 'react';
import { theme, styles } from '../../style';
import { styles } from './styles';
import { Text } from './Text';
import { theme } from './theme';
type LabelProps = {
title: ReactNode;

View File

@@ -3,14 +3,15 @@ import {
useEffect,
useRef,
useState,
type ComponentProps,
type ComponentType,
type SVGProps,
type CSSProperties,
} from 'react';
import { theme } from '../../style';
import { Button } from './Button';
import { Text } from './Text';
import { theme } from './theme';
import { Toggle } from './Toggle';
import { View } from './View';
@@ -31,7 +32,7 @@ function Keybinding({ keyName }: KeybindingProps) {
);
}
type MenuItemObject<NameType, Type extends string | symbol = string> = {
export type MenuItemObject<NameType, Type extends string | symbol = string> = {
type?: Type;
name: NameType;
disabled?: boolean;
@@ -62,6 +63,7 @@ type MenuProps<NameType> = {
style?: CSSProperties;
className?: string;
getItemStyle?: (item: MenuItemObject<NameType>) => CSSProperties;
slot?: ComponentProps<typeof Button>['slot'];
};
export function Menu<const NameType = string>({
@@ -72,6 +74,7 @@ export function Menu<const NameType = string>({
style,
className,
getItemStyle,
slot,
}: MenuProps<NameType>) {
const elRef = useRef<HTMLDivElement>(null);
const items = allItems.filter(x => x);
@@ -162,9 +165,10 @@ export function Menu<const NameType = string>({
const Icon = item.icon;
return (
<View
role="button"
<Button
key={String(item.name)}
variant="bare"
slot={slot}
style={{
cursor: 'default',
padding: 10,
@@ -180,11 +184,9 @@ export function Menu<const NameType = string>({
}),
...(!isLabel(item) && getItemStyle?.(item)),
}}
onPointerEnter={() => setHoveredIndex(idx)}
onPointerLeave={() => setHoveredIndex(null)}
onPointerUp={e => {
e.stopPropagation();
onHoverStart={() => setHoveredIndex(idx)}
onHoverEnd={() => setHoveredIndex(null)}
onPress={() => {
if (
!item.disabled &&
item.toggle === undefined &&
@@ -233,7 +235,7 @@ export function Menu<const NameType = string>({
</View>
)}
{item.key && <Keybinding keyName={item.key} />}
</View>
</Button>
);
})}
{footer}

View File

@@ -1,7 +1,9 @@
import { type HTMLProps, type CSSProperties } from 'react';
import { type HTMLProps } from 'react';
import { css } from '@emotion/css';
import { type CSSProperties } from './styles';
type ParagraphProps = HTMLProps<HTMLDivElement> & {
style?: CSSProperties;
isLast?: boolean;

View File

@@ -3,7 +3,7 @@ import { Popover as ReactAriaPopover } from 'react-aria-components';
import { css } from '@emotion/css';
import { styles } from '../../style';
import { styles } from './styles';
type PopoverProps = ComponentProps<typeof ReactAriaPopover>;

View File

@@ -1,8 +1,7 @@
import { useRef, useState, type CSSProperties } from 'react';
import { SvgExpandArrow } from '../../icons/v0';
import { Button } from './Button2';
import { Button } from './Button';
import { SvgExpandArrow } from './icons/v0';
import { Menu } from './Menu';
import { Popover } from './Popover';
import { View } from './View';

View File

@@ -3,11 +3,12 @@ import React, {
type Ref,
type ReactNode,
forwardRef,
type CSSProperties,
} from 'react';
import { css, cx } from '@emotion/css';
import { type CSSProperties } from './styles';
type TextProps = HTMLProps<HTMLSpanElement> & {
innerRef?: Ref<HTMLSpanElement>;
className?: string;

View File

@@ -2,8 +2,7 @@ import React, { type CSSProperties } from 'react';
import { css } from '@emotion/css';
import { theme } from '../../style';
import { theme } from './theme';
import { View } from './View';
type ToggleProps = {

View File

@@ -8,8 +8,7 @@ import React, {
} from 'react';
import { Tooltip as AriaTooltip, TooltipTrigger } from 'react-aria-components';
import { styles } from '../../style';
import { styles } from './styles';
import { View } from './View';
type TooltipProps = Partial<ComponentProps<typeof AriaTooltip>> & {

View File

@@ -1,12 +1,9 @@
import React, {
forwardRef,
type HTMLProps,
type Ref,
type CSSProperties,
} from 'react';
import React, { forwardRef, type HTMLProps, type Ref } from 'react';
import { css, cx } from '@emotion/css';
import { type CSSProperties } from './styles';
type ViewProps = HTMLProps<HTMLDivElement> & {
className?: string;
style?: CSSProperties;

View File

@@ -0,0 +1,23 @@
import { useWindowSize } from 'usehooks-ts';
import { breakpoints } from '../tokens';
export function useResponsive() {
const { height, width } = useWindowSize({
debounceDelay: 250,
});
// Possible view modes: narrow, small, medium, wide
// To check if we're at least small width, check !isNarrowWidth
return {
// atLeastMediumWidth is provided to avoid checking (isMediumWidth || isWideWidth)
atLeastMediumWidth: width >= breakpoints.medium,
isNarrowWidth: width < breakpoints.small,
isSmallWidth: width >= breakpoints.small && width < breakpoints.medium,
isMediumWidth: width >= breakpoints.medium && width < breakpoints.wide,
// No atLeastWideWidth because that's identical to isWideWidth
isWideWidth: width >= breakpoints.wide,
height,
width,
};
}

View File

@@ -6,8 +6,8 @@ function indexTemplate(filePaths) {
const basename = path.basename(filePath, path.extname(filePath));
const exportName = `Svg${basename}`;
return `export { ${exportName} } from './${basename}'`;
})
});
return exportEntries.join('\n');
}
module.exports = indexTemplate
module.exports = indexTemplate;

View File

Before

Width:  |  Height:  |  Size: 1006 B

After

Width:  |  Height:  |  Size: 1006 B

View File

@@ -1,5 +1,5 @@
// @ts-strict-ignore
const template = ({ imports, interfaces, componentName, props, jsx }, { tpl }) => {
const tmpl = ({ imports, interfaces, componentName, props, jsx }, { tpl }) => {
return tpl`
${imports};
@@ -8,7 +8,7 @@ ${interfaces};
export const ${componentName} = (${props}) => (
${jsx}
);
`
}
`;
};
module.exports = template
module.exports = tmpl;

View File

Before

Width:  |  Height:  |  Size: 601 B

After

Width:  |  Height:  |  Size: 601 B

View File

Before

Width:  |  Height:  |  Size: 462 B

After

Width:  |  Height:  |  Size: 462 B

View File

Before

Width:  |  Height:  |  Size: 817 B

After

Width:  |  Height:  |  Size: 817 B

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 379 B

After

Width:  |  Height:  |  Size: 379 B

View File

Before

Width:  |  Height:  |  Size: 1005 B

After

Width:  |  Height:  |  Size: 1005 B

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Some files were not shown because too many files have changed in this diff Show More