@tasenor/common-plugins 1.11.60 → 1.11.62

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.
@@ -1,4 +1,4 @@
1
1
 
2
- > @tasenor/common-plugins@1.11.59 build /home/ci/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins
2
+ > @tasenor/common-plugins@1.11.61 build /home/ci/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins
3
3
  > rm -fr dist && tsc
4
4
 
@@ -1,8 +1,8 @@
1
1
 
2
- > @tasenor/common-plugins@1.11.59 ci /home/ci/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins
2
+ > @tasenor/common-plugins@1.11.61 ci /home/ci/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins
3
3
  > pnpm run lint
4
4
 
5
5
 
6
- > @tasenor/common-plugins@1.11.59 lint /home/ci/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins
6
+ > @tasenor/common-plugins@1.11.61 lint /home/ci/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins
7
7
  > eslint 'src/**/*.{ts,tsx}' 'data/**/*.mjs'
8
8
 
@@ -10,4 +10,5 @@ export declare class CoinbaseHandler extends TransactionImportHandler {
10
10
  init(files: ProcessFile[]): Promise<ProcessFile[]>;
11
11
  segmentId(line: TextFileLine): SegmentId | typeof NO_SEGMENT;
12
12
  time(line: TextFileLine): Date | undefined;
13
+ segmentationColumnPostProcess(columns: Record<string, string>): Promise<Record<string, string>>;
13
14
  }
@@ -79,5 +79,17 @@ export class CoinbaseHandler extends TransactionImportHandler {
79
79
  }
80
80
  throw new Error(`Coinbase import handler does not implement time() for version ${this.version}.`);
81
81
  }
82
+ async segmentationColumnPostProcess(columns) {
83
+ if (columns.type === 'Convert') {
84
+ const match = /Converted ([0-9.]+) (\w+) to ([0-9.]+) (\w+)/.exec(columns.Notes);
85
+ if (match) {
86
+ columns.giveAmount = match[1];
87
+ columns.giveAsset = match[2];
88
+ columns.takeAmount = match[3];
89
+ columns.takeAsset = match[4];
90
+ }
91
+ }
92
+ return columns;
93
+ }
82
94
  }
83
95
  //# sourceMappingURL=CoinbaseHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CoinbaseHandler.js","sourceRoot":"","sources":["../../../src/CoinbaseImport/backend/CoinbaseHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CoinbaseHandler.js","sourceRoot":"","sources":["../../../src/CoinbaseImport/backend/CoinbaseHandler.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ class CoinbaseImportPlugin extends ImportPlugin {
5
5
  super(new CoinbaseHandler());
6
6
  this.code = 'CoinbaseImport';
7
7
  this.title = 'Import for Coinbase';
8
- this.version = '1.0.22';
8
+ this.version = '1.0.23';
9
9
  this.icon = '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M5 6.99h3V14h2V6.99h3L9 3zM14 10v7.01h-3L15 21l4-3.99h-3V10z"/></svg>';
10
10
  this.releaseDate = '2022-10-24';
11
11
  this.use = 'backend';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tasenor/common-plugins",
3
- "version": "1.11.60",
3
+ "version": "1.11.62",
4
4
  "description": "Shared common plugins of Tasenor project",
5
5
  "repository": "git@github.com:dataplugoy/tasenor-bookkeeper.git",
6
6
  "author": "Tommi Ronkainen <tommi.ronkainen@gmail.com>",
@@ -13,9 +13,9 @@
13
13
  "dayjs": "1.10.8",
14
14
  "sprintf-js": "^1.1.2",
15
15
  "tsx": "^4.7.0",
16
- "@tasenor/common": "1.11.60",
17
- "@tasenor/common-node": "1.11.60",
18
- "@tasenor/common-ui": "1.11.60"
16
+ "@tasenor/common-node": "1.11.62",
17
+ "@tasenor/common": "1.11.62",
18
+ "@tasenor/common-ui": "1.11.62"
19
19
  },
20
20
  "devDependencies": {
21
21
  "@mui/icons-material": "^5.14.1",
@@ -31,8 +31,8 @@
31
31
  "react-i18next": "^14.0.5",
32
32
  "react-router-dom": "^6.14.1",
33
33
  "typescript": "^5.1.6",
34
- "eslint-config-tasenor": "0.0.0",
35
- "@tasenor/config": "1.11.60"
34
+ "@tasenor/config": "1.11.62",
35
+ "eslint-config-tasenor": "0.0.0"
36
36
  },
37
37
  "peerDependencies": {
38
38
  "@mui/icons-material": "^5.14.1",
@@ -89,4 +89,17 @@ export class CoinbaseHandler extends TransactionImportHandler {
89
89
  }
90
90
  throw new Error(`Coinbase import handler does not implement time() for version ${this.version}.`)
91
91
  }
92
+
93
+ async segmentationColumnPostProcess(columns: Record<string, string>): Promise<Record<string, string>> {
94
+ if (columns.type === 'Convert') {
95
+ const match = /Converted ([0-9.]+) (\w+) to ([0-9.]+) (\w+)/.exec(columns.Notes)
96
+ if (match) {
97
+ columns.giveAmount = match[1]
98
+ columns.giveAsset = match[2]
99
+ columns.takeAmount = match[3]
100
+ columns.takeAsset = match[4]
101
+ }
102
+ }
103
+ return columns
104
+ }
92
105
  }
@@ -9,7 +9,7 @@ class CoinbaseImportPlugin extends ImportPlugin {
9
9
 
10
10
  this.code = 'CoinbaseImport' as PluginCode
11
11
  this.title = 'Import for Coinbase'
12
- this.version = '1.0.22' as Version
12
+ this.version = '1.0.23' as Version
13
13
  this.icon = '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M5 6.99h3V14h2V6.99h3L9 3zM14 10v7.01h-3L15 21l4-3.99h-3V10z"/></svg>'
14
14
  this.releaseDate = '2022-10-24'
15
15
  this.use = 'backend'
@@ -137,6 +137,86 @@
137
137
  "reason": "'trade'"
138
138
  }
139
139
  ]
140
+ },
141
+ {
142
+ "name": "Send (v2)",
143
+ "filter": "type == 'Send'",
144
+ "result": [
145
+ {
146
+ "data": {
147
+ "text": "Notes",
148
+ "currency": "Currency",
149
+ "currencyValue": "-Total",
150
+ "rates": "rates(Currency, Price)"
151
+ },
152
+ "type": "'crypto'",
153
+ "asset": "Asset",
154
+ "amount": "-Quantity",
155
+ "reason": "'expense'"
156
+ },
157
+ {
158
+ "data": {
159
+ "text": "Notes",
160
+ "currency": "Currency",
161
+ "currencyValue": "Total"
162
+ },
163
+ "type": "'statement'",
164
+ "asset": "'NEEDS_MANUAL_INSPECTION'",
165
+ "amount": "Total",
166
+ "reason": "'expense'"
167
+ }
168
+ ]
169
+ },
170
+ {
171
+ "name": "Receive (v2)",
172
+ "filter": "type == 'Receive'",
173
+ "result": [
174
+ {
175
+ "data": {
176
+ "text": "Notes",
177
+ "currency": "Currency",
178
+ "currencyValue": "Total",
179
+ "rates": "rates(Currency, Price)"
180
+ },
181
+ "type": "'crypto'",
182
+ "asset": "Asset",
183
+ "amount": "Quantity",
184
+ "reason": "'income'"
185
+ },
186
+ {
187
+ "data": {
188
+ "currency": "Currency",
189
+ "currencyValue": "Total"
190
+ },
191
+ "type": "'statement'",
192
+ "asset": "'NEEDS_MANUAL_INSPECTION'",
193
+ "amount": "Total",
194
+ "reason": "'income'"
195
+ }
196
+ ]
197
+ },
198
+ {
199
+ "name": "Convert (v2)",
200
+ "filter": "type == 'Convert'",
201
+ "result": [
202
+ {
203
+ "data": {
204
+ "text": "Notes",
205
+ "currency": "Currency",
206
+ "currencyValue": "-Total * 100"
207
+ },
208
+ "type": "'crypto'",
209
+ "asset": "giveAsset",
210
+ "amount": "-giveAmount",
211
+ "reason": "'trade'"
212
+ },
213
+ {
214
+ "type": "'crypto'",
215
+ "asset": "takeAsset",
216
+ "amount": "takeAmount",
217
+ "reason": "'trade'"
218
+ }
219
+ ]
140
220
  }
141
221
  ]
142
222
  }