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,3 @@
1
+ import "./throws-D7JsW4NM.cjs";
2
+ import { ArrayExpect, BigIntExpect, BooleanExpect, DateExpect, Expect, FunctionExpect, Loose, MapExpect, NumberExpect, ObjectExpect, PromiseExpect, State, StringExpect, SymbolExpect, ValueExpect } from "./expect.types-s8icgWp5.cjs";
3
+ export { ArrayExpect, BigIntExpect, BooleanExpect, DateExpect, Expect, FunctionExpect, Loose, MapExpect, NumberExpect, ObjectExpect, PromiseExpect, State, StringExpect, SymbolExpect, ValueExpect };
@@ -1,66 +1,3 @@
1
- import { ThrowsCallback } from './assert/throws';
2
- import type { fail } from './utils/fail';
3
- export { State } from './mixins';
4
- export interface ValueExpect<T> {
5
- to: this;
6
- be: this;
7
- a: this;
8
- an: this;
9
- not: this;
10
- and: this;
11
- have: this;
12
- in: this;
13
- of: this;
14
- /**
15
- * Use deep equality for object checks
16
- */
17
- deep: this;
18
- }
19
- export interface ArrayExpect<T> extends ValueExpect<T>, ObjectExpect<T> {
20
- length: NumberExpect<number> & this;
21
- array(): this;
22
- }
23
- export interface BigIntExpect<T = bigint> extends NumberExpect<T> {
24
- }
25
- export interface BooleanExpect<T = boolean> extends ValueExpect<T> {
26
- }
27
- export interface DateExpect<T = Date> extends ValueExpect<T>, ObjectExpect<T> {
28
- }
29
- export interface FunctionExpect<T> extends ValueExpect<T> {
30
- }
31
- export interface NumberExpect<T = number> extends ValueExpect<T> {
32
- }
33
- export interface MapExpect<T> extends ValueExpect<T> {
34
- size: NumberExpect<number>;
35
- }
36
- export interface ObjectExpect<T> extends ValueExpect<T> {
37
- size: NumberExpect<number>;
38
- }
39
- export interface PromiseExpect<T> extends ValueExpect<T> {
40
- }
41
- export interface StringExpect<T = string> extends ValueExpect<T> {
42
- }
43
- export interface SymbolExpect<T> extends ValueExpect<T> {
44
- }
45
- declare const LooseSymbol: unique symbol;
46
- export interface Loose {
47
- [LooseSymbol]: true;
48
- }
49
- type AllExpects<T> = ArrayExpect<T> & BigIntExpect<T> & BooleanExpect<T> & DateExpect<T> & FunctionExpect<T> & NumberExpect<T> & MapExpect<T> & ObjectExpect<T> & PromiseExpect<T> & StringExpect<T> & SymbolExpect<T> & ValueExpect<T>;
50
- export interface Expect {
51
- <T extends Loose>(actual: T): AllExpects<T>;
52
- <T extends ThrowsCallback>(actual: T): FunctionExpect<T>;
53
- <T extends Promise<any>>(actual: T): PromiseExpect<T>;
54
- <T extends any[]>(actual: T): ArrayExpect<T>;
55
- <T extends Date>(actual: T): DateExpect<T>;
56
- <T extends Map<any, any>>(actual: T): MapExpect<T>;
57
- <T extends Record<string, any>>(actual: T): ObjectExpect<T>;
58
- <T extends number>(actual: T): NumberExpect;
59
- <T extends bigint>(actual: T): BigIntExpect;
60
- <T extends boolean>(actual: T): BooleanExpect;
61
- <T extends string>(actual: T): StringExpect;
62
- <T extends symbol>(actual: T): SymbolExpect<T>;
63
- <T>(actual: T): ValueExpect<T>;
64
- fail: typeof fail;
65
- }
66
- //# sourceMappingURL=expect.types.d.ts.map
1
+ import "./throws-BrCCeBBl.js";
2
+ import { ArrayExpect, BigIntExpect, BooleanExpect, DateExpect, Expect, FunctionExpect, Loose, MapExpect, NumberExpect, ObjectExpect, PromiseExpect, State, StringExpect, SymbolExpect, ValueExpect } from "./expect.types-DPl6xY56.js";
3
+ export { ArrayExpect, BigIntExpect, BooleanExpect, DateExpect, Expect, FunctionExpect, Loose, MapExpect, NumberExpect, ObjectExpect, PromiseExpect, State, StringExpect, SymbolExpect, ValueExpect };
@@ -1,4 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const LooseSymbol = Symbol();
4
- //# sourceMappingURL=expect.types.js.map
1
+ export { };
package/dist/index.cjs ADDED
@@ -0,0 +1,596 @@
1
+ const require_assert = require('./assert-DZjgWjOw.cjs');
2
+ let hein_assertion_utils = require("hein-assertion-utils");
3
+ hein_assertion_utils = require_assert.__toESM(hein_assertion_utils);
4
+ let lodash_isPlainObject_js = require("lodash/isPlainObject.js");
5
+ lodash_isPlainObject_js = require_assert.__toESM(lodash_isPlainObject_js);
6
+ let lodash_omit_js = require("lodash/omit.js");
7
+ lodash_omit_js = require_assert.__toESM(lodash_omit_js);
8
+ let lodash_mapValues_js = require("lodash/mapValues.js");
9
+ lodash_mapValues_js = require_assert.__toESM(lodash_mapValues_js);
10
+
11
+ //#region src/mixins.ts
12
+ const mixins = {};
13
+ const use = (plugins) => {
14
+ Object.assign(mixins, plugins);
15
+ };
16
+
17
+ //#endregion
18
+ //#region src/utils/chain.ts
19
+ const registerProperty = (object, name, value) => {
20
+ Object.defineProperty(object, name, {
21
+ enumerable: true,
22
+ get() {
23
+ return value();
24
+ }
25
+ });
26
+ return object;
27
+ };
28
+ const registerMethod = (object, name, value) => {
29
+ Object.defineProperty(object, name, { value });
30
+ return object;
31
+ };
32
+
33
+ //#endregion
34
+ //#region src/utils/get-size.ts
35
+ const getSize = (value) => {
36
+ if (Array.isArray(value)) return value.length;
37
+ if ((0, lodash_isPlainObject_js.default)(value)) return Object.keys(value).length;
38
+ if (value instanceof Map) return value.size;
39
+ if (value instanceof Set) return value.size;
40
+ if (typeof value === "string") return value.length;
41
+ return 0;
42
+ };
43
+
44
+ //#endregion
45
+ //#region src/expect/after.ts
46
+ use({ after: {
47
+ type: "method",
48
+ value: ({ value, inverted }) => (date) => {
49
+ if (inverted) require_assert.notAfter(value, date);
50
+ else require_assert.isAfter(value, date);
51
+ }
52
+ } });
53
+
54
+ //#endregion
55
+ //#region src/expect/ballpark.ts
56
+ use({ ballpark: {
57
+ type: "method",
58
+ value: ({ value, inverted }) => (ballpark, multiplier = .1) => {
59
+ if (inverted) require_assert.notInBallpark(value, ballpark, multiplier);
60
+ else require_assert.inBallpark(value, ballpark, multiplier);
61
+ }
62
+ } });
63
+
64
+ //#endregion
65
+ //#region src/expect/before.ts
66
+ use({ before: {
67
+ type: "method",
68
+ value: ({ value, inverted }) => (date) => {
69
+ if (inverted) require_assert.notBefore(value, date);
70
+ else require_assert.isBefore(value, date);
71
+ }
72
+ } });
73
+
74
+ //#endregion
75
+ //#region src/expect/between.ts
76
+ use({ between: {
77
+ type: "method",
78
+ value: ({ value, inverted }) => (start, end, inclusive = true) => {
79
+ if (inverted) require_assert.notBetween(value, start, end, { inclusive });
80
+ else require_assert.isBetween(value, start, end, { inclusive });
81
+ }
82
+ } });
83
+
84
+ //#endregion
85
+ //#region src/expect/empty.ts
86
+ use({ empty: {
87
+ type: "method",
88
+ value: ({ value, inverted }) => (message) => {
89
+ if (inverted) require_assert.notIsEmpty(value, message);
90
+ else require_assert.isEmpty(value, message);
91
+ }
92
+ } });
93
+
94
+ //#endregion
95
+ //#region src/expect/end-with.ts
96
+ use({ endWith: {
97
+ type: "method",
98
+ value: ({ value, inverted }) => (end) => {
99
+ if (inverted) require_assert.notEndsWith(value, end);
100
+ else require_assert.endsWith(value, end);
101
+ }
102
+ } });
103
+
104
+ //#endregion
105
+ //#region src/expect/eql.ts
106
+ use({
107
+ partially: {
108
+ type: "property",
109
+ value: () => ({ partial: true })
110
+ },
111
+ eql: {
112
+ type: "method",
113
+ value: ({ value, inverted, partial }) => (other, message) => {
114
+ if (inverted) require_assert.notDeepEqual(value, other, partial, message);
115
+ else require_assert.deepEqual(value, other, partial, message);
116
+ }
117
+ }
118
+ });
119
+
120
+ //#endregion
121
+ //#region src/expect/equal-shorthand.ts
122
+ use(Object.fromEntries(Object.entries({
123
+ false: false,
124
+ true: true
125
+ }).map(([key, expectValue]) => {
126
+ return [key, {
127
+ type: "method",
128
+ value: ({ inverted, value }) => () => {
129
+ if (inverted) {
130
+ const message = (0, hein_assertion_utils.format)("Expected {{= it.value }} to not be {{= it.key }}", {
131
+ key,
132
+ value
133
+ }, true);
134
+ require_assert.notEqual(value, expectValue, message);
135
+ } else {
136
+ const message = (0, hein_assertion_utils.format)("Expected {{= it.value }} to be {{= it.key }}", {
137
+ key,
138
+ value
139
+ }, true);
140
+ require_assert.equal(value, expectValue, message);
141
+ }
142
+ }
143
+ }];
144
+ })));
145
+
146
+ //#endregion
147
+ //#region src/expect/equal.ts
148
+ use({
149
+ equal: {
150
+ type: "method",
151
+ value: ({ value, inverted, deep }) => (other, message) => {
152
+ if (deep) {
153
+ if (inverted) require_assert.notDeepEqual(value, other, message);
154
+ else require_assert.deepEqual(value, other, message);
155
+ return;
156
+ }
157
+ if (inverted) require_assert.notEqual(value, other, message);
158
+ else require_assert.equal(value, other, message);
159
+ }
160
+ },
161
+ eq: {
162
+ type: "alias",
163
+ value: "equal"
164
+ }
165
+ });
166
+
167
+ //#endregion
168
+ //#region src/expect/excluding.ts
169
+ use({ excluding: {
170
+ type: "method",
171
+ value: (state) => (...keys) => {
172
+ return expectChain({
173
+ ...state,
174
+ value: (0, lodash_omit_js.default)(state.value, keys)
175
+ });
176
+ }
177
+ } });
178
+
179
+ //#endregion
180
+ //#region src/expect/greater-than-equal.ts
181
+ use({
182
+ greaterThanOrEqual: {
183
+ type: "method",
184
+ value: ({ value, inverted }) => (other) => {
185
+ if (inverted) require_assert.notGreaterThanEqual(value, other);
186
+ else require_assert.greaterThanEqual(value, other);
187
+ }
188
+ },
189
+ gte: {
190
+ type: "alias",
191
+ value: "greaterThanOrEqual"
192
+ },
193
+ atLeast: {
194
+ type: "alias",
195
+ value: "greaterThanOrEqual"
196
+ }
197
+ });
198
+
199
+ //#endregion
200
+ //#region src/expect/greater-than.ts
201
+ use({
202
+ greaterThan: {
203
+ type: "method",
204
+ value: ({ value, inverted }) => (other) => {
205
+ if (inverted) require_assert.notGreaterThan(value, other);
206
+ else require_assert.greaterThan(value, other);
207
+ }
208
+ },
209
+ gt: {
210
+ type: "alias",
211
+ value: "greaterThan"
212
+ },
213
+ above: {
214
+ type: "alias",
215
+ value: "greaterThan"
216
+ }
217
+ });
218
+
219
+ //#endregion
220
+ //#region src/expect/has-property.ts
221
+ use({ property: {
222
+ type: "method",
223
+ value: ({ value, inverted, deep }) => (...args) => {
224
+ if (deep) {
225
+ if (inverted) return require_assert.deepNotHasProperty(value, ...args);
226
+ return require_assert.deepHasProperty(value, ...args);
227
+ }
228
+ if (inverted) return require_assert.notHasProperty(value, ...args);
229
+ return require_assert.hasProperty(value, ...args);
230
+ }
231
+ } });
232
+
233
+ //#endregion
234
+ //#region src/expect/include.ts
235
+ use({
236
+ include: {
237
+ type: "method",
238
+ value: ({ value, inverted }) => (...elements) => {
239
+ if (inverted) require_assert.notIncludes(value, ...elements);
240
+ else require_assert.includes(value, ...elements);
241
+ }
242
+ },
243
+ contain: {
244
+ type: "alias",
245
+ value: "include"
246
+ }
247
+ });
248
+
249
+ //#endregion
250
+ //#region src/expect/instance-of-shorthand.ts
251
+ const constructors = [
252
+ Date,
253
+ Map,
254
+ Set,
255
+ WeakMap,
256
+ WeakSet
257
+ ];
258
+ use(Object.fromEntries(constructors.map((constructor) => {
259
+ return [constructor.name, {
260
+ type: "method",
261
+ value: ({ inverted, value }) => () => {
262
+ if (inverted) require_assert.notInstanceOf(value, constructor);
263
+ else require_assert.instanceOf(value, constructor);
264
+ }
265
+ }];
266
+ })));
267
+
268
+ //#endregion
269
+ //#region src/expect/instance-of.ts
270
+ use({ instanceOf: {
271
+ type: "method",
272
+ value: ({ value, inverted }) => (constructor) => {
273
+ if (inverted) require_assert.notInstanceOf(value, constructor);
274
+ else require_assert.instanceOf(value, constructor);
275
+ }
276
+ } });
277
+
278
+ //#endregion
279
+ //#region src/expect/keys.ts
280
+ use({ keys: {
281
+ type: "method",
282
+ value: ({ value, inverted }) => (keys) => {
283
+ if (inverted) require_assert.notHasKeys(value, keys);
284
+ else require_assert.hasKeys(value, keys);
285
+ }
286
+ } });
287
+
288
+ //#endregion
289
+ //#region src/expect/length.ts
290
+ use({
291
+ sizeOf: {
292
+ type: "alias",
293
+ value: "lengthOf"
294
+ },
295
+ lengthOf: {
296
+ type: "method",
297
+ value: ({ value, inverted }) => (length, message) => {
298
+ if (inverted) require_assert.notHasSize(value, length, message);
299
+ else require_assert.hasSize(value, length, message);
300
+ }
301
+ }
302
+ });
303
+
304
+ //#endregion
305
+ //#region src/expect/less-than-equal.ts
306
+ use({
307
+ lessThanOrEqual: {
308
+ type: "method",
309
+ value: ({ value, inverted }) => (other) => {
310
+ if (inverted) require_assert.notLessThanEqual(value, other);
311
+ else require_assert.lessThanEqual(value, other);
312
+ }
313
+ },
314
+ lte: {
315
+ type: "alias",
316
+ value: "lessThanOrEqual"
317
+ },
318
+ atMost: {
319
+ type: "alias",
320
+ value: "lessThanOrEqual"
321
+ }
322
+ });
323
+
324
+ //#endregion
325
+ //#region src/expect/less-than.ts
326
+ use({
327
+ lessThan: {
328
+ type: "method",
329
+ value: ({ value, inverted }) => (other) => {
330
+ if (inverted) require_assert.notLessThan(value, other);
331
+ else require_assert.lessThan(value, other);
332
+ }
333
+ },
334
+ lt: {
335
+ type: "alias",
336
+ value: "lessThan"
337
+ },
338
+ below: {
339
+ type: "alias",
340
+ value: "lessThan"
341
+ }
342
+ });
343
+
344
+ //#endregion
345
+ //#region src/expect/match.ts
346
+ use({ match: {
347
+ type: "method",
348
+ value: ({ value, inverted }) => (regex) => {
349
+ if (inverted) require_assert.notMatch(value, regex);
350
+ else require_assert.match(value, regex);
351
+ }
352
+ } });
353
+
354
+ //#endregion
355
+ //#region src/expect/members.ts
356
+ use({
357
+ members: {
358
+ type: "method",
359
+ value: ({ value, inverted, same, deep, ordered, partial }) => (other, message) => {
360
+ if (inverted) require_assert.notHasMembers(value, other, {
361
+ deep,
362
+ same,
363
+ ordered,
364
+ partial
365
+ }, message);
366
+ else require_assert.hasMembers(value, other, {
367
+ deep,
368
+ same,
369
+ ordered,
370
+ partial
371
+ }, message);
372
+ }
373
+ },
374
+ same: {
375
+ type: "property",
376
+ value: (state) => {
377
+ state.same = true;
378
+ return state;
379
+ }
380
+ },
381
+ ordered: {
382
+ type: "property",
383
+ value: (state) => {
384
+ state.ordered = true;
385
+ return state;
386
+ }
387
+ }
388
+ });
389
+
390
+ //#endregion
391
+ //#region src/expect/reject.ts
392
+ use({ reject: {
393
+ type: "method",
394
+ value: ({ value, inverted }) => (...args) => {
395
+ return inverted ? require_assert.notRejects(value, ...args) : require_assert.rejects(value, ...args);
396
+ }
397
+ } });
398
+
399
+ //#endregion
400
+ //#region src/expect/round-to.ts
401
+ use({ roundTo: {
402
+ type: "method",
403
+ value: ({ value, inverted }) => (target, decimal = 0) => {
404
+ if (inverted) require_assert.notRoundTo(value, target, decimal);
405
+ else require_assert.roundTo(value, target, decimal);
406
+ }
407
+ } });
408
+
409
+ //#endregion
410
+ //#region src/expect/start-with.ts
411
+ use({ startWith: {
412
+ type: "method",
413
+ value: ({ value, inverted }) => (start) => {
414
+ if (inverted) require_assert.notStartsWith(value, start);
415
+ else require_assert.startsWith(value, start);
416
+ }
417
+ } });
418
+
419
+ //#endregion
420
+ //#region src/expect/throw.ts
421
+ use({ throw: {
422
+ type: "method",
423
+ value: ({ value, inverted }) => (...args) => {
424
+ return inverted ? require_assert.notThrows(value, ...args) : require_assert.throws(value, ...args);
425
+ }
426
+ } });
427
+
428
+ //#endregion
429
+ //#region src/expect/type-shorthand.ts
430
+ use(Object.fromEntries([
431
+ "NaN",
432
+ "array",
433
+ "bigint",
434
+ "boolean",
435
+ "function",
436
+ "null",
437
+ "number",
438
+ "object",
439
+ "string",
440
+ "symbol",
441
+ "undefined"
442
+ ].map((type) => {
443
+ return [type, {
444
+ type: "method",
445
+ value: ({ value, inverted }) => () => {
446
+ if (inverted) require_assert.notIsType(value, type);
447
+ else require_assert.isType(value, type);
448
+ }
449
+ }];
450
+ })));
451
+
452
+ //#endregion
453
+ //#region src/expect/type.ts
454
+ use({ type: {
455
+ type: "method",
456
+ value: ({ value, inverted }) => (type) => {
457
+ if (inverted) require_assert.notIsType(value, type);
458
+ else require_assert.isType(value, type);
459
+ }
460
+ } });
461
+
462
+ //#endregion
463
+ //#region src/utils/fail.ts
464
+ /**
465
+ * Throw an AssertionError
466
+ * @param {string} message - The message to pass to the AssertionError
467
+ */
468
+ const fail = (message = "Fail") => {
469
+ throw new hein_assertion_utils.AssertionError(void 0, void 0, message);
470
+ };
471
+
472
+ //#endregion
473
+ //#region src/expect.ts
474
+ use({
475
+ to: {
476
+ type: "property",
477
+ value: () => null
478
+ },
479
+ be: {
480
+ type: "property",
481
+ value: () => null
482
+ },
483
+ a: {
484
+ type: "property",
485
+ value: () => null
486
+ },
487
+ an: {
488
+ type: "property",
489
+ value: () => null
490
+ },
491
+ and: {
492
+ type: "property",
493
+ value: ({ value, every,...rest }) => {
494
+ const values = (0, lodash_mapValues_js.default)(rest, () => {});
495
+ return {
496
+ value,
497
+ every,
498
+ ...values
499
+ };
500
+ }
501
+ },
502
+ have: {
503
+ type: "property",
504
+ value: () => null
505
+ },
506
+ in: {
507
+ type: "property",
508
+ value: () => null
509
+ },
510
+ not: {
511
+ type: "property",
512
+ value: (state) => ({
513
+ ...state,
514
+ inverted: !state.inverted
515
+ })
516
+ },
517
+ of: {
518
+ type: "property",
519
+ value: () => null
520
+ },
521
+ length: {
522
+ type: "property",
523
+ value: (state) => ({
524
+ ...state,
525
+ getProperty: getSize
526
+ })
527
+ },
528
+ deep: {
529
+ type: "property",
530
+ value: (state) => ({
531
+ ...state,
532
+ deep: true
533
+ })
534
+ },
535
+ every: {
536
+ type: "property",
537
+ value: (state) => ({
538
+ ...state,
539
+ every: true
540
+ })
541
+ }
542
+ });
543
+ const expectChain = (state) => {
544
+ const chain = {};
545
+ for (const [key, v] of Object.entries(mixins)) {
546
+ const definition = v.type === "alias" ? mixins[v.value] : v;
547
+ if (definition.type === "property") registerProperty(chain, key, () => {
548
+ const newState = definition.value(state);
549
+ return expectChain({
550
+ ...state,
551
+ ...newState
552
+ });
553
+ });
554
+ else if (definition.type === "method") registerMethod(chain, key, (...args) => {
555
+ if (state.getProperty) definition.value({
556
+ value: state.getProperty(state.value),
557
+ inverted: state.inverted
558
+ })(...args);
559
+ else if (state.every) for (const value of state.value) definition.value({
560
+ ...state,
561
+ value
562
+ })(...args);
563
+ else {
564
+ const result = definition.value({ ...state })(...args);
565
+ if (result) return result;
566
+ }
567
+ return expectChain(state);
568
+ });
569
+ }
570
+ return chain;
571
+ };
572
+ const expect = ((actual) => {
573
+ return expectChain({ value: actual });
574
+ });
575
+ expect.fail = fail;
576
+
577
+ //#endregion
578
+ Object.defineProperty(exports, 'AssertionError', {
579
+ enumerable: true,
580
+ get: function () {
581
+ return hein_assertion_utils.AssertionError;
582
+ }
583
+ });
584
+ exports.any = require_assert.any;
585
+ Object.defineProperty(exports, 'assert', {
586
+ enumerable: true,
587
+ get: function () {
588
+ return require_assert.assert_exports;
589
+ }
590
+ });
591
+ exports.createEvaluation = require_assert.createEvaluation;
592
+ exports.expect = expect;
593
+ exports.expectChain = expectChain;
594
+ exports.fail = fail;
595
+ exports.use = use;
596
+ //# sourceMappingURL=index.cjs.map