@duplojs/utils 1.4.52 → 1.4.54

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 (83) hide show
  1. package/dist/clean/constraint/base.cjs +5 -2
  2. package/dist/clean/constraint/base.d.ts +3 -0
  3. package/dist/clean/constraint/base.mjs +5 -2
  4. package/dist/clean/constraint/defaultConstraint/number.cjs +8 -0
  5. package/dist/clean/constraint/defaultConstraint/number.d.ts +29 -0
  6. package/dist/clean/constraint/defaultConstraint/number.mjs +8 -1
  7. package/dist/clean/constraint/set.cjs +5 -3
  8. package/dist/clean/constraint/set.d.ts +4 -1
  9. package/dist/clean/constraint/set.mjs +5 -3
  10. package/dist/clean/entity.cjs +5 -3
  11. package/dist/clean/entity.d.ts +3 -0
  12. package/dist/clean/entity.mjs +5 -3
  13. package/dist/clean/flag.cjs +5 -2
  14. package/dist/clean/flag.d.ts +3 -0
  15. package/dist/clean/flag.mjs +5 -2
  16. package/dist/clean/index.cjs +4 -0
  17. package/dist/clean/index.d.ts +1 -0
  18. package/dist/clean/index.mjs +2 -1
  19. package/dist/clean/maybe.cjs +21 -0
  20. package/dist/clean/maybe.d.ts +135 -0
  21. package/dist/clean/maybe.mjs +18 -0
  22. package/dist/clean/newType.cjs +5 -3
  23. package/dist/clean/newType.d.ts +3 -0
  24. package/dist/clean/newType.mjs +5 -3
  25. package/dist/clean/primitive/base.cjs +5 -2
  26. package/dist/clean/primitive/base.mjs +5 -2
  27. package/dist/clean/repository.cjs +5 -2
  28. package/dist/clean/repository.d.ts +3 -0
  29. package/dist/clean/repository.mjs +5 -2
  30. package/dist/clean/useCase.cjs +10 -5
  31. package/dist/clean/useCase.d.ts +14 -7
  32. package/dist/clean/useCase.mjs +10 -5
  33. package/dist/dataParser/base.d.ts +2 -2
  34. package/dist/dataParser/baseExtended.cjs +5 -5
  35. package/dist/dataParser/baseExtended.d.ts +3 -3
  36. package/dist/dataParser/baseExtended.mjs +5 -5
  37. package/dist/dataParser/extended/array.cjs +2 -2
  38. package/dist/dataParser/extended/array.mjs +2 -2
  39. package/dist/dataParser/extended/bigint.cjs +2 -2
  40. package/dist/dataParser/extended/bigint.mjs +2 -2
  41. package/dist/dataParser/extended/boolean.cjs +2 -2
  42. package/dist/dataParser/extended/boolean.mjs +2 -2
  43. package/dist/dataParser/extended/date.cjs +2 -2
  44. package/dist/dataParser/extended/date.mjs +2 -2
  45. package/dist/dataParser/extended/empty.cjs +2 -2
  46. package/dist/dataParser/extended/empty.mjs +2 -2
  47. package/dist/dataParser/extended/lazy.cjs +2 -2
  48. package/dist/dataParser/extended/lazy.mjs +2 -2
  49. package/dist/dataParser/extended/literal.cjs +2 -2
  50. package/dist/dataParser/extended/literal.mjs +2 -2
  51. package/dist/dataParser/extended/nil.cjs +2 -2
  52. package/dist/dataParser/extended/nil.mjs +2 -2
  53. package/dist/dataParser/extended/nullable.cjs +2 -2
  54. package/dist/dataParser/extended/nullable.mjs +2 -2
  55. package/dist/dataParser/extended/number.cjs +2 -2
  56. package/dist/dataParser/extended/number.mjs +2 -2
  57. package/dist/dataParser/extended/object.cjs +2 -2
  58. package/dist/dataParser/extended/object.mjs +2 -2
  59. package/dist/dataParser/extended/optional.cjs +2 -2
  60. package/dist/dataParser/extended/optional.mjs +2 -2
  61. package/dist/dataParser/extended/pipe.cjs +2 -2
  62. package/dist/dataParser/extended/pipe.mjs +2 -2
  63. package/dist/dataParser/extended/record.cjs +2 -2
  64. package/dist/dataParser/extended/record.mjs +2 -2
  65. package/dist/dataParser/extended/recover.cjs +2 -2
  66. package/dist/dataParser/extended/recover.mjs +2 -2
  67. package/dist/dataParser/extended/string.cjs +2 -2
  68. package/dist/dataParser/extended/string.mjs +2 -2
  69. package/dist/dataParser/extended/templateLiteral.cjs +2 -2
  70. package/dist/dataParser/extended/templateLiteral.mjs +2 -2
  71. package/dist/dataParser/extended/time.cjs +2 -2
  72. package/dist/dataParser/extended/time.mjs +2 -2
  73. package/dist/dataParser/extended/transform.cjs +2 -2
  74. package/dist/dataParser/extended/transform.mjs +2 -2
  75. package/dist/dataParser/extended/tuple.cjs +2 -2
  76. package/dist/dataParser/extended/tuple.mjs +2 -2
  77. package/dist/dataParser/extended/union.cjs +2 -2
  78. package/dist/dataParser/extended/union.mjs +2 -2
  79. package/dist/dataParser/extended/unknown.cjs +2 -2
  80. package/dist/dataParser/extended/unknown.mjs +2 -2
  81. package/dist/metadata.json +9 -0
  82. package/dist/string/types/forbiddenString.d.ts +1 -2
  83. package/package.json +1 -1
@@ -6,13 +6,14 @@ import { pipe } from '../common/pipe.mjs';
6
6
  import { map } from '../array/map.mjs';
7
7
  import { entry } from '../object/entry.mjs';
8
8
  import { createErrorKind } from '../common/errorKindNamespace.mjs';
9
+ import { fromEntries } from '../object/fromEntries.mjs';
10
+ import { createOverride } from '../common/override.mjs';
9
11
  import { isLeft } from '../either/left/is.mjs';
10
12
  import { unwrap } from '../common/unwrap.mjs';
11
13
  import { left } from '../either/left/create.mjs';
12
14
  import { constrainedTypeKind } from './constraint/base.mjs';
13
15
  import { right } from '../either/right/create.mjs';
14
16
  import { wrapValue } from '../common/wrapValue.mjs';
15
- import { fromEntries } from '../object/fromEntries.mjs';
16
17
 
17
18
  const newTypeKind = createCleanKind("new-type");
18
19
  const newTypeHandlerKind = createCleanKind("new-type-handler");
@@ -78,7 +79,7 @@ function createNewType(name, dataParser, constraint) {
78
79
  }
79
80
  return true;
80
81
  }
81
- return newTypeHandlerKind.setTo({
82
+ return pipe({
82
83
  name,
83
84
  dataParser: dataParserWithCheckers,
84
85
  constrains: constraints,
@@ -88,7 +89,8 @@ function createNewType(name, dataParser, constraint) {
88
89
  createWithUnknown: create,
89
90
  createWithUnknownOrThrow: createOrThrow,
90
91
  is,
91
- });
92
+ }, newTypeHandlerKind.setTo, createNewType.overrideHandler.apply);
92
93
  }
94
+ createNewType.overrideHandler = createOverride("@duplojs/utils/clean/new-type");
93
95
 
94
96
  export { CreateNewTypeError, createNewType, newTypeHandlerKind, newTypeKind };
@@ -3,12 +3,14 @@
3
3
  var kind = require('../kind.cjs');
4
4
  var kind$1 = require('../../common/kind.cjs');
5
5
  var index = require('../../dataParser/parsers/string/index.cjs');
6
+ var pipe = require('../../common/pipe.cjs');
6
7
  var index$1 = require('../../dataParser/parsers/number/index.cjs');
7
8
  var index$2 = require('../../dataParser/parsers/bigint/index.cjs');
8
9
  var boolean = require('../../dataParser/parsers/boolean.cjs');
9
10
  var date = require('../../dataParser/parsers/date.cjs');
10
11
  var index$3 = require('../../dataParser/parsers/time/index.cjs');
11
12
  var errorKindNamespace = require('../../common/errorKindNamespace.cjs');
13
+ var override = require('../../common/override.cjs');
12
14
  var unwrap = require('../../common/unwrap.cjs');
13
15
  var is = require('../../either/right/is.cjs');
14
16
  var is$1 = require('../../either/left/is.cjs');
@@ -49,15 +51,16 @@ function createPrimitive(dataParser) {
49
51
  const result = dataParser.parse(unwrap.unwrap(input));
50
52
  return is.isRight(result);
51
53
  }
52
- return primitiveHandlerKind.setTo({
54
+ return pipe.pipe({
53
55
  dataParser,
54
56
  create: create$2,
55
57
  createOrThrow,
56
58
  createWithUnknown: create$2,
57
59
  createWithUnknownOrThrow: createOrThrow,
58
60
  is: is$2,
59
- });
61
+ }, primitiveHandlerKind.setTo, createPrimitive.overrideHandler.apply);
60
62
  }
63
+ createPrimitive.overrideHandler = override.createOverride("@duplojs/utils/clean/primitive");
61
64
  /**
62
65
  * {@include clean/String/index.md}
63
66
  */
@@ -1,12 +1,14 @@
1
1
  import { createCleanKind } from '../kind.mjs';
2
2
  import { kindHeritage } from '../../common/kind.mjs';
3
3
  import { string } from '../../dataParser/parsers/string/index.mjs';
4
+ import { pipe } from '../../common/pipe.mjs';
4
5
  import { number } from '../../dataParser/parsers/number/index.mjs';
5
6
  import { bigint } from '../../dataParser/parsers/bigint/index.mjs';
6
7
  import { boolean } from '../../dataParser/parsers/boolean.mjs';
7
8
  import { date } from '../../dataParser/parsers/date.mjs';
8
9
  import { time } from '../../dataParser/parsers/time/index.mjs';
9
10
  import { createErrorKind } from '../../common/errorKindNamespace.mjs';
11
+ import { createOverride } from '../../common/override.mjs';
10
12
  import { unwrap } from '../../common/unwrap.mjs';
11
13
  import { isRight } from '../../either/right/is.mjs';
12
14
  import { isLeft } from '../../either/left/is.mjs';
@@ -47,15 +49,16 @@ function createPrimitive(dataParser) {
47
49
  const result = dataParser.parse(unwrap(input));
48
50
  return isRight(result);
49
51
  }
50
- return primitiveHandlerKind.setTo({
52
+ return pipe({
51
53
  dataParser,
52
54
  create,
53
55
  createOrThrow,
54
56
  createWithUnknown: create,
55
57
  createWithUnknownOrThrow: createOrThrow,
56
58
  is,
57
- });
59
+ }, primitiveHandlerKind.setTo, createPrimitive.overrideHandler.apply);
58
60
  }
61
+ createPrimitive.overrideHandler = createOverride("@duplojs/utils/clean/primitive");
59
62
  /**
60
63
  * {@include clean/String/index.md}
61
64
  */
@@ -1,18 +1,21 @@
1
1
  'use strict';
2
2
 
3
3
  var kind = require('./kind.cjs');
4
+ var pipe = require('../common/pipe.cjs');
5
+ var override = require('../common/override.cjs');
4
6
 
5
7
  const repositoryHandlerKind = kind.createCleanKind("repository-handler");
6
8
  /**
7
9
  * {@include clean/createRepository/index.md}
8
10
  */
9
11
  function createRepository() {
10
- return repositoryHandlerKind.setTo({
12
+ return pipe.pipe({
11
13
  createImplementation(implementation) {
12
14
  return implementation;
13
15
  },
14
- });
16
+ }, repositoryHandlerKind.setTo, createRepository.overrideHandler.apply);
15
17
  }
18
+ createRepository.overrideHandler = override.createOverride("@duplojs/utils/clean/repository");
16
19
 
17
20
  exports.createRepository = createRepository;
18
21
  exports.repositoryHandlerKind = repositoryHandlerKind;
@@ -93,3 +93,6 @@ export interface RepositoryHandler<GenericRepository extends object = object> ex
93
93
  *
94
94
  */
95
95
  export declare function createRepository<GenericRepository extends object>(): RepositoryHandler<GenericRepository>;
96
+ export declare namespace createRepository {
97
+ var overrideHandler: import("../common").OverrideHandler<RepositoryHandler<object>>;
98
+ }
@@ -1,15 +1,18 @@
1
1
  import { createCleanKind } from './kind.mjs';
2
+ import { pipe } from '../common/pipe.mjs';
3
+ import { createOverride } from '../common/override.mjs';
2
4
 
3
5
  const repositoryHandlerKind = createCleanKind("repository-handler");
4
6
  /**
5
7
  * {@include clean/createRepository/index.md}
6
8
  */
7
9
  function createRepository() {
8
- return repositoryHandlerKind.setTo({
10
+ return pipe({
9
11
  createImplementation(implementation) {
10
12
  return implementation;
11
13
  },
12
- });
14
+ }, repositoryHandlerKind.setTo, createRepository.overrideHandler.apply);
13
15
  }
16
+ createRepository.overrideHandler = createOverride("@duplojs/utils/clean/repository");
14
17
 
15
18
  export { createRepository, repositoryHandlerKind };
@@ -7,19 +7,24 @@ var entry = require('../object/entry.cjs');
7
7
  var uncapitalize = require('../string/uncapitalize.cjs');
8
8
  var entries = require('../object/entries.cjs');
9
9
  var fromEntries = require('../object/fromEntries.cjs');
10
+ var override = require('../common/override.cjs');
10
11
 
11
12
  const useCaseHandlerKind = kind.createCleanKind("use-case-handler");
12
13
  /**
13
14
  * {@include clean/createUseCase/index.md}
14
15
  */
15
16
  function createUseCase(dependencies, getUseCase) {
16
- return useCaseHandlerKind.setTo({
17
+ return pipe.pipe({
17
18
  dependencies,
18
- getUseCase: (repositories) => getUseCase(pipe.pipe(dependencies, entries.entries, map.map(([key, value]) => entry.entry(uncapitalize.uncapitalize(key), useCaseHandlerKind.has(value)
19
- ? value.getUseCase(repositories)
20
- : repositories[uncapitalize.uncapitalize(key)])), fromEntries.fromEntries)),
21
- });
19
+ getUseCase: (injectedDependencies) => getUseCase(pipe.pipe(dependencies, entries.entries, map.map(([key, value]) => {
20
+ const formattedKey = uncapitalize.uncapitalize(key);
21
+ return entry.entry(formattedKey, useCaseHandlerKind.has(value) && !injectedDependencies[formattedKey]
22
+ ? value.getUseCase(injectedDependencies)
23
+ : injectedDependencies[formattedKey]);
24
+ }), fromEntries.fromEntries)),
25
+ }, useCaseHandlerKind.setTo, createUseCase.overrideHandler.apply);
22
26
  }
27
+ createUseCase.overrideHandler = override.createOverride("@duplojs/utils/clean/use-case");
23
28
  /**
24
29
  * {@include clean/useCaseInstances/index.md}
25
30
  */
@@ -1,12 +1,12 @@
1
- import { type ObjectEntry, type Kind, type SimplifyTopLevel, type UnionToIntersection } from "../common";
1
+ import { type ObjectEntry, type Kind, type SimplifyTopLevel, type UnionToIntersection, type Adaptor } from "../common";
2
2
  import { type RepositoryHandler } from "./repository";
3
3
  export type UseCaseDependencies = Record<string, RepositoryHandler | UseCaseHandler>;
4
4
  export type UseCaseDependenciesValue<GenericDependencies extends UseCaseDependencies> = SimplifyTopLevel<{
5
- [Prop in keyof GenericDependencies as (Prop extends string ? Uncapitalize<Prop> : Prop)]: GenericDependencies[Prop] extends RepositoryHandler ? ReturnType<GenericDependencies[Prop]["createImplementation"]> : GenericDependencies[Prop] extends UseCaseHandler ? ReturnType<GenericDependencies[Prop]["getUseCase"]> : never;
5
+ [Prop in keyof GenericDependencies as Uncapitalize<Adaptor<Prop, string>>]: GenericDependencies[Prop] extends RepositoryHandler ? ReturnType<GenericDependencies[Prop]["createImplementation"]> : GenericDependencies[Prop] extends UseCaseHandler ? ReturnType<GenericDependencies[Prop]["getUseCase"]> : never;
6
6
  }>;
7
7
  export type GetAllRepositories<GenericDependenciesValue extends UseCaseDependencies> = GenericDependenciesValue extends any ? ({
8
8
  [Prop in keyof GenericDependenciesValue]: (GenericDependenciesValue[Prop] extends RepositoryHandler ? [
9
- (Prop extends string ? Uncapitalize<Prop> : Prop),
9
+ Uncapitalize<Adaptor<Prop, string>>,
10
10
  ReturnType<GenericDependenciesValue[Prop]["createImplementation"]>
11
11
  ] : GenericDependenciesValue[Prop] extends UseCaseHandler ? GetAllRepositories<GenericDependenciesValue[Prop]["dependencies"]> : never);
12
12
  })[keyof GenericDependenciesValue] : never;
@@ -26,9 +26,11 @@ export interface UseCaseHandler<GenericDependencies extends UseCaseDependencies
26
26
  * ```
27
27
  *
28
28
  */
29
- getUseCase(repositories: (GetAllRepositories<GenericDependencies> extends infer InferredEntriesDependenciesValue extends ObjectEntry ? {
30
- [Entry in InferredEntriesDependenciesValue as InferredEntriesDependenciesValue[0]]: InferredEntriesDependenciesValue[1];
31
- } : never)): GenericUseCase;
29
+ getUseCase(repositories: ((GetAllRepositories<GenericDependencies> extends infer InferredEntriesDependenciesValue extends ObjectEntry ? {
30
+ [Entry in InferredEntriesDependenciesValue as Entry[0]]: Entry[1];
31
+ } : never) & ({
32
+ [Prop in keyof GenericDependencies as GenericDependencies[Prop] extends UseCaseHandler ? Uncapitalize<Adaptor<Prop, string>> : never]?: GenericDependencies[Prop] extends UseCaseHandler ? ReturnType<GenericDependencies[Prop]["getUseCase"]> : never;
33
+ }))): GenericUseCase;
32
34
  }
33
35
  /**
34
36
  * Creates a use case handler with explicit dependencies.
@@ -109,6 +111,9 @@ export interface UseCaseHandler<GenericDependencies extends UseCaseDependencies
109
111
  *
110
112
  */
111
113
  export declare function createUseCase<const GenericDependencies extends UseCaseDependencies, GenericUseCase extends (input: any) => any>(dependencies: GenericDependencies, getUseCase: (dependenciesValue: UseCaseDependenciesValue<GenericDependencies>) => GenericUseCase): UseCaseHandler<GenericDependencies, GenericUseCase>;
114
+ export declare namespace createUseCase {
115
+ var overrideHandler: import("../common").OverrideHandler<UseCaseHandler<any, any>>;
116
+ }
112
117
  /**
113
118
  * Instantiates multiple use cases at once.
114
119
  *
@@ -159,5 +164,7 @@ export declare function createUseCase<const GenericDependencies extends UseCaseD
159
164
  *
160
165
  */
161
166
  export declare function useCaseInstances<GenericUseCases extends Record<string, UseCaseHandler>>(useCases: GenericUseCases, repositories: SimplifyTopLevel<UnionToIntersection<{
162
- [Prop in keyof GenericUseCases]: Parameters<GenericUseCases[Prop]["getUseCase"]>[0];
167
+ [Prop in keyof GenericUseCases]: GetAllRepositories<GenericUseCases[Prop]["dependencies"]> extends infer InferredEntriesDependenciesValue extends ObjectEntry ? {
168
+ [Entry in InferredEntriesDependenciesValue as Entry[0]]: Entry[1];
169
+ } : never;
163
170
  }[keyof GenericUseCases]>>): UseCaseDependenciesValue<GenericUseCases>;
@@ -5,19 +5,24 @@ import { entry } from '../object/entry.mjs';
5
5
  import { uncapitalize } from '../string/uncapitalize.mjs';
6
6
  import { entries } from '../object/entries.mjs';
7
7
  import { fromEntries } from '../object/fromEntries.mjs';
8
+ import { createOverride } from '../common/override.mjs';
8
9
 
9
10
  const useCaseHandlerKind = createCleanKind("use-case-handler");
10
11
  /**
11
12
  * {@include clean/createUseCase/index.md}
12
13
  */
13
14
  function createUseCase(dependencies, getUseCase) {
14
- return useCaseHandlerKind.setTo({
15
+ return pipe({
15
16
  dependencies,
16
- getUseCase: (repositories) => getUseCase(pipe(dependencies, entries, map(([key, value]) => entry(uncapitalize(key), useCaseHandlerKind.has(value)
17
- ? value.getUseCase(repositories)
18
- : repositories[uncapitalize(key)])), fromEntries)),
19
- });
17
+ getUseCase: (injectedDependencies) => getUseCase(pipe(dependencies, entries, map(([key, value]) => {
18
+ const formattedKey = uncapitalize(key);
19
+ return entry(formattedKey, useCaseHandlerKind.has(value) && !injectedDependencies[formattedKey]
20
+ ? value.getUseCase(injectedDependencies)
21
+ : injectedDependencies[formattedKey]);
22
+ }), fromEntries)),
23
+ }, useCaseHandlerKind.setTo, createUseCase.overrideHandler.apply);
20
24
  }
25
+ createUseCase.overrideHandler = createOverride("@duplojs/utils/clean/use-case");
21
26
  /**
22
27
  * {@include clean/useCaseInstances/index.md}
23
28
  */
@@ -239,8 +239,8 @@ export interface DataParser<GenericDefinition extends DataParserDefinition = Dat
239
239
  isAsynchronous(): boolean;
240
240
  }
241
241
  interface DataParserInitExecParams<GenericDataParser extends DataParser> {
242
- sync(...args: [...Parameters<GenericDataParser["exec"]>, self: GenericDataParser]): (GetKindValue<typeof dataParserKind, GenericDataParser>["output"] | SymbolDataParserErrorIssue | SymbolDataParserErrorPromiseIssue);
243
- async(...args: [...Parameters<GenericDataParser["exec"]>, self: GenericDataParser]): Promise<GetKindValue<typeof dataParserKind, GenericDataParser>["output"] | SymbolDataParserErrorIssue | SymbolDataParserErrorPromiseIssue>;
242
+ sync(...args: [...Parameters<GenericDataParser["exec"]>, self: GenericDataParser]): (GetKindValue<typeof dataParserKind, GenericDataParser>["output"] | SymbolDataParserError | SymbolDataParserErrorIssue | SymbolDataParserErrorPromiseIssue);
243
+ async(...args: [...Parameters<GenericDataParser["exec"]>, self: GenericDataParser]): Promise<GetKindValue<typeof dataParserKind, GenericDataParser>["output"] | SymbolDataParserError | SymbolDataParserErrorIssue | SymbolDataParserErrorPromiseIssue>;
244
244
  isAsynchronous(self: GenericDataParser): boolean;
245
245
  }
246
246
  declare const DataParserThrowError_base: new (params: {
@@ -17,7 +17,7 @@ var array = require('./extended/array.cjs');
17
17
  var override = require('../common/override.cjs');
18
18
 
19
19
  const extendedKind = kind.createDataParserKind("extended");
20
- function dataParserExtendedInit(dataParser, rest) {
20
+ function dataParserExtendedInit(dataParser, rest, specificOverrideHandler) {
21
21
  const self = pipe.pipe({
22
22
  ...dataParser,
23
23
  ...pipe.pipe(rest, entries.entries, map.map(([key, value]) => entry.entry(key, typeof value === "function"
@@ -48,13 +48,13 @@ function dataParserExtendedInit(dataParser, rest) {
48
48
  return union.union([self, option], definition);
49
49
  },
50
50
  addChecker(...checkers) {
51
- return dataParserExtendedInit(dataParser.addChecker(...checkers), rest);
51
+ return dataParserExtendedInit(dataParser.addChecker(...checkers), rest, specificOverrideHandler);
52
52
  },
53
53
  clone() {
54
- return dataParserExtendedInit(dataParser.clone(), rest);
54
+ return dataParserExtendedInit(dataParser.clone(), rest, specificOverrideHandler);
55
55
  },
56
56
  refine(theFunction) {
57
- return dataParserExtendedInit(dataParser.addChecker(refine.checkerRefine(theFunction)), rest);
57
+ return dataParserExtendedInit(dataParser.addChecker(refine.checkerRefine(theFunction)), rest, specificOverrideHandler);
58
58
  },
59
59
  recover(recoveredValue, definition) {
60
60
  return recover.recover(self, recoveredValue, definition);
@@ -62,7 +62,7 @@ function dataParserExtendedInit(dataParser, rest) {
62
62
  contract() {
63
63
  return self;
64
64
  },
65
- }, extendedKind.setTo, dataParserExtendedInit.overrideHandler.apply);
65
+ }, extendedKind.setTo, dataParserExtendedInit.overrideHandler.apply, specificOverrideHandler.apply);
66
66
  return self;
67
67
  }
68
68
  dataParserExtendedInit.overrideHandler = override.createOverride("@duplojs/utils/data-parser-extended/base");
@@ -1,4 +1,4 @@
1
- import { type Kind, type NeverCoalescing, type AnyFunction, type SimplifyTopLevel, type AnyValue } from "../common";
1
+ import { type Kind, type NeverCoalescing, type AnyFunction, type SimplifyTopLevel, type AnyValue, type OverrideHandler } from "../common";
2
2
  import { type MergeDefinition } from "./types";
3
3
  import { type Output, type DataParser, type DataParserDefinition } from "./base";
4
4
  import type * as DEither from "../either";
@@ -411,9 +411,9 @@ export interface DataParserExtended<GenericDefinition extends DataParserDefiniti
411
411
  }
412
412
  export declare function dataParserExtendedInit<GenericDataParser extends DataParser, GenericDataParserExtended extends GenericDataParser & DataParserExtended>(dataParser: NoInfer<GenericDataParser>, rest: NoInfer<{
413
413
  [Prop in Exclude<keyof GenericDataParserExtended, keyof (GenericDataParser & DataParserExtended)>]: GenericDataParserExtended[Prop] extends AnyFunction ? (self: GenericDataParserExtended, ...args: Parameters<GenericDataParserExtended[Prop]>) => ReturnType<GenericDataParserExtended[Prop]> : GenericDataParserExtended[Prop];
414
- }>): GenericDataParserExtended;
414
+ }>, specificOverrideHandler: OverrideHandler<NoInfer<GenericDataParserExtended>>): GenericDataParserExtended;
415
415
  export declare namespace dataParserExtendedInit {
416
- var overrideHandler: import("../common").OverrideHandler<DataParserExtended<DataParserDefinition<import("./base").DataParserChecker<import("./base").DataParserCheckerDefinition, unknown>>, unknown, unknown>>;
416
+ var overrideHandler: OverrideHandler<DataParserExtended<DataParserDefinition<import("./base").DataParserChecker<import("./base").DataParserCheckerDefinition, unknown>>, unknown, unknown>>;
417
417
  }
418
418
  export type ContractExtended<GenericOutput extends unknown, GenericInput extends unknown = GenericOutput> = DataParserExtended<DataParserDefinition<never>, GenericOutput, GenericInput>;
419
419
  export {};
@@ -15,7 +15,7 @@ import { array } from './extended/array.mjs';
15
15
  import { createOverride } from '../common/override.mjs';
16
16
 
17
17
  const extendedKind = createDataParserKind("extended");
18
- function dataParserExtendedInit(dataParser, rest) {
18
+ function dataParserExtendedInit(dataParser, rest, specificOverrideHandler) {
19
19
  const self = pipe({
20
20
  ...dataParser,
21
21
  ...pipe(rest, entries, map(([key, value]) => entry(key, typeof value === "function"
@@ -46,13 +46,13 @@ function dataParserExtendedInit(dataParser, rest) {
46
46
  return union([self, option], definition);
47
47
  },
48
48
  addChecker(...checkers) {
49
- return dataParserExtendedInit(dataParser.addChecker(...checkers), rest);
49
+ return dataParserExtendedInit(dataParser.addChecker(...checkers), rest, specificOverrideHandler);
50
50
  },
51
51
  clone() {
52
- return dataParserExtendedInit(dataParser.clone(), rest);
52
+ return dataParserExtendedInit(dataParser.clone(), rest, specificOverrideHandler);
53
53
  },
54
54
  refine(theFunction) {
55
- return dataParserExtendedInit(dataParser.addChecker(checkerRefine(theFunction)), rest);
55
+ return dataParserExtendedInit(dataParser.addChecker(checkerRefine(theFunction)), rest, specificOverrideHandler);
56
56
  },
57
57
  recover(recoveredValue, definition) {
58
58
  return recover(self, recoveredValue, definition);
@@ -60,7 +60,7 @@ function dataParserExtendedInit(dataParser, rest) {
60
60
  contract() {
61
61
  return self;
62
62
  },
63
- }, extendedKind.setTo, dataParserExtendedInit.overrideHandler.apply);
63
+ }, extendedKind.setTo, dataParserExtendedInit.overrideHandler.apply, specificOverrideHandler.apply);
64
64
  return self;
65
65
  }
66
66
  dataParserExtendedInit.overrideHandler = createOverride("@duplojs/utils/data-parser-extended/base");
@@ -17,8 +17,8 @@ function array(element, definition) {
17
17
  max(self, max$1, definition) {
18
18
  return self.addChecker(max.checkerArrayMax(max$1, definition));
19
19
  },
20
- });
21
- return array.overrideHandler.apply(self);
20
+ }, array.overrideHandler);
21
+ return self;
22
22
  }
23
23
  array.overrideHandler = override.createOverride("@duplojs/utils/data-parser-extended/array");
24
24
 
@@ -15,8 +15,8 @@ function array(element, definition) {
15
15
  max(self, max, definition) {
16
16
  return self.addChecker(checkerArrayMax(max, definition));
17
17
  },
18
- });
19
- return array.overrideHandler.apply(self);
18
+ }, array.overrideHandler);
19
+ return self;
20
20
  }
21
21
  array.overrideHandler = createOverride("@duplojs/utils/data-parser-extended/array");
22
22
 
@@ -17,8 +17,8 @@ function bigint(definition) {
17
17
  max(self, max$1, definition) {
18
18
  return self.addChecker(max.checkerBigIntMax(max$1, definition));
19
19
  },
20
- });
21
- return bigint.overrideHandler.apply(self);
20
+ }, bigint.overrideHandler);
21
+ return self;
22
22
  }
23
23
  bigint.overrideHandler = override.createOverride("@duplojs/utils/data-parser-extended/bigint");
24
24
 
@@ -15,8 +15,8 @@ function bigint(definition) {
15
15
  max(self, max, definition) {
16
16
  return self.addChecker(checkerBigIntMax(max, definition));
17
17
  },
18
- });
19
- return bigint.overrideHandler.apply(self);
18
+ }, bigint.overrideHandler);
19
+ return self;
20
20
  }
21
21
  bigint.overrideHandler = createOverride("@duplojs/utils/data-parser-extended/bigint");
22
22
 
@@ -8,8 +8,8 @@ var override = require('../../common/override.cjs');
8
8
  * {@include dataParser/extended/boolean/index.md}
9
9
  */
10
10
  function boolean(definition) {
11
- const self = baseExtended.dataParserExtendedInit(boolean$1.boolean(definition), {});
12
- return boolean.overrideHandler.apply(self);
11
+ const self = baseExtended.dataParserExtendedInit(boolean$1.boolean(definition), {}, boolean.overrideHandler);
12
+ return self;
13
13
  }
14
14
  boolean.overrideHandler = override.createOverride("@duplojs/utils/data-parser-extended/boolean");
15
15
 
@@ -6,8 +6,8 @@ import { createOverride } from '../../common/override.mjs';
6
6
  * {@include dataParser/extended/boolean/index.md}
7
7
  */
8
8
  function boolean(definition) {
9
- const self = dataParserExtendedInit(boolean$1(definition), {});
10
- return boolean.overrideHandler.apply(self);
9
+ const self = dataParserExtendedInit(boolean$1(definition), {}, boolean.overrideHandler);
10
+ return self;
11
11
  }
12
12
  boolean.overrideHandler = createOverride("@duplojs/utils/data-parser-extended/boolean");
13
13
 
@@ -8,8 +8,8 @@ var override = require('../../common/override.cjs');
8
8
  * {@include dataParser/extended/date/index.md}
9
9
  */
10
10
  function date(definition) {
11
- const self = baseExtended.dataParserExtendedInit(date$1.date(definition), {});
12
- return date.overrideHandler.apply(self);
11
+ const self = baseExtended.dataParserExtendedInit(date$1.date(definition), {}, date.overrideHandler);
12
+ return self;
13
13
  }
14
14
  date.overrideHandler = override.createOverride("@duplojs/utils/data-parser-extended/date");
15
15
 
@@ -6,8 +6,8 @@ import { createOverride } from '../../common/override.mjs';
6
6
  * {@include dataParser/extended/date/index.md}
7
7
  */
8
8
  function date(definition) {
9
- const self = dataParserExtendedInit(date$1(definition), {});
10
- return date.overrideHandler.apply(self);
9
+ const self = dataParserExtendedInit(date$1(definition), {}, date.overrideHandler);
10
+ return self;
11
11
  }
12
12
  date.overrideHandler = createOverride("@duplojs/utils/data-parser-extended/date");
13
13
 
@@ -8,8 +8,8 @@ var override = require('../../common/override.cjs');
8
8
  * {@include dataParser/extended/empty/index.md}
9
9
  */
10
10
  function empty(definition) {
11
- const self = baseExtended.dataParserExtendedInit(empty$1.empty(definition), {});
12
- return empty.overrideHandler.apply(self);
11
+ const self = baseExtended.dataParserExtendedInit(empty$1.empty(definition), {}, empty.overrideHandler);
12
+ return self;
13
13
  }
14
14
  empty.overrideHandler = override.createOverride("@duplojs/utils/data-parser-extended/empty");
15
15
 
@@ -6,8 +6,8 @@ import { createOverride } from '../../common/override.mjs';
6
6
  * {@include dataParser/extended/empty/index.md}
7
7
  */
8
8
  function empty(definition) {
9
- const self = dataParserExtendedInit(empty$1(definition), {});
10
- return empty.overrideHandler.apply(self);
9
+ const self = dataParserExtendedInit(empty$1(definition), {}, empty.overrideHandler);
10
+ return self;
11
11
  }
12
12
  empty.overrideHandler = createOverride("@duplojs/utils/data-parser-extended/empty");
13
13
 
@@ -8,8 +8,8 @@ var override = require('../../common/override.cjs');
8
8
  * {@include dataParser/extended/lazy/index.md}
9
9
  */
10
10
  function lazy(getter, definition) {
11
- const self = baseExtended.dataParserExtendedInit(lazy$1.lazy(getter, definition), {});
12
- return lazy.overrideHandler.apply(self);
11
+ const self = baseExtended.dataParserExtendedInit(lazy$1.lazy(getter, definition), {}, lazy.overrideHandler);
12
+ return self;
13
13
  }
14
14
  lazy.overrideHandler = override.createOverride("@duplojs/utils/data-parser-extended/lazy");
15
15
 
@@ -6,8 +6,8 @@ import { createOverride } from '../../common/override.mjs';
6
6
  * {@include dataParser/extended/lazy/index.md}
7
7
  */
8
8
  function lazy(getter, definition) {
9
- const self = dataParserExtendedInit(lazy$1(getter, definition), {});
10
- return lazy.overrideHandler.apply(self);
9
+ const self = dataParserExtendedInit(lazy$1(getter, definition), {}, lazy.overrideHandler);
10
+ return self;
11
11
  }
12
12
  lazy.overrideHandler = createOverride("@duplojs/utils/data-parser-extended/lazy");
13
13
 
@@ -8,8 +8,8 @@ var override = require('../../common/override.cjs');
8
8
  * {@include dataParser/extended/literal/index.md}
9
9
  */
10
10
  function literal(value, definition) {
11
- const self = baseExtended.dataParserExtendedInit(literal$1.literal(value, definition), {});
12
- return literal.overrideHandler.apply(self);
11
+ const self = baseExtended.dataParserExtendedInit(literal$1.literal(value, definition), {}, literal.overrideHandler);
12
+ return self;
13
13
  }
14
14
  literal.overrideHandler = override.createOverride("@duplojs/utils/data-parser-extended/literal");
15
15
 
@@ -6,8 +6,8 @@ import { createOverride } from '../../common/override.mjs';
6
6
  * {@include dataParser/extended/literal/index.md}
7
7
  */
8
8
  function literal(value, definition) {
9
- const self = dataParserExtendedInit(literal$1(value, definition), {});
10
- return literal.overrideHandler.apply(self);
9
+ const self = dataParserExtendedInit(literal$1(value, definition), {}, literal.overrideHandler);
10
+ return self;
11
11
  }
12
12
  literal.overrideHandler = createOverride("@duplojs/utils/data-parser-extended/literal");
13
13
 
@@ -8,8 +8,8 @@ var override = require('../../common/override.cjs');
8
8
  * {@include dataParser/extended/nil/index.md}
9
9
  */
10
10
  function nil(definition) {
11
- const self = baseExtended.dataParserExtendedInit(nil$1.nil(definition), {});
12
- return nil.overrideHandler.apply(self);
11
+ const self = baseExtended.dataParserExtendedInit(nil$1.nil(definition), {}, nil.overrideHandler);
12
+ return self;
13
13
  }
14
14
  nil.overrideHandler = override.createOverride("@duplojs/utils/data-parser-extended/nil");
15
15
 
@@ -6,8 +6,8 @@ import { createOverride } from '../../common/override.mjs';
6
6
  * {@include dataParser/extended/nil/index.md}
7
7
  */
8
8
  function nil(definition) {
9
- const self = dataParserExtendedInit(nil$1(definition), {});
10
- return nil.overrideHandler.apply(self);
9
+ const self = dataParserExtendedInit(nil$1(definition), {}, nil.overrideHandler);
10
+ return self;
11
11
  }
12
12
  nil.overrideHandler = createOverride("@duplojs/utils/data-parser-extended/nil");
13
13
 
@@ -8,8 +8,8 @@ var override = require('../../common/override.cjs');
8
8
  * {@include dataParser/extended/nullable/index.md}
9
9
  */
10
10
  function nullable(inner, definition) {
11
- const self = baseExtended.dataParserExtendedInit(nullable$1.nullable(inner, definition), {});
12
- return nullable.overrideHandler.apply(self);
11
+ const self = baseExtended.dataParserExtendedInit(nullable$1.nullable(inner, definition), {}, nullable.overrideHandler);
12
+ return self;
13
13
  }
14
14
  nullable.overrideHandler = override.createOverride("@duplojs/utils/data-parser-extended/nullable");
15
15
 
@@ -6,8 +6,8 @@ import { createOverride } from '../../common/override.mjs';
6
6
  * {@include dataParser/extended/nullable/index.md}
7
7
  */
8
8
  function nullable(inner, definition) {
9
- const self = dataParserExtendedInit(nullable$1(inner, definition), {});
10
- return nullable.overrideHandler.apply(self);
9
+ const self = dataParserExtendedInit(nullable$1(inner, definition), {}, nullable.overrideHandler);
10
+ return self;
11
11
  }
12
12
  nullable.overrideHandler = createOverride("@duplojs/utils/data-parser-extended/nullable");
13
13
 
@@ -21,8 +21,8 @@ function number(definition) {
21
21
  int(self, definition) {
22
22
  return self.addChecker(int$1.checkerInt(definition));
23
23
  },
24
- });
25
- return number.overrideHandler.apply(self);
24
+ }, number.overrideHandler);
25
+ return self;
26
26
  }
27
27
  number.overrideHandler = override.createOverride("@duplojs/utils/data-parser-extended/number");
28
28
  /**
@@ -19,8 +19,8 @@ function number(definition) {
19
19
  int(self, definition) {
20
20
  return self.addChecker(checkerInt(definition));
21
21
  },
22
- });
23
- return number.overrideHandler.apply(self);
22
+ }, number.overrideHandler);
23
+ return self;
24
24
  }
25
25
  number.overrideHandler = createOverride("@duplojs/utils/data-parser-extended/number");
26
26
  /**
@@ -34,8 +34,8 @@ function object(shape, definition) {
34
34
  const newShape = required.requiredShape(self.definition.shape);
35
35
  return object(newShape, definition);
36
36
  },
37
- });
38
- return object.overrideHandler.apply(self);
37
+ }, object.overrideHandler);
38
+ return self;
39
39
  }
40
40
  object.overrideHandler = override.createOverride("@duplojs/utils/data-parser-extended/object");
41
41