@duplojs/lang 0.0.0 → 0.0.1-beta.2

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 (275) hide show
  1. package/dist/array/at/default.d.ts +1 -1
  2. package/dist/array/chunk.d.ts +3 -2
  3. package/dist/array/concat.d.ts +1 -1
  4. package/dist/array/copyWithin.d.ts +1 -1
  5. package/dist/array/fill/all.d.ts +1 -1
  6. package/dist/array/fill/default.d.ts +3 -3
  7. package/dist/array/filter.d.ts +1 -1
  8. package/dist/array/findAndReplace.d.ts +1 -1
  9. package/dist/array/findAndSplice/delete.d.ts +1 -1
  10. package/dist/array/findAndSplice/insert.d.ts +1 -1
  11. package/dist/array/insert.d.ts +3 -3
  12. package/dist/array/length.d.ts +1 -1
  13. package/dist/array/lengthEqual.d.ts +1 -1
  14. package/dist/array/map.d.ts +1 -1
  15. package/dist/array/maxElements.d.ts +1 -1
  16. package/dist/array/minElements.d.ts +1 -1
  17. package/dist/array/pop.d.ts +1 -1
  18. package/dist/array/prepend.d.ts +1 -1
  19. package/dist/array/push.d.ts +3 -3
  20. package/dist/array/reverse.d.ts +1 -1
  21. package/dist/array/shift.d.ts +1 -1
  22. package/dist/array/sort.d.ts +1 -1
  23. package/dist/array/splice/delete.d.ts +1 -1
  24. package/dist/array/splice/insert.d.ts +1 -1
  25. package/dist/array/unshift.d.ts +3 -3
  26. package/dist/common/formData.cjs +4 -2
  27. package/dist/common/formData.mjs +4 -2
  28. package/dist/common/queue.cjs +9 -7
  29. package/dist/common/queue.mjs +9 -7
  30. package/dist/common/types/index.d.ts +1 -0
  31. package/dist/common/types/splitPromise.d.ts +1 -0
  32. package/dist/dataStructure/common/codec.cjs +5 -4
  33. package/dist/dataStructure/common/codec.d.ts +2 -2
  34. package/dist/dataStructure/common/codec.mjs +5 -4
  35. package/dist/dataStructure/common/error.cjs +34 -16
  36. package/dist/dataStructure/common/error.d.ts +29 -11
  37. package/dist/dataStructure/common/error.mjs +32 -17
  38. package/dist/dataStructure/common/errorInterpreter.cjs +45 -0
  39. package/dist/dataStructure/common/errorInterpreter.d.ts +32 -0
  40. package/dist/dataStructure/common/errorInterpreter.mjs +45 -0
  41. package/dist/dataStructure/common/index.d.ts +1 -0
  42. package/dist/dataStructure/constraint/base.cjs +16 -3
  43. package/dist/dataStructure/constraint/base.d.ts +8 -4
  44. package/dist/dataStructure/constraint/base.mjs +16 -3
  45. package/dist/dataStructure/constraint/defaults/allowedCharacters.cjs +1 -1
  46. package/dist/dataStructure/constraint/defaults/allowedCharacters.mjs +1 -1
  47. package/dist/dataStructure/constraint/defaults/arrayLengthEqual.cjs +1 -1
  48. package/dist/dataStructure/constraint/defaults/arrayLengthEqual.mjs +1 -1
  49. package/dist/dataStructure/constraint/defaults/betweenThan.cjs +1 -1
  50. package/dist/dataStructure/constraint/defaults/betweenThan.mjs +1 -1
  51. package/dist/dataStructure/constraint/defaults/betweenThanOrEqual.cjs +1 -1
  52. package/dist/dataStructure/constraint/defaults/betweenThanOrEqual.mjs +1 -1
  53. package/dist/dataStructure/constraint/defaults/email.cjs +1 -1
  54. package/dist/dataStructure/constraint/defaults/email.mjs +1 -1
  55. package/dist/dataStructure/constraint/defaults/even.cjs +1 -1
  56. package/dist/dataStructure/constraint/defaults/even.mjs +1 -1
  57. package/dist/dataStructure/constraint/defaults/greaterThan.cjs +1 -1
  58. package/dist/dataStructure/constraint/defaults/greaterThan.mjs +1 -1
  59. package/dist/dataStructure/constraint/defaults/greaterThanOrEqual.cjs +1 -1
  60. package/dist/dataStructure/constraint/defaults/greaterThanOrEqual.mjs +1 -1
  61. package/dist/dataStructure/constraint/defaults/index.d.ts +1 -0
  62. package/dist/dataStructure/constraint/defaults/integer.cjs +1 -1
  63. package/dist/dataStructure/constraint/defaults/integer.mjs +1 -1
  64. package/dist/dataStructure/constraint/defaults/lessThan.cjs +1 -1
  65. package/dist/dataStructure/constraint/defaults/lessThan.mjs +1 -1
  66. package/dist/dataStructure/constraint/defaults/lessThanOrEqual.cjs +1 -1
  67. package/dist/dataStructure/constraint/defaults/lessThanOrEqual.mjs +1 -1
  68. package/dist/dataStructure/constraint/defaults/maxCharacters.cjs +1 -1
  69. package/dist/dataStructure/constraint/defaults/maxCharacters.mjs +1 -1
  70. package/dist/dataStructure/constraint/defaults/maxElements.cjs +1 -1
  71. package/dist/dataStructure/constraint/defaults/maxElements.mjs +1 -1
  72. package/dist/dataStructure/constraint/defaults/minCharacters.cjs +1 -1
  73. package/dist/dataStructure/constraint/defaults/minCharacters.mjs +1 -1
  74. package/dist/dataStructure/constraint/defaults/minElements.cjs +1 -1
  75. package/dist/dataStructure/constraint/defaults/minElements.mjs +1 -1
  76. package/dist/dataStructure/constraint/defaults/multipleOf.cjs +1 -1
  77. package/dist/dataStructure/constraint/defaults/multipleOf.mjs +1 -1
  78. package/dist/dataStructure/constraint/defaults/negative.cjs +1 -1
  79. package/dist/dataStructure/constraint/defaults/negative.mjs +1 -1
  80. package/dist/dataStructure/constraint/defaults/notEmpty.cjs +1 -1
  81. package/dist/dataStructure/constraint/defaults/notEmpty.mjs +1 -1
  82. package/dist/dataStructure/constraint/defaults/notZero.cjs +1 -1
  83. package/dist/dataStructure/constraint/defaults/notZero.mjs +1 -1
  84. package/dist/dataStructure/constraint/defaults/odd.cjs +1 -1
  85. package/dist/dataStructure/constraint/defaults/odd.mjs +1 -1
  86. package/dist/dataStructure/constraint/defaults/positive.cjs +1 -1
  87. package/dist/dataStructure/constraint/defaults/positive.mjs +1 -1
  88. package/dist/dataStructure/constraint/defaults/refine.cjs +1 -1
  89. package/dist/dataStructure/constraint/defaults/refine.mjs +1 -1
  90. package/dist/dataStructure/constraint/defaults/safe.cjs +1 -1
  91. package/dist/dataStructure/constraint/defaults/safe.mjs +1 -1
  92. package/dist/dataStructure/constraint/defaults/strictNegative.cjs +1 -1
  93. package/dist/dataStructure/constraint/defaults/strictNegative.mjs +1 -1
  94. package/dist/dataStructure/constraint/defaults/strictPositive.cjs +1 -1
  95. package/dist/dataStructure/constraint/defaults/strictPositive.mjs +1 -1
  96. package/dist/dataStructure/constraint/defaults/stringLengthEqual.cjs +1 -1
  97. package/dist/dataStructure/constraint/defaults/stringLengthEqual.mjs +1 -1
  98. package/dist/dataStructure/constraint/defaults/trimmed.cjs +13 -0
  99. package/dist/dataStructure/constraint/defaults/trimmed.d.ts +10 -0
  100. package/dist/dataStructure/constraint/defaults/trimmed.mjs +12 -0
  101. package/dist/dataStructure/constraint/defaults/url.cjs +1 -1
  102. package/dist/dataStructure/constraint/defaults/url.mjs +1 -1
  103. package/dist/dataStructure/constraint/defaults/uuid.cjs +1 -1
  104. package/dist/dataStructure/constraint/defaults/uuid.mjs +1 -1
  105. package/dist/dataStructure/fundamentalType/base.cjs +3 -3
  106. package/dist/dataStructure/fundamentalType/base.d.ts +4 -5
  107. package/dist/dataStructure/fundamentalType/base.mjs +3 -3
  108. package/dist/dataStructure/fundamentalType/defaults/bigint.cjs +4 -2
  109. package/dist/dataStructure/fundamentalType/defaults/bigint.d.ts +4 -4
  110. package/dist/dataStructure/fundamentalType/defaults/bigint.mjs +5 -2
  111. package/dist/dataStructure/fundamentalType/defaults/boolean.cjs +4 -2
  112. package/dist/dataStructure/fundamentalType/defaults/boolean.d.ts +4 -4
  113. package/dist/dataStructure/fundamentalType/defaults/boolean.mjs +5 -2
  114. package/dist/dataStructure/fundamentalType/defaults/date.cjs +4 -2
  115. package/dist/dataStructure/fundamentalType/defaults/date.d.ts +4 -4
  116. package/dist/dataStructure/fundamentalType/defaults/date.mjs +5 -2
  117. package/dist/dataStructure/fundamentalType/defaults/null.cjs +4 -2
  118. package/dist/dataStructure/fundamentalType/defaults/null.d.ts +4 -4
  119. package/dist/dataStructure/fundamentalType/defaults/null.mjs +5 -2
  120. package/dist/dataStructure/fundamentalType/defaults/number.cjs +4 -2
  121. package/dist/dataStructure/fundamentalType/defaults/number.d.ts +4 -4
  122. package/dist/dataStructure/fundamentalType/defaults/number.mjs +5 -2
  123. package/dist/dataStructure/fundamentalType/defaults/string.cjs +4 -2
  124. package/dist/dataStructure/fundamentalType/defaults/string.d.ts +4 -4
  125. package/dist/dataStructure/fundamentalType/defaults/string.mjs +5 -2
  126. package/dist/dataStructure/fundamentalType/defaults/time.cjs +4 -2
  127. package/dist/dataStructure/fundamentalType/defaults/time.d.ts +4 -4
  128. package/dist/dataStructure/fundamentalType/defaults/time.mjs +5 -2
  129. package/dist/dataStructure/fundamentalType/defaults/undefined.cjs +4 -2
  130. package/dist/dataStructure/fundamentalType/defaults/undefined.d.ts +4 -4
  131. package/dist/dataStructure/fundamentalType/defaults/undefined.mjs +5 -2
  132. package/dist/dataStructure/fundamentalType/identifier.d.ts +2 -2
  133. package/dist/dataStructure/helpers/array.d.ts +1 -1
  134. package/dist/dataStructure/helpers/bigint.d.ts +1 -1
  135. package/dist/dataStructure/helpers/boolean.d.ts +1 -1
  136. package/dist/dataStructure/helpers/date.d.ts +1 -1
  137. package/dist/dataStructure/helpers/index.d.ts +1 -0
  138. package/dist/dataStructure/helpers/lazy.d.ts +1 -1
  139. package/dist/dataStructure/helpers/null.d.ts +1 -1
  140. package/dist/dataStructure/helpers/number.d.ts +1 -1
  141. package/dist/dataStructure/helpers/object.d.ts +1 -1
  142. package/dist/dataStructure/helpers/record.d.ts +1 -1
  143. package/dist/dataStructure/helpers/string.d.ts +1 -1
  144. package/dist/dataStructure/helpers/time.d.ts +1 -1
  145. package/dist/dataStructure/helpers/trimmed.cjs +7 -0
  146. package/dist/dataStructure/helpers/trimmed.d.ts +2 -0
  147. package/dist/dataStructure/helpers/trimmed.mjs +7 -0
  148. package/dist/dataStructure/helpers/undefined.d.ts +1 -1
  149. package/dist/dataStructure/helpers/union.d.ts +1 -1
  150. package/dist/dataStructure/index.cjs +38 -0
  151. package/dist/dataStructure/index.mjs +31 -10
  152. package/dist/dataStructure/structure/base.cjs +15 -5
  153. package/dist/dataStructure/structure/base.d.ts +7 -4
  154. package/dist/dataStructure/structure/base.mjs +15 -5
  155. package/dist/dataStructure/structure/defaults/array.d.ts +1 -1
  156. package/dist/dataStructure/structure/defaults/array.mjs +8 -5
  157. package/dist/dataStructure/structure/defaults/index.d.ts +1 -0
  158. package/dist/dataStructure/structure/defaults/lazy.cjs +4 -2
  159. package/dist/dataStructure/structure/defaults/lazy.d.ts +1 -1
  160. package/dist/dataStructure/structure/defaults/lazy.mjs +4 -2
  161. package/dist/dataStructure/structure/defaults/nonEncodableString.cjs +17 -0
  162. package/dist/dataStructure/structure/defaults/nonEncodableString.d.ts +10 -0
  163. package/dist/dataStructure/structure/defaults/nonEncodableString.mjs +16 -0
  164. package/dist/dataStructure/structure/defaults/object.d.ts +1 -1
  165. package/dist/dataStructure/structure/defaults/object.mjs +8 -5
  166. package/dist/dataStructure/structure/defaults/record.d.ts +1 -1
  167. package/dist/dataStructure/structure/defaults/record.mjs +8 -5
  168. package/dist/dataStructure/structure/defaults/type.cjs +1 -1
  169. package/dist/dataStructure/structure/defaults/type.d.ts +1 -1
  170. package/dist/dataStructure/structure/defaults/type.mjs +2 -2
  171. package/dist/dataStructure/structure/defaults/union.cjs +9 -9
  172. package/dist/dataStructure/structure/defaults/union.d.ts +1 -1
  173. package/dist/dataStructure/structure/defaults/union.mjs +18 -15
  174. package/dist/dataStructure/structure/identifier.d.ts +2 -2
  175. package/dist/dataStructure/structure/types/constraintsValue.d.ts +1 -1
  176. package/dist/dataStructure/structure/types/structures.d.ts +2 -1
  177. package/dist/dataStructure/structure/types/value.d.ts +1 -1
  178. package/dist/dataStructure/type/base.cjs +17 -4
  179. package/dist/dataStructure/type/base.d.ts +7 -3
  180. package/dist/dataStructure/type/base.mjs +17 -4
  181. package/dist/dataStructure/type/defaults/bigintLiteral.cjs +1 -1
  182. package/dist/dataStructure/type/defaults/bigintLiteral.mjs +1 -1
  183. package/dist/dataStructure/type/defaults/booleanLiteral.cjs +1 -1
  184. package/dist/dataStructure/type/defaults/booleanLiteral.mjs +1 -1
  185. package/dist/dataStructure/type/defaults/numberLiteral.cjs +1 -1
  186. package/dist/dataStructure/type/defaults/numberLiteral.mjs +1 -1
  187. package/dist/dataStructure/type/defaults/stringLiteral.cjs +1 -1
  188. package/dist/dataStructure/type/defaults/stringLiteral.mjs +1 -1
  189. package/dist/dataStructure/type/identifier.d.ts +2 -2
  190. package/dist/generator/asyncChunk.d.ts +3 -2
  191. package/dist/generator/chunk.d.ts +3 -2
  192. package/dist/generator/types/flat.d.ts +2 -2
  193. package/dist/invocation/flow/base.d.ts +7 -2
  194. package/dist/invocation/flow/controller/base.d.ts +1 -0
  195. package/dist/invocation/flow/controller/defaults/aborter.cjs +35 -0
  196. package/dist/invocation/flow/controller/defaults/aborter.d.ts +14 -0
  197. package/dist/invocation/flow/controller/defaults/aborter.mjs +33 -0
  198. package/dist/invocation/flow/controller/defaults/filter.cjs +5 -3
  199. package/dist/invocation/flow/controller/defaults/filter.d.ts +1 -1
  200. package/dist/invocation/flow/controller/defaults/filter.mjs +5 -3
  201. package/dist/invocation/flow/controller/defaults/index.d.ts +1 -0
  202. package/dist/invocation/index.cjs +7 -0
  203. package/dist/invocation/index.mjs +5 -1
  204. package/dist/kind/types/getName.d.ts +2 -0
  205. package/dist/kind/types/getNamespaceName.d.ts +3 -0
  206. package/dist/kind/types/index.d.ts +2 -0
  207. package/dist/kind/types/remove.d.ts +2 -2
  208. package/dist/modeling/entity/base.cjs +2 -2
  209. package/dist/modeling/entity/base.d.ts +14 -10
  210. package/dist/modeling/entity/base.mjs +2 -2
  211. package/dist/modeling/entity/index.d.ts +0 -1
  212. package/dist/modeling/index.cjs +17 -6
  213. package/dist/modeling/index.d.ts +1 -0
  214. package/dist/modeling/index.mjs +11 -5
  215. package/dist/modeling/newType/base.cjs +6 -3
  216. package/dist/modeling/newType/base.mjs +6 -3
  217. package/dist/modeling/taggedObject/base.cjs +23 -0
  218. package/dist/modeling/taggedObject/base.d.ts +32 -0
  219. package/dist/modeling/taggedObject/base.mjs +21 -0
  220. package/dist/modeling/taggedObject/helper.cjs +29 -0
  221. package/dist/modeling/taggedObject/helper.d.ts +14 -0
  222. package/dist/modeling/taggedObject/helper.mjs +26 -0
  223. package/dist/modeling/taggedObject/index.d.ts +2 -0
  224. package/dist/number/betweenThan.d.ts +2 -2
  225. package/dist/number/betweenThanOrEqual.d.ts +2 -2
  226. package/dist/number/greaterThan.d.ts +1 -1
  227. package/dist/number/greaterThanOrEqual.d.ts +1 -1
  228. package/dist/number/lessThan.d.ts +1 -1
  229. package/dist/number/lessThanOrEqual.d.ts +1 -1
  230. package/dist/number/sort.d.ts +1 -1
  231. package/dist/pattern/index.cjs +12 -0
  232. package/dist/pattern/index.d.ts +4 -0
  233. package/dist/pattern/index.mjs +9 -1
  234. package/dist/pattern/matchWithEntity.cjs +12 -0
  235. package/dist/pattern/matchWithEntity.d.ts +12 -0
  236. package/dist/pattern/matchWithEntity.mjs +12 -0
  237. package/dist/pattern/matchWithEntityOtherwise.cjs +13 -0
  238. package/dist/pattern/matchWithEntityOtherwise.d.ts +14 -0
  239. package/dist/pattern/matchWithEntityOtherwise.mjs +13 -0
  240. package/dist/pattern/matchWithNumberOtherwise.cjs +2 -6
  241. package/dist/pattern/matchWithNumberOtherwise.mjs +2 -6
  242. package/dist/pattern/matchWithStringOtherwise.cjs +2 -6
  243. package/dist/pattern/matchWithStringOtherwise.d.ts +1 -1
  244. package/dist/pattern/matchWithStringOtherwise.mjs +2 -6
  245. package/dist/pattern/matchWithTaggedObject.cjs +12 -0
  246. package/dist/pattern/matchWithTaggedObject.d.ts +12 -0
  247. package/dist/pattern/matchWithTaggedObject.mjs +12 -0
  248. package/dist/pattern/matchWithTaggedObjectOtherwise.cjs +13 -0
  249. package/dist/pattern/matchWithTaggedObjectOtherwise.d.ts +14 -0
  250. package/dist/pattern/matchWithTaggedObjectOtherwise.mjs +13 -0
  251. package/dist/string/at.d.ts +2 -2
  252. package/dist/string/first.d.ts +1 -1
  253. package/dist/string/index.cjs +3 -0
  254. package/dist/string/index.mjs +3 -1
  255. package/dist/string/last.d.ts +1 -1
  256. package/dist/string/lengthEqual.d.ts +1 -1
  257. package/dist/string/maxCharacters.d.ts +1 -1
  258. package/dist/string/minCharacters.d.ts +1 -1
  259. package/dist/string/padEnd.d.ts +1 -1
  260. package/dist/string/padStart.d.ts +1 -1
  261. package/dist/string/pop.d.ts +1 -1
  262. package/dist/string/shift.d.ts +1 -1
  263. package/dist/string/slice.d.ts +1 -1
  264. package/dist/string/substring.d.ts +1 -1
  265. package/dist/string/trim/default.d.ts +1 -1
  266. package/dist/string/trim/end.d.ts +1 -1
  267. package/dist/string/trim/index.d.ts +1 -0
  268. package/dist/string/trim/is.cjs +6 -0
  269. package/dist/string/trim/is.d.ts +2 -0
  270. package/dist/string/trim/is.mjs +6 -0
  271. package/dist/string/trim/start.d.ts +1 -1
  272. package/package.json +1 -1
  273. package/dist/modeling/entity/entityName.cjs +0 -13
  274. package/dist/modeling/entity/entityName.d.ts +0 -13
  275. package/dist/modeling/entity/entityName.mjs +0 -13
@@ -0,0 +1,29 @@
1
+ const require_base = require("./base.cjs");
2
+ //#region scripts/modeling/taggedObject/helper.ts
3
+ function getTagValue(objectTag) {
4
+ return require_base.objectTagKind.getValue(objectTag);
5
+ }
6
+ function hasTagValue(...args) {
7
+ if (args.length === 1) {
8
+ const [value] = args;
9
+ return (input) => hasTagValue(input, value);
10
+ }
11
+ const [input, value] = args;
12
+ if (!require_base.objectTagKind.has(input)) return false;
13
+ const tagValue = require_base.objectTagKind.getValue(input);
14
+ return Array.isArray(value) ? value.includes(tagValue) : tagValue === value;
15
+ }
16
+ function taggedObject(tag, props) {
17
+ return {
18
+ ...props,
19
+ [require_base.objectTagKind.runTimeKey]: tag
20
+ };
21
+ }
22
+ function createTaggedObject(name) {
23
+ return (shape) => require_base.TaggedObjectStructure(name, shape);
24
+ }
25
+ //#endregion
26
+ exports.createTaggedObject = createTaggedObject;
27
+ exports.getTagValue = getTagValue;
28
+ exports.hasTagValue = hasTagValue;
29
+ exports.taggedObject = taggedObject;
@@ -0,0 +1,14 @@
1
+ import { ExtractByTagValue, GetTagValue, ShapeTaggedObjectStructure, TaggedObjectStructure, ObjectTag } from './base';
2
+ import type * as DKind from '../../kind';
3
+ import type * as DCommon from '../../common';
4
+ import type * as DDataStructure from '../../dataStructure';
5
+ import type * as DObject from '../../object';
6
+ export declare function getTagValue<GenericObjectTag extends ObjectTag>(objectTag: GenericObjectTag): GetTagValue<GenericObjectTag>;
7
+ export declare function hasTagValue<GenericInput extends unknown, GenericTagValue extends (GenericInput extends ObjectTag ? GetTagValue<GenericInput> : never)>(value: DCommon.MaybeArray<GenericTagValue>): (input: GenericInput) => input is ExtractByTagValue<GenericInput, GenericTagValue>;
8
+ export declare function hasTagValue<GenericInput extends unknown, GenericTagValue extends (GenericInput extends ObjectTag ? GetTagValue<GenericInput> : never)>(input: GenericInput, value: DCommon.MaybeArray<GenericTagValue>): input is ExtractByTagValue<GenericInput, GenericTagValue>;
9
+ export declare function taggedObject<GenericTaggedObject extends ObjectTag>(...args: GenericTaggedObject extends unknown ? [
10
+ tag: NoInfer<GetTagValue<GenericTaggedObject>>,
11
+ props: NoInfer<DCommon.SimplifyTopLevel<DKind.Remove<ExtractByTagValue<GenericTaggedObject, GetTagValue<GenericTaggedObject>>>>>
12
+ ] : never): GenericTaggedObject;
13
+ export type RequireTaggedObjectSameShape<GenericTaggedObject extends ObjectTag, GenericTaggedObjectShape extends ShapeTaggedObjectStructure> = DCommon.IsEqual<DCommon.SimplifyTopLevel<DObject.DeepReadonly<DKind.Remove<GenericTaggedObject>>>, DCommon.SimplifyTopLevel<DObject.DeepReadonly<DDataStructure.ShapeObjectStructureValue<GenericTaggedObjectShape>>>> extends true ? unknown : DCommon.ComputedTypeError<"Shape do not match.">;
14
+ export declare function createTaggedObject<GenericTaggedObject extends ObjectTag>(name: GetTagValue<GenericTaggedObject>): <GenericShape extends ShapeTaggedObjectStructure<GenericTaggedObject>>(shape: (GenericShape & RequireTaggedObjectSameShape<GenericTaggedObject, GenericShape>)) => TaggedObjectStructure<GenericTaggedObject>;
@@ -0,0 +1,26 @@
1
+ import { TaggedObjectStructure, objectTagKind } from "./base.mjs";
2
+ //#region scripts/modeling/taggedObject/helper.ts
3
+ function getTagValue(objectTag) {
4
+ return objectTagKind.getValue(objectTag);
5
+ }
6
+ function hasTagValue(...args) {
7
+ if (args.length === 1) {
8
+ const [value] = args;
9
+ return (input) => hasTagValue(input, value);
10
+ }
11
+ const [input, value] = args;
12
+ if (!objectTagKind.has(input)) return false;
13
+ const tagValue = objectTagKind.getValue(input);
14
+ return Array.isArray(value) ? value.includes(tagValue) : tagValue === value;
15
+ }
16
+ function taggedObject(tag, props) {
17
+ return {
18
+ ...props,
19
+ [objectTagKind.runTimeKey]: tag
20
+ };
21
+ }
22
+ function createTaggedObject(name) {
23
+ return (shape) => TaggedObjectStructure(name, shape);
24
+ }
25
+ //#endregion
26
+ export { createTaggedObject, getTagValue, hasTagValue, taggedObject };
@@ -0,0 +1,2 @@
1
+ export * from './base';
2
+ export * from './helper';
@@ -1,8 +1,8 @@
1
1
  import { ComputeGreaterThanCompatibility, ComputeLessThanCompatibility, GreaterThan, IsImpossibleToApplyGreaterThan, IsImpossibleToApplyLessThan, LessThan } from './constraints';
2
2
  import { RequireSimpleLiteral } from './types';
3
3
  import type * as DCommon from '../common';
4
- type ApplyGreaterThan<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyGreaterThan<GenericValue, GreaterThan<GenericThreshold>> extends true ? never : ComputeGreaterThanCompatibility<GenericValue, GreaterThan<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? InferredResult extends DCommon.CompatibilityConstraintResult<true> ? GenericValue : GenericValue & GreaterThan<GenericThreshold> : never : never;
5
- type ApplyLessThan<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyLessThan<GenericValue, LessThan<GenericThreshold>> extends true ? never : ComputeLessThanCompatibility<GenericValue, LessThan<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? InferredResult extends DCommon.CompatibilityConstraintResult<true> ? GenericValue : GenericValue & LessThan<GenericThreshold> : never : never;
4
+ type ApplyGreaterThan<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyGreaterThan<GenericValue, GreaterThan<GenericThreshold>> extends true ? never : ComputeGreaterThanCompatibility<GenericValue, GreaterThan<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? DCommon.ContainExtends<InferredResult, DCommon.CompatibilityConstraintResult<true>> extends true ? GenericValue : GenericValue & GreaterThan<GenericThreshold> : never : never;
5
+ type ApplyLessThan<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyLessThan<GenericValue, LessThan<GenericThreshold>> extends true ? never : ComputeLessThanCompatibility<GenericValue, LessThan<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? DCommon.ContainExtends<InferredResult, DCommon.CompatibilityConstraintResult<true>> extends true ? GenericValue : GenericValue & LessThan<GenericThreshold> : never : never;
6
6
  type BetweenThanOutput<GenericValue extends number, GenericGreater extends number, GenericLess extends number> = ApplyLessThan<ApplyGreaterThan<GenericValue, GenericGreater>, GenericLess>;
7
7
  type RequireApplyBetweenThan<GenericNumber extends number> = RequireSimpleLiteral<GenericNumber>;
8
8
  type RequireApplyBetweenThanBoolean<GenericNumber extends number> = DCommon.IsEqual<GenericNumber, number> extends true ? unknown : RequireApplyBetweenThan<GenericNumber>;
@@ -1,8 +1,8 @@
1
1
  import { ComputeGreaterThanOrEqualCompatibility, ComputeLessThanOrEqualCompatibility, GreaterThanOrEqual, IsImpossibleToApplyGreaterThanOrEqual, IsImpossibleToApplyLessThanOrEqual, LessThanOrEqual } from './constraints';
2
2
  import { RequireSimpleLiteral } from './types';
3
3
  import type * as DCommon from '../common';
4
- type ApplyGreaterThanOrEqual<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyGreaterThanOrEqual<GenericValue, GreaterThanOrEqual<GenericThreshold>> extends true ? never : ComputeGreaterThanOrEqualCompatibility<GenericValue, GreaterThanOrEqual<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? InferredResult extends DCommon.CompatibilityConstraintResult<true> ? GenericValue : GenericValue & GreaterThanOrEqual<GenericThreshold> : never : never;
5
- type ApplyLessThanOrEqual<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyLessThanOrEqual<GenericValue, LessThanOrEqual<GenericThreshold>> extends true ? never : ComputeLessThanOrEqualCompatibility<GenericValue, LessThanOrEqual<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? InferredResult extends DCommon.CompatibilityConstraintResult<true> ? GenericValue : GenericValue & LessThanOrEqual<GenericThreshold> : never : never;
4
+ type ApplyGreaterThanOrEqual<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyGreaterThanOrEqual<GenericValue, GreaterThanOrEqual<GenericThreshold>> extends true ? never : ComputeGreaterThanOrEqualCompatibility<GenericValue, GreaterThanOrEqual<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? DCommon.ContainExtends<InferredResult, DCommon.CompatibilityConstraintResult<true>> extends true ? GenericValue : GenericValue & GreaterThanOrEqual<GenericThreshold> : never : never;
5
+ type ApplyLessThanOrEqual<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyLessThanOrEqual<GenericValue, LessThanOrEqual<GenericThreshold>> extends true ? never : ComputeLessThanOrEqualCompatibility<GenericValue, LessThanOrEqual<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? DCommon.ContainExtends<InferredResult, DCommon.CompatibilityConstraintResult<true>> extends true ? GenericValue : GenericValue & LessThanOrEqual<GenericThreshold> : never : never;
6
6
  type BetweenThanOrEqualOutput<GenericValue extends number, GenericGreater extends number, GenericLess extends number> = ApplyLessThanOrEqual<ApplyGreaterThanOrEqual<GenericValue, GenericGreater>, GenericLess>;
7
7
  type RequireApplyBetweenThanOrEqual<GenericNumber extends number> = RequireSimpleLiteral<GenericNumber>;
8
8
  type RequireApplyBetweenThanOrEqualBoolean<GenericNumber extends number> = DCommon.IsEqual<GenericNumber, number> extends true ? unknown : RequireApplyBetweenThanOrEqual<GenericNumber>;
@@ -1,7 +1,7 @@
1
1
  import { ComputeGreaterThanCompatibility, GreaterThan, IsImpossibleToApplyGreaterThan } from './constraints';
2
2
  import { RequireSimpleLiteral } from './types';
3
3
  import type * as DCommon from '../common';
4
- type GreaterThanOutput<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyGreaterThan<GenericValue, GreaterThan<GenericThreshold>> extends true ? never : ComputeGreaterThanCompatibility<GenericValue, GreaterThan<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? InferredResult extends DCommon.CompatibilityConstraintResult<true> ? GenericValue : GenericValue & GreaterThan<GenericThreshold> : never : never;
4
+ type GreaterThanOutput<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyGreaterThan<GenericValue, GreaterThan<GenericThreshold>> extends true ? never : ComputeGreaterThanCompatibility<GenericValue, GreaterThan<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? DCommon.ContainExtends<InferredResult, DCommon.CompatibilityConstraintResult<true>> extends true ? GenericValue : GenericValue & GreaterThan<GenericThreshold> : never : never;
5
5
  type RequireApplyGreaterThan<GenericThreshold extends number> = RequireSimpleLiteral<GenericThreshold>;
6
6
  type RequireApplyGreaterThanBoolean<GenericThreshold extends number> = DCommon.IsEqual<GenericThreshold, number> extends true ? unknown : RequireApplyGreaterThan<GenericThreshold>;
7
7
  export declare function greaterThan<GenericValue extends number, const GenericThreshold extends number>(threshold: GenericThreshold & RequireApplyGreaterThan<GenericThreshold>): (value: GenericValue) => value is GreaterThanOutput<GenericValue, GenericThreshold>;
@@ -1,7 +1,7 @@
1
1
  import { ComputeGreaterThanOrEqualCompatibility, GreaterThanOrEqual, IsImpossibleToApplyGreaterThanOrEqual } from './constraints';
2
2
  import { RequireSimpleLiteral } from './types';
3
3
  import type * as DCommon from '../common';
4
- type GreaterThanOrEqualOutput<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyGreaterThanOrEqual<GenericValue, GreaterThanOrEqual<GenericThreshold>> extends true ? never : ComputeGreaterThanOrEqualCompatibility<GenericValue, GreaterThanOrEqual<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? InferredResult extends DCommon.CompatibilityConstraintResult<true> ? GenericValue : GenericValue & GreaterThanOrEqual<GenericThreshold> : never : never;
4
+ type GreaterThanOrEqualOutput<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyGreaterThanOrEqual<GenericValue, GreaterThanOrEqual<GenericThreshold>> extends true ? never : ComputeGreaterThanOrEqualCompatibility<GenericValue, GreaterThanOrEqual<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? DCommon.ContainExtends<InferredResult, DCommon.CompatibilityConstraintResult<true>> extends true ? GenericValue : GenericValue & GreaterThanOrEqual<GenericThreshold> : never : never;
5
5
  type RequireApplyGreaterThanOrEqual<GenericThreshold extends number> = RequireSimpleLiteral<GenericThreshold>;
6
6
  type RequireApplyGreaterThanOrEqualBoolean<GenericThreshold extends number> = DCommon.IsEqual<GenericThreshold, number> extends true ? unknown : RequireApplyGreaterThanOrEqual<GenericThreshold>;
7
7
  export declare function greaterThanOrEqual<GenericValue extends number, const GenericThreshold extends number>(threshold: GenericThreshold & RequireApplyGreaterThanOrEqual<GenericThreshold>): (value: GenericValue) => value is GreaterThanOrEqualOutput<GenericValue, GenericThreshold>;
@@ -1,7 +1,7 @@
1
1
  import { ComputeLessThanCompatibility, IsImpossibleToApplyLessThan, LessThan } from './constraints';
2
2
  import { RequireSimpleLiteral } from './types';
3
3
  import type * as DCommon from '../common';
4
- type LessThanOutput<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyLessThan<GenericValue, LessThan<GenericThreshold>> extends true ? never : ComputeLessThanCompatibility<GenericValue, LessThan<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? InferredResult extends DCommon.CompatibilityConstraintResult<true> ? GenericValue : GenericValue & LessThan<GenericThreshold> : never : never;
4
+ type LessThanOutput<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyLessThan<GenericValue, LessThan<GenericThreshold>> extends true ? never : ComputeLessThanCompatibility<GenericValue, LessThan<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? DCommon.ContainExtends<InferredResult, DCommon.CompatibilityConstraintResult<true>> extends true ? GenericValue : GenericValue & LessThan<GenericThreshold> : never : never;
5
5
  type RequireApplyLessThan<GenericThreshold extends number> = RequireSimpleLiteral<GenericThreshold>;
6
6
  type RequireApplyLessThanBoolean<GenericThreshold extends number> = DCommon.IsEqual<GenericThreshold, number> extends true ? unknown : RequireApplyLessThan<GenericThreshold>;
7
7
  export declare function lessThan<GenericValue extends number, const GenericThreshold extends number>(threshold: GenericThreshold & RequireApplyLessThan<GenericThreshold>): (value: GenericValue) => value is LessThanOutput<GenericValue, GenericThreshold>;
@@ -1,7 +1,7 @@
1
1
  import { ComputeLessThanOrEqualCompatibility, IsImpossibleToApplyLessThanOrEqual, LessThanOrEqual } from './constraints';
2
2
  import { RequireSimpleLiteral } from './types';
3
3
  import type * as DCommon from '../common';
4
- type LessThanOrEqualOutput<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyLessThanOrEqual<GenericValue, LessThanOrEqual<GenericThreshold>> extends true ? never : ComputeLessThanOrEqualCompatibility<GenericValue, LessThanOrEqual<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? InferredResult extends DCommon.CompatibilityConstraintResult<true> ? GenericValue : GenericValue & LessThanOrEqual<GenericThreshold> : never : never;
4
+ type LessThanOrEqualOutput<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyLessThanOrEqual<GenericValue, LessThanOrEqual<GenericThreshold>> extends true ? never : ComputeLessThanOrEqualCompatibility<GenericValue, LessThanOrEqual<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? DCommon.ContainExtends<InferredResult, DCommon.CompatibilityConstraintResult<true>> extends true ? GenericValue : GenericValue & LessThanOrEqual<GenericThreshold> : never : never;
5
5
  type RequireApplyLessThanOrEqual<GenericThreshold extends number> = RequireSimpleLiteral<GenericThreshold>;
6
6
  type RequireApplyLessThanOrEqualBoolean<GenericThreshold extends number> = DCommon.IsEqual<GenericThreshold, number> extends true ? unknown : RequireApplyLessThanOrEqual<GenericThreshold>;
7
7
  export declare function lessThanOrEqual<GenericValue extends number, const GenericThreshold extends number>(threshold: GenericThreshold & RequireApplyLessThanOrEqual<GenericThreshold>): (value: GenericValue) => value is LessThanOrEqualOutput<GenericValue, GenericThreshold>;
@@ -1,6 +1,6 @@
1
1
  import type * as DArray from '../array';
2
2
  import type * as DCommon from '../common';
3
- type SortOutput<GenericArray extends readonly number[]> = DArray.ReapplyCompatiblesConstraints<GenericArray, readonly GenericArray[number][]>;
3
+ type SortOutput<GenericArray extends readonly number[]> = GenericArray extends unknown ? DArray.ReapplyCompatiblesConstraints<GenericArray, readonly GenericArray[number][]> : never;
4
4
  export declare function sort<GenericArray extends readonly number[]>(type: DCommon.SortType): (array: GenericArray) => SortOutput<GenericArray>;
5
5
  export declare function sort<GenericArray extends readonly number[]>(array: GenericArray, type: DCommon.SortType): SortOutput<GenericArray>;
6
6
  export {};
@@ -12,6 +12,10 @@ const require_matchWithString = require("./matchWithString.cjs");
12
12
  const require_matchWithNumber = require("./matchWithNumber.cjs");
13
13
  const require_matchWithStringOtherwise = require("./matchWithStringOtherwise.cjs");
14
14
  const require_matchWithNumberOtherwise = require("./matchWithNumberOtherwise.cjs");
15
+ const require_matchWithTaggedObject = require("./matchWithTaggedObject.cjs");
16
+ const require_matchWithTaggedObjectOtherwise = require("./matchWithTaggedObjectOtherwise.cjs");
17
+ const require_matchWithEntity = require("./matchWithEntity.cjs");
18
+ const require_matchWithEntityOtherwise = require("./matchWithEntityOtherwise.cjs");
15
19
  //#region scripts/pattern/index.ts
16
20
  var pattern_exports = /* @__PURE__ */ require_runtime.__exportAll({
17
21
  InvalidExhaustivePatternError: () => require_builder.InvalidExhaustivePatternError,
@@ -20,10 +24,14 @@ var pattern_exports = /* @__PURE__ */ require_runtime.__exportAll({
20
24
  isResult: () => require_result.isResult,
21
25
  match: () => require_index.match,
22
26
  matchBuilder: () => require_builder.matchBuilder,
27
+ matchWithEntity: () => require_matchWithEntity.matchWithEntity,
28
+ matchWithEntityOtherwise: () => require_matchWithEntityOtherwise.matchWithEntityOtherwise,
23
29
  matchWithNumber: () => require_matchWithNumber.matchWithNumber,
24
30
  matchWithNumberOtherwise: () => require_matchWithNumberOtherwise.matchWithNumberOtherwise,
25
31
  matchWithString: () => require_matchWithString.matchWithString,
26
32
  matchWithStringOtherwise: () => require_matchWithStringOtherwise.matchWithStringOtherwise,
33
+ matchWithTaggedObject: () => require_matchWithTaggedObject.matchWithTaggedObject,
34
+ matchWithTaggedObjectOtherwise: () => require_matchWithTaggedObjectOtherwise.matchWithTaggedObjectOtherwise,
27
35
  otherwise: () => require_otherwise.otherwise,
28
36
  result: () => require_result.result,
29
37
  union: () => require_union.union,
@@ -37,10 +45,14 @@ exports.isMatch = require_isMatch.isMatch;
37
45
  exports.isResult = require_result.isResult;
38
46
  exports.match = require_index.match;
39
47
  exports.matchBuilder = require_builder.matchBuilder;
48
+ exports.matchWithEntity = require_matchWithEntity.matchWithEntity;
49
+ exports.matchWithEntityOtherwise = require_matchWithEntityOtherwise.matchWithEntityOtherwise;
40
50
  exports.matchWithNumber = require_matchWithNumber.matchWithNumber;
41
51
  exports.matchWithNumberOtherwise = require_matchWithNumberOtherwise.matchWithNumberOtherwise;
42
52
  exports.matchWithString = require_matchWithString.matchWithString;
43
53
  exports.matchWithStringOtherwise = require_matchWithStringOtherwise.matchWithStringOtherwise;
54
+ exports.matchWithTaggedObject = require_matchWithTaggedObject.matchWithTaggedObject;
55
+ exports.matchWithTaggedObjectOtherwise = require_matchWithTaggedObjectOtherwise.matchWithTaggedObjectOtherwise;
44
56
  exports.otherwise = require_otherwise.otherwise;
45
57
  Object.defineProperty(exports, "pattern_exports", {
46
58
  enumerable: true,
@@ -11,3 +11,7 @@ export * from './matchWithString';
11
11
  export * from './matchWithNumber';
12
12
  export * from './matchWithStringOtherwise';
13
13
  export * from './matchWithNumberOtherwise';
14
+ export * from './matchWithTaggedObject';
15
+ export * from './matchWithTaggedObjectOtherwise';
16
+ export * from './matchWithEntity';
17
+ export * from './matchWithEntityOtherwise';
@@ -12,6 +12,10 @@ import { matchWithString } from "./matchWithString.mjs";
12
12
  import { matchWithNumber } from "./matchWithNumber.mjs";
13
13
  import { matchWithStringOtherwise } from "./matchWithStringOtherwise.mjs";
14
14
  import { matchWithNumberOtherwise } from "./matchWithNumberOtherwise.mjs";
15
+ import { matchWithTaggedObject } from "./matchWithTaggedObject.mjs";
16
+ import { matchWithTaggedObjectOtherwise } from "./matchWithTaggedObjectOtherwise.mjs";
17
+ import { matchWithEntity } from "./matchWithEntity.mjs";
18
+ import { matchWithEntityOtherwise } from "./matchWithEntityOtherwise.mjs";
15
19
  //#region scripts/pattern/index.ts
16
20
  var pattern_exports = /* @__PURE__ */ __exportAll({
17
21
  InvalidExhaustivePatternError: () => InvalidExhaustivePatternError,
@@ -20,10 +24,14 @@ var pattern_exports = /* @__PURE__ */ __exportAll({
20
24
  isResult: () => isResult,
21
25
  match: () => match,
22
26
  matchBuilder: () => matchBuilder,
27
+ matchWithEntity: () => matchWithEntity,
28
+ matchWithEntityOtherwise: () => matchWithEntityOtherwise,
23
29
  matchWithNumber: () => matchWithNumber,
24
30
  matchWithNumberOtherwise: () => matchWithNumberOtherwise,
25
31
  matchWithString: () => matchWithString,
26
32
  matchWithStringOtherwise: () => matchWithStringOtherwise,
33
+ matchWithTaggedObject: () => matchWithTaggedObject,
34
+ matchWithTaggedObjectOtherwise: () => matchWithTaggedObjectOtherwise,
27
35
  otherwise: () => otherwise,
28
36
  result: () => result,
29
37
  union: () => union,
@@ -31,4 +39,4 @@ var pattern_exports = /* @__PURE__ */ __exportAll({
31
39
  whenNot: () => whenNot
32
40
  });
33
41
  //#endregion
34
- export { InvalidExhaustivePatternError, exhaustive, isMatch, isResult, match, matchBuilder, matchWithNumber, matchWithNumberOtherwise, matchWithString, matchWithStringOtherwise, otherwise, pattern_exports, result, union, when, whenNot };
42
+ export { InvalidExhaustivePatternError, exhaustive, isMatch, isResult, match, matchBuilder, matchWithEntity, matchWithEntityOtherwise, matchWithNumber, matchWithNumberOtherwise, matchWithString, matchWithStringOtherwise, matchWithTaggedObject, matchWithTaggedObjectOtherwise, otherwise, pattern_exports, result, union, when, whenNot };
@@ -0,0 +1,12 @@
1
+ const require_base = require("../modeling/entity/base.cjs");
2
+ //#region scripts/pattern/matchWithEntity.ts
3
+ function matchWithEntity(...args) {
4
+ if (args.length === 1) {
5
+ const [matcher] = args;
6
+ return (input) => matcher[require_base.entityKind.getValue(input)](input);
7
+ }
8
+ const [input, matcher] = args;
9
+ return matcher[require_base.entityKind.getValue(input)](input);
10
+ }
11
+ //#endregion
12
+ exports.matchWithEntity = matchWithEntity;
@@ -0,0 +1,12 @@
1
+ import type * as DCommon from '../common';
2
+ import * as DModeling from '../modeling';
3
+ import type * as DObject from '../object';
4
+ import type * as DString from '../string';
5
+ type ComputeMatcher<GenericEntity extends DModeling.Entity> = {
6
+ [Entity in GenericEntity as DModeling.GetEntityName<Entity>]: (value: Entity) => unknown;
7
+ };
8
+ type ForbiddenMoreKey<GenericEntity extends DModeling.Entity, GenericMatcher extends ComputeMatcher<GenericEntity>> = DObject.ForbiddenKey<GenericMatcher, Extract<Exclude<keyof GenericMatcher, DModeling.GetEntityName<GenericEntity>>, string>>;
9
+ type RequireSimpleName<GenericEntity extends DModeling.Entity> = DString.RequireSimpleLiteral<DModeling.GetEntityName<GenericEntity>>;
10
+ export declare function matchWithEntity<GenericEntity extends DModeling.Entity, GenericMatcher extends ComputeMatcher<GenericEntity>>(matcher: (DCommon.FixDeepFunctionInfer<ComputeMatcher<GenericEntity>, GenericMatcher> & ForbiddenMoreKey<NoInfer<GenericEntity>, GenericMatcher>)): (input: GenericEntity & RequireSimpleName<GenericEntity>) => ReturnType<Extract<NoInfer<GenericMatcher>[keyof GenericMatcher], DCommon.AnyFunction>>;
11
+ export declare function matchWithEntity<GenericEntity extends DModeling.Entity, GenericMatcher extends ComputeMatcher<GenericEntity>>(input: GenericEntity & RequireSimpleName<GenericEntity>, matcher: (DCommon.FixDeepFunctionInfer<ComputeMatcher<GenericEntity>, GenericMatcher> & ForbiddenMoreKey<GenericEntity, GenericMatcher>)): ReturnType<Extract<GenericMatcher[keyof GenericMatcher], DCommon.AnyFunction>>;
12
+ export {};
@@ -0,0 +1,12 @@
1
+ import { entityKind } from "../modeling/entity/base.mjs";
2
+ //#region scripts/pattern/matchWithEntity.ts
3
+ function matchWithEntity(...args) {
4
+ if (args.length === 1) {
5
+ const [matcher] = args;
6
+ return (input) => matcher[entityKind.getValue(input)](input);
7
+ }
8
+ const [input, matcher] = args;
9
+ return matcher[entityKind.getValue(input)](input);
10
+ }
11
+ //#endregion
12
+ export { matchWithEntity };
@@ -0,0 +1,13 @@
1
+ const require_base = require("../modeling/entity/base.cjs");
2
+ //#region scripts/pattern/matchWithEntityOtherwise.ts
3
+ function matchWithEntityOtherwise(...args) {
4
+ if (args.length === 2) {
5
+ const [matcher, otherwise] = args;
6
+ return (input) => matchWithEntityOtherwise(input, matcher, otherwise);
7
+ }
8
+ const [input, matcher, otherwise] = args;
9
+ const entityName = require_base.entityKind.getValue(input);
10
+ return matcher[entityName] === void 0 ? otherwise(input) : matcher[entityName](input);
11
+ }
12
+ //#endregion
13
+ exports.matchWithEntityOtherwise = matchWithEntityOtherwise;
@@ -0,0 +1,14 @@
1
+ import type * as DCommon from '../common';
2
+ import * as DModeling from '../modeling';
3
+ import type * as DObject from '../object';
4
+ import type * as DString from '../string';
5
+ type ComputeMatcher<GenericEntity extends DModeling.Entity> = {
6
+ [Entity in GenericEntity as DModeling.GetEntityName<Entity>]?: (value: Entity) => unknown;
7
+ };
8
+ type ForbiddenMoreKey<GenericEntity extends DModeling.Entity, GenericMatcher extends ComputeMatcher<GenericEntity>> = DObject.ForbiddenKey<GenericMatcher, Extract<Exclude<keyof GenericMatcher, DModeling.GetEntityName<GenericEntity>>, string>>;
9
+ type HandledKeys<GenericMatcher extends object> = Extract<DObject.GetPropsWithValueExtends<GenericMatcher, DCommon.AnyFunction>, string>;
10
+ type UnhandledEntity<GenericEntity extends DModeling.Entity, GenericMatcher extends object> = Exclude<GenericEntity, DModeling.ExtractByEntityName<GenericEntity, HandledKeys<GenericMatcher>>>;
11
+ type RequireSimpleName<GenericEntity extends DModeling.Entity> = DString.RequireSimpleLiteral<DModeling.GetEntityName<GenericEntity>>;
12
+ export declare function matchWithEntityOtherwise<GenericEntity extends DModeling.Entity, GenericMatcher extends ComputeMatcher<GenericEntity>, GenericOutput>(matcher: (DCommon.FixDeepFunctionInfer<ComputeMatcher<GenericEntity>, GenericMatcher> & ForbiddenMoreKey<NoInfer<GenericEntity>, GenericMatcher>), otherwise: (value: UnhandledEntity<GenericEntity, GenericMatcher>) => GenericOutput): (input: GenericEntity & RequireSimpleName<GenericEntity>) => (ReturnType<Extract<NoInfer<GenericMatcher>[keyof GenericMatcher], DCommon.AnyFunction>> | GenericOutput);
13
+ export declare function matchWithEntityOtherwise<GenericEntity extends DModeling.Entity, GenericMatcher extends ComputeMatcher<GenericEntity>, GenericOutput>(input: GenericEntity & RequireSimpleName<GenericEntity>, matcher: (DCommon.FixDeepFunctionInfer<ComputeMatcher<GenericEntity>, GenericMatcher> & ForbiddenMoreKey<GenericEntity, GenericMatcher>), otherwise: (value: UnhandledEntity<GenericEntity, GenericMatcher>) => GenericOutput): (ReturnType<Extract<GenericMatcher[keyof GenericMatcher], DCommon.AnyFunction>> | GenericOutput);
14
+ export {};
@@ -0,0 +1,13 @@
1
+ import { entityKind } from "../modeling/entity/base.mjs";
2
+ //#region scripts/pattern/matchWithEntityOtherwise.ts
3
+ function matchWithEntityOtherwise(...args) {
4
+ if (args.length === 2) {
5
+ const [matcher, otherwise] = args;
6
+ return (input) => matchWithEntityOtherwise(input, matcher, otherwise);
7
+ }
8
+ const [input, matcher, otherwise] = args;
9
+ const entityName = entityKind.getValue(input);
10
+ return matcher[entityName] === void 0 ? otherwise(input) : matcher[entityName](input);
11
+ }
12
+ //#endregion
13
+ export { matchWithEntityOtherwise };
@@ -1,15 +1,11 @@
1
1
  //#region scripts/pattern/matchWithNumberOtherwise.ts
2
- function execute(input, matcher, otherwise) {
3
- const callback = matcher[input];
4
- return callback === void 0 ? otherwise(input) : callback(input);
5
- }
6
2
  function matchWithNumberOtherwise(...args) {
7
3
  if (args.length === 2) {
8
4
  const [matcher, otherwise] = args;
9
- return (input) => execute(input, matcher, otherwise);
5
+ return (input) => matchWithNumberOtherwise(input, matcher, otherwise);
10
6
  }
11
7
  const [input, matcher, otherwise] = args;
12
- return execute(input, matcher, otherwise);
8
+ return matcher[input] === void 0 ? otherwise(input) : matcher[input](input);
13
9
  }
14
10
  //#endregion
15
11
  exports.matchWithNumberOtherwise = matchWithNumberOtherwise;
@@ -1,15 +1,11 @@
1
1
  //#region scripts/pattern/matchWithNumberOtherwise.ts
2
- function execute(input, matcher, otherwise) {
3
- const callback = matcher[input];
4
- return callback === void 0 ? otherwise(input) : callback(input);
5
- }
6
2
  function matchWithNumberOtherwise(...args) {
7
3
  if (args.length === 2) {
8
4
  const [matcher, otherwise] = args;
9
- return (input) => execute(input, matcher, otherwise);
5
+ return (input) => matchWithNumberOtherwise(input, matcher, otherwise);
10
6
  }
11
7
  const [input, matcher, otherwise] = args;
12
- return execute(input, matcher, otherwise);
8
+ return matcher[input] === void 0 ? otherwise(input) : matcher[input](input);
13
9
  }
14
10
  //#endregion
15
11
  export { matchWithNumberOtherwise };
@@ -1,15 +1,11 @@
1
1
  //#region scripts/pattern/matchWithStringOtherwise.ts
2
- function execute(input, matcher, otherwise) {
3
- const callback = matcher[input];
4
- return callback === void 0 ? otherwise(input) : callback(input);
5
- }
6
2
  function matchWithStringOtherwise(...args) {
7
3
  if (args.length === 2) {
8
4
  const [matcher, otherwise] = args;
9
- return (input) => execute(input, matcher, otherwise);
5
+ return (input) => matchWithStringOtherwise(input, matcher, otherwise);
10
6
  }
11
7
  const [input, matcher, otherwise] = args;
12
- return execute(input, matcher, otherwise);
8
+ return matcher[input] === void 0 ? otherwise(input) : matcher[input](input);
13
9
  }
14
10
  //#endregion
15
11
  exports.matchWithStringOtherwise = matchWithStringOtherwise;
@@ -1,6 +1,6 @@
1
1
  import type * as DCommon from '../common';
2
2
  import type * as DObject from '../object';
3
- import type * as DString from '../string/types';
3
+ import type * as DString from '../string';
4
4
  type ComputeMatcher<GenericInput extends string> = {
5
5
  [Prop in GenericInput]?: (value: Prop) => unknown;
6
6
  };
@@ -1,15 +1,11 @@
1
1
  //#region scripts/pattern/matchWithStringOtherwise.ts
2
- function execute(input, matcher, otherwise) {
3
- const callback = matcher[input];
4
- return callback === void 0 ? otherwise(input) : callback(input);
5
- }
6
2
  function matchWithStringOtherwise(...args) {
7
3
  if (args.length === 2) {
8
4
  const [matcher, otherwise] = args;
9
- return (input) => execute(input, matcher, otherwise);
5
+ return (input) => matchWithStringOtherwise(input, matcher, otherwise);
10
6
  }
11
7
  const [input, matcher, otherwise] = args;
12
- return execute(input, matcher, otherwise);
8
+ return matcher[input] === void 0 ? otherwise(input) : matcher[input](input);
13
9
  }
14
10
  //#endregion
15
11
  export { matchWithStringOtherwise };
@@ -0,0 +1,12 @@
1
+ const require_helper = require("../modeling/taggedObject/helper.cjs");
2
+ //#region scripts/pattern/matchWithTaggedObject.ts
3
+ function matchWithTaggedObject(...args) {
4
+ if (args.length === 1) {
5
+ const [matcher] = args;
6
+ return (input) => matcher[require_helper.getTagValue(input)](input);
7
+ }
8
+ const [input, matcher] = args;
9
+ return matcher[require_helper.getTagValue(input)](input);
10
+ }
11
+ //#endregion
12
+ exports.matchWithTaggedObject = matchWithTaggedObject;
@@ -0,0 +1,12 @@
1
+ import type * as DCommon from '../common';
2
+ import * as DModeling from '../modeling';
3
+ import type * as DObject from '../object';
4
+ import type * as DString from '../string';
5
+ type ComputeMatcher<GenericTaggedObject extends DModeling.ObjectTag> = {
6
+ [TaggedObject in GenericTaggedObject as DModeling.GetTagValue<TaggedObject>]: (value: TaggedObject) => unknown;
7
+ };
8
+ type ForbiddenMoreKey<GenericTaggedObject extends DModeling.ObjectTag, GenericMatcher extends ComputeMatcher<GenericTaggedObject>> = DObject.ForbiddenKey<GenericMatcher, Extract<Exclude<keyof GenericMatcher, DModeling.GetTagValue<GenericTaggedObject>>, string>>;
9
+ type RequireSimpleTag<GenericTaggedObject extends DModeling.ObjectTag> = DString.RequireSimpleLiteral<DModeling.GetTagValue<GenericTaggedObject>>;
10
+ export declare function matchWithTaggedObject<GenericTaggedObject extends DModeling.ObjectTag, GenericMatcher extends ComputeMatcher<GenericTaggedObject>>(matcher: (DCommon.FixDeepFunctionInfer<ComputeMatcher<GenericTaggedObject>, GenericMatcher> & ForbiddenMoreKey<NoInfer<GenericTaggedObject>, GenericMatcher>)): (input: GenericTaggedObject & RequireSimpleTag<GenericTaggedObject>) => ReturnType<Extract<NoInfer<GenericMatcher>[keyof GenericMatcher], DCommon.AnyFunction>>;
11
+ export declare function matchWithTaggedObject<GenericTaggedObject extends DModeling.ObjectTag, GenericMatcher extends ComputeMatcher<GenericTaggedObject>>(input: GenericTaggedObject & RequireSimpleTag<GenericTaggedObject>, matcher: (DCommon.FixDeepFunctionInfer<ComputeMatcher<GenericTaggedObject>, GenericMatcher> & ForbiddenMoreKey<GenericTaggedObject, GenericMatcher>)): ReturnType<Extract<GenericMatcher[keyof GenericMatcher], DCommon.AnyFunction>>;
12
+ export {};
@@ -0,0 +1,12 @@
1
+ import { getTagValue } from "../modeling/taggedObject/helper.mjs";
2
+ //#region scripts/pattern/matchWithTaggedObject.ts
3
+ function matchWithTaggedObject(...args) {
4
+ if (args.length === 1) {
5
+ const [matcher] = args;
6
+ return (input) => matcher[getTagValue(input)](input);
7
+ }
8
+ const [input, matcher] = args;
9
+ return matcher[getTagValue(input)](input);
10
+ }
11
+ //#endregion
12
+ export { matchWithTaggedObject };
@@ -0,0 +1,13 @@
1
+ const require_helper = require("../modeling/taggedObject/helper.cjs");
2
+ //#region scripts/pattern/matchWithTaggedObjectOtherwise.ts
3
+ function matchWithTaggedObjectOtherwise(...args) {
4
+ if (args.length === 2) {
5
+ const [matcher, otherwise] = args;
6
+ return (input) => matchWithTaggedObjectOtherwise(input, matcher, otherwise);
7
+ }
8
+ const [input, matcher, otherwise] = args;
9
+ const tagValue = require_helper.getTagValue(input);
10
+ return matcher[tagValue] === void 0 ? otherwise(input) : matcher[tagValue](input);
11
+ }
12
+ //#endregion
13
+ exports.matchWithTaggedObjectOtherwise = matchWithTaggedObjectOtherwise;
@@ -0,0 +1,14 @@
1
+ import type * as DCommon from '../common';
2
+ import * as DModeling from '../modeling';
3
+ import type * as DObject from '../object';
4
+ import type * as DString from '../string';
5
+ type ComputeMatcher<GenericTaggedObject extends DModeling.ObjectTag> = {
6
+ [TaggedObject in GenericTaggedObject as DModeling.GetTagValue<TaggedObject>]?: (value: TaggedObject) => unknown;
7
+ };
8
+ type ForbiddenMoreKey<GenericTaggedObject extends DModeling.ObjectTag, GenericMatcher extends ComputeMatcher<GenericTaggedObject>> = DObject.ForbiddenKey<GenericMatcher, Extract<Exclude<keyof GenericMatcher, DModeling.GetTagValue<GenericTaggedObject>>, string>>;
9
+ type HandledKeys<GenericMatcher extends object> = Extract<DObject.GetPropsWithValueExtends<GenericMatcher, DCommon.AnyFunction>, string>;
10
+ type UnhandledTaggedObject<GenericTaggedObject extends DModeling.ObjectTag, GenericMatcher extends object> = Exclude<GenericTaggedObject, DModeling.ObjectTag<HandledKeys<GenericMatcher>>>;
11
+ type RequireLiteralTag<GenericTaggedObject extends DModeling.ObjectTag> = DString.RequireSimpleLiteral<DModeling.GetTagValue<GenericTaggedObject>>;
12
+ export declare function matchWithTaggedObjectOtherwise<GenericTaggedObject extends DModeling.ObjectTag, GenericMatcher extends ComputeMatcher<GenericTaggedObject>, GenericOutput>(matcher: (DCommon.FixDeepFunctionInfer<ComputeMatcher<GenericTaggedObject>, GenericMatcher> & ForbiddenMoreKey<NoInfer<GenericTaggedObject>, GenericMatcher>), otherwise: (value: UnhandledTaggedObject<GenericTaggedObject, GenericMatcher>) => GenericOutput): (input: GenericTaggedObject & RequireLiteralTag<GenericTaggedObject>) => (ReturnType<Extract<NoInfer<GenericMatcher>[keyof GenericMatcher], DCommon.AnyFunction>> | GenericOutput);
13
+ export declare function matchWithTaggedObjectOtherwise<GenericTaggedObject extends DModeling.ObjectTag, GenericMatcher extends ComputeMatcher<GenericTaggedObject>, GenericOutput>(input: GenericTaggedObject & RequireLiteralTag<GenericTaggedObject>, matcher: (DCommon.FixDeepFunctionInfer<ComputeMatcher<GenericTaggedObject>, GenericMatcher> & ForbiddenMoreKey<GenericTaggedObject, GenericMatcher>), otherwise: (value: UnhandledTaggedObject<GenericTaggedObject, GenericMatcher>) => GenericOutput): (ReturnType<Extract<GenericMatcher[keyof GenericMatcher], DCommon.AnyFunction>> | GenericOutput);
14
+ export {};
@@ -0,0 +1,13 @@
1
+ import { getTagValue } from "../modeling/taggedObject/helper.mjs";
2
+ //#region scripts/pattern/matchWithTaggedObjectOtherwise.ts
3
+ function matchWithTaggedObjectOtherwise(...args) {
4
+ if (args.length === 2) {
5
+ const [matcher, otherwise] = args;
6
+ return (input) => matchWithTaggedObjectOtherwise(input, matcher, otherwise);
7
+ }
8
+ const [input, matcher, otherwise] = args;
9
+ const tagValue = getTagValue(input);
10
+ return matcher[tagValue] === void 0 ? otherwise(input) : matcher[tagValue](input);
11
+ }
12
+ //#endregion
13
+ export { matchWithTaggedObjectOtherwise };
@@ -1,3 +1,3 @@
1
1
  import { At } from './types';
2
- export declare function at<GenericString extends string, GenericIndex extends number>(index: GenericIndex): (string: GenericString) => At<GenericString, GenericIndex>;
3
- export declare function at<GenericString extends string, GenericIndex extends number>(string: GenericString, index: GenericIndex): At<GenericString, GenericIndex>;
2
+ export declare function at<GenericString extends string, GenericIndex extends number>(index: GenericIndex): (string: GenericString) => GenericString extends string ? At<GenericString, GenericIndex> : never;
3
+ export declare function at<GenericString extends string, GenericIndex extends number>(string: GenericString, index: GenericIndex): GenericString extends string ? At<GenericString, GenericIndex> : never;
@@ -1,2 +1,2 @@
1
1
  import { First } from './types';
2
- export declare function first<GenericString extends string>(string: GenericString): First<GenericString>;
2
+ export declare function first<GenericString extends string>(string: GenericString): GenericString extends unknown ? First<GenericString> : never;
@@ -48,6 +48,7 @@ const require_toUpperCase = require("./toUpperCase.cjs");
48
48
  const require_default = require("./trim/default.cjs");
49
49
  const require_end = require("./trim/end.cjs");
50
50
  const require_start = require("./trim/start.cjs");
51
+ const require_is = require("./trim/is.cjs");
51
52
  const require_uncapitalize = require("./uncapitalize.cjs");
52
53
  //#region scripts/string/index.ts
53
54
  var string_exports = /* @__PURE__ */ require_runtime.__exportAll({
@@ -68,6 +69,7 @@ var string_exports = /* @__PURE__ */ require_runtime.__exportAll({
68
69
  isIn: () => require_isIn.isIn,
69
70
  isKeyof: () => require_isKeyof.isKeyof,
70
71
  isNotEmpty: () => require_isNotEmpty.isNotEmpty,
72
+ isTrimmed: () => require_is.isTrimmed,
71
73
  isUrl: () => require_isUrl.isUrl,
72
74
  isUuid: () => require_isUuid.isUuid,
73
75
  join: () => require_join.join,
@@ -122,6 +124,7 @@ exports.isEmail = require_isEmail.isEmail;
122
124
  exports.isIn = require_isIn.isIn;
123
125
  exports.isKeyof = require_isKeyof.isKeyof;
124
126
  exports.isNotEmpty = require_isNotEmpty.isNotEmpty;
127
+ exports.isTrimmed = require_is.isTrimmed;
125
128
  exports.isUrl = require_isUrl.isUrl;
126
129
  exports.isUuid = require_isUuid.isUuid;
127
130
  exports.join = require_join.join;
@@ -48,6 +48,7 @@ import { toUpperCase } from "./toUpperCase.mjs";
48
48
  import { trim } from "./trim/default.mjs";
49
49
  import { trimEnd } from "./trim/end.mjs";
50
50
  import { trimStart } from "./trim/start.mjs";
51
+ import { isTrimmed } from "./trim/is.mjs";
51
52
  import { uncapitalize } from "./uncapitalize.mjs";
52
53
  //#region scripts/string/index.ts
53
54
  var string_exports = /* @__PURE__ */ __exportAll({
@@ -68,6 +69,7 @@ var string_exports = /* @__PURE__ */ __exportAll({
68
69
  isIn: () => isIn,
69
70
  isKeyof: () => isKeyof,
70
71
  isNotEmpty: () => isNotEmpty,
72
+ isTrimmed: () => isTrimmed,
71
73
  isUrl: () => isUrl,
72
74
  isUuid: () => isUuid,
73
75
  join: () => join,
@@ -105,4 +107,4 @@ var string_exports = /* @__PURE__ */ __exportAll({
105
107
  uuidRegex: () => uuidRegex
106
108
  });
107
109
  //#endregion
108
- export { at, capitalize, charAt, concat, emailRegex, endsWith, extract, extractAll, first, includes, indexOf, infer, isComposedOf, isEmail, isIn, isKeyof, isNotEmpty, isUrl, isUuid, join, last, lastIndexOf, length, lengthEqual, maxCharacters, minCharacters, normalize, padEnd, padStart, pop, prepend, repeat, replace, replaceAll, search, shift, slice, sort, sortCompare, split, startsWith, string_exports, stringify, substring, test, to, toLowerCase, toUpperCase, trim, trimEnd, trimStart, uncapitalize, uuidRegex };
110
+ export { at, capitalize, charAt, concat, emailRegex, endsWith, extract, extractAll, first, includes, indexOf, infer, isComposedOf, isEmail, isIn, isKeyof, isNotEmpty, isTrimmed, isUrl, isUuid, join, last, lastIndexOf, length, lengthEqual, maxCharacters, minCharacters, normalize, padEnd, padStart, pop, prepend, repeat, replace, replaceAll, search, shift, slice, sort, sortCompare, split, startsWith, string_exports, stringify, substring, test, to, toLowerCase, toUpperCase, trim, trimEnd, trimStart, uncapitalize, uuidRegex };
@@ -1,2 +1,2 @@
1
1
  import { Last } from './types';
2
- export declare function last<GenericString extends string>(string: GenericString): Last<GenericString>;
2
+ export declare function last<GenericString extends string>(string: GenericString): GenericString extends unknown ? Last<GenericString> : never;
@@ -6,7 +6,7 @@ type RequireMinCharactersConstraint<GenericString extends string, GenericLength
6
6
  type RequireMaxCharactersConstraint<GenericString extends string, GenericLength extends number> = ExtractMaxCharacters<GenericString, unknown> extends MaxCharacters<infer InferredMax> ? DNumber.IsGreaterOrEqual<InferredMax, GenericLength> extends true ? unknown : DCommon.ComputedTypeError<`Cannot apply LengthEqual<${GenericLength}> on MaxCharacters<${InferredMax}>.`> : unknown;
7
7
  type RequireApplyLengthEqual<GenericString extends string, GenericLength extends number> = (DNumber.ForbiddenNegative<GenericLength> & DNumber.RequireSimpleLiteral<GenericLength> & RequireLengthEqualConstraint<GenericString, GenericLength> & RequireMinCharactersConstraint<GenericString, GenericLength> & RequireMaxCharactersConstraint<GenericString, GenericLength>);
8
8
  type RequireApplyLengthEqualBoolean<GenericString extends string, GenericLength extends number> = DCommon.IsEqual<GenericLength, number> extends true ? unknown : RequireApplyLengthEqual<GenericString, GenericLength>;
9
- type LengthEqualOutput<GenericString extends string, GenericLength extends number> = GenericString extends unknown ? IsImpossibleToApplyLengthEqual<GenericString, LengthEqual<GenericLength>> extends true ? never : ComputeLengthEqualCompatibility<GenericString, LengthEqual<GenericLength>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? InferredResult extends DCommon.CompatibilityConstraintResult<true> ? GenericString : GenericString & LengthEqual<GenericLength> : never : never;
9
+ type LengthEqualOutput<GenericString extends string, GenericLength extends number> = GenericString extends unknown ? IsImpossibleToApplyLengthEqual<GenericString, LengthEqual<GenericLength>> extends true ? never : ComputeLengthEqualCompatibility<GenericString, LengthEqual<GenericLength>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? DCommon.ContainExtends<InferredResult, DCommon.CompatibilityConstraintResult<true>> extends true ? GenericString : GenericString & LengthEqual<GenericLength> : never : never;
10
10
  export declare function lengthEqual<GenericString extends string, const GenericLength extends number>(length: GenericLength & RequireApplyLengthEqual<GenericString, GenericLength>): (string: GenericString) => string is LengthEqualOutput<GenericString, GenericLength>;
11
11
  export declare function lengthEqual<GenericString extends string, const GenericLength extends number>(length: GenericLength & RequireApplyLengthEqualBoolean<GenericString, GenericLength>): (string: GenericString) => boolean;
12
12
  export declare function lengthEqual<GenericString extends string, const GenericLength extends number>(string: GenericString, length: GenericLength & RequireApplyLengthEqual<GenericString, GenericLength>): string is LengthEqualOutput<GenericString, GenericLength>;