@tasenor/common-plugins 1.13.18 → 1.13.19

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.13.17 build /home/ci/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins
2
+ > @tasenor/common-plugins@1.13.18 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.13.17 ci /home/ci/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins
2
+ > @tasenor/common-plugins@1.13.18 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.13.17 lint /home/ci/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins
6
+ > @tasenor/common-plugins@1.13.18 lint /home/ci/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins
7
7
  > eslint 'src/**/*.{ts,tsx}' 'data/**/*.mjs'
8
8
 
@@ -21,7 +21,10 @@ export class CoinbaseHandler extends TransactionImportHandler {
21
21
  'Spot Price Currency': 'Currency',
22
22
  'Spot Price at Transaction': 'Price',
23
23
  'Total (inclusive of fees and/or spread)': 'Total',
24
- 'Fees and/or Spread': 'Fees'
24
+ 'Fees and/or Spread': 'Fees',
25
+ // V4
26
+ 'Price at Transaction': 'Price',
27
+ 'Price Currency': 'Currency',
25
28
  }
26
29
  };
27
30
  }
@@ -36,7 +39,15 @@ export class CoinbaseHandler extends TransactionImportHandler {
36
39
  return 2;
37
40
  }
38
41
  if (file.firstLineMatch(/^$/) && file.secondLineMatch(/^Transactions$/)) {
39
- return 3;
42
+ const data = file.decode();
43
+ const lines = data.split('\n').splice(3);
44
+ if (!/^Timestamp,Transaction Type,Asset,Quantity Transacted,Spot Price Currency,Spot Price at Transaction,Subtotal,Total/.test(lines[0])) {
45
+ return 3;
46
+ }
47
+ if (!/^ID,Timestamp,Transaction Type,Asset,Quantity Transacted,Price Currency,Price at Transaction,Subtotal,Total (inclusive of fees and\/or spread),Fees and\/or Spread,Notes/.test(lines[0])) {
48
+ return 4;
49
+ }
50
+ throw new Error('Coinbase parser is not able to understand the column format.');
40
51
  }
41
52
  return 0;
42
53
  }
@@ -50,9 +61,6 @@ export class CoinbaseHandler extends TransactionImportHandler {
50
61
  for (const file of files) {
51
62
  const data = file.decode();
52
63
  const lines = data.split('\n').splice(this.version === 2 ? 7 : 3);
53
- if (!/^Timestamp,Transaction Type,Asset,Quantity Transacted,Spot Price Currency,Spot Price at Transaction,Subtotal,Total/.test(lines[0])) {
54
- throw new Error('Coinbase parser is not able to understand the format.');
55
- }
56
64
  file.set(lines.join('\n'));
57
65
  }
58
66
  return files;
@@ -1 +1 @@
1
- {"version":3,"file":"CoinbaseHandler.js","sourceRoot":"","sources":["../../../src/CoinbaseImport/backend/CoinbaseHandler.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,wBAAwB,EAAE,MAAM,sBAAsB,CAAA;AAE5E;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,wBAAwB;IAE3D;QACE,KAAK,CAAC,gBAAgB,CAAC,CAAA;QACvB,IAAI,CAAC,aAAa,GAAG;YACnB,MAAM,EAAE,KAAK;YACb,aAAa,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC;YACtF,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,MAAM;YACjB,gBAAgB,EAAE,QAAQ;YAC1B,GAAG,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE;YACnC,cAAc,EAAE;gBACd,KAAK;gBACL,qBAAqB,EAAE,MAAM;gBAC7B,KAAK;gBACL,kBAAkB,EAAE,MAAM;gBAC1B,qBAAqB,EAAE,UAAU;gBACjC,qBAAqB,EAAE,UAAU;gBACjC,2BAA2B,EAAE,OAAO;gBACpC,yCAAyC,EAAE,OAAO;gBAClD,oBAAoB,EAAE,MAAM;aAC7B;SACF,CAAA;IACH,CAAC;IAED,IAAI,IAAI;QACN,OAAO,SAA0B,CAAA;IACnC,CAAC;IAED,SAAS,CAAC,IAAiB;QACzB,IAAI,IAAI,CAAC,cAAc,CAAC,0FAA0F,CAAC,EAAE;YACnH,OAAO,CAAC,CAAA;SACT;QACD,IAAI,IAAI,CAAC,cAAc,CAAC,sCAAsC,CAAC,EAAE;YAC/D,OAAO,CAAC,CAAA;SACT;QACD,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,EAAE;YACvE,OAAO,CAAC,CAAA;SACT;QAED,OAAO,CAAC,CAAA;IACV,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAoB;QAC7B,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE;YACtB,OAAO,KAAK,CAAA;SACb;QACD,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE;YAC5C,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,OAAO,CAAA;YACtC,qCAAqC;YACrC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACxB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;gBAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBACjE,IAAI,CAAC,oHAAoH,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;oBACxI,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAA;iBACzE;gBACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;aAC3B;YACD,OAAO,KAAK,CAAA;SACb;QAED,MAAM,IAAI,KAAK,CAAC,iEAAiE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAA;IACnG,CAAC;IAED,SAAS,CAAC,IAAkB;QAC1B,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE;YAC5C,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;SAC7B;QACD,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE;YACtB,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACzD,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;aACnC;YACD,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;SAChC;QACD,MAAM,IAAI,KAAK,CAAC,sEAAsE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAA;IACxG,CAAC;IAED,IAAI,CAAC,IAAkB;QACrB,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE;YAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;SAC7E;QACD,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE;YACtB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;SACnE;QACD,MAAM,IAAI,KAAK,CAAC,iEAAiE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAA;IACnG,CAAC;IAED,KAAK,CAAC,6BAA6B,CAAC,OAAgC;QAClE,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;YAC9B,MAAM,KAAK,GAAG,8CAA8C,CAAC,IAAI,CAAC,OAAO,CAAC,KAAe,CAAC,CAAA;YAC1F,IAAI,KAAK,EAAE;gBACT,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;gBACzC,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;gBAC5B,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;gBACzC,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;aAC7B;SACF;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;CACF"}
1
+ {"version":3,"file":"CoinbaseHandler.js","sourceRoot":"","sources":["../../../src/CoinbaseImport/backend/CoinbaseHandler.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,wBAAwB,EAAE,MAAM,sBAAsB,CAAA;AAE5E;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,wBAAwB;IAE3D;QACE,KAAK,CAAC,gBAAgB,CAAC,CAAA;QACvB,IAAI,CAAC,aAAa,GAAG;YACnB,MAAM,EAAE,KAAK;YACb,aAAa,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC;YACtF,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,MAAM;YACjB,gBAAgB,EAAE,QAAQ;YAC1B,GAAG,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE;YACnC,cAAc,EAAE;gBACd,KAAK;gBACL,qBAAqB,EAAE,MAAM;gBAC7B,KAAK;gBACL,kBAAkB,EAAE,MAAM;gBAC1B,qBAAqB,EAAE,UAAU;gBACjC,qBAAqB,EAAE,UAAU;gBACjC,2BAA2B,EAAE,OAAO;gBACpC,yCAAyC,EAAE,OAAO;gBAClD,oBAAoB,EAAE,MAAM;gBAC5B,KAAK;gBACL,sBAAsB,EAAE,OAAO;gBAC/B,gBAAgB,EAAE,UAAU;aAC7B;SACF,CAAA;IACH,CAAC;IAED,IAAI,IAAI;QACN,OAAO,SAA0B,CAAA;IACnC,CAAC;IAED,SAAS,CAAC,IAAiB;QACzB,IAAI,IAAI,CAAC,cAAc,CAAC,0FAA0F,CAAC,EAAE;YACnH,OAAO,CAAC,CAAA;SACT;QACD,IAAI,IAAI,CAAC,cAAc,CAAC,sCAAsC,CAAC,EAAE;YAC/D,OAAO,CAAC,CAAA;SACT;QACD,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,EAAE;YACvE,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;YAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;YACxC,IAAI,CAAC,oHAAoH,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;gBACxI,OAAO,CAAC,CAAA;aACT;YACD,IAAI,CAAC,0KAA0K,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC9L,OAAO,CAAC,CAAA;aACT;YAED,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAA;SAChF;QAED,OAAO,CAAC,CAAA;IACV,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAoB;QAC7B,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE;YACtB,OAAO,KAAK,CAAA;SACb;QACD,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE;YAC5C,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,OAAO,CAAA;YACtC,qCAAqC;YACrC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACxB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;gBAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBACjE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;aAC3B;YACD,OAAO,KAAK,CAAA;SACb;QAED,MAAM,IAAI,KAAK,CAAC,iEAAiE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAA;IACnG,CAAC;IAED,SAAS,CAAC,IAAkB;QAC1B,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE;YAC5C,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;SAC7B;QACD,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE;YACtB,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACzD,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;aACnC;YACD,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;SAChC;QACD,MAAM,IAAI,KAAK,CAAC,sEAAsE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAA;IACxG,CAAC;IAED,IAAI,CAAC,IAAkB;QACrB,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE;YAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;SAC7E;QACD,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE;YACtB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;SACnE;QACD,MAAM,IAAI,KAAK,CAAC,iEAAiE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAA;IACnG,CAAC;IAED,KAAK,CAAC,6BAA6B,CAAC,OAAgC;QAClE,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;YAC9B,MAAM,KAAK,GAAG,8CAA8C,CAAC,IAAI,CAAC,OAAO,CAAC,KAAe,CAAC,CAAA;YAC1F,IAAI,KAAK,EAAE;gBACT,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;gBACzC,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;gBAC5B,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;gBACzC,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;aAC7B;SACF;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;CACF"}
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { ToolPlugin } from '@tasenor/common-ui';
3
2
  import { ShortDate, ID } from '@tasenor/common';
4
3
  declare class DocumentCleaner extends ToolPlugin {
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { ToolPlugin } from '@tasenor/common-ui';
3
2
  declare class GitBackup extends ToolPlugin {
4
3
  busy: boolean;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { ToolPlugin } from '@tasenor/common-ui';
3
2
  import { DatabaseModel, TagModel } from '@tasenor/common';
4
3
  /**
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { ToolPlugin } from '@tasenor/common-ui';
3
2
  declare class VAT extends ToolPlugin {
4
3
  showVatTable: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tasenor/common-plugins",
3
- "version": "1.13.18",
3
+ "version": "1.13.19",
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-ui": "1.13.18",
17
- "@tasenor/common-node": "1.13.18",
18
- "@tasenor/common": "1.13.18"
16
+ "@tasenor/common": "1.13.19",
17
+ "@tasenor/common-ui": "1.13.19",
18
+ "@tasenor/common-node": "1.13.19"
19
19
  },
20
20
  "devDependencies": {
21
21
  "@mui/icons-material": "^5.14.1",
@@ -31,7 +31,7 @@
31
31
  "react-i18next": "^14.0.5",
32
32
  "react-router-dom": "^6.14.1",
33
33
  "typescript": "^5.1.6",
34
- "@tasenor/config": "1.13.18",
34
+ "@tasenor/config": "1.13.19",
35
35
  "eslint-config-tasenor": "0.0.0"
36
36
  },
37
37
  "peerDependencies": {
@@ -24,7 +24,10 @@ export class CoinbaseHandler extends TransactionImportHandler {
24
24
  'Spot Price Currency': 'Currency',
25
25
  'Spot Price at Transaction': 'Price',
26
26
  'Total (inclusive of fees and/or spread)': 'Total',
27
- 'Fees and/or Spread': 'Fees'
27
+ 'Fees and/or Spread': 'Fees',
28
+ // V4
29
+ 'Price at Transaction': 'Price',
30
+ 'Price Currency': 'Currency',
28
31
  }
29
32
  }
30
33
  }
@@ -41,7 +44,16 @@ export class CoinbaseHandler extends TransactionImportHandler {
41
44
  return 2
42
45
  }
43
46
  if (file.firstLineMatch(/^$/) && file.secondLineMatch(/^Transactions$/)) {
44
- return 3
47
+ const data = file.decode()
48
+ const lines = data.split('\n').splice(3)
49
+ if (!/^Timestamp,Transaction Type,Asset,Quantity Transacted,Spot Price Currency,Spot Price at Transaction,Subtotal,Total/.test(lines[0])) {
50
+ return 3
51
+ }
52
+ if (!/^ID,Timestamp,Transaction Type,Asset,Quantity Transacted,Price Currency,Price at Transaction,Subtotal,Total (inclusive of fees and\/or spread),Fees and\/or Spread,Notes/.test(lines[0])) {
53
+ return 4
54
+ }
55
+
56
+ throw new Error('Coinbase parser is not able to understand the column format.')
45
57
  }
46
58
 
47
59
  return 0
@@ -57,9 +69,6 @@ export class CoinbaseHandler extends TransactionImportHandler {
57
69
  for (const file of files) {
58
70
  const data = file.decode()
59
71
  const lines = data.split('\n').splice(this.version === 2 ? 7 : 3)
60
- if (!/^Timestamp,Transaction Type,Asset,Quantity Transacted,Spot Price Currency,Spot Price at Transaction,Subtotal,Total/.test(lines[0])) {
61
- throw new Error('Coinbase parser is not able to understand the format.')
62
- }
63
72
  file.set(lines.join('\n'))
64
73
  }
65
74
  return files