@haibun/core 1.46.1 → 1.46.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (347) hide show
  1. package/build/lib/Logger.test.js.map +1 -1
  2. package/build/lib/test/lib.d.ts.map +1 -1
  3. package/build/lib/test/lib.js +1 -2
  4. package/build/lib/test/lib.js.map +1 -1
  5. package/build/steps/haibun.d.ts.map +1 -1
  6. package/build/steps/haibun.js.map +1 -1
  7. package/build/steps/vars.d.ts +5 -6
  8. package/build/steps/vars.d.ts.map +1 -1
  9. package/build/steps/vars.js.map +1 -1
  10. package/package.json +1 -1
  11. package/build/applyEffectFeatures.d.ts +0 -3
  12. package/build/applyEffectFeatures.d.ts.map +0 -1
  13. package/build/applyEffectFeatures.js +0 -32
  14. package/build/applyEffectFeatures.js.map +0 -1
  15. package/build/currentVersion.d.ts +0 -2
  16. package/build/currentVersion.d.ts.map +0 -1
  17. package/build/currentVersion.js +0 -1
  18. package/build/currentVersion.js.map +0 -1
  19. package/build/index.d.ts +0 -2
  20. package/build/index.d.ts.map +0 -1
  21. package/build/index.js +0 -2
  22. package/build/index.js.map +0 -1
  23. package/build/lib/ConnectedLogger.d.ts +0 -13
  24. package/build/lib/ConnectedLogger.d.ts.map +0 -1
  25. package/build/lib/ConnectedLogger.js +0 -22
  26. package/build/lib/ConnectedLogger.js.map +0 -1
  27. package/build/lib/Logger.d.ts +0 -47
  28. package/build/lib/Logger.d.ts.map +0 -1
  29. package/build/lib/Logger.js +0 -79
  30. package/build/lib/Logger.js.map +0 -1
  31. package/build/lib/Logger.test.d.ts +0 -2
  32. package/build/lib/TestLogger.d.ts +0 -11
  33. package/build/lib/TestLogger.d.ts.map +0 -1
  34. package/build/lib/TestLogger.js +0 -11
  35. package/build/lib/TestLogger.js.map +0 -1
  36. package/build/lib/Timer.d.ts +0 -8
  37. package/build/lib/Timer.d.ts.map +0 -1
  38. package/build/lib/Timer.js +0 -12
  39. package/build/lib/Timer.js.map +0 -1
  40. package/build/lib/contexts.d.ts +0 -22
  41. package/build/lib/contexts.d.ts.map +0 -1
  42. package/build/lib/contexts.js +0 -36
  43. package/build/lib/contexts.js.map +0 -1
  44. package/build/lib/defs.d.ts +0 -261
  45. package/build/lib/defs.d.ts.map +0 -1
  46. package/build/lib/defs.js +0 -50
  47. package/build/lib/defs.js.map +0 -1
  48. package/build/lib/domain-types.d.ts +0 -13
  49. package/build/lib/domain-types.d.ts.map +0 -1
  50. package/build/lib/domain-types.js +0 -7
  51. package/build/lib/domain-types.js.map +0 -1
  52. package/build/lib/features.d.ts +0 -23
  53. package/build/lib/features.d.ts.map +0 -1
  54. package/build/lib/features.js +0 -100
  55. package/build/lib/features.js.map +0 -1
  56. package/build/lib/features.test.d.ts +0 -2
  57. package/build/lib/features.test.js +0 -112
  58. package/build/lib/features.test.js.map +0 -1
  59. package/build/lib/interfaces/artifacts.d.ts +0 -48
  60. package/build/lib/interfaces/artifacts.d.ts.map +0 -1
  61. package/build/lib/interfaces/artifacts.js +0 -2
  62. package/build/lib/interfaces/artifacts.js.map +0 -1
  63. package/build/lib/interfaces/logger.d.ts +0 -55
  64. package/build/lib/interfaces/logger.d.ts.map +0 -1
  65. package/build/lib/interfaces/logger.js +0 -17
  66. package/build/lib/interfaces/logger.js.map +0 -1
  67. package/build/lib/interfaces/messageContexts.d.ts +0 -10
  68. package/build/lib/interfaces/messageContexts.d.ts.map +0 -1
  69. package/build/lib/interfaces/messageContexts.js +0 -2
  70. package/build/lib/interfaces/messageContexts.js.map +0 -1
  71. package/build/lib/namedVars.d.ts +0 -20
  72. package/build/lib/namedVars.d.ts.map +0 -1
  73. package/build/lib/namedVars.js +0 -138
  74. package/build/lib/namedVars.js.map +0 -1
  75. package/build/lib/namedVars.test.d.ts +0 -2
  76. package/build/lib/namedVars.test.js +0 -106
  77. package/build/lib/namedVars.test.js.map +0 -1
  78. package/build/lib/resolver-features.d.ts +0 -18
  79. package/build/lib/resolver-features.d.ts.map +0 -1
  80. package/build/lib/resolver-features.js +0 -12
  81. package/build/lib/resolver-features.js.map +0 -1
  82. package/build/lib/test/SetTimeStepper.d.ts +0 -10
  83. package/build/lib/test/SetTimeStepper.d.ts.map +0 -1
  84. package/build/lib/test/SetTimeStepper.js +0 -20
  85. package/build/lib/test/SetTimeStepper.js.map +0 -1
  86. package/build/lib/test/TestSteps.d.ts +0 -33
  87. package/build/lib/test/TestSteps.d.ts.map +0 -1
  88. package/build/lib/test/TestSteps.js +0 -32
  89. package/build/lib/test/TestSteps.js.map +0 -1
  90. package/build/lib/test/TestStepsWithOptions.d.ts +0 -25
  91. package/build/lib/test/TestStepsWithOptions.d.ts.map +0 -1
  92. package/build/lib/test/TestStepsWithOptions.js +0 -22
  93. package/build/lib/test/TestStepsWithOptions.js.map +0 -1
  94. package/build/lib/test/lib.d.ts +0 -26
  95. package/build/lib/test/lib.test.d.ts +0 -2
  96. package/build/lib/test/lib.test.d.ts.map +0 -1
  97. package/build/lib/test/lib.test.js +0 -9
  98. package/build/lib/test/lib.test.js.map +0 -1
  99. package/build/lib/util/index.d.ts +0 -81
  100. package/build/lib/util/index.d.ts.map +0 -1
  101. package/build/lib/util/index.js +0 -252
  102. package/build/lib/util/index.js.map +0 -1
  103. package/build/lib/util/util.test.d.ts +0 -2
  104. package/build/lib/util/util.test.d.ts.map +0 -1
  105. package/build/lib/util/util.test.js +0 -238
  106. package/build/lib/util/util.test.js.map +0 -1
  107. package/build/lib/util/workspace-lib.d.ts +0 -15
  108. package/build/lib/util/workspace-lib.d.ts.map +0 -1
  109. package/build/lib/util/workspace-lib.js +0 -47
  110. package/build/lib/util/workspace-lib.js.map +0 -1
  111. package/build/lib/util/workspace-lib.test.d.ts +0 -2
  112. package/build/lib/util/workspace-lib.test.d.ts.map +0 -1
  113. package/build/lib/util/workspace-lib.test.js +0 -20
  114. package/build/lib/util/workspace-lib.test.js.map +0 -1
  115. package/build/phases/Executor.d.ts +0 -20
  116. package/build/phases/Executor.d.ts.map +0 -1
  117. package/build/phases/Executor.js +0 -150
  118. package/build/phases/Executor.js.map +0 -1
  119. package/build/phases/Resolver.d.ts +0 -15
  120. package/build/phases/Resolver.d.ts.map +0 -1
  121. package/build/phases/Resolver.js +0 -93
  122. package/build/phases/Resolver.js.map +0 -1
  123. package/build/phases/Resolver.test.d.ts +0 -2
  124. package/build/phases/Resolver.test.d.ts.map +0 -1
  125. package/build/phases/Resolver.test.js +0 -87
  126. package/build/phases/Resolver.test.js.map +0 -1
  127. package/build/phases/collector.d.ts +0 -15
  128. package/build/phases/collector.d.ts.map +0 -1
  129. package/build/phases/collector.js +0 -49
  130. package/build/phases/collector.js.map +0 -1
  131. package/build/phases/collector.test.d.ts +0 -2
  132. package/build/phases/collector.test.d.ts.map +0 -1
  133. package/build/phases/collector.test.js +0 -96
  134. package/build/phases/collector.test.js.map +0 -1
  135. package/build/runner.d.ts +0 -12
  136. package/build/runner.d.ts.map +0 -1
  137. package/build/runner.js +0 -61
  138. package/build/runner.js.map +0 -1
  139. package/build/runner.test.d.ts +0 -2
  140. package/build/runner.test.d.ts.map +0 -1
  141. package/build/runner.test.js +0 -24
  142. package/build/runner.test.js.map +0 -1
  143. package/build/src/applyEffectFeatures.d.ts +0 -3
  144. package/build/src/applyEffectFeatures.d.ts.map +0 -1
  145. package/build/src/applyEffectFeatures.js +0 -32
  146. package/build/src/applyEffectFeatures.js.map +0 -1
  147. package/build/src/currentVersion.d.ts +0 -2
  148. package/build/src/currentVersion.d.ts.map +0 -1
  149. package/build/src/currentVersion.js +0 -2
  150. package/build/src/currentVersion.js.map +0 -1
  151. package/build/src/index.d.ts +0 -2
  152. package/build/src/index.d.ts.map +0 -1
  153. package/build/src/index.js +0 -2
  154. package/build/src/index.js.map +0 -1
  155. package/build/src/lib/ConnectedLogger.d.ts +0 -13
  156. package/build/src/lib/ConnectedLogger.d.ts.map +0 -1
  157. package/build/src/lib/ConnectedLogger.js +0 -22
  158. package/build/src/lib/ConnectedLogger.js.map +0 -1
  159. package/build/src/lib/Logger.d.ts +0 -47
  160. package/build/src/lib/Logger.d.ts.map +0 -1
  161. package/build/src/lib/Logger.js +0 -79
  162. package/build/src/lib/Logger.js.map +0 -1
  163. package/build/src/lib/Logger.test.d.ts +0 -2
  164. package/build/src/lib/Logger.test.d.ts.map +0 -1
  165. package/build/src/lib/Logger.test.js +0 -60
  166. package/build/src/lib/Logger.test.js.map +0 -1
  167. package/build/src/lib/TestLogger.d.ts +0 -11
  168. package/build/src/lib/TestLogger.d.ts.map +0 -1
  169. package/build/src/lib/TestLogger.js +0 -11
  170. package/build/src/lib/TestLogger.js.map +0 -1
  171. package/build/src/lib/Timer.d.ts +0 -8
  172. package/build/src/lib/Timer.d.ts.map +0 -1
  173. package/build/src/lib/Timer.js +0 -12
  174. package/build/src/lib/Timer.js.map +0 -1
  175. package/build/src/lib/contexts.d.ts +0 -22
  176. package/build/src/lib/contexts.d.ts.map +0 -1
  177. package/build/src/lib/contexts.js +0 -36
  178. package/build/src/lib/contexts.js.map +0 -1
  179. package/build/src/lib/defs.d.ts +0 -262
  180. package/build/src/lib/defs.d.ts.map +0 -1
  181. package/build/src/lib/defs.js +0 -50
  182. package/build/src/lib/defs.js.map +0 -1
  183. package/build/src/lib/domain-types.d.ts +0 -13
  184. package/build/src/lib/domain-types.d.ts.map +0 -1
  185. package/build/src/lib/domain-types.js +0 -7
  186. package/build/src/lib/domain-types.js.map +0 -1
  187. package/build/src/lib/features.d.ts +0 -23
  188. package/build/src/lib/features.d.ts.map +0 -1
  189. package/build/src/lib/features.js +0 -100
  190. package/build/src/lib/features.js.map +0 -1
  191. package/build/src/lib/features.test.d.ts +0 -2
  192. package/build/src/lib/features.test.d.ts.map +0 -1
  193. package/build/src/lib/features.test.js +0 -112
  194. package/build/src/lib/features.test.js.map +0 -1
  195. package/build/src/lib/interfaces/artifacts.d.ts +0 -48
  196. package/build/src/lib/interfaces/artifacts.d.ts.map +0 -1
  197. package/build/src/lib/interfaces/artifacts.js +0 -2
  198. package/build/src/lib/interfaces/artifacts.js.map +0 -1
  199. package/build/src/lib/interfaces/logger.d.ts +0 -55
  200. package/build/src/lib/interfaces/logger.d.ts.map +0 -1
  201. package/build/src/lib/interfaces/logger.js +0 -17
  202. package/build/src/lib/interfaces/logger.js.map +0 -1
  203. package/build/src/lib/interfaces/messageContexts.d.ts +0 -10
  204. package/build/src/lib/interfaces/messageContexts.d.ts.map +0 -1
  205. package/build/src/lib/interfaces/messageContexts.js +0 -2
  206. package/build/src/lib/interfaces/messageContexts.js.map +0 -1
  207. package/build/src/lib/namedVars.d.ts +0 -20
  208. package/build/src/lib/namedVars.d.ts.map +0 -1
  209. package/build/src/lib/namedVars.js +0 -138
  210. package/build/src/lib/namedVars.js.map +0 -1
  211. package/build/src/lib/namedVars.test.d.ts +0 -2
  212. package/build/src/lib/namedVars.test.d.ts.map +0 -1
  213. package/build/src/lib/namedVars.test.js +0 -106
  214. package/build/src/lib/namedVars.test.js.map +0 -1
  215. package/build/src/lib/resolver-features.d.ts +0 -18
  216. package/build/src/lib/resolver-features.d.ts.map +0 -1
  217. package/build/src/lib/resolver-features.js +0 -12
  218. package/build/src/lib/resolver-features.js.map +0 -1
  219. package/build/src/lib/test/SetTimeStepper.d.ts +0 -10
  220. package/build/src/lib/test/SetTimeStepper.d.ts.map +0 -1
  221. package/build/src/lib/test/SetTimeStepper.js +0 -20
  222. package/build/src/lib/test/SetTimeStepper.js.map +0 -1
  223. package/build/src/lib/test/TestSteps.d.ts +0 -33
  224. package/build/src/lib/test/TestSteps.d.ts.map +0 -1
  225. package/build/src/lib/test/TestSteps.js +0 -32
  226. package/build/src/lib/test/TestSteps.js.map +0 -1
  227. package/build/src/lib/test/TestStepsWithOptions.d.ts +0 -25
  228. package/build/src/lib/test/TestStepsWithOptions.d.ts.map +0 -1
  229. package/build/src/lib/test/TestStepsWithOptions.js +0 -21
  230. package/build/src/lib/test/TestStepsWithOptions.js.map +0 -1
  231. package/build/src/lib/test/lib.d.ts +0 -26
  232. package/build/src/lib/test/lib.d.ts.map +0 -1
  233. package/build/src/lib/test/lib.js +0 -68
  234. package/build/src/lib/test/lib.js.map +0 -1
  235. package/build/src/lib/test/lib.test.d.ts +0 -2
  236. package/build/src/lib/test/lib.test.d.ts.map +0 -1
  237. package/build/src/lib/test/lib.test.js +0 -9
  238. package/build/src/lib/test/lib.test.js.map +0 -1
  239. package/build/src/lib/util/index.d.ts +0 -81
  240. package/build/src/lib/util/index.d.ts.map +0 -1
  241. package/build/src/lib/util/index.js +0 -248
  242. package/build/src/lib/util/index.js.map +0 -1
  243. package/build/src/lib/util/util.test.d.ts +0 -2
  244. package/build/src/lib/util/util.test.d.ts.map +0 -1
  245. package/build/src/lib/util/util.test.js +0 -238
  246. package/build/src/lib/util/util.test.js.map +0 -1
  247. package/build/src/lib/util/workspace-lib.d.ts +0 -15
  248. package/build/src/lib/util/workspace-lib.d.ts.map +0 -1
  249. package/build/src/lib/util/workspace-lib.js +0 -47
  250. package/build/src/lib/util/workspace-lib.js.map +0 -1
  251. package/build/src/lib/util/workspace-lib.test.d.ts +0 -2
  252. package/build/src/lib/util/workspace-lib.test.d.ts.map +0 -1
  253. package/build/src/lib/util/workspace-lib.test.js +0 -20
  254. package/build/src/lib/util/workspace-lib.test.js.map +0 -1
  255. package/build/src/phases/Executor.d.ts +0 -20
  256. package/build/src/phases/Executor.d.ts.map +0 -1
  257. package/build/src/phases/Executor.js +0 -152
  258. package/build/src/phases/Executor.js.map +0 -1
  259. package/build/src/phases/Resolver.d.ts +0 -15
  260. package/build/src/phases/Resolver.d.ts.map +0 -1
  261. package/build/src/phases/Resolver.js +0 -93
  262. package/build/src/phases/Resolver.js.map +0 -1
  263. package/build/src/phases/Resolver.test.d.ts +0 -2
  264. package/build/src/phases/Resolver.test.d.ts.map +0 -1
  265. package/build/src/phases/Resolver.test.js +0 -87
  266. package/build/src/phases/Resolver.test.js.map +0 -1
  267. package/build/src/phases/collector.d.ts +0 -15
  268. package/build/src/phases/collector.d.ts.map +0 -1
  269. package/build/src/phases/collector.js +0 -49
  270. package/build/src/phases/collector.js.map +0 -1
  271. package/build/src/phases/collector.test.d.ts +0 -2
  272. package/build/src/phases/collector.test.d.ts.map +0 -1
  273. package/build/src/phases/collector.test.js +0 -96
  274. package/build/src/phases/collector.test.js.map +0 -1
  275. package/build/src/runner.d.ts +0 -12
  276. package/build/src/runner.d.ts.map +0 -1
  277. package/build/src/runner.js +0 -61
  278. package/build/src/runner.js.map +0 -1
  279. package/build/src/runner.test.d.ts +0 -2
  280. package/build/src/runner.test.d.ts.map +0 -1
  281. package/build/src/runner.test.js +0 -24
  282. package/build/src/runner.test.js.map +0 -1
  283. package/build/src/steps/conformance.d.ts +0 -17
  284. package/build/src/steps/conformance.d.ts.map +0 -1
  285. package/build/src/steps/conformance.js +0 -12
  286. package/build/src/steps/conformance.js.map +0 -1
  287. package/build/src/steps/credentials.d.ts +0 -25
  288. package/build/src/steps/credentials.d.ts.map +0 -1
  289. package/build/src/steps/credentials.js +0 -38
  290. package/build/src/steps/credentials.js.map +0 -1
  291. package/build/src/steps/haibun.d.ts +0 -94
  292. package/build/src/steps/haibun.d.ts.map +0 -1
  293. package/build/src/steps/haibun.js +0 -165
  294. package/build/src/steps/haibun.js.map +0 -1
  295. package/build/src/steps/haibun.test.d.ts +0 -2
  296. package/build/src/steps/haibun.test.d.ts.map +0 -1
  297. package/build/src/steps/haibun.test.js +0 -48
  298. package/build/src/steps/haibun.test.js.map +0 -1
  299. package/build/src/steps/lib/parse.d.ts +0 -4
  300. package/build/src/steps/lib/parse.d.ts.map +0 -1
  301. package/build/src/steps/lib/parse.js +0 -42
  302. package/build/src/steps/lib/parse.js.map +0 -1
  303. package/build/src/steps/lib/tts.d.ts +0 -17
  304. package/build/src/steps/lib/tts.d.ts.map +0 -1
  305. package/build/src/steps/lib/tts.js +0 -80
  306. package/build/src/steps/lib/tts.js.map +0 -1
  307. package/build/src/steps/parse.d.ts +0 -25
  308. package/build/src/steps/parse.d.ts.map +0 -1
  309. package/build/src/steps/parse.js +0 -30
  310. package/build/src/steps/parse.js.map +0 -1
  311. package/build/src/steps/vars.d.ts +0 -110
  312. package/build/src/steps/vars.d.ts.map +0 -1
  313. package/build/src/steps/vars.js +0 -109
  314. package/build/src/steps/vars.js.map +0 -1
  315. package/build/src/steps/vars.test.d.ts +0 -2
  316. package/build/src/steps/vars.test.d.ts.map +0 -1
  317. package/build/src/steps/vars.test.js +0 -43
  318. package/build/src/steps/vars.test.js.map +0 -1
  319. package/build/steps/conformance.d.ts +0 -17
  320. package/build/steps/conformance.d.ts.map +0 -1
  321. package/build/steps/conformance.js +0 -12
  322. package/build/steps/conformance.js.map +0 -1
  323. package/build/steps/credentials.d.ts +0 -25
  324. package/build/steps/credentials.d.ts.map +0 -1
  325. package/build/steps/credentials.js +0 -38
  326. package/build/steps/credentials.js.map +0 -1
  327. package/build/steps/haibun.d.ts +0 -94
  328. package/build/steps/haibun.test.d.ts +0 -2
  329. package/build/steps/haibun.test.d.ts.map +0 -1
  330. package/build/steps/haibun.test.js +0 -48
  331. package/build/steps/haibun.test.js.map +0 -1
  332. package/build/steps/lib/parse.d.ts +0 -4
  333. package/build/steps/lib/parse.d.ts.map +0 -1
  334. package/build/steps/lib/parse.js +0 -42
  335. package/build/steps/lib/parse.js.map +0 -1
  336. package/build/steps/lib/tts.d.ts +0 -17
  337. package/build/steps/lib/tts.d.ts.map +0 -1
  338. package/build/steps/lib/tts.js +0 -80
  339. package/build/steps/lib/tts.js.map +0 -1
  340. package/build/steps/parse.d.ts +0 -25
  341. package/build/steps/parse.d.ts.map +0 -1
  342. package/build/steps/parse.js +0 -30
  343. package/build/steps/parse.js.map +0 -1
  344. package/build/steps/vars.test.d.ts +0 -2
  345. package/build/steps/vars.test.js +0 -43
  346. package/build/steps/vars.test.js.map +0 -1
  347. package/build/tsconfig.tsbuildinfo +0 -1
@@ -1,238 +0,0 @@
1
- import { describe, it, test, expect } from 'vitest';
2
- import * as util from './index.js';
3
- import { HAIBUN_O_TESTSTEPSWITHOPTIONS_EXISTS, getDefaultWorld, getCreateSteppers, TEST_BASE } from '../test/lib.js';
4
- import TestSteps from '../test/TestSteps.js';
5
- import TestStepsWithOptions from '../test/TestStepsWithOptions.js';
6
- import { withNameType } from '../features.js';
7
- import { AStepper, OK } from '../defs.js';
8
- import { constructorName } from './index.js';
9
- describe('isLowerCase', () => {
10
- it('is lower case', () => {
11
- expect(util.isLowerCase('a')).toBe(true);
12
- expect(util.isLowerCase('A')).toBe(false);
13
- expect(util.isLowerCase('0')).toBe(false);
14
- });
15
- });
16
- describe('findStepperFromOptions', () => {
17
- const TestOptionsStepper = class TestOptionsStepper extends AStepper {
18
- options = {
19
- A: {
20
- desc: 'A exists',
21
- parse: (input) => util.stringOrError(input),
22
- },
23
- B: {
24
- desc: 'B exists',
25
- parse: (input) => util.stringOrError(input),
26
- },
27
- };
28
- steps = {
29
- test: {
30
- exact: 'When I have a stepper option',
31
- action: async () => await Promise.resolve(OK),
32
- },
33
- };
34
- };
35
- it('finds from single option', async () => {
36
- const ts = new TestOptionsStepper();
37
- const steppers = await getCreateSteppers([], [TestOptionsStepper]);
38
- const options = { [util.getStepperOptionName(ts, 'A')]: 'TestOptionsStepper' };
39
- const s = util.findStepperFromOption(steppers, ts, options, 'A');
40
- expect(s).toBeDefined();
41
- });
42
- it('finds from last multiple options', async () => {
43
- const ts = new TestOptionsStepper();
44
- const steppers = await getCreateSteppers([], [TestOptionsStepper]);
45
- const options = { [util.getStepperOptionName(ts, 'B')]: 'TestOptionsStepper' };
46
- const s = await util.findStepperFromOption(steppers, ts, options, 'A', 'B');
47
- expect(s).toBeDefined();
48
- });
49
- it('finds from first multiple options', async () => {
50
- const ts = new TestOptionsStepper();
51
- const steppers = await getCreateSteppers([], [TestSteps, TestOptionsStepper]);
52
- const options = {
53
- [util.getStepperOptionName(ts, 'optionA')]: 'TestSteps',
54
- [util.getStepperOptionName(ts, 'B')]: 'TestOptionsStepper',
55
- };
56
- const s = util.findStepperFromOption(steppers, ts, options, 'optionA', 'optionB');
57
- expect(s).toBeDefined();
58
- expect(constructorName(s)).toBe('TestSteps');
59
- });
60
- it('throws for not found stepper', async () => {
61
- const ts = await util.createSteppers([TestOptionsStepper])[0];
62
- const steppers = await getCreateSteppers([], [TestOptionsStepper]);
63
- const options = {};
64
- expect(() => util.findStepperFromOption(steppers, ts, options, 'S')).toThrow;
65
- });
66
- });
67
- describe('verifyRequiredOptions', () => {
68
- class TestOptionsStepperWithReauired extends AStepper {
69
- options = {
70
- A: {
71
- required: true,
72
- altSource: 'B',
73
- desc: 'A is an option',
74
- parse: (input) => util.stringOrError(input),
75
- },
76
- B: {
77
- desc: 'B is an altsource',
78
- parse: (input) => util.stringOrError(input),
79
- },
80
- };
81
- steps = {
82
- test: {
83
- exact: 'When I have a stepper option',
84
- action: async () => await Promise.resolve(OK),
85
- },
86
- };
87
- }
88
- it('has option', async () => {
89
- const toswq = new TestOptionsStepperWithReauired();
90
- const options = { [util.getStepperOptionName(toswq, 'A')]: 'TestSteps' };
91
- await expect(util.verifyRequiredOptions([TestOptionsStepperWithReauired], options)).resolves.not.toThrow();
92
- });
93
- it('throws for missing option', async () => {
94
- await expect(util.verifyRequiredOptions([TestOptionsStepperWithReauired], {})).rejects.toThrow();
95
- });
96
- it('uses altSource', async () => {
97
- const options = { [util.getStepperOptionName(new TestOptionsStepperWithReauired(), 'B')]: 'TestSteps' };
98
- await expect(util.verifyRequiredOptions([TestOptionsStepperWithReauired], options)).resolves.not.toThrow();
99
- });
100
- });
101
- describe('getStepperOptions', () => {
102
- it('finds stepper options', () => {
103
- const conc = util.getStepperOptionValue(HAIBUN_O_TESTSTEPSWITHOPTIONS_EXISTS, 'true', [TestStepsWithOptions]);
104
- expect(conc).toBeDefined();
105
- });
106
- it.skip('fills extra', async () => {
107
- const world = getDefaultWorld(0);
108
- await util.verifyExtraOptions({ [HAIBUN_O_TESTSTEPSWITHOPTIONS_EXISTS]: 'true' }, [TestStepsWithOptions]);
109
- expect(world.options[HAIBUN_O_TESTSTEPSWITHOPTIONS_EXISTS]).toEqual(42);
110
- });
111
- it('throws for unfilled extra', async () => {
112
- await expect(async () => util.verifyExtraOptions({ HAIBUN_NE: 'true' }, [])).rejects.toThrow();
113
- });
114
- });
115
- describe('getType', () => {
116
- it('finds a type', () => {
117
- expect(withNameType(TEST_BASE, 'file.type.feature', '').type).toBe('type');
118
- });
119
- it('finds no type', () => {
120
- expect(withNameType(TEST_BASE, 'file.feature', '').type).toBe('feature');
121
- });
122
- });
123
- describe('check module is class', () => {
124
- it('should pass a class', () => {
125
- expect(util.checkModuleIsClass(class a {
126
- }, 'a')).toEqual(undefined);
127
- });
128
- it('should fail a function', () => {
129
- // eslint-disable-next-line @typescript-eslint/no-empty-function
130
- expect(() => util.checkModuleIsClass(function a() { }, 'a')).toThrow(undefined);
131
- });
132
- });
133
- describe('asError', () => {
134
- it('should pass an error', () => {
135
- expect(util.asError(new Error('a'))).toEqual(new Error('a'));
136
- });
137
- it('should pass a string', () => {
138
- expect(util.asError('a')).toEqual(new Error('a'));
139
- });
140
- it('should pass a number', () => {
141
- expect(util.asError(1)).toEqual(new Error('1'));
142
- });
143
- it('should pass a boolean', () => {
144
- expect(util.asError(true)).toEqual(new Error('true'));
145
- });
146
- it('should pass an object', () => {
147
- expect(util.asError({ a: 1 })).toEqual(new Error({ a: 1 }));
148
- });
149
- it('should pass an array', () => {
150
- expect(util.asError([1, 2])).toEqual(new Error([1, 2]));
151
- });
152
- it('should pass null', () => {
153
- expect(util.asError(null)).toEqual(new Error('null'));
154
- });
155
- it('should pass undefined', () => {
156
- expect(util.asError(undefined)).toEqual(new Error());
157
- });
158
- });
159
- describe('depolite', () => {
160
- describe('conjunctions', () => {
161
- test('Given', () => {
162
- expect(util.dePolite('Given test')).toBe('test');
163
- });
164
- test('When', () => {
165
- expect(util.dePolite('When test')).toBe('test');
166
- });
167
- test('Then', () => {
168
- expect(util.dePolite('Then test')).toBe('test');
169
- });
170
- test('And', () => {
171
- expect(util.dePolite('And test')).toBe('test');
172
- });
173
- });
174
- describe('articles', () => {
175
- test('The', () => {
176
- expect(util.dePolite('The test')).toBe('test');
177
- });
178
- test('A', () => {
179
- expect(util.dePolite('A test')).toBe('test');
180
- });
181
- test('An', () => {
182
- expect(util.dePolite('An test')).toBe('test');
183
- });
184
- });
185
- describe('pronouns', () => {
186
- test('I', () => {
187
- expect(util.dePolite('I test')).toBe('test');
188
- });
189
- test(`I'm`, () => {
190
- expect(util.dePolite(`I'm test`)).toBe('test');
191
- });
192
- });
193
- describe('combinations', () => {
194
- test('Given I test', () => {
195
- expect(util.dePolite('Given I test')).toBe('test');
196
- });
197
- test(`Given I am test`, () => {
198
- expect(util.dePolite(`Given I am test`)).toBe('test');
199
- });
200
- test('Given am an test', () => {
201
- expect(util.dePolite('Given am an test')).toBe('test');
202
- });
203
- test('And I should see', () => {
204
- expect(util.dePolite('And I should see')).toBe('see');
205
- });
206
- });
207
- });
208
- describe('optionOrError', () => {
209
- it('rejects no option', () => {
210
- expect(util.optionOrError('a', ['b']).parseError).toBeDefined();
211
- });
212
- it('rejects undefined option', () => {
213
- expect(util.optionOrError(undefined, ['b']).parseError).toBeDefined();
214
- });
215
- it('returns options', () => {
216
- expect(util.optionOrError('b', ['b'])).toEqual({ result: 'b' });
217
- });
218
- });
219
- describe('boolOrError', () => {
220
- it('returns true', () => {
221
- expect(util.boolOrError('true')).toEqual({ result: true });
222
- });
223
- it('returns false', () => {
224
- expect(util.boolOrError('false')).toEqual({ result: false });
225
- });
226
- it('returns error', () => {
227
- expect(util.boolOrError('wtw').parseError).toBeDefined();
228
- });
229
- });
230
- describe('stringOrError', () => {
231
- it('returns value', () => {
232
- expect(util.stringOrError('a')).toEqual({ result: 'a' });
233
- });
234
- it('returns error', () => {
235
- expect(() => util.stringOrError(undefined).parseError).toBeDefined();
236
- });
237
- });
238
- //# sourceMappingURL=util.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"util.test.js","sourceRoot":"","sources":["../../../src/lib/util/util.test.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import nodeFS from 'fs';
2
- import { CStepper } from '../defs.js';
3
- export type TFileSystem = Partial<typeof nodeFS>;
4
- export declare function getSteppers(stepperNames: string[]): Promise<CStepper[]>;
5
- export declare const workspaceRoot: string;
6
- type TImportMeta = {
7
- url: string;
8
- };
9
- export declare function getPackageLocation(meta: TImportMeta): string;
10
- export declare const getFilename: (meta: TImportMeta) => string;
11
- export declare const getDirname: (meta: TImportMeta) => string;
12
- export declare function getModuleLocation(name: string): string;
13
- export declare function getStepper(s: string): Promise<CStepper>;
14
- export {};
15
- //# sourceMappingURL=workspace-lib.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workspace-lib.d.ts","sourceRoot":"","sources":["../../../src/lib/util/workspace-lib.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,IAAI,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,MAAM,CAAC,CAAC;AACjD,wBAAsB,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,uBAYvD;AACD,eAAO,MAAM,aAAa,QAAqB,CAAC;AAEhD,KAAK,WAAW,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnC,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,UAEnD;AAED,eAAO,MAAM,WAAW,SAAU,WAAW,WAA4B,CAAC;AAC1E,eAAO,MAAM,UAAU,SAAU,WAAW,WAA0C,CAAC;AAMvF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,UAO7C;AAED,wBAAsB,UAAU,CAAC,CAAC,EAAE,MAAM,qBASzC"}
@@ -1,47 +0,0 @@
1
- import path, { dirname } from 'path';
2
- import { use } from './index.js';
3
- import { fileURLToPath } from 'url';
4
- export async function getSteppers(stepperNames) {
5
- const steppers = [];
6
- for (const s of stepperNames) {
7
- try {
8
- const S = await getStepper(s);
9
- steppers.push(S);
10
- }
11
- catch (e) {
12
- console.error(`get ${s} from "${getModuleLocation(s)}" failed`, e);
13
- throw e;
14
- }
15
- }
16
- return steppers;
17
- }
18
- export const workspaceRoot = getWorkspaceRoot();
19
- export function getPackageLocation(meta) {
20
- return dirname(fileURLToPath(meta.url));
21
- }
22
- export const getFilename = (meta) => fileURLToPath(meta.url);
23
- export const getDirname = (meta) => fileURLToPath(new URL('.', meta.url));
24
- function getWorkspaceRoot() {
25
- return process.cwd().replace(/haibun\/modules\/[^/]*$/, 'haibun');
26
- }
27
- export function getModuleLocation(name) {
28
- if (name.startsWith('~')) {
29
- return [workspaceRoot, 'node_modules', name.substring(1)].join('/');
30
- }
31
- else if (name.match(/^[a-zA-Z].*/)) {
32
- return `../../steps/${name}`;
33
- }
34
- return path.resolve(workspaceRoot, name);
35
- }
36
- export async function getStepper(s) {
37
- try {
38
- const loc = getModuleLocation(s);
39
- const S = await use(loc);
40
- return S;
41
- }
42
- catch (e) {
43
- console.error(`could not use ${s}`);
44
- throw e;
45
- }
46
- }
47
- //# sourceMappingURL=workspace-lib.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workspace-lib.js","sourceRoot":"","sources":["../../../src/lib/util/workspace-lib.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAIrC,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAGpC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,YAAsB;IACvD,MAAM,QAAQ,GAAe,EAAE,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;QAC9B,IAAI,CAAC;YACJ,MAAM,CAAC,GAAG,MAAM,UAAU,CAAC,CAAC,CAAC,CAAC;YAC9B,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,iBAAiB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YACnE,MAAM,CAAC,CAAC;QACT,CAAC;IACF,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC;AACD,MAAM,CAAC,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;AAIhD,MAAM,UAAU,kBAAkB,CAAC,IAAiB;IACnD,OAAO,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAiB,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1E,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAiB,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAEvF,SAAS,gBAAgB;IACxB,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,yBAAyB,EAAE,QAAQ,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC7C,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,aAAa,EAAE,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrE,CAAC;SAAM,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;QACtC,OAAO,eAAe,IAAI,EAAE,CAAC;IAC9B,CAAC;IACD,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,CAAS;IACzC,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,CAAC,GAAa,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,OAAO,CAAC,CAAC;IACV,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,CAAC,CAAC;IACT,CAAC;AACF,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=workspace-lib.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workspace-lib.test.d.ts","sourceRoot":"","sources":["../../../src/lib/util/workspace-lib.test.ts"],"names":[],"mappings":""}
@@ -1,20 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import * as TFileSystemJs from './workspace-lib.js';
3
- describe('workspace', () => {
4
- it('finds workspace root', () => {
5
- expect(TFileSystemJs.workspaceRoot.endsWith('/haibun')).toBeTruthy();
6
- });
7
- });
8
- const rel = (pat) => pat.replace(`${TFileSystemJs.workspaceRoot}/`, '');
9
- describe('getModuleLocation', () => {
10
- it('finds step module location', () => {
11
- expect(rel(TFileSystemJs.getModuleLocation('test'))).toBe('../../steps/test');
12
- });
13
- it('finds module location for scoped module', () => {
14
- expect(rel(TFileSystemJs.getModuleLocation('./src/test.js'))).toBe('src/test.js');
15
- });
16
- it('finds module location for scoped module with tilde', () => {
17
- expect(rel(TFileSystemJs.getModuleLocation('~@haibun/test'))).toBe('node_modules/@haibun/test');
18
- });
19
- });
20
- //# sourceMappingURL=workspace-lib.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workspace-lib.test.js","sourceRoot":"","sources":["../../../src/lib/util/workspace-lib.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AAEpD,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC9B,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IACvE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,aAAa,GAAG,EAAE,EAAE,CAAC,CAAC;AAExE,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAClG,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,20 +0,0 @@
1
- import { TFeatureStep, TResolvedFeature, TExecutorResult, TStepResult, TFeatureResult, TActionResult, TWorld, AStepper, TStepAction, TAnyFixme } from '../lib/defs.js';
2
- import { EExecutionMessageType } from '../lib/interfaces/logger.js';
3
- export declare class Executor {
4
- static action(steppers: AStepper[], featureStep: TFeatureStep, found: TStepAction, world: TWorld): Promise<TActionResult>;
5
- static executeFeatures(steppers: AStepper[], world: TWorld, features: TResolvedFeature[]): Promise<TExecutorResult>;
6
- }
7
- export declare class FeatureExecutor {
8
- private steppers;
9
- private world;
10
- private logit;
11
- private startOffset;
12
- constructor(steppers: AStepper[], world: TWorld, logit?: <T extends import("../lib/interfaces/artifacts.js").TArtifact>(message: import("../lib/interfaces/logger.js").TLogArgs, data: {
13
- incident: EExecutionMessageType;
14
- artifact?: T;
15
- incidentDetails?: TAnyFixme;
16
- }, level?: import("../lib/interfaces/logger.js").TLogLevel) => void, startOffset?: number);
17
- doFeature(feature: TResolvedFeature): Promise<TFeatureResult>;
18
- static doFeatureStep(steppers: AStepper[], featureStep: TFeatureStep, world: TWorld): Promise<TStepResult>;
19
- }
20
- //# sourceMappingURL=Executor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Executor.d.ts","sourceRoot":"","sources":["../../src/phases/Executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,EAAqB,QAAQ,EAAE,WAAW,EAAE,SAAS,EAA8J,MAAM,gBAAgB,CAAC;AACtV,OAAO,EAAE,qBAAqB,EAAmB,MAAM,6BAA6B,CAAC;AAerF,qBAAa,QAAQ;WACP,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM;WAYzF,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;CAiDzH;AAED,qBAAa,eAAe;IACf,OAAO,CAAC,QAAQ;IAAc,OAAO,CAAC,KAAK;IAAU,OAAO,CAAC,KAAK;IAA+B,OAAO,CAAC,WAAW;gBAA5G,QAAQ,EAAE,QAAQ,EAAE,EAAU,KAAK,EAAE,MAAM,EAAU,KAAK;;gBAlBjD,CAAC;uBAAoB,CAAC;uEAkBwD,EAAU,WAAW,SAAsB;IAGhJ,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC;WA6CtD,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CAehH"}
@@ -1,150 +0,0 @@
1
- import { STAY, STAY_FAILURE, CHECK_NO, CHECK_YES, STEP_DELAY, CONTINUE_AFTER_ERROR } from '../lib/defs.js';
2
- import { EExecutionMessageType } from '../lib/interfaces/logger.js';
3
- import { topicArtifactLogger } from '../lib/Logger.js';
4
- import { getNamedToVars } from '../lib/namedVars.js';
5
- import { actionNotOK, sleep, findStepper, constructorName, setStepperWorlds } from '../lib/util/index.js';
6
- import { SCENARIO_START } from '../lib/defs.js';
7
- function calculateShouldClose({ thisFeatureOK, isLast, stayOnFailure }) {
8
- if (thisFeatureOK) {
9
- return true;
10
- }
11
- if (isLast && stayOnFailure) {
12
- return false;
13
- }
14
- return true;
15
- }
16
- export class Executor {
17
- static async action(steppers, featureStep, found, world) {
18
- const namedWithVars = getNamedToVars(found, world, featureStep);
19
- const stepper = findStepper(steppers, found.stepperName);
20
- const action = stepper.steps[found.actionName].action;
21
- return await action(namedWithVars, featureStep).catch((caught) => {
22
- world.logger.error(caught.stack);
23
- return actionNotOK(`in ${featureStep.in}: ${caught.message}`, {
24
- incident: EExecutionMessageType.ACTION,
25
- incidentDetails: { caught: (caught?.stack || caught).toString() },
26
- });
27
- });
28
- }
29
- static async executeFeatures(steppers, world, features) {
30
- await doStepperMethod(steppers, 'startExecution');
31
- let okSoFar = true;
32
- const stayOnFailure = world.options[STAY] === STAY_FAILURE;
33
- const featureResults = [];
34
- let featureNum = 0;
35
- const continueAfterError = !!(world.options[CONTINUE_AFTER_ERROR]);
36
- for (const feature of features) {
37
- featureNum++;
38
- const isLast = featureNum === features.length;
39
- world.logger.log(`███ feature ${featureNum}/${features.length}: ${feature.path}`);
40
- const newWorld = { ...world, tag: { ...world.tag, ...{ featureNum: 0 + featureNum } } };
41
- const featureExecutor = new FeatureExecutor(steppers, newWorld);
42
- await setStepperWorlds(steppers, newWorld);
43
- await doStepperMethod(steppers, 'startFeature', feature);
44
- const featureResult = await featureExecutor.doFeature(feature);
45
- const thisFeatureOK = featureResult.ok;
46
- if (!thisFeatureOK) {
47
- const failedStep = featureResult.stepResults.find((s) => !s.ok);
48
- await doStepperMethod(steppers, 'onFailure', featureResult, failedStep);
49
- }
50
- okSoFar = okSoFar && thisFeatureOK;
51
- featureResults.push(featureResult);
52
- const shouldCloseFactors = { thisFeatureOK: featureResult.ok, okSoFar, isLast, continueAfterError, stayOnFailure };
53
- const shouldClose = calculateShouldClose(shouldCloseFactors);
54
- if (shouldClose) {
55
- world.logger.debug(`shouldClose ${JSON.stringify(shouldCloseFactors)}`);
56
- }
57
- else {
58
- world.logger.debug(`no shouldClose because ${JSON.stringify(shouldCloseFactors)}`);
59
- }
60
- await doStepperMethod(steppers, 'endFeature', { world: newWorld, shouldClose, isLast, okSoFar, continueAfterError, stayOnFailure, thisFeatureOK: featureResult.ok });
61
- if (!okSoFar) {
62
- if (!continueAfterError && !isLast) {
63
- world.logger.debug(`stopping without ${CONTINUE_AFTER_ERROR}`);
64
- break;
65
- }
66
- else {
67
- if (continueAfterError && !isLast) {
68
- world.logger.debug(`continuing because ${CONTINUE_AFTER_ERROR}`);
69
- }
70
- }
71
- }
72
- }
73
- await doStepperMethod(steppers, 'endExecution');
74
- return { ok: okSoFar, featureResults: featureResults, tag: world.tag, shared: world.shared, steppers };
75
- }
76
- }
77
- export class FeatureExecutor {
78
- steppers;
79
- world;
80
- logit;
81
- startOffset;
82
- constructor(steppers, world, logit = topicArtifactLogger(world), startOffset = world.timer.since()) {
83
- this.steppers = steppers;
84
- this.world = world;
85
- this.logit = logit;
86
- this.startOffset = startOffset;
87
- }
88
- async doFeature(feature) {
89
- const world = this.world;
90
- let ok = true;
91
- const stepResults = [];
92
- let currentScenario = 0;
93
- for (const step of feature.featureSteps) {
94
- if (step.action.actionName === SCENARIO_START) {
95
- if (currentScenario) {
96
- this.logit(`end scenario ${currentScenario}`, { incident: EExecutionMessageType.SCENARIO_END, incidentDetails: { currentScenario } }, 'debug');
97
- }
98
- currentScenario = currentScenario + 1;
99
- this.logit(`start scenario ${currentScenario}`, { incident: EExecutionMessageType.SCENARIO_START, incidentDetails: { currentScenario } }, 'debug');
100
- }
101
- world.logger.log(step.in, { incident: EExecutionMessageType.STEP_START, tag: world.tag });
102
- const result = await FeatureExecutor.doFeatureStep(this.steppers, step, world);
103
- if (world.options[STEP_DELAY]) {
104
- await sleep(world.options[STEP_DELAY]);
105
- }
106
- ok = ok && result.ok;
107
- const indicator = result.ok ? CHECK_YES : CHECK_NO + ' ' + result.actionResult.message;
108
- const mc = {
109
- incident: EExecutionMessageType.STEP_END,
110
- tag: world.tag,
111
- incidentDetails: { result, step },
112
- artifact: result.actionResult.artifact
113
- };
114
- world.logger.log(indicator, mc);
115
- stepResults.push(result);
116
- if (!ok) {
117
- break;
118
- }
119
- }
120
- if (currentScenario) {
121
- this.logit(`end scenario ${currentScenario}`, { incident: EExecutionMessageType.SCENARIO_END, incidentDetails: { currentScenario } }, 'debug');
122
- }
123
- const featureResult = { path: feature.path, ok, stepResults };
124
- return featureResult;
125
- }
126
- static async doFeatureStep(steppers, featureStep, world) {
127
- let ok = true;
128
- // FIXME feature should really be attached to the featureStep
129
- const action = featureStep.action;
130
- const start = world.timer.since();
131
- const res = await Executor.action(steppers, featureStep, action, world);
132
- const end = world.timer.since();
133
- // FIXME
134
- const actionResult = { ...res, name: action.actionName, start, end };
135
- ok = ok && res.ok;
136
- return { ok, in: featureStep.in, path: featureStep.path, actionResult, seq: featureStep.seq };
137
- }
138
- }
139
- const doStepperMethod = async (steppers, method, ...args) => {
140
- for (const stepper of steppers) {
141
- if (stepper?.cycles && stepper.cycles[method]) {
142
- stepper.getWorld().logger.debug(`🔁 ${method} ${constructorName(stepper)}`);
143
- await stepper.cycles[method](...args).catch((error) => {
144
- console.error(`${method} failed`, error);
145
- throw error;
146
- });
147
- }
148
- }
149
- };
150
- //# sourceMappingURL=Executor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Executor.js","sourceRoot":"","sources":["../../src/phases/Executor.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import { TStepAction, TResolvedFeature, TExpandedFeature, AStepper, TFeatureStep, TExpandedLine } from '../lib/defs.js';
2
- export declare class Resolver {
3
- private steppers;
4
- types: string[];
5
- constructor(steppers: AStepper[]);
6
- resolveStepsFromFeatures(features: TExpandedFeature[]): Promise<TResolvedFeature[]>;
7
- findFeatureSteps(feature: TExpandedFeature): Promise<TFeatureStep[]>;
8
- getFeatureStep(featureLine: TExpandedLine, seq: number, action: TStepAction): TFeatureStep;
9
- findActionableSteps(actionable: string): TStepAction[];
10
- private stepApplies;
11
- static getTypeValidationError: (prelude: string, fileType: string, name: string, typeValidationError: string) => string;
12
- static getMoreThanOneInclusionError: (prelude: string, fileType: string, name: string) => string;
13
- static getNoFileTypeInclusionError: (prelude: string, fileType: string, name: string) => string;
14
- }
15
- //# sourceMappingURL=Resolver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Resolver.d.ts","sourceRoot":"","sources":["../../src/phases/Resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAM,gBAAgB,EAAE,QAAQ,EAAgB,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAK1I,qBAAa,QAAQ;IAGR,OAAO,CAAC,QAAQ;IAF5B,KAAK,EAAE,MAAM,EAAE,CAAC;gBAEI,QAAQ,EAAE,QAAQ,EAAE;IAIlC,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,EAAE;IAW9C,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAsBjF,cAAc,CAAC,WAAW,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,YAAY;IAInF,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,EAAE;IAqB7D,OAAO,CAAC,WAAW;IAgBf,MAAM,CAAC,sBAAsB,YAAa,MAAM,YAAY,MAAM,QAAQ,MAAM,uBAAuB,MAAM,YACzB;IACxF,MAAM,CAAC,4BAA4B,YAAa,MAAM,YAAY,MAAM,QAAQ,MAAM,YACpB;IAClE,MAAM,CAAC,2BAA2B,YAAa,MAAM,YAAY,MAAM,QAAQ,MAAM,YAC9B;CACvD"}