@sveltejs/kit 1.0.0-next.21 → 1.0.0-next.210

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 (81) hide show
  1. package/README.md +12 -9
  2. package/assets/components/error.svelte +19 -3
  3. package/assets/kit.js +1912 -0
  4. package/assets/runtime/app/env.js +20 -0
  5. package/assets/runtime/app/navigation.js +45 -13
  6. package/assets/runtime/app/paths.js +1 -2
  7. package/assets/runtime/app/stores.js +15 -9
  8. package/assets/runtime/chunks/utils.js +13 -0
  9. package/assets/runtime/env.js +8 -0
  10. package/assets/runtime/internal/singletons.js +5 -11
  11. package/assets/runtime/internal/start.js +979 -355
  12. package/assets/runtime/paths.js +13 -0
  13. package/dist/chunks/cert.js +29255 -0
  14. package/dist/chunks/constants.js +8 -0
  15. package/dist/chunks/error.js +21 -0
  16. package/dist/chunks/index.js +4732 -0
  17. package/dist/chunks/index2.js +812 -0
  18. package/dist/chunks/index3.js +624 -0
  19. package/dist/chunks/index4.js +109 -0
  20. package/dist/chunks/index5.js +628 -0
  21. package/dist/chunks/index6.js +827 -0
  22. package/dist/chunks/index7.js +15575 -0
  23. package/dist/chunks/misc.js +3 -0
  24. package/dist/chunks/multipart-parser.js +449 -0
  25. package/dist/chunks/url.js +62 -0
  26. package/dist/cli.js +1012 -67
  27. package/dist/hooks.js +28 -0
  28. package/dist/install-fetch.js +6514 -0
  29. package/dist/node.js +51 -0
  30. package/dist/ssr.js +1842 -0
  31. package/package.json +90 -54
  32. package/svelte-kit.js +2 -0
  33. package/types/ambient-modules.d.ts +181 -0
  34. package/types/app.d.ts +45 -0
  35. package/types/config.d.ts +163 -0
  36. package/types/endpoint.d.ts +18 -0
  37. package/types/helper.d.ts +41 -0
  38. package/types/hooks.d.ts +48 -0
  39. package/types/index.d.ts +17 -0
  40. package/types/internal.d.ts +231 -0
  41. package/types/page.d.ts +71 -0
  42. package/CHANGELOG.md +0 -282
  43. package/assets/runtime/app/navigation.js.map +0 -1
  44. package/assets/runtime/app/paths.js.map +0 -1
  45. package/assets/runtime/app/stores.js.map +0 -1
  46. package/assets/runtime/internal/singletons.js.map +0 -1
  47. package/assets/runtime/internal/start.js.map +0 -1
  48. package/assets/runtime/utils-85ebcc60.js +0 -18
  49. package/assets/runtime/utils-85ebcc60.js.map +0 -1
  50. package/dist/api.js +0 -44
  51. package/dist/api.js.map +0 -1
  52. package/dist/build.js +0 -246
  53. package/dist/build.js.map +0 -1
  54. package/dist/cli.js.map +0 -1
  55. package/dist/colors.js +0 -37
  56. package/dist/colors.js.map +0 -1
  57. package/dist/create_app.js +0 -578
  58. package/dist/create_app.js.map +0 -1
  59. package/dist/index.js +0 -12042
  60. package/dist/index.js.map +0 -1
  61. package/dist/index2.js +0 -544
  62. package/dist/index2.js.map +0 -1
  63. package/dist/index3.js +0 -71
  64. package/dist/index3.js.map +0 -1
  65. package/dist/index4.js +0 -466
  66. package/dist/index4.js.map +0 -1
  67. package/dist/index5.js +0 -729
  68. package/dist/index5.js.map +0 -1
  69. package/dist/index6.js +0 -713
  70. package/dist/index6.js.map +0 -1
  71. package/dist/logging.js +0 -43
  72. package/dist/logging.js.map +0 -1
  73. package/dist/package.js +0 -432
  74. package/dist/package.js.map +0 -1
  75. package/dist/renderer.js +0 -2391
  76. package/dist/renderer.js.map +0 -1
  77. package/dist/standard.js +0 -101
  78. package/dist/standard.js.map +0 -1
  79. package/dist/utils.js +0 -54
  80. package/dist/utils.js.map +0 -1
  81. package/svelte-kit +0 -3
@@ -0,0 +1,231 @@
1
+ import { OutputAsset, OutputChunk } from 'rollup';
2
+ import { RequestHandler } from './endpoint';
3
+ import { InternalApp, SSRManifest } from './app';
4
+ import {
5
+ ExternalFetch,
6
+ GetSession,
7
+ HandleError,
8
+ InternalHandle,
9
+ ServerRequest,
10
+ ServerResponse
11
+ } from './hooks';
12
+ import { Load } from './page';
13
+
14
+ type PageId = string;
15
+
16
+ export interface PrerenderOptions {
17
+ fallback?: string;
18
+ all: boolean;
19
+ dependencies: Map<string, ServerResponse>;
20
+ }
21
+
22
+ export interface AppModule {
23
+ App: typeof InternalApp;
24
+
25
+ override(options: {
26
+ paths: {
27
+ base: string;
28
+ assets: string;
29
+ };
30
+ prerendering: boolean;
31
+ protocol?: 'http' | 'https';
32
+ read(file: string): Buffer;
33
+ }): void;
34
+ }
35
+
36
+ export interface Logger {
37
+ (msg: string): void;
38
+ success(msg: string): void;
39
+ error(msg: string): void;
40
+ warn(msg: string): void;
41
+ minor(msg: string): void;
42
+ info(msg: string): void;
43
+ }
44
+
45
+ export interface SSRComponent {
46
+ ssr?: boolean;
47
+ router?: boolean;
48
+ hydrate?: boolean;
49
+ prerender?: boolean;
50
+ preload?: any; // TODO remove for 1.0
51
+ load: Load;
52
+ default: {
53
+ render(props: Record<string, any>): {
54
+ html: string;
55
+ head: string;
56
+ css: {
57
+ code: string;
58
+ map: any; // TODO
59
+ };
60
+ };
61
+ };
62
+ }
63
+
64
+ export type SSRComponentLoader = () => Promise<SSRComponent>;
65
+
66
+ export type CSRComponent = any; // TODO
67
+
68
+ export type CSRComponentLoader = () => Promise<CSRComponent>;
69
+
70
+ export interface SSRPagePart {
71
+ id: string;
72
+ load: SSRComponentLoader;
73
+ }
74
+
75
+ export type GetParams = (match: RegExpExecArray) => Record<string, string>;
76
+
77
+ export interface SSRPage {
78
+ type: 'page';
79
+ pattern: RegExp;
80
+ params: GetParams;
81
+ /**
82
+ * plan a is to render 1 or more layout components followed by a leaf component.
83
+ */
84
+ a: number[];
85
+ /**
86
+ * plan b — if one of them components fails in `load` we backtrack until we find
87
+ * the nearest error component.
88
+ */
89
+ b: number[];
90
+ }
91
+
92
+ export interface SSREndpoint {
93
+ type: 'endpoint';
94
+ pattern: RegExp;
95
+ params: GetParams;
96
+ load(): Promise<{
97
+ [method: string]: RequestHandler;
98
+ }>;
99
+ }
100
+
101
+ export type SSRRoute = SSREndpoint | SSRPage;
102
+
103
+ export type CSRRoute = [RegExp, CSRComponentLoader[], CSRComponentLoader[], GetParams?];
104
+
105
+ export type SSRNodeLoader = () => Promise<SSRNode>;
106
+
107
+ export interface Hooks {
108
+ externalFetch: ExternalFetch;
109
+ getSession: GetSession;
110
+ handle: InternalHandle;
111
+ handleError: HandleError;
112
+ }
113
+
114
+ export interface SSRNode {
115
+ module: SSRComponent;
116
+ /** client-side module URL for this component */
117
+ entry: string;
118
+ /** external CSS files */
119
+ css: string[];
120
+ /** external JS files */
121
+ js: string[];
122
+ /** inlined styles */
123
+ styles: string[];
124
+ }
125
+
126
+ export interface SSRRenderOptions {
127
+ amp: boolean;
128
+ dev: boolean;
129
+ floc: boolean;
130
+ get_stack: (error: Error) => string | undefined;
131
+ handle_error(error: Error & { frame?: string }, request: ServerRequest<any>): void;
132
+ hooks: Hooks;
133
+ hydrate: boolean;
134
+ manifest: SSRManifest;
135
+ paths: {
136
+ base: string;
137
+ assets: string;
138
+ };
139
+ prefix: string;
140
+ prerender: boolean;
141
+ read(file: string): Buffer;
142
+ root: SSRComponent['default'];
143
+ router: boolean;
144
+ service_worker?: string;
145
+ ssr: boolean;
146
+ target: string;
147
+ template({ head, body }: { head: string; body: string }): string;
148
+ trailing_slash: TrailingSlash;
149
+ }
150
+
151
+ export interface SSRRenderState {
152
+ fetched?: string;
153
+ initiator?: SSRPage | null;
154
+ prerender?: PrerenderOptions;
155
+ fallback?: string;
156
+ }
157
+
158
+ export interface Asset {
159
+ file: string;
160
+ size: number;
161
+ type: string | null;
162
+ }
163
+
164
+ export interface RouteSegment {
165
+ content: string;
166
+ dynamic: boolean;
167
+ rest: boolean;
168
+ }
169
+
170
+ export type HttpMethod = 'get' | 'head' | 'post' | 'put' | 'delete' | 'patch';
171
+
172
+ export interface PageData {
173
+ type: 'page';
174
+ segments: RouteSegment[];
175
+ pattern: RegExp;
176
+ params: string[];
177
+ path: string;
178
+ a: string[];
179
+ b: string[];
180
+ }
181
+
182
+ export interface EndpointData {
183
+ type: 'endpoint';
184
+ segments: RouteSegment[];
185
+ pattern: RegExp;
186
+ params: string[];
187
+ file: string;
188
+ }
189
+
190
+ export type RouteData = PageData | EndpointData;
191
+
192
+ export interface ManifestData {
193
+ assets: Asset[];
194
+ layout: string;
195
+ error: string;
196
+ components: string[];
197
+ routes: RouteData[];
198
+ }
199
+
200
+ export interface BuildData {
201
+ app_dir: string;
202
+ manifest_data: ManifestData;
203
+ client: {
204
+ assets: OutputAsset[];
205
+ chunks: OutputChunk[];
206
+ entry: {
207
+ file: string;
208
+ js: string[];
209
+ css: string[];
210
+ };
211
+ vite_manifest: import('vite').Manifest;
212
+ };
213
+ server: {
214
+ chunks: OutputChunk[];
215
+ methods: Record<string, HttpMethod[]>;
216
+ vite_manifest: import('vite').Manifest;
217
+ };
218
+ static: string[];
219
+ entries: string[];
220
+ }
221
+
222
+ export interface NormalizedLoadOutput {
223
+ status: number;
224
+ error?: Error;
225
+ redirect?: string;
226
+ props?: Record<string, any> | Promise<Record<string, any>>;
227
+ stuff?: Record<string, any>;
228
+ maxage?: number;
229
+ }
230
+
231
+ export type TrailingSlash = 'never' | 'always' | 'ignore';
@@ -0,0 +1,71 @@
1
+ import { InferValue, MaybePromise, Rec } from './helper';
2
+
3
+ export interface LoadInput<
4
+ PageParams extends Rec<string> = Rec<string>,
5
+ Stuff extends Rec = Rec,
6
+ Session = any
7
+ > {
8
+ url: URL;
9
+ params: PageParams;
10
+ fetch(info: RequestInfo, init?: RequestInit): Promise<Response>;
11
+ session: Session;
12
+ stuff: Stuff;
13
+ }
14
+
15
+ export interface ErrorLoadInput<
16
+ PageParams extends Rec<string> = Rec<string>,
17
+ Stuff extends Rec = Rec,
18
+ Session = any
19
+ > extends LoadInput<PageParams, Stuff, Session> {
20
+ status?: number;
21
+ error?: Error;
22
+ }
23
+
24
+ export interface LoadOutput<Props extends Rec = Rec, Stuff extends Rec = Rec> {
25
+ status?: number;
26
+ error?: string | Error;
27
+ redirect?: string;
28
+ props?: Props;
29
+ stuff?: Stuff;
30
+ maxage?: number;
31
+ }
32
+
33
+ interface LoadInputExtends {
34
+ stuff?: Rec;
35
+ pageParams?: Rec<string>;
36
+ session?: any;
37
+ }
38
+
39
+ interface LoadOutputExtends {
40
+ stuff?: Rec;
41
+ props?: Rec;
42
+ }
43
+
44
+ export interface Load<
45
+ Input extends LoadInputExtends = Required<LoadInputExtends>,
46
+ Output extends LoadOutputExtends = Required<LoadOutputExtends>
47
+ > {
48
+ (
49
+ input: LoadInput<
50
+ InferValue<Input, 'pageParams', Rec<string>>,
51
+ InferValue<Input, 'stuff', Rec>,
52
+ InferValue<Input, 'session', any>
53
+ >
54
+ ): MaybePromise<void | LoadOutput<
55
+ InferValue<Output, 'props', Rec>,
56
+ InferValue<Output, 'stuff', Rec>
57
+ >>;
58
+ }
59
+
60
+ export interface ErrorLoad<
61
+ Input extends LoadInputExtends = Required<LoadInputExtends>,
62
+ Output extends LoadOutputExtends = Required<LoadOutputExtends>
63
+ > {
64
+ (
65
+ input: ErrorLoadInput<
66
+ InferValue<Input, 'pageParams', Rec<string>>,
67
+ InferValue<Input, 'stuff', Rec>,
68
+ InferValue<Input, 'session', any>
69
+ >
70
+ ): MaybePromise<LoadOutput<InferValue<Output, 'props', Rec>, InferValue<Output, 'stuff', Rec>>>;
71
+ }
package/CHANGELOG.md DELETED
@@ -1,282 +0,0 @@
1
- # @sveltejs/kit
2
-
3
- ## 1.0.0-next.21
4
-
5
- ### Patch Changes
6
-
7
- - 217e4cc: Set paths to empty string before prerender
8
-
9
- ## 1.0.0-next.20
10
-
11
- ### Patch Changes
12
-
13
- - ccf4aa7: Implement prerender config
14
-
15
- ## 1.0.0-next.19
16
-
17
- ### Patch Changes
18
-
19
- - deda984: Make navigating store contain from and to properties
20
-
21
- ## 1.0.0-next.18
22
-
23
- ### Patch Changes
24
-
25
- - c29b61e: Announce page changes
26
- - 72da270: Reset focus properly
27
-
28
- ## 1.0.0-next.17
29
-
30
- ### Patch Changes
31
-
32
- - f7dea55: Set process.env.NODE_ENV when invoking via the CLI
33
-
34
- ## 1.0.0-next.16
35
-
36
- ### Patch Changes
37
-
38
- - Remove temporary logging
39
- - Add sveltekit:prefetch and sveltekit:noscroll
40
-
41
- ## 1.0.0-next.15
42
-
43
- ### Patch Changes
44
-
45
- - 6d1bb11: Fix AMP CSS
46
- - d8b53af: Ignore $layout and $error files when finding static paths
47
- - Better scroll tracking
48
-
49
- ## 1.0.0-next.14
50
-
51
- ### Patch Changes
52
-
53
- - Fix dev loader
54
-
55
- ## 1.0.0-next.13
56
-
57
- ### Patch Changes
58
-
59
- - 1ea4d6b: More robust CSS extraction
60
-
61
- ## 1.0.0-next.12
62
-
63
- ### Patch Changes
64
-
65
- - e7c88dd: Tweak AMP validation screen
66
-
67
- ## 1.0.0-next.11
68
-
69
- ### Patch Changes
70
-
71
- - a31f218: Fix SSR loader invalidation
72
-
73
- ## 1.0.0-next.10
74
-
75
- ### Patch Changes
76
-
77
- - 8b14d29: Omit svelte-data scripts from AMP pages
78
-
79
- ## 1.0.0-next.9
80
-
81
- ### Patch Changes
82
-
83
- - f5fa223: AMP support
84
- - 47f2ee1: Always remove trailing slashes
85
- - 1becb94: Replace preload with load
86
-
87
- ## 1.0.0-next.8
88
-
89
- ### Patch Changes
90
-
91
- - 15dd751: Use meta http-equiv=refresh
92
- - be7e031: Fix handling of static files
93
- - ed6b8fd: Implement \$app/env
94
-
95
- ## 1.0.0-next.7
96
-
97
- ### Patch Changes
98
-
99
- - 76705b0: make HMR work outside localhost
100
-
101
- ## 1.0.0-next.6
102
-
103
- ### Patch Changes
104
-
105
- - 0e45255: Move options behind kit namespace, change paths -> kit.files
106
- - fa7f2b2: Implement live bindings for SSR code
107
-
108
- ## 1.0.0-next.5
109
-
110
- ### Patch Changes
111
-
112
- - Return dependencies from render
113
-
114
- ## 1.0.0-next.4
115
-
116
- ### Patch Changes
117
-
118
- - af01b0d: Move renderer out of app assets folder
119
-
120
- ## 1.0.0-next.3
121
-
122
- ### Patch Changes
123
-
124
- - Add paths to manifest, for static prerendering
125
-
126
- ## 1.0.0-next.2
127
-
128
- ### Patch Changes
129
-
130
- - Fix typo causing misnamed assets folder
131
-
132
- ## 1.0.0-next.1
133
-
134
- ### Patch Changes
135
-
136
- - a4bc090: Transform exported functions correctly
137
- - 00bbf98: Fix nested layouts
138
-
139
- ## 0.0.31-next.0
140
-
141
- ### Patch Changes
142
-
143
- - ffd7bba: Fix SSR cache invalidation
144
-
145
- ## 0.0.30
146
-
147
- ### Patch Changes
148
-
149
- - Add back stores(), but with deprecation warning
150
- - Rename stores.preloading to stores.navigating
151
- - Rewrite routing logic
152
-
153
- ## 0.0.29
154
-
155
- ### Patch Changes
156
-
157
- - 10872cc: Normalize request.query
158
-
159
- ## 0.0.28
160
-
161
- ### Patch Changes
162
-
163
- - Add svelte-kit start command
164
-
165
- ## 0.0.27
166
-
167
- ### Patch Changes
168
-
169
- - rename CLI to svelte-kit
170
- - 0904e22: rename svelte CLI to svelte-kit
171
- - Validate route responses
172
- - Make paths and target configurable
173
-
174
- ## 0.0.26
175
-
176
- ### Patch Changes
177
-
178
- - b475ed4: Overhaul adapter API - fixes #166
179
- - Updated dependencies [b475ed4]
180
- - @sveltejs/app-utils@0.0.18
181
-
182
- ## 0.0.25
183
-
184
- ### Patch Changes
185
-
186
- - Updated dependencies [3bdf33b]
187
- - @sveltejs/app-utils@0.0.17
188
-
189
- ## 0.0.24
190
-
191
- ### Patch Changes
192
-
193
- - 67eaeea: Move app-utils stuff into subpackages
194
- - 7f8df30: Move kit runtime code, expose via \$app aliases
195
- - Updated dependencies [67eaeea]
196
- - @sveltejs/app-utils@0.0.16
197
-
198
- ## 0.0.23
199
-
200
- ### Patch Changes
201
-
202
- - a163000: Parse body on incoming requests
203
- - a346eab: Copy over latest Sapper router code
204
- - Updated dependencies [a163000]
205
- - @sveltejs/app-utils@0.0.15
206
-
207
- ## 0.0.22
208
-
209
- ### Patch Changes
210
-
211
- - Force bump version
212
-
213
- ## 0.0.21
214
-
215
- ### Patch Changes
216
-
217
- - Build setup entry point
218
- - Work around pkg.exports constraint
219
- - Respond with 500s if render fails
220
- - Updated dependencies [undefined]
221
- - Updated dependencies [undefined]
222
- - Updated dependencies [undefined]
223
- - @sveltejs/app-utils@0.0.14
224
-
225
- ## 0.0.20
226
-
227
- ### Patch Changes
228
-
229
- - Pass setup module to renderer
230
- - Bump Snowpack version
231
- - Updated dependencies [undefined]
232
- - Updated dependencies [96c06d8]
233
- - @sveltejs/app-utils@0.0.13
234
-
235
- ## 0.0.19
236
-
237
- ### Patch Changes
238
-
239
- - fa9d7ce: Handle import.meta in SSR module loader
240
- - 0320208: Rename 'server route' to 'endpoint'
241
- - b9444d2: Update to Snowpack 2.15
242
- - 5ca907c: Use shared mkdirp helper
243
- - Updated dependencies [0320208]
244
- - Updated dependencies [5ca907c]
245
- - @sveltejs/app-utils@0.0.12
246
-
247
- ## 0.0.18
248
-
249
- ### Patch Changes
250
-
251
- - Updated dependencies [undefined]
252
- - @sveltejs/app-utils@0.0.11
253
-
254
- ## 0.0.17
255
-
256
- ### Patch Changes
257
-
258
- - 19323e9: Update Snowpack
259
- - Updated dependencies [19323e9]
260
- - @sveltejs/app-utils@0.0.10
261
-
262
- ## 0.0.16
263
-
264
- ### Patch Changes
265
-
266
- - Updated dependencies [90a98ae]
267
- - @sveltejs/app-utils@0.0.9
268
-
269
- ## 0.0.15
270
-
271
- ### Patch Changes
272
-
273
- - Updated dependencies [undefined]
274
- - @sveltejs/app-utils@0.0.8
275
-
276
- ## 0.0.14
277
-
278
- ### Patch Changes
279
-
280
- - various
281
- - Updated dependencies [undefined]
282
- - @sveltejs/app-utils@0.0.7
@@ -1 +0,0 @@
1
- {"version":3,"file":"navigation.js","sources":["../../../src/runtime/app/navigation/index.js"],"sourcesContent":["import { router, renderer } from '../../internal/singletons';\nimport { get_base_uri } from '../../internal/utils';\n\nexport async function goto(href, opts) {\n\treturn router.goto(href, opts);\n}\n\nexport function prefetch(href) {\n\treturn renderer.prefetch(new URL(href, get_base_uri(document)));\n}\n\nexport async function prefetchRoutes(pathnames) {\n\tconst path_routes = pathnames\n\t\t? router.pages.filter((page) => pathnames.some((pathname) => page.pattern.test(pathname)))\n\t\t: router.pages;\n\n\tconst promises = path_routes.map((r) => Promise.all(r.parts.map((load) => load())));\n\n\tawait Promise.all(promises);\n}\n"],"names":[],"mappings":";;;AAGO,eAAe,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE;AACvC,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAChC,CAAC;AACD;AACO,SAAS,QAAQ,CAAC,IAAI,EAAE;AAC/B,CAAC,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC;AACD;AACO,eAAe,cAAc,CAAC,SAAS,EAAE;AAChD,CAAC,MAAM,WAAW,GAAG,SAAS;AAC9B,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC5F,IAAI,MAAM,CAAC,KAAK,CAAC;AACjB;AACA,CAAC,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACrF;AACA,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC7B;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"paths.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"stores.js","sources":["../../../src/runtime/app/stores/index.js"],"sourcesContent":["import { getContext } from 'svelte';\n\n// const ssr = (import.meta as any).env.SSR;\nconst ssr = typeof window === 'undefined'; // TODO why doesn't previous line work in build?\n\n// TODO remove this (for 1.0? after 1.0?)\nlet warned = false;\nexport function stores() {\n\tif (!warned) {\n\t\tconsole.error('stores() is deprecated; use getStores() instead');\n\t\twarned = true;\n\t}\n\treturn getStores();\n}\n\nexport const getStores = () => {\n\tconst stores = getContext('__svelte__');\n\n\treturn {\n\t\tpage: {\n\t\t\tsubscribe: stores.page.subscribe\n\t\t},\n\t\tnavigating: {\n\t\t\tsubscribe: stores.navigating.subscribe\n\t\t},\n\t\tget preloading() {\n\t\t\tconsole.error('stores.preloading is deprecated; use stores.navigating instead');\n\t\t\treturn {\n\t\t\t\tsubscribe: stores.navigating.subscribe\n\t\t\t};\n\t\t},\n\t\tsession: stores.session\n\t};\n};\n\nexport const page = {\n\tsubscribe(fn) {\n\t\tconst store = getStores().page;\n\t\treturn store.subscribe(fn);\n\t}\n};\n\nexport const navigating = {\n\tsubscribe(fn) {\n\t\tconst store = getStores().navigating;\n\t\treturn store.subscribe(fn);\n\t}\n};\n\nconst error = (verb) => {\n\tthrow new Error(\n\t\tssr\n\t\t\t? `Can only ${verb} session store in browser`\n\t\t\t: `Cannot ${verb} session store before subscribing`\n\t);\n};\n\nexport const session = {\n\tsubscribe(fn) {\n\t\tconst store = getStores().session;\n\n\t\tif (!ssr) {\n\t\t\tsession.set = store.set;\n\t\t\tsession.update = store.update;\n\t\t}\n\n\t\treturn store.subscribe(fn);\n\t},\n\tset: (value) => {\n\t\terror('set');\n\t},\n\tupdate: (updater) => {\n\t\terror('update');\n\t}\n};\n"],"names":[],"mappings":";;AAEA;AACA,MAAM,GAAG,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC;AAC1C;AACA;AACA,IAAI,MAAM,GAAG,KAAK,CAAC;AACZ,SAAS,MAAM,GAAG;AACzB,CAAC,IAAI,CAAC,MAAM,EAAE;AACd,EAAE,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;AACnE,EAAE,MAAM,GAAG,IAAI,CAAC;AAChB,EAAE;AACF,CAAC,OAAO,SAAS,EAAE,CAAC;AACpB,CAAC;AACD;AACY,MAAC,SAAS,GAAG,MAAM;AAC/B,CAAC,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;AACzC;AACA,CAAC,OAAO;AACR,EAAE,IAAI,EAAE;AACR,GAAG,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS;AACnC,GAAG;AACH,EAAE,UAAU,EAAE;AACd,GAAG,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS;AACzC,GAAG;AACH,EAAE,IAAI,UAAU,GAAG;AACnB,GAAG,OAAO,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;AACnF,GAAG,OAAO;AACV,IAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS;AAC1C,IAAI,CAAC;AACL,GAAG;AACH,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO;AACzB,EAAE,CAAC;AACH,EAAE;AACF;AACY,MAAC,IAAI,GAAG;AACpB,CAAC,SAAS,CAAC,EAAE,EAAE;AACf,EAAE,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC,IAAI,CAAC;AACjC,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE;AACF,EAAE;AACF;AACY,MAAC,UAAU,GAAG;AAC1B,CAAC,SAAS,CAAC,EAAE,EAAE;AACf,EAAE,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC,UAAU,CAAC;AACvC,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE;AACF,EAAE;AACF;AACA,MAAM,KAAK,GAAG,CAAC,IAAI,KAAK;AACxB,CAAC,MAAM,IAAI,KAAK;AAChB,EAAE,GAAG;AACL,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,yBAAyB,CAAC;AAChD,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,iCAAiC,CAAC;AACtD,EAAE,CAAC;AACH,CAAC,CAAC;AACF;AACY,MAAC,OAAO,GAAG;AACvB,CAAC,SAAS,CAAC,EAAE,EAAE;AACf,EAAE,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC,OAAO,CAAC;AACpC;AACA,EAAE,IAAI,CAAC,GAAG,EAAE;AACZ,GAAG,OAAO,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;AAC3B,GAAG,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AACjC,GAAG;AACH;AACA,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE;AACF,CAAC,GAAG,EAAE,CAAC,KAAK,KAAK;AACjB,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;AACf,EAAE;AACF,CAAC,MAAM,EAAE,CAAC,OAAO,KAAK;AACtB,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;AAClB,EAAE;AACF;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"singletons.js","sources":["../../../src/runtime/internal/singletons.js"],"sourcesContent":["export let router;\nexport let renderer;\nexport let base;\nexport let assets;\n\nexport function init(opts) {\n\t({ router, renderer } = opts);\n}\n\nexport function set_paths(paths) {\n\t({ base, assets } = paths);\n}\n"],"names":[],"mappings":"AAAU,IAAC,OAAO;AACR,IAAC,SAAS;AACV,IAAC,KAAK;AACN,IAAC,OAAO;AAClB;AACO,SAAS,IAAI,CAAC,IAAI,EAAE;AAC3B,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE;AAC/B,CAAC;AACD;AACO,SAAS,SAAS,CAAC,KAAK,EAAE;AACjC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE;AAC5B;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"start.js","sources":["../../../src/runtime/internal/router/index.js","../../../src/runtime/internal/renderer/index.js","../../../src/runtime/internal/start.js"],"sourcesContent":["import { find_anchor, get_base_uri } from '../utils';\n\nfunction which(event) {\n\treturn event.which === null ? event.button : event.which;\n}\n\nfunction scroll_state() {\n\treturn {\n\t\tx: pageXOffset,\n\t\ty: pageYOffset\n\t};\n}\n\nexport class Router {\n\tconstructor({ base, host, pages, ignore }) {\n\t\tthis.base = base;\n\t\tthis.host = host;\n\t\tthis.pages = pages;\n\t\tthis.ignore = ignore;\n\n\t\tthis.history = window.history || {\n\t\t\tpushState: () => {},\n\t\t\treplaceState: () => {},\n\t\t\tscrollRestoration: 'auto'\n\t\t};\n\t}\n\n\tinit({ renderer }) {\n\t\tthis.renderer = renderer;\n\t\trenderer.router = this;\n\n\t\tif ('scrollRestoration' in this.history) {\n\t\t\tthis.history.scrollRestoration = 'manual';\n\t\t}\n\n\t\t// Adopted from Nuxt.js\n\t\t// Reset scrollRestoration to auto when leaving page, allowing page reload\n\t\t// and back-navigation from other pages to use the browser to restore the\n\t\t// scrolling position.\n\t\taddEventListener('beforeunload', () => {\n\t\t\tthis.history.scrollRestoration = 'auto';\n\t\t});\n\n\t\t// Setting scrollRestoration to manual again when returning to this page.\n\t\taddEventListener('load', () => {\n\t\t\tthis.history.scrollRestoration = 'manual';\n\t\t});\n\n\t\t// There's no API to capture the scroll location right before the user\n\t\t// hits the back/forward button, so we listen for scroll events\n\t\tlet scroll_timer;\n\t\taddEventListener('scroll', () => {\n\t\t\tclearTimeout(scroll_timer);\n\t\t\tscroll_timer = setTimeout(() => {\n\t\t\t\t// Store the scroll location in the history\n\t\t\t\t// This will persist even if we navigate away from the site and come back\n\t\t\t\tconst new_state = {\n\t\t\t\t\t...(history.state || {}),\n\t\t\t\t\t'sveltekit:scroll': scroll_state()\n\t\t\t\t};\n\t\t\t\thistory.replaceState(new_state, document.title, window.location);\n\t\t\t}, 50);\n\t\t});\n\n\t\taddEventListener('click', (event) => {\n\t\t\t// Adapted from https://github.com/visionmedia/page.js\n\t\t\t// MIT license https://github.com/visionmedia/page.js#license\n\t\t\tif (which(event) !== 1) return;\n\t\t\tif (event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) return;\n\t\t\tif (event.defaultPrevented) return;\n\n\t\t\tconst a = find_anchor(event.target);\n\t\t\tif (!a) return;\n\n\t\t\tif (!a.href) return;\n\n\t\t\t// check if link is inside an svg\n\t\t\t// in this case, both href and target are always inside an object\n\t\t\tconst svg = typeof a.href === 'object' && a.href.constructor.name === 'SVGAnimatedString';\n\t\t\tconst href = String(svg ? a.href.baseVal : a.href);\n\n\t\t\tif (href === location.href) {\n\t\t\t\tif (!location.hash) event.preventDefault();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Ignore if tag has\n\t\t\t// 1. 'download' attribute\n\t\t\t// 2. rel='external' attribute\n\t\t\tif (a.hasAttribute('download') || a.getAttribute('rel') === 'external') return;\n\n\t\t\t// Ignore if <a> has a target\n\t\t\tif (svg ? a.target.baseVal : a.target) return;\n\n\t\t\tconst url = new URL(href);\n\n\t\t\t// Don't handle hash changes\n\t\t\tif (url.pathname === location.pathname && url.search === location.search) return;\n\n\t\t\tconst selected = this.select(url);\n\t\t\tif (selected) {\n\t\t\t\tconst noscroll = a.hasAttribute('sveltekit:noscroll');\n\t\t\t\tthis.renderer.notify(selected);\n\t\t\t\tthis.history.pushState({}, '', url.href);\n\t\t\t\tthis.navigate(selected, noscroll ? scroll_state() : false, url.hash);\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t});\n\n\t\taddEventListener('popstate', (event) => {\n\t\t\tif (event.state) {\n\t\t\t\tconst url = new URL(location.href);\n\t\t\t\tconst selected = this.select(url);\n\t\t\t\tif (selected) {\n\t\t\t\t\tthis.navigate(selected, event.state['sveltekit:scroll']);\n\t\t\t\t} else {\n\t\t\t\t\t// eslint-disable-next-line\n\t\t\t\t\tlocation.href = location.href; // nosonar\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t// make it possible to reset focus\n\t\tdocument.body.setAttribute('tabindex', '-1');\n\n\t\t// load current page\n\t\tthis.history.replaceState({}, '', location.href);\n\n\t\tconst selected = this.select(new URL(location.href));\n\t\tif (selected) return this.renderer.start(selected);\n\t}\n\n\tselect(url) {\n\t\tif (url.origin !== location.origin) return null;\n\t\tif (!url.pathname.startsWith(this.base)) return null;\n\n\t\tlet path = url.pathname.slice(this.base.length);\n\n\t\tif (path === '') {\n\t\t\tpath = '/';\n\t\t}\n\n\t\t// avoid accidental clashes between server routes and page routes\n\t\tif (this.ignore.some((pattern) => pattern.test(path))) return;\n\n\t\tfor (const route of this.pages) {\n\t\t\tconst match = route.pattern.exec(path);\n\n\t\t\tif (match) {\n\t\t\t\tconst query = new URLSearchParams(url.search);\n\t\t\t\tconst params = route.params(match);\n\n\t\t\t\tconst page = { host: this.host, path, query, params };\n\n\t\t\t\treturn { href: url.href, route, match, page };\n\t\t\t}\n\t\t}\n\t}\n\n\tasync goto(href, { noscroll = false, replaceState = false } = {}) {\n\t\tconst url = new URL(href, get_base_uri(document));\n\t\tconst selected = this.select(url);\n\n\t\tif (selected) {\n\t\t\tthis.renderer.notify(selected);\n\n\t\t\t// TODO shouldn't need to pass the hash here\n\t\t\tthis.history[replaceState ? 'replaceState' : 'pushState']({}, '', href);\n\t\t\treturn this.navigate(selected, noscroll ? scroll_state() : false, url.hash);\n\t\t}\n\n\t\tlocation.href = href;\n\t\treturn new Promise(() => {\n\t\t\t/* never resolves */\n\t\t});\n\t}\n\n\tasync navigate(selected, scroll, hash) {\n\t\t// remove trailing slashes\n\t\tif (location.pathname.endsWith('/') && location.pathname !== '/') {\n\t\t\thistory.replaceState({}, '', `${location.pathname.slice(0, -1)}${location.search}`);\n\t\t}\n\n\t\tawait this.renderer.render(selected);\n\n\t\tdocument.body.focus();\n\n\t\tconst deep_linked = hash && document.getElementById(hash.slice(1));\n\t\tif (scroll) {\n\t\t\tscrollTo(scroll.x, scroll.y);\n\t\t} else if (deep_linked) {\n\t\t\t// scroll is an element id (from a hash), we need to compute y\n\t\t\tscrollTo(0, deep_linked.getBoundingClientRect().top + scrollY);\n\t\t} else {\n\t\t\tscrollTo(0, 0);\n\t\t}\n\t}\n}\n","import { writable } from 'svelte/store';\nimport { find_anchor } from '../utils';\n\nfunction page_store(value) {\n\tconst store = writable(value);\n\tlet ready = true;\n\n\tfunction notify() {\n\t\tready = true;\n\t\tstore.update((val) => val);\n\t}\n\n\tfunction set(new_value) {\n\t\tready = false;\n\t\tstore.set(new_value);\n\t}\n\n\tfunction subscribe(run) {\n\t\tlet old_value;\n\t\treturn store.subscribe((new_value) => {\n\t\t\tif (old_value === undefined || (ready && new_value !== old_value)) {\n\t\t\t\trun((old_value = new_value));\n\t\t\t}\n\t\t});\n\t}\n\n\treturn { notify, set, subscribe };\n}\n\nexport class Renderer {\n\tconstructor({ Root, layout, target, error, status, preloaded, session }) {\n\t\tthis.Root = Root;\n\t\tthis.layout = layout;\n\t\tthis.layout_loader = () => layout;\n\n\t\t// TODO ideally we wouldn't need to store these...\n\t\tthis.target = target;\n\n\t\tthis.initial = {\n\t\t\tpreloaded,\n\t\t\terror,\n\t\t\tstatus\n\t\t};\n\n\t\tthis.current = {\n\t\t\tpage: null,\n\t\t\tquery: null,\n\t\t\tsession_changed: false,\n\t\t\tnodes: []\n\t\t};\n\n\t\tthis.caches = new Map();\n\n\t\tthis.prefetching = {\n\t\t\thref: null,\n\t\t\tpromise: null\n\t\t};\n\n\t\tthis.stores = {\n\t\t\tpage: page_store({}),\n\t\t\tnavigating: writable(null),\n\t\t\tsession: writable(session)\n\t\t};\n\n\t\tthis.$session = null;\n\n\t\tthis.root = null;\n\n\t\tconst trigger_prefetch = (event) => {\n\t\t\tconst a = find_anchor(event.target);\n\n\t\t\tif (a && a.hasAttribute('sveltekit:prefetch')) {\n\t\t\t\tthis.prefetch(new URL(a.href));\n\t\t\t}\n\t\t};\n\n\t\tlet mousemove_timeout;\n\t\tconst handle_mousemove = (event) => {\n\t\t\tclearTimeout(mousemove_timeout);\n\t\t\tmousemove_timeout = setTimeout(() => {\n\t\t\t\ttrigger_prefetch(event);\n\t\t\t}, 20);\n\t\t};\n\n\t\taddEventListener('touchstart', trigger_prefetch);\n\t\taddEventListener('mousemove', handle_mousemove);\n\n\t\tlet ready = false;\n\t\tthis.stores.session.subscribe(async (value) => {\n\t\t\tthis.$session = value;\n\n\t\t\tif (!ready) return;\n\t\t\tthis.current.session_changed = true;\n\n\t\t\tconst selected = this.router.select(new URL(location.href));\n\t\t\tthis.render(selected);\n\t\t});\n\t\tready = true;\n\t}\n\n\tasync start(selected) {\n\t\tconst props = {\n\t\t\tstores: this.stores,\n\t\t\terror: this.initial.error,\n\t\t\tstatus: this.initial.status,\n\t\t\tpage: selected.page\n\t\t};\n\n\t\tif (this.initial.error) {\n\t\t\tprops.components = [this.layout.default];\n\t\t} else {\n\t\t\tconst hydrated = await this.hydrate(selected);\n\n\t\t\tif (hydrated.redirect) {\n\t\t\t\tthrow new Error('TODO client-side redirects');\n\t\t\t}\n\n\t\t\tObject.assign(props, hydrated.props);\n\t\t\tthis.current = hydrated.state;\n\t\t}\n\n\t\tthis.root = new this.Root({\n\t\t\ttarget: this.target,\n\t\t\tprops,\n\t\t\thydrate: true\n\t\t});\n\n\t\tthis.initial = null;\n\t}\n\n\tnotify(selected) {\n\t\tthis.stores.navigating.set({\n\t\t\tfrom: this.current.page,\n\t\t\tto: selected.page\n\t\t});\n\t}\n\n\tasync render(selected) {\n\t\tconst token = (this.token = {});\n\n\t\tconst hydrated = await this.hydrate(selected);\n\n\t\tif (this.token === token) {\n\t\t\t// check render wasn't aborted\n\t\t\tthis.current = hydrated.state;\n\n\t\t\tthis.root.$set(hydrated.props);\n\t\t\tthis.stores.navigating.set(null);\n\t\t}\n\t}\n\n\tasync hydrate({ route, page }) {\n\t\tconst props = {\n\t\t\terror: null,\n\t\t\tstatus: 200,\n\t\t\tcomponents: []\n\t\t};\n\n\t\tconst fetcher = (url, opts) => {\n\t\t\tif (this.initial) {\n\t\t\t\tconst script = document.querySelector(`script[type=\"svelte-data\"][url=\"${url}\"]`);\n\t\t\t\tif (script) {\n\t\t\t\t\tconst { body, ...init } = JSON.parse(script.textContent);\n\t\t\t\t\treturn Promise.resolve(new Response(body, init));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn fetch(url, opts);\n\t\t};\n\n\t\tconst query = page.query.toString();\n\n\t\tconst state = {\n\t\t\tpage,\n\t\t\tquery,\n\t\t\tsession_changed: false,\n\t\t\tnodes: []\n\t\t};\n\n\t\tconst component_promises = [this.layout_loader(), ...route.parts.map((loader) => loader())];\n\t\tconst props_promises = [];\n\n\t\tlet context = {};\n\t\tlet redirect;\n\n\t\tconst changed = {\n\t\t\tparams: Object.keys(page.params).filter((key) => {\n\t\t\t\treturn !this.current.page || this.current.page.params[key] !== page.params[key];\n\t\t\t}),\n\t\t\tquery: query !== this.current.query,\n\t\t\tsession: this.current.session_changed,\n\t\t\tcontext: false\n\t\t};\n\n\t\ttry {\n\t\t\tfor (let i = 0; i < component_promises.length; i += 1) {\n\t\t\t\tconst previous = this.current.nodes[i];\n\n\t\t\t\tconst { default: component, load } = await component_promises[i];\n\t\t\t\tprops.components[i] = component;\n\n\t\t\t\tconst changed_since_last_render =\n\t\t\t\t\t!previous ||\n\t\t\t\t\tcomponent !== previous.component ||\n\t\t\t\t\tchanged.params.some((param) => previous.uses.params.has(param)) ||\n\t\t\t\t\t(changed.query && previous.uses.query) ||\n\t\t\t\t\t(changed.session && previous.uses.session) ||\n\t\t\t\t\t(changed.context && previous.uses.context);\n\n\t\t\t\tif (changed_since_last_render) {\n\t\t\t\t\tconst hash = page.path + query;\n\n\t\t\t\t\t// see if we have some cached data\n\t\t\t\t\tconst cache = this.caches.get(component);\n\t\t\t\t\tconst cached = cache && cache.get(hash);\n\n\t\t\t\t\tlet node;\n\t\t\t\t\tlet loaded;\n\n\t\t\t\t\tif (cached && (!changed.context || !cached.node.uses.context)) {\n\t\t\t\t\t\t({ node, loaded } = cached);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnode = {\n\t\t\t\t\t\t\tcomponent,\n\t\t\t\t\t\t\tuses: {\n\t\t\t\t\t\t\t\tparams: new Set(),\n\t\t\t\t\t\t\t\tquery: false,\n\t\t\t\t\t\t\t\tsession: false,\n\t\t\t\t\t\t\t\tcontext: false\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tconst params = {};\n\t\t\t\t\t\tfor (const key in page.params) {\n\t\t\t\t\t\t\tObject.defineProperty(params, key, {\n\t\t\t\t\t\t\t\tget() {\n\t\t\t\t\t\t\t\t\tnode.uses.params.add(key);\n\t\t\t\t\t\t\t\t\treturn page.params[key];\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tenumerable: true\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst session = this.$session;\n\n\t\t\t\t\t\tloaded =\n\t\t\t\t\t\t\tload &&\n\t\t\t\t\t\t\t(await load.call(null, {\n\t\t\t\t\t\t\t\tpage: {\n\t\t\t\t\t\t\t\t\t...page,\n\t\t\t\t\t\t\t\t\tparams,\n\t\t\t\t\t\t\t\t\tget query() {\n\t\t\t\t\t\t\t\t\t\tnode.uses.query = true;\n\t\t\t\t\t\t\t\t\t\treturn page.query;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tget session() {\n\t\t\t\t\t\t\t\t\tnode.uses.session = true;\n\t\t\t\t\t\t\t\t\treturn session;\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tget context() {\n\t\t\t\t\t\t\t\t\tnode.uses.context = true;\n\t\t\t\t\t\t\t\t\treturn { ...context };\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tfetch: fetcher\n\t\t\t\t\t\t\t}));\n\t\t\t\t\t}\n\n\t\t\t\t\tif (loaded) {\n\t\t\t\t\t\tif (loaded.error) {\n\t\t\t\t\t\t\tconst error = new Error(loaded.error.message);\n\t\t\t\t\t\t\terror.status = loaded.error.status;\n\t\t\t\t\t\t\tthrow error;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (loaded.redirect) {\n\t\t\t\t\t\t\tredirect = loaded.redirect;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (loaded.context) {\n\t\t\t\t\t\t\tchanged.context = true;\n\n\t\t\t\t\t\t\tcontext = {\n\t\t\t\t\t\t\t\t...context,\n\t\t\t\t\t\t\t\t...loaded.context\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (loaded.maxage) {\n\t\t\t\t\t\t\tif (!this.caches.has(component)) {\n\t\t\t\t\t\t\t\tthis.caches.set(component, new Map());\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst cache = this.caches.get(component);\n\t\t\t\t\t\t\tconst cached = { node, loaded };\n\n\t\t\t\t\t\t\tcache.set(hash, cached);\n\n\t\t\t\t\t\t\tlet ready = false;\n\n\t\t\t\t\t\t\tconst timeout = setTimeout(() => {\n\t\t\t\t\t\t\t\tclear();\n\t\t\t\t\t\t\t}, loaded.maxage * 1000);\n\n\t\t\t\t\t\t\tconst clear = () => {\n\t\t\t\t\t\t\t\tif (cache.get(hash) === cached) {\n\t\t\t\t\t\t\t\t\tcache.delete(hash);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tunsubscribe();\n\t\t\t\t\t\t\t\tclearTimeout(timeout);\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\tconst unsubscribe = this.stores.session.subscribe(() => {\n\t\t\t\t\t\t\t\tif (ready) clear();\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tready = true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tprops_promises[i] = loaded.props;\n\t\t\t\t\t}\n\n\t\t\t\t\tstate.nodes[i] = node;\n\t\t\t\t} else {\n\t\t\t\t\tstate.nodes[i] = previous;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst new_props = await Promise.all(props_promises);\n\n\t\t\tnew_props.forEach((p, i) => {\n\t\t\t\tif (p) {\n\t\t\t\t\tprops[`props_${i}`] = p;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (!this.current.page || page.path !== this.current.page.path) {\n\t\t\t\tprops.page = page;\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tprops.error = error;\n\t\t\tprops.status = 500;\n\t\t\tstate.nodes = [];\n\t\t}\n\n\t\treturn { redirect, props, state };\n\t}\n\n\tasync prefetch(url) {\n\t\tconst page = this.router.select(url);\n\n\t\tif (page) {\n\t\t\tif (url.href !== this.prefetching.href) {\n\t\t\t\tthis.prefetching = { href: url.href, promise: this.hydrate(page) };\n\t\t\t}\n\n\t\t\treturn this.prefetching.promise;\n\t\t} else {\n\t\t\tthrow new Error(`Could not prefetch ${url.href}`);\n\t\t}\n\t}\n}\n","import Root from 'ROOT'; // eslint-disable-line import/no-unresolved\nimport { pages, ignore, layout } from 'MANIFEST'; // eslint-disable-line import/no-unresolved\nimport { Router } from './router';\nimport { Renderer } from './renderer';\nimport { init, set_paths } from './singletons';\n\nexport async function start({ paths, target, host, session, preloaded, error, status }) {\n\tconst router = new Router({\n\t\tbase: paths.base,\n\t\thost,\n\t\tpages,\n\t\tignore\n\t});\n\n\tconst renderer = new Renderer({\n\t\tRoot,\n\t\tlayout,\n\t\ttarget,\n\t\tpreloaded,\n\t\terror,\n\t\tstatus,\n\t\tsession\n\t});\n\n\tinit({ router, renderer });\n\tset_paths(paths);\n\n\tawait router.init({ renderer });\n}\n"],"names":[],"mappings":";;;;;;AAEA,SAAS,KAAK,CAAC,KAAK,EAAE;AACtB,CAAC,OAAO,KAAK,CAAC,KAAK,KAAK,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;AAC1D,CAAC;AACD;AACA,SAAS,YAAY,GAAG;AACxB,CAAC,OAAO;AACR,EAAE,CAAC,EAAE,WAAW;AAChB,EAAE,CAAC,EAAE,WAAW;AAChB,EAAE,CAAC;AACH,CAAC;AACD;AACO,MAAM,MAAM,CAAC;AACpB,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;AAC5C,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACnB,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACnB,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACrB,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACvB;AACA,EAAE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI;AACnC,GAAG,SAAS,EAAE,MAAM,EAAE;AACtB,GAAG,YAAY,EAAE,MAAM,EAAE;AACzB,GAAG,iBAAiB,EAAE,MAAM;AAC5B,GAAG,CAAC;AACJ,EAAE;AACF;AACA,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE;AACpB,EAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC3B,EAAE,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;AACzB;AACA,EAAE,IAAI,mBAAmB,IAAI,IAAI,CAAC,OAAO,EAAE;AAC3C,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,GAAG,QAAQ,CAAC;AAC7C,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,EAAE,gBAAgB,CAAC,cAAc,EAAE,MAAM;AACzC,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,GAAG,MAAM,CAAC;AAC3C,GAAG,CAAC,CAAC;AACL;AACA;AACA,EAAE,gBAAgB,CAAC,MAAM,EAAE,MAAM;AACjC,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,GAAG,QAAQ,CAAC;AAC7C,GAAG,CAAC,CAAC;AACL;AACA;AACA;AACA,EAAE,IAAI,YAAY,CAAC;AACnB,EAAE,gBAAgB,CAAC,QAAQ,EAAE,MAAM;AACnC,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;AAC9B,GAAG,YAAY,GAAG,UAAU,CAAC,MAAM;AACnC;AACA;AACA,IAAI,MAAM,SAAS,GAAG;AACtB,KAAK,IAAI,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;AAC7B,KAAK,kBAAkB,EAAE,YAAY,EAAE;AACvC,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;AACrE,IAAI,EAAE,EAAE,CAAC,CAAC;AACV,GAAG,CAAC,CAAC;AACL;AACA,EAAE,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAK,KAAK;AACvC;AACA;AACA,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO;AAClC,GAAG,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE,OAAO;AAChF,GAAG,IAAI,KAAK,CAAC,gBAAgB,EAAE,OAAO;AACtC;AACA,GAAG,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACvC,GAAG,IAAI,CAAC,CAAC,EAAE,OAAO;AAClB;AACA,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO;AACvB;AACA;AACA;AACA,GAAG,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,mBAAmB,CAAC;AAC7F,GAAG,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AACtD;AACA,GAAG,IAAI,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAE;AAC/B,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC;AAC/C,IAAI,OAAO;AACX,IAAI;AACJ;AACA;AACA;AACA;AACA,GAAG,IAAI,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,UAAU,EAAE,OAAO;AAClF;AACA;AACA,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO;AACjD;AACA,GAAG,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;AAC7B;AACA;AACA,GAAG,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE,OAAO;AACpF;AACA,GAAG,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACrC,GAAG,IAAI,QAAQ,EAAE;AACjB,IAAI,MAAM,QAAQ,GAAG,CAAC,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC;AAC1D,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC7C,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,YAAY,EAAE,GAAG,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACzE,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;AAC3B,IAAI;AACJ,GAAG,CAAC,CAAC;AACL;AACA,EAAE,gBAAgB,CAAC,UAAU,EAAE,CAAC,KAAK,KAAK;AAC1C,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE;AACpB,IAAI,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACvC,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACtC,IAAI,IAAI,QAAQ,EAAE;AAClB,KAAK,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAC9D,KAAK,MAAM;AACX;AACA,KAAK,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;AACnC,KAAK;AACL,IAAI;AACJ,GAAG,CAAC,CAAC;AACL;AACA;AACA,EAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AAC/C;AACA;AACA,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnD;AACA,EAAE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACvD,EAAE,IAAI,QAAQ,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AACrD,EAAE;AACF;AACA,CAAC,MAAM,CAAC,GAAG,EAAE;AACb,EAAE,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC;AAClD,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,IAAI,CAAC;AACvD;AACA,EAAE,IAAI,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAClD;AACA,EAAE,IAAI,IAAI,KAAK,EAAE,EAAE;AACnB,GAAG,IAAI,GAAG,GAAG,CAAC;AACd,GAAG;AACH;AACA;AACA,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO;AAChE;AACA,EAAE,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE;AAClC,GAAG,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1C;AACA,GAAG,IAAI,KAAK,EAAE;AACd,IAAI,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAClD,IAAI,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACvC;AACA,IAAI,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC1D;AACA,IAAI,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAClD,IAAI;AACJ,GAAG;AACH,EAAE;AACF;AACA,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,GAAG,KAAK,EAAE,YAAY,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE;AACnE,EAAE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpD,EAAE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACpC;AACA,EAAE,IAAI,QAAQ,EAAE;AAChB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAClC;AACA;AACA,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,cAAc,GAAG,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AAC3E,GAAG,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,YAAY,EAAE,GAAG,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC/E,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;AACvB,EAAE,OAAO,IAAI,OAAO,CAAC,MAAM;AAC3B;AACA,GAAG,CAAC,CAAC;AACL,EAAE;AACF;AACA,CAAC,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE;AACxC;AACA,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,QAAQ,KAAK,GAAG,EAAE;AACpE,GAAG,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACvF,GAAG;AACH;AACA,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACvC;AACA,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;AACxB;AACA,EAAE,MAAM,WAAW,GAAG,IAAI,IAAI,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,EAAE,IAAI,MAAM,EAAE;AACd,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAChC,GAAG,MAAM,IAAI,WAAW,EAAE;AAC1B;AACA,GAAG,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,qBAAqB,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC;AAClE,GAAG,MAAM;AACT,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAClB,GAAG;AACH,EAAE;AACF;;AClMA,SAAS,UAAU,CAAC,KAAK,EAAE;AAC3B,CAAC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC;AAClB;AACA,CAAC,SAAS,MAAM,GAAG;AACnB,EAAE,KAAK,GAAG,IAAI,CAAC;AACf,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AAC7B,EAAE;AACF;AACA,CAAC,SAAS,GAAG,CAAC,SAAS,EAAE;AACzB,EAAE,KAAK,GAAG,KAAK,CAAC;AAChB,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACvB,EAAE;AACF;AACA,CAAC,SAAS,SAAS,CAAC,GAAG,EAAE;AACzB,EAAE,IAAI,SAAS,CAAC;AAChB,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,SAAS,KAAK;AACxC,GAAG,IAAI,SAAS,KAAK,SAAS,KAAK,KAAK,IAAI,SAAS,KAAK,SAAS,CAAC,EAAE;AACtE,IAAI,GAAG,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;AACjC,IAAI;AACJ,GAAG,CAAC,CAAC;AACL,EAAE;AACF;AACA,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;AACnC,CAAC;AACD;AACO,MAAM,QAAQ,CAAC;AACtB,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;AAC1E,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACnB,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACvB,EAAE,IAAI,CAAC,aAAa,GAAG,MAAM,MAAM,CAAC;AACpC;AACA;AACA,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACvB;AACA,EAAE,IAAI,CAAC,OAAO,GAAG;AACjB,GAAG,SAAS;AACZ,GAAG,KAAK;AACR,GAAG,MAAM;AACT,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,CAAC,OAAO,GAAG;AACjB,GAAG,IAAI,EAAE,IAAI;AACb,GAAG,KAAK,EAAE,IAAI;AACd,GAAG,eAAe,EAAE,KAAK;AACzB,GAAG,KAAK,EAAE,EAAE;AACZ,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;AAC1B;AACA,EAAE,IAAI,CAAC,WAAW,GAAG;AACrB,GAAG,IAAI,EAAE,IAAI;AACb,GAAG,OAAO,EAAE,IAAI;AAChB,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,CAAC,MAAM,GAAG;AAChB,GAAG,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC;AACvB,GAAG,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC;AAC7B,GAAG,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC;AAC7B,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACvB;AACA,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACnB;AACA,EAAE,MAAM,gBAAgB,GAAG,CAAC,KAAK,KAAK;AACtC,GAAG,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACvC;AACA,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,oBAAoB,CAAC,EAAE;AAClD,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACnC,IAAI;AACJ,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,iBAAiB,CAAC;AACxB,EAAE,MAAM,gBAAgB,GAAG,CAAC,KAAK,KAAK;AACtC,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC;AACnC,GAAG,iBAAiB,GAAG,UAAU,CAAC,MAAM;AACxC,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC5B,IAAI,EAAE,EAAE,CAAC,CAAC;AACV,GAAG,CAAC;AACJ;AACA,EAAE,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;AACnD,EAAE,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;AAClD;AACA,EAAE,IAAI,KAAK,GAAG,KAAK,CAAC;AACpB,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,KAAK,KAAK;AACjD,GAAG,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACzB;AACA,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO;AACtB,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;AACvC;AACA,GAAG,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/D,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACzB,GAAG,CAAC,CAAC;AACL,EAAE,KAAK,GAAG,IAAI,CAAC;AACf,EAAE;AACF;AACA,CAAC,MAAM,KAAK,CAAC,QAAQ,EAAE;AACvB,EAAE,MAAM,KAAK,GAAG;AAChB,GAAG,MAAM,EAAE,IAAI,CAAC,MAAM;AACtB,GAAG,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;AAC5B,GAAG,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;AAC9B,GAAG,IAAI,EAAE,QAAQ,CAAC,IAAI;AACtB,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AAC1B,GAAG,KAAK,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC5C,GAAG,MAAM;AACT,GAAG,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjD;AACA,GAAG,IAAI,QAAQ,CAAC,QAAQ,EAAE;AAC1B,IAAI,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;AAClD,IAAI;AACJ;AACA,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;AACxC,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC;AACjC,GAAG;AACH;AACA,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC;AAC5B,GAAG,MAAM,EAAE,IAAI,CAAC,MAAM;AACtB,GAAG,KAAK;AACR,GAAG,OAAO,EAAE,IAAI;AAChB,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACtB,EAAE;AACF;AACA,CAAC,MAAM,CAAC,QAAQ,EAAE;AAClB,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC;AAC7B,GAAG,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;AAC1B,GAAG,EAAE,EAAE,QAAQ,CAAC,IAAI;AACpB,GAAG,CAAC,CAAC;AACL,EAAE;AACF;AACA,CAAC,MAAM,MAAM,CAAC,QAAQ,EAAE;AACxB,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;AAClC;AACA,EAAE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAChD;AACA,EAAE,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;AAC5B;AACA,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC;AACjC;AACA,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAClC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACpC,GAAG;AACH,EAAE;AACF;AACA,CAAC,MAAM,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;AAChC,EAAE,MAAM,KAAK,GAAG;AAChB,GAAG,KAAK,EAAE,IAAI;AACd,GAAG,MAAM,EAAE,GAAG;AACd,GAAG,UAAU,EAAE,EAAE;AACjB,GAAG,CAAC;AACJ;AACA,EAAE,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,IAAI,KAAK;AACjC,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE;AACrB,IAAI,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,gCAAgC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACtF,IAAI,IAAI,MAAM,EAAE;AAChB,KAAK,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC9D,KAAK,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACtD,KAAK;AACL,IAAI;AACJ;AACA,GAAG,OAAO,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC3B,GAAG,CAAC;AACJ;AACA,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;AACtC;AACA,EAAE,MAAM,KAAK,GAAG;AAChB,GAAG,IAAI;AACP,GAAG,KAAK;AACR,GAAG,eAAe,EAAE,KAAK;AACzB,GAAG,KAAK,EAAE,EAAE;AACZ,GAAG,CAAC;AACJ;AACA,EAAE,MAAM,kBAAkB,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC;AAC9F,EAAE,MAAM,cAAc,GAAG,EAAE,CAAC;AAC5B;AACA,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC;AACnB,EAAE,IAAI,QAAQ,CAAC;AACf;AACA,EAAE,MAAM,OAAO,GAAG;AAClB,GAAG,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK;AACpD,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACpF,IAAI,CAAC;AACL,GAAG,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK;AACtC,GAAG,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe;AACxC,GAAG,OAAO,EAAE,KAAK;AACjB,GAAG,CAAC;AACJ;AACA,EAAE,IAAI;AACN,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAC1D,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3C;AACA,IAAI,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,MAAM,kBAAkB,CAAC,CAAC,CAAC,CAAC;AACrE,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;AACpC;AACA,IAAI,MAAM,yBAAyB;AACnC,KAAK,CAAC,QAAQ;AACd,KAAK,SAAS,KAAK,QAAQ,CAAC,SAAS;AACrC,KAAK,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACpE,MAAM,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3C,MAAM,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AAC/C,MAAM,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAChD;AACA,IAAI,IAAI,yBAAyB,EAAE;AACnC,KAAK,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;AACpC;AACA;AACA,KAAK,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC9C,KAAK,MAAM,MAAM,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC7C;AACA,KAAK,IAAI,IAAI,CAAC;AACd,KAAK,IAAI,MAAM,CAAC;AAChB;AACA,KAAK,IAAI,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AACpE,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;AAClC,MAAM,MAAM;AACZ,MAAM,IAAI,GAAG;AACb,OAAO,SAAS;AAChB,OAAO,IAAI,EAAE;AACb,QAAQ,MAAM,EAAE,IAAI,GAAG,EAAE;AACzB,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,OAAO,EAAE,KAAK;AACtB,QAAQ,OAAO,EAAE,KAAK;AACtB,QAAQ;AACR,OAAO,CAAC;AACR;AACA,MAAM,MAAM,MAAM,GAAG,EAAE,CAAC;AACxB,MAAM,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE;AACrC,OAAO,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE;AAC1C,QAAQ,GAAG,GAAG;AACd,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnC,SAAS,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACjC,SAAS;AACT,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,CAAC,CAAC;AACV,OAAO;AACP;AACA,MAAM,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;AACpC;AACA,MAAM,MAAM;AACZ,OAAO,IAAI;AACX,QAAQ,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AAC9B,QAAQ,IAAI,EAAE;AACd,SAAS,GAAG,IAAI;AAChB,SAAS,MAAM;AACf,SAAS,IAAI,KAAK,GAAG;AACrB,UAAU,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACjC,UAAU,OAAO,IAAI,CAAC,KAAK,CAAC;AAC5B,UAAU;AACV,SAAS;AACT,QAAQ,IAAI,OAAO,GAAG;AACtB,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AAClC,SAAS,OAAO,OAAO,CAAC;AACxB,SAAS;AACT,QAAQ,IAAI,OAAO,GAAG;AACtB,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AAClC,SAAS,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;AAC/B,SAAS;AACT,QAAQ,KAAK,EAAE,OAAO;AACtB,QAAQ,CAAC,CAAC,CAAC;AACX,MAAM;AACN;AACA,KAAK,IAAI,MAAM,EAAE;AACjB,MAAM,IAAI,MAAM,CAAC,KAAK,EAAE;AACxB,OAAO,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACrD,OAAO,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;AAC1C,OAAO,MAAM,KAAK,CAAC;AACnB,OAAO;AACP;AACA,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE;AAC3B,OAAO,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAClC,OAAO,MAAM;AACb,OAAO;AACP;AACA,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE;AAC1B,OAAO,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;AAC9B;AACA,OAAO,OAAO,GAAG;AACjB,QAAQ,GAAG,OAAO;AAClB,QAAQ,GAAG,MAAM,CAAC,OAAO;AACzB,QAAQ,CAAC;AACT,OAAO;AACP;AACA,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;AACzB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;AACxC,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;AAC9C,QAAQ;AACR;AACA,OAAO,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAChD,OAAO,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACvC;AACA,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC/B;AACA,OAAO,IAAI,KAAK,GAAG,KAAK,CAAC;AACzB;AACA,OAAO,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM;AACxC,QAAQ,KAAK,EAAE,CAAC;AAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAChC;AACA,OAAO,MAAM,KAAK,GAAG,MAAM;AAC3B,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,MAAM,EAAE;AACxC,SAAS,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC5B,SAAS;AACT;AACA,QAAQ,WAAW,EAAE,CAAC;AACtB,QAAQ,YAAY,CAAC,OAAO,CAAC,CAAC;AAC9B,QAAQ,CAAC;AACT;AACA,OAAO,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM;AAC/D,QAAQ,IAAI,KAAK,EAAE,KAAK,EAAE,CAAC;AAC3B,QAAQ,CAAC,CAAC;AACV;AACA,OAAO,KAAK,GAAG,IAAI,CAAC;AACpB,OAAO;AACP;AACA,MAAM,cAAc,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;AACvC,MAAM;AACN;AACA,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAC3B,KAAK,MAAM;AACX,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;AAC/B,KAAK;AACL,IAAI;AACJ;AACA,GAAG,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACvD;AACA,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK;AAC/B,IAAI,IAAI,CAAC,EAAE;AACX,KAAK,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7B,KAAK;AACL,IAAI,CAAC,CAAC;AACN;AACA,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE;AACnE,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;AACtB,IAAI;AACJ,GAAG,CAAC,OAAO,KAAK,EAAE;AAClB,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB,GAAG,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;AACtB,GAAG,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;AACpB,GAAG;AACH;AACA,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AACpC,EAAE;AACF;AACA,CAAC,MAAM,QAAQ,CAAC,GAAG,EAAE;AACrB,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACvC;AACA,EAAE,IAAI,IAAI,EAAE;AACZ,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;AAC3C,IAAI,IAAI,CAAC,WAAW,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;AACvE,IAAI;AACJ;AACA,GAAG,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;AACnC,GAAG,MAAM;AACT,GAAG,MAAM,IAAI,KAAK,CAAC,CAAC,mBAAmB,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACrD,GAAG;AACH,EAAE;AACF;;ACrWO,eAAe,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;AACxF,CAAC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;AAC3B,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI;AAClB,EAAE,IAAI;AACN,EAAE,KAAK;AACP,EAAE,MAAM;AACR,EAAE,CAAC,CAAC;AACJ;AACA,CAAC,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC;AAC/B,EAAE,IAAI;AACN,EAAE,MAAM;AACR,EAAE,MAAM;AACR,EAAE,SAAS;AACX,EAAE,KAAK;AACP,EAAE,MAAM;AACR,EAAE,OAAO;AACT,EAAE,CAAC,CAAC;AACJ;AACA,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC5B,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAClB;AACA,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;AACjC;;;;"}