elm-pages 3.0.0-beta.10 → 3.0.0-beta.13

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 (472) hide show
  1. package/README.md +1 -1
  2. package/codegen/elm-pages-codegen.js +1 -1
  3. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/dependencies.75364bef27ac5a049b87c3325f846fc6dbda23b8ed7187ed06748b96bb6a50a7.json +1 -0
  4. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Console-Text.elmi +0 -0
  5. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Console-Text.elmo +0 -0
  6. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateData.elmi +0 -0
  7. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateData.elmo +0 -0
  8. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateDataTest.elmi +0 -0
  9. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateDataTest.elmo +0 -0
  10. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Generated-Main.elmi +0 -0
  11. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Generated-Main.elmo +0 -0
  12. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Console-Format-Color.elmi +0 -0
  13. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Console-Format-Color.elmo +0 -0
  14. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Console-Format-Monochrome.elmi +0 -0
  15. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Console-Format-Monochrome.elmo +0 -0
  16. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Console-Format.elmi +0 -0
  17. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Console-Format.elmo +0 -0
  18. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Console.elmi +0 -0
  19. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Console.elmo +0 -0
  20. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Highlightable.elmi +0 -0
  21. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Highlightable.elmo +0 -0
  22. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-JUnit.elmi +0 -0
  23. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-JUnit.elmo +0 -0
  24. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Json.elmi +0 -0
  25. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Json.elmo +0 -0
  26. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Reporter.elmi +0 -0
  27. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Reporter.elmo +0 -0
  28. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-TestResults.elmi +0 -0
  29. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-TestResults.elmo +0 -0
  30. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Runner-JsMessage.elmi +0 -0
  31. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Runner-JsMessage.elmo +0 -0
  32. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Runner-Node-Vendor-Console.elmi +0 -0
  33. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Runner-Node-Vendor-Console.elmo +0 -0
  34. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Runner-Node-Vendor-Diff.elmi +0 -0
  35. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Runner-Node-Vendor-Diff.elmo +0 -0
  36. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Runner-Node.elmi +0 -0
  37. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Runner-Node.elmo +0 -0
  38. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/d.dat +0 -0
  39. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/i.dat +0 -0
  40. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/lock +0 -0
  41. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/o.dat +0 -0
  42. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm.json +38 -0
  43. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elmTestOutput.js +29603 -0
  44. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/package.json +1 -0
  45. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/src/Test/Generated/Main.elm +27 -0
  46. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateData.elmo +0 -0
  47. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/d.dat +0 -0
  48. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/i.dat +0 -0
  49. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/o.dat +0 -0
  50. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm.json +1 -1
  51. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/Reporter.elm.js +1327 -122
  52. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/Runner.elm.js +15157 -13245
  53. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/node_runner.js +1 -1
  54. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/node_supervisor.js +4 -4
  55. package/generator/dead-code-review/elm.json +8 -6
  56. package/generator/dead-code-review/node_modules/.package-lock.json +484 -0
  57. package/generator/dead-code-review/node_modules/ansi-styles/index.d.ts +345 -0
  58. package/generator/dead-code-review/node_modules/ansi-styles/index.js +163 -0
  59. package/generator/dead-code-review/node_modules/ansi-styles/license +9 -0
  60. package/generator/dead-code-review/node_modules/ansi-styles/package.json +56 -0
  61. package/generator/dead-code-review/node_modules/ansi-styles/readme.md +152 -0
  62. package/generator/dead-code-review/node_modules/anymatch/LICENSE +15 -0
  63. package/generator/dead-code-review/node_modules/anymatch/README.md +87 -0
  64. package/generator/dead-code-review/node_modules/anymatch/index.d.ts +20 -0
  65. package/generator/dead-code-review/node_modules/anymatch/index.js +104 -0
  66. package/generator/dead-code-review/node_modules/anymatch/package.json +48 -0
  67. package/generator/dead-code-review/node_modules/balanced-match/.github/FUNDING.yml +2 -0
  68. package/generator/dead-code-review/node_modules/balanced-match/LICENSE.md +21 -0
  69. package/generator/dead-code-review/node_modules/balanced-match/README.md +97 -0
  70. package/generator/dead-code-review/node_modules/balanced-match/index.js +62 -0
  71. package/generator/dead-code-review/node_modules/balanced-match/package.json +48 -0
  72. package/generator/dead-code-review/node_modules/binary-extensions/binary-extensions.json +260 -0
  73. package/generator/dead-code-review/node_modules/binary-extensions/binary-extensions.json.d.ts +3 -0
  74. package/generator/dead-code-review/node_modules/binary-extensions/index.d.ts +14 -0
  75. package/generator/dead-code-review/node_modules/binary-extensions/index.js +1 -0
  76. package/generator/dead-code-review/node_modules/binary-extensions/license +9 -0
  77. package/generator/dead-code-review/node_modules/binary-extensions/package.json +38 -0
  78. package/generator/dead-code-review/node_modules/binary-extensions/readme.md +41 -0
  79. package/generator/dead-code-review/node_modules/brace-expansion/.github/FUNDING.yml +2 -0
  80. package/generator/dead-code-review/node_modules/brace-expansion/LICENSE +21 -0
  81. package/generator/dead-code-review/node_modules/brace-expansion/README.md +135 -0
  82. package/generator/dead-code-review/node_modules/brace-expansion/index.js +203 -0
  83. package/generator/dead-code-review/node_modules/brace-expansion/package.json +46 -0
  84. package/generator/dead-code-review/node_modules/braces/CHANGELOG.md +184 -0
  85. package/generator/dead-code-review/node_modules/braces/LICENSE +21 -0
  86. package/generator/dead-code-review/node_modules/braces/README.md +593 -0
  87. package/generator/dead-code-review/node_modules/braces/index.js +170 -0
  88. package/generator/dead-code-review/node_modules/braces/lib/compile.js +57 -0
  89. package/generator/dead-code-review/node_modules/braces/lib/constants.js +57 -0
  90. package/generator/dead-code-review/node_modules/braces/lib/expand.js +113 -0
  91. package/generator/dead-code-review/node_modules/braces/lib/parse.js +333 -0
  92. package/generator/dead-code-review/node_modules/braces/lib/stringify.js +32 -0
  93. package/generator/dead-code-review/node_modules/braces/lib/utils.js +112 -0
  94. package/generator/dead-code-review/node_modules/braces/package.json +77 -0
  95. package/generator/dead-code-review/node_modules/chalk/index.d.ts +415 -0
  96. package/generator/dead-code-review/node_modules/chalk/license +9 -0
  97. package/generator/dead-code-review/node_modules/chalk/package.json +68 -0
  98. package/generator/dead-code-review/node_modules/chalk/readme.md +341 -0
  99. package/generator/dead-code-review/node_modules/chalk/source/index.js +229 -0
  100. package/generator/dead-code-review/node_modules/chalk/source/templates.js +134 -0
  101. package/generator/dead-code-review/node_modules/chalk/source/util.js +39 -0
  102. package/generator/dead-code-review/node_modules/chokidar/LICENSE +21 -0
  103. package/generator/dead-code-review/node_modules/chokidar/README.md +308 -0
  104. package/generator/dead-code-review/node_modules/chokidar/index.js +973 -0
  105. package/generator/dead-code-review/node_modules/chokidar/lib/constants.js +65 -0
  106. package/generator/dead-code-review/node_modules/chokidar/lib/fsevents-handler.js +524 -0
  107. package/generator/dead-code-review/node_modules/chokidar/lib/nodefs-handler.js +654 -0
  108. package/generator/dead-code-review/node_modules/chokidar/package.json +85 -0
  109. package/generator/dead-code-review/node_modules/chokidar/types/index.d.ts +188 -0
  110. package/generator/dead-code-review/node_modules/color-convert/CHANGELOG.md +54 -0
  111. package/generator/dead-code-review/node_modules/color-convert/LICENSE +21 -0
  112. package/generator/dead-code-review/node_modules/color-convert/README.md +68 -0
  113. package/generator/dead-code-review/node_modules/color-convert/conversions.js +839 -0
  114. package/generator/dead-code-review/node_modules/color-convert/index.js +81 -0
  115. package/generator/dead-code-review/node_modules/color-convert/package.json +48 -0
  116. package/generator/dead-code-review/node_modules/color-convert/route.js +97 -0
  117. package/generator/dead-code-review/node_modules/color-name/LICENSE +8 -0
  118. package/generator/dead-code-review/node_modules/color-name/README.md +11 -0
  119. package/generator/dead-code-review/node_modules/color-name/index.js +152 -0
  120. package/generator/dead-code-review/node_modules/color-name/package.json +28 -0
  121. package/generator/dead-code-review/node_modules/commander/LICENSE +22 -0
  122. package/generator/dead-code-review/node_modules/commander/Readme.md +1118 -0
  123. package/generator/dead-code-review/node_modules/commander/esm.mjs +16 -0
  124. package/generator/dead-code-review/node_modules/commander/index.js +27 -0
  125. package/generator/dead-code-review/node_modules/commander/lib/argument.js +147 -0
  126. package/generator/dead-code-review/node_modules/commander/lib/command.js +2160 -0
  127. package/generator/dead-code-review/node_modules/commander/lib/error.js +45 -0
  128. package/generator/dead-code-review/node_modules/commander/lib/help.js +406 -0
  129. package/generator/dead-code-review/node_modules/commander/lib/option.js +326 -0
  130. package/generator/dead-code-review/node_modules/commander/lib/suggestSimilar.js +100 -0
  131. package/generator/dead-code-review/node_modules/commander/package-support.json +16 -0
  132. package/generator/dead-code-review/node_modules/commander/package.json +80 -0
  133. package/generator/dead-code-review/node_modules/commander/typings/index.d.ts +881 -0
  134. package/generator/dead-code-review/node_modules/cross-spawn/CHANGELOG.md +130 -0
  135. package/generator/dead-code-review/node_modules/cross-spawn/LICENSE +21 -0
  136. package/generator/dead-code-review/node_modules/cross-spawn/README.md +96 -0
  137. package/generator/dead-code-review/node_modules/cross-spawn/index.js +39 -0
  138. package/generator/dead-code-review/node_modules/cross-spawn/lib/enoent.js +59 -0
  139. package/generator/dead-code-review/node_modules/cross-spawn/lib/parse.js +91 -0
  140. package/generator/dead-code-review/node_modules/cross-spawn/lib/util/escape.js +45 -0
  141. package/generator/dead-code-review/node_modules/cross-spawn/lib/util/readShebang.js +23 -0
  142. package/generator/dead-code-review/node_modules/cross-spawn/lib/util/resolveCommand.js +52 -0
  143. package/generator/dead-code-review/node_modules/cross-spawn/package.json +73 -0
  144. package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/LICENSE +373 -0
  145. package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/README.md +64 -0
  146. package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/elm_solve_deps_wasm.d.ts +22 -0
  147. package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/elm_solve_deps_wasm.js +419 -0
  148. package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/elm_solve_deps_wasm_bg.wasm +0 -0
  149. package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/package.json +27 -0
  150. package/generator/dead-code-review/node_modules/elm-test/LICENSE +27 -0
  151. package/generator/dead-code-review/node_modules/elm-test/README.md +192 -0
  152. package/generator/dead-code-review/node_modules/elm-test/bin/elm-test +3 -0
  153. package/generator/dead-code-review/node_modules/elm-test/elm/elm.json +25 -0
  154. package/generator/dead-code-review/node_modules/elm-test/elm/src/Console/Text.elm +217 -0
  155. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Console/Format/Color.elm +30 -0
  156. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Console/Format/Monochrome.elm +39 -0
  157. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Console/Format.elm +212 -0
  158. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Console.elm +207 -0
  159. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Highlightable.elm +48 -0
  160. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/JUnit.elm +161 -0
  161. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Json.elm +158 -0
  162. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Reporter.elm +53 -0
  163. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/TestResults.elm +113 -0
  164. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Runner/JsMessage.elm +38 -0
  165. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Runner/Node/Vendor/Console.elm +230 -0
  166. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Runner/Node/Vendor/Diff.elm +326 -0
  167. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Runner/Node.elm +440 -0
  168. package/generator/dead-code-review/node_modules/elm-test/lib/Compile.js +110 -0
  169. package/generator/dead-code-review/node_modules/elm-test/lib/DependencyProvider.js +343 -0
  170. package/generator/dead-code-review/node_modules/elm-test/lib/ElmCompiler.js +109 -0
  171. package/generator/dead-code-review/node_modules/elm-test/lib/ElmHome.js +47 -0
  172. package/generator/dead-code-review/node_modules/elm-test/lib/ElmJson.js +194 -0
  173. package/generator/dead-code-review/node_modules/elm-test/lib/FindTests.js +276 -0
  174. package/generator/dead-code-review/node_modules/elm-test/lib/Generate.js +294 -0
  175. package/generator/dead-code-review/node_modules/elm-test/lib/Install.js +290 -0
  176. package/generator/dead-code-review/node_modules/elm-test/lib/Parser.js +941 -0
  177. package/generator/dead-code-review/node_modules/elm-test/lib/Project.js +117 -0
  178. package/generator/dead-code-review/node_modules/elm-test/lib/Report.js +23 -0
  179. package/generator/dead-code-review/node_modules/elm-test/lib/RunTests.js +322 -0
  180. package/generator/dead-code-review/node_modules/elm-test/lib/Solve.js +76 -0
  181. package/generator/dead-code-review/node_modules/elm-test/lib/Supervisor.js +294 -0
  182. package/generator/dead-code-review/node_modules/elm-test/lib/SyncGet.js +45 -0
  183. package/generator/dead-code-review/node_modules/elm-test/lib/SyncGetWorker.js +36 -0
  184. package/generator/dead-code-review/node_modules/elm-test/lib/elm-test.js +318 -0
  185. package/generator/dead-code-review/node_modules/elm-test/package.json +69 -0
  186. package/generator/dead-code-review/node_modules/elm-test/templates/after.js +29 -0
  187. package/generator/dead-code-review/node_modules/elm-test/templates/before.js +58 -0
  188. package/generator/dead-code-review/node_modules/elm-test/templates/tests/Example.elm +10 -0
  189. package/generator/dead-code-review/node_modules/fill-range/LICENSE +21 -0
  190. package/generator/dead-code-review/node_modules/fill-range/README.md +237 -0
  191. package/generator/dead-code-review/node_modules/fill-range/index.js +249 -0
  192. package/generator/dead-code-review/node_modules/fill-range/package.json +69 -0
  193. package/generator/dead-code-review/node_modules/fs.realpath/LICENSE +43 -0
  194. package/generator/dead-code-review/node_modules/fs.realpath/README.md +33 -0
  195. package/generator/dead-code-review/node_modules/fs.realpath/index.js +66 -0
  196. package/generator/dead-code-review/node_modules/fs.realpath/old.js +303 -0
  197. package/generator/dead-code-review/node_modules/fs.realpath/package.json +26 -0
  198. package/generator/dead-code-review/node_modules/fsevents/LICENSE +22 -0
  199. package/generator/dead-code-review/node_modules/fsevents/README.md +83 -0
  200. package/generator/dead-code-review/node_modules/fsevents/fsevents.d.ts +46 -0
  201. package/generator/dead-code-review/node_modules/fsevents/fsevents.js +82 -0
  202. package/generator/dead-code-review/node_modules/fsevents/fsevents.node +0 -0
  203. package/generator/dead-code-review/node_modules/fsevents/package.json +62 -0
  204. package/generator/dead-code-review/node_modules/glob/LICENSE +15 -0
  205. package/generator/dead-code-review/node_modules/glob/README.md +378 -0
  206. package/generator/dead-code-review/node_modules/glob/common.js +240 -0
  207. package/generator/dead-code-review/node_modules/glob/glob.js +790 -0
  208. package/generator/dead-code-review/node_modules/glob/package.json +55 -0
  209. package/generator/dead-code-review/node_modules/glob/sync.js +486 -0
  210. package/generator/dead-code-review/node_modules/glob-parent/CHANGELOG.md +110 -0
  211. package/generator/dead-code-review/node_modules/glob-parent/LICENSE +15 -0
  212. package/generator/dead-code-review/node_modules/glob-parent/README.md +137 -0
  213. package/generator/dead-code-review/node_modules/glob-parent/index.js +42 -0
  214. package/generator/dead-code-review/node_modules/glob-parent/package.json +48 -0
  215. package/generator/dead-code-review/node_modules/graceful-fs/LICENSE +15 -0
  216. package/generator/dead-code-review/node_modules/graceful-fs/README.md +143 -0
  217. package/generator/dead-code-review/node_modules/graceful-fs/clone.js +23 -0
  218. package/generator/dead-code-review/node_modules/graceful-fs/graceful-fs.js +448 -0
  219. package/generator/dead-code-review/node_modules/graceful-fs/legacy-streams.js +118 -0
  220. package/generator/dead-code-review/node_modules/graceful-fs/package.json +50 -0
  221. package/generator/dead-code-review/node_modules/graceful-fs/polyfills.js +355 -0
  222. package/generator/dead-code-review/node_modules/has-flag/index.d.ts +39 -0
  223. package/generator/dead-code-review/node_modules/has-flag/index.js +8 -0
  224. package/generator/dead-code-review/node_modules/has-flag/license +9 -0
  225. package/generator/dead-code-review/node_modules/has-flag/package.json +46 -0
  226. package/generator/dead-code-review/node_modules/has-flag/readme.md +89 -0
  227. package/generator/dead-code-review/node_modules/inflight/LICENSE +15 -0
  228. package/generator/dead-code-review/node_modules/inflight/README.md +37 -0
  229. package/generator/dead-code-review/node_modules/inflight/inflight.js +54 -0
  230. package/generator/dead-code-review/node_modules/inflight/package.json +29 -0
  231. package/generator/dead-code-review/node_modules/inherits/LICENSE +16 -0
  232. package/generator/dead-code-review/node_modules/inherits/README.md +42 -0
  233. package/generator/dead-code-review/node_modules/inherits/inherits.js +9 -0
  234. package/generator/dead-code-review/node_modules/inherits/inherits_browser.js +27 -0
  235. package/generator/dead-code-review/node_modules/inherits/package.json +29 -0
  236. package/generator/dead-code-review/node_modules/is-binary-path/index.d.ts +17 -0
  237. package/generator/dead-code-review/node_modules/is-binary-path/index.js +7 -0
  238. package/generator/dead-code-review/node_modules/is-binary-path/license +9 -0
  239. package/generator/dead-code-review/node_modules/is-binary-path/package.json +40 -0
  240. package/generator/dead-code-review/node_modules/is-binary-path/readme.md +34 -0
  241. package/generator/dead-code-review/node_modules/is-extglob/LICENSE +21 -0
  242. package/generator/dead-code-review/node_modules/is-extglob/README.md +107 -0
  243. package/generator/dead-code-review/node_modules/is-extglob/index.js +20 -0
  244. package/generator/dead-code-review/node_modules/is-extglob/package.json +69 -0
  245. package/generator/dead-code-review/node_modules/is-glob/LICENSE +21 -0
  246. package/generator/dead-code-review/node_modules/is-glob/README.md +206 -0
  247. package/generator/dead-code-review/node_modules/is-glob/index.js +150 -0
  248. package/generator/dead-code-review/node_modules/is-glob/package.json +81 -0
  249. package/generator/dead-code-review/node_modules/is-number/LICENSE +21 -0
  250. package/generator/dead-code-review/node_modules/is-number/README.md +187 -0
  251. package/generator/dead-code-review/node_modules/is-number/index.js +18 -0
  252. package/generator/dead-code-review/node_modules/is-number/package.json +82 -0
  253. package/generator/dead-code-review/node_modules/isexe/LICENSE +15 -0
  254. package/generator/dead-code-review/node_modules/isexe/README.md +51 -0
  255. package/generator/dead-code-review/node_modules/isexe/index.js +57 -0
  256. package/generator/dead-code-review/node_modules/isexe/mode.js +41 -0
  257. package/generator/dead-code-review/node_modules/isexe/package.json +31 -0
  258. package/generator/dead-code-review/node_modules/isexe/test/basic.js +221 -0
  259. package/generator/dead-code-review/node_modules/isexe/windows.js +42 -0
  260. package/generator/dead-code-review/node_modules/minimatch/LICENSE +15 -0
  261. package/generator/dead-code-review/node_modules/minimatch/README.md +259 -0
  262. package/generator/dead-code-review/node_modules/minimatch/lib/path.js +4 -0
  263. package/generator/dead-code-review/node_modules/minimatch/minimatch.js +906 -0
  264. package/generator/dead-code-review/node_modules/minimatch/package.json +32 -0
  265. package/generator/dead-code-review/node_modules/normalize-path/LICENSE +21 -0
  266. package/generator/dead-code-review/node_modules/normalize-path/README.md +127 -0
  267. package/generator/dead-code-review/node_modules/normalize-path/index.js +35 -0
  268. package/generator/dead-code-review/node_modules/normalize-path/package.json +77 -0
  269. package/generator/dead-code-review/node_modules/once/LICENSE +15 -0
  270. package/generator/dead-code-review/node_modules/once/README.md +79 -0
  271. package/generator/dead-code-review/node_modules/once/once.js +42 -0
  272. package/generator/dead-code-review/node_modules/once/package.json +33 -0
  273. package/generator/dead-code-review/node_modules/path-key/index.d.ts +40 -0
  274. package/generator/dead-code-review/node_modules/path-key/index.js +16 -0
  275. package/generator/dead-code-review/node_modules/path-key/license +9 -0
  276. package/generator/dead-code-review/node_modules/path-key/package.json +39 -0
  277. package/generator/dead-code-review/node_modules/path-key/readme.md +61 -0
  278. package/generator/dead-code-review/node_modules/picomatch/CHANGELOG.md +136 -0
  279. package/generator/dead-code-review/node_modules/picomatch/LICENSE +21 -0
  280. package/generator/dead-code-review/node_modules/picomatch/README.md +708 -0
  281. package/generator/dead-code-review/node_modules/picomatch/index.js +3 -0
  282. package/generator/dead-code-review/node_modules/picomatch/lib/constants.js +179 -0
  283. package/generator/dead-code-review/node_modules/picomatch/lib/parse.js +1091 -0
  284. package/generator/dead-code-review/node_modules/picomatch/lib/picomatch.js +342 -0
  285. package/generator/dead-code-review/node_modules/picomatch/lib/scan.js +391 -0
  286. package/generator/dead-code-review/node_modules/picomatch/lib/utils.js +64 -0
  287. package/generator/dead-code-review/node_modules/picomatch/package.json +81 -0
  288. package/generator/dead-code-review/node_modules/readdirp/LICENSE +21 -0
  289. package/generator/dead-code-review/node_modules/readdirp/README.md +122 -0
  290. package/generator/dead-code-review/node_modules/readdirp/index.d.ts +43 -0
  291. package/generator/dead-code-review/node_modules/readdirp/index.js +287 -0
  292. package/generator/dead-code-review/node_modules/readdirp/package.json +122 -0
  293. package/generator/dead-code-review/node_modules/shebang-command/index.js +19 -0
  294. package/generator/dead-code-review/node_modules/shebang-command/license +9 -0
  295. package/generator/dead-code-review/node_modules/shebang-command/package.json +34 -0
  296. package/generator/dead-code-review/node_modules/shebang-command/readme.md +34 -0
  297. package/generator/dead-code-review/node_modules/shebang-regex/index.d.ts +22 -0
  298. package/generator/dead-code-review/node_modules/shebang-regex/index.js +2 -0
  299. package/generator/dead-code-review/node_modules/shebang-regex/license +9 -0
  300. package/generator/dead-code-review/node_modules/shebang-regex/package.json +35 -0
  301. package/generator/dead-code-review/node_modules/shebang-regex/readme.md +33 -0
  302. package/generator/dead-code-review/node_modules/split/.travis.yml +3 -0
  303. package/generator/dead-code-review/node_modules/split/LICENCE +22 -0
  304. package/generator/dead-code-review/node_modules/split/examples/pretty.js +26 -0
  305. package/generator/dead-code-review/node_modules/split/index.js +63 -0
  306. package/generator/dead-code-review/node_modules/split/package.json +30 -0
  307. package/generator/dead-code-review/node_modules/split/readme.markdown +72 -0
  308. package/generator/dead-code-review/node_modules/split/test/options.asynct.js +46 -0
  309. package/generator/dead-code-review/node_modules/split/test/partitioned_unicode.js +34 -0
  310. package/generator/dead-code-review/node_modules/split/test/split.asynct.js +137 -0
  311. package/generator/dead-code-review/node_modules/split/test/try_catch.asynct.js +51 -0
  312. package/generator/dead-code-review/node_modules/supports-color/browser.js +5 -0
  313. package/generator/dead-code-review/node_modules/supports-color/index.js +135 -0
  314. package/generator/dead-code-review/node_modules/supports-color/license +9 -0
  315. package/generator/dead-code-review/node_modules/supports-color/package.json +53 -0
  316. package/generator/dead-code-review/node_modules/supports-color/readme.md +76 -0
  317. package/generator/dead-code-review/node_modules/through/.travis.yml +5 -0
  318. package/generator/dead-code-review/node_modules/through/LICENSE.APACHE2 +15 -0
  319. package/generator/dead-code-review/node_modules/through/LICENSE.MIT +24 -0
  320. package/generator/dead-code-review/node_modules/through/index.js +108 -0
  321. package/generator/dead-code-review/node_modules/through/package.json +36 -0
  322. package/generator/dead-code-review/node_modules/through/readme.markdown +64 -0
  323. package/generator/dead-code-review/node_modules/through/test/async.js +28 -0
  324. package/generator/dead-code-review/node_modules/through/test/auto-destroy.js +30 -0
  325. package/generator/dead-code-review/node_modules/through/test/buffering.js +71 -0
  326. package/generator/dead-code-review/node_modules/through/test/end.js +45 -0
  327. package/generator/dead-code-review/node_modules/through/test/index.js +133 -0
  328. package/generator/dead-code-review/node_modules/to-regex-range/LICENSE +21 -0
  329. package/generator/dead-code-review/node_modules/to-regex-range/README.md +305 -0
  330. package/generator/dead-code-review/node_modules/to-regex-range/index.js +288 -0
  331. package/generator/dead-code-review/node_modules/to-regex-range/package.json +88 -0
  332. package/generator/dead-code-review/node_modules/which/CHANGELOG.md +166 -0
  333. package/generator/dead-code-review/node_modules/which/LICENSE +15 -0
  334. package/generator/dead-code-review/node_modules/which/README.md +54 -0
  335. package/generator/dead-code-review/node_modules/which/bin/node-which +52 -0
  336. package/generator/dead-code-review/node_modules/which/package.json +43 -0
  337. package/generator/dead-code-review/node_modules/which/which.js +125 -0
  338. package/generator/dead-code-review/node_modules/wrappy/LICENSE +15 -0
  339. package/generator/dead-code-review/node_modules/wrappy/README.md +36 -0
  340. package/generator/dead-code-review/node_modules/wrappy/package.json +29 -0
  341. package/generator/dead-code-review/node_modules/wrappy/wrappy.js +33 -0
  342. package/generator/dead-code-review/node_modules/xmlbuilder/.nycrc +6 -0
  343. package/generator/dead-code-review/node_modules/xmlbuilder/.vscode/launch.json +23 -0
  344. package/generator/dead-code-review/node_modules/xmlbuilder/CHANGELOG.md +593 -0
  345. package/generator/dead-code-review/node_modules/xmlbuilder/LICENSE +21 -0
  346. package/generator/dead-code-review/node_modules/xmlbuilder/README.md +103 -0
  347. package/generator/dead-code-review/node_modules/xmlbuilder/lib/Derivation.js +10 -0
  348. package/generator/dead-code-review/node_modules/xmlbuilder/lib/DocumentPosition.js +12 -0
  349. package/generator/dead-code-review/node_modules/xmlbuilder/lib/NodeType.js +25 -0
  350. package/generator/dead-code-review/node_modules/xmlbuilder/lib/OperationType.js +11 -0
  351. package/generator/dead-code-review/node_modules/xmlbuilder/lib/Utility.js +88 -0
  352. package/generator/dead-code-review/node_modules/xmlbuilder/lib/WriterState.js +10 -0
  353. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLAttribute.js +130 -0
  354. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLCData.js +41 -0
  355. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLCharacterData.js +86 -0
  356. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLComment.js +41 -0
  357. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDOMConfiguration.js +80 -0
  358. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDOMErrorHandler.js +20 -0
  359. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDOMImplementation.js +55 -0
  360. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDOMStringList.js +44 -0
  361. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDTDAttList.js +66 -0
  362. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDTDElement.js +44 -0
  363. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDTDEntity.js +115 -0
  364. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDTDNotation.js +66 -0
  365. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDeclaration.js +51 -0
  366. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDocType.js +235 -0
  367. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDocument.js +282 -0
  368. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDocumentCB.js +650 -0
  369. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDocumentFragment.js +21 -0
  370. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDummy.js +39 -0
  371. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLElement.js +334 -0
  372. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLNamedNodeMap.js +77 -0
  373. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLNode.js +999 -0
  374. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLNodeFilter.js +51 -0
  375. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLNodeList.js +45 -0
  376. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLProcessingInstruction.js +56 -0
  377. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLRaw.js +40 -0
  378. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLStreamWriter.js +209 -0
  379. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLStringWriter.js +40 -0
  380. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLStringifier.js +291 -0
  381. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLText.js +82 -0
  382. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLTypeInfo.js +23 -0
  383. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLUserDataHandler.js +27 -0
  384. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLWriterBase.js +485 -0
  385. package/generator/dead-code-review/node_modules/xmlbuilder/lib/index.js +120 -0
  386. package/generator/dead-code-review/node_modules/xmlbuilder/package.json +51 -0
  387. package/generator/dead-code-review/node_modules/xmlbuilder/perf/basic/escaping.coffee +244 -0
  388. package/generator/dead-code-review/node_modules/xmlbuilder/perf/basic/object.coffee +21 -0
  389. package/generator/dead-code-review/node_modules/xmlbuilder/perf/index.coffee +161 -0
  390. package/generator/dead-code-review/node_modules/xmlbuilder/perf/perf.list +11 -0
  391. package/generator/dead-code-review/node_modules/xmlbuilder/typings/index.d.ts +1771 -0
  392. package/generator/dead-code-review/src/Pages/Review/DeadCodeEliminateData.elm +1 -0
  393. package/generator/review/elm-stuff/0.19.1/d.dat +0 -0
  394. package/generator/review/elm-stuff/0.19.1/i.dat +0 -0
  395. package/generator/review/elm-stuff/0.19.1/o.dat +0 -0
  396. package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision10/install/elm-stuff/0.19.1/d.dat +0 -0
  397. package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision10/install/elm-stuff/0.19.1/i.dat +0 -0
  398. package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision10/install/elm-stuff/0.19.1/o.dat +0 -0
  399. package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision10/install/elm.json +25 -0
  400. package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision7/install/elm-stuff/0.19.1/d.dat +0 -0
  401. package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision7/install/elm-stuff/0.19.1/i.dat +0 -0
  402. package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision7/install/elm-stuff/0.19.1/o.dat +0 -0
  403. package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision7/install/elm.json +41 -0
  404. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/d.dat +0 -0
  405. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/i.dat +0 -0
  406. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/o.dat +0 -0
  407. package/generator/review/elm-stuff/tests-0.19.1/elm.json +1 -1
  408. package/generator/review/elm-stuff/tests-0.19.1/js/Reporter.elm.js +1327 -122
  409. package/generator/review/elm-stuff/tests-0.19.1/js/Runner.elm.js +14575 -12632
  410. package/generator/review/elm-stuff/tests-0.19.1/js/node_runner.js +1 -1
  411. package/generator/review/elm-stuff/tests-0.19.1/js/node_supervisor.js +4 -4
  412. package/generator/review/elm.json +8 -8
  413. package/generator/src/build.js +7 -10
  414. package/generator/src/cli.js +124 -42
  415. package/generator/src/codegen.js +11 -10
  416. package/generator/src/compatibility-key.js +1 -1
  417. package/generator/src/elm-codegen.js +3 -0
  418. package/generator/src/render-worker.js +1 -1
  419. package/generator/src/render.js +222 -37
  420. package/generator/src/request-cache.js +1 -0
  421. package/generator/src/rewrite-elm-json.js +3 -3
  422. package/package.json +12 -12
  423. package/src/ApiRoute.elm +147 -9
  424. package/src/DataSource/Env.elm +27 -3
  425. package/src/DataSource.elm +11 -22
  426. package/src/Form.elm +32 -32
  427. package/src/Head.elm +112 -8
  428. package/src/MultiDict.elm +49 -0
  429. package/src/Pages/Generate.elm +4 -1
  430. package/src/Pages/GeneratorProgramConfig.elm +15 -0
  431. package/src/Pages/Internal/Platform/CompatibilityKey.elm +1 -1
  432. package/src/Pages/Internal/Platform/GeneratorApplication.elm +455 -0
  433. package/src/Pages/Internal/Platform/StaticResponses.elm +35 -5
  434. package/src/Pages/Internal/Script.elm +16 -0
  435. package/src/Pages/Manifest.elm +24 -0
  436. package/src/Pages/Script.elm +94 -0
  437. package/src/Pages/StaticHttpRequest.elm +9 -7
  438. package/src/PairingHeap.elm +137 -0
  439. package/src/Parser/Extra/String.elm +33 -0
  440. package/src/Parser/Extra.elm +69 -0
  441. package/src/ProgramTest/ComplexQuery.elm +360 -0
  442. package/src/ProgramTest/EffectSimulation.elm +122 -0
  443. package/src/ProgramTest/Failure.elm +367 -0
  444. package/src/ProgramTest/HtmlHighlighter.elm +116 -0
  445. package/src/ProgramTest/HtmlParserHacks.elm +58 -0
  446. package/src/ProgramTest/HtmlRenderer.elm +73 -0
  447. package/src/ProgramTest/Program.elm +30 -0
  448. package/src/ProgramTest/StringLines.elm +26 -0
  449. package/src/ProgramTest/TestHtmlHacks.elm +132 -0
  450. package/src/ProgramTest/TestHtmlParser.elm +201 -0
  451. package/src/ProgramTest.elm +2339 -0
  452. package/src/Query/Extra.elm +55 -0
  453. package/src/Result/Extra.elm +21 -0
  454. package/src/Server/Request.elm +2 -2
  455. package/src/SimulatedEffect/Cmd.elm +69 -0
  456. package/src/SimulatedEffect/Http.elm +330 -0
  457. package/src/SimulatedEffect/Navigation.elm +69 -0
  458. package/src/SimulatedEffect/Ports.elm +62 -0
  459. package/src/SimulatedEffect/Process.elm +24 -0
  460. package/src/SimulatedEffect/Sub.elm +48 -0
  461. package/src/SimulatedEffect/Task.elm +252 -0
  462. package/src/SimulatedEffect/Time.elm +25 -0
  463. package/src/SimulatedEffect.elm +42 -0
  464. package/src/String/Extra.elm +6 -0
  465. package/src/Test/Http.elm +145 -0
  466. package/src/TestResult.elm +35 -0
  467. package/src/TestState.elm +305 -0
  468. package/src/Url/Extra.elm +100 -0
  469. package/src/Vendored/Diff.elm +321 -0
  470. package/src/Vendored/Failure.elm +217 -0
  471. package/src/Vendored/FormatMonochrome.elm +44 -0
  472. package/src/Vendored/Highlightable.elm +53 -0
@@ -0,0 +1,294 @@
1
+ // @flow
2
+
3
+ const chalk = require('chalk');
4
+ const child_process = require('child_process');
5
+ const fs = require('fs');
6
+ const net = require('net');
7
+ const split = require('split');
8
+ const XmlBuilder = require('xmlbuilder');
9
+ const Report = require('./Report');
10
+
11
+ function run(
12
+ elmTestVersion /*: string */,
13
+ pipeFilename /*: string */,
14
+ report /*: typeof Report.Report */,
15
+ processes /*: number */,
16
+ dest /*: string */,
17
+ watch /*: boolean */
18
+ ) /*: Promise<number> */ {
19
+ return new Promise(function (resolve) {
20
+ var nextResultToPrint = null;
21
+ var finishedWorkers = 0;
22
+ var closedWorkers = 0;
23
+ var results = new Map();
24
+ var failures = 0;
25
+ var todos = [];
26
+ var testsToRun = -1;
27
+ var initializedWorkers = -1;
28
+ var startingTime = Date.now();
29
+ var workers = [];
30
+
31
+ function printResult(result) {
32
+ switch (report) {
33
+ case 'console':
34
+ // todos are objects, and will be shown in the SUMMARY only.
35
+ // passed tests are nulls, and should not be printed.
36
+ // failed tests are strings.
37
+ if (typeof result === 'string') {
38
+ console.log(makeWindowsSafe(result));
39
+ }
40
+ break;
41
+
42
+ case 'json':
43
+ console.log(JSON.stringify(result));
44
+ break;
45
+
46
+ case 'junit':
47
+ // JUnit does everything at once in SUMMARY, elsewhere
48
+ break;
49
+ }
50
+ }
51
+
52
+ function flushResults() {
53
+ // Only print any results if we're ready - that is, nextResultToPrint
54
+ // is no longer null. (BEGIN changes it from null to 0.)
55
+ if (nextResultToPrint !== null) {
56
+ var result = results.get(nextResultToPrint);
57
+
58
+ while (
59
+ // If there are no more results to print, then we're done.
60
+ nextResultToPrint < testsToRun &&
61
+ // Otherwise, keep going until we have no result available to print.
62
+ typeof result !== 'undefined'
63
+ ) {
64
+ printResult(result);
65
+ nextResultToPrint++;
66
+ result = results.get(nextResultToPrint);
67
+ }
68
+ }
69
+ }
70
+ function reportRuntimeException() {
71
+ console.error(
72
+ chalk.red(
73
+ '\n\nThere was an unexpected runtime exception while running tests\n\n'
74
+ )
75
+ );
76
+ }
77
+
78
+ function handleResults(response) {
79
+ // TODO print progress bar - e.g. "Running test 5 of 20" on a bar!
80
+ // -- yikes, be careful though...test the scenario where test
81
+ // authors put Debug.log in their tests - does that mess
82
+ // everything up re: the line feed? Seems like it would...
83
+ // ...so maybe a bar is not best. Can we do better? Hm.
84
+ // Maybe the answer is to print the thing, then Immediately
85
+ // backtrack the line feed, so that if someone else does more
86
+ // logging, it will overwrite our status update and that's ok?
87
+
88
+ Object.keys(response.results).forEach(function (index) {
89
+ var result = response.results[index];
90
+ results.set(parseInt(index), result);
91
+
92
+ switch (report) {
93
+ case 'console':
94
+ if (result === null) {
95
+ // It's a PASS; no need to take any action.
96
+ } else if (typeof result.todo !== 'undefined') {
97
+ todos.push(result);
98
+ } else {
99
+ failures++;
100
+ }
101
+ break;
102
+ case 'junit':
103
+ if (typeof result.failure !== 'undefined') {
104
+ failures++;
105
+ }
106
+ break;
107
+ case 'json':
108
+ if (result.status === 'fail') {
109
+ failures++;
110
+ } else if (result.status === 'todo') {
111
+ todos.push({ labels: result.labels, todo: result.failures[0] });
112
+ }
113
+ break;
114
+ }
115
+ });
116
+
117
+ flushResults();
118
+ }
119
+
120
+ function initWorker(socket) {
121
+ socket.setEncoding('utf8');
122
+ socket.setNoDelay(true);
123
+
124
+ // See the long note near client.write() in worker.js for why we do this.
125
+ // It fixes a nasty bug!
126
+ var stream = socket.pipe(split());
127
+
128
+ stream.on('data', function (data) {
129
+ // In watch mode, the socket is drained which results in an extraneous
130
+ // message being sent. If we receive no data, ignore it.
131
+ if (!data) {
132
+ return;
133
+ }
134
+
135
+ var response = JSON.parse(data);
136
+
137
+ switch (response.type) {
138
+ case 'FINISHED':
139
+ handleResults(response);
140
+
141
+ // This worker found no tests remaining to run; it's finished!
142
+ finishedWorkers++;
143
+
144
+ // If all the workers have finished, print the summmary.
145
+ if (finishedWorkers === workers.length) {
146
+ socket.write(
147
+ JSON.stringify({
148
+ type: 'SUMMARY',
149
+ duration: Date.now() - startingTime,
150
+ failures: failures,
151
+ todos: todos,
152
+ })
153
+ );
154
+ }
155
+ break;
156
+ case 'SUMMARY':
157
+ flushResults();
158
+
159
+ if (response.exitCode === 1) {
160
+ // The tests could not even run. At the time of this writing, the
161
+ // only case is “No exposed values of type Test found”. That
162
+ // _could_ have been caught at compile time, but the current
163
+ // architecture needs to actually run the JS to figure out which
164
+ // exposed values are of type Test. That’s why this type of
165
+ // response is handled differently than others.
166
+ console.error(response.message);
167
+ } else {
168
+ printResult(response.message);
169
+
170
+ if (report === 'junit') {
171
+ var xml = response.message;
172
+ var values = Array.from(results.values());
173
+
174
+ xml.testsuite.testcase = xml.testsuite.testcase.concat(values);
175
+
176
+ console.log(XmlBuilder.create(xml).end());
177
+ }
178
+ }
179
+
180
+ // Close all the workers.
181
+ workers.forEach(function (worker) {
182
+ worker.kill();
183
+ });
184
+ resolve(response.exitCode);
185
+ break;
186
+ case 'BEGIN':
187
+ testsToRun = response.testCount;
188
+
189
+ if (!Report.isMachineReadable(report)) {
190
+ var headline = 'elm-test ' + elmTestVersion;
191
+ var bar = '-'.repeat(headline.length);
192
+
193
+ console.log('\n' + headline + '\n' + bar + '\n');
194
+ }
195
+
196
+ printResult(response.message);
197
+
198
+ // Now we're ready to print results!
199
+ nextResultToPrint = 0;
200
+
201
+ flushResults();
202
+
203
+ break;
204
+ case 'RESULTS':
205
+ handleResults(response);
206
+
207
+ break;
208
+ case 'ERROR':
209
+ throw new Error(response.message);
210
+ default:
211
+ throw new Error(
212
+ 'Unrecognized message from worker:' + response.type
213
+ );
214
+ }
215
+ });
216
+
217
+ socket.write(JSON.stringify({ type: 'TEST', index: initializedWorkers }));
218
+
219
+ initializedWorkers++;
220
+ }
221
+
222
+ var pendingException = false,
223
+ server = net.createServer(initWorker);
224
+
225
+ server.on('error', function (err) {
226
+ console.error(err.stack);
227
+ server.close();
228
+ });
229
+
230
+ server.on('listening', function () {
231
+ workers = Array.from({ length: processes }).map(() => {
232
+ var worker = child_process.fork(dest);
233
+
234
+ worker.on('close', function (code) {
235
+ // code can be null.
236
+ var hasNonZeroExitCode = typeof code === 'number' && code !== 0;
237
+
238
+ if (watch && !Report.isMachineReadable(report)) {
239
+ if (hasNonZeroExitCode) {
240
+ // Queue up complaining about an exception.
241
+ // Don't print it immediately, or else it might print N times
242
+ // where N is the number of cores.
243
+ pendingException = true;
244
+ }
245
+ closedWorkers++;
246
+ // If all the workers have closed, we're done! Continue watching.
247
+ if (closedWorkers === workers.length) {
248
+ if (pendingException) {
249
+ // If we had an exception pending, print it and clear pending flag.
250
+ reportRuntimeException();
251
+ pendingException = false;
252
+ }
253
+ resolve(1);
254
+ }
255
+ } else if (hasNonZeroExitCode) {
256
+ reportRuntimeException();
257
+ resolve(1);
258
+ }
259
+ });
260
+
261
+ return worker;
262
+ });
263
+ });
264
+
265
+ if (fs.existsSync(pipeFilename) && process.platform !== 'win32') {
266
+ // Never remove named pipes on Windows. The OS will clean them up when
267
+ // nothing has a handle to them anymore.
268
+ fs.unlinkSync(pipeFilename);
269
+ }
270
+
271
+ server.listen(pipeFilename);
272
+ });
273
+ }
274
+
275
+ function makeWindowsSafe(text) {
276
+ return process.platform === 'win32' ? windowsify(text) : text;
277
+ }
278
+
279
+ // Fix Windows Unicode problems. Credit to https://github.com/sindresorhus/figures for the Windows compat idea!
280
+ var windowsSubstitutions = [
281
+ [/[↓✗►]/g, '>'],
282
+ [/╵│╷╹┃╻/g, '|'],
283
+ [/═/g, '='],
284
+ [/▔/g, '-'],
285
+ [/✔/g, '√'],
286
+ ];
287
+
288
+ function windowsify(str) {
289
+ return windowsSubstitutions.reduce(function (result /*: string */, sub) {
290
+ return result.replace(sub[0], sub[1]);
291
+ }, str);
292
+ }
293
+
294
+ module.exports = { run: run };
@@ -0,0 +1,45 @@
1
+ // @flow
2
+
3
+ const path = require('path');
4
+ const {
5
+ Worker,
6
+ MessageChannel,
7
+ receiveMessageOnPort,
8
+ // $FlowFixMe[cannot-resolve-module]: Flow doesn’t seem to know about the `worker_threads` module yet.
9
+ } = require('worker_threads');
10
+
11
+ // Start a worker thread and return a `syncGetWorker`
12
+ // capable of making sync requests until shut down.
13
+ function startWorker() /*: {
14
+ get: (string) => string,
15
+ shutDown: () => void,
16
+ } */ {
17
+ const { port1: localPort, port2: workerPort } = new MessageChannel();
18
+ const sharedLock = new SharedArrayBuffer(4);
19
+ // $FlowFixMe[incompatible-call]: Flow is wrong and says `sharedLock` is not an accepted parameter here.
20
+ const sharedLockArray = new Int32Array(sharedLock);
21
+ const workerPath = path.resolve(__dirname, 'SyncGetWorker.js');
22
+ const worker = new Worker(workerPath, {
23
+ workerData: { sharedLock, requestPort: workerPort },
24
+ transferList: [workerPort],
25
+ });
26
+ function get(url) {
27
+ worker.postMessage(url);
28
+ Atomics.wait(sharedLockArray, 0, 0); // blocks until notified at index 0.
29
+ const response = receiveMessageOnPort(localPort);
30
+ if (response.message.error) {
31
+ throw response.message.error;
32
+ } else {
33
+ return response.message;
34
+ }
35
+ }
36
+ function shutDown() {
37
+ localPort.close();
38
+ worker.terminate();
39
+ }
40
+ return { get, shutDown };
41
+ }
42
+
43
+ module.exports = {
44
+ startWorker,
45
+ };
@@ -0,0 +1,36 @@
1
+ // @flow
2
+
3
+ // $FlowFixMe[cannot-resolve-module]: Flow doesn’t seem to know about the `worker_threads` module yet.
4
+ const { parentPort, workerData } = require('worker_threads');
5
+ const https = require('https');
6
+
7
+ const { sharedLock, requestPort } = workerData;
8
+ const sharedLockArray = new Int32Array(sharedLock);
9
+
10
+ parentPort.on('message', async (url) => {
11
+ try {
12
+ const response = await getBody(url);
13
+ requestPort.postMessage(response);
14
+ } catch (error) {
15
+ requestPort.postMessage({ error });
16
+ }
17
+ Atomics.notify(sharedLockArray, 0, Infinity);
18
+ });
19
+
20
+ async function getBody(url /*: string */) /*: Promise<string> */ {
21
+ return new Promise(function (resolve, reject) {
22
+ https
23
+ .get(url, function (res) {
24
+ let body = '';
25
+ res.on('data', function (chunk) {
26
+ body += chunk;
27
+ });
28
+ res.on('end', function () {
29
+ resolve(body);
30
+ });
31
+ })
32
+ .on('error', function (err) {
33
+ reject(err);
34
+ });
35
+ });
36
+ }
@@ -0,0 +1,318 @@
1
+ // @flow
2
+
3
+ const { InvalidOptionArgumentError, Option, program } = require('commander');
4
+ const fs = require('fs');
5
+ const os = require('os');
6
+ const path = require('path');
7
+ const which = require('which');
8
+ const packageInfo = require('../package.json');
9
+ const Compile = require('./Compile');
10
+ const DependencyProvider = require('./DependencyProvider.js');
11
+ const ElmJson = require('./ElmJson');
12
+ const FindTests = require('./FindTests');
13
+ const Generate = require('./Generate');
14
+ const Install = require('./Install');
15
+ const Project = require('./Project');
16
+ const Report = require('./Report');
17
+ const RunTests = require('./RunTests');
18
+
19
+ void Report;
20
+
21
+ const parsePositiveInteger =
22
+ (minimum /*: number */) =>
23
+ (string /*: string */) /*: number */ => {
24
+ const number = Number(string);
25
+ if (!/^\d+$/.test(string)) {
26
+ throw new InvalidOptionArgumentError('Expected one or more digits.');
27
+ } else if (!Number.isFinite(number)) {
28
+ throw new InvalidOptionArgumentError('Expected a finite number.');
29
+ } else if (number < minimum) {
30
+ throw new InvalidOptionArgumentError(`Expected at least ${minimum}.`);
31
+ } else {
32
+ return number;
33
+ }
34
+ };
35
+
36
+ function findClosestElmJson(dir /*: string */) /*: string | void */ {
37
+ const entry = ElmJson.getPath(dir);
38
+ return fs.existsSync(entry)
39
+ ? entry
40
+ : dir === path.parse(dir).root
41
+ ? undefined
42
+ : findClosestElmJson(path.dirname(dir));
43
+ }
44
+
45
+ function getProjectRootDir(subcommand /*: string */) /*: string */ {
46
+ const elmJsonPath = findClosestElmJson(process.cwd());
47
+ if (elmJsonPath === undefined) {
48
+ const command =
49
+ subcommand === 'tests' ? 'elm-test' : `elm-test ${subcommand}`;
50
+ console.error(
51
+ `\`${command}\` requires an elm.json up the directory tree, but none could be found! To make one: elm init`
52
+ );
53
+ throw process.exit(1);
54
+ }
55
+ return path.dirname(elmJsonPath);
56
+ }
57
+
58
+ function getProject(subcommand /*: string */) /*: typeof Project.Project */ {
59
+ try {
60
+ return Project.init(getProjectRootDir(subcommand), packageInfo.version);
61
+ } catch (error) {
62
+ console.error(error.message);
63
+ throw process.exit(1);
64
+ }
65
+ }
66
+
67
+ function getPathToElmBinary(compiler /*: string | void */) /*: string */ {
68
+ const name = compiler === undefined ? 'elm' : compiler;
69
+ try {
70
+ return path.resolve(which.sync(name));
71
+ } catch (_error) {
72
+ console.error(
73
+ compiler === undefined
74
+ ? `Cannot find elm executable, make sure it is installed.
75
+ (If elm is not on your path or is called something different the --compiler flag might help.)`
76
+ : `The elm executable passed to --compiler must exist and be exectuble. Got: ${compiler}`
77
+ );
78
+ throw process.exit(1);
79
+ }
80
+ }
81
+
82
+ function outputOptionError() {
83
+ return `
84
+ Only /dev/null is allowed.
85
+
86
+ NOTE: Including this option will not have any effect, as \`elm-test\` does not
87
+ produce any output files. It is meant to improve compatibility with editor
88
+ plugins explicitly setting the --output flag to /dev/null when using
89
+ \`elm-test make\` as a drop-in replacement for \`elm make\`.'
90
+ `.trim();
91
+ }
92
+
93
+ const examples = `
94
+ elm-test
95
+ Run tests in the tests/ folder
96
+
97
+ elm-test "src/**/*Tests.elm"
98
+ Run tests in files matching the glob
99
+ `.trim();
100
+
101
+ function main() {
102
+ const dependencyProvider = new DependencyProvider();
103
+
104
+ process.title = 'elm-test';
105
+
106
+ program
107
+ .allowExcessArguments(false)
108
+ .name('elm-test')
109
+ .usage('[options] [globs...]')
110
+ .description(examples)
111
+ .option('--watch', 'Run tests on file changes', false)
112
+ // For example `--seed` and `--fuzz` only make sense for the “tests” command
113
+ // and could be specified for that command only, but then they won’t show up
114
+ // in `--help`.
115
+ .addOption(
116
+ new Option('--seed <int>', 'Run with a specific fuzzer seed')
117
+ .default(Math.floor(Math.random() * 407199254740991) + 1000, 'random')
118
+ .argParser(parsePositiveInteger(0))
119
+ )
120
+ .option(
121
+ '--fuzz <int>',
122
+ 'Define how many times each fuzz-test should run',
123
+ parsePositiveInteger(1),
124
+ 100
125
+ )
126
+ .addOption(
127
+ new Option(
128
+ '--report <format>',
129
+ 'Specify which format to use for reporting test results'
130
+ )
131
+ .default('console')
132
+ .choices(Report.all)
133
+ )
134
+ // `chalk.supportsColor` looks at `process.argv` for these flags.
135
+ // We still need to define them so they appear in `--help` and aren’t
136
+ // treated as unknown flags.
137
+ .option(
138
+ '--no-color',
139
+ 'Disable colored console output (setting FORCE_COLOR=0 also works)'
140
+ )
141
+ .option(
142
+ '--color',
143
+ 'Force colored console output (setting FORCE_COLOR to anything but 0 also works)'
144
+ )
145
+ .option(
146
+ '--compiler <path>',
147
+ 'Use a custom path to an Elm executable (default: elm)',
148
+ undefined
149
+ )
150
+ // Ensure compatibility with editor plugins setting --output=/dev/null when
151
+ // running `make`. This has caused issues with Emacs' flycheck-elm package.
152
+ .addOption(
153
+ new Option('--output <output>')
154
+ .argParser((value) => {
155
+ if (value !== '/dev/null') {
156
+ throw new InvalidOptionArgumentError(outputOptionError());
157
+ }
158
+ })
159
+ .hideHelp()
160
+ )
161
+ .version(packageInfo.version, '--version', 'Print version and exit')
162
+ .helpOption('-h, --help', 'Show help')
163
+ .addHelpCommand('help [command]', 'Show help');
164
+
165
+ program
166
+ .command('init')
167
+ .description('Install elm-explorations/test and create tests/Example.elm')
168
+ .action(() => {
169
+ const options = program.opts();
170
+ const pathToElmBinary = getPathToElmBinary(options.compiler);
171
+ const project = getProject('init');
172
+ try {
173
+ Install.install(project, pathToElmBinary, 'elm-explorations/test');
174
+ fs.mkdirSync(project.testsDir, { recursive: true });
175
+ fs.copyFileSync(
176
+ path.join(__dirname, '..', 'templates', 'tests', 'Example.elm'),
177
+ path.join(project.testsDir, 'Example.elm')
178
+ );
179
+ } catch (error) {
180
+ console.error(error.message);
181
+ throw process.exit(1);
182
+ }
183
+ console.log(
184
+ '\nCheck out the documentation for getting started at https://package.elm-lang.org/packages/elm-explorations/test/latest'
185
+ );
186
+ process.exit(0);
187
+ });
188
+
189
+ program
190
+ .command('install <package>')
191
+ .description(
192
+ 'Like `elm install package`, except it installs to "test-dependencies" in your elm.json'
193
+ )
194
+ .action((packageName) => {
195
+ const options = program.opts();
196
+ const pathToElmBinary = getPathToElmBinary(options.compiler);
197
+ const project = getProject('install');
198
+ try {
199
+ const result = Install.install(project, pathToElmBinary, packageName);
200
+ // This mirrors the behavior of `elm install` passing a package that is
201
+ // already installed. Say it's already installed, then exit 0.
202
+ if (result === 'AlreadyInstalled') {
203
+ console.log('It is already installed!');
204
+ }
205
+ process.exit(0);
206
+ } catch (error) {
207
+ console.error(error.message);
208
+ process.exit(1);
209
+ }
210
+ });
211
+
212
+ program
213
+ .command('make [globs...]')
214
+ .description('Check files matching the globs for compilation errors')
215
+ .action((testFileGlobs) => {
216
+ const options = program.opts();
217
+ const pathToElmBinary = getPathToElmBinary(options.compiler);
218
+ const project = getProject('make');
219
+ const make = async () => {
220
+ Generate.generateElmJson(dependencyProvider, project);
221
+ await Compile.compileSources(
222
+ FindTests.resolveGlobs(
223
+ testFileGlobs.length === 0 ? [project.testsDir] : testFileGlobs,
224
+ project.rootDir
225
+ ),
226
+ project.generatedCodeDir,
227
+ pathToElmBinary,
228
+ options.report
229
+ );
230
+ };
231
+ make().then(
232
+ () => process.exit(0),
233
+ // `elm-test make` has never logged errors it seems.
234
+ () => process.exit(1)
235
+ );
236
+ });
237
+
238
+ program
239
+ // Hack: This command has a name that isn’t likely to exist as a directory
240
+ // containing tests. If the command were instead called "tests" then
241
+ // commander would interpret the `tests` in `elm-test tests src` as a
242
+ // command and only run tests in `src/`, ignoring all files in `tests/`.
243
+ .command('__elmTestCommand__ [globs...]', { hidden: true, isDefault: true })
244
+ .action((testFileGlobs) => {
245
+ const options = program.opts();
246
+ const pathToElmBinary = getPathToElmBinary(options.compiler);
247
+ const projectRootDir = getProjectRootDir('tests');
248
+ const processes = Math.max(1, os.cpus().length);
249
+ RunTests.runTests(
250
+ dependencyProvider,
251
+ projectRootDir,
252
+ pathToElmBinary,
253
+ testFileGlobs,
254
+ processes,
255
+ options
256
+ ).then(
257
+ (code) => process.exit(code),
258
+ (error) => {
259
+ console.error(error.message);
260
+ process.exit(1);
261
+ }
262
+ );
263
+ });
264
+
265
+ program
266
+ .command('install-unstable-test-master')
267
+ .description(
268
+ 'Use the `master` version of the elm-explorations/test library'
269
+ )
270
+ .action(() => {
271
+ const project = getProject('install-unstable-test-master');
272
+ Install.installUnstableTestMaster(project).then(
273
+ () => process.exit(0),
274
+ (error) => {
275
+ console.error(error.message);
276
+ process.exit(1);
277
+ }
278
+ );
279
+ });
280
+
281
+ program
282
+ .command('uninstall-unstable-test-master')
283
+ .description(
284
+ 'Stop using the `master` version of the elm-explorations/test library'
285
+ )
286
+ .action(() => {
287
+ const options = program.opts();
288
+ const pathToElmBinary = getPathToElmBinary(options.compiler);
289
+ const project = getProject('uninstall-unstable-test-master');
290
+ const run = async () => {
291
+ Install.uninstallUnstableTestMaster(project);
292
+ // Install project elm-explorations/test again. This is based on the `make` command.
293
+ Generate.generateElmJson(dependencyProvider, project);
294
+ const dummyFile = path.join(project.generatedCodeDir, 'Dummy.elm');
295
+ fs.writeFileSync(
296
+ dummyFile,
297
+ `module Dummy exposing (dummy)\ndummy = ()`
298
+ );
299
+ await Compile.compileSources(
300
+ [dummyFile],
301
+ project.generatedCodeDir,
302
+ pathToElmBinary,
303
+ options.report
304
+ );
305
+ };
306
+ run().then(
307
+ () => process.exit(0),
308
+ (error) => {
309
+ console.error(error.message);
310
+ process.exit(1);
311
+ }
312
+ );
313
+ });
314
+
315
+ program.parse(process.argv);
316
+ }
317
+
318
+ main();