@actual-app/api 6.7.0 → 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 (176) 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 +1649 -6538
  172. package/dist/methods.js +25 -1
  173. package/dist/methods.test.js +205 -5
  174. package/dist/migrations/1712784523000_unhide_input_group.sql +8 -0
  175. package/dist/package.json +7 -5
  176. package/package.json +7 -5
@@ -0,0 +1,79 @@
1
+ /* eslint-disable import/no-unused-modules */
2
+
3
+ export namespace YNAB5 {
4
+ export interface Budget {
5
+ name?: string;
6
+ budget_name?: string;
7
+ accounts: Account[];
8
+ payees: Payee[];
9
+ category_groups: CategoryGroup[];
10
+ categories: Category[];
11
+ transactions: Transaction[];
12
+ subtransactions: Subtransaction[];
13
+ months: Month[];
14
+ }
15
+
16
+ interface Account {
17
+ id: string;
18
+ name: string;
19
+ on_budget: boolean;
20
+ deleted: boolean;
21
+ closed: boolean;
22
+ }
23
+
24
+ interface Payee {
25
+ id: string;
26
+ name: string;
27
+ deleted: boolean;
28
+ transfer_acct?: string;
29
+ }
30
+
31
+ interface CategoryGroup {
32
+ id: string;
33
+ name: string;
34
+ deleted: boolean;
35
+ }
36
+
37
+ interface Category {
38
+ id: string;
39
+ category_group_id: string;
40
+ name: string;
41
+ deleted: boolean;
42
+ }
43
+
44
+ interface Transaction {
45
+ id: string;
46
+ account_id: string;
47
+ date: string;
48
+ payee_id: string;
49
+ import_id: string;
50
+ category_id: string;
51
+ transfer_account_id: string;
52
+ transfer_transaction_id: string;
53
+ memo: string;
54
+ cleared: string;
55
+ amount: number;
56
+ deleted: boolean;
57
+ }
58
+
59
+ interface Subtransaction {
60
+ id: string;
61
+ transaction_id: string;
62
+ category_id: string;
63
+ memo: string;
64
+ amount: number;
65
+ transfer_account_id: string;
66
+ payee_id: string;
67
+ }
68
+
69
+ interface Month {
70
+ month: string;
71
+ categories: MonthCategory[];
72
+ }
73
+
74
+ interface MonthCategory {
75
+ category_group_id: string;
76
+ id: string;
77
+ budgeted: number;
78
+ }
79
+ }
@@ -0,0 +1,5 @@
1
+ /// <reference types="node" />
2
+ import { YNAB5 } from './ynab5-types';
3
+ export declare function doImport(data: YNAB5.Budget): Promise<void>;
4
+ export declare function parseFile(buffer: Buffer): YNAB5.Budget;
5
+ export declare function getBudgetName(_filepath: string, data: YNAB5.Budget): string;
@@ -0,0 +1,12 @@
1
+ import { Handlers } from '../types/handlers';
2
+ export declare const app: {
3
+ events: any;
4
+ handlers: Handlers;
5
+ services: any;
6
+ unlistenServices: any;
7
+ method<Name extends "transaction-update" | "undo" | "redo" | "transactions-batch-update" | "transaction-add" | "transaction-delete" | "transactions-parse-file" | "transactions-export" | "transactions-export-query" | "get-categories" | "get-earliest-transaction" | "get-budget-bounds" | "rollover-budget-month" | "report-budget-month" | "budget-set-type" | "category-create" | "category-update" | "category-move" | "category-delete" | "category-group-create" | "category-group-update" | "category-group-move" | "category-group-delete" | "must-category-transfer" | "payee-create" | "payees-get" | "payees-get-rule-counts" | "payees-merge" | "payees-batch-change" | "payees-check-orphaned" | "payees-get-rules" | "make-filters-from-conditions" | "getCell" | "getCells" | "getCellNamesInSheet" | "debugCell" | "create-query" | "query" | "account-update" | "accounts-get" | "account-properties" | "gocardless-accounts-link" | "simplefin-accounts-link" | "account-create" | "account-close" | "account-reopen" | "account-move" | "secret-set" | "secret-check" | "gocardless-poll-web-token" | "gocardless-status" | "simplefin-status" | "simplefin-accounts" | "gocardless-get-banks" | "gocardless-poll-web-token-stop" | "gocardless-create-web-token" | "accounts-bank-sync" | "transactions-import" | "account-unlink" | "save-global-prefs" | "load-global-prefs" | "save-prefs" | "load-prefs" | "sync-reset" | "sync-repair" | "key-make" | "key-test" | "get-did-bootstrap" | "subscribe-needs-bootstrap" | "subscribe-bootstrap" | "subscribe-get-user" | "subscribe-change-password" | "subscribe-sign-in" | "subscribe-sign-out" | "get-server-version" | "get-server-url" | "set-server-url" | "sync" | "get-budgets" | "get-remote-files" | "reset-budget-cache" | "upload-budget" | "download-budget" | "sync-budget" | "load-budget" | "create-demo-budget" | "close-budget" | "delete-budget" | "create-budget" | "import-budget" | "export-budget" | "upload-file-web" | "backups-get" | "backup-load" | "backup-make" | "get-last-opened-backup" | "app-focused" | "api/batch-budget-start" | "api/batch-budget-end" | "api/load-budget" | "api/download-budget" | "api/start-import" | "api/finish-import" | "api/abort-import" | "api/query" | "api/budget-months" | "api/budget-month" | "api/budget-set-amount" | "api/budget-set-carryover" | "api/transactions-export" | "api/transactions-import" | "api/transactions-add" | "api/transactions-get" | "api/transaction-update" | "api/transaction-delete" | "api/sync" | "api/bank-sync" | "api/accounts-get" | "api/account-create" | "api/account-update" | "api/account-close" | "api/account-reopen" | "api/account-delete" | "api/categories-get" | "api/category-groups-get" | "api/category-group-create" | "api/category-group-update" | "api/category-group-delete" | "api/category-create" | "api/category-update" | "api/category-delete" | "api/payees-get" | "api/payee-create" | "api/payee-update" | "api/payee-delete" | "api/rules-get" | "api/payee-rules-get" | "api/rule-create" | "api/rule-update" | "api/rule-delete" | "budget/budget-amount" | "budget/copy-previous-month" | "budget/set-zero" | "budget/set-3month-avg" | "budget/check-templates" | "budget/apply-goal-template" | "budget/overwrite-goal-template" | "budget/cleanup-goal-template" | "budget/hold-for-next-month" | "budget/reset-hold" | "budget/cover-overspending" | "budget/transfer-available" | "budget/transfer-category" | "budget/set-carryover" | "budget/apply-single-template" | "budget/set-n-month-avg" | "budget/copy-single-month" | "filter-create" | "filter-update" | "filter-delete" | "notes-save" | "report/create" | "report/update" | "report/delete" | "rule-validate" | "rule-add" | "rule-update" | "rule-delete" | "rule-delete-all" | "rule-apply-actions" | "rule-add-payee-rename" | "rules-get" | "rule-get" | "rules-run" | "schedule/create" | "schedule/update" | "schedule/delete" | "schedule/skip-next-date" | "schedule/post-transaction" | "schedule/force-run-service" | "schedule/discover" | "schedule/get-upcoming-dates" | "tools/fix-split-transactions">(name: Name, func: Handlers[Name]): void;
8
+ service(func: any): void;
9
+ combine(...apps: any[]): void;
10
+ startServices(): void;
11
+ stopServices(): void;
12
+ };
@@ -0,0 +1,28 @@
1
+ import './polyfills';
2
+ import * as fs from '../platform/server/fs';
3
+ import { q } from '../shared/query';
4
+ import { Handlers } from '../types/handlers';
5
+ import * as db from './db';
6
+ export declare let handlers: Handlers;
7
+ export declare function initApp(isDev: any, socketName: any): Promise<void>;
8
+ export type InitConfig = {
9
+ dataDir?: string;
10
+ serverURL?: string;
11
+ password?: string;
12
+ };
13
+ export declare function init(config: InitConfig): Promise<{
14
+ getDataDir: typeof fs.getDataDir;
15
+ sendMessage: (msg: any, args: any) => void;
16
+ send: <K extends keyof Handlers, T extends Handlers[K]>(name: K, args?: Parameters<T>[0]) => Promise<Awaited<ReturnType<T>>>;
17
+ on: (name: any, func: any) => any;
18
+ q: typeof q;
19
+ db: typeof db;
20
+ }>;
21
+ export declare const lib: {
22
+ getDataDir: typeof fs.getDataDir;
23
+ sendMessage: (msg: any, args: any) => void;
24
+ send: <K extends keyof Handlers, T extends Handlers[K]>(name: K, args?: Parameters<T>[0]) => Promise<Awaited<ReturnType<T>>>;
25
+ on: (name: any, func: any) => any;
26
+ q: typeof q;
27
+ db: typeof db;
28
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,9 @@
1
+ import { Database } from 'better-sqlite3';
2
+ export declare function withMigrationsDir(dir: string, func: () => Promise<void>): Promise<void>;
3
+ export declare function getMigrationsDir(): string;
4
+ export declare function getUpMigration(id: any, names: any): any;
5
+ export declare function getAppliedMigrations(db: Database): Promise<number[]>;
6
+ export declare function getMigrationList(migrationsDir: string): Promise<string[]>;
7
+ export declare function getPending(appliedIds: number[], all: string[]): string[];
8
+ export declare function applyMigration(db: Database, name: string, migrationsDir: string): Promise<void>;
9
+ export declare function migrate(db: Database): Promise<string[]>;
@@ -0,0 +1,38 @@
1
+ import { AccountEntity, CategoryEntity, CategoryGroupEntity, PayeeEntity } from '../types/models';
2
+ export declare function requiredFields<T extends object, K extends keyof T>(name: string, row: T, fields: K[], update?: boolean): void;
3
+ export declare function toDateRepr(str: string): number;
4
+ export declare function fromDateRepr(number: number): string;
5
+ export declare const accountModel: {
6
+ validate(account: AccountEntity, { update }?: {
7
+ update?: boolean;
8
+ }): AccountEntity;
9
+ };
10
+ export declare const categoryModel: {
11
+ validate(category: CategoryEntity, { update }?: {
12
+ update?: boolean;
13
+ }): {
14
+ hidden: number;
15
+ id?: string;
16
+ name: string;
17
+ is_income?: boolean;
18
+ cat_group?: string;
19
+ tombstone?: boolean;
20
+ };
21
+ };
22
+ export declare const categoryGroupModel: {
23
+ validate(categoryGroup: CategoryGroupEntity, { update }?: {
24
+ update?: boolean;
25
+ }): {
26
+ hidden: number;
27
+ id?: string;
28
+ name: string;
29
+ is_income?: boolean;
30
+ tombstone?: boolean;
31
+ categories?: CategoryEntity[];
32
+ };
33
+ };
34
+ export declare const payeeModel: {
35
+ validate(payee: PayeeEntity, { update }?: {
36
+ update?: boolean;
37
+ }): PayeeEntity;
38
+ };
@@ -0,0 +1,17 @@
1
+ import { type HandlerFunctions, type Handlers } from '../types/handlers';
2
+ export declare function mutator<T extends HandlerFunctions>(handler: T): T;
3
+ export declare function isMutating(handler: any): boolean;
4
+ export declare function runHandler<T extends Handlers[keyof Handlers]>(handler: T, args?: Parameters<T>[0], { undoTag, name }?: {
5
+ undoTag?: any;
6
+ name?: any;
7
+ }): Promise<ReturnType<T>>;
8
+ export declare function enableGlobalMutations(): void;
9
+ export declare function disableGlobalMutations(): void;
10
+ declare function _runMutator<T extends () => Promise<unknown>>(func: T, initialContext?: {}): Promise<Awaited<ReturnType<T>>>;
11
+ export declare const runMutator: typeof _runMutator;
12
+ export declare function withMutatorContext<T>(context: {
13
+ undoListening: boolean;
14
+ undoTag?: unknown;
15
+ }, func: () => Promise<T>): Promise<T>;
16
+ export declare function getMutatorContext(): any;
17
+ export {};
@@ -0,0 +1,12 @@
1
+ import { NotesHandlers } from './types/handlers';
2
+ export declare const app: {
3
+ events: any;
4
+ handlers: NotesHandlers;
5
+ services: any;
6
+ unlistenServices: any;
7
+ method<Name extends "notes-save">(name: Name, func: NotesHandlers[Name]): void;
8
+ service(func: any): void;
9
+ combine(...apps: any[]): void;
10
+ startServices(): void;
11
+ stopServices(): void;
12
+ };
@@ -0,0 +1,3 @@
1
+ export interface NotesHandlers {
2
+ 'notes-save': (arg: { id; note }) => Promise<unknown>;
3
+ }
@@ -0,0 +1,3 @@
1
+ export declare const isMobile = false;
2
+ export declare const isWeb = false;
3
+ export declare const isDesktop = true;
@@ -0,0 +1,3 @@
1
+ export declare const isMobile = false;
2
+ export declare const isWeb = true;
3
+ export declare const isDesktop = false;
File without changes
@@ -0,0 +1,3 @@
1
+ export declare function post(url: any, data: any, headers?: {}): Promise<any>;
2
+ export declare function postBinary(url: any, data: any, headers: any): Promise<any>;
3
+ export declare function get(url: any, opts?: any): Promise<string>;
@@ -0,0 +1,10 @@
1
+ import type { LocalPrefs } from '../types/prefs';
2
+ export declare const BUDGET_TYPES: readonly ["report", "rollover"];
3
+ export type BudgetType = (typeof BUDGET_TYPES)[number];
4
+ export declare function loadPrefs(id?: string): Promise<LocalPrefs>;
5
+ export declare function savePrefs(prefsToSet: LocalPrefs, { avoidSync }?: {
6
+ avoidSync?: boolean;
7
+ }): Promise<void>;
8
+ export declare function unloadPrefs(): void;
9
+ export declare function getPrefs(): LocalPrefs;
10
+ export declare function getDefaultPrefs(id: string, budgetName: string): LocalPrefs;
@@ -0,0 +1,12 @@
1
+ import { ReportsHandlers } from './types/handlers';
2
+ export declare const app: {
3
+ events: any;
4
+ handlers: ReportsHandlers;
5
+ services: any;
6
+ unlistenServices: any;
7
+ method<Name extends "report/create" | "report/update" | "report/delete">(name: Name, func: ReportsHandlers[Name]): void;
8
+ service(func: any): void;
9
+ combine(...apps: any[]): void;
10
+ startServices(): void;
11
+ stopServices(): void;
12
+ };
@@ -0,0 +1,6 @@
1
+ import { type CustomReportEntity } from '../../../types/models';
2
+ export interface ReportsHandlers {
3
+ 'report/create': (report: CustomReportEntity) => Promise<string>;
4
+ 'report/update': (report: CustomReportEntity) => Promise<void>;
5
+ 'report/delete': (id: string) => Promise<void>;
6
+ }
@@ -0,0 +1,12 @@
1
+ import { RulesHandlers } from './types/handlers';
2
+ export declare const app: {
3
+ events: any;
4
+ handlers: RulesHandlers;
5
+ services: any;
6
+ unlistenServices: any;
7
+ method<Name extends "rule-validate" | "rule-add" | "rule-update" | "rule-delete" | "rule-delete-all" | "rule-apply-actions" | "rule-add-payee-rename" | "rules-get" | "rule-get" | "rules-run">(name: Name, func: RulesHandlers[Name]): void;
8
+ service(func: any): void;
9
+ combine(...apps: any[]): void;
10
+ startServices(): void;
11
+ stopServices(): void;
12
+ };
@@ -0,0 +1,42 @@
1
+ import { type RuleEntity, type TransactionEntity, type RuleActionEntity } from '../../../types/models';
2
+ import { type Action } from '../../accounts/rules';
3
+ type ValidationError = {
4
+ conditionErrors: string[];
5
+ actionErrors: string[];
6
+ };
7
+ export interface RulesHandlers {
8
+ 'rule-validate': (rule: Partial<RuleEntity>) => Promise<{
9
+ error: ValidationError | null;
10
+ }>;
11
+ 'rule-add': (rule: Omit<RuleEntity, 'id'>) => Promise<{
12
+ error: ValidationError;
13
+ } | {
14
+ id: string;
15
+ }>;
16
+ 'rule-update': (rule: Partial<RuleEntity>) => Promise<{
17
+ error: ValidationError;
18
+ } | object>;
19
+ 'rule-delete': (rule: Required<RuleEntity>) => Promise<false | void>;
20
+ 'rule-delete-all': (ids: string[]) => Promise<{
21
+ someDeletionsFailed: boolean;
22
+ }>;
23
+ 'rule-apply-actions': (arg: {
24
+ transactions: TransactionEntity[];
25
+ actions: Array<Action | RuleActionEntity>;
26
+ }) => Promise<null | {
27
+ added: TransactionEntity[];
28
+ updated: unknown[];
29
+ }>;
30
+ 'rule-add-payee-rename': (arg: {
31
+ fromNames: string[];
32
+ to: string;
33
+ }) => Promise<string>;
34
+ 'rules-get': () => Promise<RuleEntity[]>;
35
+ 'rule-get': (arg: {
36
+ id: string;
37
+ }) => Promise<unknown>;
38
+ 'rules-run': (arg: {
39
+ transaction: any;
40
+ }) => Promise<unknown>;
41
+ }
42
+ export {};
@@ -0,0 +1,35 @@
1
+ import { Rule } from '../accounts/rules';
2
+ import { SchedulesHandlers } from './types/handlers';
3
+ export declare function updateConditions(conditions: any, newConditions: any): any;
4
+ export declare function getNextDate(dateCond: any, start?: Date, noSkipWeekend?: boolean): any;
5
+ export declare function getRuleForSchedule(id: string | null): Promise<Rule>;
6
+ export declare function setNextDate({ id, start, conditions, reset, }: {
7
+ id: string;
8
+ start?: any;
9
+ conditions?: any;
10
+ reset?: boolean;
11
+ }): Promise<void>;
12
+ export declare function createSchedule({ schedule, conditions, }?: {
13
+ schedule?: any;
14
+ conditions?: any[];
15
+ }): Promise<any>;
16
+ export declare function updateSchedule({ schedule, conditions, resetNextDate, }: {
17
+ schedule: any;
18
+ conditions?: any;
19
+ resetNextDate?: boolean;
20
+ }): Promise<void>;
21
+ export declare function deleteSchedule({ id }: {
22
+ id: any;
23
+ }): Promise<void>;
24
+ export declare const app: {
25
+ events: any;
26
+ handlers: SchedulesHandlers;
27
+ services: any;
28
+ unlistenServices: any;
29
+ method<Name extends "schedule/create" | "schedule/update" | "schedule/delete" | "schedule/skip-next-date" | "schedule/post-transaction" | "schedule/force-run-service" | "schedule/discover" | "schedule/get-upcoming-dates">(name: Name, func: SchedulesHandlers[Name]): void;
30
+ service(func: any): void;
31
+ combine(...apps: any[]): void;
32
+ startServices(): void;
33
+ stopServices(): void;
34
+ };
35
+ export declare function getDateWithSkippedWeekend(date: Date, solveMode: 'after' | 'before'): Date;
@@ -0,0 +1 @@
1
+ export declare function findSchedules(): Promise<import("../../types/models").DiscoverScheduleEntity[]>;
@@ -0,0 +1,31 @@
1
+ import { DiscoverScheduleEntity } from '../../../types/models';
2
+ export interface SchedulesHandlers {
3
+ 'schedule/create': (arg: {
4
+ schedule: {
5
+ id?: string;
6
+ name?: string;
7
+ posts_transaction?: boolean;
8
+ };
9
+ conditions: unknown[];
10
+ }) => Promise<string>;
11
+ 'schedule/update': (schedule: {
12
+ schedule: any;
13
+ conditions?: any;
14
+ resetNextDate?: boolean;
15
+ }) => Promise<void>;
16
+ 'schedule/delete': (arg: {
17
+ id: string;
18
+ }) => Promise<void>;
19
+ 'schedule/skip-next-date': (arg: {
20
+ id: string;
21
+ }) => Promise<void>;
22
+ 'schedule/post-transaction': (arg: {
23
+ id: string;
24
+ }) => Promise<void>;
25
+ 'schedule/force-run-service': () => Promise<unknown>;
26
+ 'schedule/discover': () => Promise<DiscoverScheduleEntity[]>;
27
+ 'schedule/get-upcoming-dates': (arg: {
28
+ config: any;
29
+ count: number;
30
+ }) => Promise<string[]>;
31
+ }
@@ -0,0 +1,10 @@
1
+ type ServerConfig = {
2
+ BASE_SERVER: string;
3
+ SYNC_SERVER: string;
4
+ SIGNUP_SERVER: string;
5
+ GOCARDLESS_SERVER: string;
6
+ SIMPLEFIN_SERVER: string;
7
+ };
8
+ export declare function setServer(url: string): void;
9
+ export declare function getServer(url?: string): ServerConfig | null;
10
+ export {};
@@ -0,0 +1,11 @@
1
+ import { Spreadsheet } from './spreadsheet/spreadsheet';
2
+ export declare function get(): Spreadsheet;
3
+ export declare function loadSpreadsheet(db: any, onSheetChange?: any): Promise<Spreadsheet>;
4
+ export declare function unloadSpreadsheet(): void;
5
+ export declare function reloadSpreadsheet(db: any): Promise<Spreadsheet>;
6
+ export declare function loadUserBudgets(db: any): Promise<void>;
7
+ export declare function getCell(sheet: string, name: string): import("./spreadsheet/spreadsheet").Node;
8
+ export declare function getCellValue(sheet: string, name: string): string | number | boolean;
9
+ export declare function startTransaction(): void;
10
+ export declare function endTransaction(): void;
11
+ export declare function waitOnSpreadsheet(): Promise<void>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export declare function number(v: unknown): number;
@@ -0,0 +1,15 @@
1
+ export declare function Graph(): {
2
+ addNode: (node: any) => any;
3
+ removeNode: (node: any) => any;
4
+ adjacent: (node: any) => any;
5
+ adjacentIncoming: (node: any) => any;
6
+ addEdge: (node1: any, node2: any) => any;
7
+ removeEdge: (node1: any, node2: any) => any;
8
+ removeIncomingEdges: (node: any) => void;
9
+ topologicalSort: (sourceNodes: any) => any[];
10
+ generateDOT: () => string;
11
+ getEdges: () => {
12
+ edges: Map<any, any>;
13
+ incomingEdges: Map<any, any>;
14
+ };
15
+ };
@@ -0,0 +1,79 @@
1
+ export type Node = {
2
+ name: string;
3
+ expr: string | number | boolean;
4
+ value: string | number | boolean;
5
+ sheet: unknown;
6
+ query?: string;
7
+ sql?: {
8
+ sqlPieces: unknown;
9
+ state: {
10
+ dependencies: unknown[];
11
+ };
12
+ };
13
+ dynamic?: boolean;
14
+ _run?: unknown;
15
+ _dependencies?: string[];
16
+ };
17
+ export declare class Spreadsheet {
18
+ _meta: any;
19
+ cacheBarrier: any;
20
+ computeQueue: any;
21
+ dirtyCells: any;
22
+ events: any;
23
+ graph: any;
24
+ nodes: Map<string, Node>;
25
+ running: any;
26
+ saveCache: any;
27
+ setCacheStatus: any;
28
+ transactionDepth: any;
29
+ constructor(saveCache?: unknown, setCacheStatus?: unknown);
30
+ meta(): any;
31
+ setMeta(meta: any): void;
32
+ _getNode(name: string): Node;
33
+ getNode(name: any): Node;
34
+ hasCell(name: any): boolean;
35
+ add(name: any, expr: any): void;
36
+ getNodes(): Map<string, Node>;
37
+ serialize(): {
38
+ graph: any;
39
+ nodes: [string, Node][];
40
+ };
41
+ transaction(func: any): any[];
42
+ startTransaction(): void;
43
+ endTransaction(): any[];
44
+ queueComputation(cellNames: any): void;
45
+ runComputations(idx?: number): void;
46
+ markCacheSafe(): void;
47
+ markCacheDirty(): void;
48
+ startCacheBarrier(): void;
49
+ endCacheBarrier(): void;
50
+ addEventListener(name: any, func: any): () => any;
51
+ onFinish(func: any): () => any;
52
+ unload(): void;
53
+ getValue(name: any): string | number | boolean;
54
+ getExpr(name: any): string | number | boolean;
55
+ getCellValue(sheet: any, name: any): string | number | boolean;
56
+ getCellExpr(sheet: any, name: any): string | number | boolean;
57
+ getCellValueLoose(sheetName: any, cellName: any): string | number | boolean;
58
+ bootup(onReady: any): void;
59
+ load(name: string, value: string | number | boolean): void;
60
+ create(name: string, value: string | number | boolean): any[];
61
+ set(name: string, value: string | number | boolean): void;
62
+ recompute(name: string): void;
63
+ recomputeAll(): void;
64
+ createQuery(sheetName: string, cellName: string, query: string): void;
65
+ createStatic(sheetName: string, cellName: string, initialValue: number | boolean): void;
66
+ createDynamic(sheetName: string, cellName: string, { dependencies, run, initialValue, refresh, }: {
67
+ dependencies?: string[];
68
+ run?: unknown;
69
+ initialValue: number | boolean;
70
+ refresh?: boolean;
71
+ }): void;
72
+ clearSheet(sheetName: string): void;
73
+ voidCell(sheetName: string, name: string, voidValue?: any): void;
74
+ deleteCell(sheetName: string, name: string): void;
75
+ addDependencies(sheetName: string, cellName: string, deps: string[]): void;
76
+ removeDependencies(sheetName: string, cellName: string, deps: string[]): void;
77
+ _markDirty(name: any): void;
78
+ triggerDatabaseChanges(oldValues: any, newValues: any): void;
79
+ }
@@ -0,0 +1,5 @@
1
+ export declare function unresolveName(name: any): {
2
+ sheet: any;
3
+ name: any;
4
+ };
5
+ export declare function resolveName(sheet: string, name: string): string;
@@ -0,0 +1,9 @@
1
+ import { Timestamp } from '@actual-app/crdt';
2
+ import { Message } from './index';
3
+ export declare function encode(groupId: string, fileId: string, since: Timestamp | string, messages: Message[]): Promise<Uint8Array>;
4
+ export declare function decode(data: Uint8Array): Promise<{
5
+ messages: Message[];
6
+ merkle: {
7
+ hash: number;
8
+ };
9
+ }>;
@@ -0,0 +1,47 @@
1
+ import { Timestamp } from '@actual-app/crdt';
2
+ export { makeTestMessage } from './make-test-message';
3
+ export { resetSync } from './reset';
4
+ export { repairSync } from './repair';
5
+ type SyncingMode = 'enabled' | 'offline' | 'disabled' | 'import';
6
+ export declare function setSyncingMode(mode: SyncingMode): string;
7
+ export declare function checkSyncingMode(mode: SyncingMode): boolean;
8
+ export declare function serializeValue(value: string | number | null): string;
9
+ export declare function deserializeValue(value: string): string | number | null;
10
+ type DataMap = Map<string, unknown>;
11
+ type SyncListener = (oldData: DataMap, newData: DataMap) => unknown;
12
+ export declare function addSyncListener(func: SyncListener): () => void;
13
+ export type Message = {
14
+ column: string;
15
+ dataset: string;
16
+ old?: unknown;
17
+ row: string;
18
+ timestamp: Timestamp;
19
+ value: string | number | null;
20
+ };
21
+ export declare const applyMessages: (messages: Message[]) => Promise<Message[]>;
22
+ export declare function receiveMessages(messages: Message[]): Promise<Message[]>;
23
+ export declare function batchMessages(func: () => Promise<void>): Promise<void>;
24
+ export declare function sendMessages(messages: Message[]): Promise<void>;
25
+ export declare function getMessagesSince(since: string): Message[];
26
+ export declare function clearFullSyncTimeout(): void;
27
+ export declare function scheduleFullSync(): Promise<{
28
+ messages: Message[];
29
+ } | {
30
+ error: unknown;
31
+ }>;
32
+ export declare function initialFullSync(): Promise<{
33
+ error?: {
34
+ message: string;
35
+ reason: string;
36
+ meta: unknown;
37
+ };
38
+ }>;
39
+ export declare const fullSync: () => Promise<{
40
+ messages: Message[];
41
+ } | {
42
+ error: {
43
+ message: string;
44
+ reason: string;
45
+ meta: unknown;
46
+ };
47
+ }>;
@@ -0,0 +1,10 @@
1
+ /// <reference types="node" />
2
+ export declare function makeTestMessage(keyId: any): Promise<{
3
+ value: Buffer;
4
+ meta: {
5
+ keyId: any;
6
+ algorithm: "aes-256-gcm";
7
+ iv: string;
8
+ authTag: string;
9
+ };
10
+ }>;
@@ -0,0 +1,2 @@
1
+ export declare function listen(): void;
2
+ export declare function unlisten(): void;
@@ -0,0 +1,6 @@
1
+ import { merkle } from '@actual-app/crdt';
2
+ export declare function rebuildMerkleHash(): {
3
+ numMessages: number;
4
+ trie: merkle.TrieNode;
5
+ };
6
+ export declare function repairSync(): Promise<void>;
@@ -0,0 +1,6 @@
1
+ export declare function resetSync(keyState?: any): Promise<{
2
+ error?: {
3
+ reason: string;
4
+ meta?: unknown;
5
+ };
6
+ }>;
@@ -0,0 +1,3 @@
1
+ export declare function isError(value: unknown): value is {
2
+ error: unknown;
3
+ };
@@ -0,0 +1,12 @@
1
+ import { ToolsHandlers } from './types/handlers';
2
+ export declare const app: {
3
+ events: any;
4
+ handlers: ToolsHandlers;
5
+ services: any;
6
+ unlistenServices: any;
7
+ method<Name extends "tools/fix-split-transactions">(name: Name, func: ToolsHandlers[Name]): void;
8
+ service(func: any): void;
9
+ combine(...apps: any[]): void;
10
+ startServices(): void;
11
+ stopServices(): void;
12
+ };