@tasenor/common-plugins 1.11.58 → 1.11.59

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.57 build /home/ci/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins
2
+ > @tasenor/common-plugins@1.11.58 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.57 ci /home/ci/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins
2
+ > @tasenor/common-plugins@1.11.58 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.57 lint /home/ci/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins
6
+ > @tasenor/common-plugins@1.11.58 lint /home/ci/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins
7
7
  > eslint 'src/**/*.{ts,tsx}' 'data/**/*.mjs'
8
8
 
@@ -35,36 +35,49 @@ export class CoinbaseHandler extends TransactionImportHandler {
35
35
  if (file.firstLineMatch(/"You can use this transaction report/)) {
36
36
  return 2;
37
37
  }
38
+ if (file.firstLineMatch(/^$/) && file.secondLineMatch(/^Transactions$/)) {
39
+ return 3;
40
+ }
38
41
  return 0;
39
42
  }
40
43
  async init(files) {
41
- if (this.version === 2) {
44
+ if (this.version === 1) {
45
+ return files;
46
+ }
47
+ if (this.version === 2 || this.version === 3) {
42
48
  // Clean up trash from the beginning.
43
49
  for (const file of files) {
44
50
  const data = file.decode();
45
- const lines = data.split('\n').splice(7);
51
+ const lines = data.split('\n').splice(this.version === 2 ? 7 : 3);
46
52
  if (!/^Timestamp,Transaction Type,Asset,Quantity Transacted,Spot Price Currency,Spot Price at Transaction,Subtotal,Total/.test(lines[0])) {
47
53
  throw new Error('Coinbase parser is not able to understand the format.');
48
54
  }
49
55
  file.set(lines.join('\n'));
50
56
  }
57
+ return files;
51
58
  }
52
- return files;
59
+ throw new Error(`Coinbase import handler does not implement init() for version ${this.version}.`);
53
60
  }
54
61
  segmentId(line) {
55
- if (this.version === 2) {
62
+ if (this.version === 2 || this.version === 3) {
56
63
  return super.segmentId(line);
57
64
  }
58
- if (['deposit', 'withdrawal'].includes(line.columns.type)) {
59
- return line.columns['transfer id'];
65
+ if (this.version === 1) {
66
+ if (['deposit', 'withdrawal'].includes(line.columns.type)) {
67
+ return line.columns['transfer id'];
68
+ }
69
+ return line.columns['trade id'];
60
70
  }
61
- return line.columns['trade id'];
71
+ throw new Error(`Coinbase import handler does not implement segmentId() for version ${this.version}.`);
62
72
  }
63
73
  time(line) {
64
- if (this.version === 2) {
74
+ if (this.version === 2 || this.version === 3) {
65
75
  return line.columns.Timestamp ? new Date(line.columns.Timestamp) : undefined;
66
76
  }
67
- return line.columns.time ? new Date(line.columns.time) : undefined;
77
+ if (this.version === 1) {
78
+ return line.columns.time ? new Date(line.columns.time) : undefined;
79
+ }
80
+ throw new Error(`Coinbase import handler does not implement time() for version ${this.version}.`);
68
81
  }
69
82
  }
70
83
  //# sourceMappingURL=CoinbaseHandler.js.map
@@ -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;QAED,OAAO,CAAC,CAAA;IACV,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAoB;QAC7B,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE;YACtB,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,CAAC,CAAC,CAAA;gBACxC,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;SACF;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,SAAS,CAAC,IAAkB;QAC1B,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE;YACtB,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;SAC7B;QACD,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACzD,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;SACnC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IACjC,CAAC;IAED,IAAI,CAAC,IAAkB;QACrB,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE;YACtB,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,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACpE,CAAC;CACF"}
1
+ {"version":3,"file":"CoinbaseHandler.js","sourceRoot":"","sources":["../../../src/CoinbaseImport/backend/CoinbaseHandler.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tasenor/common-plugins",
3
- "version": "1.11.58",
3
+ "version": "1.11.59",
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-node": "1.11.58",
17
- "@tasenor/common-ui": "1.11.58",
18
- "@tasenor/common": "1.11.58"
16
+ "@tasenor/common": "1.11.59",
17
+ "@tasenor/common-node": "1.11.59",
18
+ "@tasenor/common-ui": "1.11.59"
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.11.58",
34
+ "@tasenor/config": "1.11.59",
35
35
  "eslint-config-tasenor": "0.0.0"
36
36
  },
37
37
  "peerDependencies": {
@@ -40,39 +40,53 @@ export class CoinbaseHandler extends TransactionImportHandler {
40
40
  if (file.firstLineMatch(/"You can use this transaction report/)) {
41
41
  return 2
42
42
  }
43
+ if (file.firstLineMatch(/^$/) && file.secondLineMatch(/^Transactions$/)) {
44
+ return 3
45
+ }
43
46
 
44
47
  return 0
45
48
  }
46
49
 
47
50
  async init(files: ProcessFile[]): Promise<ProcessFile[]> {
48
- if (this.version === 2) {
51
+ if (this.version === 1) {
52
+ return files
53
+ }
54
+ if (this.version === 2 || this.version === 3) {
49
55
  // Clean up trash from the beginning.
50
56
  for (const file of files) {
51
57
  const data = file.decode()
52
- const lines = data.split('\n').splice(7)
58
+ const lines = data.split('\n').splice(this.version === 2 ? 7 : 3)
53
59
  if (!/^Timestamp,Transaction Type,Asset,Quantity Transacted,Spot Price Currency,Spot Price at Transaction,Subtotal,Total/.test(lines[0])) {
54
60
  throw new Error('Coinbase parser is not able to understand the format.')
55
61
  }
56
62
  file.set(lines.join('\n'))
57
63
  }
64
+ return files
58
65
  }
59
- return files
66
+
67
+ throw new Error(`Coinbase import handler does not implement init() for version ${this.version}.`)
60
68
  }
61
69
 
62
70
  segmentId(line: TextFileLine): SegmentId | typeof NO_SEGMENT {
63
- if (this.version === 2) {
71
+ if (this.version === 2 || this.version === 3) {
64
72
  return super.segmentId(line)
65
73
  }
66
- if (['deposit', 'withdrawal'].includes(line.columns.type)) {
67
- return line.columns['transfer id']
74
+ if (this.version === 1) {
75
+ if (['deposit', 'withdrawal'].includes(line.columns.type)) {
76
+ return line.columns['transfer id']
77
+ }
78
+ return line.columns['trade id']
68
79
  }
69
- return line.columns['trade id']
80
+ throw new Error(`Coinbase import handler does not implement segmentId() for version ${this.version}.`)
70
81
  }
71
82
 
72
83
  time(line: TextFileLine): Date | undefined {
73
- if (this.version === 2) {
84
+ if (this.version === 2 || this.version === 3) {
74
85
  return line.columns.Timestamp ? new Date(line.columns.Timestamp) : undefined
75
86
  }
76
- return line.columns.time ? new Date(line.columns.time) : undefined
87
+ if (this.version === 1) {
88
+ return line.columns.time ? new Date(line.columns.time) : undefined
89
+ }
90
+ throw new Error(`Coinbase import handler does not implement time() for version ${this.version}.`)
77
91
  }
78
92
  }