@0xtorch/csv 0.0.8 → 0.0.10

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.
Files changed (35) hide show
  1. package/.DS_Store +0 -0
  2. package/_cjs/parseCsvRowToAction/amount.js +48 -0
  3. package/_cjs/parseCsvRowToAction/amount.js.map +1 -0
  4. package/_cjs/parseCsvRowToAction/parseCsvRowToAction.js +4 -2
  5. package/_cjs/parseCsvRowToAction/parseCsvRowToAction.js.map +1 -1
  6. package/_cjs/parseCsvRowToAction/transfer.js +2 -6
  7. package/_cjs/parseCsvRowToAction/transfer.js.map +1 -1
  8. package/_cjs/schemas/parser.js +14 -2
  9. package/_cjs/schemas/parser.js.map +1 -1
  10. package/_cjs/test.js +4 -4
  11. package/_cjs/test.js.map +1 -1
  12. package/_esm/parseCsvRowToAction/amount.js +44 -0
  13. package/_esm/parseCsvRowToAction/amount.js.map +1 -0
  14. package/_esm/parseCsvRowToAction/parseCsvRowToAction.js +4 -2
  15. package/_esm/parseCsvRowToAction/parseCsvRowToAction.js.map +1 -1
  16. package/_esm/parseCsvRowToAction/transfer.js +2 -6
  17. package/_esm/parseCsvRowToAction/transfer.js.map +1 -1
  18. package/_esm/schemas/parser.js +15 -2
  19. package/_esm/schemas/parser.js.map +1 -1
  20. package/_esm/test.js +4 -4
  21. package/_esm/test.js.map +1 -1
  22. package/_types/parseCsvRowToAction/amount.d.ts +11 -0
  23. package/_types/parseCsvRowToAction/amount.d.ts.map +1 -0
  24. package/_types/parseCsvRowToAction/transfer.d.ts.map +1 -1
  25. package/_types/schemas/parser.d.ts +80 -16
  26. package/_types/schemas/parser.d.ts.map +1 -1
  27. package/_types/schemas/schemas.d.ts +34 -7
  28. package/_types/schemas/schemas.d.ts.map +1 -1
  29. package/_types/test.d.ts.map +1 -1
  30. package/package.json +2 -2
  31. package/parseCsvRowToAction/amount.ts +66 -0
  32. package/parseCsvRowToAction/parseCsvRowToAction.ts +13 -11
  33. package/parseCsvRowToAction/transfer.ts +2 -9
  34. package/schemas/parser.ts +16 -2
  35. package/test.ts +8 -4
package/.DS_Store CHANGED
Binary file
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createAmountByComponent = void 0;
4
+ const big_decimal_1 = require("@0xtorch/big-decimal");
5
+ const createAmountByComponent = ({ row, component, }) => {
6
+ if (typeof component === 'string') {
7
+ return getColumnAbsAmount(row, component);
8
+ }
9
+ switch (component.type) {
10
+ case 'plus': {
11
+ let amount = getColumnAbsAmount(row, component.columns[0]);
12
+ for (const column of component.columns.slice(1)) {
13
+ amount = (0, big_decimal_1.plus)(amount, getColumnAbsAmount(row, column));
14
+ }
15
+ return amount;
16
+ }
17
+ case 'minus': {
18
+ let amount = getColumnAbsAmount(row, component.columns[0]);
19
+ for (const column of component.columns.slice(1)) {
20
+ amount = (0, big_decimal_1.minus)(amount, getColumnAbsAmount(row, column));
21
+ }
22
+ return amount;
23
+ }
24
+ case 'times': {
25
+ let amount = getColumnAbsAmount(row, component.columns[0]);
26
+ for (const column of component.columns.slice(1)) {
27
+ amount = (0, big_decimal_1.times)(amount, getColumnAbsAmount(row, column), 18);
28
+ }
29
+ return amount;
30
+ }
31
+ case 'divide': {
32
+ let amount = getColumnAbsAmount(row, component.columns[0]);
33
+ for (const column of component.columns.slice(1)) {
34
+ amount = (0, big_decimal_1.divide)(amount, getColumnAbsAmount(row, column), 18);
35
+ }
36
+ return amount;
37
+ }
38
+ }
39
+ };
40
+ exports.createAmountByComponent = createAmountByComponent;
41
+ const getColumnAbsAmount = (row, column) => {
42
+ const amount = row[column];
43
+ if (typeof amount !== 'object') {
44
+ throw new TypeError(`amount needs to be BigDecimal but got ${typeof amount}`);
45
+ }
46
+ return (0, big_decimal_1.absoluteValue)(amount);
47
+ };
48
+ //# sourceMappingURL=amount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"amount.js","sourceRoot":"","sources":["../../parseCsvRowToAction/amount.ts"],"names":[],"mappings":";;;AAAA,sDAO6B;AAUtB,MAAM,uBAAuB,GAAG,CAAC,EACtC,GAAG,EACH,SAAS,GACyB,EAAc,EAAE;IAClD,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;IAC3C,CAAC;IAED,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,IAAI,MAAM,GAAG,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;YAC1D,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,MAAM,GAAG,IAAA,kBAAI,EAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;YACxD,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,IAAI,MAAM,GAAG,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;YAC1D,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,MAAM,GAAG,IAAA,mBAAK,EAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;YACzD,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,IAAI,MAAM,GAAG,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;YAC1D,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,MAAM,GAAG,IAAA,mBAAK,EAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;YAC7D,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,MAAM,GAAG,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;YAC1D,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,MAAM,GAAG,IAAA,oBAAM,EAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;YAC9D,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAtCY,QAAA,uBAAuB,2BAsCnC;AAED,MAAM,kBAAkB,GAAG,CAAC,GAAiB,EAAE,MAAc,EAAc,EAAE;IAC3E,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1B,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,SAAS,CACjB,yCAAyC,OAAO,MAAM,EAAE,CACzD,CAAA;IACH,CAAC;IACD,OAAO,IAAA,2BAAa,EAAC,MAAM,CAAC,CAAA;AAC9B,CAAC,CAAA"}
@@ -49,7 +49,8 @@ const parseCsvRowToActionByParser = ({ row, service, parser, symbolAssetMap, acc
49
49
  .map((component) => (0, text_1.createTextByComponent)({ row, service, component }))
50
50
  .join(''),
51
51
  app: undefined,
52
- transfers: parser.transfers.map((component) => (0, transfer_1.createTransferByComponent)({
52
+ transfers: parser.transfers
53
+ .map((component) => (0, transfer_1.createTransferByComponent)({
53
54
  row,
54
55
  service,
55
56
  symbolAssetMap,
@@ -57,7 +58,8 @@ const parseCsvRowToActionByParser = ({ row, service, parser, symbolAssetMap, acc
57
58
  accountId,
58
59
  cryptoCurrencies,
59
60
  fiatCurrencies,
60
- })),
61
+ }))
62
+ .filter(({ amount }) => amount.value > 0n),
61
63
  crossId: parser.crossId === undefined
62
64
  ? undefined
63
65
  : parser.crossId
@@ -1 +1 @@
1
- {"version":3,"file":"parseCsvRowToAction.js","sourceRoot":"","sources":["../../parseCsvRowToAction/parseCsvRowToAction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parseCsvRowToAction.js","sourceRoot":"","sources":["../../parseCsvRowToAction/parseCsvRowToAction.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createTransferByComponent = void 0;
4
- const big_decimal_1 = require("@0xtorch/big-decimal");
4
+ const amount_1 = require("./amount");
5
5
  const asset_1 = require("./asset");
6
6
  const createTransferByComponent = ({ row, service, symbolAssetMap, component, accountId, cryptoCurrencies, fiatCurrencies, }) => {
7
7
  const { direction, asset: assetComponent, amount: amountComponent, } = component;
8
- const amount = row[amountComponent];
9
- if (typeof amount !== 'object') {
10
- throw new TypeError(`amount needs to be BigDecimal but got ${typeof amount}`);
11
- }
12
8
  return {
13
9
  from: direction === 'in' ? undefined : accountId,
14
10
  to: direction === 'in' ? accountId : undefined,
@@ -20,7 +16,7 @@ const createTransferByComponent = ({ row, service, symbolAssetMap, component, ac
20
16
  cryptoCurrencies,
21
17
  fiatCurrencies,
22
18
  }),
23
- amount: (0, big_decimal_1.absoluteValue)(amount),
19
+ amount: (0, amount_1.createAmountByComponent)({ row, component: amountComponent }),
24
20
  price: undefined,
25
21
  direction,
26
22
  };
@@ -1 +1 @@
1
- {"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../parseCsvRowToAction/transfer.ts"],"names":[],"mappings":";;;AAAA,sDAAoD;AAKpD,mCAAgD;AAYzC,MAAM,yBAAyB,GAAG,CAAC,EACxC,GAAG,EACH,OAAO,EACP,cAAc,EACd,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,cAAc,GACsB,EAAY,EAAE;IAClD,MAAM,EACJ,SAAS,EACT,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,eAAe,GACxB,GAAG,SAAS,CAAA;IAEb,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,CAAC,CAAA;IACnC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,SAAS,CACjB,yCAAyC,OAAO,MAAM,EAAE,CACzD,CAAA;IACH,CAAC;IAED,OAAO;QACL,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAChD,EAAE,EAAE,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAC9C,KAAK,EAAE,IAAA,8BAAsB,EAAC;YAC5B,GAAG;YACH,OAAO;YACP,cAAc;YACd,SAAS,EAAE,cAAc;YACzB,gBAAgB;YAChB,cAAc;SACf,CAAC;QACF,MAAM,EAAE,IAAA,2BAAa,EAAC,MAAM,CAAC;QAC7B,KAAK,EAAE,SAAS;QAChB,SAAS;KACV,CAAA;AACH,CAAC,CAAA;AArCY,QAAA,yBAAyB,6BAqCrC"}
1
+ {"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../parseCsvRowToAction/transfer.ts"],"names":[],"mappings":";;;AAIA,qCAAkD;AAClD,mCAAgD;AAYzC,MAAM,yBAAyB,GAAG,CAAC,EACxC,GAAG,EACH,OAAO,EACP,cAAc,EACd,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,cAAc,GACsB,EAAY,EAAE;IAClD,MAAM,EACJ,SAAS,EACT,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,eAAe,GACxB,GAAG,SAAS,CAAA;IAEb,OAAO;QACL,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAChD,EAAE,EAAE,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAC9C,KAAK,EAAE,IAAA,8BAAsB,EAAC;YAC5B,GAAG;YACH,OAAO;YACP,cAAc;YACd,SAAS,EAAE,cAAc;YACzB,gBAAgB;YAChB,cAAc;SACf,CAAC;QACF,MAAM,EAAE,IAAA,gCAAuB,EAAC,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;QACpE,KAAK,EAAE,SAAS;QAChB,SAAS;KACV,CAAA;AACH,CAAC,CAAA;AA9BY,QAAA,yBAAyB,6BA8BrC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parsersSchema = exports.parserSchema = exports.transferComponentSchema = exports.assetComponentSchema = exports.nftComponentSchema = exports.textComponentSchema = exports.actionComponentSchema = exports.columnComponentSchema = exports.conditionComponentSchema = void 0;
3
+ exports.parsersSchema = exports.parserSchema = exports.transferComponentSchema = exports.amountComponentSchema = exports.assetComponentSchema = exports.nftComponentSchema = exports.textComponentSchema = exports.actionComponentSchema = exports.columnComponentSchema = exports.conditionComponentSchema = void 0;
4
4
  const core_1 = require("@0xtorch/core");
5
5
  const zod_1 = require("zod");
6
6
  exports.conditionComponentSchema = zod_1.z.object({
@@ -57,9 +57,21 @@ exports.assetComponentSchema = zod_1.z.union([
57
57
  exports.columnComponentSchema,
58
58
  exports.nftComponentSchema,
59
59
  ]);
60
+ exports.amountComponentSchema = zod_1.z.union([
61
+ zod_1.z.string(),
62
+ zod_1.z.object({
63
+ type: zod_1.z.union([
64
+ zod_1.z.literal('plus'),
65
+ zod_1.z.literal('minus'),
66
+ zod_1.z.literal('times'),
67
+ zod_1.z.literal('divide'),
68
+ ]),
69
+ columns: zod_1.z.array(zod_1.z.string()).min(2),
70
+ }),
71
+ ]);
60
72
  exports.transferComponentSchema = zod_1.z.object({
61
73
  direction: zod_1.z.union([zod_1.z.literal('in'), zod_1.z.literal('out')]),
62
- amount: zod_1.z.string(),
74
+ amount: exports.amountComponentSchema,
63
75
  asset: exports.assetComponentSchema,
64
76
  });
65
77
  exports.parserSchema = zod_1.z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../schemas/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../schemas/parser.ts"],"names":[],"mappings":"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"}
package/_cjs/test.js CHANGED
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.IS_DEBUG = exports.IS_LARGE_TEST = exports.IS_MEDIUM_TEST = exports.IS_SMALL_TEST = void 0;
4
- exports.IS_SMALL_TEST = (process.env.TEST_SIZE ?? '').includes('S');
5
- exports.IS_MEDIUM_TEST = (process.env.TEST_SIZE ?? '').includes('M');
6
- exports.IS_LARGE_TEST = (process.env.TEST_SIZE ?? '').includes('L');
7
- exports.IS_DEBUG = (process.env.DEBUG ?? '').length > 0;
4
+ exports.IS_SMALL_TEST = process !== undefined && (process.env.TEST_SIZE ?? '').includes('S');
5
+ exports.IS_MEDIUM_TEST = process !== undefined && (process.env.TEST_SIZE ?? '').includes('M');
6
+ exports.IS_LARGE_TEST = process !== undefined && (process.env.TEST_SIZE ?? '').includes('L');
7
+ exports.IS_DEBUG = process !== undefined && (process.env.DEBUG ?? '').length > 0;
8
8
  //# sourceMappingURL=test.js.map
package/_cjs/test.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../test.ts"],"names":[],"mappings":";;;AAAa,QAAA,aAAa,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AAE3D,QAAA,cAAc,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AAE5D,QAAA,aAAa,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AAE3D,QAAA,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA"}
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../test.ts"],"names":[],"mappings":";;;AAAa,QAAA,aAAa,GACxB,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AAEzD,QAAA,cAAc,GACzB,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AAEzD,QAAA,aAAa,GACxB,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AAEzD,QAAA,QAAQ,GACnB,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA"}
@@ -0,0 +1,44 @@
1
+ import { absoluteValue, divide, minus, plus, times, } from '@0xtorch/big-decimal';
2
+ export const createAmountByComponent = ({ row, component, }) => {
3
+ if (typeof component === 'string') {
4
+ return getColumnAbsAmount(row, component);
5
+ }
6
+ switch (component.type) {
7
+ case 'plus': {
8
+ let amount = getColumnAbsAmount(row, component.columns[0]);
9
+ for (const column of component.columns.slice(1)) {
10
+ amount = plus(amount, getColumnAbsAmount(row, column));
11
+ }
12
+ return amount;
13
+ }
14
+ case 'minus': {
15
+ let amount = getColumnAbsAmount(row, component.columns[0]);
16
+ for (const column of component.columns.slice(1)) {
17
+ amount = minus(amount, getColumnAbsAmount(row, column));
18
+ }
19
+ return amount;
20
+ }
21
+ case 'times': {
22
+ let amount = getColumnAbsAmount(row, component.columns[0]);
23
+ for (const column of component.columns.slice(1)) {
24
+ amount = times(amount, getColumnAbsAmount(row, column), 18);
25
+ }
26
+ return amount;
27
+ }
28
+ case 'divide': {
29
+ let amount = getColumnAbsAmount(row, component.columns[0]);
30
+ for (const column of component.columns.slice(1)) {
31
+ amount = divide(amount, getColumnAbsAmount(row, column), 18);
32
+ }
33
+ return amount;
34
+ }
35
+ }
36
+ };
37
+ const getColumnAbsAmount = (row, column) => {
38
+ const amount = row[column];
39
+ if (typeof amount !== 'object') {
40
+ throw new TypeError(`amount needs to be BigDecimal but got ${typeof amount}`);
41
+ }
42
+ return absoluteValue(amount);
43
+ };
44
+ //# sourceMappingURL=amount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"amount.js","sourceRoot":"","sources":["../../parseCsvRowToAction/amount.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EACb,MAAM,EACN,KAAK,EACL,IAAI,EACJ,KAAK,GACN,MAAM,sBAAsB,CAAA;AAU7B,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EACtC,GAAG,EACH,SAAS,GACyB,EAAc,EAAE;IAClD,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;IAC3C,CAAC;IAED,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,IAAI,MAAM,GAAG,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;YAC1D,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;YACxD,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,IAAI,MAAM,GAAG,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;YAC1D,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;YACzD,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,IAAI,MAAM,GAAG,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;YAC1D,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;YAC7D,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,MAAM,GAAG,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;YAC1D,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;YAC9D,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAED,MAAM,kBAAkB,GAAG,CAAC,GAAiB,EAAE,MAAc,EAAc,EAAE;IAC3E,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1B,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,SAAS,CACjB,yCAAyC,OAAO,MAAM,EAAE,CACzD,CAAA;IACH,CAAC;IACD,OAAO,aAAa,CAAC,MAAM,CAAC,CAAA;AAC9B,CAAC,CAAA"}
@@ -47,7 +47,8 @@ const parseCsvRowToActionByParser = ({ row, service, parser, symbolAssetMap, acc
47
47
  .map((component) => createTextByComponent({ row, service, component }))
48
48
  .join(''),
49
49
  app: undefined,
50
- transfers: parser.transfers.map((component) => createTransferByComponent({
50
+ transfers: parser.transfers
51
+ .map((component) => createTransferByComponent({
51
52
  row,
52
53
  service,
53
54
  symbolAssetMap,
@@ -55,7 +56,8 @@ const parseCsvRowToActionByParser = ({ row, service, parser, symbolAssetMap, acc
55
56
  accountId,
56
57
  cryptoCurrencies,
57
58
  fiatCurrencies,
58
- })),
59
+ }))
60
+ .filter(({ amount }) => amount.value > 0n),
59
61
  crossId: parser.crossId === undefined
60
62
  ? undefined
61
63
  : parser.crossId
@@ -1 +1 @@
1
- {"version":3,"file":"parseCsvRowToAction.js","sourceRoot":"","sources":["../../parseCsvRowToAction/parseCsvRowToAction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parseCsvRowToAction.js","sourceRoot":"","sources":["../../parseCsvRowToAction/parseCsvRowToAction.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,7 @@
1
- import { absoluteValue } from '@0xtorch/big-decimal';
1
+ import { createAmountByComponent } from './amount';
2
2
  import { createAssetByComponent } from './asset';
3
3
  export const createTransferByComponent = ({ row, service, symbolAssetMap, component, accountId, cryptoCurrencies, fiatCurrencies, }) => {
4
4
  const { direction, asset: assetComponent, amount: amountComponent, } = component;
5
- const amount = row[amountComponent];
6
- if (typeof amount !== 'object') {
7
- throw new TypeError(`amount needs to be BigDecimal but got ${typeof amount}`);
8
- }
9
5
  return {
10
6
  from: direction === 'in' ? undefined : accountId,
11
7
  to: direction === 'in' ? accountId : undefined,
@@ -17,7 +13,7 @@ export const createTransferByComponent = ({ row, service, symbolAssetMap, compon
17
13
  cryptoCurrencies,
18
14
  fiatCurrencies,
19
15
  }),
20
- amount: absoluteValue(amount),
16
+ amount: createAmountByComponent({ row, component: amountComponent }),
21
17
  price: undefined,
22
18
  direction,
23
19
  };
@@ -1 +1 @@
1
- {"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../parseCsvRowToAction/transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAKpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAYhD,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,EACxC,GAAG,EACH,OAAO,EACP,cAAc,EACd,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,cAAc,GACsB,EAAY,EAAE;IAClD,MAAM,EACJ,SAAS,EACT,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,eAAe,GACxB,GAAG,SAAS,CAAA;IAEb,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,CAAC,CAAA;IACnC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,SAAS,CACjB,yCAAyC,OAAO,MAAM,EAAE,CACzD,CAAA;IACH,CAAC;IAED,OAAO;QACL,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAChD,EAAE,EAAE,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAC9C,KAAK,EAAE,sBAAsB,CAAC;YAC5B,GAAG;YACH,OAAO;YACP,cAAc;YACd,SAAS,EAAE,cAAc;YACzB,gBAAgB;YAChB,cAAc;SACf,CAAC;QACF,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC;QAC7B,KAAK,EAAE,SAAS;QAChB,SAAS;KACV,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../parseCsvRowToAction/transfer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAYhD,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,EACxC,GAAG,EACH,OAAO,EACP,cAAc,EACd,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,cAAc,GACsB,EAAY,EAAE;IAClD,MAAM,EACJ,SAAS,EACT,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,eAAe,GACxB,GAAG,SAAS,CAAA;IAEb,OAAO;QACL,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAChD,EAAE,EAAE,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAC9C,KAAK,EAAE,sBAAsB,CAAC;YAC5B,GAAG;YACH,OAAO;YACP,cAAc;YACd,SAAS,EAAE,cAAc;YACzB,gBAAgB;YAChB,cAAc;SACf,CAAC;QACF,MAAM,EAAE,uBAAuB,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;QACpE,KAAK,EAAE,SAAS;QAChB,SAAS;KACV,CAAA;AACH,CAAC,CAAA"}
@@ -66,10 +66,23 @@ export const assetComponentSchema = z.union([
66
66
  // nft
67
67
  nftComponentSchema,
68
68
  ]);
69
+ export const amountComponentSchema = z.union([
70
+ /** column から値代入 / 絶対値で代入 */
71
+ z.string(),
72
+ /** 複数の column に四則演算追加 */
73
+ z.object({
74
+ type: z.union([
75
+ z.literal('plus'),
76
+ z.literal('minus'),
77
+ z.literal('times'),
78
+ z.literal('divide'),
79
+ ]),
80
+ columns: z.array(z.string()).min(2),
81
+ }),
82
+ ]);
69
83
  export const transferComponentSchema = z.object({
70
84
  direction: z.union([z.literal('in'), z.literal('out')]),
71
- /** column から値代入 / 絶対値で代入 */
72
- amount: z.string(),
85
+ amount: amountComponentSchema,
73
86
  asset: assetComponentSchema,
74
87
  });
75
88
  // 同一の row でも、 action type によって処理が変わるのでは?
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../schemas/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../schemas/parser.ts"],"names":[],"mappings":"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"}
package/_esm/test.js CHANGED
@@ -1,5 +1,5 @@
1
- export const IS_SMALL_TEST = (process.env.TEST_SIZE ?? '').includes('S');
2
- export const IS_MEDIUM_TEST = (process.env.TEST_SIZE ?? '').includes('M');
3
- export const IS_LARGE_TEST = (process.env.TEST_SIZE ?? '').includes('L');
4
- export const IS_DEBUG = (process.env.DEBUG ?? '').length > 0;
1
+ export const IS_SMALL_TEST = process !== undefined && (process.env.TEST_SIZE ?? '').includes('S');
2
+ export const IS_MEDIUM_TEST = process !== undefined && (process.env.TEST_SIZE ?? '').includes('M');
3
+ export const IS_LARGE_TEST = process !== undefined && (process.env.TEST_SIZE ?? '').includes('L');
4
+ export const IS_DEBUG = process !== undefined && (process.env.DEBUG ?? '').length > 0;
5
5
  //# sourceMappingURL=test.js.map
package/_esm/test.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../test.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AAExE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AAEzE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AAExE,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA"}
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../test.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GACxB,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AAEtE,MAAM,CAAC,MAAM,cAAc,GACzB,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AAEtE,MAAM,CAAC,MAAM,aAAa,GACxB,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AAEtE,MAAM,CAAC,MAAM,QAAQ,GACnB,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { type BigDecimal } from '@0xtorch/big-decimal';
2
+ import type { z } from 'zod';
3
+ import type { amountComponentSchema } from '../schemas/parser';
4
+ import type { FormattedRow } from '../types';
5
+ type CreateAmountByComponentParameters = {
6
+ readonly row: FormattedRow;
7
+ readonly component: z.infer<typeof amountComponentSchema>;
8
+ };
9
+ export declare const createAmountByComponent: ({ row, component, }: CreateAmountByComponentParameters) => BigDecimal;
10
+ export {};
11
+ //# sourceMappingURL=amount.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"amount.d.ts","sourceRoot":"","sources":["../../parseCsvRowToAction/amount.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,UAAU,EAMhB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAE5C,KAAK,iCAAiC,GAAG;IACvC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;CAC1D,CAAA;AAED,eAAO,MAAM,uBAAuB,wBAGjC,iCAAiC,KAAG,UAmCtC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../../parseCsvRowToAction/transfer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC3E,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAG5C,KAAK,mCAAmC,GAAG;IACzC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,cAAc,EAAE;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,SAAS,CAAA;IACjE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;IAC3D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,SAAS,cAAc,EAAE,CAAA;IACpD,QAAQ,CAAC,cAAc,EAAE,SAAS,YAAY,EAAE,CAAA;CACjD,CAAA;AAED,eAAO,MAAM,yBAAyB,8FAQnC,mCAAmC,KAAG,QA6BxC,CAAA"}
1
+ {"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../../parseCsvRowToAction/transfer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC3E,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAI5C,KAAK,mCAAmC,GAAG;IACzC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,cAAc,EAAE;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,SAAS,CAAA;IACjE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;IAC3D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,SAAS,cAAc,EAAE,CAAA;IACpD,QAAQ,CAAC,cAAc,EAAE,SAAS,YAAY,EAAE,CAAA;CACjD,CAAA;AAED,eAAO,MAAM,yBAAyB,8FAQnC,mCAAmC,KAAG,QAsBxC,CAAA"}
@@ -186,10 +186,28 @@ export declare const assetComponentSchema: z.ZodUnion<[z.ZodObject<{
186
186
  type: "service";
187
187
  })[];
188
188
  }>]>;
189
+ export declare const amountComponentSchema: z.ZodUnion<[z.ZodString, z.ZodObject<{
190
+ type: z.ZodUnion<[z.ZodLiteral<"plus">, z.ZodLiteral<"minus">, z.ZodLiteral<"times">, z.ZodLiteral<"divide">]>;
191
+ columns: z.ZodArray<z.ZodString, "many">;
192
+ }, "strip", z.ZodTypeAny, {
193
+ type: "plus" | "minus" | "times" | "divide";
194
+ columns: string[];
195
+ }, {
196
+ type: "plus" | "minus" | "times" | "divide";
197
+ columns: string[];
198
+ }>]>;
189
199
  export declare const transferComponentSchema: z.ZodObject<{
190
200
  direction: z.ZodUnion<[z.ZodLiteral<"in">, z.ZodLiteral<"out">]>;
191
- /** column から値代入 / 絶対値で代入 */
192
- amount: z.ZodString;
201
+ amount: z.ZodUnion<[z.ZodString, z.ZodObject<{
202
+ type: z.ZodUnion<[z.ZodLiteral<"plus">, z.ZodLiteral<"minus">, z.ZodLiteral<"times">, z.ZodLiteral<"divide">]>;
203
+ columns: z.ZodArray<z.ZodString, "many">;
204
+ }, "strip", z.ZodTypeAny, {
205
+ type: "plus" | "minus" | "times" | "divide";
206
+ columns: string[];
207
+ }, {
208
+ type: "plus" | "minus" | "times" | "divide";
209
+ columns: string[];
210
+ }>]>;
193
211
  asset: z.ZodUnion<[z.ZodObject<{
194
212
  type: z.ZodLiteral<"custom">;
195
213
  assetType: z.ZodUnion<[z.ZodLiteral<"CryptoCurrency">, z.ZodLiteral<"FiatCurrency">, z.ZodLiteral<"Nft">]>;
@@ -248,7 +266,10 @@ export declare const transferComponentSchema: z.ZodObject<{
248
266
  }>]>;
249
267
  }, "strip", z.ZodTypeAny, {
250
268
  direction: "in" | "out";
251
- amount: string;
269
+ amount: string | {
270
+ type: "plus" | "minus" | "times" | "divide";
271
+ columns: string[];
272
+ };
252
273
  asset: {
253
274
  type: "column";
254
275
  column: string;
@@ -267,7 +288,10 @@ export declare const transferComponentSchema: z.ZodObject<{
267
288
  };
268
289
  }, {
269
290
  direction: "in" | "out";
270
- amount: string;
291
+ amount: string | {
292
+ type: "plus" | "minus" | "times" | "divide";
293
+ columns: string[];
294
+ };
271
295
  asset: {
272
296
  type: "column";
273
297
  column: string;
@@ -385,8 +409,16 @@ export declare const parserSchema: z.ZodObject<{
385
409
  }>]>, "many">>;
386
410
  transfers: z.ZodArray<z.ZodObject<{
387
411
  direction: z.ZodUnion<[z.ZodLiteral<"in">, z.ZodLiteral<"out">]>;
388
- /** column から値代入 / 絶対値で代入 */
389
- amount: z.ZodString;
412
+ amount: z.ZodUnion<[z.ZodString, z.ZodObject<{
413
+ type: z.ZodUnion<[z.ZodLiteral<"plus">, z.ZodLiteral<"minus">, z.ZodLiteral<"times">, z.ZodLiteral<"divide">]>;
414
+ columns: z.ZodArray<z.ZodString, "many">;
415
+ }, "strip", z.ZodTypeAny, {
416
+ type: "plus" | "minus" | "times" | "divide";
417
+ columns: string[];
418
+ }, {
419
+ type: "plus" | "minus" | "times" | "divide";
420
+ columns: string[];
421
+ }>]>;
390
422
  asset: z.ZodUnion<[z.ZodObject<{
391
423
  type: z.ZodLiteral<"custom">;
392
424
  assetType: z.ZodUnion<[z.ZodLiteral<"CryptoCurrency">, z.ZodLiteral<"FiatCurrency">, z.ZodLiteral<"Nft">]>;
@@ -445,7 +477,10 @@ export declare const parserSchema: z.ZodObject<{
445
477
  }>]>;
446
478
  }, "strip", z.ZodTypeAny, {
447
479
  direction: "in" | "out";
448
- amount: string;
480
+ amount: string | {
481
+ type: "plus" | "minus" | "times" | "divide";
482
+ columns: string[];
483
+ };
449
484
  asset: {
450
485
  type: "column";
451
486
  column: string;
@@ -464,7 +499,10 @@ export declare const parserSchema: z.ZodObject<{
464
499
  };
465
500
  }, {
466
501
  direction: "in" | "out";
467
- amount: string;
502
+ amount: string | {
503
+ type: "plus" | "minus" | "times" | "divide";
504
+ columns: string[];
505
+ };
468
506
  asset: {
469
507
  type: "column";
470
508
  column: string;
@@ -577,7 +615,10 @@ export declare const parserSchema: z.ZodObject<{
577
615
  timestamp: string;
578
616
  transfers: {
579
617
  direction: "in" | "out";
580
- amount: string;
618
+ amount: string | {
619
+ type: "plus" | "minus" | "times" | "divide";
620
+ columns: string[];
621
+ };
581
622
  asset: {
582
623
  type: "column";
583
624
  column: string;
@@ -648,7 +689,10 @@ export declare const parserSchema: z.ZodObject<{
648
689
  timestamp: string;
649
690
  transfers: {
650
691
  direction: "in" | "out";
651
- amount: string;
692
+ amount: string | {
693
+ type: "plus" | "minus" | "times" | "divide";
694
+ columns: string[];
695
+ };
652
696
  asset: {
653
697
  type: "column";
654
698
  column: string;
@@ -795,8 +839,16 @@ export declare const parsersSchema: z.ZodArray<z.ZodObject<{
795
839
  }>]>, "many">>;
796
840
  transfers: z.ZodArray<z.ZodObject<{
797
841
  direction: z.ZodUnion<[z.ZodLiteral<"in">, z.ZodLiteral<"out">]>;
798
- /** column から値代入 / 絶対値で代入 */
799
- amount: z.ZodString;
842
+ amount: z.ZodUnion<[z.ZodString, z.ZodObject<{
843
+ type: z.ZodUnion<[z.ZodLiteral<"plus">, z.ZodLiteral<"minus">, z.ZodLiteral<"times">, z.ZodLiteral<"divide">]>;
844
+ columns: z.ZodArray<z.ZodString, "many">;
845
+ }, "strip", z.ZodTypeAny, {
846
+ type: "plus" | "minus" | "times" | "divide";
847
+ columns: string[];
848
+ }, {
849
+ type: "plus" | "minus" | "times" | "divide";
850
+ columns: string[];
851
+ }>]>;
800
852
  asset: z.ZodUnion<[z.ZodObject<{
801
853
  type: z.ZodLiteral<"custom">;
802
854
  assetType: z.ZodUnion<[z.ZodLiteral<"CryptoCurrency">, z.ZodLiteral<"FiatCurrency">, z.ZodLiteral<"Nft">]>;
@@ -855,7 +907,10 @@ export declare const parsersSchema: z.ZodArray<z.ZodObject<{
855
907
  }>]>;
856
908
  }, "strip", z.ZodTypeAny, {
857
909
  direction: "in" | "out";
858
- amount: string;
910
+ amount: string | {
911
+ type: "plus" | "minus" | "times" | "divide";
912
+ columns: string[];
913
+ };
859
914
  asset: {
860
915
  type: "column";
861
916
  column: string;
@@ -874,7 +929,10 @@ export declare const parsersSchema: z.ZodArray<z.ZodObject<{
874
929
  };
875
930
  }, {
876
931
  direction: "in" | "out";
877
- amount: string;
932
+ amount: string | {
933
+ type: "plus" | "minus" | "times" | "divide";
934
+ columns: string[];
935
+ };
878
936
  asset: {
879
937
  type: "column";
880
938
  column: string;
@@ -987,7 +1045,10 @@ export declare const parsersSchema: z.ZodArray<z.ZodObject<{
987
1045
  timestamp: string;
988
1046
  transfers: {
989
1047
  direction: "in" | "out";
990
- amount: string;
1048
+ amount: string | {
1049
+ type: "plus" | "minus" | "times" | "divide";
1050
+ columns: string[];
1051
+ };
991
1052
  asset: {
992
1053
  type: "column";
993
1054
  column: string;
@@ -1058,7 +1119,10 @@ export declare const parsersSchema: z.ZodArray<z.ZodObject<{
1058
1119
  timestamp: string;
1059
1120
  transfers: {
1060
1121
  direction: "in" | "out";
1061
- amount: string;
1122
+ amount: string | {
1123
+ type: "plus" | "minus" | "times" | "divide";
1124
+ columns: string[];
1125
+ };
1062
1126
  asset: {
1063
1127
  type: "column";
1064
1128
  column: string;
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../schemas/parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BnC,CAAA;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;EAGhC,CAAA;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;EAGhC,CAAA;AAMF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;IAO9B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG7B,CAAA;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAe/B,CAAA;AAEF,eAAO,MAAM,uBAAuB;;IAElC,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG5B,CAAA;AAKF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGvB,6BAA6B;;;;;;;;;;;;;;;;;IAE7B,oCAAoC;;IAEpC,6BAA6B;;;;;;;;;;;;;;;;;;;QAf7B,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkB5B,6BAA6B;;;;;;;;;;;;;;;;;;IAK7B,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG7B,CAAA;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAjBxB,6BAA6B;;;;;;;;;;;;;;;;;IAE7B,oCAAoC;;IAEpC,6BAA6B;;;;;;;;;;;;;;;;;;;QAf7B,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkB5B,6BAA6B;;;;;;;;;;;;;;;;;;IAK7B,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAKmB,CAAA"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../schemas/parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BnC,CAAA;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;EAGhC,CAAA;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;EAGhC,CAAA;AAMF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;IAO9B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG7B,CAAA;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAe/B,CAAA;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;IAahC,CAAA;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIlC,CAAA;AAKF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGvB,6BAA6B;;;;;;;;;;;;;;;;;IAE7B,oCAAoC;;IAEpC,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAG7B,6BAA6B;;;;;;;;;;;;;;;;;;IAK7B,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG7B,CAAA;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAjBxB,6BAA6B;;;;;;;;;;;;;;;;;IAE7B,oCAAoC;;IAEpC,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAG7B,6BAA6B;;;;;;;;;;;;;;;;;;IAK7B,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAKmB,CAAA"}
@@ -100,7 +100,16 @@ export declare const csvFormatSchema: z.ZodObject<{
100
100
  }>]>, "many">>;
101
101
  transfers: z.ZodArray<z.ZodObject<{
102
102
  direction: z.ZodUnion<[z.ZodLiteral<"in">, z.ZodLiteral<"out">]>;
103
- amount: z.ZodString;
103
+ amount: z.ZodUnion<[z.ZodString, z.ZodObject<{
104
+ type: z.ZodUnion<[z.ZodLiteral<"plus">, z.ZodLiteral<"minus">, z.ZodLiteral<"times">, z.ZodLiteral<"divide">]>;
105
+ columns: z.ZodArray<z.ZodString, "many">;
106
+ }, "strip", z.ZodTypeAny, {
107
+ type: "plus" | "minus" | "times" | "divide";
108
+ columns: string[];
109
+ }, {
110
+ type: "plus" | "minus" | "times" | "divide";
111
+ columns: string[];
112
+ }>]>;
104
113
  asset: z.ZodUnion<[z.ZodObject<{
105
114
  type: z.ZodLiteral<"custom">;
106
115
  assetType: z.ZodUnion<[z.ZodLiteral<"CryptoCurrency">, z.ZodLiteral<"FiatCurrency">, z.ZodLiteral<"Nft">]>;
@@ -159,7 +168,10 @@ export declare const csvFormatSchema: z.ZodObject<{
159
168
  }>]>;
160
169
  }, "strip", z.ZodTypeAny, {
161
170
  direction: "in" | "out";
162
- amount: string;
171
+ amount: string | {
172
+ type: "plus" | "minus" | "times" | "divide";
173
+ columns: string[];
174
+ };
163
175
  asset: {
164
176
  type: "column";
165
177
  column: string;
@@ -178,7 +190,10 @@ export declare const csvFormatSchema: z.ZodObject<{
178
190
  };
179
191
  }, {
180
192
  direction: "in" | "out";
181
- amount: string;
193
+ amount: string | {
194
+ type: "plus" | "minus" | "times" | "divide";
195
+ columns: string[];
196
+ };
182
197
  asset: {
183
198
  type: "column";
184
199
  column: string;
@@ -289,7 +304,10 @@ export declare const csvFormatSchema: z.ZodObject<{
289
304
  timestamp: string;
290
305
  transfers: {
291
306
  direction: "in" | "out";
292
- amount: string;
307
+ amount: string | {
308
+ type: "plus" | "minus" | "times" | "divide";
309
+ columns: string[];
310
+ };
293
311
  asset: {
294
312
  type: "column";
295
313
  column: string;
@@ -360,7 +378,10 @@ export declare const csvFormatSchema: z.ZodObject<{
360
378
  timestamp: string;
361
379
  transfers: {
362
380
  direction: "in" | "out";
363
- amount: string;
381
+ amount: string | {
382
+ type: "plus" | "minus" | "times" | "divide";
383
+ columns: string[];
384
+ };
364
385
  asset: {
365
386
  type: "column";
366
387
  column: string;
@@ -437,7 +458,10 @@ export declare const csvFormatSchema: z.ZodObject<{
437
458
  timestamp: string;
438
459
  transfers: {
439
460
  direction: "in" | "out";
440
- amount: string;
461
+ amount: string | {
462
+ type: "plus" | "minus" | "times" | "divide";
463
+ columns: string[];
464
+ };
441
465
  asset: {
442
466
  type: "column";
443
467
  column: string;
@@ -514,7 +538,10 @@ export declare const csvFormatSchema: z.ZodObject<{
514
538
  timestamp: string;
515
539
  transfers: {
516
540
  direction: "in" | "out";
517
- amount: string;
541
+ amount: string | {
542
+ type: "plus" | "minus" | "times" | "divide";
543
+ columns: string[];
544
+ };
518
545
  asset: {
519
546
  type: "column";
520
547
  column: string;
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../schemas/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM1B,CAAA"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../schemas/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM1B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../test.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,SAA8C,CAAA;AAExE,eAAO,MAAM,cAAc,SAA8C,CAAA;AAEzE,eAAO,MAAM,aAAa,SAA8C,CAAA;AAExE,eAAO,MAAM,QAAQ,SAAuC,CAAA"}
1
+ {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../test.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,SAC4C,CAAA;AAEtE,eAAO,MAAM,cAAc,SAC2C,CAAA;AAEtE,eAAO,MAAM,aAAa,SAC4C,CAAA;AAEtE,eAAO,MAAM,QAAQ,SAC0C,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@0xtorch/csv",
3
- "version": "0.0.8",
3
+ "version": "0.0.10",
4
4
  "description": "Cryptorch CSV extension",
5
5
  "keywords": [
6
6
  "cryptorch",
@@ -35,7 +35,7 @@
35
35
  ],
36
36
  "dependencies": {
37
37
  "@0xtorch/big-decimal": "^0.0.10",
38
- "@0xtorch/core": "^0.0.40",
38
+ "@0xtorch/core": "^0.0.44",
39
39
  "encoding-japanese": "^2.1.0",
40
40
  "papaparse": "^5.4.1",
41
41
  "zod": "^3.23.8"
@@ -0,0 +1,66 @@
1
+ import {
2
+ type BigDecimal,
3
+ absoluteValue,
4
+ divide,
5
+ minus,
6
+ plus,
7
+ times,
8
+ } from '@0xtorch/big-decimal'
9
+ import type { z } from 'zod'
10
+ import type { amountComponentSchema } from '../schemas/parser'
11
+ import type { FormattedRow } from '../types'
12
+
13
+ type CreateAmountByComponentParameters = {
14
+ readonly row: FormattedRow
15
+ readonly component: z.infer<typeof amountComponentSchema>
16
+ }
17
+
18
+ export const createAmountByComponent = ({
19
+ row,
20
+ component,
21
+ }: CreateAmountByComponentParameters): BigDecimal => {
22
+ if (typeof component === 'string') {
23
+ return getColumnAbsAmount(row, component)
24
+ }
25
+
26
+ switch (component.type) {
27
+ case 'plus': {
28
+ let amount = getColumnAbsAmount(row, component.columns[0])
29
+ for (const column of component.columns.slice(1)) {
30
+ amount = plus(amount, getColumnAbsAmount(row, column))
31
+ }
32
+ return amount
33
+ }
34
+ case 'minus': {
35
+ let amount = getColumnAbsAmount(row, component.columns[0])
36
+ for (const column of component.columns.slice(1)) {
37
+ amount = minus(amount, getColumnAbsAmount(row, column))
38
+ }
39
+ return amount
40
+ }
41
+ case 'times': {
42
+ let amount = getColumnAbsAmount(row, component.columns[0])
43
+ for (const column of component.columns.slice(1)) {
44
+ amount = times(amount, getColumnAbsAmount(row, column), 18)
45
+ }
46
+ return amount
47
+ }
48
+ case 'divide': {
49
+ let amount = getColumnAbsAmount(row, component.columns[0])
50
+ for (const column of component.columns.slice(1)) {
51
+ amount = divide(amount, getColumnAbsAmount(row, column), 18)
52
+ }
53
+ return amount
54
+ }
55
+ }
56
+ }
57
+
58
+ const getColumnAbsAmount = (row: FormattedRow, column: string): BigDecimal => {
59
+ const amount = row[column]
60
+ if (typeof amount !== 'object') {
61
+ throw new TypeError(
62
+ `amount needs to be BigDecimal but got ${typeof amount}`,
63
+ )
64
+ }
65
+ return absoluteValue(amount)
66
+ }
@@ -90,17 +90,19 @@ const parseCsvRowToActionByParser = ({
90
90
  )
91
91
  .join(''),
92
92
  app: undefined,
93
- transfers: parser.transfers.map((component) =>
94
- createTransferByComponent({
95
- row,
96
- service,
97
- symbolAssetMap,
98
- component,
99
- accountId,
100
- cryptoCurrencies,
101
- fiatCurrencies,
102
- }),
103
- ),
93
+ transfers: parser.transfers
94
+ .map((component) =>
95
+ createTransferByComponent({
96
+ row,
97
+ service,
98
+ symbolAssetMap,
99
+ component,
100
+ accountId,
101
+ cryptoCurrencies,
102
+ fiatCurrencies,
103
+ }),
104
+ )
105
+ .filter(({ amount }) => amount.value > 0n),
104
106
  crossId:
105
107
  parser.crossId === undefined
106
108
  ? undefined
@@ -1,8 +1,8 @@
1
- import { absoluteValue } from '@0xtorch/big-decimal'
2
1
  import type { CryptoCurrency, FiatCurrency, Transfer } from '@0xtorch/core'
3
2
  import type { z } from 'zod'
4
3
  import type { transferComponentSchema } from '../schemas/parser'
5
4
  import type { FormattedRow } from '../types'
5
+ import { createAmountByComponent } from './amount'
6
6
  import { createAssetByComponent } from './asset'
7
7
 
8
8
  type CreateTransferByComponentParameters = {
@@ -30,13 +30,6 @@ export const createTransferByComponent = ({
30
30
  amount: amountComponent,
31
31
  } = component
32
32
 
33
- const amount = row[amountComponent]
34
- if (typeof amount !== 'object') {
35
- throw new TypeError(
36
- `amount needs to be BigDecimal but got ${typeof amount}`,
37
- )
38
- }
39
-
40
33
  return {
41
34
  from: direction === 'in' ? undefined : accountId,
42
35
  to: direction === 'in' ? accountId : undefined,
@@ -48,7 +41,7 @@ export const createTransferByComponent = ({
48
41
  cryptoCurrencies,
49
42
  fiatCurrencies,
50
43
  }),
51
- amount: absoluteValue(amount),
44
+ amount: createAmountByComponent({ row, component: amountComponent }),
52
45
  price: undefined,
53
46
  direction,
54
47
  }
package/schemas/parser.ts CHANGED
@@ -74,10 +74,24 @@ export const assetComponentSchema = z.union([
74
74
  nftComponentSchema,
75
75
  ])
76
76
 
77
+ export const amountComponentSchema = z.union([
78
+ /** column から値代入 / 絶対値で代入 */
79
+ z.string(),
80
+ /** 複数の column に四則演算追加 */
81
+ z.object({
82
+ type: z.union([
83
+ z.literal('plus'),
84
+ z.literal('minus'),
85
+ z.literal('times'),
86
+ z.literal('divide'),
87
+ ]),
88
+ columns: z.array(z.string()).min(2),
89
+ }),
90
+ ])
91
+
77
92
  export const transferComponentSchema = z.object({
78
93
  direction: z.union([z.literal('in'), z.literal('out')]),
79
- /** column から値代入 / 絶対値で代入 */
80
- amount: z.string(),
94
+ amount: amountComponentSchema,
81
95
  asset: assetComponentSchema,
82
96
  })
83
97
 
package/test.ts CHANGED
@@ -1,7 +1,11 @@
1
- export const IS_SMALL_TEST = (process.env.TEST_SIZE ?? '').includes('S')
1
+ export const IS_SMALL_TEST =
2
+ process !== undefined && (process.env.TEST_SIZE ?? '').includes('S')
2
3
 
3
- export const IS_MEDIUM_TEST = (process.env.TEST_SIZE ?? '').includes('M')
4
+ export const IS_MEDIUM_TEST =
5
+ process !== undefined && (process.env.TEST_SIZE ?? '').includes('M')
4
6
 
5
- export const IS_LARGE_TEST = (process.env.TEST_SIZE ?? '').includes('L')
7
+ export const IS_LARGE_TEST =
8
+ process !== undefined && (process.env.TEST_SIZE ?? '').includes('L')
6
9
 
7
- export const IS_DEBUG = (process.env.DEBUG ?? '').length > 0
10
+ export const IS_DEBUG =
11
+ process !== undefined && (process.env.DEBUG ?? '').length > 0