assertron 11.5.2 → 11.5.4

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 (240) hide show
  1. package/README.md +7 -7
  2. package/cjs/_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/defineProperty.js +12 -0
  3. package/cjs/_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/toPrimitive.js +14 -0
  4. package/cjs/_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/toPropertyKey.js +9 -0
  5. package/cjs/_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/typeof.js +16 -0
  6. package/cjs/_virtual/_rolldown/runtime.js +23 -0
  7. package/cjs/assert-order/AssertOrder.d.ts +42 -39
  8. package/cjs/assert-order/AssertOrder.d.ts.map +1 -1
  9. package/cjs/assert-order/AssertOrder.js +118 -146
  10. package/cjs/assert-order/AssertOrder.js.map +1 -1
  11. package/cjs/assert-order/InvalidOrder.d.ts +10 -7
  12. package/cjs/assert-order/InvalidOrder.d.ts.map +1 -1
  13. package/cjs/assert-order/InvalidOrder.js +24 -43
  14. package/cjs/assert-order/InvalidOrder.js.map +1 -1
  15. package/cjs/assert-order/StateMachine.js +101 -156
  16. package/cjs/assert-order/StateMachine.js.map +1 -1
  17. package/cjs/assert-order/index.d.ts +4 -4
  18. package/cjs/assert-order/types.d.ts +9 -6
  19. package/cjs/assert-order/types.d.ts.map +1 -1
  20. package/cjs/assertron/assertron.d.ts +23 -20
  21. package/cjs/assertron/assertron.d.ts.map +1 -1
  22. package/cjs/assertron/assertron.js +36 -39
  23. package/cjs/assertron/assertron.js.map +1 -1
  24. package/cjs/assertron/falsy.js +5 -6
  25. package/cjs/assertron/falsy.js.map +1 -1
  26. package/cjs/assertron/index.d.ts +3 -3
  27. package/cjs/assertron/isInstanceof.js +6 -7
  28. package/cjs/assertron/isInstanceof.js.map +1 -1
  29. package/cjs/assertron/pathEqual.js +7 -8
  30. package/cjs/assertron/pathEqual.js.map +1 -1
  31. package/cjs/assertron/rejects.js +8 -8
  32. package/cjs/assertron/rejects.js.map +1 -1
  33. package/cjs/assertron/repeat.js +23 -31
  34. package/cjs/assertron/repeat.js.map +1 -1
  35. package/cjs/assertron/resolves.js +8 -8
  36. package/cjs/assertron/resolves.js.map +1 -1
  37. package/cjs/assertron/satisfies.d.ts +5 -10
  38. package/cjs/assertron/satisfies.d.ts.map +1 -1
  39. package/cjs/assertron/satisfies.js +12 -14
  40. package/cjs/assertron/satisfies.js.map +1 -1
  41. package/cjs/assertron/throws.js +48 -55
  42. package/cjs/assertron/throws.js.map +1 -1
  43. package/cjs/assertron/truthy.js +5 -6
  44. package/cjs/assertron/truthy.js.map +1 -1
  45. package/cjs/errors.d.ts +13 -10
  46. package/cjs/errors.d.ts.map +1 -1
  47. package/cjs/errors.js +19 -29
  48. package/cjs/errors.js.map +1 -1
  49. package/cjs/index.d.ts +10 -8
  50. package/cjs/index.js +98 -37
  51. package/cjs/index.js.map +1 -1
  52. package/cjs/package.json +3 -1
  53. package/cjs/types.d.ts +5 -2
  54. package/cjs/types.d.ts.map +1 -1
  55. package/cjs/utils/index.js +18 -25
  56. package/cjs/utils/index.js.map +1 -1
  57. package/cjs/utils/isErrorConstructor.js +4 -4
  58. package/cjs/utils/isErrorConstructor.js.map +1 -1
  59. package/cjs/utils/notEqualMessage.js +4 -4
  60. package/cjs/utils/notEqualMessage.js.map +1 -1
  61. package/cjs/utils/notSatisfiedMessage.js +14 -23
  62. package/cjs/utils/notSatisfiedMessage.js.map +1 -1
  63. package/cjs/utils/notThrownMessage.js +5 -5
  64. package/cjs/utils/notThrownMessage.js.map +1 -1
  65. package/cjs/utils/promiseMessages.js +7 -13
  66. package/cjs/utils/promiseMessages.js.map +1 -1
  67. package/cjs/utils/unexpectedErrorMessage.js +6 -6
  68. package/cjs/utils/unexpectedErrorMessage.js.map +1 -1
  69. package/esm/_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/defineProperty.js +12 -0
  70. package/esm/_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/toPrimitive.js +14 -0
  71. package/esm/_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/toPropertyKey.js +9 -0
  72. package/esm/_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/typeof.js +11 -0
  73. package/esm/assert-order/AssertOrder.d.ts +42 -39
  74. package/esm/assert-order/AssertOrder.d.ts.map +1 -1
  75. package/esm/assert-order/AssertOrder.js +119 -143
  76. package/esm/assert-order/AssertOrder.js.map +1 -1
  77. package/esm/assert-order/InvalidOrder.d.ts +10 -7
  78. package/esm/assert-order/InvalidOrder.d.ts.map +1 -1
  79. package/esm/assert-order/InvalidOrder.js +24 -39
  80. package/esm/assert-order/InvalidOrder.js.map +1 -1
  81. package/esm/assert-order/StateMachine.js +99 -129
  82. package/esm/assert-order/StateMachine.js.map +1 -1
  83. package/esm/assert-order/index.d.ts +4 -4
  84. package/esm/assert-order/types.d.ts +9 -6
  85. package/esm/assert-order/types.d.ts.map +1 -1
  86. package/esm/assertron/assertron.d.ts +23 -20
  87. package/esm/assertron/assertron.d.ts.map +1 -1
  88. package/esm/assertron/assertron.js +36 -36
  89. package/esm/assertron/assertron.js.map +1 -1
  90. package/esm/assertron/falsy.js +7 -4
  91. package/esm/assertron/falsy.js.map +1 -1
  92. package/esm/assertron/index.d.ts +3 -3
  93. package/esm/assertron/isInstanceof.js +8 -5
  94. package/esm/assertron/isInstanceof.js.map +1 -1
  95. package/esm/assertron/pathEqual.js +9 -6
  96. package/esm/assertron/pathEqual.js.map +1 -1
  97. package/esm/assertron/rejects.js +10 -6
  98. package/esm/assertron/rejects.js.map +1 -1
  99. package/esm/assertron/repeat.js +22 -25
  100. package/esm/assertron/repeat.js.map +1 -1
  101. package/esm/assertron/resolves.js +10 -6
  102. package/esm/assertron/resolves.js.map +1 -1
  103. package/esm/assertron/satisfies.d.ts +5 -10
  104. package/esm/assertron/satisfies.d.ts.map +1 -1
  105. package/esm/assertron/satisfies.js +14 -12
  106. package/esm/assertron/satisfies.js.map +1 -1
  107. package/esm/assertron/throws.js +47 -49
  108. package/esm/assertron/throws.js.map +1 -1
  109. package/esm/assertron/truthy.js +7 -4
  110. package/esm/assertron/truthy.js.map +1 -1
  111. package/esm/errors.d.ts +13 -10
  112. package/esm/errors.d.ts.map +1 -1
  113. package/esm/errors.js +20 -26
  114. package/esm/errors.js.map +1 -1
  115. package/esm/index.d.ts +10 -8
  116. package/esm/index.js +10 -7
  117. package/esm/index.js.map +1 -1
  118. package/esm/types.d.ts +5 -2
  119. package/esm/types.d.ts.map +1 -1
  120. package/esm/utils/index.js +13 -9
  121. package/esm/utils/index.js.map +1 -1
  122. package/esm/utils/isErrorConstructor.js +6 -2
  123. package/esm/utils/isErrorConstructor.js.map +1 -1
  124. package/esm/utils/notEqualMessage.js +6 -2
  125. package/esm/utils/notEqualMessage.js.map +1 -1
  126. package/esm/utils/notSatisfiedMessage.js +15 -20
  127. package/esm/utils/notSatisfiedMessage.js.map +1 -1
  128. package/esm/utils/notThrownMessage.js +7 -3
  129. package/esm/utils/notThrownMessage.js.map +1 -1
  130. package/esm/utils/promiseMessages.js +9 -11
  131. package/esm/utils/promiseMessages.js.map +1 -1
  132. package/esm/utils/unexpectedErrorMessage.js +8 -4
  133. package/esm/utils/unexpectedErrorMessage.js.map +1 -1
  134. package/package.json +43 -68
  135. package/ts/assert-order/AssertOrder.ts +8 -6
  136. package/ts/assert-order/InvalidOrder.ts +4 -6
  137. package/ts/assert-order/StateMachine.ts +11 -7
  138. package/ts/assertron/assertron.ts +9 -19
  139. package/ts/assertron/falsy.ts +1 -2
  140. package/ts/assertron/isInstanceof.ts +1 -4
  141. package/ts/assertron/pathEqual.ts +1 -2
  142. package/ts/assertron/rejects.ts +2 -2
  143. package/ts/assertron/repeat.ts +5 -6
  144. package/ts/assertron/resolves.ts +3 -3
  145. package/ts/assertron/satisfies.ts +2 -4
  146. package/ts/assertron/throws.ts +14 -20
  147. package/ts/assertron/truthy.ts +1 -2
  148. package/ts/errors.ts +5 -1
  149. package/ts/index.ts +2 -2
  150. package/ts/utils/index.ts +1 -1
  151. package/ts/utils/notSatisfiedMessage.ts +2 -2
  152. package/ts/utils/promiseMessages.ts +5 -5
  153. package/cjs/assert-order/StateMachine.d.ts +0 -22
  154. package/cjs/assert-order/StateMachine.d.ts.map +0 -1
  155. package/cjs/assert-order/index.d.ts.map +0 -1
  156. package/cjs/assert-order/index.js +0 -20
  157. package/cjs/assert-order/index.js.map +0 -1
  158. package/cjs/assert-order/types.js +0 -3
  159. package/cjs/assert-order/types.js.map +0 -1
  160. package/cjs/assertron/falsy.d.ts +0 -2
  161. package/cjs/assertron/falsy.d.ts.map +0 -1
  162. package/cjs/assertron/index.d.ts.map +0 -1
  163. package/cjs/assertron/index.js +0 -18
  164. package/cjs/assertron/index.js.map +0 -1
  165. package/cjs/assertron/isInstanceof.d.ts +0 -3
  166. package/cjs/assertron/isInstanceof.d.ts.map +0 -1
  167. package/cjs/assertron/pathEqual.d.ts +0 -2
  168. package/cjs/assertron/pathEqual.d.ts.map +0 -1
  169. package/cjs/assertron/rejects.d.ts +0 -2
  170. package/cjs/assertron/rejects.d.ts.map +0 -1
  171. package/cjs/assertron/repeat.d.ts +0 -6
  172. package/cjs/assertron/repeat.d.ts.map +0 -1
  173. package/cjs/assertron/resolves.d.ts +0 -2
  174. package/cjs/assertron/resolves.d.ts.map +0 -1
  175. package/cjs/assertron/throws.d.ts +0 -6
  176. package/cjs/assertron/throws.d.ts.map +0 -1
  177. package/cjs/assertron/truthy.d.ts +0 -2
  178. package/cjs/assertron/truthy.d.ts.map +0 -1
  179. package/cjs/index.d.ts.map +0 -1
  180. package/cjs/types.js +0 -3
  181. package/cjs/types.js.map +0 -1
  182. package/cjs/utils/index.d.ts +0 -8
  183. package/cjs/utils/index.d.ts.map +0 -1
  184. package/cjs/utils/isErrorConstructor.d.ts +0 -3
  185. package/cjs/utils/isErrorConstructor.d.ts.map +0 -1
  186. package/cjs/utils/notEqualMessage.d.ts +0 -2
  187. package/cjs/utils/notEqualMessage.d.ts.map +0 -1
  188. package/cjs/utils/notSatisfiedMessage.d.ts +0 -3
  189. package/cjs/utils/notSatisfiedMessage.d.ts.map +0 -1
  190. package/cjs/utils/notThrownMessage.d.ts +0 -2
  191. package/cjs/utils/notThrownMessage.d.ts.map +0 -1
  192. package/cjs/utils/promiseMessages.d.ts +0 -3
  193. package/cjs/utils/promiseMessages.d.ts.map +0 -1
  194. package/cjs/utils/unexpectedErrorMessage.d.ts +0 -3
  195. package/cjs/utils/unexpectedErrorMessage.d.ts.map +0 -1
  196. package/esm/assert-order/StateMachine.d.ts +0 -22
  197. package/esm/assert-order/StateMachine.d.ts.map +0 -1
  198. package/esm/assert-order/index.d.ts.map +0 -1
  199. package/esm/assert-order/index.js +0 -4
  200. package/esm/assert-order/index.js.map +0 -1
  201. package/esm/assert-order/types.js +0 -2
  202. package/esm/assert-order/types.js.map +0 -1
  203. package/esm/assertron/falsy.d.ts +0 -2
  204. package/esm/assertron/falsy.d.ts.map +0 -1
  205. package/esm/assertron/index.d.ts.map +0 -1
  206. package/esm/assertron/index.js +0 -2
  207. package/esm/assertron/index.js.map +0 -1
  208. package/esm/assertron/isInstanceof.d.ts +0 -3
  209. package/esm/assertron/isInstanceof.d.ts.map +0 -1
  210. package/esm/assertron/pathEqual.d.ts +0 -2
  211. package/esm/assertron/pathEqual.d.ts.map +0 -1
  212. package/esm/assertron/rejects.d.ts +0 -2
  213. package/esm/assertron/rejects.d.ts.map +0 -1
  214. package/esm/assertron/repeat.d.ts +0 -6
  215. package/esm/assertron/repeat.d.ts.map +0 -1
  216. package/esm/assertron/resolves.d.ts +0 -2
  217. package/esm/assertron/resolves.d.ts.map +0 -1
  218. package/esm/assertron/throws.d.ts +0 -6
  219. package/esm/assertron/throws.d.ts.map +0 -1
  220. package/esm/assertron/truthy.d.ts +0 -2
  221. package/esm/assertron/truthy.d.ts.map +0 -1
  222. package/esm/index.d.ts.map +0 -1
  223. package/esm/types.js +0 -2
  224. package/esm/types.js.map +0 -1
  225. package/esm/utils/index.d.ts +0 -8
  226. package/esm/utils/index.d.ts.map +0 -1
  227. package/esm/utils/isErrorConstructor.d.ts +0 -3
  228. package/esm/utils/isErrorConstructor.d.ts.map +0 -1
  229. package/esm/utils/notEqualMessage.d.ts +0 -2
  230. package/esm/utils/notEqualMessage.d.ts.map +0 -1
  231. package/esm/utils/notSatisfiedMessage.d.ts +0 -3
  232. package/esm/utils/notSatisfiedMessage.d.ts.map +0 -1
  233. package/esm/utils/notThrownMessage.d.ts +0 -2
  234. package/esm/utils/notThrownMessage.d.ts.map +0 -1
  235. package/esm/utils/promiseMessages.d.ts +0 -3
  236. package/esm/utils/promiseMessages.d.ts.map +0 -1
  237. package/esm/utils/unexpectedErrorMessage.d.ts +0 -3
  238. package/esm/utils/unexpectedErrorMessage.d.ts.map +0 -1
  239. package/ts/assert-order/internalInterfaces.ts +0 -5
  240. package/ts/testUtils.ts +0 -81
@@ -1,144 +1,120 @@
1
- import { InvalidOrder } from './InvalidOrder.js';
2
- import { StateMachine } from './StateMachine.js';
3
- // order.atLeast(step, count) // expected to be executed at least `count` times
4
- // order.atMost(step, count) // exected to be executed at most `count` times
5
- export class AssertOrder {
6
- /**
7
- * Gets the current expecting step.
8
- */
9
- get currentStep() {
10
- return this.state.step;
11
- }
12
- constructor(plan) {
13
- Object.defineProperty(this, "state", {
14
- enumerable: true,
15
- configurable: true,
16
- writable: true,
17
- value: void 0
18
- });
19
- this.state = new StateMachine(plan);
20
- }
21
- /**
22
- * Asserts the current step is `step`.
23
- * @param step expected step.
24
- */
25
- is(step) {
26
- this.assert('is', step);
27
- }
28
- /**
29
- * Asserts the current step is not `step`.
30
- * @param step not expected step.
31
- */
32
- not(step) {
33
- if (this.state.isValid(step)) {
34
- throw new InvalidOrder(this.state.get(), 'not', [step], { ssf: this.not });
35
- }
36
- }
37
- /**
38
- * Reset to specified step.
39
- */
40
- jump(step) {
41
- this.state.jump(step);
42
- }
43
- /**
44
- * Move to next step.
45
- */
46
- move() {
47
- this.state.move();
48
- }
49
- /**
50
- * Asserts the specified step will run once.
51
- */
52
- once(step) {
53
- this.assert('once', step);
54
- this.state.move();
55
- }
56
- on(step, assert) {
57
- this.state.on(step, () => {
58
- assert(step);
59
- });
60
- }
61
- atLeastOnce(step) {
62
- const nextStep = step + 1;
63
- if (this.state.step === step) {
64
- this.state.move();
65
- return this.state.moveSubStep();
66
- }
67
- else if (this.state.step === nextStep && this.state.subStep > 0) {
68
- return this.state.moveSubStep();
69
- }
70
- else
71
- throw new InvalidOrder(this.state.get(), 'atLeastOnce', [step], { ssf: this.atLeastOnce });
72
- }
73
- any(steps, handler) {
74
- const index = steps.indexOf(this.state.step);
75
- if (index === -1)
76
- throw new InvalidOrder(this.state.get(), 'any', [steps], { ssf: this.any });
77
- if (handler)
78
- handler(steps[index]);
79
- this.state.move();
80
- return steps[index];
81
- }
82
- // false positive on `step: number`
83
- // eslint-disable-next-line
84
- onAny(steps, ...asserts) {
85
- steps.forEach(step => {
86
- this.state.on(step, () => {
87
- let firstError;
88
- let hasPass = false;
89
- asserts.forEach(assert => {
90
- try {
91
- assert(step);
92
- hasPass = true;
93
- }
94
- catch (err) {
95
- if (!firstError)
96
- firstError = err;
97
- }
98
- });
99
- if (!hasPass)
100
- throw firstError;
101
- });
102
- });
103
- return;
104
- }
105
- end(timeout) {
106
- if (timeout) {
107
- return new Promise(r => {
108
- setTimeout(r, timeout);
109
- }).then(() => {
110
- return this.end();
111
- });
112
- }
113
- if (!this.state.isMaxStepDefined()) {
114
- this.state.stopAccepting();
115
- return this.state.getTimeTaken();
116
- }
117
- if (this.state.isAccepting()) {
118
- throw new InvalidOrder(this.state.get(), 'end', [], { ssf: this.end });
119
- }
120
- }
121
- exactly(step, times) {
122
- if (this.state.isNotValid(step))
123
- throw new InvalidOrder(this.state.get(), 'exactly', [step, times], { ssf: this.exactly });
124
- if (this.state.maxSubStep === undefined) {
125
- this.state.maxSubStep = times;
126
- this.state.minSubStep = times;
127
- }
128
- return this.state.moveSubStep();
129
- }
130
- wait(step, callback) {
131
- if (callback)
132
- this.on(step, callback);
133
- else
134
- return new Promise(a => {
135
- this.on(step, a);
136
- });
137
- }
138
- assert(method, step) {
139
- if (this.state.isNotValid(step)) {
140
- throw new InvalidOrder(this.state.get(), method, [step], { ssf: this[method] });
141
- }
142
- }
143
- }
1
+ import { InvalidOrder } from "./InvalidOrder.js";
2
+ import _defineProperty from "../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/defineProperty.js";
3
+ import { StateMachine } from "./StateMachine.js";
4
+ //#region ts/assert-order/AssertOrder.ts
5
+ var AssertOrder = class {
6
+ /**
7
+ * Gets the current expecting step.
8
+ */
9
+ get currentStep() {
10
+ return this.state.step;
11
+ }
12
+ constructor(plan) {
13
+ _defineProperty(this, "state", void 0);
14
+ this.state = new StateMachine(plan);
15
+ }
16
+ /**
17
+ * Asserts the current step is `step`.
18
+ * @param step expected step.
19
+ */
20
+ is(step) {
21
+ this.assert("is", step);
22
+ }
23
+ /**
24
+ * Asserts the current step is not `step`.
25
+ * @param step not expected step.
26
+ */
27
+ not(step) {
28
+ if (this.state.isValid(step)) throw new InvalidOrder(this.state.get(), "not", [step], { ssf: this.not });
29
+ }
30
+ /**
31
+ * Reset to specified step.
32
+ */
33
+ jump(step) {
34
+ this.state.jump(step);
35
+ }
36
+ /**
37
+ * Move to next step.
38
+ */
39
+ move() {
40
+ this.state.move();
41
+ }
42
+ /**
43
+ * Asserts the specified step will run once.
44
+ */
45
+ once(step) {
46
+ this.assert("once", step);
47
+ this.state.move();
48
+ }
49
+ on(step, assert) {
50
+ this.state.on(step, () => {
51
+ assert(step);
52
+ });
53
+ }
54
+ atLeastOnce(step) {
55
+ const nextStep = step + 1;
56
+ if (this.state.step === step) {
57
+ this.state.move();
58
+ return this.state.moveSubStep();
59
+ }
60
+ if (this.state.step === nextStep && this.state.subStep > 0) return this.state.moveSubStep();
61
+ throw new InvalidOrder(this.state.get(), "atLeastOnce", [step], { ssf: this.atLeastOnce });
62
+ }
63
+ any(steps, handler) {
64
+ const index = steps.indexOf(this.state.step);
65
+ if (index === -1) throw new InvalidOrder(this.state.get(), "any", [steps], { ssf: this.any });
66
+ if (handler) handler(steps[index]);
67
+ this.state.move();
68
+ return steps[index];
69
+ }
70
+ onAny(steps, ...asserts) {
71
+ steps.forEach((step) => {
72
+ this.state.on(step, () => {
73
+ let firstError;
74
+ let hasPass = false;
75
+ asserts.forEach((assert) => {
76
+ try {
77
+ assert(step);
78
+ hasPass = true;
79
+ } catch (err) {
80
+ if (!firstError) firstError = err;
81
+ }
82
+ });
83
+ if (!hasPass) throw firstError;
84
+ });
85
+ });
86
+ }
87
+ end(timeout) {
88
+ if (timeout) return new Promise((r) => {
89
+ setTimeout(r, timeout);
90
+ }).then(() => {
91
+ return this.end();
92
+ });
93
+ if (!this.state.isMaxStepDefined()) {
94
+ this.state.stopAccepting();
95
+ return this.state.getTimeTaken();
96
+ }
97
+ if (this.state.isAccepting()) throw new InvalidOrder(this.state.get(), "end", [], { ssf: this.end });
98
+ }
99
+ exactly(step, times) {
100
+ if (this.state.isNotValid(step)) throw new InvalidOrder(this.state.get(), "exactly", [step, times], { ssf: this.exactly });
101
+ if (this.state.maxSubStep === void 0) {
102
+ this.state.maxSubStep = times;
103
+ this.state.minSubStep = times;
104
+ }
105
+ return this.state.moveSubStep();
106
+ }
107
+ wait(step, callback) {
108
+ if (callback) this.on(step, callback);
109
+ else return new Promise((a) => {
110
+ this.on(step, a);
111
+ });
112
+ }
113
+ assert(method, step) {
114
+ if (this.state.isNotValid(step)) throw new InvalidOrder(this.state.get(), method, [step], { ssf: this[method] });
115
+ }
116
+ };
117
+ //#endregion
118
+ export { AssertOrder };
119
+
144
120
  //# sourceMappingURL=AssertOrder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AssertOrder.js","sourceRoot":"","sources":["../../ts/assert-order/AssertOrder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AssertOrder.js","names":[],"sources":["../../ts/assert-order/AssertOrder.ts"],"sourcesContent":["import { InvalidOrder } from './InvalidOrder.js'\nimport { StateMachine } from './StateMachine.js'\n\n// order.atLeast(step, count) // expected to be executed at least `count` times\n// order.atMost(step, count) // exected to be executed at most `count` times\n\nexport class AssertOrder {\n\t/**\n\t * Gets the current expecting step.\n\t */\n\tget currentStep() {\n\t\treturn this.state.step\n\t}\n\n\tprivate state: StateMachine\n\tconstructor(plan?: number) {\n\t\tthis.state = new StateMachine(plan)\n\t}\n\n\t/**\n\t * Asserts the current step is `step`.\n\t * @param step expected step.\n\t */\n\tis(step: number) {\n\t\tthis.assert('is', step)\n\t}\n\n\t/**\n\t * Asserts the current step is not `step`.\n\t * @param step not expected step.\n\t */\n\tnot(step: number) {\n\t\tif (this.state.isValid(step)) {\n\t\t\tthrow new InvalidOrder(this.state.get(), 'not', [step], { ssf: this.not })\n\t\t}\n\t}\n\n\t/**\n\t * Reset to specified step.\n\t */\n\tjump(step: number) {\n\t\tthis.state.jump(step)\n\t}\n\n\t/**\n\t * Move to next step.\n\t */\n\tmove() {\n\t\tthis.state.move()\n\t}\n\n\t/**\n\t * Asserts the specified step will run once.\n\t */\n\tonce(step: number) {\n\t\tthis.assert('once', step)\n\t\tthis.state.move()\n\t}\n\n\ton(step: number, assert: (step: number) => void) {\n\t\tthis.state.on(step, () => {\n\t\t\tassert(step)\n\t\t})\n\t}\n\n\tatLeastOnce(step: number) {\n\t\tconst nextStep = step + 1\n\t\tif (this.state.step === step) {\n\t\t\tthis.state.move()\n\t\t\treturn this.state.moveSubStep()\n\t\t}\n\t\tif (this.state.step === nextStep && this.state.subStep > 0) {\n\t\t\treturn this.state.moveSubStep()\n\t\t}\n\t\tthrow new InvalidOrder(this.state.get(), 'atLeastOnce', [step], { ssf: this.atLeastOnce })\n\t}\n\n\tany(steps: number[], handler?: (step: number) => void) {\n\t\tconst index = steps.indexOf(this.state.step)\n\t\tif (index === -1) throw new InvalidOrder(this.state.get(), 'any', [steps], { ssf: this.any })\n\t\tif (handler) handler(steps[index])\n\n\t\tthis.state.move()\n\t\treturn steps[index]\n\t}\n\t// false positive on `step: number`\n\t// eslint-disable-next-line\n\tonAny(steps: number[], ...asserts: Array<(step: number) => unknown>) {\n\t\tsteps.forEach((step) => {\n\t\t\tthis.state.on(step, () => {\n\t\t\t\tlet firstError: any\n\t\t\t\tlet hasPass = false\n\t\t\t\tasserts.forEach((assert) => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tassert(step)\n\t\t\t\t\t\thasPass = true\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tif (!firstError) firstError = err\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\tif (!hasPass) throw firstError\n\t\t\t})\n\t\t})\n\t\treturn\n\t}\n\tend(timeout: number): Promise<number>\n\tend(): number\n\tend(timeout?: number) {\n\t\tif (timeout) {\n\t\t\treturn new Promise((r) => {\n\t\t\t\tsetTimeout(r, timeout)\n\t\t\t}).then(() => {\n\t\t\t\treturn this.end()\n\t\t\t})\n\t\t}\n\n\t\tif (!this.state.isMaxStepDefined()) {\n\t\t\tthis.state.stopAccepting()\n\t\t\treturn this.state.getTimeTaken()\n\t\t}\n\n\t\tif (this.state.isAccepting()) {\n\t\t\tthrow new InvalidOrder(this.state.get(), 'end', [], { ssf: this.end })\n\t\t}\n\t}\n\texactly(step: number, times: number) {\n\t\tif (this.state.isNotValid(step))\n\t\t\tthrow new InvalidOrder(this.state.get(), 'exactly', [step, times], { ssf: this.exactly })\n\n\t\tif (this.state.maxSubStep === undefined) {\n\t\t\tthis.state.maxSubStep = times\n\t\t\tthis.state.minSubStep = times\n\t\t}\n\n\t\treturn this.state.moveSubStep()\n\t}\n\twait(step: number): Promise<void>\n\twait(step: number, callback: () => void): void\n\twait(step: number, callback?: () => void) {\n\t\tif (callback) this.on(step, callback)\n\t\telse\n\t\t\treturn new Promise<any>((a) => {\n\t\t\t\tthis.on(step, a)\n\t\t\t})\n\t}\n\tprivate assert(method: string, step: number) {\n\t\tif (this.state.isNotValid(step)) {\n\t\t\tthrow new InvalidOrder(this.state.get(), method, [step], { ssf: (this as any)[method] })\n\t\t}\n\t}\n}\n"],"mappings":"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"}
@@ -1,9 +1,12 @@
1
- import { AssertionError } from '../errors.js';
2
- import type { State } from './types.js';
3
- export declare class InvalidOrder extends AssertionError {
4
- state: State;
5
- method: string;
6
- args: any[];
7
- constructor(state: State, method: string, args: any[], options: AssertionError.Options);
1
+ import { AssertionError } from "../errors.js";
2
+ import { State } from "./types.js";
3
+ //#region ts/assert-order/InvalidOrder.d.ts
4
+ declare class InvalidOrder extends AssertionError {
5
+ state: State;
6
+ method: string;
7
+ args: any[];
8
+ constructor(state: State, method: string, args: any[], options: AssertionError.Options);
8
9
  }
10
+ //#endregion
11
+ export { InvalidOrder };
9
12
  //# sourceMappingURL=InvalidOrder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InvalidOrder.d.ts","sourceRoot":"","sources":["../../ts/assert-order/InvalidOrder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAEvC,qBAAa,YAAa,SAAQ,cAAc;IAEvC,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,GAAG,EAAE;gBAFX,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,GAAG,EAAE,EAClB,OAAO,EAAE,cAAc,CAAC,OAAO;CAIhC"}
1
+ {"version":3,"file":"InvalidOrder.d.ts","names":[],"sources":["../../ts/assert-order/InvalidOrder.ts"],"mappings":";;;cAGa,qBAAqB;EAEzB,OAAO;EACP;EACA;EAHR,YACQ,OAAO,OACP,gBACA,aACP,SAAS,eAAe"}
@@ -1,48 +1,33 @@
1
- import { AssertionError } from '../errors.js';
2
- export class InvalidOrder extends AssertionError {
3
- constructor(state, method, args, options) {
4
- super(method === 'end' ? getEndMessage(state) : getExpectingMessage(state, method, args), options);
5
- Object.defineProperty(this, "state", {
6
- enumerable: true,
7
- configurable: true,
8
- writable: true,
9
- value: state
10
- });
11
- Object.defineProperty(this, "method", {
12
- enumerable: true,
13
- configurable: true,
14
- writable: true,
15
- value: method
16
- });
17
- Object.defineProperty(this, "args", {
18
- enumerable: true,
19
- configurable: true,
20
- writable: true,
21
- value: args
22
- });
23
- }
24
- }
1
+ import { AssertionError } from "../errors.js";
2
+ //#region ts/assert-order/InvalidOrder.ts
3
+ var InvalidOrder = class extends AssertionError {
4
+ constructor(state, method, args, options) {
5
+ super(method === "end" ? getEndMessage(state) : getExpectingMessage(state, method, args), options);
6
+ this.state = state;
7
+ this.method = method;
8
+ this.args = args;
9
+ }
10
+ };
25
11
  function getEndMessage(state) {
26
- return `Planned for ${state.maxStep} step but expecting step ${state.step} when 'end()' is called`;
12
+ return `Planned for ${state.maxStep} step but expecting step ${state.step} when 'end()' is called`;
27
13
  }
28
14
  function getExpectingMessage(state, method, args) {
29
- return `Expecting ${getExpectingCalls(state)}, but received '${method}(${getMethodArgs(args)})'`;
15
+ return `Expecting ${getExpectingCalls(state)}, but received '${method}(${getMethodArgs(args)})'`;
30
16
  }
31
17
  function getExpectingCalls(state) {
32
- let message;
33
- if (state.subStep === 0) {
34
- const methods = ['is', 'once', 'any'];
35
- message = methods
36
- .map(m => `'${m}(${['any'].indexOf(m) === -1 ? state.step : `[${state.step}]`})'`)
37
- .join(', ');
38
- }
39
- else {
40
- const methods = ['exactly'];
41
- message = methods.map(m => `'${m}(${state.step}, ${state.maxSubStep})'`).join(', ');
42
- }
43
- return message;
18
+ let message;
19
+ if (state.subStep === 0) message = [
20
+ "is",
21
+ "once",
22
+ "any"
23
+ ].map((m) => `'${m}(${["any"].indexOf(m) === -1 ? state.step : `[${state.step}]`})'`).join(", ");
24
+ else message = ["exactly"].map((m) => `'${m}(${state.step}, ${state.maxSubStep})'`).join(", ");
25
+ return message;
44
26
  }
45
27
  function getMethodArgs(args) {
46
- return args.map(a => (Array.isArray(a) ? `[${a.join(', ')}]` : a)).join(', ');
28
+ return args.map((a) => Array.isArray(a) ? `[${a.join(", ")}]` : a).join(", ");
47
29
  }
30
+ //#endregion
31
+ export { InvalidOrder };
32
+
48
33
  //# sourceMappingURL=InvalidOrder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InvalidOrder.js","sourceRoot":"","sources":["../../ts/assert-order/InvalidOrder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAG7C,MAAM,OAAO,YAAa,SAAQ,cAAc;IAC/C,YACQ,KAAY,EACZ,MAAc,EACd,IAAW,EAClB,OAA+B;QAE/B,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAA;QALlG;;;;mBAAO,KAAK;WAAO;QACnB;;;;mBAAO,MAAM;WAAQ;QACrB;;;;mBAAO,IAAI;WAAO;IAInB,CAAC;CACD;AAED,SAAS,aAAa,CAAC,KAAY;IAClC,OAAO,eAAe,KAAK,CAAC,OAAO,4BAA4B,KAAK,CAAC,IAAI,yBAAyB,CAAA;AACnG,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAY,EAAE,MAAc,EAAE,IAAW;IACrE,OAAO,aAAa,iBAAiB,CAAC,KAAK,CAAC,mBAAmB,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAA;AACjG,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAY;IACtC,IAAI,OAAe,CAAA;IACnB,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,EAAE;QACxB,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;QACrC,OAAO,GAAG,OAAO;aACf,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;aACjF,IAAI,CAAC,IAAI,CAAC,CAAA;KACZ;SAAM;QACN,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,CAAA;QAC3B,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KACnF;IACD,OAAO,OAAO,CAAA;AACf,CAAC;AAED,SAAS,aAAa,CAAC,IAAW;IACjC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC9E,CAAC"}
1
+ {"version":3,"file":"InvalidOrder.js","names":[],"sources":["../../ts/assert-order/InvalidOrder.ts"],"sourcesContent":["import { AssertionError } from '../errors.js'\nimport type { State } from './types.js'\n\nexport class InvalidOrder extends AssertionError {\n\tconstructor(\n\t\tpublic state: State,\n\t\tpublic method: string,\n\t\tpublic args: any[],\n\t\toptions: AssertionError.Options,\n\t) {\n\t\tsuper(method === 'end' ? getEndMessage(state) : getExpectingMessage(state, method, args), options)\n\t}\n}\n\nfunction getEndMessage(state: State) {\n\treturn `Planned for ${state.maxStep} step but expecting step ${state.step} when 'end()' is called`\n}\n\nfunction getExpectingMessage(state: State, method: string, args: any[]) {\n\treturn `Expecting ${getExpectingCalls(state)}, but received '${method}(${getMethodArgs(args)})'`\n}\n\nfunction getExpectingCalls(state: State) {\n\tlet message: string\n\tif (state.subStep === 0) {\n\t\tconst methods = ['is', 'once', 'any']\n\t\tmessage = methods.map((m) => `'${m}(${['any'].indexOf(m) === -1 ? state.step : `[${state.step}]`})'`).join(', ')\n\t} else {\n\t\tconst methods = ['exactly']\n\t\tmessage = methods.map((m) => `'${m}(${state.step}, ${state.maxSubStep})'`).join(', ')\n\t}\n\treturn message\n}\n\nfunction getMethodArgs(args: any[]) {\n\treturn args.map((a) => (Array.isArray(a) ? `[${a.join(', ')}]` : a)).join(', ')\n}\n"],"mappings":";;AAGA,IAAa,eAAb,cAAkC,eAAe;CAChD,YACC,OACA,QACA,MACA,SACC;EACD,MAAM,WAAW,QAAQ,cAAc,KAAK,IAAI,oBAAoB,OAAO,QAAQ,IAAI,GAAG,OAAO;EAL1F,KAAA,QAAA;EACA,KAAA,SAAA;EACA,KAAA,OAAA;CAIR;AACD;AAEA,SAAS,cAAc,OAAc;CACpC,OAAO,eAAe,MAAM,QAAQ,2BAA2B,MAAM,KAAK;AAC3E;AAEA,SAAS,oBAAoB,OAAc,QAAgB,MAAa;CACvE,OAAO,aAAa,kBAAkB,KAAK,EAAE,kBAAkB,OAAO,GAAG,cAAc,IAAI,EAAE;AAC9F;AAEA,SAAS,kBAAkB,OAAc;CACxC,IAAI;CACJ,IAAI,MAAM,YAAY,GAErB,UAAU;EADO;EAAM;EAAQ;CACf,CAAC,CAAC,KAAK,MAAM,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,MAAM,OAAO,IAAI,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI;MAG/G,UAAU,CADO,SACD,CAAC,CAAC,KAAK,MAAM,IAAI,EAAE,GAAG,MAAM,KAAK,IAAI,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,IAAI;CAErF,OAAO;AACR;AAEA,SAAS,cAAc,MAAa;CACnC,OAAO,KAAK,KAAK,MAAO,MAAM,QAAQ,CAAC,IAAI,IAAI,EAAE,KAAK,IAAI,EAAE,KAAK,CAAE,CAAC,CAAC,KAAK,IAAI;AAC/E"}
@@ -1,132 +1,102 @@
1
- import * as perf from 'perf_hooks';
1
+ import _defineProperty from "../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/defineProperty.js";
2
+ import * as perf from "perf_hooks";
3
+ //#region ts/assert-order/StateMachine.ts
2
4
  let timeTracker;
3
- if (typeof globalThis.process?.hrtime === 'function') {
4
- let tick;
5
- timeTracker = {
6
- start() {
7
- tick = globalThis.process.hrtime();
8
- },
9
- taken() {
10
- const [second, nanoSecond] = globalThis.process.hrtime(tick);
11
- return second * 1000 + nanoSecond / 1e6;
12
- }
13
- };
14
- }
15
- else if (perf.performance && typeof perf.performance.now === 'function') {
16
- const now = perf.performance.now;
17
- let tick;
18
- timeTracker = {
19
- start() {
20
- tick = now();
21
- },
22
- taken() {
23
- return now() - tick;
24
- }
25
- };
26
- }
27
- else {
28
- let tick;
29
- timeTracker = {
30
- start() {
31
- tick = new Date().valueOf();
32
- },
33
- taken() {
34
- return new Date().valueOf() - tick;
35
- }
36
- };
37
- }
38
- export class StateMachine {
39
- constructor(maxStep) {
40
- Object.defineProperty(this, "listeners", {
41
- enumerable: true,
42
- configurable: true,
43
- writable: true,
44
- value: {}
45
- });
46
- Object.defineProperty(this, "step", {
47
- enumerable: true,
48
- configurable: true,
49
- writable: true,
50
- value: 1
51
- });
52
- Object.defineProperty(this, "maxStep", {
53
- enumerable: true,
54
- configurable: true,
55
- writable: true,
56
- value: void 0
57
- });
58
- Object.defineProperty(this, "subStep", {
59
- enumerable: true,
60
- configurable: true,
61
- writable: true,
62
- value: 0
63
- });
64
- Object.defineProperty(this, "minSubStep", {
65
- enumerable: true,
66
- configurable: true,
67
- writable: true,
68
- value: void 0
69
- });
70
- Object.defineProperty(this, "maxSubStep", {
71
- enumerable: true,
72
- configurable: true,
73
- writable: true,
74
- value: void 0
75
- });
76
- this.maxStep = maxStep;
77
- timeTracker.start();
78
- }
79
- jump(step) {
80
- this.step = step;
81
- this.subStep = 0;
82
- return this.step;
83
- }
84
- move() {
85
- const listeners = this.listeners[this.step];
86
- this.step = this.step + 1;
87
- this.subStep = 0;
88
- if (listeners) {
89
- listeners.forEach(l => l());
90
- }
91
- return this.step;
92
- }
93
- moveSubStep() {
94
- const subStep = ++this.subStep;
95
- if (this.maxSubStep === this.subStep)
96
- this.move();
97
- return subStep;
98
- }
99
- get() {
100
- const { step, subStep, maxStep, minSubStep, maxSubStep } = this;
101
- return {
102
- step,
103
- maxStep,
104
- subStep,
105
- minSubStep,
106
- maxSubStep
107
- };
108
- }
109
- on(step, listener) {
110
- this.listeners[step] = [listener];
111
- }
112
- isNotValid(step) {
113
- return step !== this.step || (this.maxStep !== undefined && this.maxStep < step);
114
- }
115
- isValid(step) {
116
- return step === this.step;
117
- }
118
- isMaxStepDefined() {
119
- return this.maxStep !== undefined;
120
- }
121
- stopAccepting() {
122
- this.maxStep = this.step - 1;
123
- }
124
- isAccepting() {
125
- // istanbul ignore next
126
- return this.maxStep ? this.maxStep >= this.step : true;
127
- }
128
- getTimeTaken() {
129
- return timeTracker.taken();
130
- }
5
+ if (typeof globalThis.process?.hrtime === "function") {
6
+ let tick;
7
+ timeTracker = {
8
+ start() {
9
+ tick = globalThis.process.hrtime();
10
+ },
11
+ taken() {
12
+ const [second, nanoSecond] = globalThis.process.hrtime(tick);
13
+ return second * 1e3 + nanoSecond / 1e6;
14
+ }
15
+ };
16
+ } else if (perf.performance && typeof perf.performance.now === "function") {
17
+ const now = perf.performance.now;
18
+ let tick;
19
+ timeTracker = {
20
+ start() {
21
+ tick = now();
22
+ },
23
+ taken() {
24
+ return now() - tick;
25
+ }
26
+ };
27
+ } else {
28
+ let tick;
29
+ timeTracker = {
30
+ start() {
31
+ tick = Date.now();
32
+ },
33
+ taken() {
34
+ return Date.now() - tick;
35
+ }
36
+ };
131
37
  }
38
+ var StateMachine = class {
39
+ constructor(maxStep) {
40
+ _defineProperty(this, "listeners", {});
41
+ _defineProperty(this, "step", 1);
42
+ _defineProperty(this, "maxStep", void 0);
43
+ _defineProperty(this, "subStep", 0);
44
+ _defineProperty(this, "minSubStep", void 0);
45
+ _defineProperty(this, "maxSubStep", void 0);
46
+ this.maxStep = maxStep;
47
+ timeTracker.start();
48
+ }
49
+ jump(step) {
50
+ this.step = step;
51
+ this.subStep = 0;
52
+ return this.step;
53
+ }
54
+ move() {
55
+ const listeners = this.listeners[this.step];
56
+ this.step = this.step + 1;
57
+ this.subStep = 0;
58
+ if (listeners) for (const l of listeners) l();
59
+ return this.step;
60
+ }
61
+ moveSubStep() {
62
+ const subStep = ++this.subStep;
63
+ if (this.maxSubStep === this.subStep) this.move();
64
+ return subStep;
65
+ }
66
+ get() {
67
+ const { step, subStep, maxStep, minSubStep, maxSubStep } = this;
68
+ return {
69
+ step,
70
+ maxStep,
71
+ subStep,
72
+ minSubStep,
73
+ maxSubStep
74
+ };
75
+ }
76
+ on(step, listener) {
77
+ this.listeners[step] = [listener];
78
+ }
79
+ isNotValid(step) {
80
+ return step !== this.step || this.maxStep !== void 0 && this.maxStep < step;
81
+ }
82
+ isValid(step) {
83
+ return step === this.step;
84
+ }
85
+ isMaxStepDefined() {
86
+ return this.maxStep !== void 0;
87
+ }
88
+ stopAccepting() {
89
+ this.maxStep = this.step - 1;
90
+ }
91
+ isAccepting() {
92
+ // istanbul ignore next
93
+ return this.maxStep ? this.maxStep >= this.step : true;
94
+ }
95
+ getTimeTaken() {
96
+ return timeTracker.taken();
97
+ }
98
+ };
99
+ //#endregion
100
+ export { StateMachine };
101
+
132
102
  //# sourceMappingURL=StateMachine.js.map