hein 1.4.2 → 2.0.0-alpha.0

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 (303) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/ESM_MIGRATION_NOTES.md +6 -0
  3. package/README.md +46 -7
  4. package/dist/assert-9EsvfQwn.d.cts +483 -0
  5. package/dist/assert-9EsvfQwn.d.cts.map +1 -0
  6. package/dist/assert-B_vcZS90.d.ts +481 -0
  7. package/dist/assert-B_vcZS90.d.ts.map +1 -0
  8. package/dist/assert-DZjgWjOw.cjs +1626 -0
  9. package/dist/assert-DZjgWjOw.cjs.map +1 -0
  10. package/dist/assert-kFXp7i_B.js +1260 -0
  11. package/dist/assert-kFXp7i_B.js.map +1 -0
  12. package/dist/assert.cjs +53 -0
  13. package/dist/assert.d.cts +3 -0
  14. package/dist/assert.d.ts +3 -27
  15. package/dist/assert.js +3 -84
  16. package/dist/chunk-CTAAG5j7.js +13 -0
  17. package/dist/expect.types-DPl6xY56.d.ts +99 -0
  18. package/dist/expect.types-DPl6xY56.d.ts.map +1 -0
  19. package/dist/expect.types-s8icgWp5.d.cts +99 -0
  20. package/dist/expect.types-s8icgWp5.d.cts.map +1 -0
  21. package/dist/expect.types.cjs +0 -0
  22. package/dist/expect.types.d.cts +3 -0
  23. package/dist/expect.types.d.ts +3 -66
  24. package/dist/expect.types.js +1 -4
  25. package/dist/index.cjs +596 -0
  26. package/dist/index.cjs.map +1 -0
  27. package/dist/index.d.cts +16 -0
  28. package/dist/index.d.cts.map +1 -0
  29. package/dist/index.d.ts +15 -8
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +573 -27
  32. package/dist/index.js.map +1 -1
  33. package/dist/throws-BrCCeBBl.d.ts +42 -0
  34. package/dist/throws-BrCCeBBl.d.ts.map +1 -0
  35. package/dist/throws-D7JsW4NM.d.cts +40 -0
  36. package/dist/throws-D7JsW4NM.d.cts.map +1 -0
  37. package/eslint.config.mjs +13 -0
  38. package/package.json +31 -18
  39. package/tsdown.config.ts +9 -0
  40. package/dist/assert/deep-equal.d.ts +0 -2
  41. package/dist/assert/deep-equal.d.ts.map +0 -1
  42. package/dist/assert/deep-equal.js +0 -26
  43. package/dist/assert/deep-equal.js.map +0 -1
  44. package/dist/assert/deep-has-property.d.ts +0 -20
  45. package/dist/assert/deep-has-property.d.ts.map +0 -1
  46. package/dist/assert/deep-has-property.js +0 -50
  47. package/dist/assert/deep-has-property.js.map +0 -1
  48. package/dist/assert/ends-with.d.ts +0 -11
  49. package/dist/assert/ends-with.d.ts.map +0 -1
  50. package/dist/assert/ends-with.js +0 -30
  51. package/dist/assert/ends-with.js.map +0 -1
  52. package/dist/assert/equal.d.ts +0 -9
  53. package/dist/assert/equal.d.ts.map +0 -1
  54. package/dist/assert/equal.js +0 -21
  55. package/dist/assert/equal.js.map +0 -1
  56. package/dist/assert/greater-than-equal.d.ts +0 -9
  57. package/dist/assert/greater-than-equal.d.ts.map +0 -1
  58. package/dist/assert/greater-than-equal.js +0 -20
  59. package/dist/assert/greater-than-equal.js.map +0 -1
  60. package/dist/assert/greater-than.d.ts +0 -9
  61. package/dist/assert/greater-than.d.ts.map +0 -1
  62. package/dist/assert/greater-than.js +0 -20
  63. package/dist/assert/greater-than.js.map +0 -1
  64. package/dist/assert/has-keys.d.ts +0 -14
  65. package/dist/assert/has-keys.d.ts.map +0 -1
  66. package/dist/assert/has-keys.js +0 -47
  67. package/dist/assert/has-keys.js.map +0 -1
  68. package/dist/assert/has-members.d.ts +0 -46
  69. package/dist/assert/has-members.d.ts.map +0 -1
  70. package/dist/assert/has-members.js +0 -58
  71. package/dist/assert/has-members.js.map +0 -1
  72. package/dist/assert/has-property.d.ts +0 -20
  73. package/dist/assert/has-property.d.ts.map +0 -1
  74. package/dist/assert/has-property.js +0 -47
  75. package/dist/assert/has-property.js.map +0 -1
  76. package/dist/assert/has-size.d.ts +0 -40
  77. package/dist/assert/has-size.d.ts.map +0 -1
  78. package/dist/assert/has-size.js +0 -68
  79. package/dist/assert/has-size.js.map +0 -1
  80. package/dist/assert/in-ballpark.d.ts +0 -14
  81. package/dist/assert/in-ballpark.d.ts.map +0 -1
  82. package/dist/assert/in-ballpark.js +0 -26
  83. package/dist/assert/in-ballpark.js.map +0 -1
  84. package/dist/assert/includes.d.ts +0 -22
  85. package/dist/assert/includes.d.ts.map +0 -1
  86. package/dist/assert/includes.js +0 -32
  87. package/dist/assert/includes.js.map +0 -1
  88. package/dist/assert/instance-of.d.ts +0 -13
  89. package/dist/assert/instance-of.d.ts.map +0 -1
  90. package/dist/assert/instance-of.js +0 -35
  91. package/dist/assert/instance-of.js.map +0 -1
  92. package/dist/assert/is-after.d.ts +0 -9
  93. package/dist/assert/is-after.d.ts.map +0 -1
  94. package/dist/assert/is-after.js +0 -27
  95. package/dist/assert/is-after.js.map +0 -1
  96. package/dist/assert/is-before.d.ts +0 -9
  97. package/dist/assert/is-before.d.ts.map +0 -1
  98. package/dist/assert/is-before.js +0 -27
  99. package/dist/assert/is-before.js.map +0 -1
  100. package/dist/assert/is-between.d.ts +0 -13
  101. package/dist/assert/is-between.d.ts.map +0 -1
  102. package/dist/assert/is-between.js +0 -38
  103. package/dist/assert/is-between.js.map +0 -1
  104. package/dist/assert/is-empty.d.ts +0 -29
  105. package/dist/assert/is-empty.d.ts.map +0 -1
  106. package/dist/assert/is-empty.js +0 -48
  107. package/dist/assert/is-empty.js.map +0 -1
  108. package/dist/assert/is-type.d.ts +0 -94
  109. package/dist/assert/is-type.d.ts.map +0 -1
  110. package/dist/assert/is-type.js +0 -32
  111. package/dist/assert/is-type.js.map +0 -1
  112. package/dist/assert/less-than-equal.d.ts +0 -9
  113. package/dist/assert/less-than-equal.d.ts.map +0 -1
  114. package/dist/assert/less-than-equal.js +0 -27
  115. package/dist/assert/less-than-equal.js.map +0 -1
  116. package/dist/assert/less-than.d.ts +0 -9
  117. package/dist/assert/less-than.d.ts.map +0 -1
  118. package/dist/assert/less-than.js +0 -20
  119. package/dist/assert/less-than.js.map +0 -1
  120. package/dist/assert/match.d.ts +0 -13
  121. package/dist/assert/match.d.ts.map +0 -1
  122. package/dist/assert/match.js +0 -29
  123. package/dist/assert/match.js.map +0 -1
  124. package/dist/assert/rejects.d.ts +0 -33
  125. package/dist/assert/rejects.d.ts.map +0 -1
  126. package/dist/assert/rejects.js +0 -48
  127. package/dist/assert/rejects.js.map +0 -1
  128. package/dist/assert/round-to.d.ts +0 -13
  129. package/dist/assert/round-to.d.ts.map +0 -1
  130. package/dist/assert/round-to.js +0 -43
  131. package/dist/assert/round-to.js.map +0 -1
  132. package/dist/assert/starts-with.d.ts +0 -12
  133. package/dist/assert/starts-with.d.ts.map +0 -1
  134. package/dist/assert/starts-with.js +0 -30
  135. package/dist/assert/starts-with.js.map +0 -1
  136. package/dist/assert/throws.d.ts +0 -33
  137. package/dist/assert/throws.d.ts.map +0 -1
  138. package/dist/assert/throws.js +0 -40
  139. package/dist/assert/throws.js.map +0 -1
  140. package/dist/assert.d.ts.map +0 -1
  141. package/dist/assert.js.map +0 -1
  142. package/dist/expect/after.d.ts +0 -11
  143. package/dist/expect/after.d.ts.map +0 -1
  144. package/dist/expect/after.js +0 -18
  145. package/dist/expect/after.js.map +0 -1
  146. package/dist/expect/ballpark.d.ts +0 -12
  147. package/dist/expect/ballpark.d.ts.map +0 -1
  148. package/dist/expect/ballpark.js +0 -18
  149. package/dist/expect/ballpark.js.map +0 -1
  150. package/dist/expect/before.d.ts +0 -11
  151. package/dist/expect/before.d.ts.map +0 -1
  152. package/dist/expect/before.js +0 -18
  153. package/dist/expect/before.js.map +0 -1
  154. package/dist/expect/between.d.ts +0 -21
  155. package/dist/expect/between.d.ts.map +0 -1
  156. package/dist/expect/between.js +0 -18
  157. package/dist/expect/between.js.map +0 -1
  158. package/dist/expect/empty.d.ts +0 -16
  159. package/dist/expect/empty.d.ts.map +0 -1
  160. package/dist/expect/empty.js +0 -18
  161. package/dist/expect/empty.js.map +0 -1
  162. package/dist/expect/end-with.d.ts +0 -12
  163. package/dist/expect/end-with.d.ts.map +0 -1
  164. package/dist/expect/end-with.js +0 -18
  165. package/dist/expect/end-with.js.map +0 -1
  166. package/dist/expect/eql.d.ts +0 -11
  167. package/dist/expect/eql.d.ts.map +0 -1
  168. package/dist/expect/eql.js +0 -22
  169. package/dist/expect/eql.js.map +0 -1
  170. package/dist/expect/equal-shorthand.d.ts +0 -14
  171. package/dist/expect/equal-shorthand.d.ts.map +0 -1
  172. package/dist/expect/equal-shorthand.js +0 -34
  173. package/dist/expect/equal-shorthand.js.map +0 -1
  174. package/dist/expect/equal.d.ts +0 -14
  175. package/dist/expect/equal.d.ts.map +0 -1
  176. package/dist/expect/equal.js +0 -28
  177. package/dist/expect/equal.js.map +0 -1
  178. package/dist/expect/excluding.d.ts +0 -11
  179. package/dist/expect/excluding.d.ts.map +0 -1
  180. package/dist/expect/excluding.js +0 -14
  181. package/dist/expect/excluding.js.map +0 -1
  182. package/dist/expect/greater-than-equal.d.ts +0 -32
  183. package/dist/expect/greater-than-equal.d.ts.map +0 -1
  184. package/dist/expect/greater-than-equal.js +0 -20
  185. package/dist/expect/greater-than-equal.js.map +0 -1
  186. package/dist/expect/greater-than.d.ts +0 -32
  187. package/dist/expect/greater-than.d.ts.map +0 -1
  188. package/dist/expect/greater-than.js +0 -20
  189. package/dist/expect/greater-than.js.map +0 -1
  190. package/dist/expect/has-property.d.ts +0 -36
  191. package/dist/expect/has-property.d.ts.map +0 -1
  192. package/dist/expect/has-property.js +0 -22
  193. package/dist/expect/has-property.js.map +0 -1
  194. package/dist/expect/include.d.ts +0 -25
  195. package/dist/expect/include.d.ts.map +0 -1
  196. package/dist/expect/include.js +0 -22
  197. package/dist/expect/include.js.map +0 -1
  198. package/dist/expect/instance-of-shorthand.d.ts +0 -34
  199. package/dist/expect/instance-of-shorthand.d.ts.map +0 -1
  200. package/dist/expect/instance-of-shorthand.js +0 -22
  201. package/dist/expect/instance-of-shorthand.js.map +0 -1
  202. package/dist/expect/instance-of.d.ts +0 -11
  203. package/dist/expect/instance-of.d.ts.map +0 -1
  204. package/dist/expect/instance-of.js +0 -18
  205. package/dist/expect/instance-of.js.map +0 -1
  206. package/dist/expect/keys.d.ts +0 -17
  207. package/dist/expect/keys.d.ts.map +0 -1
  208. package/dist/expect/keys.js +0 -18
  209. package/dist/expect/keys.js.map +0 -1
  210. package/dist/expect/length.d.ts +0 -28
  211. package/dist/expect/length.d.ts.map +0 -1
  212. package/dist/expect/length.js +0 -19
  213. package/dist/expect/length.js.map +0 -1
  214. package/dist/expect/less-than-equal.d.ts +0 -32
  215. package/dist/expect/less-than-equal.d.ts.map +0 -1
  216. package/dist/expect/less-than-equal.js +0 -20
  217. package/dist/expect/less-than-equal.js.map +0 -1
  218. package/dist/expect/less-than.d.ts +0 -32
  219. package/dist/expect/less-than.d.ts.map +0 -1
  220. package/dist/expect/less-than.js +0 -20
  221. package/dist/expect/less-than.js.map +0 -1
  222. package/dist/expect/match.d.ts +0 -10
  223. package/dist/expect/match.d.ts.map +0 -1
  224. package/dist/expect/match.js +0 -18
  225. package/dist/expect/match.js.map +0 -1
  226. package/dist/expect/members.d.ts +0 -20
  227. package/dist/expect/members.d.ts.map +0 -1
  228. package/dist/expect/members.js +0 -32
  229. package/dist/expect/members.js.map +0 -1
  230. package/dist/expect/reject.d.ts +0 -12
  231. package/dist/expect/reject.d.ts.map +0 -1
  232. package/dist/expect/reject.js +0 -13
  233. package/dist/expect/reject.js.map +0 -1
  234. package/dist/expect/round-to.d.ts +0 -12
  235. package/dist/expect/round-to.d.ts.map +0 -1
  236. package/dist/expect/round-to.js +0 -18
  237. package/dist/expect/round-to.js.map +0 -1
  238. package/dist/expect/start-with.d.ts +0 -12
  239. package/dist/expect/start-with.d.ts.map +0 -1
  240. package/dist/expect/start-with.js +0 -18
  241. package/dist/expect/start-with.js.map +0 -1
  242. package/dist/expect/throw.d.ts +0 -12
  243. package/dist/expect/throw.d.ts.map +0 -1
  244. package/dist/expect/throw.js +0 -13
  245. package/dist/expect/throw.js.map +0 -1
  246. package/dist/expect/type-shorthand.d.ts +0 -66
  247. package/dist/expect/type-shorthand.d.ts.map +0 -1
  248. package/dist/expect/type-shorthand.js +0 -34
  249. package/dist/expect/type-shorthand.js.map +0 -1
  250. package/dist/expect/type.d.ts +0 -10
  251. package/dist/expect/type.d.ts.map +0 -1
  252. package/dist/expect/type.js +0 -18
  253. package/dist/expect/type.js.map +0 -1
  254. package/dist/expect.d.ts +0 -33
  255. package/dist/expect.d.ts.map +0 -1
  256. package/dist/expect.js +0 -88
  257. package/dist/expect.js.map +0 -1
  258. package/dist/expect.types.d.ts.map +0 -1
  259. package/dist/expect.types.js.map +0 -1
  260. package/dist/mixins.d.ts +0 -26
  261. package/dist/mixins.d.ts.map +0 -1
  262. package/dist/mixins.js +0 -9
  263. package/dist/mixins.js.map +0 -1
  264. package/dist/utils/cast-array.d.ts +0 -2
  265. package/dist/utils/cast-array.d.ts.map +0 -1
  266. package/dist/utils/cast-array.js +0 -14
  267. package/dist/utils/cast-array.js.map +0 -1
  268. package/dist/utils/chain.d.ts +0 -3
  269. package/dist/utils/chain.d.ts.map +0 -1
  270. package/dist/utils/chain.js +0 -21
  271. package/dist/utils/chain.js.map +0 -1
  272. package/dist/utils/fail.d.ts +0 -6
  273. package/dist/utils/fail.d.ts.map +0 -1
  274. package/dist/utils/fail.js +0 -13
  275. package/dist/utils/fail.js.map +0 -1
  276. package/dist/utils/get-size.d.ts +0 -2
  277. package/dist/utils/get-size.d.ts.map +0 -1
  278. package/dist/utils/get-size.js +0 -24
  279. package/dist/utils/get-size.js.map +0 -1
  280. package/dist/utils/get-type.d.ts +0 -3
  281. package/dist/utils/get-type.d.ts.map +0 -1
  282. package/dist/utils/get-type.js +0 -17
  283. package/dist/utils/get-type.js.map +0 -1
  284. package/dist/utils/match.d.ts +0 -15
  285. package/dist/utils/match.d.ts.map +0 -1
  286. package/dist/utils/match.js +0 -150
  287. package/dist/utils/match.js.map +0 -1
  288. package/dist/utils/process-error.d.ts +0 -11
  289. package/dist/utils/process-error.d.ts.map +0 -1
  290. package/dist/utils/process-error.js +0 -98
  291. package/dist/utils/process-error.js.map +0 -1
  292. package/dist/utils/types.d.ts +0 -4
  293. package/dist/utils/types.d.ts.map +0 -1
  294. package/dist/utils/types.js +0 -3
  295. package/dist/utils/types.js.map +0 -1
  296. package/dist/utils/validate-numeric-and-dates.d.ts +0 -2
  297. package/dist/utils/validate-numeric-and-dates.d.ts.map +0 -1
  298. package/dist/utils/validate-numeric-and-dates.js +0 -15
  299. package/dist/utils/validate-numeric-and-dates.js.map +0 -1
  300. package/dist/utils/xor.d.ts +0 -2
  301. package/dist/utils/xor.d.ts.map +0 -1
  302. package/dist/utils/xor.js +0 -8
  303. package/dist/utils/xor.js.map +0 -1
@@ -0,0 +1,481 @@
1
+ import { Constructor, ErrorPredicate, notThrows, throws } from "./throws-BrCCeBBl.js";
2
+
3
+ //#region src/assert/deep-equal.d.ts
4
+ declare const deepEqual: <T>(actual: T, expected: T, partialOrMessage?: string | boolean, message?: string) => true | void, notDeepEqual: <T>(actual: T, expected: T, partialOrMessage?: string | boolean, message?: string) => true | void;
5
+ //#endregion
6
+ //#region src/assert/equal.d.ts
7
+ interface Equal {
8
+ /**
9
+ * check for === equality except here NaN is equal to NaN
10
+ */
11
+ <T>(actual: T, expected: T, message?: string): void;
12
+ }
13
+ declare const equal: Equal, notEqual: Equal;
14
+ //#endregion
15
+ //#region src/assert/greater-than.d.ts
16
+ interface GreaterThan {
17
+ /**
18
+ * check for >
19
+ */
20
+ <T extends number | bigint | Date>(actual: T, expected: T, message?: string): void;
21
+ }
22
+ declare const greaterThan: GreaterThan, notGreaterThan: GreaterThan;
23
+ //#endregion
24
+ //#region src/assert/greater-than-equal.d.ts
25
+ interface GreaterThanEqual {
26
+ /**
27
+ * check for >=
28
+ */
29
+ <T extends number | bigint | Date>(actual: T, expected: T, message?: string): void;
30
+ }
31
+ declare const greaterThanEqual: GreaterThanEqual, notGreaterThanEqual: GreaterThanEqual;
32
+ //#endregion
33
+ //#region src/assert/has-property.d.ts
34
+ interface HasProperty {
35
+ /**
36
+ * check if object has a property
37
+ * @param object
38
+ * @param property a property in the object.
39
+ * @example hasProperty({a: 1}, 'a');
40
+ */
41
+ <T, K extends keyof T>(object: T, property: K): void;
42
+ /**
43
+ * check if object has a property with a specific value
44
+ * @param object
45
+ * @param property a property in the object.
46
+ * @param value
47
+ * @example hasProperty({a: 1}, 'a', 1);
48
+ */
49
+ <T, K extends keyof T>(object: T, property: K, value: T[K]): void;
50
+ }
51
+ declare const hasProperty: HasProperty, notHasProperty: HasProperty;
52
+ //#endregion
53
+ //#region src/assert/has-size.d.ts
54
+ interface HasSize {
55
+ /**
56
+ * check if array has a specific length
57
+ * @param array
58
+ * @param length
59
+ * @example hasSize([1, 2, 3], 3);
60
+ */
61
+ (array: any[], length: number, message?: string): void;
62
+ /**
63
+ * check if object has a specific amount of keys
64
+ * @param object
65
+ * @param length
66
+ * @example hasSize({a: 1, b: 2}, 2);
67
+ */
68
+ (object: Record<string, unknown>, length: number, message?: string): void;
69
+ /**
70
+ * check if Map has a specific amount of keys
71
+ * @param map
72
+ * @param length
73
+ * @example hasSize(new Map([['a', 1], ['b', 2]]), 2);
74
+ */
75
+ (map: Map<unknown, unknown>, length: number, message?: string): void;
76
+ /**
77
+ * check if Set has a specific amount of members
78
+ * @param set
79
+ * @param length
80
+ * @example hasSize(new Set([1, 2, 3]), 3);
81
+ */
82
+ (set: Set<unknown>, length: number, message?: string): void;
83
+ /**
84
+ * check if string has a specific length
85
+ * @param string
86
+ * @param length
87
+ * @example hasSize('abc', 3);
88
+ */
89
+ (string: string, length: number, message?: string): void;
90
+ }
91
+ declare const hasSize: HasSize, notHasSize: HasSize;
92
+ //#endregion
93
+ //#region src/assert/includes.d.ts
94
+ interface Includes {
95
+ /**
96
+ * check if array includes a specific element
97
+ * @param array
98
+ * @param element
99
+ * @example includes([1, 2, 3], 2);
100
+ * @example includes([1, 2, 3], 2, 3);
101
+ */
102
+ <T>(array: T[], ...elements: T[]): void;
103
+ /**
104
+ * check if string includes a specific string
105
+ * @param string
106
+ * @param element
107
+ * @example includes('abc', 'b');
108
+ * @example includes('abc', 'b', 'c');
109
+ * @example includes('abc', 'bc');
110
+ */
111
+ (string: string, ...elements: string[]): void;
112
+ }
113
+ declare const includes: Includes, notIncludes: Includes;
114
+ //#endregion
115
+ //#region src/assert/instance-of.d.ts
116
+ interface InstanceOf {
117
+ /**
118
+ * check if value is an instance of a constructor
119
+ * @param value
120
+ * @param constructor
121
+ * @example instanceOf(new Error(), Error);
122
+ */
123
+ <T extends Constructor>(value: InstanceType<T>, constructor: T): void;
124
+ }
125
+ declare const instanceOf: InstanceOf, notInstanceOf: InstanceOf;
126
+ //#endregion
127
+ //#region src/assert/is-empty.d.ts
128
+ interface IsEmpty {
129
+ /**
130
+ * check if array is empty
131
+ * @param array
132
+ * @example isEmpty([]);
133
+ */
134
+ <T>(array: T[], message?: string): void;
135
+ /**
136
+ * check if object is empty
137
+ * @param object
138
+ * @example isEmpty({});
139
+ */
140
+ (object: Record<string, unknown>, message?: string): void;
141
+ /**
142
+ * check if Map is empty
143
+ * @param map
144
+ * @example isEmpty(new Map());
145
+ */
146
+ <K, V>(map: Map<K, V>, message?: string): void;
147
+ /**
148
+ * check if Set is empty
149
+ * @param set
150
+ * @example isEmpty(new Set());
151
+ */
152
+ <T>(set: Set<T>, message?: string): void;
153
+ }
154
+ declare const isEmpty: IsEmpty, notIsEmpty: IsEmpty;
155
+ //#endregion
156
+ //#region src/utils/get-type.d.ts
157
+ type ValueType = 'string' | 'number' | 'bigint' | 'boolean' | 'symbol' | 'undefined' | 'object' | 'function' | 'null' | 'NaN' | 'array';
158
+ //#endregion
159
+ //#region src/assert/is-type.d.ts
160
+ interface IsType {
161
+ /**
162
+ * check if value is of a specific type, nulls, NaN and arrays are specially handled
163
+ * @param value
164
+ * @param expectedType
165
+ * @example isType('foo', 'string');
166
+ * @example isType(1, 'number');
167
+ * @example isType(1n, 'bigint');
168
+ * @example isType(true, 'boolean');
169
+ * @example isType(Symbol('foo'), 'symbol');
170
+ * @example isType(undefined, 'undefined');
171
+ * @example isType({}, 'object');
172
+ * @example isType(() => {}, 'function');
173
+ * @example isType(null, 'null');
174
+ * @example isType(NaN, 'NaN');
175
+ * @example isType([], 'array');
176
+ */
177
+ (value: unknown, expectedType: ValueType): void;
178
+ /**
179
+ * check if value is of a specific type, nulls, NaN and arrays are specially handled
180
+ * @param value
181
+ * @param expectedType
182
+ * @example isType('foo', 'string');
183
+ */
184
+ (value: string, expectedType: 'string'): void;
185
+ /**
186
+ * check if value is of a specific type, nulls, NaN and arrays are specially handled
187
+ * @param value
188
+ * @param expectedType
189
+ * @example isType(1, 'number');
190
+ * @example isType(NaN, 'NaN');
191
+ */
192
+ (value: number, expectedType: 'number' | 'NaN'): void;
193
+ /**
194
+ * check if value is of a specific type, nulls, NaN and arrays are specially handled
195
+ * @param value
196
+ * @param expectedType
197
+ * @example isType(1n, 'bigint');
198
+ */
199
+ (value: bigint, expectedType: 'bigint'): void;
200
+ /**
201
+ * check if value is of a specific type, nulls, NaN and arrays are specially handled
202
+ * @param value
203
+ * @param expectedType
204
+ * @example isType(true, 'boolean');
205
+ */
206
+ (value: boolean, expectedType: 'boolean'): void;
207
+ /**
208
+ * check if value is of a specific type, nulls, NaN and arrays are specially handled
209
+ * @param value
210
+ * @param expectedType
211
+ * @example isType(Symbol('foo'), 'symbol');
212
+ */
213
+ (value: symbol, expectedType: 'symbol'): void;
214
+ /**
215
+ * check if value is of a specific type, nulls, NaN and arrays are specially handled
216
+ * @param value
217
+ * @param expectedType
218
+ * @example isType(Symbol('foo'), 'symbol');
219
+ */
220
+ (value: undefined, expectedType: 'undefined'): void;
221
+ /**
222
+ * check if value is of a specific type, nulls, NaN and arrays are specially handled
223
+ * @param value
224
+ * @param expectedType
225
+ * @example isType({}, 'object');
226
+ */
227
+ (value: object, expectedType: 'object'): void;
228
+ /**
229
+ * check if value is of a specific type, nulls, NaN and arrays are specially handled
230
+ * @param value
231
+ * @param expectedType
232
+ * @example isType(() => {}, 'function');
233
+ */
234
+ (value: Function, expectedType: 'function'): void;
235
+ /**
236
+ * check if value is of a specific type, nulls, NaN and arrays are specially handled
237
+ * @param value
238
+ * @param expectedType
239
+ * @example isType(null, 'null');
240
+ */
241
+ (value: null, expectedType: 'null'): void;
242
+ /**
243
+ * check if value is of a specific type, nulls, NaN and arrays are specially handled
244
+ * @param value
245
+ * @param expectedType
246
+ * @example isType([], 'array');
247
+ */
248
+ (value: any[], expectedType: 'array'): void;
249
+ }
250
+ declare const isType: IsType, notIsType: IsType;
251
+ //#endregion
252
+ //#region src/assert/less-than.d.ts
253
+ interface LesserThan {
254
+ /**
255
+ * check for <
256
+ */
257
+ <T extends number | bigint | Date>(actual: T, expected: T, message?: string): void;
258
+ }
259
+ declare const lessThan: LesserThan, notLessThan: LesserThan;
260
+ //#endregion
261
+ //#region src/assert/less-than-equal.d.ts
262
+ interface LessThanEqual {
263
+ /**
264
+ * check for <=
265
+ */
266
+ <T extends number | bigint | Date>(actual: T, expected: T, message?: string): void;
267
+ }
268
+ declare const lessThanEqual: LessThanEqual, notLessThanEqual: LessThanEqual;
269
+ //#endregion
270
+ //#region src/assert/match.d.ts
271
+ interface IsMatch {
272
+ /**
273
+ * check if string matches regex
274
+ * @param actual
275
+ * @param regex
276
+ * @example match('foo', /foo/);
277
+ * @example notMatch('foo', /bar/);
278
+ */
279
+ (actual: string, regex: RegExp): void;
280
+ }
281
+ declare const match: IsMatch, notMatch: IsMatch;
282
+ //#endregion
283
+ //#region src/assert/rejects.d.ts
284
+ interface Rejects {
285
+ /**
286
+ * check if promise rejects
287
+ * @param promise
288
+ * @example rejects(Promise.reject());
289
+ */
290
+ (promise: Promise<any>, message?: string): Promise<void>;
291
+ /**
292
+ * check if promise rejects with an instance of constructor
293
+ * @param promise
294
+ * @param constructor - expected error constructor
295
+ * @example rejects(Promise.reject(new Error()), Error);
296
+ */
297
+ (promise: Promise<any>, constructor: Constructor, message?: string): Promise<void>;
298
+ /**
299
+ * check if promise rejects with a specific error message
300
+ * @param promise
301
+ * @param regex - expected error message regex
302
+ * @example rejects(Promise.reject(new Error('This is worrying)), /worrying/);
303
+ */
304
+ (promise: Promise<any>, constructor: RegExp, message?: string): Promise<void>;
305
+ /**
306
+ * check if promise rejects with and matches the predicate function
307
+ * @param promise
308
+ * @param predicate - predicate function that receives the error and returns boolean
309
+ * @example rejects(Promise.reject(new Error('This is worrying')), (error) => error.message === 'This is worrying');));
310
+ */
311
+ (promise: Promise<any>, constructor: ErrorPredicate, message?: string): Promise<void>;
312
+ }
313
+ declare const rejects: Rejects, notRejects: Rejects;
314
+ //#endregion
315
+ //#region src/assert/deep-has-property.d.ts
316
+ interface DeepHasProperty {
317
+ /**
318
+ * check if object has a property
319
+ * @param object
320
+ * @param property a property in the object. Can be a path like 'a.b.c'
321
+ * @example deepHasProperty([{a: {b: {c: 1}}}], '[0].a.b.c');
322
+ */
323
+ (object: any, property: string): void;
324
+ /**
325
+ * check if object has a property with a specific value
326
+ * @param object
327
+ * @param property a property in the object. Can be a path like 'a.b.c'
328
+ * @param value
329
+ * @example deepHasProperty([{a: {b: {c: 1}}}], '[0].a.b.c', 1);
330
+ */
331
+ (object: any, property: string, value: any): void;
332
+ }
333
+ declare const deepHasProperty: DeepHasProperty, deepNotHasProperty: DeepHasProperty;
334
+ //#endregion
335
+ //#region src/assert/starts-with.d.ts
336
+ interface StartsWith {
337
+ /**
338
+ * check if string starts with start
339
+ * @param string
340
+ * @param start
341
+ * @example startsWith('foo', 'f');
342
+ */
343
+ (string: string, start: string): void;
344
+ }
345
+ declare const startsWith: StartsWith, notStartsWith: StartsWith;
346
+ //#endregion
347
+ //#region src/assert/ends-with.d.ts
348
+ interface EndsWith {
349
+ /**
350
+ * check if string ends with a specific string
351
+ * @param string
352
+ * @param end
353
+ */
354
+ (string: string, end: string): void;
355
+ }
356
+ declare const endsWith: EndsWith, notEndsWith: EndsWith;
357
+ //#endregion
358
+ //#region src/assert/is-before.d.ts
359
+ interface IsBefore {
360
+ /**
361
+ * check that date is before another date
362
+ */
363
+ <T extends Date>(actual: T, expected: T, message?: string): void;
364
+ }
365
+ declare const isBefore: IsBefore, notBefore: IsBefore;
366
+ //#endregion
367
+ //#region src/assert/is-after.d.ts
368
+ interface IsAfter {
369
+ /**
370
+ * check that date is after another date
371
+ */
372
+ <T extends Date>(actual: T, expected: T): void;
373
+ }
374
+ declare const isAfter: IsAfter, notAfter: IsAfter;
375
+ //#endregion
376
+ //#region src/assert/is-between.d.ts
377
+ interface IsBetweenOptions {
378
+ inclusive?: boolean;
379
+ }
380
+ interface IsBetween {
381
+ /**
382
+ * check that date is Between another date
383
+ */
384
+ <T extends Date>(actual: T, start: T, end: T, options?: IsBetweenOptions): void;
385
+ <T extends number>(actual: T, start: T, end: T, options?: IsBetweenOptions): void;
386
+ }
387
+ declare const isBetween: IsBetween, notBetween: IsBetween;
388
+ //#endregion
389
+ //#region src/assert/in-ballpark.d.ts
390
+ interface InBallpark {
391
+ /**
392
+ * check if a number is in ballpark of another number. See also roundTo
393
+ * @param actual
394
+ * @param expected
395
+ * @param [allowedDifferenceMultiplier=0.1] - a number between 0 and 1 (exclusive). 0.1 (default) means 10% difference is allowed.
396
+ * @example inBallpark(1, 1.1);
397
+ * @example inBallpark(1, 1.1, 0.1);
398
+ */
399
+ (actual: number, expected: number, allowedDifferenceMultiplier?: number): void;
400
+ }
401
+ declare const inBallpark: InBallpark, notInBallpark: InBallpark;
402
+ //#endregion
403
+ //#region src/assert/round-to.d.ts
404
+ interface RoundTo {
405
+ /**
406
+ * check if value rounds to target
407
+ * @param actual
408
+ * @param expected
409
+ * @param [decimals=0] - number of decimals to round to, defaults to 0
410
+ * @example roundTo(1.234, 1.23, 2);
411
+ */
412
+ (actual: number, expected: number, decimals?: number): void;
413
+ }
414
+ declare const roundTo: RoundTo, notRoundTo: RoundTo;
415
+ //#endregion
416
+ //#region src/assert/has-members.d.ts
417
+ interface HasMembersOptions {
418
+ /**
419
+ * check for deep equality (ie {a: 1} === {a: 1})
420
+ * @default false
421
+ * @example
422
+ * hasMembers([{ a: 1 }], [{ a: 1 }], { deep: true });
423
+ */
424
+ deep?: boolean;
425
+ /**
426
+ * use partial matching (ie {a: 1, b: 2} === {a: 1})
427
+ * implies deep
428
+ * @default false
429
+ * @example
430
+ * hasMembers([{ a: 1, b: 2 }], [{ a: 1 }], { partial: true });
431
+ */
432
+ partial?: boolean;
433
+ /**
434
+ * check that all the members in the first array are present in the second one
435
+ * @default false
436
+ * @example
437
+ * hasMembers([1, 2], [2, 1], { same: true });
438
+ * notHasMembers([1, 2], [1], { same: true});
439
+ */
440
+ same?: boolean;
441
+ /**
442
+ * check that the members in the first array are in the same order as the second one
443
+ * @default false
444
+ * @example
445
+ * hasMembers([1, 2], [1, 2], { ordered: true });
446
+ * notHasMembers([1, 2], [2, 1], { ordered: true });
447
+ */
448
+ ordered?: boolean;
449
+ }
450
+ interface HasMembers {
451
+ /**
452
+ * check that the members in second array are present in the first one
453
+ * @example
454
+ * hasMembers([1], [1]);
455
+ * hasMembers([1, 2], [2, 1]);
456
+ * hasMembers([{ a: 1 }], [{ a: 1 }], { deep: true });
457
+ */
458
+ <T>(actual: T[], expected: T[], options?: HasMembersOptions, message?: string): void;
459
+ }
460
+ declare const hasMembers: HasMembers, notHasMembers: HasMembers;
461
+ //#endregion
462
+ //#region src/assert/has-keys.d.ts
463
+ interface HasKeys {
464
+ /**
465
+ * check if object has keys
466
+ * @param object
467
+ * @param keys a key or array of keys in the object.
468
+ * @example hasKeys({a: 1}, 'a');
469
+ * @example hasKeys({a: 1, b: 2}, ['a', 'b']);
470
+ */
471
+ <T extends Record<string, any>, K extends keyof T>(object: T, keys: K[] | K, message?: string): void;
472
+ <K, T extends Map<K, any>>(object: T, keys: K[] | K, message?: string): void;
473
+ }
474
+ declare const hasKeys: HasKeys, notHasKeys: HasKeys;
475
+ declare namespace assert_d_exports {
476
+ export { assert, deepEqual, deepHasProperty, deepNotHasProperty, endsWith, equal, greaterThan, greaterThanEqual, hasKeys, hasMembers, hasProperty, hasSize, inBallpark, includes, instanceOf, isAfter, isBefore, isBetween, isEmpty, isType, lessThan, lessThanEqual, match, notAfter, notBefore, notBetween, notDeepEqual, notEndsWith, notEqual, notGreaterThan, notGreaterThanEqual, notHasKeys, notHasMembers, notHasProperty, notHasSize, notInBallpark, notIncludes, notInstanceOf, notIsEmpty, notIsType, notLessThan, notLessThanEqual, notMatch, notRejects, notRoundTo, notStartsWith, notThrows, rejects, roundTo, startsWith, throws };
477
+ }
478
+ declare const assert: () => never;
479
+ //#endregion
480
+ export { ValueType, assert, assert_d_exports, deepEqual, deepHasProperty, deepNotHasProperty, endsWith, equal, greaterThan, greaterThanEqual, hasKeys, hasMembers, hasProperty, hasSize, inBallpark, includes, instanceOf, isAfter, isBefore, isBetween, isEmpty, isType, lessThan, lessThanEqual, match, notAfter, notBefore, notBetween, notDeepEqual, notEndsWith, notEqual, notGreaterThan, notGreaterThanEqual, notHasKeys, notHasMembers, notHasProperty, notHasSize, notInBallpark, notIncludes, notInstanceOf, notIsEmpty, notIsType, notLessThan, notLessThanEqual, notMatch, notRejects, notRoundTo, notStartsWith, rejects, roundTo, startsWith };
481
+ //# sourceMappingURL=assert-B_vcZS90.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert-B_vcZS90.d.ts","names":[],"sources":["../src/assert/deep-equal.ts","../src/assert/equal.ts","../src/assert/greater-than.ts","../src/assert/greater-than-equal.ts","../src/assert/has-property.ts","../src/assert/has-size.ts","../src/assert/includes.ts","../src/assert/instance-of.ts","../src/assert/is-empty.ts","../src/utils/get-type.ts","../src/assert/is-type.ts","../src/assert/less-than.ts","../src/assert/less-than-equal.ts","../src/assert/match.ts","../src/assert/rejects.ts","../src/assert/deep-has-property.ts","../src/assert/starts-with.ts","../src/assert/ends-with.ts","../src/assert/is-before.ts","../src/assert/is-after.ts","../src/assert/is-between.ts","../src/assert/in-ballpark.ts","../src/assert/round-to.ts","../src/assert/has-members.ts","../src/assert/has-keys.ts","../src/assert.ts"],"sourcesContent":[],"mappings":"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"}