elm-pages 3.0.12 → 3.0.14

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 (75) hide show
  1. package/README.md +2 -26
  2. package/codegen/elm-pages-codegen.cjs +10741 -10302
  3. package/generator/src/build.js +15 -5
  4. package/generator/src/cli.js +3 -5
  5. package/generator/src/compatibility-key.js +2 -2
  6. package/generator/src/dev-server.js +3 -0
  7. package/generator/src/render.js +681 -50
  8. package/generator/src/request-cache.js +13 -6
  9. package/generator/src/spinnies/index.js +200 -0
  10. package/generator/src/spinnies/utils.js +123 -0
  11. package/generator/src/validate-stream.js +25 -0
  12. package/generator/template/elm.json +4 -4
  13. package/generator/template/package.json +6 -6
  14. package/generator/template/script/elm.json +7 -8
  15. package/package.json +4 -3
  16. package/src/BackendTask/Custom.elm +38 -0
  17. package/src/BackendTask/Do.elm +233 -0
  18. package/src/BackendTask/File.elm +24 -9
  19. package/src/BackendTask/Glob.elm +208 -25
  20. package/src/BackendTask/Http.elm +32 -21
  21. package/src/BackendTask/Internal/Glob.elm +16 -4
  22. package/src/BackendTask/Stream.elm +1179 -0
  23. package/src/BackendTask.elm +214 -7
  24. package/src/Pages/Internal/Platform/CompatibilityKey.elm +1 -1
  25. package/src/Pages/Internal/Platform.elm +11 -2
  26. package/src/Pages/Script/Spinner.elm +505 -0
  27. package/src/Pages/Script.elm +199 -2
  28. package/src/Pages/StaticHttp/Request.elm +7 -0
  29. package/src/RequestsAndPending.elm +1 -1
  30. package/src/Scaffold/Form.elm +2 -3
  31. package/src/TerminalText.elm +8 -0
  32. package/src/Vendored/Result/Extra.elm +75 -0
  33. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateData.elmi +0 -0
  34. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateData.elmo +0 -0
  35. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateDataTest.elmi +0 -0
  36. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateDataTest.elmo +0 -0
  37. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Reporter.elmi +0 -0
  38. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Reporter.elmo +0 -0
  39. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Runner.elmi +0 -0
  40. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Runner.elmo +0 -0
  41. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/d.dat +0 -0
  42. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/i.dat +0 -0
  43. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/lock +0 -0
  44. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/o.dat +0 -0
  45. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm.json +0 -1
  46. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/Reporter.elm.js +0 -7900
  47. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/Runner.elm.js +0 -28657
  48. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/node_runner.js +0 -110
  49. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/node_supervisor.js +0 -187
  50. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/package.json +0 -1
  51. package/generator/dead-code-review/elm-stuff/tests-0.19.1/src/Reporter.elm +0 -26
  52. package/generator/dead-code-review/elm-stuff/tests-0.19.1/src/Runner.elm +0 -62
  53. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Internal-RoutePattern.elmi +0 -0
  54. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Internal-RoutePattern.elmo +0 -0
  55. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-NoContractViolations.elmi +0 -0
  56. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-NoContractViolations.elmo +0 -0
  57. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-NoContractViolationsTest.elmi +0 -0
  58. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-NoContractViolationsTest.elmo +0 -0
  59. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Reporter.elmi +0 -0
  60. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Reporter.elmo +0 -0
  61. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Runner.elmi +0 -0
  62. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Runner.elmo +0 -0
  63. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/d.dat +0 -0
  64. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/i.dat +0 -0
  65. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/lock +0 -0
  66. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/o.dat +0 -0
  67. package/generator/review/elm-stuff/tests-0.19.1/elm.json +0 -1
  68. package/generator/review/elm-stuff/tests-0.19.1/js/Reporter.elm.js +0 -7900
  69. package/generator/review/elm-stuff/tests-0.19.1/js/Runner.elm.js +0 -30511
  70. package/generator/review/elm-stuff/tests-0.19.1/js/node_runner.js +0 -110
  71. package/generator/review/elm-stuff/tests-0.19.1/js/node_supervisor.js +0 -187
  72. package/generator/review/elm-stuff/tests-0.19.1/js/package.json +0 -1
  73. package/generator/review/elm-stuff/tests-0.19.1/src/Reporter.elm +0 -26
  74. package/generator/review/elm-stuff/tests-0.19.1/src/Runner.elm +0 -62
  75. package/src/Result/Extra.elm +0 -26
@@ -97,6 +97,9 @@ export async function run(options) {
97
97
  configFile: false,
98
98
  root: process.cwd(),
99
99
  base: options.base,
100
+ assetsInclude: [
101
+ '/elm-pages.js'
102
+ ],
100
103
  ssr: false,
101
104
 
102
105
  build: {
@@ -232,9 +235,9 @@ export async function render(request) {
232
235
  // isBase64Encoded
233
236
  return {
234
237
  body: response.body.body,
235
- statusCode: response.statusCode,
238
+ statusCode: response.body.statusCode,
236
239
  kind: response.kind,
237
- headers: response.headers,
240
+ headers: response.body.headers,
238
241
  isBase64Encoded: response.body.isBase64Encoded,
239
242
  }
240
243
  } else {
@@ -683,15 +686,22 @@ function _HtmlAsJson_toJson(html) {
683
686
 
684
687
  await fsPromises.writeFile(
685
688
  ELM_FILE_PATH().replace(/\.js$/, ".cjs"),
686
- elmFileContent
689
+ applyScriptPatches(options, elmFileContent
687
690
  .replace(
688
691
  /return \$elm\$json\$Json\$Encode\$string\(.REPLACE_ME_WITH_JSON_STRINGIFY.\)/g,
689
692
  `return ${forceThunksSource}
690
693
  return _Json_wrap(forceThunks(html));
691
694
  `
692
695
  )
693
- .replace(`console.log('App dying')`, "")
694
- );
696
+ .replace(`console.log('App dying')`, "")));
697
+ }
698
+
699
+ function applyScriptPatches(options, input) {
700
+ if (options.isScript) {
701
+ return input.replace(`_Debug_crash(8, moduleName, region, message)`, "console.error('TODO in module `' + moduleName + '` ' + _Debug_regionToString(region) + '\\n\\n' + message); process.exitCode = 1; debugger; throw 'CRASH!';");
702
+ } else {
703
+ return input;
704
+ }
695
705
  }
696
706
 
697
707
  async function runAdapter(adaptFn, processedIndexTemplate) {
@@ -150,11 +150,8 @@ async function main() {
150
150
  debug: "debug",
151
151
  executableName,
152
152
  mainModule: "ScriptMain",
153
+ isScript: true,
153
154
  });
154
- fs.renameSync(
155
- `${projectDirectory}/elm-stuff/elm-pages/elm.js`,
156
- `${projectDirectory}/elm-stuff/elm-pages/elm.cjs`
157
- );
158
155
  process.chdir(cwd);
159
156
  await renderer.runGenerator(
160
157
  unprocessedCliOptions,
@@ -203,6 +200,7 @@ async function main() {
203
200
  debug: options.debug,
204
201
  executableName,
205
202
  mainModule: "ScriptMain",
203
+ isScript: true,
206
204
  });
207
205
  // await runTerser(`${projectDirectory}/elm-stuff/elm-pages/elm.js`);
208
206
  fs.renameSync(
@@ -398,7 +396,7 @@ async function compileElmForScript(elmModulePath) {
398
396
  }
399
397
  // await codegen.generate("");
400
398
  ensureDirSync(path.join(process.cwd(), ".elm-pages", "http-response-cache"));
401
- if (fs.existsSync("./codegen/")) {
399
+ if (fs.existsSync("./codegen/") && process.env.SKIP_ELM_CODEGEN !== "true") {
402
400
  await runElmCodegenInstall();
403
401
  }
404
402
 
@@ -1,3 +1,3 @@
1
- export const compatibilityKey = 21;
1
+ export const compatibilityKey = 22;
2
2
 
3
- export const packageVersion = "3.0.11";
3
+ export const packageVersion = "3.0.14";
@@ -175,6 +175,9 @@ export async function start(options) {
175
175
  base: options.base,
176
176
  port: options.port,
177
177
  },
178
+ assetsInclude: [
179
+ '/elm-pages.js'
180
+ ],
178
181
  appType: "custom",
179
182
  configFile: false,
180
183
  root: process.cwd(),