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
@@ -45,11 +45,6 @@ import Time
45
45
  import Url exposing (Url)
46
46
 
47
47
 
48
- type Transition
49
- = Loading Int Path
50
- | Submitting FormData
51
-
52
-
53
48
  {-| -}
54
49
  type alias Program userModel userMsg pageData actionData sharedData errorPage =
55
50
  Platform.Program Flags (Model userModel pageData actionData sharedData) (Msg userMsg pageData actionData sharedData errorPage)
@@ -316,13 +311,18 @@ type Msg userMsg pageData actionData sharedData errorPage
316
311
  | UserMsg (Pages.Msg.Msg userMsg)
317
312
  | SetField { formId : String, name : String, value : String }
318
313
  | UpdateCacheAndUrlNew Bool Url (Maybe userMsg) (Result Http.Error ( Url, ResponseSketch pageData actionData sharedData ))
319
- | FetcherComplete Bool String Int (Result Http.Error ( Maybe userMsg, Maybe actionData ))
314
+ | FetcherComplete Bool String Int (Result Http.Error ( Maybe userMsg, ActionDataOrRedirect actionData ))
320
315
  | FetcherStarted String Int FormData Time.Posix
321
316
  | PageScrollComplete
322
317
  | HotReloadCompleteNew Bytes
323
318
  | ProcessFetchResponse Int (Result Http.Error ( Url, ResponseSketch pageData actionData sharedData )) (Result Http.Error ( Url, ResponseSketch pageData actionData sharedData ) -> Msg userMsg pageData actionData sharedData errorPage)
324
319
 
325
320
 
321
+ type ActionDataOrRedirect action
322
+ = ActionResponse (Maybe action)
323
+ | RedirectResponse String
324
+
325
+
326
326
  {-| -}
327
327
  type alias Model userModel pageData actionData sharedData =
328
328
  { key : Maybe Browser.Navigation.Key
@@ -423,46 +423,57 @@ update config appMsg model =
423
423
  )
424
424
 
425
425
  else
426
- ( { model
427
- | url = url
428
- }
426
+ ( model
429
427
  , NoEffect
430
428
  )
431
429
  -- TODO is it reasonable to always re-fetch route data if you re-navigate to the current route? Might be a good
432
430
  -- parallel to the browser behavior
433
431
  |> startNewGetLoad url (UpdateCacheAndUrlNew True url Nothing)
434
432
 
435
- FetcherComplete forPageReload fetcherKey transitionId___ userMsgResult ->
433
+ FetcherComplete _ fetcherKey _ userMsgResult ->
436
434
  case userMsgResult of
437
- Ok ( userMsg, maybeFetcherDoneActionData ) ->
438
- ( { model
439
- | inFlightFetchers =
440
- model.inFlightFetchers
441
- |> Dict.update fetcherKey
442
- (Maybe.map
443
- (\( transitionId, fetcherState ) ->
444
- ( transitionId
445
- , { fetcherState
446
- | status =
447
- maybeFetcherDoneActionData
448
- |> Maybe.map Pages.Transition.FetcherReloading
449
- -- TODO remove this bad default, FetcherSubmitting is incorrect
450
- |> Maybe.withDefault Pages.Transition.FetcherSubmitting
451
- }
435
+ Ok ( userMsg, actionOrRedirect ) ->
436
+ case actionOrRedirect of
437
+ ActionResponse maybeFetcherDoneActionData ->
438
+ ( { model
439
+ | inFlightFetchers =
440
+ model.inFlightFetchers
441
+ |> Dict.update fetcherKey
442
+ (Maybe.map
443
+ (\( transitionId, fetcherState ) ->
444
+ ( transitionId
445
+ , { fetcherState
446
+ | status =
447
+ maybeFetcherDoneActionData
448
+ |> Maybe.map Pages.Transition.FetcherReloading
449
+ -- TODO remove this bad default, FetcherSubmitting is incorrect
450
+ |> Maybe.withDefault Pages.Transition.FetcherSubmitting
451
+ }
452
+ )
453
+ )
452
454
  )
453
- )
454
- )
455
- }
456
- , NoEffect
457
- )
458
- |> (case userMsg of
459
- Just justUserMsg ->
460
- performUserMsg justUserMsg config
461
-
462
- Nothing ->
463
- identity
464
- )
465
- |> startNewGetLoad (currentUrlWithPath model.url.path model) (UpdateCacheAndUrlNew False model.url Nothing)
455
+ }
456
+ , NoEffect
457
+ )
458
+ |> (case userMsg of
459
+ Just justUserMsg ->
460
+ performUserMsg justUserMsg config
461
+
462
+ Nothing ->
463
+ identity
464
+ )
465
+ |> startNewGetLoad (currentUrlWithPath model.url.path model) (UpdateCacheAndUrlNew False model.url Nothing)
466
+
467
+ RedirectResponse redirectTo ->
468
+ ( { model
469
+ | inFlightFetchers =
470
+ model.inFlightFetchers
471
+ |> Dict.remove fetcherKey
472
+ , pendingRedirect = True
473
+ }
474
+ , NoEffect
475
+ )
476
+ |> startNewGetLoad (currentUrlWithPath redirectTo model) (UpdateCacheAndUrlNew False model.url Nothing)
466
477
 
467
478
  Err _ ->
468
479
  -- TODO how to handle error?
@@ -605,27 +616,32 @@ update config appMsg model =
605
616
  , actionData = newActionData
606
617
  }
607
618
 
608
- ( userModel, _ ) =
619
+ ( userModel, userEffect ) =
609
620
  -- TODO if urlWithoutRedirectResolution is different from the url with redirect resolution, then
610
621
  -- instead of calling update, call pushUrl (I think?)
611
622
  -- TODO include user Cmd
612
- config.update model.pageFormState
613
- (model.inFlightFetchers |> toFetcherState)
614
- (model.transition |> Maybe.map Tuple.second)
615
- newSharedData
616
- newPageData
617
- model.key
618
- (config.onPageChange
619
- { protocol = model.url.protocol
620
- , host = model.url.host
621
- , port_ = model.url.port_
622
- , path = urlPathToPath urlWithoutRedirectResolution
623
- , query = urlWithoutRedirectResolution.query
624
- , fragment = urlWithoutRedirectResolution.fragment
625
- , metadata = config.urlToRoute urlWithoutRedirectResolution
626
- }
627
- )
628
- previousPageData.userModel
623
+ if stayingOnSamePath then
624
+ ( previousPageData.userModel, NoEffect )
625
+
626
+ else
627
+ config.update model.pageFormState
628
+ (model.inFlightFetchers |> toFetcherState)
629
+ (model.transition |> Maybe.map Tuple.second)
630
+ newSharedData
631
+ newPageData
632
+ model.key
633
+ (config.onPageChange
634
+ { protocol = model.url.protocol
635
+ , host = model.url.host
636
+ , port_ = model.url.port_
637
+ , path = urlPathToPath urlWithoutRedirectResolution
638
+ , query = urlWithoutRedirectResolution.query
639
+ , fragment = urlWithoutRedirectResolution.fragment
640
+ , metadata = config.urlToRoute urlWithoutRedirectResolution
641
+ }
642
+ )
643
+ previousPageData.userModel
644
+ |> Tuple.mapSecond UserCmd
629
645
 
630
646
  updatedModel : Model userModel pageData actionData sharedData
631
647
  updatedModel =
@@ -656,10 +672,13 @@ update config appMsg model =
656
672
  , currentPath = newUrl.path
657
673
  }
658
674
  , if not stayingOnSamePath && scrollToTopWhenDone then
659
- ScrollToTop
675
+ Batch
676
+ [ ScrollToTop
677
+ , userEffect
678
+ ]
660
679
 
661
680
  else
662
- NoEffect
681
+ userEffect
663
682
  )
664
683
  |> (case maybeUserMsg of
665
684
  Just userMsg ->
@@ -679,10 +698,10 @@ update config appMsg model =
679
698
  Err _ ->
680
699
  {-
681
700
  When there is an error loading the content.dat, we are either
682
- 1) in the dev server, and should show the relevant DataSource error for the page
701
+ 1) in the dev server, and should show the relevant BackendTask error for the page
683
702
  we're navigating to. This could be done more cleanly, but it's simplest to just
684
703
  do a fresh page load and use the code path for presenting an error for a fresh page.
685
- 2) In a production app. That means we had a successful build, so there were no DataSource failures,
704
+ 2) In a production app. That means we had a successful build, so there were no BackendTask failures,
686
705
  so the app must be stale (unless it's in some unexpected state from a bug). In the future,
687
706
  it probably makes sense to include some sort of hash of the app version we are fetching, match
688
707
  it with the current version that's running, and perform this logic when we see there is a mismatch.
@@ -766,7 +785,7 @@ update config appMsg model =
766
785
  toFetcherState : Dict String ( Int, Pages.Transition.FetcherState actionData ) -> Dict String (Pages.Transition.FetcherState actionData)
767
786
  toFetcherState inFlightFetchers =
768
787
  inFlightFetchers
769
- |> Dict.map (\_ ( index, fetcherState ) -> fetcherState)
788
+ |> Dict.map (\_ ( _, fetcherState ) -> fetcherState)
770
789
 
771
790
 
772
791
  performUserMsg :
@@ -828,7 +847,7 @@ perform config model effect =
828
847
  |> Maybe.withDefault Cmd.none
829
848
 
830
849
  FetchPageData transitionKey maybeRequestInfo url toMsg ->
831
- fetchRouteData True transitionKey toMsg config url maybeRequestInfo
850
+ fetchRouteData transitionKey toMsg config url maybeRequestInfo
832
851
 
833
852
  Submit fields ->
834
853
  if fields.method == Get then
@@ -843,7 +862,7 @@ perform config model effect =
843
862
  -- TODO add optional path parameter to Submit variant to allow submitting to other routes
844
863
  model.url
845
864
  in
846
- fetchRouteData False -1 (UpdateCacheAndUrlNew False model.url Nothing) config urlToSubmitTo (Just fields)
865
+ fetchRouteData -1 (UpdateCacheAndUrlNew False model.url Nothing) config urlToSubmitTo (Just fields)
847
866
 
848
867
  SubmitFetcher fetcherKey transitionId formData ->
849
868
  startFetcher2 config False fetcherKey transitionId formData model
@@ -863,7 +882,7 @@ perform config model effect =
863
882
  |> config.perform
864
883
  { fetchRouteData =
865
884
  \fetchInfo ->
866
- fetchRouteData False
885
+ fetchRouteData
867
886
  -1
868
887
  (prepare fetchInfo.toMsg)
869
888
  config
@@ -873,7 +892,7 @@ perform config model effect =
873
892
  ---- TODO map the Msg with the wrapper type (like in the PR branch)
874
893
  , submit =
875
894
  \fetchInfo ->
876
- fetchRouteData False -1 (prepare fetchInfo.toMsg) config (fetchInfo.values.action |> Url.fromString |> Maybe.withDefault model.url) (Just fetchInfo.values)
895
+ fetchRouteData -1 (prepare fetchInfo.toMsg) config (fetchInfo.values.action |> Url.fromString |> Maybe.withDefault model.url) (Just fetchInfo.values)
877
896
  , runFetcher =
878
897
  \(Pages.Fetcher.Fetcher options) ->
879
898
  -- TODO need to get the fetcherId here
@@ -927,10 +946,10 @@ startFetcher fetcherKey transitionId options model =
927
946
  Http.expectBytesResponse (FetcherComplete False fetcherKey model.nextTransitionKey)
928
947
  (\bytes ->
929
948
  case bytes of
930
- Http.GoodStatus_ metadata bytesBody ->
949
+ Http.GoodStatus_ _ bytesBody ->
931
950
  ( options.decoder (Ok bytesBody)
932
951
  |> Just
933
- , Nothing
952
+ , ActionResponse Nothing
934
953
  )
935
954
  |> Ok
936
955
 
@@ -943,7 +962,7 @@ startFetcher fetcherKey transitionId options model =
943
962
  Http.NetworkError_ ->
944
963
  Err <| Http.NetworkError
945
964
 
946
- Http.BadStatus_ metadata body ->
965
+ Http.BadStatus_ metadata _ ->
947
966
  Err <| Http.BadStatus metadata.statusCode
948
967
  )
949
968
  , tracker = Nothing
@@ -974,7 +993,7 @@ startFetcher2 config fromPageReload fetcherKey transitionId formData model =
974
993
  Cmd.batch
975
994
  [ cancelStaleFetchers model
976
995
  , case Dict.get fetcherKey model.inFlightFetchers of
977
- Just ( inFlightId, inFlightFetcher ) ->
996
+ Just ( inFlightId, _ ) ->
978
997
  Http.cancel (String.fromInt inFlightId)
979
998
 
980
999
  Nothing ->
@@ -985,22 +1004,25 @@ startFetcher2 config fromPageReload fetcherKey transitionId formData model =
985
1004
  Http.expectBytesResponse (FetcherComplete fromPageReload fetcherKey model.nextTransitionKey)
986
1005
  (\bytes ->
987
1006
  case bytes of
988
- Http.GoodStatus_ metadata bytesBody ->
1007
+ Http.GoodStatus_ _ bytesBody ->
989
1008
  let
990
- decodedAction : Maybe actionData
1009
+ decodedAction : ActionDataOrRedirect actionData
991
1010
  decodedAction =
992
1011
  case Bytes.Decode.decode config.decodeResponse bytesBody of
1012
+ Just (ResponseSketch.Redirect redirectTo) ->
1013
+ RedirectResponse redirectTo
1014
+
993
1015
  Just (ResponseSketch.RenderPage _ maybeAction) ->
994
- maybeAction
1016
+ ActionResponse maybeAction
995
1017
 
996
- Just (ResponseSketch.HotUpdate pageData shared maybeAction) ->
997
- maybeAction
1018
+ Just (ResponseSketch.HotUpdate _ _ maybeAction) ->
1019
+ ActionResponse maybeAction
998
1020
 
999
- Just (ResponseSketch.NotFound notFound) ->
1000
- Nothing
1021
+ Just (ResponseSketch.NotFound _) ->
1022
+ ActionResponse Nothing
1001
1023
 
1002
1024
  _ ->
1003
- Nothing
1025
+ ActionResponse Nothing
1004
1026
  in
1005
1027
  -- TODO maybe have an optional way to pass the bytes through?
1006
1028
  Ok ( Nothing, decodedAction )
@@ -1014,7 +1036,7 @@ startFetcher2 config fromPageReload fetcherKey transitionId formData model =
1014
1036
  Http.NetworkError_ ->
1015
1037
  Err <| Http.NetworkError
1016
1038
 
1017
- Http.BadStatus_ metadata body ->
1039
+ Http.BadStatus_ metadata _ ->
1018
1040
  Err <| Http.BadStatus metadata.statusCode
1019
1041
  )
1020
1042
  , tracker = Just (String.fromInt transitionId)
@@ -1036,7 +1058,7 @@ cancelStaleFetchers model =
1036
1058
  model.inFlightFetchers
1037
1059
  |> Dict.toList
1038
1060
  |> List.filterMap
1039
- (\( fetcherKey, ( id, fetcher ) ) ->
1061
+ (\( _, ( id, fetcher ) ) ->
1040
1062
  case fetcher.status of
1041
1063
  Pages.Transition.FetcherReloading _ ->
1042
1064
  Http.cancel (String.fromInt id)
@@ -1157,14 +1179,13 @@ urlPathToPath urls =
1157
1179
 
1158
1180
 
1159
1181
  fetchRouteData :
1160
- Bool
1161
- -> Int
1182
+ Int
1162
1183
  -> (Result Http.Error ( Url, ResponseSketch pageData actionData sharedData ) -> Msg userMsg pageData actionData sharedData errorPage)
1163
1184
  -> ProgramConfig userMsg userModel route pageData actionData sharedData effect (Msg userMsg pageData actionData sharedData errorPage) errorPage
1164
1185
  -> Url
1165
1186
  -> Maybe FormData
1166
1187
  -> Cmd (Msg userMsg pageData actionData sharedData errorPage)
1167
- fetchRouteData forPageDataReload transitionKey toMsg config url details =
1188
+ fetchRouteData transitionKey toMsg config url details =
1168
1189
  {-
1169
1190
  TODO:
1170
1191
  - [X] `toMsg` needs a parameter for the callback Msg so it can pass it on if there is a Redirect response
@@ -1251,7 +1272,7 @@ fetchRouteData forPageDataReload transitionKey toMsg config url details =
1251
1272
  Http.NetworkError_ ->
1252
1273
  Err Http.NetworkError
1253
1274
 
1254
- Http.BadStatus_ metadata body ->
1275
+ Http.BadStatus_ _ body ->
1255
1276
  body
1256
1277
  |> Bytes.Decode.decode config.decodeResponse
1257
1278
  |> Result.fromMaybe "Decoding error"
@@ -1303,7 +1324,7 @@ startNewGetLoad urlToGet toMsg ( model, effect ) =
1303
1324
  cancelIfStale : Effect userMsg pageData actionData sharedData userEffect errorPage
1304
1325
  cancelIfStale =
1305
1326
  case model.transition of
1306
- Just ( transitionKey, Pages.Transition.Loading path loadingKind ) ->
1327
+ Just ( transitionKey, Pages.Transition.Loading _ _ ) ->
1307
1328
  CancelRequest transitionKey
1308
1329
 
1309
1330
  _ ->
@@ -1314,13 +1335,13 @@ startNewGetLoad urlToGet toMsg ( model, effect ) =
1314
1335
  , transition =
1315
1336
  ( model.nextTransitionKey
1316
1337
  , case model.transition of
1317
- Just ( transitionKey, Pages.Transition.LoadAfterSubmit submitData _ _ ) ->
1338
+ Just ( _, Pages.Transition.LoadAfterSubmit submitData _ _ ) ->
1318
1339
  Pages.Transition.LoadAfterSubmit
1319
1340
  submitData
1320
1341
  (urlToGet.path |> Path.fromString)
1321
1342
  Pages.Transition.Load
1322
1343
 
1323
- Just ( transitionKey, Pages.Transition.Submitting submitData ) ->
1344
+ Just ( _, Pages.Transition.Submitting submitData ) ->
1324
1345
  Pages.Transition.LoadAfterSubmit
1325
1346
  submitData
1326
1347
  (urlToGet.path |> Path.fromString)
@@ -1392,6 +1413,7 @@ loadDataAndUpdateUrl ( newPageData, newSharedData, newActionData ) maybeUserMsg
1392
1413
  , actionData = newActionData
1393
1414
  }
1394
1415
 
1416
+ -- TODO use userEffect here?
1395
1417
  ( userModel, _ ) =
1396
1418
  -- TODO if urlWithoutRedirectResolution is different from the url with redirect resolution, then
1397
1419
  -- instead of calling update, call pushUrl (I think?)
@@ -1467,10 +1489,10 @@ loadDataAndUpdateUrl ( newPageData, newSharedData, newActionData ) maybeUserMsg
1467
1489
  Err _ ->
1468
1490
  {-
1469
1491
  When there is an error loading the content.dat, we are either
1470
- 1) in the dev server, and should show the relevant DataSource error for the page
1492
+ 1) in the dev server, and should show the relevant BackendTask error for the page
1471
1493
  we're navigating to. This could be done more cleanly, but it's simplest to just
1472
1494
  do a fresh page load and use the code path for presenting an error for a fresh page.
1473
- 2) In a production app. That means we had a successful build, so there were no DataSource failures,
1495
+ 2) In a production app. That means we had a successful build, so there were no BackendTask failures,
1474
1496
  so the app must be stale (unless it's in some unexpected state from a bug). In the future,
1475
1497
  it probably makes sense to include some sort of hash of the app version we are fetching, match
1476
1498
  it with the current version that's running, and perform this logic when we see there is a mismatch.
@@ -0,0 +1,17 @@
1
+ module Pages.Internal.Script exposing (Script(..))
2
+
3
+ import BackendTask exposing (BackendTask)
4
+ import Cli.Program as Program
5
+ import FatalError exposing (FatalError)
6
+ import Html exposing (Html)
7
+
8
+
9
+ {-| -}
10
+ type Script
11
+ = Script
12
+ ((Maybe { indent : Int, newLines : Bool }
13
+ -> Html Never
14
+ -> String
15
+ )
16
+ -> Program.Config (BackendTask FatalError ())
17
+ )
@@ -1,6 +1,9 @@
1
1
  module Pages.Internal.StaticHttpBody exposing (Body(..), codec, encode)
2
2
 
3
+ import Base64
4
+ import Bytes exposing (Bytes)
3
5
  import Codec exposing (Codec)
6
+ import Json.Decode
4
7
  import Json.Encode as Encode
5
8
 
6
9
 
@@ -8,6 +11,7 @@ type Body
8
11
  = EmptyBody
9
12
  | StringBody String String
10
13
  | JsonBody Encode.Value
14
+ | BytesBody String Bytes
11
15
 
12
16
 
13
17
  encode : Body -> Encode.Value
@@ -26,6 +30,15 @@ encode body =
26
30
  [ ( "content", content )
27
31
  ]
28
32
 
33
+ BytesBody _ content ->
34
+ encodeWithType "bytes"
35
+ [ ( "content"
36
+ , Base64.fromBytes content
37
+ |> Maybe.withDefault ""
38
+ |> Encode.string
39
+ )
40
+ ]
41
+
29
42
 
30
43
  encodeWithType : String -> List ( String, Encode.Value ) -> Encode.Value
31
44
  encodeWithType typeName otherFields =
@@ -37,7 +50,7 @@ encodeWithType typeName otherFields =
37
50
  codec : Codec Body
38
51
  codec =
39
52
  Codec.custom
40
- (\vEmpty vString vJson value ->
53
+ (\vEmpty vString vJson vBytes value ->
41
54
  case value of
42
55
  EmptyBody ->
43
56
  vEmpty
@@ -47,8 +60,29 @@ codec =
47
60
 
48
61
  JsonBody body ->
49
62
  vJson body
63
+
64
+ BytesBody contentType body ->
65
+ vBytes contentType body
50
66
  )
51
67
  |> Codec.variant0 "EmptyBody" EmptyBody
52
68
  |> Codec.variant2 "StringBody" StringBody Codec.string Codec.string
53
69
  |> Codec.variant1 "JsonBody" JsonBody Codec.value
70
+ |> Codec.variant2 "BytesBody" BytesBody Codec.string bytesCodec
54
71
  |> Codec.buildCustom
72
+
73
+
74
+ bytesCodec : Codec Bytes
75
+ bytesCodec =
76
+ Codec.build (Base64.fromBytes >> Maybe.withDefault "" >> Encode.string)
77
+ (Json.Decode.string
78
+ |> Json.Decode.map Base64.toBytes
79
+ |> Json.Decode.andThen
80
+ (\decodedBytes ->
81
+ case decodedBytes of
82
+ Just bytes ->
83
+ Json.Decode.succeed bytes
84
+
85
+ Nothing ->
86
+ Json.Decode.fail "Couldn't parse bytes."
87
+ )
88
+ )
@@ -2,6 +2,7 @@ module Pages.Manifest exposing
2
2
  ( Config, Icon
3
3
  , init
4
4
  , withBackgroundColor, withCategories, withDisplayMode, withIarcRatingId, withLang, withOrientation, withShortName, withThemeColor
5
+ , withField
5
6
  , DisplayMode(..), Orientation(..), IconPurpose(..)
6
7
  , generator
7
8
  , toJson
@@ -41,6 +42,11 @@ You pass your `Pages.Manifest.Config` record into the `Pages.application` functi
41
42
  @docs withBackgroundColor, withCategories, withDisplayMode, withIarcRatingId, withLang, withOrientation, withShortName, withThemeColor
42
43
 
43
44
 
45
+ ## Arbitrary Fields Escape Hatch
46
+
47
+ @docs withField
48
+
49
+
44
50
  ## Config options
45
51
 
46
52
  @docs DisplayMode, Orientation, IconPurpose
@@ -58,9 +64,11 @@ You pass your `Pages.Manifest.Config` record into the `Pages.application` functi
58
64
  -}
59
65
 
60
66
  import ApiRoute
67
+ import BackendTask exposing (BackendTask)
61
68
  import Color exposing (Color)
62
69
  import Color.Convert
63
- import DataSource exposing (DataSource)
70
+ import Dict exposing (Dict)
71
+ import FatalError exposing (FatalError)
64
72
  import Head
65
73
  import Json.Encode as Encode
66
74
  import LanguageTag exposing (LanguageTag, emptySubtags)
@@ -123,6 +131,7 @@ init options =
123
131
  , shortName = Nothing
124
132
  , icons = options.icons
125
133
  , lang = usEnglish
134
+ , otherFields = Dict.empty
126
135
  }
127
136
 
128
137
 
@@ -191,6 +200,17 @@ withLang languageTag config =
191
200
  { config | lang = languageTag }
192
201
 
193
202
 
203
+ {-| Escape hatch for specifying fields that aren't exposed through this module otherwise. The possible supported properties
204
+ in a manifest file can change over time, so see [MDN manifest.json docs](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json)
205
+ for a full listing of the current supported properties.
206
+ -}
207
+ withField : String -> Encode.Value -> Config -> Config
208
+ withField name value config =
209
+ { config
210
+ | otherFields = config.otherFields |> Dict.insert name value
211
+ }
212
+
213
+
194
214
  orientationToString : Orientation -> String
195
215
  orientationToString orientation =
196
216
  case orientation of
@@ -239,6 +259,7 @@ type alias Config =
239
259
  , shortName : Maybe String
240
260
  , icons : List Icon
241
261
  , lang : LanguageTag
262
+ , otherFields : Dict String Encode.Value
242
263
  }
243
264
 
244
265
 
@@ -324,16 +345,16 @@ nonEmptyList list =
324
345
 
325
346
  {-| A generator for Api.elm to include a manifest.json.
326
347
  -}
327
- generator : String -> DataSource Config -> ApiRoute.ApiRoute ApiRoute.Response
348
+ generator : String -> BackendTask FatalError Config -> ApiRoute.ApiRoute ApiRoute.Response
328
349
  generator canonicalSiteUrl config =
329
350
  ApiRoute.succeed
330
351
  (config
331
- |> DataSource.map (toJson canonicalSiteUrl >> Encode.encode 0)
352
+ |> BackendTask.map (toJson canonicalSiteUrl >> Encode.encode 0)
332
353
  )
333
354
  |> ApiRoute.literal "manifest.json"
334
355
  |> ApiRoute.single
335
356
  |> ApiRoute.withGlobalHeadTags
336
- (DataSource.succeed
357
+ (BackendTask.succeed
337
358
  [ Head.manifestLink "/manifest.json"
338
359
  ]
339
360
  )
@@ -420,6 +441,10 @@ toJson canonicalSiteUrl config =
420
441
  , Encode.string "/" |> Just
421
442
  )
422
443
  ]
444
+ ++ (config.otherFields
445
+ |> Dict.toList
446
+ |> List.map (Tuple.mapSecond Just)
447
+ )
423
448
  |> encodeMaybeObject
424
449
 
425
450
 
@@ -1,12 +1,13 @@
1
1
  module Pages.ProgramConfig exposing (ProgramConfig)
2
2
 
3
3
  import ApiRoute
4
+ import BackendTask exposing (BackendTask)
4
5
  import Browser.Navigation
5
6
  import Bytes exposing (Bytes)
6
7
  import Bytes.Decode
7
8
  import Bytes.Encode
8
- import DataSource exposing (DataSource)
9
9
  import Dict exposing (Dict)
10
+ import FatalError exposing (FatalError)
10
11
  import Form.FormData exposing (FormData)
11
12
  import Head
12
13
  import Html exposing (Html)
@@ -48,9 +49,9 @@ type alias ProgramConfig userMsg userModel route pageData actionData sharedData
48
49
  -> ( userModel, effect )
49
50
  , update : Pages.FormState.PageFormState -> Dict String (Pages.Transition.FetcherState actionData) -> Maybe Pages.Transition.Transition -> sharedData -> pageData -> Maybe Browser.Navigation.Key -> userMsg -> userModel -> ( userModel, effect )
50
51
  , subscriptions : route -> Path -> userModel -> Sub userMsg
51
- , sharedData : DataSource sharedData
52
- , data : route -> DataSource (PageServerResponse pageData errorPage)
53
- , action : route -> DataSource (PageServerResponse actionData errorPage)
52
+ , sharedData : BackendTask FatalError sharedData
53
+ , data : Decode.Value -> route -> BackendTask FatalError (PageServerResponse pageData errorPage)
54
+ , action : Decode.Value -> route -> BackendTask FatalError (PageServerResponse actionData errorPage)
54
55
  , onActionData : actionData -> Maybe userMsg
55
56
  , view :
56
57
  Pages.FormState.PageFormState
@@ -68,8 +69,8 @@ type alias ProgramConfig userMsg userModel route pageData actionData sharedData
68
69
  { view : userModel -> { title : String, body : List (Html (Pages.Msg.Msg userMsg)) }
69
70
  , head : List Head.Tag
70
71
  }
71
- , handleRoute : route -> DataSource (Maybe NotFoundReason)
72
- , getStaticRoutes : DataSource (List route)
72
+ , handleRoute : route -> BackendTask FatalError (Maybe NotFoundReason)
73
+ , getStaticRoutes : BackendTask FatalError (List route)
73
74
  , urlToRoute : Url -> route
74
75
  , routeToPath : route -> List String
75
76
  , site : Maybe SiteConfig
@@ -88,7 +89,10 @@ type alias ProgramConfig userMsg userModel route pageData actionData sharedData
88
89
  }
89
90
  -> userMsg
90
91
  , apiRoutes :
91
- (Html Never -> String)
92
+ (Maybe { indent : Int, newLines : Bool }
93
+ -> Html Never
94
+ -> String
95
+ )
92
96
  -> List (ApiRoute.ApiRoute ApiRoute.Response)
93
97
  , pathPatterns : List RoutePattern
94
98
  , basePath : List String
@@ -98,7 +102,7 @@ type alias ProgramConfig userMsg userModel route pageData actionData sharedData
98
102
  , encodeResponse : ResponseSketch pageData actionData sharedData -> Bytes.Encode.Encoder
99
103
  , encodeAction : actionData -> Bytes.Encode.Encoder
100
104
  , decodeResponse : Bytes.Decode.Decoder (ResponseSketch pageData actionData sharedData)
101
- , globalHeadTags : Maybe ((Html Never -> String) -> DataSource (List Head.Tag))
105
+ , globalHeadTags : Maybe ((Maybe { indent : Int, newLines : Bool } -> Html Never -> String) -> BackendTask FatalError (List Head.Tag))
102
106
  , cmdToEffect : Cmd userMsg -> effect
103
107
  , perform :
104
108
  { fetchRouteData :