elm-pages 3.0.0-beta.4 → 3.0.0-beta.41

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 (148) hide show
  1. package/README.md +10 -1
  2. package/adapter/netlify.js +207 -0
  3. package/codegen/{elm-pages-codegen.js → elm-pages-codegen.cjs} +2828 -2933
  4. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateData.elmi +0 -0
  5. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateData.elmo +0 -0
  6. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateDataTest.elmo +0 -0
  7. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/d.dat +0 -0
  8. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/i.dat +0 -0
  9. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/o.dat +0 -0
  10. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm.json +1 -1
  11. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/Reporter.elm.js +1447 -342
  12. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/Runner.elm.js +17004 -13817
  13. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/node_runner.js +1 -1
  14. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/node_supervisor.js +4 -4
  15. package/generator/dead-code-review/elm.json +9 -7
  16. package/generator/dead-code-review/src/Pages/Review/DeadCodeEliminateData.elm +59 -10
  17. package/generator/dead-code-review/tests/Pages/Review/DeadCodeEliminateDataTest.elm +52 -36
  18. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Internal-RoutePattern.elmi +0 -0
  19. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Internal-RoutePattern.elmo +0 -0
  20. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-NoContractViolations.elmi +0 -0
  21. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-NoContractViolations.elmo +0 -0
  22. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/d.dat +0 -0
  23. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/i.dat +0 -0
  24. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/o.dat +0 -0
  25. package/generator/review/elm-stuff/tests-0.19.1/elm.json +1 -1
  26. package/generator/review/elm-stuff/tests-0.19.1/js/Reporter.elm.js +1447 -342
  27. package/generator/review/elm-stuff/tests-0.19.1/js/Runner.elm.js +25025 -21739
  28. package/generator/review/elm-stuff/tests-0.19.1/js/node_runner.js +1 -1
  29. package/generator/review/elm-stuff/tests-0.19.1/js/node_supervisor.js +4 -4
  30. package/generator/review/elm.json +10 -10
  31. package/generator/src/RouteBuilder.elm +121 -114
  32. package/generator/src/SharedTemplate.elm +8 -7
  33. package/generator/src/SiteConfig.elm +3 -2
  34. package/generator/src/basepath-middleware.js +3 -3
  35. package/generator/src/build.js +209 -92
  36. package/generator/src/cli.js +292 -88
  37. package/generator/src/codegen.js +29 -27
  38. package/generator/src/compatibility-key.js +3 -0
  39. package/generator/src/compile-elm.js +43 -26
  40. package/generator/src/config.js +39 -0
  41. package/generator/src/copy-dir.js +2 -2
  42. package/generator/src/dev-server.js +176 -138
  43. package/generator/src/dir-helpers.js +9 -26
  44. package/generator/src/elm-codegen.js +5 -4
  45. package/generator/src/elm-file-constants.js +2 -3
  46. package/generator/src/error-formatter.js +12 -11
  47. package/generator/src/file-helpers.js +3 -4
  48. package/generator/src/generate-template-module-connector.js +23 -23
  49. package/generator/src/init.js +9 -8
  50. package/generator/src/pre-render-html.js +39 -28
  51. package/generator/src/render-test.js +109 -0
  52. package/generator/src/render-worker.js +25 -28
  53. package/generator/src/render.js +321 -142
  54. package/generator/src/request-cache.js +265 -162
  55. package/generator/src/resolve-elm-module.js +64 -0
  56. package/generator/src/rewrite-client-elm-json.js +6 -5
  57. package/generator/src/rewrite-elm-json-help.js +56 -0
  58. package/generator/src/rewrite-elm-json.js +17 -7
  59. package/generator/src/route-codegen-helpers.js +16 -31
  60. package/generator/src/seo-renderer.js +12 -7
  61. package/generator/src/vite-utils.js +77 -0
  62. package/generator/static-code/elm-pages.js +10 -0
  63. package/generator/static-code/hmr.js +79 -13
  64. package/generator/template/app/Api.elm +6 -5
  65. package/generator/template/app/Effect.elm +123 -0
  66. package/generator/template/app/ErrorPage.elm +37 -6
  67. package/generator/template/app/Route/Index.elm +17 -10
  68. package/generator/template/app/Shared.elm +24 -47
  69. package/generator/template/app/Site.elm +19 -6
  70. package/generator/template/app/View.elm +1 -8
  71. package/generator/template/elm-tooling.json +0 -3
  72. package/generator/template/elm.json +32 -24
  73. package/generator/template/package.json +10 -4
  74. package/package.json +30 -27
  75. package/src/ApiRoute.elm +199 -61
  76. package/src/BackendTask/Custom.elm +325 -0
  77. package/src/BackendTask/Env.elm +90 -0
  78. package/src/{DataSource → BackendTask}/File.elm +171 -56
  79. package/src/{DataSource → BackendTask}/Glob.elm +136 -125
  80. package/src/BackendTask/Http.elm +679 -0
  81. package/src/{DataSource → BackendTask}/Internal/Glob.elm +1 -1
  82. package/src/BackendTask/Internal/Request.elm +69 -0
  83. package/src/BackendTask/Random.elm +79 -0
  84. package/src/BackendTask/Time.elm +47 -0
  85. package/src/BackendTask.elm +531 -0
  86. package/src/FatalError.elm +90 -0
  87. package/src/Head/Seo.elm +4 -4
  88. package/src/Head.elm +237 -7
  89. package/src/HtmlPrinter.elm +7 -3
  90. package/src/Internal/ApiRoute.elm +7 -5
  91. package/src/PageServerResponse.elm +6 -1
  92. package/src/Pages/ConcurrentSubmission.elm +127 -0
  93. package/src/Pages/Form.elm +340 -0
  94. package/src/Pages/FormData.elm +18 -0
  95. package/src/Pages/GeneratorProgramConfig.elm +15 -0
  96. package/src/Pages/Internal/FatalError.elm +5 -0
  97. package/src/Pages/Internal/Msg.elm +93 -0
  98. package/src/Pages/Internal/NotFoundReason.elm +4 -4
  99. package/src/Pages/Internal/Platform/Cli.elm +617 -768
  100. package/src/Pages/Internal/Platform/CompatibilityKey.elm +6 -0
  101. package/src/Pages/Internal/Platform/Effect.elm +1 -2
  102. package/src/Pages/Internal/Platform/GeneratorApplication.elm +379 -0
  103. package/src/Pages/Internal/Platform/StaticResponses.elm +65 -276
  104. package/src/Pages/Internal/Platform/ToJsPayload.elm +6 -9
  105. package/src/Pages/Internal/Platform.elm +359 -225
  106. package/src/Pages/Internal/ResponseSketch.elm +2 -2
  107. package/src/Pages/Internal/Script.elm +17 -0
  108. package/src/Pages/Internal/StaticHttpBody.elm +35 -1
  109. package/src/Pages/Manifest.elm +52 -11
  110. package/src/Pages/Navigation.elm +87 -0
  111. package/src/Pages/PageUrl.elm +26 -12
  112. package/src/Pages/ProgramConfig.elm +35 -23
  113. package/src/Pages/Script.elm +166 -0
  114. package/src/Pages/SiteConfig.elm +3 -2
  115. package/src/Pages/StaticHttp/Request.elm +2 -2
  116. package/src/Pages/StaticHttpRequest.elm +23 -99
  117. package/src/Pages/Url.elm +3 -3
  118. package/src/PagesMsg.elm +88 -0
  119. package/src/QueryParams.elm +21 -172
  120. package/src/RenderRequest.elm +7 -7
  121. package/src/RequestsAndPending.elm +37 -20
  122. package/src/Result/Extra.elm +26 -0
  123. package/src/Scaffold/Form.elm +569 -0
  124. package/src/Scaffold/Route.elm +1411 -0
  125. package/src/Server/Request.elm +74 -72
  126. package/src/Server/Session.elm +62 -42
  127. package/src/Server/SetCookie.elm +80 -32
  128. package/src/Stub.elm +53 -0
  129. package/src/Test/Html/Internal/ElmHtml/ToString.elm +8 -9
  130. package/src/{Path.elm → UrlPath.elm} +33 -36
  131. package/src/DataSource/Env.elm +0 -38
  132. package/src/DataSource/Http.elm +0 -446
  133. package/src/DataSource/Internal/Request.elm +0 -20
  134. package/src/DataSource/Port.elm +0 -90
  135. package/src/DataSource.elm +0 -538
  136. package/src/Form/Field.elm +0 -717
  137. package/src/Form/FieldStatus.elm +0 -36
  138. package/src/Form/FieldView.elm +0 -417
  139. package/src/Form/FormData.elm +0 -22
  140. package/src/Form/Validation.elm +0 -391
  141. package/src/Form/Value.elm +0 -118
  142. package/src/Form.elm +0 -1683
  143. package/src/FormDecoder.elm +0 -102
  144. package/src/Pages/FormState.elm +0 -256
  145. package/src/Pages/Generate.elm +0 -800
  146. package/src/Pages/Internal/Form.elm +0 -17
  147. package/src/Pages/Msg.elm +0 -79
  148. package/src/Pages/Transition.elm +0 -70
@@ -1,221 +1,66 @@
1
- module Pages.Internal.Platform.StaticResponses exposing (FinishKind(..), NextStep(..), StaticResponses, batchUpdate, empty, nextStep, renderApiRequest, renderSingleRoute)
1
+ module Pages.Internal.Platform.StaticResponses exposing (NextStep(..), empty, nextStep)
2
2
 
3
+ import BackendTask exposing (BackendTask)
3
4
  import BuildError exposing (BuildError)
4
- import DataSource exposing (DataSource)
5
- import Dict exposing (Dict)
6
- import Dict.Extra
7
- import Pages.Internal.NotFoundReason exposing (NotFoundReason)
5
+ import FatalError exposing (FatalError)
6
+ import Pages.Internal.FatalError
8
7
  import Pages.StaticHttp.Request as HashRequest
9
8
  import Pages.StaticHttpRequest as StaticHttpRequest
10
9
  import RequestsAndPending exposing (RequestsAndPending)
11
- import Set exposing (Set)
10
+ import TerminalText
12
11
 
13
12
 
14
- type StaticResponses
15
- = ApiRequest StaticHttpResult
16
- | StaticResponses StaticHttpResult
17
- | CheckIfHandled (DataSource (Maybe NotFoundReason)) StaticHttpResult StaticHttpResult
13
+ empty : a -> BackendTask FatalError a
14
+ empty a =
15
+ BackendTask.succeed a
18
16
 
19
17
 
20
- type StaticHttpResult
21
- = NotFetched (DataSource ()) (Dict String (Result () String))
18
+ type NextStep route value
19
+ = Continue (List HashRequest.Request) (StaticHttpRequest.RawRequest FatalError value)
20
+ | Finish value
21
+ | FinishedWithErrors (List BuildError)
22
22
 
23
23
 
24
- empty : StaticResponses
25
- empty =
26
- StaticResponses
27
- (NotFetched (DataSource.succeed ()) Dict.empty)
28
-
29
-
30
- renderSingleRoute :
31
- DataSource a
32
- -> DataSource (Maybe NotFoundReason)
33
- -> StaticResponses
34
- renderSingleRoute request cliData =
35
- CheckIfHandled cliData
36
- (NotFetched
37
- (cliData
38
- |> DataSource.map (\_ -> ())
39
- )
40
- Dict.empty
41
- )
42
- (NotFetched (DataSource.map (\_ -> ()) request) Dict.empty)
43
-
44
-
45
- renderApiRequest :
46
- DataSource response
47
- -> StaticResponses
48
- renderApiRequest request =
49
- ApiRequest
50
- (NotFetched
51
- (request |> DataSource.map (\_ -> ()))
52
- Dict.empty
53
- )
54
-
55
-
56
- batchUpdate :
57
- List
58
- { request : HashRequest.Request
59
- , response : RequestsAndPending.Response
60
- }
61
- ->
62
- { model
63
- | staticResponses : StaticResponses
64
- , allRawResponses : RequestsAndPending
65
- }
24
+ nextStep :
25
+ RequestsAndPending
26
+ -> BackendTask FatalError a
66
27
  ->
67
28
  { model
68
- | staticResponses : StaticResponses
69
- , allRawResponses : RequestsAndPending
70
- }
71
- batchUpdate newEntries model =
72
- { model
73
- | allRawResponses = insertAll newEntries model.allRawResponses
74
- }
75
-
76
-
77
- insertAll :
78
- List
79
- { request : HashRequest.Request
80
- , response : RequestsAndPending.Response
29
+ | errors : List BuildError
81
30
  }
82
- -> RequestsAndPending
83
- -> RequestsAndPending
84
- insertAll newEntries dict =
85
- case newEntries of
86
- [] ->
87
- dict
88
-
89
- info :: rest ->
90
- insertAll
91
- rest
92
- (Dict.update (HashRequest.hash info.request) (\_ -> Just (Just info.response)) dict)
93
-
94
-
95
- type NextStep route
96
- = Continue RequestsAndPending (List HashRequest.Request) (Maybe (List route))
97
- | Finish (FinishKind route)
98
-
99
-
100
- type FinishKind route
101
- = ApiResponse
102
- | Errors (List BuildError)
103
-
104
-
105
- nextStep :
106
- { model
107
- | staticResponses : StaticResponses
108
- , errors : List BuildError
109
- , allRawResponses : RequestsAndPending
110
- }
111
- -> Maybe (List route)
112
- -> ( StaticResponses, NextStep route )
113
- nextStep ({ allRawResponses, errors } as model) maybeRoutes =
31
+ -> NextStep route a
32
+ nextStep allRawResponses staticResponses { errors } =
114
33
  let
115
- staticRequestsStatus : StaticHttpRequest.Status ()
34
+ staticRequestsStatus : StaticHttpRequest.Status FatalError a
116
35
  staticRequestsStatus =
117
36
  allRawResponses
118
- |> StaticHttpRequest.cacheRequestResolution request
119
-
120
- request : DataSource ()
121
- request =
122
- case staticResponses of
123
- NotFetched request_ _ ->
124
- request_
125
-
126
- staticResponses : StaticHttpResult
127
- staticResponses =
128
- case model.staticResponses of
129
- StaticResponses s ->
130
- s
131
-
132
- ApiRequest staticHttpResult ->
133
- staticHttpResult
134
-
135
- CheckIfHandled _ staticHttpResult _ ->
136
- staticHttpResult
137
-
138
- pendingRequests : Bool
139
- pendingRequests =
140
- case staticResponses of
141
- NotFetched _ rawResponses ->
142
- let
143
- hasPermanentError : Bool
144
- hasPermanentError =
145
- case staticRequestsStatus of
146
- StaticHttpRequest.HasPermanentError _ ->
147
- True
148
-
149
- _ ->
150
- False
151
-
152
- hasPermanentHttpError : Bool
153
- hasPermanentHttpError =
154
- not (List.isEmpty errors)
155
-
156
- ( allUrlsKnown, knownUrlsToFetch ) =
157
- case staticRequestsStatus of
158
- StaticHttpRequest.Incomplete newUrlsToFetch ->
159
- ( False, newUrlsToFetch )
160
-
161
- _ ->
162
- ( True, [] )
163
-
164
- fetchedAllKnownUrls : Bool
165
- fetchedAllKnownUrls =
166
- (rawResponses
167
- |> Dict.keys
168
- |> Set.fromList
169
- |> Set.union (allRawResponses |> Dict.keys |> Set.fromList)
170
- )
171
- |> Set.diff
172
- (knownUrlsToFetch
173
- |> List.map HashRequest.hash
174
- |> Set.fromList
175
- )
176
- |> Set.isEmpty
177
- in
178
- not (hasPermanentHttpError || hasPermanentError || (allUrlsKnown && fetchedAllKnownUrls))
37
+ |> StaticHttpRequest.cacheRequestResolution staticResponses
38
+
39
+ ( ( pendingRequests, completedValue ), urlsToPerform, progressedBackendTask ) =
40
+ case staticRequestsStatus of
41
+ StaticHttpRequest.Incomplete newUrlsToFetch nextReq ->
42
+ ( ( True, Nothing ), newUrlsToFetch, nextReq )
43
+
44
+ StaticHttpRequest.Complete (Err error) ->
45
+ ( ( False, Just (Err error) )
46
+ , []
47
+ , BackendTask.fail error
48
+ )
49
+
50
+ StaticHttpRequest.Complete (Ok value) ->
51
+ ( ( False, Just (Ok value) )
52
+ , []
53
+ , BackendTask.succeed value
54
+ )
55
+
56
+ StaticHttpRequest.HasPermanentError _ ->
57
+ ( ( False, Nothing )
58
+ , []
59
+ , BackendTask.fail (FatalError.fromString "TODO this shouldn't happen")
60
+ )
179
61
  in
180
62
  if pendingRequests then
181
- let
182
- urlsToPerform : List HashRequest.Request
183
- urlsToPerform =
184
- -- TODO is this redundant with cacheRequestResolution?
185
- StaticHttpRequest.resolveUrls request allRawResponses
186
-
187
- newAllRawResponses : RequestsAndPending
188
- newAllRawResponses =
189
- Dict.union allRawResponses dictOfNewUrlsToPerform
190
-
191
- dictOfNewUrlsToPerform : RequestsAndPending
192
- dictOfNewUrlsToPerform =
193
- urlsToPerform
194
- |> List.map (\url -> ( HashRequest.hash url, Nothing ))
195
- |> Dict.fromList
196
-
197
- maskedToUnmasked : Dict String HashRequest.Request
198
- maskedToUnmasked =
199
- urlsToPerform
200
- |> List.map
201
- (\secureUrl ->
202
- ( HashRequest.hash secureUrl, secureUrl )
203
- )
204
- |> Dict.fromList
205
-
206
- alreadyPerformed : Set String
207
- alreadyPerformed =
208
- allRawResponses
209
- |> Dict.keys
210
- |> Set.fromList
211
-
212
- newThing : List HashRequest.Request
213
- newThing =
214
- maskedToUnmasked
215
- |> Dict.Extra.removeMany alreadyPerformed
216
- |> Dict.values
217
- in
218
- ( model.staticResponses, Continue newAllRawResponses newThing maybeRoutes )
63
+ Continue urlsToPerform progressedBackendTask
219
64
 
220
65
  else
221
66
  let
@@ -245,80 +90,24 @@ nextStep ({ allRawResponses, errors } as model) maybeRoutes =
245
90
  in
246
91
  errors ++ failedRequests
247
92
  in
248
- case model.staticResponses of
249
- StaticResponses _ ->
250
- ( model.staticResponses
251
- , if List.length allErrors > 0 then
252
- allErrors
253
- |> Errors
254
- |> Finish
255
-
256
- else
257
- Finish ApiResponse
258
- )
259
-
260
- ApiRequest _ ->
261
- ( model.staticResponses
262
- , if List.length allErrors > 0 then
263
- allErrors
264
- |> Errors
265
- |> Finish
266
-
267
- else
268
- ApiResponse
269
- |> Finish
270
- )
271
-
272
- CheckIfHandled pageFoundDataSource (NotFetched _ _) andThenRequest ->
273
- let
274
- pageFoundResult : Result StaticHttpRequest.Error (Maybe NotFoundReason)
275
- pageFoundResult =
276
- StaticHttpRequest.resolve
277
- pageFoundDataSource
278
- allRawResponses
279
- in
280
- case pageFoundResult of
281
- Ok Nothing ->
282
- nextStep { model | staticResponses = StaticResponses andThenRequest } maybeRoutes
283
-
284
- Ok (Just _) ->
285
- ( empty
286
- , Finish ApiResponse
287
- -- TODO change data type here so you can avoid running `resolve` again from `Cli.elm` since it can be expensive
288
- )
289
-
290
- Err error_ ->
291
- let
292
- failedRequests : List BuildError
293
- failedRequests =
294
- let
295
- maybePermanentError : Maybe StaticHttpRequest.Error
296
- maybePermanentError =
297
- case staticRequestsStatus of
298
- StaticHttpRequest.HasPermanentError theError ->
299
- Just theError
300
-
301
- _ ->
302
- Nothing
303
-
304
- decoderErrors : List BuildError
305
- decoderErrors =
306
- maybePermanentError
307
- |> Maybe.map (StaticHttpRequest.toBuildError "TODO PATH")
308
- |> Maybe.map List.singleton
309
- |> Maybe.withDefault []
310
- in
311
- decoderErrors
312
- in
313
- ( model.staticResponses
314
- , Finish
315
- (Errors <|
316
- (StaticHttpRequest.toBuildError
317
- -- TODO give more fine-grained error reference
318
- "get static routes"
319
- error_
320
- :: failedRequests
321
- ++ errors
322
- )
323
- )
324
- )
93
+ if List.length allErrors > 0 then
94
+ FinishedWithErrors allErrors
95
+
96
+ else
97
+ case completedValue of
98
+ Just (Ok completed) ->
99
+ Finish completed
100
+
101
+ Just (Err (Pages.Internal.FatalError.FatalError buildError)) ->
102
+ FinishedWithErrors
103
+ [ { title = buildError.title |> String.toUpper
104
+ , path = "" -- TODO include path here
105
+ , message = buildError.body |> TerminalText.fromAnsiString
106
+ , fatal = True
107
+ }
108
+ ]
109
+
110
+ Nothing ->
111
+ FinishedWithErrors
112
+ [ BuildError.internal "TODO error message"
113
+ ]
@@ -25,7 +25,7 @@ type alias ToJsSuccessPayloadNew =
25
25
  , staticHttpCache : Dict String String
26
26
  , is404 : Bool
27
27
  , statusCode : Int
28
- , headers : List ( String, String )
28
+ , headers : Dict String (List String)
29
29
  }
30
30
 
31
31
 
@@ -76,7 +76,7 @@ successCodecNew canonicalSiteUrl currentPagePath =
76
76
  |> Codec.field "statusCode" .statusCode Codec.int
77
77
  |> Codec.field "headers"
78
78
  .headers
79
- (Codec.dict Codec.string |> Codec.map Dict.toList Dict.fromList)
79
+ (Codec.dict (Codec.list Codec.string))
80
80
  |> Codec.buildObject
81
81
 
82
82
 
@@ -89,7 +89,7 @@ headCodec canonicalSiteUrl currentPagePath =
89
89
  type ToJsSuccessPayloadNewCombined
90
90
  = PageProgress ToJsSuccessPayloadNew
91
91
  | SendApiResponse { body : Json.Encode.Value, staticHttpCache : Dict String String, statusCode : Int }
92
- | DoHttp Pages.StaticHttp.Request.Request Bool
92
+ | DoHttp (List ( String, Pages.StaticHttp.Request.Request ))
93
93
  | Port String
94
94
  | Errors (List BuildError)
95
95
  | ApiResponse
@@ -109,8 +109,8 @@ successCodecNew2 canonicalSiteUrl currentPagePath =
109
109
  PageProgress payload ->
110
110
  success payload
111
111
 
112
- DoHttp requestUrl _ ->
113
- vDoHttp requestUrl requestUrl.useCache
112
+ DoHttp hashRequestPairs ->
113
+ vDoHttp hashRequestPairs
114
114
 
115
115
  SendApiResponse record ->
116
116
  vSendApiResponse record
@@ -121,10 +121,7 @@ successCodecNew2 canonicalSiteUrl currentPagePath =
121
121
  |> Codec.variant1 "Errors" Errors errorCodec
122
122
  |> Codec.variant0 "ApiResponse" ApiResponse
123
123
  |> Codec.variant1 "PageProgress" PageProgress (successCodecNew canonicalSiteUrl currentPagePath)
124
- |> Codec.variant2 "DoHttp"
125
- DoHttp
126
- Pages.StaticHttp.Request.codec
127
- Codec.bool
124
+ |> Codec.variant1 "DoHttp" DoHttp (Codec.list (Codec.tuple Codec.string Pages.StaticHttp.Request.codec))
128
125
  |> Codec.variant1 "ApiResponse"
129
126
  SendApiResponse
130
127
  (Codec.object (\body staticHttpCache statusCode -> { body = body, staticHttpCache = staticHttpCache, statusCode = statusCode })