elm-pages 2.1.11 → 3.0.0-beta.0
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/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Internal-RoutePattern.elmi +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Internal-RoutePattern.elmo +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-NoContractViolations.elmi +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-NoContractViolations.elmo +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-NoContractViolationsTest.elmi +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-NoContractViolationsTest.elmo +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Reporter.elmi +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Reporter.elmo +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Runner.elmi +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Runner.elmo +0 -0
- 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/{template/public/style.css → review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/lock} +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 -0
- package/generator/review/elm-stuff/tests-0.19.1/js/Reporter.elm.js +6795 -0
- package/generator/review/elm-stuff/tests-0.19.1/js/Runner.elm.js +27617 -0
- package/generator/review/elm-stuff/tests-0.19.1/js/node_runner.js +110 -0
- package/generator/review/elm-stuff/tests-0.19.1/js/node_supervisor.js +187 -0
- package/generator/review/elm-stuff/tests-0.19.1/js/package.json +1 -0
- package/generator/review/elm-stuff/tests-0.19.1/src/Reporter.elm +26 -0
- package/generator/review/elm-stuff/tests-0.19.1/src/Runner.elm +62 -0
- package/generator/review/elm.json +13 -4
- package/{src → generator/review/src}/Pages/Review/NoContractViolations.elm +148 -148
- package/generator/review/tests/Pages/Review/NoContractViolationsTest.elm +331 -0
- package/generator/src/RouteBuilder.elm +420 -0
- package/generator/src/SharedTemplate.elm +4 -5
- package/generator/src/SiteConfig.elm +3 -9
- package/generator/src/build.js +308 -95
- package/generator/src/cli.js +103 -8
- package/generator/src/codegen.js +192 -35
- package/generator/src/compile-elm.js +183 -31
- package/generator/src/dev-server.js +353 -96
- package/generator/src/elm-application.json +3 -1
- package/generator/src/elm-codegen.js +34 -0
- package/generator/src/elm-file-constants.js +2 -0
- package/generator/src/error-formatter.js +20 -1
- package/generator/src/generate-template-module-connector.js +120 -924
- package/generator/src/hello.ts +5 -0
- package/generator/src/pre-render-html.js +58 -104
- package/generator/src/render-worker.js +27 -13
- package/generator/src/render.js +252 -197
- package/generator/src/request-cache-fs.js +18 -0
- package/generator/src/request-cache.js +128 -56
- package/generator/src/rewrite-client-elm-json.js +49 -0
- package/generator/src/route-codegen-helpers.js +62 -1
- package/generator/static-code/dev-style.css +22 -0
- package/generator/static-code/elm-pages.js +43 -39
- package/generator/static-code/hmr.js +98 -88
- package/generator/template/app/Api.elm +25 -0
- package/generator/template/app/ErrorPage.elm +38 -0
- package/generator/template/app/Route/Index.elm +87 -0
- package/generator/template/{src → app}/Shared.elm +34 -13
- package/generator/template/app/Site.elm +19 -0
- package/generator/template/{src → app}/View.elm +0 -0
- package/generator/template/elm-pages.config.mjs +5 -0
- package/generator/template/elm.json +1 -0
- package/generator/template/{public/index.js → index.ts} +7 -3
- package/generator/template/package.json +4 -4
- package/generator/template/public/favicon.ico +0 -0
- package/generator/template/public/images/icon-png.png +0 -0
- package/generator/template/src/.gitkeep +0 -0
- package/generator/template/style.css +4 -0
- package/package.json +30 -23
- package/src/ApiRoute.elm +176 -43
- package/src/BuildError.elm +10 -1
- package/src/CookieParser.elm +84 -0
- package/src/DataSource/Env.elm +38 -0
- package/src/DataSource/File.elm +27 -16
- package/src/DataSource/Glob.elm +126 -80
- package/src/DataSource/Http.elm +283 -304
- package/src/DataSource/Internal/Glob.elm +5 -21
- package/src/DataSource/Internal/Request.elm +25 -0
- package/src/DataSource/Port.elm +17 -14
- package/src/DataSource.elm +55 -318
- package/src/Form/Field.elm +717 -0
- package/src/Form/FieldStatus.elm +36 -0
- package/src/Form/FieldView.elm +417 -0
- package/src/Form/FormData.elm +22 -0
- package/src/Form/Validation.elm +391 -0
- package/src/Form/Value.elm +118 -0
- package/src/Form.elm +1683 -0
- package/src/FormData.elm +58 -0
- package/src/FormDecoder.elm +102 -0
- package/src/Head/Seo.elm +12 -4
- package/src/Head.elm +12 -2
- package/src/HtmlPrinter.elm +1 -1
- package/src/Internal/ApiRoute.elm +17 -4
- package/src/Internal/Request.elm +7 -0
- package/src/PageServerResponse.elm +68 -0
- package/src/Pages/ContentCache.elm +1 -229
- package/src/Pages/Fetcher.elm +58 -0
- package/src/Pages/FormState.elm +256 -0
- package/src/Pages/Generate.elm +800 -0
- package/src/Pages/Internal/Form.elm +17 -0
- package/src/Pages/Internal/NotFoundReason.elm +3 -55
- package/src/Pages/Internal/Platform/Cli.elm +777 -579
- package/src/Pages/Internal/Platform/Effect.elm +5 -5
- package/src/Pages/Internal/Platform/StaticResponses.elm +178 -394
- package/src/Pages/Internal/Platform/ToJsPayload.elm +24 -23
- package/src/Pages/Internal/Platform.elm +1244 -504
- package/src/Pages/Internal/ResponseSketch.elm +19 -0
- package/src/Pages/Internal/RoutePattern.elm +596 -45
- package/src/Pages/Manifest.elm +26 -0
- package/src/Pages/Msg.elm +79 -0
- package/src/Pages/ProgramConfig.elm +67 -14
- package/src/Pages/SiteConfig.elm +3 -6
- package/src/Pages/StaticHttp/Request.elm +4 -2
- package/src/Pages/StaticHttpRequest.elm +50 -215
- package/src/Pages/Transition.elm +70 -0
- package/src/Path.elm +1 -0
- package/src/Pattern.elm +98 -0
- package/src/RenderRequest.elm +2 -2
- package/src/RequestsAndPending.elm +111 -9
- package/src/Server/Request.elm +1253 -0
- package/src/Server/Response.elm +292 -0
- package/src/Server/Session.elm +316 -0
- package/src/Server/SetCookie.elm +169 -0
- package/src/TerminalText.elm +1 -1
- package/src/Test/Html/Internal/ElmHtml/Markdown.elm +0 -1
- package/src/Test/Html/Internal/ElmHtml/ToString.elm +1 -1
- package/generator/src/Page.elm +0 -359
- package/generator/src/codegen-template-module.js +0 -183
- package/generator/src/elm-pages-js-minified.js +0 -1
- package/generator/template/src/Api.elm +0 -14
- package/generator/template/src/Page/Index.elm +0 -69
- package/generator/template/src/Site.elm +0 -41
- package/src/DataSource/ServerRequest.elm +0 -60
- package/src/Internal/OptimizedDecoder.elm +0 -18
- package/src/KeepOrDiscard.elm +0 -6
- package/src/OptimizedDecoder/Pipeline.elm +0 -335
- package/src/OptimizedDecoder.elm +0 -818
- package/src/Pages/Internal/ApplicationType.elm +0 -6
- package/src/Pages/Secrets.elm +0 -83
- package/src/Secrets.elm +0 -111
- package/src/SecretsDict.elm +0 -45
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
module Pages.Review.NoContractViolationsTest exposing (all)
|
|
2
|
+
|
|
3
|
+
import Pages.Review.NoContractViolations exposing (rule)
|
|
4
|
+
import Review.Test
|
|
5
|
+
import Test exposing (Test, describe, test)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
all : Test
|
|
9
|
+
all =
|
|
10
|
+
describe "Pages.Review.NoContractViolations"
|
|
11
|
+
[ test "reports error when missing exposed declaration" <|
|
|
12
|
+
\() ->
|
|
13
|
+
"""module Route.Blog.Slug_ exposing (ActionData, Data, Msg, route)
|
|
14
|
+
|
|
15
|
+
a = 1
|
|
16
|
+
"""
|
|
17
|
+
|> testRouteModule
|
|
18
|
+
|> Review.Test.expectErrorsForModules
|
|
19
|
+
[ ( "Route.Blog.Slug_"
|
|
20
|
+
, [ Review.Test.error
|
|
21
|
+
{ message = "Unexposed Declaration in Route Module"
|
|
22
|
+
, details =
|
|
23
|
+
[ """Route Modules need to expose the following values:
|
|
24
|
+
|
|
25
|
+
- route
|
|
26
|
+
- Data
|
|
27
|
+
- ActionData
|
|
28
|
+
- Model
|
|
29
|
+
- Msg
|
|
30
|
+
|
|
31
|
+
But it is not exposing: Model"""
|
|
32
|
+
]
|
|
33
|
+
, under = "exposing (ActionData, Data, Msg, route)"
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
)
|
|
37
|
+
]
|
|
38
|
+
, test "reports RouteParams mismatch" <|
|
|
39
|
+
\() ->
|
|
40
|
+
"""module Route.Blog.Slug_ exposing (ActionData, Data, route, Model, Msg)
|
|
41
|
+
|
|
42
|
+
type alias RouteParams = { blogPostName : String }
|
|
43
|
+
|
|
44
|
+
route = {}
|
|
45
|
+
"""
|
|
46
|
+
|> testRouteModule
|
|
47
|
+
|> Review.Test.expectErrorsForModules
|
|
48
|
+
[ ( "Route.Blog.Slug_"
|
|
49
|
+
, [ Review.Test.error
|
|
50
|
+
{ message = "RouteParams don't match Route Module name"
|
|
51
|
+
, details =
|
|
52
|
+
[ """Expected
|
|
53
|
+
|
|
54
|
+
type alias RouteParams = { slug : String }
|
|
55
|
+
"""
|
|
56
|
+
]
|
|
57
|
+
, under = "{ blogPostName : String }"
|
|
58
|
+
}
|
|
59
|
+
]
|
|
60
|
+
)
|
|
61
|
+
]
|
|
62
|
+
, test "reports incorrect types for optional RouteParams" <|
|
|
63
|
+
\() ->
|
|
64
|
+
"""module Route.Docs.Section_.SubSection__ exposing (ActionData, Data, route, Model, Msg)
|
|
65
|
+
|
|
66
|
+
type alias RouteParams = { section : String, subSection : String }
|
|
67
|
+
|
|
68
|
+
route = {}
|
|
69
|
+
"""
|
|
70
|
+
|> testRouteModule
|
|
71
|
+
|> Review.Test.expectErrorsForModules
|
|
72
|
+
[ ( "Route.Docs.Section_.SubSection__"
|
|
73
|
+
, [ Review.Test.error
|
|
74
|
+
{ message = "RouteParams don't match Route Module name"
|
|
75
|
+
, details =
|
|
76
|
+
[ """Expected
|
|
77
|
+
|
|
78
|
+
type alias RouteParams = { section : String, subSection : Maybe String }
|
|
79
|
+
"""
|
|
80
|
+
]
|
|
81
|
+
, under = "{ section : String, subSection : String }"
|
|
82
|
+
}
|
|
83
|
+
]
|
|
84
|
+
)
|
|
85
|
+
]
|
|
86
|
+
, test "reports incorrect types for required splat RouteParams" <|
|
|
87
|
+
\() ->
|
|
88
|
+
"""module Route.Docs.Section_.SPLAT_ exposing (ActionData, Data, route, Model, Msg)
|
|
89
|
+
|
|
90
|
+
type alias RouteParams = { section : String, splat : List String }
|
|
91
|
+
|
|
92
|
+
route = {}
|
|
93
|
+
"""
|
|
94
|
+
|> testRouteModule
|
|
95
|
+
|> Review.Test.expectErrorsForModules
|
|
96
|
+
[ ( "Route.Docs.Section_.SPLAT_"
|
|
97
|
+
, [ Review.Test.error
|
|
98
|
+
{ message = "RouteParams don't match Route Module name"
|
|
99
|
+
, details =
|
|
100
|
+
[ """Expected
|
|
101
|
+
|
|
102
|
+
type alias RouteParams = { section : String, splat : ( String, List String ) }
|
|
103
|
+
"""
|
|
104
|
+
]
|
|
105
|
+
, under = "{ section : String, splat : List String }"
|
|
106
|
+
}
|
|
107
|
+
]
|
|
108
|
+
)
|
|
109
|
+
]
|
|
110
|
+
, test "no error for valid SPLAT_ RouteParams" <|
|
|
111
|
+
\() ->
|
|
112
|
+
"""module Route.Docs.Section_.SPLAT_ exposing (ActionData, Data, route, Model, Msg)
|
|
113
|
+
|
|
114
|
+
type alias RouteParams = { section : String, splat : ( String, List String ) }
|
|
115
|
+
|
|
116
|
+
route = {}
|
|
117
|
+
"""
|
|
118
|
+
|> testRouteModule
|
|
119
|
+
|> Review.Test.expectNoErrors
|
|
120
|
+
, test "no error for valid SPLAT__ RouteParams" <|
|
|
121
|
+
\() ->
|
|
122
|
+
"""module Route.Docs.Section_.SPLAT__ exposing (ActionData, Data, route, Model, Msg)
|
|
123
|
+
|
|
124
|
+
type alias RouteParams = { section : String, splat : List String }
|
|
125
|
+
|
|
126
|
+
route = {}
|
|
127
|
+
"""
|
|
128
|
+
|> testRouteModule
|
|
129
|
+
|> Review.Test.expectNoErrors
|
|
130
|
+
, test "no error for matching RouteParams name" <|
|
|
131
|
+
\() ->
|
|
132
|
+
"""module Route.Blog.Slug_ exposing (ActionData, Data, route, Model, Msg)
|
|
133
|
+
|
|
134
|
+
type alias RouteParams = { slug : String }
|
|
135
|
+
|
|
136
|
+
route = {}
|
|
137
|
+
"""
|
|
138
|
+
|> testRouteModule
|
|
139
|
+
|> Review.Test.expectNoErrors
|
|
140
|
+
, test "error when RouteParams type is not a record" <|
|
|
141
|
+
\() ->
|
|
142
|
+
"""module Route.Blog.Slug_ exposing (ActionData, Data, route, Model, Msg)
|
|
143
|
+
|
|
144
|
+
type alias RouteParams = ()
|
|
145
|
+
|
|
146
|
+
route = {}
|
|
147
|
+
"""
|
|
148
|
+
|> testRouteModule
|
|
149
|
+
|> Review.Test.expectErrorsForModules
|
|
150
|
+
[ ( "Route.Blog.Slug_"
|
|
151
|
+
, [ Review.Test.error
|
|
152
|
+
{ message = "RouteParams must be a record type alias."
|
|
153
|
+
, details =
|
|
154
|
+
[ """Expected a record type alias."""
|
|
155
|
+
]
|
|
156
|
+
, under = "()"
|
|
157
|
+
}
|
|
158
|
+
]
|
|
159
|
+
)
|
|
160
|
+
]
|
|
161
|
+
, test "no error for modules that don't start with Route prefix" <|
|
|
162
|
+
\() ->
|
|
163
|
+
"""module NotRouteModule.Blog.Slug_ exposing (Model, Msg)
|
|
164
|
+
|
|
165
|
+
type alias RouteParams = ()
|
|
166
|
+
|
|
167
|
+
route = {}
|
|
168
|
+
"""
|
|
169
|
+
|> testRouteModule
|
|
170
|
+
|> Review.Test.expectNoErrors
|
|
171
|
+
, test "error for missing application module definitions" <|
|
|
172
|
+
\() ->
|
|
173
|
+
[ """module Route.Index exposing (ActionData, Data, route, Model, Msg)
|
|
174
|
+
|
|
175
|
+
type alias RouteParams = {}
|
|
176
|
+
|
|
177
|
+
route = {}
|
|
178
|
+
"""
|
|
179
|
+
, """module Site exposing (config)
|
|
180
|
+
|
|
181
|
+
config : SiteConfig
|
|
182
|
+
config =
|
|
183
|
+
{ canonicalUrl = canonicalUrl
|
|
184
|
+
, head = head
|
|
185
|
+
}
|
|
186
|
+
"""
|
|
187
|
+
]
|
|
188
|
+
|> Review.Test.runOnModules rule
|
|
189
|
+
|> Review.Test.expectGlobalErrors
|
|
190
|
+
[ { message = "Missing core modules"
|
|
191
|
+
, details =
|
|
192
|
+
[ "Api"
|
|
193
|
+
, "Effect"
|
|
194
|
+
, "ErrorPage"
|
|
195
|
+
, "Shared"
|
|
196
|
+
, "View"
|
|
197
|
+
]
|
|
198
|
+
}
|
|
199
|
+
]
|
|
200
|
+
, test "no error when all core modules are defined" <|
|
|
201
|
+
\() ->
|
|
202
|
+
("""module Route.Index exposing (ActionData, Data, route, Model, Msg)
|
|
203
|
+
|
|
204
|
+
type alias RouteParams = {}
|
|
205
|
+
|
|
206
|
+
route = {}
|
|
207
|
+
"""
|
|
208
|
+
:: validCoreModules
|
|
209
|
+
)
|
|
210
|
+
|> Review.Test.runOnModules rule
|
|
211
|
+
|> Review.Test.expectNoErrors
|
|
212
|
+
, test "show missing exposed values from core modules" <|
|
|
213
|
+
\() ->
|
|
214
|
+
[ """module Route.Index exposing (ActionData, Data, route, Model, Msg)
|
|
215
|
+
|
|
216
|
+
type alias RouteParams = {}
|
|
217
|
+
|
|
218
|
+
route = {}
|
|
219
|
+
"""
|
|
220
|
+
, """module Api exposing (invalid)
|
|
221
|
+
invalid = Debug.todo ""
|
|
222
|
+
"""
|
|
223
|
+
, """module Effect exposing (invalid)
|
|
224
|
+
invalid = Debug.todo ""
|
|
225
|
+
"""
|
|
226
|
+
, """module ErrorPage exposing (invalid)
|
|
227
|
+
invalid = Debug.todo ""
|
|
228
|
+
"""
|
|
229
|
+
, """module Shared exposing (invalid)
|
|
230
|
+
invalid = Debug.todo ""
|
|
231
|
+
"""
|
|
232
|
+
, """module Site exposing (invalid)
|
|
233
|
+
invalid = Debug.todo ""
|
|
234
|
+
"""
|
|
235
|
+
, """module View exposing (invalid)
|
|
236
|
+
invalid = Debug.todo ""
|
|
237
|
+
"""
|
|
238
|
+
]
|
|
239
|
+
|> Review.Test.runOnModules rule
|
|
240
|
+
|> Review.Test.expectErrorsForModules
|
|
241
|
+
[ ( "Api"
|
|
242
|
+
, [ Review.Test.error
|
|
243
|
+
{ message = "A core elm-pages module needs to expose something"
|
|
244
|
+
, details =
|
|
245
|
+
[ "The Api module must expose `routes`"
|
|
246
|
+
]
|
|
247
|
+
, under = "exposing (invalid)"
|
|
248
|
+
}
|
|
249
|
+
]
|
|
250
|
+
)
|
|
251
|
+
, ( "Effect"
|
|
252
|
+
, [ Review.Test.error
|
|
253
|
+
{ message = "A core elm-pages module needs to expose something"
|
|
254
|
+
, details =
|
|
255
|
+
[ "The Effect module must expose `Effect`, `batch`, `fromCmd`, `map`, `none`, `perform`"
|
|
256
|
+
]
|
|
257
|
+
, under = "exposing (invalid)"
|
|
258
|
+
}
|
|
259
|
+
]
|
|
260
|
+
)
|
|
261
|
+
, ( "ErrorPage"
|
|
262
|
+
, [ Review.Test.error
|
|
263
|
+
{ message = "A core elm-pages module needs to expose something"
|
|
264
|
+
, details =
|
|
265
|
+
[ "The ErrorPage module must expose `ErrorPage`, `head`, `internalError`, `notFound`, `statusCode`, `view`"
|
|
266
|
+
]
|
|
267
|
+
, under = "exposing (invalid)"
|
|
268
|
+
}
|
|
269
|
+
]
|
|
270
|
+
)
|
|
271
|
+
, ( "Shared"
|
|
272
|
+
, [ Review.Test.error
|
|
273
|
+
{ message = "A core elm-pages module needs to expose something"
|
|
274
|
+
, details =
|
|
275
|
+
[ "The Shared module must expose `Data`, `Model`, `Msg`, `template`"
|
|
276
|
+
]
|
|
277
|
+
, under = "exposing (invalid)"
|
|
278
|
+
}
|
|
279
|
+
]
|
|
280
|
+
)
|
|
281
|
+
, ( "Site"
|
|
282
|
+
, [ Review.Test.error
|
|
283
|
+
{ message = "A core elm-pages module needs to expose something"
|
|
284
|
+
, details =
|
|
285
|
+
[ "The Site module must expose `config`"
|
|
286
|
+
]
|
|
287
|
+
, under = "exposing (invalid)"
|
|
288
|
+
}
|
|
289
|
+
]
|
|
290
|
+
)
|
|
291
|
+
, ( "View"
|
|
292
|
+
, [ Review.Test.error
|
|
293
|
+
{ message = "A core elm-pages module needs to expose something"
|
|
294
|
+
, details =
|
|
295
|
+
[ "The View module must expose `View`, `map`"
|
|
296
|
+
]
|
|
297
|
+
, under = "exposing (invalid)"
|
|
298
|
+
}
|
|
299
|
+
]
|
|
300
|
+
)
|
|
301
|
+
]
|
|
302
|
+
]
|
|
303
|
+
|
|
304
|
+
|
|
305
|
+
testRouteModule : String -> Review.Test.ReviewResult
|
|
306
|
+
testRouteModule routeModule =
|
|
307
|
+
Review.Test.runOnModules rule
|
|
308
|
+
(routeModule :: validCoreModules)
|
|
309
|
+
|
|
310
|
+
|
|
311
|
+
validCoreModules : List String
|
|
312
|
+
validCoreModules =
|
|
313
|
+
[ """module Api exposing (routes)
|
|
314
|
+
routes = Debug.todo ""
|
|
315
|
+
"""
|
|
316
|
+
, """module Effect exposing (Effect(..), batch, fromCmd, map, none, perform)
|
|
317
|
+
routes = Debug.todo ""
|
|
318
|
+
"""
|
|
319
|
+
, """module ErrorPage exposing (ErrorPage(..), Model, Msg, head, internalError, notFound, statusCode, view)
|
|
320
|
+
routes = Debug.todo ""
|
|
321
|
+
"""
|
|
322
|
+
, """module Shared exposing (Data, Model, Msg, template)
|
|
323
|
+
routes = Debug.todo ""
|
|
324
|
+
"""
|
|
325
|
+
, """module Site exposing (config)
|
|
326
|
+
routes = Debug.todo ""
|
|
327
|
+
"""
|
|
328
|
+
, """module View exposing (View, map)
|
|
329
|
+
routes = Debug.todo ""
|
|
330
|
+
"""
|
|
331
|
+
]
|