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
@@ -19,18 +19,37 @@ let foundErrors;
19
19
  let pendingDataSourceResponses;
20
20
  let pendingDataSourceCount;
21
21
 
22
- module.exports =
23
- /**
24
- *
25
- * @param {string} basePath
26
- * @param {Object} elmModule
27
- * @param {string} path
28
- * @param {{ method: string; hostname: string; query: Record<string, string | undefined>; headers: Record<string, string>; host: string; pathname: string; port: number | null; protocol: string; rawUrl: string; }} request
29
- * @param {(pattern: string) => void} addDataSourceWatcher
30
- * @param {boolean} hasFsAccess
31
- * @returns
32
- */
33
- async function run(
22
+ module.exports = { render, runGenerator };
23
+
24
+ /**
25
+ *
26
+ * @param {string} basePath
27
+ * @param {Object} elmModule
28
+ * @param {string} path
29
+ * @param {{ method: string; hostname: string; query: Record<string, string | undefined>; headers: Record<string, string>; host: string; pathname: string; port: number | null; protocol: string; rawUrl: string; }} request
30
+ * @param {(pattern: string) => void} addDataSourceWatcher
31
+ * @param {boolean} hasFsAccess
32
+ * @returns
33
+ */
34
+ async function render(
35
+ portsFile,
36
+ basePath,
37
+ elmModule,
38
+ mode,
39
+ path,
40
+ request,
41
+ addDataSourceWatcher,
42
+ hasFsAccess
43
+ ) {
44
+ const { fs, resetInMemoryFs } = require("./request-cache-fs.js")(hasFsAccess);
45
+ resetInMemoryFs();
46
+ foundErrors = false;
47
+ pendingDataSourceResponses = [];
48
+ pendingDataSourceCount = 0;
49
+ // since init/update are never called in pre-renders, and DataSource.Http is called using pure NodeJS HTTP fetching
50
+ // we can provide a fake HTTP instead of xhr2 (which is otherwise needed for Elm HTTP requests from Node)
51
+ XMLHttpRequest = {};
52
+ const result = await runElmApp(
34
53
  portsFile,
35
54
  basePath,
36
55
  elmModule,
@@ -38,31 +57,167 @@ module.exports =
38
57
  path,
39
58
  request,
40
59
  addDataSourceWatcher,
60
+ fs,
41
61
  hasFsAccess
42
- ) {
43
- const { fs, resetInMemoryFs } = require("./request-cache-fs.js")(
44
- hasFsAccess
45
- );
46
- resetInMemoryFs();
47
- foundErrors = false;
48
- pendingDataSourceResponses = [];
49
- pendingDataSourceCount = 0;
50
- // since init/update are never called in pre-renders, and DataSource.Http is called using pure NodeJS HTTP fetching
51
- // we can provide a fake HTTP instead of xhr2 (which is otherwise needed for Elm HTTP requests from Node)
52
- XMLHttpRequest = {};
53
- const result = await runElmApp(
54
- portsFile,
55
- basePath,
56
- elmModule,
57
- mode,
58
- path,
59
- request,
60
- addDataSourceWatcher,
61
- fs,
62
- hasFsAccess
63
- );
64
- return result;
65
- };
62
+ );
63
+ return result;
64
+ }
65
+
66
+ /**
67
+ * @param {Object} elmModule
68
+ * @returns
69
+ * @param {string[]} cliOptions
70
+ * @param {any} portsFile
71
+ */
72
+ async function runGenerator(cliOptions, portsFile, elmModule) {
73
+ global.isRunningGenerator = true;
74
+ const { fs, resetInMemoryFs } = require("./request-cache-fs.js")(true);
75
+ resetInMemoryFs();
76
+ foundErrors = false;
77
+ pendingDataSourceResponses = [];
78
+ pendingDataSourceCount = 0;
79
+ // since init/update are never called in pre-renders, and DataSource.Http is called using pure NodeJS HTTP fetching
80
+ // we can provide a fake HTTP instead of xhr2 (which is otherwise needed for Elm HTTP requests from Node)
81
+ XMLHttpRequest = {};
82
+ const result = await runGeneratorAppHelp(
83
+ cliOptions,
84
+ portsFile,
85
+ "",
86
+ elmModule,
87
+ "production",
88
+ "",
89
+ fs,
90
+ true
91
+ );
92
+ return result;
93
+ }
94
+ /**
95
+ * @param {string} basePath
96
+ * @param {Object} elmModule
97
+ * @param {string} pagePath
98
+ * @param {string} mode
99
+ * @returns {Promise<({is404: boolean;} & ({kind: 'json';contentJson: string;} | {kind: 'html';htmlString: string;} | {kind: 'api-response';body: string;}))>}
100
+ * @param {string[]} cliOptions
101
+ * @param {any} portsFile
102
+ * @param {typeof import("fs") | import("memfs").IFs} fs
103
+ * @param {boolean} hasFsAccess
104
+ */
105
+ function runGeneratorAppHelp(
106
+ cliOptions,
107
+ portsFile,
108
+ basePath,
109
+ elmModule,
110
+ mode,
111
+ pagePath,
112
+ fs,
113
+ hasFsAccess
114
+ ) {
115
+ const isDevServer = mode !== "build";
116
+ let patternsToWatch = new Set();
117
+ let app = null;
118
+ let killApp;
119
+ return new Promise((resolve, reject) => {
120
+ const isBytes = pagePath.match(/content\.dat\/?$/);
121
+
122
+ app = elmModule.Elm.Main.init({
123
+ flags: {
124
+ compatibilityKey,
125
+ argv: ["", "", ...cliOptions],
126
+ versionMessage: "1.2.3",
127
+ },
128
+ });
129
+
130
+ killApp = () => {
131
+ app.ports.toJsPort.unsubscribe(portHandler);
132
+ app.ports.sendPageData.unsubscribe(portHandler);
133
+ app.die();
134
+ app = null;
135
+ // delete require.cache[require.resolve(compiledElmPath)];
136
+ };
137
+
138
+ async function portHandler(/** @type { FromElm } */ newThing) {
139
+ let fromElm;
140
+ let contentDatPayload;
141
+
142
+ fromElm = newThing;
143
+ if (fromElm.command === "log") {
144
+ console.log(fromElm.value);
145
+ } else if (fromElm.tag === "ApiResponse") {
146
+ const args = fromElm.args[0];
147
+ if (mode === "build") {
148
+ global.staticHttpCache = args.staticHttpCache;
149
+ }
150
+
151
+ resolve({
152
+ kind: "api-response",
153
+ is404: args.is404,
154
+ statusCode: args.statusCode,
155
+ body: args.body,
156
+ });
157
+ } else if (fromElm.tag === "PageProgress") {
158
+ const args = fromElm.args[0];
159
+ if (mode === "build") {
160
+ global.staticHttpCache = args.staticHttpCache;
161
+ }
162
+
163
+ if (isBytes) {
164
+ resolve({
165
+ kind: "bytes",
166
+ is404: false,
167
+ contentJson: JSON.stringify({
168
+ staticData: args.contentJson,
169
+ is404: false,
170
+ }),
171
+ statusCode: args.statusCode,
172
+ headers: args.headers,
173
+ contentDatPayload,
174
+ });
175
+ } else {
176
+ resolve(
177
+ outputString(basePath, fromElm, isDevServer, contentDatPayload)
178
+ );
179
+ }
180
+ } else if (fromElm.tag === "DoHttp") {
181
+ const requestToPerform = fromElm.args[0];
182
+ if (
183
+ requestToPerform.url !== "elm-pages-internal://port" &&
184
+ requestToPerform.url.startsWith("elm-pages-internal://")
185
+ ) {
186
+ runInternalJob(
187
+ app,
188
+ mode,
189
+ requestToPerform,
190
+ fs,
191
+ hasFsAccess,
192
+ patternsToWatch
193
+ );
194
+ } else {
195
+ runHttpJob(
196
+ portsFile,
197
+ app,
198
+ mode,
199
+ requestToPerform,
200
+ fs,
201
+ hasFsAccess,
202
+ fromElm.args[1]
203
+ );
204
+ }
205
+ } else if (fromElm.tag === "Errors") {
206
+ foundErrors = true;
207
+ reject(fromElm.args[0].errorsJson);
208
+ } else {
209
+ console.log(fromElm);
210
+ }
211
+ }
212
+ app.ports.toJsPort.subscribe(portHandler);
213
+ app.ports.sendPageData.subscribe(portHandler);
214
+ }).finally(() => {
215
+ try {
216
+ killApp();
217
+ killApp = null;
218
+ } catch (error) {}
219
+ });
220
+ }
66
221
 
67
222
  /**
68
223
  * @param {string} basePath
@@ -302,7 +457,9 @@ async function runInternalJob(
302
457
  try {
303
458
  pendingDataSourceCount += 1;
304
459
 
305
- if (requestToPerform.url === "elm-pages-internal://read-file") {
460
+ if (requestToPerform.url === "elm-pages-internal://log") {
461
+ pendingDataSourceResponses.push(await runLogJob(requestToPerform));
462
+ } else if (requestToPerform.url === "elm-pages-internal://read-file") {
306
463
  pendingDataSourceResponses.push(
307
464
  await readFileJobNew(requestToPerform, patternsToWatch)
308
465
  );
@@ -322,6 +479,8 @@ async function runInternalJob(
322
479
  pendingDataSourceResponses.push(
323
480
  await runDecryptJob(requestToPerform, patternsToWatch)
324
481
  );
482
+ } else if (requestToPerform.url === "elm-pages-internal://write-file") {
483
+ pendingDataSourceResponses.push(await runWriteFileJob(requestToPerform));
325
484
  } else {
326
485
  throw `Unexpected internal DataSource request format: ${kleur.yellow(
327
486
  JSON.stringify(2, null, requestToPerform)
@@ -362,6 +521,23 @@ async function readFileJobNew(req, patternsToWatch) {
362
521
  };
363
522
  }
364
523
  }
524
+ async function runWriteFileJob(req) {
525
+ const data = req.body.args[0];
526
+ try {
527
+ const fullPathToWrite = path.join(process.cwd(), data.path);
528
+ await fsPromises.mkdir(path.dirname(fullPathToWrite), { recursive: true });
529
+ await fsPromises.writeFile(fullPathToWrite, data.body);
530
+ return jsonResponse(req, null);
531
+ } catch (error) {
532
+ console.trace(error);
533
+ throw {
534
+ title: "DataSource Error",
535
+ message: `DataSource.Generator.writeFile failed for file path: ${kleur.yellow(
536
+ data.path
537
+ )}\n${kleur.red(error.toString())}`,
538
+ };
539
+ }
540
+ }
365
541
 
366
542
  async function runGlobNew(req, patternsToWatch) {
367
543
  try {
@@ -384,6 +560,15 @@ async function runGlobNew(req, patternsToWatch) {
384
560
  }
385
561
  }
386
562
 
563
+ async function runLogJob(req) {
564
+ try {
565
+ console.log(req.body.args[0].message);
566
+ return jsonResponse(req, null);
567
+ } catch (e) {
568
+ console.log(`Error performing env '${JSON.stringify(req.body)}'`);
569
+ throw e;
570
+ }
571
+ }
387
572
  async function runEnvJob(req, patternsToWatch) {
388
573
  try {
389
574
  const expectedEnv = req.body.args[0];
@@ -24,6 +24,7 @@ function fullPath(portsHash, request, hasFsAccess) {
24
24
  if (hasFsAccess) {
25
25
  return path.join(
26
26
  process.cwd(),
27
+ // TODO use parameter or something other than global for this `global.isRunningGenerator` condition
27
28
  ".elm-pages",
28
29
  "http-response-cache",
29
30
  requestToString(requestWithPortHash)
@@ -1,14 +1,14 @@
1
1
  const fs = require("fs");
2
2
 
3
- module.exports = async function () {
3
+ module.exports = async function (sourceElmJsonPath, targetElmJsonPath) {
4
4
  var elmJson = JSON.parse(
5
- (await fs.promises.readFile("./elm.json")).toString()
5
+ (await fs.promises.readFile(sourceElmJsonPath)).toString()
6
6
  );
7
7
 
8
8
  // write new elm.json
9
9
 
10
10
  await writeFileIfChanged(
11
- "./elm-stuff/elm-pages/elm.json",
11
+ targetElmJsonPath,
12
12
  JSON.stringify(rewriteElmJson(elmJson))
13
13
  );
14
14
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "elm-pages",
3
- "version": "3.0.0-beta.10",
3
+ "version": "3.0.0-beta.13",
4
4
  "homepage": "https://elm-pages.com",
5
5
  "moduleResolution": "node",
6
6
  "description": "Type-safe static sites, written in pure elm with your own custom elm-markup syntax.",
@@ -26,14 +26,14 @@
26
26
  "dependencies": {
27
27
  "busboy": "^1.0.0",
28
28
  "chokidar": "^3.5.3",
29
- "commander": "^9.4.0",
29
+ "commander": "9.4.1",
30
30
  "connect": "^3.7.0",
31
31
  "cookie-signature": "^1.1.0",
32
32
  "cross-spawn": "7.0.3",
33
33
  "devcert": "^1.2.2",
34
34
  "elm-doc-preview": "^5.0.5",
35
35
  "elm-hot": "^1.1.6",
36
- "esbuild": "^0.15.5",
36
+ "esbuild": "^0.16.1",
37
37
  "fs-extra": "^10.1.0",
38
38
  "globby": "11.0.4",
39
39
  "gray-matter": "^4.0.3",
@@ -44,26 +44,26 @@
44
44
  "node-fetch": "^2.6.7",
45
45
  "object-hash": "^2.2.0",
46
46
  "serve-static": "^1.15.0",
47
- "terser": "^5.14.2",
48
- "vite": "^3.1.8",
47
+ "terser": "^5.16.1",
48
+ "vite": "^3.2.5",
49
49
  "which": "^2.0.2"
50
50
  },
51
51
  "devDependencies": {
52
52
  "@types/cross-spawn": "^6.0.2",
53
53
  "@types/fs-extra": "^9.0.13",
54
54
  "@types/micromatch": "^4.0.2",
55
- "@types/node": "12.20.12",
55
+ "@types/node": "^18.11.9",
56
56
  "@types/serve-static": "^1.15.0",
57
- "cypress": "^10.6.0",
57
+ "cypress": "^11.1.0",
58
58
  "elm-codegen": "^0.2.0",
59
- "elm-optimize-level-2": "^0.1.5",
60
- "elm-review": "^2.7.4",
61
- "elm-test": "^0.19.1-revision9",
62
- "elm-tooling": "^1.8.0",
59
+ "elm-optimize-level-2": "^0.3.5",
60
+ "elm-review": "^2.8.2",
61
+ "elm-test": "^0.19.1-revision10",
62
+ "elm-tooling": "^1.10.0",
63
63
  "elm-verify-examples": "^5.2.0",
64
64
  "elmi-to-json": "^1.2.0",
65
65
  "mocha": "^10.0.0",
66
- "typescript": "^4.7.4"
66
+ "typescript": "^4.9.3"
67
67
  },
68
68
  "files": [
69
69
  "generator/src/",
package/src/ApiRoute.elm CHANGED
@@ -1,8 +1,9 @@
1
1
  module ApiRoute exposing
2
- ( ApiRoute, ApiRouteBuilder, Response
2
+ ( single, preRender
3
+ , serverRender
4
+ , preRenderWithFallback
5
+ , ApiRoute, ApiRouteBuilder, Response
3
6
  , capture, literal, slash, succeed
4
- , single, preRender
5
- , preRenderWithFallback, serverRender
6
7
  , withGlobalHeadTags
7
8
  , toJson, getBuildTimeRoutes, getGlobalHeadTagsDataSource
8
9
  )
@@ -11,19 +12,153 @@ module ApiRoute exposing
11
12
  to a DataSource so you can pull in HTTP data, etc. Because ApiRoutes don't hydrate into Elm apps (like pages in elm-pages do), you can pull in as much data as you want in
12
13
  the DataSource for your ApiRoutes, and it won't effect the payload size. Instead, the size of an ApiRoute is just the content you output for that route.
13
14
 
14
- @docs ApiRoute, ApiRouteBuilder, Response
15
-
16
- @docs capture, literal, slash, succeed
15
+ Similar to your elm-pages Route Modules, ApiRoute's can be either server-rendered or pre-rendered. Let's compare the differences between pre-rendered and server-rendered ApiRoutes, and the different
16
+ use cases they support.
17
17
 
18
18
 
19
19
  ## Pre-Rendering
20
20
 
21
+ A pre-rendered ApiRoute is just a generated file. For example:
22
+
23
+ - [An RSS feed](https://github.com/dillonkearns/elm-pages/blob/131f7b750cdefb2ba7a34a06be06dfbfafc79a86/examples/docs/app/Api.elm#L77-L84) ([Output file](https://elm-pages.com/blog/feed.xml))
24
+ - [A calendar feed in the ical format](https://github.com/dillonkearns/incrementalelm.com/blob/d4934d899d06232dc66dcf9f4b5eccc74bbc60d3/src/Api.elm#L51-L60) ([Output file](https://incrementalelm.com/live.ics))
25
+ - A redirect file for a hosting provider like Netlify
26
+
27
+ You could even generate a JavaScript file, an Elm file, or any file with a String body! It's really just a way to generate files, which are typically used to serve files to a user or Browser, but you execute them, copy them, etc. The only limit is your imagination!
28
+ The beauty is that you have a way to 1) pull in type-safe data using DataSource's, and 2) write those files, and all in pure Elm!
29
+
21
30
  @docs single, preRender
22
31
 
23
32
 
24
33
  ## Server Rendering
25
34
 
26
- @docs preRenderWithFallback, serverRender
35
+ You could use server-rendered ApiRoutes to do a lot of similar things, the main difference being that it will be served up through a URL and generated on-demand when that URL is requested.
36
+ So for example, for an RSS feed or ical calendar feed like in the pre-rendered examples, you could build the same routes, but you would be pulling in the list of posts or calendar events on-demand rather
37
+ than upfront at build-time. That means you can hit your database and serve up always-up-to-date data.
38
+
39
+ Not only that, but your server-rendered ApiRoutes have access to the incoming HTTP request payload just like your server-rendered Route Modules do. Just as with server-rendered Route Modules,
40
+ a server-rendered ApiRoute accesses the incoming HTTP request through a [Server.Request.Parser](Server-Request). Consider the use cases that this opens up:
41
+
42
+ - Serve up protected assets. For example, gated content, like a paid subscriber feed for a podcast that checks authentication information in a query parameter to authenticate that a user has an active paid subscription before serving up the Pro RSS feed.
43
+ - Serve up user-specific content, either through a cookie or other means of authentication
44
+ - Look at the [accepted content-type in the request headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept) and use that to choose a response format, like XML or JSON ([full example](https://github.com/dillonkearns/elm-pages/blob/131f7b750cdefb2ba7a34a06be06dfbfafc79a86/examples/end-to-end/app/Api.elm#L76-L107)).
45
+ - Look at the [accepted language in the request headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language) and use that to choose a language for the response data.
46
+
47
+ @docs serverRender
48
+
49
+ You can also do a hybrid approach using `preRenderWithFallback`. This allows you to pre-render a set of routes at build-time, but build additional routes that weren't rendered at build-time on the fly on the server.
50
+ Conceptually, this is just a delayed version of a pre-rendered route. Because of that, you _do not_ have access to the incoming HTTP request (no `Server.Request.Parser` like in server-rendered ApiRoute's).
51
+ The strategy used to build these routes will differ depending on your hosting provider and the elm-pages adapter you have setup, but generally ApiRoute's that use `preRenderWithFallback` will be cached on the server
52
+ so within a certain time interval (or in the case of [Netlify's DPR](https://www.netlify.com/blog/2021/04/14/distributed-persistent-rendering-a-new-jamstack-approach-for-faster-builds/), until a new build is done)
53
+ that asset will be served up if that URL was already served up by the server.
54
+
55
+ @docs preRenderWithFallback
56
+
57
+
58
+ ## Defining ApiRoute's
59
+
60
+ You define your ApiRoute's in `app/Api.elm`. Here's a simple example:
61
+
62
+ module Api exposing (routes)
63
+
64
+ import ApiRoute
65
+ import DataSource exposing (DataSource)
66
+ import Server.Request
67
+
68
+ routes :
69
+ DataSource (List Route)
70
+ -> (Maybe { indent : Int, newLines : Bool } -> Html Never -> String)
71
+ -> List (ApiRoute.ApiRoute ApiRoute.Response)
72
+ routes getStaticRoutes htmlToString =
73
+ [ preRenderedExample
74
+ , requestPrinterExample
75
+ ]
76
+
77
+ {-| Generates the following files when you
78
+ run `elm-pages build`:
79
+
80
+ - `dist/users/1.json`
81
+ - `dist/users/2.json`
82
+ - `dist/users/3.json`
83
+
84
+ When you host it, these static assets will
85
+ be served at `/users/1.json`, etc.
86
+
87
+ -}
88
+ preRenderedExample : ApiRoute.ApiRoute ApiRoute.Response
89
+ preRenderedExample =
90
+ ApiRoute.succeed
91
+ (\userId ->
92
+ DataSource.succeed
93
+ (Json.Encode.object
94
+ [ ( "id", Json.Encode.string userId )
95
+ , ( "name", "Data for user " ++ userId |> Json.Encode.string )
96
+ ]
97
+ |> Json.Encode.encode 2
98
+ )
99
+ )
100
+ |> ApiRoute.literal "users"
101
+ |> ApiRoute.slash
102
+ |> ApiRoute.capture
103
+ |> ApiRoute.literal ".json"
104
+ |> ApiRoute.preRender
105
+ (\route ->
106
+ DataSource.succeed
107
+ [ route "1"
108
+ , route "2"
109
+ , route "3"
110
+ ]
111
+ )
112
+
113
+ {-| This returns a JSON response that prints information about the incoming
114
+ HTTP request. In practice you'd want to do something useful with that data,
115
+ and use more of the high-level helpers from the Server.Request API.
116
+ -}
117
+ requestPrinterExample : ApiRoute ApiRoute.Response
118
+ requestPrinterExample =
119
+ ApiRoute.succeed
120
+ (Server.Request.map4
121
+ (\rawBody method cookies queryParams ->
122
+ Encode.object
123
+ [ ( "rawBody"
124
+ , rawBody
125
+ |> Maybe.map Encode.string
126
+ |> Maybe.withDefault Encode.null
127
+ )
128
+ , ( "method"
129
+ , method
130
+ |> Server.Request.methodToString
131
+ |> Encode.string
132
+ )
133
+ , ( "cookies"
134
+ , cookies
135
+ |> Encode.dict
136
+ identity
137
+ Encode.string
138
+ )
139
+ , ( "queryParams"
140
+ , queryParams
141
+ |> Encode.dict
142
+ identity
143
+ (Encode.list Encode.string)
144
+ )
145
+ ]
146
+ |> Response.json
147
+ |> DataSource.succeed
148
+ )
149
+ Server.Request.rawBody
150
+ Server.Request.method
151
+ Server.Request.allCookies
152
+ Server.Request.queryParams
153
+ )
154
+ |> ApiRoute.literal "api"
155
+ |> ApiRoute.slash
156
+ |> ApiRoute.literal "request-test"
157
+ |> ApiRoute.serverRender
158
+
159
+ @docs ApiRoute, ApiRouteBuilder, Response
160
+
161
+ @docs capture, literal, slash, succeed
27
162
 
28
163
 
29
164
  ## Including Head Tags
@@ -54,7 +189,9 @@ type alias ApiRoute response =
54
189
  Internal.ApiRoute.ApiRoute response
55
190
 
56
191
 
57
- {-| -}
192
+ {-| Same as [`preRender`](#preRender), but for an ApiRoute that has no dynamic segments. This is just a bit simpler because
193
+ since there are no dynamic segments, you don't need to provide a DataSource with the list of dynamic segments to pre-render because there is only a single possible route.
194
+ -}
58
195
  single : ApiRouteBuilder (DataSource String) (List String) -> ApiRoute Response
59
196
  single handler =
60
197
  handler
@@ -235,7 +372,8 @@ toJson ((ApiRoute { kind }) as apiRoute) =
235
372
  ]
236
373
 
237
374
 
238
- {-| -}
375
+ {-| A literal String segment of a route.
376
+ -}
239
377
  literal : String -> ApiRouteBuilder a constructor -> ApiRouteBuilder a constructor
240
378
  literal segment (ApiRouteBuilder patterns pattern handler toString constructor) =
241
379
  ApiRouteBuilder
@@ -1,6 +1,28 @@
1
1
  module DataSource.Env exposing (get, expect)
2
2
 
3
- {-|
3
+ {-| Because DataSource's in `elm-pages` never run in the browser (see [the DataSource docs](DataSource)), you can access environment variables securely. As long as the environment variable isn't sent
4
+ down into the final `Data` value, it won't end up in the client!
5
+
6
+ import DataSource exposing (DataSource)
7
+ import DataSource.Env
8
+
9
+ type alias EnvVariables =
10
+ { sendGridKey : String
11
+ , siteUrl : String
12
+ }
13
+
14
+ sendEmail : Email -> DataSource ()
15
+ sendEmail email =
16
+ DataSource.map2 EnvVariables
17
+ (DataSource.Env.expect "SEND_GRID_KEY")
18
+ (DataSource.Env.get "BASE_URL"
19
+ |> DataSource.map (Maybe.withDefault "http://localhost:1234")
20
+ )
21
+ |> DataSource.andThen (sendEmailDataSource email)
22
+
23
+ sendEmailDataSource : Email -> EnvVariables -> DataSource ()
24
+ sendEmailDataSource email envVariables =
25
+ Debug.todo "Not defined here"
4
26
 
5
27
  @docs get, expect
6
28
 
@@ -13,7 +35,8 @@ import Json.Decode as Decode
13
35
  import Json.Encode as Encode
14
36
 
15
37
 
16
- {-| -}
38
+ {-| Get an environment variable, or Nothing if there is no environment variable matching that name.
39
+ -}
17
40
  get : String -> DataSource (Maybe String)
18
41
  get envVariableName =
19
42
  DataSource.Internal.Request.request
@@ -25,7 +48,8 @@ get envVariableName =
25
48
  }
26
49
 
27
50
 
28
- {-| -}
51
+ {-| Get an environment variable, or a DataSource failure if there is no environment variable matching that name.
52
+ -}
29
53
  expect : String -> DataSource String
30
54
  expect envVariableName =
31
55
  envVariableName