israeli-banks-actual-budget-importer 1.1.0 → 1.2.1
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/.github/workflows/main.yml +12 -7
- package/.releaserc +5 -29
- package/CHANGELOG.md +97 -0
- package/Dockerfile +14 -5
- package/README.md +13 -22
- package/compose.yml +13 -0
- package/package.json +8 -7
- package/src/index.ts +6 -0
- package/src/utils.ts +1 -0
- package/bun.lock +0 -2228
|
@@ -19,18 +19,23 @@ jobs:
|
|
|
19
19
|
- name: Checkout
|
|
20
20
|
uses: actions/checkout@v4
|
|
21
21
|
|
|
22
|
-
- name: Setup
|
|
23
|
-
uses:
|
|
22
|
+
- name: Setup Node
|
|
23
|
+
uses: actions/setup-node@v4
|
|
24
|
+
with:
|
|
25
|
+
node-version: 21
|
|
26
|
+
cache: 'yarn'
|
|
27
|
+
cache-dependency-path: 'yarn.lock'
|
|
24
28
|
|
|
25
29
|
- name: Install Dependencies
|
|
26
|
-
run:
|
|
30
|
+
run: yarn install
|
|
31
|
+
env:
|
|
32
|
+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
27
33
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
run: echo "${{ secrets.GH_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
|
|
34
|
+
- name: Make repo writable for BuildKit
|
|
35
|
+
run: sudo chmod -R 777 $GITHUB_WORKSPACE/.yarn
|
|
31
36
|
|
|
32
37
|
- name: Semantic Release
|
|
33
|
-
run:
|
|
38
|
+
run: yarn semantic-release
|
|
34
39
|
env:
|
|
35
40
|
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
36
41
|
GH_TOKEN: ${{ secrets.GH_TOKEN }}
|
package/.releaserc
CHANGED
|
@@ -13,35 +13,11 @@
|
|
|
13
13
|
"@semantic-release/npm",
|
|
14
14
|
"@semantic-release/changelog",
|
|
15
15
|
"@semantic-release/git",
|
|
16
|
-
"@semantic-release
|
|
17
|
-
|
|
18
|
-
"
|
|
19
|
-
|
|
20
|
-
"dockerTags": [
|
|
21
|
-
"latest",
|
|
22
|
-
"{{version}}",
|
|
23
|
-
"{{major}}",
|
|
24
|
-
"{{major}}.{{minor}}"
|
|
25
|
-
],
|
|
26
|
-
"dockerLogin": false,
|
|
27
|
-
"dockerRegistry": "ghcr.io",
|
|
28
|
-
"dockerProject": "tomerh2001",
|
|
29
|
-
"dockerArgs": {
|
|
30
|
-
"GH_REPO": "{{env.GH_REPO}}"
|
|
31
|
-
}
|
|
16
|
+
["@codedependant/semantic-release-docker", {
|
|
17
|
+
"dockerBuildQuiet": false,
|
|
18
|
+
"dockerBuildFlags": {
|
|
19
|
+
"progress": "plain"
|
|
32
20
|
}
|
|
33
|
-
]
|
|
34
|
-
[
|
|
35
|
-
"@codedependant/semantic-release-docker",
|
|
36
|
-
{
|
|
37
|
-
"dockerTags": [
|
|
38
|
-
"latest",
|
|
39
|
-
"{{version}}",
|
|
40
|
-
"{{major}}",
|
|
41
|
-
"{{major}}.{{minor}}"
|
|
42
|
-
],
|
|
43
|
-
"dockerProject": "tomerh2001"
|
|
44
|
-
}
|
|
45
|
-
]
|
|
21
|
+
}]
|
|
46
22
|
]
|
|
47
23
|
}
|
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,100 @@
|
|
|
1
|
+
## [1.2.1](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/compare/v1.2.0...v1.2.1) (2025-05-12)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* add dockerBuildFlags configuration to semantic-release-docker plugin ([49c0b58](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/49c0b58ee7204745b64693da958a248f3bfe8155))
|
|
7
|
+
* add newline at end of .releaserc file ([d28f51d](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/d28f51d18b84c868c35ee4681abc5d6f51b2910a))
|
|
8
|
+
* comment out ghcr.io authentication step and update semantic-release-docker plugin configuration ([a5f389c](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/a5f389c52649b99f2db0f0b5293144178c968549))
|
|
9
|
+
* correct casing of 'executablePath' in scraper configuration ([b122168](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/b1221688ae0f9912b8d51f4a42e2f7ff57349443))
|
|
10
|
+
* remove ghcr.io authentication step from workflow ([421853b](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/421853bbaa03faa67436aa08954ce3b8e1467baa))
|
|
11
|
+
* replace immediate process exit with delayed exit using setTimeout ([9751cea](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/9751cea84c250d0946e0f15106b46904f7cbd23a))
|
|
12
|
+
* update dependencies and add semantic-release-docker plugin ([83257aa](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/83257aa2e342accac105d9f38fe854e4942bcec5))
|
|
13
|
+
* update permissions for BuildKit to ensure writable access ([9232656](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/92326568e347c497d5b4cff37ce58adf72189eed))
|
|
14
|
+
* update semantic-release-docker plugin configuration to disable quiet mode ([590b210](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/590b2101b4bb7c21d30fd513b2fac9c05cab8967))
|
|
15
|
+
|
|
16
|
+
## [1.2.1](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/compare/v1.2.0...v1.2.1) (2025-05-12)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Bug Fixes
|
|
20
|
+
|
|
21
|
+
* add dockerBuildFlags configuration to semantic-release-docker plugin ([49c0b58](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/49c0b58ee7204745b64693da958a248f3bfe8155))
|
|
22
|
+
* add newline at end of .releaserc file ([d28f51d](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/d28f51d18b84c868c35ee4681abc5d6f51b2910a))
|
|
23
|
+
* comment out ghcr.io authentication step and update semantic-release-docker plugin configuration ([a5f389c](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/a5f389c52649b99f2db0f0b5293144178c968549))
|
|
24
|
+
* correct casing of 'executablePath' in scraper configuration ([b122168](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/b1221688ae0f9912b8d51f4a42e2f7ff57349443))
|
|
25
|
+
* replace immediate process exit with delayed exit using setTimeout ([9751cea](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/9751cea84c250d0946e0f15106b46904f7cbd23a))
|
|
26
|
+
* update dependencies and add semantic-release-docker plugin ([83257aa](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/83257aa2e342accac105d9f38fe854e4942bcec5))
|
|
27
|
+
* update semantic-release-docker plugin configuration to disable quiet mode ([590b210](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/590b2101b4bb7c21d30fd513b2fac9c05cab8967))
|
|
28
|
+
|
|
29
|
+
## [1.2.1](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/compare/v1.2.0...v1.2.1) (2025-05-12)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
### Bug Fixes
|
|
33
|
+
|
|
34
|
+
* add newline at end of .releaserc file ([d28f51d](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/d28f51d18b84c868c35ee4681abc5d6f51b2910a))
|
|
35
|
+
* comment out ghcr.io authentication step and update semantic-release-docker plugin configuration ([a5f389c](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/a5f389c52649b99f2db0f0b5293144178c968549))
|
|
36
|
+
* correct casing of 'executablePath' in scraper configuration ([b122168](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/b1221688ae0f9912b8d51f4a42e2f7ff57349443))
|
|
37
|
+
* replace immediate process exit with delayed exit using setTimeout ([9751cea](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/9751cea84c250d0946e0f15106b46904f7cbd23a))
|
|
38
|
+
* update dependencies and add semantic-release-docker plugin ([83257aa](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/83257aa2e342accac105d9f38fe854e4942bcec5))
|
|
39
|
+
|
|
40
|
+
## [1.2.1](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/compare/v1.2.0...v1.2.1) (2025-05-12)
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
### Bug Fixes
|
|
44
|
+
|
|
45
|
+
* correct casing of 'executablePath' in scraper configuration ([b122168](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/b1221688ae0f9912b8d51f4a42e2f7ff57349443))
|
|
46
|
+
* replace immediate process exit with delayed exit using setTimeout ([9751cea](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/9751cea84c250d0946e0f15106b46904f7cbd23a))
|
|
47
|
+
* update dependencies and add semantic-release-docker plugin ([83257aa](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/83257aa2e342accac105d9f38fe854e4942bcec5))
|
|
48
|
+
|
|
49
|
+
# [1.2.0](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/compare/v1.1.0...v1.2.0) (2025-04-16)
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
### Bug Fixes
|
|
53
|
+
|
|
54
|
+
* replace bunx with yarn for semantic release command ([1c15afa](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/1c15afa2f0b4aa2247538ff0273b97639bac9f32))
|
|
55
|
+
* specify Node.js version to 21 in workflow ([5f8c3db](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/5f8c3db7b8d055e2d5b11acee3f9b45d5ef621b3))
|
|
56
|
+
* update Docker image tag to use latest version in compose file ([e43a3b1](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/e43a3b11e2271818f00f55a985c363c9a2fe4d5f))
|
|
57
|
+
* update workflow to use yarn for dependency installation and setup Node environment ([b0e797f](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/b0e797fdcbefb6390e85ccecaf598d37d67f9f04))
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
### Features
|
|
61
|
+
|
|
62
|
+
* Added docker support ([aff5c85](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/aff5c8559f194a44c4c29f8ee1cd24f89fb11f62))
|
|
63
|
+
|
|
64
|
+
# [1.2.0](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/compare/v1.1.0...v1.2.0) (2025-04-16)
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
### Bug Fixes
|
|
68
|
+
|
|
69
|
+
* replace bunx with yarn for semantic release command ([1c15afa](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/1c15afa2f0b4aa2247538ff0273b97639bac9f32))
|
|
70
|
+
* specify Node.js version to 21 in workflow ([5f8c3db](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/5f8c3db7b8d055e2d5b11acee3f9b45d5ef621b3))
|
|
71
|
+
* update workflow to use yarn for dependency installation and setup Node environment ([b0e797f](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/b0e797fdcbefb6390e85ccecaf598d37d67f9f04))
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
### Features
|
|
75
|
+
|
|
76
|
+
* Added docker support ([aff5c85](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/aff5c8559f194a44c4c29f8ee1cd24f89fb11f62))
|
|
77
|
+
|
|
78
|
+
# [1.2.0](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/compare/v1.1.0...v1.2.0) (2025-04-16)
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
### Bug Fixes
|
|
82
|
+
|
|
83
|
+
* replace bunx with yarn for semantic release command ([1c15afa](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/1c15afa2f0b4aa2247538ff0273b97639bac9f32))
|
|
84
|
+
* update workflow to use yarn for dependency installation and setup Node environment ([b0e797f](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/b0e797fdcbefb6390e85ccecaf598d37d67f9f04))
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
### Features
|
|
88
|
+
|
|
89
|
+
* Added docker support ([aff5c85](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/aff5c8559f194a44c4c29f8ee1cd24f89fb11f62))
|
|
90
|
+
|
|
91
|
+
# [1.2.0](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/compare/v1.1.0...v1.2.0) (2025-04-16)
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
### Features
|
|
95
|
+
|
|
96
|
+
* Added docker support ([aff5c85](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/commit/aff5c8559f194a44c4c29f8ee1cd24f89fb11f62))
|
|
97
|
+
|
|
1
98
|
# [1.1.0](https://github.com/tomerh2001/israeli-banks-actual-budget-importer/compare/v1.0.0...v1.1.0) (2025-04-09)
|
|
2
99
|
|
|
3
100
|
|
package/Dockerfile
CHANGED
|
@@ -1,8 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
# Base stage for common settings
|
|
2
|
+
FROM ghcr.io/puppeteer/puppeteer:latest AS base
|
|
3
|
+
WORKDIR /app
|
|
2
4
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
+
# Dependencies stage
|
|
6
|
+
FROM base AS dependencies
|
|
7
|
+
COPY package.json yarn.lock .yarnrc.yml ./
|
|
8
|
+
COPY .yarn .yarn
|
|
9
|
+
RUN yarn install
|
|
5
10
|
|
|
6
|
-
|
|
11
|
+
# Builder stage
|
|
12
|
+
FROM dependencies AS builder
|
|
13
|
+
COPY src/ src/
|
|
7
14
|
|
|
8
|
-
|
|
15
|
+
# Final stage for production
|
|
16
|
+
FROM builder AS release
|
|
17
|
+
CMD yarn start
|
package/README.md
CHANGED
|
@@ -7,27 +7,6 @@
|
|
|
7
7
|
|
|
8
8
|
This project provides an importer from Israeli banks (via [israeli-bank-scrapers](https://github.com/eshaham/israeli-bank-scrapers)) into [Actual Budget](https://github.com/actualbudget/actual).
|
|
9
9
|
|
|
10
|
-
## Table of Contents
|
|
11
|
-
|
|
12
|
-
- [Israeli Banks → Actual Budget](#israeli-banks--actual-budget)
|
|
13
|
-
- [Table of Contents](#table-of-contents)
|
|
14
|
-
- [Features](#features)
|
|
15
|
-
- [Installation](#installation)
|
|
16
|
-
- [Docker](#docker)
|
|
17
|
-
- [Prerequisites](#prerequisites)
|
|
18
|
-
- [Steps](#steps)
|
|
19
|
-
- [Configuration](#configuration)
|
|
20
|
-
- [Configuration Structure](#configuration-structure)
|
|
21
|
-
- [Usage](#usage)
|
|
22
|
-
- [Development](#development)
|
|
23
|
-
- [Overview](#overview)
|
|
24
|
-
- [Project Structure](#project-structure)
|
|
25
|
-
- [TypeScript \& Linting](#typescript--linting)
|
|
26
|
-
- [Testing \& Linting](#testing--linting)
|
|
27
|
-
- [Contributing](#contributing)
|
|
28
|
-
- [License](#license)
|
|
29
|
-
- [Acknowledgments](#acknowledgments)
|
|
30
|
-
|
|
31
10
|
## Features
|
|
32
11
|
|
|
33
12
|
1. **Multi Bank Support**: Supports all of the institutions that the [israeli-bank-scrapers](https://github.com/eshaham/israeli-bank-scrapers) library covers (Bank Hapoalim, Cal, Leumi, Discount, etc.).
|
|
@@ -43,7 +22,19 @@ This project provides an importer from Israeli banks (via [israeli-bank-scrapers
|
|
|
43
22
|
## Installation
|
|
44
23
|
|
|
45
24
|
### Docker
|
|
46
|
-
|
|
25
|
+
https://hub.docker.com/r/tomerh2001/israeli-banks-actual-budget-importer
|
|
26
|
+
#### Example
|
|
27
|
+
```yml
|
|
28
|
+
services:
|
|
29
|
+
importer:
|
|
30
|
+
image: tomerh2001/israeli-banks-actual-budget-importer:latest
|
|
31
|
+
cap_add:
|
|
32
|
+
- SYS_ADMIN
|
|
33
|
+
volumes:
|
|
34
|
+
- ./config.json:/app/config.json
|
|
35
|
+
- ./cache:/app/cache # Optional
|
|
36
|
+
- ./chrome-data:/app/chrome-data # Optional (Can be used to solve 2FA issues like with hapoalim)
|
|
37
|
+
```
|
|
47
38
|
|
|
48
39
|
### Prerequisites
|
|
49
40
|
|
package/compose.yml
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
services:
|
|
2
|
+
israeli-banks-actual-budget-importer:
|
|
3
|
+
image: tomerh2001/israeli-banks-actual-budget-importer:latest
|
|
4
|
+
container_name: israeli-banks-actual-budget-importer
|
|
5
|
+
cap_add:
|
|
6
|
+
- SYS_ADMIN
|
|
7
|
+
build:
|
|
8
|
+
context: .
|
|
9
|
+
dockerfile: Dockerfile
|
|
10
|
+
volumes:
|
|
11
|
+
- ./config.json:/app/config.json
|
|
12
|
+
- ./cache:/app/cache
|
|
13
|
+
- ./chrome-data:/app/chrome-data
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.1
|
|
2
|
+
"version": "1.2.1",
|
|
3
3
|
"name": "israeli-banks-actual-budget-importer",
|
|
4
4
|
"module": "index.ts",
|
|
5
5
|
"type": "module",
|
|
@@ -12,23 +12,24 @@
|
|
|
12
12
|
"@semantic-release/changelog": "^6.0.3",
|
|
13
13
|
"@semantic-release/commit-analyzer": "^13.0.1",
|
|
14
14
|
"@semantic-release/git": "^10.0.1",
|
|
15
|
-
"@semantic-release/github": "^11.0.
|
|
15
|
+
"@semantic-release/github": "^11.0.2",
|
|
16
16
|
"@semantic-release/npm": "^12.0.1",
|
|
17
17
|
"@semantic-release/release-notes-generator": "^14.0.3",
|
|
18
18
|
"@types/lodash": "^4.17.16",
|
|
19
|
-
"@types/papaparse": "^5.3.
|
|
19
|
+
"@types/papaparse": "^5.3.16",
|
|
20
20
|
"bun-types": "latest",
|
|
21
21
|
"papaparse": "^5.5.2",
|
|
22
|
-
"
|
|
22
|
+
"semantic-release": "^24.2.3",
|
|
23
|
+
"typescript": "^5.8.3",
|
|
23
24
|
"xo": "^0.60.0"
|
|
24
25
|
},
|
|
25
26
|
"packageManager": "yarn@4.7.0",
|
|
26
27
|
"dependencies": {
|
|
27
|
-
"@actual-app/api": "^25.
|
|
28
|
-
"israeli-bank-scrapers": "^5.4.
|
|
28
|
+
"@actual-app/api": "^25.5.0",
|
|
29
|
+
"israeli-bank-scrapers": "^5.4.7",
|
|
29
30
|
"lodash": "^4.17.21",
|
|
30
31
|
"moment": "^2.30.1",
|
|
31
32
|
"p-queue": "^8.1.0",
|
|
32
|
-
"tsx": "^4.19.
|
|
33
|
+
"tsx": "^4.19.4"
|
|
33
34
|
}
|
|
34
35
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
|
+
/* eslint-disable unicorn/no-process-exit */
|
|
1
2
|
/* eslint-disable no-await-in-loop */
|
|
2
3
|
/* eslint-disable n/file-extension-in-import */
|
|
3
4
|
|
|
5
|
+
import process from 'node:process';
|
|
4
6
|
import {type CompanyTypes} from 'israeli-bank-scrapers';
|
|
5
7
|
import _ from 'lodash';
|
|
6
8
|
import actual from '@actual-app/api';
|
|
7
9
|
import Queue from 'p-queue';
|
|
10
|
+
import moment from 'moment';
|
|
8
11
|
import config from '../config.json' assert {type: 'json'};
|
|
9
12
|
import type {ConfigBank} from './config.d.ts';
|
|
10
13
|
import {scrapeAndImportTransactions} from './utils.ts';
|
|
@@ -25,4 +28,7 @@ for (const [companyId, bank] of _.entries(config.banks) as Array<[CompanyTypes,
|
|
|
25
28
|
|
|
26
29
|
await queue.onIdle();
|
|
27
30
|
await actual.shutdown();
|
|
31
|
+
|
|
28
32
|
console.log('Done');
|
|
33
|
+
|
|
34
|
+
setTimeout(() => process.exit(0), moment.duration(5, 'seconds').asMilliseconds());
|
package/src/utils.ts
CHANGED
|
@@ -16,6 +16,7 @@ export async function scrapeAndImportTransactions({companyId, bank}: ScrapeTrans
|
|
|
16
16
|
companyId,
|
|
17
17
|
startDate: moment().subtract(6, 'month').toDate(),
|
|
18
18
|
executablePath: '/opt/homebrew/bin/chromium',
|
|
19
|
+
args: ['--user-data-dir=/app/chrome-data'],
|
|
19
20
|
additionalTransactionInformation: true,
|
|
20
21
|
verbose: false,
|
|
21
22
|
showBrowser: false,
|