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.
- rustfava-0.1.0/.dev-bin/rustfava +2 -0
- rustfava-0.1.0/.dockerignore +47 -0
- rustfava-0.1.0/AUTHORS +11 -0
- rustfava-0.1.0/CONTRIBUTING.md +21 -0
- rustfava-0.1.0/Dockerfile +57 -0
- rustfava-0.1.0/LICENSE +21 -0
- rustfava-0.1.0/MANIFEST.in +13 -0
- rustfava-0.1.0/PKG-INFO +102 -0
- rustfava-0.1.0/README.md +51 -0
- rustfava-0.1.0/RUSTLEDGER_WASI_SPEC.md +451 -0
- rustfava-0.1.0/SECURITY.md +55 -0
- rustfava-0.1.0/_build_backend.py +123 -0
- rustfava-0.1.0/biome.json +56 -0
- rustfava-0.1.0/contrib/docker/Dockerfile +32 -0
- rustfava-0.1.0/contrib/docker/README.md +249 -0
- rustfava-0.1.0/contrib/examples/budgets-example.beancount +6604 -0
- rustfava-0.1.0/contrib/examples/example.beancount +6519 -0
- rustfava-0.1.0/contrib/examples/huge-example.beancount +18576 -0
- rustfava-0.1.0/contrib/icon.svg +7 -0
- rustfava-0.1.0/contrib/pyinstaller_spec.spec +54 -0
- rustfava-0.1.0/contrib/scripts.py +160 -0
- rustfava-0.1.0/desktop/.dev-bin/rustfava +2 -0
- rustfava-0.1.0/desktop/README.md +98 -0
- rustfava-0.1.0/desktop/build-sidecar.sh +69 -0
- rustfava-0.1.0/desktop/bun.lock +48 -0
- rustfava-0.1.0/desktop/index.html +87 -0
- rustfava-0.1.0/desktop/package.json +33 -0
- rustfava-0.1.0/desktop/scripts/ensure-rustledger.ts +262 -0
- rustfava-0.1.0/desktop/src/index.html +1225 -0
- rustfava-0.1.0/desktop/src/logo.svg +4 -0
- rustfava-0.1.0/desktop/src/main.ts +783 -0
- rustfava-0.1.0/desktop/src/styles.css +725 -0
- rustfava-0.1.0/desktop/src-tauri/Cargo.lock +4948 -0
- rustfava-0.1.0/desktop/src-tauri/Cargo.toml +26 -0
- rustfava-0.1.0/desktop/src-tauri/build.rs +3 -0
- rustfava-0.1.0/desktop/src-tauri/capabilities/default.json +22 -0
- rustfava-0.1.0/desktop/src-tauri/gen/schemas/acl-manifests.json +1 -0
- rustfava-0.1.0/desktop/src-tauri/gen/schemas/capabilities.json +1 -0
- rustfava-0.1.0/desktop/src-tauri/gen/schemas/desktop-schema.json +2720 -0
- rustfava-0.1.0/desktop/src-tauri/gen/schemas/linux-schema.json +2720 -0
- rustfava-0.1.0/desktop/src-tauri/icons/128x128.png +0 -0
- rustfava-0.1.0/desktop/src-tauri/icons/128x128@2x.png +0 -0
- rustfava-0.1.0/desktop/src-tauri/icons/32x32.png +0 -0
- rustfava-0.1.0/desktop/src-tauri/icons/icon.icns +38 -0
- rustfava-0.1.0/desktop/src-tauri/icons/icon.ico +0 -0
- rustfava-0.1.0/desktop/src-tauri/icons/icon.png +0 -0
- rustfava-0.1.0/desktop/src-tauri/src/main.rs +373 -0
- rustfava-0.1.0/desktop/src-tauri/tauri.conf.json +64 -0
- rustfava-0.1.0/desktop/vite.config.ts +14 -0
- rustfava-0.1.0/docs/api.md +18 -0
- rustfava-0.1.0/docs/changelog.md +470 -0
- rustfava-0.1.0/docs/deployment.md +35 -0
- rustfava-0.1.0/docs/development.md +37 -0
- rustfava-0.1.0/docs/index.md +24 -0
- rustfava-0.1.0/docs/logo.svg +4 -0
- rustfava-0.1.0/docs/usage.md +53 -0
- rustfava-0.1.0/flake.lock +82 -0
- rustfava-0.1.0/flake.nix +133 -0
- rustfava-0.1.0/frontend/.npmrc +1 -0
- rustfava-0.1.0/frontend/build.ts +115 -0
- rustfava-0.1.0/frontend/bun.lock +845 -0
- rustfava-0.1.0/frontend/css/base.css +465 -0
- rustfava-0.1.0/frontend/css/charts.css +38 -0
- rustfava-0.1.0/frontend/css/components.css +62 -0
- rustfava-0.1.0/frontend/css/editor.css +43 -0
- rustfava-0.1.0/frontend/css/fonts.css +9 -0
- rustfava-0.1.0/frontend/css/grid.css +38 -0
- rustfava-0.1.0/frontend/css/help.css +51 -0
- rustfava-0.1.0/frontend/css/journal-table.css +292 -0
- rustfava-0.1.0/frontend/css/layout.css +91 -0
- rustfava-0.1.0/frontend/css/notifications.css +27 -0
- rustfava-0.1.0/frontend/css/style.css +193 -0
- rustfava-0.1.0/frontend/css/tree-table.css +201 -0
- rustfava-0.1.0/frontend/deno.json +16 -0
- rustfava-0.1.0/frontend/eslint.config.js +88 -0
- rustfava-0.1.0/frontend/package.json +79 -0
- rustfava-0.1.0/frontend/prettier.config.js +4 -0
- rustfava-0.1.0/frontend/setup.js +19 -0
- rustfava-0.1.0/frontend/src/AutocompleteInput.svelte +269 -0
- rustfava-0.1.0/frontend/src/ambient.d.ts +5 -0
- rustfava-0.1.0/frontend/src/api/index.ts +404 -0
- rustfava-0.1.0/frontend/src/api/validators.ts +185 -0
- rustfava-0.1.0/frontend/src/app.ts +138 -0
- rustfava-0.1.0/frontend/src/charts/Axis.svelte +69 -0
- rustfava-0.1.0/frontend/src/charts/BarChart.svelte +210 -0
- rustfava-0.1.0/frontend/src/charts/Chart.svelte +100 -0
- rustfava-0.1.0/frontend/src/charts/ChartLegend.svelte +69 -0
- rustfava-0.1.0/frontend/src/charts/ChartSwitcher.svelte +94 -0
- rustfava-0.1.0/frontend/src/charts/ConversionAndInterval.svelte +55 -0
- rustfava-0.1.0/frontend/src/charts/HierarchyContainer.svelte +73 -0
- rustfava-0.1.0/frontend/src/charts/Icicle.svelte +99 -0
- rustfava-0.1.0/frontend/src/charts/LineChart.svelte +146 -0
- rustfava-0.1.0/frontend/src/charts/ModeSwitch.svelte +35 -0
- rustfava-0.1.0/frontend/src/charts/ScatterPlot.svelte +95 -0
- rustfava-0.1.0/frontend/src/charts/SelectCombobox.svelte +228 -0
- rustfava-0.1.0/frontend/src/charts/Sunburst.svelte +117 -0
- rustfava-0.1.0/frontend/src/charts/Treemap.svelte +85 -0
- rustfava-0.1.0/frontend/src/charts/bar.ts +210 -0
- rustfava-0.1.0/frontend/src/charts/context.ts +34 -0
- rustfava-0.1.0/frontend/src/charts/helpers.ts +111 -0
- rustfava-0.1.0/frontend/src/charts/hierarchy.ts +158 -0
- rustfava-0.1.0/frontend/src/charts/index.ts +35 -0
- rustfava-0.1.0/frontend/src/charts/line.ts +117 -0
- rustfava-0.1.0/frontend/src/charts/query-charts.ts +42 -0
- rustfava-0.1.0/frontend/src/charts/scatterplot.ts +37 -0
- rustfava-0.1.0/frontend/src/charts/tooltip.ts +121 -0
- rustfava-0.1.0/frontend/src/clipboard.ts +15 -0
- rustfava-0.1.0/frontend/src/codemirror/base-extensions.ts +56 -0
- rustfava-0.1.0/frontend/src/codemirror/beancount-autocomplete.ts +135 -0
- rustfava-0.1.0/frontend/src/codemirror/beancount-fold.ts +28 -0
- rustfava-0.1.0/frontend/src/codemirror/beancount-format.ts +17 -0
- rustfava-0.1.0/frontend/src/codemirror/beancount-highlight.ts +66 -0
- rustfava-0.1.0/frontend/src/codemirror/beancount-indent.ts +15 -0
- rustfava-0.1.0/frontend/src/codemirror/beancount-language.ts +79 -0
- rustfava-0.1.0/frontend/src/codemirror/beancount-snippets.ts +16 -0
- rustfava-0.1.0/frontend/src/codemirror/beancount.ts +63 -0
- rustfava-0.1.0/frontend/src/codemirror/bql-autocomplete.ts +35 -0
- rustfava-0.1.0/frontend/src/codemirror/bql-grammar.ts +141 -0
- rustfava-0.1.0/frontend/src/codemirror/bql-highlight.ts +40 -0
- rustfava-0.1.0/frontend/src/codemirror/bql-language.ts +13 -0
- rustfava-0.1.0/frontend/src/codemirror/bql-stream-parser.ts +53 -0
- rustfava-0.1.0/frontend/src/codemirror/bql.ts +75 -0
- rustfava-0.1.0/frontend/src/codemirror/dom.ts +36 -0
- rustfava-0.1.0/frontend/src/codemirror/editor-transactions.ts +61 -0
- rustfava-0.1.0/frontend/src/codemirror/ruler.ts +49 -0
- rustfava-0.1.0/frontend/src/codemirror/tree-sitter-beancount.wasm +0 -0
- rustfava-0.1.0/frontend/src/codemirror/tree-sitter-parser.ts +410 -0
- rustfava-0.1.0/frontend/src/codemirror/types.ts +5 -0
- rustfava-0.1.0/frontend/src/editor/DeleteButton.svelte +16 -0
- rustfava-0.1.0/frontend/src/editor/DocumentPreviewEditor.svelte +48 -0
- rustfava-0.1.0/frontend/src/editor/SaveButton.svelte +23 -0
- rustfava-0.1.0/frontend/src/editor/SliceEditor.svelte +113 -0
- rustfava-0.1.0/frontend/src/entries/amount.ts +58 -0
- rustfava-0.1.0/frontend/src/entries/cost.ts +55 -0
- rustfava-0.1.0/frontend/src/entries/index.ts +640 -0
- rustfava-0.1.0/frontend/src/entries/metadata.ts +123 -0
- rustfava-0.1.0/frontend/src/entries/position.ts +25 -0
- rustfava-0.1.0/frontend/src/entry-forms/AccountInput.svelte +44 -0
- rustfava-0.1.0/frontend/src/entry-forms/AddMetadataButton.svelte +22 -0
- rustfava-0.1.0/frontend/src/entry-forms/Balance.svelte +83 -0
- rustfava-0.1.0/frontend/src/entry-forms/Entry.svelte +23 -0
- rustfava-0.1.0/frontend/src/entry-forms/EntryMetadata.svelte +80 -0
- rustfava-0.1.0/frontend/src/entry-forms/Note.svelte +73 -0
- rustfava-0.1.0/frontend/src/entry-forms/Posting.svelte +151 -0
- rustfava-0.1.0/frontend/src/entry-forms/Transaction.svelte +207 -0
- rustfava-0.1.0/frontend/src/extensions.ts +170 -0
- rustfava-0.1.0/frontend/src/format.ts +103 -0
- rustfava-0.1.0/frontend/src/helpers.ts +100 -0
- rustfava-0.1.0/frontend/src/i18n.ts +37 -0
- rustfava-0.1.0/frontend/src/keyboard-shortcuts.ts +245 -0
- rustfava-0.1.0/frontend/src/lib/account.ts +80 -0
- rustfava-0.1.0/frontend/src/lib/array.ts +35 -0
- rustfava-0.1.0/frontend/src/lib/dom.ts +55 -0
- rustfava-0.1.0/frontend/src/lib/equals.ts +23 -0
- rustfava-0.1.0/frontend/src/lib/errors.ts +23 -0
- rustfava-0.1.0/frontend/src/lib/fetch.ts +65 -0
- rustfava-0.1.0/frontend/src/lib/focus.ts +28 -0
- rustfava-0.1.0/frontend/src/lib/fuzzy.ts +119 -0
- rustfava-0.1.0/frontend/src/lib/interval.ts +28 -0
- rustfava-0.1.0/frontend/src/lib/iso4217.ts +186 -0
- rustfava-0.1.0/frontend/src/lib/json.ts +16 -0
- rustfava-0.1.0/frontend/src/lib/objects.ts +4 -0
- rustfava-0.1.0/frontend/src/lib/paths.ts +47 -0
- rustfava-0.1.0/frontend/src/lib/regex.ts +6 -0
- rustfava-0.1.0/frontend/src/lib/result.ts +148 -0
- rustfava-0.1.0/frontend/src/lib/set.ts +11 -0
- rustfava-0.1.0/frontend/src/lib/sources.ts +58 -0
- rustfava-0.1.0/frontend/src/lib/store.ts +112 -0
- rustfava-0.1.0/frontend/src/lib/tree.ts +90 -0
- rustfava-0.1.0/frontend/src/lib/validation.ts +328 -0
- rustfava-0.1.0/frontend/src/log.ts +21 -0
- rustfava-0.1.0/frontend/src/modals/AddEntry.svelte +79 -0
- rustfava-0.1.0/frontend/src/modals/Context.svelte +44 -0
- rustfava-0.1.0/frontend/src/modals/DocumentUpload.svelte +218 -0
- rustfava-0.1.0/frontend/src/modals/EntryContextBalances.svelte +61 -0
- rustfava-0.1.0/frontend/src/modals/EntryContextLocation.svelte +29 -0
- rustfava-0.1.0/frontend/src/modals/Export.svelte +19 -0
- rustfava-0.1.0/frontend/src/modals/ModalBase.svelte +147 -0
- rustfava-0.1.0/frontend/src/modals/Modals.svelte +11 -0
- rustfava-0.1.0/frontend/src/modals/document-upload.ts +13 -0
- rustfava-0.1.0/frontend/src/notifications.ts +71 -0
- rustfava-0.1.0/frontend/src/reports/ReportLoadError.svelte +20 -0
- rustfava-0.1.0/frontend/src/reports/accounts/AccountReport.svelte +96 -0
- rustfava-0.1.0/frontend/src/reports/accounts/index.ts +76 -0
- rustfava-0.1.0/frontend/src/reports/commodities/Commodities.svelte +19 -0
- rustfava-0.1.0/frontend/src/reports/commodities/CommodityTable.svelte +45 -0
- rustfava-0.1.0/frontend/src/reports/commodities/index.ts +33 -0
- rustfava-0.1.0/frontend/src/reports/documents/Accounts.svelte +133 -0
- rustfava-0.1.0/frontend/src/reports/documents/DocumentPreview.svelte +61 -0
- rustfava-0.1.0/frontend/src/reports/documents/Documents.svelte +115 -0
- rustfava-0.1.0/frontend/src/reports/documents/Table.svelte +81 -0
- rustfava-0.1.0/frontend/src/reports/documents/index.ts +20 -0
- rustfava-0.1.0/frontend/src/reports/documents/stores.ts +3 -0
- rustfava-0.1.0/frontend/src/reports/editor/AppMenu.svelte +26 -0
- rustfava-0.1.0/frontend/src/reports/editor/AppMenuItem.svelte +74 -0
- rustfava-0.1.0/frontend/src/reports/editor/AppMenuSubItem.svelte +58 -0
- rustfava-0.1.0/frontend/src/reports/editor/Editor.svelte +153 -0
- rustfava-0.1.0/frontend/src/reports/editor/EditorMenu.svelte +109 -0
- rustfava-0.1.0/frontend/src/reports/editor/Key.svelte +11 -0
- rustfava-0.1.0/frontend/src/reports/editor/Sources.svelte +111 -0
- rustfava-0.1.0/frontend/src/reports/editor/index.ts +34 -0
- rustfava-0.1.0/frontend/src/reports/editor/stores.ts +55 -0
- rustfava-0.1.0/frontend/src/reports/errors/Errors.svelte +77 -0
- rustfava-0.1.0/frontend/src/reports/errors/index.ts +7 -0
- rustfava-0.1.0/frontend/src/reports/events/EventTable.svelte +38 -0
- rustfava-0.1.0/frontend/src/reports/events/Events.svelte +39 -0
- rustfava-0.1.0/frontend/src/reports/events/index.ts +18 -0
- rustfava-0.1.0/frontend/src/reports/holdings/Holdings.svelte +59 -0
- rustfava-0.1.0/frontend/src/reports/holdings/index.ts +93 -0
- rustfava-0.1.0/frontend/src/reports/import/Extract.svelte +141 -0
- rustfava-0.1.0/frontend/src/reports/import/FileList.svelte +131 -0
- rustfava-0.1.0/frontend/src/reports/import/Import.svelte +199 -0
- rustfava-0.1.0/frontend/src/reports/import/ImportFileUpload.svelte +36 -0
- rustfava-0.1.0/frontend/src/reports/import/index.ts +60 -0
- rustfava-0.1.0/frontend/src/reports/journal/Journal.svelte +13 -0
- rustfava-0.1.0/frontend/src/reports/journal/JournalFilters.svelte +88 -0
- rustfava-0.1.0/frontend/src/reports/journal/JournalHeaders.svelte +73 -0
- rustfava-0.1.0/frontend/src/reports/journal/JournalTable.svelte +127 -0
- rustfava-0.1.0/frontend/src/reports/journal/click_handler.ts +48 -0
- rustfava-0.1.0/frontend/src/reports/journal/index.ts +59 -0
- rustfava-0.1.0/frontend/src/reports/journal/sort.ts +29 -0
- rustfava-0.1.0/frontend/src/reports/options/Options.svelte +26 -0
- rustfava-0.1.0/frontend/src/reports/options/OptionsTable.svelte +45 -0
- rustfava-0.1.0/frontend/src/reports/options/index.ts +16 -0
- rustfava-0.1.0/frontend/src/reports/query/Query.svelte +115 -0
- rustfava-0.1.0/frontend/src/reports/query/QueryBox.svelte +95 -0
- rustfava-0.1.0/frontend/src/reports/query/QueryEditor.svelte +67 -0
- rustfava-0.1.0/frontend/src/reports/query/QueryLinks.svelte +42 -0
- rustfava-0.1.0/frontend/src/reports/query/QueryTable.svelte +117 -0
- rustfava-0.1.0/frontend/src/reports/query/ReadonlyQueryEditor.svelte +22 -0
- rustfava-0.1.0/frontend/src/reports/query/index.ts +17 -0
- rustfava-0.1.0/frontend/src/reports/query/query_table.ts +207 -0
- rustfava-0.1.0/frontend/src/reports/route.svelte.ts +13 -0
- rustfava-0.1.0/frontend/src/reports/route.ts +195 -0
- rustfava-0.1.0/frontend/src/reports/routes.ts +44 -0
- rustfava-0.1.0/frontend/src/reports/statistics/EntriesByType.svelte +45 -0
- rustfava-0.1.0/frontend/src/reports/statistics/Statistics.svelte +49 -0
- rustfava-0.1.0/frontend/src/reports/statistics/UpdateActivity.svelte +85 -0
- rustfava-0.1.0/frontend/src/reports/statistics/index.ts +38 -0
- rustfava-0.1.0/frontend/src/reports/tree_reports/BalanceSheet.svelte +23 -0
- rustfava-0.1.0/frontend/src/reports/tree_reports/IncomeStatement.svelte +23 -0
- rustfava-0.1.0/frontend/src/reports/tree_reports/TrialBalance.svelte +16 -0
- rustfava-0.1.0/frontend/src/reports/tree_reports/index.ts +64 -0
- rustfava-0.1.0/frontend/src/router.ts +379 -0
- rustfava-0.1.0/frontend/src/sidebar/AccountIndicator.svelte +77 -0
- rustfava-0.1.0/frontend/src/sidebar/AccountPageTitle.svelte +49 -0
- rustfava-0.1.0/frontend/src/sidebar/AccountSelector.svelte +36 -0
- rustfava-0.1.0/frontend/src/sidebar/AsideContents.svelte +133 -0
- rustfava-0.1.0/frontend/src/sidebar/AsideWithButton.svelte +99 -0
- rustfava-0.1.0/frontend/src/sidebar/FilterForm.svelte +160 -0
- rustfava-0.1.0/frontend/src/sidebar/Header.svelte +97 -0
- rustfava-0.1.0/frontend/src/sidebar/HeaderAndAside.svelte +7 -0
- rustfava-0.1.0/frontend/src/sidebar/HeaderIcon.svelte +49 -0
- rustfava-0.1.0/frontend/src/sidebar/PageTitle.svelte +25 -0
- rustfava-0.1.0/frontend/src/sidebar/SidebarLink.svelte +81 -0
- rustfava-0.1.0/frontend/src/sidebar/index.ts +27 -0
- rustfava-0.1.0/frontend/src/sidebar/page-title.ts +29 -0
- rustfava-0.1.0/frontend/src/sort/SortHeader.svelte +34 -0
- rustfava-0.1.0/frontend/src/sort/index.ts +179 -0
- rustfava-0.1.0/frontend/src/sort/sortable-table.ts +34 -0
- rustfava-0.1.0/frontend/src/stores/accounts.ts +128 -0
- rustfava-0.1.0/frontend/src/stores/chart.ts +90 -0
- rustfava-0.1.0/frontend/src/stores/color_scheme.ts +26 -0
- rustfava-0.1.0/frontend/src/stores/editor.ts +16 -0
- rustfava-0.1.0/frontend/src/stores/fava_options.ts +70 -0
- rustfava-0.1.0/frontend/src/stores/filters.ts +52 -0
- rustfava-0.1.0/frontend/src/stores/format.ts +40 -0
- rustfava-0.1.0/frontend/src/stores/index.ts +56 -0
- rustfava-0.1.0/frontend/src/stores/journal.ts +34 -0
- rustfava-0.1.0/frontend/src/stores/mtime.ts +32 -0
- rustfava-0.1.0/frontend/src/stores/options.ts +36 -0
- rustfava-0.1.0/frontend/src/stores/query.ts +29 -0
- rustfava-0.1.0/frontend/src/stores/url.ts +60 -0
- rustfava-0.1.0/frontend/src/svelte-custom-elements.ts +121 -0
- rustfava-0.1.0/frontend/src/tree-table/AccountCell.svelte +93 -0
- rustfava-0.1.0/frontend/src/tree-table/AccountCellHeader.svelte +57 -0
- rustfava-0.1.0/frontend/src/tree-table/Diff.svelte +33 -0
- rustfava-0.1.0/frontend/src/tree-table/IntervalTreeTable.svelte +73 -0
- rustfava-0.1.0/frontend/src/tree-table/IntervalTreeTableNode.svelte +82 -0
- rustfava-0.1.0/frontend/src/tree-table/TreeTable.svelte +54 -0
- rustfava-0.1.0/frontend/src/tree-table/TreeTableNode.svelte +80 -0
- rustfava-0.1.0/frontend/src/tree-table/helpers.ts +66 -0
- rustfava-0.1.0/frontend/src/tree-table/tree-table-custom-element.ts +52 -0
- rustfava-0.1.0/frontend/stylelint.config.js +20 -0
- rustfava-0.1.0/frontend/sync-pre-commit.ts +46 -0
- rustfava-0.1.0/frontend/test/AutocompleteInput.test.ts +43 -0
- rustfava-0.1.0/frontend/test/account.test.ts +64 -0
- rustfava-0.1.0/frontend/test/charts.test.ts +348 -0
- rustfava-0.1.0/frontend/test/dom.ts +27 -0
- rustfava-0.1.0/frontend/test/editor.test.ts +84 -0
- rustfava-0.1.0/frontend/test/end-to-end-validation.test.ts +71 -0
- rustfava-0.1.0/frontend/test/entries.test.ts +251 -0
- rustfava-0.1.0/frontend/test/format.test.ts +79 -0
- rustfava-0.1.0/frontend/test/fuzzy.test.ts +81 -0
- rustfava-0.1.0/frontend/test/helpers.ts +46 -0
- rustfava-0.1.0/frontend/test/misc.test.ts +127 -0
- rustfava-0.1.0/frontend/test/parser.test.ts +126 -0
- rustfava-0.1.0/frontend/test/paths.test.ts +74 -0
- rustfava-0.1.0/frontend/test/result.test.ts +52 -0
- rustfava-0.1.0/frontend/test/sources.test.ts +261 -0
- rustfava-0.1.0/frontend/test/store.test.ts +91 -0
- rustfava-0.1.0/frontend/test/tree.test.ts +111 -0
- rustfava-0.1.0/frontend/test/urls.test.ts +39 -0
- rustfava-0.1.0/frontend/test/validation.test.ts +130 -0
- rustfava-0.1.0/frontend/test.ts +27 -0
- rustfava-0.1.0/frontend/tsconfig.json +24 -0
- rustfava-0.1.0/justfile +305 -0
- rustfava-0.1.0/mkdocs.yml +54 -0
- rustfava-0.1.0/pyproject.toml +253 -0
- rustfava-0.1.0/setup.cfg +4 -0
- rustfava-0.1.0/src/rustfava/__init__.py +30 -0
- rustfava-0.1.0/src/rustfava/_ctx_globals_class.py +55 -0
- rustfava-0.1.0/src/rustfava/api_models.py +36 -0
- rustfava-0.1.0/src/rustfava/application.py +534 -0
- rustfava-0.1.0/src/rustfava/beans/__init__.py +6 -0
- rustfava-0.1.0/src/rustfava/beans/abc.py +327 -0
- rustfava-0.1.0/src/rustfava/beans/account.py +79 -0
- rustfava-0.1.0/src/rustfava/beans/create.py +377 -0
- rustfava-0.1.0/src/rustfava/beans/flags.py +20 -0
- rustfava-0.1.0/src/rustfava/beans/funcs.py +38 -0
- rustfava-0.1.0/src/rustfava/beans/helpers.py +52 -0
- rustfava-0.1.0/src/rustfava/beans/ingest.py +75 -0
- rustfava-0.1.0/src/rustfava/beans/load.py +31 -0
- rustfava-0.1.0/src/rustfava/beans/prices.py +151 -0
- rustfava-0.1.0/src/rustfava/beans/protocols.py +82 -0
- rustfava-0.1.0/src/rustfava/beans/str.py +454 -0
- rustfava-0.1.0/src/rustfava/beans/types.py +63 -0
- rustfava-0.1.0/src/rustfava/cli.py +187 -0
- rustfava-0.1.0/src/rustfava/context.py +13 -0
- rustfava-0.1.0/src/rustfava/core/__init__.py +729 -0
- rustfava-0.1.0/src/rustfava/core/accounts.py +161 -0
- rustfava-0.1.0/src/rustfava/core/attributes.py +145 -0
- rustfava-0.1.0/src/rustfava/core/budgets.py +207 -0
- rustfava-0.1.0/src/rustfava/core/charts.py +301 -0
- rustfava-0.1.0/src/rustfava/core/commodities.py +37 -0
- rustfava-0.1.0/src/rustfava/core/conversion.py +229 -0
- rustfava-0.1.0/src/rustfava/core/documents.py +87 -0
- rustfava-0.1.0/src/rustfava/core/extensions.py +132 -0
- rustfava-0.1.0/src/rustfava/core/fava_options.py +255 -0
- rustfava-0.1.0/src/rustfava/core/file.py +542 -0
- rustfava-0.1.0/src/rustfava/core/filters.py +484 -0
- rustfava-0.1.0/src/rustfava/core/group_entries.py +97 -0
- rustfava-0.1.0/src/rustfava/core/ingest.py +509 -0
- rustfava-0.1.0/src/rustfava/core/inventory.py +167 -0
- rustfava-0.1.0/src/rustfava/core/misc.py +105 -0
- rustfava-0.1.0/src/rustfava/core/module_base.py +18 -0
- rustfava-0.1.0/src/rustfava/core/number.py +106 -0
- rustfava-0.1.0/src/rustfava/core/query.py +180 -0
- rustfava-0.1.0/src/rustfava/core/query_shell.py +301 -0
- rustfava-0.1.0/src/rustfava/core/tree.py +265 -0
- rustfava-0.1.0/src/rustfava/core/watcher.py +219 -0
- rustfava-0.1.0/src/rustfava/ext/__init__.py +232 -0
- rustfava-0.1.0/src/rustfava/ext/auto_commit.py +61 -0
- rustfava-0.1.0/src/rustfava/ext/portfolio_list/PortfolioList.js +34 -0
- rustfava-0.1.0/src/rustfava/ext/portfolio_list/__init__.py +29 -0
- rustfava-0.1.0/src/rustfava/ext/portfolio_list/templates/PortfolioList.html +15 -0
- rustfava-0.1.0/src/rustfava/ext/rustfava_ext_test/RustfavaExtTest.js +42 -0
- rustfava-0.1.0/src/rustfava/ext/rustfava_ext_test/__init__.py +207 -0
- rustfava-0.1.0/src/rustfava/ext/rustfava_ext_test/templates/RustfavaExtTest.html +45 -0
- rustfava-0.1.0/src/rustfava/ext/rustfava_ext_test/templates/RustfavaExtTestInclude.html +1 -0
- rustfava-0.1.0/src/rustfava/help/__init__.py +15 -0
- rustfava-0.1.0/src/rustfava/help/_index.md +29 -0
- rustfava-0.1.0/src/rustfava/help/beancount_syntax.md +156 -0
- rustfava-0.1.0/src/rustfava/help/budgets.md +31 -0
- rustfava-0.1.0/src/rustfava/help/conversion.md +29 -0
- rustfava-0.1.0/src/rustfava/help/extensions.md +111 -0
- rustfava-0.1.0/src/rustfava/help/features.md +179 -0
- rustfava-0.1.0/src/rustfava/help/filters.md +103 -0
- rustfava-0.1.0/src/rustfava/help/import.md +27 -0
- rustfava-0.1.0/src/rustfava/help/options.md +289 -0
- rustfava-0.1.0/src/rustfava/helpers.py +30 -0
- rustfava-0.1.0/src/rustfava/internal_api.py +221 -0
- rustfava-0.1.0/src/rustfava/json_api.py +952 -0
- rustfava-0.1.0/src/rustfava/plugins/__init__.py +3 -0
- rustfava-0.1.0/src/rustfava/plugins/link_documents.py +107 -0
- rustfava-0.1.0/src/rustfava/plugins/tag_discovered_documents.py +44 -0
- rustfava-0.1.0/src/rustfava/py.typed +0 -0
- rustfava-0.1.0/src/rustfava/rustledger/__init__.py +31 -0
- rustfava-0.1.0/src/rustfava/rustledger/constants.py +76 -0
- rustfava-0.1.0/src/rustfava/rustledger/engine.py +485 -0
- rustfava-0.1.0/src/rustfava/rustledger/loader.py +273 -0
- rustfava-0.1.0/src/rustfava/rustledger/options.py +202 -0
- rustfava-0.1.0/src/rustfava/rustledger/query.py +331 -0
- rustfava-0.1.0/src/rustfava/rustledger/types.py +830 -0
- rustfava-0.1.0/src/rustfava/serialisation.py +220 -0
- rustfava-0.1.0/src/rustfava/static/app.css +2988 -0
- rustfava-0.1.0/src/rustfava/static/app.css.map +7 -0
- rustfava-0.1.0/src/rustfava/static/app.js +12854 -0
- rustfava-0.1.0/src/rustfava/static/app.js.map +7 -0
- rustfava-0.1.0/src/rustfava/static/beancount-JFV44ZVZ.css +5 -0
- rustfava-0.1.0/src/rustfava/static/beancount-JFV44ZVZ.css.map +7 -0
- rustfava-0.1.0/src/rustfava/static/beancount-VTTKRGSK.js +4642 -0
- rustfava-0.1.0/src/rustfava/static/beancount-VTTKRGSK.js.map +7 -0
- rustfava-0.1.0/src/rustfava/static/bql-MGFRUMBP.js +333 -0
- rustfava-0.1.0/src/rustfava/static/bql-MGFRUMBP.js.map +7 -0
- rustfava-0.1.0/src/rustfava/static/chunk-E7ZF4ASL.js +23061 -0
- rustfava-0.1.0/src/rustfava/static/chunk-E7ZF4ASL.js.map +7 -0
- rustfava-0.1.0/src/rustfava/static/chunk-V24TLQHT.js +12673 -0
- rustfava-0.1.0/src/rustfava/static/chunk-V24TLQHT.js.map +7 -0
- rustfava-0.1.0/src/rustfava/static/favicon.ico +0 -0
- rustfava-0.1.0/src/rustfava/static/fira-mono-cyrillic-400-normal-BLAGXRCE.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/fira-mono-cyrillic-500-normal-EN7JUAAW.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/fira-mono-cyrillic-ext-400-normal-EX7VARTS.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/fira-mono-cyrillic-ext-500-normal-ZDPTUPRR.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/fira-mono-greek-400-normal-COGHKMOA.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/fira-mono-greek-500-normal-4EN2PKZT.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/fira-mono-greek-ext-400-normal-DYEQIJH7.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/fira-mono-greek-ext-500-normal-SG73CVKQ.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/fira-mono-latin-400-normal-NA3VLV7E.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/fira-mono-latin-500-normal-YC77GFWD.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/fira-mono-latin-ext-400-normal-DIKTZ5PW.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/fira-mono-latin-ext-500-normal-ZWY4UO4V.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/fira-mono-symbols2-400-normal-UITXT77Q.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/fira-mono-symbols2-500-normal-VWPC2EFN.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/fira-sans-cyrillic-400-normal-KLQMBCA6.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/fira-sans-cyrillic-500-normal-NFG7UD6J.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/fira-sans-cyrillic-ext-400-normal-GWO44OPC.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/fira-sans-cyrillic-ext-500-normal-SP47E5SC.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/fira-sans-greek-400-normal-UMQBTLC3.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/fira-sans-greek-500-normal-4ZKHN4FQ.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/fira-sans-greek-ext-400-normal-O2DVJAJZ.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/fira-sans-greek-ext-500-normal-SK6GNWGO.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/fira-sans-latin-400-normal-OYYTPMAV.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/fira-sans-latin-500-normal-SMQPZW5A.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/fira-sans-latin-ext-400-normal-OAUP3WK5.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/fira-sans-latin-ext-500-normal-LY3YDR5Y.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/fira-sans-vietnamese-400-normal-OBMQ72MR.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/fira-sans-vietnamese-500-normal-Y4NZR5EU.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/source-code-pro-cyrillic-400-normal-TO22V6M3.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/source-code-pro-cyrillic-500-normal-OGBWWWYW.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/source-code-pro-cyrillic-ext-400-normal-XH44UCIA.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/source-code-pro-cyrillic-ext-500-normal-3Z6MMVM6.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/source-code-pro-greek-400-normal-OUXXUQWK.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/source-code-pro-greek-500-normal-JA2Z5UXO.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/source-code-pro-greek-ext-400-normal-WCDKMX7U.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/source-code-pro-greek-ext-500-normal-ZHVI4VKW.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/source-code-pro-latin-400-normal-QOGTXED5.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/source-code-pro-latin-500-normal-X57QEOLQ.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/source-code-pro-latin-ext-400-normal-QXC74NBF.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/source-code-pro-latin-ext-500-normal-QGOY7MTT.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/source-code-pro-vietnamese-400-normal-NPDCDTBA.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/source-code-pro-vietnamese-500-normal-M6PJKTR5.woff2 +0 -0
- rustfava-0.1.0/src/rustfava/static/tree-sitter-beancount-MLXFQBZ5.wasm +0 -0
- rustfava-0.1.0/src/rustfava/static/web-tree-sitter-RNOQ6E74.wasm +0 -0
- rustfava-0.1.0/src/rustfava/template_filters.py +64 -0
- rustfava-0.1.0/src/rustfava/templates/_journal_table.html +156 -0
- rustfava-0.1.0/src/rustfava/templates/_layout.html +26 -0
- rustfava-0.1.0/src/rustfava/templates/_query_table.html +88 -0
- rustfava-0.1.0/src/rustfava/templates/beancount_file +18 -0
- rustfava-0.1.0/src/rustfava/templates/help.html +23 -0
- rustfava-0.1.0/src/rustfava/templates/macros/_account_macros.html +5 -0
- rustfava-0.1.0/src/rustfava/templates/macros/_commodity_macros.html +13 -0
- rustfava-0.1.0/src/rustfava/translations/bg/LC_MESSAGES/messages.mo +0 -0
- rustfava-0.1.0/src/rustfava/translations/bg/LC_MESSAGES/messages.po +618 -0
- rustfava-0.1.0/src/rustfava/translations/ca/LC_MESSAGES/messages.mo +0 -0
- rustfava-0.1.0/src/rustfava/translations/ca/LC_MESSAGES/messages.po +618 -0
- rustfava-0.1.0/src/rustfava/translations/de/LC_MESSAGES/messages.mo +0 -0
- rustfava-0.1.0/src/rustfava/translations/de/LC_MESSAGES/messages.po +618 -0
- rustfava-0.1.0/src/rustfava/translations/es/LC_MESSAGES/messages.mo +0 -0
- rustfava-0.1.0/src/rustfava/translations/es/LC_MESSAGES/messages.po +619 -0
- rustfava-0.1.0/src/rustfava/translations/fa/LC_MESSAGES/messages.mo +0 -0
- rustfava-0.1.0/src/rustfava/translations/fa/LC_MESSAGES/messages.po +618 -0
- rustfava-0.1.0/src/rustfava/translations/fr/LC_MESSAGES/messages.mo +0 -0
- rustfava-0.1.0/src/rustfava/translations/fr/LC_MESSAGES/messages.po +618 -0
- rustfava-0.1.0/src/rustfava/translations/ja/LC_MESSAGES/messages.mo +0 -0
- rustfava-0.1.0/src/rustfava/translations/ja/LC_MESSAGES/messages.po +618 -0
- rustfava-0.1.0/src/rustfava/translations/nl/LC_MESSAGES/messages.mo +0 -0
- rustfava-0.1.0/src/rustfava/translations/nl/LC_MESSAGES/messages.po +617 -0
- rustfava-0.1.0/src/rustfava/translations/pt/LC_MESSAGES/messages.mo +0 -0
- rustfava-0.1.0/src/rustfava/translations/pt/LC_MESSAGES/messages.po +617 -0
- rustfava-0.1.0/src/rustfava/translations/pt_BR/LC_MESSAGES/messages.mo +0 -0
- rustfava-0.1.0/src/rustfava/translations/pt_BR/LC_MESSAGES/messages.po +618 -0
- rustfava-0.1.0/src/rustfava/translations/ru/LC_MESSAGES/messages.mo +0 -0
- rustfava-0.1.0/src/rustfava/translations/ru/LC_MESSAGES/messages.po +617 -0
- rustfava-0.1.0/src/rustfava/translations/sk/LC_MESSAGES/messages.mo +0 -0
- rustfava-0.1.0/src/rustfava/translations/sk/LC_MESSAGES/messages.po +623 -0
- rustfava-0.1.0/src/rustfava/translations/sv/LC_MESSAGES/messages.mo +0 -0
- rustfava-0.1.0/src/rustfava/translations/sv/LC_MESSAGES/messages.po +618 -0
- rustfava-0.1.0/src/rustfava/translations/uk/LC_MESSAGES/messages.mo +0 -0
- rustfava-0.1.0/src/rustfava/translations/uk/LC_MESSAGES/messages.po +618 -0
- rustfava-0.1.0/src/rustfava/translations/zh/LC_MESSAGES/messages.mo +0 -0
- rustfava-0.1.0/src/rustfava/translations/zh/LC_MESSAGES/messages.po +618 -0
- rustfava-0.1.0/src/rustfava/translations/zh_Hant_TW/LC_MESSAGES/messages.mo +0 -0
- rustfava-0.1.0/src/rustfava/translations/zh_Hant_TW/LC_MESSAGES/messages.po +618 -0
- rustfava-0.1.0/src/rustfava/util/__init__.py +157 -0
- rustfava-0.1.0/src/rustfava/util/date.py +576 -0
- rustfava-0.1.0/src/rustfava/util/excel.py +118 -0
- rustfava-0.1.0/src/rustfava/util/ranking.py +79 -0
- rustfava-0.1.0/src/rustfava/util/sets.py +18 -0
- rustfava-0.1.0/src/rustfava/util/unreachable.py +20 -0
- rustfava-0.1.0/src/rustfava.egg-info/PKG-INFO +102 -0
- rustfava-0.1.0/src/rustfava.egg-info/SOURCES.txt +604 -0
- rustfava-0.1.0/src/rustfava.egg-info/dependency_links.txt +1 -0
- rustfava-0.1.0/src/rustfava.egg-info/entry_points.txt +2 -0
- rustfava-0.1.0/src/rustfava.egg-info/requires.txt +20 -0
- rustfava-0.1.0/src/rustfava.egg-info/top_level.txt +1 -0
- rustfava-0.1.0/stubs/beangulp/__init__.pyi +27 -0
- rustfava-0.1.0/stubs/beangulp/cache.pyi +3 -0
- rustfava-0.1.0/tests/__init__.py +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_application-test_download_journal +16 -0
- rustfava-0.1.0/tests/__snapshots__/test_core_attributes-test_narrations.json +37 -0
- rustfava-0.1.0/tests/__snapshots__/test_core_charts-test_interval_totals-2.json +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_core_charts-test_interval_totals.json +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_core_charts-test_interval_totals_inverted-2.json +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_core_charts-test_interval_totals_inverted.json +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_core_charts-test_linechart_data-2.json +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_core_charts-test_linechart_data-3.json +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_core_charts-test_linechart_data-4.json +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_core_charts-test_linechart_data.json +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_core_charts-test_net_worth.json +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_core_charts-test_net_worth_off_by_one-2.json +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_core_charts-test_net_worth_off_by_one.json +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_core_file-test_render_entries +11 -0
- rustfava-0.1.0/tests/__snapshots__/test_core_ingest-test_ingest_examplefile-2.json +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_core_ingest-test_ingest_examplefile.json +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_core_query_shell-test_query_balances +68 -0
- rustfava-0.1.0/tests/__snapshots__/test_core_query_shell-test_query_to_file +31 -0
- rustfava-0.1.0/tests/__snapshots__/test_core_query_shell-test_text_queries +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_core_tree-test_tree_cap +297 -0
- rustfava-0.1.0/tests/__snapshots__/test_core_tree-test_tree_from_entries +188 -0
- rustfava-0.1.0/tests/__snapshots__/test_core_tree-test_tree_from_entries-2 +104 -0
- rustfava-0.1.0/tests/__snapshots__/test_internal_api-test_chart_api.json +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_internal_api-test_get_ledger_data.json +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api-account_report_off_by_one.json +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api-account_report_off_by_one_journal.json +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api-balance_sheet.json +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api-balance_sheet_with_cost.json +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api-commodities.json +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api-documents.json +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api-events.json +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api-income_statement.json +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api-journal.json +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api-narrations.json +37 -0
- rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api-options.json +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api-statistics.json +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api-trial_balance.json +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api_context-2.json +4 -0
- rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api_context-3.json +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api_context-4.json +4 -0
- rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api_context.json +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api_errors +9 -0
- rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api_imports-2.json +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api_imports.json +102 -0
- rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api_payee_accounts.json +63 -0
- rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api_payee_transaction.json +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api_query_result-balances.json +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api_query_result-help.json +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api_query_result-journal.json +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api_query_result-misc.json +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_json_api-test_api_query_result-sum.json +1 -0
- rustfava-0.1.0/tests/__snapshots__/test_serialisation-test_deserialise_posting_and_format +3 -0
- rustfava-0.1.0/tests/__snapshots__/test_serialisation-test_serialise_entry_types.json +1 -0
- rustfava-0.1.0/tests/conftest.py +398 -0
- rustfava-0.1.0/tests/data/edit-example.beancount +23 -0
- rustfava-0.1.0/tests/data/errors.beancount +19 -0
- rustfava-0.1.0/tests/data/example-balances.csv +60 -0
- rustfava-0.1.0/tests/data/example-utf8-/360/237/246/201.txt +0 -0
- rustfava-0.1.0/tests/data/example.beancount +81 -0
- rustfava-0.1.0/tests/data/extension-report-example.beancount +5808 -0
- rustfava-0.1.0/tests/data/import.beancount +9 -0
- rustfava-0.1.0/tests/data/import.csv +4 -0
- rustfava-0.1.0/tests/data/import_config.py +189 -0
- rustfava-0.1.0/tests/data/import_config_with_duplicate_names.py +34 -0
- rustfava-0.1.0/tests/data/invalid-unicode.beancount +12 -0
- rustfava-0.1.0/tests/data/long-example.beancount +5825 -0
- rustfava-0.1.0/tests/data/off-by-one.beancount +19 -0
- rustfava-0.1.0/tests/data/query-example.beancount +2366 -0
- rustfava-0.1.0/tests/data/receipt.pdf +0 -0
- rustfava-0.1.0/tests/test_application.py +381 -0
- rustfava-0.1.0/tests/test_beans.py +165 -0
- rustfava-0.1.0/tests/test_beans_str.py +119 -0
- rustfava-0.1.0/tests/test_build_backend.py +18 -0
- rustfava-0.1.0/tests/test_cli.py +101 -0
- rustfava-0.1.0/tests/test_core.py +176 -0
- rustfava-0.1.0/tests/test_core_accounts.py +73 -0
- rustfava-0.1.0/tests/test_core_attributes.py +87 -0
- rustfava-0.1.0/tests/test_core_budgets.py +147 -0
- rustfava-0.1.0/tests/test_core_charts.py +105 -0
- rustfava-0.1.0/tests/test_core_commodities.py +20 -0
- rustfava-0.1.0/tests/test_core_conversion.py +232 -0
- rustfava-0.1.0/tests/test_core_documents.py +79 -0
- rustfava-0.1.0/tests/test_core_fava_options.py +114 -0
- rustfava-0.1.0/tests/test_core_file.py +523 -0
- rustfava-0.1.0/tests/test_core_filters.py +242 -0
- rustfava-0.1.0/tests/test_core_ingest.py +262 -0
- rustfava-0.1.0/tests/test_core_inventory.py +62 -0
- rustfava-0.1.0/tests/test_core_misc.py +29 -0
- rustfava-0.1.0/tests/test_core_number.py +70 -0
- rustfava-0.1.0/tests/test_core_query_shell.py +131 -0
- rustfava-0.1.0/tests/test_core_tree.py +57 -0
- rustfava-0.1.0/tests/test_core_watcher.py +141 -0
- rustfava-0.1.0/tests/test_ext.py +47 -0
- rustfava-0.1.0/tests/test_extensions.py +40 -0
- rustfava-0.1.0/tests/test_internal_api.py +59 -0
- rustfava-0.1.0/tests/test_json_api.py +913 -0
- rustfava-0.1.0/tests/test_plugins_link_documents.py +126 -0
- rustfava-0.1.0/tests/test_plugins_tag_discovered_documents.py +51 -0
- rustfava-0.1.0/tests/test_serialisation.py +326 -0
- rustfava-0.1.0/tests/test_template_filters.py +34 -0
- rustfava-0.1.0/tests/test_templates.py +41 -0
- rustfava-0.1.0/tests/test_util.py +110 -0
- rustfava-0.1.0/tests/test_util_date.py +466 -0
- rustfava-0.1.0/tests/test_util_excel.py +50 -0
- rustfava-0.1.0/tests/test_util_ranking.py +36 -0
- rustfava-0.1.0/tests/test_util_sets.py +15 -0
- rustfava-0.1.0/uv.lock +1615 -0
|
@@ -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
|
rustfava-0.1.0/PKG-INFO
ADDED
|
@@ -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/
|
rustfava-0.1.0/README.md
ADDED
|
@@ -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/
|