@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.
- package/README.md +12 -9
- package/assets/components/error.svelte +19 -3
- package/assets/kit.js +1912 -0
- package/assets/runtime/app/env.js +20 -0
- package/assets/runtime/app/navigation.js +45 -13
- package/assets/runtime/app/paths.js +1 -2
- package/assets/runtime/app/stores.js +15 -9
- package/assets/runtime/chunks/utils.js +13 -0
- package/assets/runtime/env.js +8 -0
- package/assets/runtime/internal/singletons.js +5 -11
- package/assets/runtime/internal/start.js +979 -355
- package/assets/runtime/paths.js +13 -0
- package/dist/chunks/cert.js +29255 -0
- package/dist/chunks/constants.js +8 -0
- package/dist/chunks/error.js +21 -0
- package/dist/chunks/index.js +4732 -0
- package/dist/chunks/index2.js +812 -0
- package/dist/chunks/index3.js +624 -0
- package/dist/chunks/index4.js +109 -0
- package/dist/chunks/index5.js +628 -0
- package/dist/chunks/index6.js +827 -0
- package/dist/chunks/index7.js +15575 -0
- package/dist/chunks/misc.js +3 -0
- package/dist/chunks/multipart-parser.js +449 -0
- package/dist/chunks/url.js +62 -0
- package/dist/cli.js +1012 -67
- package/dist/hooks.js +28 -0
- package/dist/install-fetch.js +6514 -0
- package/dist/node.js +51 -0
- package/dist/ssr.js +1842 -0
- package/package.json +90 -54
- package/svelte-kit.js +2 -0
- package/types/ambient-modules.d.ts +181 -0
- package/types/app.d.ts +45 -0
- package/types/config.d.ts +163 -0
- package/types/endpoint.d.ts +18 -0
- package/types/helper.d.ts +41 -0
- package/types/hooks.d.ts +48 -0
- package/types/index.d.ts +17 -0
- package/types/internal.d.ts +231 -0
- package/types/page.d.ts +71 -0
- package/CHANGELOG.md +0 -282
- package/assets/runtime/app/navigation.js.map +0 -1
- package/assets/runtime/app/paths.js.map +0 -1
- package/assets/runtime/app/stores.js.map +0 -1
- package/assets/runtime/internal/singletons.js.map +0 -1
- package/assets/runtime/internal/start.js.map +0 -1
- package/assets/runtime/utils-85ebcc60.js +0 -18
- package/assets/runtime/utils-85ebcc60.js.map +0 -1
- package/dist/api.js +0 -44
- package/dist/api.js.map +0 -1
- package/dist/build.js +0 -246
- package/dist/build.js.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/colors.js +0 -37
- package/dist/colors.js.map +0 -1
- package/dist/create_app.js +0 -578
- package/dist/create_app.js.map +0 -1
- package/dist/index.js +0 -12042
- package/dist/index.js.map +0 -1
- package/dist/index2.js +0 -544
- package/dist/index2.js.map +0 -1
- package/dist/index3.js +0 -71
- package/dist/index3.js.map +0 -1
- package/dist/index4.js +0 -466
- package/dist/index4.js.map +0 -1
- package/dist/index5.js +0 -729
- package/dist/index5.js.map +0 -1
- package/dist/index6.js +0 -713
- package/dist/index6.js.map +0 -1
- package/dist/logging.js +0 -43
- package/dist/logging.js.map +0 -1
- package/dist/package.js +0 -432
- package/dist/package.js.map +0 -1
- package/dist/renderer.js +0 -2391
- package/dist/renderer.js.map +0 -1
- package/dist/standard.js +0 -101
- package/dist/standard.js.map +0 -1
- package/dist/utils.js +0 -54
- package/dist/utils.js.map +0 -1
- 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';
|
package/types/page.d.ts
ADDED
|
@@ -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":"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"}
|