@actual-app/api 6.7.1 → 6.8.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 (175) hide show
  1. package/@types/app/bundle.api.d.ts +6 -0
  2. package/@types/app/query.d.ts +19 -0
  3. package/@types/index.d.ts +7 -0
  4. package/@types/injected.d.ts +2 -0
  5. package/@types/jest.config.d.ts +9 -0
  6. package/@types/loot-core/client/actions/types.d.ts +6 -0
  7. package/@types/loot-core/client/constants.d.ts +29 -0
  8. package/@types/loot-core/client/platform.d.ts +4 -0
  9. package/@types/loot-core/client/state-types/account.d.ts +27 -0
  10. package/@types/loot-core/client/state-types/app.d.ts +37 -0
  11. package/@types/loot-core/client/state-types/budgets.d.ts +36 -0
  12. package/@types/loot-core/client/state-types/index.d.ts +41 -0
  13. package/@types/loot-core/client/state-types/modals.d.ts +292 -0
  14. package/@types/loot-core/client/state-types/notifications.d.ts +38 -0
  15. package/@types/loot-core/client/state-types/prefs.d.ts +28 -0
  16. package/@types/loot-core/client/state-types/queries.d.ts +69 -0
  17. package/@types/loot-core/client/state-types/user.d.ts +13 -0
  18. package/@types/loot-core/mocks/budget.d.ts +2 -0
  19. package/@types/loot-core/mocks/index.d.ts +26 -0
  20. package/@types/loot-core/mocks/random.d.ts +1 -0
  21. package/@types/loot-core/mocks/util.d.ts +7 -0
  22. package/@types/loot-core/platform/client/fetch/index.d.ts +48 -0
  23. package/@types/loot-core/platform/client/undo/index.d.ts +29 -0
  24. package/@types/loot-core/platform/exceptions/index.d.ts +5 -0
  25. package/@types/loot-core/platform/server/asyncStorage/index.d.ts +20 -0
  26. package/@types/loot-core/platform/server/connection/index.d.ts +23 -0
  27. package/@types/loot-core/platform/server/fetch/index.d.ts +4 -0
  28. package/@types/loot-core/platform/server/fs/index.d.ts +71 -0
  29. package/@types/loot-core/platform/server/fs/path-join.d.ts +2 -0
  30. package/@types/loot-core/platform/server/indexeddb/index.d.ts +24 -0
  31. package/@types/loot-core/platform/server/log/index.d.ts +9 -0
  32. package/@types/loot-core/platform/server/sqlite/index.d.ts +35 -0
  33. package/@types/loot-core/server/accounts/export-to-csv.d.ts +2 -0
  34. package/@types/loot-core/server/accounts/link.d.ts +1 -0
  35. package/@types/loot-core/server/accounts/ofx2json.d.ts +14 -0
  36. package/@types/loot-core/server/accounts/parse-file.d.ts +15 -0
  37. package/@types/loot-core/server/accounts/payees.d.ts +5 -0
  38. package/@types/loot-core/server/accounts/qif2json.d.ts +26 -0
  39. package/@types/loot-core/server/accounts/rules.d.ts +90 -0
  40. package/@types/loot-core/server/accounts/sync.d.ts +13 -0
  41. package/@types/loot-core/server/accounts/title/index.d.ts +3 -0
  42. package/@types/loot-core/server/accounts/title/lower-case.d.ts +1 -0
  43. package/@types/loot-core/server/accounts/title/specials.d.ts +1 -0
  44. package/@types/loot-core/server/accounts/transaction-rules.d.ts +47 -0
  45. package/@types/loot-core/server/accounts/transactions.d.ts +33 -0
  46. package/@types/loot-core/server/accounts/transfer.d.ts +37 -0
  47. package/@types/loot-core/server/accounts/xmlcamt2json.d.ts +10 -0
  48. package/@types/loot-core/server/api-models.d.ts +66 -0
  49. package/@types/loot-core/server/api.d.ts +3 -0
  50. package/@types/loot-core/server/app.d.ts +14 -0
  51. package/@types/loot-core/server/aql/compiler.d.ts +56 -0
  52. package/@types/loot-core/server/aql/exec.d.ts +9 -0
  53. package/@types/loot-core/server/aql/index.d.ts +5 -0
  54. package/@types/loot-core/server/aql/schema/executors.d.ts +6 -0
  55. package/@types/loot-core/server/aql/schema/index.d.ts +340 -0
  56. package/@types/loot-core/server/aql/schema/run-query.d.ts +6 -0
  57. package/@types/loot-core/server/aql/schema-helpers.d.ts +8 -0
  58. package/@types/loot-core/server/aql/views.d.ts +1 -0
  59. package/@types/loot-core/server/backups.d.ts +16 -0
  60. package/@types/loot-core/server/backups.test.d.ts +1 -0
  61. package/@types/loot-core/server/budget/actions.d.ts +63 -0
  62. package/@types/loot-core/server/budget/app.d.ts +12 -0
  63. package/@types/loot-core/server/budget/base.d.ts +17 -0
  64. package/@types/loot-core/server/budget/cleanup-template.d.ts +4 -0
  65. package/@types/loot-core/server/budget/goals/goalsAverage.d.ts +4 -0
  66. package/@types/loot-core/server/budget/goals/goalsBy.d.ts +5 -0
  67. package/@types/loot-core/server/budget/goals/goalsPercentage.d.ts +4 -0
  68. package/@types/loot-core/server/budget/goals/goalsRemainder.d.ts +8 -0
  69. package/@types/loot-core/server/budget/goals/goalsSchedule.d.ts +6 -0
  70. package/@types/loot-core/server/budget/goals/goalsSimple.d.ts +7 -0
  71. package/@types/loot-core/server/budget/goals/goalsSpend.d.ts +4 -0
  72. package/@types/loot-core/server/budget/goals/goalsWeek.d.ts +7 -0
  73. package/@types/loot-core/server/budget/goaltemplates.d.ts +12 -0
  74. package/@types/loot-core/server/budget/report.d.ts +2 -0
  75. package/@types/loot-core/server/budget/rollover.d.ts +4 -0
  76. package/@types/loot-core/server/budget/types/handlers.d.ts +77 -0
  77. package/@types/loot-core/server/budget/util.d.ts +4 -0
  78. package/@types/loot-core/server/cloud-storage.d.ts +33 -0
  79. package/@types/loot-core/server/db/index.d.ts +60 -0
  80. package/@types/loot-core/server/db/mappings.d.ts +3 -0
  81. package/@types/loot-core/server/db/sort.d.ts +11 -0
  82. package/@types/loot-core/server/db/util.d.ts +2 -0
  83. package/@types/loot-core/server/encryption-internals.d.ts +24 -0
  84. package/@types/loot-core/server/encryption-internals.web.d.ts +24 -0
  85. package/@types/loot-core/server/encryption.d.ts +41 -0
  86. package/@types/loot-core/server/encryption.test.d.ts +1 -0
  87. package/@types/loot-core/server/errors.d.ts +73 -0
  88. package/@types/loot-core/server/filters/app.d.ts +12 -0
  89. package/@types/loot-core/server/filters/types/handlers.d.ts +7 -0
  90. package/@types/loot-core/server/importers/actual.d.ts +4 -0
  91. package/@types/loot-core/server/importers/index.d.ts +6 -0
  92. package/@types/loot-core/server/importers/ynab4-types.d.ts +167 -0
  93. package/@types/loot-core/server/importers/ynab4.d.ts +5 -0
  94. package/@types/loot-core/server/importers/ynab5-types.d.ts +79 -0
  95. package/@types/loot-core/server/importers/ynab5.d.ts +5 -0
  96. package/@types/loot-core/server/main-app.d.ts +12 -0
  97. package/@types/loot-core/server/main.d.ts +28 -0
  98. package/@types/loot-core/server/main.test.d.ts +1 -0
  99. package/@types/loot-core/server/migrate/migrations.d.ts +9 -0
  100. package/@types/loot-core/server/models.d.ts +38 -0
  101. package/@types/loot-core/server/mutators.d.ts +17 -0
  102. package/@types/loot-core/server/notes/app.d.ts +12 -0
  103. package/@types/loot-core/server/notes/types/handlers.d.ts +3 -0
  104. package/@types/loot-core/server/platform.d.ts +3 -0
  105. package/@types/loot-core/server/platform.web.d.ts +3 -0
  106. package/@types/loot-core/server/polyfills.d.ts +0 -0
  107. package/@types/loot-core/server/post.d.ts +3 -0
  108. package/@types/loot-core/server/prefs.d.ts +10 -0
  109. package/@types/loot-core/server/reports/app.d.ts +12 -0
  110. package/@types/loot-core/server/reports/types/handlers.d.ts +6 -0
  111. package/@types/loot-core/server/rules/app.d.ts +12 -0
  112. package/@types/loot-core/server/rules/types/handlers.d.ts +42 -0
  113. package/@types/loot-core/server/schedules/app.d.ts +35 -0
  114. package/@types/loot-core/server/schedules/find-schedules.d.ts +1 -0
  115. package/@types/loot-core/server/schedules/types/handlers.d.ts +31 -0
  116. package/@types/loot-core/server/server-config.d.ts +10 -0
  117. package/@types/loot-core/server/sheet.d.ts +11 -0
  118. package/@types/loot-core/server/sheet.test.d.ts +1 -0
  119. package/@types/loot-core/server/spreadsheet/globals.d.ts +1 -0
  120. package/@types/loot-core/server/spreadsheet/graph-data-structure.d.ts +15 -0
  121. package/@types/loot-core/server/spreadsheet/spreadsheet.d.ts +79 -0
  122. package/@types/loot-core/server/spreadsheet/util.d.ts +5 -0
  123. package/@types/loot-core/server/sync/encoder.d.ts +9 -0
  124. package/@types/loot-core/server/sync/index.d.ts +47 -0
  125. package/@types/loot-core/server/sync/make-test-message.d.ts +10 -0
  126. package/@types/loot-core/server/sync/migrate.d.ts +2 -0
  127. package/@types/loot-core/server/sync/repair.d.ts +6 -0
  128. package/@types/loot-core/server/sync/reset.d.ts +6 -0
  129. package/@types/loot-core/server/sync/utils.d.ts +3 -0
  130. package/@types/loot-core/server/tools/app.d.ts +12 -0
  131. package/@types/loot-core/server/tools/types/handlers.d.ts +7 -0
  132. package/@types/loot-core/server/undo.d.ts +14 -0
  133. package/@types/loot-core/server/update.d.ts +1 -0
  134. package/@types/loot-core/server/util/budget-name.d.ts +2 -0
  135. package/@types/loot-core/server/util/rschedule.d.ts +5 -0
  136. package/@types/loot-core/shared/async.d.ts +3 -0
  137. package/@types/loot-core/shared/environment.d.ts +4 -0
  138. package/@types/loot-core/shared/errors.d.ts +22 -0
  139. package/@types/loot-core/shared/months.d.ts +62 -0
  140. package/@types/loot-core/shared/query.d.ts +31 -0
  141. package/@types/loot-core/shared/rules.d.ts +62 -0
  142. package/@types/loot-core/shared/schedules.d.ts +43 -0
  143. package/@types/loot-core/shared/transactions.d.ts +91 -0
  144. package/@types/loot-core/shared/util.d.ts +67 -0
  145. package/@types/loot-core/types/api-handlers.d.ts +158 -0
  146. package/@types/loot-core/types/budget.d.ts +7 -0
  147. package/@types/loot-core/types/file.d.ts +38 -0
  148. package/@types/loot-core/types/handlers.d.ts +23 -0
  149. package/@types/loot-core/types/models/account.d.ts +21 -0
  150. package/@types/loot-core/types/models/category-group.d.ts +11 -0
  151. package/@types/loot-core/types/models/category.d.ts +9 -0
  152. package/@types/loot-core/types/models/gocardless.d.ts +14 -0
  153. package/@types/loot-core/types/models/index.d.ts +12 -0
  154. package/@types/loot-core/types/models/note.d.ts +4 -0
  155. package/@types/loot-core/types/models/payee.d.ts +10 -0
  156. package/@types/loot-core/types/models/reports.d.ts +123 -0
  157. package/@types/loot-core/types/models/rule.d.ts +71 -0
  158. package/@types/loot-core/types/models/schedule.d.ts +58 -0
  159. package/@types/loot-core/types/models/simplefin.d.ts +10 -0
  160. package/@types/loot-core/types/models/transaction-filter.d.ts +7 -0
  161. package/@types/loot-core/types/models/transaction.d.ts +40 -0
  162. package/@types/loot-core/types/prefs.d.ts +69 -0
  163. package/@types/loot-core/types/server-events.d.ts +21 -0
  164. package/@types/loot-core/types/server-handlers.d.ts +344 -0
  165. package/@types/loot-core/types/util.d.ts +5 -0
  166. package/@types/methods.d.ts +85 -0
  167. package/@types/methods.test.d.ts +1 -0
  168. package/@types/migrations/1632571489012_remove_cache.d.ts +1 -0
  169. package/@types/utils.d.ts +2 -0
  170. package/@types/validateNodeVersion.d.ts +1 -0
  171. package/dist/app/bundle.api.js +430 -5643
  172. package/dist/methods.js +25 -1
  173. package/dist/methods.test.js +205 -5
  174. package/dist/package.json +7 -5
  175. package/package.json +7 -5
@@ -0,0 +1,4 @@
1
+ export declare function goalsSpend(template: any, last_month_balance: any, current_month: any, to_budget: any, errors: any, category: any): Promise<{
2
+ to_budget: any;
3
+ errors: any;
4
+ }>;
@@ -0,0 +1,7 @@
1
+ export declare function goalsWeek(template: any, limit: any, limitCheck: any, hold: any, current_month: any, to_budget: any, errors: any): Promise<{
2
+ to_budget: any;
3
+ errors: any;
4
+ limit: any;
5
+ limitCheck: any;
6
+ hold: any;
7
+ }>;
@@ -0,0 +1,12 @@
1
+ import { Notification } from '../../client/state-types/notifications';
2
+ export declare function applyTemplate({ month }: {
3
+ month: any;
4
+ }): Promise<Notification>;
5
+ export declare function overwriteTemplate({ month }: {
6
+ month: any;
7
+ }): Promise<Notification>;
8
+ export declare function applySingleCategoryTemplate({ month, category }: {
9
+ month: any;
10
+ category: any;
11
+ }): Promise<Notification>;
12
+ export declare function runCheckTemplates(): Promise<Notification>;
@@ -0,0 +1,2 @@
1
+ export declare function createCategory(cat: any, sheetName: any, prevSheetName: any): Promise<void>;
2
+ export declare function createSummary(groups: any, categories: any, sheetName: any): void;
@@ -0,0 +1,4 @@
1
+ export declare function createBlankCategory(cat: any, months: any): void;
2
+ export declare function createCategory(cat: any, sheetName: any, prevSheetName: any): void;
3
+ export declare function createSummary(groups: any, categories: any, prevSheetName: any, sheetName: any): void;
4
+ export declare function createBudget(meta: any, categories: any, months: any): void;
@@ -0,0 +1,77 @@
1
+ import type { Notification } from '../../../client/state-types/notifications';
2
+
3
+ export interface BudgetHandlers {
4
+ 'budget/budget-amount': (arg: {
5
+ category: string /* category id */;
6
+ month: string;
7
+ amount: number;
8
+ }) => Promise<void>;
9
+
10
+ 'budget/copy-previous-month': (arg: { month: string }) => Promise<void>;
11
+
12
+ 'budget/set-zero': (arg: { month: string }) => Promise<void>;
13
+
14
+ 'budget/set-3month-avg': (arg: { month: string }) => Promise<void>;
15
+
16
+ 'budget/check-templates': () => Promise<Notification>;
17
+
18
+ 'budget/apply-goal-template': (arg: {
19
+ month: string;
20
+ }) => Promise<Notification>;
21
+
22
+ 'budget/overwrite-goal-template': (arg: {
23
+ month: string;
24
+ }) => Promise<Notification>;
25
+
26
+ 'budget/cleanup-goal-template': (arg: {
27
+ month: string;
28
+ }) => Promise<Notification>;
29
+
30
+ 'budget/hold-for-next-month': (arg: {
31
+ month: string;
32
+ amount: number;
33
+ }) => Promise<boolean>;
34
+
35
+ 'budget/reset-hold': (arg: { month: string }) => Promise<void>;
36
+
37
+ 'budget/cover-overspending': (arg: {
38
+ month: string;
39
+ to: string;
40
+ from: string;
41
+ }) => Promise<void>;
42
+
43
+ 'budget/transfer-available': (arg: {
44
+ month: string;
45
+ amount: number;
46
+ category: string;
47
+ }) => Promise<void>;
48
+
49
+ 'budget/transfer-category': (arg: {
50
+ month: string;
51
+ amount: number;
52
+ to: string;
53
+ from: string;
54
+ }) => Promise<void>;
55
+
56
+ 'budget/set-carryover': (arg: {
57
+ startMonth: string;
58
+ category: string;
59
+ flag: boolean;
60
+ }) => Promise<void>;
61
+
62
+ 'budget/apply-single-template': (arg: {
63
+ month: string;
64
+ category: string; //category id
65
+ }) => Promise<Notification>;
66
+
67
+ 'budget/set-n-month-avg': (arg: {
68
+ month: string;
69
+ N: number;
70
+ category: string; //category id
71
+ }) => Promise<void>;
72
+
73
+ 'budget/copy-single-month': (arg: {
74
+ month: string;
75
+ category: string; //category id
76
+ }) => Promise<void>;
77
+ }
@@ -0,0 +1,4 @@
1
+ export { number } from '../spreadsheet/globals';
2
+ export declare function sumAmounts(...amounts: any[]): number;
3
+ export declare function flatten2(arr: any): any;
4
+ export declare function unflatten2(arr: any): any[];
@@ -0,0 +1,33 @@
1
+ /// <reference types="node" />
2
+ export interface RemoteFile {
3
+ deleted: boolean;
4
+ fileId: string;
5
+ groupId: string;
6
+ name: string;
7
+ encryptKeyId: string;
8
+ hasKey: boolean;
9
+ }
10
+ export declare function checkKey(): Promise<{
11
+ valid: boolean;
12
+ error?: {
13
+ reason: string;
14
+ };
15
+ }>;
16
+ export declare function resetSyncState(newKeyState: any): Promise<{
17
+ error: {
18
+ reason: string;
19
+ };
20
+ } | {
21
+ error?: undefined;
22
+ }>;
23
+ export declare function exportBuffer(): Promise<Buffer>;
24
+ export declare function importBuffer(fileData: any, buffer: any): Promise<{
25
+ id: any;
26
+ }>;
27
+ export declare function upload(): Promise<void>;
28
+ export declare function possiblyUpload(): Promise<void>;
29
+ export declare function removeFile(fileId: any): Promise<void>;
30
+ export declare function listRemoteFiles(): Promise<RemoteFile[] | null>;
31
+ export declare function download(fileId: any): Promise<{
32
+ id: any;
33
+ }>;
@@ -0,0 +1,60 @@
1
+ import { CategoryEntity, CategoryGroupEntity } from '../../types/models';
2
+ export { toDateRepr, fromDateRepr } from '../models';
3
+ export declare function getDatabasePath(): any;
4
+ export declare function openDatabase(id?: any): Promise<void>;
5
+ export declare function reopenDatabase(): Promise<void>;
6
+ export declare function closeDatabase(): Promise<void>;
7
+ export declare function setDatabase(db_: any): void;
8
+ export declare function getDatabase(): any;
9
+ export declare function loadClock(): Promise<void>;
10
+ export declare function runQuery(sql: string, params?: Array<string | number>, fetchAll?: false): any;
11
+ export declare function runQuery(sql: string, params: Array<string | number> | undefined, fetchAll: true): any;
12
+ export declare function execQuery(sql: any): void;
13
+ export declare function cache(sql: any): any;
14
+ export declare function transaction(fn: () => void): void;
15
+ export declare function asyncTransaction(fn: () => Promise<void>): Promise<void>;
16
+ export declare function all(sql: any, params?: (string | number)[]): Promise<any>;
17
+ export declare function first(sql: any, params?: (string | number)[]): Promise<any>;
18
+ export declare function firstSync(sql: any, params?: (string | number)[]): any;
19
+ export declare function run(sql: any, params?: (string | number)[]): Promise<any>;
20
+ export declare function select(table: any, id: any): Promise<any>;
21
+ export declare function update(table: any, params: any): Promise<void>;
22
+ export declare function insertWithUUID(table: any, row: any): Promise<any>;
23
+ export declare function insert(table: any, row: any): Promise<void>;
24
+ export declare function delete_(table: any, id: any): Promise<void>;
25
+ export declare function selectWithSchema(table: any, sql: any, params: any): Promise<any>;
26
+ export declare function selectFirstWithSchema(table: any, sql: any, params: any): Promise<any>;
27
+ export declare function insertWithSchema(table: any, row: any): Promise<any>;
28
+ export declare function updateWithSchema(table: any, fields: any): Promise<void>;
29
+ export declare function getCategories(): Promise<CategoryEntity[]>;
30
+ export declare function getCategoriesGrouped(): Promise<Array<CategoryGroupEntity>>;
31
+ export declare function insertCategoryGroup(group: any): Promise<any>;
32
+ export declare function updateCategoryGroup(group: any): Promise<void>;
33
+ export declare function moveCategoryGroup(id: any, targetId: any): Promise<void>;
34
+ export declare function deleteCategoryGroup(group: any, transferId?: string): Promise<void>;
35
+ export declare function insertCategory(category: any, { atEnd }?: {
36
+ atEnd: any;
37
+ }): Promise<any>;
38
+ export declare function updateCategory(category: any): Promise<void>;
39
+ export declare function moveCategory(id: any, groupId: any, targetId?: string): Promise<void>;
40
+ export declare function deleteCategory(category: any, transferId?: string): Promise<void>;
41
+ export declare function getPayee(id: any): Promise<any>;
42
+ export declare function insertPayee(payee: any): Promise<any>;
43
+ export declare function deletePayee(payee: any): Promise<void>;
44
+ export declare function deleteTransferPayee(payee: any): Promise<void>;
45
+ export declare function updatePayee(payee: any): Promise<void>;
46
+ export declare function mergePayees(target: string, ids: string[]): Promise<void>;
47
+ export declare function getPayees(): Promise<any>;
48
+ export declare function syncGetOrphanedPayees(): Promise<any>;
49
+ export declare function getOrphanedPayees(): Promise<any>;
50
+ export declare function getPayeeByName(name: any): Promise<any>;
51
+ export declare function getAccounts(): Promise<any>;
52
+ export declare function insertAccount(account: any): Promise<any>;
53
+ export declare function updateAccount(account: any): Promise<void>;
54
+ export declare function deleteAccount(account: any): Promise<void>;
55
+ export declare function moveAccount(id: any, targetId: any): Promise<void>;
56
+ export declare function getTransaction(id: any): Promise<any>;
57
+ export declare function getTransactions(accountId: any): Promise<any>;
58
+ export declare function insertTransaction(transaction: any): Promise<any>;
59
+ export declare function updateTransaction(transaction: any): Promise<void>;
60
+ export declare function deleteTransaction(transaction: any): Promise<void>;
@@ -0,0 +1,3 @@
1
+ export declare function loadMappings(): Promise<void>;
2
+ export declare function getMappings(): any;
3
+ export declare function getMapping(id: any): any;
@@ -0,0 +1,11 @@
1
+ export declare const SORT_INCREMENT = 16384;
2
+ export declare function shoveSortOrders<T extends {
3
+ id: string;
4
+ sort_order: number;
5
+ }>(items: T[], targetId?: string): {
6
+ updates: {
7
+ id: string;
8
+ sort_order: number;
9
+ }[];
10
+ sort_order: any;
11
+ };
@@ -0,0 +1,2 @@
1
+ export declare function incrFetch(runQuery: any, terms: any, compare: any, makeQuery: any, params?: any[]): Promise<any[]>;
2
+ export declare function whereIn(ids: string[], field: string): string;
@@ -0,0 +1,24 @@
1
+ /// <reference types="node" />
2
+ export declare function sha256String(str: any): Promise<string>;
3
+ export declare function randomBytes(n: any): Buffer;
4
+ export declare function encrypt(masterKey: any, value: any): {
5
+ value: Buffer;
6
+ meta: {
7
+ keyId: any;
8
+ algorithm: "aes-256-gcm";
9
+ iv: string;
10
+ authTag: string;
11
+ };
12
+ };
13
+ export declare function decrypt(masterKey: any, encrypted: any, meta: any): Buffer;
14
+ export declare function createKey({ secret, salt }: {
15
+ secret: any;
16
+ salt: any;
17
+ }): {
18
+ raw: Buffer;
19
+ base64: string;
20
+ };
21
+ export declare function importKey(str: any): {
22
+ raw: Buffer;
23
+ base64: any;
24
+ };
@@ -0,0 +1,24 @@
1
+ /// <reference types="node" />
2
+ export declare function sha256String(str: any): Promise<string>;
3
+ export declare function randomBytes(n: any): Buffer;
4
+ export declare function encrypt(masterKey: any, value: any): Promise<{
5
+ value: ArrayBuffer;
6
+ meta: {
7
+ keyId: any;
8
+ algorithm: string;
9
+ iv: string;
10
+ authTag: string;
11
+ };
12
+ }>;
13
+ export declare function decrypt(masterKey: any, encrypted: any, meta: any): Promise<Buffer>;
14
+ export declare function createKey({ secret, salt }: {
15
+ secret: any;
16
+ salt: any;
17
+ }): Promise<{
18
+ raw: CryptoKey;
19
+ base64: string;
20
+ }>;
21
+ export declare function importKey(str: any): Promise<{
22
+ raw: CryptoKey;
23
+ base64: any;
24
+ }>;
@@ -0,0 +1,41 @@
1
+ /// <reference types="node" />
2
+ declare class Key {
3
+ id: any;
4
+ value: any;
5
+ constructor({ id }: {
6
+ id: any;
7
+ });
8
+ createFromPassword({ password, salt }: {
9
+ password: any;
10
+ salt: any;
11
+ }): Promise<void>;
12
+ createFromBase64(str: any): Promise<void>;
13
+ getId(): any;
14
+ getValue(): any;
15
+ serialize(): {
16
+ id: any;
17
+ base64: any;
18
+ };
19
+ }
20
+ export declare function getKey(keyId: any): any;
21
+ export declare function hasKey(keyId: any): boolean;
22
+ export declare function encrypt(value: any, keyId: any): {
23
+ value: Buffer;
24
+ meta: {
25
+ keyId: any;
26
+ algorithm: "aes-256-gcm";
27
+ iv: string;
28
+ authTag: string;
29
+ };
30
+ };
31
+ export declare function decrypt(encrypted: any, meta: any): Buffer;
32
+ export declare function randomBytes(n: any): Buffer;
33
+ export declare function loadKey(key: any): Promise<void>;
34
+ export declare function unloadKey(key: any): void;
35
+ export declare function unloadAllKeys(): void;
36
+ export declare function createKey({ id, password, salt }: {
37
+ id: any;
38
+ password: any;
39
+ salt: any;
40
+ }): Promise<Key>;
41
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,73 @@
1
+ export declare class PostError extends Error {
2
+ meta?: {
3
+ meta: string;
4
+ };
5
+ reason: string;
6
+ type: 'PostError';
7
+ constructor(reason: string, meta?: {
8
+ meta: string;
9
+ });
10
+ }
11
+ export declare class HTTPError extends Error {
12
+ statusCode: number;
13
+ responseBody: string;
14
+ constructor(code: number, body: string);
15
+ }
16
+ export declare class SyncError extends Error {
17
+ meta?: {
18
+ isMissingKey: boolean;
19
+ } | {
20
+ error: {
21
+ message: string;
22
+ stack: string;
23
+ };
24
+ query: {
25
+ sql: string;
26
+ params: Array<string | number>;
27
+ };
28
+ };
29
+ reason: string;
30
+ constructor(reason: string, meta?: {
31
+ isMissingKey: boolean;
32
+ } | {
33
+ error: {
34
+ message: string;
35
+ stack: string;
36
+ };
37
+ query: {
38
+ sql: string;
39
+ params: Array<string | number>;
40
+ };
41
+ });
42
+ }
43
+ export declare class TransactionError extends Error {
44
+ }
45
+ export declare class RuleError extends Error {
46
+ type: string;
47
+ constructor(name: string, message: string);
48
+ }
49
+ export declare function APIError(msg: string, meta?: Record<string, any>): {
50
+ type: string;
51
+ message: string;
52
+ meta: Record<string, any>;
53
+ };
54
+ export declare function FileDownloadError(reason: string, meta?: {
55
+ fileId?: string;
56
+ isMissingKey?: boolean;
57
+ }): {
58
+ type: string;
59
+ reason: string;
60
+ meta: {
61
+ fileId?: string;
62
+ isMissingKey?: boolean;
63
+ };
64
+ };
65
+ export declare function FileUploadError(reason: string, meta?: {
66
+ isMissingKey: boolean;
67
+ }): {
68
+ type: string;
69
+ reason: string;
70
+ meta: {
71
+ isMissingKey: boolean;
72
+ };
73
+ };
@@ -0,0 +1,12 @@
1
+ import { FiltersHandlers } from './types/handlers';
2
+ export declare const app: {
3
+ events: any;
4
+ handlers: FiltersHandlers;
5
+ services: any;
6
+ unlistenServices: any;
7
+ method<Name extends "filter-create" | "filter-update" | "filter-delete">(name: Name, func: FiltersHandlers[Name]): void;
8
+ service(func: any): void;
9
+ combine(...apps: any[]): void;
10
+ startServices(): void;
11
+ stopServices(): void;
12
+ };
@@ -0,0 +1,7 @@
1
+ export interface FiltersHandlers {
2
+ 'filter-create': (filter: object) => Promise<string>;
3
+
4
+ 'filter-update': (filter: object) => Promise<void>;
5
+
6
+ 'filter-delete': (id: string) => Promise<void>;
7
+ }
@@ -0,0 +1,4 @@
1
+ /// <reference types="node" />
2
+ export declare function importActual(_filepath: string, buffer: Buffer): Promise<{
3
+ error: any;
4
+ }>;
@@ -0,0 +1,6 @@
1
+ /// <reference types="node" />
2
+ type ImportableBudgetType = 'ynab4' | 'ynab5' | 'actual';
3
+ export declare function handleBudgetImport(type: ImportableBudgetType, filepath: string, buffer: Buffer): Promise<{
4
+ error: any;
5
+ }>;
6
+ export {};
@@ -0,0 +1,167 @@
1
+ /* eslint-disable import/no-unused-modules */
2
+
3
+ export namespace YNAB4 {
4
+ export interface YFull {
5
+ masterCategories: MasterCategory[];
6
+ payees: Payee[];
7
+ monthlyBudgets: MonthlyBudget[];
8
+ fileMetaData: FileMetaData;
9
+ transactions: Transaction[];
10
+ scheduledTransactions: ScheduledTransaction[];
11
+ // accountMappings: [];
12
+ budgetMetaData: BudgetMetaData;
13
+ accounts: Account[];
14
+ }
15
+
16
+ export interface MasterCategory {
17
+ entityType: string;
18
+ expanded: boolean;
19
+ note?: string;
20
+ name: string;
21
+ type: string;
22
+ deleteable: boolean;
23
+ subCategories?: SubCategory[];
24
+ entityVersion: string;
25
+ entityId: string;
26
+ sortableIndex: number;
27
+
28
+ // speculative
29
+ isTombstone?: boolean;
30
+ }
31
+
32
+ export interface SubCategory {
33
+ entityType: string;
34
+ name: string;
35
+ note?: string;
36
+ type: string;
37
+ // cachedBalance: null;
38
+ masterCategoryId: string;
39
+ entityVersion: string;
40
+ entityId: string;
41
+ sortableIndex: number;
42
+
43
+ // speculative
44
+ isTombstone?: boolean;
45
+ }
46
+
47
+ export interface Payee {
48
+ entityType: string;
49
+ autoFillCategoryId?: string;
50
+ autoFillAmount: number;
51
+ name: string;
52
+ renameConditions?: RenameCondition[];
53
+ autoFillMemo?: string;
54
+ targetAccountId?: string;
55
+ // locations: null;
56
+ enabled: boolean;
57
+ entityVersion: string;
58
+ entityId: string;
59
+
60
+ // speculative
61
+ isTombstone?: boolean;
62
+ }
63
+
64
+ export interface RenameCondition {
65
+ entityType: string;
66
+ parentPayeeId: string;
67
+ operator: string;
68
+ operand: string;
69
+ entityVersion: string;
70
+ entityId: string;
71
+ }
72
+
73
+ export interface MonthlyBudget {
74
+ entityType: string;
75
+ monthlySubCategoryBudgets: MonthlySubCategoryBudget[];
76
+ month: string;
77
+ entityVersion: string;
78
+ entityId: string;
79
+ }
80
+
81
+ export interface MonthlySubCategoryBudget {
82
+ entityType: string;
83
+ categoryId: string;
84
+ budgeted: number;
85
+ // overspendingHandling: null;
86
+ entityVersion: string;
87
+ entityId: string;
88
+ parentMonthlyBudgetId: string;
89
+
90
+ // speculative
91
+ isTombstone?: boolean;
92
+ }
93
+
94
+ export interface FileMetaData {
95
+ entityType: string;
96
+ budgetDataVersion: string;
97
+ currentKnowledge: string;
98
+ }
99
+
100
+ export interface Transaction {
101
+ entityType: string;
102
+ entityId: string;
103
+ categoryId: string;
104
+ payeeId: string;
105
+ amount: number;
106
+ date: string;
107
+ accountId: string;
108
+ entityVersion: string;
109
+ cleared: string;
110
+ accepted: boolean;
111
+ isTombstone?: boolean;
112
+ memo?: string;
113
+ dateEnteredFromSchedule?: string;
114
+ // speculative:
115
+ subTransactions?: SubTransaction[];
116
+ transferTransactionId?: string;
117
+ targetAccountId?: string;
118
+ }
119
+
120
+ // speculative, not in the test data
121
+ export type SubTransaction = Exclude<Transaction, 'subTransactions'>;
122
+
123
+ export interface ScheduledTransaction {
124
+ entityType: string;
125
+ entityId: string;
126
+ categoryId: string;
127
+ payeeId: string;
128
+ amount: number;
129
+ date: string;
130
+ isTombstone?: boolean;
131
+ accountId: string;
132
+ entityVersion: string;
133
+ memo: string;
134
+ twiceAMonthStartDay: number;
135
+ cleared: string;
136
+ frequency: string;
137
+ accepted: boolean;
138
+ }
139
+
140
+ export interface BudgetMetaData {
141
+ entityType: string;
142
+ strictBudget: string;
143
+ currencyISOSymbol?: string;
144
+ entityVersion: string;
145
+ currencyLocale: string;
146
+ budgetType: string;
147
+ dateLocale: string;
148
+ entityId: string;
149
+ }
150
+
151
+ export interface Account {
152
+ entityType: string;
153
+ // lastReconciledDate: null;
154
+ lastEnteredCheckNumber: number;
155
+ lastReconciledBalance: number;
156
+ accountType: string;
157
+ hidden: boolean;
158
+ sortableIndex: number;
159
+ onBudget: boolean;
160
+ accountName: string;
161
+ entityVersion: string;
162
+ entityId: string;
163
+
164
+ // speculative
165
+ isTombstone?: boolean;
166
+ }
167
+ }
@@ -0,0 +1,5 @@
1
+ /// <reference types="node" />
2
+ import { YNAB4 } from './ynab4-types';
3
+ export declare function doImport(data: YNAB4.YFull): Promise<void>;
4
+ export declare function getBudgetName(filepath: any): string;
5
+ export declare function parseFile(buffer: Buffer): YNAB4.YFull;