@0xtorch/csv 0.0.14 → 0.0.16

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 (212) hide show
  1. package/_cjs/index.js +7 -3
  2. package/_cjs/index.js.map +1 -1
  3. package/_cjs/{parseCsvFileToAccountActions.js → parseCsvFileToActions.js} +11 -11
  4. package/_cjs/parseCsvFileToActions.js.map +1 -0
  5. package/_cjs/parseRowsToActions/allValue.js +54 -0
  6. package/_cjs/parseRowsToActions/allValue.js.map +1 -0
  7. package/_cjs/parseRowsToActions/asset.js +95 -0
  8. package/_cjs/parseRowsToActions/asset.js.map +1 -0
  9. package/_cjs/parseRowsToActions/cellValue.js +8 -0
  10. package/_cjs/parseRowsToActions/cellValue.js.map +1 -0
  11. package/_cjs/parseRowsToActions/index.js +74 -0
  12. package/_cjs/parseRowsToActions/index.js.map +1 -0
  13. package/_cjs/parseRowsToActions/joinValue.js +52 -0
  14. package/_cjs/parseRowsToActions/joinValue.js.map +1 -0
  15. package/_cjs/parseRowsToActions/key.js +8 -0
  16. package/_cjs/parseRowsToActions/key.js.map +1 -0
  17. package/_cjs/parseRowsToActions/mathValue.js +123 -0
  18. package/_cjs/parseRowsToActions/mathValue.js.map +1 -0
  19. package/_cjs/parseRowsToActions/parse.js +72 -0
  20. package/_cjs/parseRowsToActions/parse.js.map +1 -0
  21. package/_cjs/parseRowsToActions/pattern.js +27 -0
  22. package/_cjs/parseRowsToActions/pattern.js.map +1 -0
  23. package/_cjs/parseRowsToActions/simpleValue.js +22 -0
  24. package/_cjs/parseRowsToActions/simpleValue.js.map +1 -0
  25. package/_cjs/parseRowsToActions/sliceValue.js +35 -0
  26. package/_cjs/parseRowsToActions/sliceValue.js.map +1 -0
  27. package/_cjs/parseRowsToActions/splitValue.js +11 -0
  28. package/_cjs/parseRowsToActions/splitValue.js.map +1 -0
  29. package/_cjs/parseRowsToActions/transfer.js +110 -0
  30. package/_cjs/parseRowsToActions/transfer.js.map +1 -0
  31. package/_cjs/schemas/{schemas.js → format.js} +2 -2
  32. package/_cjs/schemas/format.js.map +1 -0
  33. package/_cjs/schemas/index.js +2 -2
  34. package/_cjs/schemas/index.js.map +1 -1
  35. package/_cjs/schemas/parser.js +117 -72
  36. package/_cjs/schemas/parser.js.map +1 -1
  37. package/_esm/index.js +3 -1
  38. package/_esm/index.js.map +1 -1
  39. package/_esm/{parseCsvFileToAccountActions.js → parseCsvFileToActions.js} +9 -9
  40. package/_esm/parseCsvFileToActions.js.map +1 -0
  41. package/_esm/parseRowsToActions/allValue.js +50 -0
  42. package/_esm/parseRowsToActions/allValue.js.map +1 -0
  43. package/_esm/parseRowsToActions/asset.js +89 -0
  44. package/_esm/parseRowsToActions/asset.js.map +1 -0
  45. package/_esm/parseRowsToActions/cellValue.js +4 -0
  46. package/_esm/parseRowsToActions/cellValue.js.map +1 -0
  47. package/_esm/parseRowsToActions/index.js +72 -0
  48. package/_esm/parseRowsToActions/index.js.map +1 -0
  49. package/_esm/parseRowsToActions/joinValue.js +48 -0
  50. package/_esm/parseRowsToActions/joinValue.js.map +1 -0
  51. package/_esm/parseRowsToActions/key.js +4 -0
  52. package/_esm/parseRowsToActions/key.js.map +1 -0
  53. package/_esm/parseRowsToActions/mathValue.js +119 -0
  54. package/_esm/parseRowsToActions/mathValue.js.map +1 -0
  55. package/_esm/parseRowsToActions/parse.js +70 -0
  56. package/_esm/parseRowsToActions/parse.js.map +1 -0
  57. package/_esm/parseRowsToActions/pattern.js +23 -0
  58. package/_esm/parseRowsToActions/pattern.js.map +1 -0
  59. package/_esm/parseRowsToActions/simpleValue.js +18 -0
  60. package/_esm/parseRowsToActions/simpleValue.js.map +1 -0
  61. package/_esm/parseRowsToActions/sliceValue.js +31 -0
  62. package/_esm/parseRowsToActions/sliceValue.js.map +1 -0
  63. package/_esm/parseRowsToActions/splitValue.js +7 -0
  64. package/_esm/parseRowsToActions/splitValue.js.map +1 -0
  65. package/_esm/parseRowsToActions/transfer.js +106 -0
  66. package/_esm/parseRowsToActions/transfer.js.map +1 -0
  67. package/_esm/schemas/{schemas.js → format.js} +3 -3
  68. package/_esm/schemas/format.js.map +1 -0
  69. package/_esm/schemas/index.js +1 -1
  70. package/_esm/schemas/index.js.map +1 -1
  71. package/_esm/schemas/parser.js +126 -93
  72. package/_esm/schemas/parser.js.map +1 -1
  73. package/_types/index.d.ts +3 -1
  74. package/_types/index.d.ts.map +1 -1
  75. package/_types/parseCsvFileToActions.d.ts +14 -0
  76. package/_types/parseCsvFileToActions.d.ts.map +1 -0
  77. package/_types/parseRowsToActions/allValue.d.ts +9 -0
  78. package/_types/parseRowsToActions/allValue.d.ts.map +1 -0
  79. package/_types/parseRowsToActions/asset.d.ts +30 -0
  80. package/_types/parseRowsToActions/asset.d.ts.map +1 -0
  81. package/_types/parseRowsToActions/cellValue.d.ts +8 -0
  82. package/_types/parseRowsToActions/cellValue.d.ts.map +1 -0
  83. package/_types/parseRowsToActions/index.d.ts +18 -0
  84. package/_types/parseRowsToActions/index.d.ts.map +1 -0
  85. package/_types/parseRowsToActions/joinValue.d.ts +9 -0
  86. package/_types/parseRowsToActions/joinValue.d.ts.map +1 -0
  87. package/_types/parseRowsToActions/key.d.ts +8 -0
  88. package/_types/parseRowsToActions/key.d.ts.map +1 -0
  89. package/_types/parseRowsToActions/mathValue.d.ts +10 -0
  90. package/_types/parseRowsToActions/mathValue.d.ts.map +1 -0
  91. package/_types/parseRowsToActions/parse.d.ts +17 -0
  92. package/_types/parseRowsToActions/parse.d.ts.map +1 -0
  93. package/_types/parseRowsToActions/pattern.d.ts +7 -0
  94. package/_types/parseRowsToActions/pattern.d.ts.map +1 -0
  95. package/_types/parseRowsToActions/simpleValue.d.ts +9 -0
  96. package/_types/parseRowsToActions/simpleValue.d.ts.map +1 -0
  97. package/_types/parseRowsToActions/sliceValue.d.ts +9 -0
  98. package/_types/parseRowsToActions/sliceValue.d.ts.map +1 -0
  99. package/_types/parseRowsToActions/splitValue.d.ts +9 -0
  100. package/_types/parseRowsToActions/splitValue.d.ts.map +1 -0
  101. package/_types/parseRowsToActions/transfer.d.ts +15 -0
  102. package/_types/parseRowsToActions/transfer.d.ts.map +1 -0
  103. package/_types/schemas/format.d.ts +35204 -0
  104. package/_types/schemas/format.d.ts.map +1 -0
  105. package/_types/schemas/index.d.ts +1 -1
  106. package/_types/schemas/index.d.ts.map +1 -1
  107. package/_types/schemas/parser.d.ts +78521 -916
  108. package/_types/schemas/parser.d.ts.map +1 -1
  109. package/_types/types.d.ts +2 -2
  110. package/_types/types.d.ts.map +1 -1
  111. package/index.ts +3 -1
  112. package/package.json +1 -1
  113. package/parseCsvFileToActions.ts +52 -0
  114. package/parseRowsToActions/allValue.ts +61 -0
  115. package/parseRowsToActions/asset.ts +152 -0
  116. package/parseRowsToActions/cellValue.ts +13 -0
  117. package/parseRowsToActions/index.ts +115 -0
  118. package/parseRowsToActions/joinValue.ts +68 -0
  119. package/parseRowsToActions/key.ts +13 -0
  120. package/parseRowsToActions/mathValue.ts +160 -0
  121. package/parseRowsToActions/parse.ts +108 -0
  122. package/parseRowsToActions/pattern.ts +35 -0
  123. package/parseRowsToActions/simpleValue.ts +29 -0
  124. package/parseRowsToActions/sliceValue.ts +51 -0
  125. package/parseRowsToActions/splitValue.ts +18 -0
  126. package/parseRowsToActions/transfer.ts +167 -0
  127. package/schemas/{schemas.ts → format.ts} +2 -2
  128. package/schemas/index.ts +1 -1
  129. package/schemas/parser.ts +143 -93
  130. package/tests/assets.ts +2 -1
  131. package/tests/coincheck-standard.csv +0 -10
  132. package/tests/coincheck.ts +196 -106
  133. package/types.ts +2 -2
  134. package/_cjs/parseCsvFileToAccountActions.js.map +0 -1
  135. package/_cjs/parseCsvRowToAction/amount.js +0 -48
  136. package/_cjs/parseCsvRowToAction/amount.js.map +0 -1
  137. package/_cjs/parseCsvRowToAction/asset.js +0 -63
  138. package/_cjs/parseCsvRowToAction/asset.js.map +0 -1
  139. package/_cjs/parseCsvRowToAction/condition.js +0 -32
  140. package/_cjs/parseCsvRowToAction/condition.js.map +0 -1
  141. package/_cjs/parseCsvRowToAction/index.js +0 -6
  142. package/_cjs/parseCsvRowToAction/index.js.map +0 -1
  143. package/_cjs/parseCsvRowToAction/nft.js +0 -16
  144. package/_cjs/parseCsvRowToAction/nft.js.map +0 -1
  145. package/_cjs/parseCsvRowToAction/parseCsvRowToAction.js +0 -79
  146. package/_cjs/parseCsvRowToAction/parseCsvRowToAction.js.map +0 -1
  147. package/_cjs/parseCsvRowToAction/text.js +0 -29
  148. package/_cjs/parseCsvRowToAction/text.js.map +0 -1
  149. package/_cjs/parseCsvRowToAction/timestamp.js +0 -12
  150. package/_cjs/parseCsvRowToAction/timestamp.js.map +0 -1
  151. package/_cjs/parseCsvRowToAction/transfer.js +0 -25
  152. package/_cjs/parseCsvRowToAction/transfer.js.map +0 -1
  153. package/_cjs/parseCsvRowsToActions.js +0 -34
  154. package/_cjs/parseCsvRowsToActions.js.map +0 -1
  155. package/_cjs/schemas/schemas.js.map +0 -1
  156. package/_esm/parseCsvFileToAccountActions.js.map +0 -1
  157. package/_esm/parseCsvRowToAction/amount.js +0 -44
  158. package/_esm/parseCsvRowToAction/amount.js.map +0 -1
  159. package/_esm/parseCsvRowToAction/asset.js +0 -59
  160. package/_esm/parseCsvRowToAction/asset.js.map +0 -1
  161. package/_esm/parseCsvRowToAction/condition.js +0 -28
  162. package/_esm/parseCsvRowToAction/condition.js.map +0 -1
  163. package/_esm/parseCsvRowToAction/index.js +0 -2
  164. package/_esm/parseCsvRowToAction/index.js.map +0 -1
  165. package/_esm/parseCsvRowToAction/nft.js +0 -12
  166. package/_esm/parseCsvRowToAction/nft.js.map +0 -1
  167. package/_esm/parseCsvRowToAction/parseCsvRowToAction.js +0 -77
  168. package/_esm/parseCsvRowToAction/parseCsvRowToAction.js.map +0 -1
  169. package/_esm/parseCsvRowToAction/text.js +0 -25
  170. package/_esm/parseCsvRowToAction/text.js.map +0 -1
  171. package/_esm/parseCsvRowToAction/timestamp.js +0 -8
  172. package/_esm/parseCsvRowToAction/timestamp.js.map +0 -1
  173. package/_esm/parseCsvRowToAction/transfer.js +0 -21
  174. package/_esm/parseCsvRowToAction/transfer.js.map +0 -1
  175. package/_esm/parseCsvRowsToActions.js +0 -32
  176. package/_esm/parseCsvRowsToActions.js.map +0 -1
  177. package/_esm/schemas/schemas.js.map +0 -1
  178. package/_types/parseCsvFileToAccountActions.d.ts +0 -14
  179. package/_types/parseCsvFileToAccountActions.d.ts.map +0 -1
  180. package/_types/parseCsvRowToAction/amount.d.ts +0 -11
  181. package/_types/parseCsvRowToAction/amount.d.ts.map +0 -1
  182. package/_types/parseCsvRowToAction/asset.d.ts +0 -17
  183. package/_types/parseCsvRowToAction/asset.d.ts.map +0 -1
  184. package/_types/parseCsvRowToAction/condition.d.ts +0 -10
  185. package/_types/parseCsvRowToAction/condition.d.ts.map +0 -1
  186. package/_types/parseCsvRowToAction/index.d.ts +0 -2
  187. package/_types/parseCsvRowToAction/index.d.ts.map +0 -1
  188. package/_types/parseCsvRowToAction/nft.d.ts +0 -12
  189. package/_types/parseCsvRowToAction/nft.d.ts.map +0 -1
  190. package/_types/parseCsvRowToAction/parseCsvRowToAction.d.ts +0 -16
  191. package/_types/parseCsvRowToAction/parseCsvRowToAction.d.ts.map +0 -1
  192. package/_types/parseCsvRowToAction/text.d.ts +0 -11
  193. package/_types/parseCsvRowToAction/text.d.ts.map +0 -1
  194. package/_types/parseCsvRowToAction/timestamp.d.ts +0 -8
  195. package/_types/parseCsvRowToAction/timestamp.d.ts.map +0 -1
  196. package/_types/parseCsvRowToAction/transfer.d.ts +0 -18
  197. package/_types/parseCsvRowToAction/transfer.d.ts.map +0 -1
  198. package/_types/parseCsvRowsToActions.d.ts +0 -16
  199. package/_types/parseCsvRowsToActions.d.ts.map +0 -1
  200. package/_types/schemas/schemas.d.ts +0 -593
  201. package/_types/schemas/schemas.d.ts.map +0 -1
  202. package/parseCsvFileToAccountActions.ts +0 -52
  203. package/parseCsvRowToAction/amount.ts +0 -66
  204. package/parseCsvRowToAction/asset.ts +0 -93
  205. package/parseCsvRowToAction/condition.ts +0 -39
  206. package/parseCsvRowToAction/index.ts +0 -1
  207. package/parseCsvRowToAction/nft.ts +0 -28
  208. package/parseCsvRowToAction/parseCsvRowToAction.ts +0 -128
  209. package/parseCsvRowToAction/text.ts +0 -38
  210. package/parseCsvRowToAction/timestamp.ts +0 -19
  211. package/parseCsvRowToAction/transfer.ts +0 -48
  212. package/parseCsvRowsToActions.ts +0 -54
package/schemas/parser.ts CHANGED
@@ -1,121 +1,171 @@
1
- import { actionTypeUnionSchema } from '@0xtorch/core'
1
+ import {
2
+ actionCrossTypeUnionSchema,
3
+ actionTypeUnionSchema,
4
+ } from '@0xtorch/core'
2
5
  import { z } from 'zod'
3
6
 
4
- export const conditionComponentSchema = z.object({
5
- column: z.string(),
6
- pattern: z.union([
7
- // string
8
- z.string(),
9
- // number
10
- z.number(),
11
- // defined
12
- z.object({
13
- type: z.literal('defined'),
14
- }),
15
- // undefined
16
- z.object({
17
- type: z.literal('undefined'),
18
- }),
19
- // in
20
- z.object({
21
- type: z.literal('in'),
22
- values: z.array(z.union([z.string(), z.number()])),
23
- }),
24
- // not-in
25
- z.object({
26
- type: z.literal('not-in'),
27
- values: z.array(z.union([z.string(), z.number()])),
28
- }),
29
- ]),
30
- })
31
-
32
- export const columnComponentSchema = z.object({
33
- type: z.literal('column'),
34
- column: z.string(),
35
- })
7
+ const indexSchema = z.number().int().nonnegative()
36
8
 
37
- export const actionComponentSchema = z.object({
9
+ export const cellValueSchema = z.object({
10
+ type: z.literal('cell'),
38
11
  column: z.string(),
39
- patterns: z.record(actionTypeUnionSchema),
12
+ row: indexSchema.optional().transform((v) => v ?? 0),
40
13
  })
41
14
 
42
- const serviceComponentSchema = z.object({
15
+ export const serviceValueSchema = z.object({
43
16
  type: z.literal('service'),
44
17
  })
45
18
 
46
- export const textComponentSchema = z.union([
47
- // premitive string
19
+ export const simpleValueSchema = z.union([
48
20
  z.string(),
49
- // service
50
- serviceComponentSchema,
51
- // column
52
- columnComponentSchema,
21
+ cellValueSchema,
22
+ serviceValueSchema,
53
23
  ])
54
24
 
55
- export const nftComponentSchema = z.object({
56
- type: z.literal('nft'),
57
- id: z.array(textComponentSchema),
25
+ export const splitValueSchema = z.object({
26
+ type: z.literal('split'),
27
+ value: simpleValueSchema,
28
+ splitter: z.string(),
29
+ index: indexSchema,
58
30
  })
59
31
 
60
- export const assetComponentSchema = z.union([
61
- // asset id を直接指定
62
- z.object({
63
- type: z.literal('custom'),
64
- assetType: z.union([
65
- z.literal('CryptoCurrency'),
66
- z.literal('FiatCurrency'),
67
- z.literal('Nft'),
68
- ]),
69
- assetId: z.string(),
70
- }),
71
- // column と一致する symbol を持つ時価総額最大の asset / symbolAssetMap に存在する symbol であればそちらを優先
72
- columnComponentSchema,
73
- // nft
74
- nftComponentSchema,
32
+ export const sliceValueSchema = z.object({
33
+ type: z.literal('slice'),
34
+ value: z.union([simpleValueSchema, splitValueSchema]),
35
+ start: z.number().int().optional(),
36
+ end: z.number().int().optional(),
37
+ })
38
+
39
+ export const mathValueSchema = z.object({
40
+ type: z.literal('math'),
41
+ values: z
42
+ .array(
43
+ z.union([
44
+ z.literal('+'),
45
+ z.literal('-'),
46
+ z.literal('*'),
47
+ z.literal('/'),
48
+ simpleValueSchema,
49
+ splitValueSchema,
50
+ sliceValueSchema,
51
+ ]),
52
+ )
53
+ .min(3),
54
+ })
55
+
56
+ export const joinValueSchema = z.object({
57
+ type: z.literal('join'),
58
+ values: z
59
+ .array(
60
+ z.union([
61
+ simpleValueSchema,
62
+ splitValueSchema,
63
+ sliceValueSchema,
64
+ mathValueSchema,
65
+ ]),
66
+ )
67
+ .min(1),
68
+ })
69
+
70
+ export const allValueSchema = z.union([
71
+ simpleValueSchema,
72
+ splitValueSchema,
73
+ sliceValueSchema,
74
+ mathValueSchema,
75
+ joinValueSchema,
75
76
  ])
76
77
 
77
- export const amountComponentSchema = z.union([
78
- /** column から値代入 / 絶対値で代入 */
78
+ export const patternSchema = z.union([
79
+ // string
79
80
  z.string(),
80
- /** 複数の column に四則演算追加 */
81
+ // defined
81
82
  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),
83
+ type: z.literal('defined'),
84
+ }),
85
+ // undefined
86
+ z.object({
87
+ type: z.literal('undefined'),
88
+ }),
89
+ // in
90
+ z.object({
91
+ type: z.literal('in'),
92
+ values: z.array(z.string()),
93
+ }),
94
+ // not-in
95
+ z.object({
96
+ type: z.literal('not-in'),
97
+ values: z.array(z.string()),
89
98
  }),
90
99
  ])
91
100
 
101
+ export const conditionSchema = z.object({
102
+ value: allValueSchema,
103
+ pattern: patternSchema,
104
+ })
105
+
106
+ export const targetConditionSchema = z.object({
107
+ column: z.string(),
108
+ pattern: patternSchema,
109
+ })
110
+
111
+ const amountTextSchema = z.object({
112
+ type: z.literal('text'),
113
+ value: allValueSchema,
114
+ })
115
+
116
+ const amountDecimalSchema = z.object({
117
+ type: z.literal('decimal'),
118
+ value: allValueSchema,
119
+ decimals: indexSchema,
120
+ })
121
+
122
+ export const amountSchema = z.union([amountTextSchema, amountDecimalSchema])
123
+
124
+ /** value param から取得した値を symbol として持つ時価総額最大の crypto, fiat を取得 / symbolAssetMap に一致する値があればそれを優先取得 */
125
+ export const assetSymbolSchema = z.object({
126
+ type: z.literal('symbol'),
127
+ value: allValueSchema,
128
+ })
129
+
130
+ /** value param から取得した値を splitter で type と id に分割して asset を生成 */
131
+ export const assetIdSchema = z.object({
132
+ type: z.literal('id'),
133
+ value: allValueSchema,
134
+ splitter: z.string(),
135
+ })
136
+
137
+ export const assetSchema = z.union([assetSymbolSchema, assetIdSchema])
138
+
92
139
  export const transferComponentSchema = z.object({
93
- direction: z.union([z.literal('in'), z.literal('out')]),
94
- amount: amountComponentSchema,
95
- asset: assetComponentSchema,
140
+ /** 全ての target condition に合致する行毎に transfer 生成 */
141
+ target: z.array(targetConditionSchema).min(1).optional(),
142
+ direction: z.union([z.literal('in'), z.literal('out'), z.literal('none')]),
143
+ from: allValueSchema.optional(),
144
+ to: allValueSchema.optional(),
145
+ amount: amountSchema,
146
+ asset: assetSchema,
96
147
  })
97
148
 
98
- // 同一の row でも、 action type によって処理が変わるのでは?
99
- // 条件を提示して、その条件に合致した場合はこの action を生成する的なルールにした方が良いかも
149
+ const generatorSchema = z.object({
150
+ type: actionTypeUnionSchema,
151
+ source: allValueSchema,
152
+ timestamp: cellValueSchema,
153
+ comment: allValueSchema.optional(),
154
+ app: allValueSchema.optional(),
155
+ crossId: allValueSchema.optional(),
156
+ crossType: actionCrossTypeUnionSchema.optional(),
157
+ loanId: allValueSchema.optional(),
158
+ target: assetIdSchema.optional(),
159
+ transfers: z.array(transferComponentSchema),
160
+ })
100
161
 
101
162
  export const parserSchema = z.object({
102
- conditions: z.array(conditionComponentSchema),
103
- action: actionTypeUnionSchema,
104
- /** 指定した値群を結合して作成したテキストを代入 */
105
- source: z.array(textComponentSchema),
106
- /** 指定した column の値を timestamp に代入 */
107
- timestamp: z.string(),
108
- /** 指定した値群を結合して作成したテキストを代入 */
109
- comment: z.array(textComponentSchema).optional(),
110
- transfers: z.array(transferComponentSchema),
111
- /** 指定した値群を結合して作成したテキストを代入 */
112
- crossId: z.array(textComponentSchema).optional(),
113
- crossType: z
114
- .union([z.literal('start'), z.literal('middle'), z.literal('end')])
115
- .optional(),
116
- /** 指定した値群を結合して作成したテキストを代入 */
117
- loanId: z.array(textComponentSchema).optional(),
118
- target: nftComponentSchema.optional(),
163
+ conditions: z.array(conditionSchema),
164
+ generators: z.array(generatorSchema),
119
165
  })
120
166
 
121
- export const parsersSchema = z.array(parserSchema)
167
+ export const parsersWithKeySchema = z.object({
168
+ /** 指定した columns の値が一致する行を統合して分析 */
169
+ key: z.array(z.string()).min(1).optional(),
170
+ parsers: z.array(parserSchema),
171
+ })
package/tests/assets.ts CHANGED
@@ -14,7 +14,7 @@ export const testCryptoCurrencies: CryptoCurrency[] = [
14
14
  marketCapUsd: 1_205_095_120_187,
15
15
  },
16
16
  priceDatasourceId: undefined,
17
- updatedAt: Date.now(),
17
+ updatedAt: 1_715_490_000_000,
18
18
  },
19
19
  {
20
20
  ...ethereum,
@@ -22,6 +22,7 @@ export const testCryptoCurrencies: CryptoCurrency[] = [
22
22
  ...ethereum.market,
23
23
  marketCapUsd: 352_453_045_218,
24
24
  },
25
+ updatedAt: 1_715_490_000_000,
25
26
  },
26
27
  ]
27
28
 
@@ -2,16 +2,6 @@
2
2
  2021/07/28 23:36:54,入金,,,JPY,260000.0,,,,,,,,,関東財務局長 第00014号,コインチェック株式会社,
3
3
  2021/07/28 23:38:14,購入,自己,ETH/JPY,ETH,0.99656,JPY,260000.0,260000.0,260897.48735651,,,,,関東財務局長 第00014号,コインチェック株式会社,
4
4
  2021/07/28 23:51:17,送付,,,,,ETH,0.99156,,,ETH,0.005,,0xF9b5E1202AC637BcfED4EEd026086531c5847D00,関東財務局長 第00014号,コインチェック株式会社,
5
- 2021/07/31 10:16:18,入金,,,JPY,2500000.0,,,,,,,,,関東財務局長 第00014号,コインチェック株式会社,
6
- 2021/07/31 11:08:48,購入,自己,ETH/JPY,ETH,8.9589,JPY,2500000.0,2500000.0,279052.11577314,,,,,関東財務局長 第00014号,コインチェック株式会社,
7
- 2021/07/31 11:20:59,送付,,,,,ETH,8.9539,,,ETH,0.005,,0xF9b5E1202AC637BcfED4EEd026086531c5847D00,関東財務局長 第00014号,コインチェック株式会社,
8
- 2021/10/04 10:25:54,入金,,,JPY,5000000.0,,,,,,,,,関東財務局長 第00014号,コインチェック株式会社,
9
- 2021/10/04 10:46:17,購入,媒介,BTC/JPY,BTC,0.05229,JPY,277980.01938,277980.01938,5316122.0,,,,,関東財務局長 第00014号,コインチェック株式会社,
10
5
  2021/10/04 10:46:17,購入,媒介,BTC/JPY,BTC,0.01,JPY,53161.45,53161.45,5316145.0,,,,,関東財務局長 第00014号,コインチェック株式会社,
11
- 2021/10/04 10:46:17,購入,媒介,BTC/JPY,BTC,0.41386996,JPY,2200430.6937312,2200430.6937312,5316720.0,,,,,関東財務局長 第00014号,コインチェック株式会社,
12
6
  2021/10/04 10:46:17,購入,媒介,BTC/JPY,BTC,0.03,JPY,159510.0,159510.0,5317000.0,,,,,関東財務局長 第00014号,コインチェック株式会社,
13
- 2021/10/04 10:46:17,購入,媒介,BTC/JPY,BTC,0.05126,JPY,272549.42,272549.42,5317000.0,,,,,関東財務局長 第00014号,コインチェック株式会社,
14
- 2021/10/04 10:46:17,購入,媒介,BTC/JPY,BTC,0.05631,JPY,299400.27,299400.27,5317000.0,,,,,関東財務局長 第00014号,コインチェック株式会社,
15
- 2021/10/04 10:46:17,購入,媒介,BTC/JPY,BTC,0.32664995,JPY,1736797.78415,1736797.78415,5317000.0,,,,,関東財務局長 第00014号,コインチェック株式会社,
16
7
  2021/10/04 11:46:50,送付,,,,,BTC,0.001,,,BTC,0.0005,,1Ni8NuJrBmRvpctKcd516GYpUuxNoEis4R,関東財務局長 第00014号,コインチェック株式会社,
17
- 2021/10/04 11:58:31,送付,,,,,BTC,0.93837991,,,BTC,0.0005,,1Ni8NuJrBmRvpctKcd516GYpUuxNoEis4R,関東財務局長 第00014号,コインチェック株式会社,
@@ -18,120 +18,210 @@ export const coincheckStandardFormat = {
18
18
  送付先アドレス: ['string'],
19
19
  備考: ['string'],
20
20
  },
21
- parsers: [
22
- {
23
- conditions: [
24
- {
25
- column: '取引種別',
26
- pattern: {
27
- type: 'in',
28
- values: ['購入', '売却', '交換'],
21
+ parser: {
22
+ parsers: [
23
+ {
24
+ conditions: [
25
+ {
26
+ value: {
27
+ type: 'cell',
28
+ column: '取引種別',
29
+ row: 0,
30
+ },
31
+ pattern: {
32
+ type: 'in',
33
+ values: ['購入', '売却', '交換'],
34
+ },
29
35
  },
30
- },
31
- {
32
- column: '増加通貨名',
33
- pattern: {
34
- type: 'defined',
36
+ {
37
+ value: {
38
+ type: 'cell',
39
+ column: '増加通貨名',
40
+ row: 0,
41
+ },
42
+ pattern: {
43
+ type: 'defined',
44
+ },
35
45
  },
36
- },
37
- {
38
- column: '増加数量',
39
- pattern: {
40
- type: 'defined',
46
+ {
47
+ value: {
48
+ type: 'cell',
49
+ column: '増加数量',
50
+ row: 0,
51
+ },
52
+ pattern: {
53
+ type: 'defined',
54
+ },
41
55
  },
42
- },
43
- {
44
- column: '減少通貨名',
45
- pattern: {
46
- type: 'defined',
56
+ {
57
+ value: {
58
+ type: 'cell',
59
+ column: '減少通貨名',
60
+ row: 0,
61
+ },
62
+ pattern: {
63
+ type: 'defined',
64
+ },
47
65
  },
48
- },
49
- {
50
- column: '減少数量',
51
- pattern: {
52
- type: 'defined',
66
+ {
67
+ value: {
68
+ type: 'cell',
69
+ column: '減少数量',
70
+ row: 0,
71
+ },
72
+ pattern: {
73
+ type: 'defined',
74
+ },
53
75
  },
54
- },
55
- ],
56
- action: 'trade',
57
- source: [
58
- 'coincheck_',
59
- {
60
- type: 'column',
61
- column: '取引日時',
62
- },
63
- ],
64
- timestamp: '取引日時',
65
- comment: [
66
- {
67
- type: 'column',
68
- column: '備考',
69
- },
70
- ],
71
- transfers: [
72
- {
73
- direction: 'in',
74
- amount: '増加数量',
75
- asset: {
76
- type: 'column',
77
- column: '増加通貨名',
76
+ ],
77
+ generators: [
78
+ {
79
+ type: 'trade',
80
+ source: {
81
+ type: 'join',
82
+ values: [
83
+ { type: 'service' },
84
+ '_',
85
+ {
86
+ type: 'cell',
87
+ column: '取引日時',
88
+ row: 0,
89
+ },
90
+ ],
91
+ },
92
+ timestamp: {
93
+ type: 'cell',
94
+ column: '取引日時',
95
+ row: 0,
96
+ },
97
+ comment: {
98
+ type: 'cell',
99
+ column: '備考',
100
+ row: 0,
101
+ },
102
+ transfers: [
103
+ {
104
+ direction: 'in',
105
+ amount: {
106
+ type: 'text',
107
+ value: {
108
+ type: 'cell',
109
+ column: '増加数量',
110
+ row: 0,
111
+ },
112
+ },
113
+ asset: {
114
+ type: 'symbol',
115
+ value: {
116
+ type: 'cell',
117
+ column: '増加通貨名',
118
+ row: 0,
119
+ },
120
+ },
121
+ },
122
+ {
123
+ direction: 'out',
124
+ amount: {
125
+ type: 'text',
126
+ value: {
127
+ type: 'cell',
128
+ column: '減少数量',
129
+ row: 0,
130
+ },
131
+ },
132
+ asset: {
133
+ type: 'symbol',
134
+ value: {
135
+ type: 'cell',
136
+ column: '減少通貨名',
137
+ row: 0,
138
+ },
139
+ },
140
+ },
141
+ ],
78
142
  },
79
- },
80
- {
81
- direction: 'out',
82
- amount: '減少数量',
83
- asset: {
84
- type: 'column',
85
- column: '減少通貨名',
143
+ ],
144
+ },
145
+ {
146
+ conditions: [
147
+ {
148
+ value: {
149
+ type: 'cell',
150
+ column: '取引種別',
151
+ row: 0,
152
+ },
153
+ pattern: '送付',
86
154
  },
87
- },
88
- ],
89
- },
90
- {
91
- conditions: [
92
- {
93
- column: '取引種別',
94
- pattern: '送付',
95
- },
96
- {
97
- column: '手数料通貨',
98
- pattern: {
99
- type: 'defined',
155
+ {
156
+ value: {
157
+ type: 'cell',
158
+ column: '手数料通貨',
159
+ row: 0,
160
+ },
161
+ pattern: {
162
+ type: 'defined',
163
+ },
100
164
  },
101
- },
102
- {
103
- column: '手数料数量',
104
- pattern: {
105
- type: 'defined',
165
+ {
166
+ value: {
167
+ type: 'cell',
168
+ column: '手数料数量',
169
+ row: 0,
170
+ },
171
+ pattern: {
172
+ type: 'defined',
173
+ },
106
174
  },
107
- },
108
- ],
109
- action: 'fee',
110
- source: [
111
- 'coincheck_',
112
- {
113
- type: 'column',
114
- column: '取引日時',
115
- },
116
- ],
117
- timestamp: '取引日時',
118
- comment: [
119
- 'Transfer to ',
120
- {
121
- type: 'column',
122
- column: '送付先アドレス',
123
- },
124
- ],
125
- transfers: [
126
- {
127
- direction: 'out',
128
- amount: '手数料数量',
129
- asset: {
130
- type: 'column',
131
- column: '手数料通貨',
175
+ ],
176
+ generators: [
177
+ {
178
+ type: 'fee',
179
+ source: {
180
+ type: 'join',
181
+ values: [
182
+ { type: 'service' },
183
+ '_',
184
+ {
185
+ type: 'cell',
186
+ column: '取引日時',
187
+ row: 0,
188
+ },
189
+ ],
190
+ },
191
+ timestamp: {
192
+ type: 'cell',
193
+ column: '取引日時',
194
+ row: 0,
195
+ },
196
+ comment: {
197
+ type: 'cell',
198
+ column: '備考',
199
+ row: 0,
200
+ },
201
+ transfers: [
202
+ {
203
+ direction: 'out',
204
+ amount: {
205
+ type: 'text',
206
+ value: {
207
+ type: 'cell',
208
+ column: '手数料数量',
209
+ row: 0,
210
+ },
211
+ },
212
+ asset: {
213
+ type: 'symbol',
214
+ value: {
215
+ type: 'cell',
216
+ column: '手数料通貨',
217
+ row: 0,
218
+ },
219
+ },
220
+ },
221
+ ],
132
222
  },
133
- },
134
- ],
135
- },
136
- ],
223
+ ],
224
+ },
225
+ ],
226
+ },
137
227
  } satisfies CsvFormat
package/types.ts CHANGED
@@ -2,7 +2,7 @@ import type { z } from 'zod'
2
2
  import type { csvFormatSchema } from './schemas'
3
3
  import type { formatterSchema } from './schemas/formatter'
4
4
  import type { formatterValueSchema } from './schemas/formatterTypes'
5
- import type { parserSchema } from './schemas/parser'
5
+ import type { parsersWithKeySchema } from './schemas/parser'
6
6
 
7
7
  export type CsvFormat = z.infer<typeof csvFormatSchema>
8
8
 
@@ -14,4 +14,4 @@ export type FormattedRow = {
14
14
  [column: string]: FormatterValue
15
15
  }
16
16
 
17
- export type Parser = z.infer<typeof parserSchema>
17
+ export type Parser = z.infer<typeof parsersWithKeySchema>
@@ -1 +0,0 @@
1
- {"version":3,"file":"parseCsvFileToAccountActions.js","sourceRoot":"","sources":["../parseCsvFileToAccountActions.ts"],"names":[],"mappings":";;;AAAA,wCAMsB;AACtB,mDAA+C;AAC/C,6DAAyD;AACzD,mEAA+D;AAC/D,iDAA6C;AAatC,MAAM,4BAA4B,GAAG,KAAK,EAAE,EACjD,IAAI,EACJ,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,EACvD,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,IAAI,EACJ,wBAAwB,GACe,EAA8B,EAAE;IACvE,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,6CAAqB,EAAC;QACpC,IAAI;QACJ,OAAO;QACP,OAAO;QACP,cAAc;QACd,SAAS;QACT,gBAAgB;QAChB,cAAc;KACf,CAAC,CAAA;IACF,OAAO,MAAM,IAAA,sBAAe,EAAC;QAC3B,UAAU,EAAE,wBAAwB;QACpC,OAAO;QACP,IAAI;KACL,CAAC,CAAA;AACJ,CAAC,CAAA;AA5BY,QAAA,4BAA4B,gCA4BxC"}