rustfava 0.1.1__tar.gz → 0.1.4__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 (612) hide show
  1. {rustfava-0.1.1 → rustfava-0.1.4}/PKG-INFO +17 -7
  2. {rustfava-0.1.1 → rustfava-0.1.4}/README.md +16 -6
  3. rustfava-0.1.4/RELEASING.md +105 -0
  4. {rustfava-0.1.1 → rustfava-0.1.4}/_build_backend.py +4 -2
  5. rustfava-0.1.4/contrib/pyinstaller_spec.spec +102 -0
  6. {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src/main.ts +31 -9
  7. {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src-tauri/src/main.rs +50 -15
  8. rustfava-0.1.4/desktop-sources.json +7 -0
  9. {rustfava-0.1.1 → rustfava-0.1.4}/flake.lock +3 -3
  10. {rustfava-0.1.1 → rustfava-0.1.4}/flake.nix +38 -11
  11. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/bg/LC_MESSAGES/messages.mo +0 -0
  12. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/ca/LC_MESSAGES/messages.mo +0 -0
  13. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/de/LC_MESSAGES/messages.mo +0 -0
  14. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/es/LC_MESSAGES/messages.mo +0 -0
  15. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/fa/LC_MESSAGES/messages.mo +0 -0
  16. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/fr/LC_MESSAGES/messages.mo +0 -0
  17. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/ja/LC_MESSAGES/messages.mo +0 -0
  18. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/nl/LC_MESSAGES/messages.mo +0 -0
  19. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/pt/LC_MESSAGES/messages.mo +0 -0
  20. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/pt_BR/LC_MESSAGES/messages.mo +0 -0
  21. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/ru/LC_MESSAGES/messages.mo +0 -0
  22. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/sk/LC_MESSAGES/messages.mo +0 -0
  23. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/sv/LC_MESSAGES/messages.mo +0 -0
  24. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/uk/LC_MESSAGES/messages.mo +0 -0
  25. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/zh/LC_MESSAGES/messages.mo +0 -0
  26. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/zh_Hant_TW/LC_MESSAGES/messages.mo +0 -0
  27. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava.egg-info/PKG-INFO +17 -7
  28. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava.egg-info/SOURCES.txt +2 -0
  29. rustfava-0.1.1/contrib/pyinstaller_spec.spec +0 -54
  30. {rustfava-0.1.1 → rustfava-0.1.4}/.dev-bin/rustfava +0 -0
  31. {rustfava-0.1.1 → rustfava-0.1.4}/.dockerignore +0 -0
  32. {rustfava-0.1.1 → rustfava-0.1.4}/AUTHORS +0 -0
  33. {rustfava-0.1.1 → rustfava-0.1.4}/CONTRIBUTING.md +0 -0
  34. {rustfava-0.1.1 → rustfava-0.1.4}/Dockerfile +0 -0
  35. {rustfava-0.1.1 → rustfava-0.1.4}/LICENSE +0 -0
  36. {rustfava-0.1.1 → rustfava-0.1.4}/MANIFEST.in +0 -0
  37. {rustfava-0.1.1 → rustfava-0.1.4}/SECURITY.md +0 -0
  38. {rustfava-0.1.1 → rustfava-0.1.4}/biome.json +0 -0
  39. {rustfava-0.1.1 → rustfava-0.1.4}/contrib/docker/Dockerfile +0 -0
  40. {rustfava-0.1.1 → rustfava-0.1.4}/contrib/docker/README.md +0 -0
  41. {rustfava-0.1.1 → rustfava-0.1.4}/contrib/examples/budgets-example.beancount +0 -0
  42. {rustfava-0.1.1 → rustfava-0.1.4}/contrib/examples/example.beancount +0 -0
  43. {rustfava-0.1.1 → rustfava-0.1.4}/contrib/examples/huge-example.beancount +0 -0
  44. {rustfava-0.1.1 → rustfava-0.1.4}/contrib/icon.svg +0 -0
  45. {rustfava-0.1.1 → rustfava-0.1.4}/contrib/scripts.py +0 -0
  46. {rustfava-0.1.1 → rustfava-0.1.4}/desktop/.dev-bin/rustfava +0 -0
  47. {rustfava-0.1.1 → rustfava-0.1.4}/desktop/README.md +0 -0
  48. {rustfava-0.1.1 → rustfava-0.1.4}/desktop/build-sidecar.sh +0 -0
  49. {rustfava-0.1.1 → rustfava-0.1.4}/desktop/bun.lock +0 -0
  50. {rustfava-0.1.1 → rustfava-0.1.4}/desktop/index.html +0 -0
  51. {rustfava-0.1.1 → rustfava-0.1.4}/desktop/package.json +0 -0
  52. {rustfava-0.1.1 → rustfava-0.1.4}/desktop/scripts/ensure-rustledger.ts +0 -0
  53. {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src/index.html +0 -0
  54. {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src/logo.svg +0 -0
  55. {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src/styles.css +0 -0
  56. {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src-tauri/Cargo.lock +0 -0
  57. {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src-tauri/Cargo.toml +0 -0
  58. {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src-tauri/build.rs +0 -0
  59. {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src-tauri/capabilities/default.json +0 -0
  60. {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src-tauri/gen/schemas/acl-manifests.json +0 -0
  61. {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src-tauri/gen/schemas/capabilities.json +0 -0
  62. {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src-tauri/gen/schemas/desktop-schema.json +0 -0
  63. {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src-tauri/gen/schemas/linux-schema.json +0 -0
  64. {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src-tauri/icons/128x128.png +0 -0
  65. {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src-tauri/icons/128x128@2x.png +0 -0
  66. {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src-tauri/icons/32x32.png +0 -0
  67. {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src-tauri/icons/icon.icns +0 -0
  68. {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src-tauri/icons/icon.ico +0 -0
  69. {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src-tauri/icons/icon.png +0 -0
  70. {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src-tauri/tauri.conf.json +0 -0
  71. {rustfava-0.1.1 → rustfava-0.1.4}/desktop/vite.config.ts +0 -0
  72. {rustfava-0.1.1 → rustfava-0.1.4}/docs/api.md +0 -0
  73. {rustfava-0.1.1 → rustfava-0.1.4}/docs/changelog.md +0 -0
  74. {rustfava-0.1.1 → rustfava-0.1.4}/docs/deployment.md +0 -0
  75. {rustfava-0.1.1 → rustfava-0.1.4}/docs/development.md +0 -0
  76. {rustfava-0.1.1 → rustfava-0.1.4}/docs/index.md +0 -0
  77. {rustfava-0.1.1 → rustfava-0.1.4}/docs/logo.svg +0 -0
  78. {rustfava-0.1.1 → rustfava-0.1.4}/docs/screenshot.png +0 -0
  79. {rustfava-0.1.1 → rustfava-0.1.4}/docs/upstream-sync.md +0 -0
  80. {rustfava-0.1.1 → rustfava-0.1.4}/docs/usage.md +0 -0
  81. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/.npmrc +0 -0
  82. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/build.ts +0 -0
  83. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/bun.lock +0 -0
  84. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/css/base.css +0 -0
  85. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/css/charts.css +0 -0
  86. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/css/components.css +0 -0
  87. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/css/editor.css +0 -0
  88. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/css/fonts.css +0 -0
  89. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/css/grid.css +0 -0
  90. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/css/help.css +0 -0
  91. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/css/journal-table.css +0 -0
  92. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/css/layout.css +0 -0
  93. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/css/notifications.css +0 -0
  94. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/css/style.css +0 -0
  95. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/css/tree-table.css +0 -0
  96. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/deno.json +0 -0
  97. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/eslint.config.js +0 -0
  98. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/package.json +0 -0
  99. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/prettier.config.js +0 -0
  100. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/setup.js +0 -0
  101. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/AutocompleteInput.svelte +0 -0
  102. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/ambient.d.ts +0 -0
  103. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/api/index.ts +0 -0
  104. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/api/validators.ts +0 -0
  105. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/app.ts +0 -0
  106. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/Axis.svelte +0 -0
  107. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/BarChart.svelte +0 -0
  108. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/Chart.svelte +0 -0
  109. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/ChartLegend.svelte +0 -0
  110. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/ChartSwitcher.svelte +0 -0
  111. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/ConversionAndInterval.svelte +0 -0
  112. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/HierarchyContainer.svelte +0 -0
  113. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/Icicle.svelte +0 -0
  114. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/LineChart.svelte +0 -0
  115. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/ModeSwitch.svelte +0 -0
  116. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/ScatterPlot.svelte +0 -0
  117. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/SelectCombobox.svelte +0 -0
  118. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/Sunburst.svelte +0 -0
  119. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/Treemap.svelte +0 -0
  120. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/bar.ts +0 -0
  121. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/context.ts +0 -0
  122. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/helpers.ts +0 -0
  123. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/hierarchy.ts +0 -0
  124. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/index.ts +0 -0
  125. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/line.ts +0 -0
  126. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/query-charts.ts +0 -0
  127. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/scatterplot.ts +0 -0
  128. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/tooltip.ts +0 -0
  129. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/clipboard.ts +0 -0
  130. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/base-extensions.ts +0 -0
  131. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/beancount-autocomplete.ts +0 -0
  132. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/beancount-fold.ts +0 -0
  133. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/beancount-format.ts +0 -0
  134. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/beancount-highlight.ts +0 -0
  135. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/beancount-indent.ts +0 -0
  136. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/beancount-language.ts +0 -0
  137. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/beancount-snippets.ts +0 -0
  138. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/beancount.ts +0 -0
  139. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/bql-autocomplete.ts +0 -0
  140. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/bql-grammar.ts +0 -0
  141. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/bql-highlight.ts +0 -0
  142. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/bql-language.ts +0 -0
  143. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/bql-stream-parser.ts +0 -0
  144. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/bql.ts +0 -0
  145. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/dom.ts +0 -0
  146. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/editor-transactions.ts +0 -0
  147. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/ruler.ts +0 -0
  148. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/tree-sitter-beancount.wasm +0 -0
  149. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/tree-sitter-parser.ts +0 -0
  150. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/types.ts +0 -0
  151. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/editor/DeleteButton.svelte +0 -0
  152. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/editor/DocumentPreviewEditor.svelte +0 -0
  153. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/editor/SaveButton.svelte +0 -0
  154. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/editor/SliceEditor.svelte +0 -0
  155. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/entries/amount.ts +0 -0
  156. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/entries/cost.ts +0 -0
  157. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/entries/index.ts +0 -0
  158. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/entries/metadata.ts +0 -0
  159. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/entries/position.ts +0 -0
  160. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/entry-forms/AccountInput.svelte +0 -0
  161. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/entry-forms/AddMetadataButton.svelte +0 -0
  162. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/entry-forms/Balance.svelte +0 -0
  163. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/entry-forms/Entry.svelte +0 -0
  164. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/entry-forms/EntryMetadata.svelte +0 -0
  165. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/entry-forms/Note.svelte +0 -0
  166. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/entry-forms/Posting.svelte +0 -0
  167. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/entry-forms/Transaction.svelte +0 -0
  168. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/extension-api.d.ts +0 -0
  169. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/extensions.ts +0 -0
  170. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/format.ts +0 -0
  171. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/helpers.ts +0 -0
  172. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/i18n.ts +0 -0
  173. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/keyboard-shortcuts.ts +0 -0
  174. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/account.ts +0 -0
  175. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/array.ts +0 -0
  176. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/dom.ts +0 -0
  177. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/equals.ts +0 -0
  178. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/errors.ts +0 -0
  179. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/fetch.ts +0 -0
  180. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/focus.ts +0 -0
  181. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/fuzzy.ts +0 -0
  182. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/interval.ts +0 -0
  183. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/iso4217.ts +0 -0
  184. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/json.ts +0 -0
  185. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/objects.ts +0 -0
  186. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/paths.ts +0 -0
  187. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/regex.ts +0 -0
  188. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/result.ts +0 -0
  189. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/set.ts +0 -0
  190. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/sources.ts +0 -0
  191. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/store.ts +0 -0
  192. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/tree.ts +0 -0
  193. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/validation.ts +0 -0
  194. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/log.ts +0 -0
  195. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/modals/AddEntry.svelte +0 -0
  196. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/modals/Context.svelte +0 -0
  197. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/modals/DocumentUpload.svelte +0 -0
  198. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/modals/EntryContextBalances.svelte +0 -0
  199. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/modals/EntryContextLocation.svelte +0 -0
  200. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/modals/Export.svelte +0 -0
  201. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/modals/ModalBase.svelte +0 -0
  202. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/modals/Modals.svelte +0 -0
  203. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/modals/document-upload.ts +0 -0
  204. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/notifications.ts +0 -0
  205. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/ReportLoadError.svelte +0 -0
  206. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/accounts/AccountReport.svelte +0 -0
  207. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/accounts/index.ts +0 -0
  208. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/commodities/Commodities.svelte +0 -0
  209. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/commodities/CommodityTable.svelte +0 -0
  210. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/commodities/index.ts +0 -0
  211. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/documents/Accounts.svelte +0 -0
  212. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/documents/DocumentPreview.svelte +0 -0
  213. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/documents/Documents.svelte +0 -0
  214. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/documents/Table.svelte +0 -0
  215. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/documents/index.ts +0 -0
  216. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/documents/stores.ts +0 -0
  217. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/editor/AppMenu.svelte +0 -0
  218. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/editor/AppMenuItem.svelte +0 -0
  219. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/editor/AppMenuSubItem.svelte +0 -0
  220. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/editor/Editor.svelte +0 -0
  221. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/editor/EditorMenu.svelte +0 -0
  222. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/editor/Key.svelte +0 -0
  223. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/editor/Sources.svelte +0 -0
  224. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/editor/index.ts +0 -0
  225. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/editor/stores.ts +0 -0
  226. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/errors/Errors.svelte +0 -0
  227. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/errors/index.ts +0 -0
  228. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/events/EventTable.svelte +0 -0
  229. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/events/Events.svelte +0 -0
  230. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/events/index.ts +0 -0
  231. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/holdings/Holdings.svelte +0 -0
  232. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/holdings/index.ts +0 -0
  233. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/import/Extract.svelte +0 -0
  234. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/import/FileList.svelte +0 -0
  235. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/import/Import.svelte +0 -0
  236. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/import/ImportFileUpload.svelte +0 -0
  237. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/import/index.ts +0 -0
  238. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/journal/Journal.svelte +0 -0
  239. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/journal/JournalFilters.svelte +0 -0
  240. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/journal/JournalHeaders.svelte +0 -0
  241. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/journal/JournalTable.svelte +0 -0
  242. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/journal/click_handler.ts +0 -0
  243. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/journal/index.ts +0 -0
  244. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/journal/sort.ts +0 -0
  245. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/options/Options.svelte +0 -0
  246. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/options/OptionsTable.svelte +0 -0
  247. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/options/index.ts +0 -0
  248. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/query/Query.svelte +0 -0
  249. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/query/QueryBox.svelte +0 -0
  250. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/query/QueryEditor.svelte +0 -0
  251. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/query/QueryLinks.svelte +0 -0
  252. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/query/QueryTable.svelte +0 -0
  253. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/query/ReadonlyQueryEditor.svelte +0 -0
  254. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/query/index.ts +0 -0
  255. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/query/query_table.ts +0 -0
  256. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/route.svelte.ts +0 -0
  257. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/route.ts +0 -0
  258. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/routes.ts +0 -0
  259. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/statistics/EntriesByType.svelte +0 -0
  260. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/statistics/Statistics.svelte +0 -0
  261. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/statistics/UpdateActivity.svelte +0 -0
  262. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/statistics/index.ts +0 -0
  263. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/tree_reports/BalanceSheet.svelte +0 -0
  264. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/tree_reports/IncomeStatement.svelte +0 -0
  265. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/tree_reports/TrialBalance.svelte +0 -0
  266. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/tree_reports/index.ts +0 -0
  267. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/router.ts +0 -0
  268. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/sidebar/AccountIndicator.svelte +0 -0
  269. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/sidebar/AccountPageTitle.svelte +0 -0
  270. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/sidebar/AccountSelector.svelte +0 -0
  271. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/sidebar/AsideContents.svelte +0 -0
  272. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/sidebar/AsideWithButton.svelte +0 -0
  273. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/sidebar/FilterForm.svelte +0 -0
  274. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/sidebar/Header.svelte +0 -0
  275. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/sidebar/HeaderAndAside.svelte +0 -0
  276. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/sidebar/HeaderIcon.svelte +0 -0
  277. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/sidebar/PageTitle.svelte +0 -0
  278. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/sidebar/SidebarLink.svelte +0 -0
  279. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/sidebar/index.ts +0 -0
  280. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/sidebar/page-title.ts +0 -0
  281. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/sort/SortHeader.svelte +0 -0
  282. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/sort/index.ts +0 -0
  283. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/sort/sortable-table.ts +0 -0
  284. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/stores/accounts.ts +0 -0
  285. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/stores/chart.ts +0 -0
  286. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/stores/color_scheme.ts +0 -0
  287. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/stores/editor.ts +0 -0
  288. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/stores/fava_options.ts +0 -0
  289. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/stores/filters.ts +0 -0
  290. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/stores/format.ts +0 -0
  291. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/stores/index.ts +0 -0
  292. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/stores/journal.ts +0 -0
  293. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/stores/mtime.ts +0 -0
  294. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/stores/options.ts +0 -0
  295. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/stores/query.ts +0 -0
  296. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/stores/url.ts +0 -0
  297. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/svelte-custom-elements.ts +0 -0
  298. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/tree-table/AccountCell.svelte +0 -0
  299. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/tree-table/AccountCellHeader.svelte +0 -0
  300. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/tree-table/Diff.svelte +0 -0
  301. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/tree-table/IntervalTreeTable.svelte +0 -0
  302. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/tree-table/IntervalTreeTableNode.svelte +0 -0
  303. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/tree-table/TreeTable.svelte +0 -0
  304. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/tree-table/TreeTableNode.svelte +0 -0
  305. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/tree-table/helpers.ts +0 -0
  306. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/tree-table/tree-table-custom-element.ts +0 -0
  307. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/stylelint.config.js +0 -0
  308. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/sync-pre-commit.ts +0 -0
  309. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/AutocompleteInput.test.ts +0 -0
  310. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/account.test.ts +0 -0
  311. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/charts.test.ts +0 -0
  312. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/dom.ts +0 -0
  313. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/editor.test.ts +0 -0
  314. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/end-to-end-validation.test.ts +0 -0
  315. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/entries.test.ts +0 -0
  316. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/format.test.ts +0 -0
  317. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/fuzzy.test.ts +0 -0
  318. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/helpers.ts +0 -0
  319. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/misc.test.ts +0 -0
  320. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/parser.test.ts +0 -0
  321. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/paths.test.ts +0 -0
  322. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/result.test.ts +0 -0
  323. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/sources.test.ts +0 -0
  324. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/store.test.ts +0 -0
  325. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/tree.test.ts +0 -0
  326. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/urls.test.ts +0 -0
  327. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/validation.test.ts +0 -0
  328. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test.ts +0 -0
  329. {rustfava-0.1.1 → rustfava-0.1.4}/frontend/tsconfig.json +0 -0
  330. {rustfava-0.1.1 → rustfava-0.1.4}/justfile +0 -0
  331. {rustfava-0.1.1 → rustfava-0.1.4}/mkdocs.yml +0 -0
  332. {rustfava-0.1.1 → rustfava-0.1.4}/packaging/rpm/rustfava.spec +0 -0
  333. {rustfava-0.1.1 → rustfava-0.1.4}/pyproject.toml +0 -0
  334. {rustfava-0.1.1 → rustfava-0.1.4}/setup.cfg +0 -0
  335. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/__init__.py +0 -0
  336. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/_ctx_globals_class.py +0 -0
  337. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/api_models.py +0 -0
  338. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/application.py +0 -0
  339. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/beans/__init__.py +0 -0
  340. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/beans/abc.py +0 -0
  341. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/beans/account.py +0 -0
  342. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/beans/create.py +0 -0
  343. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/beans/flags.py +0 -0
  344. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/beans/funcs.py +0 -0
  345. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/beans/helpers.py +0 -0
  346. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/beans/ingest.py +0 -0
  347. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/beans/load.py +0 -0
  348. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/beans/prices.py +0 -0
  349. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/beans/protocols.py +0 -0
  350. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/beans/str.py +0 -0
  351. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/beans/types.py +0 -0
  352. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/cli.py +0 -0
  353. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/context.py +0 -0
  354. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/__init__.py +0 -0
  355. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/accounts.py +0 -0
  356. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/attributes.py +0 -0
  357. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/budgets.py +0 -0
  358. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/charts.py +0 -0
  359. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/commodities.py +0 -0
  360. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/conversion.py +0 -0
  361. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/documents.py +0 -0
  362. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/extensions.py +0 -0
  363. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/fava_options.py +0 -0
  364. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/file.py +0 -0
  365. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/filters.py +0 -0
  366. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/group_entries.py +0 -0
  367. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/ingest.py +0 -0
  368. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/inventory.py +0 -0
  369. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/misc.py +0 -0
  370. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/module_base.py +0 -0
  371. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/number.py +0 -0
  372. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/query.py +0 -0
  373. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/query_shell.py +0 -0
  374. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/tree.py +0 -0
  375. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/watcher.py +0 -0
  376. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/ext/__init__.py +0 -0
  377. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/ext/auto_commit.py +0 -0
  378. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/ext/portfolio_list/PortfolioList.js +0 -0
  379. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/ext/portfolio_list/__init__.py +0 -0
  380. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/ext/portfolio_list/templates/PortfolioList.html +0 -0
  381. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/ext/rustfava_ext_test/RustfavaExtTest.js +0 -0
  382. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/ext/rustfava_ext_test/__init__.py +0 -0
  383. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/ext/rustfava_ext_test/templates/RustfavaExtTest.html +0 -0
  384. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/ext/rustfava_ext_test/templates/RustfavaExtTestInclude.html +0 -0
  385. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/help/__init__.py +0 -0
  386. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/help/_index.md +0 -0
  387. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/help/beancount_syntax.md +0 -0
  388. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/help/budgets.md +0 -0
  389. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/help/conversion.md +0 -0
  390. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/help/extensions.md +0 -0
  391. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/help/features.md +0 -0
  392. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/help/filters.md +0 -0
  393. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/help/import.md +0 -0
  394. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/help/options.md +0 -0
  395. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/helpers.py +0 -0
  396. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/internal_api.py +0 -0
  397. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/json_api.py +0 -0
  398. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/plugins/__init__.py +0 -0
  399. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/plugins/link_documents.py +0 -0
  400. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/plugins/tag_discovered_documents.py +0 -0
  401. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/py.typed +0 -0
  402. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/rustledger/__init__.py +0 -0
  403. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/rustledger/constants.py +0 -0
  404. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/rustledger/engine.py +0 -0
  405. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/rustledger/loader.py +0 -0
  406. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/rustledger/options.py +0 -0
  407. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/rustledger/query.py +0 -0
  408. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/rustledger/types.py +0 -0
  409. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/serialisation.py +0 -0
  410. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/app.css +0 -0
  411. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/app.css.map +0 -0
  412. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/app.js +0 -0
  413. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/app.js.map +0 -0
  414. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/beancount-JFV44ZVZ.css +0 -0
  415. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/beancount-JFV44ZVZ.css.map +0 -0
  416. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/beancount-MH465CAD.js +0 -0
  417. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/beancount-MH465CAD.js.map +0 -0
  418. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/bql-MGFRUMBP.js +0 -0
  419. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/bql-MGFRUMBP.js.map +0 -0
  420. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/chunk-E7ZF4ASL.js +0 -0
  421. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/chunk-E7ZF4ASL.js.map +0 -0
  422. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/chunk-P3BY4CCB.js +0 -0
  423. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/chunk-P3BY4CCB.js.map +0 -0
  424. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/favicon.ico +0 -0
  425. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-mono-cyrillic-400-normal-BLAGXRCE.woff2 +0 -0
  426. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-mono-cyrillic-500-normal-EN7JUAAW.woff2 +0 -0
  427. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-mono-cyrillic-ext-400-normal-EX7VARTS.woff2 +0 -0
  428. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-mono-cyrillic-ext-500-normal-ZDPTUPRR.woff2 +0 -0
  429. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-mono-greek-400-normal-COGHKMOA.woff2 +0 -0
  430. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-mono-greek-500-normal-4EN2PKZT.woff2 +0 -0
  431. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-mono-greek-ext-400-normal-DYEQIJH7.woff2 +0 -0
  432. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-mono-greek-ext-500-normal-SG73CVKQ.woff2 +0 -0
  433. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-mono-latin-400-normal-NA3VLV7E.woff2 +0 -0
  434. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-mono-latin-500-normal-YC77GFWD.woff2 +0 -0
  435. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-mono-latin-ext-400-normal-DIKTZ5PW.woff2 +0 -0
  436. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-mono-latin-ext-500-normal-ZWY4UO4V.woff2 +0 -0
  437. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-mono-symbols2-400-normal-UITXT77Q.woff2 +0 -0
  438. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-mono-symbols2-500-normal-VWPC2EFN.woff2 +0 -0
  439. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-sans-cyrillic-400-normal-KLQMBCA6.woff2 +0 -0
  440. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-sans-cyrillic-500-normal-NFG7UD6J.woff2 +0 -0
  441. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-sans-cyrillic-ext-400-normal-GWO44OPC.woff2 +0 -0
  442. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-sans-cyrillic-ext-500-normal-SP47E5SC.woff2 +0 -0
  443. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-sans-greek-400-normal-UMQBTLC3.woff2 +0 -0
  444. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-sans-greek-500-normal-4ZKHN4FQ.woff2 +0 -0
  445. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-sans-greek-ext-400-normal-O2DVJAJZ.woff2 +0 -0
  446. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-sans-greek-ext-500-normal-SK6GNWGO.woff2 +0 -0
  447. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-sans-latin-400-normal-OYYTPMAV.woff2 +0 -0
  448. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-sans-latin-500-normal-SMQPZW5A.woff2 +0 -0
  449. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-sans-latin-ext-400-normal-OAUP3WK5.woff2 +0 -0
  450. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-sans-latin-ext-500-normal-LY3YDR5Y.woff2 +0 -0
  451. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-sans-vietnamese-400-normal-OBMQ72MR.woff2 +0 -0
  452. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-sans-vietnamese-500-normal-Y4NZR5EU.woff2 +0 -0
  453. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/source-code-pro-cyrillic-400-normal-TO22V6M3.woff2 +0 -0
  454. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/source-code-pro-cyrillic-500-normal-OGBWWWYW.woff2 +0 -0
  455. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/source-code-pro-cyrillic-ext-400-normal-XH44UCIA.woff2 +0 -0
  456. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/source-code-pro-cyrillic-ext-500-normal-3Z6MMVM6.woff2 +0 -0
  457. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/source-code-pro-greek-400-normal-OUXXUQWK.woff2 +0 -0
  458. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/source-code-pro-greek-500-normal-JA2Z5UXO.woff2 +0 -0
  459. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/source-code-pro-greek-ext-400-normal-WCDKMX7U.woff2 +0 -0
  460. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/source-code-pro-greek-ext-500-normal-ZHVI4VKW.woff2 +0 -0
  461. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/source-code-pro-latin-400-normal-QOGTXED5.woff2 +0 -0
  462. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/source-code-pro-latin-500-normal-X57QEOLQ.woff2 +0 -0
  463. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/source-code-pro-latin-ext-400-normal-QXC74NBF.woff2 +0 -0
  464. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/source-code-pro-latin-ext-500-normal-QGOY7MTT.woff2 +0 -0
  465. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/source-code-pro-vietnamese-400-normal-NPDCDTBA.woff2 +0 -0
  466. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/source-code-pro-vietnamese-500-normal-M6PJKTR5.woff2 +0 -0
  467. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/tree-sitter-beancount-MLXFQBZ5.wasm +0 -0
  468. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/web-tree-sitter-RNOQ6E74.wasm +0 -0
  469. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/template_filters.py +0 -0
  470. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/templates/_journal_table.html +0 -0
  471. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/templates/_layout.html +0 -0
  472. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/templates/_query_table.html +0 -0
  473. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/templates/beancount_file +0 -0
  474. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/templates/help.html +0 -0
  475. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/templates/macros/_account_macros.html +0 -0
  476. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/templates/macros/_commodity_macros.html +0 -0
  477. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/bg/LC_MESSAGES/messages.po +0 -0
  478. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/ca/LC_MESSAGES/messages.po +0 -0
  479. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/de/LC_MESSAGES/messages.po +0 -0
  480. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/es/LC_MESSAGES/messages.po +0 -0
  481. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/fa/LC_MESSAGES/messages.po +0 -0
  482. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/fr/LC_MESSAGES/messages.po +0 -0
  483. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/ja/LC_MESSAGES/messages.po +0 -0
  484. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/nl/LC_MESSAGES/messages.po +0 -0
  485. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/pt/LC_MESSAGES/messages.po +0 -0
  486. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/pt_BR/LC_MESSAGES/messages.po +0 -0
  487. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/ru/LC_MESSAGES/messages.po +0 -0
  488. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/sk/LC_MESSAGES/messages.po +0 -0
  489. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/sv/LC_MESSAGES/messages.po +0 -0
  490. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/uk/LC_MESSAGES/messages.po +0 -0
  491. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/zh/LC_MESSAGES/messages.po +0 -0
  492. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/zh_Hant_TW/LC_MESSAGES/messages.po +0 -0
  493. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/util/__init__.py +0 -0
  494. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/util/date.py +0 -0
  495. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/util/excel.py +0 -0
  496. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/util/ranking.py +0 -0
  497. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/util/sets.py +0 -0
  498. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/util/unreachable.py +0 -0
  499. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava.egg-info/dependency_links.txt +0 -0
  500. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava.egg-info/entry_points.txt +0 -0
  501. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava.egg-info/requires.txt +0 -0
  502. {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava.egg-info/top_level.txt +0 -0
  503. {rustfava-0.1.1 → rustfava-0.1.4}/stubs/beangulp/__init__.pyi +0 -0
  504. {rustfava-0.1.1 → rustfava-0.1.4}/stubs/beangulp/cache.pyi +0 -0
  505. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__init__.py +0 -0
  506. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_application-test_download_journal +0 -0
  507. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_attributes-test_narrations.json +0 -0
  508. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_charts-test_interval_totals-2.json +0 -0
  509. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_charts-test_interval_totals.json +0 -0
  510. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_charts-test_interval_totals_inverted-2.json +0 -0
  511. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_charts-test_interval_totals_inverted.json +0 -0
  512. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_charts-test_linechart_data-2.json +0 -0
  513. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_charts-test_linechart_data-3.json +0 -0
  514. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_charts-test_linechart_data-4.json +0 -0
  515. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_charts-test_linechart_data.json +0 -0
  516. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_charts-test_net_worth.json +0 -0
  517. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_charts-test_net_worth_off_by_one-2.json +0 -0
  518. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_charts-test_net_worth_off_by_one.json +0 -0
  519. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_file-test_render_entries +0 -0
  520. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_ingest-test_ingest_examplefile-2.json +0 -0
  521. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_ingest-test_ingest_examplefile.json +0 -0
  522. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_query_shell-test_query_balances +0 -0
  523. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_query_shell-test_query_to_file +0 -0
  524. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_query_shell-test_text_queries +0 -0
  525. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_tree-test_tree_cap +0 -0
  526. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_tree-test_tree_from_entries +0 -0
  527. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_tree-test_tree_from_entries-2 +0 -0
  528. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_internal_api-test_chart_api.json +0 -0
  529. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_internal_api-test_get_ledger_data.json +0 -0
  530. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api-account_report_off_by_one.json +0 -0
  531. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api-account_report_off_by_one_journal.json +0 -0
  532. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api-balance_sheet.json +0 -0
  533. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api-balance_sheet_with_cost.json +0 -0
  534. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api-commodities.json +0 -0
  535. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api-documents.json +0 -0
  536. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api-events.json +0 -0
  537. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api-income_statement.json +0 -0
  538. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api-journal.json +0 -0
  539. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api-narrations.json +0 -0
  540. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api-options.json +0 -0
  541. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api-statistics.json +0 -0
  542. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api-trial_balance.json +0 -0
  543. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api_context-2.json +0 -0
  544. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api_context-3.json +0 -0
  545. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api_context-4.json +0 -0
  546. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api_context.json +0 -0
  547. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api_errors +0 -0
  548. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api_imports-2.json +0 -0
  549. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api_imports.json +0 -0
  550. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api_payee_accounts.json +0 -0
  551. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api_payee_transaction.json +0 -0
  552. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api_query_result-balances.json +0 -0
  553. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api_query_result-help.json +0 -0
  554. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api_query_result-journal.json +0 -0
  555. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api_query_result-misc.json +0 -0
  556. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api_query_result-sum.json +0 -0
  557. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_serialisation-test_deserialise_posting_and_format +0 -0
  558. {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_serialisation-test_serialise_entry_types.json +0 -0
  559. {rustfava-0.1.1 → rustfava-0.1.4}/tests/conftest.py +0 -0
  560. {rustfava-0.1.1 → rustfava-0.1.4}/tests/data/edit-example.beancount +0 -0
  561. {rustfava-0.1.1 → rustfava-0.1.4}/tests/data/errors.beancount +0 -0
  562. {rustfava-0.1.1 → rustfava-0.1.4}/tests/data/example-balances.csv +0 -0
  563. {rustfava-0.1.1 → rustfava-0.1.4}/tests/data/example-utf8-/360/237/246/201.txt" +0 -0
  564. {rustfava-0.1.1 → rustfava-0.1.4}/tests/data/example.beancount +0 -0
  565. {rustfava-0.1.1 → rustfava-0.1.4}/tests/data/extension-report-example.beancount +0 -0
  566. {rustfava-0.1.1 → rustfava-0.1.4}/tests/data/import.beancount +0 -0
  567. {rustfava-0.1.1 → rustfava-0.1.4}/tests/data/import.csv +0 -0
  568. {rustfava-0.1.1 → rustfava-0.1.4}/tests/data/import_config.py +0 -0
  569. {rustfava-0.1.1 → rustfava-0.1.4}/tests/data/import_config_with_duplicate_names.py +0 -0
  570. {rustfava-0.1.1 → rustfava-0.1.4}/tests/data/invalid-unicode.beancount +0 -0
  571. {rustfava-0.1.1 → rustfava-0.1.4}/tests/data/long-example.beancount +0 -0
  572. {rustfava-0.1.1 → rustfava-0.1.4}/tests/data/off-by-one.beancount +0 -0
  573. {rustfava-0.1.1 → rustfava-0.1.4}/tests/data/query-example.beancount +0 -0
  574. {rustfava-0.1.1 → rustfava-0.1.4}/tests/data/receipt.pdf +0 -0
  575. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_application.py +0 -0
  576. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_beans.py +0 -0
  577. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_beans_str.py +0 -0
  578. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_build_backend.py +0 -0
  579. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_cli.py +0 -0
  580. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_core.py +0 -0
  581. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_core_accounts.py +0 -0
  582. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_core_attributes.py +0 -0
  583. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_core_budgets.py +0 -0
  584. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_core_charts.py +0 -0
  585. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_core_commodities.py +0 -0
  586. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_core_conversion.py +0 -0
  587. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_core_documents.py +0 -0
  588. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_core_fava_options.py +0 -0
  589. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_core_file.py +0 -0
  590. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_core_filters.py +0 -0
  591. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_core_ingest.py +0 -0
  592. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_core_inventory.py +0 -0
  593. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_core_misc.py +0 -0
  594. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_core_number.py +0 -0
  595. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_core_query_shell.py +0 -0
  596. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_core_tree.py +0 -0
  597. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_core_watcher.py +0 -0
  598. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_ext.py +0 -0
  599. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_extensions.py +0 -0
  600. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_internal_api.py +0 -0
  601. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_json_api.py +0 -0
  602. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_plugins_link_documents.py +0 -0
  603. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_plugins_tag_discovered_documents.py +0 -0
  604. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_serialisation.py +0 -0
  605. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_template_filters.py +0 -0
  606. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_templates.py +0 -0
  607. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_util.py +0 -0
  608. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_util_date.py +0 -0
  609. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_util_excel.py +0 -0
  610. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_util_ranking.py +0 -0
  611. {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_util_sets.py +0 -0
  612. {rustfava-0.1.1 → rustfava-0.1.4}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rustfava
3
- Version: 0.1.1
3
+ Version: 0.1.4
4
4
  Summary: Web interface for the accounting tool rustledger.
5
5
  Author-email: Dominik Aumayr <dominik@aumayr.name>
6
6
  Maintainer-email: Jakob Schnitzer <mail@jakobschnitzer.de>
@@ -57,7 +57,7 @@ Dynamic: license-file
57
57
 
58
58
  Manage your finances with plain text accounting.
59
59
 
60
- [![CI](https://github.com/rustledger/rustfava/actions/workflows/ci.yml/badge.svg)](https://github.com/rustledger/rustfava/actions/workflows/ci.yml)
60
+ [![CI](https://github.com/rustledger/rustfava/actions/workflows/test.yml/badge.svg)](https://github.com/rustledger/rustfava/actions/workflows/test.yml)
61
61
  [![GitHub Release](https://img.shields.io/github/v/release/rustledger/rustfava)](https://github.com/rustledger/rustfava/releases)
62
62
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
63
63
  [![PyPI](https://img.shields.io/pypi/v/rustfava)](https://pypi.org/project/rustfava/)
@@ -81,13 +81,23 @@ Manage your finances with plain text accounting.
81
81
 
82
82
  ## Install
83
83
 
84
- | Platform | Download |
85
- |----------|----------|
86
- | **macOS** | [`rustfava_0.1.0_aarch64.dmg`](https://github.com/rustledger/rustfava/releases/download/v0.1.0/rustfava_0.1.0_aarch64.dmg) |
87
- | **Windows** | [`rustfava_0.1.0_x64-setup.exe`](https://github.com/rustledger/rustfava/releases/download/v0.1.0/rustfava_0.1.0_x64-setup.exe) |
88
- | **Linux** | [`rustfava_0.1.0_amd64.AppImage`](https://github.com/rustledger/rustfava/releases/download/v0.1.0/rustfava_0.1.0_amd64.AppImage) |
84
+ ### Desktop App
85
+
86
+ Download the latest release for your platform from the [Releases page](https://github.com/rustledger/rustfava/releases/latest).
87
+
88
+ | Platform | Format |
89
+ |----------|--------|
90
+ | **macOS** | `.dmg` (Intel & Apple Silicon) |
91
+ | **Windows** | `.exe` installer or `.msi` |
92
+ | **Linux** | `.AppImage`, `.deb`, `.rpm`, or `.tar.gz` |
93
+
94
+ ### Other Installation Methods
95
+
96
+ | Method | Command |
97
+ |--------|---------|
89
98
  | **Docker** | `docker run -p 5000:5000 -v /path/to/ledger:/data ghcr.io/rustledger/rustfava /data/main.beancount` |
90
99
  | **PyPI** | `uv tool install rustfava` (requires Python 3.13+ and [wasmtime](https://wasmtime.dev/)) |
100
+ | **Nix** | `nix run github:rustledger/rustfava#desktop` |
91
101
 
92
102
  <sub>Missing your platform? [Open an issue](https://github.com/rustledger/rustfava/issues/new) to request it.</sub>
93
103
 
@@ -6,7 +6,7 @@
6
6
 
7
7
  Manage your finances with plain text accounting.
8
8
 
9
- [![CI](https://github.com/rustledger/rustfava/actions/workflows/ci.yml/badge.svg)](https://github.com/rustledger/rustfava/actions/workflows/ci.yml)
9
+ [![CI](https://github.com/rustledger/rustfava/actions/workflows/test.yml/badge.svg)](https://github.com/rustledger/rustfava/actions/workflows/test.yml)
10
10
  [![GitHub Release](https://img.shields.io/github/v/release/rustledger/rustfava)](https://github.com/rustledger/rustfava/releases)
11
11
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
12
12
  [![PyPI](https://img.shields.io/pypi/v/rustfava)](https://pypi.org/project/rustfava/)
@@ -30,13 +30,23 @@ Manage your finances with plain text accounting.
30
30
 
31
31
  ## Install
32
32
 
33
- | Platform | Download |
34
- |----------|----------|
35
- | **macOS** | [`rustfava_0.1.0_aarch64.dmg`](https://github.com/rustledger/rustfava/releases/download/v0.1.0/rustfava_0.1.0_aarch64.dmg) |
36
- | **Windows** | [`rustfava_0.1.0_x64-setup.exe`](https://github.com/rustledger/rustfava/releases/download/v0.1.0/rustfava_0.1.0_x64-setup.exe) |
37
- | **Linux** | [`rustfava_0.1.0_amd64.AppImage`](https://github.com/rustledger/rustfava/releases/download/v0.1.0/rustfava_0.1.0_amd64.AppImage) |
33
+ ### Desktop App
34
+
35
+ Download the latest release for your platform from the [Releases page](https://github.com/rustledger/rustfava/releases/latest).
36
+
37
+ | Platform | Format |
38
+ |----------|--------|
39
+ | **macOS** | `.dmg` (Intel & Apple Silicon) |
40
+ | **Windows** | `.exe` installer or `.msi` |
41
+ | **Linux** | `.AppImage`, `.deb`, `.rpm`, or `.tar.gz` |
42
+
43
+ ### Other Installation Methods
44
+
45
+ | Method | Command |
46
+ |--------|---------|
38
47
  | **Docker** | `docker run -p 5000:5000 -v /path/to/ledger:/data ghcr.io/rustledger/rustfava /data/main.beancount` |
39
48
  | **PyPI** | `uv tool install rustfava` (requires Python 3.13+ and [wasmtime](https://wasmtime.dev/)) |
49
+ | **Nix** | `nix run github:rustledger/rustfava#desktop` |
40
50
 
41
51
  <sub>Missing your platform? [Open an issue](https://github.com/rustledger/rustfava/issues/new) to request it.</sub>
42
52
 
@@ -0,0 +1,105 @@
1
+ # Releasing rustfava
2
+
3
+ This document describes the release process for rustfava.
4
+
5
+ ## Overview
6
+
7
+ A release involves:
8
+ 1. Creating a git tag
9
+ 2. Automated builds (desktop apps, PyPI, Docker)
10
+ 3. Publishing the release
11
+ 4. Updating Nix flake sources
12
+
13
+ ## Step-by-Step Process
14
+
15
+ ### 1. Create and push a version tag
16
+
17
+ ```bash
18
+ git checkout main
19
+ git pull
20
+ git tag v0.1.x
21
+ git push origin v0.1.x
22
+ ```
23
+
24
+ ### 2. Wait for CI workflows
25
+
26
+ The tag triggers several workflows:
27
+
28
+ | Workflow | Purpose | Duration |
29
+ |----------|---------|----------|
30
+ | `desktop-release.yml` | Builds desktop apps for all platforms | ~10 min |
31
+ | `build-publish.yml` | Builds and publishes to PyPI, Docker, COPR | ~60 min |
32
+
33
+ Monitor at: https://github.com/rustledger/rustfava/actions
34
+
35
+ ### 3. Approve PyPI deployment
36
+
37
+ The PyPI environment requires manual approval:
38
+ - Go to the running `build-publish.yml` workflow
39
+ - Click "Review deployments"
40
+ - Approve the `pypi` environment
41
+
42
+ ### 4. Publish the GitHub release
43
+
44
+ Once `desktop-release.yml` completes, it creates a **draft release** with:
45
+ - `.AppImage` (Linux)
46
+ - `.deb`, `.rpm` (Linux packages)
47
+ - `.dmg` (macOS)
48
+ - `.msi`, `.exe` (Windows)
49
+ - `.tar.gz` (Linux tarball for Nix)
50
+
51
+ Publish it:
52
+ ```bash
53
+ gh release edit v0.1.x --draft=false
54
+ ```
55
+
56
+ Or via GitHub UI: https://github.com/rustledger/rustfava/releases
57
+
58
+ ### 5. Update Nix flake sources
59
+
60
+ Publishing the release triggers `update-flake-sources.yml`, which:
61
+ 1. Downloads release tarballs
62
+ 2. Computes SRI hashes
63
+ 3. Creates a PR updating `desktop-sources.json`
64
+
65
+ Merge the PR when it passes CI.
66
+
67
+ ### 6. Verify
68
+
69
+ Test the release:
70
+
71
+ ```bash
72
+ # Desktop app via Nix
73
+ nix run github:rustledger/rustfava#desktop --refresh
74
+
75
+ # CLI via Nix
76
+ nix run github:rustledger/rustfava --refresh
77
+
78
+ # CLI via PyPI
79
+ uv tool install rustfava --upgrade
80
+
81
+ # Docker
82
+ docker pull ghcr.io/rustledger/rustfava:v0.1.x
83
+ ```
84
+
85
+ ## Release Artifacts
86
+
87
+ | Artifact | Source | Distribution |
88
+ |----------|--------|--------------|
89
+ | Desktop apps | `desktop-release.yml` | GitHub Releases |
90
+ | Python package | `build-publish.yml` | PyPI |
91
+ | Docker image | `build-publish.yml` | GHCR |
92
+ | Nix flake | `flake.nix` + `desktop-sources.json` | GitHub |
93
+
94
+ ## Troubleshooting
95
+
96
+ ### Draft release not created
97
+ Check that `desktop-release.yml` completed successfully. The release job only runs on tags.
98
+
99
+ ### Nix flake sources not updated
100
+ The `update-flake-sources.yml` workflow only triggers on `release: published` events. Make sure the release is not still in draft.
101
+
102
+ ### PyPI publish failed
103
+ Check the workflow logs. Common issues:
104
+ - Version already exists on PyPI (can't overwrite)
105
+ - Missing approval for the `pypi` environment
@@ -9,8 +9,6 @@ from os import walk
9
9
  from pathlib import Path
10
10
  from typing import TYPE_CHECKING
11
11
 
12
- from babel.messages.mofile import write_mo
13
- from babel.messages.pofile import read_po
14
12
  from setuptools import build_meta
15
13
  from setuptools.build_meta import get_requires_for_build_editable
16
14
  from setuptools.build_meta import get_requires_for_build_sdist
@@ -69,6 +67,10 @@ def _compile_frontend() -> None:
69
67
 
70
68
  def _compile_translations() -> None:
71
69
  """Compile the translations from .po to .mo (if changed or missing)."""
70
+ # Lazy import to avoid requiring Babel for metadata preparation
71
+ from babel.messages.mofile import write_mo
72
+ from babel.messages.pofile import read_po
73
+
72
74
  for source in Path().glob("src/rustfava/translations/**/messages.po"):
73
75
  target = source.parent / "messages.mo"
74
76
  if (
@@ -0,0 +1,102 @@
1
+ # vim: set ft=python:
2
+ """Pyinstaller spec file for building a binary from rustfava's cli.py
3
+
4
+ This spec works without pip installing rustfava - it uses the source directly.
5
+ """
6
+
7
+ from __future__ import annotations
8
+
9
+ import os
10
+ import sys
11
+ from pathlib import Path
12
+
13
+ from PyInstaller.utils.hooks import collect_data_files
14
+ from PyInstaller.utils.hooks import collect_submodules
15
+
16
+ # Get the project root (parent of contrib/)
17
+ spec_dir = Path(SPECPATH)
18
+ project_root = spec_dir.parent
19
+ src_dir = project_root / "src"
20
+ rustfava_dir = src_dir / "rustfava"
21
+
22
+ # Add src/ to path so PyInstaller can find rustfava
23
+ sys.path.insert(0, str(src_dir))
24
+
25
+ # Collect data files from source directory
26
+ datas = []
27
+
28
+ # Static files (CSS, JS, etc.)
29
+ static_dir = rustfava_dir / "static"
30
+ if static_dir.exists():
31
+ for f in static_dir.rglob("*"):
32
+ if f.is_file():
33
+ rel_path = f.relative_to(rustfava_dir)
34
+ datas.append((str(f), f"rustfava/{rel_path.parent}"))
35
+
36
+ # Templates
37
+ templates_dir = rustfava_dir / "templates"
38
+ if templates_dir.exists():
39
+ for f in templates_dir.rglob("*"):
40
+ if f.is_file():
41
+ rel_path = f.relative_to(rustfava_dir)
42
+ datas.append((str(f), f"rustfava/{rel_path.parent}"))
43
+
44
+ # Translations (.mo files)
45
+ translations_dir = rustfava_dir / "translations"
46
+ if translations_dir.exists():
47
+ for f in translations_dir.rglob("*.mo"):
48
+ rel_path = f.relative_to(rustfava_dir)
49
+ datas.append((str(f), f"rustfava/{rel_path.parent}"))
50
+
51
+ # WASM file for rustledger
52
+ wasm_file = rustfava_dir / "rustledger" / "rustledger-wasi.wasm"
53
+ if wasm_file.exists():
54
+ datas.append((str(wasm_file), "rustfava/rustledger"))
55
+
56
+ # Help files
57
+ help_dir = rustfava_dir / "help"
58
+ if help_dir.exists():
59
+ for f in help_dir.rglob("*"):
60
+ if f.is_file():
61
+ rel_path = f.relative_to(rustfava_dir)
62
+ datas.append((str(f), f"rustfava/{rel_path.parent}"))
63
+
64
+ # Hidden imports
65
+ hiddenimports = [
66
+ "rustfava",
67
+ "rustfava.application",
68
+ "rustfava.cli",
69
+ "rustfava.core",
70
+ "rustfava.rustledger",
71
+ "rustfava.serialisation",
72
+ ]
73
+
74
+ # Optionally add beancount for legacy plugin support
75
+ try:
76
+ hiddenimports += collect_submodules("beancount")
77
+ datas += collect_data_files("beancount")
78
+ except Exception:
79
+ pass
80
+
81
+ a = Analysis(
82
+ [str(rustfava_dir / "cli.py")],
83
+ pathex=[str(src_dir)],
84
+ datas=datas,
85
+ hiddenimports=hiddenimports,
86
+ )
87
+
88
+ pyz = PYZ(
89
+ a.pure,
90
+ a.zipped_data,
91
+ )
92
+
93
+ exe = EXE(
94
+ pyz,
95
+ a.scripts,
96
+ a.binaries,
97
+ a.zipfiles,
98
+ a.datas,
99
+ [],
100
+ name="rustfava",
101
+ upx=True,
102
+ )
@@ -99,19 +99,41 @@ function getRecentFiles(): string[] {
99
99
  }
100
100
  }
101
101
 
102
- function addRecentFile(path: string) {
103
- let recent = getRecentFiles().filter((p) => p !== path);
104
- recent.unshift(path);
105
- recent = recent.slice(0, MAX_RECENT);
106
- localStorage.setItem(STORAGE_KEY, JSON.stringify(recent));
107
- renderRecentFiles();
102
+ function saveRecentFiles(paths: string[]) {
103
+ localStorage.setItem(STORAGE_KEY, JSON.stringify(paths.slice(0, MAX_RECENT)));
108
104
  }
109
105
 
110
- function renderRecentFiles() {
111
- const recent = getRecentFiles();
106
+ async function addRecentFile(path: string) {
107
+ // Normalize path to prevent duplicates from different representations
108
+ try {
109
+ const normalized = await invoke<string>("normalize_path", { path });
110
+ let recent = getRecentFiles().filter((p) => p !== normalized);
111
+ recent.unshift(normalized);
112
+ saveRecentFiles(recent);
113
+ renderRecentFiles();
114
+ } catch {
115
+ // File doesn't exist or can't be normalized, skip adding
116
+ }
117
+ }
118
+
119
+ async function renderRecentFiles() {
120
+ const stored = getRecentFiles();
112
121
  const sidebar = document.getElementById("sidebar")!;
113
122
  const list = document.getElementById("recentList")!;
114
123
 
124
+ if (stored.length === 0) {
125
+ sidebar.classList.add("empty");
126
+ return;
127
+ }
128
+
129
+ // Filter to only existing files
130
+ const recent = await invoke<string[]>("filter_existing_paths", { paths: stored });
131
+
132
+ // Update storage if some files were removed
133
+ if (recent.length !== stored.length) {
134
+ saveRecentFiles(recent);
135
+ }
136
+
115
137
  if (recent.length === 0) {
116
138
  sidebar.classList.add("empty");
117
139
  return;
@@ -267,7 +289,7 @@ async function openPath(path: string) {
267
289
  try {
268
290
  const result = await invoke<OpenFileResult>("open_file", { path });
269
291
 
270
- addRecentFile(path);
292
+ await addRecentFile(path);
271
293
 
272
294
  if (result.already_open) {
273
295
  switchTab(result.tab_id);
@@ -64,20 +64,29 @@ fn get_example_file_path(app: AppHandle) -> Result<String, String> {
64
64
  /// Returns all inherited env vars with PATH modified to include sidecar directory
65
65
  #[tauri::command]
66
66
  fn get_terminal_env(app: AppHandle) -> Result<std::collections::HashMap<String, String>, String> {
67
- // Get the sidecar directory
68
- let resource_dir = app.path().resource_dir()
69
- .map_err(|e| format!("Failed to get resource dir: {}", e))?;
70
-
71
67
  // Collect all current environment variables
72
68
  let mut env: std::collections::HashMap<String, String> = std::env::vars().collect();
73
-
74
- // Prepend sidecar directory to PATH
75
69
  let current_path = env.get("PATH").cloned().unwrap_or_default();
76
- let new_path = format!("{}:{}", resource_dir.to_string_lossy(), current_path);
77
- env.insert("PATH".to_string(), new_path);
78
70
 
79
- // Add marker for sidecar directory
80
- env.insert("RUSTFAVA_SIDECAR_DIR".to_string(), resource_dir.to_string_lossy().to_string());
71
+ // Build PATH with multiple possible locations for binaries
72
+ let mut path_dirs = Vec::new();
73
+
74
+ // 1. Executable's directory (for Nix flake installs where binaries are siblings)
75
+ if let Ok(exe_path) = std::env::current_exe() {
76
+ if let Some(exe_dir) = exe_path.parent() {
77
+ path_dirs.push(exe_dir.to_string_lossy().to_string());
78
+ }
79
+ }
80
+
81
+ // 2. Resource directory (for Tauri bundled apps)
82
+ if let Ok(resource_dir) = app.path().resource_dir() {
83
+ path_dirs.push(resource_dir.to_string_lossy().to_string());
84
+ env.insert("RUSTFAVA_SIDECAR_DIR".to_string(), resource_dir.to_string_lossy().to_string());
85
+ }
86
+
87
+ // Prepend our directories to PATH
88
+ path_dirs.push(current_path);
89
+ env.insert("PATH".to_string(), path_dirs.join(":"));
81
90
 
82
91
  Ok(env)
83
92
  }
@@ -148,16 +157,16 @@ fn spawn_rustfava_server(app: &AppHandle, path: &str, port: u16) -> Result<Comma
148
157
  }
149
158
  }
150
159
 
151
- // Fall back to rustfava from PATH (for NixOS/system installs)
152
- // This allows the desktop app to work when rustfava CLI is installed separately
160
+ // Fall back to rustfava-server from PATH (for NixOS flake installs)
161
+ // The flake creates symlinks without the target triple suffix
153
162
  let command = app
154
163
  .shell()
155
- .command("rustfava")
164
+ .command("rustfava-server")
156
165
  .args([path, "-p", &port.to_string()]);
157
166
 
158
167
  let (_, child) = command
159
168
  .spawn()
160
- .map_err(|e| format!("Failed to spawn rustfava: {}. Make sure rustfava is installed and in PATH.", e))?;
169
+ .map_err(|e| format!("Failed to spawn rustfava-server: {}. Make sure the desktop app is properly installed.", e))?;
161
170
 
162
171
  Ok(child)
163
172
  }
@@ -200,6 +209,30 @@ fn get_default_shell() -> serde_json::Value {
200
209
  })
201
210
  }
202
211
 
212
+ /// Normalize a path and check if it exists
213
+ #[tauri::command]
214
+ fn normalize_path(path: String) -> Result<String, String> {
215
+ let path = std::path::Path::new(&path);
216
+ match path.canonicalize() {
217
+ Ok(canonical) => Ok(canonical.to_string_lossy().to_string()),
218
+ Err(_) => Err("File does not exist".to_string()),
219
+ }
220
+ }
221
+
222
+ /// Filter a list of paths to only those that exist, returning normalized paths
223
+ #[tauri::command]
224
+ fn filter_existing_paths(paths: Vec<String>) -> Vec<String> {
225
+ paths
226
+ .into_iter()
227
+ .filter_map(|p| {
228
+ std::path::Path::new(&p)
229
+ .canonicalize()
230
+ .ok()
231
+ .map(|c| c.to_string_lossy().to_string())
232
+ })
233
+ .collect()
234
+ }
235
+
203
236
  #[cfg(any(target_os = "macos", target_os = "linux"))]
204
237
  fn get_shell_and_args() -> (String, Vec<String>) {
205
238
  // Get user's actual login shell from system (not $SHELL which may be overridden by nix/etc)
@@ -374,7 +407,9 @@ fn main() {
374
407
  get_tabs,
375
408
  get_default_shell,
376
409
  get_terminal_env,
377
- get_example_file_path
410
+ get_example_file_path,
411
+ normalize_path,
412
+ filter_existing_paths
378
413
  ])
379
414
  .on_window_event(|window, event| {
380
415
  if let tauri::WindowEvent::CloseRequested { .. } = event {
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": "0.1.3",
3
+ "x86_64-linux": {
4
+ "url": "https://github.com/rustledger/rustfava/releases/download/v0.1.3/rustfava-desktop-x86_64-unknown-linux-gnu.tar.gz",
5
+ "hash": "sha256-LxGIIjXKLsY4JdLjelBs/4BbK731WFOgOBTpBZ+ZclA="
6
+ }
7
+ }
@@ -20,11 +20,11 @@
20
20
  },
21
21
  "nixpkgs": {
22
22
  "locked": {
23
- "lastModified": 1769018530,
24
- "narHash": "sha256-MJ27Cy2NtBEV5tsK+YraYr2g851f3Fl1LpNHDzDX15c=",
23
+ "lastModified": 1769170682,
24
+ "narHash": "sha256-oMmN1lVQU0F0W2k6OI3bgdzp2YOHWYUAw79qzDSjenU=",
25
25
  "owner": "NixOS",
26
26
  "repo": "nixpkgs",
27
- "rev": "88d3861acdd3d2f0e361767018218e51810df8a1",
27
+ "rev": "c5296fdd05cfa2c187990dd909864da9658df755",
28
28
  "type": "github"
29
29
  },
30
30
  "original": {
@@ -11,10 +11,19 @@
11
11
  let
12
12
  pkgs = import nixpkgs { inherit system; };
13
13
 
14
- # Version to download from releases
15
- version = "0.1.0";
16
-
17
- # Target triple for the current platform
14
+ # Read sources from JSON file (updated by CI)
15
+ desktopSources = builtins.fromJSON (builtins.readFile ./desktop-sources.json);
16
+ version = desktopSources.version;
17
+
18
+ # Map Nix system to sources key
19
+ systemKey =
20
+ if system == "x86_64-linux" then "x86_64-linux"
21
+ else if system == "aarch64-linux" then "aarch64-linux"
22
+ else if system == "x86_64-darwin" then "x86_64-darwin"
23
+ else if system == "aarch64-darwin" then "aarch64-darwin"
24
+ else throw "Unsupported system: ${system}";
25
+
26
+ # Target triple for the current platform (used in tarball name)
18
27
  targetTriple =
19
28
  if pkgs.stdenv.isLinux then
20
29
  if pkgs.stdenv.hostPlatform.isx86_64 then "x86_64-unknown-linux-gnu"
@@ -25,15 +34,18 @@
25
34
  else "x86_64-apple-darwin"
26
35
  else throw "Unsupported platform";
27
36
 
37
+ # Get source for this system (if available)
38
+ hasDesktopSource = desktopSources ? ${systemKey};
39
+ desktopSource = if hasDesktopSource then desktopSources.${systemKey} else null;
40
+
28
41
  # Download desktop tarball from GitHub releases
29
- desktopTarball = pkgs.fetchurl {
30
- url = "https://github.com/rustledger/rustfava/releases/download/v${version}/rustfava-desktop-${targetTriple}.tar.gz";
31
- # TODO: Update hash after first release with tarball
32
- hash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";
33
- };
42
+ desktopTarball = if hasDesktopSource then pkgs.fetchurl {
43
+ url = desktopSource.url;
44
+ hash = desktopSource.hash;
45
+ } else null;
34
46
 
35
47
  # Desktop app from release tarball
36
- rustfava-desktop = pkgs.stdenv.mkDerivation {
48
+ rustfava-desktop = if desktopTarball != null then pkgs.stdenv.mkDerivation {
37
49
  pname = "rustfava-desktop";
38
50
  inherit version;
39
51
 
@@ -64,6 +76,19 @@
64
76
  mkdir -p $out
65
77
  cp -r bin lib $out/
66
78
 
79
+ # Create symlinks without target triple suffix for PATH lookup
80
+ # The desktop app falls back to these when sidecar lookup fails
81
+ for bin in $out/bin/*-${targetTriple}*; do
82
+ if [ -f "$bin" ]; then
83
+ base=$(basename "$bin" | sed "s/-${targetTriple}//")
84
+ ln -sf "$(basename "$bin")" "$out/bin/$base"
85
+ fi
86
+ done
87
+
88
+ # Create rustfava -> rustfava-server symlink for backwards compatibility
89
+ # Old releases look for 'rustfava' in PATH as fallback
90
+ ln -sf "rustfava-server-${targetTriple}" "$out/bin/rustfava"
91
+
67
92
  # Wrap all binaries with wasmtime in PATH and GTK settings
68
93
  for bin in $out/bin/*; do
69
94
  if [ -f "$bin" ] && [ -x "$bin" ]; then
@@ -82,7 +107,7 @@
82
107
  platforms = platforms.linux;
83
108
  mainProgram = "rustfava-desktop";
84
109
  };
85
- };
110
+ } else null;
86
111
 
87
112
  # Python with Rustfava dependencies for dev shell
88
113
  pythonEnv = pkgs.python313.withPackages (ps: with ps; [
@@ -111,6 +136,7 @@
111
136
  in {
112
137
  packages = {
113
138
  default = rustfava;
139
+ } // pkgs.lib.optionalAttrs (rustfava-desktop != null) {
114
140
  desktop = rustfava-desktop;
115
141
  };
116
142
 
@@ -119,6 +145,7 @@
119
145
  type = "app";
120
146
  program = "${rustfava}/bin/rustfava";
121
147
  };
148
+ } // pkgs.lib.optionalAttrs (rustfava-desktop != null) {
122
149
  desktop = {
123
150
  type = "app";
124
151
  program = "${rustfava-desktop}/bin/rustfava-desktop";