@0xtorch/csv 0.0.21 → 0.0.23

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.
@@ -22,16 +22,16 @@ const isMatchPattern = ({ value, pattern, }) => {
22
22
  return !pattern.values.includes(trimmedValue);
23
23
  }
24
24
  case 'positive': {
25
- return Number(trimmedValue) > 0;
25
+ return Number(trimmedValue.replaceAll('"', '')) > 0;
26
26
  }
27
27
  case 'negative': {
28
- return Number(trimmedValue) < 0;
28
+ return Number(trimmedValue.replaceAll('"', '')) < 0;
29
29
  }
30
30
  case 'nonpositive': {
31
- return Number(trimmedValue) <= 0;
31
+ return Number(trimmedValue.replaceAll('"', '')) <= 0;
32
32
  }
33
33
  case 'nonnegative': {
34
- return Number(trimmedValue) >= 0;
34
+ return Number(trimmedValue.replaceAll('"', '')) >= 0;
35
35
  }
36
36
  }
37
37
  };
@@ -1 +1 @@
1
- {"version":3,"file":"pattern.js","sourceRoot":"","sources":["../../parseRowsToActions/pattern.ts"],"names":[],"mappings":";;;AAAA,wCAAyC;AAIlC,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,IAAA,gBAAS,EAAC,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,IAAA,gBAAS,EAAC,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;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,OAAO,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;QACjC,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,OAAO,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;QACjC,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QAClC,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QAClC,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AA1CY,QAAA,cAAc,kBA0C1B"}
1
+ {"version":3,"file":"pattern.js","sourceRoot":"","sources":["../../parseRowsToActions/pattern.ts"],"names":[],"mappings":";;;AAAA,wCAAyC;AAIlC,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,IAAA,gBAAS,EAAC,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,IAAA,gBAAS,EAAC,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;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,OAAO,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAA;QACrD,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,OAAO,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAA;QACrD,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,OAAO,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;QACtD,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,OAAO,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;QACtD,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AA1CY,QAAA,cAAc,kBA0C1B"}
@@ -23,11 +23,11 @@ exports.iso8601TextSchema = zod_1.z
23
23
  .transform((v) => new Date(v).getTime());
24
24
  exports.iso8601JpTextSchema = zod_1.z
25
25
  .string()
26
- .regex(/^\d{4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}:\d{1,2}$/)
26
+ .regex(/^\d{4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}(:\d{1,2})?(\.\d{1,3})?$/)
27
27
  .transform((v) => new Date(`${v}+09:00`).getTime());
28
28
  exports.datetimeJpTextSchema = zod_1.z
29
29
  .string()
30
- .regex(/^\d{4}\/\d{1,2}\/\d{1,2} \d{1,2}:\d{1,2}(:\d{1,2})?$/)
30
+ .regex(/^\d{4}\/\d{1,2}\/\d{1,2} \d{1,2}:\d{1,2}(:\d{1,2})?(\.\d{1,3})?$/)
31
31
  .transform((v) => new Date(`${v}+09:00`).getTime());
32
32
  exports.formatterValueSchema = zod_1.z.union([
33
33
  exports.blankTextSchema,
@@ -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,oBAAoB,CAAC;KAC3B,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,8BAAgB,EAAC,CAAC,CAAC,CAAC,CAAA;AAE3B,QAAA,4BAA4B,GAAG,OAAC;KAC1C,MAAM,EAAE;KACR,KAAK,CAAC,kBAAkB,CAAC;KACzB,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,8BAAgB,EAAC,CAAC,CAAC,CAAC,CAAA;AAE3B,QAAA,4BAA4B,GAAG,OAAC;KAC1C,MAAM,EAAE;KACR,KAAK,CAAC,mBAAmB,CAAC;KAC1B,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,8BAAgB,EAAC,CAAC,CAAC,CAAC,CAAA;AAE3B,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,iDAAiD,CAAC;KACxD,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;AAGxC,QAAA,oBAAoB,GAAG,OAAC;KAClC,MAAM,EAAE;KACR,KAAK,CAAC,sDAAsD,CAAC;KAC7D,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,oBAAoB,CAAC;KAC3B,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,8BAAgB,EAAC,CAAC,CAAC,CAAC,CAAA;AAE3B,QAAA,4BAA4B,GAAG,OAAC;KAC1C,MAAM,EAAE;KACR,KAAK,CAAC,kBAAkB,CAAC;KACzB,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,8BAAgB,EAAC,CAAC,CAAC,CAAC,CAAA;AAE3B,QAAA,4BAA4B,GAAG,OAAC;KAC1C,MAAM,EAAE;KACR,KAAK,CAAC,mBAAmB,CAAC;KAC1B,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,8BAAgB,EAAC,CAAC,CAAC,CAAC,CAAA;AAE3B,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,gEAAgE,CAAC;KACvE,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;AAGxC,QAAA,oBAAoB,GAAG,OAAC;KAClC,MAAM,EAAE;KACR,KAAK,CAAC,kEAAkE,CAAC;KACzE,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"}
@@ -19,16 +19,16 @@ export const isMatchPattern = ({ value, pattern, }) => {
19
19
  return !pattern.values.includes(trimmedValue);
20
20
  }
21
21
  case 'positive': {
22
- return Number(trimmedValue) > 0;
22
+ return Number(trimmedValue.replaceAll('"', '')) > 0;
23
23
  }
24
24
  case 'negative': {
25
- return Number(trimmedValue) < 0;
25
+ return Number(trimmedValue.replaceAll('"', '')) < 0;
26
26
  }
27
27
  case 'nonpositive': {
28
- return Number(trimmedValue) <= 0;
28
+ return Number(trimmedValue.replaceAll('"', '')) <= 0;
29
29
  }
30
30
  case 'nonnegative': {
31
- return Number(trimmedValue) >= 0;
31
+ return Number(trimmedValue.replaceAll('"', '')) >= 0;
32
32
  }
33
33
  }
34
34
  };
@@ -1 +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;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,OAAO,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;QACjC,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,OAAO,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;QACjC,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QAClC,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QAClC,CAAC;IACH,CAAC;AACH,CAAC,CAAA"}
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;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,OAAO,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAA;QACrD,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,OAAO,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAA;QACrD,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,OAAO,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;QACtD,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,OAAO,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;QACtD,CAAC;IACH,CAAC;AACH,CAAC,CAAA"}
@@ -20,12 +20,12 @@ export const iso8601TextSchema = z
20
20
  .transform((v) => new Date(v).getTime());
21
21
  export const iso8601JpTextSchema = z
22
22
  .string()
23
- .regex(/^\d{4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}:\d{1,2}$/)
23
+ .regex(/^\d{4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}(:\d{1,2})?(\.\d{1,3})?$/)
24
24
  .transform((v) => new Date(`${v}+09:00`).getTime());
25
25
  // TODO timezone 追加型 date を導入する
26
26
  export const datetimeJpTextSchema = z
27
27
  .string()
28
- .regex(/^\d{4}\/\d{1,2}\/\d{1,2} \d{1,2}:\d{1,2}(:\d{1,2})?$/)
28
+ .regex(/^\d{4}\/\d{1,2}\/\d{1,2} \d{1,2}:\d{1,2}(:\d{1,2})?(\.\d{1,3})?$/)
29
29
  .transform((v) => new Date(`${v}+09:00`).getTime());
30
30
  export const formatterValueSchema = z.union([
31
31
  blankTextSchema,
@@ -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,oBAAoB,CAAC;KAC3B,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;AAExC,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC;KAC1C,MAAM,EAAE;KACR,KAAK,CAAC,kBAAkB,CAAC;KACzB,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;AAExC,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC;KAC1C,MAAM,EAAE;KACR,KAAK,CAAC,mBAAmB,CAAC;KAC1B,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;AAExC,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,iDAAiD,CAAC;KACxD,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;AAErD,+BAA+B;AAC/B,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAClC,MAAM,EAAE;KACR,KAAK,CAAC,sDAAsD,CAAC;KAC7D,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,oBAAoB,CAAC;KAC3B,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;AAExC,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC;KAC1C,MAAM,EAAE;KACR,KAAK,CAAC,kBAAkB,CAAC;KACzB,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;AAExC,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC;KAC1C,MAAM,EAAE;KACR,KAAK,CAAC,mBAAmB,CAAC;KAC1B,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;AAExC,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,gEAAgE,CAAC;KACvE,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;AAErD,+BAA+B;AAC/B,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAClC,MAAM,EAAE;KACR,KAAK,CAAC,kEAAkE,CAAC;KACzE,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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@0xtorch/csv",
3
- "version": "0.0.21",
3
+ "version": "0.0.23",
4
4
  "description": "Cryptorch CSV extension",
5
5
  "keywords": [
6
6
  "cryptorch",
@@ -32,16 +32,16 @@ export const isMatchPattern = ({
32
32
  return !pattern.values.includes(trimmedValue)
33
33
  }
34
34
  case 'positive': {
35
- return Number(trimmedValue) > 0
35
+ return Number(trimmedValue.replaceAll('"', '')) > 0
36
36
  }
37
37
  case 'negative': {
38
- return Number(trimmedValue) < 0
38
+ return Number(trimmedValue.replaceAll('"', '')) < 0
39
39
  }
40
40
  case 'nonpositive': {
41
- return Number(trimmedValue) <= 0
41
+ return Number(trimmedValue.replaceAll('"', '')) <= 0
42
42
  }
43
43
  case 'nonnegative': {
44
- return Number(trimmedValue) >= 0
44
+ return Number(trimmedValue.replaceAll('"', '')) >= 0
45
45
  }
46
46
  }
47
47
  }
@@ -29,13 +29,13 @@ export const iso8601TextSchema = z
29
29
 
30
30
  export const iso8601JpTextSchema = z
31
31
  .string()
32
- .regex(/^\d{4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}:\d{1,2}$/)
32
+ .regex(/^\d{4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}(:\d{1,2})?(\.\d{1,3})?$/)
33
33
  .transform((v) => new Date(`${v}+09:00`).getTime())
34
34
 
35
35
  // TODO timezone 追加型 date を導入する
36
36
  export const datetimeJpTextSchema = z
37
37
  .string()
38
- .regex(/^\d{4}\/\d{1,2}\/\d{1,2} \d{1,2}:\d{1,2}(:\d{1,2})?$/)
38
+ .regex(/^\d{4}\/\d{1,2}\/\d{1,2} \d{1,2}:\d{1,2}(:\d{1,2})?(\.\d{1,3})?$/)
39
39
  .transform((v) => new Date(`${v}+09:00`).getTime())
40
40
 
41
41
  export const formatterValueSchema = z.union([
@@ -0,0 +1,5 @@
1
+ 注文id,取引id,通貨ペア,タイプ,売/買,数量,価格,手数料,m/t,取引日時
2
+ 38358369122,1346558054,eth_jpy,limit,sell,1.61890000,396100.00000000,-128.2492580000000000000000,maker,2024-08-26 21:12:26.987
3
+ 38358369122,1346558052,eth_jpy,limit,sell,1.25950000,396100.00000000,-99.7775900000000000000000,maker,2024-08-26 21:12:26.555
4
+ 33885818016,1313923681,eth_jpy,limit,sell,0.07800000,518645.00000000,48.5451720000000000000000,taker,2024-02-29 18:47:09.078
5
+ 32750989897,1304559399,btc_jpy,limit,buy,0.03740000,6660910.00000000,298.9416408000000000000000,taker,2024-01-10 15:09:25.43
@@ -0,0 +1,264 @@
1
+ import type { CsvFormat } from '../types'
2
+
3
+ export const bitbankFormat = {
4
+ id: 'bitbank-spot-trade',
5
+ service: 'bitbank',
6
+ formatter: {
7
+ 取引id: ['string'],
8
+ 通貨ペア: ['string'],
9
+ '売/買': ['string'],
10
+ 数量: ['big-decimal-positive'],
11
+ 価格: ['big-decimal-positive'],
12
+ 手数料: ['big-decimal'],
13
+ 取引日時: ['iso8601-jp'],
14
+ },
15
+ parser: {
16
+ parsers: [
17
+ {
18
+ conditions: [
19
+ {
20
+ value: {
21
+ type: 'cell',
22
+ column: '売/買',
23
+ row: 0,
24
+ },
25
+ pattern: {
26
+ type: 'in',
27
+ values: ['buy', 'sell'],
28
+ },
29
+ },
30
+ ],
31
+ generators: [
32
+ {
33
+ type: 'trade',
34
+ source: {
35
+ type: 'join',
36
+ values: [
37
+ { type: 'service' },
38
+ '_spot-trade_',
39
+ {
40
+ type: 'cell',
41
+ column: '取引id',
42
+ row: 0,
43
+ },
44
+ ],
45
+ },
46
+ timestamp: {
47
+ type: 'cell',
48
+ column: '取引日時',
49
+ row: 0,
50
+ },
51
+ transfers: [
52
+ {
53
+ target: [
54
+ {
55
+ column: '売/買',
56
+ pattern: 'buy',
57
+ },
58
+ ],
59
+ direction: 'in',
60
+ amount: {
61
+ type: 'text',
62
+ value: {
63
+ type: 'cell',
64
+ column: '数量',
65
+ row: 0,
66
+ },
67
+ },
68
+ asset: {
69
+ type: 'symbol',
70
+ value: {
71
+ type: 'split',
72
+ value: {
73
+ type: 'cell',
74
+ column: '通貨ペア',
75
+ row: 0,
76
+ },
77
+ splitter: '_',
78
+ index: 0,
79
+ },
80
+ },
81
+ },
82
+ {
83
+ target: [
84
+ {
85
+ column: '売/買',
86
+ pattern: 'sell',
87
+ },
88
+ ],
89
+ direction: 'out',
90
+ amount: {
91
+ type: 'text',
92
+ value: {
93
+ type: 'cell',
94
+ column: '数量',
95
+ row: 0,
96
+ },
97
+ },
98
+ asset: {
99
+ type: 'symbol',
100
+ value: {
101
+ type: 'split',
102
+ value: {
103
+ type: 'cell',
104
+ column: '通貨ペア',
105
+ row: 0,
106
+ },
107
+ splitter: '_',
108
+ index: 0,
109
+ },
110
+ },
111
+ },
112
+ {
113
+ target: [
114
+ {
115
+ column: '売/買',
116
+ pattern: 'buy',
117
+ },
118
+ ],
119
+ direction: 'out',
120
+ amount: {
121
+ type: 'text',
122
+ value: {
123
+ type: 'math',
124
+ values: [
125
+ {
126
+ type: 'cell',
127
+ column: '数量',
128
+ row: 0,
129
+ },
130
+ '*',
131
+ {
132
+ type: 'cell',
133
+ column: '価格',
134
+ row: 0,
135
+ },
136
+ ],
137
+ },
138
+ },
139
+ asset: {
140
+ type: 'symbol',
141
+ value: {
142
+ type: 'split',
143
+ value: {
144
+ type: 'cell',
145
+ column: '通貨ペア',
146
+ row: 0,
147
+ },
148
+ splitter: '_',
149
+ index: 1,
150
+ },
151
+ },
152
+ },
153
+ {
154
+ target: [
155
+ {
156
+ column: '売/買',
157
+ pattern: 'sell',
158
+ },
159
+ ],
160
+ direction: 'in',
161
+ amount: {
162
+ type: 'text',
163
+ value: {
164
+ type: 'math',
165
+ values: [
166
+ {
167
+ type: 'cell',
168
+ column: '数量',
169
+ row: 0,
170
+ },
171
+ '*',
172
+ {
173
+ type: 'cell',
174
+ column: '価格',
175
+ row: 0,
176
+ },
177
+ ],
178
+ },
179
+ },
180
+ asset: {
181
+ type: 'symbol',
182
+ value: {
183
+ type: 'split',
184
+ value: {
185
+ type: 'cell',
186
+ column: '通貨ペア',
187
+ row: 0,
188
+ },
189
+ splitter: '_',
190
+ index: 1,
191
+ },
192
+ },
193
+ },
194
+ {
195
+ target: [
196
+ {
197
+ column: '手数料',
198
+ pattern: {
199
+ type: 'positive',
200
+ },
201
+ },
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: 'split',
216
+ value: {
217
+ type: 'cell',
218
+ column: '通貨ペア',
219
+ row: 0,
220
+ },
221
+ splitter: '_',
222
+ index: 1,
223
+ },
224
+ },
225
+ },
226
+ {
227
+ target: [
228
+ {
229
+ column: '手数料',
230
+ pattern: {
231
+ type: 'negative',
232
+ },
233
+ },
234
+ ],
235
+ direction: 'in',
236
+ amount: {
237
+ type: 'text',
238
+ value: {
239
+ type: 'cell',
240
+ column: '手数料',
241
+ row: 0,
242
+ },
243
+ },
244
+ asset: {
245
+ type: 'symbol',
246
+ value: {
247
+ type: 'split',
248
+ value: {
249
+ type: 'cell',
250
+ column: '通貨ペア',
251
+ row: 0,
252
+ },
253
+ splitter: '_',
254
+ index: 1,
255
+ },
256
+ },
257
+ },
258
+ ],
259
+ },
260
+ ],
261
+ },
262
+ ],
263
+ },
264
+ } satisfies CsvFormat