@d-es-ign/stryker-js-core 9.6.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 (631) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +96 -0
  3. package/bin/stryker +2 -0
  4. package/bin/stryker.js +6 -0
  5. package/dist/src/checker/checker-child-process-proxy.d.ts +16 -0
  6. package/dist/src/checker/checker-child-process-proxy.d.ts.map +1 -0
  7. package/dist/src/checker/checker-child-process-proxy.js +22 -0
  8. package/dist/src/checker/checker-child-process-proxy.js.map +1 -0
  9. package/dist/src/checker/checker-facade.d.ts +9 -0
  10. package/dist/src/checker/checker-facade.d.ts.map +1 -0
  11. package/dist/src/checker/checker-facade.js +52 -0
  12. package/dist/src/checker/checker-facade.js.map +1 -0
  13. package/dist/src/checker/checker-factory.d.ts +10 -0
  14. package/dist/src/checker/checker-factory.d.ts.map +1 -0
  15. package/dist/src/checker/checker-factory.js +10 -0
  16. package/dist/src/checker/checker-factory.js.map +1 -0
  17. package/dist/src/checker/checker-resource.d.ts +8 -0
  18. package/dist/src/checker/checker-resource.d.ts.map +1 -0
  19. package/dist/src/checker/checker-resource.js +2 -0
  20. package/dist/src/checker/checker-resource.js.map +1 -0
  21. package/dist/src/checker/checker-retry-decorator.d.ts +12 -0
  22. package/dist/src/checker/checker-retry-decorator.d.ts.map +1 -0
  23. package/dist/src/checker/checker-retry-decorator.js +37 -0
  24. package/dist/src/checker/checker-retry-decorator.js.map +1 -0
  25. package/dist/src/checker/checker-worker.d.ts +14 -0
  26. package/dist/src/checker/checker-worker.d.ts.map +1 -0
  27. package/dist/src/checker/checker-worker.js +41 -0
  28. package/dist/src/checker/checker-worker.js.map +1 -0
  29. package/dist/src/checker/index.d.ts +4 -0
  30. package/dist/src/checker/index.d.ts.map +1 -0
  31. package/dist/src/checker/index.js +4 -0
  32. package/dist/src/checker/index.js.map +1 -0
  33. package/dist/src/child-proxy/child-process-crashed-error.d.ts +8 -0
  34. package/dist/src/child-proxy/child-process-crashed-error.d.ts.map +1 -0
  35. package/dist/src/child-proxy/child-process-crashed-error.js +16 -0
  36. package/dist/src/child-proxy/child-process-crashed-error.js.map +1 -0
  37. package/dist/src/child-proxy/child-process-proxy-worker.d.ts +32 -0
  38. package/dist/src/child-proxy/child-process-proxy-worker.d.ts.map +1 -0
  39. package/dist/src/child-proxy/child-process-proxy-worker.js +148 -0
  40. package/dist/src/child-proxy/child-process-proxy-worker.js.map +1 -0
  41. package/dist/src/child-proxy/child-process-proxy.d.ts +45 -0
  42. package/dist/src/child-proxy/child-process-proxy.d.ts.map +1 -0
  43. package/dist/src/child-proxy/child-process-proxy.js +232 -0
  44. package/dist/src/child-proxy/child-process-proxy.js.map +1 -0
  45. package/dist/src/child-proxy/id-generator.d.ts +5 -0
  46. package/dist/src/child-proxy/id-generator.d.ts.map +1 -0
  47. package/dist/src/child-proxy/id-generator.js +7 -0
  48. package/dist/src/child-proxy/id-generator.js.map +1 -0
  49. package/dist/src/child-proxy/message-protocol.d.ts +71 -0
  50. package/dist/src/child-proxy/message-protocol.d.ts.map +1 -0
  51. package/dist/src/child-proxy/message-protocol.js +34 -0
  52. package/dist/src/child-proxy/message-protocol.js.map +1 -0
  53. package/dist/src/child-proxy/out-of-memory-error.d.ts +5 -0
  54. package/dist/src/child-proxy/out-of-memory-error.d.ts.map +1 -0
  55. package/dist/src/child-proxy/out-of-memory-error.js +11 -0
  56. package/dist/src/child-proxy/out-of-memory-error.js.map +1 -0
  57. package/dist/src/concurrent/concurrency-token-provider.d.ts +20 -0
  58. package/dist/src/concurrent/concurrency-token-provider.d.ts.map +1 -0
  59. package/dist/src/concurrent/concurrency-token-provider.js +68 -0
  60. package/dist/src/concurrent/concurrency-token-provider.js.map +1 -0
  61. package/dist/src/concurrent/index.d.ts +4 -0
  62. package/dist/src/concurrent/index.d.ts.map +1 -0
  63. package/dist/src/concurrent/index.js +4 -0
  64. package/dist/src/concurrent/index.js.map +1 -0
  65. package/dist/src/concurrent/pool.d.ts +49 -0
  66. package/dist/src/concurrent/pool.d.ts.map +1 -0
  67. package/dist/src/concurrent/pool.js +137 -0
  68. package/dist/src/concurrent/pool.js.map +1 -0
  69. package/dist/src/concurrent/resource-decorator.d.ts +14 -0
  70. package/dist/src/concurrent/resource-decorator.d.ts.map +1 -0
  71. package/dist/src/concurrent/resource-decorator.js +24 -0
  72. package/dist/src/concurrent/resource-decorator.js.map +1 -0
  73. package/dist/src/config/config-file-formats.d.ts +6 -0
  74. package/dist/src/config/config-file-formats.d.ts.map +1 -0
  75. package/dist/src/config/config-file-formats.js +23 -0
  76. package/dist/src/config/config-file-formats.js.map +1 -0
  77. package/dist/src/config/config-reader.d.ts +23 -0
  78. package/dist/src/config/config-reader.d.ts.map +1 -0
  79. package/dist/src/config/config-reader.js +141 -0
  80. package/dist/src/config/config-reader.js.map +1 -0
  81. package/dist/src/config/file-matcher.d.ts +10 -0
  82. package/dist/src/config/file-matcher.d.ts.map +1 -0
  83. package/dist/src/config/file-matcher.js +31 -0
  84. package/dist/src/config/file-matcher.js.map +1 -0
  85. package/dist/src/config/index.d.ts +6 -0
  86. package/dist/src/config/index.d.ts.map +1 -0
  87. package/dist/src/config/index.js +6 -0
  88. package/dist/src/config/index.js.map +1 -0
  89. package/dist/src/config/meta-schema-builder.d.ts +10 -0
  90. package/dist/src/config/meta-schema-builder.d.ts.map +1 -0
  91. package/dist/src/config/meta-schema-builder.js +30 -0
  92. package/dist/src/config/meta-schema-builder.js.map +1 -0
  93. package/dist/src/config/options-validator.d.ts +28 -0
  94. package/dist/src/config/options-validator.d.ts.map +1 -0
  95. package/dist/src/config/options-validator.js +213 -0
  96. package/dist/src/config/options-validator.js.map +1 -0
  97. package/dist/src/config/validation-errors.d.ts +7 -0
  98. package/dist/src/config/validation-errors.d.ts.map +1 -0
  99. package/dist/src/config/validation-errors.js +154 -0
  100. package/dist/src/config/validation-errors.js.map +1 -0
  101. package/dist/src/di/core-tokens.d.ts +40 -0
  102. package/dist/src/di/core-tokens.d.ts.map +1 -0
  103. package/dist/src/di/core-tokens.js +40 -0
  104. package/dist/src/di/core-tokens.js.map +1 -0
  105. package/dist/src/di/index.d.ts +4 -0
  106. package/dist/src/di/index.d.ts.map +1 -0
  107. package/dist/src/di/index.js +4 -0
  108. package/dist/src/di/index.js.map +1 -0
  109. package/dist/src/di/plugin-creator.d.ts +10 -0
  110. package/dist/src/di/plugin-creator.d.ts.map +1 -0
  111. package/dist/src/di/plugin-creator.js +51 -0
  112. package/dist/src/di/plugin-creator.js.map +1 -0
  113. package/dist/src/di/plugin-loader.d.ts +41 -0
  114. package/dist/src/di/plugin-loader.d.ts.map +1 -0
  115. package/dist/src/di/plugin-loader.js +153 -0
  116. package/dist/src/di/plugin-loader.js.map +1 -0
  117. package/dist/src/errors.d.ts +5 -0
  118. package/dist/src/errors.d.ts.map +1 -0
  119. package/dist/src/errors.js +13 -0
  120. package/dist/src/errors.js.map +1 -0
  121. package/dist/src/fs/file-system.d.ts +19 -0
  122. package/dist/src/fs/file-system.d.ts.map +1 -0
  123. package/dist/src/fs/file-system.js +52 -0
  124. package/dist/src/fs/file-system.js.map +1 -0
  125. package/dist/src/fs/index.d.ts +5 -0
  126. package/dist/src/fs/index.d.ts.map +1 -0
  127. package/dist/src/fs/index.js +5 -0
  128. package/dist/src/fs/index.js.map +1 -0
  129. package/dist/src/fs/project-file.d.ts +26 -0
  130. package/dist/src/fs/project-file.d.ts.map +1 -0
  131. package/dist/src/fs/project-file.js +87 -0
  132. package/dist/src/fs/project-file.js.map +1 -0
  133. package/dist/src/fs/project-reader.d.ts +51 -0
  134. package/dist/src/fs/project-reader.d.ts.map +1 -0
  135. package/dist/src/fs/project-reader.js +335 -0
  136. package/dist/src/fs/project-reader.js.map +1 -0
  137. package/dist/src/fs/project.d.ts +22 -0
  138. package/dist/src/fs/project.d.ts.map +1 -0
  139. package/dist/src/fs/project.js +65 -0
  140. package/dist/src/fs/project.js.map +1 -0
  141. package/dist/src/index.d.ts +5 -0
  142. package/dist/src/index.d.ts.map +1 -0
  143. package/dist/src/index.js +6 -0
  144. package/dist/src/index.js.map +1 -0
  145. package/dist/src/initializer/custom-initializers/angular-initializer.d.ts +17 -0
  146. package/dist/src/initializer/custom-initializers/angular-initializer.d.ts.map +1 -0
  147. package/dist/src/initializer/custom-initializers/angular-initializer.js +74 -0
  148. package/dist/src/initializer/custom-initializers/angular-initializer.js.map +1 -0
  149. package/dist/src/initializer/custom-initializers/custom-initializer.d.ts +13 -0
  150. package/dist/src/initializer/custom-initializers/custom-initializer.d.ts.map +1 -0
  151. package/dist/src/initializer/custom-initializers/custom-initializer.js +2 -0
  152. package/dist/src/initializer/custom-initializers/custom-initializer.js.map +1 -0
  153. package/dist/src/initializer/custom-initializers/index.d.ts +14 -0
  154. package/dist/src/initializer/custom-initializers/index.d.ts.map +1 -0
  155. package/dist/src/initializer/custom-initializers/index.js +16 -0
  156. package/dist/src/initializer/custom-initializers/index.js.map +1 -0
  157. package/dist/src/initializer/custom-initializers/react-initializer.d.ts +12 -0
  158. package/dist/src/initializer/custom-initializers/react-initializer.d.ts.map +1 -0
  159. package/dist/src/initializer/custom-initializers/react-initializer.js +25 -0
  160. package/dist/src/initializer/custom-initializers/react-initializer.js.map +1 -0
  161. package/dist/src/initializer/custom-initializers/svelte-initializer.d.ts +6 -0
  162. package/dist/src/initializer/custom-initializers/svelte-initializer.d.ts.map +1 -0
  163. package/dist/src/initializer/custom-initializers/svelte-initializer.js +33 -0
  164. package/dist/src/initializer/custom-initializers/svelte-initializer.js.map +1 -0
  165. package/dist/src/initializer/custom-initializers/vue-js-initializer.d.ts +11 -0
  166. package/dist/src/initializer/custom-initializers/vue-js-initializer.d.ts.map +1 -0
  167. package/dist/src/initializer/custom-initializers/vue-js-initializer.js +20 -0
  168. package/dist/src/initializer/custom-initializers/vue-js-initializer.js.map +1 -0
  169. package/dist/src/initializer/gitignore-writer.d.ts +7 -0
  170. package/dist/src/initializer/gitignore-writer.d.ts.map +1 -0
  171. package/dist/src/initializer/gitignore-writer.js +28 -0
  172. package/dist/src/initializer/gitignore-writer.js.map +1 -0
  173. package/dist/src/initializer/index.d.ts +6 -0
  174. package/dist/src/initializer/index.d.ts.map +1 -0
  175. package/dist/src/initializer/index.js +29 -0
  176. package/dist/src/initializer/index.js.map +1 -0
  177. package/dist/src/initializer/initializer-tokens.d.ts +9 -0
  178. package/dist/src/initializer/initializer-tokens.d.ts.map +1 -0
  179. package/dist/src/initializer/initializer-tokens.js +9 -0
  180. package/dist/src/initializer/initializer-tokens.js.map +1 -0
  181. package/dist/src/initializer/inquire.d.ts +12 -0
  182. package/dist/src/initializer/inquire.d.ts.map +1 -0
  183. package/dist/src/initializer/inquire.js +12 -0
  184. package/dist/src/initializer/inquire.js.map +1 -0
  185. package/dist/src/initializer/npm-client.d.ts +22 -0
  186. package/dist/src/initializer/npm-client.d.ts.map +1 -0
  187. package/dist/src/initializer/npm-client.js +65 -0
  188. package/dist/src/initializer/npm-client.js.map +1 -0
  189. package/dist/src/initializer/npm-registry.d.ts +13 -0
  190. package/dist/src/initializer/npm-registry.d.ts.map +1 -0
  191. package/dist/src/initializer/npm-registry.js +36 -0
  192. package/dist/src/initializer/npm-registry.js.map +1 -0
  193. package/dist/src/initializer/package-info.d.ts +10 -0
  194. package/dist/src/initializer/package-info.d.ts.map +1 -0
  195. package/dist/src/initializer/package-info.js +2 -0
  196. package/dist/src/initializer/package-info.js.map +1 -0
  197. package/dist/src/initializer/prompt-option.d.ts +6 -0
  198. package/dist/src/initializer/prompt-option.d.ts.map +1 -0
  199. package/dist/src/initializer/prompt-option.js +2 -0
  200. package/dist/src/initializer/prompt-option.js.map +1 -0
  201. package/dist/src/initializer/stryker-config-writer.d.ts +27 -0
  202. package/dist/src/initializer/stryker-config-writer.d.ts.map +1 -0
  203. package/dist/src/initializer/stryker-config-writer.js +106 -0
  204. package/dist/src/initializer/stryker-config-writer.js.map +1 -0
  205. package/dist/src/initializer/stryker-initializer.d.ts +45 -0
  206. package/dist/src/initializer/stryker-initializer.d.ts.map +1 -0
  207. package/dist/src/initializer/stryker-initializer.js +184 -0
  208. package/dist/src/initializer/stryker-initializer.js.map +1 -0
  209. package/dist/src/initializer/stryker-inquirer.d.ts +15 -0
  210. package/dist/src/initializer/stryker-inquirer.d.ts.map +1 -0
  211. package/dist/src/initializer/stryker-inquirer.js +72 -0
  212. package/dist/src/initializer/stryker-inquirer.js.map +1 -0
  213. package/dist/src/logging/index.d.ts +6 -0
  214. package/dist/src/logging/index.d.ts.map +1 -0
  215. package/dist/src/logging/index.js +5 -0
  216. package/dist/src/logging/index.js.map +1 -0
  217. package/dist/src/logging/logger-impl.d.ts +19 -0
  218. package/dist/src/logging/logger-impl.d.ts.map +1 -0
  219. package/dist/src/logging/logger-impl.js +64 -0
  220. package/dist/src/logging/logger-impl.js.map +1 -0
  221. package/dist/src/logging/logging-backend.d.ts +22 -0
  222. package/dist/src/logging/logging-backend.d.ts.map +1 -0
  223. package/dist/src/logging/logging-backend.js +65 -0
  224. package/dist/src/logging/logging-backend.js.map +1 -0
  225. package/dist/src/logging/logging-client.d.ts +16 -0
  226. package/dist/src/logging/logging-client.d.ts.map +1 -0
  227. package/dist/src/logging/logging-client.js +44 -0
  228. package/dist/src/logging/logging-client.js.map +1 -0
  229. package/dist/src/logging/logging-event.d.ts +23 -0
  230. package/dist/src/logging/logging-event.d.ts.map +1 -0
  231. package/dist/src/logging/logging-event.js +63 -0
  232. package/dist/src/logging/logging-event.js.map +1 -0
  233. package/dist/src/logging/logging-server.d.ts +15 -0
  234. package/dist/src/logging/logging-server.d.ts.map +1 -0
  235. package/dist/src/logging/logging-server.js +43 -0
  236. package/dist/src/logging/logging-server.js.map +1 -0
  237. package/dist/src/logging/logging-sink.d.ts +7 -0
  238. package/dist/src/logging/logging-sink.d.ts.map +1 -0
  239. package/dist/src/logging/logging-sink.js +2 -0
  240. package/dist/src/logging/logging-sink.js.map +1 -0
  241. package/dist/src/logging/priority.d.ts +12 -0
  242. package/dist/src/logging/priority.d.ts.map +1 -0
  243. package/dist/src/logging/priority.js +13 -0
  244. package/dist/src/logging/priority.js.map +1 -0
  245. package/dist/src/logging/provide-logging.d.ts +30 -0
  246. package/dist/src/logging/provide-logging.d.ts.map +1 -0
  247. package/dist/src/logging/provide-logging.js +45 -0
  248. package/dist/src/logging/provide-logging.js.map +1 -0
  249. package/dist/src/mutants/diff-statistics-collector.d.ts +14 -0
  250. package/dist/src/mutants/diff-statistics-collector.d.ts.map +1 -0
  251. package/dist/src/mutants/diff-statistics-collector.js +40 -0
  252. package/dist/src/mutants/diff-statistics-collector.js.map +1 -0
  253. package/dist/src/mutants/incremental-differ.d.ts +39 -0
  254. package/dist/src/mutants/incremental-differ.d.ts.map +1 -0
  255. package/dist/src/mutants/incremental-differ.js +547 -0
  256. package/dist/src/mutants/incremental-differ.js.map +1 -0
  257. package/dist/src/mutants/index.d.ts +4 -0
  258. package/dist/src/mutants/index.d.ts.map +1 -0
  259. package/dist/src/mutants/index.js +4 -0
  260. package/dist/src/mutants/index.js.map +1 -0
  261. package/dist/src/mutants/mutant-test-planner.d.ts +36 -0
  262. package/dist/src/mutants/mutant-test-planner.d.ts.map +1 -0
  263. package/dist/src/mutants/mutant-test-planner.js +237 -0
  264. package/dist/src/mutants/mutant-test-planner.js.map +1 -0
  265. package/dist/src/mutants/test-coverage.d.ts +22 -0
  266. package/dist/src/mutants/test-coverage.d.ts.map +1 -0
  267. package/dist/src/mutants/test-coverage.js +87 -0
  268. package/dist/src/mutants/test-coverage.js.map +1 -0
  269. package/dist/src/process/1-prepare-executor.d.ts +22 -0
  270. package/dist/src/process/1-prepare-executor.d.ts.map +1 -0
  271. package/dist/src/process/1-prepare-executor.js +86 -0
  272. package/dist/src/process/1-prepare-executor.js.map +1 -0
  273. package/dist/src/process/2-mutant-instrumenter-executor.d.ts +39 -0
  274. package/dist/src/process/2-mutant-instrumenter-executor.d.ts.map +1 -0
  275. package/dist/src/process/2-mutant-instrumenter-executor.js +58 -0
  276. package/dist/src/process/2-mutant-instrumenter-executor.js.map +1 -0
  277. package/dist/src/process/3-dry-run-executor.d.ts +50 -0
  278. package/dist/src/process/3-dry-run-executor.d.ts.map +1 -0
  279. package/dist/src/process/3-dry-run-executor.js +164 -0
  280. package/dist/src/process/3-dry-run-executor.js.map +1 -0
  281. package/dist/src/process/4-mutation-test-executor.d.ts +56 -0
  282. package/dist/src/process/4-mutation-test-executor.d.ts.map +1 -0
  283. package/dist/src/process/4-mutation-test-executor.js +152 -0
  284. package/dist/src/process/4-mutation-test-executor.js.map +1 -0
  285. package/dist/src/process/index.d.ts +5 -0
  286. package/dist/src/process/index.d.ts.map +1 -0
  287. package/dist/src/process/index.js +5 -0
  288. package/dist/src/process/index.js.map +1 -0
  289. package/dist/src/reporters/broadcast-reporter.d.ts +25 -0
  290. package/dist/src/reporters/broadcast-reporter.d.ts.map +1 -0
  291. package/dist/src/reporters/broadcast-reporter.js +74 -0
  292. package/dist/src/reporters/broadcast-reporter.js.map +1 -0
  293. package/dist/src/reporters/ci/circle-provider.d.ts +11 -0
  294. package/dist/src/reporters/ci/circle-provider.d.ts.map +1 -0
  295. package/dist/src/reporters/ci/circle-provider.js +33 -0
  296. package/dist/src/reporters/ci/circle-provider.js.map +1 -0
  297. package/dist/src/reporters/ci/github-actions-provider.d.ts +9 -0
  298. package/dist/src/reporters/ci/github-actions-provider.d.ts.map +1 -0
  299. package/dist/src/reporters/ci/github-actions-provider.js +21 -0
  300. package/dist/src/reporters/ci/github-actions-provider.js.map +1 -0
  301. package/dist/src/reporters/ci/provider.d.ts +22 -0
  302. package/dist/src/reporters/ci/provider.d.ts.map +1 -0
  303. package/dist/src/reporters/ci/provider.js +24 -0
  304. package/dist/src/reporters/ci/provider.js.map +1 -0
  305. package/dist/src/reporters/ci/travis-provider.d.ts +9 -0
  306. package/dist/src/reporters/ci/travis-provider.d.ts.map +1 -0
  307. package/dist/src/reporters/ci/travis-provider.js +19 -0
  308. package/dist/src/reporters/ci/travis-provider.js.map +1 -0
  309. package/dist/src/reporters/clear-text-reporter.d.ts +23 -0
  310. package/dist/src/reporters/clear-text-reporter.d.ts.map +1 -0
  311. package/dist/src/reporters/clear-text-reporter.js +174 -0
  312. package/dist/src/reporters/clear-text-reporter.js.map +1 -0
  313. package/dist/src/reporters/clear-text-score-table.d.ts +22 -0
  314. package/dist/src/reporters/clear-text-score-table.d.ts.map +1 -0
  315. package/dist/src/reporters/clear-text-score-table.js +191 -0
  316. package/dist/src/reporters/clear-text-score-table.js.map +1 -0
  317. package/dist/src/reporters/dashboard-reporter/dashboard-reporter-client.d.ts +19 -0
  318. package/dist/src/reporters/dashboard-reporter/dashboard-reporter-client.d.ts.map +1 -0
  319. package/dist/src/reporters/dashboard-reporter/dashboard-reporter-client.js +54 -0
  320. package/dist/src/reporters/dashboard-reporter/dashboard-reporter-client.js.map +1 -0
  321. package/dist/src/reporters/dashboard-reporter/dashboard-reporter.d.ts +21 -0
  322. package/dist/src/reporters/dashboard-reporter/dashboard-reporter.d.ts.map +1 -0
  323. package/dist/src/reporters/dashboard-reporter/dashboard-reporter.js +62 -0
  324. package/dist/src/reporters/dashboard-reporter/dashboard-reporter.js.map +1 -0
  325. package/dist/src/reporters/dashboard-reporter/index.d.ts +7 -0
  326. package/dist/src/reporters/dashboard-reporter/index.d.ts.map +1 -0
  327. package/dist/src/reporters/dashboard-reporter/index.js +15 -0
  328. package/dist/src/reporters/dashboard-reporter/index.js.map +1 -0
  329. package/dist/src/reporters/dashboard-reporter/report.d.ts +6 -0
  330. package/dist/src/reporters/dashboard-reporter/report.d.ts.map +1 -0
  331. package/dist/src/reporters/dashboard-reporter/report.js +2 -0
  332. package/dist/src/reporters/dashboard-reporter/report.js.map +1 -0
  333. package/dist/src/reporters/dashboard-reporter/tokens.d.ts +6 -0
  334. package/dist/src/reporters/dashboard-reporter/tokens.d.ts.map +1 -0
  335. package/dist/src/reporters/dashboard-reporter/tokens.js +6 -0
  336. package/dist/src/reporters/dashboard-reporter/tokens.js.map +1 -0
  337. package/dist/src/reporters/dots-reporter.d.ts +7 -0
  338. package/dist/src/reporters/dots-reporter.d.ts.map +1 -0
  339. package/dist/src/reporters/dots-reporter.js +29 -0
  340. package/dist/src/reporters/dots-reporter.js.map +1 -0
  341. package/dist/src/reporters/event-recorder-reporter.d.ts +22 -0
  342. package/dist/src/reporters/event-recorder-reporter.d.ts.map +1 -0
  343. package/dist/src/reporters/event-recorder-reporter.js +53 -0
  344. package/dist/src/reporters/event-recorder-reporter.js.map +1 -0
  345. package/dist/src/reporters/html-reporter.d.ts +14 -0
  346. package/dist/src/reporters/html-reporter.d.ts.map +1 -0
  347. package/dist/src/reporters/html-reporter.js +65 -0
  348. package/dist/src/reporters/html-reporter.js.map +1 -0
  349. package/dist/src/reporters/index.d.ts +6 -0
  350. package/dist/src/reporters/index.d.ts.map +1 -0
  351. package/dist/src/reporters/index.js +24 -0
  352. package/dist/src/reporters/index.js.map +1 -0
  353. package/dist/src/reporters/json-reporter.d.ts +15 -0
  354. package/dist/src/reporters/json-reporter.d.ts.map +1 -0
  355. package/dist/src/reporters/json-reporter.js +29 -0
  356. package/dist/src/reporters/json-reporter.js.map +1 -0
  357. package/dist/src/reporters/mutation-test-report-helper.d.ts +40 -0
  358. package/dist/src/reporters/mutation-test-report-helper.d.ts.map +1 -0
  359. package/dist/src/reporters/mutation-test-report-helper.js +298 -0
  360. package/dist/src/reporters/mutation-test-report-helper.js.map +1 -0
  361. package/dist/src/reporters/mutation-timings-reporter.d.ts +14 -0
  362. package/dist/src/reporters/mutation-timings-reporter.d.ts.map +1 -0
  363. package/dist/src/reporters/mutation-timings-reporter.js +49 -0
  364. package/dist/src/reporters/mutation-timings-reporter.js.map +1 -0
  365. package/dist/src/reporters/progress-append-only-reporter.d.ts +10 -0
  366. package/dist/src/reporters/progress-append-only-reporter.d.ts.map +1 -0
  367. package/dist/src/reporters/progress-append-only-reporter.js +25 -0
  368. package/dist/src/reporters/progress-append-only-reporter.js.map +1 -0
  369. package/dist/src/reporters/progress-bar.d.ts +8 -0
  370. package/dist/src/reporters/progress-bar.d.ts.map +1 -0
  371. package/dist/src/reporters/progress-bar.js +6 -0
  372. package/dist/src/reporters/progress-bar.js.map +1 -0
  373. package/dist/src/reporters/progress-keeper.d.ts +27 -0
  374. package/dist/src/reporters/progress-keeper.d.ts.map +1 -0
  375. package/dist/src/reporters/progress-keeper.js +77 -0
  376. package/dist/src/reporters/progress-keeper.js.map +1 -0
  377. package/dist/src/reporters/progress-reporter.d.ts +11 -0
  378. package/dist/src/reporters/progress-reporter.d.ts.map +1 -0
  379. package/dist/src/reporters/progress-reporter.js +40 -0
  380. package/dist/src/reporters/progress-reporter.js.map +1 -0
  381. package/dist/src/reporters/reporter-util.d.ts +5 -0
  382. package/dist/src/reporters/reporter-util.d.ts.map +1 -0
  383. package/dist/src/reporters/reporter-util.js +19 -0
  384. package/dist/src/reporters/reporter-util.js.map +1 -0
  385. package/dist/src/reporters/strict-reporter.d.ts +3 -0
  386. package/dist/src/reporters/strict-reporter.d.ts.map +1 -0
  387. package/dist/src/reporters/strict-reporter.js +2 -0
  388. package/dist/src/reporters/strict-reporter.js.map +1 -0
  389. package/dist/src/sandbox/create-preprocessor.d.ts +7 -0
  390. package/dist/src/sandbox/create-preprocessor.d.ts.map +1 -0
  391. package/dist/src/sandbox/create-preprocessor.js +16 -0
  392. package/dist/src/sandbox/create-preprocessor.js.map +1 -0
  393. package/dist/src/sandbox/disable-type-checks-preprocessor.d.ts +18 -0
  394. package/dist/src/sandbox/disable-type-checks-preprocessor.d.ts.map +1 -0
  395. package/dist/src/sandbox/disable-type-checks-preprocessor.js +43 -0
  396. package/dist/src/sandbox/disable-type-checks-preprocessor.js.map +1 -0
  397. package/dist/src/sandbox/file-preprocessor.d.ts +10 -0
  398. package/dist/src/sandbox/file-preprocessor.d.ts.map +1 -0
  399. package/dist/src/sandbox/file-preprocessor.js +2 -0
  400. package/dist/src/sandbox/file-preprocessor.js.map +1 -0
  401. package/dist/src/sandbox/index.d.ts +4 -0
  402. package/dist/src/sandbox/index.d.ts.map +1 -0
  403. package/dist/src/sandbox/index.js +3 -0
  404. package/dist/src/sandbox/index.js.map +1 -0
  405. package/dist/src/sandbox/multi-preprocessor.d.ts +8 -0
  406. package/dist/src/sandbox/multi-preprocessor.d.ts.map +1 -0
  407. package/dist/src/sandbox/multi-preprocessor.js +12 -0
  408. package/dist/src/sandbox/multi-preprocessor.js.map +1 -0
  409. package/dist/src/sandbox/sandbox.d.ts +43 -0
  410. package/dist/src/sandbox/sandbox.d.ts.map +1 -0
  411. package/dist/src/sandbox/sandbox.js +134 -0
  412. package/dist/src/sandbox/sandbox.js.map +1 -0
  413. package/dist/src/sandbox/ts-config-preprocessor.d.ts +46 -0
  414. package/dist/src/sandbox/ts-config-preprocessor.d.ts.map +1 -0
  415. package/dist/src/sandbox/ts-config-preprocessor.js +112 -0
  416. package/dist/src/sandbox/ts-config-preprocessor.js.map +1 -0
  417. package/dist/src/stryker-cli.d.ts +15 -0
  418. package/dist/src/stryker-cli.d.ts.map +1 -0
  419. package/dist/src/stryker-cli.js +168 -0
  420. package/dist/src/stryker-cli.js.map +1 -0
  421. package/dist/src/stryker-package.d.ts +5 -0
  422. package/dist/src/stryker-package.d.ts.map +1 -0
  423. package/dist/src/stryker-package.js +7 -0
  424. package/dist/src/stryker-package.js.map +1 -0
  425. package/dist/src/stryker-server.d.ts +40 -0
  426. package/dist/src/stryker-server.d.ts.map +1 -0
  427. package/dist/src/stryker-server.js +234 -0
  428. package/dist/src/stryker-server.js.map +1 -0
  429. package/dist/src/stryker.d.ts +31 -0
  430. package/dist/src/stryker.d.ts.map +1 -0
  431. package/dist/src/stryker.js +86 -0
  432. package/dist/src/stryker.js.map +1 -0
  433. package/dist/src/test-runner/child-process-test-runner-proxy.d.ts +19 -0
  434. package/dist/src/test-runner/child-process-test-runner-proxy.d.ts.map +1 -0
  435. package/dist/src/test-runner/child-process-test-runner-proxy.js +45 -0
  436. package/dist/src/test-runner/child-process-test-runner-proxy.js.map +1 -0
  437. package/dist/src/test-runner/child-process-test-runner-worker.d.ts +14 -0
  438. package/dist/src/test-runner/child-process-test-runner-worker.d.ts.map +1 -0
  439. package/dist/src/test-runner/child-process-test-runner-worker.js +45 -0
  440. package/dist/src/test-runner/child-process-test-runner-worker.js.map +1 -0
  441. package/dist/src/test-runner/command-test-runner.d.ts +31 -0
  442. package/dist/src/test-runner/command-test-runner.d.ts.map +1 -0
  443. package/dist/src/test-runner/command-test-runner.js +144 -0
  444. package/dist/src/test-runner/command-test-runner.js.map +1 -0
  445. package/dist/src/test-runner/index.d.ts +11 -0
  446. package/dist/src/test-runner/index.d.ts.map +1 -0
  447. package/dist/src/test-runner/index.js +18 -0
  448. package/dist/src/test-runner/index.js.map +1 -0
  449. package/dist/src/test-runner/max-test-runner-reuse-decorator.d.ts +14 -0
  450. package/dist/src/test-runner/max-test-runner-reuse-decorator.d.ts.map +1 -0
  451. package/dist/src/test-runner/max-test-runner-reuse-decorator.js +25 -0
  452. package/dist/src/test-runner/max-test-runner-reuse-decorator.js.map +1 -0
  453. package/dist/src/test-runner/reload-environment-decorator.d.ts +11 -0
  454. package/dist/src/test-runner/reload-environment-decorator.d.ts.map +1 -0
  455. package/dist/src/test-runner/reload-environment-decorator.js +56 -0
  456. package/dist/src/test-runner/reload-environment-decorator.js.map +1 -0
  457. package/dist/src/test-runner/retry-rejected-decorator.d.ts +15 -0
  458. package/dist/src/test-runner/retry-rejected-decorator.d.ts.map +1 -0
  459. package/dist/src/test-runner/retry-rejected-decorator.js +59 -0
  460. package/dist/src/test-runner/retry-rejected-decorator.js.map +1 -0
  461. package/dist/src/test-runner/test-runner-decorator.d.ts +8 -0
  462. package/dist/src/test-runner/test-runner-decorator.d.ts.map +1 -0
  463. package/dist/src/test-runner/test-runner-decorator.js +13 -0
  464. package/dist/src/test-runner/test-runner-decorator.js.map +1 -0
  465. package/dist/src/test-runner/timeout-decorator.d.ts +15 -0
  466. package/dist/src/test-runner/timeout-decorator.d.ts.map +1 -0
  467. package/dist/src/test-runner/timeout-decorator.js +51 -0
  468. package/dist/src/test-runner/timeout-decorator.js.map +1 -0
  469. package/dist/src/unexpected-exit-handler.d.ts +13 -0
  470. package/dist/src/unexpected-exit-handler.d.ts.map +1 -0
  471. package/dist/src/unexpected-exit-handler.js +28 -0
  472. package/dist/src/unexpected-exit-handler.js.map +1 -0
  473. package/dist/src/utils/file-utils.d.ts +30 -0
  474. package/dist/src/utils/file-utils.d.ts.map +1 -0
  475. package/dist/src/utils/file-utils.js +101 -0
  476. package/dist/src/utils/file-utils.js.map +1 -0
  477. package/dist/src/utils/index.d.ts +7 -0
  478. package/dist/src/utils/index.d.ts.map +1 -0
  479. package/dist/src/utils/index.js +7 -0
  480. package/dist/src/utils/index.js.map +1 -0
  481. package/dist/src/utils/json-rpc-event-deserializer.d.ts +5 -0
  482. package/dist/src/utils/json-rpc-event-deserializer.d.ts.map +1 -0
  483. package/dist/src/utils/json-rpc-event-deserializer.js +42 -0
  484. package/dist/src/utils/json-rpc-event-deserializer.js.map +1 -0
  485. package/dist/src/utils/object-utils.d.ts +37 -0
  486. package/dist/src/utils/object-utils.d.ts.map +1 -0
  487. package/dist/src/utils/object-utils.js +91 -0
  488. package/dist/src/utils/object-utils.js.map +1 -0
  489. package/dist/src/utils/string-builder.d.ts +9 -0
  490. package/dist/src/utils/string-builder.d.ts.map +1 -0
  491. package/dist/src/utils/string-builder.js +26 -0
  492. package/dist/src/utils/string-builder.js.map +1 -0
  493. package/dist/src/utils/string-utils.d.ts +12 -0
  494. package/dist/src/utils/string-utils.d.ts.map +1 -0
  495. package/dist/src/utils/string-utils.js +54 -0
  496. package/dist/src/utils/string-utils.js.map +1 -0
  497. package/dist/src/utils/temporary-directory.d.ts +18 -0
  498. package/dist/src/utils/temporary-directory.d.ts.map +1 -0
  499. package/dist/src/utils/temporary-directory.js +63 -0
  500. package/dist/src/utils/temporary-directory.js.map +1 -0
  501. package/dist/src/utils/timer.d.ts +14 -0
  502. package/dist/src/utils/timer.d.ts.map +1 -0
  503. package/dist/src/utils/timer.js +53 -0
  504. package/dist/src/utils/timer.js.map +1 -0
  505. package/package.json +106 -0
  506. package/schema/stryker-schema.json +855 -0
  507. package/src/checker/checker-child-process-proxy.ts +67 -0
  508. package/src/checker/checker-facade.ts +90 -0
  509. package/src/checker/checker-factory.ts +46 -0
  510. package/src/checker/checker-resource.ts +12 -0
  511. package/src/checker/checker-retry-decorator.ts +57 -0
  512. package/src/checker/checker-worker.ts +62 -0
  513. package/src/checker/index.ts +3 -0
  514. package/src/child-proxy/child-process-crashed-error.ts +16 -0
  515. package/src/child-proxy/child-process-proxy-worker.ts +203 -0
  516. package/src/child-proxy/child-process-proxy.ts +353 -0
  517. package/src/child-proxy/id-generator.ts +6 -0
  518. package/src/child-proxy/message-protocol.ts +87 -0
  519. package/src/child-proxy/out-of-memory-error.ts +11 -0
  520. package/src/concurrent/concurrency-token-provider.ts +106 -0
  521. package/src/concurrent/index.ts +3 -0
  522. package/src/concurrent/pool.ts +209 -0
  523. package/src/concurrent/resource-decorator.ts +28 -0
  524. package/src/config/config-file-formats.ts +31 -0
  525. package/src/config/config-reader.ts +193 -0
  526. package/src/config/file-matcher.ts +36 -0
  527. package/src/config/index.ts +5 -0
  528. package/src/config/meta-schema-builder.ts +50 -0
  529. package/src/config/options-validator.ts +317 -0
  530. package/src/config/validation-errors.ts +192 -0
  531. package/src/di/core-tokens.ts +39 -0
  532. package/src/di/index.ts +4 -0
  533. package/src/di/plugin-creator.ts +102 -0
  534. package/src/di/plugin-loader.ts +245 -0
  535. package/src/errors.ts +12 -0
  536. package/src/fs/file-system.ts +63 -0
  537. package/src/fs/index.ts +4 -0
  538. package/src/fs/project-file.ts +100 -0
  539. package/src/fs/project-reader.ts +493 -0
  540. package/src/fs/project.ts +98 -0
  541. package/src/index.ts +7 -0
  542. package/src/initializer/custom-initializers/angular-initializer.ts +95 -0
  543. package/src/initializer/custom-initializers/custom-initializer.ts +14 -0
  544. package/src/initializer/custom-initializers/index.ts +31 -0
  545. package/src/initializer/custom-initializers/react-initializer.ts +35 -0
  546. package/src/initializer/custom-initializers/svelte-initializer.ts +40 -0
  547. package/src/initializer/custom-initializers/vue-js-initializer.ts +30 -0
  548. package/src/initializer/gitignore-writer.ts +33 -0
  549. package/src/initializer/index.ts +35 -0
  550. package/src/initializer/initializer-tokens.ts +8 -0
  551. package/src/initializer/inquire.ts +17 -0
  552. package/src/initializer/npm-client.ts +103 -0
  553. package/src/initializer/npm-registry.ts +48 -0
  554. package/src/initializer/package-info.ts +10 -0
  555. package/src/initializer/prompt-option.ts +6 -0
  556. package/src/initializer/stryker-config-writer.ts +158 -0
  557. package/src/initializer/stryker-initializer.ts +278 -0
  558. package/src/initializer/stryker-inquirer.ts +101 -0
  559. package/src/logging/index.ts +5 -0
  560. package/src/logging/logger-impl.ts +81 -0
  561. package/src/logging/logging-backend.ts +90 -0
  562. package/src/logging/logging-client.ts +56 -0
  563. package/src/logging/logging-event.ts +94 -0
  564. package/src/logging/logging-server.ts +56 -0
  565. package/src/logging/logging-sink.ts +7 -0
  566. package/src/logging/priority.ts +15 -0
  567. package/src/logging/provide-logging.ts +70 -0
  568. package/src/mutants/diff-statistics-collector.ts +47 -0
  569. package/src/mutants/incremental-differ.ts +771 -0
  570. package/src/mutants/index.ts +3 -0
  571. package/src/mutants/mutant-test-planner.ts +357 -0
  572. package/src/mutants/test-coverage.ts +125 -0
  573. package/src/process/1-prepare-executor.ts +133 -0
  574. package/src/process/2-mutant-instrumenter-executor.ts +122 -0
  575. package/src/process/3-dry-run-executor.ts +262 -0
  576. package/src/process/4-mutation-test-executor.ts +272 -0
  577. package/src/process/index.ts +4 -0
  578. package/src/reporters/broadcast-reporter.ts +129 -0
  579. package/src/reporters/ci/circle-provider.ts +50 -0
  580. package/src/reporters/ci/github-actions-provider.ts +22 -0
  581. package/src/reporters/ci/provider.ts +42 -0
  582. package/src/reporters/ci/travis-provider.ts +24 -0
  583. package/src/reporters/clear-text-reporter.ts +245 -0
  584. package/src/reporters/clear-text-score-table.ts +305 -0
  585. package/src/reporters/dashboard-reporter/dashboard-reporter-client.ts +89 -0
  586. package/src/reporters/dashboard-reporter/dashboard-reporter.ts +97 -0
  587. package/src/reporters/dashboard-reporter/index.ts +30 -0
  588. package/src/reporters/dashboard-reporter/report.ts +6 -0
  589. package/src/reporters/dashboard-reporter/tokens.ts +5 -0
  590. package/src/reporters/dots-reporter.ts +33 -0
  591. package/src/reporters/event-recorder-reporter.ts +88 -0
  592. package/src/reporters/html-reporter.ts +87 -0
  593. package/src/reporters/index.ts +48 -0
  594. package/src/reporters/json-reporter.ts +45 -0
  595. package/src/reporters/mutation-test-report-helper.ts +425 -0
  596. package/src/reporters/mutation-timings-reporter.ts +78 -0
  597. package/src/reporters/progress-append-only-reporter.ts +36 -0
  598. package/src/reporters/progress-bar.ts +6 -0
  599. package/src/reporters/progress-keeper.ts +113 -0
  600. package/src/reporters/progress-reporter.ts +62 -0
  601. package/src/reporters/reporter-util.ts +20 -0
  602. package/src/reporters/strict-reporter.ts +3 -0
  603. package/src/sandbox/create-preprocessor.ts +27 -0
  604. package/src/sandbox/disable-type-checks-preprocessor.ts +70 -0
  605. package/src/sandbox/file-preprocessor.ts +10 -0
  606. package/src/sandbox/index.ts +3 -0
  607. package/src/sandbox/multi-preprocessor.ts +13 -0
  608. package/src/sandbox/sandbox.ts +198 -0
  609. package/src/sandbox/ts-config-preprocessor.ts +168 -0
  610. package/src/stryker-cli.ts +363 -0
  611. package/src/stryker-package.ts +19 -0
  612. package/src/stryker-server.ts +334 -0
  613. package/src/stryker.ts +126 -0
  614. package/src/test-runner/child-process-test-runner-proxy.ts +94 -0
  615. package/src/test-runner/child-process-test-runner-worker.ts +66 -0
  616. package/src/test-runner/command-test-runner.ts +190 -0
  617. package/src/test-runner/index.ts +74 -0
  618. package/src/test-runner/max-test-runner-reuse-decorator.ts +41 -0
  619. package/src/test-runner/reload-environment-decorator.ts +72 -0
  620. package/src/test-runner/retry-rejected-decorator.ts +79 -0
  621. package/src/test-runner/test-runner-decorator.ts +22 -0
  622. package/src/test-runner/timeout-decorator.ts +71 -0
  623. package/src/unexpected-exit-handler.ts +36 -0
  624. package/src/utils/file-utils.ts +113 -0
  625. package/src/utils/index.ts +6 -0
  626. package/src/utils/json-rpc-event-deserializer.ts +48 -0
  627. package/src/utils/object-utils.ts +106 -0
  628. package/src/utils/string-builder.ts +30 -0
  629. package/src/utils/string-utils.ts +61 -0
  630. package/src/utils/temporary-directory.ts +83 -0
  631. package/src/utils/timer.ts +58 -0
@@ -0,0 +1,154 @@
1
+ import groupby from 'lodash.groupby';
2
+ /**
3
+ * Convert AJV errors to human readable messages
4
+ * @param allErrors The AJV errors to describe
5
+ */
6
+ export function describeErrors(allErrors) {
7
+ const processedErrors = filterRelevantErrors(allErrors);
8
+ return processedErrors.map(describeError);
9
+ }
10
+ /**
11
+ * Filters the relevant AJV errors for error reporting.
12
+ * Removes meta schema errors, merges type errors for the same `dataPath` and removes type errors for which another error also exist.
13
+ * @param allErrors The raw source AJV errors
14
+ * @example
15
+ * This:
16
+ * ```
17
+ * [
18
+ * {
19
+ * keyword: 'type',
20
+ * dataPath: '.mutator',
21
+ * params: { type: 'string' },
22
+ * [...]
23
+ * },
24
+ * {
25
+ * keyword: 'required',
26
+ * dataPath: '.mutator',
27
+ * params: { missingProperty: 'name' },
28
+ * [...]
29
+ * },
30
+ * {
31
+ * keyword: 'oneOf',
32
+ * dataPath: '.mutator',
33
+ * params: { passingSchemas: null },
34
+ * [...]
35
+ * }
36
+ * ]
37
+ * ```
38
+ *
39
+ * Becomes:
40
+ * ```
41
+ * [
42
+ * {
43
+ * keyword: 'required',
44
+ * dataPath: '.mutator',
45
+ * params: { missingProperty: 'name' },
46
+ * [...]
47
+ * }
48
+ * ]
49
+ * ```
50
+ */
51
+ function filterRelevantErrors(allErrors) {
52
+ // These are the "meta schema" keywords. A Meta schema is a schema consisting of other schemas. See https://json-schema.org/understanding-json-schema/structuring.html
53
+ const META_SCHEMA_KEYWORDS = Object.freeze(['anyOf', 'allOf', 'oneOf']);
54
+ // Split the meta errors from what I call "single errors" (the real errors)
55
+ const [metaErrors, singleErrors] = split(allErrors, (error) => META_SCHEMA_KEYWORDS.includes(error.keyword));
56
+ // Filter out the single errors we want to show
57
+ const nonShadowedSingleErrors = removeShadowingErrors(singleErrors, metaErrors);
58
+ // We're handling type errors differently, split them out
59
+ const [typeErrors, nonTypeErrors] = split(nonShadowedSingleErrors, (error) => error.keyword === 'type');
60
+ // Filter out the type errors that already have other errors as well.
61
+ // For example when setting `logLevel: 4`, we don't want to see the error specifying that logLevel should be a string,
62
+ // if the other error already specified that it should be one of the enum values.
63
+ const nonShadowingTypeErrors = typeErrors.filter((typeError) => !nonTypeErrors.some((nonTypeError) => nonTypeError.instancePath === typeError.instancePath));
64
+ const typeErrorsMerged = mergeTypeErrorsByPath(nonShadowingTypeErrors);
65
+ return [...nonTypeErrors, ...typeErrorsMerged];
66
+ }
67
+ /**
68
+ * Remove the single errors that are pointing to the same data path.
69
+ * This can happen when using meta schemas.
70
+ * For example, the "mutator" Stryker option can be either a `string` or a `MutatorDescriptor`.
71
+ * A data object of `{ "foo": "bar" }` would result in 2 errors. One of a missing property "name" missing, and one that mutator itself should be a string.
72
+ * @param singleErrors The 'real' errors
73
+ * @param metaErrors The grouping errors
74
+ */
75
+ function removeShadowingErrors(singleErrors, metaErrors) {
76
+ return singleErrors.filter((error) => {
77
+ if (metaErrors.some((metaError) => error.instancePath.startsWith(metaError.instancePath))) {
78
+ return !singleErrors.some((otherError) => otherError.instancePath.startsWith(error.instancePath) &&
79
+ otherError.instancePath.length > error.instancePath.length);
80
+ }
81
+ else {
82
+ return true;
83
+ }
84
+ });
85
+ }
86
+ function split(items, splitFn) {
87
+ return [items.filter(splitFn), items.filter((error) => !splitFn(error))];
88
+ }
89
+ /**
90
+ * Merge type errors that have the same path into 1.
91
+ * @example
92
+ * The 'plugins' Stryker option can have 2 types, null or an array of strings.
93
+ * When setting `plugins: 'my-plugin'` we get 2 type errors, because it isn't an array AND it isn't `null`.
94
+ * @param typeErrors The type errors to merge by path
95
+ */
96
+ function mergeTypeErrorsByPath(typeErrors) {
97
+ const typeErrorsByPath = groupby(typeErrors, (error) => error.instancePath);
98
+ return Object.values(typeErrorsByPath).map(mergeTypeErrors);
99
+ function mergeTypeErrors(errors) {
100
+ const params = {
101
+ type: errors.map((error) => error.params.type).join(','),
102
+ };
103
+ return {
104
+ ...errors[0],
105
+ params,
106
+ };
107
+ }
108
+ }
109
+ /**
110
+ * Converts the AJV error object to a human readable error.
111
+ * @param error The error to describe
112
+ */
113
+ function describeError(error) {
114
+ const errorPrefix = `Config option "${error.instancePath.substr(1)}"`;
115
+ switch (error.keyword) {
116
+ case 'type': {
117
+ const expectedTypeDescription = error.params.type.split(',').join(' or ');
118
+ return `${errorPrefix} has the wrong type. It should be a ${expectedTypeDescription}, but was a ${jsonSchemaType(error.data)}.`;
119
+ }
120
+ case 'enum':
121
+ return `${errorPrefix} should be one of the allowed values (${new Intl.ListFormat('en', { type: 'disjunction' }).format(error.params.allowedValues.map(stringify))}), but was ${stringify(error.data)}.`;
122
+ case 'minimum':
123
+ case 'maximum':
124
+ return `${errorPrefix} ${error.message}, was ${String(error.data)}.`;
125
+ default:
126
+ return `${errorPrefix} ${error.message.replace(/'/g, '"')}`;
127
+ }
128
+ }
129
+ /**
130
+ * Returns the JSON schema name of the type. JSON schema types are slightly different from actual JS types.
131
+ * @see https://json-schema.org/understanding-json-schema/reference/type.html
132
+ * @param value The value of which it's type should be known
133
+ */
134
+ function jsonSchemaType(value) {
135
+ if (value === null) {
136
+ return 'null';
137
+ }
138
+ if (value === undefined) {
139
+ return 'undefined';
140
+ }
141
+ if (Array.isArray(value)) {
142
+ return 'array';
143
+ }
144
+ return typeof value;
145
+ }
146
+ function stringify(value) {
147
+ if (typeof value === 'number' && isNaN(value)) {
148
+ return 'NaN';
149
+ }
150
+ else {
151
+ return JSON.stringify(value);
152
+ }
153
+ }
154
+ //# sourceMappingURL=validation-errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation-errors.js","sourceRoot":"","sources":["../../../src/config/validation-errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ export declare const checkerPool = "checkerPool";
2
+ export declare const checkerFactory = "checkerFactory";
3
+ export declare const checkerConcurrencyTokens = "checkerConcurrencyTokens";
4
+ export declare const disableTypeChecksHelper = "disableTypeChecksHelper";
5
+ export declare const execa = "execa";
6
+ export declare const execaSync = "execaSync";
7
+ export declare const dryRunResult = "dryRunResult";
8
+ export declare const mutants = "mutants";
9
+ export declare const mutantTestPlanner = "mutantTestPlanner";
10
+ export declare const process = "process";
11
+ export declare const pluginModulePaths = "pluginModulePaths";
12
+ export declare const temporaryDirectory = "temporaryDirectory";
13
+ export declare const unexpectedExitRegistry = "unexpectedExitRegistry";
14
+ export declare const timer = "timer";
15
+ export declare const timeOverheadMS = "timeOverheadMS";
16
+ export declare const loggingServerAddress = "loggingServerAddress";
17
+ export declare const loggerActiveLevel = "loggerActiveLevel";
18
+ export declare const loggerConsoleOut = "loggerConsoleOut";
19
+ export declare const loggingSink = "loggingSink";
20
+ export declare const loggingServer = "loggingServer";
21
+ export declare const mutationTestReportHelper = "mutationTestReportHelper";
22
+ export declare const sandbox = "sandbox";
23
+ export declare const concurrencyTokenProvider = "concurrencyTokenProvider";
24
+ export declare const testRunnerFactory = "testRunnerFactory";
25
+ export declare const testRunnerPool = "testRunnerPool";
26
+ export declare const testRunnerConcurrencyTokens = "testRunnerConcurrencyTokens";
27
+ export declare const reporter = "reporter";
28
+ export declare const reporterOverride = "reporterOverride";
29
+ export declare const pluginCreator = "pluginCreator";
30
+ export declare const pluginsByKind = "pluginsByKind";
31
+ export declare const validationSchema = "validationSchema";
32
+ export declare const optionsValidator = "optionsValidator";
33
+ export declare const requireFromCwd = "requireFromCwd";
34
+ export declare const resolveFromCwd = "resolveFromCwd";
35
+ export declare const fs = "fs";
36
+ export declare const testCoverage = "testCoverage";
37
+ export declare const incrementalDiffer = "incrementalDiffer";
38
+ export declare const project = "project";
39
+ export declare const workerIdGenerator = "worker-id-generator";
40
+ //# sourceMappingURL=core-tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-tokens.d.ts","sourceRoot":"","sources":["../../../src/di/core-tokens.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,gBAAgB,CAAC;AACzC,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAC/C,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AACnE,eAAO,MAAM,uBAAuB,4BAA4B,CAAC;AACjE,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,SAAS,cAAc,CAAC;AACrC,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAC3C,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AACrD,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AACrD,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AACvD,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAC/D,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAC/C,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAC3D,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AACrD,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AACnD,eAAO,MAAM,WAAW,gBAAgB,CAAC;AACzC,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAC7C,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AACnE,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AACnE,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AACrD,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAC/C,eAAO,MAAM,2BAA2B,gCAAgC,CAAC;AACzE,eAAO,MAAM,QAAQ,aAAa,CAAC;AACnC,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AACnD,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAC7C,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAC7C,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AACnD,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AACnD,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAC/C,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAC/C,eAAO,MAAM,EAAE,OAAO,CAAC;AACvB,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAC3C,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AACrD,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC,eAAO,MAAM,iBAAiB,wBAAwB,CAAC"}
@@ -0,0 +1,40 @@
1
+ export const checkerPool = 'checkerPool';
2
+ export const checkerFactory = 'checkerFactory';
3
+ export const checkerConcurrencyTokens = 'checkerConcurrencyTokens';
4
+ export const disableTypeChecksHelper = 'disableTypeChecksHelper';
5
+ export const execa = 'execa';
6
+ export const execaSync = 'execaSync';
7
+ export const dryRunResult = 'dryRunResult';
8
+ export const mutants = 'mutants';
9
+ export const mutantTestPlanner = 'mutantTestPlanner';
10
+ export const process = 'process';
11
+ export const pluginModulePaths = 'pluginModulePaths';
12
+ export const temporaryDirectory = 'temporaryDirectory';
13
+ export const unexpectedExitRegistry = 'unexpectedExitRegistry';
14
+ export const timer = 'timer';
15
+ export const timeOverheadMS = 'timeOverheadMS';
16
+ export const loggingServerAddress = 'loggingServerAddress';
17
+ export const loggerActiveLevel = 'loggerActiveLevel';
18
+ export const loggerConsoleOut = 'loggerConsoleOut';
19
+ export const loggingSink = 'loggingSink';
20
+ export const loggingServer = 'loggingServer';
21
+ export const mutationTestReportHelper = 'mutationTestReportHelper';
22
+ export const sandbox = 'sandbox';
23
+ export const concurrencyTokenProvider = 'concurrencyTokenProvider';
24
+ export const testRunnerFactory = 'testRunnerFactory';
25
+ export const testRunnerPool = 'testRunnerPool';
26
+ export const testRunnerConcurrencyTokens = 'testRunnerConcurrencyTokens';
27
+ export const reporter = 'reporter';
28
+ export const reporterOverride = 'reporterOverride';
29
+ export const pluginCreator = 'pluginCreator';
30
+ export const pluginsByKind = 'pluginsByKind';
31
+ export const validationSchema = 'validationSchema';
32
+ export const optionsValidator = 'optionsValidator';
33
+ export const requireFromCwd = 'requireFromCwd';
34
+ export const resolveFromCwd = 'resolveFromCwd';
35
+ export const fs = 'fs';
36
+ export const testCoverage = 'testCoverage';
37
+ export const incrementalDiffer = 'incrementalDiffer';
38
+ export const project = 'project';
39
+ export const workerIdGenerator = 'worker-id-generator';
40
+ //# sourceMappingURL=core-tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-tokens.js","sourceRoot":"","sources":["../../../src/di/core-tokens.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC;AACzC,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAC/C,MAAM,CAAC,MAAM,wBAAwB,GAAG,0BAA0B,CAAC;AACnE,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AACjE,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAC;AAC7B,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC;AACrC,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC;AAC3C,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAC;AACjC,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AACrD,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAC;AACjC,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AACrD,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AACvD,MAAM,CAAC,MAAM,sBAAsB,GAAG,wBAAwB,CAAC;AAC/D,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAC;AAC7B,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAC/C,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAC3D,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AACrD,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AACnD,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC;AACzC,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC;AAC7C,MAAM,CAAC,MAAM,wBAAwB,GAAG,0BAA0B,CAAC;AACnE,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAC;AACjC,MAAM,CAAC,MAAM,wBAAwB,GAAG,0BAA0B,CAAC;AACnE,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AACrD,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAC/C,MAAM,CAAC,MAAM,2BAA2B,GAAG,6BAA6B,CAAC;AACzE,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;AACnC,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AACnD,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC;AAC7C,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC;AAC7C,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AACnD,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AACnD,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAC/C,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAC/C,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;AACvB,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC;AAC3C,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AACrD,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAC;AACjC,MAAM,CAAC,MAAM,iBAAiB,GAAG,qBAAqB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * as coreTokens from './core-tokens.js';
2
+ export * from './plugin-loader.js';
3
+ export * from './plugin-creator.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/di/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAE/C,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * as coreTokens from './core-tokens.js';
2
+ export * from './plugin-loader.js';
3
+ export * from './plugin-creator.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/di/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAE/C,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { Plugins, PluginInterfaces, PluginContext, Injector, Plugin, PluginKind } from '@stryker-mutator/api/plugin';
2
+ export declare class PluginCreator {
3
+ private readonly pluginsByKind;
4
+ private readonly injector;
5
+ static readonly inject: ["pluginsByKind", "$injector"];
6
+ constructor(pluginsByKind: Map<PluginKind, Array<Plugin<PluginKind>>>, injector: Injector<PluginContext>);
7
+ create<TPlugin extends keyof Plugins>(kind: TPlugin, name: string): PluginInterfaces[TPlugin];
8
+ private findPlugin;
9
+ }
10
+ //# sourceMappingURL=plugin-creator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-creator.d.ts","sourceRoot":"","sources":["../../../src/di/plugin-creator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,gBAAgB,EAChB,aAAa,EACb,QAAQ,EACR,MAAM,EACN,UAAU,EAOX,MAAM,6BAA6B,CAAC;AAKrC,qBAAa,aAAa;IAMtB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAN3B,gBAAuB,MAAM,iCAG3B;gBAEiB,aAAa,EAAE,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EACzD,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC;IAG7C,MAAM,CAAC,OAAO,SAAS,MAAM,OAAO,EACzC,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,MAAM,GACX,gBAAgB,CAAC,OAAO,CAAC;IA0B5B,OAAO,CAAC,UAAU;CAsBnB"}
@@ -0,0 +1,51 @@
1
+ import { tokens, commonTokens, } from '@stryker-mutator/api/plugin';
2
+ import { coreTokens } from './index.js';
3
+ export class PluginCreator {
4
+ pluginsByKind;
5
+ injector;
6
+ static inject = tokens(coreTokens.pluginsByKind, commonTokens.injector);
7
+ constructor(pluginsByKind, injector) {
8
+ this.pluginsByKind = pluginsByKind;
9
+ this.injector = injector;
10
+ }
11
+ create(kind, name) {
12
+ const plugin = this.findPlugin(kind, name);
13
+ if (isFactoryPlugin(plugin)) {
14
+ return this.injector.injectFunction(plugin.factory);
15
+ }
16
+ else if (isClassPlugin(plugin)) {
17
+ return this.injector.injectClass(plugin.injectableClass);
18
+ }
19
+ else if (isValuePlugin(plugin)) {
20
+ return plugin.value;
21
+ }
22
+ throw new Error(`Plugin "${kind}:${name}" could not be created, missing "factory", "injectableClass" or "value" property.`);
23
+ }
24
+ findPlugin(kind, name) {
25
+ const plugins = this.pluginsByKind.get(kind);
26
+ if (plugins) {
27
+ const pluginFound = plugins.find((plugin) => plugin.name.toLowerCase() === name.toLowerCase());
28
+ if (pluginFound) {
29
+ return pluginFound;
30
+ }
31
+ else {
32
+ throw new Error(`Cannot find ${kind} plugin "${name}". Did you forget to install it? Loaded ${kind} plugins were: ${new Intl.ListFormat('en').format(plugins.map((p) => `"${p.name}"`))}`);
33
+ }
34
+ }
35
+ else {
36
+ throw new Error(`Cannot find ${kind} plugin "${name}". In fact, no ${kind} plugins were loaded. Did you forget to install it?`);
37
+ }
38
+ }
39
+ }
40
+ function isFactoryPlugin(plugin) {
41
+ return Boolean(plugin
42
+ .factory);
43
+ }
44
+ function isClassPlugin(plugin) {
45
+ return Boolean(plugin
46
+ .injectableClass);
47
+ }
48
+ function isValuePlugin(plugin) {
49
+ return Boolean(plugin.value);
50
+ }
51
+ //# sourceMappingURL=plugin-creator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-creator.js","sourceRoot":"","sources":["../../../src/di/plugin-creator.ts"],"names":[],"mappings":"AAAA,OAAO,EAUL,MAAM,EACN,YAAY,GAEb,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,OAAO,aAAa;IAML;IACA;IANZ,MAAM,CAAU,MAAM,GAAG,MAAM,CACpC,UAAU,CAAC,aAAa,EACxB,YAAY,CAAC,QAAQ,CACtB,CAAC;IACF,YACmB,aAAyD,EACzD,QAAiC;QADjC,kBAAa,GAAb,aAAa,CAA4C;QACzD,aAAQ,GAAR,QAAQ,CAAyB;IACjD,CAAC;IAEG,MAAM,CACX,IAAa,EACb,IAAY;QAEZ,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3C,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CACjC,MAAM,CAAC,OAIN,CACF,CAAC;QACJ,CAAC;aAAM,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAC9B,MAAM,CAAC,eAIN,CACF,CAAC;QACJ,CAAC;aAAM,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,OAAO,MAAM,CAAC,KAAK,CAAC;QACtB,CAAC;QACD,MAAM,IAAI,KAAK,CACb,WAAW,IAAI,IAAI,IAAI,mFAAmF,CAC3G,CAAC;IACJ,CAAC;IAEO,UAAU,CAChB,IAAO,EACP,IAAY;QAEZ,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAC9B,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAC7D,CAAC;YACF,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,WAAyB,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CACb,eAAe,IAAI,YAAY,IAAI,2CAA2C,IAAI,kBAAkB,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAC1K,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb,eAAe,IAAI,YAAY,IAAI,kBAAkB,IAAI,qDAAqD,CAC/G,CAAC;QACJ,CAAC;IACH,CAAC;;AAGH,SAAS,eAAe,CACtB,MAA0B;IAE1B,OAAO,OAAO,CACX,MAA0E;SACxE,OAAO,CACX,CAAC;AACJ,CAAC;AACD,SAAS,aAAa,CACpB,MAA0B;IAE1B,OAAO,OAAO,CACX,MAAwE;SACtE,eAAe,CACnB,CAAC;AACJ,CAAC;AACD,SAAS,aAAa,CACpB,MAA0B;IAE1B,OAAO,OAAO,CAAE,MAAkC,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { Logger } from '@stryker-mutator/api/logging';
2
+ import { Plugin, PluginKind } from '@stryker-mutator/api/plugin';
3
+ /**
4
+ * Represents a collection of loaded plugins and metadata
5
+ */
6
+ export interface LoadedPlugins {
7
+ /**
8
+ * The JSON schema contributions loaded
9
+ */
10
+ schemaContributions: Array<Record<string, unknown>>;
11
+ /**
12
+ * The actual Stryker plugins loaded, sorted by type
13
+ */
14
+ pluginsByKind: Map<PluginKind, Array<Plugin<PluginKind>>>;
15
+ /**
16
+ * The import specifiers or full URL paths to the actual plugins
17
+ */
18
+ pluginModulePaths: string[];
19
+ }
20
+ /**
21
+ * Can resolve modules and pull them into memory
22
+ */
23
+ export declare class PluginLoader {
24
+ private readonly log;
25
+ static inject: ["logger"];
26
+ constructor(log: Logger);
27
+ /**
28
+ * Loads plugins based on configured plugin descriptors.
29
+ * A plugin descriptor can be:
30
+ * * A full url: "file:///home/nicojs/github/my-plugin.js"
31
+ * * An absolute file path: "/home/nicojs/github/my-plugin.js"
32
+ * * A relative path: "./my-plugin.js"
33
+ * * A bare import expression: "@stryker-mutator/karma-runner"
34
+ * * A simple glob expression (only wild cards are supported): "@stryker-mutator/*"
35
+ */
36
+ load(pluginDescriptors: readonly string[]): Promise<LoadedPlugins>;
37
+ private resolvePluginModules;
38
+ private globPluginModules;
39
+ private loadPlugin;
40
+ }
41
+ //# sourceMappingURL=plugin-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-loader.d.ts","sourceRoot":"","sources":["../../../src/di/plugin-loader.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAGL,MAAM,EACN,UAAU,EACX,MAAM,6BAA6B,CAAC;AAgBrC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,mBAAmB,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD;;OAEG;IACH,aAAa,EAAE,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC1D;;OAEG;IACH,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,qBAAa,YAAY;IAEX,OAAO,CAAC,QAAQ,CAAC,GAAG;IADhC,OAAc,MAAM,aAA+B;gBACtB,GAAG,EAAE,MAAM;IAExC;;;;;;;;OAQG;IACU,IAAI,CACf,iBAAiB,EAAE,SAAS,MAAM,EAAE,GACnC,OAAO,CAAC,aAAa,CAAC;YAyCX,oBAAoB;YAwBpB,iBAAiB;YAkCjB,UAAU;CAkDzB"}
@@ -0,0 +1,153 @@
1
+ import path from 'path';
2
+ import fs from 'fs';
3
+ import { fileURLToPath, pathToFileURL, URL } from 'url';
4
+ import { tokens, commonTokens, } from '@stryker-mutator/api/plugin';
5
+ import { notEmpty, propertyPath } from '@stryker-mutator/util';
6
+ import { fileUtils } from '../utils/file-utils.js';
7
+ import { defaultOptions } from '../config/options-validator.js';
8
+ const IGNORED_PACKAGES = ['core', 'api', 'util', 'instrumenter'];
9
+ /**
10
+ * Can resolve modules and pull them into memory
11
+ */
12
+ export class PluginLoader {
13
+ log;
14
+ static inject = tokens(commonTokens.logger);
15
+ constructor(log) {
16
+ this.log = log;
17
+ }
18
+ /**
19
+ * Loads plugins based on configured plugin descriptors.
20
+ * A plugin descriptor can be:
21
+ * * A full url: "file:///home/nicojs/github/my-plugin.js"
22
+ * * An absolute file path: "/home/nicojs/github/my-plugin.js"
23
+ * * A relative path: "./my-plugin.js"
24
+ * * A bare import expression: "@stryker-mutator/karma-runner"
25
+ * * A simple glob expression (only wild cards are supported): "@stryker-mutator/*"
26
+ */
27
+ async load(pluginDescriptors) {
28
+ const pluginModules = await this.resolvePluginModules(pluginDescriptors);
29
+ const loadedPluginModules = (await Promise.all(pluginModules.map(async (moduleName) => {
30
+ const plugin = await this.loadPlugin(moduleName);
31
+ return {
32
+ ...plugin,
33
+ moduleName,
34
+ };
35
+ }))).filter(notEmpty);
36
+ const result = {
37
+ schemaContributions: [],
38
+ pluginsByKind: new Map(),
39
+ pluginModulePaths: [],
40
+ };
41
+ loadedPluginModules.forEach(({ plugins, schemaContribution, moduleName }) => {
42
+ if (plugins) {
43
+ result.pluginModulePaths.push(moduleName);
44
+ plugins.forEach((plugin) => {
45
+ const pluginsForKind = result.pluginsByKind.get(plugin.kind);
46
+ if (pluginsForKind) {
47
+ pluginsForKind.push(plugin);
48
+ }
49
+ else {
50
+ result.pluginsByKind.set(plugin.kind, [plugin]);
51
+ }
52
+ });
53
+ }
54
+ if (schemaContribution) {
55
+ result.schemaContributions.push(schemaContribution);
56
+ }
57
+ });
58
+ return result;
59
+ }
60
+ async resolvePluginModules(pluginDescriptors) {
61
+ return (await Promise.all(pluginDescriptors.map(async (pluginExpression) => {
62
+ if (pluginExpression.includes('*')) {
63
+ return await this.globPluginModules(pluginExpression);
64
+ }
65
+ else if (path.isAbsolute(pluginExpression) ||
66
+ pluginExpression.startsWith('.')) {
67
+ return pathToFileURL(path.resolve(pluginExpression)).toString();
68
+ }
69
+ else {
70
+ // Bare plugin expression like "@stryker-mutator/mocha-runner" (or file URL)
71
+ return pluginExpression;
72
+ }
73
+ })))
74
+ .filter(notEmpty)
75
+ .flat();
76
+ }
77
+ async globPluginModules(pluginExpression) {
78
+ const { org, pkg } = parsePluginExpression(pluginExpression);
79
+ const pluginDirectory = path.resolve(fileURLToPath(new URL('../../../../../', import.meta.url)), org);
80
+ const regexp = new RegExp('^' + pkg.replace('*', '.*'));
81
+ this.log.debug('Loading %s from %s', pluginExpression, pluginDirectory);
82
+ const plugins = (await fs.promises.readdir(pluginDirectory))
83
+ .filter((pluginName) => !IGNORED_PACKAGES.includes(pluginName) && regexp.test(pluginName))
84
+ .map((pluginName) => `${org.length ? `${org}/` : ''}${pluginName}`);
85
+ if (plugins.length === 0 &&
86
+ !defaultOptions.plugins.includes(pluginExpression)) {
87
+ this.log.warn('Expression "%s" not resulted in plugins to load.', pluginExpression);
88
+ }
89
+ plugins.forEach((plugin) => this.log.debug('Loading plugin "%s" (matched with expression %s)', plugin, pluginExpression));
90
+ return plugins;
91
+ }
92
+ async loadPlugin(descriptor) {
93
+ this.log.debug('Loading plugin %s', descriptor);
94
+ try {
95
+ const module = await fileUtils.importModule(descriptor);
96
+ const plugins = isPluginModule(module)
97
+ ? module.strykerPlugins
98
+ : undefined;
99
+ const schemaContribution = hasValidationSchemaContribution(module)
100
+ ? module.strykerValidationSchema
101
+ : undefined;
102
+ if (plugins ?? schemaContribution) {
103
+ return {
104
+ plugins,
105
+ schemaContribution,
106
+ };
107
+ }
108
+ else {
109
+ this.log.warn('Module "%s" did not contribute a StrykerJS plugin. It didn\'t export a "%s" or "%s".', descriptor, propertyPath()('strykerPlugins'), propertyPath()('strykerValidationSchema'));
110
+ }
111
+ }
112
+ catch (e) {
113
+ if (e.code === 'ERR_MODULE_NOT_FOUND' &&
114
+ e.message.indexOf(descriptor) !== -1) {
115
+ this.log.warn('Cannot find plugin "%s".\n Did you forget to install it ?', descriptor);
116
+ }
117
+ else {
118
+ this.log.warn('Error during loading "%s" plugin:\n %s', descriptor, e.message);
119
+ }
120
+ }
121
+ return;
122
+ }
123
+ }
124
+ /**
125
+ * Distills organization name from a package expression.
126
+ * @example
127
+ * '@stryker-mutator/core' => { org: '@stryker-mutator', 'core' }
128
+ * 'glob' => { org: '', 'glob' }
129
+ */
130
+ function parsePluginExpression(pluginExpression) {
131
+ const parts = pluginExpression.split('/');
132
+ if (parts.length > 1) {
133
+ return {
134
+ org: parts.slice(0, parts.length - 1).join('/'),
135
+ pkg: parts[parts.length - 1],
136
+ };
137
+ }
138
+ else {
139
+ return {
140
+ org: '',
141
+ pkg: parts[0],
142
+ };
143
+ }
144
+ }
145
+ function isPluginModule(module) {
146
+ const pluginModule = module;
147
+ return Array.isArray(pluginModule.strykerPlugins);
148
+ }
149
+ function hasValidationSchemaContribution(module) {
150
+ const pluginModule = module;
151
+ return typeof pluginModule.strykerValidationSchema === 'object';
152
+ }
153
+ //# sourceMappingURL=plugin-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-loader.js","sourceRoot":"","sources":["../../../src/di/plugin-loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { StrykerError } from '@stryker-mutator/util';
2
+ export declare class ConfigError extends StrykerError {
3
+ }
4
+ export declare function retrieveCause(error: unknown): unknown;
5
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrD,qBAAa,WAAY,SAAQ,YAAY;CAAG;AAEhD,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAMrD"}
@@ -0,0 +1,13 @@
1
+ import { StrykerError } from '@stryker-mutator/util';
2
+ import { InjectionError } from 'typed-inject';
3
+ export class ConfigError extends StrykerError {
4
+ }
5
+ export function retrieveCause(error) {
6
+ if (error instanceof InjectionError) {
7
+ return error.cause;
8
+ }
9
+ else {
10
+ return error;
11
+ }
12
+ }
13
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,OAAO,WAAY,SAAQ,YAAY;CAAG;AAEhD,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,IAAI,KAAK,YAAY,cAAc,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -0,0 +1,19 @@
1
+ import fs from 'fs';
2
+ import { Disposable } from 'typed-inject';
3
+ /**
4
+ * A wrapper around nodejs's 'fs' core module, for dependency injection purposes.
5
+ *
6
+ * Also has build-in buffering support with a concurrency limit (like "graceful-fs").
7
+ */
8
+ export declare class FileSystem implements Disposable {
9
+ private readonly todoSubject;
10
+ private readonly subscription;
11
+ dispose(): void;
12
+ readonly readFile: typeof fs.promises.readFile;
13
+ readonly copyFile: typeof fs.promises.copyFile;
14
+ readonly writeFile: typeof fs.promises.writeFile;
15
+ readonly mkdir: typeof fs.promises.mkdir;
16
+ readonly readdir: typeof fs.promises.readdir;
17
+ private forward;
18
+ }
19
+ //# sourceMappingURL=file-system.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-system.d.ts","sourceRoot":"","sources":["../../../src/fs/file-system.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAIpB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAsB1C;;;;GAIG;AACH,qBAAa,UAAW,YAAW,UAAU;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwC;IACpE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAMd;IAER,OAAO,IAAI,IAAI;IAItB,SAAgB,QAAQ,8BAA4B;IACpD,SAAgB,QAAQ,8BAA4B;IACpD,SAAgB,SAAS,+BAA6B;IACtD,SAAgB,KAAK,2BAAyB;IAC9C,SAAgB,OAAO,6BAA2B;IAElD,OAAO,CAAC,OAAO;CAWhB"}