@duplojs/utils 1.4.56 → 1.4.58

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 (297) hide show
  1. package/dist/clean/constraint/base.d.ts +6 -4
  2. package/dist/clean/constraint/defaultConstraint/index.d.ts +1 -0
  3. package/dist/clean/constraint/defaultConstraint/number.d.ts +6 -6
  4. package/dist/clean/constraint/defaultConstraint/string.d.ts +4 -4
  5. package/dist/clean/constraint/defaultConstraint/time.cjs +19 -0
  6. package/dist/clean/constraint/defaultConstraint/time.d.ts +61 -0
  7. package/dist/clean/constraint/defaultConstraint/time.mjs +16 -0
  8. package/dist/clean/constraint/set.d.ts +6 -4
  9. package/dist/clean/entity.cjs +9 -8
  10. package/dist/clean/entity.d.ts +16 -13
  11. package/dist/clean/entity.mjs +9 -8
  12. package/dist/clean/index.cjs +3 -0
  13. package/dist/clean/index.mjs +1 -0
  14. package/dist/clean/newType.d.ts +7 -5
  15. package/dist/clean/primitive/base.d.ts +25 -34
  16. package/dist/clean/primitive/operations/date/dateAddTime.d.ts +7 -11
  17. package/dist/clean/primitive/operations/date/dateGreaterThan.d.ts +9 -7
  18. package/dist/clean/primitive/operations/date/dateLessThan.d.ts +9 -7
  19. package/dist/clean/primitive/operations/date/dateMax.d.ts +3 -10
  20. package/dist/clean/primitive/operations/date/dateMin.d.ts +3 -10
  21. package/dist/clean/primitive/operations/date/dateSubtractTime.d.ts +7 -11
  22. package/dist/clean/primitive/operations/equal.cjs +1 -1
  23. package/dist/clean/primitive/operations/equal.d.ts +3 -3
  24. package/dist/clean/primitive/operations/equal.mjs +1 -1
  25. package/dist/clean/primitive/operations/sort.d.ts +8 -10
  26. package/dist/clean/primitive/operations/time/timeGreaterThan.d.ts +11 -9
  27. package/dist/clean/primitive/operations/time/timeLessThan.d.ts +11 -9
  28. package/dist/clean/primitive/operations/time/timeMax.cjs +2 -2
  29. package/dist/clean/primitive/operations/time/timeMax.d.ts +10 -17
  30. package/dist/clean/primitive/operations/time/timeMax.mjs +2 -2
  31. package/dist/clean/primitive/operations/time/timeMin.cjs +3 -3
  32. package/dist/clean/primitive/operations/time/timeMin.d.ts +10 -17
  33. package/dist/clean/primitive/operations/time/timeMin.mjs +3 -3
  34. package/dist/clean/unwrapEntity.cjs +13 -3
  35. package/dist/clean/unwrapEntity.d.ts +57 -5
  36. package/dist/clean/unwrapEntity.mjs +13 -3
  37. package/dist/common/index.d.ts +2 -4
  38. package/dist/common/kind.d.ts +1 -0
  39. package/dist/common/transformer.cjs +45 -0
  40. package/dist/common/transformer.d.ts +61 -0
  41. package/dist/common/transformer.mjs +40 -0
  42. package/dist/common/types/DeepReadonly.d.ts +1 -1
  43. package/dist/common/types/toLargeEnsemble.d.ts +2 -2
  44. package/dist/dataParser/base.d.ts +1 -1
  45. package/dist/dataParser/baseExtended.d.ts +1 -1
  46. package/dist/dataParser/extended/date.d.ts +9 -4
  47. package/dist/dataParser/extended/time.d.ts +28 -12
  48. package/dist/dataParser/identifier.d.ts +20 -8
  49. package/dist/dataParser/parsers/date.cjs +16 -12
  50. package/dist/dataParser/parsers/date.d.ts +15 -9
  51. package/dist/dataParser/parsers/date.mjs +16 -12
  52. package/dist/dataParser/parsers/time/checkers/max.cjs +3 -0
  53. package/dist/dataParser/parsers/time/checkers/max.d.ts +28 -0
  54. package/dist/dataParser/parsers/time/checkers/max.mjs +3 -0
  55. package/dist/dataParser/parsers/time/checkers/min.cjs +3 -0
  56. package/dist/dataParser/parsers/time/checkers/min.d.ts +28 -0
  57. package/dist/dataParser/parsers/time/checkers/min.mjs +3 -0
  58. package/dist/dataParser/parsers/time/index.cjs +14 -10
  59. package/dist/dataParser/parsers/time/index.d.ts +15 -9
  60. package/dist/dataParser/parsers/time/index.mjs +14 -10
  61. package/dist/date/applyTimezone.cjs +4 -4
  62. package/dist/date/applyTimezone.d.ts +18 -16
  63. package/dist/date/applyTimezone.mjs +2 -2
  64. package/dist/date/closestTo.cjs +6 -2
  65. package/dist/date/closestTo.d.ts +15 -15
  66. package/dist/date/closestTo.mjs +6 -2
  67. package/dist/date/constants.cjs +4 -4
  68. package/dist/date/constants.d.ts +2 -2
  69. package/dist/date/constants.mjs +3 -3
  70. package/dist/date/create.cjs +20 -10
  71. package/dist/date/create.d.ts +24 -38
  72. package/dist/date/create.mjs +21 -11
  73. package/dist/date/createOrThrow.d.ts +18 -20
  74. package/dist/date/createTime.cjs +16 -7
  75. package/dist/date/createTime.d.ts +19 -18
  76. package/dist/date/createTime.mjs +17 -8
  77. package/dist/date/createTimeOrThrow.d.ts +17 -20
  78. package/dist/date/each.cjs +6 -4
  79. package/dist/date/each.d.ts +21 -19
  80. package/dist/date/each.mjs +6 -4
  81. package/dist/date/format.d.ts +17 -15
  82. package/dist/date/formatTime.d.ts +17 -16
  83. package/dist/date/getTimezoneOffset.cjs +6 -3
  84. package/dist/date/getTimezoneOffset.d.ts +17 -18
  85. package/dist/date/getTimezoneOffset.mjs +6 -3
  86. package/dist/date/getters/getDayOfMonth.cjs +3 -3
  87. package/dist/date/getters/getDayOfMonth.d.ts +20 -14
  88. package/dist/date/getters/getDayOfMonth.mjs +3 -3
  89. package/dist/date/getters/getDayOfWeek.cjs +3 -3
  90. package/dist/date/getters/getDayOfWeek.d.ts +15 -12
  91. package/dist/date/getters/getDayOfWeek.mjs +3 -3
  92. package/dist/date/getters/getDayOfYear.cjs +6 -6
  93. package/dist/date/getters/getDayOfYear.d.ts +21 -13
  94. package/dist/date/getters/getDayOfYear.mjs +6 -6
  95. package/dist/date/getters/getFirstDayOfMonth.cjs +2 -3
  96. package/dist/date/getters/getFirstDayOfMonth.d.ts +16 -10
  97. package/dist/date/getters/getFirstDayOfMonth.mjs +2 -3
  98. package/dist/date/getters/getFirstDayOfWeek.cjs +2 -3
  99. package/dist/date/getters/getFirstDayOfWeek.d.ts +17 -10
  100. package/dist/date/getters/getFirstDayOfWeek.mjs +2 -3
  101. package/dist/date/getters/getHour.cjs +3 -3
  102. package/dist/date/getters/getHour.d.ts +16 -14
  103. package/dist/date/getters/getHour.mjs +3 -3
  104. package/dist/date/getters/getLastDayOfMonth.cjs +2 -3
  105. package/dist/date/getters/getLastDayOfMonth.d.ts +16 -10
  106. package/dist/date/getters/getLastDayOfMonth.mjs +2 -3
  107. package/dist/date/getters/getLastDayOfWeek.cjs +2 -3
  108. package/dist/date/getters/getLastDayOfWeek.d.ts +17 -10
  109. package/dist/date/getters/getLastDayOfWeek.mjs +2 -3
  110. package/dist/date/getters/getMilliseconds.cjs +2 -2
  111. package/dist/date/getters/getMilliseconds.d.ts +11 -9
  112. package/dist/date/getters/getMilliseconds.mjs +2 -2
  113. package/dist/date/getters/getMinute.cjs +3 -3
  114. package/dist/date/getters/getMinute.d.ts +17 -15
  115. package/dist/date/getters/getMinute.mjs +3 -3
  116. package/dist/date/getters/getMonth.cjs +3 -3
  117. package/dist/date/getters/getMonth.d.ts +20 -15
  118. package/dist/date/getters/getMonth.mjs +3 -3
  119. package/dist/date/getters/getSecond.cjs +3 -3
  120. package/dist/date/getters/getSecond.d.ts +17 -15
  121. package/dist/date/getters/getSecond.mjs +3 -3
  122. package/dist/date/getters/getWeekOfYear.cjs +12 -11
  123. package/dist/date/getters/getWeekOfYear.d.ts +17 -11
  124. package/dist/date/getters/getWeekOfYear.mjs +12 -11
  125. package/dist/date/getters/getYear.cjs +3 -3
  126. package/dist/date/getters/getYear.d.ts +16 -15
  127. package/dist/date/getters/getYear.mjs +3 -3
  128. package/dist/date/index.cjs +12 -6
  129. package/dist/date/index.d.ts +5 -2
  130. package/dist/date/index.mjs +6 -3
  131. package/dist/date/is.cjs +3 -8
  132. package/dist/date/is.d.ts +9 -14
  133. package/dist/date/is.mjs +3 -8
  134. package/dist/date/isSafeTimeValue.d.ts +9 -13
  135. package/dist/date/isSafeTimestamp.d.ts +7 -16
  136. package/dist/date/isSerializedTheDate.cjs +20 -0
  137. package/dist/date/isSerializedTheDate.d.ts +31 -0
  138. package/dist/date/isSerializedTheDate.mjs +18 -0
  139. package/dist/date/isSerializedTheTime.cjs +20 -0
  140. package/dist/date/isSerializedTheTime.d.ts +31 -0
  141. package/dist/date/isSerializedTheTime.mjs +18 -0
  142. package/dist/date/isTime.cjs +3 -8
  143. package/dist/date/isTime.d.ts +7 -14
  144. package/dist/date/isTime.mjs +3 -8
  145. package/dist/date/kind.cjs +9 -0
  146. package/dist/date/kind.d.ts +1 -0
  147. package/dist/date/kind.mjs +7 -0
  148. package/dist/date/makeSafeTimeValue.d.ts +12 -11
  149. package/dist/date/makeSafeTimestamp.d.ts +12 -11
  150. package/dist/date/max.cjs +2 -2
  151. package/dist/date/max.d.ts +13 -13
  152. package/dist/date/max.mjs +2 -2
  153. package/dist/date/maxTime.cjs +2 -2
  154. package/dist/date/maxTime.d.ts +13 -21
  155. package/dist/date/maxTime.mjs +2 -2
  156. package/dist/date/min.cjs +2 -2
  157. package/dist/date/min.d.ts +13 -13
  158. package/dist/date/min.mjs +2 -2
  159. package/dist/date/minTime.cjs +2 -2
  160. package/dist/date/minTime.d.ts +13 -21
  161. package/dist/date/minTime.mjs +2 -2
  162. package/dist/date/now.cjs +3 -1
  163. package/dist/date/now.d.ts +9 -7
  164. package/dist/date/now.mjs +3 -1
  165. package/dist/date/operators/addDays.cjs +3 -5
  166. package/dist/date/operators/addDays.d.ts +14 -11
  167. package/dist/date/operators/addDays.mjs +3 -5
  168. package/dist/date/operators/addHours.cjs +3 -5
  169. package/dist/date/operators/addHours.d.ts +14 -11
  170. package/dist/date/operators/addHours.mjs +3 -5
  171. package/dist/date/operators/addMilliseconds.cjs +3 -5
  172. package/dist/date/operators/addMilliseconds.d.ts +14 -11
  173. package/dist/date/operators/addMilliseconds.mjs +3 -5
  174. package/dist/date/operators/addMinutes.cjs +3 -5
  175. package/dist/date/operators/addMinutes.d.ts +14 -11
  176. package/dist/date/operators/addMinutes.mjs +3 -5
  177. package/dist/date/operators/addMonths.cjs +2 -2
  178. package/dist/date/operators/addMonths.d.ts +13 -13
  179. package/dist/date/operators/addMonths.mjs +2 -2
  180. package/dist/date/operators/addSeconds.cjs +3 -5
  181. package/dist/date/operators/addSeconds.d.ts +14 -11
  182. package/dist/date/operators/addSeconds.mjs +3 -5
  183. package/dist/date/operators/addTime.cjs +13 -6
  184. package/dist/date/operators/addTime.d.ts +20 -18
  185. package/dist/date/operators/addTime.mjs +13 -6
  186. package/dist/date/operators/addWeeks.cjs +6 -5
  187. package/dist/date/operators/addWeeks.d.ts +14 -11
  188. package/dist/date/operators/addWeeks.mjs +6 -5
  189. package/dist/date/operators/addYears.cjs +2 -2
  190. package/dist/date/operators/addYears.d.ts +13 -13
  191. package/dist/date/operators/addYears.mjs +2 -2
  192. package/dist/date/operators/between.d.ts +11 -11
  193. package/dist/date/operators/betweenThan.d.ts +11 -11
  194. package/dist/date/operators/betweenThanTime.d.ts +18 -22
  195. package/dist/date/operators/betweenTime.d.ts +17 -21
  196. package/dist/date/operators/greater.d.ts +12 -9
  197. package/dist/date/operators/greaterThan.d.ts +14 -11
  198. package/dist/date/operators/greaterThanTime.d.ts +17 -21
  199. package/dist/date/operators/greaterTime.d.ts +16 -20
  200. package/dist/date/operators/less.d.ts +12 -9
  201. package/dist/date/operators/lessThan.d.ts +13 -10
  202. package/dist/date/operators/lessThanTime.d.ts +17 -21
  203. package/dist/date/operators/lessTime.d.ts +16 -20
  204. package/dist/date/operators/subtractDays.cjs +3 -5
  205. package/dist/date/operators/subtractDays.d.ts +14 -11
  206. package/dist/date/operators/subtractDays.mjs +3 -5
  207. package/dist/date/operators/subtractHours.cjs +3 -5
  208. package/dist/date/operators/subtractHours.d.ts +14 -11
  209. package/dist/date/operators/subtractHours.mjs +3 -5
  210. package/dist/date/operators/subtractMilliseconds.cjs +3 -5
  211. package/dist/date/operators/subtractMilliseconds.d.ts +14 -11
  212. package/dist/date/operators/subtractMilliseconds.mjs +3 -5
  213. package/dist/date/operators/subtractMinutes.cjs +3 -5
  214. package/dist/date/operators/subtractMinutes.d.ts +14 -11
  215. package/dist/date/operators/subtractMinutes.mjs +3 -5
  216. package/dist/date/operators/subtractMonths.cjs +2 -2
  217. package/dist/date/operators/subtractMonths.d.ts +17 -11
  218. package/dist/date/operators/subtractMonths.mjs +2 -2
  219. package/dist/date/operators/subtractSeconds.cjs +3 -5
  220. package/dist/date/operators/subtractSeconds.d.ts +14 -11
  221. package/dist/date/operators/subtractSeconds.mjs +3 -5
  222. package/dist/date/operators/subtractTime.cjs +13 -6
  223. package/dist/date/operators/subtractTime.d.ts +20 -18
  224. package/dist/date/operators/subtractTime.mjs +13 -6
  225. package/dist/date/operators/subtractWeeks.cjs +3 -5
  226. package/dist/date/operators/subtractWeeks.d.ts +14 -11
  227. package/dist/date/operators/subtractWeeks.mjs +3 -5
  228. package/dist/date/operators/subtractYears.cjs +2 -2
  229. package/dist/date/operators/subtractYears.d.ts +17 -11
  230. package/dist/date/operators/subtractYears.mjs +2 -2
  231. package/dist/date/round.cjs +2 -2
  232. package/dist/date/round.d.ts +11 -14
  233. package/dist/date/round.mjs +2 -2
  234. package/dist/date/serialize.cjs +14 -0
  235. package/dist/date/serialize.d.ts +41 -0
  236. package/dist/date/serialize.mjs +12 -0
  237. package/dist/date/sort.cjs +2 -2
  238. package/dist/date/sort.d.ts +16 -15
  239. package/dist/date/sort.mjs +2 -2
  240. package/dist/date/sortTimes.cjs +2 -2
  241. package/dist/date/sortTimes.d.ts +15 -21
  242. package/dist/date/sortTimes.mjs +2 -2
  243. package/dist/date/theDate.cjs +124 -0
  244. package/dist/date/theDate.d.ts +114 -0
  245. package/dist/date/theDate.mjs +122 -0
  246. package/dist/date/theTime.cjs +36 -0
  247. package/dist/date/theTime.d.ts +53 -0
  248. package/dist/date/theTime.mjs +34 -0
  249. package/dist/date/timezone.cjs +3 -0
  250. package/dist/date/timezone.d.ts +27 -0
  251. package/dist/date/timezone.mjs +3 -0
  252. package/dist/date/toISOString.cjs +5 -2
  253. package/dist/date/toISOString.d.ts +12 -10
  254. package/dist/date/toISOString.mjs +5 -2
  255. package/dist/date/toNative.cjs +4 -0
  256. package/dist/date/toNative.d.ts +12 -10
  257. package/dist/date/toNative.mjs +4 -0
  258. package/dist/date/toTimeValue.cjs +6 -2
  259. package/dist/date/toTimeValue.d.ts +14 -12
  260. package/dist/date/toTimeValue.mjs +6 -2
  261. package/dist/date/toTimestamp.cjs +5 -3
  262. package/dist/date/toTimestamp.d.ts +11 -9
  263. package/dist/date/toTimestamp.mjs +6 -4
  264. package/dist/date/today.cjs +3 -1
  265. package/dist/date/today.d.ts +14 -7
  266. package/dist/date/today.mjs +3 -1
  267. package/dist/date/tomorrow.cjs +2 -1
  268. package/dist/date/tomorrow.d.ts +12 -7
  269. package/dist/date/tomorrow.mjs +2 -1
  270. package/dist/date/types/index.d.ts +2 -2
  271. package/dist/date/types/serializedTheDate.d.ts +1 -0
  272. package/dist/date/types/serializedTheTime.d.ts +42 -0
  273. package/dist/date/types/spoolingDate.d.ts +2 -1
  274. package/dist/date/yesterday.cjs +2 -1
  275. package/dist/date/yesterday.d.ts +12 -7
  276. package/dist/date/yesterday.mjs +2 -1
  277. package/dist/index.cjs +5 -6
  278. package/dist/index.mjs +1 -3
  279. package/dist/metadata.json +73 -46
  280. package/package.json +1 -1
  281. package/dist/common/toJSON.cjs +0 -37
  282. package/dist/common/toJSON.d.ts +0 -44
  283. package/dist/common/toJSON.mjs +0 -35
  284. package/dist/common/toString.cjs +0 -10
  285. package/dist/common/toString.d.ts +0 -17
  286. package/dist/common/toString.mjs +0 -8
  287. package/dist/common/toTransform.cjs +0 -37
  288. package/dist/common/toTransform.d.ts +0 -50
  289. package/dist/common/toTransform.mjs +0 -35
  290. package/dist/date/createTheDate.cjs +0 -13
  291. package/dist/date/createTheDate.d.ts +0 -28
  292. package/dist/date/createTheDate.mjs +0 -11
  293. package/dist/date/createTheTime.cjs +0 -13
  294. package/dist/date/createTheTime.d.ts +0 -25
  295. package/dist/date/createTheTime.mjs +0 -11
  296. package/dist/date/types/theDate.d.ts +0 -11
  297. package/dist/date/types/theTime.d.ts +0 -10
@@ -7,7 +7,7 @@ export declare const constrainedTypeKind: import("../..").KindHandler<import("..
7
7
  export interface ConstrainedType<GenericName extends string, GenericValue extends unknown> extends Kind<typeof constrainedTypeKind.definition, Record<GenericName, unknown>>, WrappedValue<GenericValue> {
8
8
  }
9
9
  export declare const constraintHandlerKind: import("../..").KindHandler<import("../..").KindDefinition<"@DuplojsUtilsClean/constraint-handler", unknown>>;
10
- export interface ConstraintHandler<GenericName extends string = string, GenericPrimitiveValue extends EligiblePrimitive = EligiblePrimitive, GenericCheckers extends readonly DDataParser.DataParserChecker[] = readonly DDataParser.DataParserChecker[]> extends Kind<typeof constraintHandlerKind.definition> {
10
+ export interface ConstraintHandler<GenericName extends string = string, GenericPrimitiveValue extends EligiblePrimitive = EligiblePrimitive, GenericCheckers extends readonly DDataParser.DataParserChecker[] = readonly DDataParser.DataParserChecker[], GenericPrimitiveInput extends unknown = unknown> extends Kind<typeof constraintHandlerKind.definition> {
11
11
  /**
12
12
  * The constraint name used as the internal marker (for example "email").
13
13
  *
@@ -36,6 +36,7 @@ export interface ConstraintHandler<GenericName extends string = string, GenericP
36
36
  *
37
37
  */
38
38
  create<GenericData extends GenericPrimitiveValue>(data: GenericData): (DEither.Right<"createConstrainedType", ConstrainedType<GenericName, GenericData>> | DEither.Left<"createConstrainedTypeError", DDataParser.DataParserError>);
39
+ create(data: GenericPrimitiveInput): (DEither.Right<"createConstrainedType", ConstrainedType<GenericName, GenericPrimitiveValue>> | DEither.Left<"createConstrainedTypeError", DDataParser.DataParserError>);
39
40
  create<GenericPrimitive extends Primitive<GenericPrimitiveValue>>(data: GenericPrimitive): (DEither.Right<"createConstrainedType", (GenericPrimitive & ConstrainedType<GenericName, Unwrap<GenericPrimitive>>)> | DEither.Left<"createConstrainedTypeError", DDataParser.DataParserError>);
40
41
  /**
41
42
  * Creates a constrained value and throws on error.
@@ -47,6 +48,7 @@ export interface ConstraintHandler<GenericName extends string = string, GenericP
47
48
  *
48
49
  */
49
50
  createOrThrow<GenericData extends GenericPrimitiveValue>(data: GenericData): ConstrainedType<GenericName, GenericData>;
51
+ createOrThrow(data: GenericPrimitiveInput): ConstrainedType<GenericName, GenericPrimitiveValue>;
50
52
  createOrThrow<GenericPrimitive extends Primitive<GenericPrimitiveValue>>(data: GenericPrimitive): (GenericPrimitive & ConstrainedType<GenericName, Unwrap<GenericPrimitive>>);
51
53
  /**
52
54
  * Creates a constrained value from an unknown input and returns an Either.
@@ -134,12 +136,12 @@ export declare class CreateConstrainedTypeError extends CreateConstrainedTypeErr
134
136
  * @namespace C
135
137
  *
136
138
  */
137
- export declare function createConstraint<GenericName extends string, GenericPrimitiveValue extends EligiblePrimitive, const GenericChecker extends (DDataParser.DataParserChecker<DDataParser.DataParserCheckerDefinition, GenericPrimitiveValue> | readonly [
139
+ export declare function createConstraint<GenericName extends string, GenericPrimitiveValue extends EligiblePrimitive, GenericPrimitiveInput extends unknown, const GenericChecker extends (DDataParser.DataParserChecker<DDataParser.DataParserCheckerDefinition, GenericPrimitiveValue> | readonly [
138
140
  DDataParser.DataParserChecker<DDataParser.DataParserCheckerDefinition, GenericPrimitiveValue>,
139
141
  ...DDataParser.DataParserChecker<DDataParser.DataParserCheckerDefinition, GenericPrimitiveValue>[]
140
- ]) = never>(name: GenericName, primitiveHandler: PrimitiveHandler<GenericPrimitiveValue>, checker: GenericChecker): ConstraintHandler<GenericName, GenericPrimitiveValue, DArray.ArrayCoalescing<GenericChecker>>;
142
+ ]) = never>(name: GenericName, primitiveHandler: PrimitiveHandler<GenericPrimitiveValue, GenericPrimitiveInput>, checker: GenericChecker): ConstraintHandler<GenericName, GenericPrimitiveValue, DArray.ArrayCoalescing<GenericChecker>, GenericPrimitiveInput>;
141
143
  export declare namespace createConstraint {
142
- var overrideHandler: import("../..").OverrideHandler<ConstraintHandler<string, EligiblePrimitive, readonly DDataParser.DataParserChecker<DDataParser.DataParserCheckerDefinition, unknown>[]>>;
144
+ var overrideHandler: import("../..").OverrideHandler<ConstraintHandler<string, EligiblePrimitive, readonly DDataParser.DataParserChecker<DDataParser.DataParserCheckerDefinition, unknown>[], unknown>>;
143
145
  }
144
146
  export type GetConstraint<GenericConstrainHandler extends ConstraintHandler, GenericValue extends DDataParser.InputChecker<GenericConstrainHandler["checkers"][number]> = DDataParser.InputChecker<GenericConstrainHandler["checkers"][number]>> = Extract<ConstrainedType<GenericConstrainHandler["name"], GenericValue>, any>;
145
147
  export {};
@@ -1,2 +1,3 @@
1
1
  export * from "./number";
2
2
  export * from "./string";
3
+ export * from "./time";
@@ -28,7 +28,7 @@ import { type OnlyLiteralNumber } from "../../../common";
28
28
  * @namespace C
29
29
  *
30
30
  */
31
- export declare const Int: import("..").ConstraintHandler<"int", number, readonly [DDataParser.DataParserCheckerInt]>;
31
+ export declare const Int: import("..").ConstraintHandler<"int", number, readonly [DDataParser.DataParserCheckerInt], never>;
32
32
  export type Int = GetConstraint<typeof Int>;
33
33
  /**
34
34
  * Constraint handler that validates strictly positive numbers (>= 1).
@@ -57,7 +57,7 @@ export type Int = GetConstraint<typeof Int>;
57
57
  * @namespace C
58
58
  *
59
59
  */
60
- export declare const Positive: import("..").ConstraintHandler<"positive", number, readonly [DDataParser.DataParserCheckerNumberMin]>;
60
+ export declare const Positive: import("..").ConstraintHandler<"positive", number, readonly [DDataParser.DataParserCheckerNumberMin], never>;
61
61
  export type Positive = GetConstraint<typeof Positive>;
62
62
  /**
63
63
  * Constraint handler that validates strictly negative numbers (<= -1).
@@ -86,7 +86,7 @@ export type Positive = GetConstraint<typeof Positive>;
86
86
  * @namespace C
87
87
  *
88
88
  */
89
- export declare const Negative: import("..").ConstraintHandler<"negative", number, readonly [DDataParser.DataParserCheckerNumberMax]>;
89
+ export declare const Negative: import("..").ConstraintHandler<"negative", number, readonly [DDataParser.DataParserCheckerNumberMax], never>;
90
90
  export type Negative = GetConstraint<typeof Negative>;
91
91
  /**
92
92
  * Constraint factory that validates numbers greater than or equal to a minimum.
@@ -116,7 +116,7 @@ export type Negative = GetConstraint<typeof Negative>;
116
116
  * @namespace C
117
117
  *
118
118
  */
119
- export declare function NumberMin<GenericValue extends number>(value: GenericValue & OnlyLiteralNumber<GenericValue>): import("..").ConstraintHandler<`number-min-${GenericValue & OnlyLiteralNumber<GenericValue>}`, number, readonly [DDataParser.DataParserCheckerNumberMin]>;
119
+ export declare function NumberMin<GenericValue extends number>(value: GenericValue & OnlyLiteralNumber<GenericValue>): import("..").ConstraintHandler<`number-min-${GenericValue & OnlyLiteralNumber<GenericValue>}`, number, readonly [DDataParser.DataParserCheckerNumberMin], never>;
120
120
  export type NumberMin<GenericValue extends number> = ReturnType<typeof NumberMin<GenericValue>>;
121
121
  /**
122
122
  * Constraint factory that validates numbers less than or equal to a maximum.
@@ -146,7 +146,7 @@ export type NumberMin<GenericValue extends number> = ReturnType<typeof NumberMin
146
146
  * @namespace C
147
147
  *
148
148
  */
149
- export declare function NumberMax<GenericValue extends number>(value: GenericValue & OnlyLiteralNumber<GenericValue>): import("..").ConstraintHandler<`number-max-${GenericValue & OnlyLiteralNumber<GenericValue>}`, number, readonly [DDataParser.DataParserCheckerNumberMax]>;
149
+ export declare function NumberMax<GenericValue extends number>(value: GenericValue & OnlyLiteralNumber<GenericValue>): import("..").ConstraintHandler<`number-max-${GenericValue & OnlyLiteralNumber<GenericValue>}`, number, readonly [DDataParser.DataParserCheckerNumberMax], never>;
150
150
  export type NumberMax<GenericValue extends number> = ReturnType<typeof NumberMax<GenericValue>>;
151
151
  /**
152
152
  * Constraint handler that validates strictly positive integers (>= 1).
@@ -175,5 +175,5 @@ export type NumberMax<GenericValue extends number> = ReturnType<typeof NumberMax
175
175
  * @namespace C
176
176
  *
177
177
  */
178
- export declare const PositiveInt: import("..").ConstraintHandler<"positive-int", number, readonly [DDataParser.DataParserCheckerInt, DDataParser.DataParserCheckerNumberMin]>;
178
+ export declare const PositiveInt: import("..").ConstraintHandler<"positive-int", number, readonly [DDataParser.DataParserCheckerInt, DDataParser.DataParserCheckerNumberMin], never>;
179
179
  export type PositiveInt = GetConstraint<typeof PositiveInt>;
@@ -28,7 +28,7 @@ import { type OnlyLiteralNumber } from "../../../common";
28
28
  * @namespace C
29
29
  *
30
30
  */
31
- export declare const Email: import("..").ConstraintHandler<"email", string, readonly [DDataParser.DataParserCheckerEmail]>;
31
+ export declare const Email: import("..").ConstraintHandler<"email", string, readonly [DDataParser.DataParserCheckerEmail], never>;
32
32
  export type Email = GetConstraint<typeof Email>;
33
33
  /**
34
34
  * Constraint handler that validates a URL string.
@@ -57,7 +57,7 @@ export type Email = GetConstraint<typeof Email>;
57
57
  * @namespace C
58
58
  *
59
59
  */
60
- export declare const Url: import("..").ConstraintHandler<"url", string, readonly [DDataParser.DataParserCheckerUrl]>;
60
+ export declare const Url: import("..").ConstraintHandler<"url", string, readonly [DDataParser.DataParserCheckerUrl], never>;
61
61
  export type Url = GetConstraint<typeof Url>;
62
62
  /**
63
63
  * Constraint factory that validates strings with a minimum length.
@@ -87,7 +87,7 @@ export type Url = GetConstraint<typeof Url>;
87
87
  * @namespace C
88
88
  *
89
89
  */
90
- export declare function StringMin<GenericValue extends number>(value: GenericValue & OnlyLiteralNumber<GenericValue>): import("..").ConstraintHandler<`string-min-${GenericValue & OnlyLiteralNumber<GenericValue>}`, string, readonly [DDataParser.DataParserCheckerStringMin]>;
90
+ export declare function StringMin<GenericValue extends number>(value: GenericValue & OnlyLiteralNumber<GenericValue>): import("..").ConstraintHandler<`string-min-${GenericValue & OnlyLiteralNumber<GenericValue>}`, string, readonly [DDataParser.DataParserCheckerStringMin], never>;
91
91
  export type StringMin<GenericValue extends number> = GetConstraint<ReturnType<typeof StringMin<GenericValue>>>;
92
92
  /**
93
93
  * Constraint factory that validates strings with a maximum length.
@@ -117,5 +117,5 @@ export type StringMin<GenericValue extends number> = GetConstraint<ReturnType<ty
117
117
  * @namespace C
118
118
  *
119
119
  */
120
- export declare function StringMax<GenericValue extends number>(value: GenericValue & OnlyLiteralNumber<GenericValue>): import("..").ConstraintHandler<`string-max-${GenericValue & OnlyLiteralNumber<GenericValue>}`, string, readonly [DDataParser.DataParserCheckerStringMax]>;
120
+ export declare function StringMax<GenericValue extends number>(value: GenericValue & OnlyLiteralNumber<GenericValue>): import("..").ConstraintHandler<`string-max-${GenericValue & OnlyLiteralNumber<GenericValue>}`, string, readonly [DDataParser.DataParserCheckerStringMax], never>;
121
121
  export type StringMax<GenericValue extends number> = GetConstraint<ReturnType<typeof StringMax<GenericValue>>>;
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ var base = require('../base.cjs');
4
+ var base$1 = require('../../primitive/base.cjs');
5
+ var min = require('../../../dataParser/parsers/time/checkers/min.cjs');
6
+ var theTime = require('../../../date/theTime.cjs');
7
+ var max = require('../../../dataParser/parsers/time/checkers/max.cjs');
8
+
9
+ /**
10
+ * {@include clean/PositiveTime/index.md}
11
+ */
12
+ const PositiveTime = base.createConstraint("positive-time", base$1.Time, min.checkerTimeMin(theTime.TheTime.new(1)));
13
+ /**
14
+ * {@include clean/NegativeTime/index.md}
15
+ */
16
+ const NegativeTime = base.createConstraint("negative-time", base$1.Time, max.checkerTimeMax(theTime.TheTime.new(-1)));
17
+
18
+ exports.NegativeTime = NegativeTime;
19
+ exports.PositiveTime = PositiveTime;
@@ -0,0 +1,61 @@
1
+ import { type GetConstraint } from "../base";
2
+ import * as DDataParser from "../../../dataParser";
3
+ import { TheTime } from "../../../date";
4
+ /**
5
+ * Constraint handler that validates strictly positive durations (>= 1 millisecond).
6
+ *
7
+ * **Supported call styles:**
8
+ * - Classic: `PositiveTime.create(value)` -> returns Either
9
+ *
10
+ * Use it as a reusable rule to validate time values and to constrain NewTypes to positive durations.
11
+ *
12
+ * ```ts
13
+ * const result = C.PositiveTime.create(D.createTime(1, "second"));
14
+ *
15
+ * if (E.isRight(result)) {
16
+ * // result: E.Right<"createConstrainedType", C.ConstrainedType<"positive-time", D.TheTime>>
17
+ * }
18
+ *
19
+ * const value = C.PositiveTime.createOrThrow(D.createTime(500, "millisecond"));
20
+ * // value: C.ConstrainedType<"positive-time", D.TheTime>
21
+ *
22
+ * C.PositiveTime.is(value); // type guard
23
+ *
24
+ * ```
25
+ *
26
+ * @see https://utils.duplojs.dev/en/v1/api/clean/constraints
27
+ *
28
+ * @namespace C
29
+ *
30
+ */
31
+ export declare const PositiveTime: import("..").ConstraintHandler<"positive-time", TheTime, readonly [DDataParser.DataParserCheckerTimeMin], number | TheTime | `time${number}-` | `time${number}+`>;
32
+ export type PositiveTime = GetConstraint<typeof PositiveTime>;
33
+ /**
34
+ * Constraint handler that validates strictly negative durations (<= -1 millisecond).
35
+ *
36
+ * **Supported call styles:**
37
+ * - Classic: `NegativeTime.create(value)` -> returns Either
38
+ *
39
+ * Use it as a reusable rule to validate time values and to constrain NewTypes to negative durations.
40
+ *
41
+ * ```ts
42
+ * const result = C.NegativeTime.create(D.createTime(-1, "second"));
43
+ *
44
+ * if (E.isRight(result)) {
45
+ * // result: E.Right<"createConstrainedType", C.ConstrainedType<"negative-time", D.TheTime>>
46
+ * }
47
+ *
48
+ * const value = C.NegativeTime.createOrThrow(D.createTime(-500, "millisecond"));
49
+ * // value: C.ConstrainedType<"negative-time", D.TheTime>
50
+ *
51
+ * C.NegativeTime.is(value); // type guard
52
+ *
53
+ * ```
54
+ *
55
+ * @see https://utils.duplojs.dev/en/v1/api/clean/constraints
56
+ *
57
+ * @namespace C
58
+ *
59
+ */
60
+ export declare const NegativeTime: import("..").ConstraintHandler<"negative-time", TheTime, readonly [DDataParser.DataParserCheckerTimeMax], number | TheTime | `time${number}-` | `time${number}+`>;
61
+ export type NegativeTime = GetConstraint<typeof NegativeTime>;
@@ -0,0 +1,16 @@
1
+ import { createConstraint } from '../base.mjs';
2
+ import { Time } from '../../primitive/base.mjs';
3
+ import { checkerTimeMin } from '../../../dataParser/parsers/time/checkers/min.mjs';
4
+ import { TheTime } from '../../../date/theTime.mjs';
5
+ import { checkerTimeMax } from '../../../dataParser/parsers/time/checkers/max.mjs';
6
+
7
+ /**
8
+ * {@include clean/PositiveTime/index.md}
9
+ */
10
+ const PositiveTime = createConstraint("positive-time", Time, checkerTimeMin(TheTime.new(1)));
11
+ /**
12
+ * {@include clean/NegativeTime/index.md}
13
+ */
14
+ const NegativeTime = createConstraint("negative-time", Time, checkerTimeMax(TheTime.new(-1)));
15
+
16
+ export { NegativeTime, PositiveTime };
@@ -5,7 +5,7 @@ import * as DEither from "../../either";
5
5
  import * as DArray from "../../array";
6
6
  import type * as DDataParser from "../../dataParser";
7
7
  export declare const constraintsSetHandlerKind: import("../..").KindHandler<import("../..").KindDefinition<"@DuplojsUtilsClean/constraints-set-handler", unknown>>;
8
- export interface ConstraintsSetHandler<GenericPrimitiveValue extends EligiblePrimitive = EligiblePrimitive, GenericConstraintsHandler extends readonly ConstraintHandler[] = readonly []> extends Kind<typeof constraintsSetHandlerKind.definition> {
8
+ export interface ConstraintsSetHandler<GenericPrimitiveValue extends EligiblePrimitive = EligiblePrimitive, GenericConstraintsHandler extends readonly ConstraintHandler[] = readonly [], GenericPrimitiveInput extends unknown = unknown> extends Kind<typeof constraintsSetHandlerKind.definition> {
9
9
  /**
10
10
  * The primitive handler used to validate and wrap values (e.g. `C.String`, `C.Number`).
11
11
  *
@@ -29,6 +29,7 @@ export interface ConstraintsSetHandler<GenericPrimitiveValue extends EligiblePri
29
29
  *
30
30
  */
31
31
  create<const GenericInput extends GenericPrimitiveValue>(data: GenericInput): (DEither.Right<"createConstraintsSet", (Primitive<GenericInput> & UnionToIntersection<GenericConstraintsHandler[number] extends infer InferredConstraint ? InferredConstraint extends ConstraintHandler ? GetConstraint<InferredConstraint> : never : never>)> | DEither.Left<"createConstraintsSetError", DDataParser.DataParserError>);
32
+ create(data: GenericPrimitiveInput): (DEither.Right<"createConstraintsSet", (Primitive<GenericPrimitiveValue> & UnionToIntersection<GenericConstraintsHandler[number] extends infer InferredConstraint ? InferredConstraint extends ConstraintHandler ? GetConstraint<InferredConstraint> : never : never>)> | DEither.Left<"createConstraintsSetError", DDataParser.DataParserError>);
32
33
  create<GenericPrimitive extends Primitive<GenericPrimitiveValue>>(data: GenericPrimitive): (DEither.Right<"createConstraintsSet", (GenericPrimitive & UnionToIntersection<GenericConstraintsHandler[number] extends infer InferredConstraint ? InferredConstraint extends ConstraintHandler ? GetConstraint<InferredConstraint> : never : never>)> | DEither.Left<"createConstraintsSetError", DDataParser.DataParserError>);
33
34
  /**
34
35
  * Creates a constrained value and throws on error. Works with raw values or primitives.
@@ -43,6 +44,7 @@ export interface ConstraintsSetHandler<GenericPrimitiveValue extends EligiblePri
43
44
  *
44
45
  */
45
46
  createOrThrow<const GenericInput extends GenericPrimitiveValue>(data: GenericInput): (Primitive<GenericInput> & UnionToIntersection<GenericConstraintsHandler[number] extends infer InferredConstraint ? InferredConstraint extends ConstraintHandler ? GetConstraint<InferredConstraint> : never : never>);
47
+ createOrThrow(data: GenericPrimitiveInput): (Primitive<GenericPrimitiveValue> & UnionToIntersection<GenericConstraintsHandler[number] extends infer InferredConstraint ? InferredConstraint extends ConstraintHandler ? GetConstraint<InferredConstraint> : never : never>);
46
48
  createOrThrow<GenericPrimitive extends Primitive<GenericPrimitiveValue>>(data: GenericPrimitive): (GenericPrimitive & UnionToIntersection<GenericConstraintsHandler[number] extends infer InferredConstraint ? InferredConstraint extends ConstraintHandler ? GetConstraint<InferredConstraint> : never : never>);
47
49
  /**
48
50
  * Creates a constrained value from an unknown input and returns an Either.
@@ -136,12 +138,12 @@ export declare class CreateConstraintsSetError extends CreateConstraintsSetError
136
138
  * @namespace C
137
139
  *
138
140
  */
139
- export declare function createConstraintsSet<GenericPrimitiveValue extends EligiblePrimitive, const GenericConstrainHandler extends (ConstraintHandler<string, EligiblePrimitive, readonly DDataParser.DataParserChecker<DDataParser.DataParserCheckerDefinition, GenericPrimitiveValue>[]> | readonly [
141
+ export declare function createConstraintsSet<GenericPrimitiveValue extends EligiblePrimitive, GenericPrimitiveInput extends unknown, const GenericConstrainHandler extends (ConstraintHandler<string, EligiblePrimitive, readonly DDataParser.DataParserChecker<DDataParser.DataParserCheckerDefinition, GenericPrimitiveValue>[]> | readonly [
140
142
  ConstraintHandler<string, EligiblePrimitive, readonly DDataParser.DataParserChecker<DDataParser.DataParserCheckerDefinition, GenericPrimitiveValue>[]>,
141
143
  ...ConstraintHandler<string, EligiblePrimitive, readonly DDataParser.DataParserChecker<DDataParser.DataParserCheckerDefinition, GenericPrimitiveValue>[]>[]
142
- ]) = never>(primitiveHandler: PrimitiveHandler<GenericPrimitiveValue>, constraint: GenericConstrainHandler): ConstraintsSetHandler<GenericPrimitiveValue, DArray.ArrayCoalescing<GenericConstrainHandler>>;
144
+ ]) = never>(primitiveHandler: PrimitiveHandler<GenericPrimitiveValue, GenericPrimitiveInput>, constraint: GenericConstrainHandler): ConstraintsSetHandler<GenericPrimitiveValue, DArray.ArrayCoalescing<GenericConstrainHandler>, GenericPrimitiveInput>;
143
145
  export declare namespace createConstraintsSet {
144
- var overrideHandler: import("../..").OverrideHandler<ConstraintsSetHandler<EligiblePrimitive, readonly []>>;
146
+ var overrideHandler: import("../..").OverrideHandler<ConstraintsSetHandler<EligiblePrimitive, readonly [], unknown>>;
145
147
  }
146
148
  export type GetConstraints<GenericHandler extends ConstraintsSetHandler<EligiblePrimitive, readonly any[]>> = Extract<GenericHandler extends any ? UnionToIntersection<GenericHandler["constraints"][number] extends infer InferredConstraint ? InferredConstraint extends ConstraintHandler ? GetConstraint<InferredConstraint> : never : never> : never, any>;
147
149
  export {};
@@ -2,16 +2,15 @@
2
2
 
3
3
  var kind = require('./kind.cjs');
4
4
  var newType = require('./newType.cjs');
5
+ var asserts = require('../common/asserts.cjs');
5
6
  var kind$1 = require('../common/kind.cjs');
6
7
  var pipe = require('../common/pipe.cjs');
7
- var filter = require('../array/filter.cjs');
8
- var isType = require('../common/isType.cjs');
9
8
  var map = require('../array/map.cjs');
10
- var entry = require('../object/entry.cjs');
11
9
  var toTuple = require('../array/toTuple.cjs');
12
10
  var first = require('../array/at/first.cjs');
13
11
  var innerPipe = require('../common/innerPipe.cjs');
14
12
  var when = require('../pattern/when.cjs');
13
+ var isType = require('../common/isType.cjs');
15
14
  var exhaustive = require('../pattern/exhaustive.cjs');
16
15
  var when$1 = require('../common/when.cjs');
17
16
  var index = require('../dataParser/parsers/array/index.cjs');
@@ -24,13 +23,12 @@ var entries = require('../object/entries.cjs');
24
23
  var forward = require('../common/forward.cjs');
25
24
  var errorKindNamespace = require('../common/errorKindNamespace.cjs');
26
25
  var fromEntries = require('../object/fromEntries.cjs');
26
+ var entry = require('../object/entry.cjs');
27
27
  var transform = require('../dataParser/parsers/transform.cjs');
28
28
  var base$1 = require('./constraint/base.cjs');
29
29
  var wrapValue = require('../common/wrapValue.cjs');
30
- var otherwise = require('../pattern/otherwise.cjs');
31
- var justReturn = require('../common/justReturn.cjs');
32
- var union = require('../dataParser/parsers/union.cjs');
33
30
  var minElements = require('../array/minElements.cjs');
31
+ var union = require('../dataParser/parsers/union.cjs');
34
32
  var index$1 = require('../dataParser/parsers/object/index.cjs');
35
33
  var override = require('../common/override.cjs');
36
34
  var is = require('../either/left/is.cjs');
@@ -61,7 +59,10 @@ function createEntity(name, getPropertiesDefinition) {
61
59
  return transform.transform(simplePropertyDefinition.dataParser, (value) => base$1.constrainedTypeKind.setTo(newType.newTypeKind.setTo(wrapValue.wrapValue(value), simplePropertyDefinition.name), constraintKindValue));
62
60
  }
63
61
  function unionPropertyDefinitionToDataParser(unionPropertyDefinition) {
64
- return pipe.pipe(unionPropertyDefinition, map.map(simplePropertyDefinitionToDataParser), when.when(minElements.minElements(1), union.union), otherwise.otherwise(justReturn.justReturn(null)));
62
+ return pipe.pipe(unionPropertyDefinition, map.map(simplePropertyDefinitionToDataParser), (options) => {
63
+ asserts.asserts(options, minElements.minElements(1));
64
+ return union.union(options);
65
+ });
65
66
  }
66
67
  const params = {
67
68
  union: (...type) => ({ type }),
@@ -99,7 +100,7 @@ function createEntity(name, getPropertiesDefinition) {
99
100
  }
100
101
  return dataParser;
101
102
  }, when$1.when(() => definition.nullable === true, nullable.nullable))))), exhaustive.exhaustive),
102
- ])), map.map(([key, value]) => value !== null && entry.entry(key, value)), filter.filter(isType.isType("array")), fromEntries.fromEntries, index$1.object, (dataParser) => transform.transform(dataParser, (value) => entityKind.setTo(value, name)));
103
+ ])), fromEntries.fromEntries, index$1.object, (dataParser) => transform.transform(dataParser, (value) => entityKind.setTo(value, name)));
103
104
  function map$1(rawProperties) {
104
105
  const result = mapDataParser.parse(rawProperties);
105
106
  if (is.isLeft(result)) {
@@ -27,7 +27,14 @@ export type EntityProperties<GenericPropertiesDefinition extends EntityPropertie
27
27
  ] : readonly InferredValue[] : InferredValue) extends infer InferredValueWithArray ? IsEqual<GenericPropertiesDefinition[Prop]["nullable"], true> extends true ? InferredValueWithArray | null : InferredValueWithArray : never : never : unknown);
28
28
  }>;
29
29
  export type EntityRawProperties<GenericPropertiesDefinition extends EntityPropertiesDefinition = EntityPropertiesDefinition> = SimplifyTopLevel<{
30
- readonly [Prop in keyof GenericPropertiesDefinition]: (GenericPropertiesDefinition[Prop] extends EntitySimplePropertyDefinition ? Unwrap<GetNewType<GenericPropertiesDefinition[Prop]>> : GenericPropertiesDefinition[Prop] extends EntityUnionPropertyDefinition ? Unwrap<GetNewType<GenericPropertiesDefinition[Prop][number]>> : GenericPropertiesDefinition[Prop] extends EntityAdvancedPropertyDefinition ? Unwrap<GetNewType<GenericPropertiesDefinition[Prop]["type"] extends EntityUnionPropertyDefinition ? GenericPropertiesDefinition[Prop]["type"][number] : GenericPropertiesDefinition[Prop]["type"] extends EntitySimplePropertyDefinition ? GenericPropertiesDefinition[Prop]["type"] : never>> extends infer InferredValue ? (Or<[
30
+ readonly [Prop in keyof GenericPropertiesDefinition]: (GenericPropertiesDefinition[Prop] extends EntitySimplePropertyDefinition ? Unwrap<GetNewType<GenericPropertiesDefinition[Prop]>> : GenericPropertiesDefinition[Prop] extends EntityUnionPropertyDefinition ? Unwrap<GetNewType<GenericPropertiesDefinition[Prop][number]>> : GenericPropertiesDefinition[Prop] extends EntityAdvancedPropertyDefinition ? Unwrap<GetNewType<GenericPropertiesDefinition[Prop]["type"] extends EntityUnionPropertyDefinition ? GenericPropertiesDefinition[Prop]["type"][number] : GenericPropertiesDefinition[Prop]["type"] extends EntitySimplePropertyDefinition ? GenericPropertiesDefinition[Prop]["type"] : never>> extends infer InferredValue ? (IsEqual<GenericPropertiesDefinition[Prop]["inArray"], true> extends true ? readonly InferredValue[] : GenericPropertiesDefinition[Prop]["inArray"] extends object ? GenericPropertiesDefinition[Prop]["inArray"]["min"] extends number ? readonly [
31
+ ...DArray.CreateTuple<InferredValue, GenericPropertiesDefinition[Prop]["inArray"]["min"]>,
32
+ ...InferredValue[]
33
+ ] : readonly InferredValue[] : InferredValue) extends infer InferredValueWithArray ? IsEqual<GenericPropertiesDefinition[Prop]["nullable"], true> extends true ? InferredValueWithArray | null : InferredValueWithArray : never : never : unknown);
34
+ }>;
35
+ type GetInputFromNewTypeHandler<GenericNewTypeHandler extends NewTypeHandler> = GenericNewTypeHandler extends NewTypeHandler<any, infer InferredValue, any, infer InferredInput> ? IsEqual<InferredInput, never> extends true ? InferredValue : InferredInput : never;
36
+ export type PropertiesToMapOfEntity<GenericPropertiesDefinition extends EntityPropertiesDefinition = EntityPropertiesDefinition> = SimplifyTopLevel<{
37
+ readonly [Prop in keyof GenericPropertiesDefinition]: (GenericPropertiesDefinition[Prop] extends EntitySimplePropertyDefinition ? GetInputFromNewTypeHandler<GenericPropertiesDefinition[Prop]> : GenericPropertiesDefinition[Prop] extends EntityUnionPropertyDefinition ? GetInputFromNewTypeHandler<GenericPropertiesDefinition[Prop][number]> : GenericPropertiesDefinition[Prop] extends EntityAdvancedPropertyDefinition ? GetInputFromNewTypeHandler<GenericPropertiesDefinition[Prop]["type"] extends EntityUnionPropertyDefinition ? GenericPropertiesDefinition[Prop]["type"][number] : GenericPropertiesDefinition[Prop]["type"] extends EntitySimplePropertyDefinition ? GenericPropertiesDefinition[Prop]["type"] : never> extends infer InferredValue ? (Or<[
31
38
  IsEqual<GenericPropertiesDefinition[Prop]["inArray"], true>,
32
39
  IsExtends<GenericPropertiesDefinition[Prop]["inArray"], object>
33
40
  ]> extends true ? readonly InferredValue[] : InferredValue) extends infer InferredValueWithArray ? IsEqual<GenericPropertiesDefinition[Prop]["nullable"], true> extends true ? InferredValueWithArray | null : InferredValueWithArray : never : never : never);
@@ -47,11 +54,7 @@ export interface EntityHandler<GenericName extends string = string, GenericPrope
47
54
  *
48
55
  */
49
56
  readonly propertiesDefinition: GenericPropertiesDefinition;
50
- /**
51
- * The DataParser derived from the properties definition. Useful to reuse validation outside entity creation.
52
- *
53
- */
54
- readonly mapDataParser: DDataParser.Contract<EntityProperties<GenericPropertiesDefinition>, EntityRawProperties<GenericPropertiesDefinition>>;
57
+ readonly mapDataParser: DDataParser.Contract<EntityProperties<GenericPropertiesDefinition>, unknown>;
55
58
  /**
56
59
  * Builds an entity from already typed properties.
57
60
  *
@@ -70,7 +73,7 @@ export interface EntityHandler<GenericName extends string = string, GenericPrope
70
73
  */
71
74
  "new"<const GenericProperties extends EntityProperties<GenericPropertiesDefinition>>(properties: GenericProperties): Entity<GenericName> & GenericProperties;
72
75
  /**
73
- * Validates raw properties and returns an Either with the typed entity.
76
+ * Validates permissive raw properties and returns an Either with the typed entity.
74
77
  *
75
78
  * ```ts
76
79
  * if (User.Entity.is(result)) {
@@ -85,9 +88,9 @@ export interface EntityHandler<GenericName extends string = string, GenericPrope
85
88
  * ```
86
89
  *
87
90
  */
88
- map(rawProperties: EntityRawProperties<GenericPropertiesDefinition>): (DEither.Right<"createEntity", Entity<GenericName> & EntityProperties<GenericPropertiesDefinition>> | DEither.Left<"createEntityError", DDataParser.DataParserError>);
91
+ map(rawProperties: PropertiesToMapOfEntity<GenericPropertiesDefinition>): (DEither.Right<"createEntity", Entity<GenericName> & EntityProperties<GenericPropertiesDefinition>> | DEither.Left<"createEntityError", DDataParser.DataParserError>);
89
92
  /**
90
- * Validates raw properties and throws on error.
93
+ * Validates permissive raw properties and throws on error.
91
94
  *
92
95
  * ```ts
93
96
  * const mapped = User.Entity.mapOrThrow({
@@ -99,7 +102,7 @@ export interface EntityHandler<GenericName extends string = string, GenericPrope
99
102
  * ```
100
103
  *
101
104
  */
102
- mapOrThrow(rawProperties: EntityRawProperties<GenericPropertiesDefinition>): Entity<GenericName> & EntityProperties<GenericPropertiesDefinition>;
105
+ mapOrThrow(rawProperties: PropertiesToMapOfEntity<GenericPropertiesDefinition>): Entity<GenericName> & EntityProperties<GenericPropertiesDefinition>;
103
106
  /**
104
107
  * Checks if a value is an entity of this handler (type guard).
105
108
  *
@@ -129,9 +132,9 @@ declare const CreateEntityError_base: new (params: {
129
132
  "@DuplojsUtilsError/create-entity-error"?: unknown;
130
133
  }, parentParams: readonly [message?: string | undefined, options?: ErrorOptions | undefined]) => Error & Kind<import("../common").KindDefinition<"create-entity-error", unknown>, unknown> & Kind<import("../common").KindDefinition<"@DuplojsUtilsError/create-entity-error", unknown>, unknown>;
131
134
  export declare class CreateEntityError extends CreateEntityError_base {
132
- rawProperties: EntityRawProperties;
135
+ rawProperties: PropertiesToMapOfEntity;
133
136
  dataParserError: DDataParser.DataParserError;
134
- constructor(rawProperties: EntityRawProperties, dataParserError: DDataParser.DataParserError);
137
+ constructor(rawProperties: PropertiesToMapOfEntity, dataParserError: DDataParser.DataParserError);
135
138
  }
136
139
  export interface PropertiesDefinitionParams {
137
140
  union<const GenericUnionPropertyDefinition extends EntityUnionPropertyDefinition>(...type: GenericUnionPropertyDefinition): {
@@ -216,7 +219,7 @@ export interface PropertiesDefinitionParams {
216
219
  *
217
220
  * @remarks
218
221
  * - The definition callback can use helpers like `array`, `nullable`, and `union` to enrich properties.
219
- * - Use `map`/`mapOrThrow` to build from raw inputs; `new` expects already typed values.
222
+ * - Use `map`/`mapOrThrow` to build from raw inputs (with runtime constraint checks); `new` expects already typed values.
220
223
  *
221
224
  * @see https://utils.duplojs.dev/en/v1/api/clean/entity
222
225
  *
@@ -1,15 +1,14 @@
1
1
  import { createCleanKind } from './kind.mjs';
2
2
  import { newTypeHandlerKind, newTypeKind } from './newType.mjs';
3
+ import { asserts } from '../common/asserts.mjs';
3
4
  import { kindHeritage } from '../common/kind.mjs';
4
5
  import { pipe } from '../common/pipe.mjs';
5
- import { filter } from '../array/filter.mjs';
6
- import { isType } from '../common/isType.mjs';
7
6
  import { map } from '../array/map.mjs';
8
- import { entry } from '../object/entry.mjs';
9
7
  import { toTuple } from '../array/toTuple.mjs';
10
8
  import { first } from '../array/at/first.mjs';
11
9
  import { innerPipe } from '../common/innerPipe.mjs';
12
10
  import { when } from '../pattern/when.mjs';
11
+ import { isType } from '../common/isType.mjs';
13
12
  import { exhaustive } from '../pattern/exhaustive.mjs';
14
13
  import { when as when$1 } from '../common/when.mjs';
15
14
  import { array } from '../dataParser/parsers/array/index.mjs';
@@ -22,13 +21,12 @@ import { entries } from '../object/entries.mjs';
22
21
  import { forward } from '../common/forward.mjs';
23
22
  import { createErrorKind } from '../common/errorKindNamespace.mjs';
24
23
  import { fromEntries } from '../object/fromEntries.mjs';
24
+ import { entry } from '../object/entry.mjs';
25
25
  import { transform } from '../dataParser/parsers/transform.mjs';
26
26
  import { constrainedTypeKind } from './constraint/base.mjs';
27
27
  import { wrapValue } from '../common/wrapValue.mjs';
28
- import { otherwise } from '../pattern/otherwise.mjs';
29
- import { justReturn } from '../common/justReturn.mjs';
30
- import { union } from '../dataParser/parsers/union.mjs';
31
28
  import { minElements } from '../array/minElements.mjs';
29
+ import { union } from '../dataParser/parsers/union.mjs';
32
30
  import { object } from '../dataParser/parsers/object/index.mjs';
33
31
  import { createOverride } from '../common/override.mjs';
34
32
  import { isLeft } from '../either/left/is.mjs';
@@ -59,7 +57,10 @@ function createEntity(name, getPropertiesDefinition) {
59
57
  return transform(simplePropertyDefinition.dataParser, (value) => constrainedTypeKind.setTo(newTypeKind.setTo(wrapValue(value), simplePropertyDefinition.name), constraintKindValue));
60
58
  }
61
59
  function unionPropertyDefinitionToDataParser(unionPropertyDefinition) {
62
- return pipe(unionPropertyDefinition, map(simplePropertyDefinitionToDataParser), when(minElements(1), union), otherwise(justReturn(null)));
60
+ return pipe(unionPropertyDefinition, map(simplePropertyDefinitionToDataParser), (options) => {
61
+ asserts(options, minElements(1));
62
+ return union(options);
63
+ });
63
64
  }
64
65
  const params = {
65
66
  union: (...type) => ({ type }),
@@ -97,7 +98,7 @@ function createEntity(name, getPropertiesDefinition) {
97
98
  }
98
99
  return dataParser;
99
100
  }, when$1(() => definition.nullable === true, nullable))))), exhaustive),
100
- ])), map(([key, value]) => value !== null && entry(key, value)), filter(isType("array")), fromEntries, object, (dataParser) => transform(dataParser, (value) => entityKind.setTo(value, name)));
101
+ ])), fromEntries, object, (dataParser) => transform(dataParser, (value) => entityKind.setTo(value, name)));
101
102
  function map$1(rawProperties) {
102
103
  const result = mapDataParser.parse(rawProperties);
103
104
  if (isLeft(result)) {
@@ -11,6 +11,7 @@ var maybe = require('./maybe.cjs');
11
11
  var base = require('./constraint/base.cjs');
12
12
  var number = require('./constraint/defaultConstraint/number.cjs');
13
13
  var string = require('./constraint/defaultConstraint/string.cjs');
14
+ var time = require('./constraint/defaultConstraint/time.cjs');
14
15
  var set = require('./constraint/set.cjs');
15
16
  var base$1 = require('./primitive/base.cjs');
16
17
  var equal = require('./primitive/operations/equal.cjs');
@@ -75,6 +76,8 @@ exports.Email = string.Email;
75
76
  exports.StringMax = string.StringMax;
76
77
  exports.StringMin = string.StringMin;
77
78
  exports.Url = string.Url;
79
+ exports.NegativeTime = time.NegativeTime;
80
+ exports.PositiveTime = time.PositiveTime;
78
81
  exports.CreateConstraintsSetError = set.CreateConstraintsSetError;
79
82
  exports.constraintsSetHandlerKind = set.constraintsSetHandlerKind;
80
83
  exports.createConstraintsSet = set.createConstraintsSet;
@@ -9,6 +9,7 @@ export { none, some } from './maybe.mjs';
9
9
  export { CreateConstrainedTypeError, constrainedTypeKind, constraintHandlerKind, createConstraint } from './constraint/base.mjs';
10
10
  export { Int, Negative, NumberMax, NumberMin, Positive, PositiveInt } from './constraint/defaultConstraint/number.mjs';
11
11
  export { Email, StringMax, StringMin, Url } from './constraint/defaultConstraint/string.mjs';
12
+ export { NegativeTime, PositiveTime } from './constraint/defaultConstraint/time.mjs';
12
13
  export { CreateConstraintsSetError, constraintsSetHandlerKind, createConstraintsSet } from './constraint/set.mjs';
13
14
  export { BigInt, Boolean, CreatePrimitiveError, Date, Number, String, Time, createPrimitive, primitiveHandlerKind } from './primitive/base.mjs';
14
15
  export { equal } from './primitive/operations/equal.mjs';
@@ -1,4 +1,4 @@
1
- import { type Kind, type WrappedValue, type Unwrap, type NeverCoalescing, type DeepReadonly } from "..";
1
+ import { type Kind, type WrappedValue, type Unwrap, type NeverCoalescing, type DeepReadonly, type IsEqual } from "..";
2
2
  import { constrainedTypeKind, type ConstraintHandler } from "./constraint";
3
3
  import { type Primitive, type EligiblePrimitive } from "./primitive";
4
4
  import * as DEither from "../either";
@@ -10,7 +10,7 @@ type _NewType<GenericName extends string, GenericValue extends unknown, GenericC
10
10
  export interface NewType<GenericName extends string = string, GenericValue extends unknown = unknown, GenericConstraintsName extends string = never> extends _NewType<GenericName, GenericValue, GenericConstraintsName> {
11
11
  }
12
12
  export declare const newTypeHandlerKind: import("..").KindHandler<import("..").KindDefinition<"@DuplojsUtilsClean/new-type-handler", unknown>>;
13
- export interface NewTypeHandler<GenericName extends string = string, GenericValue extends unknown = unknown, GenericConstraintsHandler extends readonly ConstraintHandler[] = readonly []> extends Kind<typeof newTypeHandlerKind.definition> {
13
+ export interface NewTypeHandler<GenericName extends string = string, GenericValue extends unknown = unknown, GenericConstraintsHandler extends readonly ConstraintHandler[] = readonly ConstraintHandler[], GenericInput extends unknown = unknown> extends Kind<typeof newTypeHandlerKind.definition> {
14
14
  /**
15
15
  * The NewType name used as the brand (for example "userId").
16
16
  *
@@ -20,7 +20,7 @@ export interface NewTypeHandler<GenericName extends string = string, GenericValu
20
20
  * The DataParser used to validate and transform raw inputs.
21
21
  *
22
22
  */
23
- readonly dataParser: DDataParser.Contract<GenericValue>;
23
+ readonly dataParser: DDataParser.Contract<GenericValue, unknown>;
24
24
  /**
25
25
  * The list of constraints applied to this NewType.
26
26
  *
@@ -35,6 +35,7 @@ export interface NewTypeHandler<GenericName extends string = string, GenericValu
35
35
  *
36
36
  */
37
37
  create<const GenericInput extends GenericValue>(data: GenericInput): (DEither.Right<"createNewType", NewType<GenericName, GenericInput, GenericConstraintsHandler[number]["name"]>> | DEither.Left<"createNewTypeError", DDataParser.DataParserError>);
38
+ create(data: GenericValue): (DEither.Right<"createNewType", NewType<GenericName, GenericInput, GenericConstraintsHandler[number]["name"]>> | DEither.Left<"createNewTypeError", DDataParser.DataParserError>);
38
39
  create<GenericPrimitive extends Primitive<Extract<GenericValue, EligiblePrimitive>>>(data: GenericPrimitive): (DEither.Right<"createNewType", (GenericPrimitive & NewType<GenericName, Unwrap<GenericPrimitive>, GenericConstraintsHandler[number]["name"]>)> | DEither.Left<"createNewTypeError", DDataParser.DataParserError>);
39
40
  /**
40
41
  * Creates a NewType value and throws on error. Works with raw values or primitives.
@@ -51,6 +52,7 @@ export interface NewTypeHandler<GenericName extends string = string, GenericValu
51
52
  *
52
53
  */
53
54
  createOrThrow<const GenericData extends GenericValue>(data: GenericData): NewType<GenericName, GenericData, GenericConstraintsHandler[number]["name"]>;
55
+ createOrThrow(data: GenericInput): NewType<GenericName, GenericValue, GenericConstraintsHandler[number]["name"]>;
54
56
  createOrThrow<GenericPrimitive extends Primitive<Extract<GenericValue, EligiblePrimitive>>>(data: GenericPrimitive): (GenericPrimitive & NewType<GenericName, Unwrap<GenericPrimitive>, GenericConstraintsHandler[number]["name"]>);
55
57
  /**
56
58
  * Creates a NewType value from an unknown input and returns an Either.
@@ -150,9 +152,9 @@ export declare class CreateNewTypeError extends CreateNewTypeError_base {
150
152
  export declare function createNewType<GenericName extends string, GenericDataParser extends DDataParser.DataParser, const GenericConstraintsHandler extends (ConstraintHandler<string, EligiblePrimitive, readonly DDataParser.DataParserChecker<DDataParser.DataParserCheckerDefinition, DDataParser.Output<GenericDataParser>>[]> | readonly [
151
153
  ConstraintHandler<string, EligiblePrimitive, readonly DDataParser.DataParserChecker<DDataParser.DataParserCheckerDefinition, DDataParser.Output<GenericDataParser>>[]>,
152
154
  ...ConstraintHandler<string, EligiblePrimitive, readonly DDataParser.DataParserChecker<DDataParser.DataParserCheckerDefinition, DDataParser.Output<GenericDataParser>>[]>[]
153
- ]) = never>(name: GenericName, dataParser: GenericDataParser & DataParserContainTransform<GenericDataParser>, constraint?: GenericConstraintsHandler): NewTypeHandler<GenericName, DeepReadonly<DDataParser.Output<GenericDataParser>>, DArray.ArrayCoalescing<NeverCoalescing<GenericConstraintsHandler, readonly []>>>;
155
+ ]) = never>(name: GenericName, dataParser: GenericDataParser & DataParserContainTransform<GenericDataParser>, constraint?: GenericConstraintsHandler): NewTypeHandler<GenericName, DeepReadonly<DDataParser.Output<GenericDataParser>>, DArray.ArrayCoalescing<NeverCoalescing<GenericConstraintsHandler, readonly []>>, IsEqual<DDataParser.Output<GenericDataParser>, DDataParser.Input<GenericDataParser>> extends true ? never : DDataParser.Input<GenericDataParser>>;
154
156
  export declare namespace createNewType {
155
- var overrideHandler: import("..").OverrideHandler<NewTypeHandler<string, unknown, readonly []>>;
157
+ var overrideHandler: import("..").OverrideHandler<NewTypeHandler<string, unknown, readonly ConstraintHandler<string, EligiblePrimitive, readonly DDataParser.DataParserChecker<DDataParser.DataParserCheckerDefinition, unknown>[], unknown>[], unknown>>;
156
158
  }
157
159
  export type GetNewType<GenericHandler extends NewTypeHandler<string, unknown, readonly any[]>> = Extract<GenericHandler extends any ? NewType<GenericHandler["name"], DDataParser.Output<GenericHandler["dataParser"]>, GenericHandler["constraints"][number]["name"]> : never, any>;
158
160
  export {};