elm-pages 3.0.0-beta.2 → 3.0.0-beta.20
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.
- package/README.md +10 -1
- package/codegen/{elm-pages-codegen.js → elm-pages-codegen.cjs} +2420 -1592
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateData.elmi +0 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateData.elmo +0 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateDataTest.elmo +0 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/d.dat +0 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/i.dat +0 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/o.dat +0 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm.json +1 -1
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/Reporter.elm.js +1326 -121
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/Runner.elm.js +15215 -13007
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/node_runner.js +1 -1
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/node_supervisor.js +1 -1
- package/generator/dead-code-review/elm.json +8 -6
- package/generator/dead-code-review/src/Pages/Review/DeadCodeEliminateData.elm +189 -17
- package/generator/dead-code-review/tests/Pages/Review/DeadCodeEliminateDataTest.elm +255 -21
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/d.dat +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/i.dat +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/o.dat +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm.json +1 -1
- package/generator/review/elm-stuff/tests-0.19.1/js/Reporter.elm.js +1326 -121
- package/generator/review/elm-stuff/tests-0.19.1/js/Runner.elm.js +14620 -12636
- package/generator/review/elm-stuff/tests-0.19.1/js/node_runner.js +1 -1
- package/generator/review/elm-stuff/tests-0.19.1/js/node_supervisor.js +1 -1
- package/generator/review/elm.json +8 -8
- package/generator/src/RouteBuilder.elm +66 -52
- package/generator/src/SharedTemplate.elm +3 -2
- package/generator/src/SiteConfig.elm +3 -2
- package/generator/src/basepath-middleware.js +3 -3
- package/generator/src/build.js +122 -86
- package/generator/src/cli.js +247 -51
- package/generator/src/codegen.js +29 -27
- package/generator/src/compatibility-key.js +1 -0
- package/generator/src/compile-elm.js +20 -22
- package/generator/src/config.js +39 -0
- package/generator/src/copy-dir.js +2 -2
- package/generator/src/dev-server.js +119 -110
- package/generator/src/dir-helpers.js +9 -26
- package/generator/src/elm-codegen.js +5 -4
- package/generator/src/elm-file-constants.js +2 -3
- package/generator/src/error-formatter.js +12 -11
- package/generator/src/file-helpers.js +3 -4
- package/generator/src/generate-template-module-connector.js +14 -21
- package/generator/src/init.js +8 -7
- package/generator/src/pre-render-html.js +41 -28
- package/generator/src/render-test.js +109 -0
- package/generator/src/render-worker.js +26 -28
- package/generator/src/render.js +322 -142
- package/generator/src/request-cache.js +200 -162
- package/generator/src/rewrite-client-elm-json.js +5 -5
- package/generator/src/rewrite-elm-json.js +7 -7
- package/generator/src/route-codegen-helpers.js +16 -31
- package/generator/src/seo-renderer.js +12 -7
- package/generator/src/vite-utils.js +77 -0
- package/generator/static-code/hmr.js +16 -2
- package/generator/template/app/Api.elm +3 -3
- package/generator/template/app/Route/Index.elm +3 -3
- package/generator/template/app/Shared.elm +3 -3
- package/generator/template/app/Site.elm +9 -4
- package/package.json +21 -21
- package/src/ApiRoute.elm +199 -61
- package/src/BackendTask/Custom.elm +214 -0
- package/src/BackendTask/Env.elm +90 -0
- package/src/{DataSource → BackendTask}/File.elm +128 -43
- package/src/{DataSource → BackendTask}/Glob.elm +136 -125
- package/src/BackendTask/Http.elm +673 -0
- package/src/{DataSource → BackendTask}/Internal/Glob.elm +1 -1
- package/src/BackendTask/Internal/Request.elm +28 -0
- package/src/BackendTask/Random.elm +79 -0
- package/src/BackendTask/Time.elm +47 -0
- package/src/BackendTask.elm +537 -0
- package/src/FatalError.elm +89 -0
- package/src/Form/Field.elm +1 -1
- package/src/Form.elm +72 -92
- package/src/Head/Seo.elm +4 -4
- package/src/Head.elm +237 -7
- package/src/HtmlPrinter.elm +7 -3
- package/src/Internal/ApiRoute.elm +7 -5
- package/src/PageServerResponse.elm +6 -1
- package/src/Pages/Generate.elm +775 -132
- package/src/Pages/GeneratorProgramConfig.elm +15 -0
- package/src/Pages/Internal/FatalError.elm +5 -0
- package/src/Pages/Internal/Form.elm +21 -1
- package/src/Pages/Internal/Platform/Cli.elm +479 -747
- package/src/Pages/Internal/Platform/Cli.elm.bak +1276 -0
- package/src/Pages/Internal/Platform/CompatibilityKey.elm +6 -0
- package/src/Pages/Internal/Platform/Effect.elm +1 -2
- package/src/Pages/Internal/Platform/GeneratorApplication.elm +373 -0
- package/src/Pages/Internal/Platform/StaticResponses.elm +73 -270
- package/src/Pages/Internal/Platform/ToJsPayload.elm +4 -7
- package/src/Pages/Internal/Platform.elm +54 -53
- package/src/Pages/Internal/Script.elm +17 -0
- package/src/Pages/Internal/StaticHttpBody.elm +35 -1
- package/src/Pages/Manifest.elm +29 -4
- package/src/Pages/ProgramConfig.elm +12 -8
- package/src/Pages/Script.elm +109 -0
- package/src/Pages/SiteConfig.elm +3 -2
- package/src/Pages/StaticHttp/Request.elm +2 -2
- package/src/Pages/StaticHttpRequest.elm +23 -98
- package/src/RequestsAndPending.elm +8 -19
- package/src/Result/Extra.elm +21 -0
- package/src/Server/Request.elm +43 -34
- package/src/Server/Session.elm +166 -100
- package/src/Server/SetCookie.elm +89 -31
- package/src/DataSource/Env.elm +0 -38
- package/src/DataSource/Http.elm +0 -446
- package/src/DataSource/Internal/Request.elm +0 -20
- package/src/DataSource/Port.elm +0 -90
- package/src/DataSource.elm +0 -538
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/** This code is from https://github.com/sveltejs/kit/blob/3b457f67d4d7c59fc63bb3f600a490e4dacc2e62/packages/kit/src/exports/vite/utils.js */
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @param {...import('vite').UserConfig} configs
|
|
5
|
+
* @returns {import('vite').UserConfig}
|
|
6
|
+
*/
|
|
7
|
+
export function merge_vite_configs(...configs) {
|
|
8
|
+
return deep_merge(
|
|
9
|
+
...configs.map((config) => ({
|
|
10
|
+
...config,
|
|
11
|
+
resolve: {
|
|
12
|
+
...config.resolve,
|
|
13
|
+
alias: normalize_alias(config.resolve?.alias || {}),
|
|
14
|
+
},
|
|
15
|
+
}))
|
|
16
|
+
);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Takes zero or more objects and returns a new object that has all the values
|
|
21
|
+
* deeply merged together. None of the original objects will be mutated at any
|
|
22
|
+
* level, and the returned object will have no references to the original
|
|
23
|
+
* objects at any depth. If there's a conflict the last one wins, except for
|
|
24
|
+
* arrays which will be combined.
|
|
25
|
+
* @param {...Object} objects
|
|
26
|
+
* @returns {Record<string, any>} the merged object
|
|
27
|
+
*/
|
|
28
|
+
function deep_merge(...objects) {
|
|
29
|
+
const result = {};
|
|
30
|
+
/** @type {string[]} */
|
|
31
|
+
objects.forEach((o) => merge_into(result, o));
|
|
32
|
+
return result;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* normalize kit.vite.resolve.alias as an array
|
|
37
|
+
* @param {import('vite').AliasOptions} o
|
|
38
|
+
* @returns {import('vite').Alias[]}
|
|
39
|
+
*/
|
|
40
|
+
function normalize_alias(o) {
|
|
41
|
+
if (Array.isArray(o)) return o;
|
|
42
|
+
return Object.entries(o).map(([find, replacement]) => ({
|
|
43
|
+
find,
|
|
44
|
+
replacement,
|
|
45
|
+
}));
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Merges b into a, recursively, mutating a.
|
|
50
|
+
* @param {Record<string, any>} a
|
|
51
|
+
* @param {Record<string, any>} b
|
|
52
|
+
*/
|
|
53
|
+
function merge_into(a, b) {
|
|
54
|
+
/**
|
|
55
|
+
* Checks for "plain old Javascript object", typically made as an object
|
|
56
|
+
* literal. Excludes Arrays and built-in types like Buffer.
|
|
57
|
+
* @param {any} x
|
|
58
|
+
*/
|
|
59
|
+
const is_plain_object = (x) =>
|
|
60
|
+
typeof x === "object" && x.constructor === Object;
|
|
61
|
+
|
|
62
|
+
for (const prop in b) {
|
|
63
|
+
if (is_plain_object(b[prop])) {
|
|
64
|
+
if (!is_plain_object(a[prop])) {
|
|
65
|
+
a[prop] = {};
|
|
66
|
+
}
|
|
67
|
+
merge_into(a[prop], b[prop]);
|
|
68
|
+
} else if (Array.isArray(b[prop])) {
|
|
69
|
+
if (!Array.isArray(a[prop])) {
|
|
70
|
+
a[prop] = [];
|
|
71
|
+
}
|
|
72
|
+
a[prop].push(...b[prop]);
|
|
73
|
+
} else {
|
|
74
|
+
a[prop] = b[prop];
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
@@ -224,8 +224,11 @@ function htmlSanitize(str, type) {
|
|
|
224
224
|
);
|
|
225
225
|
}
|
|
226
226
|
|
|
227
|
-
|
|
228
|
-
`-- ${title.replace("-", " ")} --------------- ${
|
|
227
|
+
function parseHeader(title, path) {
|
|
228
|
+
return `-- ${(title || "ERROR").replace("-", " ")} --------------- ${
|
|
229
|
+
path || ""
|
|
230
|
+
}`;
|
|
231
|
+
}
|
|
229
232
|
|
|
230
233
|
/*
|
|
231
234
|
|-------------------------------------------------------------------------------
|
|
@@ -253,6 +256,14 @@ const parseConsoleErrors =
|
|
|
253
256
|
* */
|
|
254
257
|
(info) => {
|
|
255
258
|
if (info.rule) {
|
|
259
|
+
if (info.details) {
|
|
260
|
+
return joinMessage(
|
|
261
|
+
info.details.reduce(consoleMsg, {
|
|
262
|
+
error: [consoleHeader(info.rule, path)],
|
|
263
|
+
style: [styleColor("blue")],
|
|
264
|
+
})
|
|
265
|
+
);
|
|
266
|
+
}
|
|
256
267
|
return joinMessage(
|
|
257
268
|
info.formatted.reduce(consoleMsg, {
|
|
258
269
|
error: [consoleHeader(info.rule, path)],
|
|
@@ -313,6 +324,9 @@ const parseHtmlErrors = (path) => (info) => {
|
|
|
313
324
|
if (info.rule) {
|
|
314
325
|
return info.formatted.reduce(htmlMsg, htmlHeader(info.rule, path));
|
|
315
326
|
} else {
|
|
327
|
+
if (info.details) {
|
|
328
|
+
return info.details.reduce(htmlMsg, htmlHeader(info.title, path));
|
|
329
|
+
}
|
|
316
330
|
return info.message.reduce(htmlMsg, htmlHeader(info.title, path));
|
|
317
331
|
}
|
|
318
332
|
};
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
module Api exposing (routes)
|
|
2
2
|
|
|
3
3
|
import ApiRoute exposing (ApiRoute)
|
|
4
|
-
import
|
|
4
|
+
import BackendTask exposing (BackendTask)
|
|
5
5
|
import Html exposing (Html)
|
|
6
6
|
import Pages.Manifest as Manifest
|
|
7
7
|
import Route exposing (Route)
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
routes :
|
|
11
|
-
|
|
12
|
-
-> (Html Never -> String)
|
|
11
|
+
BackendTask (List Route)
|
|
12
|
+
-> (Maybe { indent : Int, newLines : Bool } -> Html Never -> String)
|
|
13
13
|
-> List (ApiRoute ApiRoute.Response)
|
|
14
14
|
routes getStaticRoutes htmlToString =
|
|
15
15
|
[]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
module Route.Index exposing (Data, Model, Msg, route)
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import BackendTask exposing (BackendTask)
|
|
4
4
|
import Head
|
|
5
5
|
import Head.Seo as Seo
|
|
6
6
|
import Html
|
|
@@ -38,9 +38,9 @@ route =
|
|
|
38
38
|
|> RouteBuilder.buildNoState { view = view }
|
|
39
39
|
|
|
40
40
|
|
|
41
|
-
data :
|
|
41
|
+
data : BackendTask Data
|
|
42
42
|
data =
|
|
43
|
-
|
|
43
|
+
BackendTask.succeed Data
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
head :
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
module Shared exposing (Data, Model, Msg(..), SharedMsg(..), template)
|
|
2
2
|
|
|
3
3
|
import Browser.Navigation
|
|
4
|
-
import
|
|
4
|
+
import BackendTask
|
|
5
5
|
import Html exposing (Html)
|
|
6
6
|
import Html.Events
|
|
7
7
|
import Pages.Flags
|
|
@@ -76,9 +76,9 @@ subscriptions _ _ =
|
|
|
76
76
|
Sub.none
|
|
77
77
|
|
|
78
78
|
|
|
79
|
-
data :
|
|
79
|
+
data : BackendTask.BackendTask Data
|
|
80
80
|
data =
|
|
81
|
-
|
|
81
|
+
BackendTask.succeed ()
|
|
82
82
|
|
|
83
83
|
|
|
84
84
|
view :
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
module Site exposing (config)
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import BackendTask exposing (BackendTask)
|
|
4
4
|
import Head
|
|
5
5
|
import SiteConfig exposing (SiteConfig)
|
|
6
6
|
|
|
@@ -12,8 +12,13 @@ config =
|
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
head :
|
|
15
|
+
head : BackendTask (List Head.Tag)
|
|
16
16
|
head =
|
|
17
|
-
[ Head.
|
|
17
|
+
[ Head.metaName "viewport" (Head.raw "width=device-width,initial-scale=1")
|
|
18
|
+
, Head.metaName "mobile-web-app-capable" (Head.raw "yes")
|
|
19
|
+
, Head.metaName "theme-color" (Head.raw "#ffffff")
|
|
20
|
+
, Head.metaName "apple-mobile-web-app-capable" (Head.raw "yes")
|
|
21
|
+
, Head.metaName "apple-mobile-web-app-status-bar-style" (Head.raw "black-translucent")
|
|
22
|
+
, Head.sitemapLink "/sitemap.xml"
|
|
18
23
|
]
|
|
19
|
-
|>
|
|
24
|
+
|> BackendTask.succeed
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "elm-pages",
|
|
3
|
-
"
|
|
3
|
+
"type": "module",
|
|
4
|
+
"version": "3.0.0-beta.20",
|
|
4
5
|
"homepage": "https://elm-pages.com",
|
|
5
6
|
"moduleResolution": "node",
|
|
6
7
|
"description": "Type-safe static sites, written in pure elm with your own custom elm-markup syntax.",
|
|
@@ -10,8 +11,7 @@
|
|
|
10
11
|
"test": "./test.sh",
|
|
11
12
|
"test:snapshot": "(cd examples/escaping && npm install && npm test) && (cd examples/base-path && npm install && npm test)",
|
|
12
13
|
"cypress": "npm start & cypress run",
|
|
13
|
-
"
|
|
14
|
-
"build:generator": "elm-codegen install && (cd codegen && lamdera make Generate.elm --output elm-pages-codegen.js)",
|
|
14
|
+
"build:generator": "elm-codegen install && (cd codegen && lamdera make Generate.elm --output elm-pages-codegen.js && mv elm-pages-codegen.js elm-pages-codegen.cjs)",
|
|
15
15
|
"review": "elm-review"
|
|
16
16
|
},
|
|
17
17
|
"repository": "https://github.com/dillonkearns/elm-pages",
|
|
@@ -27,51 +27,51 @@
|
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"busboy": "^1.0.0",
|
|
29
29
|
"chokidar": "^3.5.3",
|
|
30
|
-
"commander": "^
|
|
30
|
+
"commander": "^10.0.0",
|
|
31
31
|
"connect": "^3.7.0",
|
|
32
32
|
"cookie-signature": "^1.1.0",
|
|
33
33
|
"cross-spawn": "7.0.3",
|
|
34
34
|
"devcert": "^1.2.2",
|
|
35
35
|
"elm-doc-preview": "^5.0.5",
|
|
36
36
|
"elm-hot": "^1.1.6",
|
|
37
|
-
"esbuild": "^0.
|
|
38
|
-
"fs-extra": "^
|
|
39
|
-
"globby": "
|
|
37
|
+
"esbuild": "^0.17.5",
|
|
38
|
+
"fs-extra": "^11.1.0",
|
|
39
|
+
"globby": "^13.1.3",
|
|
40
40
|
"gray-matter": "^4.0.3",
|
|
41
41
|
"jsesc": "^3.0.2",
|
|
42
42
|
"kleur": "^4.1.5",
|
|
43
|
+
"make-fetch-happen": "^11.0.2",
|
|
43
44
|
"memfs": "^3.4.7",
|
|
44
45
|
"micromatch": "^4.0.5",
|
|
45
|
-
"node-fetch": "^2.6.7",
|
|
46
|
-
"object-hash": "^2.2.0",
|
|
47
46
|
"serve-static": "^1.15.0",
|
|
48
|
-
"terser": "^5.
|
|
49
|
-
"vite": "^
|
|
50
|
-
"which": "^
|
|
47
|
+
"terser": "^5.16.1",
|
|
48
|
+
"vite": "^4.0.4",
|
|
49
|
+
"which": "^3.0.0"
|
|
51
50
|
},
|
|
52
51
|
"devDependencies": {
|
|
53
52
|
"@types/cross-spawn": "^6.0.2",
|
|
54
53
|
"@types/fs-extra": "^9.0.13",
|
|
54
|
+
"@types/make-fetch-happen": "^10.0.1",
|
|
55
55
|
"@types/micromatch": "^4.0.2",
|
|
56
|
-
"@types/node": "
|
|
56
|
+
"@types/node": "^18.11.9",
|
|
57
57
|
"@types/serve-static": "^1.15.0",
|
|
58
|
-
"cypress": "^
|
|
58
|
+
"cypress": "^12.4.0",
|
|
59
59
|
"elm-codegen": "^0.2.0",
|
|
60
|
-
"elm-optimize-level-2": "^0.
|
|
61
|
-
"elm-review": "^2.
|
|
62
|
-
"elm-test": "^0.19.1-
|
|
63
|
-
"elm-tooling": "^1.
|
|
60
|
+
"elm-optimize-level-2": "^0.3.5",
|
|
61
|
+
"elm-review": "^2.8.2",
|
|
62
|
+
"elm-test": "^0.19.1-revision11",
|
|
63
|
+
"elm-tooling": "^1.11.0",
|
|
64
64
|
"elm-verify-examples": "^5.2.0",
|
|
65
65
|
"elmi-to-json": "^1.2.0",
|
|
66
|
-
"mocha": "^10.
|
|
67
|
-
"typescript": "^4.
|
|
66
|
+
"mocha": "^10.2.0",
|
|
67
|
+
"typescript": "^4.9.3"
|
|
68
68
|
},
|
|
69
69
|
"files": [
|
|
70
70
|
"generator/src/",
|
|
71
71
|
"generator/review/",
|
|
72
72
|
"generator/dead-code-review/",
|
|
73
73
|
"src/",
|
|
74
|
-
"codegen/elm-pages-codegen.
|
|
74
|
+
"codegen/elm-pages-codegen.cjs",
|
|
75
75
|
"generator/template/",
|
|
76
76
|
"generator/static-code/"
|
|
77
77
|
],
|