@actual-app/api 25.1.0 → 25.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/@types/loot-core/client/constants.d.ts +0 -11
  2. package/@types/loot-core/client/state-types/index.d.ts +0 -14
  3. package/@types/loot-core/client/state-types/modals.d.ts +7 -2
  4. package/@types/loot-core/mocks/index.d.ts +9 -20
  5. package/@types/loot-core/platform/client/fetch/index.d.ts +10 -1
  6. package/@types/loot-core/platform/client/undo/index.d.ts +8 -4
  7. package/@types/loot-core/platform/server/connection/index.d.ts +1 -1
  8. package/@types/loot-core/server/accounts/sync.d.ts +1 -1
  9. package/@types/loot-core/server/accounts/transaction-rules.d.ts +0 -3
  10. package/@types/loot-core/server/accounts/transactions.d.ts +0 -3
  11. package/@types/loot-core/server/accounts/transfer.d.ts +0 -11
  12. package/@types/loot-core/server/admin/app.d.ts +9 -4
  13. package/@types/loot-core/server/admin/types/handlers.d.ts +4 -2
  14. package/@types/loot-core/server/app.d.ts +14 -4
  15. package/@types/loot-core/server/aql/compiler.d.ts +4 -6
  16. package/@types/loot-core/server/aql/schema/index.d.ts +3 -0
  17. package/@types/loot-core/server/budget/actions.d.ts +6 -0
  18. package/@types/loot-core/server/budget/app.d.ts +10 -5
  19. package/@types/loot-core/server/budget/types/handlers.d.ts +4 -0
  20. package/@types/loot-core/server/dashboard/app.d.ts +9 -4
  21. package/@types/loot-core/server/filters/app.d.ts +9 -4
  22. package/@types/loot-core/server/importers/ynab4-types.d.ts +0 -2
  23. package/@types/loot-core/server/importers/ynab5-types.d.ts +0 -2
  24. package/@types/loot-core/server/main-app.d.ts +10 -5
  25. package/@types/loot-core/server/main.d.ts +2 -2
  26. package/@types/loot-core/server/notes/app.d.ts +9 -4
  27. package/@types/loot-core/server/preferences/app.d.ts +9 -4
  28. package/@types/loot-core/server/reports/app.d.ts +11 -4
  29. package/@types/loot-core/server/rules/app.d.ts +9 -4
  30. package/@types/loot-core/server/rules/types/handlers.d.ts +4 -4
  31. package/@types/loot-core/server/schedules/app.d.ts +10 -7
  32. package/@types/loot-core/server/schedules/types/handlers.d.ts +5 -5
  33. package/@types/loot-core/server/tools/app.d.ts +9 -4
  34. package/@types/loot-core/server/tools/types/handlers.d.ts +2 -1
  35. package/@types/loot-core/shared/schedules.d.ts +5 -31
  36. package/@types/loot-core/shared/transactions.d.ts +101 -17
  37. package/@types/loot-core/shared/util.d.ts +23 -9
  38. package/@types/loot-core/types/api-handlers.d.ts +3 -0
  39. package/@types/loot-core/types/models/dashboard.d.ts +1 -1
  40. package/@types/loot-core/types/models/payee.d.ts +1 -0
  41. package/@types/loot-core/types/models/reports.d.ts +4 -0
  42. package/@types/loot-core/types/models/rule.d.ts +6 -4
  43. package/@types/loot-core/types/models/schedule.d.ts +5 -18
  44. package/@types/loot-core/types/models/simplefin.d.ts +2 -0
  45. package/@types/loot-core/types/models/transaction.d.ts +6 -0
  46. package/@types/loot-core/types/prefs.d.ts +3 -2
  47. package/@types/loot-core/types/server-events.d.ts +80 -17
  48. package/@types/loot-core/types/server-handlers.d.ts +19 -7
  49. package/@types/loot-core/types/util.d.ts +5 -0
  50. package/@types/methods.d.ts +4 -4
  51. package/dist/app/bundle.api.js +334 -187
  52. package/dist/methods.js +4 -1
  53. package/dist/migrations/1736640000000__custom_report_sorting.sql +7 -0
  54. package/dist/migrations/1737158400000_add_learn_categories_to_payees.sql +5 -0
  55. package/dist/migrations/1738491452000__sorting_rename.sql +13 -0
  56. package/dist/package.json +1 -1
  57. package/package.json +1 -1
  58. package/@types/loot-core/client/actions/types.d.ts +0 -6
  59. package/@types/loot-core/client/state-types/account.d.ts +0 -27
  60. package/@types/loot-core/client/state-types/app.d.ts +0 -42
  61. package/@types/loot-core/client/state-types/queries.d.ts +0 -76
@@ -1,23 +1,86 @@
1
1
  import { type Backup } from '../server/backups';
2
2
  import { type UndoState } from '../server/undo';
3
3
 
4
+ type SyncSubtype =
5
+ | 'out-of-sync'
6
+ | 'apply-failure'
7
+ | 'decrypt-failure'
8
+ | 'encrypt-failure'
9
+ | 'invalid-schema'
10
+ | 'network'
11
+ | 'file-old-version'
12
+ | 'file-key-mismatch'
13
+ | 'file-not-found'
14
+ | 'file-needs-upload'
15
+ | 'file-has-reset'
16
+ | 'file-has-new-key'
17
+ | 'token-expired'
18
+ | string;
19
+
20
+ type SyncEvent = {
21
+ meta?: Record<string, unknown>;
22
+ } & (
23
+ | {
24
+ type: 'applied';
25
+ tables: string[];
26
+ data?: Map<string, unknown>;
27
+ prevData?: Map<string, unknown>;
28
+ }
29
+ | {
30
+ type: 'success';
31
+ tables: string[];
32
+ syncDisabled?: boolean;
33
+ }
34
+ | {
35
+ type: 'error';
36
+ subtype?: SyncSubtype;
37
+ }
38
+ | {
39
+ type: 'start';
40
+ }
41
+ | {
42
+ type: 'unauthorized';
43
+ }
44
+ );
45
+
46
+ type BackupUpdatedEvent = Backup[];
47
+
48
+ type CellsChangedEvent = Array<{
49
+ name: string;
50
+ value: string | number | boolean;
51
+ }>;
52
+
53
+ type FallbackWriteErrorEvent = undefined;
54
+ type FinishImportEvent = undefined;
55
+ type FinishLoadEvent = undefined;
56
+
57
+ type OrphanedPayeesEvent = {
58
+ orphanedIds: string[];
59
+ updatedPayeeIds: string[];
60
+ };
61
+
62
+ type PrefsUpdatedEvent = undefined;
63
+ type SchedulesOfflineEvent = undefined;
64
+ type ServerErrorEvent = undefined;
65
+ type ShowBudgetsEvent = undefined;
66
+ type StartImportEvent = { budgetName: string };
67
+ type StartLoadEvent = undefined;
68
+ type ApiFetchRedirectedEvent = undefined;
69
+
4
70
  export interface ServerEvents {
5
- 'backups-updated': Backup[];
6
- 'cells-changed': Array<{ name }>;
7
- 'fallback-write-error': unknown;
8
- 'finish-import': unknown;
9
- 'finish-load': unknown;
10
- 'orphaned-payees': {
11
- orphanedIds: string[];
12
- updatedPayeeIds: string[];
13
- };
14
- 'prefs-updated': unknown;
15
- 'schedules-offline': { payees: unknown[] };
16
- 'server-error': unknown;
17
- 'show-budgets': unknown;
18
- 'start-import': unknown;
19
- 'start-load': unknown;
20
- 'sync-event': { type; subtype; meta; tables; syncDisabled };
71
+ 'backups-updated': BackupUpdatedEvent;
72
+ 'cells-changed': CellsChangedEvent;
73
+ 'fallback-write-error': FallbackWriteErrorEvent;
74
+ 'finish-import': FinishImportEvent;
75
+ 'finish-load': FinishLoadEvent;
76
+ 'orphaned-payees': OrphanedPayeesEvent;
77
+ 'prefs-updated': PrefsUpdatedEvent;
78
+ 'schedules-offline': SchedulesOfflineEvent;
79
+ 'server-error': ServerErrorEvent;
80
+ 'show-budgets': ShowBudgetsEvent;
81
+ 'start-import': StartImportEvent;
82
+ 'start-load': StartLoadEvent;
83
+ 'sync-event': SyncEvent;
21
84
  'undo-event': UndoState;
22
- 'api-fetch-redirected': unknown;
85
+ 'api-fetch-redirected': ApiFetchRedirectedEvent;
23
86
  }
@@ -1,3 +1,5 @@
1
+ import { ImportTransactionsOpts } from '@actual-app/api';
2
+
1
3
  import { ParseFileResult } from '../server/accounts/parse-file';
2
4
  import { batchUpdateTransactions } from '../server/accounts/transactions';
3
5
  import { Backup } from '../server/backups';
@@ -19,6 +21,7 @@ import {
19
21
  } from './models';
20
22
  import { OpenIdConfig } from './models/openid';
21
23
  import { GlobalPrefs, MetadataPrefs } from './prefs';
24
+ // eslint-disable-next-line import/no-unresolved
22
25
  import { Query } from './query';
23
26
  import { EmptyObject } from './util';
24
27
 
@@ -49,7 +52,7 @@ export interface ServerHandlers {
49
52
  payees;
50
53
  }) => Promise<unknown>;
51
54
 
52
- 'transactions-export-query': (arg: { query: QueryState }) => Promise<unknown>;
55
+ 'transactions-export-query': (arg: { query: QueryState }) => Promise<string>;
53
56
 
54
57
  'get-categories': () => Promise<{
55
58
  grouped: Array<CategoryGroupEntity>;
@@ -106,7 +109,7 @@ export interface ServerHandlers {
106
109
 
107
110
  'payees-get': () => Promise<PayeeEntity[]>;
108
111
 
109
- 'payees-get-rule-counts': () => Promise<unknown>;
112
+ 'payees-get-rule-counts': () => Promise<Record<PayeeEntity['id'], number>>;
110
113
 
111
114
  'payees-merge': (arg: { targetId; mergeIds }) => Promise<void>;
112
115
 
@@ -122,7 +125,7 @@ export interface ServerHandlers {
122
125
  'payees-get-rules': (arg: { id: string }) => Promise<RuleEntity[]>;
123
126
 
124
127
  'make-filters-from-conditions': (arg: {
125
- conditions;
128
+ conditions: unknown;
126
129
  }) => Promise<{ filters: unknown[] }>;
127
130
 
128
131
  getCell: (arg: {
@@ -138,7 +141,8 @@ export interface ServerHandlers {
138
141
 
139
142
  'create-query': (arg: { sheetName; name; query }) => Promise<unknown>;
140
143
 
141
- query: (query: Query) => Promise<{ data: unknown; dependencies }>;
144
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
145
+ query: (query: Query) => Promise<{ data: any; dependencies: string[] }>;
142
146
 
143
147
  'account-update': (arg: { id; name }) => Promise<unknown>;
144
148
 
@@ -179,7 +183,10 @@ export interface ServerHandlers {
179
183
 
180
184
  'account-move': (arg: { id; targetId }) => Promise<unknown>;
181
185
 
182
- 'secret-set': (arg: { name: string; value: string | null }) => Promise<null>;
186
+ 'secret-set': (arg: {
187
+ name: string;
188
+ value: string | null;
189
+ }) => Promise<{ error?: string; reason?: string }>;
183
190
  'secret-check': (arg: string) => Promise<string | { error?: string }>;
184
191
 
185
192
  'gocardless-poll-web-token': (arg: {
@@ -193,7 +200,11 @@ export interface ServerHandlers {
193
200
 
194
201
  'simplefin-status': () => Promise<{ configured: boolean }>;
195
202
 
196
- 'simplefin-accounts': () => Promise<{ accounts: SimpleFinAccount[] }>;
203
+ 'simplefin-accounts': () => Promise<{
204
+ accounts?: SimpleFinAccount[];
205
+ error_code?: string;
206
+ reason?: string;
207
+ }>;
197
208
 
198
209
  'simplefin-batch-sync': ({ ids }: { ids: string[] }) => Promise<
199
210
  {
@@ -238,6 +249,7 @@ export interface ServerHandlers {
238
249
  accountId;
239
250
  transactions;
240
251
  isPreview;
252
+ opts?: ImportTransactionsOpts;
241
253
  }) => Promise<{
242
254
  errors?: { message: string }[];
243
255
  added;
@@ -322,7 +334,7 @@ export interface ServerHandlers {
322
334
  return_url;
323
335
  loginMethod?: 'openid';
324
336
  },
325
- ) => Promise<{ error?: string }>;
337
+ ) => Promise<{ error?: string; redirect_url?: string }>;
326
338
 
327
339
  'subscribe-sign-out': () => Promise<'ok'>;
328
340
 
@@ -9,3 +9,8 @@ export type EverythingButIdOptional<T> = { id: T['id'] } & Partial<
9
9
  >;
10
10
 
11
11
  export type WithRequired<T, K extends keyof T> = T & Required<Pick<T, K>>;
12
+
13
+ // Allows use of object literals inside child elements of `Trans` tags
14
+ // see https://github.com/i18next/react-i18next/issues/1483
15
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
16
+ export type TransObjectLiteral = any;
@@ -31,7 +31,10 @@ export declare function addTransactions(accountId: any, transactions: any, { lea
31
31
  learnCategories?: boolean;
32
32
  runTransfers?: boolean;
33
33
  }): Promise<"ok">;
34
- export declare function importTransactions(accountId: any, transactions: any): Promise<{
34
+ export interface ImportTransactionsOpts {
35
+ defaultCleared?: boolean;
36
+ }
37
+ export declare function importTransactions(accountId: any, transactions: any, opts?: ImportTransactionsOpts): Promise<{
35
38
  errors?: {
36
39
  message: string;
37
40
  }[];
@@ -42,9 +45,6 @@ export declare function getTransactions(accountId: any, startDate: any, endDate:
42
45
  export declare function updateTransaction(id: any, fields: any): Promise<import("./loot-core/types/models").TransactionEntity[] | ({
43
46
  id: any;
44
47
  transfer_id: any;
45
- } | {
46
- id: any;
47
- payee: any;
48
48
  } | {
49
49
  id: any;
50
50
  category: any;