@0xtorch/csv 0.0.28 → 0.0.30

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.
@@ -12,7 +12,7 @@ const parseCsvFileToActions = async ({ file, format: { service, formatter, parse
12
12
  rows: (0, parseCsvText_1.parseCsvText)(text),
13
13
  formatter,
14
14
  });
15
- const actions = (0, parseRowsToActions_1.parseRowsToActions)({
15
+ const result = (0, parseRowsToActions_1.parseRowsToActions)({
16
16
  rows,
17
17
  parser,
18
18
  symbolAssetMap,
@@ -21,11 +21,14 @@ const parseCsvFileToActions = async ({ file, format: { service, formatter, parse
21
21
  fiats,
22
22
  errorLogger,
23
23
  });
24
- return await (0, core_1.setActionPrices)({
25
- dataSource: cryptoCurrencyDataSource,
26
- actions,
27
- fiat,
28
- });
24
+ return {
25
+ actions: await (0, core_1.setActionPrices)({
26
+ dataSource: cryptoCurrencyDataSource,
27
+ actions: result.actions,
28
+ fiat,
29
+ }),
30
+ ignoreRowCount: result.ignoreRowCount,
31
+ };
29
32
  };
30
33
  exports.parseCsvFileToActions = parseCsvFileToActions;
31
34
  //# sourceMappingURL=parseCsvFileToActions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parseCsvFileToActions.js","sourceRoot":"","sources":["../parseCsvFileToActions.ts"],"names":[],"mappings":";;;AAAA,wCAMsB;AACtB,mDAA+C;AAC/C,6DAAyD;AACzD,iDAA6C;AAC7C,6DAAyD;AAalD,MAAM,qBAAqB,GAAG,KAAK,EAAE,EAC1C,IAAI,EACJ,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,EACtD,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,wBAAwB,EACxB,WAAW,GACqB,EAA8B,EAAE;IAChE,MAAM,IAAI,GAAG,MAAM,IAAA,uCAAkB,EAAC,IAAI,CAAC,CAAA;IAC3C,MAAM,IAAI,GAAG,IAAA,6BAAa,EAAC;QACzB,IAAI,EAAE,IAAA,2BAAY,EAAC,IAAI,CAAC;QACxB,SAAS;KACV,CAAC,CAAA;IACF,MAAM,OAAO,GAAG,IAAA,uCAAkB,EAAC;QACjC,IAAI;QACJ,MAAM;QACN,cAAc;QACd,OAAO;QACP,QAAQ;QACR,KAAK;QACL,WAAW;KACZ,CAAC,CAAA;IACF,OAAO,MAAM,IAAA,sBAAe,EAAC;QAC3B,UAAU,EAAE,wBAAwB;QACpC,OAAO;QACP,IAAI;KACL,CAAC,CAAA;AACJ,CAAC,CAAA;AA5BY,QAAA,qBAAqB,yBA4BjC"}
1
+ {"version":3,"file":"parseCsvFileToActions.js","sourceRoot":"","sources":["../parseCsvFileToActions.ts"],"names":[],"mappings":";;;AAAA,wCAMsB;AACtB,mDAA+C;AAC/C,6DAAyD;AACzD,iDAA6C;AAC7C,6DAAyD;AAkBlD,MAAM,qBAAqB,GAAG,KAAK,EAAE,EAC1C,IAAI,EACJ,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,EACtD,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,wBAAwB,EACxB,WAAW,GACqB,EAA6C,EAAE;IAC/E,MAAM,IAAI,GAAG,MAAM,IAAA,uCAAkB,EAAC,IAAI,CAAC,CAAA;IAC3C,MAAM,IAAI,GAAG,IAAA,6BAAa,EAAC;QACzB,IAAI,EAAE,IAAA,2BAAY,EAAC,IAAI,CAAC;QACxB,SAAS;KACV,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,IAAA,uCAAkB,EAAC;QAChC,IAAI;QACJ,MAAM;QACN,cAAc;QACd,OAAO;QACP,QAAQ;QACR,KAAK;QACL,WAAW;KACZ,CAAC,CAAA;IACF,OAAO;QACL,OAAO,EAAE,MAAM,IAAA,sBAAe,EAAC;YAC7B,UAAU,EAAE,wBAAwB;YACpC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI;SACL,CAAC;QACF,cAAc,EAAE,MAAM,CAAC,cAAc;KACtC,CAAA;AACH,CAAC,CAAA;AA/BY,QAAA,qBAAqB,yBA+BjC"}
@@ -4,12 +4,13 @@ exports.parseRowsToActions = void 0;
4
4
  const key_1 = require("./key");
5
5
  const parse_1 = require("./parse");
6
6
  const parseRowsToActions = ({ rows, parser, symbolAssetMap, service, cryptoes, fiats, errorLogger, }) => {
7
+ let ignoreRowCount = 0;
7
8
  const actions = [];
8
9
  let currentKeyValue;
9
10
  let currentRows = [];
10
11
  for (const row of rows) {
11
12
  if (parser.key === undefined) {
12
- actions.push(...parseTargetRowsToActions({
13
+ const rowActions = parseTargetRowsToActions({
13
14
  rows: [row],
14
15
  parsers: parser.parsers,
15
16
  symbolAssetMap,
@@ -17,38 +18,59 @@ const parseRowsToActions = ({ rows, parser, symbolAssetMap, service, cryptoes, f
17
18
  cryptoes,
18
19
  fiats,
19
20
  errorLogger,
20
- }));
21
+ });
22
+ if (rowActions.length === 0) {
23
+ ignoreRowCount += 1;
24
+ }
25
+ else {
26
+ actions.push(...rowActions);
27
+ }
21
28
  continue;
22
29
  }
23
30
  const keyValue = (0, key_1.createKeyValue)({ row, key: parser.key });
24
31
  if (currentKeyValue !== undefined &&
25
32
  currentKeyValue !== keyValue &&
26
33
  currentRows.length > 0) {
27
- actions.push(...parseTargetRowsToActions({
34
+ const keyActions = parseTargetRowsToActions({
28
35
  rows: currentRows,
29
36
  parsers: parser.parsers,
30
37
  symbolAssetMap,
31
38
  service,
32
39
  cryptoes,
33
40
  fiats,
34
- }));
41
+ });
42
+ if (keyActions.length === 0) {
43
+ ignoreRowCount += currentRows.length;
44
+ }
45
+ else {
46
+ actions.push(...keyActions);
47
+ }
35
48
  currentRows = [];
36
49
  }
37
50
  currentKeyValue = keyValue;
38
51
  currentRows.push(row);
39
52
  }
40
53
  if (currentRows.length > 0) {
41
- actions.push(...parseTargetRowsToActions({
54
+ const keyActions = parseTargetRowsToActions({
42
55
  rows: currentRows,
43
56
  parsers: parser.parsers,
44
57
  symbolAssetMap,
45
58
  service,
46
59
  cryptoes,
47
60
  fiats,
48
- }));
61
+ });
62
+ if (keyActions.length === 0) {
63
+ ignoreRowCount += currentRows.length;
64
+ }
65
+ else {
66
+ actions.push(...keyActions);
67
+ }
49
68
  currentRows = [];
50
69
  }
51
- return resetActionOrders(actions);
70
+ return {
71
+ actions: resetActionOrders(actions),
72
+ ignoreRowCount,
73
+ };
52
74
  };
53
75
  exports.parseRowsToActions = parseRowsToActions;
54
76
  const parseTargetRowsToActions = (parameters) => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../parseRowsToActions/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../parseRowsToActions/index.ts"],"names":[],"mappings":"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"}
@@ -7,15 +7,15 @@ exports.blankTextSchema = zod_1.z.literal('').transform(() => undefined);
7
7
  exports.stringTextSchema = zod_1.z.string();
8
8
  exports.bigDecimalTextSchema = zod_1.z
9
9
  .string()
10
- .regex(/^(" *)?-?[\d,]+(\.\d+)?( *")?$/)
10
+ .regex(/^(" *)?[-+]?[\d,]+(\.\d+)?([eE][-+]?\d+)?( *")?$/)
11
11
  .transform((v) => (0, big_decimal_1.createBigDecimal)(v.replaceAll('"', '').trim()));
12
12
  exports.bigDecimalPositiveTextSchema = zod_1.z
13
13
  .string()
14
- .regex(/^(" *)?[\d,]+(\.\d+)?( *")?$/)
14
+ .regex(/^(" *)?[\d,]+(\.\d+)?([eE][-+]?\d+)?( *")?$/)
15
15
  .transform((v) => (0, big_decimal_1.createBigDecimal)(v.replaceAll('"', '').trim()));
16
16
  exports.bigDecimalNegativeTextSchema = zod_1.z
17
17
  .string()
18
- .regex(/^(" *)?-[\d,]+(\.\d+)?( *")?$/)
18
+ .regex(/^(" *)?-[\d,]+(\.\d+)?([eE][-+]?\d+)?( *")?$/)
19
19
  .transform((v) => (0, big_decimal_1.createBigDecimal)(v.replaceAll('"', '').trim()));
20
20
  exports.iso8601TextSchema = zod_1.z
21
21
  .string()
@@ -1 +1 @@
1
- {"version":3,"file":"formatterTypes.js","sourceRoot":"","sources":["../../schemas/formatterTypes.ts"],"names":[],"mappings":";;;AAAA,sDAAuD;AACvD,6BAAuB;AAEV,QAAA,eAAe,GAAG,OAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;AAE1D,QAAA,gBAAgB,GAAG,OAAC,CAAC,MAAM,EAAE,CAAA;AAE7B,QAAA,oBAAoB,GAAG,OAAC;KAClC,MAAM,EAAE;KACR,KAAK,CAAC,gCAAgC,CAAC;KACvC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,8BAAgB,EAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;AAEtD,QAAA,4BAA4B,GAAG,OAAC;KAC1C,MAAM,EAAE;KACR,KAAK,CAAC,8BAA8B,CAAC;KACrC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,8BAAgB,EAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;AAEtD,QAAA,4BAA4B,GAAG,OAAC;KAC1C,MAAM,EAAE;KACR,KAAK,CAAC,+BAA+B,CAAC;KACtC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,8BAAgB,EAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;AAEtD,QAAA,iBAAiB,GAAG,OAAC;KAC/B,MAAM,EAAE;KACR,KAAK,CACJ,mHAAmH,CACpH;KACA,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;AAE7B,QAAA,mBAAmB,GAAG,OAAC;KACjC,MAAM,EAAE;KACR,KAAK,CAAC,mEAAmE,CAAC;KAC1E,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;AAG5D,QAAA,oBAAoB,GAAG,OAAC;KAClC,MAAM,EAAE;KACR,KAAK,CAAC,oEAAoE,CAAC;KAC3E,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;AAExC,QAAA,oBAAoB,GAAG,OAAC,CAAC,KAAK,CAAC;IAC1C,uBAAe;IACf,wBAAgB;IAChB,4BAAoB;IACpB,oCAA4B;IAC5B,oCAA4B;IAC5B,yBAAiB;IACjB,2BAAmB;IACnB,4BAAoB;CACrB,CAAC,CAAA"}
1
+ {"version":3,"file":"formatterTypes.js","sourceRoot":"","sources":["../../schemas/formatterTypes.ts"],"names":[],"mappings":";;;AAAA,sDAAuD;AACvD,6BAAuB;AAEV,QAAA,eAAe,GAAG,OAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;AAE1D,QAAA,gBAAgB,GAAG,OAAC,CAAC,MAAM,EAAE,CAAA;AAE7B,QAAA,oBAAoB,GAAG,OAAC;KAClC,MAAM,EAAE;KACR,KAAK,CAAC,kDAAkD,CAAC;KACzD,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,8BAAgB,EAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;AAEtD,QAAA,4BAA4B,GAAG,OAAC;KAC1C,MAAM,EAAE;KACR,KAAK,CAAC,6CAA6C,CAAC;KACpD,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,8BAAgB,EAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;AAEtD,QAAA,4BAA4B,GAAG,OAAC;KAC1C,MAAM,EAAE;KACR,KAAK,CAAC,8CAA8C,CAAC;KACrD,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,8BAAgB,EAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;AAEtD,QAAA,iBAAiB,GAAG,OAAC;KAC/B,MAAM,EAAE;KACR,KAAK,CACJ,mHAAmH,CACpH;KACA,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;AAE7B,QAAA,mBAAmB,GAAG,OAAC;KACjC,MAAM,EAAE;KACR,KAAK,CAAC,mEAAmE,CAAC;KAC1E,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;AAG5D,QAAA,oBAAoB,GAAG,OAAC;KAClC,MAAM,EAAE;KACR,KAAK,CAAC,oEAAoE,CAAC;KAC3E,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;AAExC,QAAA,oBAAoB,GAAG,OAAC,CAAC,KAAK,CAAC;IAC1C,uBAAe;IACf,wBAAgB;IAChB,4BAAoB;IACpB,oCAA4B;IAC5B,oCAA4B;IAC5B,yBAAiB;IACjB,2BAAmB;IACnB,4BAAoB;CACrB,CAAC,CAAA"}
@@ -9,7 +9,7 @@ export const parseCsvFileToActions = async ({ file, format: { service, formatter
9
9
  rows: parseCsvText(text),
10
10
  formatter,
11
11
  });
12
- const actions = parseRowsToActions({
12
+ const result = parseRowsToActions({
13
13
  rows,
14
14
  parser,
15
15
  symbolAssetMap,
@@ -18,10 +18,13 @@ export const parseCsvFileToActions = async ({ file, format: { service, formatter
18
18
  fiats,
19
19
  errorLogger,
20
20
  });
21
- return await setActionPrices({
22
- dataSource: cryptoCurrencyDataSource,
23
- actions,
24
- fiat,
25
- });
21
+ return {
22
+ actions: await setActionPrices({
23
+ dataSource: cryptoCurrencyDataSource,
24
+ actions: result.actions,
25
+ fiat,
26
+ }),
27
+ ignoreRowCount: result.ignoreRowCount,
28
+ };
26
29
  };
27
30
  //# sourceMappingURL=parseCsvFileToActions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parseCsvFileToActions.js","sourceRoot":"","sources":["../parseCsvFileToActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,eAAe,GAChB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAazD,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAE,EAC1C,IAAI,EACJ,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,EACtD,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,wBAAwB,EACxB,WAAW,GACqB,EAA8B,EAAE;IAChE,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAA;IAC3C,MAAM,IAAI,GAAG,aAAa,CAAC;QACzB,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;QACxB,SAAS;KACV,CAAC,CAAA;IACF,MAAM,OAAO,GAAG,kBAAkB,CAAC;QACjC,IAAI;QACJ,MAAM;QACN,cAAc;QACd,OAAO;QACP,QAAQ;QACR,KAAK;QACL,WAAW;KACZ,CAAC,CAAA;IACF,OAAO,MAAM,eAAe,CAAC;QAC3B,UAAU,EAAE,wBAAwB;QACpC,OAAO;QACP,IAAI;KACL,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"parseCsvFileToActions.js","sourceRoot":"","sources":["../parseCsvFileToActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,eAAe,GAChB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAkBzD,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAE,EAC1C,IAAI,EACJ,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,EACtD,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,wBAAwB,EACxB,WAAW,GACqB,EAA6C,EAAE;IAC/E,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAA;IAC3C,MAAM,IAAI,GAAG,aAAa,CAAC;QACzB,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;QACxB,SAAS;KACV,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,kBAAkB,CAAC;QAChC,IAAI;QACJ,MAAM;QACN,cAAc;QACd,OAAO;QACP,QAAQ;QACR,KAAK;QACL,WAAW;KACZ,CAAC,CAAA;IACF,OAAO;QACL,OAAO,EAAE,MAAM,eAAe,CAAC;YAC7B,UAAU,EAAE,wBAAwB;YACpC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI;SACL,CAAC;QACF,cAAc,EAAE,MAAM,CAAC,cAAc;KACtC,CAAA;AACH,CAAC,CAAA"}
@@ -2,12 +2,13 @@ import { createKeyValue } from './key';
2
2
  import { parseRowsToActionsByParser } from './parse';
3
3
  export const parseRowsToActions = ({ rows, parser, symbolAssetMap, service, cryptoes, fiats, errorLogger, }) => {
4
4
  // key があれば 同一 keyValue の row をまとめて処理・key がなければ row 毎に処理して action 生成
5
+ let ignoreRowCount = 0;
5
6
  const actions = [];
6
7
  let currentKeyValue;
7
8
  let currentRows = [];
8
9
  for (const row of rows) {
9
10
  if (parser.key === undefined) {
10
- actions.push(...parseTargetRowsToActions({
11
+ const rowActions = parseTargetRowsToActions({
11
12
  rows: [row],
12
13
  parsers: parser.parsers,
13
14
  symbolAssetMap,
@@ -15,39 +16,60 @@ export const parseRowsToActions = ({ rows, parser, symbolAssetMap, service, cryp
15
16
  cryptoes,
16
17
  fiats,
17
18
  errorLogger,
18
- }));
19
+ });
20
+ if (rowActions.length === 0) {
21
+ ignoreRowCount += 1;
22
+ }
23
+ else {
24
+ actions.push(...rowActions);
25
+ }
19
26
  continue;
20
27
  }
21
28
  const keyValue = createKeyValue({ row, key: parser.key });
22
29
  if (currentKeyValue !== undefined &&
23
30
  currentKeyValue !== keyValue &&
24
31
  currentRows.length > 0) {
25
- actions.push(...parseTargetRowsToActions({
32
+ const keyActions = parseTargetRowsToActions({
26
33
  rows: currentRows,
27
34
  parsers: parser.parsers,
28
35
  symbolAssetMap,
29
36
  service,
30
37
  cryptoes,
31
38
  fiats,
32
- }));
39
+ });
40
+ if (keyActions.length === 0) {
41
+ ignoreRowCount += currentRows.length;
42
+ }
43
+ else {
44
+ actions.push(...keyActions);
45
+ }
33
46
  currentRows = [];
34
47
  }
35
48
  currentKeyValue = keyValue;
36
49
  currentRows.push(row);
37
50
  }
38
51
  if (currentRows.length > 0) {
39
- actions.push(...parseTargetRowsToActions({
52
+ const keyActions = parseTargetRowsToActions({
40
53
  rows: currentRows,
41
54
  parsers: parser.parsers,
42
55
  symbolAssetMap,
43
56
  service,
44
57
  cryptoes,
45
58
  fiats,
46
- }));
59
+ });
60
+ if (keyActions.length === 0) {
61
+ ignoreRowCount += currentRows.length;
62
+ }
63
+ else {
64
+ actions.push(...keyActions);
65
+ }
47
66
  currentRows = [];
48
67
  }
49
- // 同一 source で order が被らないように order を再設定する
50
- return resetActionOrders(actions);
68
+ return {
69
+ // 同一 source で order が被らないように order を再設定
70
+ actions: resetActionOrders(actions),
71
+ ignoreRowCount,
72
+ };
51
73
  };
52
74
  const parseTargetRowsToActions = (parameters) => {
53
75
  const { parsers, errorLogger, ...otherParameters } = parameters;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../parseRowsToActions/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../parseRowsToActions/index.ts"],"names":[],"mappings":"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"}
@@ -4,15 +4,15 @@ export const blankTextSchema = z.literal('').transform(() => undefined);
4
4
  export const stringTextSchema = z.string();
5
5
  export const bigDecimalTextSchema = z
6
6
  .string()
7
- .regex(/^(" *)?-?[\d,]+(\.\d+)?( *")?$/)
7
+ .regex(/^(" *)?[-+]?[\d,]+(\.\d+)?([eE][-+]?\d+)?( *")?$/)
8
8
  .transform((v) => createBigDecimal(v.replaceAll('"', '').trim()));
9
9
  export const bigDecimalPositiveTextSchema = z
10
10
  .string()
11
- .regex(/^(" *)?[\d,]+(\.\d+)?( *")?$/)
11
+ .regex(/^(" *)?[\d,]+(\.\d+)?([eE][-+]?\d+)?( *")?$/)
12
12
  .transform((v) => createBigDecimal(v.replaceAll('"', '').trim()));
13
13
  export const bigDecimalNegativeTextSchema = z
14
14
  .string()
15
- .regex(/^(" *)?-[\d,]+(\.\d+)?( *")?$/)
15
+ .regex(/^(" *)?-[\d,]+(\.\d+)?([eE][-+]?\d+)?( *")?$/)
16
16
  .transform((v) => createBigDecimal(v.replaceAll('"', '').trim()));
17
17
  export const iso8601TextSchema = z
18
18
  .string()
@@ -1 +1 @@
1
- {"version":3,"file":"formatterTypes.js","sourceRoot":"","sources":["../../schemas/formatterTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;AAEvE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAA;AAE1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAClC,MAAM,EAAE;KACR,KAAK,CAAC,gCAAgC,CAAC;KACvC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;AAEnE,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC;KAC1C,MAAM,EAAE;KACR,KAAK,CAAC,8BAA8B,CAAC;KACrC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;AAEnE,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC;KAC1C,MAAM,EAAE;KACR,KAAK,CAAC,+BAA+B,CAAC;KACtC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;AAEnE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,EAAE;KACR,KAAK,CACJ,mHAAmH,CACpH;KACA,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;AAE1C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC;KACjC,MAAM,EAAE;KACR,KAAK,CAAC,mEAAmE,CAAC;KAC1E,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;AAEzE,+BAA+B;AAC/B,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAClC,MAAM,EAAE;KACR,KAAK,CAAC,oEAAoE,CAAC;KAC3E,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;AAErD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC;IAC1C,eAAe;IACf,gBAAgB;IAChB,oBAAoB;IACpB,4BAA4B;IAC5B,4BAA4B;IAC5B,iBAAiB;IACjB,mBAAmB;IACnB,oBAAoB;CACrB,CAAC,CAAA"}
1
+ {"version":3,"file":"formatterTypes.js","sourceRoot":"","sources":["../../schemas/formatterTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;AAEvE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAA;AAE1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAClC,MAAM,EAAE;KACR,KAAK,CAAC,kDAAkD,CAAC;KACzD,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;AAEnE,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC;KAC1C,MAAM,EAAE;KACR,KAAK,CAAC,6CAA6C,CAAC;KACpD,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;AAEnE,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC;KAC1C,MAAM,EAAE;KACR,KAAK,CAAC,8CAA8C,CAAC;KACrD,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;AAEnE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,EAAE;KACR,KAAK,CACJ,mHAAmH,CACpH;KACA,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;AAE1C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC;KACjC,MAAM,EAAE;KACR,KAAK,CAAC,mEAAmE,CAAC;KAC1E,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;AAEzE,+BAA+B;AAC/B,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAClC,MAAM,EAAE;KACR,KAAK,CAAC,oEAAoE,CAAC;KAC3E,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;AAErD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC;IAC1C,eAAe;IACf,gBAAgB;IAChB,oBAAoB;IACpB,4BAA4B;IAC5B,4BAA4B;IAC5B,iBAAiB;IACjB,mBAAmB;IACnB,oBAAoB;CACrB,CAAC,CAAA"}
@@ -9,6 +9,10 @@ type ParseCsvFileToActionsParameters = {
9
9
  cryptoCurrencyDataSource: CryptoCurrencyDataSource;
10
10
  errorLogger?: (error: unknown) => void;
11
11
  };
12
- export declare const parseCsvFileToActions: ({ file, format: { service, formatter, parser, symbolAssetMap }, cryptoes, fiats, fiat, cryptoCurrencyDataSource, errorLogger, }: ParseCsvFileToActionsParameters) => Promise<readonly Action[]>;
12
+ type ParseCsvFileToActionsReturnTypes = {
13
+ actions: readonly Action[];
14
+ ignoreRowCount: number;
15
+ };
16
+ export declare const parseCsvFileToActions: ({ file, format: { service, formatter, parser, symbolAssetMap }, cryptoes, fiats, fiat, cryptoCurrencyDataSource, errorLogger, }: ParseCsvFileToActionsParameters) => Promise<ParseCsvFileToActionsReturnTypes>;
13
17
  export {};
14
18
  //# sourceMappingURL=parseCsvFileToActions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parseCsvFileToActions.d.ts","sourceRoot":"","sources":["../parseCsvFileToActions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EACX,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAC7B,KAAK,YAAY,EAElB,MAAM,eAAe,CAAA;AAKtB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAExC,KAAK,+BAA+B,GAAG;IACrC,IAAI,EAAE,IAAI,CAAA;IACV,MAAM,EAAE,SAAS,CAAA;IACjB,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAA;IACnC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAA;IAC9B,IAAI,EAAE,YAAY,CAAA;IAClB,wBAAwB,EAAE,wBAAwB,CAAA;IAClD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CACvC,CAAA;AAED,eAAO,MAAM,qBAAqB,oIAQ/B,+BAA+B,KAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAoB7D,CAAA"}
1
+ {"version":3,"file":"parseCsvFileToActions.d.ts","sourceRoot":"","sources":["../parseCsvFileToActions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EACX,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAC7B,KAAK,YAAY,EAElB,MAAM,eAAe,CAAA;AAKtB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAExC,KAAK,+BAA+B,GAAG;IACrC,IAAI,EAAE,IAAI,CAAA;IACV,MAAM,EAAE,SAAS,CAAA;IACjB,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAA;IACnC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAA;IAC9B,IAAI,EAAE,YAAY,CAAA;IAClB,wBAAwB,EAAE,wBAAwB,CAAA;IAClD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CACvC,CAAA;AAED,KAAK,gCAAgC,GAAG;IACtC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IAC1B,cAAc,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,qBAAqB,oIAQ/B,+BAA+B,KAAG,OAAO,CAAC,gCAAgC,CAuB5E,CAAA"}
@@ -13,6 +13,10 @@ type ParseRowsToActionsParameters = {
13
13
  fiats: readonly FiatCurrency[];
14
14
  errorLogger?: (error: unknown) => void;
15
15
  };
16
- export declare const parseRowsToActions: ({ rows, parser, symbolAssetMap, service, cryptoes, fiats, errorLogger, }: ParseRowsToActionsParameters) => readonly Action[];
16
+ type ParseRowsToActionsReturnTypes = {
17
+ actions: readonly Action[];
18
+ ignoreRowCount: number;
19
+ };
20
+ export declare const parseRowsToActions: ({ rows, parser, symbolAssetMap, service, cryptoes, fiats, errorLogger, }: ParseRowsToActionsParameters) => ParseRowsToActionsReturnTypes;
17
21
  export {};
18
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../parseRowsToActions/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AACzE,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,KAAK,EAAgB,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAI5C,KAAK,4BAA4B,GAAG;IAClC,IAAI,EAAE,SAAS,YAAY,EAAE,CAAA;IAC7B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;IAC5C,cAAc,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;IACtD,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAA;IACnC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAA;IAC9B,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CACvC,CAAA;AAED,eAAO,MAAM,kBAAkB,6EAQ5B,4BAA4B,KAAG,SAAS,MAAM,EA0DhD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../parseRowsToActions/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AACzE,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,KAAK,EAAgB,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAI5C,KAAK,4BAA4B,GAAG;IAClC,IAAI,EAAE,SAAS,YAAY,EAAE,CAAA;IAC7B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;IAC5C,cAAc,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;IACtD,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAA;IACnC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAA;IAC9B,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CACvC,CAAA;AAED,KAAK,6BAA6B,GAAG;IACnC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IAC1B,cAAc,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,kBAAkB,6EAQ5B,4BAA4B,KAAG,6BAuEjC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@0xtorch/csv",
3
- "version": "0.0.28",
3
+ "version": "0.0.30",
4
4
  "description": "Cryptorch CSV extension",
5
5
  "keywords": [
6
6
  "cryptorch",
@@ -34,8 +34,8 @@
34
34
  "!tsconfig.build.json"
35
35
  ],
36
36
  "dependencies": {
37
- "@0xtorch/big-decimal": "^0.0.11",
38
- "@0xtorch/core": "^0.0.53",
37
+ "@0xtorch/big-decimal": "^0.0.12",
38
+ "@0xtorch/core": "^0.0.54",
39
39
  "encoding-japanese": "^2.1.0",
40
40
  "papaparse": "^5.4.1",
41
41
  "zod": "^3.23.8"
@@ -21,6 +21,11 @@ type ParseCsvFileToActionsParameters = {
21
21
  errorLogger?: (error: unknown) => void
22
22
  }
23
23
 
24
+ type ParseCsvFileToActionsReturnTypes = {
25
+ actions: readonly Action[]
26
+ ignoreRowCount: number
27
+ }
28
+
24
29
  export const parseCsvFileToActions = async ({
25
30
  file,
26
31
  format: { service, formatter, parser, symbolAssetMap },
@@ -29,13 +34,13 @@ export const parseCsvFileToActions = async ({
29
34
  fiat,
30
35
  cryptoCurrencyDataSource,
31
36
  errorLogger,
32
- }: ParseCsvFileToActionsParameters): Promise<readonly Action[]> => {
37
+ }: ParseCsvFileToActionsParameters): Promise<ParseCsvFileToActionsReturnTypes> => {
33
38
  const text = await parseCsvFileToText(file)
34
39
  const rows = formatCsvRows({
35
40
  rows: parseCsvText(text),
36
41
  formatter,
37
42
  })
38
- const actions = parseRowsToActions({
43
+ const result = parseRowsToActions({
39
44
  rows,
40
45
  parser,
41
46
  symbolAssetMap,
@@ -44,9 +49,12 @@ export const parseCsvFileToActions = async ({
44
49
  fiats,
45
50
  errorLogger,
46
51
  })
47
- return await setActionPrices({
48
- dataSource: cryptoCurrencyDataSource,
49
- actions,
50
- fiat,
51
- })
52
+ return {
53
+ actions: await setActionPrices({
54
+ dataSource: cryptoCurrencyDataSource,
55
+ actions: result.actions,
56
+ fiat,
57
+ }),
58
+ ignoreRowCount: result.ignoreRowCount,
59
+ }
52
60
  }
@@ -15,6 +15,11 @@ type ParseRowsToActionsParameters = {
15
15
  errorLogger?: (error: unknown) => void
16
16
  }
17
17
 
18
+ type ParseRowsToActionsReturnTypes = {
19
+ actions: readonly Action[]
20
+ ignoreRowCount: number
21
+ }
22
+
18
23
  export const parseRowsToActions = ({
19
24
  rows,
20
25
  parser,
@@ -23,24 +28,28 @@ export const parseRowsToActions = ({
23
28
  cryptoes,
24
29
  fiats,
25
30
  errorLogger,
26
- }: ParseRowsToActionsParameters): readonly Action[] => {
31
+ }: ParseRowsToActionsParameters): ParseRowsToActionsReturnTypes => {
27
32
  // key があれば 同一 keyValue の row をまとめて処理・key がなければ row 毎に処理して action 生成
33
+ let ignoreRowCount = 0
28
34
  const actions: Action[] = []
29
35
  let currentKeyValue: string | undefined
30
36
  let currentRows: FormattedRow[] = []
31
37
  for (const row of rows) {
32
38
  if (parser.key === undefined) {
33
- actions.push(
34
- ...parseTargetRowsToActions({
35
- rows: [row],
36
- parsers: parser.parsers,
37
- symbolAssetMap,
38
- service,
39
- cryptoes,
40
- fiats,
41
- errorLogger,
42
- }),
43
- )
39
+ const rowActions = parseTargetRowsToActions({
40
+ rows: [row],
41
+ parsers: parser.parsers,
42
+ symbolAssetMap,
43
+ service,
44
+ cryptoes,
45
+ fiats,
46
+ errorLogger,
47
+ })
48
+ if (rowActions.length === 0) {
49
+ ignoreRowCount += 1
50
+ } else {
51
+ actions.push(...rowActions)
52
+ }
44
53
  continue
45
54
  }
46
55
 
@@ -50,37 +59,46 @@ export const parseRowsToActions = ({
50
59
  currentKeyValue !== keyValue &&
51
60
  currentRows.length > 0
52
61
  ) {
53
- actions.push(
54
- ...parseTargetRowsToActions({
55
- rows: currentRows,
56
- parsers: parser.parsers,
57
- symbolAssetMap,
58
- service,
59
- cryptoes,
60
- fiats,
61
- }),
62
- )
63
- currentRows = []
64
- }
65
- currentKeyValue = keyValue
66
- currentRows.push(row)
67
- }
68
- if (currentRows.length > 0) {
69
- actions.push(
70
- ...parseTargetRowsToActions({
62
+ const keyActions = parseTargetRowsToActions({
71
63
  rows: currentRows,
72
64
  parsers: parser.parsers,
73
65
  symbolAssetMap,
74
66
  service,
75
67
  cryptoes,
76
68
  fiats,
77
- }),
78
- )
69
+ })
70
+ if (keyActions.length === 0) {
71
+ ignoreRowCount += currentRows.length
72
+ } else {
73
+ actions.push(...keyActions)
74
+ }
75
+ currentRows = []
76
+ }
77
+ currentKeyValue = keyValue
78
+ currentRows.push(row)
79
+ }
80
+ if (currentRows.length > 0) {
81
+ const keyActions = parseTargetRowsToActions({
82
+ rows: currentRows,
83
+ parsers: parser.parsers,
84
+ symbolAssetMap,
85
+ service,
86
+ cryptoes,
87
+ fiats,
88
+ })
89
+ if (keyActions.length === 0) {
90
+ ignoreRowCount += currentRows.length
91
+ } else {
92
+ actions.push(...keyActions)
93
+ }
79
94
  currentRows = []
80
95
  }
81
96
 
82
- // 同一 source で order が被らないように order を再設定する
83
- return resetActionOrders(actions)
97
+ return {
98
+ // 同一 source で order が被らないように order を再設定
99
+ actions: resetActionOrders(actions),
100
+ ignoreRowCount,
101
+ }
84
102
  }
85
103
 
86
104
  type ParseTargetRowsToActionsParameters = {
@@ -7,17 +7,17 @@ export const stringTextSchema = z.string()
7
7
 
8
8
  export const bigDecimalTextSchema = z
9
9
  .string()
10
- .regex(/^(" *)?-?[\d,]+(\.\d+)?( *")?$/)
10
+ .regex(/^(" *)?[-+]?[\d,]+(\.\d+)?([eE][-+]?\d+)?( *")?$/)
11
11
  .transform((v) => createBigDecimal(v.replaceAll('"', '').trim()))
12
12
 
13
13
  export const bigDecimalPositiveTextSchema = z
14
14
  .string()
15
- .regex(/^(" *)?[\d,]+(\.\d+)?( *")?$/)
15
+ .regex(/^(" *)?[\d,]+(\.\d+)?([eE][-+]?\d+)?( *")?$/)
16
16
  .transform((v) => createBigDecimal(v.replaceAll('"', '').trim()))
17
17
 
18
18
  export const bigDecimalNegativeTextSchema = z
19
19
  .string()
20
- .regex(/^(" *)?-[\d,]+(\.\d+)?( *")?$/)
20
+ .regex(/^(" *)?-[\d,]+(\.\d+)?([eE][-+]?\d+)?( *")?$/)
21
21
  .transform((v) => createBigDecimal(v.replaceAll('"', '').trim()))
22
22
 
23
23
  export const iso8601TextSchema = z