israeli-banks-actual-budget-importer 1.4.0 → 1.5.0
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.
- package/CHANGELOG.md +12 -0
- package/README.md +0 -93
- package/package.json +1 -1
- package/src/utils.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
# [1.5.0](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/compare/v1.4.0...v1.5.0) (2025-05-24)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* update scraper configuration for executable path and user data directory ([7227ac4](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/7227ac40be5c50c2e8bf95e201af1f260478846c))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* improved the logs ([3a5f1ac](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/3a5f1aca53be85413225c9e0e75df29cbd70cf91))
|
|
12
|
+
|
|
1
13
|
# [1.4.0](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/compare/v1.3.1...v1.4.0) (2025-05-24)
|
|
2
14
|
|
|
3
15
|
|
package/README.md
CHANGED
|
@@ -40,27 +40,6 @@ services:
|
|
|
40
40
|
- ./chrome-data:/app/chrome-data # Optional (Used to solve 2FA issues like with hapoalim)
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
-
### Prerequisites
|
|
44
|
-
|
|
45
|
-
- **Node.js:** Make sure you have Node.js installed (a version that supports ES modules is recommended).
|
|
46
|
-
- **Yarn:** This project uses Yarn as its package manager. Ensure Yarn is installed.
|
|
47
|
-
- **TypeScript:** Installed via dependencies.
|
|
48
|
-
|
|
49
|
-
### Steps
|
|
50
|
-
|
|
51
|
-
1. **Clone the Repository:**
|
|
52
|
-
|
|
53
|
-
```bash
|
|
54
|
-
git clone https://github.com/tomerh2001/israeli-banks-actual-budget-importer.git
|
|
55
|
-
cd israeli-banks-actual-budget-importer
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
2. **Install Dependencies:**
|
|
59
|
-
|
|
60
|
-
```bash
|
|
61
|
-
yarn install
|
|
62
|
-
```
|
|
63
|
-
|
|
64
43
|
## Configuration
|
|
65
44
|
|
|
66
45
|
The application configuration is defined using JSON and validated against a schema. The key configuration file is `config.json` and its schema is described in `config.schema.json`.
|
|
@@ -113,78 +92,6 @@ Example snippet:
|
|
|
113
92
|
}
|
|
114
93
|
```
|
|
115
94
|
|
|
116
|
-
## Usage
|
|
117
|
-
|
|
118
|
-
The project comes with scripts configured in the `package.json`. To start the importer:
|
|
119
|
-
|
|
120
|
-
```bash
|
|
121
|
-
yarn start
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
This command runs the script defined as:
|
|
125
|
-
|
|
126
|
-
```json
|
|
127
|
-
"start": "tsx src/index.ts"
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
It initializes the connection to the Actual API, downloads the budget, scrapes bank transactions, imports them, and if enabled, performs reconciliation. After processing all tasks in the queue, the application shuts down cleanly.
|
|
131
|
-
|
|
132
|
-
## Development
|
|
133
|
-
|
|
134
|
-
### Overview
|
|
135
|
-
|
|
136
|
-
The **Israeli Banks Actual Budget Importer** is a Node.js project written in TypeScript designed to:
|
|
137
|
-
|
|
138
|
-
- **Scrape transactions** using specialized bank scrapers.
|
|
139
|
-
- **Import transactions** into the Actual budgeting system.
|
|
140
|
-
- **Perform account reconciliation** by computing and importing balance differences.
|
|
141
|
-
- **Facilitate scheduled imports** by managing concurrent scraping tasks with a queue.
|
|
142
|
-
|
|
143
|
-
The main logic is found in `src/index.ts`, which initializes the Actual API, triggers the scraping process, imports transactions, and then gracefully shuts down.
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
### Project Structure
|
|
147
|
-
|
|
148
|
-
- **src/**
|
|
149
|
-
Contains the TypeScript source code.
|
|
150
|
-
- `index.ts`: Entry point.
|
|
151
|
-
- `utils.ts`: Utility functions for scraping and importing transactions.
|
|
152
|
-
- `config.d.ts`, `utils.d.ts`: Type definitions.
|
|
153
|
-
|
|
154
|
-
- **config.schema.json:**
|
|
155
|
-
JSON schema to validate your configuration file.
|
|
156
|
-
|
|
157
|
-
- **package.json:**
|
|
158
|
-
Lists the dependencies, scripts, and project metadata.
|
|
159
|
-
|
|
160
|
-
- **.github, .vscode:**
|
|
161
|
-
Contain CI/CD and editor-specific settings.
|
|
162
|
-
|
|
163
|
-
### TypeScript & Linting
|
|
164
|
-
|
|
165
|
-
The project uses [XO](https://github.com/xojs/xo) for linting. Ensure you follow coding styles as enforced by XO.
|
|
166
|
-
|
|
167
|
-
## Testing & Linting
|
|
168
|
-
|
|
169
|
-
Run tests and linting with the following command:
|
|
170
|
-
|
|
171
|
-
```bash
|
|
172
|
-
yarn test
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
Ensure that your changes pass linting rules and tests before submitting any pull requests.
|
|
176
|
-
|
|
177
|
-
## Contributing
|
|
178
|
-
|
|
179
|
-
Contributions are welcome! To contribute:
|
|
180
|
-
|
|
181
|
-
1. **Fork the Repository:** Create your own fork and clone it locally.
|
|
182
|
-
2. **Create a New Branch:** Use descriptive branch names (e.g., `feature/new-scraper-support`).
|
|
183
|
-
3. **Commit Your Changes:** Follow the commit message guidelines, especially if you are using semantic release.
|
|
184
|
-
4. **Submit a Pull Request:** Ensure your code passes all tests and linting checks.
|
|
185
|
-
|
|
186
|
-
Please also review our [CHANGELOG.md](./CHANGELOG.md) and [SECURITY.md](./SECURITY.md) for more context on versioning and security practices.
|
|
187
|
-
|
|
188
95
|
## License
|
|
189
96
|
|
|
190
97
|
This project is open-source. Please see the [LICENSE](./LICENSE) file for licensing details.
|
package/package.json
CHANGED
package/src/utils.ts
CHANGED
|
@@ -29,7 +29,7 @@ export async function scrapeAndImportTransactions({companyId, bank}: ScrapeTrans
|
|
|
29
29
|
verbose: process.env?.VERBOSE === 'true',
|
|
30
30
|
showBrowser: process.env?.SHOW_BROWSER === 'true',
|
|
31
31
|
});
|
|
32
|
-
scraper.onProgress((
|
|
32
|
+
scraper.onProgress((_companyId, payload) => {
|
|
33
33
|
log(payload.type);
|
|
34
34
|
});
|
|
35
35
|
|