@0xtorch/csv 0.0.14 → 0.0.15

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 (213) hide show
  1. package/.DS_Store +0 -0
  2. package/_cjs/index.js +3 -3
  3. package/_cjs/index.js.map +1 -1
  4. package/_cjs/{parseCsvFileToAccountActions.js → parseCsvFileToActions.js} +11 -11
  5. package/_cjs/parseCsvFileToActions.js.map +1 -0
  6. package/_cjs/parseRowsToActions/allValue.js +54 -0
  7. package/_cjs/parseRowsToActions/allValue.js.map +1 -0
  8. package/_cjs/parseRowsToActions/asset.js +95 -0
  9. package/_cjs/parseRowsToActions/asset.js.map +1 -0
  10. package/_cjs/parseRowsToActions/cellValue.js +8 -0
  11. package/_cjs/parseRowsToActions/cellValue.js.map +1 -0
  12. package/_cjs/parseRowsToActions/index.js +74 -0
  13. package/_cjs/parseRowsToActions/index.js.map +1 -0
  14. package/_cjs/parseRowsToActions/joinValue.js +52 -0
  15. package/_cjs/parseRowsToActions/joinValue.js.map +1 -0
  16. package/_cjs/parseRowsToActions/key.js +8 -0
  17. package/_cjs/parseRowsToActions/key.js.map +1 -0
  18. package/_cjs/parseRowsToActions/mathValue.js +123 -0
  19. package/_cjs/parseRowsToActions/mathValue.js.map +1 -0
  20. package/_cjs/parseRowsToActions/parse.js +72 -0
  21. package/_cjs/parseRowsToActions/parse.js.map +1 -0
  22. package/_cjs/parseRowsToActions/pattern.js +27 -0
  23. package/_cjs/parseRowsToActions/pattern.js.map +1 -0
  24. package/_cjs/parseRowsToActions/simpleValue.js +22 -0
  25. package/_cjs/parseRowsToActions/simpleValue.js.map +1 -0
  26. package/_cjs/parseRowsToActions/sliceValue.js +35 -0
  27. package/_cjs/parseRowsToActions/sliceValue.js.map +1 -0
  28. package/_cjs/parseRowsToActions/splitValue.js +11 -0
  29. package/_cjs/parseRowsToActions/splitValue.js.map +1 -0
  30. package/_cjs/parseRowsToActions/transfer.js +110 -0
  31. package/_cjs/parseRowsToActions/transfer.js.map +1 -0
  32. package/_cjs/schemas/{schemas.js → format.js} +2 -2
  33. package/_cjs/schemas/format.js.map +1 -0
  34. package/_cjs/schemas/index.js +2 -2
  35. package/_cjs/schemas/index.js.map +1 -1
  36. package/_cjs/schemas/parser.js +117 -72
  37. package/_cjs/schemas/parser.js.map +1 -1
  38. package/_esm/index.js +1 -1
  39. package/_esm/index.js.map +1 -1
  40. package/_esm/{parseCsvFileToAccountActions.js → parseCsvFileToActions.js} +9 -9
  41. package/_esm/parseCsvFileToActions.js.map +1 -0
  42. package/_esm/parseRowsToActions/allValue.js +50 -0
  43. package/_esm/parseRowsToActions/allValue.js.map +1 -0
  44. package/_esm/parseRowsToActions/asset.js +89 -0
  45. package/_esm/parseRowsToActions/asset.js.map +1 -0
  46. package/_esm/parseRowsToActions/cellValue.js +4 -0
  47. package/_esm/parseRowsToActions/cellValue.js.map +1 -0
  48. package/_esm/parseRowsToActions/index.js +72 -0
  49. package/_esm/parseRowsToActions/index.js.map +1 -0
  50. package/_esm/parseRowsToActions/joinValue.js +48 -0
  51. package/_esm/parseRowsToActions/joinValue.js.map +1 -0
  52. package/_esm/parseRowsToActions/key.js +4 -0
  53. package/_esm/parseRowsToActions/key.js.map +1 -0
  54. package/_esm/parseRowsToActions/mathValue.js +119 -0
  55. package/_esm/parseRowsToActions/mathValue.js.map +1 -0
  56. package/_esm/parseRowsToActions/parse.js +70 -0
  57. package/_esm/parseRowsToActions/parse.js.map +1 -0
  58. package/_esm/parseRowsToActions/pattern.js +23 -0
  59. package/_esm/parseRowsToActions/pattern.js.map +1 -0
  60. package/_esm/parseRowsToActions/simpleValue.js +18 -0
  61. package/_esm/parseRowsToActions/simpleValue.js.map +1 -0
  62. package/_esm/parseRowsToActions/sliceValue.js +31 -0
  63. package/_esm/parseRowsToActions/sliceValue.js.map +1 -0
  64. package/_esm/parseRowsToActions/splitValue.js +7 -0
  65. package/_esm/parseRowsToActions/splitValue.js.map +1 -0
  66. package/_esm/parseRowsToActions/transfer.js +106 -0
  67. package/_esm/parseRowsToActions/transfer.js.map +1 -0
  68. package/_esm/schemas/{schemas.js → format.js} +3 -3
  69. package/_esm/schemas/format.js.map +1 -0
  70. package/_esm/schemas/index.js +1 -1
  71. package/_esm/schemas/index.js.map +1 -1
  72. package/_esm/schemas/parser.js +126 -93
  73. package/_esm/schemas/parser.js.map +1 -1
  74. package/_types/index.d.ts +1 -1
  75. package/_types/index.d.ts.map +1 -1
  76. package/_types/parseCsvFileToActions.d.ts +14 -0
  77. package/_types/parseCsvFileToActions.d.ts.map +1 -0
  78. package/_types/parseRowsToActions/allValue.d.ts +9 -0
  79. package/_types/parseRowsToActions/allValue.d.ts.map +1 -0
  80. package/_types/parseRowsToActions/asset.d.ts +30 -0
  81. package/_types/parseRowsToActions/asset.d.ts.map +1 -0
  82. package/_types/parseRowsToActions/cellValue.d.ts +8 -0
  83. package/_types/parseRowsToActions/cellValue.d.ts.map +1 -0
  84. package/_types/parseRowsToActions/index.d.ts +18 -0
  85. package/_types/parseRowsToActions/index.d.ts.map +1 -0
  86. package/_types/parseRowsToActions/joinValue.d.ts +9 -0
  87. package/_types/parseRowsToActions/joinValue.d.ts.map +1 -0
  88. package/_types/parseRowsToActions/key.d.ts +8 -0
  89. package/_types/parseRowsToActions/key.d.ts.map +1 -0
  90. package/_types/parseRowsToActions/mathValue.d.ts +10 -0
  91. package/_types/parseRowsToActions/mathValue.d.ts.map +1 -0
  92. package/_types/parseRowsToActions/parse.d.ts +17 -0
  93. package/_types/parseRowsToActions/parse.d.ts.map +1 -0
  94. package/_types/parseRowsToActions/pattern.d.ts +7 -0
  95. package/_types/parseRowsToActions/pattern.d.ts.map +1 -0
  96. package/_types/parseRowsToActions/simpleValue.d.ts +9 -0
  97. package/_types/parseRowsToActions/simpleValue.d.ts.map +1 -0
  98. package/_types/parseRowsToActions/sliceValue.d.ts +9 -0
  99. package/_types/parseRowsToActions/sliceValue.d.ts.map +1 -0
  100. package/_types/parseRowsToActions/splitValue.d.ts +9 -0
  101. package/_types/parseRowsToActions/splitValue.d.ts.map +1 -0
  102. package/_types/parseRowsToActions/transfer.d.ts +15 -0
  103. package/_types/parseRowsToActions/transfer.d.ts.map +1 -0
  104. package/_types/schemas/format.d.ts +35204 -0
  105. package/_types/schemas/format.d.ts.map +1 -0
  106. package/_types/schemas/index.d.ts +1 -1
  107. package/_types/schemas/index.d.ts.map +1 -1
  108. package/_types/schemas/parser.d.ts +78521 -916
  109. package/_types/schemas/parser.d.ts.map +1 -1
  110. package/_types/types.d.ts +2 -2
  111. package/_types/types.d.ts.map +1 -1
  112. package/index.ts +1 -1
  113. package/package.json +1 -1
  114. package/parseCsvFileToActions.ts +52 -0
  115. package/parseRowsToActions/allValue.ts +61 -0
  116. package/parseRowsToActions/asset.ts +152 -0
  117. package/parseRowsToActions/cellValue.ts +13 -0
  118. package/parseRowsToActions/index.ts +115 -0
  119. package/parseRowsToActions/joinValue.ts +68 -0
  120. package/parseRowsToActions/key.ts +13 -0
  121. package/parseRowsToActions/mathValue.ts +160 -0
  122. package/parseRowsToActions/parse.ts +108 -0
  123. package/parseRowsToActions/pattern.ts +35 -0
  124. package/parseRowsToActions/simpleValue.ts +29 -0
  125. package/parseRowsToActions/sliceValue.ts +51 -0
  126. package/parseRowsToActions/splitValue.ts +18 -0
  127. package/parseRowsToActions/transfer.ts +167 -0
  128. package/schemas/{schemas.ts → format.ts} +2 -2
  129. package/schemas/index.ts +1 -1
  130. package/schemas/parser.ts +143 -93
  131. package/tests/assets.ts +2 -1
  132. package/tests/coincheck-standard.csv +0 -10
  133. package/tests/coincheck.ts +196 -106
  134. package/types.ts +2 -2
  135. package/_cjs/parseCsvFileToAccountActions.js.map +0 -1
  136. package/_cjs/parseCsvRowToAction/amount.js +0 -48
  137. package/_cjs/parseCsvRowToAction/amount.js.map +0 -1
  138. package/_cjs/parseCsvRowToAction/asset.js +0 -63
  139. package/_cjs/parseCsvRowToAction/asset.js.map +0 -1
  140. package/_cjs/parseCsvRowToAction/condition.js +0 -32
  141. package/_cjs/parseCsvRowToAction/condition.js.map +0 -1
  142. package/_cjs/parseCsvRowToAction/index.js +0 -6
  143. package/_cjs/parseCsvRowToAction/index.js.map +0 -1
  144. package/_cjs/parseCsvRowToAction/nft.js +0 -16
  145. package/_cjs/parseCsvRowToAction/nft.js.map +0 -1
  146. package/_cjs/parseCsvRowToAction/parseCsvRowToAction.js +0 -79
  147. package/_cjs/parseCsvRowToAction/parseCsvRowToAction.js.map +0 -1
  148. package/_cjs/parseCsvRowToAction/text.js +0 -29
  149. package/_cjs/parseCsvRowToAction/text.js.map +0 -1
  150. package/_cjs/parseCsvRowToAction/timestamp.js +0 -12
  151. package/_cjs/parseCsvRowToAction/timestamp.js.map +0 -1
  152. package/_cjs/parseCsvRowToAction/transfer.js +0 -25
  153. package/_cjs/parseCsvRowToAction/transfer.js.map +0 -1
  154. package/_cjs/parseCsvRowsToActions.js +0 -34
  155. package/_cjs/parseCsvRowsToActions.js.map +0 -1
  156. package/_cjs/schemas/schemas.js.map +0 -1
  157. package/_esm/parseCsvFileToAccountActions.js.map +0 -1
  158. package/_esm/parseCsvRowToAction/amount.js +0 -44
  159. package/_esm/parseCsvRowToAction/amount.js.map +0 -1
  160. package/_esm/parseCsvRowToAction/asset.js +0 -59
  161. package/_esm/parseCsvRowToAction/asset.js.map +0 -1
  162. package/_esm/parseCsvRowToAction/condition.js +0 -28
  163. package/_esm/parseCsvRowToAction/condition.js.map +0 -1
  164. package/_esm/parseCsvRowToAction/index.js +0 -2
  165. package/_esm/parseCsvRowToAction/index.js.map +0 -1
  166. package/_esm/parseCsvRowToAction/nft.js +0 -12
  167. package/_esm/parseCsvRowToAction/nft.js.map +0 -1
  168. package/_esm/parseCsvRowToAction/parseCsvRowToAction.js +0 -77
  169. package/_esm/parseCsvRowToAction/parseCsvRowToAction.js.map +0 -1
  170. package/_esm/parseCsvRowToAction/text.js +0 -25
  171. package/_esm/parseCsvRowToAction/text.js.map +0 -1
  172. package/_esm/parseCsvRowToAction/timestamp.js +0 -8
  173. package/_esm/parseCsvRowToAction/timestamp.js.map +0 -1
  174. package/_esm/parseCsvRowToAction/transfer.js +0 -21
  175. package/_esm/parseCsvRowToAction/transfer.js.map +0 -1
  176. package/_esm/parseCsvRowsToActions.js +0 -32
  177. package/_esm/parseCsvRowsToActions.js.map +0 -1
  178. package/_esm/schemas/schemas.js.map +0 -1
  179. package/_types/parseCsvFileToAccountActions.d.ts +0 -14
  180. package/_types/parseCsvFileToAccountActions.d.ts.map +0 -1
  181. package/_types/parseCsvRowToAction/amount.d.ts +0 -11
  182. package/_types/parseCsvRowToAction/amount.d.ts.map +0 -1
  183. package/_types/parseCsvRowToAction/asset.d.ts +0 -17
  184. package/_types/parseCsvRowToAction/asset.d.ts.map +0 -1
  185. package/_types/parseCsvRowToAction/condition.d.ts +0 -10
  186. package/_types/parseCsvRowToAction/condition.d.ts.map +0 -1
  187. package/_types/parseCsvRowToAction/index.d.ts +0 -2
  188. package/_types/parseCsvRowToAction/index.d.ts.map +0 -1
  189. package/_types/parseCsvRowToAction/nft.d.ts +0 -12
  190. package/_types/parseCsvRowToAction/nft.d.ts.map +0 -1
  191. package/_types/parseCsvRowToAction/parseCsvRowToAction.d.ts +0 -16
  192. package/_types/parseCsvRowToAction/parseCsvRowToAction.d.ts.map +0 -1
  193. package/_types/parseCsvRowToAction/text.d.ts +0 -11
  194. package/_types/parseCsvRowToAction/text.d.ts.map +0 -1
  195. package/_types/parseCsvRowToAction/timestamp.d.ts +0 -8
  196. package/_types/parseCsvRowToAction/timestamp.d.ts.map +0 -1
  197. package/_types/parseCsvRowToAction/transfer.d.ts +0 -18
  198. package/_types/parseCsvRowToAction/transfer.d.ts.map +0 -1
  199. package/_types/parseCsvRowsToActions.d.ts +0 -16
  200. package/_types/parseCsvRowsToActions.d.ts.map +0 -1
  201. package/_types/schemas/schemas.d.ts +0 -593
  202. package/_types/schemas/schemas.d.ts.map +0 -1
  203. package/parseCsvFileToAccountActions.ts +0 -52
  204. package/parseCsvRowToAction/amount.ts +0 -66
  205. package/parseCsvRowToAction/asset.ts +0 -93
  206. package/parseCsvRowToAction/condition.ts +0 -39
  207. package/parseCsvRowToAction/index.ts +0 -1
  208. package/parseCsvRowToAction/nft.ts +0 -28
  209. package/parseCsvRowToAction/parseCsvRowToAction.ts +0 -128
  210. package/parseCsvRowToAction/text.ts +0 -38
  211. package/parseCsvRowToAction/timestamp.ts +0 -19
  212. package/parseCsvRowToAction/transfer.ts +0 -48
  213. package/parseCsvRowsToActions.ts +0 -54
@@ -0,0 +1,89 @@
1
+ import { stringify, } from '@0xtorch/core';
2
+ import { getAllValue } from './allValue';
3
+ export const getAsset = ({ schema, rows, service, symbolAssetMap, cryptoes, fiats, }) => {
4
+ switch (schema.type) {
5
+ case 'id': {
6
+ return getAssetById({ schema, rows, service });
7
+ }
8
+ case 'symbol': {
9
+ return getAssetBySymbol({
10
+ schema,
11
+ rows,
12
+ service,
13
+ symbolAssetMap,
14
+ cryptoes,
15
+ fiats,
16
+ });
17
+ }
18
+ }
19
+ };
20
+ export const getAssetById = ({ schema, rows, service, }) => {
21
+ const value = stringify(getAllValue({
22
+ schema: schema.value,
23
+ rows,
24
+ service,
25
+ }));
26
+ const [type, id] = value.split(schema.splitter);
27
+ return createAssetByTypeAndId(type, id);
28
+ };
29
+ export const getAssetBySymbol = ({ schema, rows, service, symbolAssetMap, cryptoes, fiats, }) => {
30
+ const value = stringify(getAllValue({
31
+ schema: schema.value,
32
+ rows,
33
+ service,
34
+ })).toUpperCase();
35
+ if (symbolAssetMap !== undefined && value in symbolAssetMap) {
36
+ const [type, id] = symbolAssetMap[value].split('/');
37
+ return createAssetByTypeAndId(type, id);
38
+ }
39
+ const sameSymbolFiat = fiats.find((fiat) => fiat.symbol === value);
40
+ if (sameSymbolFiat !== undefined) {
41
+ return sameSymbolFiat;
42
+ }
43
+ let sameSymbolCrypto;
44
+ for (const crypto of cryptoes) {
45
+ if (crypto.symbol.toUpperCase() !== value) {
46
+ continue;
47
+ }
48
+ if (sameSymbolCrypto !== undefined &&
49
+ (sameSymbolCrypto.market?.marketCapUsd ?? 0) >=
50
+ (crypto.market?.marketCapUsd ?? 0)) {
51
+ continue;
52
+ }
53
+ sameSymbolCrypto = crypto;
54
+ }
55
+ if (sameSymbolCrypto !== undefined) {
56
+ return sameSymbolCrypto;
57
+ }
58
+ throw new Error(`Unknown asset symbol: ${value}`);
59
+ };
60
+ const createAssetByTypeAndId = (type, id) => {
61
+ const trimmedLowerType = type.trim().toLowerCase();
62
+ const trimmedId = id.trim();
63
+ if (trimmedLowerType === 'crypto' || trimmedLowerType === 'cryptocurrency') {
64
+ return {
65
+ type: 'CryptoCurrency',
66
+ id: trimmedId,
67
+ name: trimmedId,
68
+ symbol: trimmedId.toUpperCase(),
69
+ updatedAt: 0,
70
+ };
71
+ }
72
+ if (trimmedLowerType === 'fiat' || trimmedLowerType === 'fiatcurrency') {
73
+ return {
74
+ type: 'FiatCurrency',
75
+ id: trimmedId,
76
+ name: trimmedId,
77
+ symbol: trimmedId.toUpperCase(),
78
+ };
79
+ }
80
+ if (trimmedLowerType === 'nft') {
81
+ return {
82
+ type: 'Nft',
83
+ id: trimmedId,
84
+ updatedAt: 0,
85
+ };
86
+ }
87
+ throw new Error(`Unknown asset type: ${type}`);
88
+ };
89
+ //# sourceMappingURL=asset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset.js","sourceRoot":"","sources":["../../parseRowsToActions/asset.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export const getCellValue = ({ schema, rows, }) => {
2
+ return rows[schema.row][schema.column];
3
+ };
4
+ //# sourceMappingURL=cellValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cellValue.js","sourceRoot":"","sources":["../../parseRowsToActions/cellValue.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAC3B,MAAM,EACN,IAAI,GAIL,EAAE,EAAE;IACH,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AACxC,CAAC,CAAA"}
@@ -0,0 +1,72 @@
1
+ import { createKeyValue } from './key';
2
+ import { parseRowsToActionsByParser } from './parse';
3
+ export const parseRowsToActions = ({ rows, parser, symbolAssetMap, service, cryptoes, fiats, errorLogger, }) => {
4
+ // key があれば 同一 keyValue の row をまとめて処理・key がなければ row 毎に処理して action 生成
5
+ const actions = [];
6
+ let currentKeyValue;
7
+ let currentRows = [];
8
+ for (const row of rows) {
9
+ if (parser.key === undefined) {
10
+ actions.push(...parseTargetRowsToActions({
11
+ rows: [row],
12
+ parsers: parser.parsers,
13
+ symbolAssetMap,
14
+ service,
15
+ cryptoes,
16
+ fiats,
17
+ errorLogger,
18
+ }));
19
+ continue;
20
+ }
21
+ const keyValue = createKeyValue({ row, key: parser.key });
22
+ if (currentKeyValue !== undefined &&
23
+ currentKeyValue !== keyValue &&
24
+ currentRows.length > 0) {
25
+ actions.push(...parseTargetRowsToActions({
26
+ rows: currentRows,
27
+ parsers: parser.parsers,
28
+ symbolAssetMap,
29
+ service,
30
+ cryptoes,
31
+ fiats,
32
+ }));
33
+ currentRows = [];
34
+ }
35
+ currentKeyValue = keyValue;
36
+ currentRows.push(row);
37
+ }
38
+ // 同一 source で order が被らないように order を再設定する
39
+ return resetActionOrders(actions);
40
+ };
41
+ const parseTargetRowsToActions = (parameters) => {
42
+ const { parsers, errorLogger, ...otherParameters } = parameters;
43
+ for (const parser of parsers) {
44
+ try {
45
+ const actions = parseRowsToActionsByParser({ parser, ...otherParameters });
46
+ if (actions === undefined) {
47
+ continue;
48
+ }
49
+ return actions;
50
+ }
51
+ catch (error) {
52
+ if (errorLogger !== undefined) {
53
+ errorLogger(error);
54
+ }
55
+ }
56
+ }
57
+ if (errorLogger !== undefined) {
58
+ errorLogger(new Error('No parser matched'));
59
+ }
60
+ return [];
61
+ };
62
+ const resetActionOrders = (actions) => {
63
+ const sourceCounts = new Map();
64
+ const orderedActions = [];
65
+ for (const action of actions) {
66
+ const count = sourceCounts.get(action.source) ?? 0;
67
+ orderedActions.push({ ...action, order: count });
68
+ sourceCounts.set(action.source, count + 1);
69
+ }
70
+ return orderedActions;
71
+ };
72
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../parseRowsToActions/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import { stringify } from '@0xtorch/core';
2
+ import { getCellValue } from './cellValue';
3
+ import { getMathValue } from './mathValue';
4
+ import { getSliceValue } from './sliceValue';
5
+ import { getSplitValue } from './splitValue';
6
+ export const getJoinValue = ({ schema, rows, service, }) => {
7
+ return schema.values
8
+ .map((value) => stringify(getValue({ schema: value, rows, service })))
9
+ .join('');
10
+ };
11
+ const getValue = ({ schema, rows, service, }) => {
12
+ if (typeof schema === 'string') {
13
+ return schema;
14
+ }
15
+ switch (schema.type) {
16
+ case 'cell': {
17
+ return getCellValue({
18
+ schema,
19
+ rows,
20
+ });
21
+ }
22
+ case 'math': {
23
+ return getMathValue({
24
+ schema,
25
+ rows,
26
+ service,
27
+ });
28
+ }
29
+ case 'service': {
30
+ return service;
31
+ }
32
+ case 'slice': {
33
+ return getSliceValue({
34
+ schema,
35
+ rows,
36
+ service,
37
+ });
38
+ }
39
+ case 'split': {
40
+ return getSplitValue({
41
+ schema,
42
+ rows,
43
+ service,
44
+ });
45
+ }
46
+ }
47
+ };
48
+ //# sourceMappingURL=joinValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"joinValue.js","sourceRoot":"","sources":["../../parseRowsToActions/joinValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAIzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE5C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAC3B,MAAM,EACN,IAAI,EACJ,OAAO,GAKR,EAAE,EAAE;IACH,OAAO,MAAM,CAAC,MAAM;SACjB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;SACrE,IAAI,CAAC,EAAE,CAAC,CAAA;AACb,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,CAAC,EAChB,MAAM,EACN,IAAI,EACJ,OAAO,GAKR,EAAE,EAAE;IACH,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,MAAM,CAAA;IACf,CAAC;IACD,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,OAAO,YAAY,CAAC;gBAClB,MAAM;gBACN,IAAI;aACL,CAAC,CAAA;QACJ,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,OAAO,YAAY,CAAC;gBAClB,MAAM;gBACN,IAAI;gBACJ,OAAO;aACR,CAAC,CAAA;QACJ,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,OAAO,aAAa,CAAC;gBACnB,MAAM;gBACN,IAAI;gBACJ,OAAO;aACR,CAAC,CAAA;QACJ,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,OAAO,aAAa,CAAC;gBACnB,MAAM;gBACN,IAAI;gBACJ,OAAO;aACR,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;AACH,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ export const createKeyValue = ({ row, key, }) => {
2
+ return key.map((k) => row[k]?.toString()).join('');
3
+ };
4
+ //# sourceMappingURL=key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key.js","sourceRoot":"","sources":["../../parseRowsToActions/key.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,GAAG,EACH,GAAG,GACsB,EAAU,EAAE;IACrC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACpD,CAAC,CAAA"}
@@ -0,0 +1,119 @@
1
+ import { createBigDecimal, divide, minus, plus, times, } from '@0xtorch/big-decimal';
2
+ import { getCellValue } from './cellValue';
3
+ import { getSliceValue } from './sliceValue';
4
+ import { getSplitValue } from './splitValue';
5
+ export const getMathValue = ({ schema, rows, service, }) => {
6
+ const firstValue = schema.values[0];
7
+ let current = getBigDecimalValue({ schema: firstValue, rows, service });
8
+ let operator;
9
+ let args = [];
10
+ for (const value of schema.values.slice(1)) {
11
+ if (value === '+') {
12
+ if (operator !== undefined) {
13
+ current = calculate(operator, current, args);
14
+ args = [];
15
+ }
16
+ operator = '+';
17
+ continue;
18
+ }
19
+ if (value === '-') {
20
+ if (operator !== undefined) {
21
+ current = calculate(operator, current, args);
22
+ args = [];
23
+ }
24
+ operator = '-';
25
+ continue;
26
+ }
27
+ if (value === '*') {
28
+ if (operator !== undefined) {
29
+ current = calculate(operator, current, args);
30
+ args = [];
31
+ }
32
+ operator = '*';
33
+ continue;
34
+ }
35
+ if (value === '/') {
36
+ if (operator !== undefined) {
37
+ current = calculate(operator, current, args);
38
+ args = [];
39
+ }
40
+ operator = '/';
41
+ continue;
42
+ }
43
+ args.push(getBigDecimalValue({ schema: value, rows, service }));
44
+ }
45
+ if (operator !== undefined) {
46
+ current = calculate(operator, current, args);
47
+ }
48
+ return current;
49
+ };
50
+ const getBigDecimalValue = ({ schema, rows, service, }) => {
51
+ const value = getValue({ schema, rows, service });
52
+ if (value === undefined) {
53
+ return createBigDecimal(0n);
54
+ }
55
+ if (typeof value === 'string' || typeof value === 'number') {
56
+ return createBigDecimal(value);
57
+ }
58
+ return value;
59
+ };
60
+ const getValue = ({ schema, rows, service, }) => {
61
+ if (typeof schema === 'string') {
62
+ return schema;
63
+ }
64
+ switch (schema.type) {
65
+ case 'cell': {
66
+ return getCellValue({
67
+ schema,
68
+ rows,
69
+ });
70
+ }
71
+ case 'service': {
72
+ return service;
73
+ }
74
+ case 'slice': {
75
+ return getSliceValue({
76
+ schema,
77
+ rows,
78
+ service,
79
+ });
80
+ }
81
+ case 'split': {
82
+ return getSplitValue({
83
+ schema,
84
+ rows,
85
+ service,
86
+ });
87
+ }
88
+ }
89
+ };
90
+ const calculate = (operator, current, args) => {
91
+ let newValue = current;
92
+ switch (operator) {
93
+ case '+': {
94
+ for (const arg of args) {
95
+ newValue = plus(newValue, arg);
96
+ }
97
+ return newValue;
98
+ }
99
+ case '-': {
100
+ for (const arg of args) {
101
+ newValue = minus(newValue, arg);
102
+ }
103
+ return newValue;
104
+ }
105
+ case '*': {
106
+ for (const arg of args) {
107
+ newValue = times(newValue, arg);
108
+ }
109
+ return newValue;
110
+ }
111
+ case '/': {
112
+ for (const arg of args) {
113
+ newValue = divide(times(newValue, createBigDecimal(1n), 18), arg, 18);
114
+ }
115
+ return newValue;
116
+ }
117
+ }
118
+ };
119
+ //# sourceMappingURL=mathValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mathValue.js","sourceRoot":"","sources":["../../parseRowsToActions/mathValue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ import { stringify, } from '@0xtorch/core';
2
+ import { getAllValue } from './allValue';
3
+ import { getAssetById } from './asset';
4
+ import { getCellValue } from './cellValue';
5
+ import { isMatchPattern } from './pattern';
6
+ import { createTransfers } from './transfer';
7
+ export const parseRowsToActionsByParser = ({ rows, parser, symbolAssetMap, service, cryptoes, fiats, }) => {
8
+ // 合致しない condition がある場合は undefined を返す
9
+ for (const condition of parser.conditions) {
10
+ const value = getAllValue({
11
+ schema: condition.value,
12
+ rows,
13
+ service,
14
+ });
15
+ if (!isMatchPattern({ value: stringify(value), pattern: condition.pattern })) {
16
+ return undefined;
17
+ }
18
+ }
19
+ // generator 毎に action 生成
20
+ const actions = [];
21
+ for (const generator of parser.generators) {
22
+ const source = stringify(getAllValue({ schema: generator.source, rows, service }));
23
+ const timestampValue = getCellValue({ schema: generator.timestamp, rows });
24
+ const timestamp = typeof timestampValue === 'number'
25
+ ? timestampValue
26
+ : new Date(stringify(timestampValue)).getTime();
27
+ const comment = generator.comment === undefined
28
+ ? undefined
29
+ : stringify(getAllValue({ schema: generator.comment, rows, service }));
30
+ const app = generator.app === undefined
31
+ ? undefined
32
+ : stringify(getAllValue({ schema: generator.app, rows, service }));
33
+ const crossId = generator.crossId === undefined
34
+ ? undefined
35
+ : stringify(getAllValue({ schema: generator.crossId, rows, service }));
36
+ const loanId = generator.loanId === undefined
37
+ ? undefined
38
+ : stringify(getAllValue({ schema: generator.loanId, rows, service }));
39
+ const target = generator.target === undefined
40
+ ? undefined
41
+ : getAssetById({
42
+ schema: generator.target,
43
+ rows,
44
+ service,
45
+ });
46
+ actions.push({
47
+ source,
48
+ order: 0,
49
+ type: generator.type,
50
+ timestamp,
51
+ evidence: 'system-rule',
52
+ comment,
53
+ app,
54
+ transfers: generator.transfers.flatMap((transfer) => createTransfers({
55
+ schema: transfer,
56
+ rows,
57
+ service,
58
+ symbolAssetMap,
59
+ cryptoes,
60
+ fiats,
61
+ })),
62
+ crossId,
63
+ crossType: generator.crossType,
64
+ loanId,
65
+ target: target === undefined || target.type !== 'Nft' ? undefined : target,
66
+ });
67
+ }
68
+ return actions;
69
+ };
70
+ //# sourceMappingURL=parse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../parseRowsToActions/parse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { stringify } from '@0xtorch/core';
2
+ export const isMatchPattern = ({ value, pattern, }) => {
3
+ const trimmedValue = value.trim();
4
+ if (typeof pattern === 'string') {
5
+ return trimmedValue === pattern;
6
+ }
7
+ switch (pattern.type) {
8
+ case 'defined': {
9
+ return (trimmedValue !== stringify(undefined) && trimmedValue.trim().length > 0);
10
+ }
11
+ case 'undefined': {
12
+ return (trimmedValue.trim().length === 0 ||
13
+ trimmedValue === stringify(undefined));
14
+ }
15
+ case 'in': {
16
+ return pattern.values.includes(trimmedValue);
17
+ }
18
+ case 'not-in': {
19
+ return !pattern.values.includes(trimmedValue);
20
+ }
21
+ }
22
+ };
23
+ //# sourceMappingURL=pattern.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern.js","sourceRoot":"","sources":["../../parseRowsToActions/pattern.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAIzC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,KAAK,EACL,OAAO,GAIR,EAAW,EAAE;IACZ,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IACjC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,YAAY,KAAK,OAAO,CAAA;IACjC,CAAC;IACD,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,OAAO,CACL,YAAY,KAAK,SAAS,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CACxE,CAAA;QACH,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,OAAO,CACL,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;gBAChC,YAAY,KAAK,SAAS,CAAC,SAAS,CAAC,CACtC,CAAA;QACH,CAAC;QACD,KAAK,IAAI,CAAC,CAAC,CAAC;YACV,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;QAC9C,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC;AACH,CAAC,CAAA"}
@@ -0,0 +1,18 @@
1
+ import { getCellValue } from './cellValue';
2
+ export const getSimpleValue = ({ schema, rows, service, }) => {
3
+ if (typeof schema === 'string') {
4
+ return schema;
5
+ }
6
+ switch (schema.type) {
7
+ case 'cell': {
8
+ return getCellValue({
9
+ schema,
10
+ rows,
11
+ });
12
+ }
13
+ case 'service': {
14
+ return service;
15
+ }
16
+ }
17
+ };
18
+ //# sourceMappingURL=simpleValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simpleValue.js","sourceRoot":"","sources":["../../parseRowsToActions/simpleValue.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,MAAM,EACN,IAAI,EACJ,OAAO,GAKR,EAAE,EAAE;IACH,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,MAAM,CAAA;IACf,CAAC;IACD,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,OAAO,YAAY,CAAC;gBAClB,MAAM;gBACN,IAAI;aACL,CAAC,CAAA;QACJ,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,OAAO,OAAO,CAAA;QAChB,CAAC;IACH,CAAC;AACH,CAAC,CAAA"}
@@ -0,0 +1,31 @@
1
+ import { stringify } from '@0xtorch/core';
2
+ import { getCellValue } from './cellValue';
3
+ import { getSplitValue } from './splitValue';
4
+ export const getSliceValue = ({ schema, rows, service, }) => {
5
+ const value = getValue({ schema, rows, service });
6
+ return stringify(value).slice(schema.start, schema.end);
7
+ };
8
+ const getValue = ({ schema, rows, service, }) => {
9
+ if (typeof schema.value === 'string') {
10
+ return schema.value;
11
+ }
12
+ switch (schema.value.type) {
13
+ case 'cell': {
14
+ return getCellValue({
15
+ schema: schema.value,
16
+ rows,
17
+ });
18
+ }
19
+ case 'service': {
20
+ return service;
21
+ }
22
+ case 'split': {
23
+ return getSplitValue({
24
+ schema: schema.value,
25
+ rows,
26
+ service,
27
+ });
28
+ }
29
+ }
30
+ };
31
+ //# sourceMappingURL=sliceValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sliceValue.js","sourceRoot":"","sources":["../../parseRowsToActions/sliceValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAIzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE5C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC5B,MAAM,EACN,IAAI,EACJ,OAAO,GAKR,EAAE,EAAE;IACH,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;IACjD,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;AACzD,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,CAAC,EAChB,MAAM,EACN,IAAI,EACJ,OAAO,GAKR,EAAE,EAAE;IACH,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrC,OAAO,MAAM,CAAC,KAAK,CAAA;IACrB,CAAC;IACD,QAAQ,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC1B,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,OAAO,YAAY,CAAC;gBAClB,MAAM,EAAE,MAAM,CAAC,KAAK;gBACpB,IAAI;aACL,CAAC,CAAA;QACJ,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,OAAO,aAAa,CAAC;gBACnB,MAAM,EAAE,MAAM,CAAC,KAAK;gBACpB,IAAI;gBACJ,OAAO;aACR,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;AACH,CAAC,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { stringify } from '@0xtorch/core';
2
+ import { getSimpleValue } from './simpleValue';
3
+ export const getSplitValue = ({ schema, rows, service, }) => {
4
+ const value = getSimpleValue({ schema: schema.value, rows, service });
5
+ return stringify(value).split(schema.splitter)[schema.index];
6
+ };
7
+ //# sourceMappingURL=splitValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"splitValue.js","sourceRoot":"","sources":["../../parseRowsToActions/splitValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAIzC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE9C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC5B,MAAM,EACN,IAAI,EACJ,OAAO,GAKR,EAAE,EAAE;IACH,MAAM,KAAK,GAAG,cAAc,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;IACrE,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC9D,CAAC,CAAA"}
@@ -0,0 +1,106 @@
1
+ import { createBigDecimal } from '@0xtorch/big-decimal';
2
+ import { stringify, } from '@0xtorch/core';
3
+ import { getAllValue } from './allValue';
4
+ import { getAsset } from './asset';
5
+ import { isMatchPattern } from './pattern';
6
+ export const createTransfers = ({ schema, rows, service, symbolAssetMap, cryptoes, fiats, }) => {
7
+ if (schema.target === undefined) {
8
+ return [
9
+ createSingleTransfer({
10
+ schema,
11
+ rows,
12
+ service,
13
+ symbolAssetMap,
14
+ cryptoes,
15
+ fiats,
16
+ }),
17
+ ];
18
+ }
19
+ const targetRows = filterTargetRows({
20
+ conditions: schema.target,
21
+ rows,
22
+ });
23
+ return targetRows.map((targetRow) => createSingleTransfer({
24
+ schema,
25
+ rows: [targetRow],
26
+ service,
27
+ symbolAssetMap,
28
+ cryptoes,
29
+ fiats,
30
+ }));
31
+ };
32
+ const filterTargetRows = ({ conditions, rows, }) => {
33
+ const filteredRows = [];
34
+ for (const row of rows) {
35
+ let isMatch = true;
36
+ for (const condition of conditions) {
37
+ const value = stringify(row[condition.column]);
38
+ if (!isMatchPattern({ value, pattern: condition.pattern })) {
39
+ isMatch = false;
40
+ break;
41
+ }
42
+ }
43
+ if (isMatch) {
44
+ filteredRows.push(row);
45
+ }
46
+ }
47
+ return filteredRows;
48
+ };
49
+ const createSingleTransfer = ({ schema, rows, service, symbolAssetMap, cryptoes, fiats, }) => {
50
+ const from = schema.from === undefined
51
+ ? undefined
52
+ : stringify(getAllValue({ schema: schema.from, rows, service }));
53
+ const to = schema.to === undefined
54
+ ? undefined
55
+ : stringify(getAllValue({ schema: schema.to, rows, service }));
56
+ return {
57
+ direction: schema.direction,
58
+ from,
59
+ to,
60
+ asset: getAsset({
61
+ schema: schema.asset,
62
+ rows,
63
+ service,
64
+ symbolAssetMap,
65
+ cryptoes,
66
+ fiats,
67
+ }),
68
+ amount: createAmount({
69
+ schema: schema.amount,
70
+ rows,
71
+ service,
72
+ }),
73
+ };
74
+ };
75
+ const createAmount = ({ schema, rows, service, }) => {
76
+ switch (schema.type) {
77
+ case 'decimal': {
78
+ const baseValue = stringify(getAllValue({ schema: schema.value, rows, service }));
79
+ let value;
80
+ if (baseValue === stringify(undefined)) {
81
+ value = 0n;
82
+ }
83
+ else if (baseValue.includes('.')) {
84
+ value = BigInt(Math.floor(Number(baseValue)));
85
+ }
86
+ else {
87
+ value = BigInt(baseValue);
88
+ }
89
+ return {
90
+ value,
91
+ decimals: schema.decimals,
92
+ };
93
+ }
94
+ case 'text': {
95
+ const value = getAllValue({ schema: schema.value, rows, service });
96
+ if (value === undefined) {
97
+ return createBigDecimal(0n);
98
+ }
99
+ if (typeof value === 'string' || typeof value === 'number') {
100
+ return createBigDecimal(value);
101
+ }
102
+ return value;
103
+ }
104
+ }
105
+ };
106
+ //# sourceMappingURL=transfer.js.map