rustfava 0.1.0__tar.gz

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 (606) hide show
  1. rustfava-0.1.0/.dev-bin/rustfava +2 -0
  2. rustfava-0.1.0/.dockerignore +47 -0
  3. rustfava-0.1.0/AUTHORS +11 -0
  4. rustfava-0.1.0/CONTRIBUTING.md +21 -0
  5. rustfava-0.1.0/Dockerfile +57 -0
  6. rustfava-0.1.0/LICENSE +21 -0
  7. rustfava-0.1.0/MANIFEST.in +13 -0
  8. rustfava-0.1.0/PKG-INFO +102 -0
  9. rustfava-0.1.0/README.md +51 -0
  10. rustfava-0.1.0/RUSTLEDGER_WASI_SPEC.md +451 -0
  11. rustfava-0.1.0/SECURITY.md +55 -0
  12. rustfava-0.1.0/_build_backend.py +123 -0
  13. rustfava-0.1.0/biome.json +56 -0
  14. rustfava-0.1.0/contrib/docker/Dockerfile +32 -0
  15. rustfava-0.1.0/contrib/docker/README.md +249 -0
  16. rustfava-0.1.0/contrib/examples/budgets-example.beancount +6604 -0
  17. rustfava-0.1.0/contrib/examples/example.beancount +6519 -0
  18. rustfava-0.1.0/contrib/examples/huge-example.beancount +18576 -0
  19. rustfava-0.1.0/contrib/icon.svg +7 -0
  20. rustfava-0.1.0/contrib/pyinstaller_spec.spec +54 -0
  21. rustfava-0.1.0/contrib/scripts.py +160 -0
  22. rustfava-0.1.0/desktop/.dev-bin/rustfava +2 -0
  23. rustfava-0.1.0/desktop/README.md +98 -0
  24. rustfava-0.1.0/desktop/build-sidecar.sh +69 -0
  25. rustfava-0.1.0/desktop/bun.lock +48 -0
  26. rustfava-0.1.0/desktop/index.html +87 -0
  27. rustfava-0.1.0/desktop/package.json +33 -0
  28. rustfava-0.1.0/desktop/scripts/ensure-rustledger.ts +262 -0
  29. rustfava-0.1.0/desktop/src/index.html +1225 -0
  30. rustfava-0.1.0/desktop/src/logo.svg +4 -0
  31. rustfava-0.1.0/desktop/src/main.ts +783 -0
  32. rustfava-0.1.0/desktop/src/styles.css +725 -0
  33. rustfava-0.1.0/desktop/src-tauri/Cargo.lock +4948 -0
  34. rustfava-0.1.0/desktop/src-tauri/Cargo.toml +26 -0
  35. rustfava-0.1.0/desktop/src-tauri/build.rs +3 -0
  36. rustfava-0.1.0/desktop/src-tauri/capabilities/default.json +22 -0
  37. rustfava-0.1.0/desktop/src-tauri/gen/schemas/acl-manifests.json +1 -0
  38. rustfava-0.1.0/desktop/src-tauri/gen/schemas/capabilities.json +1 -0
  39. rustfava-0.1.0/desktop/src-tauri/gen/schemas/desktop-schema.json +2720 -0
  40. rustfava-0.1.0/desktop/src-tauri/gen/schemas/linux-schema.json +2720 -0
  41. rustfava-0.1.0/desktop/src-tauri/icons/128x128.png +0 -0
  42. rustfava-0.1.0/desktop/src-tauri/icons/128x128@2x.png +0 -0
  43. rustfava-0.1.0/desktop/src-tauri/icons/32x32.png +0 -0
  44. rustfava-0.1.0/desktop/src-tauri/icons/icon.icns +38 -0
  45. rustfava-0.1.0/desktop/src-tauri/icons/icon.ico +0 -0
  46. rustfava-0.1.0/desktop/src-tauri/icons/icon.png +0 -0
  47. rustfava-0.1.0/desktop/src-tauri/src/main.rs +373 -0
  48. rustfava-0.1.0/desktop/src-tauri/tauri.conf.json +64 -0
  49. rustfava-0.1.0/desktop/vite.config.ts +14 -0
  50. rustfava-0.1.0/docs/api.md +18 -0
  51. rustfava-0.1.0/docs/changelog.md +470 -0
  52. rustfava-0.1.0/docs/deployment.md +35 -0
  53. rustfava-0.1.0/docs/development.md +37 -0
  54. rustfava-0.1.0/docs/index.md +24 -0
  55. rustfava-0.1.0/docs/logo.svg +4 -0
  56. rustfava-0.1.0/docs/usage.md +53 -0
  57. rustfava-0.1.0/flake.lock +82 -0
  58. rustfava-0.1.0/flake.nix +133 -0
  59. rustfava-0.1.0/frontend/.npmrc +1 -0
  60. rustfava-0.1.0/frontend/build.ts +115 -0
  61. rustfava-0.1.0/frontend/bun.lock +845 -0
  62. rustfava-0.1.0/frontend/css/base.css +465 -0
  63. rustfava-0.1.0/frontend/css/charts.css +38 -0
  64. rustfava-0.1.0/frontend/css/components.css +62 -0
  65. rustfava-0.1.0/frontend/css/editor.css +43 -0
  66. rustfava-0.1.0/frontend/css/fonts.css +9 -0
  67. rustfava-0.1.0/frontend/css/grid.css +38 -0
  68. rustfava-0.1.0/frontend/css/help.css +51 -0
  69. rustfava-0.1.0/frontend/css/journal-table.css +292 -0
  70. rustfava-0.1.0/frontend/css/layout.css +91 -0
  71. rustfava-0.1.0/frontend/css/notifications.css +27 -0
  72. rustfava-0.1.0/frontend/css/style.css +193 -0
  73. rustfava-0.1.0/frontend/css/tree-table.css +201 -0
  74. rustfava-0.1.0/frontend/deno.json +16 -0
  75. rustfava-0.1.0/frontend/eslint.config.js +88 -0
  76. rustfava-0.1.0/frontend/package.json +79 -0
  77. rustfava-0.1.0/frontend/prettier.config.js +4 -0
  78. rustfava-0.1.0/frontend/setup.js +19 -0
  79. rustfava-0.1.0/frontend/src/AutocompleteInput.svelte +269 -0
  80. rustfava-0.1.0/frontend/src/ambient.d.ts +5 -0
  81. rustfava-0.1.0/frontend/src/api/index.ts +404 -0
  82. rustfava-0.1.0/frontend/src/api/validators.ts +185 -0
  83. rustfava-0.1.0/frontend/src/app.ts +138 -0
  84. rustfava-0.1.0/frontend/src/charts/Axis.svelte +69 -0
  85. rustfava-0.1.0/frontend/src/charts/BarChart.svelte +210 -0
  86. rustfava-0.1.0/frontend/src/charts/Chart.svelte +100 -0
  87. rustfava-0.1.0/frontend/src/charts/ChartLegend.svelte +69 -0
  88. rustfava-0.1.0/frontend/src/charts/ChartSwitcher.svelte +94 -0
  89. rustfava-0.1.0/frontend/src/charts/ConversionAndInterval.svelte +55 -0
  90. rustfava-0.1.0/frontend/src/charts/HierarchyContainer.svelte +73 -0
  91. rustfava-0.1.0/frontend/src/charts/Icicle.svelte +99 -0
  92. rustfava-0.1.0/frontend/src/charts/LineChart.svelte +146 -0
  93. rustfava-0.1.0/frontend/src/charts/ModeSwitch.svelte +35 -0
  94. rustfava-0.1.0/frontend/src/charts/ScatterPlot.svelte +95 -0
  95. rustfava-0.1.0/frontend/src/charts/SelectCombobox.svelte +228 -0
  96. rustfava-0.1.0/frontend/src/charts/Sunburst.svelte +117 -0
  97. rustfava-0.1.0/frontend/src/charts/Treemap.svelte +85 -0
  98. rustfava-0.1.0/frontend/src/charts/bar.ts +210 -0
  99. rustfava-0.1.0/frontend/src/charts/context.ts +34 -0
  100. rustfava-0.1.0/frontend/src/charts/helpers.ts +111 -0
  101. rustfava-0.1.0/frontend/src/charts/hierarchy.ts +158 -0
  102. rustfava-0.1.0/frontend/src/charts/index.ts +35 -0
  103. rustfava-0.1.0/frontend/src/charts/line.ts +117 -0
  104. rustfava-0.1.0/frontend/src/charts/query-charts.ts +42 -0
  105. rustfava-0.1.0/frontend/src/charts/scatterplot.ts +37 -0
  106. rustfava-0.1.0/frontend/src/charts/tooltip.ts +121 -0
  107. rustfava-0.1.0/frontend/src/clipboard.ts +15 -0
  108. rustfava-0.1.0/frontend/src/codemirror/base-extensions.ts +56 -0
  109. rustfava-0.1.0/frontend/src/codemirror/beancount-autocomplete.ts +135 -0
  110. rustfava-0.1.0/frontend/src/codemirror/beancount-fold.ts +28 -0
  111. rustfava-0.1.0/frontend/src/codemirror/beancount-format.ts +17 -0
  112. rustfava-0.1.0/frontend/src/codemirror/beancount-highlight.ts +66 -0
  113. rustfava-0.1.0/frontend/src/codemirror/beancount-indent.ts +15 -0
  114. rustfava-0.1.0/frontend/src/codemirror/beancount-language.ts +79 -0
  115. rustfava-0.1.0/frontend/src/codemirror/beancount-snippets.ts +16 -0
  116. rustfava-0.1.0/frontend/src/codemirror/beancount.ts +63 -0
  117. rustfava-0.1.0/frontend/src/codemirror/bql-autocomplete.ts +35 -0
  118. rustfava-0.1.0/frontend/src/codemirror/bql-grammar.ts +141 -0
  119. rustfava-0.1.0/frontend/src/codemirror/bql-highlight.ts +40 -0
  120. rustfava-0.1.0/frontend/src/codemirror/bql-language.ts +13 -0
  121. rustfava-0.1.0/frontend/src/codemirror/bql-stream-parser.ts +53 -0
  122. rustfava-0.1.0/frontend/src/codemirror/bql.ts +75 -0
  123. rustfava-0.1.0/frontend/src/codemirror/dom.ts +36 -0
  124. rustfava-0.1.0/frontend/src/codemirror/editor-transactions.ts +61 -0
  125. rustfava-0.1.0/frontend/src/codemirror/ruler.ts +49 -0
  126. rustfava-0.1.0/frontend/src/codemirror/tree-sitter-beancount.wasm +0 -0
  127. rustfava-0.1.0/frontend/src/codemirror/tree-sitter-parser.ts +410 -0
  128. rustfava-0.1.0/frontend/src/codemirror/types.ts +5 -0
  129. rustfava-0.1.0/frontend/src/editor/DeleteButton.svelte +16 -0
  130. rustfava-0.1.0/frontend/src/editor/DocumentPreviewEditor.svelte +48 -0
  131. rustfava-0.1.0/frontend/src/editor/SaveButton.svelte +23 -0
  132. rustfava-0.1.0/frontend/src/editor/SliceEditor.svelte +113 -0
  133. rustfava-0.1.0/frontend/src/entries/amount.ts +58 -0
  134. rustfava-0.1.0/frontend/src/entries/cost.ts +55 -0
  135. rustfava-0.1.0/frontend/src/entries/index.ts +640 -0
  136. rustfava-0.1.0/frontend/src/entries/metadata.ts +123 -0
  137. rustfava-0.1.0/frontend/src/entries/position.ts +25 -0
  138. rustfava-0.1.0/frontend/src/entry-forms/AccountInput.svelte +44 -0
  139. rustfava-0.1.0/frontend/src/entry-forms/AddMetadataButton.svelte +22 -0
  140. rustfava-0.1.0/frontend/src/entry-forms/Balance.svelte +83 -0
  141. rustfava-0.1.0/frontend/src/entry-forms/Entry.svelte +23 -0
  142. rustfava-0.1.0/frontend/src/entry-forms/EntryMetadata.svelte +80 -0
  143. rustfava-0.1.0/frontend/src/entry-forms/Note.svelte +73 -0
  144. rustfava-0.1.0/frontend/src/entry-forms/Posting.svelte +151 -0
  145. rustfava-0.1.0/frontend/src/entry-forms/Transaction.svelte +207 -0
  146. rustfava-0.1.0/frontend/src/extensions.ts +170 -0
  147. rustfava-0.1.0/frontend/src/format.ts +103 -0
  148. rustfava-0.1.0/frontend/src/helpers.ts +100 -0
  149. rustfava-0.1.0/frontend/src/i18n.ts +37 -0
  150. rustfava-0.1.0/frontend/src/keyboard-shortcuts.ts +245 -0
  151. rustfava-0.1.0/frontend/src/lib/account.ts +80 -0
  152. rustfava-0.1.0/frontend/src/lib/array.ts +35 -0
  153. rustfava-0.1.0/frontend/src/lib/dom.ts +55 -0
  154. rustfava-0.1.0/frontend/src/lib/equals.ts +23 -0
  155. rustfava-0.1.0/frontend/src/lib/errors.ts +23 -0
  156. rustfava-0.1.0/frontend/src/lib/fetch.ts +65 -0
  157. rustfava-0.1.0/frontend/src/lib/focus.ts +28 -0
  158. rustfava-0.1.0/frontend/src/lib/fuzzy.ts +119 -0
  159. rustfava-0.1.0/frontend/src/lib/interval.ts +28 -0
  160. rustfava-0.1.0/frontend/src/lib/iso4217.ts +186 -0
  161. rustfava-0.1.0/frontend/src/lib/json.ts +16 -0
  162. rustfava-0.1.0/frontend/src/lib/objects.ts +4 -0
  163. rustfava-0.1.0/frontend/src/lib/paths.ts +47 -0
  164. rustfava-0.1.0/frontend/src/lib/regex.ts +6 -0
  165. rustfava-0.1.0/frontend/src/lib/result.ts +148 -0
  166. rustfava-0.1.0/frontend/src/lib/set.ts +11 -0
  167. rustfava-0.1.0/frontend/src/lib/sources.ts +58 -0
  168. rustfava-0.1.0/frontend/src/lib/store.ts +112 -0
  169. rustfava-0.1.0/frontend/src/lib/tree.ts +90 -0
  170. rustfava-0.1.0/frontend/src/lib/validation.ts +328 -0
  171. rustfava-0.1.0/frontend/src/log.ts +21 -0
  172. rustfava-0.1.0/frontend/src/modals/AddEntry.svelte +79 -0
  173. rustfava-0.1.0/frontend/src/modals/Context.svelte +44 -0
  174. rustfava-0.1.0/frontend/src/modals/DocumentUpload.svelte +218 -0
  175. rustfava-0.1.0/frontend/src/modals/EntryContextBalances.svelte +61 -0
  176. rustfava-0.1.0/frontend/src/modals/EntryContextLocation.svelte +29 -0
  177. rustfava-0.1.0/frontend/src/modals/Export.svelte +19 -0
  178. rustfava-0.1.0/frontend/src/modals/ModalBase.svelte +147 -0
  179. rustfava-0.1.0/frontend/src/modals/Modals.svelte +11 -0
  180. rustfava-0.1.0/frontend/src/modals/document-upload.ts +13 -0
  181. rustfava-0.1.0/frontend/src/notifications.ts +71 -0
  182. rustfava-0.1.0/frontend/src/reports/ReportLoadError.svelte +20 -0
  183. rustfava-0.1.0/frontend/src/reports/accounts/AccountReport.svelte +96 -0
  184. rustfava-0.1.0/frontend/src/reports/accounts/index.ts +76 -0
  185. rustfava-0.1.0/frontend/src/reports/commodities/Commodities.svelte +19 -0
  186. rustfava-0.1.0/frontend/src/reports/commodities/CommodityTable.svelte +45 -0
  187. rustfava-0.1.0/frontend/src/reports/commodities/index.ts +33 -0
  188. rustfava-0.1.0/frontend/src/reports/documents/Accounts.svelte +133 -0
  189. rustfava-0.1.0/frontend/src/reports/documents/DocumentPreview.svelte +61 -0
  190. rustfava-0.1.0/frontend/src/reports/documents/Documents.svelte +115 -0
  191. rustfava-0.1.0/frontend/src/reports/documents/Table.svelte +81 -0
  192. rustfava-0.1.0/frontend/src/reports/documents/index.ts +20 -0
  193. rustfava-0.1.0/frontend/src/reports/documents/stores.ts +3 -0
  194. rustfava-0.1.0/frontend/src/reports/editor/AppMenu.svelte +26 -0
  195. rustfava-0.1.0/frontend/src/reports/editor/AppMenuItem.svelte +74 -0
  196. rustfava-0.1.0/frontend/src/reports/editor/AppMenuSubItem.svelte +58 -0
  197. rustfava-0.1.0/frontend/src/reports/editor/Editor.svelte +153 -0
  198. rustfava-0.1.0/frontend/src/reports/editor/EditorMenu.svelte +109 -0
  199. rustfava-0.1.0/frontend/src/reports/editor/Key.svelte +11 -0
  200. rustfava-0.1.0/frontend/src/reports/editor/Sources.svelte +111 -0
  201. rustfava-0.1.0/frontend/src/reports/editor/index.ts +34 -0
  202. rustfava-0.1.0/frontend/src/reports/editor/stores.ts +55 -0
  203. rustfava-0.1.0/frontend/src/reports/errors/Errors.svelte +77 -0
  204. rustfava-0.1.0/frontend/src/reports/errors/index.ts +7 -0
  205. rustfava-0.1.0/frontend/src/reports/events/EventTable.svelte +38 -0
  206. rustfava-0.1.0/frontend/src/reports/events/Events.svelte +39 -0
  207. rustfava-0.1.0/frontend/src/reports/events/index.ts +18 -0
  208. rustfava-0.1.0/frontend/src/reports/holdings/Holdings.svelte +59 -0
  209. rustfava-0.1.0/frontend/src/reports/holdings/index.ts +93 -0
  210. rustfava-0.1.0/frontend/src/reports/import/Extract.svelte +141 -0
  211. rustfava-0.1.0/frontend/src/reports/import/FileList.svelte +131 -0
  212. rustfava-0.1.0/frontend/src/reports/import/Import.svelte +199 -0
  213. rustfava-0.1.0/frontend/src/reports/import/ImportFileUpload.svelte +36 -0
  214. rustfava-0.1.0/frontend/src/reports/import/index.ts +60 -0
  215. rustfava-0.1.0/frontend/src/reports/journal/Journal.svelte +13 -0
  216. rustfava-0.1.0/frontend/src/reports/journal/JournalFilters.svelte +88 -0
  217. rustfava-0.1.0/frontend/src/reports/journal/JournalHeaders.svelte +73 -0
  218. rustfava-0.1.0/frontend/src/reports/journal/JournalTable.svelte +127 -0
  219. rustfava-0.1.0/frontend/src/reports/journal/click_handler.ts +48 -0
  220. rustfava-0.1.0/frontend/src/reports/journal/index.ts +59 -0
  221. rustfava-0.1.0/frontend/src/reports/journal/sort.ts +29 -0
  222. rustfava-0.1.0/frontend/src/reports/options/Options.svelte +26 -0
  223. rustfava-0.1.0/frontend/src/reports/options/OptionsTable.svelte +45 -0
  224. rustfava-0.1.0/frontend/src/reports/options/index.ts +16 -0
  225. rustfava-0.1.0/frontend/src/reports/query/Query.svelte +115 -0
  226. rustfava-0.1.0/frontend/src/reports/query/QueryBox.svelte +95 -0
  227. rustfava-0.1.0/frontend/src/reports/query/QueryEditor.svelte +67 -0
  228. rustfava-0.1.0/frontend/src/reports/query/QueryLinks.svelte +42 -0
  229. rustfava-0.1.0/frontend/src/reports/query/QueryTable.svelte +117 -0
  230. rustfava-0.1.0/frontend/src/reports/query/ReadonlyQueryEditor.svelte +22 -0
  231. rustfava-0.1.0/frontend/src/reports/query/index.ts +17 -0
  232. rustfava-0.1.0/frontend/src/reports/query/query_table.ts +207 -0
  233. rustfava-0.1.0/frontend/src/reports/route.svelte.ts +13 -0
  234. rustfava-0.1.0/frontend/src/reports/route.ts +195 -0
  235. rustfava-0.1.0/frontend/src/reports/routes.ts +44 -0
  236. rustfava-0.1.0/frontend/src/reports/statistics/EntriesByType.svelte +45 -0
  237. rustfava-0.1.0/frontend/src/reports/statistics/Statistics.svelte +49 -0
  238. rustfava-0.1.0/frontend/src/reports/statistics/UpdateActivity.svelte +85 -0
  239. rustfava-0.1.0/frontend/src/reports/statistics/index.ts +38 -0
  240. rustfava-0.1.0/frontend/src/reports/tree_reports/BalanceSheet.svelte +23 -0
  241. rustfava-0.1.0/frontend/src/reports/tree_reports/IncomeStatement.svelte +23 -0
  242. rustfava-0.1.0/frontend/src/reports/tree_reports/TrialBalance.svelte +16 -0
  243. rustfava-0.1.0/frontend/src/reports/tree_reports/index.ts +64 -0
  244. rustfava-0.1.0/frontend/src/router.ts +379 -0
  245. rustfava-0.1.0/frontend/src/sidebar/AccountIndicator.svelte +77 -0
  246. rustfava-0.1.0/frontend/src/sidebar/AccountPageTitle.svelte +49 -0
  247. rustfava-0.1.0/frontend/src/sidebar/AccountSelector.svelte +36 -0
  248. rustfava-0.1.0/frontend/src/sidebar/AsideContents.svelte +133 -0
  249. rustfava-0.1.0/frontend/src/sidebar/AsideWithButton.svelte +99 -0
  250. rustfava-0.1.0/frontend/src/sidebar/FilterForm.svelte +160 -0
  251. rustfava-0.1.0/frontend/src/sidebar/Header.svelte +97 -0
  252. rustfava-0.1.0/frontend/src/sidebar/HeaderAndAside.svelte +7 -0
  253. rustfava-0.1.0/frontend/src/sidebar/HeaderIcon.svelte +49 -0
  254. rustfava-0.1.0/frontend/src/sidebar/PageTitle.svelte +25 -0
  255. rustfava-0.1.0/frontend/src/sidebar/SidebarLink.svelte +81 -0
  256. rustfava-0.1.0/frontend/src/sidebar/index.ts +27 -0
  257. rustfava-0.1.0/frontend/src/sidebar/page-title.ts +29 -0
  258. rustfava-0.1.0/frontend/src/sort/SortHeader.svelte +34 -0
  259. rustfava-0.1.0/frontend/src/sort/index.ts +179 -0
  260. rustfava-0.1.0/frontend/src/sort/sortable-table.ts +34 -0
  261. rustfava-0.1.0/frontend/src/stores/accounts.ts +128 -0
  262. rustfava-0.1.0/frontend/src/stores/chart.ts +90 -0
  263. rustfava-0.1.0/frontend/src/stores/color_scheme.ts +26 -0
  264. rustfava-0.1.0/frontend/src/stores/editor.ts +16 -0
  265. rustfava-0.1.0/frontend/src/stores/fava_options.ts +70 -0
  266. rustfava-0.1.0/frontend/src/stores/filters.ts +52 -0
  267. rustfava-0.1.0/frontend/src/stores/format.ts +40 -0
  268. rustfava-0.1.0/frontend/src/stores/index.ts +56 -0
  269. rustfava-0.1.0/frontend/src/stores/journal.ts +34 -0
  270. rustfava-0.1.0/frontend/src/stores/mtime.ts +32 -0
  271. rustfava-0.1.0/frontend/src/stores/options.ts +36 -0
  272. rustfava-0.1.0/frontend/src/stores/query.ts +29 -0
  273. rustfava-0.1.0/frontend/src/stores/url.ts +60 -0
  274. rustfava-0.1.0/frontend/src/svelte-custom-elements.ts +121 -0
  275. rustfava-0.1.0/frontend/src/tree-table/AccountCell.svelte +93 -0
  276. rustfava-0.1.0/frontend/src/tree-table/AccountCellHeader.svelte +57 -0
  277. rustfava-0.1.0/frontend/src/tree-table/Diff.svelte +33 -0
  278. rustfava-0.1.0/frontend/src/tree-table/IntervalTreeTable.svelte +73 -0
  279. rustfava-0.1.0/frontend/src/tree-table/IntervalTreeTableNode.svelte +82 -0
  280. rustfava-0.1.0/frontend/src/tree-table/TreeTable.svelte +54 -0
  281. rustfava-0.1.0/frontend/src/tree-table/TreeTableNode.svelte +80 -0
  282. rustfava-0.1.0/frontend/src/tree-table/helpers.ts +66 -0
  283. rustfava-0.1.0/frontend/src/tree-table/tree-table-custom-element.ts +52 -0
  284. rustfava-0.1.0/frontend/stylelint.config.js +20 -0
  285. rustfava-0.1.0/frontend/sync-pre-commit.ts +46 -0
  286. rustfava-0.1.0/frontend/test/AutocompleteInput.test.ts +43 -0
  287. rustfava-0.1.0/frontend/test/account.test.ts +64 -0
  288. rustfava-0.1.0/frontend/test/charts.test.ts +348 -0
  289. rustfava-0.1.0/frontend/test/dom.ts +27 -0
  290. rustfava-0.1.0/frontend/test/editor.test.ts +84 -0
  291. rustfava-0.1.0/frontend/test/end-to-end-validation.test.ts +71 -0
  292. rustfava-0.1.0/frontend/test/entries.test.ts +251 -0
  293. rustfava-0.1.0/frontend/test/format.test.ts +79 -0
  294. rustfava-0.1.0/frontend/test/fuzzy.test.ts +81 -0
  295. rustfava-0.1.0/frontend/test/helpers.ts +46 -0
  296. rustfava-0.1.0/frontend/test/misc.test.ts +127 -0
  297. rustfava-0.1.0/frontend/test/parser.test.ts +126 -0
  298. rustfava-0.1.0/frontend/test/paths.test.ts +74 -0
  299. rustfava-0.1.0/frontend/test/result.test.ts +52 -0
  300. rustfava-0.1.0/frontend/test/sources.test.ts +261 -0
  301. rustfava-0.1.0/frontend/test/store.test.ts +91 -0
  302. rustfava-0.1.0/frontend/test/tree.test.ts +111 -0
  303. rustfava-0.1.0/frontend/test/urls.test.ts +39 -0
  304. rustfava-0.1.0/frontend/test/validation.test.ts +130 -0
  305. rustfava-0.1.0/frontend/test.ts +27 -0
  306. rustfava-0.1.0/frontend/tsconfig.json +24 -0
  307. rustfava-0.1.0/justfile +305 -0
  308. rustfava-0.1.0/mkdocs.yml +54 -0
  309. rustfava-0.1.0/pyproject.toml +253 -0
  310. rustfava-0.1.0/setup.cfg +4 -0
  311. rustfava-0.1.0/src/rustfava/__init__.py +30 -0
  312. rustfava-0.1.0/src/rustfava/_ctx_globals_class.py +55 -0
  313. rustfava-0.1.0/src/rustfava/api_models.py +36 -0
  314. rustfava-0.1.0/src/rustfava/application.py +534 -0
  315. rustfava-0.1.0/src/rustfava/beans/__init__.py +6 -0
  316. rustfava-0.1.0/src/rustfava/beans/abc.py +327 -0
  317. rustfava-0.1.0/src/rustfava/beans/account.py +79 -0
  318. rustfava-0.1.0/src/rustfava/beans/create.py +377 -0
  319. rustfava-0.1.0/src/rustfava/beans/flags.py +20 -0
  320. rustfava-0.1.0/src/rustfava/beans/funcs.py +38 -0
  321. rustfava-0.1.0/src/rustfava/beans/helpers.py +52 -0
  322. rustfava-0.1.0/src/rustfava/beans/ingest.py +75 -0
  323. rustfava-0.1.0/src/rustfava/beans/load.py +31 -0
  324. rustfava-0.1.0/src/rustfava/beans/prices.py +151 -0
  325. rustfava-0.1.0/src/rustfava/beans/protocols.py +82 -0
  326. rustfava-0.1.0/src/rustfava/beans/str.py +454 -0
  327. rustfava-0.1.0/src/rustfava/beans/types.py +63 -0
  328. rustfava-0.1.0/src/rustfava/cli.py +187 -0
  329. rustfava-0.1.0/src/rustfava/context.py +13 -0
  330. rustfava-0.1.0/src/rustfava/core/__init__.py +729 -0
  331. rustfava-0.1.0/src/rustfava/core/accounts.py +161 -0
  332. rustfava-0.1.0/src/rustfava/core/attributes.py +145 -0
  333. rustfava-0.1.0/src/rustfava/core/budgets.py +207 -0
  334. rustfava-0.1.0/src/rustfava/core/charts.py +301 -0
  335. rustfava-0.1.0/src/rustfava/core/commodities.py +37 -0
  336. rustfava-0.1.0/src/rustfava/core/conversion.py +229 -0
  337. rustfava-0.1.0/src/rustfava/core/documents.py +87 -0
  338. rustfava-0.1.0/src/rustfava/core/extensions.py +132 -0
  339. rustfava-0.1.0/src/rustfava/core/fava_options.py +255 -0
  340. rustfava-0.1.0/src/rustfava/core/file.py +542 -0
  341. rustfava-0.1.0/src/rustfava/core/filters.py +484 -0
  342. rustfava-0.1.0/src/rustfava/core/group_entries.py +97 -0
  343. rustfava-0.1.0/src/rustfava/core/ingest.py +509 -0
  344. rustfava-0.1.0/src/rustfava/core/inventory.py +167 -0
  345. rustfava-0.1.0/src/rustfava/core/misc.py +105 -0
  346. rustfava-0.1.0/src/rustfava/core/module_base.py +18 -0
  347. rustfava-0.1.0/src/rustfava/core/number.py +106 -0
  348. rustfava-0.1.0/src/rustfava/core/query.py +180 -0
  349. rustfava-0.1.0/src/rustfava/core/query_shell.py +301 -0
  350. rustfava-0.1.0/src/rustfava/core/tree.py +265 -0
  351. rustfava-0.1.0/src/rustfava/core/watcher.py +219 -0
  352. rustfava-0.1.0/src/rustfava/ext/__init__.py +232 -0
  353. rustfava-0.1.0/src/rustfava/ext/auto_commit.py +61 -0
  354. rustfava-0.1.0/src/rustfava/ext/portfolio_list/PortfolioList.js +34 -0
  355. rustfava-0.1.0/src/rustfava/ext/portfolio_list/__init__.py +29 -0
  356. rustfava-0.1.0/src/rustfava/ext/portfolio_list/templates/PortfolioList.html +15 -0
  357. rustfava-0.1.0/src/rustfava/ext/rustfava_ext_test/RustfavaExtTest.js +42 -0
  358. rustfava-0.1.0/src/rustfava/ext/rustfava_ext_test/__init__.py +207 -0
  359. rustfava-0.1.0/src/rustfava/ext/rustfava_ext_test/templates/RustfavaExtTest.html +45 -0
  360. rustfava-0.1.0/src/rustfava/ext/rustfava_ext_test/templates/RustfavaExtTestInclude.html +1 -0
  361. rustfava-0.1.0/src/rustfava/help/__init__.py +15 -0
  362. rustfava-0.1.0/src/rustfava/help/_index.md +29 -0
  363. rustfava-0.1.0/src/rustfava/help/beancount_syntax.md +156 -0
  364. rustfava-0.1.0/src/rustfava/help/budgets.md +31 -0
  365. rustfava-0.1.0/src/rustfava/help/conversion.md +29 -0
  366. rustfava-0.1.0/src/rustfava/help/extensions.md +111 -0
  367. rustfava-0.1.0/src/rustfava/help/features.md +179 -0
  368. rustfava-0.1.0/src/rustfava/help/filters.md +103 -0
  369. rustfava-0.1.0/src/rustfava/help/import.md +27 -0
  370. rustfava-0.1.0/src/rustfava/help/options.md +289 -0
  371. rustfava-0.1.0/src/rustfava/helpers.py +30 -0
  372. rustfava-0.1.0/src/rustfava/internal_api.py +221 -0
  373. rustfava-0.1.0/src/rustfava/json_api.py +952 -0
  374. rustfava-0.1.0/src/rustfava/plugins/__init__.py +3 -0
  375. rustfava-0.1.0/src/rustfava/plugins/link_documents.py +107 -0
  376. rustfava-0.1.0/src/rustfava/plugins/tag_discovered_documents.py +44 -0
  377. rustfava-0.1.0/src/rustfava/py.typed +0 -0
  378. rustfava-0.1.0/src/rustfava/rustledger/__init__.py +31 -0
  379. rustfava-0.1.0/src/rustfava/rustledger/constants.py +76 -0
  380. rustfava-0.1.0/src/rustfava/rustledger/engine.py +485 -0
  381. rustfava-0.1.0/src/rustfava/rustledger/loader.py +273 -0
  382. rustfava-0.1.0/src/rustfava/rustledger/options.py +202 -0
  383. rustfava-0.1.0/src/rustfava/rustledger/query.py +331 -0
  384. rustfava-0.1.0/src/rustfava/rustledger/types.py +830 -0
  385. rustfava-0.1.0/src/rustfava/serialisation.py +220 -0
  386. rustfava-0.1.0/src/rustfava/static/app.css +2988 -0
  387. rustfava-0.1.0/src/rustfava/static/app.css.map +7 -0
  388. rustfava-0.1.0/src/rustfava/static/app.js +12854 -0
  389. rustfava-0.1.0/src/rustfava/static/app.js.map +7 -0
  390. rustfava-0.1.0/src/rustfava/static/beancount-JFV44ZVZ.css +5 -0
  391. rustfava-0.1.0/src/rustfava/static/beancount-JFV44ZVZ.css.map +7 -0
  392. rustfava-0.1.0/src/rustfava/static/beancount-VTTKRGSK.js +4642 -0
  393. rustfava-0.1.0/src/rustfava/static/beancount-VTTKRGSK.js.map +7 -0
  394. rustfava-0.1.0/src/rustfava/static/bql-MGFRUMBP.js +333 -0
  395. rustfava-0.1.0/src/rustfava/static/bql-MGFRUMBP.js.map +7 -0
  396. rustfava-0.1.0/src/rustfava/static/chunk-E7ZF4ASL.js +23061 -0
  397. rustfava-0.1.0/src/rustfava/static/chunk-E7ZF4ASL.js.map +7 -0
  398. rustfava-0.1.0/src/rustfava/static/chunk-V24TLQHT.js +12673 -0
  399. rustfava-0.1.0/src/rustfava/static/chunk-V24TLQHT.js.map +7 -0
  400. rustfava-0.1.0/src/rustfava/static/favicon.ico +0 -0
  401. rustfava-0.1.0/src/rustfava/static/fira-mono-cyrillic-400-normal-BLAGXRCE.woff2 +0 -0
  402. rustfava-0.1.0/src/rustfava/static/fira-mono-cyrillic-500-normal-EN7JUAAW.woff2 +0 -0
  403. rustfava-0.1.0/src/rustfava/static/fira-mono-cyrillic-ext-400-normal-EX7VARTS.woff2 +0 -0
  404. rustfava-0.1.0/src/rustfava/static/fira-mono-cyrillic-ext-500-normal-ZDPTUPRR.woff2 +0 -0
  405. rustfava-0.1.0/src/rustfava/static/fira-mono-greek-400-normal-COGHKMOA.woff2 +0 -0
  406. rustfava-0.1.0/src/rustfava/static/fira-mono-greek-500-normal-4EN2PKZT.woff2 +0 -0
  407. rustfava-0.1.0/src/rustfava/static/fira-mono-greek-ext-400-normal-DYEQIJH7.woff2 +0 -0
  408. rustfava-0.1.0/src/rustfava/static/fira-mono-greek-ext-500-normal-SG73CVKQ.woff2 +0 -0
  409. rustfava-0.1.0/src/rustfava/static/fira-mono-latin-400-normal-NA3VLV7E.woff2 +0 -0
  410. rustfava-0.1.0/src/rustfava/static/fira-mono-latin-500-normal-YC77GFWD.woff2 +0 -0
  411. rustfava-0.1.0/src/rustfava/static/fira-mono-latin-ext-400-normal-DIKTZ5PW.woff2 +0 -0
  412. rustfava-0.1.0/src/rustfava/static/fira-mono-latin-ext-500-normal-ZWY4UO4V.woff2 +0 -0
  413. rustfava-0.1.0/src/rustfava/static/fira-mono-symbols2-400-normal-UITXT77Q.woff2 +0 -0
  414. rustfava-0.1.0/src/rustfava/static/fira-mono-symbols2-500-normal-VWPC2EFN.woff2 +0 -0
  415. rustfava-0.1.0/src/rustfava/static/fira-sans-cyrillic-400-normal-KLQMBCA6.woff2 +0 -0
  416. rustfava-0.1.0/src/rustfava/static/fira-sans-cyrillic-500-normal-NFG7UD6J.woff2 +0 -0
  417. rustfava-0.1.0/src/rustfava/static/fira-sans-cyrillic-ext-400-normal-GWO44OPC.woff2 +0 -0
  418. rustfava-0.1.0/src/rustfava/static/fira-sans-cyrillic-ext-500-normal-SP47E5SC.woff2 +0 -0
  419. rustfava-0.1.0/src/rustfava/static/fira-sans-greek-400-normal-UMQBTLC3.woff2 +0 -0
  420. rustfava-0.1.0/src/rustfava/static/fira-sans-greek-500-normal-4ZKHN4FQ.woff2 +0 -0
  421. rustfava-0.1.0/src/rustfava/static/fira-sans-greek-ext-400-normal-O2DVJAJZ.woff2 +0 -0
  422. rustfava-0.1.0/src/rustfava/static/fira-sans-greek-ext-500-normal-SK6GNWGO.woff2 +0 -0
  423. rustfava-0.1.0/src/rustfava/static/fira-sans-latin-400-normal-OYYTPMAV.woff2 +0 -0
  424. rustfava-0.1.0/src/rustfava/static/fira-sans-latin-500-normal-SMQPZW5A.woff2 +0 -0
  425. rustfava-0.1.0/src/rustfava/static/fira-sans-latin-ext-400-normal-OAUP3WK5.woff2 +0 -0
  426. rustfava-0.1.0/src/rustfava/static/fira-sans-latin-ext-500-normal-LY3YDR5Y.woff2 +0 -0
  427. rustfava-0.1.0/src/rustfava/static/fira-sans-vietnamese-400-normal-OBMQ72MR.woff2 +0 -0
  428. rustfava-0.1.0/src/rustfava/static/fira-sans-vietnamese-500-normal-Y4NZR5EU.woff2 +0 -0
  429. rustfava-0.1.0/src/rustfava/static/source-code-pro-cyrillic-400-normal-TO22V6M3.woff2 +0 -0
  430. rustfava-0.1.0/src/rustfava/static/source-code-pro-cyrillic-500-normal-OGBWWWYW.woff2 +0 -0
  431. rustfava-0.1.0/src/rustfava/static/source-code-pro-cyrillic-ext-400-normal-XH44UCIA.woff2 +0 -0
  432. rustfava-0.1.0/src/rustfava/static/source-code-pro-cyrillic-ext-500-normal-3Z6MMVM6.woff2 +0 -0
  433. rustfava-0.1.0/src/rustfava/static/source-code-pro-greek-400-normal-OUXXUQWK.woff2 +0 -0
  434. rustfava-0.1.0/src/rustfava/static/source-code-pro-greek-500-normal-JA2Z5UXO.woff2 +0 -0
  435. rustfava-0.1.0/src/rustfava/static/source-code-pro-greek-ext-400-normal-WCDKMX7U.woff2 +0 -0
  436. rustfava-0.1.0/src/rustfava/static/source-code-pro-greek-ext-500-normal-ZHVI4VKW.woff2 +0 -0
  437. rustfava-0.1.0/src/rustfava/static/source-code-pro-latin-400-normal-QOGTXED5.woff2 +0 -0
  438. rustfava-0.1.0/src/rustfava/static/source-code-pro-latin-500-normal-X57QEOLQ.woff2 +0 -0
  439. rustfava-0.1.0/src/rustfava/static/source-code-pro-latin-ext-400-normal-QXC74NBF.woff2 +0 -0
  440. rustfava-0.1.0/src/rustfava/static/source-code-pro-latin-ext-500-normal-QGOY7MTT.woff2 +0 -0
  441. rustfava-0.1.0/src/rustfava/static/source-code-pro-vietnamese-400-normal-NPDCDTBA.woff2 +0 -0
  442. rustfava-0.1.0/src/rustfava/static/source-code-pro-vietnamese-500-normal-M6PJKTR5.woff2 +0 -0
  443. rustfava-0.1.0/src/rustfava/static/tree-sitter-beancount-MLXFQBZ5.wasm +0 -0
  444. rustfava-0.1.0/src/rustfava/static/web-tree-sitter-RNOQ6E74.wasm +0 -0
  445. rustfava-0.1.0/src/rustfava/template_filters.py +64 -0
  446. rustfava-0.1.0/src/rustfava/templates/_journal_table.html +156 -0
  447. rustfava-0.1.0/src/rustfava/templates/_layout.html +26 -0
  448. rustfava-0.1.0/src/rustfava/templates/_query_table.html +88 -0
  449. rustfava-0.1.0/src/rustfava/templates/beancount_file +18 -0
  450. rustfava-0.1.0/src/rustfava/templates/help.html +23 -0
  451. rustfava-0.1.0/src/rustfava/templates/macros/_account_macros.html +5 -0
  452. rustfava-0.1.0/src/rustfava/templates/macros/_commodity_macros.html +13 -0
  453. rustfava-0.1.0/src/rustfava/translations/bg/LC_MESSAGES/messages.mo +0 -0
  454. rustfava-0.1.0/src/rustfava/translations/bg/LC_MESSAGES/messages.po +618 -0
  455. rustfava-0.1.0/src/rustfava/translations/ca/LC_MESSAGES/messages.mo +0 -0
  456. rustfava-0.1.0/src/rustfava/translations/ca/LC_MESSAGES/messages.po +618 -0
  457. rustfava-0.1.0/src/rustfava/translations/de/LC_MESSAGES/messages.mo +0 -0
  458. rustfava-0.1.0/src/rustfava/translations/de/LC_MESSAGES/messages.po +618 -0
  459. rustfava-0.1.0/src/rustfava/translations/es/LC_MESSAGES/messages.mo +0 -0
  460. rustfava-0.1.0/src/rustfava/translations/es/LC_MESSAGES/messages.po +619 -0
  461. rustfava-0.1.0/src/rustfava/translations/fa/LC_MESSAGES/messages.mo +0 -0
  462. rustfava-0.1.0/src/rustfava/translations/fa/LC_MESSAGES/messages.po +618 -0
  463. rustfava-0.1.0/src/rustfava/translations/fr/LC_MESSAGES/messages.mo +0 -0
  464. rustfava-0.1.0/src/rustfava/translations/fr/LC_MESSAGES/messages.po +618 -0
  465. rustfava-0.1.0/src/rustfava/translations/ja/LC_MESSAGES/messages.mo +0 -0
  466. rustfava-0.1.0/src/rustfava/translations/ja/LC_MESSAGES/messages.po +618 -0
  467. rustfava-0.1.0/src/rustfava/translations/nl/LC_MESSAGES/messages.mo +0 -0
  468. rustfava-0.1.0/src/rustfava/translations/nl/LC_MESSAGES/messages.po +617 -0
  469. rustfava-0.1.0/src/rustfava/translations/pt/LC_MESSAGES/messages.mo +0 -0
  470. rustfava-0.1.0/src/rustfava/translations/pt/LC_MESSAGES/messages.po +617 -0
  471. rustfava-0.1.0/src/rustfava/translations/pt_BR/LC_MESSAGES/messages.mo +0 -0
  472. rustfava-0.1.0/src/rustfava/translations/pt_BR/LC_MESSAGES/messages.po +618 -0
  473. rustfava-0.1.0/src/rustfava/translations/ru/LC_MESSAGES/messages.mo +0 -0
  474. rustfava-0.1.0/src/rustfava/translations/ru/LC_MESSAGES/messages.po +617 -0
  475. rustfava-0.1.0/src/rustfava/translations/sk/LC_MESSAGES/messages.mo +0 -0
  476. rustfava-0.1.0/src/rustfava/translations/sk/LC_MESSAGES/messages.po +623 -0
  477. rustfava-0.1.0/src/rustfava/translations/sv/LC_MESSAGES/messages.mo +0 -0
  478. rustfava-0.1.0/src/rustfava/translations/sv/LC_MESSAGES/messages.po +618 -0
  479. rustfava-0.1.0/src/rustfava/translations/uk/LC_MESSAGES/messages.mo +0 -0
  480. rustfava-0.1.0/src/rustfava/translations/uk/LC_MESSAGES/messages.po +618 -0
  481. rustfava-0.1.0/src/rustfava/translations/zh/LC_MESSAGES/messages.mo +0 -0
  482. rustfava-0.1.0/src/rustfava/translations/zh/LC_MESSAGES/messages.po +618 -0
  483. rustfava-0.1.0/src/rustfava/translations/zh_Hant_TW/LC_MESSAGES/messages.mo +0 -0
  484. rustfava-0.1.0/src/rustfava/translations/zh_Hant_TW/LC_MESSAGES/messages.po +618 -0
  485. rustfava-0.1.0/src/rustfava/util/__init__.py +157 -0
  486. rustfava-0.1.0/src/rustfava/util/date.py +576 -0
  487. rustfava-0.1.0/src/rustfava/util/excel.py +118 -0
  488. rustfava-0.1.0/src/rustfava/util/ranking.py +79 -0
  489. rustfava-0.1.0/src/rustfava/util/sets.py +18 -0
  490. rustfava-0.1.0/src/rustfava/util/unreachable.py +20 -0
  491. rustfava-0.1.0/src/rustfava.egg-info/PKG-INFO +102 -0
  492. rustfava-0.1.0/src/rustfava.egg-info/SOURCES.txt +604 -0
  493. rustfava-0.1.0/src/rustfava.egg-info/dependency_links.txt +1 -0
  494. rustfava-0.1.0/src/rustfava.egg-info/entry_points.txt +2 -0
  495. rustfava-0.1.0/src/rustfava.egg-info/requires.txt +20 -0
  496. rustfava-0.1.0/src/rustfava.egg-info/top_level.txt +1 -0
  497. rustfava-0.1.0/stubs/beangulp/__init__.pyi +27 -0
  498. rustfava-0.1.0/stubs/beangulp/cache.pyi +3 -0
  499. rustfava-0.1.0/tests/__init__.py +1 -0
  500. rustfava-0.1.0/tests/__snapshots__/test_application-test_download_journal +16 -0
  501. rustfava-0.1.0/tests/__snapshots__/test_core_attributes-test_narrations.json +37 -0
  502. rustfava-0.1.0/tests/__snapshots__/test_core_charts-test_interval_totals-2.json +1 -0
  503. rustfava-0.1.0/tests/__snapshots__/test_core_charts-test_interval_totals.json +1 -0
  504. rustfava-0.1.0/tests/__snapshots__/test_core_charts-test_interval_totals_inverted-2.json +1 -0
  505. rustfava-0.1.0/tests/__snapshots__/test_core_charts-test_interval_totals_inverted.json +1 -0
  506. rustfava-0.1.0/tests/__snapshots__/test_core_charts-test_linechart_data-2.json +1 -0
  507. rustfava-0.1.0/tests/__snapshots__/test_core_charts-test_linechart_data-3.json +1 -0
  508. rustfava-0.1.0/tests/__snapshots__/test_core_charts-test_linechart_data-4.json +1 -0
  509. rustfava-0.1.0/tests/__snapshots__/test_core_charts-test_linechart_data.json +1 -0
  510. rustfava-0.1.0/tests/__snapshots__/test_core_charts-test_net_worth.json +1 -0
  511. rustfava-0.1.0/tests/__snapshots__/test_core_charts-test_net_worth_off_by_one-2.json +1 -0
  512. rustfava-0.1.0/tests/__snapshots__/test_core_charts-test_net_worth_off_by_one.json +1 -0
  513. rustfava-0.1.0/tests/__snapshots__/test_core_file-test_render_entries +11 -0
  514. rustfava-0.1.0/tests/__snapshots__/test_core_ingest-test_ingest_examplefile-2.json +1 -0
  515. rustfava-0.1.0/tests/__snapshots__/test_core_ingest-test_ingest_examplefile.json +1 -0
  516. rustfava-0.1.0/tests/__snapshots__/test_core_query_shell-test_query_balances +68 -0
  517. rustfava-0.1.0/tests/__snapshots__/test_core_query_shell-test_query_to_file +31 -0
  518. rustfava-0.1.0/tests/__snapshots__/test_core_query_shell-test_text_queries +1 -0
  519. rustfava-0.1.0/tests/__snapshots__/test_core_tree-test_tree_cap +297 -0
  520. rustfava-0.1.0/tests/__snapshots__/test_core_tree-test_tree_from_entries +188 -0
  521. rustfava-0.1.0/tests/__snapshots__/test_core_tree-test_tree_from_entries-2 +104 -0
  522. rustfava-0.1.0/tests/__snapshots__/test_internal_api-test_chart_api.json +1 -0
  523. rustfava-0.1.0/tests/__snapshots__/test_internal_api-test_get_ledger_data.json +1 -0
  524. rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api-account_report_off_by_one.json +1 -0
  525. rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api-account_report_off_by_one_journal.json +1 -0
  526. rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api-balance_sheet.json +1 -0
  527. rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api-balance_sheet_with_cost.json +1 -0
  528. rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api-commodities.json +1 -0
  529. rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api-documents.json +1 -0
  530. rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api-events.json +1 -0
  531. rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api-income_statement.json +1 -0
  532. rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api-journal.json +1 -0
  533. rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api-narrations.json +37 -0
  534. rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api-options.json +1 -0
  535. rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api-statistics.json +1 -0
  536. rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api-trial_balance.json +1 -0
  537. rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api_context-2.json +4 -0
  538. rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api_context-3.json +1 -0
  539. rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api_context-4.json +4 -0
  540. rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api_context.json +1 -0
  541. rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api_errors +9 -0
  542. rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api_imports-2.json +1 -0
  543. rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api_imports.json +102 -0
  544. rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api_payee_accounts.json +63 -0
  545. rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api_payee_transaction.json +1 -0
  546. rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api_query_result-balances.json +1 -0
  547. rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api_query_result-help.json +1 -0
  548. rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api_query_result-journal.json +1 -0
  549. rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api_query_result-misc.json +1 -0
  550. rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api_query_result-sum.json +1 -0
  551. rustfava-0.1.0/tests/__snapshots__/test_serialisation-test_deserialise_posting_and_format +3 -0
  552. rustfava-0.1.0/tests/__snapshots__/test_serialisation-test_serialise_entry_types.json +1 -0
  553. rustfava-0.1.0/tests/conftest.py +398 -0
  554. rustfava-0.1.0/tests/data/edit-example.beancount +23 -0
  555. rustfava-0.1.0/tests/data/errors.beancount +19 -0
  556. rustfava-0.1.0/tests/data/example-balances.csv +60 -0
  557. rustfava-0.1.0/tests/data/example-utf8-/360/237/246/201.txt +0 -0
  558. rustfava-0.1.0/tests/data/example.beancount +81 -0
  559. rustfava-0.1.0/tests/data/extension-report-example.beancount +5808 -0
  560. rustfava-0.1.0/tests/data/import.beancount +9 -0
  561. rustfava-0.1.0/tests/data/import.csv +4 -0
  562. rustfava-0.1.0/tests/data/import_config.py +189 -0
  563. rustfava-0.1.0/tests/data/import_config_with_duplicate_names.py +34 -0
  564. rustfava-0.1.0/tests/data/invalid-unicode.beancount +12 -0
  565. rustfava-0.1.0/tests/data/long-example.beancount +5825 -0
  566. rustfava-0.1.0/tests/data/off-by-one.beancount +19 -0
  567. rustfava-0.1.0/tests/data/query-example.beancount +2366 -0
  568. rustfava-0.1.0/tests/data/receipt.pdf +0 -0
  569. rustfava-0.1.0/tests/test_application.py +381 -0
  570. rustfava-0.1.0/tests/test_beans.py +165 -0
  571. rustfava-0.1.0/tests/test_beans_str.py +119 -0
  572. rustfava-0.1.0/tests/test_build_backend.py +18 -0
  573. rustfava-0.1.0/tests/test_cli.py +101 -0
  574. rustfava-0.1.0/tests/test_core.py +176 -0
  575. rustfava-0.1.0/tests/test_core_accounts.py +73 -0
  576. rustfava-0.1.0/tests/test_core_attributes.py +87 -0
  577. rustfava-0.1.0/tests/test_core_budgets.py +147 -0
  578. rustfava-0.1.0/tests/test_core_charts.py +105 -0
  579. rustfava-0.1.0/tests/test_core_commodities.py +20 -0
  580. rustfava-0.1.0/tests/test_core_conversion.py +232 -0
  581. rustfava-0.1.0/tests/test_core_documents.py +79 -0
  582. rustfava-0.1.0/tests/test_core_fava_options.py +114 -0
  583. rustfava-0.1.0/tests/test_core_file.py +523 -0
  584. rustfava-0.1.0/tests/test_core_filters.py +242 -0
  585. rustfava-0.1.0/tests/test_core_ingest.py +262 -0
  586. rustfava-0.1.0/tests/test_core_inventory.py +62 -0
  587. rustfava-0.1.0/tests/test_core_misc.py +29 -0
  588. rustfava-0.1.0/tests/test_core_number.py +70 -0
  589. rustfava-0.1.0/tests/test_core_query_shell.py +131 -0
  590. rustfava-0.1.0/tests/test_core_tree.py +57 -0
  591. rustfava-0.1.0/tests/test_core_watcher.py +141 -0
  592. rustfava-0.1.0/tests/test_ext.py +47 -0
  593. rustfava-0.1.0/tests/test_extensions.py +40 -0
  594. rustfava-0.1.0/tests/test_internal_api.py +59 -0
  595. rustfava-0.1.0/tests/test_json_api.py +913 -0
  596. rustfava-0.1.0/tests/test_plugins_link_documents.py +126 -0
  597. rustfava-0.1.0/tests/test_plugins_tag_discovered_documents.py +51 -0
  598. rustfava-0.1.0/tests/test_serialisation.py +326 -0
  599. rustfava-0.1.0/tests/test_template_filters.py +34 -0
  600. rustfava-0.1.0/tests/test_templates.py +41 -0
  601. rustfava-0.1.0/tests/test_util.py +110 -0
  602. rustfava-0.1.0/tests/test_util_date.py +466 -0
  603. rustfava-0.1.0/tests/test_util_excel.py +50 -0
  604. rustfava-0.1.0/tests/test_util_ranking.py +36 -0
  605. rustfava-0.1.0/tests/test_util_sets.py +15 -0
  606. rustfava-0.1.0/uv.lock +1615 -0
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env bash
2
+ exec python -m rustfava.cli "$@"
@@ -0,0 +1,47 @@
1
+ # Git
2
+ .git
3
+ .gitignore
4
+
5
+ # Python
6
+ __pycache__
7
+ *.py[cod]
8
+ *.egg-info
9
+ .eggs
10
+ dist
11
+ build
12
+ .tox
13
+ .pytest_cache
14
+ .coverage
15
+ htmlcov
16
+
17
+ # Node/Frontend dev
18
+ node_modules
19
+ frontend/node_modules
20
+ desktop/
21
+
22
+ # IDE
23
+ .vscode
24
+ .idea
25
+ *.swp
26
+
27
+ # Docs
28
+ docs/
29
+ mkdocs.yml
30
+
31
+ # Tests
32
+ tests/
33
+ stubs/
34
+
35
+ # CI/CD
36
+ .github/
37
+ .pre-commit-config.yaml
38
+
39
+ # Cache
40
+ .cache/
41
+ .mypy_cache/
42
+ .ruff_cache/
43
+
44
+ # Misc
45
+ *.md
46
+ !README.md
47
+ contrib/
rustfava-0.1.0/AUTHORS ADDED
@@ -0,0 +1,11 @@
1
+ Rustfava is a fork of Fava, which was created by Dominik Aumayr <dominik@aumayr.name>.
2
+ Fava is maintained by Dominik Aumayr and Jakob Schnitzer.
3
+
4
+ See the Issue Tracker and the Git log for other contributors, e.g., with:
5
+ git log --format='%aN' | sort -u
6
+
7
+ Translations: The translations are maintained on POEditor. See the project
8
+ there (https://poeditor.com/join/project/TlraSxOCxt) for details.
9
+
10
+ A big thank you goes to Martin Blais for creating Beancount and all the
11
+ invaluable documentation for it.
@@ -0,0 +1,21 @@
1
+ ### Reporting bugs and suggestions
2
+
3
+ Please first search the existing issues, including closed ones, for a report
4
+ that matches your issue.
5
+
6
+ When reporting a bug, provide details of the rustfava version and browser used.
7
+
8
+ If you want to report a security issue, please open an issue on GitHub.
9
+
10
+ ### Contributing code
11
+
12
+ Make a fork and submit your Pull Request. If it's a
13
+ large change or you want some help to get started with coding, open an issue
14
+ beforehand to discuss it.
15
+
16
+ Please contribute tests as well. See the `tests/` subdirectory for existing
17
+ tests, which can be run with `just test`.
18
+
19
+ ### Contributing translations
20
+
21
+ Translations are inherited from the original Fava project.
@@ -0,0 +1,57 @@
1
+ # rustfava server - web interface for rustledger
2
+ # Build: docker build -t rustfava .
3
+ # Run: docker run -p 5000:5000 -v /path/to/ledger:/data rustfava /data/main.beancount
4
+
5
+ FROM python:3.13-slim
6
+
7
+ # Install build dependencies
8
+ RUN apt-get update && apt-get install -y --no-install-recommends \
9
+ curl \
10
+ ca-certificates \
11
+ unzip \
12
+ xz-utils
13
+
14
+ # Install wasmtime (direct binary download)
15
+ ARG WASMTIME_VERSION=v29.0.1
16
+ RUN curl -L "https://github.com/bytecodealliance/wasmtime/releases/download/${WASMTIME_VERSION}/wasmtime-${WASMTIME_VERSION}-x86_64-linux.tar.xz" -o /tmp/wasmtime.tar.xz \
17
+ && tar -xf /tmp/wasmtime.tar.xz -C /tmp \
18
+ && mv /tmp/wasmtime-${WASMTIME_VERSION}-x86_64-linux/wasmtime /usr/local/bin/wasmtime \
19
+ && chmod +x /usr/local/bin/wasmtime \
20
+ && rm -rf /tmp/wasmtime*
21
+
22
+ # Install bun (for frontend build)
23
+ RUN curl -fsSL https://bun.sh/install | bash \
24
+ && ln -s /root/.bun/bin/bun /usr/local/bin/bun
25
+
26
+ WORKDIR /app
27
+
28
+ # Copy source and frontend (needed for build backend)
29
+ COPY pyproject.toml .
30
+ COPY _build_backend.py .
31
+ COPY src/ src/
32
+ COPY frontend/ frontend/
33
+
34
+ # Install rustfava (set version since no .git in container)
35
+ ARG VERSION=0.1.0
36
+ ENV SETUPTOOLS_SCM_PRETEND_VERSION=${VERSION}
37
+ RUN pip install --no-cache-dir .
38
+
39
+ # Cleanup build dependencies
40
+ RUN apt-get purge -y curl unzip xz-utils \
41
+ && apt-get autoremove -y \
42
+ && rm -rf /var/lib/apt/lists/* \
43
+ && rm -rf frontend/ \
44
+ && rm -rf /root/.bun
45
+
46
+ # Create data directory for mounting ledger files
47
+ RUN mkdir -p /data
48
+
49
+ EXPOSE 5000
50
+
51
+ # Default: listen on all interfaces for container access
52
+ ENV RUSTFAVA_HOST=0.0.0.0
53
+ ENV RUSTFAVA_PORT=5000
54
+
55
+ ENTRYPOINT ["rustfava"]
56
+ # User provides the beancount file path as argument, e.g.:
57
+ # docker run -p 5000:5000 -v ~/ledger:/data rustfava /data/main.beancount
rustfava-0.1.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2015-2016 Dominik Aumayr <dominik@aumayr.name>
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,13 @@
1
+ # setuptools_scm ensure all required files are included,
2
+ # we only need excludes here (except for the translations,
3
+ # which are compiled and not tracked in git).
4
+
5
+ exclude .editorconfig
6
+ exclude .gitignore
7
+ exclude .pre-commit-config.yaml
8
+ exclude .prettierignore
9
+ prune .github
10
+
11
+ graft src/rustfava/static
12
+ exclude src/rustfava/translations/babel.conf
13
+ recursive-include src/rustfava/translations *.mo
@@ -0,0 +1,102 @@
1
+ Metadata-Version: 2.4
2
+ Name: rustfava
3
+ Version: 0.1.0
4
+ Summary: Web interface for the accounting tool rustledger.
5
+ Author-email: Dominik Aumayr <dominik@aumayr.name>
6
+ Maintainer-email: Jakob Schnitzer <mail@jakobschnitzer.de>
7
+ License-Expression: MIT
8
+ Project-URL: Repository, https://github.com/rustledger/rustfava
9
+ Project-URL: Documentation, https://rustledger.github.io/rustfava
10
+ Project-URL: Issues, https://github.com/rustledger/rustfava/issues
11
+ Project-URL: Changelog, https://github.com/rustledger/rustfava/releases
12
+ Keywords: rustfava,fava,beancount,accounting,rustledger
13
+ Classifier: Development Status :: 5 - Production/Stable
14
+ Classifier: Environment :: Web Environment
15
+ Classifier: Framework :: Flask
16
+ Classifier: Intended Audience :: Education
17
+ Classifier: Intended Audience :: End Users/Desktop
18
+ Classifier: Intended Audience :: Financial and Insurance Industry
19
+ Classifier: Intended Audience :: Information Technology
20
+ Classifier: Natural Language :: English
21
+ Classifier: Programming Language :: JavaScript
22
+ Classifier: Programming Language :: Python :: 3 :: Only
23
+ Classifier: Programming Language :: Python :: 3.13
24
+ Classifier: Programming Language :: Python :: 3.14
25
+ Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
26
+ Classifier: Topic :: Office/Business :: Financial :: Accounting
27
+ Classifier: Topic :: Office/Business :: Financial :: Investment
28
+ Requires-Python: >=3.13
29
+ Description-Content-Type: text/markdown
30
+ License-File: LICENSE
31
+ License-File: AUTHORS
32
+ Requires-Dist: Babel<3,>=2.11
33
+ Requires-Dist: Flask-Babel<5,>=3
34
+ Requires-Dist: Flask<4,>=2.2
35
+ Requires-Dist: Jinja2<4,>=3
36
+ Requires-Dist: Werkzeug<4,>=2.2
37
+ Requires-Dist: beangulp>=0.1
38
+ Requires-Dist: cheroot<12,>=8
39
+ Requires-Dist: click<9,>=7
40
+ Requires-Dist: markdown2<3,>=2.3.0
41
+ Requires-Dist: ply>=3.11
42
+ Requires-Dist: pydantic>=2.0
43
+ Requires-Dist: watchfiles>=0.20.0
44
+ Provides-Extra: excel
45
+ Requires-Dist: pyexcel>=0.5; extra == "excel"
46
+ Requires-Dist: pyexcel-ods3>=0.5; extra == "excel"
47
+ Requires-Dist: pyexcel-xlsx>=0.5; extra == "excel"
48
+ Provides-Extra: beancount-compat
49
+ Requires-Dist: beancount<4,>=2; extra == "beancount-compat"
50
+ Dynamic: license-file
51
+
52
+ # Rustfava
53
+
54
+ Rustfava is a web interface for the double-entry bookkeeping software
55
+ [rustledger](https://github.com/rustledger/rustledger), a Rust-based
56
+ implementation of the Beancount format.
57
+
58
+ This is a fork of [Fava](https://github.com/beancount/fava) that replaces the
59
+ Python beancount parser with rustledger, compiled to WebAssembly for faster
60
+ parsing and processing.
61
+
62
+ ## Getting Started
63
+
64
+ ### Option 1: Desktop App (Recommended)
65
+
66
+ Download the desktop app from [GitHub Releases](https://github.com/rustledger/rustfava/releases):
67
+
68
+ - **macOS**: `rustfava_x.x.x_universal.dmg`
69
+ - **Windows**: `rustfava_x.x.x_x64-setup.exe`
70
+ - **Linux**: `rustfava_x.x.x_amd64.AppImage`
71
+
72
+ Double-click to launch, then open your `.beancount` file.
73
+
74
+ ### Option 2: Docker
75
+
76
+ Run the server in a container:
77
+
78
+ ```bash
79
+ docker run -p 5000:5000 -v /path/to/ledger:/data ghcr.io/rustledger/rustfava /data/main.beancount
80
+ ```
81
+
82
+ Then visit [http://localhost:5000](http://localhost:5000).
83
+
84
+ ### Option 3: uv install
85
+
86
+ For developers or advanced users. Requires Python 3.13+ and [wasmtime](https://wasmtime.dev/):
87
+
88
+ ```bash
89
+ uv tool install rustfava
90
+ rustfava ledger.beancount
91
+ ```
92
+
93
+ Then visit [http://localhost:5000](http://localhost:5000).
94
+
95
+ ## Development
96
+
97
+ See the repository for development instructions. Contributions are welcome!
98
+
99
+ ## Links
100
+
101
+ - Source: https://github.com/rustledger/rustfava
102
+ - Documentation: https://rustledger.github.io/rustfava/
@@ -0,0 +1,51 @@
1
+ # Rustfava
2
+
3
+ Rustfava is a web interface for the double-entry bookkeeping software
4
+ [rustledger](https://github.com/rustledger/rustledger), a Rust-based
5
+ implementation of the Beancount format.
6
+
7
+ This is a fork of [Fava](https://github.com/beancount/fava) that replaces the
8
+ Python beancount parser with rustledger, compiled to WebAssembly for faster
9
+ parsing and processing.
10
+
11
+ ## Getting Started
12
+
13
+ ### Option 1: Desktop App (Recommended)
14
+
15
+ Download the desktop app from [GitHub Releases](https://github.com/rustledger/rustfava/releases):
16
+
17
+ - **macOS**: `rustfava_x.x.x_universal.dmg`
18
+ - **Windows**: `rustfava_x.x.x_x64-setup.exe`
19
+ - **Linux**: `rustfava_x.x.x_amd64.AppImage`
20
+
21
+ Double-click to launch, then open your `.beancount` file.
22
+
23
+ ### Option 2: Docker
24
+
25
+ Run the server in a container:
26
+
27
+ ```bash
28
+ docker run -p 5000:5000 -v /path/to/ledger:/data ghcr.io/rustledger/rustfava /data/main.beancount
29
+ ```
30
+
31
+ Then visit [http://localhost:5000](http://localhost:5000).
32
+
33
+ ### Option 3: uv install
34
+
35
+ For developers or advanced users. Requires Python 3.13+ and [wasmtime](https://wasmtime.dev/):
36
+
37
+ ```bash
38
+ uv tool install rustfava
39
+ rustfava ledger.beancount
40
+ ```
41
+
42
+ Then visit [http://localhost:5000](http://localhost:5000).
43
+
44
+ ## Development
45
+
46
+ See the repository for development instructions. Contributions are welcome!
47
+
48
+ ## Links
49
+
50
+ - Source: https://github.com/rustledger/rustfava
51
+ - Documentation: https://rustledger.github.io/rustfava/