@duplojs/utils 1.1.13 → 1.1.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. package/dist/array/flat.cjs +1 -13
  2. package/dist/array/flat.d.ts +1 -4
  3. package/dist/array/flat.mjs +1 -13
  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/notIncludes.cjs +12 -0
  8. package/dist/array/notIncludes.d.ts +4 -0
  9. package/dist/array/notIncludes.mjs +10 -0
  10. package/dist/array/reduce.d.ts +6 -7
  11. package/dist/array/reduceRight.d.ts +4 -3
  12. package/dist/common/createKindIdentifier.cjs +27 -0
  13. package/dist/common/createKindIdentifier.d.ts +7 -0
  14. package/dist/common/createKindIdentifier.mjs +25 -0
  15. package/dist/common/index.d.ts +1 -0
  16. package/dist/common/isType.cjs +12 -1
  17. package/dist/common/isType.d.ts +4 -2
  18. package/dist/common/isType.mjs +12 -1
  19. package/dist/common/justReturn.d.ts +2 -2
  20. package/dist/common/kind.d.ts +2 -2
  21. package/dist/common/or.d.ts +9 -9
  22. package/dist/common/types/index.d.ts +1 -0
  23. package/dist/common/types/onlyLiteral.d.ts +18 -0
  24. package/dist/dataParser/base.cjs +55 -29
  25. package/dist/dataParser/base.d.ts +1 -1
  26. package/dist/dataParser/base.mjs +55 -29
  27. package/dist/dataParser/baseExtended.cjs +15 -2
  28. package/dist/dataParser/baseExtended.d.ts +8 -3
  29. package/dist/dataParser/baseExtended.mjs +15 -2
  30. package/dist/dataParser/extended/array.cjs +1 -0
  31. package/dist/dataParser/extended/array.d.ts +11 -5
  32. package/dist/dataParser/extended/array.mjs +1 -0
  33. package/dist/dataParser/extended/bigint.cjs +1 -0
  34. package/dist/dataParser/extended/bigint.d.ts +9 -2
  35. package/dist/dataParser/extended/bigint.mjs +1 -0
  36. package/dist/dataParser/extended/boolean.cjs +1 -0
  37. package/dist/dataParser/extended/boolean.d.ts +13 -2
  38. package/dist/dataParser/extended/boolean.mjs +1 -0
  39. package/dist/dataParser/extended/coerce/bigint.cjs +1 -0
  40. package/dist/dataParser/extended/coerce/bigint.mjs +1 -0
  41. package/dist/dataParser/extended/coerce/boolean.cjs +1 -0
  42. package/dist/dataParser/extended/coerce/boolean.mjs +1 -0
  43. package/dist/dataParser/extended/coerce/empty.cjs +1 -0
  44. package/dist/dataParser/extended/coerce/empty.mjs +1 -0
  45. package/dist/dataParser/extended/coerce/nil.cjs +1 -0
  46. package/dist/dataParser/extended/coerce/nil.mjs +1 -0
  47. package/dist/dataParser/extended/coerce/number.cjs +1 -0
  48. package/dist/dataParser/extended/coerce/number.mjs +1 -0
  49. package/dist/dataParser/extended/coerce/string.cjs +1 -0
  50. package/dist/dataParser/extended/coerce/string.mjs +1 -0
  51. package/dist/dataParser/extended/empty.cjs +1 -0
  52. package/dist/dataParser/extended/empty.d.ts +13 -2
  53. package/dist/dataParser/extended/empty.mjs +1 -0
  54. package/dist/dataParser/extended/index.cjs +2 -0
  55. package/dist/dataParser/extended/index.d.ts +1 -0
  56. package/dist/dataParser/extended/index.mjs +1 -0
  57. package/dist/dataParser/extended/lazy.cjs +1 -0
  58. package/dist/dataParser/extended/lazy.d.ts +13 -3
  59. package/dist/dataParser/extended/lazy.mjs +1 -0
  60. package/dist/dataParser/extended/literal.cjs +1 -0
  61. package/dist/dataParser/extended/literal.d.ts +13 -2
  62. package/dist/dataParser/extended/literal.mjs +1 -0
  63. package/dist/dataParser/extended/nil.cjs +1 -0
  64. package/dist/dataParser/extended/nil.d.ts +13 -2
  65. package/dist/dataParser/extended/nil.mjs +1 -0
  66. package/dist/dataParser/extended/nullable.cjs +1 -0
  67. package/dist/dataParser/extended/nullable.d.ts +14 -4
  68. package/dist/dataParser/extended/nullable.mjs +1 -0
  69. package/dist/dataParser/extended/number.cjs +1 -0
  70. package/dist/dataParser/extended/number.d.ts +9 -2
  71. package/dist/dataParser/extended/number.mjs +1 -0
  72. package/dist/dataParser/extended/object.cjs +1 -0
  73. package/dist/dataParser/extended/object.d.ts +13 -2
  74. package/dist/dataParser/extended/object.mjs +1 -0
  75. package/dist/dataParser/extended/optional.cjs +1 -0
  76. package/dist/dataParser/extended/optional.d.ts +14 -4
  77. package/dist/dataParser/extended/optional.mjs +1 -0
  78. package/dist/dataParser/extended/pipe.cjs +1 -0
  79. package/dist/dataParser/extended/pipe.d.ts +13 -3
  80. package/dist/dataParser/extended/pipe.mjs +1 -0
  81. package/dist/dataParser/extended/record.cjs +3 -2
  82. package/dist/dataParser/extended/record.d.ts +13 -3
  83. package/dist/dataParser/extended/record.mjs +2 -1
  84. package/dist/dataParser/extended/recover.cjs +14 -0
  85. package/dist/dataParser/extended/recover.d.ts +23 -0
  86. package/dist/dataParser/extended/recover.mjs +12 -0
  87. package/dist/dataParser/extended/string.cjs +1 -0
  88. package/dist/dataParser/extended/string.d.ts +9 -2
  89. package/dist/dataParser/extended/string.mjs +1 -0
  90. package/dist/dataParser/extended/templateLiteral.cjs +4 -2
  91. package/dist/dataParser/extended/templateLiteral.d.ts +13 -2
  92. package/dist/dataParser/extended/templateLiteral.mjs +3 -1
  93. package/dist/dataParser/extended/transform.cjs +1 -0
  94. package/dist/dataParser/extended/transform.d.ts +12 -2
  95. package/dist/dataParser/extended/transform.mjs +1 -0
  96. package/dist/dataParser/extended/tuple.cjs +11 -1
  97. package/dist/dataParser/extended/tuple.d.ts +19 -2
  98. package/dist/dataParser/extended/tuple.mjs +11 -1
  99. package/dist/dataParser/extended/union.cjs +1 -0
  100. package/dist/dataParser/extended/union.d.ts +13 -2
  101. package/dist/dataParser/extended/union.mjs +1 -0
  102. package/dist/dataParser/extended/unknown.cjs +1 -0
  103. package/dist/dataParser/extended/unknown.d.ts +13 -2
  104. package/dist/dataParser/extended/unknown.mjs +1 -0
  105. package/dist/dataParser/identifier.cjs +2 -17
  106. package/dist/dataParser/identifier.d.ts +216 -8
  107. package/dist/dataParser/identifier.mjs +2 -17
  108. package/dist/dataParser/index.cjs +29 -18
  109. package/dist/dataParser/index.mjs +18 -14
  110. package/dist/dataParser/parsers/array/checkers/max.cjs +3 -3
  111. package/dist/dataParser/parsers/array/checkers/max.d.ts +2 -2
  112. package/dist/dataParser/parsers/array/checkers/max.mjs +3 -3
  113. package/dist/dataParser/parsers/array/checkers/min.cjs +3 -3
  114. package/dist/dataParser/parsers/array/checkers/min.d.ts +2 -2
  115. package/dist/dataParser/parsers/array/checkers/min.mjs +3 -3
  116. package/dist/dataParser/parsers/array/index.d.ts +14 -7
  117. package/dist/dataParser/parsers/bigint/checkers/max.cjs +3 -3
  118. package/dist/dataParser/parsers/bigint/checkers/max.d.ts +2 -2
  119. package/dist/dataParser/parsers/bigint/checkers/max.mjs +3 -3
  120. package/dist/dataParser/parsers/bigint/checkers/min.cjs +3 -3
  121. package/dist/dataParser/parsers/bigint/checkers/min.d.ts +2 -2
  122. package/dist/dataParser/parsers/bigint/checkers/min.mjs +3 -3
  123. package/dist/dataParser/parsers/bigint/index.d.ts +11 -4
  124. package/dist/dataParser/parsers/boolean.d.ts +16 -4
  125. package/dist/dataParser/parsers/coerce/bigint.cjs +1 -0
  126. package/dist/dataParser/parsers/coerce/bigint.mjs +1 -0
  127. package/dist/dataParser/parsers/coerce/boolean.cjs +1 -0
  128. package/dist/dataParser/parsers/coerce/boolean.mjs +1 -0
  129. package/dist/dataParser/parsers/coerce/empty.cjs +1 -0
  130. package/dist/dataParser/parsers/coerce/empty.mjs +1 -0
  131. package/dist/dataParser/parsers/coerce/nil.cjs +1 -0
  132. package/dist/dataParser/parsers/coerce/nil.mjs +1 -0
  133. package/dist/dataParser/parsers/coerce/number.cjs +1 -0
  134. package/dist/dataParser/parsers/coerce/number.mjs +1 -0
  135. package/dist/dataParser/parsers/coerce/string.cjs +1 -0
  136. package/dist/dataParser/parsers/coerce/string.mjs +1 -0
  137. package/dist/dataParser/parsers/empty.d.ts +16 -4
  138. package/dist/dataParser/parsers/index.d.ts +2 -0
  139. package/dist/dataParser/parsers/lazy.d.ts +16 -4
  140. package/dist/dataParser/parsers/literal.d.ts +16 -4
  141. package/dist/dataParser/parsers/nil.d.ts +16 -4
  142. package/dist/dataParser/parsers/nullable.cjs +3 -2
  143. package/dist/dataParser/parsers/nullable.d.ts +19 -6
  144. package/dist/dataParser/parsers/nullable.mjs +3 -2
  145. package/dist/dataParser/parsers/number/checkers/int.cjs +3 -3
  146. package/dist/dataParser/parsers/number/checkers/int.d.ts +2 -2
  147. package/dist/dataParser/parsers/number/checkers/int.mjs +3 -3
  148. package/dist/dataParser/parsers/number/checkers/max.cjs +3 -3
  149. package/dist/dataParser/parsers/number/checkers/max.d.ts +2 -2
  150. package/dist/dataParser/parsers/number/checkers/max.mjs +3 -3
  151. package/dist/dataParser/parsers/number/checkers/min.cjs +3 -3
  152. package/dist/dataParser/parsers/number/checkers/min.d.ts +2 -2
  153. package/dist/dataParser/parsers/number/checkers/min.mjs +3 -3
  154. package/dist/dataParser/parsers/number/index.d.ts +11 -4
  155. package/dist/dataParser/parsers/object.d.ts +16 -4
  156. package/dist/dataParser/parsers/optional.cjs +3 -2
  157. package/dist/dataParser/parsers/optional.d.ts +19 -6
  158. package/dist/dataParser/parsers/optional.mjs +3 -2
  159. package/dist/dataParser/parsers/pipe.d.ts +16 -4
  160. package/dist/dataParser/parsers/record/findRecordRequiredKey.cjs +50 -0
  161. package/dist/dataParser/parsers/record/findRecordRequiredKey.d.ts +4 -0
  162. package/dist/dataParser/parsers/record/findRecordRequiredKey.mjs +47 -0
  163. package/dist/dataParser/parsers/{record.cjs → record/index.cjs} +21 -3
  164. package/dist/dataParser/parsers/record/index.d.ts +42 -0
  165. package/dist/dataParser/parsers/{record.mjs → record/index.mjs} +21 -4
  166. package/dist/dataParser/parsers/recover.cjs +32 -0
  167. package/dist/dataParser/parsers/recover.d.ts +28 -0
  168. package/dist/dataParser/parsers/recover.mjs +29 -0
  169. package/dist/dataParser/parsers/refine.cjs +18 -0
  170. package/dist/dataParser/parsers/refine.d.ts +17 -0
  171. package/dist/dataParser/parsers/refine.mjs +15 -0
  172. package/dist/dataParser/parsers/string/checkers/email.cjs +3 -3
  173. package/dist/dataParser/parsers/string/checkers/email.d.ts +2 -2
  174. package/dist/dataParser/parsers/string/checkers/email.mjs +3 -3
  175. package/dist/dataParser/parsers/string/checkers/max.cjs +3 -3
  176. package/dist/dataParser/parsers/string/checkers/max.d.ts +2 -2
  177. package/dist/dataParser/parsers/string/checkers/max.mjs +3 -3
  178. package/dist/dataParser/parsers/string/checkers/min.cjs +3 -3
  179. package/dist/dataParser/parsers/string/checkers/min.d.ts +2 -2
  180. package/dist/dataParser/parsers/string/checkers/min.mjs +3 -3
  181. package/dist/dataParser/parsers/string/checkers/regex.cjs +3 -3
  182. package/dist/dataParser/parsers/string/checkers/regex.d.ts +2 -2
  183. package/dist/dataParser/parsers/string/checkers/regex.mjs +3 -3
  184. package/dist/dataParser/parsers/string/checkers/url.cjs +3 -3
  185. package/dist/dataParser/parsers/string/checkers/url.d.ts +2 -2
  186. package/dist/dataParser/parsers/string/checkers/url.mjs +3 -3
  187. package/dist/dataParser/parsers/string/index.d.ts +11 -4
  188. package/dist/dataParser/parsers/templateLiteral/createTemplateLiteralPattern.cjs +75 -0
  189. package/dist/dataParser/parsers/templateLiteral/createTemplateLiteralPattern.d.ts +2 -0
  190. package/dist/dataParser/parsers/templateLiteral/createTemplateLiteralPattern.mjs +73 -0
  191. package/dist/dataParser/parsers/templateLiteral/index.cjs +31 -0
  192. package/dist/dataParser/parsers/templateLiteral/index.d.ts +66 -0
  193. package/dist/dataParser/parsers/templateLiteral/index.mjs +27 -0
  194. package/dist/dataParser/parsers/transform.d.ts +16 -4
  195. package/dist/dataParser/parsers/tuple.d.ts +14 -4
  196. package/dist/dataParser/parsers/union.d.ts +16 -4
  197. package/dist/dataParser/parsers/unknown.d.ts +16 -4
  198. package/dist/dataParser/types/checkers.d.ts +1 -1
  199. package/dist/dataParser/types/dataParsers.d.ts +2 -2
  200. package/dist/either/bool/falsy.cjs +1 -1
  201. package/dist/either/bool/falsy.d.ts +2 -2
  202. package/dist/either/bool/falsy.mjs +1 -1
  203. package/dist/either/bool/truthy.cjs +2 -2
  204. package/dist/either/bool/truthy.d.ts +2 -2
  205. package/dist/either/bool/truthy.mjs +2 -2
  206. package/dist/either/future/create.cjs +1 -1
  207. package/dist/either/future/create.mjs +1 -1
  208. package/dist/either/left/when.d.ts +2 -2
  209. package/dist/either/nullable/empty.cjs +1 -1
  210. package/dist/either/nullable/empty.d.ts +2 -2
  211. package/dist/either/nullable/empty.mjs +1 -1
  212. package/dist/either/nullable/filled.d.ts +2 -2
  213. package/dist/either/nullish/empty.d.ts +2 -2
  214. package/dist/either/nullish/filled.cjs +2 -2
  215. package/dist/either/nullish/filled.d.ts +2 -2
  216. package/dist/either/nullish/filled.mjs +2 -2
  217. package/dist/either/optional/empty.d.ts +2 -2
  218. package/dist/either/optional/filled.cjs +2 -2
  219. package/dist/either/optional/filled.d.ts +2 -2
  220. package/dist/either/optional/filled.mjs +2 -2
  221. package/dist/either/right/asyncPipe.cjs +1 -1
  222. package/dist/either/right/asyncPipe.mjs +1 -1
  223. package/dist/either/right/pipe.cjs +1 -1
  224. package/dist/either/right/pipe.mjs +1 -1
  225. package/dist/either/right/when.d.ts +2 -2
  226. package/dist/generator/asyncReduce.cjs +1 -1
  227. package/dist/generator/asyncReduce.d.ts +4 -3
  228. package/dist/generator/asyncReduce.mjs +1 -1
  229. package/dist/generator/reduce.d.ts +6 -7
  230. package/dist/index.cjs +2 -0
  231. package/dist/index.mjs +1 -0
  232. package/dist/object/entries.d.ts +2 -1
  233. package/dist/object/values.cjs +8 -1
  234. package/dist/object/values.d.ts +1 -3
  235. package/dist/object/values.mjs +8 -1
  236. package/dist/string/types/index.d.ts +1 -0
  237. package/dist/string/types/templateLiteralContainLargeType.d.ts +5 -0
  238. package/package.json +3 -3
  239. package/dist/dataParser/parsers/record.d.ts +0 -30
  240. package/dist/dataParser/parsers/templateLiteral.cjs +0 -47
  241. package/dist/dataParser/parsers/templateLiteral.d.ts +0 -49
  242. package/dist/dataParser/parsers/templateLiteral.mjs +0 -44
@@ -0,0 +1,73 @@
1
+ import { escapeRegExp } from '../../../common/escapeRegExp.mjs';
2
+ import { pipe } from '../../../common/pipe.mjs';
3
+ import { innerPipe } from '../../../common/innerPipe.mjs';
4
+ import { when as when$1 } from '../../../common/when.mjs';
5
+ import { isType } from '../../../common/isType.mjs';
6
+ import { or } from '../../../common/or.mjs';
7
+ import { justReturn } from '../../../common/justReturn.mjs';
8
+ import { find } from '../../../array/find.mjs';
9
+ import { to } from '../../../object/to.mjs';
10
+ import { map } from '../../../array/map.mjs';
11
+ import { join } from '../../../array/join.mjs';
12
+ import '../../../common/globalStore.mjs';
13
+ import '../../../common/builder.mjs';
14
+ import { templateLiteralKind } from './index.mjs';
15
+ import '../../../pattern/result.mjs';
16
+ import { exhaustive } from '../../../pattern/exhaustive.mjs';
17
+ import { when } from '../../../pattern/when.mjs';
18
+ import { replace } from '../../../string/replace.mjs';
19
+ import { numberKind } from '../number/index.mjs';
20
+ import { bigIntKind } from '../bigint/index.mjs';
21
+ import { booleanKind } from '../boolean.mjs';
22
+ import { nilKind } from '../nil.mjs';
23
+ import { emptyKind } from '../empty.mjs';
24
+ import { literalKind } from '../literal.mjs';
25
+ import { stringKind } from '../string/index.mjs';
26
+ import { unionKind } from '../union.mjs';
27
+ import { checkerStringRegexKind } from '../string/checkers/regex.mjs';
28
+ import { checkerStringMaxKind } from '../string/checkers/max.mjs';
29
+ import { checkerStringMinKind } from '../string/checkers/min.mjs';
30
+ import { checkerEmailKind } from '../string/checkers/email.mjs';
31
+ import { checkerIntKind } from '../number/checkers/int.mjs';
32
+
33
+ function createTemplateLiteralPattern(templatePart) {
34
+ return pipe(templatePart, map(innerPipe(when(or([
35
+ isType("string"),
36
+ isType("boolean"),
37
+ isType("bigint"),
38
+ isType("null"),
39
+ isType("undefined"),
40
+ isType("number"),
41
+ ]), innerPipe(when$1(isType("bigint"), (value) => `${value}n`), String, escapeRegExp, (value) => `(?:${value})`)), when(numberKind.has, (dataParser) => pipe(dataParser.definition.checkers, to({
42
+ int: innerPipe(find(checkerIntKind.has), when$1(checkerIntKind.has, justReturn(true))),
43
+ }), ({ int }) => {
44
+ if (int) {
45
+ return "(?:[0-9]+)";
46
+ }
47
+ return "(?:[0-9]+(\\.[0-9]+)?)";
48
+ })), when(bigIntKind.has, () => "(?:[0-9]+n)"), when(booleanKind.has, () => "(?:true|false)"), when(nilKind.has, () => "(?:null)"), when(emptyKind.has, () => "(?:undefined)"), when(literalKind.has, (dataParser) => pipe(dataParser.definition.value, map((element) => createTemplateLiteralPattern([element])), join("|"), (pattern) => `(?:${pattern})`)), when(stringKind.has, (dataParser) => pipe(dataParser.definition.checkers, to({
49
+ email: innerPipe(find(checkerEmailKind.has), when$1(checkerEmailKind.has, (checker) => pipe(checker.definition.pattern.source, replace(/^\^/, ""), replace(/\$$/, "")))),
50
+ min: innerPipe(find(checkerStringMinKind.has), when$1(checkerStringMinKind.has, (checker) => checker.definition.min)),
51
+ max: innerPipe(find(checkerStringMaxKind.has), when$1(checkerStringMaxKind.has, (checker) => checker.definition.max)),
52
+ regex: innerPipe(find(checkerStringRegexKind.has), when$1(checkerStringRegexKind.has, (checker) => pipe(checker.definition.regex.source, replace(/^\^/, ""), replace(/\$$/, "")))),
53
+ }), ({ email, regex, max, min }) => {
54
+ if (email) {
55
+ return email;
56
+ }
57
+ else if (regex) {
58
+ return regex;
59
+ }
60
+ else if (max !== undefined && min !== undefined) {
61
+ return `(?:[^]{${min},${max}})`;
62
+ }
63
+ else if (max !== undefined) {
64
+ return `(?:[^]{0,${max}})`;
65
+ }
66
+ else if (min !== undefined) {
67
+ return `(?:[^]{${min},})`;
68
+ }
69
+ return "(?:[^]*)";
70
+ })), innerPipe(when(templateLiteralKind.has, (dataParser) => pipe(dataParser.definition.pattern.source, replace(/^\^/, ""), replace(/\$$/, ""), (pattern) => `(?:${pattern})`)), when(unionKind.has, (dataParser) => pipe(dataParser.definition.options, map((option) => createTemplateLiteralPattern([option])), join("|"), (pattern) => `(?:${pattern})`)), exhaustive))), join(""));
71
+ }
72
+
73
+ export { createTemplateLiteralPattern };
@@ -0,0 +1,31 @@
1
+ 'use strict';
2
+
3
+ var pipe = require('../../../common/pipe.cjs');
4
+ require('../../../common/globalStore.cjs');
5
+ require('../../../common/builder.cjs');
6
+ var base = require('../../base.cjs');
7
+ var error = require('../../error.cjs');
8
+ var kind = require('../../kind.cjs');
9
+ var createTemplateLiteralPattern = require('./createTemplateLiteralPattern.cjs');
10
+
11
+ const templateLiteralKind = kind.createDataParserKind("template-literal");
12
+ function templateLiteral(template, definition) {
13
+ const pattern = pipe.pipe(createTemplateLiteralPattern.createTemplateLiteralPattern(template), (result) => new RegExp(`^${result}$`));
14
+ return base.dataParserInit(templateLiteralKind, {
15
+ definition: {
16
+ errorMessage: definition?.errorMessage,
17
+ checkers: definition?.checkers ?? [],
18
+ template,
19
+ pattern,
20
+ },
21
+ }, (data, _error, self) => {
22
+ if (typeof data === "string" && self.definition.pattern.test(data)) {
23
+ return data;
24
+ }
25
+ return error.SymbolDataParserErrorIssue;
26
+ });
27
+ }
28
+
29
+ exports.createTemplateLiteralPattern = createTemplateLiteralPattern.createTemplateLiteralPattern;
30
+ exports.templateLiteral = templateLiteral;
31
+ exports.templateLiteralKind = templateLiteralKind;
@@ -0,0 +1,66 @@
1
+ import { type Adaptor, type AnyTuple, type FixDeepFunctionInfer, type Kind, type NeverCoalescing } from "../../../common";
2
+ import { type DataParserDefinition, type DataParser, type Output, type Input, type DataParserChecker } from "../../base";
3
+ import { type AddCheckersToDefinition, type MergeDefinition } from "../../../dataParser/types";
4
+ import { type DataParserCheckerStringMax, type DataParserCheckerStringMin, type DataParserCheckerStringRegex, type DataParserCheckerEmail, type DataParserDefinitionString, type DataParserString } from "../string";
5
+ import { type DataParserCheckerInt, type DataParserDefinitionNumber, type DataParserNumber } from "../number";
6
+ import { type DataParserDefinitionBigInt, type DataParserBigInt } from "../bigint";
7
+ import { type DataParserDefinitionLiteral, type DataParserLiteral } from "../literal";
8
+ import { type DataParserDefinitionEmpty, type DataParserEmpty } from "../empty";
9
+ import { type DataParserDefinitionNil, type DataParserNil } from "../nil";
10
+ import { type DataParserDefinitionBoolean, type DataParserBoolean } from "../boolean";
11
+ import { type CheckerRefineImplementation } from "../refine";
12
+ import { type DataParserDefinitionUnion, type DataParserUnion } from "../union";
13
+ import { type GetPropsWithValueExtends } from "../../../object";
14
+ export * from "./createTemplateLiteralPattern";
15
+ export type TemplateLiteralPrimitiveParts = (string | number | null | undefined | bigint | boolean);
16
+ export type TemplateLiteralParts = (TemplateLiteralPrimitiveParts | DataParserString<Omit<DataParserDefinitionString, "checkers"> & {
17
+ readonly checkers: readonly (DataParserCheckerEmail | DataParserCheckerStringMax | DataParserCheckerStringMin | DataParserCheckerStringRegex)[];
18
+ }> | DataParserNumber<Omit<DataParserDefinitionNumber, "checkers"> & {
19
+ readonly checkers: readonly DataParserCheckerInt[];
20
+ }> | DataParserBigInt<Omit<DataParserDefinitionBigInt, "checkers"> & {
21
+ readonly checkers: readonly [];
22
+ }> | DataParserBoolean<Omit<DataParserDefinitionBoolean, "checkers"> & {
23
+ readonly checkers: readonly [];
24
+ }> | DataParserLiteral<Omit<DataParserDefinitionLiteral, "checkers"> & {
25
+ readonly checkers: readonly [];
26
+ }> | DataParserEmpty<Omit<DataParserDefinitionEmpty, "checkers"> & {
27
+ readonly checkers: readonly [];
28
+ }> | DataParserNil<Omit<DataParserDefinitionNil, "checkers"> & {
29
+ readonly checkers: readonly [];
30
+ }> | DataParserTemplateLiteral<Omit<DataParserDefinitionTemplateLiteral, "checkers"> & {
31
+ readonly checkers: readonly [];
32
+ }> | DataParserUnion<Omit<DataParserDefinitionUnion, "checkers" | "options"> & {
33
+ readonly options: AnyTuple<Exclude<TemplateLiteralParts, TemplateLiteralPrimitiveParts>>;
34
+ readonly checkers: readonly [];
35
+ }>);
36
+ export type TemplateLiteralShape = readonly [TemplateLiteralParts, ...TemplateLiteralParts[]];
37
+ type EligibleTemplateLiteral = string | number | bigint | boolean | null | undefined;
38
+ export type TemplateLiteralShapeOutput<GenericTemplate extends TemplateLiteralShape, GenericLastResult extends string = ""> = GenericTemplate extends readonly [
39
+ infer InferredFirst extends TemplateLiteralParts,
40
+ ...infer InferredRest extends TemplateLiteralParts[]
41
+ ] ? (`${GenericLastResult}${InferredFirst extends TemplateLiteralPrimitiveParts ? InferredFirst extends bigint ? `${InferredFirst}n` : InferredFirst : Adaptor<Output<Exclude<InferredFirst, TemplateLiteralPrimitiveParts>>, EligibleTemplateLiteral>}`) extends infer InferredResult extends string ? InferredRest extends readonly [] ? InferredResult : InferredRest extends TemplateLiteralShape ? TemplateLiteralShapeOutput<InferredRest, InferredResult> : TemplateLiteralShapeOutput<[InferredRest[number]], InferredResult> : never : never;
42
+ export type TemplateLiteralShapeInput<GenericTemplate extends TemplateLiteralShape, GenericLastResult extends string = ""> = GenericTemplate extends readonly [
43
+ infer InferredFirst extends TemplateLiteralParts,
44
+ ...infer InferredRest extends TemplateLiteralParts[]
45
+ ] ? (`${GenericLastResult}${InferredFirst extends TemplateLiteralPrimitiveParts ? InferredFirst extends bigint ? `${InferredFirst}n` : InferredFirst : Adaptor<Input<Exclude<InferredFirst, TemplateLiteralPrimitiveParts>>, EligibleTemplateLiteral>}`) extends infer InferredResult extends string ? InferredRest extends readonly [] ? InferredResult : InferredRest extends TemplateLiteralShape ? TemplateLiteralShapeInput<InferredRest, InferredResult> : TemplateLiteralShapeInput<[InferredRest[number]], InferredResult> : never : never;
46
+ export interface DataParserTemplateLiteralCheckerCustom<GenericInput extends string = string> {
47
+ }
48
+ export type DataParserTemplateLiteralCheckers<GenericInput extends string = string> = (DataParserTemplateLiteralCheckerCustom<GenericInput>[GetPropsWithValueExtends<DataParserTemplateLiteralCheckerCustom<GenericInput>, DataParserChecker>] | CheckerRefineImplementation<GenericInput>);
49
+ export interface DataParserDefinitionTemplateLiteral extends DataParserDefinition<DataParserTemplateLiteralCheckers> {
50
+ readonly template: TemplateLiteralShape;
51
+ readonly pattern: RegExp;
52
+ }
53
+ export declare const templateLiteralKind: import("../../../common").KindHandler<import("../../../common").KindDefinition<"@DuplojsUtilsDataParser/template-literal", unknown>>;
54
+ type _DataParserTemplateLiteral<GenericDefinition extends DataParserDefinitionTemplateLiteral> = (DataParser<GenericDefinition, TemplateLiteralShapeOutput<GenericDefinition["template"]>, TemplateLiteralShapeInput<GenericDefinition["template"]>> & Kind<typeof templateLiteralKind.definition>);
55
+ export interface DataParserTemplateLiteral<GenericDefinition extends DataParserDefinitionTemplateLiteral = DataParserDefinitionTemplateLiteral> extends _DataParserTemplateLiteral<GenericDefinition> {
56
+ addChecker<GenericChecker extends readonly [
57
+ DataParserTemplateLiteralCheckers<Output<this>>,
58
+ ...DataParserTemplateLiteralCheckers<Output<this>>[]
59
+ ]>(...args: FixDeepFunctionInfer<readonly [
60
+ DataParserTemplateLiteralCheckers<Output<this>>,
61
+ ...DataParserTemplateLiteralCheckers<Output<this>>[]
62
+ ], GenericChecker>): DataParserTemplateLiteral<AddCheckersToDefinition<GenericDefinition, GenericChecker>>;
63
+ }
64
+ export declare function templateLiteral<const GenericTemplate extends TemplateLiteralShape, const GenericDefinition extends Partial<Omit<DataParserDefinitionTemplateLiteral, "template" | "pattern">> = never>(template: GenericTemplate, definition?: GenericDefinition): DataParserTemplateLiteral<MergeDefinition<DataParserDefinitionTemplateLiteral, NeverCoalescing<GenericDefinition, {}> & {
65
+ template: GenericTemplate;
66
+ }>>;
@@ -0,0 +1,27 @@
1
+ import { pipe } from '../../../common/pipe.mjs';
2
+ import '../../../common/globalStore.mjs';
3
+ import '../../../common/builder.mjs';
4
+ import { dataParserInit } from '../../base.mjs';
5
+ import { SymbolDataParserErrorIssue } from '../../error.mjs';
6
+ import { createDataParserKind } from '../../kind.mjs';
7
+ import { createTemplateLiteralPattern } from './createTemplateLiteralPattern.mjs';
8
+
9
+ const templateLiteralKind = createDataParserKind("template-literal");
10
+ function templateLiteral(template, definition) {
11
+ const pattern = pipe(createTemplateLiteralPattern(template), (result) => new RegExp(`^${result}$`));
12
+ return dataParserInit(templateLiteralKind, {
13
+ definition: {
14
+ errorMessage: definition?.errorMessage,
15
+ checkers: definition?.checkers ?? [],
16
+ template,
17
+ pattern,
18
+ },
19
+ }, (data, _error, self) => {
20
+ if (typeof data === "string" && self.definition.pattern.test(data)) {
21
+ return data;
22
+ }
23
+ return SymbolDataParserErrorIssue;
24
+ });
25
+ }
26
+
27
+ export { createTemplateLiteralPattern, templateLiteral, templateLiteralKind };
@@ -1,14 +1,26 @@
1
- import { type Kind, type NeverCoalescing } from "../../common";
2
- import { type DataParserDefinition, type DataParser, type Input, type Output, SymbolDataParserError } from "../base";
3
- import { type MergeDefinition } from "../../dataParser/types";
1
+ import { type FixDeepFunctionInfer, type Kind, type NeverCoalescing } from "../../common";
2
+ import { type DataParserDefinition, type DataParser, type Input, type Output, SymbolDataParserError, type DataParserChecker } from "../base";
3
+ import { type AddCheckersToDefinition, type MergeDefinition } from "../../dataParser/types";
4
4
  import { type DataParserError, type SymbolDataParserErrorIssue, SymbolDataParserErrorPromiseIssue } from "../../dataParser/error";
5
- export interface DataParserDefinitionTransform extends DataParserDefinition<never> {
5
+ import { type CheckerRefineImplementation } from "./refine";
6
+ import { type GetPropsWithValueExtends } from "../../object";
7
+ export interface DataParserTransformCheckerCustom<GenericInput extends unknown = unknown> {
8
+ }
9
+ export type DataParserTransformCheckers<GenericInput extends unknown = unknown> = (DataParserTransformCheckerCustom<GenericInput>[GetPropsWithValueExtends<DataParserTransformCheckerCustom<GenericInput>, DataParserChecker>] | CheckerRefineImplementation<GenericInput>);
10
+ export interface DataParserDefinitionTransform extends DataParserDefinition<DataParserTransformCheckers> {
6
11
  readonly inner: DataParser;
7
12
  theFunction(input: any, error: DataParserError): unknown;
8
13
  }
9
14
  export declare const transformKind: import("../../common").KindHandler<import("../../common").KindDefinition<"@DuplojsUtilsDataParser/transform", unknown>>;
10
15
  type _DataParserTransform<GenericDefinition extends DataParserDefinitionTransform> = (DataParser<GenericDefinition, Exclude<Awaited<ReturnType<GenericDefinition["theFunction"]>>, SymbolDataParserError | SymbolDataParserErrorIssue | SymbolDataParserErrorPromiseIssue>, Input<GenericDefinition["inner"]>> & Kind<typeof transformKind.definition>);
11
16
  export interface DataParserTransform<GenericDefinition extends DataParserDefinitionTransform = DataParserDefinitionTransform> extends _DataParserTransform<GenericDefinition> {
17
+ addChecker<GenericChecker extends readonly [
18
+ DataParserTransformCheckers<Output<this>>,
19
+ ...DataParserTransformCheckers<Output<this>>[]
20
+ ]>(...args: FixDeepFunctionInfer<readonly [
21
+ DataParserTransformCheckers<Output<this>>,
22
+ ...DataParserTransformCheckers<Output<this>>[]
23
+ ], GenericChecker>): DataParserTransform<AddCheckersToDefinition<GenericDefinition, GenericChecker>>;
12
24
  }
13
25
  export declare function transform<GenericDataParser extends DataParser, GenericOutput extends unknown, const GenericDefinition extends Partial<Omit<DataParserDefinitionTransform, "inner" | "theFunction">> = never>(inner: GenericDataParser, theFunction: (input: Output<GenericDataParser>, error: DataParserError) => GenericOutput, definition?: GenericDefinition): DataParserTransform<MergeDefinition<DataParserDefinitionTransform, NeverCoalescing<GenericDefinition, {}> & {
14
26
  inner: GenericDataParser;
@@ -1,7 +1,9 @@
1
- import { type UnionContain, type IsEqual, type Kind, type Adaptor, type NeverCoalescing } from "../../common";
2
- import { type DataParserDefinition, type DataParser, type Output, type Input } from "../base";
1
+ import { type UnionContain, type IsEqual, type Kind, type Adaptor, type NeverCoalescing, type FixDeepFunctionInfer, type AnyTuple } from "../../common";
2
+ import { type DataParserDefinition, type DataParser, type Output, type Input, type DataParserChecker } from "../base";
3
3
  import { type AddCheckersToDefinition, type MergeDefinition } from "../../dataParser/types";
4
4
  import { type DataParserCheckerArrayMax, type DataParserCheckerArrayMin } from "./array";
5
+ import { type CheckerRefineImplementation } from "./refine";
6
+ import { type GetPropsWithValueExtends } from "../../object";
5
7
  export type TupleShape = readonly [DataParser, ...DataParser[]];
6
8
  export type DataParserTupleShapeOutput<GenericShape extends TupleShape, GenericRest extends DataParser | undefined> = IsEqual<GenericShape, TupleShape> extends true ? TupleShape : GenericShape extends [
7
9
  infer InferredFirst extends DataParser,
@@ -17,7 +19,9 @@ export type DataParserTupleShapeInput<GenericShape extends TupleShape, GenericRe
17
19
  Input<InferredFirst>,
18
20
  ...(InferredRest extends TupleShape ? DataParserTupleShapeOutput<InferredRest, GenericRest> : UnionContain<GenericRest, undefined> extends true ? [] : Input<Adaptor<GenericRest, DataParser>>[])
19
21
  ] : never;
20
- export type DataParserTupleCheckers = (DataParserCheckerArrayMin | DataParserCheckerArrayMax);
22
+ export interface DataParserTupleCheckerCustom<GenericInput extends AnyTuple<unknown> = AnyTuple<unknown>> {
23
+ }
24
+ export type DataParserTupleCheckers<GenericInput extends AnyTuple<unknown> = AnyTuple<unknown>> = (DataParserTupleCheckerCustom<GenericInput>[GetPropsWithValueExtends<DataParserTupleCheckerCustom<GenericInput>, DataParserChecker>] | DataParserCheckerArrayMin | DataParserCheckerArrayMax | CheckerRefineImplementation<GenericInput>);
21
25
  export interface DataParserDefinitionTuple extends DataParserDefinition<DataParserTupleCheckers> {
22
26
  readonly shape: TupleShape;
23
27
  readonly rest?: DataParser;
@@ -25,7 +29,13 @@ export interface DataParserDefinitionTuple extends DataParserDefinition<DataPars
25
29
  export declare const tupleKind: import("../../common").KindHandler<import("../../common").KindDefinition<"@DuplojsUtilsDataParser/tuple", unknown>>;
26
30
  type _DataParserTuple<GenericDefinition extends DataParserDefinitionTuple> = (DataParser<GenericDefinition, DataParserTupleShapeOutput<GenericDefinition["shape"], GenericDefinition["rest"]>, DataParserTupleShapeInput<GenericDefinition["shape"], GenericDefinition["rest"]>> & Kind<typeof tupleKind.definition>);
27
31
  export interface DataParserTuple<GenericDefinition extends DataParserDefinitionTuple = DataParserDefinitionTuple> extends _DataParserTuple<GenericDefinition> {
28
- addChecker<GenericChecker extends [DataParserTupleCheckers, ...DataParserTupleCheckers[]]>(...args: GenericChecker): DataParserTuple<AddCheckersToDefinition<GenericDefinition, GenericChecker>>;
32
+ addChecker<GenericChecker extends readonly [
33
+ DataParserTupleCheckers<Output<this>>,
34
+ ...DataParserTupleCheckers<Output<this>>[]
35
+ ]>(...args: FixDeepFunctionInfer<readonly [
36
+ DataParserTupleCheckers<Output<this>>,
37
+ ...DataParserTupleCheckers<Output<this>>[]
38
+ ], GenericChecker>): DataParserTuple<AddCheckersToDefinition<GenericDefinition, GenericChecker>>;
29
39
  }
30
40
  export declare function tuple<GenericShape extends TupleShape, const GenericDefinition extends Partial<Omit<DataParserDefinitionTuple, "shape">> = never>(shape: GenericShape, definition?: GenericDefinition): DataParserTuple<MergeDefinition<DataParserDefinitionTuple, NeverCoalescing<GenericDefinition, {}> & {
31
41
  shape: GenericShape;
@@ -1,13 +1,25 @@
1
- import { type NeverCoalescing, type Kind } from "../../common";
2
- import { type DataParserDefinition, type DataParser, type Output, type Input } from "../base";
3
- import { type MergeDefinition } from "../../dataParser/types";
1
+ import { type NeverCoalescing, type Kind, type FixDeepFunctionInfer } from "../../common";
2
+ import { type DataParserDefinition, type DataParser, type Output, type Input, type DataParserChecker } from "../base";
3
+ import { type AddCheckersToDefinition, type MergeDefinition } from "../../dataParser/types";
4
+ import { type CheckerRefineImplementation } from "./refine";
5
+ import { type GetPropsWithValueExtends } from "../../object";
4
6
  export type UnionOptions = readonly [DataParser, ...DataParser[]];
5
- export interface DataParserDefinitionUnion extends DataParserDefinition<never> {
7
+ export interface DataParserUnionCheckerCustom<GenericInput extends unknown = unknown> {
8
+ }
9
+ export type DataParserUnionCheckers<GenericInput extends unknown = unknown> = (DataParserUnionCheckerCustom<GenericInput>[GetPropsWithValueExtends<DataParserUnionCheckerCustom<GenericInput>, DataParserChecker>] | CheckerRefineImplementation<GenericInput>);
10
+ export interface DataParserDefinitionUnion extends DataParserDefinition<DataParserUnionCheckers> {
6
11
  readonly options: UnionOptions;
7
12
  }
8
13
  export declare const unionKind: import("../../common").KindHandler<import("../../common").KindDefinition<"@DuplojsUtilsDataParser/union", unknown>>;
9
14
  type _DataParserUnion<GenericDefinition extends DataParserDefinitionUnion> = (DataParser<GenericDefinition, Output<GenericDefinition["options"][number]>, Input<GenericDefinition["options"][number]>> & Kind<typeof unionKind.definition>);
10
15
  export interface DataParserUnion<GenericDefinition extends DataParserDefinitionUnion = DataParserDefinitionUnion> extends _DataParserUnion<GenericDefinition> {
16
+ addChecker<GenericChecker extends readonly [
17
+ DataParserUnionCheckers<Output<this>>,
18
+ ...DataParserUnionCheckers<Output<this>>[]
19
+ ]>(...args: FixDeepFunctionInfer<readonly [
20
+ DataParserUnionCheckers<Output<this>>,
21
+ ...DataParserUnionCheckers<Output<this>>[]
22
+ ], GenericChecker>): DataParserUnion<AddCheckersToDefinition<GenericDefinition, GenericChecker>>;
11
23
  }
12
24
  export declare function union<GenericOptions extends UnionOptions, const GenericDefinition extends Partial<Omit<DataParserDefinitionUnion, "options">> = never>(options: GenericOptions, definition?: GenericDefinition): DataParserUnion<MergeDefinition<DataParserDefinitionUnion, NeverCoalescing<GenericDefinition, {}> & {
13
25
  options: GenericOptions;
@@ -1,11 +1,23 @@
1
- import { type NeverCoalescing, type Kind } from "../../common";
2
- import { type DataParserDefinition, type DataParser } from "../base";
3
- import { type MergeDefinition } from "../../dataParser/types";
4
- export interface DataParserDefinitionUnknown extends DataParserDefinition<never> {
1
+ import { type NeverCoalescing, type Kind, type FixDeepFunctionInfer } from "../../common";
2
+ import { type DataParserDefinition, type DataParser, type DataParserChecker } from "../base";
3
+ import { type AddCheckersToDefinition, type MergeDefinition } from "../../dataParser/types";
4
+ import { type CheckerRefineImplementation } from "./refine";
5
+ import { type GetPropsWithValueExtends } from "../../object";
6
+ export interface DataParserUnknownCheckerCustom {
7
+ }
8
+ export type DataParserUnknownCheckers = (DataParserUnknownCheckerCustom[GetPropsWithValueExtends<DataParserUnknownCheckerCustom, DataParserChecker>] | CheckerRefineImplementation<unknown>);
9
+ export interface DataParserDefinitionUnknown extends DataParserDefinition<DataParserUnknownCheckers> {
5
10
  }
6
11
  export declare const unknownKind: import("../../common").KindHandler<import("../../common").KindDefinition<"@DuplojsUtilsDataParser/unknown", unknown>>;
7
12
  type _DataParserUnknown<GenericDefinition extends DataParserDefinitionUnknown> = (DataParser<GenericDefinition, unknown, unknown> & Kind<typeof unknownKind.definition>);
8
13
  export interface DataParserUnknown<GenericDefinition extends DataParserDefinitionUnknown = DataParserDefinitionUnknown> extends _DataParserUnknown<GenericDefinition> {
14
+ addChecker<GenericChecker extends readonly [
15
+ DataParserUnknownCheckers,
16
+ ...DataParserUnknownCheckers[]
17
+ ]>(...args: FixDeepFunctionInfer<readonly [
18
+ DataParserUnknownCheckers,
19
+ ...DataParserUnknownCheckers[]
20
+ ], GenericChecker>): DataParserUnknown<AddCheckersToDefinition<GenericDefinition, GenericChecker>>;
9
21
  }
10
22
  export declare function unknown<const GenericDefinition extends Partial<DataParserDefinitionUnknown> = never>(definition?: GenericDefinition): DataParserUnknown<MergeDefinition<DataParserDefinitionUnknown, NeverCoalescing<GenericDefinition, {}>>>;
11
23
  export {};
@@ -4,4 +4,4 @@ import type * as AllDataParser from "../parsers";
4
4
  export interface CheckerCustom {
5
5
  base: DataParserChecker;
6
6
  }
7
- export type DataParserCheckers = (CheckerCustom[GetPropsWithValueExtends<CheckerCustom, DataParserChecker>] | AllDataParser.DataParserCheckerUrl | AllDataParser.DataParserCheckerArrayMax | AllDataParser.DataParserCheckerArrayMin | AllDataParser.DataParserCheckerBigIntMax | AllDataParser.DataParserCheckerBigIntMin | AllDataParser.DataParserCheckerNumberMax | AllDataParser.DataParserCheckerNumberMin | AllDataParser.DataParserCheckerInt | AllDataParser.DataParserCheckerEmail);
7
+ export type DataParserCheckers = (CheckerCustom[GetPropsWithValueExtends<CheckerCustom, DataParserChecker>] | AllDataParser.DataParserCheckerUrl | AllDataParser.DataParserCheckerArrayMax | AllDataParser.DataParserCheckerArrayMin | AllDataParser.DataParserCheckerBigIntMax | AllDataParser.DataParserCheckerBigIntMin | AllDataParser.DataParserCheckerNumberMax | AllDataParser.DataParserCheckerNumberMin | AllDataParser.DataParserCheckerInt | AllDataParser.DataParserCheckerEmail | AllDataParser.DataParserCheckerRefine);
@@ -6,8 +6,8 @@ import { type DataParserExtended } from "../baseExtended";
6
6
  export interface DataParserCustom {
7
7
  base: DataParser;
8
8
  }
9
- export type DataParsers = (DataParserCustom[GetPropsWithValueExtends<DataParserCustom, DataParser>] | AllDataParser.DataParserString | AllDataParser.DataParserObject | AllDataParser.DataParserNumber | AllDataParser.DataParserLiteral | AllDataParser.DataParserUnion | AllDataParser.DataParserArray | AllDataParser.DataParserBigInt | AllDataParser.DataParserTuple | AllDataParser.DataParserTransform | AllDataParser.DataParserBoolean | AllDataParser.DataParserNil | AllDataParser.DataParserEmpty | AllDataParser.DataParserTemplateLiteral | AllDataParser.DataParserPipe | AllDataParser.DataParserNullable | AllDataParser.DataParserOptional | AllDataParser.DataParserLazy | AllDataParser.DataParserUnknown | AllDataParser.DataParserRecord);
9
+ export type DataParsers = (DataParserCustom[GetPropsWithValueExtends<DataParserCustom, DataParser>] | AllDataParser.DataParserString | AllDataParser.DataParserObject | AllDataParser.DataParserNumber | AllDataParser.DataParserLiteral | AllDataParser.DataParserUnion | AllDataParser.DataParserArray | AllDataParser.DataParserBigInt | AllDataParser.DataParserTuple | AllDataParser.DataParserTransform | AllDataParser.DataParserBoolean | AllDataParser.DataParserNil | AllDataParser.DataParserEmpty | AllDataParser.DataParserTemplateLiteral | AllDataParser.DataParserPipe | AllDataParser.DataParserNullable | AllDataParser.DataParserOptional | AllDataParser.DataParserLazy | AllDataParser.DataParserUnknown | AllDataParser.DataParserRecord | AllDataParser.DataParserRecover);
10
10
  export interface DataParserExtendedCustom {
11
11
  base: DataParserExtended;
12
12
  }
13
- export type DataParsersExtended = (DataParserExtendedCustom[GetPropsWithValueExtends<DataParserExtendedCustom, DataParserExtended>] | AllDataParserExtended.DataParserStringExtended | AllDataParserExtended.DataParserObjectExtended | AllDataParserExtended.DataParserNumberExtended | AllDataParserExtended.DataParserLiteralExtended | AllDataParserExtended.DataParserUnionExtended | AllDataParserExtended.DataParserArrayExtended | AllDataParserExtended.DataParserBigIntExtended | AllDataParserExtended.DataParserTupleExtended | AllDataParserExtended.DataParserTransformExtended | AllDataParserExtended.DataParserBooleanExtended | AllDataParserExtended.DataParserNilExtended | AllDataParserExtended.DataParserEmptyExtended | AllDataParserExtended.DataParserTemplateLiteralExtended | AllDataParserExtended.DataParserPipeExtended | AllDataParserExtended.DataParserNullableExtended | AllDataParserExtended.DataParserOptionalExtended | AllDataParserExtended.DataParserLazyExtended | AllDataParserExtended.DataParserUnknownExtended | AllDataParserExtended.DataParserRecordExtended);
13
+ export type DataParsersExtended = (DataParserExtendedCustom[GetPropsWithValueExtends<DataParserExtendedCustom, DataParserExtended>] | AllDataParserExtended.DataParserStringExtended | AllDataParserExtended.DataParserObjectExtended | AllDataParserExtended.DataParserNumberExtended | AllDataParserExtended.DataParserLiteralExtended | AllDataParserExtended.DataParserUnionExtended | AllDataParserExtended.DataParserArrayExtended | AllDataParserExtended.DataParserBigIntExtended | AllDataParserExtended.DataParserTupleExtended | AllDataParserExtended.DataParserTransformExtended | AllDataParserExtended.DataParserBooleanExtended | AllDataParserExtended.DataParserNilExtended | AllDataParserExtended.DataParserEmptyExtended | AllDataParserExtended.DataParserTemplateLiteralExtended | AllDataParserExtended.DataParserPipeExtended | AllDataParserExtended.DataParserNullableExtended | AllDataParserExtended.DataParserOptionalExtended | AllDataParserExtended.DataParserLazyExtended | AllDataParserExtended.DataParserUnknownExtended | AllDataParserExtended.DataParserRecordExtended | AllDataParserExtended.DataParserRecoverExtended);
@@ -3,9 +3,9 @@
3
3
  var unwrap = require('../../common/unwrap.cjs');
4
4
  require('../../common/globalStore.cjs');
5
5
  require('../../common/builder.cjs');
6
+ var create$1 = require('./create.cjs');
6
7
  var kind = require('../kind.cjs');
7
8
  var base = require('./base.cjs');
8
- var create$1 = require('./create.cjs');
9
9
  var create = require('../left/create.cjs');
10
10
  var is = require('../left/is.cjs');
11
11
  var is$1 = require('../right/is.cjs');
@@ -13,6 +13,6 @@ export declare function boolFalsy<const GenericValue extends BoolFalsyValue = un
13
13
  type Either = EitherRight | EitherLeft;
14
14
  export declare function isBoolFalsy<GenericInput extends unknown>(input: GenericInput): input is Extract<GenericInput, EitherBoolFalsy>;
15
15
  type ToEither<GenericValue extends unknown> = GenericValue extends Either ? GenericValue : ReturnType<typeof bool<GenericValue>>;
16
- export declare function whenIsBoolFalsy<const GenericInput extends unknown, const GenericOutput extends AnyValue | EscapeVoid>(theFunction: (eitherValue: Unwrap<Extract<ToEither<GenericInput>, EitherBoolFalsy>>) => GenericOutput): (input: GenericInput) => GenericOutput | Exclude<ToEither<BreakGenericLink<GenericInput>>, EitherBoolFalsy>;
17
- export declare function whenIsBoolFalsy<const GenericInput extends unknown, const GenericOutput extends AnyValue | EscapeVoid>(input: GenericInput, theFunction: (eitherValue: Unwrap<Extract<ToEither<GenericInput>, EitherBoolFalsy>>) => GenericOutput): GenericOutput | Exclude<ToEither<GenericInput>, EitherBoolFalsy>;
16
+ export declare function whenIsBoolFalsy<const GenericInput extends unknown, const GenericOutput extends AnyValue | EscapeVoid>(theFunction: (eitherValue: Unwrap<Extract<ToEither<BreakGenericLink<GenericInput>>, EitherBoolFalsy>>) => GenericOutput): (input: GenericInput) => GenericOutput | Exclude<ToEither<BreakGenericLink<GenericInput>>, EitherBoolFalsy>;
17
+ export declare function whenIsBoolFalsy<const GenericInput extends unknown, const GenericOutput extends AnyValue | EscapeVoid>(input: GenericInput, theFunction: (eitherValue: Unwrap<Extract<ToEither<BreakGenericLink<GenericInput>>, EitherBoolFalsy>>) => GenericOutput): GenericOutput | Exclude<ToEither<GenericInput>, EitherBoolFalsy>;
18
18
  export {};
@@ -1,9 +1,9 @@
1
1
  import { unwrap } from '../../common/unwrap.mjs';
2
2
  import '../../common/globalStore.mjs';
3
3
  import '../../common/builder.mjs';
4
+ import { bool } from './create.mjs';
4
5
  import { createEitherKind } from '../kind.mjs';
5
6
  import { eitherBoolKind } from './base.mjs';
6
- import { bool } from './create.mjs';
7
7
  import { left } from '../left/create.mjs';
8
8
  import { isLeft } from '../left/is.mjs';
9
9
  import { isRight } from '../right/is.mjs';
@@ -3,12 +3,12 @@
3
3
  var unwrap = require('../../common/unwrap.cjs');
4
4
  require('../../common/globalStore.cjs');
5
5
  require('../../common/builder.cjs');
6
- var base = require('./base.cjs');
6
+ var create$1 = require('./create.cjs');
7
7
  var kind = require('../kind.cjs');
8
+ var base = require('./base.cjs');
8
9
  var is$1 = require('../left/is.cjs');
9
10
  var create = require('../right/create.cjs');
10
11
  var is = require('../right/is.cjs');
11
- var create$1 = require('./create.cjs');
12
12
 
13
13
  const eitherBoolTruthyKind = kind.createEitherKind("bool-truthy");
14
14
  function boolTruthy(value) {
@@ -12,6 +12,6 @@ export declare function boolTruthy<const GenericValue extends unknown>(value: Ge
12
12
  type Either = EitherRight | EitherLeft;
13
13
  export declare function isBoolTruthy<GenericInput extends unknown>(input: GenericInput): input is Extract<GenericInput, EitherBoolTruthy>;
14
14
  type ToEither<GenericValue extends unknown> = GenericValue extends Either ? GenericValue : ReturnType<typeof bool<GenericValue>>;
15
- export declare function whenIsBoolTruthy<const GenericInput extends unknown, const GenericOutput extends AnyValue | EscapeVoid>(theFunction: (eitherValue: Unwrap<Extract<ToEither<GenericInput>, EitherBoolTruthy>>) => GenericOutput): (input: GenericInput) => GenericOutput | Exclude<ToEither<BreakGenericLink<GenericInput>>, EitherBoolTruthy>;
16
- export declare function whenIsBoolTruthy<const GenericInput extends unknown, const GenericOutput extends AnyValue | EscapeVoid>(input: GenericInput, theFunction: (eitherValue: Unwrap<Extract<ToEither<GenericInput>, EitherBoolTruthy>>) => GenericOutput): GenericOutput | Exclude<ToEither<GenericInput>, EitherBoolTruthy>;
15
+ export declare function whenIsBoolTruthy<const GenericInput extends unknown, const GenericOutput extends AnyValue | EscapeVoid>(theFunction: (eitherValue: Unwrap<Extract<ToEither<BreakGenericLink<GenericInput>>, EitherBoolTruthy>>) => GenericOutput): (input: GenericInput) => GenericOutput | Exclude<ToEither<BreakGenericLink<GenericInput>>, EitherBoolTruthy>;
16
+ export declare function whenIsBoolTruthy<const GenericInput extends unknown, const GenericOutput extends AnyValue | EscapeVoid>(input: GenericInput, theFunction: (eitherValue: Unwrap<Extract<ToEither<BreakGenericLink<GenericInput>>, EitherBoolTruthy>>) => GenericOutput): GenericOutput | Exclude<ToEither<GenericInput>, EitherBoolTruthy>;
17
17
  export {};
@@ -1,12 +1,12 @@
1
1
  import { unwrap } from '../../common/unwrap.mjs';
2
2
  import '../../common/globalStore.mjs';
3
3
  import '../../common/builder.mjs';
4
- import { eitherBoolKind } from './base.mjs';
4
+ import { bool } from './create.mjs';
5
5
  import { createEitherKind } from '../kind.mjs';
6
+ import { eitherBoolKind } from './base.mjs';
6
7
  import { isLeft } from '../left/is.mjs';
7
8
  import { right } from '../right/create.mjs';
8
9
  import { isRight } from '../right/is.mjs';
9
- import { bool } from './create.mjs';
10
10
 
11
11
  const eitherBoolTruthyKind = createEitherKind("bool-truthy");
12
12
  function boolTruthy(value) {
@@ -2,10 +2,10 @@
2
2
 
3
3
  require('../../common/globalStore.cjs');
4
4
  require('../../common/builder.cjs');
5
- var is$1 = require('../left/is.cjs');
6
5
  var success = require('./success.cjs');
7
6
  var error = require('./error.cjs');
8
7
  var is = require('../right/is.cjs');
8
+ var is$1 = require('../left/is.cjs');
9
9
 
10
10
  const kind = "kind-future-either";
11
11
  class Future extends Promise {
@@ -1,9 +1,9 @@
1
1
  import '../../common/globalStore.mjs';
2
2
  import '../../common/builder.mjs';
3
- import { isLeft } from '../left/is.mjs';
4
3
  import { futureSuccess } from './success.mjs';
5
4
  import { futureError } from './error.mjs';
6
5
  import { isRight } from '../right/is.mjs';
6
+ import { isLeft } from '../left/is.mjs';
7
7
 
8
8
  const kind = "kind-future-either";
9
9
  class Future extends Promise {
@@ -1,4 +1,4 @@
1
1
  import { type EscapeVoid, type AnyValue, type Unwrap, type BreakGenericLink } from "../../common";
2
2
  import { type EitherLeft } from "./create";
3
- export declare function whenIsLeft<const GenericInput extends unknown, const GenericOutput extends AnyValue | EscapeVoid>(theFunction: (eitherValue: Unwrap<Extract<GenericInput, EitherLeft>>) => GenericOutput): (input: GenericInput) => Exclude<BreakGenericLink<GenericInput>, EitherLeft> | GenericOutput;
4
- export declare function whenIsLeft<const GenericInput extends unknown, const GenericOutput extends AnyValue | EscapeVoid>(input: GenericInput, theFunction: (eitherValue: Unwrap<Extract<GenericInput, EitherLeft>>) => GenericOutput): Exclude<GenericInput, EitherLeft> | GenericOutput;
3
+ export declare function whenIsLeft<const GenericInput extends unknown, const GenericOutput extends AnyValue | EscapeVoid>(theFunction: (eitherValue: Unwrap<Extract<BreakGenericLink<GenericInput>, EitherLeft>>) => GenericOutput): (input: GenericInput) => Exclude<BreakGenericLink<GenericInput>, EitherLeft> | GenericOutput;
4
+ export declare function whenIsLeft<const GenericInput extends unknown, const GenericOutput extends AnyValue | EscapeVoid>(input: GenericInput, theFunction: (eitherValue: Unwrap<Extract<BreakGenericLink<GenericInput>, EitherLeft>>) => GenericOutput): Exclude<GenericInput, EitherLeft> | GenericOutput;
@@ -3,8 +3,8 @@
3
3
  var unwrap = require('../../common/unwrap.cjs');
4
4
  require('../../common/globalStore.cjs');
5
5
  require('../../common/builder.cjs');
6
- var create = require('../left/create.cjs');
7
6
  var kind = require('../kind.cjs');
7
+ var create = require('../left/create.cjs');
8
8
  var is = require('../left/is.cjs');
9
9
  var is$1 = require('../right/is.cjs');
10
10
  var create$1 = require('./create.cjs');
@@ -12,6 +12,6 @@ type Either = EitherRight | EitherLeft;
12
12
  export declare function nullableEmpty(): EitherNullableEmpty;
13
13
  export declare function isNullableEmpty<GenericInput extends unknown>(input: GenericInput): input is Extract<GenericInput, EitherNullableEmpty>;
14
14
  type ToEither<GenericValue extends unknown> = GenericValue extends Either ? GenericValue : ReturnType<typeof nullable<GenericValue>>;
15
- export declare function whenIsNullableEmpty<const GenericInput extends unknown, const GenericOutput extends AnyValue | EscapeVoid>(theFunction: (eitherValue: Unwrap<Extract<ToEither<GenericInput>, EitherNullableEmpty>>) => GenericOutput): (input: GenericInput) => GenericOutput | Exclude<ToEither<GenericInput>, EitherNullableEmpty>;
16
- export declare function whenIsNullableEmpty<const GenericInput extends unknown, const GenericOutput extends AnyValue | EscapeVoid>(input: GenericInput, theFunction: (eitherValue: Unwrap<Extract<ToEither<GenericInput>, EitherNullableEmpty>>) => GenericOutput): GenericOutput | Exclude<ToEither<BreakGenericLink<GenericInput>>, EitherNullableEmpty>;
15
+ export declare function whenIsNullableEmpty<const GenericInput extends unknown, const GenericOutput extends AnyValue | EscapeVoid>(theFunction: (eitherValue: Unwrap<Extract<ToEither<BreakGenericLink<GenericInput>>, EitherNullableEmpty>>) => GenericOutput): (input: GenericInput) => GenericOutput | Exclude<ToEither<GenericInput>, EitherNullableEmpty>;
16
+ export declare function whenIsNullableEmpty<const GenericInput extends unknown, const GenericOutput extends AnyValue | EscapeVoid>(input: GenericInput, theFunction: (eitherValue: Unwrap<Extract<ToEither<BreakGenericLink<GenericInput>>, EitherNullableEmpty>>) => GenericOutput): GenericOutput | Exclude<ToEither<BreakGenericLink<GenericInput>>, EitherNullableEmpty>;
17
17
  export {};
@@ -1,8 +1,8 @@
1
1
  import { unwrap } from '../../common/unwrap.mjs';
2
2
  import '../../common/globalStore.mjs';
3
3
  import '../../common/builder.mjs';
4
- import { left } from '../left/create.mjs';
5
4
  import { createEitherKind } from '../kind.mjs';
5
+ import { left } from '../left/create.mjs';
6
6
  import { isLeft } from '../left/is.mjs';
7
7
  import { isRight } from '../right/is.mjs';
8
8
  import { nullable } from './create.mjs';
@@ -12,6 +12,6 @@ type Either = EitherRight | EitherLeft;
12
12
  export declare function nullableFilled<const GenericValue extends unknown>(value: GenericValue): EitherNullableFilled<GenericValue>;
13
13
  export declare function isNullableFilled<GenericInput extends unknown>(input: GenericInput): input is Extract<GenericInput, EitherNullableFilled>;
14
14
  type ToEither<GenericValue extends unknown> = GenericValue extends Either ? GenericValue : ReturnType<typeof nullable<GenericValue>>;
15
- export declare function whenIsNullableFilled<const GenericInput extends unknown, const GenericOutput extends AnyValue | EscapeVoid>(theFunction: (eitherValue: Unwrap<Extract<ToEither<GenericInput>, EitherNullableFilled>>) => GenericOutput): (input: GenericInput) => GenericOutput | Exclude<ToEither<BreakGenericLink<GenericInput>>, EitherNullableFilled>;
16
- export declare function whenIsNullableFilled<const GenericInput extends unknown, const GenericOutput extends AnyValue | EscapeVoid>(input: GenericInput, theFunction: (eitherValue: Unwrap<Extract<ToEither<GenericInput>, EitherNullableFilled>>) => GenericOutput): GenericOutput | Exclude<ToEither<GenericInput>, EitherNullableFilled>;
15
+ export declare function whenIsNullableFilled<const GenericInput extends unknown, const GenericOutput extends AnyValue | EscapeVoid>(theFunction: (eitherValue: Unwrap<Extract<ToEither<BreakGenericLink<GenericInput>>, EitherNullableFilled>>) => GenericOutput): (input: GenericInput) => GenericOutput | Exclude<ToEither<BreakGenericLink<GenericInput>>, EitherNullableFilled>;
16
+ export declare function whenIsNullableFilled<const GenericInput extends unknown, const GenericOutput extends AnyValue | EscapeVoid>(input: GenericInput, theFunction: (eitherValue: Unwrap<Extract<ToEither<BreakGenericLink<GenericInput>>, EitherNullableFilled>>) => GenericOutput): GenericOutput | Exclude<ToEither<GenericInput>, EitherNullableFilled>;
17
17
  export {};
@@ -13,6 +13,6 @@ export declare function nullishEmpty<const GenericValue extends NullishValue = u
13
13
  type Either = EitherRight | EitherLeft;
14
14
  export declare function isNullishEmpty<GenericInput extends unknown>(input: GenericInput): input is Extract<GenericInput, EitherNullishEmpty>;
15
15
  type ToEither<GenericValue extends unknown> = GenericValue extends Either ? GenericValue : ReturnType<typeof nullish<GenericValue>>;
16
- export declare function whenIsNullishEmpty<const GenericInput extends unknown, const GenericOutput extends AnyValue | EscapeVoid>(theFunction: (eitherValue: Unwrap<Extract<ToEither<GenericInput>, EitherNullishEmpty>>) => GenericOutput): (input: GenericInput) => GenericOutput | Exclude<ToEither<BreakGenericLink<GenericInput>>, EitherNullishEmpty>;
17
- export declare function whenIsNullishEmpty<const GenericInput extends unknown, const GenericOutput extends AnyValue | EscapeVoid>(input: GenericInput, theFunction: (eitherValue: Unwrap<Extract<ToEither<GenericInput>, EitherNullishEmpty>>) => GenericOutput): GenericOutput | Exclude<ToEither<GenericInput>, EitherNullishEmpty>;
16
+ export declare function whenIsNullishEmpty<const GenericInput extends unknown, const GenericOutput extends AnyValue | EscapeVoid>(theFunction: (eitherValue: Unwrap<Extract<ToEither<BreakGenericLink<GenericInput>>, EitherNullishEmpty>>) => GenericOutput): (input: GenericInput) => GenericOutput | Exclude<ToEither<BreakGenericLink<GenericInput>>, EitherNullishEmpty>;
17
+ export declare function whenIsNullishEmpty<const GenericInput extends unknown, const GenericOutput extends AnyValue | EscapeVoid>(input: GenericInput, theFunction: (eitherValue: Unwrap<Extract<ToEither<BreakGenericLink<GenericInput>>, EitherNullishEmpty>>) => GenericOutput): GenericOutput | Exclude<ToEither<GenericInput>, EitherNullishEmpty>;
18
18
  export {};
@@ -5,10 +5,10 @@ var is$1 = require('../left/is.cjs');
5
5
  var unwrap = require('../../common/unwrap.cjs');
6
6
  require('../../common/globalStore.cjs');
7
7
  require('../../common/builder.cjs');
8
- var create = require('../right/create.cjs');
9
- var is = require('../right/is.cjs');
10
8
  var create$1 = require('./create.cjs');
11
9
  var base = require('./base.cjs');
10
+ var create = require('../right/create.cjs');
11
+ var is = require('../right/is.cjs');
12
12
 
13
13
  const eitherNullishFilledKind = kind.createEitherKind("nullish-filled");
14
14
  function nullishFilled(value) {
@@ -12,6 +12,6 @@ export declare function nullishFilled<const GenericValue extends unknown>(value:
12
12
  type Either = EitherRight | EitherLeft;
13
13
  export declare function isNullishFilled<GenericInput extends unknown>(input: GenericInput): input is Extract<GenericInput, EitherNullishFilled>;
14
14
  type ToEither<GenericValue extends unknown> = GenericValue extends Either ? GenericValue : ReturnType<typeof nullish<GenericValue>>;
15
- export declare function whenIsNullishFilled<const GenericInput extends unknown, const GenericOutput extends AnyValue | EscapeVoid>(theFunction: (eitherValue: Unwrap<Extract<ToEither<GenericInput>, EitherNullishFilled>>) => GenericOutput): (input: GenericInput) => GenericOutput | Exclude<ToEither<BreakGenericLink<GenericInput>>, EitherNullishFilled>;
16
- export declare function whenIsNullishFilled<const GenericInput extends unknown, const GenericOutput extends AnyValue | EscapeVoid>(input: GenericInput, theFunction: (eitherValue: Unwrap<Extract<ToEither<GenericInput>, EitherNullishFilled>>) => GenericOutput): GenericOutput | Exclude<ToEither<GenericInput>, EitherNullishFilled>;
15
+ export declare function whenIsNullishFilled<const GenericInput extends unknown, const GenericOutput extends AnyValue | EscapeVoid>(theFunction: (eitherValue: Unwrap<Extract<ToEither<BreakGenericLink<GenericInput>>, EitherNullishFilled>>) => GenericOutput): (input: GenericInput) => GenericOutput | Exclude<ToEither<BreakGenericLink<GenericInput>>, EitherNullishFilled>;
16
+ export declare function whenIsNullishFilled<const GenericInput extends unknown, const GenericOutput extends AnyValue | EscapeVoid>(input: GenericInput, theFunction: (eitherValue: Unwrap<Extract<ToEither<BreakGenericLink<GenericInput>>, EitherNullishFilled>>) => GenericOutput): GenericOutput | Exclude<ToEither<GenericInput>, EitherNullishFilled>;
17
17
  export {};
@@ -3,10 +3,10 @@ import { isLeft } from '../left/is.mjs';
3
3
  import { unwrap } from '../../common/unwrap.mjs';
4
4
  import '../../common/globalStore.mjs';
5
5
  import '../../common/builder.mjs';
6
- import { right } from '../right/create.mjs';
7
- import { isRight } from '../right/is.mjs';
8
6
  import { nullish } from './create.mjs';
9
7
  import { eitherNullishKind } from './base.mjs';
8
+ import { right } from '../right/create.mjs';
9
+ import { isRight } from '../right/is.mjs';
10
10
 
11
11
  const eitherNullishFilledKind = createEitherKind("nullish-filled");
12
12
  function nullishFilled(value) {
@@ -12,6 +12,6 @@ type Either = EitherRight | EitherLeft;
12
12
  export declare function optionalEmpty(): EitherOptionalEmpty;
13
13
  export declare function isOptionalEmpty<GenericInput extends unknown>(input: GenericInput): input is Extract<GenericInput, EitherOptionalEmpty>;
14
14
  type ToOptionalEither<GenericValue extends unknown> = GenericValue extends Either ? GenericValue : ReturnType<typeof optional<GenericValue>>;
15
- export declare function whenIsOptionalEmpty<const GenericInput extends unknown, const GenericOutput extends AnyValue | EscapeVoid>(theFunction: (eitherValue: Unwrap<Extract<ToOptionalEither<GenericInput>, EitherOptionalEmpty>>) => GenericOutput): (input: GenericInput) => GenericOutput | Exclude<ToOptionalEither<BreakGenericLink<GenericInput>>, EitherOptionalEmpty>;
16
- export declare function whenIsOptionalEmpty<const GenericInput extends unknown, const GenericOutput extends AnyValue | EscapeVoid>(input: GenericInput, theFunction: (eitherValue: Unwrap<Extract<ToOptionalEither<GenericInput>, EitherOptionalEmpty>>) => GenericOutput): GenericOutput | Exclude<ToOptionalEither<GenericInput>, EitherOptionalEmpty>;
15
+ export declare function whenIsOptionalEmpty<const GenericInput extends unknown, const GenericOutput extends AnyValue | EscapeVoid>(theFunction: (eitherValue: Unwrap<Extract<ToOptionalEither<BreakGenericLink<GenericInput>>, EitherOptionalEmpty>>) => GenericOutput): (input: GenericInput) => GenericOutput | Exclude<ToOptionalEither<BreakGenericLink<GenericInput>>, EitherOptionalEmpty>;
16
+ export declare function whenIsOptionalEmpty<const GenericInput extends unknown, const GenericOutput extends AnyValue | EscapeVoid>(input: GenericInput, theFunction: (eitherValue: Unwrap<Extract<ToOptionalEither<BreakGenericLink<GenericInput>>, EitherOptionalEmpty>>) => GenericOutput): GenericOutput | Exclude<ToOptionalEither<GenericInput>, EitherOptionalEmpty>;
17
17
  export {};