@actual-app/api 25.1.0 → 25.2.1
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.
- package/@types/loot-core/client/constants.d.ts +0 -11
- package/@types/loot-core/client/state-types/index.d.ts +0 -14
- package/@types/loot-core/client/state-types/modals.d.ts +7 -2
- package/@types/loot-core/mocks/index.d.ts +9 -20
- package/@types/loot-core/platform/client/fetch/index.d.ts +10 -1
- package/@types/loot-core/platform/client/undo/index.d.ts +8 -4
- package/@types/loot-core/platform/server/connection/index.d.ts +1 -1
- package/@types/loot-core/server/accounts/sync.d.ts +1 -1
- package/@types/loot-core/server/accounts/transaction-rules.d.ts +0 -3
- package/@types/loot-core/server/accounts/transactions.d.ts +0 -3
- package/@types/loot-core/server/accounts/transfer.d.ts +0 -11
- package/@types/loot-core/server/admin/app.d.ts +9 -4
- package/@types/loot-core/server/admin/types/handlers.d.ts +4 -2
- package/@types/loot-core/server/app.d.ts +14 -4
- package/@types/loot-core/server/aql/compiler.d.ts +4 -6
- package/@types/loot-core/server/aql/schema/index.d.ts +3 -0
- package/@types/loot-core/server/budget/actions.d.ts +6 -0
- package/@types/loot-core/server/budget/app.d.ts +10 -5
- package/@types/loot-core/server/budget/types/handlers.d.ts +4 -0
- package/@types/loot-core/server/dashboard/app.d.ts +9 -4
- package/@types/loot-core/server/filters/app.d.ts +9 -4
- package/@types/loot-core/server/importers/ynab4-types.d.ts +0 -2
- package/@types/loot-core/server/importers/ynab5-types.d.ts +0 -2
- package/@types/loot-core/server/main-app.d.ts +10 -5
- package/@types/loot-core/server/main.d.ts +2 -2
- package/@types/loot-core/server/notes/app.d.ts +9 -4
- package/@types/loot-core/server/preferences/app.d.ts +9 -4
- package/@types/loot-core/server/reports/app.d.ts +11 -4
- package/@types/loot-core/server/rules/app.d.ts +9 -4
- package/@types/loot-core/server/rules/types/handlers.d.ts +4 -4
- package/@types/loot-core/server/schedules/app.d.ts +10 -7
- package/@types/loot-core/server/schedules/types/handlers.d.ts +5 -5
- package/@types/loot-core/server/tools/app.d.ts +9 -4
- package/@types/loot-core/server/tools/types/handlers.d.ts +2 -1
- package/@types/loot-core/shared/schedules.d.ts +5 -31
- package/@types/loot-core/shared/transactions.d.ts +101 -17
- package/@types/loot-core/shared/util.d.ts +23 -9
- package/@types/loot-core/types/api-handlers.d.ts +3 -0
- package/@types/loot-core/types/models/dashboard.d.ts +1 -1
- package/@types/loot-core/types/models/payee.d.ts +1 -0
- package/@types/loot-core/types/models/reports.d.ts +4 -0
- package/@types/loot-core/types/models/rule.d.ts +6 -4
- package/@types/loot-core/types/models/schedule.d.ts +5 -18
- package/@types/loot-core/types/models/simplefin.d.ts +2 -0
- package/@types/loot-core/types/models/transaction.d.ts +6 -0
- package/@types/loot-core/types/prefs.d.ts +3 -2
- package/@types/loot-core/types/server-events.d.ts +80 -17
- package/@types/loot-core/types/server-handlers.d.ts +19 -7
- package/@types/loot-core/types/util.d.ts +5 -0
- package/@types/methods.d.ts +4 -4
- package/dist/app/bundle.api.js +334 -187
- package/dist/methods.js +4 -1
- package/dist/migrations/1736640000000__custom_report_sorting.sql +7 -0
- package/dist/migrations/1737158400000_add_learn_categories_to_payees.sql +5 -0
- package/dist/migrations/1738491452000__sorting_rename.sql +13 -0
- package/dist/package.json +1 -1
- package/package.json +1 -1
- package/@types/loot-core/client/actions/types.d.ts +0 -6
- package/@types/loot-core/client/state-types/account.d.ts +0 -27
- package/@types/loot-core/client/state-types/app.d.ts +0 -42
- 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':
|
|
6
|
-
'cells-changed':
|
|
7
|
-
'fallback-write-error':
|
|
8
|
-
'finish-import':
|
|
9
|
-
'finish-load':
|
|
10
|
-
'orphaned-payees':
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
'
|
|
15
|
-
'
|
|
16
|
-
'
|
|
17
|
-
'
|
|
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':
|
|
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<
|
|
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<
|
|
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
|
-
|
|
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: {
|
|
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<{
|
|
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;
|
package/@types/methods.d.ts
CHANGED
|
@@ -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
|
|
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;
|