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,343 @@
1
+ // @flow
2
+
3
+ const fs = require('fs');
4
+ const path = require('path');
5
+ const wasm = require('elm-solve-deps-wasm');
6
+ const ElmHome = require('./ElmHome.js');
7
+ const SyncGet = require('./SyncGet.js');
8
+ const collator = new Intl.Collator('en', { numeric: true }); // for sorting SemVer strings
9
+
10
+ // Initialization work done only once.
11
+ wasm.init();
12
+ const syncGetWorker /*: {| get: (string) => string, shutDown: () => void |} */ =
13
+ SyncGet.startWorker();
14
+
15
+ // Cache of existing versions according to the package website.
16
+ class OnlineVersionsCache {
17
+ map /*: Map<string, Array<string>> */ = new Map();
18
+
19
+ update() {
20
+ const pubgrubHome = path.join(ElmHome.elmHome(), 'pubgrub');
21
+ fs.mkdirSync(pubgrubHome, { recursive: true });
22
+ const cachePath = path.join(pubgrubHome, 'versions_cache.json');
23
+ const remotePackagesUrl = 'https://package.elm-lang.org/all-packages';
24
+ if (this.map.size === 0) {
25
+ let cacheFile;
26
+ try {
27
+ // Read from disk existing versions which are already cached.
28
+ cacheFile = fs.readFileSync(cachePath, 'utf8');
29
+ } catch (_) {
30
+ // The cache file does not exist so let's reset it.
31
+ this.map = onlineVersionsFromScratch(cachePath, remotePackagesUrl);
32
+ return;
33
+ }
34
+ try {
35
+ this.map = parseOnlineVersions(JSON.parse(cacheFile));
36
+ } catch (error) {
37
+ throw new Error(
38
+ `Failed to parse the cache file ${cachePath}.\n${error.message}`
39
+ );
40
+ }
41
+ }
42
+ this.updateWithRequestSince(cachePath, remotePackagesUrl);
43
+ }
44
+
45
+ // Update the cache with a request to the package server.
46
+ updateWithRequestSince(
47
+ cachePath /*: string */,
48
+ remotePackagesUrl /*: string */
49
+ ) /*: void */ {
50
+ // Count existing versions.
51
+ let versionsCount = 0;
52
+ for (const versions of this.map.values()) {
53
+ versionsCount += versions.length;
54
+ }
55
+
56
+ // Complete cache with a remote call to the package server.
57
+ const remoteUrl = remotePackagesUrl + '/since/' + (versionsCount - 1); // -1 to check if no package was deleted.
58
+ const newVersions = JSON.parse(syncGetWorker.get(remoteUrl));
59
+ if (newVersions.length === 0) {
60
+ // Reload from scratch since it means at least one package was deleted from the registry.
61
+ this.map = onlineVersionsFromScratch(cachePath, remotePackagesUrl);
62
+ return;
63
+ }
64
+ // Check that the last package in the list was already in cache
65
+ // since the list returned by the package server is sorted newest first.
66
+ const { pkg, version } = splitPkgVersion(newVersions.pop());
67
+ const cachePkgVersions = this.map.get(pkg);
68
+ if (
69
+ cachePkgVersions !== undefined &&
70
+ cachePkgVersions[cachePkgVersions.length - 1] === version
71
+ ) {
72
+ // Insert (in reverse) newVersions into onlineVersionsCache map.
73
+ for (const pkgVersion of newVersions.reverse()) {
74
+ const { pkg, version } = splitPkgVersion(pkgVersion);
75
+ const versionsOfPkg = this.map.get(pkg);
76
+ if (versionsOfPkg === undefined) {
77
+ this.map.set(pkg, [version]);
78
+ } else {
79
+ versionsOfPkg.push(version);
80
+ }
81
+ }
82
+ // Save the updated onlineVersionsCache to disk.
83
+ const onlineVersions = Object.fromEntries(this.map.entries());
84
+ fs.writeFileSync(cachePath, JSON.stringify(onlineVersions));
85
+ } else {
86
+ // There was a problem and a package got deleted from the server.
87
+ this.map = onlineVersionsFromScratch(cachePath, remotePackagesUrl);
88
+ }
89
+ }
90
+
91
+ getVersions(pkg /*: string */) /*: Array<string> */ {
92
+ const versions = this.map.get(pkg);
93
+ return versions === undefined ? [] : versions;
94
+ }
95
+ }
96
+
97
+ class OnlineAvailableVersionLister {
98
+ // Memoization cache to avoid doing the same work twice in list.
99
+ memoCache /*: Map<string, Array<string>> */ = new Map();
100
+ onlineCache /*: OnlineVersionsCache */;
101
+
102
+ constructor(onlineCache /*: OnlineVersionsCache */) {
103
+ onlineCache.update();
104
+ this.onlineCache = onlineCache;
105
+ }
106
+
107
+ list(pkg /*: string */) /*: Array<string> */ {
108
+ const memoVersions = this.memoCache.get(pkg);
109
+ if (memoVersions !== undefined) {
110
+ return memoVersions;
111
+ }
112
+ const offlineVersions = readVersionsInElmHomeAndSort(pkg);
113
+ const allVersionsSet = new Set(this.onlineCache.getVersions(pkg));
114
+ // Combine local and online versions.
115
+ for (const version of offlineVersions) {
116
+ allVersionsSet.add(version);
117
+ }
118
+ const allVersions = [...allVersionsSet].sort(flippedSemverCompare);
119
+ this.memoCache.set(pkg, allVersions);
120
+ return allVersions;
121
+ }
122
+ }
123
+
124
+ class OfflineAvailableVersionLister {
125
+ // Memoization cache to avoid doing the same work twice in list.
126
+ cache /*: Map<string, Array<string>> */ = new Map();
127
+
128
+ list(pkg /*: string */) /*: Array<string> */ {
129
+ const memoVersions = this.cache.get(pkg);
130
+ if (memoVersions !== undefined) {
131
+ return memoVersions;
132
+ }
133
+
134
+ const offlineVersions = readVersionsInElmHomeAndSort(pkg);
135
+
136
+ this.cache.set(pkg, offlineVersions);
137
+ return offlineVersions;
138
+ }
139
+ }
140
+
141
+ function readVersionsInElmHomeAndSort(pkg /*: string */) /*: Array<string> */ {
142
+ const pkgPath = ElmHome.packagePath(pkg);
143
+ let offlineVersions;
144
+ try {
145
+ offlineVersions = fs.readdirSync(pkgPath);
146
+ } catch (_) {
147
+ // The directory doesn't exist or we don't have permissions.
148
+ // It's fine to catch all cases and return an empty list.
149
+ offlineVersions = [];
150
+ }
151
+
152
+ return offlineVersions.sort(flippedSemverCompare);
153
+ }
154
+
155
+ class DependencyProvider {
156
+ cache /*: OnlineVersionsCache */ = new OnlineVersionsCache();
157
+
158
+ // Solve dependencies completely offline, without any http request.
159
+ solveOffline(
160
+ elmJson /*: string */,
161
+ useTest /*: boolean */,
162
+ extra /*: { [string]: string } */
163
+ ) /*: string */ {
164
+ const lister = new OfflineAvailableVersionLister();
165
+ try {
166
+ return wasm.solve_deps(
167
+ elmJson,
168
+ useTest,
169
+ extra,
170
+ fetchElmJsonOffline,
171
+ (pkg) => lister.list(pkg)
172
+ );
173
+ } catch (errorMessage) {
174
+ throw new Error(errorMessage);
175
+ }
176
+ }
177
+
178
+ // Solve dependencies with http requests when required.
179
+ solveOnline(
180
+ elmJson /*: string */,
181
+ useTest /*: boolean */,
182
+ extra /*: { [string]: string } */
183
+ ) /*: string */ {
184
+ const lister = new OnlineAvailableVersionLister(this.cache);
185
+ try {
186
+ return wasm.solve_deps(
187
+ elmJson,
188
+ useTest,
189
+ extra,
190
+ fetchElmJsonOnline,
191
+ (pkg) => lister.list(pkg)
192
+ );
193
+ } catch (errorMessage) {
194
+ throw new Error(errorMessage);
195
+ }
196
+ }
197
+ }
198
+
199
+ function fetchElmJsonOnline(
200
+ pkg /*: string */,
201
+ version /*: string */
202
+ ) /*: string */ {
203
+ try {
204
+ return fetchElmJsonOffline(pkg, version);
205
+ } catch (_) {
206
+ // `fetchElmJsonOffline` can only fail in ways that are either expected
207
+ // (such as file does not exist or no permissions)
208
+ // or because there was an error parsing `pkg` and `version`.
209
+ // In such case, this will throw again with `cacheElmJsonPath()` so it's fine.
210
+ const remoteUrl = remoteElmJsonUrl(pkg, version);
211
+ const elmJson = syncGetWorker.get(remoteUrl);
212
+ const cachePath = cacheElmJsonPath(pkg, version);
213
+ const parentDir = path.dirname(cachePath);
214
+ fs.mkdirSync(parentDir, { recursive: true });
215
+ fs.writeFileSync(cachePath, elmJson);
216
+ return elmJson;
217
+ }
218
+ }
219
+
220
+ function fetchElmJsonOffline(
221
+ pkg /*: string */,
222
+ version /*: string */
223
+ ) /*: string */ {
224
+ try {
225
+ return fs.readFileSync(homeElmJsonPath(pkg, version), 'utf8');
226
+ } catch (_) {
227
+ // The read can only fail if the elm.json file does not exist
228
+ // or if we don't have the permissions to read it so it's fine to catch all.
229
+ // Otherwise, it means that `homeElmJsonPath()` failed while processing `pkg` and `version`.
230
+ // In such case, again, it's fine to catch all since the next call to `cacheElmJsonPath()`
231
+ // will fail the same anyway.
232
+ return fs.readFileSync(cacheElmJsonPath(pkg, version), 'utf8');
233
+ }
234
+ }
235
+
236
+ // Reset the cache of existing versions from scratch
237
+ // with a request to the package server.
238
+ function onlineVersionsFromScratch(
239
+ cachePath /*: string */,
240
+ remotePackagesUrl /*: string */
241
+ ) /*: Map<string, Array<string>> */ {
242
+ const onlineVersionsJson = syncGetWorker.get(remotePackagesUrl);
243
+ fs.writeFileSync(cachePath, onlineVersionsJson);
244
+ const onlineVersions = JSON.parse(onlineVersionsJson);
245
+ try {
246
+ return parseOnlineVersions(onlineVersions);
247
+ } catch (error) {
248
+ throw new Error(
249
+ `Failed to parse the response from the request to ${remotePackagesUrl}.\n${error.message}`
250
+ );
251
+ }
252
+ }
253
+
254
+ // Helper functions ##################################################
255
+
256
+ /* Compares two versions so that newer versions appear first when sorting with this function. */
257
+ function flippedSemverCompare(a /*: string */, b /*: string */) /*: number */ {
258
+ return collator.compare(b, a);
259
+ }
260
+
261
+ function parseOnlineVersions(
262
+ json /*: mixed */
263
+ ) /*: Map<string, Array<string>> */ {
264
+ if (typeof json !== 'object' || json === null || Array.isArray(json)) {
265
+ throw new Error(
266
+ `Expected an object, but got: ${
267
+ json === null ? 'null' : Array.isArray(json) ? 'Array' : typeof json
268
+ }`
269
+ );
270
+ }
271
+
272
+ const result = new Map();
273
+
274
+ for (const [key, value] of Object.entries(json)) {
275
+ result.set(key, parseVersions(key, value));
276
+ }
277
+
278
+ return result;
279
+ }
280
+
281
+ function parseVersions(
282
+ key /*: string */,
283
+ json /*: mixed */
284
+ ) /*: Array<string> */ {
285
+ if (!Array.isArray(json)) {
286
+ throw new Error(
287
+ `Expected ${JSON.stringify(key)} to be an array, but got: ${typeof json}`
288
+ );
289
+ }
290
+
291
+ for (const [index, item] of json.entries()) {
292
+ if (typeof item !== 'string') {
293
+ throw new Error(
294
+ `Expected${JSON.stringify(
295
+ key
296
+ )}->${index} to be a string, but got: ${typeof item}`
297
+ );
298
+ }
299
+ }
300
+
301
+ // $FlowFixMe[incompatible-return]: We dynamically checked that `json` is an `Array<string>`.
302
+ return json;
303
+ }
304
+
305
+ function remoteElmJsonUrl(
306
+ pkg /*: string */,
307
+ version /*: string */
308
+ ) /*: string */ {
309
+ return `https://package.elm-lang.org/packages/${pkg}/${version}/elm.json`;
310
+ }
311
+
312
+ function cacheElmJsonPath(
313
+ pkg /*: string */,
314
+ version /*: string */
315
+ ) /*: string */ {
316
+ const parts = ElmHome.splitAuthorPkg(pkg);
317
+ return path.join(
318
+ ElmHome.elmHome(),
319
+ 'pubgrub',
320
+ 'elm_json_cache',
321
+ parts.author,
322
+ parts.pkg,
323
+ version,
324
+ 'elm.json'
325
+ );
326
+ }
327
+
328
+ function homeElmJsonPath(
329
+ pkg /*: string */,
330
+ version /*: string */
331
+ ) /*: string */ {
332
+ return path.join(ElmHome.packagePath(pkg), version, 'elm.json');
333
+ }
334
+
335
+ function splitPkgVersion(str /*: string */) /*: {
336
+ pkg: string,
337
+ version: string,
338
+ } */ {
339
+ const parts = str.split('@');
340
+ return { pkg: parts[0], version: parts[1] };
341
+ }
342
+
343
+ module.exports = DependencyProvider;
@@ -0,0 +1,109 @@
1
+ // @flow
2
+
3
+ 'use strict';
4
+
5
+ var spawn = require('cross-spawn');
6
+
7
+ var defaultOptions = {
8
+ spawn: spawn,
9
+ cwd: undefined,
10
+ pathToElm: 'elm',
11
+ output: undefined,
12
+ report: undefined,
13
+ processOpts: undefined,
14
+ };
15
+
16
+ // Converts an object of key/value pairs to an array of arguments suitable
17
+ // to be passed to child_process.spawn for elm-make.
18
+ function compilerArgsFromOptions(options) {
19
+ var args = [];
20
+
21
+ if (options.output != null) {
22
+ args.push('--output', options.output);
23
+ }
24
+
25
+ if (options.report != null) {
26
+ args.push('--report', options.report);
27
+ }
28
+
29
+ return args;
30
+ }
31
+
32
+ function runCompiler(sources, options) {
33
+ var pathToElm = options.pathToElm;
34
+ var processArgs = ['make'].concat(sources, compilerArgsFromOptions(options));
35
+
36
+ var processOpts = Object.assign(
37
+ {},
38
+ {
39
+ env: Object.assign({ LANG: 'en_US.UTF-8' }, process.env),
40
+ stdio: 'inherit',
41
+ cwd: options.cwd,
42
+ },
43
+ options.processOpts
44
+ );
45
+
46
+ return options.spawn(pathToElm, processArgs, processOpts);
47
+ }
48
+
49
+ function compilerErrorToString(err, pathToElm) {
50
+ if (typeof err === 'object' && typeof err.code === 'string') {
51
+ switch (err.code) {
52
+ case 'ENOENT':
53
+ return (
54
+ 'Could not find Elm compiler "' + pathToElm + '". Is it installed?'
55
+ );
56
+
57
+ case 'EACCES':
58
+ return (
59
+ 'Elm compiler "' +
60
+ pathToElm +
61
+ '" did not have permission to run. Do you need to give it executable permissions?'
62
+ );
63
+
64
+ default:
65
+ return (
66
+ 'Error attempting to run Elm compiler "' + pathToElm + '":\n' + err
67
+ );
68
+ }
69
+ } else if (typeof err === 'object' && typeof err.message === 'string') {
70
+ return JSON.stringify(err.message);
71
+ } else {
72
+ return (
73
+ 'Exception thrown when attempting to run Elm compiler ' +
74
+ JSON.stringify(pathToElm)
75
+ );
76
+ }
77
+ }
78
+
79
+ function compile(
80
+ sources /*: Array<string> */,
81
+ options /*: {|
82
+ spawn?: (
83
+ string,
84
+ Array<string>,
85
+ child_process$spawnOpts
86
+ ) => child_process$ChildProcess,
87
+ cwd?: string,
88
+ pathToElm?: string,
89
+ output?: string,
90
+ report?: 'json',
91
+ processOpts?: child_process$spawnOpts,
92
+ |} */
93
+ ) /*: child_process$ChildProcess */ {
94
+ var optionsWithDefaults = Object.assign({}, defaultOptions, options);
95
+ try {
96
+ return runCompiler(sources, optionsWithDefaults).on(
97
+ 'error',
98
+ function (err) {
99
+ throw err;
100
+ }
101
+ );
102
+ } catch (err) {
103
+ throw new Error(compilerErrorToString(err, optionsWithDefaults.pathToElm));
104
+ }
105
+ }
106
+
107
+ module.exports = {
108
+ compile: compile,
109
+ };
@@ -0,0 +1,47 @@
1
+ // @flow
2
+
3
+ const path = require('path');
4
+ const os = require('os');
5
+
6
+ function elmHome() /*: string */ {
7
+ const elmHomeEnv = process.env['ELM_HOME'];
8
+ return elmHomeEnv === undefined ? defaultElmHome() : elmHomeEnv;
9
+ }
10
+
11
+ function defaultElmHome() /*: string */ {
12
+ return process.platform === 'win32'
13
+ ? defaultWindowsElmHome()
14
+ : defaultUnixElmHome();
15
+ }
16
+
17
+ function defaultUnixElmHome() /*: string */ {
18
+ return path.join(os.homedir(), '.elm');
19
+ }
20
+
21
+ function defaultWindowsElmHome() /*: string */ {
22
+ const appData = process.env.APPDATA;
23
+ const dir =
24
+ appData === undefined
25
+ ? path.join(os.homedir(), 'AppData', 'Roaming')
26
+ : appData;
27
+ return path.join(dir, 'elm');
28
+ }
29
+
30
+ function packagePath(pkg /*: string */) /*: string */ {
31
+ const parts = splitAuthorPkg(pkg);
32
+ return path.join(elmHome(), '0.19.1', 'packages', parts.author, parts.pkg);
33
+ }
34
+
35
+ function splitAuthorPkg(pkgIdentifier /*: string */) /*: {
36
+ author: string,
37
+ pkg: string,
38
+ } */ {
39
+ const parts = pkgIdentifier.split('/');
40
+ return { author: parts[0], pkg: parts[1] };
41
+ }
42
+
43
+ module.exports = {
44
+ elmHome,
45
+ packagePath,
46
+ splitAuthorPkg,
47
+ };
@@ -0,0 +1,194 @@
1
+ // @flow
2
+
3
+ const fs = require('fs');
4
+ const path = require('path');
5
+
6
+ // Poor man’s type alias. We can’t use /*:: type Dependencies = ... */ because of:
7
+ // https://github.com/prettier/prettier/issues/2597
8
+ const Dependencies /*: { [string]: string } */ = {};
9
+
10
+ const DirectAndIndirectDependencies /*: {
11
+ direct: typeof Dependencies,
12
+ indirect: typeof Dependencies,
13
+ } */ = { direct: {}, indirect: {} };
14
+
15
+ const ElmJson /*:
16
+ | {
17
+ type: 'application',
18
+ 'source-directories': Array<string>,
19
+ dependencies: typeof DirectAndIndirectDependencies,
20
+ 'test-dependencies': typeof DirectAndIndirectDependencies,
21
+ [string]: mixed,
22
+ }
23
+ | {
24
+ type: 'package',
25
+ dependencies: typeof Dependencies,
26
+ 'test-dependencies': typeof Dependencies,
27
+ [string]: mixed,
28
+ } */ = {
29
+ type: 'package',
30
+ dependencies: Dependencies,
31
+ 'test-dependencies': Dependencies,
32
+ };
33
+
34
+ function getPath(dir /*: string */) /*: string */ {
35
+ return path.join(dir, 'elm.json');
36
+ }
37
+
38
+ function write(dir /*: string */, elmJson /*: typeof ElmJson */) /*: void */ {
39
+ const elmJsonPath = getPath(dir);
40
+
41
+ try {
42
+ fs.writeFileSync(elmJsonPath, JSON.stringify(elmJson, null, 4) + '\n');
43
+ } catch (error) {
44
+ throw new Error(
45
+ `${elmJsonPath}\nFailed to write elm.json:\n${error.message}`
46
+ );
47
+ }
48
+ }
49
+
50
+ function read(dir /*: string */) /*: typeof ElmJson */ {
51
+ const elmJsonPath = getPath(dir);
52
+
53
+ try {
54
+ return readHelper(elmJsonPath);
55
+ } catch (error) {
56
+ throw new Error(
57
+ `${elmJsonPath}\nFailed to read elm.json:\n${error.message}`
58
+ );
59
+ }
60
+ }
61
+
62
+ function readHelper(elmJsonPath /*: string */) /*: typeof ElmJson */ {
63
+ const json = parseObject(
64
+ JSON.parse(fs.readFileSync(elmJsonPath, 'utf8')),
65
+ 'the file'
66
+ );
67
+
68
+ switch (json.type) {
69
+ case 'application':
70
+ return {
71
+ ...json,
72
+ type: 'application',
73
+ 'source-directories': parseSourceDirectories(
74
+ json['source-directories']
75
+ ),
76
+ dependencies: parseDirectAndIndirectDependencies(
77
+ json.dependencies,
78
+ 'dependencies'
79
+ ),
80
+ 'test-dependencies': parseDirectAndIndirectDependencies(
81
+ json['test-dependencies'],
82
+ 'test-dependencies'
83
+ ),
84
+ };
85
+
86
+ case 'package':
87
+ return {
88
+ ...json,
89
+ type: 'package',
90
+ dependencies: parseDependencies(json.dependencies, 'dependencies'),
91
+ 'test-dependencies': parseDependencies(
92
+ json['test-dependencies'],
93
+ 'test-dependencies'
94
+ ),
95
+ };
96
+
97
+ default:
98
+ throw new Error(
99
+ `Expected "type" to be "application" or "package", but got: ${stringify(
100
+ json.type
101
+ )}`
102
+ );
103
+ }
104
+ }
105
+
106
+ function parseSourceDirectories(json /*: mixed */) /*: Array<string> */ {
107
+ if (!Array.isArray(json)) {
108
+ throw new Error(
109
+ `Expected "source-directories" to be an array, but got: ${stringify(
110
+ json
111
+ )}`
112
+ );
113
+ }
114
+
115
+ const result = [];
116
+
117
+ for (const [index, item] of json.entries()) {
118
+ if (typeof item !== 'string') {
119
+ throw new Error(
120
+ `Expected "source-directories"->${index} to be a string, but got: ${stringify(
121
+ item
122
+ )}`
123
+ );
124
+ }
125
+ result.push(item);
126
+ }
127
+
128
+ if (result.length === 0) {
129
+ throw new Error(
130
+ 'Expected "source-directories" to contain at least one item, but it is empty.'
131
+ );
132
+ }
133
+
134
+ return result;
135
+ }
136
+
137
+ function parseDirectAndIndirectDependencies(
138
+ json /*: mixed */,
139
+ what /*: string */
140
+ ) /*: typeof DirectAndIndirectDependencies */ {
141
+ const jsonObject = parseObject(json, what);
142
+ return {
143
+ direct: parseDependencies(jsonObject.direct, `${what}->"direct"`),
144
+ indirect: parseDependencies(jsonObject.indirect, `${what}->"indirect"`),
145
+ };
146
+ }
147
+
148
+ function parseDependencies(
149
+ json /*: mixed */,
150
+ what /*: string */
151
+ ) /*: typeof Dependencies */ {
152
+ const jsonObject = parseObject(json, what);
153
+ const result = {};
154
+
155
+ for (const [key, value] of Object.entries(jsonObject)) {
156
+ if (typeof value !== 'string') {
157
+ throw new Error(
158
+ `Expected ${what}->${stringify(
159
+ key
160
+ )} to be a string, but got: ${stringify(value)}`
161
+ );
162
+ }
163
+ result[key] = value;
164
+ }
165
+
166
+ return result;
167
+ }
168
+
169
+ function parseObject(
170
+ json /*: mixed */,
171
+ what /*: string */
172
+ ) /*: { +[string]: mixed } */ {
173
+ if (json == null || typeof json !== 'object' || Array.isArray(json)) {
174
+ throw new Error(
175
+ `Expected ${what} to be an object, but got: ${stringify(json)}`
176
+ );
177
+ }
178
+ return json;
179
+ }
180
+
181
+ function stringify(json /*: mixed */) /*: string */ {
182
+ const maybeString = JSON.stringify(json);
183
+ return maybeString === undefined ? 'undefined' : maybeString;
184
+ }
185
+
186
+ module.exports = {
187
+ Dependencies,
188
+ DirectAndIndirectDependencies,
189
+ ElmJson,
190
+ getPath,
191
+ parseDirectAndIndirectDependencies,
192
+ read,
193
+ write,
194
+ };