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.
- {rustfava-0.1.1 → rustfava-0.1.4}/PKG-INFO +17 -7
- {rustfava-0.1.1 → rustfava-0.1.4}/README.md +16 -6
- rustfava-0.1.4/RELEASING.md +105 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/_build_backend.py +4 -2
- rustfava-0.1.4/contrib/pyinstaller_spec.spec +102 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src/main.ts +31 -9
- {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src-tauri/src/main.rs +50 -15
- rustfava-0.1.4/desktop-sources.json +7 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/flake.lock +3 -3
- {rustfava-0.1.1 → rustfava-0.1.4}/flake.nix +38 -11
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/bg/LC_MESSAGES/messages.mo +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/ca/LC_MESSAGES/messages.mo +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/de/LC_MESSAGES/messages.mo +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/es/LC_MESSAGES/messages.mo +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/fa/LC_MESSAGES/messages.mo +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/fr/LC_MESSAGES/messages.mo +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/ja/LC_MESSAGES/messages.mo +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/nl/LC_MESSAGES/messages.mo +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/pt/LC_MESSAGES/messages.mo +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/pt_BR/LC_MESSAGES/messages.mo +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/ru/LC_MESSAGES/messages.mo +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/sk/LC_MESSAGES/messages.mo +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/sv/LC_MESSAGES/messages.mo +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/uk/LC_MESSAGES/messages.mo +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/zh/LC_MESSAGES/messages.mo +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/zh_Hant_TW/LC_MESSAGES/messages.mo +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava.egg-info/PKG-INFO +17 -7
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava.egg-info/SOURCES.txt +2 -0
- rustfava-0.1.1/contrib/pyinstaller_spec.spec +0 -54
- {rustfava-0.1.1 → rustfava-0.1.4}/.dev-bin/rustfava +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/.dockerignore +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/AUTHORS +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/CONTRIBUTING.md +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/Dockerfile +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/LICENSE +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/MANIFEST.in +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/SECURITY.md +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/biome.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/contrib/docker/Dockerfile +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/contrib/docker/README.md +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/contrib/examples/budgets-example.beancount +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/contrib/examples/example.beancount +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/contrib/examples/huge-example.beancount +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/contrib/icon.svg +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/contrib/scripts.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/desktop/.dev-bin/rustfava +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/desktop/README.md +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/desktop/build-sidecar.sh +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/desktop/bun.lock +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/desktop/index.html +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/desktop/package.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/desktop/scripts/ensure-rustledger.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src/index.html +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src/logo.svg +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src/styles.css +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src-tauri/Cargo.lock +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src-tauri/Cargo.toml +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src-tauri/build.rs +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src-tauri/capabilities/default.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src-tauri/gen/schemas/acl-manifests.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src-tauri/gen/schemas/capabilities.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src-tauri/gen/schemas/desktop-schema.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src-tauri/gen/schemas/linux-schema.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src-tauri/icons/128x128.png +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src-tauri/icons/128x128@2x.png +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src-tauri/icons/32x32.png +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src-tauri/icons/icon.icns +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src-tauri/icons/icon.ico +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src-tauri/icons/icon.png +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/desktop/src-tauri/tauri.conf.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/desktop/vite.config.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/docs/api.md +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/docs/changelog.md +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/docs/deployment.md +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/docs/development.md +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/docs/index.md +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/docs/logo.svg +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/docs/screenshot.png +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/docs/upstream-sync.md +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/docs/usage.md +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/.npmrc +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/build.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/bun.lock +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/css/base.css +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/css/charts.css +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/css/components.css +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/css/editor.css +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/css/fonts.css +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/css/grid.css +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/css/help.css +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/css/journal-table.css +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/css/layout.css +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/css/notifications.css +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/css/style.css +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/css/tree-table.css +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/deno.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/eslint.config.js +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/package.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/prettier.config.js +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/setup.js +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/AutocompleteInput.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/ambient.d.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/api/index.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/api/validators.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/app.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/Axis.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/BarChart.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/Chart.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/ChartLegend.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/ChartSwitcher.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/ConversionAndInterval.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/HierarchyContainer.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/Icicle.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/LineChart.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/ModeSwitch.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/ScatterPlot.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/SelectCombobox.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/Sunburst.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/Treemap.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/bar.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/context.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/helpers.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/hierarchy.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/index.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/line.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/query-charts.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/scatterplot.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/charts/tooltip.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/clipboard.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/base-extensions.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/beancount-autocomplete.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/beancount-fold.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/beancount-format.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/beancount-highlight.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/beancount-indent.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/beancount-language.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/beancount-snippets.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/beancount.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/bql-autocomplete.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/bql-grammar.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/bql-highlight.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/bql-language.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/bql-stream-parser.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/bql.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/dom.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/editor-transactions.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/ruler.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/tree-sitter-beancount.wasm +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/tree-sitter-parser.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/codemirror/types.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/editor/DeleteButton.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/editor/DocumentPreviewEditor.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/editor/SaveButton.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/editor/SliceEditor.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/entries/amount.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/entries/cost.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/entries/index.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/entries/metadata.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/entries/position.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/entry-forms/AccountInput.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/entry-forms/AddMetadataButton.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/entry-forms/Balance.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/entry-forms/Entry.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/entry-forms/EntryMetadata.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/entry-forms/Note.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/entry-forms/Posting.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/entry-forms/Transaction.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/extension-api.d.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/extensions.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/format.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/helpers.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/i18n.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/keyboard-shortcuts.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/account.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/array.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/dom.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/equals.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/errors.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/fetch.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/focus.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/fuzzy.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/interval.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/iso4217.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/json.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/objects.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/paths.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/regex.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/result.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/set.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/sources.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/store.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/tree.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/lib/validation.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/log.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/modals/AddEntry.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/modals/Context.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/modals/DocumentUpload.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/modals/EntryContextBalances.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/modals/EntryContextLocation.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/modals/Export.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/modals/ModalBase.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/modals/Modals.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/modals/document-upload.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/notifications.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/ReportLoadError.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/accounts/AccountReport.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/accounts/index.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/commodities/Commodities.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/commodities/CommodityTable.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/commodities/index.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/documents/Accounts.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/documents/DocumentPreview.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/documents/Documents.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/documents/Table.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/documents/index.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/documents/stores.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/editor/AppMenu.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/editor/AppMenuItem.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/editor/AppMenuSubItem.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/editor/Editor.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/editor/EditorMenu.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/editor/Key.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/editor/Sources.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/editor/index.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/editor/stores.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/errors/Errors.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/errors/index.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/events/EventTable.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/events/Events.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/events/index.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/holdings/Holdings.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/holdings/index.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/import/Extract.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/import/FileList.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/import/Import.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/import/ImportFileUpload.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/import/index.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/journal/Journal.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/journal/JournalFilters.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/journal/JournalHeaders.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/journal/JournalTable.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/journal/click_handler.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/journal/index.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/journal/sort.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/options/Options.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/options/OptionsTable.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/options/index.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/query/Query.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/query/QueryBox.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/query/QueryEditor.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/query/QueryLinks.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/query/QueryTable.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/query/ReadonlyQueryEditor.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/query/index.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/query/query_table.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/route.svelte.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/route.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/routes.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/statistics/EntriesByType.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/statistics/Statistics.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/statistics/UpdateActivity.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/statistics/index.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/tree_reports/BalanceSheet.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/tree_reports/IncomeStatement.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/tree_reports/TrialBalance.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/reports/tree_reports/index.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/router.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/sidebar/AccountIndicator.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/sidebar/AccountPageTitle.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/sidebar/AccountSelector.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/sidebar/AsideContents.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/sidebar/AsideWithButton.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/sidebar/FilterForm.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/sidebar/Header.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/sidebar/HeaderAndAside.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/sidebar/HeaderIcon.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/sidebar/PageTitle.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/sidebar/SidebarLink.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/sidebar/index.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/sidebar/page-title.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/sort/SortHeader.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/sort/index.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/sort/sortable-table.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/stores/accounts.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/stores/chart.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/stores/color_scheme.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/stores/editor.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/stores/fava_options.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/stores/filters.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/stores/format.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/stores/index.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/stores/journal.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/stores/mtime.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/stores/options.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/stores/query.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/stores/url.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/svelte-custom-elements.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/tree-table/AccountCell.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/tree-table/AccountCellHeader.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/tree-table/Diff.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/tree-table/IntervalTreeTable.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/tree-table/IntervalTreeTableNode.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/tree-table/TreeTable.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/tree-table/TreeTableNode.svelte +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/tree-table/helpers.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/src/tree-table/tree-table-custom-element.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/stylelint.config.js +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/sync-pre-commit.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/AutocompleteInput.test.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/account.test.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/charts.test.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/dom.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/editor.test.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/end-to-end-validation.test.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/entries.test.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/format.test.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/fuzzy.test.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/helpers.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/misc.test.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/parser.test.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/paths.test.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/result.test.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/sources.test.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/store.test.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/tree.test.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/urls.test.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test/validation.test.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/test.ts +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/frontend/tsconfig.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/justfile +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/mkdocs.yml +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/packaging/rpm/rustfava.spec +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/pyproject.toml +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/setup.cfg +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/__init__.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/_ctx_globals_class.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/api_models.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/application.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/beans/__init__.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/beans/abc.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/beans/account.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/beans/create.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/beans/flags.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/beans/funcs.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/beans/helpers.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/beans/ingest.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/beans/load.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/beans/prices.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/beans/protocols.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/beans/str.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/beans/types.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/cli.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/context.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/__init__.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/accounts.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/attributes.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/budgets.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/charts.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/commodities.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/conversion.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/documents.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/extensions.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/fava_options.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/file.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/filters.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/group_entries.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/ingest.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/inventory.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/misc.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/module_base.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/number.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/query.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/query_shell.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/tree.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/core/watcher.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/ext/__init__.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/ext/auto_commit.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/ext/portfolio_list/PortfolioList.js +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/ext/portfolio_list/__init__.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/ext/portfolio_list/templates/PortfolioList.html +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/ext/rustfava_ext_test/RustfavaExtTest.js +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/ext/rustfava_ext_test/__init__.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/ext/rustfava_ext_test/templates/RustfavaExtTest.html +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/ext/rustfava_ext_test/templates/RustfavaExtTestInclude.html +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/help/__init__.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/help/_index.md +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/help/beancount_syntax.md +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/help/budgets.md +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/help/conversion.md +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/help/extensions.md +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/help/features.md +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/help/filters.md +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/help/import.md +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/help/options.md +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/helpers.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/internal_api.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/json_api.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/plugins/__init__.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/plugins/link_documents.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/plugins/tag_discovered_documents.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/py.typed +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/rustledger/__init__.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/rustledger/constants.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/rustledger/engine.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/rustledger/loader.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/rustledger/options.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/rustledger/query.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/rustledger/types.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/serialisation.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/app.css +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/app.css.map +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/app.js +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/app.js.map +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/beancount-JFV44ZVZ.css +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/beancount-JFV44ZVZ.css.map +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/beancount-MH465CAD.js +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/beancount-MH465CAD.js.map +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/bql-MGFRUMBP.js +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/bql-MGFRUMBP.js.map +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/chunk-E7ZF4ASL.js +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/chunk-E7ZF4ASL.js.map +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/chunk-P3BY4CCB.js +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/chunk-P3BY4CCB.js.map +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/favicon.ico +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-mono-cyrillic-400-normal-BLAGXRCE.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-mono-cyrillic-500-normal-EN7JUAAW.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-mono-cyrillic-ext-400-normal-EX7VARTS.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-mono-cyrillic-ext-500-normal-ZDPTUPRR.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-mono-greek-400-normal-COGHKMOA.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-mono-greek-500-normal-4EN2PKZT.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-mono-greek-ext-400-normal-DYEQIJH7.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-mono-greek-ext-500-normal-SG73CVKQ.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-mono-latin-400-normal-NA3VLV7E.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-mono-latin-500-normal-YC77GFWD.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-mono-latin-ext-400-normal-DIKTZ5PW.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-mono-latin-ext-500-normal-ZWY4UO4V.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-mono-symbols2-400-normal-UITXT77Q.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-mono-symbols2-500-normal-VWPC2EFN.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-sans-cyrillic-400-normal-KLQMBCA6.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-sans-cyrillic-500-normal-NFG7UD6J.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-sans-cyrillic-ext-400-normal-GWO44OPC.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-sans-cyrillic-ext-500-normal-SP47E5SC.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-sans-greek-400-normal-UMQBTLC3.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-sans-greek-500-normal-4ZKHN4FQ.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-sans-greek-ext-400-normal-O2DVJAJZ.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-sans-greek-ext-500-normal-SK6GNWGO.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-sans-latin-400-normal-OYYTPMAV.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-sans-latin-500-normal-SMQPZW5A.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-sans-latin-ext-400-normal-OAUP3WK5.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-sans-latin-ext-500-normal-LY3YDR5Y.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-sans-vietnamese-400-normal-OBMQ72MR.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/fira-sans-vietnamese-500-normal-Y4NZR5EU.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/source-code-pro-cyrillic-400-normal-TO22V6M3.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/source-code-pro-cyrillic-500-normal-OGBWWWYW.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/source-code-pro-cyrillic-ext-400-normal-XH44UCIA.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/source-code-pro-cyrillic-ext-500-normal-3Z6MMVM6.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/source-code-pro-greek-400-normal-OUXXUQWK.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/source-code-pro-greek-500-normal-JA2Z5UXO.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/source-code-pro-greek-ext-400-normal-WCDKMX7U.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/source-code-pro-greek-ext-500-normal-ZHVI4VKW.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/source-code-pro-latin-400-normal-QOGTXED5.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/source-code-pro-latin-500-normal-X57QEOLQ.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/source-code-pro-latin-ext-400-normal-QXC74NBF.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/source-code-pro-latin-ext-500-normal-QGOY7MTT.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/source-code-pro-vietnamese-400-normal-NPDCDTBA.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/source-code-pro-vietnamese-500-normal-M6PJKTR5.woff2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/tree-sitter-beancount-MLXFQBZ5.wasm +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/static/web-tree-sitter-RNOQ6E74.wasm +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/template_filters.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/templates/_journal_table.html +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/templates/_layout.html +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/templates/_query_table.html +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/templates/beancount_file +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/templates/help.html +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/templates/macros/_account_macros.html +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/templates/macros/_commodity_macros.html +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/bg/LC_MESSAGES/messages.po +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/ca/LC_MESSAGES/messages.po +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/de/LC_MESSAGES/messages.po +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/es/LC_MESSAGES/messages.po +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/fa/LC_MESSAGES/messages.po +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/fr/LC_MESSAGES/messages.po +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/ja/LC_MESSAGES/messages.po +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/nl/LC_MESSAGES/messages.po +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/pt/LC_MESSAGES/messages.po +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/pt_BR/LC_MESSAGES/messages.po +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/ru/LC_MESSAGES/messages.po +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/sk/LC_MESSAGES/messages.po +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/sv/LC_MESSAGES/messages.po +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/uk/LC_MESSAGES/messages.po +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/zh/LC_MESSAGES/messages.po +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/translations/zh_Hant_TW/LC_MESSAGES/messages.po +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/util/__init__.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/util/date.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/util/excel.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/util/ranking.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/util/sets.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava/util/unreachable.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava.egg-info/dependency_links.txt +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava.egg-info/entry_points.txt +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava.egg-info/requires.txt +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/src/rustfava.egg-info/top_level.txt +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/stubs/beangulp/__init__.pyi +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/stubs/beangulp/cache.pyi +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__init__.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_application-test_download_journal +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_attributes-test_narrations.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_charts-test_interval_totals-2.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_charts-test_interval_totals.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_charts-test_interval_totals_inverted-2.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_charts-test_interval_totals_inverted.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_charts-test_linechart_data-2.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_charts-test_linechart_data-3.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_charts-test_linechart_data-4.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_charts-test_linechart_data.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_charts-test_net_worth.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_charts-test_net_worth_off_by_one-2.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_charts-test_net_worth_off_by_one.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_file-test_render_entries +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_ingest-test_ingest_examplefile-2.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_ingest-test_ingest_examplefile.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_query_shell-test_query_balances +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_query_shell-test_query_to_file +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_query_shell-test_text_queries +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_tree-test_tree_cap +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_tree-test_tree_from_entries +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_core_tree-test_tree_from_entries-2 +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_internal_api-test_chart_api.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_internal_api-test_get_ledger_data.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api-account_report_off_by_one.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api-account_report_off_by_one_journal.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api-balance_sheet.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api-balance_sheet_with_cost.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api-commodities.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api-documents.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api-events.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api-income_statement.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api-journal.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api-narrations.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api-options.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api-statistics.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api-trial_balance.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api_context-2.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api_context-3.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api_context-4.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api_context.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api_errors +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api_imports-2.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api_imports.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api_payee_accounts.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api_payee_transaction.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api_query_result-balances.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api_query_result-help.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api_query_result-journal.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api_query_result-misc.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_json_api-test_api_query_result-sum.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_serialisation-test_deserialise_posting_and_format +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/__snapshots__/test_serialisation-test_serialise_entry_types.json +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/conftest.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/data/edit-example.beancount +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/data/errors.beancount +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/data/example-balances.csv +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/data/example-utf8-/360/237/246/201.txt" +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/data/example.beancount +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/data/extension-report-example.beancount +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/data/import.beancount +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/data/import.csv +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/data/import_config.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/data/import_config_with_duplicate_names.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/data/invalid-unicode.beancount +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/data/long-example.beancount +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/data/off-by-one.beancount +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/data/query-example.beancount +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/data/receipt.pdf +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_application.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_beans.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_beans_str.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_build_backend.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_cli.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_core.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_core_accounts.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_core_attributes.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_core_budgets.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_core_charts.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_core_commodities.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_core_conversion.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_core_documents.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_core_fava_options.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_core_file.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_core_filters.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_core_ingest.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_core_inventory.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_core_misc.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_core_number.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_core_query_shell.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_core_tree.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_core_watcher.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_ext.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_extensions.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_internal_api.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_json_api.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_plugins_link_documents.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_plugins_tag_discovered_documents.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_serialisation.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_template_filters.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_templates.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_util.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_util_date.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_util_excel.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_util_ranking.py +0 -0
- {rustfava-0.1.1 → rustfava-0.1.4}/tests/test_util_sets.py +0 -0
- {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.
|
|
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
|
-
[](https://github.com/rustledger/rustfava/actions/workflows/test.yml)
|
|
61
61
|
[](https://github.com/rustledger/rustfava/releases)
|
|
62
62
|
[](LICENSE)
|
|
63
63
|
[](https://pypi.org/project/rustfava/)
|
|
@@ -81,13 +81,23 @@ Manage your finances with plain text accounting.
|
|
|
81
81
|
|
|
82
82
|
## Install
|
|
83
83
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
|
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
|
-
[](https://github.com/rustledger/rustfava/actions/workflows/test.yml)
|
|
10
10
|
[](https://github.com/rustledger/rustfava/releases)
|
|
11
11
|
[](LICENSE)
|
|
12
12
|
[](https://pypi.org/project/rustfava/)
|
|
@@ -30,13 +30,23 @@ Manage your finances with plain text accounting.
|
|
|
30
30
|
|
|
31
31
|
## Install
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
|
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
|
|
103
|
-
|
|
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
|
|
111
|
-
|
|
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
|
-
//
|
|
80
|
-
|
|
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
|
|
152
|
-
//
|
|
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
|
|
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 {
|
|
@@ -20,11 +20,11 @@
|
|
|
20
20
|
},
|
|
21
21
|
"nixpkgs": {
|
|
22
22
|
"locked": {
|
|
23
|
-
"lastModified":
|
|
24
|
-
"narHash": "sha256-
|
|
23
|
+
"lastModified": 1769170682,
|
|
24
|
+
"narHash": "sha256-oMmN1lVQU0F0W2k6OI3bgdzp2YOHWYUAw79qzDSjenU=",
|
|
25
25
|
"owner": "NixOS",
|
|
26
26
|
"repo": "nixpkgs",
|
|
27
|
-
"rev": "
|
|
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
|
-
#
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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 =
|
|
31
|
-
|
|
32
|
-
|
|
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";
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|