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

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 (501) hide show
  1. package/README.md +1 -1
  2. package/codegen/elm-pages-codegen.js +1497 -1130
  3. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateData.elmi +0 -0
  4. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateData.elmo +0 -0
  5. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateDataTest.elmo +0 -0
  6. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/d.dat +0 -0
  7. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/o.dat +0 -0
  8. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm.json +1 -1
  9. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/Reporter.elm.js +1 -1
  10. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/Runner.elm.js +152 -40
  11. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/node_runner.js +1 -1
  12. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/node_supervisor.js +4 -4
  13. package/generator/dead-code-review/src/Pages/Review/DeadCodeEliminateData.elm +58 -10
  14. package/generator/dead-code-review/tests/Pages/Review/DeadCodeEliminateDataTest.elm +45 -29
  15. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/d.dat +0 -0
  16. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/o.dat +0 -0
  17. package/generator/review/elm-stuff/tests-0.19.1/elm.json +1 -1
  18. package/generator/review/elm-stuff/tests-0.19.1/js/Reporter.elm.js +1 -1
  19. package/generator/review/elm-stuff/tests-0.19.1/js/Runner.elm.js +46 -5
  20. package/generator/review/elm-stuff/tests-0.19.1/js/node_runner.js +1 -1
  21. package/generator/review/elm-stuff/tests-0.19.1/js/node_supervisor.js +4 -4
  22. package/generator/src/RouteBuilder.elm +66 -52
  23. package/generator/src/SharedTemplate.elm +3 -2
  24. package/generator/src/SiteConfig.elm +3 -2
  25. package/generator/src/build.js +5 -5
  26. package/generator/src/cli.js +7 -6
  27. package/generator/src/compatibility-key.js +1 -1
  28. package/generator/src/dev-server.js +7 -7
  29. package/generator/src/error-formatter.js +7 -3
  30. package/generator/src/render-test.js +109 -0
  31. package/generator/src/render.js +83 -66
  32. package/generator/src/request-cache.js +181 -160
  33. package/generator/static-code/hmr.js +16 -2
  34. package/generator/template/app/Api.elm +2 -2
  35. package/generator/template/app/Route/Index.elm +3 -3
  36. package/generator/template/app/Shared.elm +3 -3
  37. package/generator/template/app/Site.elm +3 -3
  38. package/package.json +10 -10
  39. package/src/ApiRoute.elm +60 -57
  40. package/src/BackendTask/Env.elm +89 -0
  41. package/src/{DataSource → BackendTask}/File.elm +89 -43
  42. package/src/{DataSource → BackendTask}/Glob.elm +134 -125
  43. package/src/BackendTask/Http.elm +673 -0
  44. package/src/{DataSource → BackendTask}/Internal/Glob.elm +1 -1
  45. package/src/BackendTask/Internal/Request.elm +28 -0
  46. package/src/BackendTask/Port.elm +206 -0
  47. package/src/{DataSource.elm → BackendTask.elm} +223 -207
  48. package/src/Exception.elm +95 -0
  49. package/src/Form.elm +21 -20
  50. package/src/Head.elm +7 -7
  51. package/src/Internal/ApiRoute.elm +7 -5
  52. package/src/PageServerResponse.elm +6 -1
  53. package/src/Pages/Generate.elm +334 -165
  54. package/src/Pages/Internal/Platform/Cli.elm +432 -761
  55. package/src/Pages/Internal/Platform/Cli.elm.bak +22 -22
  56. package/src/Pages/Internal/Platform/CompatibilityKey.elm +1 -1
  57. package/src/Pages/Internal/Platform/Effect.elm +0 -1
  58. package/src/Pages/Internal/Platform/GeneratorApplication.elm +63 -147
  59. package/src/Pages/Internal/Platform/StaticResponses.elm +73 -301
  60. package/src/Pages/Internal/Platform/ToJsPayload.elm +4 -4
  61. package/src/Pages/Internal/Platform.elm +25 -31
  62. package/src/Pages/Internal/Script.elm +3 -2
  63. package/src/Pages/Internal/StaticHttpBody.elm +35 -1
  64. package/src/Pages/Manifest.elm +5 -4
  65. package/src/Pages/ProgramConfig.elm +8 -7
  66. package/src/Pages/Script.elm +28 -13
  67. package/src/Pages/SiteConfig.elm +3 -2
  68. package/src/Pages/StaticHttp/Request.elm +2 -2
  69. package/src/Pages/StaticHttpRequest.elm +23 -100
  70. package/src/RequestsAndPending.elm +8 -19
  71. package/src/Server/Request.elm +15 -14
  72. package/src/Server/Session.elm +34 -34
  73. package/src/Server/SetCookie.elm +1 -1
  74. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/dependencies.75364bef27ac5a049b87c3325f846fc6dbda23b8ed7187ed06748b96bb6a50a7.json +0 -1
  75. 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
  76. 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
  77. 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
  78. 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
  79. 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
  80. 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
  81. 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
  82. 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
  83. 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
  84. 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
  85. 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
  86. 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
  87. 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
  88. 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
  89. 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
  90. 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
  91. 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
  92. 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
  93. 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
  94. 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
  95. 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
  96. 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
  97. 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
  98. 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
  99. 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
  100. 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
  101. 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
  102. 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
  103. 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
  104. 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
  105. 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
  106. 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
  107. 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
  108. 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
  109. 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
  110. 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
  111. 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
  112. 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
  113. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm.json +0 -38
  114. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elmTestOutput.js +0 -29603
  115. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/package.json +0 -1
  116. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/src/Test/Generated/Main.elm +0 -27
  117. package/generator/dead-code-review/node_modules/.package-lock.json +0 -484
  118. package/generator/dead-code-review/node_modules/ansi-styles/index.d.ts +0 -345
  119. package/generator/dead-code-review/node_modules/ansi-styles/index.js +0 -163
  120. package/generator/dead-code-review/node_modules/ansi-styles/license +0 -9
  121. package/generator/dead-code-review/node_modules/ansi-styles/package.json +0 -56
  122. package/generator/dead-code-review/node_modules/ansi-styles/readme.md +0 -152
  123. package/generator/dead-code-review/node_modules/anymatch/LICENSE +0 -15
  124. package/generator/dead-code-review/node_modules/anymatch/README.md +0 -87
  125. package/generator/dead-code-review/node_modules/anymatch/index.d.ts +0 -20
  126. package/generator/dead-code-review/node_modules/anymatch/index.js +0 -104
  127. package/generator/dead-code-review/node_modules/anymatch/package.json +0 -48
  128. package/generator/dead-code-review/node_modules/balanced-match/.github/FUNDING.yml +0 -2
  129. package/generator/dead-code-review/node_modules/balanced-match/LICENSE.md +0 -21
  130. package/generator/dead-code-review/node_modules/balanced-match/README.md +0 -97
  131. package/generator/dead-code-review/node_modules/balanced-match/index.js +0 -62
  132. package/generator/dead-code-review/node_modules/balanced-match/package.json +0 -48
  133. package/generator/dead-code-review/node_modules/binary-extensions/binary-extensions.json +0 -260
  134. package/generator/dead-code-review/node_modules/binary-extensions/binary-extensions.json.d.ts +0 -3
  135. package/generator/dead-code-review/node_modules/binary-extensions/index.d.ts +0 -14
  136. package/generator/dead-code-review/node_modules/binary-extensions/index.js +0 -1
  137. package/generator/dead-code-review/node_modules/binary-extensions/license +0 -9
  138. package/generator/dead-code-review/node_modules/binary-extensions/package.json +0 -38
  139. package/generator/dead-code-review/node_modules/binary-extensions/readme.md +0 -41
  140. package/generator/dead-code-review/node_modules/brace-expansion/.github/FUNDING.yml +0 -2
  141. package/generator/dead-code-review/node_modules/brace-expansion/LICENSE +0 -21
  142. package/generator/dead-code-review/node_modules/brace-expansion/README.md +0 -135
  143. package/generator/dead-code-review/node_modules/brace-expansion/index.js +0 -203
  144. package/generator/dead-code-review/node_modules/brace-expansion/package.json +0 -46
  145. package/generator/dead-code-review/node_modules/braces/CHANGELOG.md +0 -184
  146. package/generator/dead-code-review/node_modules/braces/LICENSE +0 -21
  147. package/generator/dead-code-review/node_modules/braces/README.md +0 -593
  148. package/generator/dead-code-review/node_modules/braces/index.js +0 -170
  149. package/generator/dead-code-review/node_modules/braces/lib/compile.js +0 -57
  150. package/generator/dead-code-review/node_modules/braces/lib/constants.js +0 -57
  151. package/generator/dead-code-review/node_modules/braces/lib/expand.js +0 -113
  152. package/generator/dead-code-review/node_modules/braces/lib/parse.js +0 -333
  153. package/generator/dead-code-review/node_modules/braces/lib/stringify.js +0 -32
  154. package/generator/dead-code-review/node_modules/braces/lib/utils.js +0 -112
  155. package/generator/dead-code-review/node_modules/braces/package.json +0 -77
  156. package/generator/dead-code-review/node_modules/chalk/index.d.ts +0 -415
  157. package/generator/dead-code-review/node_modules/chalk/license +0 -9
  158. package/generator/dead-code-review/node_modules/chalk/package.json +0 -68
  159. package/generator/dead-code-review/node_modules/chalk/readme.md +0 -341
  160. package/generator/dead-code-review/node_modules/chalk/source/index.js +0 -229
  161. package/generator/dead-code-review/node_modules/chalk/source/templates.js +0 -134
  162. package/generator/dead-code-review/node_modules/chalk/source/util.js +0 -39
  163. package/generator/dead-code-review/node_modules/chokidar/LICENSE +0 -21
  164. package/generator/dead-code-review/node_modules/chokidar/README.md +0 -308
  165. package/generator/dead-code-review/node_modules/chokidar/index.js +0 -973
  166. package/generator/dead-code-review/node_modules/chokidar/lib/constants.js +0 -65
  167. package/generator/dead-code-review/node_modules/chokidar/lib/fsevents-handler.js +0 -524
  168. package/generator/dead-code-review/node_modules/chokidar/lib/nodefs-handler.js +0 -654
  169. package/generator/dead-code-review/node_modules/chokidar/package.json +0 -85
  170. package/generator/dead-code-review/node_modules/chokidar/types/index.d.ts +0 -188
  171. package/generator/dead-code-review/node_modules/color-convert/CHANGELOG.md +0 -54
  172. package/generator/dead-code-review/node_modules/color-convert/LICENSE +0 -21
  173. package/generator/dead-code-review/node_modules/color-convert/README.md +0 -68
  174. package/generator/dead-code-review/node_modules/color-convert/conversions.js +0 -839
  175. package/generator/dead-code-review/node_modules/color-convert/index.js +0 -81
  176. package/generator/dead-code-review/node_modules/color-convert/package.json +0 -48
  177. package/generator/dead-code-review/node_modules/color-convert/route.js +0 -97
  178. package/generator/dead-code-review/node_modules/color-name/LICENSE +0 -8
  179. package/generator/dead-code-review/node_modules/color-name/README.md +0 -11
  180. package/generator/dead-code-review/node_modules/color-name/index.js +0 -152
  181. package/generator/dead-code-review/node_modules/color-name/package.json +0 -28
  182. package/generator/dead-code-review/node_modules/commander/LICENSE +0 -22
  183. package/generator/dead-code-review/node_modules/commander/Readme.md +0 -1118
  184. package/generator/dead-code-review/node_modules/commander/esm.mjs +0 -16
  185. package/generator/dead-code-review/node_modules/commander/index.js +0 -27
  186. package/generator/dead-code-review/node_modules/commander/lib/argument.js +0 -147
  187. package/generator/dead-code-review/node_modules/commander/lib/command.js +0 -2160
  188. package/generator/dead-code-review/node_modules/commander/lib/error.js +0 -45
  189. package/generator/dead-code-review/node_modules/commander/lib/help.js +0 -406
  190. package/generator/dead-code-review/node_modules/commander/lib/option.js +0 -326
  191. package/generator/dead-code-review/node_modules/commander/lib/suggestSimilar.js +0 -100
  192. package/generator/dead-code-review/node_modules/commander/package-support.json +0 -16
  193. package/generator/dead-code-review/node_modules/commander/package.json +0 -80
  194. package/generator/dead-code-review/node_modules/commander/typings/index.d.ts +0 -881
  195. package/generator/dead-code-review/node_modules/cross-spawn/CHANGELOG.md +0 -130
  196. package/generator/dead-code-review/node_modules/cross-spawn/LICENSE +0 -21
  197. package/generator/dead-code-review/node_modules/cross-spawn/README.md +0 -96
  198. package/generator/dead-code-review/node_modules/cross-spawn/index.js +0 -39
  199. package/generator/dead-code-review/node_modules/cross-spawn/lib/enoent.js +0 -59
  200. package/generator/dead-code-review/node_modules/cross-spawn/lib/parse.js +0 -91
  201. package/generator/dead-code-review/node_modules/cross-spawn/lib/util/escape.js +0 -45
  202. package/generator/dead-code-review/node_modules/cross-spawn/lib/util/readShebang.js +0 -23
  203. package/generator/dead-code-review/node_modules/cross-spawn/lib/util/resolveCommand.js +0 -52
  204. package/generator/dead-code-review/node_modules/cross-spawn/package.json +0 -73
  205. package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/LICENSE +0 -373
  206. package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/README.md +0 -64
  207. package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/elm_solve_deps_wasm.d.ts +0 -22
  208. package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/elm_solve_deps_wasm.js +0 -419
  209. package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/elm_solve_deps_wasm_bg.wasm +0 -0
  210. package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/package.json +0 -27
  211. package/generator/dead-code-review/node_modules/elm-test/LICENSE +0 -27
  212. package/generator/dead-code-review/node_modules/elm-test/README.md +0 -192
  213. package/generator/dead-code-review/node_modules/elm-test/bin/elm-test +0 -3
  214. package/generator/dead-code-review/node_modules/elm-test/elm/elm.json +0 -25
  215. package/generator/dead-code-review/node_modules/elm-test/elm/src/Console/Text.elm +0 -217
  216. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Console/Format/Color.elm +0 -30
  217. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Console/Format/Monochrome.elm +0 -39
  218. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Console/Format.elm +0 -212
  219. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Console.elm +0 -207
  220. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Highlightable.elm +0 -48
  221. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/JUnit.elm +0 -161
  222. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Json.elm +0 -158
  223. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Reporter.elm +0 -53
  224. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/TestResults.elm +0 -113
  225. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Runner/JsMessage.elm +0 -38
  226. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Runner/Node/Vendor/Console.elm +0 -230
  227. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Runner/Node/Vendor/Diff.elm +0 -326
  228. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Runner/Node.elm +0 -440
  229. package/generator/dead-code-review/node_modules/elm-test/lib/Compile.js +0 -110
  230. package/generator/dead-code-review/node_modules/elm-test/lib/DependencyProvider.js +0 -343
  231. package/generator/dead-code-review/node_modules/elm-test/lib/ElmCompiler.js +0 -109
  232. package/generator/dead-code-review/node_modules/elm-test/lib/ElmHome.js +0 -47
  233. package/generator/dead-code-review/node_modules/elm-test/lib/ElmJson.js +0 -194
  234. package/generator/dead-code-review/node_modules/elm-test/lib/FindTests.js +0 -276
  235. package/generator/dead-code-review/node_modules/elm-test/lib/Generate.js +0 -294
  236. package/generator/dead-code-review/node_modules/elm-test/lib/Install.js +0 -290
  237. package/generator/dead-code-review/node_modules/elm-test/lib/Parser.js +0 -941
  238. package/generator/dead-code-review/node_modules/elm-test/lib/Project.js +0 -117
  239. package/generator/dead-code-review/node_modules/elm-test/lib/Report.js +0 -23
  240. package/generator/dead-code-review/node_modules/elm-test/lib/RunTests.js +0 -322
  241. package/generator/dead-code-review/node_modules/elm-test/lib/Solve.js +0 -76
  242. package/generator/dead-code-review/node_modules/elm-test/lib/Supervisor.js +0 -294
  243. package/generator/dead-code-review/node_modules/elm-test/lib/SyncGet.js +0 -45
  244. package/generator/dead-code-review/node_modules/elm-test/lib/SyncGetWorker.js +0 -36
  245. package/generator/dead-code-review/node_modules/elm-test/lib/elm-test.js +0 -318
  246. package/generator/dead-code-review/node_modules/elm-test/package.json +0 -69
  247. package/generator/dead-code-review/node_modules/elm-test/templates/after.js +0 -29
  248. package/generator/dead-code-review/node_modules/elm-test/templates/before.js +0 -58
  249. package/generator/dead-code-review/node_modules/elm-test/templates/tests/Example.elm +0 -10
  250. package/generator/dead-code-review/node_modules/fill-range/LICENSE +0 -21
  251. package/generator/dead-code-review/node_modules/fill-range/README.md +0 -237
  252. package/generator/dead-code-review/node_modules/fill-range/index.js +0 -249
  253. package/generator/dead-code-review/node_modules/fill-range/package.json +0 -69
  254. package/generator/dead-code-review/node_modules/fs.realpath/LICENSE +0 -43
  255. package/generator/dead-code-review/node_modules/fs.realpath/README.md +0 -33
  256. package/generator/dead-code-review/node_modules/fs.realpath/index.js +0 -66
  257. package/generator/dead-code-review/node_modules/fs.realpath/old.js +0 -303
  258. package/generator/dead-code-review/node_modules/fs.realpath/package.json +0 -26
  259. package/generator/dead-code-review/node_modules/fsevents/LICENSE +0 -22
  260. package/generator/dead-code-review/node_modules/fsevents/README.md +0 -83
  261. package/generator/dead-code-review/node_modules/fsevents/fsevents.d.ts +0 -46
  262. package/generator/dead-code-review/node_modules/fsevents/fsevents.js +0 -82
  263. package/generator/dead-code-review/node_modules/fsevents/fsevents.node +0 -0
  264. package/generator/dead-code-review/node_modules/fsevents/package.json +0 -62
  265. package/generator/dead-code-review/node_modules/glob/LICENSE +0 -15
  266. package/generator/dead-code-review/node_modules/glob/README.md +0 -378
  267. package/generator/dead-code-review/node_modules/glob/common.js +0 -240
  268. package/generator/dead-code-review/node_modules/glob/glob.js +0 -790
  269. package/generator/dead-code-review/node_modules/glob/package.json +0 -55
  270. package/generator/dead-code-review/node_modules/glob/sync.js +0 -486
  271. package/generator/dead-code-review/node_modules/glob-parent/CHANGELOG.md +0 -110
  272. package/generator/dead-code-review/node_modules/glob-parent/LICENSE +0 -15
  273. package/generator/dead-code-review/node_modules/glob-parent/README.md +0 -137
  274. package/generator/dead-code-review/node_modules/glob-parent/index.js +0 -42
  275. package/generator/dead-code-review/node_modules/glob-parent/package.json +0 -48
  276. package/generator/dead-code-review/node_modules/graceful-fs/LICENSE +0 -15
  277. package/generator/dead-code-review/node_modules/graceful-fs/README.md +0 -143
  278. package/generator/dead-code-review/node_modules/graceful-fs/clone.js +0 -23
  279. package/generator/dead-code-review/node_modules/graceful-fs/graceful-fs.js +0 -448
  280. package/generator/dead-code-review/node_modules/graceful-fs/legacy-streams.js +0 -118
  281. package/generator/dead-code-review/node_modules/graceful-fs/package.json +0 -50
  282. package/generator/dead-code-review/node_modules/graceful-fs/polyfills.js +0 -355
  283. package/generator/dead-code-review/node_modules/has-flag/index.d.ts +0 -39
  284. package/generator/dead-code-review/node_modules/has-flag/index.js +0 -8
  285. package/generator/dead-code-review/node_modules/has-flag/license +0 -9
  286. package/generator/dead-code-review/node_modules/has-flag/package.json +0 -46
  287. package/generator/dead-code-review/node_modules/has-flag/readme.md +0 -89
  288. package/generator/dead-code-review/node_modules/inflight/LICENSE +0 -15
  289. package/generator/dead-code-review/node_modules/inflight/README.md +0 -37
  290. package/generator/dead-code-review/node_modules/inflight/inflight.js +0 -54
  291. package/generator/dead-code-review/node_modules/inflight/package.json +0 -29
  292. package/generator/dead-code-review/node_modules/inherits/LICENSE +0 -16
  293. package/generator/dead-code-review/node_modules/inherits/README.md +0 -42
  294. package/generator/dead-code-review/node_modules/inherits/inherits.js +0 -9
  295. package/generator/dead-code-review/node_modules/inherits/inherits_browser.js +0 -27
  296. package/generator/dead-code-review/node_modules/inherits/package.json +0 -29
  297. package/generator/dead-code-review/node_modules/is-binary-path/index.d.ts +0 -17
  298. package/generator/dead-code-review/node_modules/is-binary-path/index.js +0 -7
  299. package/generator/dead-code-review/node_modules/is-binary-path/license +0 -9
  300. package/generator/dead-code-review/node_modules/is-binary-path/package.json +0 -40
  301. package/generator/dead-code-review/node_modules/is-binary-path/readme.md +0 -34
  302. package/generator/dead-code-review/node_modules/is-extglob/LICENSE +0 -21
  303. package/generator/dead-code-review/node_modules/is-extglob/README.md +0 -107
  304. package/generator/dead-code-review/node_modules/is-extglob/index.js +0 -20
  305. package/generator/dead-code-review/node_modules/is-extglob/package.json +0 -69
  306. package/generator/dead-code-review/node_modules/is-glob/LICENSE +0 -21
  307. package/generator/dead-code-review/node_modules/is-glob/README.md +0 -206
  308. package/generator/dead-code-review/node_modules/is-glob/index.js +0 -150
  309. package/generator/dead-code-review/node_modules/is-glob/package.json +0 -81
  310. package/generator/dead-code-review/node_modules/is-number/LICENSE +0 -21
  311. package/generator/dead-code-review/node_modules/is-number/README.md +0 -187
  312. package/generator/dead-code-review/node_modules/is-number/index.js +0 -18
  313. package/generator/dead-code-review/node_modules/is-number/package.json +0 -82
  314. package/generator/dead-code-review/node_modules/isexe/LICENSE +0 -15
  315. package/generator/dead-code-review/node_modules/isexe/README.md +0 -51
  316. package/generator/dead-code-review/node_modules/isexe/index.js +0 -57
  317. package/generator/dead-code-review/node_modules/isexe/mode.js +0 -41
  318. package/generator/dead-code-review/node_modules/isexe/package.json +0 -31
  319. package/generator/dead-code-review/node_modules/isexe/test/basic.js +0 -221
  320. package/generator/dead-code-review/node_modules/isexe/windows.js +0 -42
  321. package/generator/dead-code-review/node_modules/minimatch/LICENSE +0 -15
  322. package/generator/dead-code-review/node_modules/minimatch/README.md +0 -259
  323. package/generator/dead-code-review/node_modules/minimatch/lib/path.js +0 -4
  324. package/generator/dead-code-review/node_modules/minimatch/minimatch.js +0 -906
  325. package/generator/dead-code-review/node_modules/minimatch/package.json +0 -32
  326. package/generator/dead-code-review/node_modules/normalize-path/LICENSE +0 -21
  327. package/generator/dead-code-review/node_modules/normalize-path/README.md +0 -127
  328. package/generator/dead-code-review/node_modules/normalize-path/index.js +0 -35
  329. package/generator/dead-code-review/node_modules/normalize-path/package.json +0 -77
  330. package/generator/dead-code-review/node_modules/once/LICENSE +0 -15
  331. package/generator/dead-code-review/node_modules/once/README.md +0 -79
  332. package/generator/dead-code-review/node_modules/once/once.js +0 -42
  333. package/generator/dead-code-review/node_modules/once/package.json +0 -33
  334. package/generator/dead-code-review/node_modules/path-key/index.d.ts +0 -40
  335. package/generator/dead-code-review/node_modules/path-key/index.js +0 -16
  336. package/generator/dead-code-review/node_modules/path-key/license +0 -9
  337. package/generator/dead-code-review/node_modules/path-key/package.json +0 -39
  338. package/generator/dead-code-review/node_modules/path-key/readme.md +0 -61
  339. package/generator/dead-code-review/node_modules/picomatch/CHANGELOG.md +0 -136
  340. package/generator/dead-code-review/node_modules/picomatch/LICENSE +0 -21
  341. package/generator/dead-code-review/node_modules/picomatch/README.md +0 -708
  342. package/generator/dead-code-review/node_modules/picomatch/index.js +0 -3
  343. package/generator/dead-code-review/node_modules/picomatch/lib/constants.js +0 -179
  344. package/generator/dead-code-review/node_modules/picomatch/lib/parse.js +0 -1091
  345. package/generator/dead-code-review/node_modules/picomatch/lib/picomatch.js +0 -342
  346. package/generator/dead-code-review/node_modules/picomatch/lib/scan.js +0 -391
  347. package/generator/dead-code-review/node_modules/picomatch/lib/utils.js +0 -64
  348. package/generator/dead-code-review/node_modules/picomatch/package.json +0 -81
  349. package/generator/dead-code-review/node_modules/readdirp/LICENSE +0 -21
  350. package/generator/dead-code-review/node_modules/readdirp/README.md +0 -122
  351. package/generator/dead-code-review/node_modules/readdirp/index.d.ts +0 -43
  352. package/generator/dead-code-review/node_modules/readdirp/index.js +0 -287
  353. package/generator/dead-code-review/node_modules/readdirp/package.json +0 -122
  354. package/generator/dead-code-review/node_modules/shebang-command/index.js +0 -19
  355. package/generator/dead-code-review/node_modules/shebang-command/license +0 -9
  356. package/generator/dead-code-review/node_modules/shebang-command/package.json +0 -34
  357. package/generator/dead-code-review/node_modules/shebang-command/readme.md +0 -34
  358. package/generator/dead-code-review/node_modules/shebang-regex/index.d.ts +0 -22
  359. package/generator/dead-code-review/node_modules/shebang-regex/index.js +0 -2
  360. package/generator/dead-code-review/node_modules/shebang-regex/license +0 -9
  361. package/generator/dead-code-review/node_modules/shebang-regex/package.json +0 -35
  362. package/generator/dead-code-review/node_modules/shebang-regex/readme.md +0 -33
  363. package/generator/dead-code-review/node_modules/split/.travis.yml +0 -3
  364. package/generator/dead-code-review/node_modules/split/LICENCE +0 -22
  365. package/generator/dead-code-review/node_modules/split/examples/pretty.js +0 -26
  366. package/generator/dead-code-review/node_modules/split/index.js +0 -63
  367. package/generator/dead-code-review/node_modules/split/package.json +0 -30
  368. package/generator/dead-code-review/node_modules/split/readme.markdown +0 -72
  369. package/generator/dead-code-review/node_modules/split/test/options.asynct.js +0 -46
  370. package/generator/dead-code-review/node_modules/split/test/partitioned_unicode.js +0 -34
  371. package/generator/dead-code-review/node_modules/split/test/split.asynct.js +0 -137
  372. package/generator/dead-code-review/node_modules/split/test/try_catch.asynct.js +0 -51
  373. package/generator/dead-code-review/node_modules/supports-color/browser.js +0 -5
  374. package/generator/dead-code-review/node_modules/supports-color/index.js +0 -135
  375. package/generator/dead-code-review/node_modules/supports-color/license +0 -9
  376. package/generator/dead-code-review/node_modules/supports-color/package.json +0 -53
  377. package/generator/dead-code-review/node_modules/supports-color/readme.md +0 -76
  378. package/generator/dead-code-review/node_modules/through/.travis.yml +0 -5
  379. package/generator/dead-code-review/node_modules/through/LICENSE.APACHE2 +0 -15
  380. package/generator/dead-code-review/node_modules/through/LICENSE.MIT +0 -24
  381. package/generator/dead-code-review/node_modules/through/index.js +0 -108
  382. package/generator/dead-code-review/node_modules/through/package.json +0 -36
  383. package/generator/dead-code-review/node_modules/through/readme.markdown +0 -64
  384. package/generator/dead-code-review/node_modules/through/test/async.js +0 -28
  385. package/generator/dead-code-review/node_modules/through/test/auto-destroy.js +0 -30
  386. package/generator/dead-code-review/node_modules/through/test/buffering.js +0 -71
  387. package/generator/dead-code-review/node_modules/through/test/end.js +0 -45
  388. package/generator/dead-code-review/node_modules/through/test/index.js +0 -133
  389. package/generator/dead-code-review/node_modules/to-regex-range/LICENSE +0 -21
  390. package/generator/dead-code-review/node_modules/to-regex-range/README.md +0 -305
  391. package/generator/dead-code-review/node_modules/to-regex-range/index.js +0 -288
  392. package/generator/dead-code-review/node_modules/to-regex-range/package.json +0 -88
  393. package/generator/dead-code-review/node_modules/which/CHANGELOG.md +0 -166
  394. package/generator/dead-code-review/node_modules/which/LICENSE +0 -15
  395. package/generator/dead-code-review/node_modules/which/README.md +0 -54
  396. package/generator/dead-code-review/node_modules/which/bin/node-which +0 -52
  397. package/generator/dead-code-review/node_modules/which/package.json +0 -43
  398. package/generator/dead-code-review/node_modules/which/which.js +0 -125
  399. package/generator/dead-code-review/node_modules/wrappy/LICENSE +0 -15
  400. package/generator/dead-code-review/node_modules/wrappy/README.md +0 -36
  401. package/generator/dead-code-review/node_modules/wrappy/package.json +0 -29
  402. package/generator/dead-code-review/node_modules/wrappy/wrappy.js +0 -33
  403. package/generator/dead-code-review/node_modules/xmlbuilder/.nycrc +0 -6
  404. package/generator/dead-code-review/node_modules/xmlbuilder/.vscode/launch.json +0 -23
  405. package/generator/dead-code-review/node_modules/xmlbuilder/CHANGELOG.md +0 -593
  406. package/generator/dead-code-review/node_modules/xmlbuilder/LICENSE +0 -21
  407. package/generator/dead-code-review/node_modules/xmlbuilder/README.md +0 -103
  408. package/generator/dead-code-review/node_modules/xmlbuilder/lib/Derivation.js +0 -10
  409. package/generator/dead-code-review/node_modules/xmlbuilder/lib/DocumentPosition.js +0 -12
  410. package/generator/dead-code-review/node_modules/xmlbuilder/lib/NodeType.js +0 -25
  411. package/generator/dead-code-review/node_modules/xmlbuilder/lib/OperationType.js +0 -11
  412. package/generator/dead-code-review/node_modules/xmlbuilder/lib/Utility.js +0 -88
  413. package/generator/dead-code-review/node_modules/xmlbuilder/lib/WriterState.js +0 -10
  414. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLAttribute.js +0 -130
  415. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLCData.js +0 -41
  416. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLCharacterData.js +0 -86
  417. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLComment.js +0 -41
  418. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDOMConfiguration.js +0 -80
  419. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDOMErrorHandler.js +0 -20
  420. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDOMImplementation.js +0 -55
  421. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDOMStringList.js +0 -44
  422. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDTDAttList.js +0 -66
  423. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDTDElement.js +0 -44
  424. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDTDEntity.js +0 -115
  425. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDTDNotation.js +0 -66
  426. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDeclaration.js +0 -51
  427. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDocType.js +0 -235
  428. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDocument.js +0 -282
  429. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDocumentCB.js +0 -650
  430. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDocumentFragment.js +0 -21
  431. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDummy.js +0 -39
  432. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLElement.js +0 -334
  433. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLNamedNodeMap.js +0 -77
  434. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLNode.js +0 -999
  435. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLNodeFilter.js +0 -51
  436. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLNodeList.js +0 -45
  437. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLProcessingInstruction.js +0 -56
  438. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLRaw.js +0 -40
  439. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLStreamWriter.js +0 -209
  440. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLStringWriter.js +0 -40
  441. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLStringifier.js +0 -291
  442. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLText.js +0 -82
  443. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLTypeInfo.js +0 -23
  444. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLUserDataHandler.js +0 -27
  445. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLWriterBase.js +0 -485
  446. package/generator/dead-code-review/node_modules/xmlbuilder/lib/index.js +0 -120
  447. package/generator/dead-code-review/node_modules/xmlbuilder/package.json +0 -51
  448. package/generator/dead-code-review/node_modules/xmlbuilder/perf/basic/escaping.coffee +0 -244
  449. package/generator/dead-code-review/node_modules/xmlbuilder/perf/basic/object.coffee +0 -21
  450. package/generator/dead-code-review/node_modules/xmlbuilder/perf/index.coffee +0 -161
  451. package/generator/dead-code-review/node_modules/xmlbuilder/perf/perf.list +0 -11
  452. package/generator/dead-code-review/node_modules/xmlbuilder/typings/index.d.ts +0 -1771
  453. package/generator/review/elm-stuff/0.19.1/d.dat +0 -0
  454. package/generator/review/elm-stuff/0.19.1/i.dat +0 -0
  455. package/generator/review/elm-stuff/0.19.1/o.dat +0 -0
  456. 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
  457. 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
  458. 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
  459. package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision10/install/elm.json +0 -25
  460. 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
  461. 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
  462. 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
  463. package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision7/install/elm.json +0 -41
  464. package/src/DataSource/Env.elm +0 -62
  465. package/src/DataSource/Http.elm +0 -446
  466. package/src/DataSource/Internal/Request.elm +0 -20
  467. package/src/DataSource/Port.elm +0 -90
  468. package/src/MultiDict.elm +0 -49
  469. package/src/PairingHeap.elm +0 -137
  470. package/src/Parser/Extra/String.elm +0 -33
  471. package/src/Parser/Extra.elm +0 -69
  472. package/src/ProgramTest/ComplexQuery.elm +0 -360
  473. package/src/ProgramTest/EffectSimulation.elm +0 -122
  474. package/src/ProgramTest/Failure.elm +0 -367
  475. package/src/ProgramTest/HtmlHighlighter.elm +0 -116
  476. package/src/ProgramTest/HtmlParserHacks.elm +0 -58
  477. package/src/ProgramTest/HtmlRenderer.elm +0 -73
  478. package/src/ProgramTest/Program.elm +0 -30
  479. package/src/ProgramTest/StringLines.elm +0 -26
  480. package/src/ProgramTest/TestHtmlHacks.elm +0 -132
  481. package/src/ProgramTest/TestHtmlParser.elm +0 -201
  482. package/src/ProgramTest.elm +0 -2339
  483. package/src/Query/Extra.elm +0 -55
  484. package/src/SimulatedEffect/Cmd.elm +0 -69
  485. package/src/SimulatedEffect/Http.elm +0 -330
  486. package/src/SimulatedEffect/Navigation.elm +0 -69
  487. package/src/SimulatedEffect/Ports.elm +0 -62
  488. package/src/SimulatedEffect/Process.elm +0 -24
  489. package/src/SimulatedEffect/Sub.elm +0 -48
  490. package/src/SimulatedEffect/Task.elm +0 -252
  491. package/src/SimulatedEffect/Time.elm +0 -25
  492. package/src/SimulatedEffect.elm +0 -42
  493. package/src/String/Extra.elm +0 -6
  494. package/src/Test/Http.elm +0 -145
  495. package/src/TestResult.elm +0 -35
  496. package/src/TestState.elm +0 -305
  497. package/src/Url/Extra.elm +0 -100
  498. package/src/Vendored/Diff.elm +0 -321
  499. package/src/Vendored/Failure.elm +0 -217
  500. package/src/Vendored/FormatMonochrome.elm +0 -44
  501. package/src/Vendored/Highlightable.elm +0 -53
@@ -6,14 +6,14 @@ module Pages.Internal.Platform.Cli exposing (Flags, Model, Msg(..), Program, cli
6
6
 
7
7
  -}
8
8
 
9
- import ApiRoute
9
+ import BackendTask exposing (BackendTask)
10
10
  import BuildError exposing (BuildError)
11
11
  import Bytes exposing (Bytes)
12
12
  import Bytes.Encode
13
13
  import Codec
14
- import DataSource exposing (DataSource)
15
14
  import Dict
16
- import Head
15
+ import Exception exposing (Throwable)
16
+ import Head exposing (Tag)
17
17
  import Html exposing (Html)
18
18
  import HtmlPrinter
19
19
  import Internal.ApiRoute exposing (ApiRoute(..))
@@ -21,23 +21,19 @@ import Json.Decode as Decode
21
21
  import Json.Encode
22
22
  import PageServerResponse exposing (PageServerResponse)
23
23
  import Pages.Flags
24
- import Pages.Http
25
24
  import Pages.Internal.NotFoundReason as NotFoundReason exposing (NotFoundReason)
26
25
  import Pages.Internal.Platform.CompatibilityKey
27
26
  import Pages.Internal.Platform.Effect as Effect exposing (Effect)
28
- import Pages.Internal.Platform.StaticResponses as StaticResponses exposing (StaticResponses)
27
+ import Pages.Internal.Platform.StaticResponses as StaticResponses
29
28
  import Pages.Internal.Platform.ToJsPayload as ToJsPayload
30
29
  import Pages.Internal.ResponseSketch as ResponseSketch
31
- import Pages.Internal.StaticHttpBody as StaticHttpBody
32
30
  import Pages.Msg
33
31
  import Pages.ProgramConfig exposing (ProgramConfig)
34
32
  import Pages.SiteConfig exposing (SiteConfig)
35
33
  import Pages.StaticHttp.Request
36
- import Pages.StaticHttpRequest as StaticHttpRequest
37
34
  import Path exposing (Path)
38
35
  import RenderRequest exposing (RenderRequest)
39
36
  import RequestsAndPending exposing (RequestsAndPending)
40
- import Task
41
37
  import TerminalText as Terminal
42
38
  import Url exposing (Url)
43
39
 
@@ -55,10 +51,8 @@ currentCompatibilityKey =
55
51
 
56
52
  {-| -}
57
53
  type alias Model route =
58
- { staticResponses : StaticResponses
54
+ { staticResponses : BackendTask Throwable Effect
59
55
  , errors : List BuildError
60
- , allRawResponses : RequestsAndPending
61
- , unprocessedPages : List ( Path, route )
62
56
  , maybeRequestJson : RenderRequest route
63
57
  , isDevServer : Bool
64
58
  }
@@ -66,12 +60,7 @@ type alias Model route =
66
60
 
67
61
  {-| -}
68
62
  type Msg
69
- = GotDataBatch
70
- (List
71
- { request : Pages.StaticHttp.Request.Request
72
- , response : RequestsAndPending.Response
73
- }
74
- )
63
+ = GotDataBatch Decode.Value
75
64
  | GotBuildError BuildError
76
65
 
77
66
 
@@ -112,7 +101,7 @@ cliApplication config =
112
101
  |> Tuple.mapSecond (perform site renderRequest config)
113
102
  , update =
114
103
  \msg model ->
115
- update site config msg model
104
+ update msg model
116
105
  |> Tuple.mapSecond (perform site model.maybeRequestJson config)
117
106
  , subscriptions =
118
107
  \_ ->
@@ -159,35 +148,11 @@ cliApplication config =
159
148
  )
160
149
  |> mergeResult
161
150
  )
162
- , config.gotBatchSub
163
- |> Sub.map
164
- (\newBatch ->
165
- Decode.decodeValue batchDecoder newBatch
166
- |> Result.map GotDataBatch
167
- |> Result.mapError
168
- (\error ->
169
- ("From location 2: "
170
- ++ (error
171
- |> Decode.errorToString
172
- )
173
- )
174
- |> BuildError.internal
175
- |> GotBuildError
176
- )
177
- |> mergeResult
178
- )
151
+ , config.gotBatchSub |> Sub.map GotDataBatch
179
152
  ]
180
153
  }
181
154
 
182
155
 
183
- batchDecoder : Decode.Decoder (List { request : Pages.StaticHttp.Request.Request, response : RequestsAndPending.Response })
184
- batchDecoder =
185
- Decode.map2 (\request response -> { request = request, response = response })
186
- (Decode.field "request" requestDecoder)
187
- (Decode.field "response" RequestsAndPending.decoder)
188
- |> Decode.list
189
-
190
-
191
156
  mergeResult : Result a a -> a
192
157
  mergeResult r =
193
158
  case r of
@@ -245,60 +210,10 @@ perform site renderRequest config effect =
245
210
  flatten site renderRequest config list
246
211
 
247
212
  Effect.FetchHttp unmasked ->
248
- if unmasked.url == "$$elm-pages$$headers" then
249
- case
250
- renderRequest
251
- |> RenderRequest.maybeRequestPayload
252
- |> Maybe.map (\json -> RequestsAndPending.Response Nothing (RequestsAndPending.JsonBody json))
253
- |> Result.fromMaybe (Pages.Http.BadUrl "$$elm-pages$$headers is only available on server-side request (not on build).")
254
- of
255
- Ok okResponse ->
256
- Task.succeed
257
- [ { request = unmasked
258
- , response = okResponse
259
- }
260
- ]
261
- |> Task.perform GotDataBatch
262
-
263
- Err error ->
264
- { title = "Static HTTP Error"
265
- , message =
266
- [ Terminal.text "I got an error making an HTTP request to this URL: "
267
-
268
- -- TODO include HTTP method, headers, and body
269
- , Terminal.yellow unmasked.url
270
- , Terminal.text <| Json.Encode.encode 2 <| StaticHttpBody.encode unmasked.body
271
- , Terminal.text "\n\n"
272
- , case error of
273
- Pages.Http.BadStatus metadata body ->
274
- Terminal.text <|
275
- String.join "\n"
276
- [ "Bad status: " ++ String.fromInt metadata.statusCode
277
- , "Status message: " ++ metadata.statusText
278
- , "Body: " ++ body
279
- ]
280
-
281
- Pages.Http.BadUrl _ ->
282
- -- TODO include HTTP method, headers, and body
283
- Terminal.text <| "Invalid url: " ++ unmasked.url
284
-
285
- Pages.Http.Timeout ->
286
- Terminal.text "Timeout"
287
-
288
- Pages.Http.NetworkError ->
289
- Terminal.text "Network error"
290
- ]
291
- , fatal = True
292
- , path = "" -- TODO wire in current path here
293
- }
294
- |> Task.succeed
295
- |> Task.perform GotBuildError
296
-
297
- else
298
- ToJsPayload.DoHttp unmasked unmasked.useCache
299
- |> Codec.encoder (ToJsPayload.successCodecNew2 canonicalSiteUrl "")
300
- |> config.toJsPort
301
- |> Cmd.map never
213
+ ToJsPayload.DoHttp (Pages.StaticHttp.Request.hash unmasked) unmasked
214
+ |> Codec.encoder (ToJsPayload.successCodecNew2 canonicalSiteUrl "")
215
+ |> config.toJsPort
216
+ |> Cmd.map never
302
217
 
303
218
  Effect.SendSinglePage info ->
304
219
  let
@@ -335,9 +250,6 @@ perform site renderRequest config effect =
335
250
  |> config.sendPageData
336
251
  |> Cmd.map never
337
252
 
338
- Effect.Continue ->
339
- Cmd.none
340
-
341
253
 
342
254
  flagsDecoder :
343
255
  Decode.Decoder
@@ -353,15 +265,8 @@ flagsDecoder =
353
265
  , compatibilityKey = compatibilityKey
354
266
  }
355
267
  )
356
- --(Decode.field "staticHttpCache"
357
- -- (Decode.dict
358
- -- (Decode.string
359
- -- |> Decode.map Just
360
- -- )
361
- -- )
362
- --)
363
268
  -- TODO remove hardcoding and decode staticHttpCache here
364
- (Decode.succeed Dict.empty)
269
+ (Decode.succeed (Json.Encode.object []))
365
270
  (Decode.field "mode" Decode.string |> Decode.map (\mode -> mode == "dev-server"))
366
271
  (Decode.field "compatibilityKey" Decode.int)
367
272
 
@@ -375,9 +280,9 @@ init :
375
280
  -> ( Model route, Effect )
376
281
  init site renderRequest config flags =
377
282
  case Decode.decodeValue flagsDecoder flags of
378
- Ok { staticHttpCache, isDevServer, compatibilityKey } ->
283
+ Ok { isDevServer, compatibilityKey } ->
379
284
  if compatibilityKey == currentCompatibilityKey then
380
- initLegacy site renderRequest { staticHttpCache = staticHttpCache, isDevServer = isDevServer } config
285
+ initLegacy site renderRequest { isDevServer = isDevServer } config
381
286
 
382
287
  else
383
288
  let
@@ -396,9 +301,7 @@ init site renderRequest config flags =
396
301
  )
397
302
  in
398
303
  updateAndSendPortIfDone
399
- site
400
- config
401
- { staticResponses = StaticResponses.empty
304
+ { staticResponses = StaticResponses.empty Effect.NoEffect
402
305
  , errors =
403
306
  [ { title = "Incompatible NPM and Elm package versions"
404
307
  , message = [ Terminal.text <| message ]
@@ -406,17 +309,13 @@ init site renderRequest config flags =
406
309
  , path = ""
407
310
  }
408
311
  ]
409
- , allRawResponses = Dict.empty
410
- , unprocessedPages = []
411
312
  , maybeRequestJson = renderRequest
412
313
  , isDevServer = False
413
314
  }
414
315
 
415
316
  Err error ->
416
317
  updateAndSendPortIfDone
417
- site
418
- config
419
- { staticResponses = StaticResponses.empty
318
+ { staticResponses = StaticResponses.empty Effect.NoEffect
420
319
  , errors =
421
320
  [ { title = "Internal Error"
422
321
  , message = [ Terminal.text <| "Failed to parse flags: " ++ Decode.errorToString error ]
@@ -424,8 +323,6 @@ init site renderRequest config flags =
424
323
  , path = ""
425
324
  }
426
325
  ]
427
- , allRawResponses = Dict.empty
428
- , unprocessedPages = []
429
326
  , maybeRequestJson = renderRequest
430
327
  , isDevServer = False
431
328
  }
@@ -474,140 +371,426 @@ isActionDecoder =
474
371
  initLegacy :
475
372
  SiteConfig
476
373
  -> RenderRequest route
477
- -> { staticHttpCache : RequestsAndPending, isDevServer : Bool }
374
+ -> { isDevServer : Bool }
478
375
  -> ProgramConfig userMsg userModel route pageData actionData sharedData effect mappedMsg errorPage
479
376
  -> ( Model route, Effect )
480
- initLegacy site renderRequest { staticHttpCache, isDevServer } config =
377
+ initLegacy site ((RenderRequest.SinglePage includeHtml singleRequest _) as renderRequest) { isDevServer } config =
481
378
  let
482
- staticResponses : StaticResponses
483
- staticResponses =
484
- case renderRequest of
485
- RenderRequest.SinglePage _ singleRequest _ ->
486
- let
487
- globalHeadTags : DataSource (List Head.Tag)
488
- globalHeadTags =
489
- (config.globalHeadTags |> Maybe.withDefault (\_ -> DataSource.succeed [])) HtmlPrinter.htmlToString
490
- in
491
- case singleRequest of
492
- RenderRequest.Page serverRequestPayload ->
493
- let
494
- isAction : Maybe ActionRequest
495
- isAction =
496
- renderRequest
497
- |> RenderRequest.maybeRequestPayload
498
- |> Maybe.andThen (Decode.decodeValue isActionDecoder >> Result.withDefault Nothing)
499
- in
500
- StaticResponses.renderSingleRoute
501
- (case isAction of
502
- Just _ ->
503
- config.action serverRequestPayload.frontmatter
504
- |> DataSource.andThen
505
- (\something ->
506
- case something of
507
- PageServerResponse.ErrorPage _ _ ->
508
- DataSource.succeed something
509
- |> DataSource.map (\_ -> ())
510
-
511
- PageServerResponse.RenderPage _ _ ->
512
- DataSource.map3 (\_ _ _ -> ())
513
- (config.data serverRequestPayload.frontmatter)
514
- config.sharedData
515
- globalHeadTags
516
-
517
- PageServerResponse.ServerResponse _ ->
518
- DataSource.succeed something
519
- |> DataSource.map (\_ -> ())
520
- )
521
-
522
- Nothing ->
523
- DataSource.map3 (\_ _ _ -> ())
524
- (config.data serverRequestPayload.frontmatter)
525
- config.sharedData
526
- globalHeadTags
527
- )
528
- (if isDevServer then
529
- config.handleRoute serverRequestPayload.frontmatter
379
+ globalHeadTags : BackendTask Throwable (List Tag)
380
+ globalHeadTags =
381
+ (config.globalHeadTags |> Maybe.withDefault (\_ -> BackendTask.succeed [])) HtmlPrinter.htmlToString
382
+
383
+ staticResponsesNew : BackendTask Throwable Effect
384
+ staticResponsesNew =
385
+ StaticResponses.renderApiRequest
386
+ (case singleRequest of
387
+ RenderRequest.Page serverRequestPayload ->
388
+ let
389
+ isAction : Maybe ActionRequest
390
+ isAction =
391
+ renderRequest
392
+ |> RenderRequest.maybeRequestPayload
393
+ |> Maybe.andThen (Decode.decodeValue isActionDecoder >> Result.withDefault Nothing)
394
+
395
+ currentUrl : Url
396
+ currentUrl =
397
+ { protocol = Url.Https
398
+ , host = site.canonicalUrl
399
+ , port_ = Nothing
400
+ , path = serverRequestPayload.path |> Path.toRelative
401
+ , query = Nothing
402
+ , fragment = Nothing
403
+ }
404
+ in
405
+ --case isAction of
406
+ -- Just actionRequest ->
407
+ (if isDevServer then
408
+ config.handleRoute serverRequestPayload.frontmatter
530
409
 
531
- else
532
- DataSource.succeed Nothing
533
- )
410
+ else
411
+ BackendTask.succeed Nothing
412
+ )
413
+ |> BackendTask.andThen
414
+ (\pageFound ->
415
+ case pageFound of
416
+ Nothing ->
417
+ --sendSinglePageProgress site model.allRawResponses config model payload
418
+ (case isAction of
419
+ Just _ ->
420
+ config.action (RenderRequest.maybeRequestPayload renderRequest |> Maybe.withDefault Json.Encode.null) serverRequestPayload.frontmatter |> BackendTask.map Just
421
+
422
+ Nothing ->
423
+ BackendTask.succeed Nothing
424
+ )
425
+ |> BackendTask.andThen
426
+ (\something ->
427
+ let
428
+ actionHeaders2 : Maybe { statusCode : Int, headers : List ( String, String ) }
429
+ actionHeaders2 =
430
+ case something of
431
+ Just (PageServerResponse.RenderPage responseThing _) ->
432
+ Just responseThing
433
+
434
+ Just (PageServerResponse.ServerResponse responseThing) ->
435
+ Just
436
+ { headers = responseThing.headers
437
+ , statusCode = responseThing.statusCode
438
+ }
534
439
 
535
- RenderRequest.Api ( path, ApiRoute apiRequest ) ->
536
- StaticResponses.renderApiRequest
537
- (DataSource.map2 (\_ _ -> ())
538
- (apiRequest.matchesToResponse path)
539
- globalHeadTags
540
- )
440
+ _ ->
441
+ Nothing
442
+ in
443
+ BackendTask.map3
444
+ (\pageData sharedData tags ->
445
+ let
446
+ renderedResult : Effect
447
+ renderedResult =
448
+ case pageData of
449
+ PageServerResponse.RenderPage responseInfo pageData_ ->
450
+ let
451
+ currentPage : { path : Path, route : route }
452
+ currentPage =
453
+ { path = serverRequestPayload.path, route = urlToRoute config currentUrl }
454
+
455
+ maybeActionData : Maybe actionData
456
+ maybeActionData =
457
+ case something of
458
+ Just (PageServerResponse.RenderPage _ actionThing) ->
459
+ Just actionThing
460
+
461
+ _ ->
462
+ Nothing
463
+
464
+ pageModel : userModel
465
+ pageModel =
466
+ config.init
467
+ Pages.Flags.PreRenderFlags
468
+ sharedData
469
+ pageData_
470
+ maybeActionData
471
+ (Just
472
+ { path =
473
+ { path = currentPage.path
474
+ , query = Nothing
475
+ , fragment = Nothing
476
+ }
477
+ , metadata = currentPage.route
478
+ , pageUrl = Nothing
479
+ }
480
+ )
481
+ |> Tuple.first
482
+
483
+ viewValue : { title : String, body : List (Html (Pages.Msg.Msg userMsg)) }
484
+ viewValue =
485
+ (config.view Dict.empty Dict.empty Nothing currentPage Nothing sharedData pageData_ maybeActionData |> .view) pageModel
486
+
487
+ responseMetadata : { statusCode : Int, headers : List ( String, String ) }
488
+ responseMetadata =
489
+ actionHeaders2 |> Maybe.withDefault responseInfo
490
+ in
491
+ (case isAction of
492
+ Just actionRequestKind ->
493
+ let
494
+ actionDataResult : Maybe (PageServerResponse actionData errorPage)
495
+ actionDataResult =
496
+ something
497
+ in
498
+ case actionDataResult of
499
+ Just (PageServerResponse.RenderPage ignored2 actionData_) ->
500
+ case actionRequestKind of
501
+ ActionResponseRequest ->
502
+ ( ignored2.headers
503
+ , ResponseSketch.HotUpdate pageData_ sharedData (Just actionData_)
504
+ |> config.encodeResponse
505
+ |> Bytes.Encode.encode
506
+ )
507
+
508
+ ActionOnlyRequest ->
509
+ ---- TODO need to encode action data when only that is requested (not ResponseSketch?)
510
+ ( ignored2.headers
511
+ , actionData_
512
+ |> config.encodeAction
513
+ |> Bytes.Encode.encode
514
+ )
515
+
516
+ _ ->
517
+ ( responseMetadata.headers
518
+ , Bytes.Encode.encode (Bytes.Encode.unsignedInt8 0)
519
+ )
520
+
521
+ Nothing ->
522
+ ( responseMetadata.headers
523
+ , ResponseSketch.HotUpdate pageData_ sharedData Nothing
524
+ |> config.encodeResponse
525
+ |> Bytes.Encode.encode
526
+ )
527
+ )
528
+ |> (\( actionHeaders, byteEncodedPageData ) ->
529
+ let
530
+ rendered : { view : userModel -> { title : String, body : List (Html (Pages.Msg.Msg userMsg)) }, head : List Tag }
531
+ rendered =
532
+ config.view Dict.empty Dict.empty Nothing currentPage Nothing sharedData pageData_ maybeActionData
533
+ in
534
+ PageServerResponse.toRedirect responseMetadata
535
+ |> Maybe.map
536
+ (\{ location } ->
537
+ location
538
+ |> ResponseSketch.Redirect
539
+ |> config.encodeResponse
540
+ |> Bytes.Encode.encode
541
+ )
542
+ -- TODO handle other cases besides redirects?
543
+ |> Maybe.withDefault byteEncodedPageData
544
+ |> (\encodedData ->
545
+ { route = currentPage.path |> Path.toRelative
546
+ , contentJson = Dict.empty
547
+ , html = viewValue.body |> bodyToString
548
+ , errors = []
549
+ , head = rendered.head ++ tags
550
+ , title = viewValue.title
551
+ , staticHttpCache = Dict.empty
552
+ , is404 = False
553
+ , statusCode =
554
+ case includeHtml of
555
+ RenderRequest.OnlyJson ->
556
+ 200
557
+
558
+ RenderRequest.HtmlAndJson ->
559
+ responseMetadata.statusCode
560
+ , headers =
561
+ -- TODO should `responseInfo.headers` be used? Is there a problem in the case where there is both an action and data response in one? Do we need to make sure it is performed as two separate HTTP requests to ensure that the cookies are set correctly in that case?
562
+ actionHeaders
563
+ }
564
+ |> ToJsPayload.PageProgress
565
+ |> Effect.SendSinglePageNew encodedData
566
+ )
567
+ )
568
+
569
+ PageServerResponse.ServerResponse serverResponse ->
570
+ --PageServerResponse.ServerResponse serverResponse
571
+ -- TODO handle error?
572
+ let
573
+ responseMetadata : PageServerResponse.Response
574
+ responseMetadata =
575
+ case something of
576
+ Just (PageServerResponse.ServerResponse responseThing) ->
577
+ responseThing
578
+
579
+ _ ->
580
+ serverResponse
581
+ in
582
+ PageServerResponse.toRedirect responseMetadata
583
+ |> Maybe.map
584
+ (\_ ->
585
+ let
586
+ ( _, byteEncodedPageData ) =
587
+ ( serverResponse.headers
588
+ --ignored1.headers
589
+ , PageServerResponse.toRedirect serverResponse
590
+ |> Maybe.map
591
+ (\{ location } ->
592
+ location
593
+ |> ResponseSketch.Redirect
594
+ |> config.encodeResponse
595
+ )
596
+ -- TODO handle other cases besides redirects?
597
+ |> Maybe.withDefault (Bytes.Encode.unsignedInt8 0)
598
+ |> Bytes.Encode.encode
599
+ )
600
+ in
601
+ { route = serverRequestPayload.path |> Path.toRelative
602
+ , contentJson = Dict.empty
603
+ , html = "This is intentionally blank HTML"
604
+ , errors = []
605
+ , head = []
606
+ , title = "This is an intentionally blank title"
607
+ , staticHttpCache = Dict.empty
608
+ , is404 = False
609
+ , statusCode =
610
+ case includeHtml of
611
+ RenderRequest.OnlyJson ->
612
+ -- if this is a redirect for a `content.dat`, we don't want to send an *actual* redirect status code because the redirect needs to be handled in Elm (not by the Browser)
613
+ 200
614
+
615
+ RenderRequest.HtmlAndJson ->
616
+ responseMetadata.statusCode
617
+ , headers = responseMetadata.headers --serverResponse.headers
618
+ }
619
+ |> ToJsPayload.PageProgress
620
+ |> Effect.SendSinglePageNew byteEncodedPageData
621
+ )
622
+ |> Maybe.withDefault
623
+ ({ body = serverResponse |> PageServerResponse.toJson
624
+ , staticHttpCache = Dict.empty
625
+ , statusCode = serverResponse.statusCode
626
+ }
627
+ |> ToJsPayload.SendApiResponse
628
+ |> Effect.SendSinglePage
629
+ )
630
+
631
+ PageServerResponse.ErrorPage error record ->
632
+ let
633
+ currentPage : { path : Path, route : route }
634
+ currentPage =
635
+ { path = serverRequestPayload.path, route = urlToRoute config currentUrl }
636
+
637
+ pageModel : userModel
638
+ pageModel =
639
+ config.init
640
+ Pages.Flags.PreRenderFlags
641
+ sharedData
642
+ pageData2
643
+ Nothing
644
+ (Just
645
+ { path =
646
+ { path = currentPage.path
647
+ , query = Nothing
648
+ , fragment = Nothing
649
+ }
650
+ , metadata = currentPage.route
651
+ , pageUrl = Nothing
652
+ }
653
+ )
654
+ |> Tuple.first
655
+
656
+ pageData2 : pageData
657
+ pageData2 =
658
+ config.errorPageToData error
659
+
660
+ viewValue : { title : String, body : List (Html (Pages.Msg.Msg userMsg)) }
661
+ viewValue =
662
+ (config.view Dict.empty Dict.empty Nothing currentPage Nothing sharedData pageData2 Nothing |> .view) pageModel
663
+ in
664
+ (ResponseSketch.HotUpdate pageData2 sharedData Nothing
665
+ |> config.encodeResponse
666
+ |> Bytes.Encode.encode
667
+ )
668
+ |> (\encodedData ->
669
+ { route = currentPage.path |> Path.toRelative
670
+ , contentJson = Dict.empty
671
+ , html = viewValue.body |> bodyToString
672
+ , errors = []
673
+ , head = tags
674
+ , title = viewValue.title
675
+ , staticHttpCache = Dict.empty
676
+ , is404 = False
677
+ , statusCode =
678
+ case includeHtml of
679
+ RenderRequest.OnlyJson ->
680
+ 200
681
+
682
+ RenderRequest.HtmlAndJson ->
683
+ config.errorStatusCode error
684
+ , headers = record.headers
685
+ }
686
+ |> ToJsPayload.PageProgress
687
+ |> Effect.SendSinglePageNew encodedData
688
+ )
689
+ in
690
+ renderedResult
691
+ )
692
+ (config.data (RenderRequest.maybeRequestPayload renderRequest |> Maybe.withDefault Json.Encode.null) serverRequestPayload.frontmatter)
693
+ config.sharedData
694
+ globalHeadTags
695
+ )
541
696
 
542
- RenderRequest.NotFound _ ->
543
- StaticResponses.renderApiRequest
544
- (DataSource.map2 (\_ _ -> ())
545
- (DataSource.succeed [])
546
- globalHeadTags
697
+ Just notFoundReason ->
698
+ render404Page config
699
+ Nothing
700
+ -- TODO do I need sharedDataResult?
701
+ --(Result.toMaybe sharedDataResult)
702
+ isDevServer
703
+ serverRequestPayload.path
704
+ notFoundReason
705
+ |> BackendTask.succeed
547
706
  )
548
707
 
549
- unprocessedPages : List ( Path, route )
550
- unprocessedPages =
551
- case renderRequest of
552
- RenderRequest.SinglePage _ serverRequestPayload _ ->
553
- case serverRequestPayload of
554
- RenderRequest.Page pageData ->
555
- [ ( pageData.path, pageData.frontmatter ) ]
708
+ RenderRequest.Api ( path, ApiRoute apiHandler ) ->
709
+ BackendTask.map2
710
+ (\response _ ->
711
+ case response of
712
+ Just okResponse ->
713
+ { body = okResponse
714
+ , staticHttpCache = Dict.empty -- TODO do I need to serialize the full cache here, or can I handle that from the JS side?
715
+ , statusCode = 200
716
+ }
717
+ |> ToJsPayload.SendApiResponse
718
+ |> Effect.SendSinglePage
556
719
 
557
- RenderRequest.Api _ ->
558
- []
559
-
560
- RenderRequest.NotFound _ ->
561
- []
720
+ Nothing ->
721
+ render404Page config
722
+ -- TODO do I need sharedDataResult here?
723
+ Nothing
724
+ isDevServer
725
+ (Path.fromString path)
726
+ NotFoundReason.NoMatchingRoute
727
+ --Err error ->
728
+ -- [ error ]
729
+ -- |> ToJsPayload.Errors
730
+ -- |> Effect.SendSinglePage
731
+ )
732
+ (apiHandler.matchesToResponse
733
+ (renderRequest
734
+ |> RenderRequest.maybeRequestPayload
735
+ |> Maybe.withDefault Json.Encode.null
736
+ )
737
+ path
738
+ )
739
+ globalHeadTags
740
+
741
+ RenderRequest.NotFound notFoundPath ->
742
+ (BackendTask.map2
743
+ (\_ _ ->
744
+ render404Page config
745
+ Nothing
746
+ --(Result.toMaybe sharedDataResult)
747
+ --model
748
+ isDevServer
749
+ notFoundPath
750
+ NotFoundReason.NoMatchingRoute
751
+ )
752
+ (BackendTask.succeed [])
753
+ globalHeadTags
754
+ -- TODO is there a way to resolve sharedData but get it as a Result if it fails?
755
+ --config.sharedData
756
+ )
757
+ )
562
758
 
563
759
  initialModel : Model route
564
760
  initialModel =
565
- { staticResponses = staticResponses
761
+ { staticResponses = staticResponsesNew
566
762
  , errors = []
567
- , allRawResponses = staticHttpCache
568
- , unprocessedPages = unprocessedPages
569
763
  , maybeRequestJson = renderRequest
570
764
  , isDevServer = isDevServer
571
765
  }
572
766
  in
573
- StaticResponses.nextStep initialModel Nothing
574
- |> nextStepToEffect site
575
- config
767
+ StaticResponses.nextStep (Json.Encode.object []) initialModel.staticResponses initialModel
768
+ |> nextStepToEffect
576
769
  initialModel
577
770
 
578
771
 
579
772
  updateAndSendPortIfDone :
580
- SiteConfig
581
- -> ProgramConfig userMsg userModel route pageData actionData sharedData effect mappedMsg errorPage
582
- -> Model route
773
+ Model route
583
774
  -> ( Model route, Effect )
584
- updateAndSendPortIfDone site config model =
585
- StaticResponses.nextStep
775
+ updateAndSendPortIfDone model =
776
+ StaticResponses.nextStep (Json.Encode.object [])
777
+ model.staticResponses
586
778
  model
587
- Nothing
588
- |> nextStepToEffect site config model
779
+ |> nextStepToEffect model
589
780
 
590
781
 
591
782
  {-| -}
592
783
  update :
593
- SiteConfig
594
- -> ProgramConfig userMsg userModel route pageData actionData sharedData effect mappedMsg errorPage
595
- -> Msg
784
+ Msg
596
785
  -> Model route
597
786
  -> ( Model route, Effect )
598
- update site config msg model =
787
+ update msg model =
599
788
  case msg of
600
789
  GotDataBatch batch ->
601
- let
602
- updatedModel : Model route
603
- updatedModel =
604
- model
605
- |> StaticResponses.batchUpdate batch
606
- in
607
- StaticResponses.nextStep
608
- updatedModel
609
- Nothing
610
- |> nextStepToEffect site config updatedModel
790
+ StaticResponses.nextStep batch
791
+ model.staticResponses
792
+ model
793
+ |> nextStepToEffect model
611
794
 
612
795
  GotBuildError buildError ->
613
796
  let
@@ -618,560 +801,48 @@ update site config msg model =
618
801
  buildError :: model.errors
619
802
  }
620
803
  in
621
- StaticResponses.nextStep
804
+ StaticResponses.nextStep (Json.Encode.object [])
805
+ updatedModel.staticResponses
622
806
  updatedModel
623
- Nothing
624
- |> nextStepToEffect site config updatedModel
807
+ |> nextStepToEffect updatedModel
625
808
 
626
809
 
627
810
  nextStepToEffect :
628
- SiteConfig
629
- -> ProgramConfig userMsg userModel route pageData actionData sharedData effect mappedMsg errorPage
630
- -> Model route
631
- -> ( StaticResponses, StaticResponses.NextStep route )
811
+ Model route
812
+ -> StaticResponses.NextStep route Effect
632
813
  -> ( Model route, Effect )
633
- nextStepToEffect site config model ( updatedStaticResponsesModel, nextStep ) =
814
+ nextStepToEffect model nextStep =
634
815
  case nextStep of
635
- StaticResponses.Continue updatedAllRawResponses httpRequests maybeRoutes ->
636
- let
637
- updatedUnprocessedPages : List ( Path, route )
638
- updatedUnprocessedPages =
639
- case maybeRoutes of
640
- Just newRoutes ->
641
- newRoutes
642
- |> List.map
643
- (\route ->
644
- ( Path.join (config.routeToPath route)
645
- , route
646
- )
647
- )
648
-
649
- Nothing ->
650
- model.unprocessedPages
651
-
652
- updatedModel : Model route
653
- updatedModel =
654
- { model
655
- | allRawResponses = updatedAllRawResponses
656
- , staticResponses = updatedStaticResponsesModel
657
- , unprocessedPages = updatedUnprocessedPages
658
- }
659
- in
660
- if List.isEmpty httpRequests then
661
- nextStepToEffect site
662
- config
663
- updatedModel
664
- (StaticResponses.nextStep
665
- updatedModel
666
- Nothing
667
- )
668
-
669
- else
670
- ( updatedModel
671
- , (httpRequests
672
- |> List.map Effect.FetchHttp
673
- )
674
- |> Effect.Batch
675
- )
676
-
677
- StaticResponses.Finish toJsPayload ->
678
- case toJsPayload of
679
- StaticResponses.ApiResponse ->
680
- let
681
- apiResponse : Effect
682
- apiResponse =
683
- case model.maybeRequestJson of
684
- RenderRequest.SinglePage _ requestPayload _ ->
685
- let
686
- sharedDataResult : Result BuildError sharedData
687
- sharedDataResult =
688
- StaticHttpRequest.resolve
689
- config.sharedData
690
- model.allRawResponses
691
- |> Result.mapError (StaticHttpRequest.toBuildError "")
692
- in
693
- case requestPayload of
694
- RenderRequest.Api ( path, ApiRoute apiHandler ) ->
695
- let
696
- thing : DataSource (Maybe ApiRoute.Response)
697
- thing =
698
- apiHandler.matchesToResponse path
699
- in
700
- StaticHttpRequest.resolve
701
- thing
702
- model.allRawResponses
703
- |> Result.mapError (StaticHttpRequest.toBuildError "TODO - path from request")
704
- |> (\response ->
705
- case response of
706
- Ok (Just okResponse) ->
707
- { body = okResponse
708
- , staticHttpCache = Dict.empty -- TODO do I need to serialize the full cache here, or can I handle that from the JS side?
709
-
710
- -- model.allRawResponses |> Dict.Extra.filterMap (\_ v -> v)
711
- , statusCode = 200
712
- }
713
- |> ToJsPayload.SendApiResponse
714
- |> Effect.SendSinglePage
715
-
716
- Ok Nothing ->
717
- render404Page config (Result.toMaybe sharedDataResult) model (Path.fromString path) NotFoundReason.NoMatchingRoute
718
-
719
- Err error ->
720
- [ error ]
721
- |> ToJsPayload.Errors
722
- |> Effect.SendSinglePage
723
- )
724
-
725
- RenderRequest.Page payload ->
726
- let
727
- pageFoundResult : Result BuildError (Maybe NotFoundReason)
728
- pageFoundResult =
729
- StaticHttpRequest.resolve
730
- (if model.isDevServer then
731
- -- TODO OPTIMIZATION this is redundant
732
- config.handleRoute payload.frontmatter
733
-
734
- else
735
- DataSource.succeed Nothing
736
- )
737
- model.allRawResponses
738
- |> Result.mapError (StaticHttpRequest.toBuildError (payload.path |> Path.toAbsolute))
739
- in
740
- case pageFoundResult of
741
- Ok Nothing ->
742
- sendSinglePageProgress site model.allRawResponses config model payload
743
-
744
- Ok (Just notFoundReason) ->
745
- render404Page config
746
- --Nothing
747
- (Result.toMaybe sharedDataResult)
748
- model
749
- payload.path
750
- notFoundReason
751
-
752
- Err error ->
753
- [ error ] |> ToJsPayload.Errors |> Effect.SendSinglePage
754
-
755
- RenderRequest.NotFound path ->
756
- render404Page config
757
- --Nothing
758
- (Result.toMaybe sharedDataResult)
759
- model
760
- path
761
- NotFoundReason.NoMatchingRoute
762
- in
763
- ( model
764
- , apiResponse
765
- )
766
-
767
- StaticResponses.Errors errors ->
768
- ( model
769
- , errors |> ToJsPayload.Errors |> Effect.SendSinglePage
770
- )
771
-
772
-
773
- sendSinglePageProgress :
774
- SiteConfig
775
- -> RequestsAndPending
776
- -> ProgramConfig userMsg userModel route pageData actionData sharedData effect mappedMsg errorPage
777
- -> Model route
778
- -> { path : Path, frontmatter : route }
779
- -> Effect
780
- sendSinglePageProgress site contentJson config model info =
781
- let
782
- ( page, route ) =
783
- ( info.path, info.frontmatter )
784
- in
785
- case model.maybeRequestJson of
786
- RenderRequest.SinglePage includeHtml _ _ ->
787
- let
788
- isAction : Maybe ActionRequest
789
- isAction =
790
- model.maybeRequestJson
791
- |> RenderRequest.maybeRequestPayload
792
- |> Maybe.andThen (Decode.decodeValue isActionDecoder >> Result.withDefault Nothing)
793
-
794
- pageFoundResult : Result BuildError (Maybe NotFoundReason)
795
- pageFoundResult =
796
- -- TODO OPTIMIZATION this is redundant
797
- StaticHttpRequest.resolve
798
- (if model.isDevServer then
799
- config.handleRoute route
800
-
801
- else
802
- DataSource.succeed Nothing
803
- )
804
- model.allRawResponses
805
- |> Result.mapError (StaticHttpRequest.toBuildError currentUrl.path)
806
-
807
- renderedResult : Result BuildError (PageServerResponse { head : List Head.Tag, view : String, title : String } errorPage)
808
- renderedResult =
809
- case includeHtml of
810
- RenderRequest.OnlyJson ->
811
- pageDataResult
812
- |> Result.map
813
- (\okPageData ->
814
- case okPageData of
815
- PageServerResponse.RenderPage responseInfo _ ->
816
- PageServerResponse.RenderPage
817
- { statusCode = responseInfo.statusCode
818
- , headers = responseInfo.headers
819
- }
820
- { head = []
821
- , view = "This page was not rendered because it is a JSON-only request."
822
- , title = "This page was not rendered because it is a JSON-only request."
823
- }
824
-
825
- PageServerResponse.ServerResponse serverResponse ->
826
- PageServerResponse.ServerResponse serverResponse
827
-
828
- PageServerResponse.ErrorPage error record ->
829
- PageServerResponse.ErrorPage error record
830
- )
831
-
832
- RenderRequest.HtmlAndJson ->
833
- Result.map2 Tuple.pair pageDataResult sharedDataResult
834
- |> Result.map
835
- (\( pageData_, sharedData ) ->
836
- case pageData_ of
837
- PageServerResponse.RenderPage responseInfo pageData ->
838
- let
839
- currentPage : { path : Path, route : route }
840
- currentPage =
841
- { path = page, route = urlToRoute config currentUrl }
842
-
843
- maybeActionData : Maybe actionData
844
- maybeActionData =
845
- case isAction of
846
- Just _ ->
847
- case actionDataResult of
848
- Ok (PageServerResponse.RenderPage _ actionData) ->
849
- Just actionData
850
-
851
- _ ->
852
- Nothing
853
-
854
- Nothing ->
855
- Nothing
856
-
857
- pageModel : userModel
858
- pageModel =
859
- config.init
860
- Pages.Flags.PreRenderFlags
861
- sharedData
862
- pageData
863
- maybeActionData
864
- (Just
865
- { path =
866
- { path = currentPage.path
867
- , query = Nothing
868
- , fragment = Nothing
869
- }
870
- , metadata = currentPage.route
871
- , pageUrl = Nothing
872
- }
873
- )
874
- |> Tuple.first
875
-
876
- viewValue : { title : String, body : List (Html (Pages.Msg.Msg userMsg)) }
877
- viewValue =
878
- (config.view Dict.empty Dict.empty Nothing currentPage Nothing sharedData pageData maybeActionData |> .view) pageModel
879
- in
880
- PageServerResponse.RenderPage responseInfo
881
- { head = config.view Dict.empty Dict.empty Nothing currentPage Nothing sharedData pageData maybeActionData |> .head
882
- , view = viewValue.body |> bodyToString
883
- , title = viewValue.title
884
- }
885
-
886
- PageServerResponse.ServerResponse serverResponse ->
887
- PageServerResponse.ServerResponse serverResponse
888
-
889
- PageServerResponse.ErrorPage error record ->
890
- let
891
- currentPage : { path : Path, route : route }
892
- currentPage =
893
- { path = page, route = urlToRoute config currentUrl }
894
-
895
- pageModel : userModel
896
- pageModel =
897
- config.init
898
- Pages.Flags.PreRenderFlags
899
- sharedData
900
- pageData
901
- Nothing
902
- (Just
903
- { path =
904
- { path = currentPage.path
905
- , query = Nothing
906
- , fragment = Nothing
907
- }
908
- , metadata = currentPage.route
909
- , pageUrl = Nothing
910
- }
911
- )
912
- |> Tuple.first
913
-
914
- pageData : pageData
915
- pageData =
916
- config.errorPageToData error
917
-
918
- viewValue : { title : String, body : List (Html (Pages.Msg.Msg userMsg)) }
919
- viewValue =
920
- (config.view Dict.empty Dict.empty Nothing currentPage Nothing sharedData pageData Nothing |> .view) pageModel
921
- in
922
- PageServerResponse.RenderPage
923
- { statusCode = config.errorStatusCode error
924
- , headers = record.headers
925
- }
926
- { head = config.view Dict.empty Dict.empty Nothing currentPage Nothing sharedData pageData Nothing |> .head
927
- , view = viewValue.body |> List.map (HtmlPrinter.htmlToString Nothing) |> String.join "\n"
928
- , title = viewValue.title
929
- }
930
- )
931
-
932
- currentUrl : Url
933
- currentUrl =
934
- { protocol = Url.Https
935
- , host = site.canonicalUrl
936
- , port_ = Nothing
937
- , path = page |> Path.toRelative
938
- , query = Nothing
939
- , fragment = Nothing
940
- }
941
-
942
- pageDataResult : Result BuildError (PageServerResponse pageData errorPage)
943
- pageDataResult =
944
- -- TODO OPTIMIZATION can these three be included in StaticResponses.Finish?
945
- StaticHttpRequest.resolve
946
- (case isAction of
947
- Just _ ->
948
- config.action (urlToRoute config currentUrl)
949
- |> DataSource.andThen
950
- (\something ->
951
- case something of
952
- PageServerResponse.ErrorPage a b ->
953
- PageServerResponse.ErrorPage a b
954
- |> DataSource.succeed
955
-
956
- PageServerResponse.RenderPage _ _ ->
957
- -- TODO the headers/response codes are ignored from the action here
958
- -- is that okay? Should you always do a redirect or another kind of
959
- -- server response if you want to control the headers/response code for an action (like logout & redirect, for example)?
960
- config.data (urlToRoute config currentUrl)
961
-
962
- PageServerResponse.ServerResponse a ->
963
- PageServerResponse.ServerResponse a
964
- |> DataSource.succeed
965
- )
966
-
967
- Nothing ->
968
- config.data (urlToRoute config currentUrl)
969
- )
970
- contentJson
971
- |> Result.mapError (StaticHttpRequest.toBuildError currentUrl.path)
972
-
973
- actionDataResult : Result BuildError (PageServerResponse actionData errorPage)
974
- actionDataResult =
975
- -- TODO OPTIMIZATION can these three be included in StaticResponses.Finish?
976
- StaticHttpRequest.resolve
977
- (config.action (urlToRoute config currentUrl))
978
- contentJson
979
- |> Result.mapError (StaticHttpRequest.toBuildError currentUrl.path)
980
-
981
- sharedDataResult : Result BuildError sharedData
982
- sharedDataResult =
983
- StaticHttpRequest.resolve
984
- config.sharedData
985
- contentJson
986
- |> Result.mapError (StaticHttpRequest.toBuildError currentUrl.path)
987
-
988
- globalHeadTags : DataSource (List Head.Tag)
989
- globalHeadTags =
990
- (config.globalHeadTags |> Maybe.withDefault (\_ -> DataSource.succeed [])) HtmlPrinter.htmlToString
991
-
992
- siteDataResult : Result BuildError (List Head.Tag)
993
- siteDataResult =
994
- StaticHttpRequest.resolve
995
- globalHeadTags
996
- model.allRawResponses
997
- |> Result.mapError (StaticHttpRequest.toBuildError "Site.elm")
998
- in
999
- case Result.map3 (\a b c -> ( a, b, c )) pageFoundResult renderedResult siteDataResult of
1000
- Ok ( maybeNotFoundReason, renderedOrApiResponse, siteData ) ->
1001
- case maybeNotFoundReason of
1002
- Nothing ->
1003
- let
1004
- ( actionHeaders, byteEncodedPageData ) =
1005
- case pageDataResult of
1006
- Ok pageServerResponse ->
1007
- case pageServerResponse of
1008
- PageServerResponse.RenderPage ignored1 pageData ->
1009
- -- TODO want to encode both shared and page data in dev server and HTML-embedded data
1010
- -- but not for writing out the content.dat files - would be good to optimize this redundant data out
1011
- --if model.isDevServer then
1012
- case isAction of
1013
- Just actionRequestKind ->
1014
- case actionDataResult of
1015
- Ok (PageServerResponse.RenderPage ignored2 actionData) ->
1016
- case actionRequestKind of
1017
- ActionResponseRequest ->
1018
- ( ignored2.headers
1019
- , sharedDataResult
1020
- |> Result.map (\sharedData -> ResponseSketch.HotUpdate pageData sharedData (Just actionData))
1021
- |> Result.withDefault (ResponseSketch.RenderPage pageData (Just actionData))
1022
- |> config.encodeResponse
1023
- |> Bytes.Encode.encode
1024
- )
1025
-
1026
- ActionOnlyRequest ->
1027
- ---- TODO need to encode action data when only that is requested (not ResponseSketch?)
1028
- ( ignored2.headers
1029
- , actionData
1030
- |> config.encodeAction
1031
- |> Bytes.Encode.encode
1032
- )
1033
-
1034
- _ ->
1035
- ( ignored1.headers
1036
- , Bytes.Encode.encode (Bytes.Encode.unsignedInt8 0)
1037
- )
1038
-
1039
- Nothing ->
1040
- ( ignored1.headers
1041
- , sharedDataResult
1042
- |> Result.map (\something -> ResponseSketch.HotUpdate pageData something Nothing)
1043
- |> Result.withDefault (ResponseSketch.RenderPage pageData Nothing)
1044
- |> config.encodeResponse
1045
- |> Bytes.Encode.encode
1046
- )
1047
-
1048
- --else
1049
- -- pageData
1050
- -- |> ResponseSketch.RenderPage
1051
- -- |> config.encodeResponse
1052
- -- |> Bytes.Encode.encode
1053
- PageServerResponse.ServerResponse serverResponse ->
1054
- -- TODO handle error?
1055
- ( serverResponse.headers
1056
- , PageServerResponse.toRedirect serverResponse
1057
- |> Maybe.map
1058
- (\{ location } ->
1059
- location
1060
- |> ResponseSketch.Redirect
1061
- |> config.encodeResponse
1062
- )
1063
- -- TODO handle other cases besides redirects?
1064
- |> Maybe.withDefault (Bytes.Encode.unsignedInt8 0)
1065
- |> Bytes.Encode.encode
1066
- )
1067
-
1068
- PageServerResponse.ErrorPage error { headers } ->
1069
- -- TODO this case should never happen
1070
- ( headers
1071
- , sharedDataResult
1072
- |> Result.map
1073
- (\sharedData ->
1074
- ResponseSketch.HotUpdate (config.errorPageToData error)
1075
- sharedData
1076
- Nothing
1077
- )
1078
- |> Result.map config.encodeResponse
1079
- |> Result.map Bytes.Encode.encode
1080
- |> Result.withDefault (Bytes.Encode.encode (Bytes.Encode.unsignedInt8 0))
1081
- )
816
+ StaticResponses.Continue httpRequests updatedStaticResponsesModel ->
817
+ ( { model
818
+ | staticResponses = updatedStaticResponsesModel
819
+ }
820
+ , (httpRequests
821
+ |> List.map Effect.FetchHttp
822
+ )
823
+ |> Effect.Batch
824
+ )
1082
825
 
1083
- _ ->
1084
- -- TODO handle error?
1085
- ( []
1086
- , Bytes.Encode.encode (Bytes.Encode.unsignedInt8 0)
1087
- )
1088
- in
1089
- case renderedOrApiResponse of
1090
- PageServerResponse.RenderPage responseInfo rendered ->
1091
- { route = page |> Path.toRelative
1092
- , contentJson = Dict.empty
1093
- , html = rendered.view
1094
- , errors = []
1095
- , head = rendered.head ++ siteData
1096
- , title = rendered.title
1097
- , staticHttpCache = Dict.empty
1098
- , is404 = False
1099
- , statusCode = responseInfo.statusCode
1100
- , headers =
1101
- -- TODO should `responseInfo.headers` be used? Is there a problem in the case where there is both an action and data response in one? Do we need to make sure it is performed as two separate HTTP requests to ensure that the cookies are set correctly in that case?
1102
- actionHeaders
1103
- }
1104
- |> ToJsPayload.PageProgress
1105
- |> Effect.SendSinglePageNew byteEncodedPageData
1106
-
1107
- PageServerResponse.ServerResponse serverResponse ->
1108
- PageServerResponse.toRedirect serverResponse
1109
- |> Maybe.map
1110
- (\_ ->
1111
- { route = page |> Path.toRelative
1112
- , contentJson = Dict.empty
1113
- , html = "This is intentionally blank HTML"
1114
- , errors = []
1115
- , head = []
1116
- , title = "This is an intentionally blank title"
1117
- , staticHttpCache = Dict.empty
1118
- , is404 = False
1119
- , statusCode =
1120
- case includeHtml of
1121
- RenderRequest.OnlyJson ->
1122
- -- if this is a redirect for a `content.dat`, we don't want to send an *actual* redirect status code because the redirect needs to be handled in Elm (not by the Browser)
1123
- 200
1124
-
1125
- RenderRequest.HtmlAndJson ->
1126
- serverResponse.statusCode
1127
- , headers = serverResponse.headers
1128
- }
1129
- |> ToJsPayload.PageProgress
1130
- |> Effect.SendSinglePageNew byteEncodedPageData
1131
- )
1132
- |> Maybe.withDefault
1133
- ({ body = serverResponse |> PageServerResponse.toJson
1134
- , staticHttpCache = Dict.empty
1135
- , statusCode = serverResponse.statusCode
1136
- }
1137
- |> ToJsPayload.SendApiResponse
1138
- |> Effect.SendSinglePage
1139
- )
826
+ StaticResponses.FinishedWithErrors errors ->
827
+ ( model
828
+ , errors |> ToJsPayload.Errors |> Effect.SendSinglePage
829
+ )
1140
830
 
1141
- PageServerResponse.ErrorPage error responseInfo ->
1142
- -- TODO this case should never happen
1143
- { route = page |> Path.toRelative
1144
- , contentJson = Dict.empty
1145
- , html = "UNEXPECTED!" --HtmlPrinter.htmlToString rendered.body
1146
- , errors = []
1147
- , head = [] -- rendered.head ++ siteData -- TODO this should call ErrorPage.head maybe?
1148
- , title = "UNEXPECTED CASE" --rendered.title
1149
- , staticHttpCache = Dict.empty
1150
- , is404 = False
1151
- , statusCode = config.errorStatusCode error
1152
- , headers = responseInfo.headers
1153
- }
1154
- |> ToJsPayload.PageProgress
1155
- |> Effect.SendSinglePageNew byteEncodedPageData
1156
-
1157
- Just notFoundReason ->
1158
- render404Page config (Result.toMaybe sharedDataResult) model page notFoundReason
1159
-
1160
- Err error ->
1161
- [ error ]
1162
- |> ToJsPayload.Errors
1163
- |> Effect.SendSinglePage
831
+ StaticResponses.Finish finalValue ->
832
+ ( model
833
+ , finalValue
834
+ )
1164
835
 
1165
836
 
1166
837
  render404Page :
1167
838
  ProgramConfig userMsg userModel route pageData actionData sharedData effect mappedMsg errorPage
1168
839
  -> Maybe sharedData
1169
- -> Model route
840
+ -> Bool
1170
841
  -> Path
1171
842
  -> NotFoundReason
1172
843
  -> Effect
1173
- render404Page config sharedData model path notFoundReason =
1174
- case ( model.isDevServer, sharedData ) of
844
+ render404Page config sharedData isDevServer path notFoundReason =
845
+ case ( isDevServer, sharedData ) of
1175
846
  ( False, Just justSharedData ) ->
1176
847
  let
1177
848
  byteEncodedPageData : Bytes