{"id":16087232,"url":"https://github.com/nef10/swiftbeancountimporter","last_synced_at":"2025-10-06T16:53:01.470Z","repository":{"id":40325738,"uuid":"270103197","full_name":"Nef10/SwiftBeanCountImporter","owner":"Nef10","description":"Library to transform transactions from financial institutions into Beancount files","archived":false,"fork":false,"pushed_at":"2025-09-01T19:46:28.000Z","size":3218,"stargazers_count":1,"open_issues_count":4,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-01T21:26:53.449Z","etag":null,"topics":["importer","plaintext-accounting","swiftbeancount"],"latest_commit_sha":null,"homepage":"https://github.com/Nef10/SwiftBeanCount","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Nef10.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-06-06T21:01:18.000Z","updated_at":"2025-08-25T07:22:39.000Z","dependencies_parsed_at":"2023-02-12T13:47:00.316Z","dependency_job_id":"c5e880fa-647d-435d-88e3-43204a7f5131","html_url":"https://github.com/Nef10/SwiftBeanCountImporter","commit_stats":{"total_commits":164,"total_committers":5,"mean_commits":32.8,"dds":0.5670731707317074,"last_synced_commit":"d1f1c12f280caeb563d8f1e0dcb6cd5b42db7d5f"},"previous_names":[],"tags_count":39,"template":false,"template_full_name":null,"purl":"pkg:github/Nef10/SwiftBeanCountImporter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nef10%2FSwiftBeanCountImporter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nef10%2FSwiftBeanCountImporter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nef10%2FSwiftBeanCountImporter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nef10%2FSwiftBeanCountImporter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Nef10","download_url":"https://codeload.github.com/Nef10/SwiftBeanCountImporter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nef10%2FSwiftBeanCountImporter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278646769,"owners_count":26021511,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["importer","plaintext-accounting","swiftbeancount"],"created_at":"2024-10-09T13:28:51.490Z","updated_at":"2025-10-06T16:53:01.452Z","avatar_url":"https://github.com/Nef10.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SwiftBeanCountImporter\n\n[![CI Status](https://github.com/Nef10/SwiftBeanCountImporter/workflows/CI/badge.svg?event=push)](https://github.com/Nef10/SwiftBeanCountImporter/actions?query=workflow%3A%22CI%22) [![Documentation percentage](https://nef10.github.io/SwiftBeanCountImporter/badge.svg)](https://nef10.github.io/SwiftBeanCountImporter/) [![License: MIT](https://img.shields.io/github/license/Nef10/SwiftBeanCountImporter)](https://github.com/Nef10/SwiftBeanCountImporter/blob/main/LICENSE) [![Latest version](https://img.shields.io/github/v/release/Nef10/SwiftBeanCountImporter?label=SemVer\u0026sort=semver)](https://github.com/Nef10/SwiftBeanCountImporter/releases) ![platforms supported: linux | macOS | iOS | watchOS | tvOS](https://img.shields.io/badge/platform-linux%20%7C%20macOS%20%7C%20iOS%20%7C%20watchOS%20%7C%20tvOS-blue) ![SPM compatible](https://img.shields.io/badge/SPM-compatible-blue)\n\n### ***This project is part for SwiftBeanCount, please check out the main documentation [here](https://github.com/Nef10/SwiftBeanCount).***\n\n## What\n\nThis is the importer of SwiftBeanCount. It reads files to create transactions. This library does not include any UI, so consumers need to provide a UI for selecting accounts, settings, as well as editing of transactions.\n\n## How to use\n\n### Import Transactions\n\n1) Create an `Importer` via one of the `new` functions on the `ImporterFactory`, depending on what you want to import.\n2) Set your `delegate` on the importer.\n3) Call `load()` on the importer.\n4) Call `nextTransaction()` to retrive transaction after transactions till it returns `nil`. It is recommended to allow the user the edit the transactions while doing this, as long as `shouldAllowUserToEdit` is true.\n5) If the user edits the transaction, and you offer and they accept to save the new mapping, call `saveMapped(description:payee:accountName:)`.\n6) Get `balancesToImport()` and `pricesToImport()` from the importer.\n\n### Settings\n\nThere are settings for the date tolerance when detecting duplicate transactions, as well as for the mapping the user saved in step 5) of importing transactions. Your app can allow the user to view and edit these via the `Settings` object. Settings are by default stored in `UserDefaults` but you can bring your own `SettingsStorage` by setting `Settings.storage`.\n\n### Help\n\nEach Importer provides a help text. You can access all importers via `ImporterFactory.allImporters`. They each expose an `importerName` and `helpText` on the class.\n\n### More\n\nPlease check out the complete documentation [here](https://nef10.github.io/SwiftBeanCountImporter/), or have a look at the [SwiftBeanCountImporterApp](https://github.com/Nef10/SwiftBeanCountImporterApp/) which uses this library.\n\n## Usage\n\nThe library supports the Swift Package Manger, so simply add a dependency in your `Package.swift`:\n\n```\n.package(url: \"https://github.com/Nef10/SwiftBeanCountImporter.git\", .exact(\"X.Y.Z\")),\n```\n\n*Note: as per semantic versioning all versions changes \u003c 1.0.0 can be breaking, so please use `.exact` for now*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnef10%2Fswiftbeancountimporter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnef10%2Fswiftbeancountimporter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnef10%2Fswiftbeancountimporter/lists"}