@duplojs/utils 1.0.7 → 1.1.7

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 (294) hide show
  1. package/dist/array/coalescing.cjs +9 -0
  2. package/dist/array/coalescing.d.ts +3 -0
  3. package/dist/array/coalescing.mjs +7 -0
  4. package/dist/array/index.cjs +2 -0
  5. package/dist/array/index.d.ts +1 -0
  6. package/dist/array/index.mjs +1 -0
  7. package/dist/array/map.cjs +1 -1
  8. package/dist/array/map.d.ts +2 -2
  9. package/dist/array/map.mjs +1 -1
  10. package/dist/array/reduce.cjs +1 -1
  11. package/dist/array/reduce.mjs +1 -1
  12. package/dist/array/types/ArrayCoalescing.d.ts +1 -0
  13. package/dist/array/types/index.d.ts +1 -0
  14. package/dist/common/escapeRegExp.cjs +2 -2
  15. package/dist/common/escapeRegExp.d.ts +1 -1
  16. package/dist/common/escapeRegExp.mjs +2 -2
  17. package/dist/common/index.d.ts +2 -0
  18. package/dist/common/instanceOf.cjs +20 -0
  19. package/dist/common/instanceOf.d.ts +3 -0
  20. package/dist/common/instanceOf.mjs +18 -0
  21. package/dist/common/kind.cjs +38 -1
  22. package/dist/common/kind.d.ts +21 -3
  23. package/dist/common/kind.mjs +38 -2
  24. package/dist/common/memo.cjs +16 -0
  25. package/dist/common/memo.d.ts +5 -0
  26. package/dist/common/memo.mjs +14 -0
  27. package/dist/common/simpleClone.cjs +2 -2
  28. package/dist/common/simpleClone.mjs +2 -2
  29. package/dist/common/types/anyConstructor.d.ts +1 -0
  30. package/dist/common/types/anyPredicate.d.ts +1 -0
  31. package/dist/common/types/index.d.ts +2 -0
  32. package/dist/common/types/objectEntry.d.ts +1 -1
  33. package/dist/common/types/predicate.d.ts +1 -0
  34. package/dist/common/types/unionContain.d.ts +1 -1
  35. package/dist/dataParser/base.cjs +116 -0
  36. package/dist/dataParser/base.d.ts +44 -0
  37. package/dist/dataParser/base.mjs +109 -0
  38. package/dist/dataParser/baseExtended.cjs +55 -0
  39. package/dist/dataParser/baseExtended.d.ts +45 -0
  40. package/dist/dataParser/baseExtended.mjs +52 -0
  41. package/dist/dataParser/error.cjs +54 -0
  42. package/dist/dataParser/error.d.ts +31 -0
  43. package/dist/dataParser/error.mjs +41 -0
  44. package/dist/dataParser/extended/array.cjs +20 -0
  45. package/dist/dataParser/extended/array.d.ts +21 -0
  46. package/dist/dataParser/extended/array.mjs +18 -0
  47. package/dist/dataParser/extended/bigint.cjs +20 -0
  48. package/dist/dataParser/extended/bigint.d.ts +19 -0
  49. package/dist/dataParser/extended/bigint.mjs +18 -0
  50. package/dist/dataParser/extended/boolean.cjs +11 -0
  51. package/dist/dataParser/extended/boolean.d.ts +9 -0
  52. package/dist/dataParser/extended/boolean.mjs +9 -0
  53. package/dist/dataParser/extended/coerce/bigint.cjs +13 -0
  54. package/dist/dataParser/extended/coerce/bigint.d.ts +7 -0
  55. package/dist/dataParser/extended/coerce/bigint.mjs +11 -0
  56. package/dist/dataParser/extended/coerce/boolean.cjs +13 -0
  57. package/dist/dataParser/extended/coerce/boolean.d.ts +7 -0
  58. package/dist/dataParser/extended/coerce/boolean.mjs +11 -0
  59. package/dist/dataParser/extended/coerce/empty.cjs +13 -0
  60. package/dist/dataParser/extended/coerce/empty.d.ts +7 -0
  61. package/dist/dataParser/extended/coerce/empty.mjs +11 -0
  62. package/dist/dataParser/extended/coerce/index.cjs +17 -0
  63. package/dist/dataParser/extended/coerce/index.d.ts +6 -0
  64. package/dist/dataParser/extended/coerce/index.mjs +6 -0
  65. package/dist/dataParser/extended/coerce/nil.cjs +13 -0
  66. package/dist/dataParser/extended/coerce/nil.d.ts +7 -0
  67. package/dist/dataParser/extended/coerce/nil.mjs +11 -0
  68. package/dist/dataParser/extended/coerce/number.cjs +13 -0
  69. package/dist/dataParser/extended/coerce/number.d.ts +7 -0
  70. package/dist/dataParser/extended/coerce/number.mjs +11 -0
  71. package/dist/dataParser/extended/coerce/string.cjs +13 -0
  72. package/dist/dataParser/extended/coerce/string.d.ts +7 -0
  73. package/dist/dataParser/extended/coerce/string.mjs +11 -0
  74. package/dist/dataParser/extended/empty.cjs +11 -0
  75. package/dist/dataParser/extended/empty.d.ts +9 -0
  76. package/dist/dataParser/extended/empty.mjs +9 -0
  77. package/dist/dataParser/extended/index.cjs +48 -0
  78. package/dist/dataParser/extended/index.d.ts +22 -0
  79. package/dist/dataParser/extended/index.mjs +21 -0
  80. package/dist/dataParser/extended/lazy.cjs +11 -0
  81. package/dist/dataParser/extended/lazy.d.ts +11 -0
  82. package/dist/dataParser/extended/lazy.mjs +9 -0
  83. package/dist/dataParser/extended/literal.cjs +11 -0
  84. package/dist/dataParser/extended/literal.d.ts +11 -0
  85. package/dist/dataParser/extended/literal.mjs +9 -0
  86. package/dist/dataParser/extended/nil.cjs +11 -0
  87. package/dist/dataParser/extended/nil.d.ts +9 -0
  88. package/dist/dataParser/extended/nil.mjs +9 -0
  89. package/dist/dataParser/extended/nullable.cjs +11 -0
  90. package/dist/dataParser/extended/nullable.d.ts +11 -0
  91. package/dist/dataParser/extended/nullable.mjs +9 -0
  92. package/dist/dataParser/extended/number.cjs +27 -0
  93. package/dist/dataParser/extended/number.d.ts +24 -0
  94. package/dist/dataParser/extended/number.mjs +24 -0
  95. package/dist/dataParser/extended/object.cjs +11 -0
  96. package/dist/dataParser/extended/object.d.ts +11 -0
  97. package/dist/dataParser/extended/object.mjs +9 -0
  98. package/dist/dataParser/extended/optional.cjs +11 -0
  99. package/dist/dataParser/extended/optional.d.ts +11 -0
  100. package/dist/dataParser/extended/optional.mjs +9 -0
  101. package/dist/dataParser/extended/pipe.cjs +11 -0
  102. package/dist/dataParser/extended/pipe.d.ts +12 -0
  103. package/dist/dataParser/extended/pipe.mjs +9 -0
  104. package/dist/dataParser/extended/record.cjs +11 -0
  105. package/dist/dataParser/extended/record.d.ts +12 -0
  106. package/dist/dataParser/extended/record.mjs +9 -0
  107. package/dist/dataParser/extended/string.cjs +38 -0
  108. package/dist/dataParser/extended/string.d.ts +32 -0
  109. package/dist/dataParser/extended/string.mjs +34 -0
  110. package/dist/dataParser/extended/templateLiteral.cjs +10 -0
  111. package/dist/dataParser/extended/templateLiteral.d.ts +11 -0
  112. package/dist/dataParser/extended/templateLiteral.mjs +8 -0
  113. package/dist/dataParser/extended/transform.cjs +11 -0
  114. package/dist/dataParser/extended/transform.d.ts +14 -0
  115. package/dist/dataParser/extended/transform.mjs +9 -0
  116. package/dist/dataParser/extended/tuple.cjs +11 -0
  117. package/dist/dataParser/extended/tuple.d.ts +11 -0
  118. package/dist/dataParser/extended/tuple.mjs +9 -0
  119. package/dist/dataParser/extended/union.cjs +11 -0
  120. package/dist/dataParser/extended/union.d.ts +11 -0
  121. package/dist/dataParser/extended/union.mjs +9 -0
  122. package/dist/dataParser/extended/unknown.cjs +11 -0
  123. package/dist/dataParser/extended/unknown.d.ts +9 -0
  124. package/dist/dataParser/extended/unknown.mjs +9 -0
  125. package/dist/dataParser/index.cjs +128 -0
  126. package/dist/dataParser/index.d.ts +6 -0
  127. package/dist/dataParser/index.mjs +38 -0
  128. package/dist/dataParser/parsers/array/checkers/index.d.ts +2 -0
  129. package/dist/dataParser/parsers/array/checkers/max.cjs +23 -0
  130. package/dist/dataParser/parsers/array/checkers/max.d.ts +11 -0
  131. package/dist/dataParser/parsers/array/checkers/max.mjs +20 -0
  132. package/dist/dataParser/parsers/array/checkers/min.cjs +23 -0
  133. package/dist/dataParser/parsers/array/checkers/min.d.ts +11 -0
  134. package/dist/dataParser/parsers/array/checkers/min.mjs +20 -0
  135. package/dist/dataParser/parsers/array/index.cjs +64 -0
  136. package/dist/dataParser/parsers/array/index.d.ts +20 -0
  137. package/dist/dataParser/parsers/array/index.mjs +61 -0
  138. package/dist/dataParser/parsers/bigint/checkers/index.d.ts +2 -0
  139. package/dist/dataParser/parsers/bigint/checkers/max.cjs +23 -0
  140. package/dist/dataParser/parsers/bigint/checkers/max.d.ts +11 -0
  141. package/dist/dataParser/parsers/bigint/checkers/max.mjs +20 -0
  142. package/dist/dataParser/parsers/bigint/checkers/min.cjs +23 -0
  143. package/dist/dataParser/parsers/bigint/checkers/min.d.ts +11 -0
  144. package/dist/dataParser/parsers/bigint/checkers/min.mjs +20 -0
  145. package/dist/dataParser/parsers/bigint/index.cjs +31 -0
  146. package/dist/dataParser/parsers/bigint/index.d.ts +18 -0
  147. package/dist/dataParser/parsers/bigint/index.mjs +28 -0
  148. package/dist/dataParser/parsers/boolean.cjs +40 -0
  149. package/dist/dataParser/parsers/boolean.d.ts +12 -0
  150. package/dist/dataParser/parsers/boolean.mjs +37 -0
  151. package/dist/dataParser/parsers/coerce/bigint.cjs +13 -0
  152. package/dist/dataParser/parsers/coerce/bigint.d.ts +6 -0
  153. package/dist/dataParser/parsers/coerce/bigint.mjs +11 -0
  154. package/dist/dataParser/parsers/coerce/boolean.cjs +13 -0
  155. package/dist/dataParser/parsers/coerce/boolean.d.ts +6 -0
  156. package/dist/dataParser/parsers/coerce/boolean.mjs +11 -0
  157. package/dist/dataParser/parsers/coerce/empty.cjs +13 -0
  158. package/dist/dataParser/parsers/coerce/empty.d.ts +6 -0
  159. package/dist/dataParser/parsers/coerce/empty.mjs +11 -0
  160. package/dist/dataParser/parsers/coerce/index.cjs +17 -0
  161. package/dist/dataParser/parsers/coerce/index.d.ts +6 -0
  162. package/dist/dataParser/parsers/coerce/index.mjs +6 -0
  163. package/dist/dataParser/parsers/coerce/nil.cjs +13 -0
  164. package/dist/dataParser/parsers/coerce/nil.d.ts +6 -0
  165. package/dist/dataParser/parsers/coerce/nil.mjs +11 -0
  166. package/dist/dataParser/parsers/coerce/number.cjs +13 -0
  167. package/dist/dataParser/parsers/coerce/number.d.ts +6 -0
  168. package/dist/dataParser/parsers/coerce/number.mjs +11 -0
  169. package/dist/dataParser/parsers/coerce/string.cjs +13 -0
  170. package/dist/dataParser/parsers/coerce/string.d.ts +6 -0
  171. package/dist/dataParser/parsers/coerce/string.mjs +11 -0
  172. package/dist/dataParser/parsers/empty.cjs +27 -0
  173. package/dist/dataParser/parsers/empty.d.ts +12 -0
  174. package/dist/dataParser/parsers/empty.mjs +24 -0
  175. package/dist/dataParser/parsers/index.d.ts +20 -0
  176. package/dist/dataParser/parsers/lazy.cjs +21 -0
  177. package/dist/dataParser/parsers/lazy.d.ts +14 -0
  178. package/dist/dataParser/parsers/lazy.mjs +18 -0
  179. package/dist/dataParser/parsers/literal.cjs +25 -0
  180. package/dist/dataParser/parsers/literal.d.ts +15 -0
  181. package/dist/dataParser/parsers/literal.mjs +22 -0
  182. package/dist/dataParser/parsers/nil.cjs +27 -0
  183. package/dist/dataParser/parsers/nil.d.ts +12 -0
  184. package/dist/dataParser/parsers/nil.mjs +24 -0
  185. package/dist/dataParser/parsers/nullable.cjs +31 -0
  186. package/dist/dataParser/parsers/nullable.d.ts +14 -0
  187. package/dist/dataParser/parsers/nullable.mjs +28 -0
  188. package/dist/dataParser/parsers/number/checkers/index.d.ts +3 -0
  189. package/dist/dataParser/parsers/number/checkers/int.cjs +27 -0
  190. package/dist/dataParser/parsers/number/checkers/int.d.ts +15 -0
  191. package/dist/dataParser/parsers/number/checkers/int.mjs +23 -0
  192. package/dist/dataParser/parsers/number/checkers/max.cjs +18 -0
  193. package/dist/dataParser/parsers/number/checkers/max.d.ts +11 -0
  194. package/dist/dataParser/parsers/number/checkers/max.mjs +15 -0
  195. package/dist/dataParser/parsers/number/checkers/min.cjs +18 -0
  196. package/dist/dataParser/parsers/number/checkers/min.d.ts +11 -0
  197. package/dist/dataParser/parsers/number/checkers/min.mjs +15 -0
  198. package/dist/dataParser/parsers/number/index.cjs +31 -0
  199. package/dist/dataParser/parsers/number/index.d.ts +18 -0
  200. package/dist/dataParser/parsers/number/index.mjs +28 -0
  201. package/dist/dataParser/parsers/object.cjs +74 -0
  202. package/dist/dataParser/parsers/object.d.ts +26 -0
  203. package/dist/dataParser/parsers/object.mjs +71 -0
  204. package/dist/dataParser/parsers/optional.cjs +31 -0
  205. package/dist/dataParser/parsers/optional.d.ts +14 -0
  206. package/dist/dataParser/parsers/optional.mjs +28 -0
  207. package/dist/dataParser/parsers/pipe.cjs +34 -0
  208. package/dist/dataParser/parsers/pipe.d.ts +16 -0
  209. package/dist/dataParser/parsers/pipe.mjs +31 -0
  210. package/dist/dataParser/parsers/record.cjs +83 -0
  211. package/dist/dataParser/parsers/record.d.ts +30 -0
  212. package/dist/dataParser/parsers/record.mjs +80 -0
  213. package/dist/dataParser/parsers/string/checkers/email.cjs +31 -0
  214. package/dist/dataParser/parsers/string/checkers/email.d.ts +17 -0
  215. package/dist/dataParser/parsers/string/checkers/email.mjs +27 -0
  216. package/dist/dataParser/parsers/string/checkers/index.d.ts +5 -0
  217. package/dist/dataParser/parsers/string/checkers/max.cjs +18 -0
  218. package/dist/dataParser/parsers/string/checkers/max.d.ts +11 -0
  219. package/dist/dataParser/parsers/string/checkers/max.mjs +15 -0
  220. package/dist/dataParser/parsers/string/checkers/min.cjs +18 -0
  221. package/dist/dataParser/parsers/string/checkers/min.d.ts +11 -0
  222. package/dist/dataParser/parsers/string/checkers/min.mjs +15 -0
  223. package/dist/dataParser/parsers/string/checkers/regex.cjs +20 -0
  224. package/dist/dataParser/parsers/string/checkers/regex.d.ts +11 -0
  225. package/dist/dataParser/parsers/string/checkers/regex.mjs +17 -0
  226. package/dist/dataParser/parsers/string/checkers/url.cjs +48 -0
  227. package/dist/dataParser/parsers/string/checkers/url.d.ts +18 -0
  228. package/dist/dataParser/parsers/string/checkers/url.mjs +44 -0
  229. package/dist/dataParser/parsers/string/index.cjs +31 -0
  230. package/dist/dataParser/parsers/string/index.d.ts +18 -0
  231. package/dist/dataParser/parsers/string/index.mjs +28 -0
  232. package/dist/dataParser/parsers/templateLiteral.cjs +45 -0
  233. package/dist/dataParser/parsers/templateLiteral.d.ts +49 -0
  234. package/dist/dataParser/parsers/templateLiteral.mjs +42 -0
  235. package/dist/dataParser/parsers/transform.cjs +43 -0
  236. package/dist/dataParser/parsers/transform.d.ts +17 -0
  237. package/dist/dataParser/parsers/transform.mjs +40 -0
  238. package/dist/dataParser/parsers/tuple.cjs +83 -0
  239. package/dist/dataParser/parsers/tuple.d.ts +33 -0
  240. package/dist/dataParser/parsers/tuple.mjs +80 -0
  241. package/dist/dataParser/parsers/union.cjs +38 -0
  242. package/dist/dataParser/parsers/union.d.ts +15 -0
  243. package/dist/dataParser/parsers/union.mjs +35 -0
  244. package/dist/dataParser/parsers/unknown.cjs +17 -0
  245. package/dist/dataParser/parsers/unknown.d.ts +11 -0
  246. package/dist/dataParser/parsers/unknown.mjs +14 -0
  247. package/dist/dataParser/types/addCheckersToDefinition.d.ts +5 -0
  248. package/dist/dataParser/types/checkers.d.ts +3 -0
  249. package/dist/dataParser/types/dataParsers.d.ts +5 -0
  250. package/dist/dataParser/types/index.d.ts +4 -0
  251. package/dist/dataParser/types/mergeDefinition.d.ts +5 -0
  252. package/dist/either/bool/falsy.cjs +1 -1
  253. package/dist/either/bool/falsy.mjs +1 -1
  254. package/dist/either/bool/truthy.cjs +1 -1
  255. package/dist/either/bool/truthy.mjs +1 -1
  256. package/dist/either/future/error.cjs +1 -1
  257. package/dist/either/future/error.mjs +1 -1
  258. package/dist/either/future/success.cjs +1 -1
  259. package/dist/either/future/success.mjs +1 -1
  260. package/dist/either/left/create.cjs +1 -1
  261. package/dist/either/left/create.mjs +1 -1
  262. package/dist/either/left/error.cjs +1 -1
  263. package/dist/either/left/error.mjs +1 -1
  264. package/dist/either/left/fail.cjs +1 -1
  265. package/dist/either/left/fail.mjs +1 -1
  266. package/dist/either/nullable/empty.cjs +1 -1
  267. package/dist/either/nullable/empty.mjs +1 -1
  268. package/dist/either/nullable/filled.cjs +1 -1
  269. package/dist/either/nullable/filled.mjs +1 -1
  270. package/dist/either/nullish/empty.cjs +1 -1
  271. package/dist/either/nullish/empty.mjs +1 -1
  272. package/dist/either/nullish/filled.cjs +1 -1
  273. package/dist/either/nullish/filled.mjs +1 -1
  274. package/dist/either/optional/empty.cjs +1 -1
  275. package/dist/either/optional/empty.mjs +1 -1
  276. package/dist/either/optional/filled.cjs +1 -1
  277. package/dist/either/optional/filled.mjs +1 -1
  278. package/dist/either/right/asyncPipe.d.ts +2 -2
  279. package/dist/either/right/create.cjs +1 -1
  280. package/dist/either/right/create.mjs +1 -1
  281. package/dist/either/right/ok.cjs +1 -1
  282. package/dist/either/right/ok.mjs +1 -1
  283. package/dist/either/right/success.cjs +1 -1
  284. package/dist/either/right/success.mjs +1 -1
  285. package/dist/generator/reduce.cjs +1 -1
  286. package/dist/generator/reduce.mjs +1 -1
  287. package/dist/index.cjs +14 -0
  288. package/dist/index.d.ts +6 -0
  289. package/dist/index.mjs +12 -1
  290. package/dist/object/fromEntries.d.ts +1 -1
  291. package/dist/object/types/getPropsWithValueExtends.d.ts +1 -1
  292. package/dist/pattern/result.cjs +1 -1
  293. package/dist/pattern/result.mjs +1 -1
  294. package/package.json +57 -1
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ function coalescing(value) {
4
+ return value instanceof Array
5
+ ? value
6
+ : [value];
7
+ }
8
+
9
+ exports.coalescing = coalescing;
@@ -0,0 +1,3 @@
1
+ import { type AnyValue } from "../common";
2
+ import { type ArrayCoalescing } from "./types";
3
+ export declare function coalescing<GenericValue extends AnyValue>(value: GenericValue): ArrayCoalescing<GenericValue>;
@@ -0,0 +1,7 @@
1
+ function coalescing(value) {
2
+ return value instanceof Array
3
+ ? value
4
+ : [value];
5
+ }
6
+
7
+ export { coalescing };
@@ -49,6 +49,7 @@ var insert$1 = require('./findAndSplice/insert.cjs');
49
49
  var replace$1 = require('./findAndSplice/replace.cjs');
50
50
  var sum = require('./sum.cjs');
51
51
  var length = require('./length.cjs');
52
+ var coalescing = require('./coalescing.cjs');
52
53
 
53
54
 
54
55
 
@@ -103,3 +104,4 @@ exports.findAndSpliceInsert = insert$1.findAndSpliceInsert;
103
104
  exports.findAndSpliceReplace = replace$1.findAndSpliceReplace;
104
105
  exports.sum = sum.sum;
105
106
  exports.length = length.length;
107
+ exports.coalescing = coalescing.coalescing;
@@ -39,3 +39,4 @@ export * from "./findAndReplace";
39
39
  export * from "./findAndSplice";
40
40
  export * from "./sum";
41
41
  export * from "./length";
42
+ export * from "./coalescing";
@@ -47,3 +47,4 @@ export { findAndSpliceInsert } from './findAndSplice/insert.mjs';
47
47
  export { findAndSpliceReplace } from './findAndSplice/replace.mjs';
48
48
  export { sum } from './sum.mjs';
49
49
  export { length } from './length.mjs';
50
+ export { coalescing } from './coalescing.mjs';
@@ -6,7 +6,7 @@ function map(...args) {
6
6
  return (array) => map(array, theFunction);
7
7
  }
8
8
  const [array, theFunction] = args;
9
- return array.map((item, index) => theFunction(item, { index }));
9
+ return array.map((element, index) => theFunction(element, { index }));
10
10
  }
11
11
 
12
12
  exports.map = map;
@@ -1,6 +1,6 @@
1
1
  interface ArrayMapParams {
2
2
  index: number;
3
3
  }
4
- export declare function map<GenericArray extends readonly unknown[], GenericOutput extends unknown>(theFunction: (item: GenericArray[number], params: ArrayMapParams) => GenericOutput): (array: GenericArray) => GenericOutput[];
5
- export declare function map<GenericElement extends unknown, GenericOutput extends unknown>(array: readonly GenericElement[], theFunction: (item: GenericElement, params: ArrayMapParams) => GenericOutput): GenericOutput[];
4
+ export declare function map<GenericArray extends readonly unknown[], GenericOutput extends unknown>(theFunction: (element: GenericArray[number], params: ArrayMapParams) => GenericOutput): (array: GenericArray) => GenericOutput[];
5
+ export declare function map<GenericElement extends unknown, GenericOutput extends unknown>(array: readonly GenericElement[], theFunction: (element: GenericElement, params: ArrayMapParams) => GenericOutput): GenericOutput[];
6
6
  export {};
@@ -4,7 +4,7 @@ function map(...args) {
4
4
  return (array) => map(array, theFunction);
5
5
  }
6
6
  const [array, theFunction] = args;
7
- return array.map((item, index) => theFunction(item, { index }));
7
+ return array.map((element, index) => theFunction(element, { index }));
8
8
  }
9
9
 
10
10
  export { map };
@@ -7,7 +7,7 @@ var override = require('../object/override.cjs');
7
7
 
8
8
  const arrayReduceFromKind = kind.createKind("array-reduce-from");
9
9
  function reduceFrom(value) {
10
- return arrayReduceFromKind.addTo(wrapValue.wrapValue(value));
10
+ return arrayReduceFromKind.setTo(wrapValue.wrapValue(value));
11
11
  }
12
12
  function reduce(...args) {
13
13
  if (args.length === 2) {
@@ -5,7 +5,7 @@ import { override } from '../object/override.mjs';
5
5
 
6
6
  const arrayReduceFromKind = createKind("array-reduce-from");
7
7
  function reduceFrom(value) {
8
- return arrayReduceFromKind.addTo(wrapValue(value));
8
+ return arrayReduceFromKind.setTo(wrapValue(value));
9
9
  }
10
10
  function reduce(...args) {
11
11
  if (args.length === 2) {
@@ -0,0 +1 @@
1
+ export type ArrayCoalescing<GenericValue extends unknown> = GenericValue extends readonly any[] ? GenericValue : [GenericValue];
@@ -7,3 +7,4 @@ export * from "./mergeUnionTuple";
7
7
  export * from "./extractTuple";
8
8
  export * from "./excludeTuple";
9
9
  export * from "./createTuple";
10
+ export * from "./ArrayCoalescing";
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- function escapeRegExp(text) {
4
- return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
3
+ function escapeRegExp(input) {
4
+ return input.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
5
5
  }
6
6
 
7
7
  exports.escapeRegExp = escapeRegExp;
@@ -1 +1 @@
1
- export declare function escapeRegExp(text: string): string;
1
+ export declare function escapeRegExp<GenericInput extends string>(input: GenericInput): string;
@@ -1,5 +1,5 @@
1
- function escapeRegExp(text) {
2
- return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
1
+ function escapeRegExp(input) {
2
+ return input.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
3
3
  }
4
4
 
5
5
  export { escapeRegExp };
@@ -34,3 +34,5 @@ export * from "./and";
34
34
  export * from "./or";
35
35
  export * from "./whenElse";
36
36
  export * from "./justReturn";
37
+ export * from "./memo";
38
+ export * from "./instanceOf";
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ var coalescing = require('../array/coalescing.cjs');
4
+
5
+ function instanceOf(...args) {
6
+ if (args.length === 1) {
7
+ const [constructor] = args;
8
+ return (input) => instanceOf(input, constructor);
9
+ }
10
+ const [input, constructor] = args;
11
+ const formattedConstructor = coalescing.coalescing(constructor);
12
+ for (const constructor of formattedConstructor) {
13
+ if (input instanceof constructor) {
14
+ return true;
15
+ }
16
+ }
17
+ return false;
18
+ }
19
+
20
+ exports.instanceOf = instanceOf;
@@ -0,0 +1,3 @@
1
+ import { type AnyConstructor } from "./types";
2
+ export declare function instanceOf<GenericInput extends unknown, GenericConstructor extends AnyConstructor>(constructor: GenericConstructor | GenericConstructor[]): (input: GenericInput) => input is Extract<GenericInput, InstanceType<GenericConstructor>>;
3
+ export declare function instanceOf<GenericInput extends unknown, GenericConstructor extends AnyConstructor>(input: GenericInput, constructor: GenericConstructor | GenericConstructor[]): input is Extract<GenericInput, InstanceType<GenericConstructor>>;
@@ -0,0 +1,18 @@
1
+ import { coalescing } from '../array/coalescing.mjs';
2
+
3
+ function instanceOf(...args) {
4
+ if (args.length === 1) {
5
+ const [constructor] = args;
6
+ return (input) => instanceOf(input, constructor);
7
+ }
8
+ const [input, constructor] = args;
9
+ const formattedConstructor = coalescing(constructor);
10
+ for (const constructor of formattedConstructor) {
11
+ if (input instanceof constructor) {
12
+ return true;
13
+ }
14
+ }
15
+ return false;
16
+ }
17
+
18
+ export { instanceOf };
@@ -6,7 +6,10 @@ const keyKindPrefix = `${wrapValue.keyWrappedValue}/kind/`;
6
6
  function createKind(name) {
7
7
  const runTimeKey = `${keyKindPrefix}${name}`;
8
8
  return {
9
- definition: undefined,
9
+ definition: {
10
+ name,
11
+ value: null,
12
+ },
10
13
  runTimeKey,
11
14
  addTo(input, value = null) {
12
15
  return {
@@ -14,6 +17,10 @@ function createKind(name) {
14
17
  [runTimeKey]: value,
15
18
  };
16
19
  },
20
+ setTo(input, value = null) {
21
+ input[runTimeKey] = value;
22
+ return input;
23
+ },
17
24
  has(input) {
18
25
  return input
19
26
  && typeof input === "object"
@@ -24,6 +31,36 @@ function createKind(name) {
24
31
  },
25
32
  };
26
33
  }
34
+ function kindHeritage(uniqueName, kind) {
35
+ const uniqueKind = createKind(uniqueName);
36
+ const kinds = kind instanceof Array
37
+ ? kind
38
+ : [kind];
39
+ const ParentKindClass = (function ParentKindClass(params = {}) {
40
+ for (const kind of kinds) {
41
+ this[kind.runTimeKey] = params[kind.definition.name] ?? null;
42
+ }
43
+ });
44
+ kinds.forEach((value) => {
45
+ ParentKindClass.prototype[value.runTimeKey] = null;
46
+ });
47
+ ParentKindClass.prototype[uniqueKind.runTimeKey] = null;
48
+ Object.defineProperty(ParentKindClass, Symbol.hasInstance, {
49
+ value: (value) => {
50
+ if (!uniqueKind.has(value)) {
51
+ return false;
52
+ }
53
+ for (const kind of kinds) {
54
+ if (!kind.has(value)) {
55
+ return false;
56
+ }
57
+ }
58
+ return true;
59
+ },
60
+ });
61
+ return ParentKindClass;
62
+ }
27
63
 
28
64
  exports.createKind = createKind;
29
65
  exports.keyKindPrefix = keyKindPrefix;
66
+ exports.kindHeritage = kindHeritage;
@@ -1,5 +1,6 @@
1
- import { type Or, type IsEqual, type BreakGenericLink } from "./types";
2
- export interface KindHandler<GenericKindDefinition extends KindDefinition> {
1
+ import { type Or, type IsEqual, type BreakGenericLink, type Adaptor, type UnionToIntersection } from "./types";
2
+ import { type GetPropsWithValue, type PartialKeys } from "../object";
3
+ export interface KindHandler<GenericKindDefinition extends KindDefinition = KindDefinition> {
3
4
  definition: GenericKindDefinition;
4
5
  runTimeKey: string;
5
6
  has<GenericInput extends unknown>(input: GenericInput): input is Extract<GenericInput, Kind<GenericKindDefinition, GenericKindDefinition["value"]>>;
@@ -8,6 +9,14 @@ export interface KindHandler<GenericKindDefinition extends KindDefinition> {
8
9
  IsEqual<GenericValue, unknown>,
9
10
  IsEqual<GenericValue, any>
10
11
  ]> extends true ? [input: GenericInput, value?: GenericValue] : [input: GenericInput, value: GenericValue]): Kind<GenericKindDefinition, GenericValue> & BreakGenericLink<GenericInput>;
12
+ /**
13
+ * @deprecated This method make mutation.
14
+ */
15
+ setTo<GenericInput extends {}, GenericValue extends GenericKindDefinition["value"] = GenericKindDefinition["value"]>(...args: Or<[
16
+ IsEqual<GenericValue, never>,
17
+ IsEqual<GenericValue, unknown>,
18
+ IsEqual<GenericValue, any>
19
+ ]> extends true ? [input: GenericInput, value?: GenericValue] : [input: GenericInput, value: GenericValue]): Kind<GenericKindDefinition, GenericValue> & BreakGenericLink<GenericInput>;
11
20
  getValue<GenericKind extends Kind<GenericKindDefinition, GenericKindDefinition["value"]>>(input: GenericKind): GenericKind[SymbolKind][GenericKindDefinition["name"]];
12
21
  }
13
22
  export interface KindDefinition<GenericName extends string = string, GenericValue extends unknown = unknown> {
@@ -16,11 +25,20 @@ export interface KindDefinition<GenericName extends string = string, GenericValu
16
25
  }
17
26
  declare const SymbolKind: unique symbol;
18
27
  type SymbolKind = typeof SymbolKind;
19
- export interface Kind<GenericKindDefinition extends KindDefinition, GenericValue extends KindDefinition["value"] = KindDefinition["value"]> {
28
+ export interface Kind<GenericKindDefinition extends KindDefinition, GenericValue extends GenericKindDefinition["value"] = GenericKindDefinition["value"]> {
20
29
  [SymbolKind]: {
21
30
  [Prop in GenericKindDefinition["name"]]: GenericValue;
22
31
  };
23
32
  }
33
+ export type RemoveKind<GenericObject extends Kind<any>> = Omit<GenericObject, SymbolKind>;
34
+ export type GetKindValue<GenericKindHandler extends KindHandler, GenericObject extends Kind<any>> = GenericObject[SymbolKind][GenericKindHandler["definition"]["name"]];
35
+ export type GetKindHandler<GenericObject extends Kind<any>> = {
36
+ [Prop in keyof GenericObject[SymbolKind]]: KindHandler<KindDefinition<Adaptor<Prop, string>, GenericObject[SymbolKind][Prop]>>;
37
+ }[keyof GenericObject[SymbolKind]];
24
38
  export declare const keyKindPrefix = "@duplojs/utils/value/kind/";
25
39
  export declare function createKind<GenericName extends string, GenericKindValue extends unknown = unknown>(name: GenericName): KindHandler<KindDefinition<GenericName, GenericKindValue>>;
40
+ export type KindHeritageConstructorParams<GenericKindHandler extends KindHandler> = {
41
+ [KindHandler in GenericKindHandler as KindHandler["definition"]["name"]]: KindHandler["definition"]["value"];
42
+ } extends infer InferredResult extends object ? PartialKeys<InferredResult, GetPropsWithValue<InferredResult, unknown>> : never;
43
+ export declare function kindHeritage<GenericUniqueName extends string, GenericKindHandler extends KindHandler>(uniqueName: GenericUniqueName, kind: GenericKindHandler | GenericKindHandler[]): new (...args: IsEqual<GenericKindHandler extends KindHandler ? IsEqual<GenericKindHandler["definition"]["value"], unknown> : never, true> extends true ? [params?: KindHeritageConstructorParams<GenericKindHandler>] : [params: KindHeritageConstructorParams<GenericKindHandler>]) => UnionToIntersection<(GenericKindHandler extends KindHandler ? Kind<GenericKindHandler["definition"]> : never) | Kind<KindDefinition<GenericUniqueName, unknown>>>;
26
44
  export {};
@@ -4,7 +4,10 @@ const keyKindPrefix = `${keyWrappedValue}/kind/`;
4
4
  function createKind(name) {
5
5
  const runTimeKey = `${keyKindPrefix}${name}`;
6
6
  return {
7
- definition: undefined,
7
+ definition: {
8
+ name,
9
+ value: null,
10
+ },
8
11
  runTimeKey,
9
12
  addTo(input, value = null) {
10
13
  return {
@@ -12,6 +15,10 @@ function createKind(name) {
12
15
  [runTimeKey]: value,
13
16
  };
14
17
  },
18
+ setTo(input, value = null) {
19
+ input[runTimeKey] = value;
20
+ return input;
21
+ },
15
22
  has(input) {
16
23
  return input
17
24
  && typeof input === "object"
@@ -22,5 +29,34 @@ function createKind(name) {
22
29
  },
23
30
  };
24
31
  }
32
+ function kindHeritage(uniqueName, kind) {
33
+ const uniqueKind = createKind(uniqueName);
34
+ const kinds = kind instanceof Array
35
+ ? kind
36
+ : [kind];
37
+ const ParentKindClass = (function ParentKindClass(params = {}) {
38
+ for (const kind of kinds) {
39
+ this[kind.runTimeKey] = params[kind.definition.name] ?? null;
40
+ }
41
+ });
42
+ kinds.forEach((value) => {
43
+ ParentKindClass.prototype[value.runTimeKey] = null;
44
+ });
45
+ ParentKindClass.prototype[uniqueKind.runTimeKey] = null;
46
+ Object.defineProperty(ParentKindClass, Symbol.hasInstance, {
47
+ value: (value) => {
48
+ if (!uniqueKind.has(value)) {
49
+ return false;
50
+ }
51
+ for (const kind of kinds) {
52
+ if (!kind.has(value)) {
53
+ return false;
54
+ }
55
+ }
56
+ return true;
57
+ },
58
+ });
59
+ return ParentKindClass;
60
+ }
25
61
 
26
- export { createKind, keyKindPrefix };
62
+ export { createKind, keyKindPrefix, kindHeritage };
@@ -0,0 +1,16 @@
1
+ 'use strict';
2
+
3
+ function memo(theFunction) {
4
+ const payload = {
5
+ get value() {
6
+ const value = theFunction();
7
+ Object.defineProperty(payload, "value", {
8
+ value,
9
+ });
10
+ return value;
11
+ },
12
+ };
13
+ return payload;
14
+ }
15
+
16
+ exports.memo = memo;
@@ -0,0 +1,5 @@
1
+ import { type AnyValue } from "./types";
2
+ export interface Memoized<GenericValue extends unknown> {
3
+ readonly value: GenericValue;
4
+ }
5
+ export declare function memo<GenericOutput extends AnyValue>(theFunction: () => GenericOutput): Memoized<GenericOutput>;
@@ -0,0 +1,14 @@
1
+ function memo(theFunction) {
2
+ const payload = {
3
+ get value() {
4
+ const value = theFunction();
5
+ Object.defineProperty(payload, "value", {
6
+ value,
7
+ });
8
+ return value;
9
+ },
10
+ };
11
+ return payload;
12
+ }
13
+
14
+ export { memo };
@@ -7,8 +7,8 @@ function simpleClone(unknownValue) {
7
7
  else if (typeof unknownValue !== "object") {
8
8
  return unknownValue;
9
9
  }
10
- else if (unknownValue.constructor?.name === "Object"
11
- || unknownValue.constructor === undefined) {
10
+ else if (unknownValue.constructor === undefined
11
+ || unknownValue.constructor.name === "Object") {
12
12
  return Object.entries(unknownValue).reduce((pv, [key, value]) => {
13
13
  pv[key] = simpleClone(value);
14
14
  return pv;
@@ -5,8 +5,8 @@ function simpleClone(unknownValue) {
5
5
  else if (typeof unknownValue !== "object") {
6
6
  return unknownValue;
7
7
  }
8
- else if (unknownValue.constructor?.name === "Object"
9
- || unknownValue.constructor === undefined) {
8
+ else if (unknownValue.constructor === undefined
9
+ || unknownValue.constructor.name === "Object") {
10
10
  return Object.entries(unknownValue).reduce((pv, [key, value]) => {
11
11
  pv[key] = simpleClone(value);
12
12
  return pv;
@@ -0,0 +1 @@
1
+ export type AnyConstructor<GenericArgs extends any[] = any[], GenericInstance extends any = any> = new (...args: GenericArgs) => GenericInstance;
@@ -0,0 +1 @@
1
+ export type AnyPredicate<GenericInput extends any = any, GenericArgs extends any[] = any[], GenericPredicate extends GenericInput = any> = (input: GenericInput, ...args: GenericArgs) => input is GenericPredicate;
@@ -35,3 +35,5 @@ export * from "./lastUnionElement";
35
35
  export * from "./removeDuplicateInUnion";
36
36
  export * from "./isStringLIteral";
37
37
  export * from "./maybeWrapped";
38
+ export * from "./anyConstructor";
39
+ export * from "./anyPredicate";
@@ -1,2 +1,2 @@
1
1
  import { type ObjectKey } from "./objectKey";
2
- export type ObjectEntry = [ObjectKey, any];
2
+ export type ObjectEntry = readonly [ObjectKey, any];
@@ -0,0 +1 @@
1
+ export type Predicate<GenericFunction extends (input: any, ...args: any[]) => input is any> = GenericFunction extends (input: any, ...args: any[]) => input is infer InferredPredicate ? InferredPredicate : never;
@@ -1,2 +1,2 @@
1
1
  import { type IsEqual } from "./isEqual";
2
- export type UnionContain<GenericUnion extends unknown, GenericValue extends unknown> = IsEqual<GenericUnion extends any ? IsEqual<GenericUnion, GenericValue> : never, boolean>;
2
+ export type UnionContain<GenericUnion extends unknown, GenericValue extends unknown> = IsEqual<(GenericUnion extends any ? IsEqual<GenericUnion, GenericValue> : never) | false, boolean>;
@@ -0,0 +1,116 @@
1
+ 'use strict';
2
+
3
+ var kind = require('../common/kind.cjs');
4
+ var simpleClone = require('../common/simpleClone.cjs');
5
+ var error = require('./error.cjs');
6
+ var error$1 = require('../either/left/error.cjs');
7
+ var success = require('../either/right/success.cjs');
8
+
9
+ const SymbolDataParserErrorLabel = "SymbolDataParserError";
10
+ const SymbolDataParserError = Symbol.for(SymbolDataParserErrorLabel);
11
+ const dataParserCheckerKind = kind.createKind("data-parser-checker");
12
+ function dataParserCheckerInit(kind, params, exec) {
13
+ return kind.setTo(dataParserCheckerKind.setTo({
14
+ ...params,
15
+ exec,
16
+ }));
17
+ }
18
+ const dataParserKind = kind.createKind("data-parser");
19
+ function dataParserInit(kind, params, exec) {
20
+ const formattedExec = typeof exec === "object"
21
+ ? exec
22
+ : {
23
+ sync: exec,
24
+ async: exec,
25
+ };
26
+ function middleExec(data, error$1) {
27
+ let result = formattedExec.sync(data, error$1, dataParser);
28
+ if (result === error.SymbolDataParserErrorIssue) {
29
+ error.addIssue(error$1, dataParser, data);
30
+ return SymbolDataParserError;
31
+ }
32
+ else if (result === error.SymbolDataParserErrorPromiseIssue) {
33
+ error.addPromiseIssue(error$1, dataParser, data);
34
+ return SymbolDataParserError;
35
+ }
36
+ else if (result !== SymbolDataParserError
37
+ && dataParser.definition.checkers.length) {
38
+ for (const checker of dataParser.definition.checkers) {
39
+ const checkerResult = checker.exec(result, checker);
40
+ if (checkerResult === error.SymbolDataParserErrorIssue) {
41
+ error.addIssue(error$1, checker, result);
42
+ return SymbolDataParserError;
43
+ }
44
+ else {
45
+ result = checkerResult;
46
+ }
47
+ }
48
+ }
49
+ return result;
50
+ }
51
+ async function middleAsyncExec(data, error$1) {
52
+ let result = await formattedExec.async(data, error$1, dataParser);
53
+ if (result === error.SymbolDataParserErrorIssue) {
54
+ error.addIssue(error$1, dataParser, data);
55
+ return SymbolDataParserError;
56
+ }
57
+ else if (result === error.SymbolDataParserErrorPromiseIssue) {
58
+ error.addPromiseIssue(error$1, dataParser, data);
59
+ return SymbolDataParserError;
60
+ }
61
+ else if (result !== SymbolDataParserError
62
+ && dataParser.definition.checkers.length) {
63
+ for (const checker of dataParser.definition.checkers) {
64
+ const checkerResult = checker.exec(result, checker);
65
+ if (checkerResult === error.SymbolDataParserErrorIssue) {
66
+ error.addIssue(error$1, checker, result);
67
+ return SymbolDataParserError;
68
+ }
69
+ else {
70
+ result = checkerResult;
71
+ }
72
+ }
73
+ }
74
+ return result;
75
+ }
76
+ const dataParser = kind.setTo(dataParserKind.setTo({
77
+ ...params,
78
+ exec: middleExec,
79
+ asyncExec: middleAsyncExec,
80
+ parse(data) {
81
+ const error$2 = error.createError();
82
+ const result = middleExec(data, error$2);
83
+ if (result === SymbolDataParserError) {
84
+ return error$1.error(error$2);
85
+ }
86
+ return success.success(result);
87
+ },
88
+ async asyncParse(data) {
89
+ const error$2 = error.createError();
90
+ const result = await middleAsyncExec(data, error$2);
91
+ if (result === SymbolDataParserError) {
92
+ return error$1.error(error$2);
93
+ }
94
+ return success.success(result);
95
+ },
96
+ addChecker: (...checkers) => dataParserInit(kind, simpleClone.simpleClone({
97
+ ...params,
98
+ definition: {
99
+ ...params.definition,
100
+ checkers: [...params.definition.checkers, ...checkers],
101
+ },
102
+ }), exec),
103
+ clone: () => dataParserInit(kind, simpleClone.simpleClone(params), exec),
104
+ }, {
105
+ output: undefined,
106
+ input: undefined,
107
+ }));
108
+ return dataParser;
109
+ }
110
+
111
+ exports.SymbolDataParserError = SymbolDataParserError;
112
+ exports.SymbolDataParserErrorLabel = SymbolDataParserErrorLabel;
113
+ exports.dataParserCheckerInit = dataParserCheckerInit;
114
+ exports.dataParserCheckerKind = dataParserCheckerKind;
115
+ exports.dataParserInit = dataParserInit;
116
+ exports.dataParserKind = dataParserKind;
@@ -0,0 +1,44 @@
1
+ import { type AnyValue, type GetKindHandler, type GetKindValue, type Kind, type KindHandler, type RemoveKind } from "../common";
2
+ import { SymbolDataParserErrorIssue, SymbolDataParserErrorPromiseIssue, type DataParserError } from "./error";
3
+ import * as DEither from "../either";
4
+ export declare const SymbolDataParserErrorLabel = "SymbolDataParserError";
5
+ export declare const SymbolDataParserError: unique symbol;
6
+ export type SymbolDataParserError = typeof SymbolDataParserError;
7
+ export declare const dataParserCheckerKind: KindHandler<import("../common").KindDefinition<"data-parser-checker", unknown>>;
8
+ export interface DataParserCheckerDefinition {
9
+ readonly errorMessage?: string;
10
+ }
11
+ export interface DataParserChecker<GenericDefinition extends DataParserCheckerDefinition = DataParserCheckerDefinition, GenericInput extends AnyValue = AnyValue> extends Kind<typeof dataParserCheckerKind.definition, GenericInput> {
12
+ readonly definition: GenericDefinition;
13
+ exec(data: GenericInput, self: this): GenericInput | SymbolDataParserErrorIssue;
14
+ }
15
+ export declare function dataParserCheckerInit<GenericDataParserChecker extends DataParserChecker>(kind: Exclude<GetKindHandler<GenericDataParserChecker>, typeof dataParserCheckerKind>, params: NoInfer<Omit<RemoveKind<GenericDataParserChecker>, "exec">>, exec: (...args: Parameters<GenericDataParserChecker["exec"]>) => GetKindValue<typeof dataParserCheckerKind, GenericDataParserChecker> | SymbolDataParserErrorIssue): GenericDataParserChecker;
16
+ export declare const dataParserKind: KindHandler<import("../common").KindDefinition<"data-parser", {
17
+ input: unknown;
18
+ output: unknown;
19
+ }>>;
20
+ export interface DataParserDefinition<GenericChecker extends DataParserChecker = DataParserChecker> {
21
+ readonly errorMessage?: string;
22
+ readonly checkers: readonly GenericChecker[];
23
+ }
24
+ export interface DataParser<GenericDefinition extends DataParserDefinition = DataParserDefinition, GenericOutput extends unknown = unknown, GenericInput extends unknown = GenericOutput> extends Kind<typeof dataParserKind.definition, {
25
+ input: GenericInput;
26
+ output: GenericOutput;
27
+ }> {
28
+ readonly definition: GenericDefinition;
29
+ exec(data: unknown, error: DataParserError): GenericOutput | SymbolDataParserError;
30
+ asyncExec(data: unknown, error: DataParserError): Promise<GenericOutput | SymbolDataParserError>;
31
+ parse(data: unknown): DEither.EitherSuccess<GenericOutput> | DEither.EitherError<DataParserError>;
32
+ asyncParse(data: unknown): Promise<DEither.EitherSuccess<GenericOutput> | DEither.EitherError<DataParserError>>;
33
+ addChecker(...args: never): DataParser;
34
+ clone(): this;
35
+ }
36
+ interface DataParserInitExecParams<GenericDataParser extends DataParser> {
37
+ sync(...args: [...Parameters<GenericDataParser["exec"]>, self: GenericDataParser]): (GetKindValue<typeof dataParserKind, GenericDataParser>["output"] | SymbolDataParserErrorIssue | SymbolDataParserErrorPromiseIssue);
38
+ async(...args: [...Parameters<GenericDataParser["exec"]>, self: GenericDataParser]): Promise<GetKindValue<typeof dataParserKind, GenericDataParser>["output"] | SymbolDataParserErrorIssue | SymbolDataParserErrorPromiseIssue>;
39
+ }
40
+ export declare function dataParserInit<GenericDataParser extends DataParser>(kind: Exclude<GetKindHandler<GenericDataParser>, typeof dataParserKind>, params: NoInfer<Omit<RemoveKind<GenericDataParser>, "parse" | "exec" | "asyncParse" | "asyncExec" | "addChecker" | "clone">>, exec: (DataParserInitExecParams<GenericDataParser> | DataParserInitExecParams<GenericDataParser>["sync"])): GenericDataParser;
41
+ export type Output<GenericDataParser extends DataParser> = GetKindValue<typeof dataParserKind, GenericDataParser>["output"];
42
+ export type Input<GenericDataParser extends DataParser> = GetKindValue<typeof dataParserKind, GenericDataParser>["input"];
43
+ export type Contract<GenericOutput extends unknown, GenericInput extends unknown = GenericOutput> = DataParser<DataParserDefinition<never>, GenericOutput, GenericInput>;
44
+ export {};