elm-pages 3.0.0-beta.2 → 3.0.0-beta.21

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 (509) hide show
  1. package/README.md +10 -1
  2. package/codegen/{elm-pages-codegen.js → elm-pages-codegen.cjs} +2479 -1639
  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 +29673 -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.elmi +0 -0
  47. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateData.elmo +0 -0
  48. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateDataTest.elmo +0 -0
  49. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/d.dat +0 -0
  50. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/i.dat +0 -0
  51. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/o.dat +0 -0
  52. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm.json +1 -1
  53. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/Reporter.elm.js +1327 -122
  54. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/Runner.elm.js +15412 -13274
  55. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/node_runner.js +1 -1
  56. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/node_supervisor.js +4 -4
  57. package/generator/dead-code-review/elm.json +8 -6
  58. package/generator/dead-code-review/node_modules/.package-lock.json +484 -0
  59. package/generator/dead-code-review/node_modules/ansi-styles/index.d.ts +345 -0
  60. package/generator/dead-code-review/node_modules/ansi-styles/index.js +163 -0
  61. package/generator/dead-code-review/node_modules/ansi-styles/license +9 -0
  62. package/generator/dead-code-review/node_modules/ansi-styles/package.json +56 -0
  63. package/generator/dead-code-review/node_modules/ansi-styles/readme.md +152 -0
  64. package/generator/dead-code-review/node_modules/anymatch/LICENSE +15 -0
  65. package/generator/dead-code-review/node_modules/anymatch/README.md +87 -0
  66. package/generator/dead-code-review/node_modules/anymatch/index.d.ts +20 -0
  67. package/generator/dead-code-review/node_modules/anymatch/index.js +104 -0
  68. package/generator/dead-code-review/node_modules/anymatch/package.json +48 -0
  69. package/generator/dead-code-review/node_modules/balanced-match/.github/FUNDING.yml +2 -0
  70. package/generator/dead-code-review/node_modules/balanced-match/LICENSE.md +21 -0
  71. package/generator/dead-code-review/node_modules/balanced-match/README.md +97 -0
  72. package/generator/dead-code-review/node_modules/balanced-match/index.js +62 -0
  73. package/generator/dead-code-review/node_modules/balanced-match/package.json +48 -0
  74. package/generator/dead-code-review/node_modules/binary-extensions/binary-extensions.json +260 -0
  75. package/generator/dead-code-review/node_modules/binary-extensions/binary-extensions.json.d.ts +3 -0
  76. package/generator/dead-code-review/node_modules/binary-extensions/index.d.ts +14 -0
  77. package/generator/dead-code-review/node_modules/binary-extensions/index.js +1 -0
  78. package/generator/dead-code-review/node_modules/binary-extensions/license +9 -0
  79. package/generator/dead-code-review/node_modules/binary-extensions/package.json +38 -0
  80. package/generator/dead-code-review/node_modules/binary-extensions/readme.md +41 -0
  81. package/generator/dead-code-review/node_modules/brace-expansion/.github/FUNDING.yml +2 -0
  82. package/generator/dead-code-review/node_modules/brace-expansion/LICENSE +21 -0
  83. package/generator/dead-code-review/node_modules/brace-expansion/README.md +135 -0
  84. package/generator/dead-code-review/node_modules/brace-expansion/index.js +203 -0
  85. package/generator/dead-code-review/node_modules/brace-expansion/package.json +46 -0
  86. package/generator/dead-code-review/node_modules/braces/CHANGELOG.md +184 -0
  87. package/generator/dead-code-review/node_modules/braces/LICENSE +21 -0
  88. package/generator/dead-code-review/node_modules/braces/README.md +593 -0
  89. package/generator/dead-code-review/node_modules/braces/index.js +170 -0
  90. package/generator/dead-code-review/node_modules/braces/lib/compile.js +57 -0
  91. package/generator/dead-code-review/node_modules/braces/lib/constants.js +57 -0
  92. package/generator/dead-code-review/node_modules/braces/lib/expand.js +113 -0
  93. package/generator/dead-code-review/node_modules/braces/lib/parse.js +333 -0
  94. package/generator/dead-code-review/node_modules/braces/lib/stringify.js +32 -0
  95. package/generator/dead-code-review/node_modules/braces/lib/utils.js +112 -0
  96. package/generator/dead-code-review/node_modules/braces/package.json +77 -0
  97. package/generator/dead-code-review/node_modules/chalk/index.d.ts +415 -0
  98. package/generator/dead-code-review/node_modules/chalk/license +9 -0
  99. package/generator/dead-code-review/node_modules/chalk/package.json +68 -0
  100. package/generator/dead-code-review/node_modules/chalk/readme.md +341 -0
  101. package/generator/dead-code-review/node_modules/chalk/source/index.js +229 -0
  102. package/generator/dead-code-review/node_modules/chalk/source/templates.js +134 -0
  103. package/generator/dead-code-review/node_modules/chalk/source/util.js +39 -0
  104. package/generator/dead-code-review/node_modules/chokidar/LICENSE +21 -0
  105. package/generator/dead-code-review/node_modules/chokidar/README.md +308 -0
  106. package/generator/dead-code-review/node_modules/chokidar/index.js +973 -0
  107. package/generator/dead-code-review/node_modules/chokidar/lib/constants.js +65 -0
  108. package/generator/dead-code-review/node_modules/chokidar/lib/fsevents-handler.js +524 -0
  109. package/generator/dead-code-review/node_modules/chokidar/lib/nodefs-handler.js +654 -0
  110. package/generator/dead-code-review/node_modules/chokidar/package.json +85 -0
  111. package/generator/dead-code-review/node_modules/chokidar/types/index.d.ts +188 -0
  112. package/generator/dead-code-review/node_modules/color-convert/CHANGELOG.md +54 -0
  113. package/generator/dead-code-review/node_modules/color-convert/LICENSE +21 -0
  114. package/generator/dead-code-review/node_modules/color-convert/README.md +68 -0
  115. package/generator/dead-code-review/node_modules/color-convert/conversions.js +839 -0
  116. package/generator/dead-code-review/node_modules/color-convert/index.js +81 -0
  117. package/generator/dead-code-review/node_modules/color-convert/package.json +48 -0
  118. package/generator/dead-code-review/node_modules/color-convert/route.js +97 -0
  119. package/generator/dead-code-review/node_modules/color-name/LICENSE +8 -0
  120. package/generator/dead-code-review/node_modules/color-name/README.md +11 -0
  121. package/generator/dead-code-review/node_modules/color-name/index.js +152 -0
  122. package/generator/dead-code-review/node_modules/color-name/package.json +28 -0
  123. package/generator/dead-code-review/node_modules/commander/LICENSE +22 -0
  124. package/generator/dead-code-review/node_modules/commander/Readme.md +1118 -0
  125. package/generator/dead-code-review/node_modules/commander/esm.mjs +16 -0
  126. package/generator/dead-code-review/node_modules/commander/index.js +27 -0
  127. package/generator/dead-code-review/node_modules/commander/lib/argument.js +147 -0
  128. package/generator/dead-code-review/node_modules/commander/lib/command.js +2160 -0
  129. package/generator/dead-code-review/node_modules/commander/lib/error.js +45 -0
  130. package/generator/dead-code-review/node_modules/commander/lib/help.js +406 -0
  131. package/generator/dead-code-review/node_modules/commander/lib/option.js +326 -0
  132. package/generator/dead-code-review/node_modules/commander/lib/suggestSimilar.js +100 -0
  133. package/generator/dead-code-review/node_modules/commander/package-support.json +16 -0
  134. package/generator/dead-code-review/node_modules/commander/package.json +80 -0
  135. package/generator/dead-code-review/node_modules/commander/typings/index.d.ts +881 -0
  136. package/generator/dead-code-review/node_modules/cross-spawn/CHANGELOG.md +130 -0
  137. package/generator/dead-code-review/node_modules/cross-spawn/LICENSE +21 -0
  138. package/generator/dead-code-review/node_modules/cross-spawn/README.md +96 -0
  139. package/generator/dead-code-review/node_modules/cross-spawn/index.js +39 -0
  140. package/generator/dead-code-review/node_modules/cross-spawn/lib/enoent.js +59 -0
  141. package/generator/dead-code-review/node_modules/cross-spawn/lib/parse.js +91 -0
  142. package/generator/dead-code-review/node_modules/cross-spawn/lib/util/escape.js +45 -0
  143. package/generator/dead-code-review/node_modules/cross-spawn/lib/util/readShebang.js +23 -0
  144. package/generator/dead-code-review/node_modules/cross-spawn/lib/util/resolveCommand.js +52 -0
  145. package/generator/dead-code-review/node_modules/cross-spawn/package.json +73 -0
  146. package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/LICENSE +373 -0
  147. package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/README.md +64 -0
  148. package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/elm_solve_deps_wasm.d.ts +22 -0
  149. package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/elm_solve_deps_wasm.js +419 -0
  150. package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/elm_solve_deps_wasm_bg.wasm +0 -0
  151. package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/package.json +27 -0
  152. package/generator/dead-code-review/node_modules/elm-test/LICENSE +27 -0
  153. package/generator/dead-code-review/node_modules/elm-test/README.md +192 -0
  154. package/generator/dead-code-review/node_modules/elm-test/bin/elm-test +3 -0
  155. package/generator/dead-code-review/node_modules/elm-test/elm/elm.json +25 -0
  156. package/generator/dead-code-review/node_modules/elm-test/elm/src/Console/Text.elm +217 -0
  157. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Console/Format/Color.elm +30 -0
  158. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Console/Format/Monochrome.elm +39 -0
  159. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Console/Format.elm +212 -0
  160. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Console.elm +207 -0
  161. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Highlightable.elm +48 -0
  162. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/JUnit.elm +161 -0
  163. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Json.elm +158 -0
  164. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Reporter.elm +53 -0
  165. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/TestResults.elm +113 -0
  166. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Runner/JsMessage.elm +38 -0
  167. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Runner/Node/Vendor/Console.elm +230 -0
  168. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Runner/Node/Vendor/Diff.elm +326 -0
  169. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Runner/Node.elm +440 -0
  170. package/generator/dead-code-review/node_modules/elm-test/lib/Compile.js +110 -0
  171. package/generator/dead-code-review/node_modules/elm-test/lib/DependencyProvider.js +343 -0
  172. package/generator/dead-code-review/node_modules/elm-test/lib/ElmCompiler.js +109 -0
  173. package/generator/dead-code-review/node_modules/elm-test/lib/ElmHome.js +47 -0
  174. package/generator/dead-code-review/node_modules/elm-test/lib/ElmJson.js +194 -0
  175. package/generator/dead-code-review/node_modules/elm-test/lib/FindTests.js +276 -0
  176. package/generator/dead-code-review/node_modules/elm-test/lib/Generate.js +294 -0
  177. package/generator/dead-code-review/node_modules/elm-test/lib/Install.js +290 -0
  178. package/generator/dead-code-review/node_modules/elm-test/lib/Parser.js +941 -0
  179. package/generator/dead-code-review/node_modules/elm-test/lib/Project.js +117 -0
  180. package/generator/dead-code-review/node_modules/elm-test/lib/Report.js +23 -0
  181. package/generator/dead-code-review/node_modules/elm-test/lib/RunTests.js +322 -0
  182. package/generator/dead-code-review/node_modules/elm-test/lib/Solve.js +76 -0
  183. package/generator/dead-code-review/node_modules/elm-test/lib/Supervisor.js +294 -0
  184. package/generator/dead-code-review/node_modules/elm-test/lib/SyncGet.js +45 -0
  185. package/generator/dead-code-review/node_modules/elm-test/lib/SyncGetWorker.js +36 -0
  186. package/generator/dead-code-review/node_modules/elm-test/lib/elm-test.js +318 -0
  187. package/generator/dead-code-review/node_modules/elm-test/package.json +69 -0
  188. package/generator/dead-code-review/node_modules/elm-test/templates/after.js +29 -0
  189. package/generator/dead-code-review/node_modules/elm-test/templates/before.js +58 -0
  190. package/generator/dead-code-review/node_modules/elm-test/templates/tests/Example.elm +10 -0
  191. package/generator/dead-code-review/node_modules/fill-range/LICENSE +21 -0
  192. package/generator/dead-code-review/node_modules/fill-range/README.md +237 -0
  193. package/generator/dead-code-review/node_modules/fill-range/index.js +249 -0
  194. package/generator/dead-code-review/node_modules/fill-range/package.json +69 -0
  195. package/generator/dead-code-review/node_modules/fs.realpath/LICENSE +43 -0
  196. package/generator/dead-code-review/node_modules/fs.realpath/README.md +33 -0
  197. package/generator/dead-code-review/node_modules/fs.realpath/index.js +66 -0
  198. package/generator/dead-code-review/node_modules/fs.realpath/old.js +303 -0
  199. package/generator/dead-code-review/node_modules/fs.realpath/package.json +26 -0
  200. package/generator/dead-code-review/node_modules/fsevents/LICENSE +22 -0
  201. package/generator/dead-code-review/node_modules/fsevents/README.md +83 -0
  202. package/generator/dead-code-review/node_modules/fsevents/fsevents.d.ts +46 -0
  203. package/generator/dead-code-review/node_modules/fsevents/fsevents.js +82 -0
  204. package/generator/dead-code-review/node_modules/fsevents/fsevents.node +0 -0
  205. package/generator/dead-code-review/node_modules/fsevents/package.json +62 -0
  206. package/generator/dead-code-review/node_modules/glob/LICENSE +15 -0
  207. package/generator/dead-code-review/node_modules/glob/README.md +378 -0
  208. package/generator/dead-code-review/node_modules/glob/common.js +240 -0
  209. package/generator/dead-code-review/node_modules/glob/glob.js +790 -0
  210. package/generator/dead-code-review/node_modules/glob/package.json +55 -0
  211. package/generator/dead-code-review/node_modules/glob/sync.js +486 -0
  212. package/generator/dead-code-review/node_modules/glob-parent/CHANGELOG.md +110 -0
  213. package/generator/dead-code-review/node_modules/glob-parent/LICENSE +15 -0
  214. package/generator/dead-code-review/node_modules/glob-parent/README.md +137 -0
  215. package/generator/dead-code-review/node_modules/glob-parent/index.js +42 -0
  216. package/generator/dead-code-review/node_modules/glob-parent/package.json +48 -0
  217. package/generator/dead-code-review/node_modules/graceful-fs/LICENSE +15 -0
  218. package/generator/dead-code-review/node_modules/graceful-fs/README.md +143 -0
  219. package/generator/dead-code-review/node_modules/graceful-fs/clone.js +23 -0
  220. package/generator/dead-code-review/node_modules/graceful-fs/graceful-fs.js +448 -0
  221. package/generator/dead-code-review/node_modules/graceful-fs/legacy-streams.js +118 -0
  222. package/generator/dead-code-review/node_modules/graceful-fs/package.json +50 -0
  223. package/generator/dead-code-review/node_modules/graceful-fs/polyfills.js +355 -0
  224. package/generator/dead-code-review/node_modules/has-flag/index.d.ts +39 -0
  225. package/generator/dead-code-review/node_modules/has-flag/index.js +8 -0
  226. package/generator/dead-code-review/node_modules/has-flag/license +9 -0
  227. package/generator/dead-code-review/node_modules/has-flag/package.json +46 -0
  228. package/generator/dead-code-review/node_modules/has-flag/readme.md +89 -0
  229. package/generator/dead-code-review/node_modules/inflight/LICENSE +15 -0
  230. package/generator/dead-code-review/node_modules/inflight/README.md +37 -0
  231. package/generator/dead-code-review/node_modules/inflight/inflight.js +54 -0
  232. package/generator/dead-code-review/node_modules/inflight/package.json +29 -0
  233. package/generator/dead-code-review/node_modules/inherits/LICENSE +16 -0
  234. package/generator/dead-code-review/node_modules/inherits/README.md +42 -0
  235. package/generator/dead-code-review/node_modules/inherits/inherits.js +9 -0
  236. package/generator/dead-code-review/node_modules/inherits/inherits_browser.js +27 -0
  237. package/generator/dead-code-review/node_modules/inherits/package.json +29 -0
  238. package/generator/dead-code-review/node_modules/is-binary-path/index.d.ts +17 -0
  239. package/generator/dead-code-review/node_modules/is-binary-path/index.js +7 -0
  240. package/generator/dead-code-review/node_modules/is-binary-path/license +9 -0
  241. package/generator/dead-code-review/node_modules/is-binary-path/package.json +40 -0
  242. package/generator/dead-code-review/node_modules/is-binary-path/readme.md +34 -0
  243. package/generator/dead-code-review/node_modules/is-extglob/LICENSE +21 -0
  244. package/generator/dead-code-review/node_modules/is-extglob/README.md +107 -0
  245. package/generator/dead-code-review/node_modules/is-extglob/index.js +20 -0
  246. package/generator/dead-code-review/node_modules/is-extglob/package.json +69 -0
  247. package/generator/dead-code-review/node_modules/is-glob/LICENSE +21 -0
  248. package/generator/dead-code-review/node_modules/is-glob/README.md +206 -0
  249. package/generator/dead-code-review/node_modules/is-glob/index.js +150 -0
  250. package/generator/dead-code-review/node_modules/is-glob/package.json +81 -0
  251. package/generator/dead-code-review/node_modules/is-number/LICENSE +21 -0
  252. package/generator/dead-code-review/node_modules/is-number/README.md +187 -0
  253. package/generator/dead-code-review/node_modules/is-number/index.js +18 -0
  254. package/generator/dead-code-review/node_modules/is-number/package.json +82 -0
  255. package/generator/dead-code-review/node_modules/isexe/LICENSE +15 -0
  256. package/generator/dead-code-review/node_modules/isexe/README.md +51 -0
  257. package/generator/dead-code-review/node_modules/isexe/index.js +57 -0
  258. package/generator/dead-code-review/node_modules/isexe/mode.js +41 -0
  259. package/generator/dead-code-review/node_modules/isexe/package.json +31 -0
  260. package/generator/dead-code-review/node_modules/isexe/test/basic.js +221 -0
  261. package/generator/dead-code-review/node_modules/isexe/windows.js +42 -0
  262. package/generator/dead-code-review/node_modules/minimatch/LICENSE +15 -0
  263. package/generator/dead-code-review/node_modules/minimatch/README.md +259 -0
  264. package/generator/dead-code-review/node_modules/minimatch/lib/path.js +4 -0
  265. package/generator/dead-code-review/node_modules/minimatch/minimatch.js +906 -0
  266. package/generator/dead-code-review/node_modules/minimatch/package.json +32 -0
  267. package/generator/dead-code-review/node_modules/normalize-path/LICENSE +21 -0
  268. package/generator/dead-code-review/node_modules/normalize-path/README.md +127 -0
  269. package/generator/dead-code-review/node_modules/normalize-path/index.js +35 -0
  270. package/generator/dead-code-review/node_modules/normalize-path/package.json +77 -0
  271. package/generator/dead-code-review/node_modules/once/LICENSE +15 -0
  272. package/generator/dead-code-review/node_modules/once/README.md +79 -0
  273. package/generator/dead-code-review/node_modules/once/once.js +42 -0
  274. package/generator/dead-code-review/node_modules/once/package.json +33 -0
  275. package/generator/dead-code-review/node_modules/path-key/index.d.ts +40 -0
  276. package/generator/dead-code-review/node_modules/path-key/index.js +16 -0
  277. package/generator/dead-code-review/node_modules/path-key/license +9 -0
  278. package/generator/dead-code-review/node_modules/path-key/package.json +39 -0
  279. package/generator/dead-code-review/node_modules/path-key/readme.md +61 -0
  280. package/generator/dead-code-review/node_modules/picomatch/CHANGELOG.md +136 -0
  281. package/generator/dead-code-review/node_modules/picomatch/LICENSE +21 -0
  282. package/generator/dead-code-review/node_modules/picomatch/README.md +708 -0
  283. package/generator/dead-code-review/node_modules/picomatch/index.js +3 -0
  284. package/generator/dead-code-review/node_modules/picomatch/lib/constants.js +179 -0
  285. package/generator/dead-code-review/node_modules/picomatch/lib/parse.js +1091 -0
  286. package/generator/dead-code-review/node_modules/picomatch/lib/picomatch.js +342 -0
  287. package/generator/dead-code-review/node_modules/picomatch/lib/scan.js +391 -0
  288. package/generator/dead-code-review/node_modules/picomatch/lib/utils.js +64 -0
  289. package/generator/dead-code-review/node_modules/picomatch/package.json +81 -0
  290. package/generator/dead-code-review/node_modules/readdirp/LICENSE +21 -0
  291. package/generator/dead-code-review/node_modules/readdirp/README.md +122 -0
  292. package/generator/dead-code-review/node_modules/readdirp/index.d.ts +43 -0
  293. package/generator/dead-code-review/node_modules/readdirp/index.js +287 -0
  294. package/generator/dead-code-review/node_modules/readdirp/package.json +122 -0
  295. package/generator/dead-code-review/node_modules/shebang-command/index.js +19 -0
  296. package/generator/dead-code-review/node_modules/shebang-command/license +9 -0
  297. package/generator/dead-code-review/node_modules/shebang-command/package.json +34 -0
  298. package/generator/dead-code-review/node_modules/shebang-command/readme.md +34 -0
  299. package/generator/dead-code-review/node_modules/shebang-regex/index.d.ts +22 -0
  300. package/generator/dead-code-review/node_modules/shebang-regex/index.js +2 -0
  301. package/generator/dead-code-review/node_modules/shebang-regex/license +9 -0
  302. package/generator/dead-code-review/node_modules/shebang-regex/package.json +35 -0
  303. package/generator/dead-code-review/node_modules/shebang-regex/readme.md +33 -0
  304. package/generator/dead-code-review/node_modules/split/.travis.yml +3 -0
  305. package/generator/dead-code-review/node_modules/split/LICENCE +22 -0
  306. package/generator/dead-code-review/node_modules/split/examples/pretty.js +26 -0
  307. package/generator/dead-code-review/node_modules/split/index.js +63 -0
  308. package/generator/dead-code-review/node_modules/split/package.json +30 -0
  309. package/generator/dead-code-review/node_modules/split/readme.markdown +72 -0
  310. package/generator/dead-code-review/node_modules/split/test/options.asynct.js +46 -0
  311. package/generator/dead-code-review/node_modules/split/test/partitioned_unicode.js +34 -0
  312. package/generator/dead-code-review/node_modules/split/test/split.asynct.js +137 -0
  313. package/generator/dead-code-review/node_modules/split/test/try_catch.asynct.js +51 -0
  314. package/generator/dead-code-review/node_modules/supports-color/browser.js +5 -0
  315. package/generator/dead-code-review/node_modules/supports-color/index.js +135 -0
  316. package/generator/dead-code-review/node_modules/supports-color/license +9 -0
  317. package/generator/dead-code-review/node_modules/supports-color/package.json +53 -0
  318. package/generator/dead-code-review/node_modules/supports-color/readme.md +76 -0
  319. package/generator/dead-code-review/node_modules/through/.travis.yml +5 -0
  320. package/generator/dead-code-review/node_modules/through/LICENSE.APACHE2 +15 -0
  321. package/generator/dead-code-review/node_modules/through/LICENSE.MIT +24 -0
  322. package/generator/dead-code-review/node_modules/through/index.js +108 -0
  323. package/generator/dead-code-review/node_modules/through/package.json +36 -0
  324. package/generator/dead-code-review/node_modules/through/readme.markdown +64 -0
  325. package/generator/dead-code-review/node_modules/through/test/async.js +28 -0
  326. package/generator/dead-code-review/node_modules/through/test/auto-destroy.js +30 -0
  327. package/generator/dead-code-review/node_modules/through/test/buffering.js +71 -0
  328. package/generator/dead-code-review/node_modules/through/test/end.js +45 -0
  329. package/generator/dead-code-review/node_modules/through/test/index.js +133 -0
  330. package/generator/dead-code-review/node_modules/to-regex-range/LICENSE +21 -0
  331. package/generator/dead-code-review/node_modules/to-regex-range/README.md +305 -0
  332. package/generator/dead-code-review/node_modules/to-regex-range/index.js +288 -0
  333. package/generator/dead-code-review/node_modules/to-regex-range/package.json +88 -0
  334. package/generator/dead-code-review/node_modules/which/CHANGELOG.md +166 -0
  335. package/generator/dead-code-review/node_modules/which/LICENSE +15 -0
  336. package/generator/dead-code-review/node_modules/which/README.md +54 -0
  337. package/generator/dead-code-review/node_modules/which/bin/node-which +52 -0
  338. package/generator/dead-code-review/node_modules/which/package.json +43 -0
  339. package/generator/dead-code-review/node_modules/which/which.js +125 -0
  340. package/generator/dead-code-review/node_modules/wrappy/LICENSE +15 -0
  341. package/generator/dead-code-review/node_modules/wrappy/README.md +36 -0
  342. package/generator/dead-code-review/node_modules/wrappy/package.json +29 -0
  343. package/generator/dead-code-review/node_modules/wrappy/wrappy.js +33 -0
  344. package/generator/dead-code-review/node_modules/xmlbuilder/.nycrc +6 -0
  345. package/generator/dead-code-review/node_modules/xmlbuilder/.vscode/launch.json +23 -0
  346. package/generator/dead-code-review/node_modules/xmlbuilder/CHANGELOG.md +593 -0
  347. package/generator/dead-code-review/node_modules/xmlbuilder/LICENSE +21 -0
  348. package/generator/dead-code-review/node_modules/xmlbuilder/README.md +103 -0
  349. package/generator/dead-code-review/node_modules/xmlbuilder/lib/Derivation.js +10 -0
  350. package/generator/dead-code-review/node_modules/xmlbuilder/lib/DocumentPosition.js +12 -0
  351. package/generator/dead-code-review/node_modules/xmlbuilder/lib/NodeType.js +25 -0
  352. package/generator/dead-code-review/node_modules/xmlbuilder/lib/OperationType.js +11 -0
  353. package/generator/dead-code-review/node_modules/xmlbuilder/lib/Utility.js +88 -0
  354. package/generator/dead-code-review/node_modules/xmlbuilder/lib/WriterState.js +10 -0
  355. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLAttribute.js +130 -0
  356. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLCData.js +41 -0
  357. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLCharacterData.js +86 -0
  358. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLComment.js +41 -0
  359. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDOMConfiguration.js +80 -0
  360. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDOMErrorHandler.js +20 -0
  361. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDOMImplementation.js +55 -0
  362. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDOMStringList.js +44 -0
  363. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDTDAttList.js +66 -0
  364. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDTDElement.js +44 -0
  365. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDTDEntity.js +115 -0
  366. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDTDNotation.js +66 -0
  367. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDeclaration.js +51 -0
  368. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDocType.js +235 -0
  369. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDocument.js +282 -0
  370. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDocumentCB.js +650 -0
  371. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDocumentFragment.js +21 -0
  372. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDummy.js +39 -0
  373. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLElement.js +334 -0
  374. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLNamedNodeMap.js +77 -0
  375. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLNode.js +999 -0
  376. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLNodeFilter.js +51 -0
  377. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLNodeList.js +45 -0
  378. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLProcessingInstruction.js +56 -0
  379. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLRaw.js +40 -0
  380. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLStreamWriter.js +209 -0
  381. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLStringWriter.js +40 -0
  382. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLStringifier.js +291 -0
  383. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLText.js +82 -0
  384. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLTypeInfo.js +23 -0
  385. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLUserDataHandler.js +27 -0
  386. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLWriterBase.js +485 -0
  387. package/generator/dead-code-review/node_modules/xmlbuilder/lib/index.js +120 -0
  388. package/generator/dead-code-review/node_modules/xmlbuilder/package.json +51 -0
  389. package/generator/dead-code-review/node_modules/xmlbuilder/perf/basic/escaping.coffee +244 -0
  390. package/generator/dead-code-review/node_modules/xmlbuilder/perf/basic/object.coffee +21 -0
  391. package/generator/dead-code-review/node_modules/xmlbuilder/perf/index.coffee +161 -0
  392. package/generator/dead-code-review/node_modules/xmlbuilder/perf/perf.list +11 -0
  393. package/generator/dead-code-review/node_modules/xmlbuilder/typings/index.d.ts +1771 -0
  394. package/generator/dead-code-review/src/Pages/Review/DeadCodeEliminateData.elm +189 -17
  395. package/generator/dead-code-review/tests/Pages/Review/DeadCodeEliminateDataTest.elm +255 -21
  396. package/generator/review/elm-stuff/0.19.1/d.dat +0 -0
  397. package/generator/review/elm-stuff/0.19.1/i.dat +0 -0
  398. package/generator/review/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-stuff/0.19.1/d.dat +0 -0
  400. 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
  401. 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
  402. package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision10/install/elm.json +25 -0
  403. 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
  404. 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
  405. 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
  406. package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision7/install/elm.json +41 -0
  407. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/d.dat +0 -0
  408. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/i.dat +0 -0
  409. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/o.dat +0 -0
  410. package/generator/review/elm-stuff/tests-0.19.1/elm.json +1 -1
  411. package/generator/review/elm-stuff/tests-0.19.1/js/Reporter.elm.js +1327 -122
  412. package/generator/review/elm-stuff/tests-0.19.1/js/Runner.elm.js +14621 -12637
  413. package/generator/review/elm-stuff/tests-0.19.1/js/node_runner.js +1 -1
  414. package/generator/review/elm-stuff/tests-0.19.1/js/node_supervisor.js +4 -4
  415. package/generator/review/elm.json +8 -8
  416. package/generator/src/RouteBuilder.elm +66 -52
  417. package/generator/src/SharedTemplate.elm +3 -2
  418. package/generator/src/SiteConfig.elm +3 -2
  419. package/generator/src/basepath-middleware.js +3 -3
  420. package/generator/src/build.js +122 -86
  421. package/generator/src/cli.js +256 -52
  422. package/generator/src/codegen.js +29 -27
  423. package/generator/src/compatibility-key.js +3 -0
  424. package/generator/src/compile-elm.js +20 -22
  425. package/generator/src/config.js +39 -0
  426. package/generator/src/copy-dir.js +2 -2
  427. package/generator/src/dev-server.js +106 -110
  428. package/generator/src/dir-helpers.js +9 -26
  429. package/generator/src/elm-codegen.js +5 -4
  430. package/generator/src/elm-file-constants.js +2 -3
  431. package/generator/src/error-formatter.js +12 -11
  432. package/generator/src/file-helpers.js +3 -4
  433. package/generator/src/generate-template-module-connector.js +14 -21
  434. package/generator/src/init.js +8 -7
  435. package/generator/src/pre-render-html.js +39 -28
  436. package/generator/src/render-test.js +109 -0
  437. package/generator/src/render-worker.js +29 -28
  438. package/generator/src/render.js +322 -142
  439. package/generator/src/request-cache.js +252 -163
  440. package/generator/src/rewrite-client-elm-json.js +5 -5
  441. package/generator/src/rewrite-elm-json.js +7 -7
  442. package/generator/src/route-codegen-helpers.js +16 -31
  443. package/generator/src/seo-renderer.js +12 -7
  444. package/generator/src/vite-utils.js +77 -0
  445. package/generator/static-code/hmr.js +16 -2
  446. package/generator/template/app/Api.elm +6 -5
  447. package/generator/template/app/Effect.elm +123 -0
  448. package/generator/template/app/ErrorPage.elm +37 -6
  449. package/generator/template/app/Route/Index.elm +15 -8
  450. package/generator/template/app/Shared.elm +24 -47
  451. package/generator/template/app/Site.elm +19 -6
  452. package/generator/template/app/View.elm +1 -8
  453. package/generator/template/elm-tooling.json +0 -3
  454. package/generator/template/elm.json +34 -25
  455. package/generator/template/package.json +10 -4
  456. package/package.json +21 -21
  457. package/src/ApiRoute.elm +199 -61
  458. package/src/BackendTask/Custom.elm +318 -0
  459. package/src/BackendTask/Env.elm +90 -0
  460. package/src/{DataSource → BackendTask}/File.elm +128 -43
  461. package/src/{DataSource → BackendTask}/Glob.elm +136 -125
  462. package/src/BackendTask/Http.elm +673 -0
  463. package/src/{DataSource → BackendTask}/Internal/Glob.elm +1 -1
  464. package/src/BackendTask/Internal/Request.elm +28 -0
  465. package/src/BackendTask/Random.elm +79 -0
  466. package/src/BackendTask/Time.elm +47 -0
  467. package/src/BackendTask.elm +537 -0
  468. package/src/FatalError.elm +89 -0
  469. package/src/Form/Field.elm +22 -10
  470. package/src/Form/FieldView.elm +14 -4
  471. package/src/Form.elm +99 -111
  472. package/src/Head/Seo.elm +4 -4
  473. package/src/Head.elm +237 -7
  474. package/src/HtmlPrinter.elm +7 -3
  475. package/src/Internal/ApiRoute.elm +7 -5
  476. package/src/PageServerResponse.elm +6 -1
  477. package/src/Pages/GeneratorProgramConfig.elm +15 -0
  478. package/src/Pages/Internal/FatalError.elm +5 -0
  479. package/src/Pages/Internal/Form.elm +21 -1
  480. package/src/Pages/Internal/Platform/Cli.elm +505 -746
  481. package/src/Pages/Internal/Platform/Cli.elm.bak +1276 -0
  482. package/src/Pages/Internal/Platform/CompatibilityKey.elm +6 -0
  483. package/src/Pages/Internal/Platform/Effect.elm +1 -2
  484. package/src/Pages/Internal/Platform/GeneratorApplication.elm +373 -0
  485. package/src/Pages/Internal/Platform/StaticResponses.elm +73 -270
  486. package/src/Pages/Internal/Platform/ToJsPayload.elm +4 -7
  487. package/src/Pages/Internal/Platform.elm +110 -88
  488. package/src/Pages/Internal/Script.elm +17 -0
  489. package/src/Pages/Internal/StaticHttpBody.elm +35 -1
  490. package/src/Pages/Manifest.elm +29 -4
  491. package/src/Pages/ProgramConfig.elm +12 -8
  492. package/src/Pages/Script.elm +109 -0
  493. package/src/Pages/SiteConfig.elm +3 -2
  494. package/src/Pages/StaticHttp/Request.elm +2 -2
  495. package/src/Pages/StaticHttpRequest.elm +23 -98
  496. package/src/RequestsAndPending.elm +8 -19
  497. package/src/Result/Extra.elm +26 -0
  498. package/src/Scaffold/Form.elm +474 -0
  499. package/src/Scaffold/Route.elm +1473 -0
  500. package/src/Server/Request.elm +43 -34
  501. package/src/Server/Session.elm +166 -100
  502. package/src/Server/SetCookie.elm +89 -31
  503. package/src/Test/Html/Internal/ElmHtml/ToString.elm +8 -9
  504. package/src/DataSource/Env.elm +0 -38
  505. package/src/DataSource/Http.elm +0 -446
  506. package/src/DataSource/Internal/Request.elm +0 -20
  507. package/src/DataSource/Port.elm +0 -90
  508. package/src/DataSource.elm +0 -538
  509. package/src/Pages/Generate.elm +0 -800
@@ -0,0 +1,1473 @@
1
+ module Scaffold.Route exposing
2
+ ( buildWithLocalState, buildWithSharedState, buildNoState, Builder
3
+ , Type(..)
4
+ , serverRender
5
+ , preRender, single
6
+ , addDeclarations
7
+ , moduleNameCliArg
8
+ )
9
+
10
+ {-| This module provides some functions for scaffolding code for a new Route Module. It uses [`elm-codegen`'s API](https://package.elm-lang.org/packages/mdgriffith/elm-codegen/latest/) for generating code.
11
+
12
+ Typically you'll want to use this via the `elm-pages codegen` CLI command. The default starter template includes a file that uses these functions, which you can tweak to customize your scaffolding commands.
13
+ Learn more about [the `elm-pages run` CLI command in its docs page](https://elm-pages.com/docs/run-command).
14
+
15
+
16
+ ## Initializing the Generator Builder
17
+
18
+ @docs buildWithLocalState, buildWithSharedState, buildNoState, Builder
19
+
20
+ @docs Type
21
+
22
+
23
+ ## Generating Server-Rendered Pages
24
+
25
+ @docs serverRender
26
+
27
+
28
+ ## Generating pre-rendered pages
29
+
30
+ @docs preRender, single
31
+
32
+
33
+ ## Including Additional elm-codegen Declarations
34
+
35
+ @docs addDeclarations
36
+
37
+
38
+ ## CLI Options Parsing Helpers
39
+
40
+ @docs moduleNameCliArg
41
+
42
+ -}
43
+
44
+ import Cli.Option as Option
45
+ import Cli.Validate
46
+ import Elm
47
+ import Elm.Annotation
48
+ import Elm.Declare
49
+ import Pages.Internal.RoutePattern as RoutePattern
50
+
51
+
52
+ {-| A positional argument for elm-cli-options-parser that does a Regex validation to check that the module name is a valid Elm Route module name.
53
+ -}
54
+ moduleNameCliArg : Option.Option from String builderState -> Option.Option from (List String) builderState
55
+ moduleNameCliArg =
56
+ Option.validate
57
+ (Cli.Validate.regex moduleNameRegex)
58
+ >> Option.map
59
+ (\rawModuleName ->
60
+ rawModuleName |> String.split "."
61
+ )
62
+
63
+
64
+ moduleNameRegex : String
65
+ moduleNameRegex =
66
+ "^[A-Z][a-zA-Z0-9_]*(\\.([A-Z][a-zA-Z0-9_]*))*$"
67
+
68
+
69
+ {-| -}
70
+ type Type
71
+ = Alias Elm.Annotation.Annotation
72
+ | Custom (List Elm.Variant)
73
+
74
+
75
+ typeToDeclaration : String -> Type -> Elm.Declaration
76
+ typeToDeclaration name type_ =
77
+ case type_ of
78
+ Alias annotation ->
79
+ Elm.alias name annotation
80
+
81
+ Custom variants ->
82
+ Elm.customType name variants
83
+
84
+
85
+ {-| -}
86
+ type Builder
87
+ = ServerRender
88
+ (List Elm.Declaration)
89
+ { data : ( Type, Elm.Expression -> Elm.Expression )
90
+ , action : ( Type, Elm.Expression -> Elm.Expression )
91
+ , head : Elm.Expression -> Elm.Expression
92
+ , moduleName : List String
93
+ }
94
+ | PreRender
95
+ (List Elm.Declaration)
96
+ { data : ( Type, Elm.Expression -> Elm.Expression )
97
+ , pages : Maybe Elm.Expression
98
+ , head : Elm.Expression -> Elm.Expression
99
+ , moduleName : List String
100
+ }
101
+
102
+
103
+ {-| -}
104
+ serverRender :
105
+ { data : ( Type, Elm.Expression -> Elm.Expression )
106
+ , action : ( Type, Elm.Expression -> Elm.Expression )
107
+ , head : Elm.Expression -> Elm.Expression
108
+ , moduleName : List String
109
+ }
110
+ -> Builder
111
+ serverRender =
112
+ ServerRender []
113
+
114
+
115
+ {-| -}
116
+ preRender :
117
+ { data : ( Type, Elm.Expression -> Elm.Expression )
118
+ , pages : Elm.Expression
119
+ , head : Elm.Expression -> Elm.Expression
120
+ , moduleName : List String
121
+ }
122
+ -> Builder
123
+ preRender input =
124
+ --let
125
+ -- hasDynamicRouteSegments : Bool
126
+ -- hasDynamicRouteSegments =
127
+ -- RoutePattern.fromModuleName input.moduleName
128
+ -- -- TODO give error if not parseable here
129
+ -- |> Maybe.map RoutePattern.hasRouteParams
130
+ -- |> Maybe.withDefault False
131
+ --in
132
+ PreRender []
133
+ { data = input.data
134
+ , pages =
135
+ input.pages
136
+ |> Elm.withType
137
+ (throwableTask
138
+ (Elm.Annotation.list <| Elm.Annotation.named [] "RouteParams")
139
+ )
140
+ |> Just
141
+ , head = input.head
142
+ , moduleName = input.moduleName
143
+ }
144
+
145
+
146
+ {-| -}
147
+ single :
148
+ { data : ( Type, Elm.Expression )
149
+ , head : Elm.Expression -> Elm.Expression
150
+ , moduleName : List String
151
+ }
152
+ -> Builder
153
+ single input =
154
+ PreRender []
155
+ { data = ( Tuple.first input.data, \_ -> Tuple.second input.data )
156
+ , pages = Nothing
157
+ , head = input.head
158
+ , moduleName = input.moduleName
159
+ }
160
+
161
+
162
+ {-| -}
163
+ buildNoState :
164
+ { view : { maybeUrl : Elm.Expression, sharedModel : Elm.Expression, app : Elm.Expression } -> Elm.Expression
165
+ }
166
+ -> Builder
167
+ -> { path : String, body : String }
168
+ buildNoState definitions builder_ =
169
+ case builder_ of
170
+ ServerRender declarations builder ->
171
+ userFunction builder.moduleName
172
+ { view =
173
+ \maybeUrl sharedModel _ app ->
174
+ definitions.view
175
+ { maybeUrl = maybeUrl
176
+ , sharedModel = sharedModel
177
+ , app = app
178
+ }
179
+ , localState = Nothing
180
+ , data = builder.data |> Tuple.second
181
+ , action = builder.action |> Tuple.second |> Action
182
+ , head = builder.head
183
+ , types =
184
+ { model = Alias (Elm.Annotation.record [])
185
+ , msg = Alias Elm.Annotation.unit
186
+ , data = builder.data |> Tuple.first
187
+ , actionData = builder.action |> Tuple.first
188
+ }
189
+ , declarations = declarations
190
+ }
191
+
192
+ PreRender declarations builder ->
193
+ userFunction builder.moduleName
194
+ { view =
195
+ \maybeUrl sharedModel _ app ->
196
+ definitions.view
197
+ { maybeUrl = maybeUrl
198
+ , sharedModel = sharedModel
199
+ , app = app
200
+ }
201
+ , localState = Nothing
202
+ , data = builder.data |> Tuple.second
203
+ , action = builder.pages |> Pages
204
+ , head = builder.head
205
+ , types =
206
+ { model = Alias (Elm.Annotation.record [])
207
+ , msg = Alias Elm.Annotation.unit
208
+ , data = builder.data |> Tuple.first
209
+ , actionData =
210
+ throwableTask
211
+ (Elm.Annotation.list (Elm.Annotation.named [] "RouteParams"))
212
+ |> Alias
213
+ }
214
+ , declarations = declarations
215
+ }
216
+
217
+
218
+ {-| -}
219
+ addDeclarations : List Elm.Declaration -> Builder -> Builder
220
+ addDeclarations declarations builder =
221
+ case builder of
222
+ ServerRender existingDeclarations record ->
223
+ ServerRender (existingDeclarations ++ declarations) record
224
+
225
+ PreRender existingDeclarations record ->
226
+ PreRender (existingDeclarations ++ declarations) record
227
+
228
+
229
+ {-| -}
230
+ buildWithLocalState :
231
+ { view :
232
+ { maybeUrl : Elm.Expression, sharedModel : Elm.Expression, model : Elm.Expression, app : Elm.Expression } -> Elm.Expression
233
+ , update :
234
+ { pageUrl : Elm.Expression
235
+ , sharedModel : Elm.Expression
236
+ , app : Elm.Expression
237
+ , msg : Elm.Expression
238
+ , model : Elm.Expression
239
+ }
240
+ -> Elm.Expression
241
+ , init :
242
+ { pageUrl : Elm.Expression
243
+ , sharedModel : Elm.Expression
244
+ , app : Elm.Expression
245
+ }
246
+ -> Elm.Expression
247
+ , subscriptions :
248
+ { maybePageUrl : Elm.Expression
249
+ , routeParams : Elm.Expression
250
+ , path : Elm.Expression
251
+ , sharedModel : Elm.Expression
252
+ , model : Elm.Expression
253
+ }
254
+ -> Elm.Expression
255
+ , msg : Type
256
+ , model : Type
257
+ }
258
+ -> Builder
259
+ -> { path : String, body : String }
260
+ buildWithLocalState definitions builder_ =
261
+ case builder_ of
262
+ ServerRender declarations builder ->
263
+ userFunction builder.moduleName
264
+ { view =
265
+ \maybeUrl sharedModel model app ->
266
+ definitions.view
267
+ { maybeUrl = maybeUrl
268
+ , sharedModel = sharedModel
269
+ , model = model
270
+ , app = app
271
+ }
272
+ , localState =
273
+ Just
274
+ { update =
275
+ \pageUrl sharedModel app msg model ->
276
+ definitions.update
277
+ { pageUrl = pageUrl
278
+ , sharedModel = sharedModel
279
+ , app = app
280
+ , msg = msg
281
+ , model = model
282
+ }
283
+ , init =
284
+ \pageUrl sharedModel app ->
285
+ definitions.init
286
+ { pageUrl = pageUrl
287
+ , sharedModel = sharedModel
288
+ , app = app
289
+ }
290
+ , subscriptions =
291
+ \maybePageUrl routeParams path sharedModel model ->
292
+ definitions.subscriptions
293
+ { maybePageUrl = maybePageUrl
294
+ , routeParams = routeParams
295
+ , path = path
296
+ , sharedModel = sharedModel
297
+ , model = model
298
+ }
299
+ , state = LocalState
300
+ }
301
+ , data = builder.data |> Tuple.second
302
+ , action = builder.action |> Tuple.second |> Action
303
+ , head = builder.head
304
+ , types =
305
+ { model = definitions.model
306
+ , msg = definitions.msg
307
+ , data = builder.data |> Tuple.first
308
+ , actionData = builder.action |> Tuple.first
309
+ }
310
+ , declarations = declarations
311
+ }
312
+
313
+ PreRender declarations builder ->
314
+ userFunction builder.moduleName
315
+ { view =
316
+ \maybeUrl sharedModel model app ->
317
+ definitions.view
318
+ { maybeUrl = maybeUrl
319
+ , sharedModel = sharedModel
320
+ , model = model
321
+ , app = app
322
+ }
323
+ , localState =
324
+ Just
325
+ { update =
326
+ \pageUrl sharedModel app msg model ->
327
+ definitions.update
328
+ { pageUrl = pageUrl
329
+ , sharedModel = sharedModel
330
+ , app = app
331
+ , msg = msg
332
+ , model = model
333
+ }
334
+ , init =
335
+ \pageUrl sharedModel app ->
336
+ definitions.init
337
+ { pageUrl = pageUrl
338
+ , sharedModel = sharedModel
339
+ , app = app
340
+ }
341
+ , subscriptions =
342
+ \maybePageUrl routeParams path sharedModel model ->
343
+ definitions.subscriptions
344
+ { maybePageUrl = maybePageUrl
345
+ , routeParams = routeParams
346
+ , path = path
347
+ , sharedModel = sharedModel
348
+ , model = model
349
+ }
350
+ , state = LocalState
351
+ }
352
+ , data = builder.data |> Tuple.second
353
+ , action = builder.pages |> Pages
354
+ , head = builder.head
355
+ , types =
356
+ { model = definitions.model
357
+ , msg = definitions.msg
358
+ , data = builder.data |> Tuple.first
359
+ , actionData =
360
+ throwableTask
361
+ (Elm.Annotation.list (Elm.Annotation.named [] "RouteParams"))
362
+ |> Alias
363
+ }
364
+ , declarations = declarations
365
+ }
366
+
367
+
368
+ {-| -}
369
+ buildWithSharedState :
370
+ { view :
371
+ { maybeUrl : Elm.Expression, sharedModel : Elm.Expression, model : Elm.Expression, app : Elm.Expression } -> Elm.Expression
372
+ , update :
373
+ { pageUrl : Elm.Expression
374
+ , sharedModel : Elm.Expression
375
+ , app : Elm.Expression
376
+ , msg : Elm.Expression
377
+ , model : Elm.Expression
378
+ }
379
+ -> Elm.Expression
380
+ , init :
381
+ { pageUrl : Elm.Expression
382
+ , sharedModel : Elm.Expression
383
+ , app : Elm.Expression
384
+ }
385
+ -> Elm.Expression
386
+ , subscriptions :
387
+ { maybePageUrl : Elm.Expression
388
+ , routeParams : Elm.Expression
389
+ , path : Elm.Expression
390
+ , sharedModel : Elm.Expression
391
+ , model : Elm.Expression
392
+ }
393
+ -> Elm.Expression
394
+ , msg : Type
395
+ , model : Type
396
+ }
397
+ -> Builder
398
+ -> { path : String, body : String }
399
+ buildWithSharedState definitions builder_ =
400
+ case builder_ of
401
+ ServerRender declarations builder ->
402
+ userFunction builder.moduleName
403
+ { view =
404
+ \maybeUrl sharedModel model app ->
405
+ definitions.view
406
+ { maybeUrl = maybeUrl
407
+ , sharedModel = sharedModel
408
+ , model = model
409
+ , app = app
410
+ }
411
+ , localState =
412
+ Just
413
+ { update =
414
+ \pageUrl sharedModel app msg model ->
415
+ definitions.update
416
+ { pageUrl = pageUrl
417
+ , sharedModel = sharedModel
418
+ , app = app
419
+ , msg = msg
420
+ , model = model
421
+ }
422
+ , init =
423
+ \pageUrl sharedModel app ->
424
+ definitions.init
425
+ { pageUrl = pageUrl
426
+ , sharedModel = sharedModel
427
+ , app = app
428
+ }
429
+ , subscriptions =
430
+ \maybePageUrl routeParams path sharedModel model ->
431
+ definitions.subscriptions
432
+ { maybePageUrl = maybePageUrl
433
+ , routeParams = routeParams
434
+ , path = path
435
+ , sharedModel = sharedModel
436
+ , model = model
437
+ }
438
+ , state = SharedState
439
+ }
440
+ , data = builder.data |> Tuple.second
441
+ , action = builder.action |> Tuple.second |> Action
442
+ , head = builder.head
443
+ , types =
444
+ { model = definitions.model
445
+ , msg = definitions.msg
446
+ , data = builder.data |> Tuple.first
447
+ , actionData = builder.action |> Tuple.first
448
+ }
449
+ , declarations = declarations
450
+ }
451
+
452
+ PreRender declarations builder ->
453
+ userFunction builder.moduleName
454
+ { view =
455
+ \maybeUrl sharedModel model app ->
456
+ definitions.view
457
+ { maybeUrl = maybeUrl
458
+ , sharedModel = sharedModel
459
+ , model = model
460
+ , app = app
461
+ }
462
+ , localState =
463
+ Just
464
+ { update =
465
+ \pageUrl sharedModel app msg model ->
466
+ definitions.update
467
+ { pageUrl = pageUrl
468
+ , sharedModel = sharedModel
469
+ , app = app
470
+ , msg = msg
471
+ , model = model
472
+ }
473
+ , init =
474
+ \pageUrl sharedModel app ->
475
+ definitions.init
476
+ { pageUrl = pageUrl
477
+ , sharedModel = sharedModel
478
+ , app = app
479
+ }
480
+ , subscriptions =
481
+ \maybePageUrl routeParams path sharedModel model ->
482
+ definitions.subscriptions
483
+ { maybePageUrl = maybePageUrl
484
+ , routeParams = routeParams
485
+ , path = path
486
+ , sharedModel = sharedModel
487
+ , model = model
488
+ }
489
+ , state = SharedState
490
+ }
491
+ , data = builder.data |> Tuple.second
492
+ , action = builder.pages |> Pages
493
+ , head = builder.head
494
+ , types =
495
+ { model = definitions.model
496
+ , msg = definitions.msg
497
+ , data = builder.data |> Tuple.first
498
+ , actionData =
499
+ throwableTask
500
+ (Elm.Annotation.list (Elm.Annotation.named [] "RouteParams"))
501
+ |> Alias
502
+ }
503
+ , declarations = declarations
504
+ }
505
+
506
+
507
+ type State
508
+ = SharedState
509
+ | LocalState
510
+
511
+
512
+ type ActionOrPages
513
+ = Action (Elm.Expression -> Elm.Expression)
514
+ | Pages (Maybe Elm.Expression)
515
+
516
+
517
+ {-| -}
518
+ userFunction :
519
+ List String
520
+ ->
521
+ { view : Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression
522
+ , localState :
523
+ Maybe
524
+ { update : Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression
525
+ , init : Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression
526
+ , subscriptions : Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression
527
+ , state : State
528
+ }
529
+ , data : Elm.Expression -> Elm.Expression
530
+ , action : ActionOrPages
531
+ , head : Elm.Expression -> Elm.Expression
532
+ , types : { model : Type, msg : Type, data : Type, actionData : Type }
533
+ , declarations : List Elm.Declaration
534
+ }
535
+ -> { path : String, body : String }
536
+ userFunction moduleName definitions =
537
+ let
538
+ viewFn :
539
+ { declaration : Elm.Declaration
540
+ , call : Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression
541
+ , callFrom : List String -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression
542
+ }
543
+ viewFn =
544
+ case definitions.localState of
545
+ Just _ ->
546
+ Elm.Declare.fn4 "view"
547
+ ( "maybeUrl"
548
+ , "PageUrl"
549
+ |> Elm.Annotation.named [ "Pages", "PageUrl" ]
550
+ |> Elm.Annotation.maybe
551
+ |> Just
552
+ )
553
+ ( "sharedModel"
554
+ , Just (Elm.Annotation.named [ "Shared" ] "Model")
555
+ )
556
+ ( "model", Just (Elm.Annotation.named [] "Model") )
557
+ ( "app", Just appType )
558
+ (\maybeUrl sharedModel model app ->
559
+ definitions.view maybeUrl sharedModel model app
560
+ |> Elm.withType
561
+ (Elm.Annotation.namedWith [ "View" ]
562
+ "View"
563
+ [ Elm.Annotation.namedWith [ "Pages", "Msg" ]
564
+ "Msg"
565
+ [ localType "Msg"
566
+ ]
567
+ ]
568
+ )
569
+ )
570
+
571
+ Nothing ->
572
+ let
573
+ viewDeclaration :
574
+ { declaration : Elm.Declaration
575
+ , call : Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression
576
+ , callFrom : List String -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression
577
+ }
578
+ viewDeclaration =
579
+ Elm.Declare.fn3 "view"
580
+ ( "maybeUrl"
581
+ , "PageUrl"
582
+ |> Elm.Annotation.named [ "Pages", "PageUrl" ]
583
+ |> Elm.Annotation.maybe
584
+ |> Just
585
+ )
586
+ ( "sharedModel"
587
+ , Just (Elm.Annotation.named [ "Shared" ] "Model")
588
+ )
589
+ ( "app", Just appType )
590
+ (definitions.view Elm.unit)
591
+ in
592
+ { declaration = viewDeclaration.declaration
593
+ , call = \_ -> viewDeclaration.call
594
+ , callFrom = \a _ c d -> viewDeclaration.callFrom a c d
595
+ }
596
+
597
+ localDefinitions :
598
+ Maybe
599
+ { updateFn :
600
+ { declaration : Elm.Declaration
601
+ , call : Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression
602
+ , callFrom : List String -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression
603
+ }
604
+ , initFn : { declaration : Elm.Declaration, call : Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression, callFrom : List String -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression }
605
+ , subscriptionsFn : { declaration : Elm.Declaration, call : Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression, callFrom : List String -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression }
606
+ , state : State
607
+ }
608
+ localDefinitions =
609
+ definitions.localState
610
+ |> Maybe.map
611
+ (\localState ->
612
+ { updateFn =
613
+ Elm.Declare.fn5 "update"
614
+ ( "pageUrl"
615
+ , "PageUrl"
616
+ |> Elm.Annotation.named [ "Pages", "PageUrl" ]
617
+ |> Just
618
+ )
619
+ ( "sharedModel", Just (Elm.Annotation.named [ "Shared" ] "Model") )
620
+ ( "app", Just appType )
621
+ ( "msg", Just (Elm.Annotation.named [] "Msg") )
622
+ ( "model", Just (Elm.Annotation.named [] "Model") )
623
+ localState.update
624
+ , initFn =
625
+ Elm.Declare.fn3 "init"
626
+ ( "pageUrl"
627
+ , "PageUrl"
628
+ |> Elm.Annotation.named [ "Pages", "PageUrl" ]
629
+ |> Elm.Annotation.maybe
630
+ |> Just
631
+ )
632
+ ( "sharedModel", Just (Elm.Annotation.named [ "Shared" ] "Model") )
633
+ ( "app", Just appType )
634
+ (\pageUrl sharedModel app ->
635
+ localState.init pageUrl sharedModel app
636
+ |> Elm.withType
637
+ (Elm.Annotation.tuple
638
+ (localType "Model")
639
+ effectType
640
+ )
641
+ )
642
+ , subscriptionsFn =
643
+ Elm.Declare.fn5
644
+ "subscriptions"
645
+ ( "maybePageUrl"
646
+ , "PageUrl"
647
+ |> Elm.Annotation.named [ "Pages", "PageUrl" ]
648
+ |> Elm.Annotation.maybe
649
+ |> Just
650
+ )
651
+ ( "routeParams", "RouteParams" |> Elm.Annotation.named [] |> Just )
652
+ ( "path", Elm.Annotation.namedWith [ "Path" ] "Path" [] |> Just )
653
+ ( "sharedModel", Just (Elm.Annotation.named [ "Shared" ] "Model") )
654
+ ( "model", localType "Model" |> Just )
655
+ (\maybePageUrl routeParams path sharedModel model ->
656
+ localState.subscriptions maybePageUrl routeParams path sharedModel model
657
+ |> Elm.withType (Elm.Annotation.namedWith [] "Sub" [ localType "Msg" ])
658
+ )
659
+ , state = localState.state
660
+ }
661
+ )
662
+
663
+ dataFn : { declaration : Elm.Declaration, call : List Elm.Expression -> Elm.Expression, callFrom : List String -> List Elm.Expression -> Elm.Expression }
664
+ dataFn =
665
+ case definitions.action of
666
+ Pages Nothing ->
667
+ Elm.Declare.function "data"
668
+ []
669
+ (\_ ->
670
+ definitions.data Elm.unit
671
+ |> Elm.withType
672
+ (case definitions.action of
673
+ Pages _ ->
674
+ throwableTask (Elm.Annotation.named [] "Data")
675
+
676
+ Action _ ->
677
+ myType "Data"
678
+ )
679
+ )
680
+
681
+ _ ->
682
+ Elm.Declare.function "data"
683
+ [ ( "routeParams"
684
+ , "RouteParams"
685
+ |> Elm.Annotation.named []
686
+ |> Just
687
+ )
688
+ ]
689
+ (\args ->
690
+ case args of
691
+ [ arg ] ->
692
+ definitions.data arg
693
+ |> Elm.withType
694
+ (case definitions.action of
695
+ Pages _ ->
696
+ throwableTask (Elm.Annotation.named [] "Data")
697
+
698
+ Action _ ->
699
+ myType "Data"
700
+ )
701
+
702
+ _ ->
703
+ Elm.unit
704
+ )
705
+
706
+ actionFn : Maybe { declaration : Elm.Declaration, call : List Elm.Expression -> Elm.Expression, callFrom : List String -> List Elm.Expression -> Elm.Expression }
707
+ actionFn =
708
+ case definitions.action of
709
+ Action action_ ->
710
+ Elm.Declare.function "action"
711
+ [ ( "routeParams"
712
+ , "RouteParams"
713
+ |> Elm.Annotation.named []
714
+ |> Just
715
+ )
716
+ ]
717
+ (\args ->
718
+ case args of
719
+ [ arg ] ->
720
+ action_ arg |> Elm.withType (myType "ActionData")
721
+
722
+ _ ->
723
+ Elm.unit
724
+ )
725
+ |> Just
726
+
727
+ Pages pages_ ->
728
+ pages_
729
+ |> Maybe.map
730
+ (\justPagesExpression ->
731
+ Elm.Declare.function "pages"
732
+ []
733
+ (\_ -> justPagesExpression)
734
+ )
735
+
736
+ headFn : { declaration : Elm.Declaration, call : Elm.Expression -> Elm.Expression, callFrom : List String -> Elm.Expression -> Elm.Expression }
737
+ headFn =
738
+ Elm.Declare.fn "head"
739
+ ( "app", Just appType )
740
+ (definitions.head
741
+ >> Elm.withType
742
+ (Elm.Annotation.list
743
+ (Elm.Annotation.named [ "Head" ] "Tag")
744
+ )
745
+ )
746
+ in
747
+ Elm.file ("Route" :: moduleName)
748
+ ([ definitions.types.model |> typeToDeclaration "Model" |> Elm.expose
749
+ , definitions.types.msg |> typeToDeclaration "Msg" |> Elm.expose
750
+ , Elm.alias "RouteParams"
751
+ (Elm.Annotation.record
752
+ (RoutePattern.fromModuleName moduleName
753
+ -- TODO give error if not parseable here
754
+ |> Maybe.map RoutePattern.toRouteParamsRecord
755
+ |> Maybe.withDefault []
756
+ )
757
+ )
758
+ |> Elm.expose
759
+ , Elm.declaration "route"
760
+ ((case definitions.action of
761
+ Action _ ->
762
+ serverRender_
763
+ { action =
764
+ \routeParams ->
765
+ actionFn
766
+ |> Maybe.map
767
+ (\justActionFn ->
768
+ justActionFn.call [ routeParams ]
769
+ |> Elm.withType (myType "ActionData")
770
+ )
771
+ |> Maybe.withDefault Elm.unit
772
+ , data =
773
+ \routeParams ->
774
+ dataFn.call [ routeParams ]
775
+ |> Elm.withType (myType "Data")
776
+ , head = headFn.call
777
+ }
778
+
779
+ Pages _ ->
780
+ case actionFn of
781
+ Nothing ->
782
+ single_
783
+ { data =
784
+ dataFn.call []
785
+ |> Elm.withType
786
+ (throwableTask
787
+ (Elm.Annotation.named [] "Data")
788
+ )
789
+ , head = headFn.call
790
+ }
791
+
792
+ Just justActionFn ->
793
+ preRender_
794
+ { pages = justActionFn.call []
795
+ , data =
796
+ \routeParams ->
797
+ dataFn.call [ routeParams ]
798
+ |> Elm.withType
799
+ (throwableTask (Elm.Annotation.named [] "Data"))
800
+ , head = headFn.call
801
+ }
802
+ )
803
+ |> (case localDefinitions of
804
+ Just local ->
805
+ buildWithLocalState_
806
+ { view = viewFn.call
807
+ , update = local.updateFn.call
808
+ , init = local.initFn.call
809
+ , subscriptions = local.subscriptionsFn.call
810
+ , state = local.state
811
+ }
812
+ >> Elm.withType
813
+ (Elm.Annotation.namedWith [ "RouteBuilder" ]
814
+ "StatefulRoute"
815
+ [ localType "RouteParams"
816
+ , localType "Data"
817
+ , localType "ActionData"
818
+ , localType "Model"
819
+ , localType "Msg"
820
+ ]
821
+ )
822
+
823
+ Nothing ->
824
+ buildNoState_
825
+ { view = viewFn.call Elm.unit
826
+ }
827
+ >> Elm.withType
828
+ (Elm.Annotation.namedWith [ "RouteBuilder" ]
829
+ "StatelessRoute"
830
+ [ localType "RouteParams"
831
+ , localType "Data"
832
+ , localType "ActionData"
833
+ ]
834
+ )
835
+ )
836
+ )
837
+ |> Elm.expose
838
+ ]
839
+ ++ (case localDefinitions of
840
+ Just local ->
841
+ [ local.initFn.declaration
842
+ , local.updateFn.declaration
843
+ , local.subscriptionsFn.declaration
844
+ ]
845
+
846
+ Nothing ->
847
+ []
848
+ )
849
+ ++ [ definitions.types.data |> typeToDeclaration "Data" |> Elm.expose
850
+ , definitions.types.actionData |> typeToDeclaration "ActionData" |> Elm.expose
851
+ , dataFn.declaration
852
+ , headFn.declaration
853
+ , viewFn.declaration
854
+ ]
855
+ ++ ([ actionFn |> Maybe.map .declaration
856
+ ]
857
+ |> List.filterMap identity
858
+ )
859
+ ++ definitions.declarations
860
+ )
861
+ |> (\{ path, contents } ->
862
+ { path = "app/" ++ path
863
+ , body = contents
864
+ }
865
+ )
866
+
867
+
868
+ localType : String -> Elm.Annotation.Annotation
869
+ localType =
870
+ Elm.Annotation.named []
871
+
872
+
873
+ myType : String -> Elm.Annotation.Annotation
874
+ myType dataType =
875
+ Elm.Annotation.namedWith [ "Server", "Request" ]
876
+ "Parser"
877
+ [ throwableTask
878
+ (Elm.Annotation.namedWith [ "Server", "Response" ]
879
+ "Response"
880
+ [ Elm.Annotation.named [] dataType
881
+ , Elm.Annotation.named [ "ErrorPage" ] "ErrorPage"
882
+ ]
883
+ )
884
+ ]
885
+
886
+
887
+ appType : Elm.Annotation.Annotation
888
+ appType =
889
+ Elm.Annotation.namedWith [ "RouteBuilder" ]
890
+ "StaticPayload"
891
+ [ Elm.Annotation.named [] "Data"
892
+ , Elm.Annotation.named [] "ActionData"
893
+ , Elm.Annotation.named [] "RouteParams"
894
+ ]
895
+
896
+
897
+ serverRender_ :
898
+ { data : Elm.Expression -> Elm.Expression
899
+ , action : Elm.Expression -> Elm.Expression
900
+ , head : Elm.Expression -> Elm.Expression
901
+ }
902
+ -> Elm.Expression
903
+ serverRender_ serverRenderArg =
904
+ Elm.apply
905
+ (Elm.value
906
+ { importFrom = [ "RouteBuilder" ]
907
+ , name = "serverRender"
908
+ , annotation =
909
+ Just
910
+ (Elm.Annotation.function
911
+ [ Elm.Annotation.record
912
+ [ ( "data"
913
+ , Elm.Annotation.function
914
+ [ Elm.Annotation.var "routeParams" ]
915
+ (Elm.Annotation.namedWith
916
+ [ "Server", "Request" ]
917
+ "Parser"
918
+ [ throwableTask
919
+ (Elm.Annotation.namedWith
920
+ [ "Server", "Response" ]
921
+ "Response"
922
+ [ Elm.Annotation.var "data"
923
+ , Elm.Annotation.namedWith
924
+ [ "ErrorPage" ]
925
+ "ErrorPage"
926
+ []
927
+ ]
928
+ )
929
+ ]
930
+ )
931
+ )
932
+ , ( "action"
933
+ , Elm.Annotation.function
934
+ [ Elm.Annotation.var "routeParams" ]
935
+ (Elm.Annotation.namedWith
936
+ [ "Server", "Request" ]
937
+ "Parser"
938
+ [ throwableTask
939
+ (Elm.Annotation.namedWith
940
+ [ "Server", "Response" ]
941
+ "Response"
942
+ [ Elm.Annotation.var "action"
943
+ , Elm.Annotation.namedWith
944
+ [ "ErrorPage" ]
945
+ "ErrorPage"
946
+ []
947
+ ]
948
+ )
949
+ ]
950
+ )
951
+ )
952
+ , ( "head"
953
+ , Elm.Annotation.function
954
+ [ Elm.Annotation.namedWith
955
+ [ "RouteBuilder" ]
956
+ "StaticPayload"
957
+ [ Elm.Annotation.var "data"
958
+ , Elm.Annotation.var "action"
959
+ , Elm.Annotation.var "routeParams"
960
+ ]
961
+ ]
962
+ (Elm.Annotation.list
963
+ (Elm.Annotation.namedWith [ "Head" ] "Tag" [])
964
+ )
965
+ )
966
+ ]
967
+ ]
968
+ (Elm.Annotation.namedWith
969
+ [ "RouteBuilder" ]
970
+ "Builder"
971
+ [ Elm.Annotation.var "routeParams"
972
+ , Elm.Annotation.var "data"
973
+ , Elm.Annotation.var "action"
974
+ ]
975
+ )
976
+ )
977
+ }
978
+ )
979
+ [ Elm.record
980
+ [ Tuple.pair
981
+ "data"
982
+ (Elm.functionReduced "serverRenderUnpack" serverRenderArg.data)
983
+ , Tuple.pair
984
+ "action"
985
+ (Elm.functionReduced "serverRenderUnpack" serverRenderArg.action)
986
+ , Tuple.pair
987
+ "head"
988
+ (Elm.functionReduced "serverRenderUnpack" serverRenderArg.head)
989
+ ]
990
+ ]
991
+
992
+
993
+ preRender_ :
994
+ { data : Elm.Expression -> Elm.Expression
995
+ , pages : Elm.Expression
996
+ , head : Elm.Expression -> Elm.Expression
997
+ }
998
+ -> Elm.Expression
999
+ preRender_ serverRenderArg =
1000
+ Elm.apply
1001
+ (Elm.value
1002
+ { importFrom = [ "RouteBuilder" ]
1003
+ , name = "preRender"
1004
+ , annotation =
1005
+ Just
1006
+ (Elm.Annotation.function
1007
+ [ Elm.Annotation.record
1008
+ [ ( "data"
1009
+ , Elm.Annotation.function
1010
+ [ Elm.Annotation.var "routeParams" ]
1011
+ (throwableTask (Elm.Annotation.var "data"))
1012
+ )
1013
+ , ( "pages"
1014
+ , throwableTask
1015
+ (Elm.Annotation.list (Elm.Annotation.named [] "RouteParams"))
1016
+ )
1017
+ , ( "head"
1018
+ , Elm.Annotation.function
1019
+ [ Elm.Annotation.namedWith
1020
+ [ "RouteBuilder" ]
1021
+ "StaticPayload"
1022
+ [ Elm.Annotation.var "data"
1023
+ , Elm.Annotation.var "action"
1024
+ , Elm.Annotation.var "routeParams"
1025
+ ]
1026
+ ]
1027
+ (Elm.Annotation.list
1028
+ (Elm.Annotation.namedWith [ "Head" ] "Tag" [])
1029
+ )
1030
+ )
1031
+ ]
1032
+ ]
1033
+ (Elm.Annotation.namedWith
1034
+ [ "RouteBuilder" ]
1035
+ "Builder"
1036
+ [ Elm.Annotation.named [] "RouteParams"
1037
+ , Elm.Annotation.named [] "Data"
1038
+ , Elm.Annotation.named [] "Action"
1039
+ ]
1040
+ )
1041
+ )
1042
+ }
1043
+ )
1044
+ [ Elm.record
1045
+ [ Tuple.pair "data" (Elm.functionReduced "serverRenderUnpack" serverRenderArg.data)
1046
+ , Tuple.pair "pages" serverRenderArg.pages
1047
+ , Tuple.pair "head" (Elm.functionReduced "serverRenderUnpack" serverRenderArg.head)
1048
+ ]
1049
+ ]
1050
+
1051
+
1052
+ single_ :
1053
+ { data : Elm.Expression
1054
+ , head : Elm.Expression -> Elm.Expression
1055
+ }
1056
+ -> Elm.Expression
1057
+ single_ serverRenderArg =
1058
+ Elm.apply
1059
+ (Elm.value
1060
+ { importFrom = [ "RouteBuilder" ]
1061
+ , name = "single"
1062
+ , annotation =
1063
+ Just
1064
+ (Elm.Annotation.function
1065
+ [ Elm.Annotation.record
1066
+ [ ( "data"
1067
+ , throwableTask (Elm.Annotation.var "data")
1068
+ )
1069
+ , ( "head"
1070
+ , Elm.Annotation.function
1071
+ [ Elm.Annotation.namedWith
1072
+ [ "RouteBuilder" ]
1073
+ "StaticPayload"
1074
+ [ Elm.Annotation.var "data"
1075
+ , Elm.Annotation.var "action"
1076
+ , Elm.Annotation.var "routeParams"
1077
+ ]
1078
+ ]
1079
+ (Elm.Annotation.list
1080
+ (Elm.Annotation.namedWith [ "Head" ] "Tag" [])
1081
+ )
1082
+ )
1083
+ ]
1084
+ ]
1085
+ (Elm.Annotation.namedWith
1086
+ [ "RouteBuilder" ]
1087
+ "Builder"
1088
+ [ Elm.Annotation.named [] "RouteParams"
1089
+ , Elm.Annotation.named [] "Data"
1090
+ , Elm.Annotation.named [] "Action"
1091
+ ]
1092
+ )
1093
+ )
1094
+ }
1095
+ )
1096
+ [ Elm.record
1097
+ [ Tuple.pair "data" serverRenderArg.data
1098
+ , Tuple.pair "head" (Elm.functionReduced "serverRenderUnpack" serverRenderArg.head)
1099
+ ]
1100
+ ]
1101
+
1102
+
1103
+ buildWithLocalState_ :
1104
+ { view :
1105
+ Elm.Expression
1106
+ -> Elm.Expression
1107
+ -> Elm.Expression
1108
+ -> Elm.Expression
1109
+ -> Elm.Expression
1110
+ , init :
1111
+ Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression
1112
+ , update :
1113
+ Elm.Expression
1114
+ -> Elm.Expression
1115
+ -> Elm.Expression
1116
+ -> Elm.Expression
1117
+ -> Elm.Expression
1118
+ -> Elm.Expression
1119
+ , subscriptions :
1120
+ Elm.Expression
1121
+ -> Elm.Expression
1122
+ -> Elm.Expression
1123
+ -> Elm.Expression
1124
+ -> Elm.Expression
1125
+ -> Elm.Expression
1126
+ , state : State
1127
+ }
1128
+ -> Elm.Expression
1129
+ -> Elm.Expression
1130
+ buildWithLocalState_ buildWithLocalStateArg buildWithLocalStateArg0 =
1131
+ Elm.apply
1132
+ (Elm.value
1133
+ { importFrom = [ "RouteBuilder" ]
1134
+ , name =
1135
+ case buildWithLocalStateArg.state of
1136
+ LocalState ->
1137
+ "buildWithLocalState"
1138
+
1139
+ SharedState ->
1140
+ "buildWithSharedState"
1141
+ , annotation =
1142
+ Just
1143
+ (Elm.Annotation.function
1144
+ [ Elm.Annotation.record
1145
+ [ ( "view"
1146
+ , Elm.Annotation.function
1147
+ [ Elm.Annotation.maybe
1148
+ (Elm.Annotation.namedWith
1149
+ [ "Pages", "PageUrl" ]
1150
+ "PageUrl"
1151
+ []
1152
+ )
1153
+ , Elm.Annotation.namedWith [ "Shared" ] "Model" []
1154
+ , Elm.Annotation.var "model"
1155
+ , Elm.Annotation.namedWith
1156
+ [ "RouteBuilder" ]
1157
+ "StaticPayload"
1158
+ [ Elm.Annotation.var "data"
1159
+ , Elm.Annotation.var "action"
1160
+ , Elm.Annotation.var "routeParams"
1161
+ ]
1162
+ ]
1163
+ (Elm.Annotation.namedWith
1164
+ [ "View" ]
1165
+ "View"
1166
+ [ Elm.Annotation.namedWith
1167
+ [ "Pages", "Msg" ]
1168
+ "Msg"
1169
+ [ Elm.Annotation.var "msg" ]
1170
+ ]
1171
+ )
1172
+ )
1173
+ , ( "init"
1174
+ , Elm.Annotation.function
1175
+ [ Elm.Annotation.maybe
1176
+ (Elm.Annotation.namedWith
1177
+ [ "Pages", "PageUrl" ]
1178
+ "PageUrl"
1179
+ []
1180
+ )
1181
+ , Elm.Annotation.namedWith [ "Shared" ] "Model" []
1182
+ , Elm.Annotation.namedWith
1183
+ [ "RouteBuilder" ]
1184
+ "StaticPayload"
1185
+ [ Elm.Annotation.var "data"
1186
+ , Elm.Annotation.var "action"
1187
+ , Elm.Annotation.var "routeParams"
1188
+ ]
1189
+ ]
1190
+ (Elm.Annotation.tuple
1191
+ (Elm.Annotation.named [] "Model")
1192
+ (Elm.Annotation.namedWith
1193
+ [ "Effect" ]
1194
+ "Effect"
1195
+ [ Elm.Annotation.named [] "Msg" ]
1196
+ )
1197
+ )
1198
+ )
1199
+ , ( "update"
1200
+ , Elm.Annotation.function
1201
+ [ Elm.Annotation.namedWith
1202
+ [ "Pages", "PageUrl" ]
1203
+ "PageUrl"
1204
+ []
1205
+ , Elm.Annotation.namedWith [ "Shared" ] "Model" []
1206
+ , Elm.Annotation.namedWith
1207
+ [ "RouteBuilder" ]
1208
+ "StaticPayload"
1209
+ [ localType "Data"
1210
+ , localType "ActionData"
1211
+ , localType "RouteParams"
1212
+ ]
1213
+ , Elm.Annotation.named [] "Msg"
1214
+ , Elm.Annotation.named [] "Model"
1215
+ ]
1216
+ (case buildWithLocalStateArg.state of
1217
+ LocalState ->
1218
+ Elm.Annotation.tuple
1219
+ (localType "Model")
1220
+ (Elm.Annotation.namedWith
1221
+ [ "Effect" ]
1222
+ "Effect"
1223
+ [ localType "Msg" ]
1224
+ )
1225
+
1226
+ SharedState ->
1227
+ Elm.Annotation.triple
1228
+ (localType "Model")
1229
+ (Elm.Annotation.namedWith
1230
+ [ "Effect" ]
1231
+ "Effect"
1232
+ [ localType "Msg" ]
1233
+ )
1234
+ (Elm.Annotation.maybe (Elm.Annotation.named [ "Shared" ] "Msg"))
1235
+ )
1236
+ )
1237
+ , ( "subscriptions"
1238
+ , Elm.Annotation.function
1239
+ [ Elm.Annotation.maybe
1240
+ (Elm.Annotation.namedWith
1241
+ [ "Pages", "PageUrl" ]
1242
+ "PageUrl"
1243
+ []
1244
+ )
1245
+ , Elm.Annotation.var "routeParams"
1246
+ , Elm.Annotation.namedWith [ "Path" ] "Path" []
1247
+ , Elm.Annotation.namedWith [ "Shared" ] "Model" []
1248
+ , Elm.Annotation.var "model"
1249
+ ]
1250
+ (Elm.Annotation.namedWith [] "Sub" [ localType "Msg" ])
1251
+ )
1252
+ ]
1253
+ , Elm.Annotation.namedWith
1254
+ [ "RouteBuilder" ]
1255
+ "Builder"
1256
+ [ localType "RouteParams"
1257
+ , localType "Data"
1258
+ , localType "ActionData"
1259
+ ]
1260
+ ]
1261
+ (Elm.Annotation.namedWith
1262
+ [ "RouteBuilder" ]
1263
+ "StatefulRoute"
1264
+ [ localType "RouteParams"
1265
+ , localType "Data"
1266
+ , localType "ActionData"
1267
+ , localType "Model"
1268
+ , localType "Msg"
1269
+ ]
1270
+ )
1271
+ )
1272
+ }
1273
+ )
1274
+ [ Elm.record
1275
+ [ Tuple.pair
1276
+ "view"
1277
+ (Elm.functionReduced
1278
+ "buildWithLocalStateUnpack"
1279
+ (\functionReducedUnpack ->
1280
+ Elm.functionReduced
1281
+ "unpack"
1282
+ (\functionReducedUnpack0 ->
1283
+ Elm.functionReduced
1284
+ "unpack"
1285
+ (\functionReducedUnpack_2_1_2_0_2_2_0_1_0_2_0_0 ->
1286
+ Elm.functionReduced
1287
+ "unpack"
1288
+ (buildWithLocalStateArg.view
1289
+ functionReducedUnpack
1290
+ functionReducedUnpack0
1291
+ functionReducedUnpack_2_1_2_0_2_2_0_1_0_2_0_0
1292
+ )
1293
+ )
1294
+ )
1295
+ )
1296
+ )
1297
+ , Tuple.pair
1298
+ "init"
1299
+ (Elm.functionReduced
1300
+ "buildWithLocalStateUnpack"
1301
+ (\functionReducedUnpack ->
1302
+ Elm.functionReduced
1303
+ "unpack"
1304
+ (\functionReducedUnpack0 ->
1305
+ Elm.functionReduced
1306
+ "unpack"
1307
+ (buildWithLocalStateArg.init
1308
+ functionReducedUnpack
1309
+ functionReducedUnpack0
1310
+ )
1311
+ )
1312
+ )
1313
+ )
1314
+ , Tuple.pair
1315
+ "update"
1316
+ (Elm.functionReduced
1317
+ "buildWithLocalStateUnpack"
1318
+ (\functionReducedUnpack ->
1319
+ Elm.functionReduced
1320
+ "unpack"
1321
+ (\functionReducedUnpack0 ->
1322
+ Elm.functionReduced
1323
+ "unpack"
1324
+ (\functionReducedUnpack_2_1_2_0_2_2_2_1_0_2_0_0 ->
1325
+ Elm.functionReduced
1326
+ "unpack"
1327
+ (\functionReducedUnpack_2_1_2_1_2_0_2_2_2_1_0_2_0_0 ->
1328
+ Elm.functionReduced
1329
+ "unpack"
1330
+ (buildWithLocalStateArg.update
1331
+ functionReducedUnpack
1332
+ functionReducedUnpack0
1333
+ functionReducedUnpack_2_1_2_0_2_2_2_1_0_2_0_0
1334
+ functionReducedUnpack_2_1_2_1_2_0_2_2_2_1_0_2_0_0
1335
+ )
1336
+ )
1337
+ )
1338
+ )
1339
+ )
1340
+ )
1341
+ , Tuple.pair
1342
+ "subscriptions"
1343
+ (Elm.functionReduced
1344
+ "buildWithLocalStateUnpack"
1345
+ (\functionReducedUnpack ->
1346
+ Elm.functionReduced
1347
+ "unpack"
1348
+ (\functionReducedUnpack0 ->
1349
+ Elm.functionReduced
1350
+ "unpack"
1351
+ (\functionReducedUnpack_2_1_2_0_2_2_3_1_0_2_0_0 ->
1352
+ Elm.functionReduced
1353
+ "unpack"
1354
+ (\functionReducedUnpack_2_1_2_1_2_0_2_2_3_1_0_2_0_0 ->
1355
+ Elm.functionReduced
1356
+ "unpack"
1357
+ (buildWithLocalStateArg.subscriptions
1358
+ functionReducedUnpack
1359
+ functionReducedUnpack0
1360
+ functionReducedUnpack_2_1_2_0_2_2_3_1_0_2_0_0
1361
+ functionReducedUnpack_2_1_2_1_2_0_2_2_3_1_0_2_0_0
1362
+ )
1363
+ )
1364
+ )
1365
+ )
1366
+ )
1367
+ )
1368
+ ]
1369
+ , buildWithLocalStateArg0
1370
+ ]
1371
+
1372
+
1373
+ buildNoState_ :
1374
+ { view :
1375
+ Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression
1376
+ }
1377
+ -> Elm.Expression
1378
+ -> Elm.Expression
1379
+ buildNoState_ buildNoStateArg buildNoStateArg0 =
1380
+ Elm.apply
1381
+ (Elm.value
1382
+ { importFrom = [ "RouteBuilder" ]
1383
+ , name = "buildNoState"
1384
+ , annotation =
1385
+ Just
1386
+ (Elm.Annotation.function
1387
+ [ Elm.Annotation.record
1388
+ [ ( "view"
1389
+ , Elm.Annotation.function
1390
+ [ Elm.Annotation.maybe
1391
+ (Elm.Annotation.namedWith
1392
+ [ "Pages", "PageUrl" ]
1393
+ "PageUrl"
1394
+ []
1395
+ )
1396
+ , Elm.Annotation.namedWith [ "Shared" ] "Model" []
1397
+ , Elm.Annotation.namedWith
1398
+ [ "RouteBuilder" ]
1399
+ "StaticPayload"
1400
+ [ Elm.Annotation.named [] "Data"
1401
+ , Elm.Annotation.named [] "ActionData"
1402
+ , Elm.Annotation.named [] "RouteParams"
1403
+ ]
1404
+ ]
1405
+ (Elm.Annotation.namedWith
1406
+ [ "View" ]
1407
+ "View"
1408
+ [ Elm.Annotation.namedWith
1409
+ [ "Pages", "Msg" ]
1410
+ "Msg"
1411
+ [ Elm.Annotation.unit ]
1412
+ ]
1413
+ )
1414
+ )
1415
+ ]
1416
+ , Elm.Annotation.namedWith
1417
+ [ "RouteBuilder" ]
1418
+ "Builder"
1419
+ [ Elm.Annotation.named [] "RouteParams"
1420
+ , Elm.Annotation.named [] "Data"
1421
+ , Elm.Annotation.named [] "ActionData"
1422
+ ]
1423
+ ]
1424
+ (Elm.Annotation.namedWith
1425
+ [ "RouteBuilder" ]
1426
+ "StatefulRoute"
1427
+ [ Elm.Annotation.named [] "RouteParams"
1428
+ , Elm.Annotation.named [] "Data"
1429
+ , Elm.Annotation.named [] "ActionData"
1430
+ , Elm.Annotation.record []
1431
+ , Elm.Annotation.unit
1432
+ ]
1433
+ )
1434
+ )
1435
+ }
1436
+ )
1437
+ [ Elm.record
1438
+ [ Tuple.pair
1439
+ "view"
1440
+ (Elm.functionReduced
1441
+ "buildNoStateUnpack"
1442
+ (\functionReducedUnpack ->
1443
+ Elm.functionReduced
1444
+ "unpack"
1445
+ (\functionReducedUnpack0 ->
1446
+ Elm.functionReduced
1447
+ "unpack"
1448
+ (buildNoStateArg.view functionReducedUnpack
1449
+ functionReducedUnpack0
1450
+ )
1451
+ )
1452
+ )
1453
+ )
1454
+ ]
1455
+ , buildNoStateArg0
1456
+ ]
1457
+
1458
+
1459
+ effectType : Elm.Annotation.Annotation
1460
+ effectType =
1461
+ Elm.Annotation.namedWith
1462
+ [ "Effect" ]
1463
+ "Effect"
1464
+ [ Elm.Annotation.named [] "Msg" ]
1465
+
1466
+
1467
+ throwableTask : Elm.Annotation.Annotation -> Elm.Annotation.Annotation
1468
+ throwableTask dataType =
1469
+ Elm.Annotation.namedWith [ "BackendTask" ]
1470
+ "BackendTask"
1471
+ [ Elm.Annotation.named [ "FatalError" ] "FatalError"
1472
+ , dataType
1473
+ ]