@duplojs/lang 0.0.1-beta.7 → 0.0.1-beta.9

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 (146) hide show
  1. package/dist/chrono/createDate.cjs +9 -9
  2. package/dist/chrono/createDate.d.ts +3 -3
  3. package/dist/chrono/createDate.mjs +9 -9
  4. package/dist/chrono/createTime.cjs +24 -13
  5. package/dist/chrono/createTime.mjs +24 -13
  6. package/dist/chrono/theDate.cjs +15 -16
  7. package/dist/chrono/theDate.d.ts +15 -15
  8. package/dist/chrono/theDate.mjs +15 -16
  9. package/dist/chrono/theTime.cjs +0 -1
  10. package/dist/chrono/theTime.mjs +0 -1
  11. package/dist/chrono/types/spoolingTime.d.ts +2 -1
  12. package/dist/common/constraint/cast/index.d.ts +3 -3
  13. package/dist/common/constraint/cast/string.d.ts +4 -0
  14. package/dist/common/constraint/infer/string.d.ts +2 -0
  15. package/dist/common/isType.d.ts +3 -2
  16. package/dist/common/types/index.d.ts +1 -0
  17. package/dist/common/types/isObject.d.ts +8 -0
  18. package/dist/dataStructure/common/{codec.cjs → codec/base.cjs} +7 -7
  19. package/dist/dataStructure/common/{codec.d.ts → codec/base.d.ts} +6 -6
  20. package/dist/dataStructure/common/codec/base.mjs +26 -0
  21. package/dist/dataStructure/common/codec/defaults/index.d.ts +2 -0
  22. package/dist/dataStructure/common/codec/defaults/json.cjs +26 -0
  23. package/dist/dataStructure/common/codec/defaults/json.d.ts +6 -0
  24. package/dist/dataStructure/common/codec/defaults/json.mjs +26 -0
  25. package/dist/dataStructure/common/codec/defaults/string.cjs +44 -0
  26. package/dist/dataStructure/common/codec/defaults/string.d.ts +11 -0
  27. package/dist/dataStructure/common/codec/defaults/string.mjs +44 -0
  28. package/dist/dataStructure/common/codec/index.d.ts +2 -0
  29. package/dist/dataStructure/common/error.cjs +4 -2
  30. package/dist/dataStructure/common/error.d.ts +4 -2
  31. package/dist/dataStructure/common/error.mjs +4 -2
  32. package/dist/dataStructure/common/errorInterpreter.cjs +6 -6
  33. package/dist/dataStructure/common/errorInterpreter.d.ts +7 -3
  34. package/dist/dataStructure/common/errorInterpreter.mjs +6 -6
  35. package/dist/dataStructure/constraint/defaults/allowedCharacters.d.ts +1 -3
  36. package/dist/dataStructure/constraint/defaults/index.d.ts +1 -0
  37. package/dist/dataStructure/constraint/defaults/numberInString.cjs +13 -0
  38. package/dist/dataStructure/constraint/defaults/numberInString.d.ts +10 -0
  39. package/dist/dataStructure/constraint/defaults/numberInString.mjs +12 -0
  40. package/dist/dataStructure/constraint/types/constraints.d.ts +1 -0
  41. package/dist/dataStructure/helpers/index.d.ts +6 -2
  42. package/dist/dataStructure/helpers/isNullable.cjs +12 -0
  43. package/dist/dataStructure/helpers/isNullable.d.ts +2 -0
  44. package/dist/dataStructure/helpers/isNullable.mjs +12 -0
  45. package/dist/dataStructure/helpers/isOptional.cjs +12 -0
  46. package/dist/dataStructure/helpers/isOptional.d.ts +2 -0
  47. package/dist/dataStructure/helpers/isOptional.mjs +12 -0
  48. package/dist/dataStructure/helpers/numberInString.cjs +7 -0
  49. package/dist/dataStructure/helpers/numberInString.d.ts +2 -0
  50. package/dist/dataStructure/helpers/numberInString.mjs +7 -0
  51. package/dist/dataStructure/helpers/unwrapLazy.cjs +9 -0
  52. package/dist/dataStructure/helpers/unwrapLazy.d.ts +2 -0
  53. package/dist/dataStructure/helpers/unwrapLazy.mjs +9 -0
  54. package/dist/dataStructure/index.cjs +75 -52
  55. package/dist/dataStructure/index.mjs +29 -14
  56. package/dist/dataStructure/structure/base.d.ts +1 -1
  57. package/dist/dataStructure/structure/defaults/array.d.ts +1 -1
  58. package/dist/dataStructure/structure/defaults/lazy.d.ts +1 -1
  59. package/dist/dataStructure/structure/defaults/object.d.ts +1 -1
  60. package/dist/dataStructure/structure/defaults/record.d.ts +1 -1
  61. package/dist/dataStructure/structure/defaults/type.d.ts +1 -1
  62. package/dist/dataStructure/structure/defaults/union.d.ts +1 -1
  63. package/dist/either/index.cjs +30 -8
  64. package/dist/either/index.d.ts +4 -0
  65. package/dist/either/index.mjs +23 -9
  66. package/dist/either/left/index.d.ts +3 -2
  67. package/dist/either/left/none.cjs +15 -0
  68. package/dist/either/left/none.d.ts +7 -0
  69. package/dist/either/left/none.mjs +14 -0
  70. package/dist/either/matchInformationOtherwise.d.ts +1 -1
  71. package/dist/either/rewriteInformation.cjs +22 -0
  72. package/dist/either/rewriteInformation.d.ts +14 -0
  73. package/dist/either/rewriteInformation.mjs +22 -0
  74. package/dist/either/right/asyncGroup.cjs +2 -2
  75. package/dist/either/right/asyncGroup.mjs +2 -2
  76. package/dist/either/right/group.cjs +1 -1
  77. package/dist/either/right/group.mjs +1 -1
  78. package/dist/either/right/index.d.ts +6 -5
  79. package/dist/either/right/some.cjs +15 -0
  80. package/dist/either/right/some.d.ts +7 -0
  81. package/dist/either/right/some.mjs +14 -0
  82. package/dist/either/toMaybe.cjs +12 -0
  83. package/dist/either/toMaybe.d.ts +5 -0
  84. package/dist/either/toMaybe.mjs +12 -0
  85. package/dist/either/types/mayBe.d.ts +3 -0
  86. package/dist/either/unwrapOr.cjs +14 -0
  87. package/dist/either/unwrapOr.d.ts +8 -0
  88. package/dist/either/unwrapOr.mjs +14 -0
  89. package/dist/either/unwrapOtherwise.cjs +14 -0
  90. package/dist/either/unwrapOtherwise.d.ts +8 -0
  91. package/dist/either/unwrapOtherwise.mjs +14 -0
  92. package/dist/generator/reduce.cjs +2 -1
  93. package/dist/generator/reduce.mjs +1 -1
  94. package/dist/invocation/index.cjs +8 -8
  95. package/dist/invocation/index.d.ts +1 -1
  96. package/dist/invocation/index.mjs +6 -6
  97. package/dist/invocation/reader.cjs +26 -0
  98. package/dist/invocation/reader.d.ts +28 -0
  99. package/dist/invocation/reader.mjs +25 -0
  100. package/dist/modeling/entity/base.cjs +19 -2
  101. package/dist/modeling/entity/base.d.ts +9 -2
  102. package/dist/modeling/entity/base.mjs +19 -3
  103. package/dist/modeling/entity/namespace.cjs +1 -1
  104. package/dist/modeling/entity/namespace.d.ts +1 -1
  105. package/dist/modeling/entity/namespace.mjs +1 -1
  106. package/dist/modeling/flag/base.cjs +1 -5
  107. package/dist/modeling/flag/base.d.ts +6 -7
  108. package/dist/modeling/flag/base.mjs +1 -5
  109. package/dist/modeling/index.cjs +6 -0
  110. package/dist/modeling/index.mjs +7 -4
  111. package/dist/modeling/newType/base.cjs +21 -3
  112. package/dist/modeling/newType/base.d.ts +9 -2
  113. package/dist/modeling/newType/base.mjs +19 -3
  114. package/dist/modeling/taggedObject/base.cjs +19 -2
  115. package/dist/modeling/taggedObject/base.d.ts +9 -2
  116. package/dist/modeling/taggedObject/base.mjs +19 -3
  117. package/dist/number/types/isGreater.d.ts +5 -5
  118. package/dist/object/types/forbiddenUndefinedProps.d.ts +3 -0
  119. package/dist/object/types/index.d.ts +2 -1
  120. package/dist/object/types/split.d.ts +2 -2
  121. package/dist/pattern/matchWithNumber.d.ts +4 -4
  122. package/dist/pattern/matchWithNumberOtherwise.d.ts +4 -4
  123. package/dist/pattern/matchWithString.d.ts +4 -4
  124. package/dist/pattern/matchWithStringOtherwise.d.ts +4 -4
  125. package/dist/string/constraints/allowedCharacters.d.ts +3 -3
  126. package/dist/string/constraints/index.d.ts +2 -1
  127. package/dist/string/constraints/number.d.ts +4 -0
  128. package/dist/string/index.cjs +3 -0
  129. package/dist/string/index.d.ts +1 -0
  130. package/dist/string/index.mjs +3 -1
  131. package/dist/string/isComposedOf.cjs +0 -1
  132. package/dist/string/isComposedOf.d.ts +5 -8
  133. package/dist/string/isComposedOf.mjs +0 -1
  134. package/dist/string/isNumber.cjs +7 -0
  135. package/dist/string/isNumber.d.ts +5 -0
  136. package/dist/string/isNumber.mjs +7 -0
  137. package/dist/string/to.d.ts +9 -2
  138. package/dist/string/types/IsAllowedString.d.ts +3 -0
  139. package/dist/string/types/index.d.ts +5 -5
  140. package/dist/string/types/numberInString.d.ts +1 -0
  141. package/package.json +2 -2
  142. package/dist/dataStructure/common/codec.mjs +0 -26
  143. package/dist/invocation/useCase.cjs +0 -26
  144. package/dist/invocation/useCase.d.ts +0 -28
  145. package/dist/invocation/useCase.mjs +0 -25
  146. package/dist/string/types/number.d.ts +0 -1
@@ -3,8 +3,8 @@ const require_theDate = require("./theDate.cjs");
3
3
  const require_isDate = require("./isDate.cjs");
4
4
  const require_create = require("../either/left/create.cjs");
5
5
  const require_is = require("../either/left/is.cjs");
6
- const require_when = require("../either/left/when.cjs");
7
6
  const require_create$1 = require("../either/right/create.cjs");
7
+ const require_when = require("../either/left/when.cjs");
8
8
  const require_unwrap = require("../either/right/unwrap.cjs");
9
9
  const require_safeCallback = require("../either/safeCallback.cjs");
10
10
  const require_isSafeTimestamp = require("./isSafeTimestamp.cjs");
@@ -28,23 +28,23 @@ function createDate(input, params) {
28
28
  return require_theDate.TheDate.new(date.getTime());
29
29
  }
30
30
  if (typeof input === "object") {
31
- let inputValueResult = void 0;
31
+ let resolvedDate = void 0;
32
32
  const serializeTheDateMatch = typeof input.value === "string" && input.value.match(require_constants.serializeTheDateRegex);
33
33
  if (serializeTheDateMatch) {
34
34
  const { value, sign } = serializeTheDateMatch.groups;
35
- inputValueResult = createFromTimestamp(Number(sign === "-" ? `-${value}` : value));
36
- } else if (require_isDate.isDate(input.value)) inputValueResult = require_create$1.right("date-created", input.value);
37
- else if (input.value instanceof Date) inputValueResult = createFromTimestamp(input.value.getTime());
38
- else if (typeof input.value === "number") inputValueResult = createFromTimestamp(input.value);
35
+ resolvedDate = createFromTimestamp(Number(sign === "-" ? `-${value}` : value));
36
+ } else if (require_isDate.isDate(input.value)) resolvedDate = require_create$1.right("date-created", input.value);
37
+ else if (input.value instanceof Date) resolvedDate = createFromTimestamp(input.value.getTime());
38
+ else if (typeof input.value === "number") resolvedDate = createFromTimestamp(input.value);
39
39
  else {
40
40
  const isoDateMatch = input.value.match(require_constants.isoDateRegex);
41
41
  if (isoDateMatch) {
42
42
  const { year, month, date, hour, minute, second, millisecond } = isoDateMatch.groups;
43
- inputValueResult = createFromTimestamp(Date.UTC(Number(year), Number(month) - 1, Number(date), typeof hour === "string" ? Number(hour) : 0, typeof minute === "string" ? Number(minute) : 0, typeof second === "string" ? Number(second) : 0, typeof millisecond === "string" ? Number(millisecond) : 0));
43
+ resolvedDate = createFromTimestamp(Date.UTC(Number(year), Number(month) - 1, Number(date), typeof hour === "string" ? Number(hour) : 0, typeof minute === "string" ? Number(minute) : 0, typeof second === "string" ? Number(second) : 0, typeof millisecond === "string" ? Number(millisecond) : 0));
44
44
  }
45
45
  }
46
- if (!inputValueResult || require_is.isLeft(inputValueResult)) return inputValueResult || require_create.left("date-created-error", null);
47
- const date = require_toNative.toNative(require_unwrap.unwrapRight(inputValueResult));
46
+ if (!resolvedDate || require_is.isLeft(resolvedDate)) return resolvedDate || require_create.left("date-created-error", null);
47
+ const date = require_toNative.toNative(require_unwrap.unwrapRight(resolvedDate));
48
48
  input.year && date.setUTCFullYear(input.year);
49
49
  input.month && date.setMonth(input.month);
50
50
  input.day && date.setDate(input.day);
@@ -3,7 +3,7 @@ import { Hour, IsLeapYear, IsSafeYear, Millisecond, Minute, Second, MonthWithDay
3
3
  import * as DEither from '../either';
4
4
  import type * as DCommon from '../common';
5
5
  import type * as DString from '../string';
6
- export type MayBe = DEither.Right<"date-created", TheDate> | DEither.Left<"date-created-error", null>;
6
+ export type MayBeDate = DEither.Right<"date-created", TheDate> | DEither.Left<"date-created-error", null>;
7
7
  type SafeDate = `${number}-${MonthWithDay}`;
8
8
  type ForbiddenDate<GenericDate extends string> = DCommon.And<[
9
9
  DCommon.IsExtends<GenericDate, SafeDate>,
@@ -15,7 +15,7 @@ export interface CreateSafeDateParams {
15
15
  second?: Second;
16
16
  millisecond?: Millisecond;
17
17
  }
18
- export declare function createDate<GenericInput extends TheDate | Date | number | SerializedTheDate>(input: GenericInput): MayBe;
19
- export declare function createDate<GenericInput extends SpoolingDate>(input: GenericInput): MayBe;
18
+ export declare function createDate<GenericInput extends TheDate | Date | number | SerializedTheDate>(input: GenericInput): MayBeDate;
19
+ export declare function createDate<GenericInput extends SpoolingDate>(input: GenericInput): MayBeDate;
20
20
  export declare function createDate<GenericInput extends SafeDate>(input: GenericInput & ForbiddenDate<GenericInput>, params?: CreateSafeDateParams): TheDate;
21
21
  export {};
@@ -3,8 +3,8 @@ import { TheDate } from "./theDate.mjs";
3
3
  import { isDate } from "./isDate.mjs";
4
4
  import { left } from "../either/left/create.mjs";
5
5
  import { isLeft } from "../either/left/is.mjs";
6
- import { whenIsLeft } from "../either/left/when.mjs";
7
6
  import { right } from "../either/right/create.mjs";
7
+ import { whenIsLeft } from "../either/left/when.mjs";
8
8
  import { unwrapRight } from "../either/right/unwrap.mjs";
9
9
  import { safeCallback } from "../either/safeCallback.mjs";
10
10
  import { isSafeTimestamp } from "./isSafeTimestamp.mjs";
@@ -28,23 +28,23 @@ function createDate(input, params) {
28
28
  return TheDate.new(date.getTime());
29
29
  }
30
30
  if (typeof input === "object") {
31
- let inputValueResult = void 0;
31
+ let resolvedDate = void 0;
32
32
  const serializeTheDateMatch = typeof input.value === "string" && input.value.match(serializeTheDateRegex);
33
33
  if (serializeTheDateMatch) {
34
34
  const { value, sign } = serializeTheDateMatch.groups;
35
- inputValueResult = createFromTimestamp(Number(sign === "-" ? `-${value}` : value));
36
- } else if (isDate(input.value)) inputValueResult = right("date-created", input.value);
37
- else if (input.value instanceof Date) inputValueResult = createFromTimestamp(input.value.getTime());
38
- else if (typeof input.value === "number") inputValueResult = createFromTimestamp(input.value);
35
+ resolvedDate = createFromTimestamp(Number(sign === "-" ? `-${value}` : value));
36
+ } else if (isDate(input.value)) resolvedDate = right("date-created", input.value);
37
+ else if (input.value instanceof Date) resolvedDate = createFromTimestamp(input.value.getTime());
38
+ else if (typeof input.value === "number") resolvedDate = createFromTimestamp(input.value);
39
39
  else {
40
40
  const isoDateMatch = input.value.match(isoDateRegex);
41
41
  if (isoDateMatch) {
42
42
  const { year, month, date, hour, minute, second, millisecond } = isoDateMatch.groups;
43
- inputValueResult = createFromTimestamp(Date.UTC(Number(year), Number(month) - 1, Number(date), typeof hour === "string" ? Number(hour) : 0, typeof minute === "string" ? Number(minute) : 0, typeof second === "string" ? Number(second) : 0, typeof millisecond === "string" ? Number(millisecond) : 0));
43
+ resolvedDate = createFromTimestamp(Date.UTC(Number(year), Number(month) - 1, Number(date), typeof hour === "string" ? Number(hour) : 0, typeof minute === "string" ? Number(minute) : 0, typeof second === "string" ? Number(second) : 0, typeof millisecond === "string" ? Number(millisecond) : 0));
44
44
  }
45
45
  }
46
- if (!inputValueResult || isLeft(inputValueResult)) return inputValueResult || left("date-created-error", null);
47
- const date = toNative(unwrapRight(inputValueResult));
46
+ if (!resolvedDate || isLeft(resolvedDate)) return resolvedDate || left("date-created-error", null);
47
+ const date = toNative(unwrapRight(resolvedDate));
48
48
  input.year && date.setUTCFullYear(input.year);
49
49
  input.month && date.setMonth(input.month);
50
50
  input.day && date.setDate(input.day);
@@ -1,7 +1,11 @@
1
1
  const require_constants = require("./constants.cjs");
2
2
  const require_theTime = require("./theTime.cjs");
3
+ const require_isTime = require("./isTime.cjs");
3
4
  const require_create = require("../either/left/create.cjs");
5
+ const require_is = require("../either/left/is.cjs");
4
6
  const require_create$1 = require("../either/right/create.cjs");
7
+ const require_unwrap = require("../either/right/unwrap.cjs");
8
+ const require_toNative = require("./toNative.cjs");
5
9
  const require_isSafeTimeValue = require("./isSafeTimeValue.cjs");
6
10
  //#region scripts/chrono/createTime.ts
7
11
  const unitMapper = {
@@ -18,24 +22,31 @@ function createTime(input, unit) {
18
22
  if (unit) return require_theTime.TheTime.new(input * unitMapper[unit]);
19
23
  return createFromTimeValue(input * unitMapper[unit ?? "millisecond"]);
20
24
  }
21
- if (typeof input === "string") {
22
- const serializeTheTimeMatch = input.match(require_constants.serializeTheTimeRegex);
23
- if (!serializeTheTimeMatch) return require_create.left("time-created-error", null);
25
+ const serializeTheTimeMatch = typeof input === "string" && input.match(require_constants.serializeTheTimeRegex);
26
+ if (serializeTheTimeMatch) {
24
27
  const { value, sign } = serializeTheTimeMatch.groups;
25
28
  return createFromTimeValue(Number(sign === "-" ? `-${value}` : value));
26
29
  }
27
- const { value = 0, week = 0, day = 0, hour = 0, minute = 0, second = 0, millisecond = 0 } = input;
28
- let fromValue = 0;
29
- if (typeof value === "number") fromValue = value;
30
- else {
31
- const theTimeMatch = value.match(require_constants.isoTimeRegex);
32
- if (theTimeMatch) {
33
- const { sign = "+", hour, minute, second = 0, millisecond = 0 } = theTimeMatch.groups;
34
- fromValue = Number(hour) * require_constants.millisecondInOneHour + Number(minute) * require_constants.millisecondInOneMinute + Number(second) * require_constants.millisecondsInOneSecond + Number(millisecond);
35
- fromValue = sign === "-" ? -fromValue : fromValue;
30
+ if (typeof input === "object") {
31
+ let resolvedTime = void 0;
32
+ const serializeTheTimeMatch = typeof input.value === "string" && input.value.match(require_constants.serializeTheTimeRegex);
33
+ if (serializeTheTimeMatch) {
34
+ const { value, sign } = serializeTheTimeMatch.groups;
35
+ resolvedTime = createFromTimeValue(Number(sign === "-" ? `-${value}` : value));
36
+ } else if (typeof input.value === "number") resolvedTime = createFromTimeValue(input.value);
37
+ else if (require_isTime.isTime(input.value)) resolvedTime = require_create$1.right("time-created", input.value);
38
+ else {
39
+ const theTimeMatch = input.value?.match(require_constants.isoTimeRegex);
40
+ if (theTimeMatch) {
41
+ const { sign = "+", hour, minute, second = 0, millisecond = 0 } = theTimeMatch.groups;
42
+ resolvedTime = createFromTimeValue((Number(hour) * require_constants.millisecondInOneHour + Number(minute) * require_constants.millisecondInOneMinute + Number(second) * require_constants.millisecondsInOneSecond + Number(millisecond)) * (sign === "-" ? -1 : 1));
43
+ }
36
44
  }
45
+ if (!resolvedTime || require_is.isLeft(resolvedTime)) return resolvedTime || require_create.left("time-created-error", null);
46
+ const { week = 0, day = 0, hour = 0, minute = 0, second = 0, millisecond = 0 } = input;
47
+ return createFromTimeValue(require_toNative.toNative(require_unwrap.unwrapRight(resolvedTime)) + week * require_constants.millisecondInOneWeek + day * require_constants.millisecondsInOneDay + hour * require_constants.millisecondInOneHour + minute * require_constants.millisecondInOneMinute + second * require_constants.millisecondsInOneSecond + millisecond);
37
48
  }
38
- return createFromTimeValue(fromValue + week * require_constants.millisecondInOneWeek + day * require_constants.millisecondsInOneDay + hour * require_constants.millisecondInOneHour + minute * require_constants.millisecondInOneMinute + second * require_constants.millisecondsInOneSecond + millisecond);
49
+ return require_create.left("time-created-error", null);
39
50
  }
40
51
  function createFromTimeValue(timeValue) {
41
52
  if (!require_isSafeTimeValue.isSafeTimeValue(timeValue)) return require_create.left("time-created-error", null);
@@ -1,7 +1,11 @@
1
1
  import { isoTimeRegex, millisecondInOneHour, millisecondInOneMinute, millisecondInOneWeek, millisecondsInOneDay, millisecondsInOneSecond, serializeTheTimeRegex } from "./constants.mjs";
2
2
  import { TheTime } from "./theTime.mjs";
3
+ import { isTime } from "./isTime.mjs";
3
4
  import { left } from "../either/left/create.mjs";
5
+ import { isLeft } from "../either/left/is.mjs";
4
6
  import { right } from "../either/right/create.mjs";
7
+ import { unwrapRight } from "../either/right/unwrap.mjs";
8
+ import { toNative } from "./toNative.mjs";
5
9
  import { isSafeTimeValue } from "./isSafeTimeValue.mjs";
6
10
  //#region scripts/chrono/createTime.ts
7
11
  const unitMapper = {
@@ -18,24 +22,31 @@ function createTime(input, unit) {
18
22
  if (unit) return TheTime.new(input * unitMapper[unit]);
19
23
  return createFromTimeValue(input * unitMapper[unit ?? "millisecond"]);
20
24
  }
21
- if (typeof input === "string") {
22
- const serializeTheTimeMatch = input.match(serializeTheTimeRegex);
23
- if (!serializeTheTimeMatch) return left("time-created-error", null);
25
+ const serializeTheTimeMatch = typeof input === "string" && input.match(serializeTheTimeRegex);
26
+ if (serializeTheTimeMatch) {
24
27
  const { value, sign } = serializeTheTimeMatch.groups;
25
28
  return createFromTimeValue(Number(sign === "-" ? `-${value}` : value));
26
29
  }
27
- const { value = 0, week = 0, day = 0, hour = 0, minute = 0, second = 0, millisecond = 0 } = input;
28
- let fromValue = 0;
29
- if (typeof value === "number") fromValue = value;
30
- else {
31
- const theTimeMatch = value.match(isoTimeRegex);
32
- if (theTimeMatch) {
33
- const { sign = "+", hour, minute, second = 0, millisecond = 0 } = theTimeMatch.groups;
34
- fromValue = Number(hour) * millisecondInOneHour + Number(minute) * millisecondInOneMinute + Number(second) * millisecondsInOneSecond + Number(millisecond);
35
- fromValue = sign === "-" ? -fromValue : fromValue;
30
+ if (typeof input === "object") {
31
+ let resolvedTime = void 0;
32
+ const serializeTheTimeMatch = typeof input.value === "string" && input.value.match(serializeTheTimeRegex);
33
+ if (serializeTheTimeMatch) {
34
+ const { value, sign } = serializeTheTimeMatch.groups;
35
+ resolvedTime = createFromTimeValue(Number(sign === "-" ? `-${value}` : value));
36
+ } else if (typeof input.value === "number") resolvedTime = createFromTimeValue(input.value);
37
+ else if (isTime(input.value)) resolvedTime = right("time-created", input.value);
38
+ else {
39
+ const theTimeMatch = input.value?.match(isoTimeRegex);
40
+ if (theTimeMatch) {
41
+ const { sign = "+", hour, minute, second = 0, millisecond = 0 } = theTimeMatch.groups;
42
+ resolvedTime = createFromTimeValue((Number(hour) * millisecondInOneHour + Number(minute) * millisecondInOneMinute + Number(second) * millisecondsInOneSecond + Number(millisecond)) * (sign === "-" ? -1 : 1));
43
+ }
36
44
  }
45
+ if (!resolvedTime || isLeft(resolvedTime)) return resolvedTime || left("time-created-error", null);
46
+ const { week = 0, day = 0, hour = 0, minute = 0, second = 0, millisecond = 0 } = input;
47
+ return createFromTimeValue(toNative(unwrapRight(resolvedTime)) + week * millisecondInOneWeek + day * millisecondsInOneDay + hour * millisecondInOneHour + minute * millisecondInOneMinute + second * millisecondsInOneSecond + millisecond);
37
48
  }
38
- return createFromTimeValue(fromValue + week * millisecondInOneWeek + day * millisecondsInOneDay + hour * millisecondInOneHour + minute * millisecondInOneMinute + second * millisecondsInOneSecond + millisecond);
49
+ return left("time-created-error", null);
39
50
  }
40
51
  function createFromTimeValue(timeValue) {
41
52
  if (!isSafeTimeValue(timeValue)) return left("time-created-error", null);
@@ -20,96 +20,95 @@ var TheDate = class TheDate extends require_parentClass.parentClass(require_kind
20
20
  /**
21
21
  * @deprecated this method does not work on ImmutableDate
22
22
  */
23
- setDate(_date) {
23
+ setDate() {
24
24
  return this.getTime();
25
25
  }
26
26
  /**
27
27
  * @deprecated this method does not work on ImmutableDate
28
28
  */
29
- setFullYear(_year, _month, _date) {
29
+ setFullYear() {
30
30
  return this.getTime();
31
31
  }
32
32
  /**
33
33
  * @deprecated this method does not work on ImmutableDate
34
34
  */
35
- setHours(_hours, _min, _sec, _ms) {
35
+ setHours() {
36
36
  return this.getTime();
37
37
  }
38
38
  /**
39
39
  * @deprecated this method does not work on ImmutableDate
40
40
  */
41
- setMilliseconds(_ms) {
41
+ setMilliseconds() {
42
42
  return this.getTime();
43
43
  }
44
44
  /**
45
45
  * @deprecated this method does not work on ImmutableDate
46
46
  */
47
- setMinutes(_min, _sec, _ms) {
47
+ setMinutes() {
48
48
  return this.getTime();
49
49
  }
50
50
  /**
51
51
  * @deprecated this method does not work on ImmutableDate
52
52
  */
53
- setMonth(_month, _date) {
53
+ setMonth() {
54
54
  return this.getTime();
55
55
  }
56
56
  /**
57
57
  * @deprecated this method does not work on ImmutableDate
58
58
  */
59
- setSeconds(_sec, _ms) {
59
+ setSeconds() {
60
60
  return this.getTime();
61
61
  }
62
62
  /**
63
63
  * @deprecated this method does not work on ImmutableDate
64
64
  */
65
- setTime(_time) {
65
+ setTime() {
66
66
  return this.getTime();
67
67
  }
68
68
  /**
69
69
  * @deprecated this method does not work on ImmutableDate
70
70
  */
71
- setUTCDate(_date) {
71
+ setUTCDate() {
72
72
  return this.getTime();
73
73
  }
74
74
  /**
75
75
  * @deprecated this method does not work on ImmutableDate
76
76
  */
77
- setUTCFullYear(_year, _month, _date) {
77
+ setUTCFullYear() {
78
78
  return this.getTime();
79
79
  }
80
80
  /**
81
81
  * @deprecated this method does not work on ImmutableDate
82
82
  */
83
- setUTCHours(_hours, _min, _sec, _ms) {
83
+ setUTCHours() {
84
84
  return this.getTime();
85
85
  }
86
86
  /**
87
87
  * @deprecated this method does not work on ImmutableDate
88
88
  */
89
- setUTCMilliseconds(_ms) {
89
+ setUTCMilliseconds() {
90
90
  return this.getTime();
91
91
  }
92
92
  /**
93
93
  * @deprecated this method does not work on ImmutableDate
94
94
  */
95
- setUTCMinutes(_min, _sec, _ms) {
95
+ setUTCMinutes() {
96
96
  return this.getTime();
97
97
  }
98
98
  /**
99
99
  * @deprecated this method does not work on ImmutableDate
100
100
  */
101
- setUTCMonth(_month, _date) {
101
+ setUTCMonth() {
102
102
  return this.getTime();
103
103
  }
104
104
  /**
105
105
  * @deprecated this method does not work on ImmutableDate
106
106
  */
107
- setUTCSeconds(_sec, _ms) {
107
+ setUTCSeconds() {
108
108
  return this.getTime();
109
109
  }
110
110
  /**
111
111
  * @internal
112
- * @deprecated use DChrono.createDate | DChrono.createDateOrThrow function
113
112
  */
114
113
  static "new"(timestamp) {
115
114
  return new TheDate(require_makeSafeTimestamp.makeSafeTimestamp(timestamp));
@@ -9,62 +9,62 @@ export declare class TheDate extends TheDate_base {
9
9
  /**
10
10
  * @deprecated this method does not work on ImmutableDate
11
11
  */
12
- setDate(_date: number): number;
12
+ setDate(): number;
13
13
  /**
14
14
  * @deprecated this method does not work on ImmutableDate
15
15
  */
16
- setFullYear(_year: number, _month?: number, _date?: number): number;
16
+ setFullYear(): number;
17
17
  /**
18
18
  * @deprecated this method does not work on ImmutableDate
19
19
  */
20
- setHours(_hours: number, _min?: number, _sec?: number, _ms?: number): number;
20
+ setHours(): number;
21
21
  /**
22
22
  * @deprecated this method does not work on ImmutableDate
23
23
  */
24
- setMilliseconds(_ms: number): number;
24
+ setMilliseconds(): number;
25
25
  /**
26
26
  * @deprecated this method does not work on ImmutableDate
27
27
  */
28
- setMinutes(_min: number, _sec?: number, _ms?: number): number;
28
+ setMinutes(): number;
29
29
  /**
30
30
  * @deprecated this method does not work on ImmutableDate
31
31
  */
32
- setMonth(_month: number, _date?: number): number;
32
+ setMonth(): number;
33
33
  /**
34
34
  * @deprecated this method does not work on ImmutableDate
35
35
  */
36
- setSeconds(_sec: number, _ms?: number): number;
36
+ setSeconds(): number;
37
37
  /**
38
38
  * @deprecated this method does not work on ImmutableDate
39
39
  */
40
- setTime(_time: number): number;
40
+ setTime(): number;
41
41
  /**
42
42
  * @deprecated this method does not work on ImmutableDate
43
43
  */
44
- setUTCDate(_date: number): number;
44
+ setUTCDate(): number;
45
45
  /**
46
46
  * @deprecated this method does not work on ImmutableDate
47
47
  */
48
- setUTCFullYear(_year: number, _month?: number, _date?: number): number;
48
+ setUTCFullYear(): number;
49
49
  /**
50
50
  * @deprecated this method does not work on ImmutableDate
51
51
  */
52
- setUTCHours(_hours: number, _min?: number, _sec?: number, _ms?: number): number;
52
+ setUTCHours(): number;
53
53
  /**
54
54
  * @deprecated this method does not work on ImmutableDate
55
55
  */
56
- setUTCMilliseconds(_ms: number): number;
56
+ setUTCMilliseconds(): number;
57
57
  /**
58
58
  * @deprecated this method does not work on ImmutableDate
59
59
  */
60
- setUTCMinutes(_min: number, _sec?: number, _ms?: number): number;
60
+ setUTCMinutes(): number;
61
61
  /**
62
62
  * @deprecated this method does not work on ImmutableDate
63
63
  */
64
- setUTCMonth(_month: number, _date?: number): number;
64
+ setUTCMonth(): number;
65
65
  /**
66
66
  * @deprecated this method does not work on ImmutableDate
67
67
  */
68
- setUTCSeconds(_sec: number, _ms?: number): number;
68
+ setUTCSeconds(): number;
69
69
  }
70
70
  export {};
@@ -20,96 +20,95 @@ var TheDate = class TheDate extends parentClass(createKind("the-date"), Date) {
20
20
  /**
21
21
  * @deprecated this method does not work on ImmutableDate
22
22
  */
23
- setDate(_date) {
23
+ setDate() {
24
24
  return this.getTime();
25
25
  }
26
26
  /**
27
27
  * @deprecated this method does not work on ImmutableDate
28
28
  */
29
- setFullYear(_year, _month, _date) {
29
+ setFullYear() {
30
30
  return this.getTime();
31
31
  }
32
32
  /**
33
33
  * @deprecated this method does not work on ImmutableDate
34
34
  */
35
- setHours(_hours, _min, _sec, _ms) {
35
+ setHours() {
36
36
  return this.getTime();
37
37
  }
38
38
  /**
39
39
  * @deprecated this method does not work on ImmutableDate
40
40
  */
41
- setMilliseconds(_ms) {
41
+ setMilliseconds() {
42
42
  return this.getTime();
43
43
  }
44
44
  /**
45
45
  * @deprecated this method does not work on ImmutableDate
46
46
  */
47
- setMinutes(_min, _sec, _ms) {
47
+ setMinutes() {
48
48
  return this.getTime();
49
49
  }
50
50
  /**
51
51
  * @deprecated this method does not work on ImmutableDate
52
52
  */
53
- setMonth(_month, _date) {
53
+ setMonth() {
54
54
  return this.getTime();
55
55
  }
56
56
  /**
57
57
  * @deprecated this method does not work on ImmutableDate
58
58
  */
59
- setSeconds(_sec, _ms) {
59
+ setSeconds() {
60
60
  return this.getTime();
61
61
  }
62
62
  /**
63
63
  * @deprecated this method does not work on ImmutableDate
64
64
  */
65
- setTime(_time) {
65
+ setTime() {
66
66
  return this.getTime();
67
67
  }
68
68
  /**
69
69
  * @deprecated this method does not work on ImmutableDate
70
70
  */
71
- setUTCDate(_date) {
71
+ setUTCDate() {
72
72
  return this.getTime();
73
73
  }
74
74
  /**
75
75
  * @deprecated this method does not work on ImmutableDate
76
76
  */
77
- setUTCFullYear(_year, _month, _date) {
77
+ setUTCFullYear() {
78
78
  return this.getTime();
79
79
  }
80
80
  /**
81
81
  * @deprecated this method does not work on ImmutableDate
82
82
  */
83
- setUTCHours(_hours, _min, _sec, _ms) {
83
+ setUTCHours() {
84
84
  return this.getTime();
85
85
  }
86
86
  /**
87
87
  * @deprecated this method does not work on ImmutableDate
88
88
  */
89
- setUTCMilliseconds(_ms) {
89
+ setUTCMilliseconds() {
90
90
  return this.getTime();
91
91
  }
92
92
  /**
93
93
  * @deprecated this method does not work on ImmutableDate
94
94
  */
95
- setUTCMinutes(_min, _sec, _ms) {
95
+ setUTCMinutes() {
96
96
  return this.getTime();
97
97
  }
98
98
  /**
99
99
  * @deprecated this method does not work on ImmutableDate
100
100
  */
101
- setUTCMonth(_month, _date) {
101
+ setUTCMonth() {
102
102
  return this.getTime();
103
103
  }
104
104
  /**
105
105
  * @deprecated this method does not work on ImmutableDate
106
106
  */
107
- setUTCSeconds(_sec, _ms) {
107
+ setUTCSeconds() {
108
108
  return this.getTime();
109
109
  }
110
110
  /**
111
111
  * @internal
112
- * @deprecated use DChrono.createDate | DChrono.createDateOrThrow function
113
112
  */
114
113
  static "new"(timestamp) {
115
114
  return new TheDate(makeSafeTimestamp(timestamp));
@@ -21,7 +21,6 @@ var TheTime = class TheTime extends require_parentClass.parentClass(require_kind
21
21
  }
22
22
  /**
23
23
  * @internal
24
- * @deprecated use DDate.createTime | DDate.createTimeOrThrow function
25
24
  */
26
25
  static "new"(time) {
27
26
  return new TheTime(require_makeSafeTimeValue.makeSafeTimeValue(time));
@@ -21,7 +21,6 @@ var TheTime = class TheTime extends parentClass(createKind("the-time")) {
21
21
  }
22
22
  /**
23
23
  * @internal
24
- * @deprecated use DDate.createTime | DDate.createTimeOrThrow function
25
24
  */
26
25
  static "new"(time) {
27
26
  return new TheTime(makeSafeTimeValue(time));
@@ -1,5 +1,6 @@
1
+ import { TheTime } from '../theTime';
1
2
  export interface SpoolingTime {
2
- value?: string | number;
3
+ value?: string | number | TheTime;
3
4
  week?: number;
4
5
  day?: number;
5
6
  hour?: number;
@@ -3,7 +3,7 @@ import { UnbundlesConstraint, BaseConstraint, RemoveConstraint } from '../types'
3
3
  import { CastError, RemoveCastError } from './error';
4
4
  import { ComputeCastConstraintNumberRule } from './number';
5
5
  import { ComputeCastConstraintStringRule } from './string';
6
- import { AnyTuple, IsExtends, BreakGenericLink, NeverCoalescing, UnionContain, IsEqual } from '../../types';
6
+ import { IsExtends, BreakGenericLink, NeverCoalescing, UnionContain, IsEqual } from '../../types';
7
7
  import type * as DArray from '../../../array';
8
8
  import type * as DTuple from '../../../tuple';
9
9
  import type * as DObject from '../../../object';
@@ -17,7 +17,7 @@ export interface ComputeCastConstraintRule<GenericValue extends unknown, Generic
17
17
  array: GenericValue extends readonly unknown[] ? DObject.Values<ComputeCastConstraintArrayRule<GenericValue, GenericConstraint>> : never;
18
18
  }
19
19
  export type ComputeCastConstraint<GenericValue extends unknown, GenericExpectedValue extends unknown> = (GenericExpectedValue extends any ? [UnbundlesConstraint<GenericExpectedValue>] : never) extends infer InferredComputedExpectedValue extends [BaseConstraint] ? DArray.Unwrap<NeverCoalescing<Extract<GenericValue extends any ? (InferredComputedExpectedValue extends [infer InferredConstraint extends BaseConstraint] ? NeverCoalescing<Extract<InferredConstraint extends any ? [
20
- NeverCoalescing<DObject.Values<ComputeCastConstraintRule<GenericValue, InferredConstraint>>, CastError<"None of the intended constraints is possible on the current value.", GenericValue, InferredConstraint>>
20
+ GenericValue extends InferredConstraint ? unknown : NeverCoalescing<DObject.Values<ComputeCastConstraintRule<GenericValue, InferredConstraint>>, CastError<"None of the intended constraints is possible on the current value.", GenericValue, InferredConstraint>>
21
21
  ] : never, [
22
22
  CastError<any, any, any>
23
23
  ]>, [
@@ -25,7 +25,7 @@ export type ComputeCastConstraint<GenericValue extends unknown, GenericExpectedV
25
25
  ]> : never) extends infer InferredResult ? UnionContain<InferredResult, [unknown]> extends true ? [unknown] : InferredResult : never : never, [
26
26
  CastError<any, any, any>
27
27
  ]>, unknown>> : never;
28
- type ComputeTransformCastValue<GenericValue extends unknown> = GenericValue extends (string | number | AnyTuple) ? RemoveConstraint<GenericValue> : GenericValue extends readonly unknown[] ? DArray.ExtractLengthEqual<GenericValue, unknown> extends DArray.LengthEqual<infer InferredLength> ? DTuple.Create<GenericValue[number], InferredLength> : DArray.ExtractMinElements<GenericValue, unknown> extends DArray.MinElements<infer InferredMin> ? readonly [...DTuple.Create<GenericValue[number], InferredMin>, ...GenericValue] : RemoveConstraint<GenericValue> : never;
28
+ type ComputeTransformCastValue<GenericValue extends unknown> = GenericValue extends readonly unknown[] ? DArray.ExtractLengthEqual<GenericValue, unknown> extends DArray.LengthEqual<infer InferredLength> ? DTuple.Create<GenericValue[number], InferredLength> : DArray.ExtractMinElements<GenericValue, unknown> extends DArray.MinElements<infer InferredMin> ? readonly [...DTuple.Create<GenericValue[number], InferredMin>, ...GenericValue] : RemoveConstraint<GenericValue> : RemoveConstraint<GenericValue>;
29
29
  export type ComputeCastValue<GenericValue extends unknown, GenericExpectedValue extends unknown> = [
30
30
  ComputeTransformCastValue<GenericValue>,
31
31
  ComputeTransformCastValue<GenericExpectedValue>
@@ -7,6 +7,10 @@ export interface ComputeCastConstraintStringRule<GenericValue extends string, Ge
7
7
  maxCharacters: GenericExpectedConstraint extends DString.MaxCharacters<number> ? DCommon.NeverCoalescing<(DString.ComputeMaxCharactersCompatibility<GenericValue, GenericExpectedConstraint, unknown> extends infer InferredResult extends CompatibilityConstraintResult<boolean, number, number> ? InferredResult extends CompatibilityConstraintResult<true> ? unknown : DCommon.IsNever<DString.ExtractLengthEqual<GenericValue>> extends true ? CastError<`Impossible to cast on MaxCharacters<${InferredResult["to"]}> because constraint MaxCharacters<${InferredResult["from"]}> from the value is more than.`, GenericValue, GenericExpectedConstraint> : CastError<`Impossible to cast on MaxCharacters<${InferredResult["to"]}> because constraint LengthEqual<${InferredResult["from"]}> from the value is more than.`, GenericValue, GenericExpectedConstraint> : never), CastError<"Impossible to cast on MaxCharacters because value does not have MaxCharacters constraint.", GenericValue, GenericExpectedConstraint>> : never;
8
8
  minCharacters: GenericExpectedConstraint extends DString.MinCharacters<number> ? DCommon.NeverCoalescing<(DString.ComputeMinCharactersCompatibility<GenericValue, GenericExpectedConstraint, unknown> extends infer InferredResult extends CompatibilityConstraintResult<boolean, number, number> ? InferredResult extends CompatibilityConstraintResult<true> ? unknown : DCommon.IsNever<DString.ExtractLengthEqual<GenericValue>> extends true ? CastError<`Impossible to cast on MinCharacters<${InferredResult["to"]}> because constraint MinCharacters<${InferredResult["from"]}> from the value is less than.`, GenericValue, GenericExpectedConstraint> : CastError<`Impossible to cast on MinCharacters<${InferredResult["to"]}> because constraint LengthEqual<${InferredResult["from"]}> from the value is less than.`, GenericValue, GenericExpectedConstraint> : never), CastError<"Impossible to cast on MinCharacters because value does not have MinCharacters constraint.", GenericValue, GenericExpectedConstraint>> : never;
9
9
  lengthEqual: GenericExpectedConstraint extends DString.LengthEqual<number> ? DCommon.NeverCoalescing<(DString.ComputeLengthEqualCompatibility<GenericValue, GenericExpectedConstraint, unknown> extends infer InferredResult extends CompatibilityConstraintResult<boolean, number, number> ? InferredResult extends CompatibilityConstraintResult<true> ? unknown : CastError<`Impossible to cast on LengthEqual<${InferredResult["to"]}> because constraint LengthEqual<${InferredResult["from"]}> from the value is not equal.`, GenericValue, GenericExpectedConstraint> : never), CastError<"Impossible to cast on LengthEqual because value does not have LengthEqual constraint.", GenericValue, GenericExpectedConstraint>> : never;
10
+ number: DCommon.IsExtends<GenericExpectedConstraint, DString.Number> extends true ? DCommon.Or<[
11
+ DCommon.IsExtends<GenericValue, DString.NumberInString>,
12
+ DCommon.IsExtends<GenericValue, DString.Number>
13
+ ]> extends true ? unknown : CastError<`Impossible to cast on Number because value ${GenericValue} is not a number.`, GenericValue, GenericExpectedConstraint> : never;
10
14
  path: DCommon.IsExtends<GenericExpectedConstraint, DPath.Path> extends true ? DCommon.Or<[
11
15
  DPath.IsLiteralPath<GenericValue>,
12
16
  DCommon.IsExtends<GenericValue, DPath.Path | DPath.Absolute | DPath.Segment>
@@ -5,6 +5,8 @@ export interface ComputeInferConstraintStringRule<GenericInput extends string, G
5
5
  maxCharacters: DString.ComputeMaxCharactersCompatibility<GenericInput, GenericOutput, unknown> extends infer InferredResult extends DCommon.CompatibilityConstraintResult<boolean, number, number> ? InferredResult extends DCommon.CompatibilityConstraintResult<true> ? DString.MaxCharacters<InferredResult["to"]> : DCommon.ComputedTypeError<`Impossible to cast on MaxCharacters<${InferredResult["to"]}> because constraint MaxCharacters<${InferredResult["from"]}> from the value is more than.`> : never;
6
6
  minCharacters: DString.ComputeMinCharactersCompatibility<GenericInput, GenericOutput, unknown> extends infer InferredResult extends DCommon.CompatibilityConstraintResult<boolean, number, number> ? InferredResult extends DCommon.CompatibilityConstraintResult<true> ? DString.MinCharacters<InferredResult["to"]> : DCommon.ComputedTypeError<`Impossible to cast on MinCharacters<${InferredResult["to"]}> because constraint MinCharacters<${InferredResult["from"]}> from the value is less than.`> : never;
7
7
  lengthEqual: DString.ComputeLengthEqualCompatibility<GenericInput, GenericOutput, unknown> extends infer InferredResult extends DCommon.CompatibilityConstraintResult<boolean, number, number> ? InferredResult extends DCommon.CompatibilityConstraintResult<true> ? DString.LengthEqual<InferredResult["to"]> : DCommon.ComputedTypeError<`Impossible to cast on LengthEqual<${InferredResult["to"]}> because constraint LengthEqual<${InferredResult["from"]}> from the value is not equal.`> : never;
8
+ allowedCharacters: GenericOutput extends DString.AllowedCharacters ? keyof ReturnType<GenericOutput[DCommon.ConstraintSymbol][DString.AllowedCharactersConstraintName]> extends infer InferredCharactersRange extends DString.CharactersRange ? DString.IsAllowedString<GenericInput, DString.CharactersRangeStore[InferredCharactersRange]> extends true ? DString.AllowedCharacters<InferredCharactersRange> : DCommon.ComputedTypeError<`Impossible to cast on AllowedCharacters because value ${GenericInput} contains forbidden characters.`> : never : never;
9
+ number: DCommon.IsExtends<GenericOutput, DString.Number> extends true ? GenericInput extends DString.NumberInString ? DString.Number : DCommon.ComputedTypeError<`Impossible to cast on Number because value ${GenericInput} is not a number.`> : never;
8
10
  path: DCommon.IsExtends<GenericOutput, DPath.Path> extends true ? DPath.IsLiteralPath<GenericInput> extends true ? DPath.Path : DCommon.ComputedTypeError<`Impossible to cast on Path because value ${GenericInput} is not path.`> : never;
9
11
  absolutePath: DCommon.IsExtends<GenericOutput, DPath.Absolute> extends true ? DPath.IsLiteralAbsolutePath<GenericInput> extends true ? DPath.Absolute : DCommon.ComputedTypeError<`Impossible to cast on AbsolutePath because value ${GenericInput} is not absolute path.`> : never;
10
12
  segment: DCommon.IsExtends<GenericOutput, DPath.Segment> extends true ? DPath.IsLiteralSegmentPath<GenericInput> extends true ? DPath.Segment : DCommon.ComputedTypeError<`Impossible to cast on SegmentPath because value ${GenericInput} is not segment path.`> : never;
@@ -1,3 +1,4 @@
1
+ import { RemoveConstraint } from './constraint';
1
2
  import { IsEqual, AnyFunction, AnyValue, BreakGenericLink } from './types';
2
3
  interface Type {
3
4
  string: [string, never];
@@ -17,6 +18,6 @@ type ComputeResult<GenericInput extends unknown, GenericTypeEntry extends Type[k
17
18
  type EligibleType<GenericInput extends unknown> = {
18
19
  [Prop in keyof Type]: IsEqual<ComputeResult<GenericInput, Type[Prop]>, never> extends true ? never : Prop;
19
20
  }[keyof Type];
20
- export declare function isType<GenericInput extends AnyValue, GenericType extends EligibleType<GenericInput>>(type: GenericType): (input: GenericInput) => input is ComputeResult<BreakGenericLink<GenericInput>, Type[GenericType]>;
21
- export declare function isType<GenericInput extends AnyValue, GenericType extends EligibleType<GenericInput>>(input: GenericInput, type: GenericType): input is ComputeResult<GenericInput, Type[GenericType]>;
21
+ export declare function isType<GenericInput extends AnyValue, GenericType extends EligibleType<RemoveConstraint<GenericInput>>>(type: GenericType): (input: GenericInput) => input is ComputeResult<BreakGenericLink<GenericInput>, Type[GenericType]>;
22
+ export declare function isType<GenericInput extends AnyValue, GenericType extends EligibleType<RemoveConstraint<GenericInput>>>(input: GenericInput, type: GenericType): input is ComputeResult<GenericInput, Type[GenericType]>;
22
23
  export {};
@@ -26,6 +26,7 @@ export type * from './forward';
26
26
  export type * from './hasSomething';
27
27
  export type * from './isEqual';
28
28
  export type * from './isNever';
29
+ export type * from './isObject';
29
30
  export type * from './isUnion';
30
31
  export type * from './json';
31
32
  export type * from './lastUnionElement';