@duplojs/utils 1.1.9 → 1.1.11

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 (259) hide show
  1. package/dist/array/reduce.cjs +1 -0
  2. package/dist/array/reduce.mjs +1 -0
  3. package/dist/array/reduceRight.cjs +1 -0
  4. package/dist/array/reduceRight.mjs +1 -0
  5. package/dist/common/builder.cjs +70 -0
  6. package/dist/common/builder.d.ts +34 -0
  7. package/dist/common/builder.mjs +66 -0
  8. package/dist/common/index.d.ts +1 -0
  9. package/dist/common/instanceOf.cjs +1 -0
  10. package/dist/common/instanceOf.mjs +1 -0
  11. package/dist/common/kind.d.ts +3 -2
  12. package/dist/common/types/index.d.ts +1 -0
  13. package/dist/common/types/removeFromUnion.d.ts +2 -0
  14. package/dist/common/types/unionContain.d.ts +1 -1
  15. package/dist/dataParser/base.cjs +4 -3
  16. package/dist/dataParser/base.d.ts +4 -4
  17. package/dist/dataParser/base.mjs +4 -3
  18. package/dist/dataParser/baseExtended.cjs +4 -3
  19. package/dist/dataParser/baseExtended.d.ts +5 -5
  20. package/dist/dataParser/baseExtended.mjs +4 -3
  21. package/dist/dataParser/error.cjs +9 -9
  22. package/dist/dataParser/error.d.ts +10 -9
  23. package/dist/dataParser/error.mjs +7 -7
  24. package/dist/dataParser/extended/array.cjs +1 -0
  25. package/dist/dataParser/extended/array.d.ts +3 -2
  26. package/dist/dataParser/extended/array.mjs +1 -0
  27. package/dist/dataParser/extended/bigint.cjs +1 -0
  28. package/dist/dataParser/extended/bigint.mjs +1 -0
  29. package/dist/dataParser/extended/boolean.cjs +1 -0
  30. package/dist/dataParser/extended/boolean.mjs +1 -0
  31. package/dist/dataParser/extended/coerce/bigint.cjs +1 -0
  32. package/dist/dataParser/extended/coerce/bigint.mjs +1 -0
  33. package/dist/dataParser/extended/coerce/boolean.cjs +1 -0
  34. package/dist/dataParser/extended/coerce/boolean.mjs +1 -0
  35. package/dist/dataParser/extended/coerce/empty.cjs +1 -0
  36. package/dist/dataParser/extended/coerce/empty.mjs +1 -0
  37. package/dist/dataParser/extended/coerce/nil.cjs +1 -0
  38. package/dist/dataParser/extended/coerce/nil.mjs +1 -0
  39. package/dist/dataParser/extended/coerce/number.cjs +1 -0
  40. package/dist/dataParser/extended/coerce/number.mjs +1 -0
  41. package/dist/dataParser/extended/coerce/string.cjs +1 -0
  42. package/dist/dataParser/extended/coerce/string.mjs +1 -0
  43. package/dist/dataParser/extended/empty.cjs +1 -0
  44. package/dist/dataParser/extended/empty.mjs +1 -0
  45. package/dist/dataParser/extended/lazy.cjs +1 -0
  46. package/dist/dataParser/extended/lazy.d.ts +3 -2
  47. package/dist/dataParser/extended/lazy.mjs +1 -0
  48. package/dist/dataParser/extended/literal.cjs +1 -0
  49. package/dist/dataParser/extended/literal.mjs +1 -0
  50. package/dist/dataParser/extended/nil.cjs +1 -0
  51. package/dist/dataParser/extended/nil.mjs +1 -0
  52. package/dist/dataParser/extended/nullable.cjs +1 -0
  53. package/dist/dataParser/extended/nullable.d.ts +3 -2
  54. package/dist/dataParser/extended/nullable.mjs +1 -0
  55. package/dist/dataParser/extended/number.cjs +1 -0
  56. package/dist/dataParser/extended/number.mjs +1 -0
  57. package/dist/dataParser/extended/object.cjs +1 -0
  58. package/dist/dataParser/extended/object.mjs +1 -0
  59. package/dist/dataParser/extended/optional.cjs +1 -0
  60. package/dist/dataParser/extended/optional.d.ts +3 -2
  61. package/dist/dataParser/extended/optional.mjs +1 -0
  62. package/dist/dataParser/extended/pipe.cjs +1 -0
  63. package/dist/dataParser/extended/pipe.d.ts +3 -2
  64. package/dist/dataParser/extended/pipe.mjs +1 -0
  65. package/dist/dataParser/extended/record.cjs +1 -0
  66. package/dist/dataParser/extended/record.d.ts +3 -2
  67. package/dist/dataParser/extended/record.mjs +1 -0
  68. package/dist/dataParser/extended/string.cjs +1 -0
  69. package/dist/dataParser/extended/string.mjs +1 -0
  70. package/dist/dataParser/extended/templateLiteral.cjs +1 -0
  71. package/dist/dataParser/extended/templateLiteral.mjs +1 -0
  72. package/dist/dataParser/extended/transform.cjs +1 -0
  73. package/dist/dataParser/extended/transform.d.ts +3 -3
  74. package/dist/dataParser/extended/transform.mjs +1 -0
  75. package/dist/dataParser/extended/tuple.cjs +1 -0
  76. package/dist/dataParser/extended/tuple.mjs +1 -0
  77. package/dist/dataParser/extended/union.cjs +1 -0
  78. package/dist/dataParser/extended/union.mjs +1 -0
  79. package/dist/dataParser/extended/unknown.cjs +1 -0
  80. package/dist/dataParser/extended/unknown.mjs +1 -0
  81. package/dist/dataParser/identifier.cjs +32 -0
  82. package/dist/dataParser/identifier.d.ts +9 -0
  83. package/dist/dataParser/identifier.mjs +30 -0
  84. package/dist/dataParser/index.cjs +26 -24
  85. package/dist/dataParser/index.d.ts +1 -0
  86. package/dist/dataParser/index.mjs +23 -22
  87. package/dist/dataParser/kind.cjs +2 -1
  88. package/dist/dataParser/kind.d.ts +1 -1
  89. package/dist/dataParser/kind.mjs +2 -1
  90. package/dist/dataParser/parsers/array/checkers/max.d.ts +1 -1
  91. package/dist/dataParser/parsers/array/checkers/min.d.ts +1 -1
  92. package/dist/dataParser/parsers/array/index.cjs +3 -3
  93. package/dist/dataParser/parsers/array/index.d.ts +5 -5
  94. package/dist/dataParser/parsers/array/index.mjs +3 -3
  95. package/dist/dataParser/parsers/bigint/checkers/max.d.ts +1 -1
  96. package/dist/dataParser/parsers/bigint/checkers/min.d.ts +1 -1
  97. package/dist/dataParser/parsers/bigint/index.cjs +3 -3
  98. package/dist/dataParser/parsers/bigint/index.d.ts +2 -2
  99. package/dist/dataParser/parsers/bigint/index.mjs +3 -3
  100. package/dist/dataParser/parsers/boolean.cjs +3 -3
  101. package/dist/dataParser/parsers/boolean.d.ts +2 -2
  102. package/dist/dataParser/parsers/boolean.mjs +3 -3
  103. package/dist/dataParser/parsers/coerce/bigint.cjs +1 -0
  104. package/dist/dataParser/parsers/coerce/bigint.mjs +1 -0
  105. package/dist/dataParser/parsers/coerce/boolean.cjs +1 -0
  106. package/dist/dataParser/parsers/coerce/boolean.mjs +1 -0
  107. package/dist/dataParser/parsers/coerce/empty.cjs +1 -0
  108. package/dist/dataParser/parsers/coerce/empty.mjs +1 -0
  109. package/dist/dataParser/parsers/coerce/nil.cjs +1 -0
  110. package/dist/dataParser/parsers/coerce/nil.mjs +1 -0
  111. package/dist/dataParser/parsers/coerce/number.cjs +1 -0
  112. package/dist/dataParser/parsers/coerce/number.mjs +1 -0
  113. package/dist/dataParser/parsers/coerce/string.cjs +1 -0
  114. package/dist/dataParser/parsers/coerce/string.mjs +1 -0
  115. package/dist/dataParser/parsers/empty.cjs +3 -3
  116. package/dist/dataParser/parsers/empty.d.ts +2 -2
  117. package/dist/dataParser/parsers/empty.mjs +3 -3
  118. package/dist/dataParser/parsers/lazy.cjs +3 -3
  119. package/dist/dataParser/parsers/lazy.d.ts +5 -5
  120. package/dist/dataParser/parsers/lazy.mjs +3 -3
  121. package/dist/dataParser/parsers/literal.cjs +4 -3
  122. package/dist/dataParser/parsers/literal.d.ts +2 -2
  123. package/dist/dataParser/parsers/literal.mjs +4 -3
  124. package/dist/dataParser/parsers/nil.cjs +3 -3
  125. package/dist/dataParser/parsers/nil.d.ts +2 -2
  126. package/dist/dataParser/parsers/nil.mjs +3 -3
  127. package/dist/dataParser/parsers/nullable.cjs +3 -3
  128. package/dist/dataParser/parsers/nullable.d.ts +5 -5
  129. package/dist/dataParser/parsers/nullable.mjs +3 -3
  130. package/dist/dataParser/parsers/number/checkers/int.d.ts +1 -1
  131. package/dist/dataParser/parsers/number/checkers/max.d.ts +1 -1
  132. package/dist/dataParser/parsers/number/checkers/min.d.ts +1 -1
  133. package/dist/dataParser/parsers/number/index.cjs +3 -3
  134. package/dist/dataParser/parsers/number/index.d.ts +2 -2
  135. package/dist/dataParser/parsers/number/index.mjs +3 -3
  136. package/dist/dataParser/parsers/object.cjs +4 -3
  137. package/dist/dataParser/parsers/object.d.ts +5 -5
  138. package/dist/dataParser/parsers/object.mjs +4 -3
  139. package/dist/dataParser/parsers/optional.cjs +3 -3
  140. package/dist/dataParser/parsers/optional.d.ts +5 -5
  141. package/dist/dataParser/parsers/optional.mjs +3 -3
  142. package/dist/dataParser/parsers/pipe.cjs +3 -3
  143. package/dist/dataParser/parsers/pipe.d.ts +6 -6
  144. package/dist/dataParser/parsers/pipe.mjs +3 -3
  145. package/dist/dataParser/parsers/record.cjs +3 -3
  146. package/dist/dataParser/parsers/record.d.ts +7 -7
  147. package/dist/dataParser/parsers/record.mjs +3 -3
  148. package/dist/dataParser/parsers/string/checkers/email.d.ts +1 -1
  149. package/dist/dataParser/parsers/string/checkers/max.d.ts +1 -1
  150. package/dist/dataParser/parsers/string/checkers/min.d.ts +1 -1
  151. package/dist/dataParser/parsers/string/checkers/regex.d.ts +1 -1
  152. package/dist/dataParser/parsers/string/checkers/url.d.ts +1 -1
  153. package/dist/dataParser/parsers/string/index.cjs +3 -3
  154. package/dist/dataParser/parsers/string/index.d.ts +2 -2
  155. package/dist/dataParser/parsers/string/index.mjs +3 -3
  156. package/dist/dataParser/parsers/templateLiteral.cjs +5 -4
  157. package/dist/dataParser/parsers/templateLiteral.d.ts +2 -2
  158. package/dist/dataParser/parsers/templateLiteral.mjs +12 -11
  159. package/dist/dataParser/parsers/transform.cjs +3 -3
  160. package/dist/dataParser/parsers/transform.d.ts +5 -5
  161. package/dist/dataParser/parsers/transform.mjs +3 -3
  162. package/dist/dataParser/parsers/tuple.cjs +3 -3
  163. package/dist/dataParser/parsers/tuple.d.ts +11 -11
  164. package/dist/dataParser/parsers/tuple.mjs +3 -3
  165. package/dist/dataParser/parsers/union.cjs +3 -3
  166. package/dist/dataParser/parsers/union.d.ts +4 -4
  167. package/dist/dataParser/parsers/union.mjs +3 -3
  168. package/dist/dataParser/parsers/unknown.cjs +3 -3
  169. package/dist/dataParser/parsers/unknown.d.ts +2 -2
  170. package/dist/dataParser/parsers/unknown.mjs +3 -3
  171. package/dist/dataParser/types/checkers.d.ts +5 -1
  172. package/dist/dataParser/types/dataParsers.d.ts +9 -1
  173. package/dist/either/bool/base.d.ts +1 -1
  174. package/dist/either/bool/falsy.cjs +1 -0
  175. package/dist/either/bool/falsy.d.ts +1 -1
  176. package/dist/either/bool/falsy.mjs +1 -0
  177. package/dist/either/bool/truthy.cjs +1 -0
  178. package/dist/either/bool/truthy.d.ts +1 -1
  179. package/dist/either/bool/truthy.mjs +1 -0
  180. package/dist/either/future/base.d.ts +1 -1
  181. package/dist/either/future/create.cjs +1 -0
  182. package/dist/either/future/create.mjs +1 -0
  183. package/dist/either/future/error.cjs +1 -0
  184. package/dist/either/future/error.d.ts +1 -1
  185. package/dist/either/future/error.mjs +1 -0
  186. package/dist/either/future/success.cjs +1 -0
  187. package/dist/either/future/success.d.ts +1 -1
  188. package/dist/either/future/success.mjs +1 -0
  189. package/dist/either/kind.cjs +2 -1
  190. package/dist/either/kind.d.ts +2 -2
  191. package/dist/either/kind.mjs +2 -1
  192. package/dist/either/left/create.d.ts +1 -1
  193. package/dist/either/left/error.d.ts +1 -1
  194. package/dist/either/left/fail.d.ts +1 -1
  195. package/dist/either/left/when.cjs +1 -0
  196. package/dist/either/left/when.mjs +1 -0
  197. package/dist/either/nullable/base.d.ts +1 -1
  198. package/dist/either/nullable/empty.cjs +1 -0
  199. package/dist/either/nullable/empty.d.ts +1 -1
  200. package/dist/either/nullable/empty.mjs +1 -0
  201. package/dist/either/nullable/filled.cjs +1 -0
  202. package/dist/either/nullable/filled.d.ts +1 -1
  203. package/dist/either/nullable/filled.mjs +1 -0
  204. package/dist/either/nullish/base.d.ts +1 -1
  205. package/dist/either/nullish/empty.cjs +1 -0
  206. package/dist/either/nullish/empty.d.ts +1 -1
  207. package/dist/either/nullish/empty.mjs +1 -0
  208. package/dist/either/nullish/filled.cjs +1 -0
  209. package/dist/either/nullish/filled.d.ts +1 -1
  210. package/dist/either/nullish/filled.mjs +1 -0
  211. package/dist/either/optional/base.d.ts +1 -1
  212. package/dist/either/optional/empty.cjs +1 -0
  213. package/dist/either/optional/empty.d.ts +1 -1
  214. package/dist/either/optional/empty.mjs +1 -0
  215. package/dist/either/optional/filled.cjs +1 -0
  216. package/dist/either/optional/filled.d.ts +1 -1
  217. package/dist/either/optional/filled.mjs +1 -0
  218. package/dist/either/right/asyncPipe.cjs +1 -0
  219. package/dist/either/right/asyncPipe.mjs +1 -0
  220. package/dist/either/right/create.d.ts +1 -1
  221. package/dist/either/right/ok.d.ts +1 -1
  222. package/dist/either/right/pipe.cjs +1 -0
  223. package/dist/either/right/pipe.mjs +1 -0
  224. package/dist/either/right/success.d.ts +1 -1
  225. package/dist/either/right/when.cjs +1 -0
  226. package/dist/either/right/when.mjs +1 -0
  227. package/dist/either/whenHasInformation.cjs +1 -0
  228. package/dist/either/whenHasInformation.mjs +1 -0
  229. package/dist/generator/asyncReduce.cjs +1 -0
  230. package/dist/generator/asyncReduce.mjs +1 -0
  231. package/dist/generator/reduce.cjs +1 -0
  232. package/dist/generator/reduce.mjs +1 -0
  233. package/dist/index.cjs +4 -0
  234. package/dist/index.mjs +1 -0
  235. package/dist/number/index.cjs +4 -0
  236. package/dist/number/index.d.ts +2 -0
  237. package/dist/number/index.mjs +2 -0
  238. package/dist/number/sqrt.cjs +7 -0
  239. package/dist/number/sqrt.d.ts +1 -0
  240. package/dist/number/sqrt.mjs +5 -0
  241. package/dist/number/toFixed.cjs +12 -0
  242. package/dist/number/toFixed.d.ts +2 -0
  243. package/dist/number/toFixed.mjs +10 -0
  244. package/dist/object/deepDiscriminate.cjs +1 -0
  245. package/dist/object/deepDiscriminate.mjs +1 -0
  246. package/dist/object/discriminate.cjs +1 -0
  247. package/dist/object/discriminate.mjs +1 -0
  248. package/dist/object/entries.cjs +1 -0
  249. package/dist/object/entries.mjs +1 -0
  250. package/dist/object/keys.cjs +1 -0
  251. package/dist/object/keys.mjs +1 -0
  252. package/dist/pattern/exhaustive.cjs +1 -0
  253. package/dist/pattern/exhaustive.mjs +1 -0
  254. package/dist/pattern/otherwise.cjs +1 -0
  255. package/dist/pattern/otherwise.mjs +1 -0
  256. package/dist/pattern/result.cjs +1 -0
  257. package/dist/pattern/result.mjs +1 -0
  258. package/dist/string/types/forbiddenString.d.ts +0 -1
  259. package/package.json +1 -1
@@ -4,6 +4,7 @@ var kind = require('../common/kind.cjs');
4
4
  var wrapValue = require('../common/wrapValue.cjs');
5
5
  var unwrap = require('../common/unwrap.cjs');
6
6
  require('../common/globalStore.cjs');
7
+ require('../common/builder.cjs');
7
8
  var override = require('../object/override.cjs');
8
9
 
9
10
  const arrayReduceFromKind = kind.createKind("array-reduce-from");
@@ -2,6 +2,7 @@ import { createKind } from '../common/kind.mjs';
2
2
  import { wrapValue } from '../common/wrapValue.mjs';
3
3
  import { unwrap } from '../common/unwrap.mjs';
4
4
  import '../common/globalStore.mjs';
5
+ import '../common/builder.mjs';
5
6
  import { override } from '../object/override.mjs';
6
7
 
7
8
  const arrayReduceFromKind = createKind("array-reduce-from");
@@ -2,6 +2,7 @@
2
2
 
3
3
  var unwrap = require('../common/unwrap.cjs');
4
4
  require('../common/globalStore.cjs');
5
+ require('../common/builder.cjs');
5
6
  var override = require('../object/override.cjs');
6
7
 
7
8
  function reduceRight(...args) {
@@ -1,5 +1,6 @@
1
1
  import { unwrap } from '../common/unwrap.mjs';
2
2
  import '../common/globalStore.mjs';
3
+ import '../common/builder.mjs';
3
4
  import { override } from '../object/override.mjs';
4
5
 
5
6
  function reduceRight(...args) {
@@ -0,0 +1,70 @@
1
+ 'use strict';
2
+
3
+ var globalStore = require('./globalStore.cjs');
4
+ var kind$1 = require('./kind.cjs');
5
+ var wrapValue = require('./wrapValue.cjs');
6
+ var unwrap = require('./unwrap.cjs');
7
+
8
+ const SymbolBuilderStore = Symbol.for("@duplojs/utils/builder");
9
+ const builderStore = globalStore.createGlobalStore(SymbolBuilderStore, {});
10
+ const createBuilderKind = kind$1.createKindNamespace(
11
+ // @ts-expect-error reserved kind
12
+ "DuplojsUtilsBuilder");
13
+ const builderKind = createBuilderKind("base");
14
+ const builderNextKind = createBuilderKind("next");
15
+ const kind = "kind-missing-builder-methods-error";
16
+ class MissingBuilderMethodsError extends Error {
17
+ method;
18
+ constructor(method) {
19
+ super(`Missing builder method: ${method}`);
20
+ this.method = method;
21
+ }
22
+ [kind] = null;
23
+ static instanceof(value) {
24
+ return typeof value === "object"
25
+ && value?.constructor?.name === "MissingBuilderMethodsError"
26
+ && kind in value;
27
+ }
28
+ }
29
+ function createBuilder(builderName) {
30
+ const store = builderStore.value[builderName] ?? {};
31
+ builderStore.set({
32
+ ...builderStore.value,
33
+ [builderName]: store,
34
+ });
35
+ const builderHandler = {
36
+ set(method, theFunction) {
37
+ store[method] = theFunction;
38
+ return builderHandler;
39
+ },
40
+ use(accumulator) {
41
+ return new Proxy(builderKind.addTo(store, accumulator), {
42
+ get(target, prop) {
43
+ if (prop === builderKind.runTimeKey) {
44
+ return target[prop];
45
+ }
46
+ if (!target[prop]) {
47
+ throw new MissingBuilderMethodsError(prop);
48
+ }
49
+ const theFunction = target[prop];
50
+ return (...args) => {
51
+ const result = theFunction({
52
+ args,
53
+ accumulator,
54
+ next: (newAccumulator) => builderNextKind.addTo(wrapValue.wrapValue(newAccumulator)),
55
+ });
56
+ if (builderNextKind.has(result)) {
57
+ return builderHandler.use(unwrap.unwrap(result));
58
+ }
59
+ return result;
60
+ };
61
+ },
62
+ });
63
+ },
64
+ };
65
+ return builderHandler;
66
+ }
67
+
68
+ exports.MissingBuilderMethodsError = MissingBuilderMethodsError;
69
+ exports.builderKind = builderKind;
70
+ exports.createBuilder = createBuilder;
@@ -0,0 +1,34 @@
1
+ import { type GetPropsWithValueExtends } from "../object";
2
+ import { type Adaptor, type AnyFunction } from "./types";
3
+ import { type Kind, type GetKindValue } from "./kind";
4
+ import { type WrappedValue } from "./wrapValue";
5
+ declare const SymbolBuilderStore: unique symbol;
6
+ declare module "./globalStore" {
7
+ interface GlobalStore {
8
+ [SymbolBuilderStore]: Record<string, Record<string, Parameters<BuilderHandler["set"]>[1]>>;
9
+ }
10
+ }
11
+ export declare const builderKind: import("./kind").KindHandler<import("./kind").KindDefinition<"@DuplojsUtilsBuilder/base", object>>;
12
+ export interface Builder<GenericAccumulator extends object = object> extends Kind<typeof builderKind.definition, GenericAccumulator> {
13
+ }
14
+ declare const builderNextKind: import("./kind").KindHandler<import("./kind").KindDefinition<"@DuplojsUtilsBuilder/next", unknown>>;
15
+ interface BuilderNext<GenericValue extends object = object> extends WrappedValue<GenericValue>, Kind<typeof builderNextKind.definition> {
16
+ }
17
+ export interface BuilderHandlerSetFunctionParams<GenericArgs extends unknown[], GenericValue extends object> {
18
+ args: GenericArgs;
19
+ accumulator: GenericValue;
20
+ next(newAccumulator: GenericValue): BuilderNext<GenericValue>;
21
+ }
22
+ export interface BuilderHandler<GenericBuilder extends Builder = Builder> {
23
+ set<GenericMethodName extends GetPropsWithValueExtends<GenericBuilder, AnyFunction>, GenericMethod extends Adaptor<GenericBuilder[GenericMethodName], AnyFunction>>(method: GenericMethodName, theFunction: (params: BuilderHandlerSetFunctionParams<Parameters<GenericMethod>, GetKindValue<typeof builderKind, GenericBuilder>>) => ReturnType<GenericMethod> extends GenericBuilder ? BuilderNext<GetKindValue<typeof builderKind, GenericBuilder>> : ReturnType<GenericMethod>): BuilderHandler<GenericBuilder>;
24
+ use<GenericCurrentBuilder extends GenericBuilder>(accumulator: GetKindValue<typeof builderKind, GenericBuilder>): GenericCurrentBuilder;
25
+ }
26
+ declare const kind = "kind-missing-builder-methods-error";
27
+ export declare class MissingBuilderMethodsError extends Error {
28
+ method: string;
29
+ constructor(method: string);
30
+ [kind]: unknown;
31
+ static instanceof(value: unknown): value is MissingBuilderMethodsError;
32
+ }
33
+ export declare function createBuilder<GenericBuilder extends Builder>(builderName: string): BuilderHandler<GenericBuilder>;
34
+ export {};
@@ -0,0 +1,66 @@
1
+ import { createGlobalStore } from './globalStore.mjs';
2
+ import { createKindNamespace } from './kind.mjs';
3
+ import { wrapValue } from './wrapValue.mjs';
4
+ import { unwrap } from './unwrap.mjs';
5
+
6
+ const SymbolBuilderStore = Symbol.for("@duplojs/utils/builder");
7
+ const builderStore = createGlobalStore(SymbolBuilderStore, {});
8
+ const createBuilderKind = createKindNamespace(
9
+ // @ts-expect-error reserved kind
10
+ "DuplojsUtilsBuilder");
11
+ const builderKind = createBuilderKind("base");
12
+ const builderNextKind = createBuilderKind("next");
13
+ const kind = "kind-missing-builder-methods-error";
14
+ class MissingBuilderMethodsError extends Error {
15
+ method;
16
+ constructor(method) {
17
+ super(`Missing builder method: ${method}`);
18
+ this.method = method;
19
+ }
20
+ [kind] = null;
21
+ static instanceof(value) {
22
+ return typeof value === "object"
23
+ && value?.constructor?.name === "MissingBuilderMethodsError"
24
+ && kind in value;
25
+ }
26
+ }
27
+ function createBuilder(builderName) {
28
+ const store = builderStore.value[builderName] ?? {};
29
+ builderStore.set({
30
+ ...builderStore.value,
31
+ [builderName]: store,
32
+ });
33
+ const builderHandler = {
34
+ set(method, theFunction) {
35
+ store[method] = theFunction;
36
+ return builderHandler;
37
+ },
38
+ use(accumulator) {
39
+ return new Proxy(builderKind.addTo(store, accumulator), {
40
+ get(target, prop) {
41
+ if (prop === builderKind.runTimeKey) {
42
+ return target[prop];
43
+ }
44
+ if (!target[prop]) {
45
+ throw new MissingBuilderMethodsError(prop);
46
+ }
47
+ const theFunction = target[prop];
48
+ return (...args) => {
49
+ const result = theFunction({
50
+ args,
51
+ accumulator,
52
+ next: (newAccumulator) => builderNextKind.addTo(wrapValue(newAccumulator)),
53
+ });
54
+ if (builderNextKind.has(result)) {
55
+ return builderHandler.use(unwrap(result));
56
+ }
57
+ return result;
58
+ };
59
+ },
60
+ });
61
+ },
62
+ };
63
+ return builderHandler;
64
+ }
65
+
66
+ export { MissingBuilderMethodsError, builderKind, createBuilder };
@@ -37,3 +37,4 @@ export * from "./justReturn";
37
37
  export * from "./memo";
38
38
  export * from "./instanceOf";
39
39
  export * from "./globalStore";
40
+ export * from "./builder";
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  require('./globalStore.cjs');
4
+ require('./builder.cjs');
4
5
  var coalescing = require('../array/coalescing.cjs');
5
6
 
6
7
  function instanceOf(...args) {
@@ -1,4 +1,5 @@
1
1
  import './globalStore.mjs';
2
+ import './builder.mjs';
2
3
  import { coalescing } from '../array/coalescing.mjs';
3
4
 
4
5
  function instanceOf(...args) {
@@ -40,8 +40,9 @@ export declare const keyKindPrefix = "@duplojs/utils/kind/";
40
40
  type ForbiddenKindCharacters<GenericValue extends string> = ForbiddenString<GenericValue, "@" | "/">;
41
41
  export declare function createKind<GenericName extends string, GenericKindValue extends unknown = unknown>(name: GenericName & ForbiddenKindCharacters<GenericName>): KindHandler<KindDefinition<GenericName, GenericKindValue>>;
42
42
  export interface ReservedKindNamespace {
43
- Either: true;
44
- DataParser: true;
43
+ DuplojsUtilsEither: true;
44
+ DuplojsUtilsDataParser: true;
45
+ DuplojsUtilsBuilder: true;
45
46
  }
46
47
  type ForbiddenKindNamespace<GenericValue extends string> = (ForbiddenKindCharacters<GenericValue> & ForbiddenString<GenericValue, GetPropsWithValue<ReservedKindNamespace, true>>);
47
48
  export declare function createKindNamespace<GenericNamespace extends string>(namespace: GenericNamespace & ForbiddenKindNamespace<GenericNamespace>): <GenericName extends string, GenericKindValue extends unknown = unknown>(name: GenericName & ForbiddenKindCharacters<GenericName>) => KindHandler<KindDefinition<`@${GenericNamespace}/${GenericName}`, GenericKindValue>>;
@@ -37,3 +37,4 @@ export * from "./isStringLIteral";
37
37
  export * from "./maybeWrapped";
38
38
  export * from "./anyConstructor";
39
39
  export * from "./anyPredicate";
40
+ export * from "./removeFromUnion";
@@ -0,0 +1,2 @@
1
+ import { type UnionContain } from "./unionContain";
2
+ export type RemoveFromUnion<GenericUnion extends unknown, GenericValue extends unknown> = GenericUnion extends any ? UnionContain<GenericValue, GenericUnion> extends true ? never : GenericUnion : 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) | false, boolean>;
2
+ export type UnionContain<GenericUnion extends unknown, GenericValue extends unknown> = IsEqual<GenericValue extends any ? IsEqual<(GenericUnion extends any ? IsEqual<GenericUnion, GenericValue> : never) | false, boolean> : never, true>;
@@ -2,6 +2,7 @@
2
2
 
3
3
  var simpleClone = require('../common/simpleClone.cjs');
4
4
  require('../common/globalStore.cjs');
5
+ require('../common/builder.cjs');
5
6
  var error = require('./error.cjs');
6
7
  var error$1 = require('../either/left/error.cjs');
7
8
  var success = require('../either/right/success.cjs');
@@ -9,9 +10,9 @@ var kind = require('./kind.cjs');
9
10
 
10
11
  const SymbolDataParserErrorLabel = "SymbolDataParserError";
11
12
  const SymbolDataParserError = Symbol.for(SymbolDataParserErrorLabel);
12
- const dataParserCheckerKind = kind.createDataParserKind("checker");
13
+ const checkerKind = kind.createDataParserKind("checker");
13
14
  function dataParserCheckerInit(kind, params, exec) {
14
- return kind.setTo(dataParserCheckerKind.setTo({
15
+ return kind.setTo(checkerKind.setTo({
15
16
  ...params,
16
17
  exec,
17
18
  }));
@@ -111,7 +112,7 @@ function dataParserInit(kind, params, exec) {
111
112
 
112
113
  exports.SymbolDataParserError = SymbolDataParserError;
113
114
  exports.SymbolDataParserErrorLabel = SymbolDataParserErrorLabel;
115
+ exports.checkerKind = checkerKind;
114
116
  exports.dataParserCheckerInit = dataParserCheckerInit;
115
- exports.dataParserCheckerKind = dataParserCheckerKind;
116
117
  exports.dataParserInit = dataParserInit;
117
118
  exports.dataParserKind = dataParserKind;
@@ -4,16 +4,16 @@ import * as DEither from "../either";
4
4
  export declare const SymbolDataParserErrorLabel = "SymbolDataParserError";
5
5
  export declare const SymbolDataParserError: unique symbol;
6
6
  export type SymbolDataParserError = typeof SymbolDataParserError;
7
- export declare const dataParserCheckerKind: KindHandler<import("../common").KindDefinition<"@DataParser/checker", unknown>>;
7
+ export declare const checkerKind: KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/checker", unknown>>;
8
8
  export interface DataParserCheckerDefinition {
9
9
  readonly errorMessage?: string;
10
10
  }
11
- export interface DataParserChecker<GenericDefinition extends DataParserCheckerDefinition = DataParserCheckerDefinition, GenericInput extends AnyValue = AnyValue> extends Kind<typeof dataParserCheckerKind.definition, GenericInput> {
11
+ export interface DataParserChecker<GenericDefinition extends DataParserCheckerDefinition = DataParserCheckerDefinition, GenericInput extends AnyValue = AnyValue> extends Kind<typeof checkerKind.definition, GenericInput> {
12
12
  readonly definition: GenericDefinition;
13
13
  exec(data: GenericInput, self: this): GenericInput | SymbolDataParserErrorIssue;
14
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<"@DataParser/base", {
15
+ export declare function dataParserCheckerInit<GenericDataParserChecker extends DataParserChecker>(kind: Exclude<GetKindHandler<GenericDataParserChecker>, typeof checkerKind>, params: NoInfer<Omit<RemoveKind<GenericDataParserChecker>, "exec">>, exec: (...args: Parameters<GenericDataParserChecker["exec"]>) => GetKindValue<typeof checkerKind, GenericDataParserChecker> | SymbolDataParserErrorIssue): GenericDataParserChecker;
16
+ export declare const dataParserKind: KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
17
17
  input: unknown;
18
18
  output: unknown;
19
19
  }>>;
@@ -1,5 +1,6 @@
1
1
  import { simpleClone } from '../common/simpleClone.mjs';
2
2
  import '../common/globalStore.mjs';
3
+ import '../common/builder.mjs';
3
4
  import { createError, SymbolDataParserErrorIssue, addIssue, SymbolDataParserErrorPromiseIssue, addPromiseIssue } from './error.mjs';
4
5
  import { error } from '../either/left/error.mjs';
5
6
  import { success } from '../either/right/success.mjs';
@@ -7,9 +8,9 @@ import { createDataParserKind } from './kind.mjs';
7
8
 
8
9
  const SymbolDataParserErrorLabel = "SymbolDataParserError";
9
10
  const SymbolDataParserError = Symbol.for(SymbolDataParserErrorLabel);
10
- const dataParserCheckerKind = createDataParserKind("checker");
11
+ const checkerKind = createDataParserKind("checker");
11
12
  function dataParserCheckerInit(kind, params, exec) {
12
- return kind.setTo(dataParserCheckerKind.setTo({
13
+ return kind.setTo(checkerKind.setTo({
13
14
  ...params,
14
15
  exec,
15
16
  }));
@@ -107,4 +108,4 @@ function dataParserInit(kind, params, exec) {
107
108
  return dataParser;
108
109
  }
109
110
 
110
- export { SymbolDataParserError, SymbolDataParserErrorLabel, dataParserCheckerInit, dataParserCheckerKind, dataParserInit, dataParserKind };
111
+ export { SymbolDataParserError, SymbolDataParserErrorLabel, checkerKind, dataParserCheckerInit, dataParserInit, dataParserKind };
@@ -6,6 +6,7 @@ var fromEntries = require('../object/fromEntries.cjs');
6
6
  var entry = require('../object/entry.cjs');
7
7
  var map = require('../array/map.cjs');
8
8
  require('../common/globalStore.cjs');
9
+ require('../common/builder.cjs');
9
10
  var kind = require('./kind.cjs');
10
11
  require('../pattern/result.cjs');
11
12
  var array = require('./extended/array.cjs');
@@ -15,9 +16,9 @@ var nullable = require('./extended/nullable.cjs');
15
16
  var optional = require('./extended/optional.cjs');
16
17
  var pipe$1 = require('./extended/pipe.cjs');
17
18
 
18
- const dataParserExtendedKind = kind.createDataParserKind("extended");
19
+ const extendedKind = kind.createDataParserKind("extended");
19
20
  function dataParserExtendedInit(dataParser, rest) {
20
- const self = dataParserExtendedKind.setTo({
21
+ const self = extendedKind.setTo({
21
22
  ...dataParser,
22
23
  ...pipe.pipe(rest, entries.entries, map.map(([key, value]) => entry.entry(key, typeof value === "function"
23
24
  ? (...args) => value(self, ...args)
@@ -53,4 +54,4 @@ function dataParserExtendedInit(dataParser, rest) {
53
54
  }
54
55
 
55
56
  exports.dataParserExtendedInit = dataParserExtendedInit;
56
- exports.dataParserExtendedKind = dataParserExtendedKind;
57
+ exports.extendedKind = extendedKind;
@@ -1,11 +1,11 @@
1
1
  import { type Kind, type NeverCoalescing, type AnyFunction, type SimplifyTopLevel, type AnyValue } from "../common";
2
- import { type DataParsers, type MergeDefinition } from "./types";
2
+ import { type MergeDefinition } from "./types";
3
3
  import { type Output, type DataParser } from "./base";
4
4
  import type * as dataParsers from "./parsers";
5
5
  import * as dataParsersExtended from "./extended";
6
6
  import { type DataParserError } from "./error";
7
- export declare const dataParserExtendedKind: import("../common").KindHandler<import("../common").KindDefinition<"@DataParser/extended", unknown>>;
8
- type _DataParserExtended = (DataParser & Kind<typeof dataParserExtendedKind.definition>);
7
+ export declare const extendedKind: import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/extended", unknown>>;
8
+ type _DataParserExtended = (DataParser & Kind<typeof extendedKind.definition>);
9
9
  export interface DataParserExtended extends _DataParserExtended {
10
10
  array<GenericThis extends this = this, const GenericDefinition extends Partial<Omit<dataParsers.DataParserDefinitionArray, "element">> = never>(definition?: GenericDefinition): dataParsersExtended.DataParserArrayExtended<MergeDefinition<dataParsers.DataParserDefinitionArray, NeverCoalescing<GenericDefinition, {}> & {
11
11
  element: GenericThis;
@@ -25,7 +25,7 @@ export interface DataParserExtended extends _DataParserExtended {
25
25
  }>>
26
26
  ];
27
27
  }>>;
28
- pipe<GenericThis extends this = this, GenericOutput extends DataParsers = DataParsers, const GenericDefinition extends Partial<Omit<dataParsers.DataParserDefinitionPipe, "input" | "output">> = never>(output: GenericOutput, definition?: GenericDefinition): dataParsersExtended.DataParserPipeExtended<MergeDefinition<dataParsers.DataParserDefinitionPipe, NeverCoalescing<GenericDefinition, {}> & {
28
+ pipe<GenericThis extends this = this, GenericOutput extends DataParser = DataParser, const GenericDefinition extends Partial<Omit<dataParsers.DataParserDefinitionPipe, "input" | "output">> = never>(output: GenericOutput, definition?: GenericDefinition): dataParsersExtended.DataParserPipeExtended<MergeDefinition<dataParsers.DataParserDefinitionPipe, NeverCoalescing<GenericDefinition, {}> & {
29
29
  input: GenericThis;
30
30
  output: GenericOutput;
31
31
  }>>;
@@ -35,7 +35,7 @@ export interface DataParserExtended extends _DataParserExtended {
35
35
  optional<GenericThis extends this = this, const GenericDefinition extends Partial<Omit<dataParsers.DataParserDefinitionOptional, "inner">> = never>(definition?: GenericDefinition): dataParsersExtended.DataParserOptionalExtended<MergeDefinition<dataParsers.DataParserDefinitionOptional, NeverCoalescing<GenericDefinition, {}> & {
36
36
  inner: GenericThis;
37
37
  }>>;
38
- or<GenericThis extends this = this, GenericDataParser extends DataParsers = DataParsers, const GenericDefinition extends Partial<Omit<dataParsers.DataParserDefinitionUnion, "options">> = never>(option: GenericDataParser, definition?: GenericDefinition): dataParsersExtended.DataParserUnionExtended<MergeDefinition<dataParsers.DataParserDefinitionUnion, NeverCoalescing<GenericDefinition, {}> & {
38
+ or<GenericThis extends this = this, GenericDataParser extends DataParser = DataParser, const GenericDefinition extends Partial<Omit<dataParsers.DataParserDefinitionUnion, "options">> = never>(option: GenericDataParser, definition?: GenericDefinition): dataParsersExtended.DataParserUnionExtended<MergeDefinition<dataParsers.DataParserDefinitionUnion, NeverCoalescing<GenericDefinition, {}> & {
39
39
  options: [GenericThis, GenericDataParser];
40
40
  }>>;
41
41
  }
@@ -4,6 +4,7 @@ import { fromEntries } from '../object/fromEntries.mjs';
4
4
  import { entry } from '../object/entry.mjs';
5
5
  import { map } from '../array/map.mjs';
6
6
  import '../common/globalStore.mjs';
7
+ import '../common/builder.mjs';
7
8
  import { createDataParserKind } from './kind.mjs';
8
9
  import '../pattern/result.mjs';
9
10
  import { array } from './extended/array.mjs';
@@ -13,9 +14,9 @@ import { nullable } from './extended/nullable.mjs';
13
14
  import { optional } from './extended/optional.mjs';
14
15
  import { pipe as pipe$1 } from './extended/pipe.mjs';
15
16
 
16
- const dataParserExtendedKind = createDataParserKind("extended");
17
+ const extendedKind = createDataParserKind("extended");
17
18
  function dataParserExtendedInit(dataParser, rest) {
18
- const self = dataParserExtendedKind.setTo({
19
+ const self = extendedKind.setTo({
19
20
  ...dataParser,
20
21
  ...pipe(rest, entries, map(([key, value]) => entry(key, typeof value === "function"
21
22
  ? (...args) => value(self, ...args)
@@ -50,4 +51,4 @@ function dataParserExtendedInit(dataParser, rest) {
50
51
  return self;
51
52
  }
52
53
 
53
- export { dataParserExtendedInit, dataParserExtendedKind };
54
+ export { dataParserExtendedInit, extendedKind };
@@ -4,19 +4,19 @@ var kind = require('./kind.cjs');
4
4
 
5
5
  const SymbolDataParserErrorIssueLabel = "SymbolDataParserErrorIssue";
6
6
  const SymbolDataParserErrorIssue = Symbol.for(SymbolDataParserErrorIssueLabel);
7
- const dataParserErrorIssueKind = kind.createDataParserKind("error-issue");
7
+ const errorIssueKind = kind.createDataParserKind("error-issue");
8
8
  const SymbolDataParserErrorPromiseIssueLabel = "SymbolDataParserErrorPromiseIssue";
9
9
  const SymbolDataParserErrorPromiseIssue = Symbol.for(SymbolDataParserErrorPromiseIssueLabel);
10
- const dataParserErrorPromiseIssueKind = kind.createDataParserKind("error-issue-promise");
11
- const dataParserErrorKind = kind.createDataParserKind("error");
10
+ const errorPromiseIssueKind = kind.createDataParserKind("error-issue-promise");
11
+ const errorKind = kind.createDataParserKind("error");
12
12
  function createError() {
13
- return dataParserErrorKind.setTo({
13
+ return errorKind.setTo({
14
14
  issues: [],
15
15
  currentPath: [],
16
16
  });
17
17
  }
18
18
  function addIssue(error, source, data) {
19
- error.issues.push(dataParserErrorIssueKind.setTo({
19
+ error.issues.push(errorIssueKind.setTo({
20
20
  source,
21
21
  path: error.currentPath.join("."),
22
22
  data,
@@ -24,7 +24,7 @@ function addIssue(error, source, data) {
24
24
  return error;
25
25
  }
26
26
  function addPromiseIssue(error, source, data) {
27
- error.issues.push(dataParserErrorPromiseIssueKind.setTo({
27
+ error.issues.push(errorPromiseIssueKind.setTo({
28
28
  source,
29
29
  path: error.currentPath.join("."),
30
30
  data,
@@ -47,8 +47,8 @@ exports.SymbolDataParserErrorPromiseIssueLabel = SymbolDataParserErrorPromiseIss
47
47
  exports.addIssue = addIssue;
48
48
  exports.addPromiseIssue = addPromiseIssue;
49
49
  exports.createError = createError;
50
- exports.dataParserErrorIssueKind = dataParserErrorIssueKind;
51
- exports.dataParserErrorKind = dataParserErrorKind;
52
- exports.dataParserErrorPromiseIssueKind = dataParserErrorPromiseIssueKind;
50
+ exports.errorIssueKind = errorIssueKind;
51
+ exports.errorKind = errorKind;
52
+ exports.errorPromiseIssueKind = errorPromiseIssueKind;
53
53
  exports.popErrorPath = popErrorPath;
54
54
  exports.setErrorPath = setErrorPath;
@@ -1,31 +1,32 @@
1
1
  import { type Kind } from "../common";
2
- import { type DataParsers, type Checkers } from "./types";
3
2
  import { type DataParserTransform } from "./parsers";
3
+ import { type DataParser } from "./base";
4
+ import { type DataParserCheckers } from "./types";
4
5
  export declare const SymbolDataParserErrorIssueLabel = "SymbolDataParserErrorIssue";
5
6
  export declare const SymbolDataParserErrorIssue: unique symbol;
6
7
  export type SymbolDataParserErrorIssue = typeof SymbolDataParserErrorIssue;
7
- export declare const dataParserErrorIssueKind: import("../common").KindHandler<import("../common").KindDefinition<"@DataParser/error-issue", unknown>>;
8
- export interface DataParserErrorIssue extends Kind<typeof dataParserErrorIssueKind.definition> {
9
- readonly source: DataParsers | Checkers;
8
+ export declare const errorIssueKind: import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/error-issue", unknown>>;
9
+ export interface DataParserErrorIssue extends Kind<typeof errorIssueKind.definition> {
10
+ readonly source: DataParser | DataParserCheckers;
10
11
  readonly path: string;
11
12
  readonly data: unknown;
12
13
  }
13
14
  export declare const SymbolDataParserErrorPromiseIssueLabel = "SymbolDataParserErrorPromiseIssue";
14
15
  export declare const SymbolDataParserErrorPromiseIssue: unique symbol;
15
16
  export type SymbolDataParserErrorPromiseIssue = typeof SymbolDataParserErrorPromiseIssue;
16
- export declare const dataParserErrorPromiseIssueKind: import("../common").KindHandler<import("../common").KindDefinition<"@DataParser/error-issue-promise", unknown>>;
17
- export interface DataParserErrorPromiseIssue extends Kind<typeof dataParserErrorPromiseIssueKind.definition> {
17
+ export declare const errorPromiseIssueKind: import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/error-issue-promise", unknown>>;
18
+ export interface DataParserErrorPromiseIssue extends Kind<typeof errorPromiseIssueKind.definition> {
18
19
  readonly source: DataParserTransform;
19
20
  readonly path: string;
20
21
  readonly data: unknown;
21
22
  }
22
- export declare const dataParserErrorKind: import("../common").KindHandler<import("../common").KindDefinition<"@DataParser/error", unknown>>;
23
- export interface DataParserError extends Kind<typeof dataParserErrorKind.definition> {
23
+ export declare const errorKind: import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/error", unknown>>;
24
+ export interface DataParserError extends Kind<typeof errorKind.definition> {
24
25
  readonly issues: (DataParserErrorIssue | DataParserErrorPromiseIssue)[];
25
26
  readonly currentPath: string[];
26
27
  }
27
28
  export declare function createError(): DataParserError;
28
- export declare function addIssue(error: DataParserError, source: DataParsers | Checkers, data: unknown): DataParserError;
29
+ export declare function addIssue(error: DataParserError, source: DataParser | DataParserCheckers, data: unknown): DataParserError;
29
30
  export declare function addPromiseIssue(error: DataParserError, source: DataParserTransform, data: unknown): DataParserError;
30
31
  export declare function setErrorPath(error: DataParserError, value: string, index: number): DataParserError;
31
32
  export declare function popErrorPath(error: DataParserError): DataParserError;
@@ -2,19 +2,19 @@ import { createDataParserKind } from './kind.mjs';
2
2
 
3
3
  const SymbolDataParserErrorIssueLabel = "SymbolDataParserErrorIssue";
4
4
  const SymbolDataParserErrorIssue = Symbol.for(SymbolDataParserErrorIssueLabel);
5
- const dataParserErrorIssueKind = createDataParserKind("error-issue");
5
+ const errorIssueKind = createDataParserKind("error-issue");
6
6
  const SymbolDataParserErrorPromiseIssueLabel = "SymbolDataParserErrorPromiseIssue";
7
7
  const SymbolDataParserErrorPromiseIssue = Symbol.for(SymbolDataParserErrorPromiseIssueLabel);
8
- const dataParserErrorPromiseIssueKind = createDataParserKind("error-issue-promise");
9
- const dataParserErrorKind = createDataParserKind("error");
8
+ const errorPromiseIssueKind = createDataParserKind("error-issue-promise");
9
+ const errorKind = createDataParserKind("error");
10
10
  function createError() {
11
- return dataParserErrorKind.setTo({
11
+ return errorKind.setTo({
12
12
  issues: [],
13
13
  currentPath: [],
14
14
  });
15
15
  }
16
16
  function addIssue(error, source, data) {
17
- error.issues.push(dataParserErrorIssueKind.setTo({
17
+ error.issues.push(errorIssueKind.setTo({
18
18
  source,
19
19
  path: error.currentPath.join("."),
20
20
  data,
@@ -22,7 +22,7 @@ function addIssue(error, source, data) {
22
22
  return error;
23
23
  }
24
24
  function addPromiseIssue(error, source, data) {
25
- error.issues.push(dataParserErrorPromiseIssueKind.setTo({
25
+ error.issues.push(errorPromiseIssueKind.setTo({
26
26
  source,
27
27
  path: error.currentPath.join("."),
28
28
  data,
@@ -38,4 +38,4 @@ function popErrorPath(error) {
38
38
  return error;
39
39
  }
40
40
 
41
- export { SymbolDataParserErrorIssue, SymbolDataParserErrorIssueLabel, SymbolDataParserErrorPromiseIssue, SymbolDataParserErrorPromiseIssueLabel, addIssue, addPromiseIssue, createError, dataParserErrorIssueKind, dataParserErrorKind, dataParserErrorPromiseIssueKind, popErrorPath, setErrorPath };
41
+ export { SymbolDataParserErrorIssue, SymbolDataParserErrorIssueLabel, SymbolDataParserErrorPromiseIssue, SymbolDataParserErrorPromiseIssueLabel, addIssue, addPromiseIssue, createError, errorIssueKind, errorKind, errorPromiseIssueKind, popErrorPath, setErrorPath };
@@ -2,6 +2,7 @@
2
2
 
3
3
  var baseExtended = require('../baseExtended.cjs');
4
4
  require('../../common/globalStore.cjs');
5
+ require('../../common/builder.cjs');
5
6
  var index = require('../parsers/array/index.cjs');
6
7
  require('../../pattern/result.cjs');
7
8
  var max = require('../parsers/array/checkers/max.cjs');
@@ -1,7 +1,8 @@
1
1
  import { type NeverCoalescing } from "../../common";
2
2
  import { type DataParserExtended } from "../baseExtended";
3
- import { type AddCheckersToDefinition, type DataParsers, type MergeDefinition } from "../types";
3
+ import { type AddCheckersToDefinition, type MergeDefinition } from "../types";
4
4
  import * as dataParsers from "../parsers";
5
+ import { type DataParser } from "../base";
5
6
  type _DataParserArrayExtended<GenericDefinition extends dataParsers.DataParserDefinitionArray> = (dataParsers.DataParserArray<GenericDefinition> & DataParserExtended);
6
7
  export interface DataParserArrayExtended<GenericDefinition extends dataParsers.DataParserDefinitionArray = dataParsers.DataParserDefinitionArray> extends _DataParserArrayExtended<GenericDefinition> {
7
8
  addChecker<GenericChecker extends readonly [
@@ -15,7 +16,7 @@ export interface DataParserArrayExtended<GenericDefinition extends dataParsers.D
15
16
  dataParsers.DataParserCheckerArrayMax
16
17
  ]>>;
17
18
  }
18
- export declare function array<GenericElement extends DataParsers, const GenericDefinition extends Partial<Omit<dataParsers.DataParserDefinitionArray, "element">> = never>(element: GenericElement, definition?: GenericDefinition): DataParserArrayExtended<MergeDefinition<dataParsers.DataParserDefinitionArray, NeverCoalescing<GenericDefinition, {}> & {
19
+ export declare function array<GenericElement extends DataParser, const GenericDefinition extends Partial<Omit<dataParsers.DataParserDefinitionArray, "element">> = never>(element: GenericElement, definition?: GenericDefinition): DataParserArrayExtended<MergeDefinition<dataParsers.DataParserDefinitionArray, NeverCoalescing<GenericDefinition, {}> & {
19
20
  element: GenericElement;
20
21
  }>>;
21
22
  export {};
@@ -1,5 +1,6 @@
1
1
  import { dataParserExtendedInit } from '../baseExtended.mjs';
2
2
  import '../../common/globalStore.mjs';
3
+ import '../../common/builder.mjs';
3
4
  import { array as array$1 } from '../parsers/array/index.mjs';
4
5
  import '../../pattern/result.mjs';
5
6
  import { checkerArrayMax } from '../parsers/array/checkers/max.mjs';
@@ -2,6 +2,7 @@
2
2
 
3
3
  var baseExtended = require('../baseExtended.cjs');
4
4
  require('../../common/globalStore.cjs');
5
+ require('../../common/builder.cjs');
5
6
  var index = require('../parsers/bigint/index.cjs');
6
7
  require('../../pattern/result.cjs');
7
8
  var max = require('../parsers/bigint/checkers/max.cjs');
@@ -1,5 +1,6 @@
1
1
  import { dataParserExtendedInit } from '../baseExtended.mjs';
2
2
  import '../../common/globalStore.mjs';
3
+ import '../../common/builder.mjs';
3
4
  import { bigint as bigint$1 } from '../parsers/bigint/index.mjs';
4
5
  import '../../pattern/result.mjs';
5
6
  import { checkerBigIntMax } from '../parsers/bigint/checkers/max.mjs';
@@ -2,6 +2,7 @@
2
2
 
3
3
  var baseExtended = require('../baseExtended.cjs');
4
4
  require('../../common/globalStore.cjs');
5
+ require('../../common/builder.cjs');
5
6
  var boolean$1 = require('../parsers/boolean.cjs');
6
7
  require('../../pattern/result.cjs');
7
8
 
@@ -1,5 +1,6 @@
1
1
  import { dataParserExtendedInit } from '../baseExtended.mjs';
2
2
  import '../../common/globalStore.mjs';
3
+ import '../../common/builder.mjs';
3
4
  import { boolean as boolean$1 } from '../parsers/boolean.mjs';
4
5
  import '../../pattern/result.mjs';
5
6