@marko/run 0.0.1-beta7 → 0.0.1-beta9
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 +306 -134
- package/dist/.tsbuildinfo +1 -0
- package/dist/adapter/dev-server.d.ts +1 -1
- package/dist/adapter/index.cjs +13 -173
- package/dist/adapter/index.js +13 -173
- package/dist/adapter/middleware.cjs +46 -8
- package/dist/adapter/middleware.d.ts +3 -3
- package/dist/adapter/middleware.js +46 -8
- package/dist/adapter/polyfill.d.ts +5 -0
- package/dist/cli/default.config.mjs +2 -2
- package/dist/cli/index.mjs +2 -2
- package/dist/runtime/index.d.ts +8 -8
- package/dist/runtime/internal.cjs +11 -2
- package/dist/runtime/internal.d.ts +6 -5
- package/dist/runtime/internal.js +9 -1
- package/dist/runtime/types.d.ts +3 -3
- package/dist/vite/index.cjs +24 -35
- package/dist/vite/index.js +24 -35
- package/package.json +19 -9
package/README.md
CHANGED
|
@@ -1,131 +1,76 @@
|
|
|
1
|
-
|
|
2
|
-
> This project is in BETA - use at your own peril, but please do provide helpful feedback.
|
|
1
|
+
|
|
3
2
|
|
|
4
3
|
<div align="center">
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
<
|
|
8
|
-
<
|
|
9
|
-
|
|
10
|
-
</
|
|
11
|
-
|
|
12
|
-
<!-- Language -->
|
|
13
|
-
<a href="https://www.typescriptlang.org">
|
|
14
|
-
<img src="https://img.shields.io/badge/%3C%2F%3E-typescript-blue.svg" alt="TypeScript"/>
|
|
15
|
-
</a>
|
|
4
|
+
<picture>
|
|
5
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://github.com/marko-js/run/raw/main/assets/marko-run-darkmode.png">
|
|
6
|
+
<source media="(prefers-color-scheme: light)" srcset="https://github.com/marko-js/run/raw/main/assets/marko-run.png">
|
|
7
|
+
<img alt="Marko Run Logo" src="https://github.com/marko-js/run/raw/main/assets/marko-run.png" width="400">
|
|
8
|
+
</picture>
|
|
9
|
+
<h4>Get your app up and <em>running</em> with <a href="https://markojs.com">Marko</a>!</h4>
|
|
16
10
|
</div>
|
|
17
11
|
|
|
18
|
-
|
|
12
|
+
## Features
|
|
13
|
+
* 🚀 Fastest way to build a Marko app
|
|
14
|
+
* 💖 Scales from zero configuration
|
|
15
|
+
* ⚡️ Pages live-reload as you make changes
|
|
16
|
+
* 📁 Directory-based routes, layouts and middleware
|
|
17
|
+
* 🖌️ TypeScript powered editor support
|
|
18
|
+
* 🧬 [Designed with web standards](https://developer.mozilla.org/en-US/docs/Web/API/URLPattern/URLPattern) to run anywhere
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
20
|
+
And when you build your production-ready app:
|
|
21
|
+
|
|
22
|
+
* 🔥 Blazing fast server-side rendering
|
|
23
|
+
* 🌊 Streams content to users ASAP
|
|
24
|
+
* 📦 Partial hydration & automatic code splitting
|
|
25
|
+
* 🚢 Deploy to multiple platforms
|
|
26
26
|
|
|
27
27
|
## Installation
|
|
28
28
|
|
|
29
|
+
> **Warning**
|
|
30
|
+
> This project is in BETA - use at your own peril, but please do provide helpful feedback.
|
|
31
|
+
|
|
32
|
+
|
|
29
33
|
```sh
|
|
30
34
|
npm install @marko/run
|
|
31
35
|
```
|
|
32
36
|
|
|
33
|
-
|
|
37
|
+
### Getting Started / Zero Config
|
|
34
38
|
|
|
35
|
-
|
|
39
|
+
`marko-run` makes it easy to get started without little to no config. The package ships with a default Vite config and node-based adapter.
|
|
36
40
|
|
|
37
|
-
|
|
41
|
+
To get started from a template:
|
|
42
|
+
1. `npm init marko -- -t basic`
|
|
43
|
+
2. `cd ./<PROJECT_NAME>`
|
|
44
|
+
4. `npm run dev`
|
|
38
45
|
|
|
39
|
-
|
|
46
|
+
Or manually create a project:
|
|
40
47
|
1. Install `@marko/run`
|
|
41
48
|
2. Create file `src/routes/+page.marko`
|
|
42
|
-
3. Run `
|
|
43
|
-
4. Open browser to `http://localhost:3000`
|
|
49
|
+
3. Run `npm exec marko-run`
|
|
44
50
|
|
|
45
|
-
|
|
51
|
+
Finally open `http://localhost:3000` 🚀
|
|
46
52
|
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
> npx marko-run dev
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
**`build`** - Create a production build
|
|
53
|
-
```bash
|
|
54
|
-
> npx marko-run build
|
|
55
|
-
```
|
|
53
|
+
### CLI
|
|
56
54
|
|
|
57
|
-
**`
|
|
55
|
+
**`dev`** - Start development server in watch mode
|
|
58
56
|
```bash
|
|
59
|
-
>
|
|
57
|
+
> npm exec marko-run
|
|
60
58
|
```
|
|
61
|
-
or (
|
|
59
|
+
or (with explicit sub command)
|
|
62
60
|
```bash
|
|
63
|
-
>
|
|
61
|
+
> npm exec marko-run dev
|
|
64
62
|
```
|
|
65
63
|
|
|
66
|
-
## Vite Plugin
|
|
67
|
-
|
|
68
|
-
This package’s Vite plugin discovers your route files, generates the routing code, and registers the `@marko/vite` plugin to compile your `.marko` files.
|
|
69
64
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
import marko from "@marko/run/vite"; // Import the Vite plugin
|
|
74
|
-
|
|
75
|
-
export default defineConfig({
|
|
76
|
-
plugins: [marko()], // Register the Vite plugin
|
|
77
|
-
})
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
## Adapters
|
|
81
|
-
|
|
82
|
-
<!-- TODO: link to existing adapters>
|
|
83
|
-
|
|
84
|
-
<!-- *🎗 TODO: provide a quick overview* -->
|
|
85
|
-
|
|
86
|
-
## Runtime
|
|
87
|
-
|
|
88
|
-
Generally, when using an adapter, this runtime will be abstracted away.
|
|
89
|
-
|
|
90
|
-
<!-- TODO: Add examples -->
|
|
91
|
-
<!-- TODO: Split fetch and match + invoke in two sections and explain why you might use one or the other -->
|
|
92
|
-
|
|
93
|
-
```ts
|
|
94
|
-
import { router, matchRoute, invokeRoute } from '@marko/run/router`;
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
### `fetch`
|
|
98
|
-
|
|
99
|
-
```ts
|
|
100
|
-
async function fetch<T>(request: Request, platform: T) => Promise<Response | void>;
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
This asynchronous function takes a [WHATWG `Request` object](https://fetch.spec.whatwg.org/#request-class) object and an object containing any platform specific data you may want access to and returns the [WHATWG `Response` object](https://fetch.spec.whatwg.org/#response-class) from executing any matched route files or undefined if the request was explicitly not handled. If no route matches the requested path, a `404` status code response will be returned. If an error occurs a `500` status code response will be returned.
|
|
104
|
-
|
|
105
|
-
### `match`
|
|
106
|
-
|
|
107
|
-
```ts
|
|
108
|
-
interface interface Route {
|
|
109
|
-
params: Record<string, string>;
|
|
110
|
-
meta: unknown;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
function match(method: string, pathname: string) => Route | null;
|
|
65
|
+
**`build`** - Create a production build
|
|
66
|
+
```bash
|
|
67
|
+
> npm exec marko-run build
|
|
114
68
|
```
|
|
115
69
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
- `meta` - metadata for the route
|
|
120
|
-
|
|
121
|
-
### `invoke`
|
|
122
|
-
|
|
123
|
-
```ts
|
|
124
|
-
async function invoke<T>(route: Route, request: Request, platform: T) => Promise<Response | void>;
|
|
70
|
+
**`preview`** - Create a production build and start preview server
|
|
71
|
+
```bash
|
|
72
|
+
> npm exec marko-run preview
|
|
125
73
|
```
|
|
126
|
-
This asynchronous function takes a route object returned by [match](#match) the request and platform data and returns a response in the same way the [fetch](#fetch) does.
|
|
127
|
-
|
|
128
|
-
|
|
129
74
|
|
|
130
75
|
## File-based Routing
|
|
131
76
|
|
|
@@ -171,7 +116,7 @@ Layouts are like any other Marko component with no extra constraints. Each layou
|
|
|
171
116
|
<main>
|
|
172
117
|
<h1>My Products</h1>
|
|
173
118
|
|
|
174
|
-
|
|
119
|
+
<${input.renderBody}/> // render the page or layout here
|
|
175
120
|
</main>
|
|
176
121
|
```
|
|
177
122
|
|
|
@@ -184,26 +129,35 @@ Typically, these will be `.js` or `.ts` files depending on your project. Like pa
|
|
|
184
129
|
<details>
|
|
185
130
|
<summary>More Info</summary>
|
|
186
131
|
|
|
187
|
-
- Valid exports are functions named `
|
|
188
|
-
-
|
|
189
|
-
-
|
|
190
|
-
-
|
|
132
|
+
- Valid exports are functions named `GET`, `POST`, `PUT`, or `DELETE`.
|
|
133
|
+
- Exports can be one of the following
|
|
134
|
+
- Handler function (see below)
|
|
135
|
+
- Array of handler functions - will be composed by calling them in order
|
|
136
|
+
- Promise that resolves to a handler function or array of handler functions
|
|
137
|
+
- Handler functions are synchronous or asynchronous functions that
|
|
138
|
+
- Receives a `context` and `next` argument,
|
|
139
|
+
- The `context` argument contains the WHATWG request object, path parameters, URL, and route metadata.
|
|
140
|
+
- The `next` argument will call the page for get requests where applicable or return a `204` response.
|
|
141
|
+
- Return a WHATWG response, throw a WHATWG response, return undefined. If the function return's undefined the `next` argument with be automatically called and used as the response.
|
|
191
142
|
|
|
192
143
|
```js
|
|
193
|
-
export function
|
|
144
|
+
export function POST(context, next) {
|
|
194
145
|
const { request, params, url, meta } = context;
|
|
195
146
|
return new Response('Successfully updated', { status: 200 });
|
|
196
147
|
}
|
|
197
148
|
|
|
198
|
-
export function
|
|
199
|
-
|
|
149
|
+
export function PUT(context, next) {
|
|
150
|
+
// `next` will be called for you by the runtime
|
|
200
151
|
}
|
|
201
152
|
|
|
202
|
-
export function
|
|
203
|
-
|
|
153
|
+
export async function GET(context, next) {
|
|
154
|
+
// do something before calling `next`
|
|
155
|
+
const response = await next();
|
|
156
|
+
// do something with the response from `next`
|
|
157
|
+
return response;
|
|
204
158
|
}
|
|
205
159
|
|
|
206
|
-
export function
|
|
160
|
+
export function DELETE(context, next) {
|
|
207
161
|
return new Response('Successfully removed', { status: 204 });
|
|
208
162
|
}
|
|
209
163
|
```
|
|
@@ -219,18 +173,23 @@ These files are like layouts, but for handlers. Middleware get called before han
|
|
|
219
173
|
<details>
|
|
220
174
|
<summary>More Info</summary>
|
|
221
175
|
|
|
222
|
-
Expects a `default` export that
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
176
|
+
- Expects a `default` export that can be one of the following
|
|
177
|
+
- Handler function (see below)
|
|
178
|
+
- Array of handler functions - will be composed by calling them in order
|
|
179
|
+
- Promise that resolves to a handler function or array of handler functions
|
|
180
|
+
- Handler functions are synchronous or asynchronous functions that
|
|
181
|
+
- Receives a `context` and `next` argument,
|
|
182
|
+
- The `context` argument contains the WHATWG request object, path parameters, URL, and route metadata.
|
|
183
|
+
- The `next` argument will call the page for get requests where applicable or return a `204` response.
|
|
184
|
+
- Return a WHATWG response, throw a WHATWG response, return undefined. If the function return's undefined the `next` argument with be automatically called and used as the response.
|
|
226
185
|
|
|
227
186
|
```ts
|
|
228
187
|
export default async function(context, next) {
|
|
229
|
-
const requestName = `${
|
|
188
|
+
const requestName = `${context.request.method} ${context.url.href}`;
|
|
230
189
|
let success = true;
|
|
231
190
|
console.log(`${requestName} request started`)
|
|
232
191
|
try {
|
|
233
|
-
return await next(); // Wait for subsequent middleware
|
|
192
|
+
return await next(); // Wait for subsequent middleware, handler and page
|
|
234
193
|
} catch (err) {
|
|
235
194
|
success = false;
|
|
236
195
|
throw err;
|
|
@@ -243,7 +202,7 @@ These files are like layouts, but for handlers. Middleware get called before han
|
|
|
243
202
|
|
|
244
203
|
#### `+meta.*`
|
|
245
204
|
|
|
246
|
-
These files represent metadata to attach to the route. This metadata will be automatically provided on the the route `context` when invoking a route.
|
|
205
|
+
These files represent static metadata to attach to the route. This metadata will be automatically provided on the the route `context` when invoking a route.
|
|
247
206
|
|
|
248
207
|
### Special Files
|
|
249
208
|
|
|
@@ -271,9 +230,21 @@ Responses with this page will have a `500` status code.
|
|
|
271
230
|
|
|
272
231
|
### Execution Order
|
|
273
232
|
|
|
274
|
-
|
|
233
|
+
Given the following routes directory structure
|
|
275
234
|
|
|
276
|
-
|
|
235
|
+
<pre>
|
|
236
|
+
routes/
|
|
237
|
+
about/
|
|
238
|
+
+handler.js
|
|
239
|
+
+layout.marko
|
|
240
|
+
+middleware.js
|
|
241
|
+
+page.marko
|
|
242
|
+
+layout.marko
|
|
243
|
+
+middleware.js
|
|
244
|
+
+page.marko
|
|
245
|
+
</pre>
|
|
246
|
+
|
|
247
|
+
When the path `"/about"` is requested, the routable files execute in the following order:
|
|
277
248
|
|
|
278
249
|
1. Middlewares from root-most to leaf-most
|
|
279
250
|
2. Handler
|
|
@@ -282,21 +253,21 @@ For a matched route, the routable files execute in the following order:
|
|
|
282
253
|
|
|
283
254
|
```mermaid
|
|
284
255
|
sequenceDiagram
|
|
285
|
-
participant
|
|
286
|
-
participant
|
|
287
|
-
participant
|
|
288
|
-
participant
|
|
289
|
-
participant
|
|
290
|
-
participant
|
|
291
|
-
Note over
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
256
|
+
participant MW1 as routes/+middleware.js
|
|
257
|
+
participant MW2 as routes/about/+middleware.js
|
|
258
|
+
participant H as routes/about/+handler.js
|
|
259
|
+
participant L1 as routes/+layout.marko
|
|
260
|
+
participant L2 as routes/about/+layout.marko
|
|
261
|
+
participant P as routes/about/+page.marko
|
|
262
|
+
Note over L1,P: Combined at build-time as a single component
|
|
263
|
+
MW1->>MW2: next()
|
|
264
|
+
MW2->>H: next()
|
|
265
|
+
H->>L1: next()
|
|
266
|
+
L1->L2: ${input.renderBody}
|
|
267
|
+
L2->P: ${input.renderBody}
|
|
268
|
+
L1-->>H: Stream Response
|
|
269
|
+
H-->>MW2: Response
|
|
270
|
+
MW2-->>MW1: Response
|
|
300
271
|
```
|
|
301
272
|
|
|
302
273
|
### Path Structure
|
|
@@ -345,5 +316,206 @@ Within the _routes directory_, the directory structure will determine the path t
|
|
|
345
316
|
*TODO: Write some things* -->
|
|
346
317
|
|
|
347
318
|
|
|
319
|
+
|
|
320
|
+
|
|
321
|
+
## Vite Plugin
|
|
322
|
+
|
|
323
|
+
This package’s Vite plugin discovers your route files, generates the routing code, and registers the `@marko/vite` plugin to compile your `.marko` files.
|
|
324
|
+
|
|
325
|
+
```ts
|
|
326
|
+
// vite.config.ts
|
|
327
|
+
import { defineConfig } from "vite";
|
|
328
|
+
import marko from "@marko/run/vite"; // Import the Vite plugin
|
|
329
|
+
|
|
330
|
+
export default defineConfig({
|
|
331
|
+
plugins: [marko()] // Register the Vite plugin
|
|
332
|
+
})
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
### Adapters
|
|
336
|
+
|
|
337
|
+
Adapters provide the means to change the development, build and preview process to fit different deployment platforms and runtimes while allowing authors to write idiomatic code.
|
|
338
|
+
|
|
339
|
+
Specify your adapter in the Vite config when registering the `@marko/run` plugin
|
|
340
|
+
|
|
341
|
+
```ts
|
|
342
|
+
// vite.config.ts
|
|
343
|
+
import { defineConfig } from "vite";
|
|
344
|
+
import marko from "@marko/run/vite";
|
|
345
|
+
import netlify from "@marko/run-adapter-netlify" // Import the adapter
|
|
346
|
+
|
|
347
|
+
export default defineConfig({
|
|
348
|
+
plugins: [marko({
|
|
349
|
+
adapter: netlify({ edge: true }) // Configure and apply the adapter
|
|
350
|
+
})]
|
|
351
|
+
})
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
#### Available Adapters
|
|
355
|
+
|
|
356
|
+
- [@marko/run-adapter-node](https://github.com/marko-js/run/blob/main/packages/adapters/node/README.md)
|
|
357
|
+
- [@marko/run-adapter-netlify](https://github.com/marko-js/run/blob/main/packages/adapters/netlify/README.md)
|
|
358
|
+
- [@marko/run-adapter-static](https://github.com/marko-js/run/blob/main/packages/adapters/static/README.md)
|
|
359
|
+
|
|
360
|
+
## Runtime
|
|
361
|
+
|
|
362
|
+
Generally, when using an adapter, this runtime will be abstracted away.
|
|
363
|
+
|
|
364
|
+
<!-- TODO: Add examples -->
|
|
365
|
+
<!-- TODO: Split fetch and match + invoke in two sections and explain why you might use one or the other -->
|
|
366
|
+
|
|
367
|
+
```ts
|
|
368
|
+
import * as Run from '@marko/run/router`;
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
### Emdedding in Existing Server
|
|
372
|
+
|
|
373
|
+
|
|
374
|
+
|
|
375
|
+
### `Run.fetch`
|
|
376
|
+
|
|
377
|
+
```ts
|
|
378
|
+
async function fetch<T>(request: Request, platform: T) => Promise<Response | void>;
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
|
|
382
|
+
|
|
383
|
+
This asynchronous function takes a [WHATWG `Request` object](https://fetch.spec.whatwg.org/#request-class) object and an object containing any platform specific data you may want access to and returns the [WHATWG `Response` object](https://fetch.spec.whatwg.org/#response-class) from executing any matched route files or undefined if the request was explicitly not handled. If no route matches the requested path, a `404` status code response will be returned. If an error occurs a `500` status code response will be returned.
|
|
384
|
+
|
|
385
|
+
Express example:
|
|
386
|
+
```ts
|
|
387
|
+
import express from "express";
|
|
388
|
+
import * as Run from "@marko/run/router";
|
|
389
|
+
|
|
390
|
+
express()
|
|
391
|
+
.use(async (req, res, next) => {
|
|
392
|
+
const request = // ...code to create a WHATWG Request from `req`
|
|
393
|
+
|
|
394
|
+
const response = await Run.fetch(request, {
|
|
395
|
+
req,
|
|
396
|
+
res
|
|
397
|
+
});
|
|
398
|
+
|
|
399
|
+
if (response) {
|
|
400
|
+
// ...code to apply response to `res`
|
|
401
|
+
} else {
|
|
402
|
+
next();
|
|
403
|
+
}
|
|
404
|
+
})
|
|
405
|
+
.listen(3000);
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
|
|
409
|
+
### Other APIs
|
|
410
|
+
|
|
411
|
+
In some cases you might want more control over when route matching and invokation (creating a response) occur. For instance you may have middleware in your server which need to know if there is a matched route. The runtime provides these additional methods
|
|
412
|
+
|
|
413
|
+
### `Run.match`
|
|
414
|
+
|
|
415
|
+
```ts
|
|
416
|
+
interface interface Route {
|
|
417
|
+
params: Record<string, string>;
|
|
418
|
+
meta: unknown;
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
function match(method: string, pathname: string) => Route | null;
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
This synchronous function takes an HTTP method and path name, then returns an object representing the best match — or `null` if no match is found.
|
|
425
|
+
|
|
426
|
+
- `params` - a `{ key: value }` collection of any path parameters for the route
|
|
427
|
+
- `meta` - metadata for the route
|
|
428
|
+
|
|
429
|
+
### `Run.invoke`
|
|
430
|
+
|
|
431
|
+
```ts
|
|
432
|
+
async function invoke(route: Route, request: Request, platform: any) => Promise<Response | void>;
|
|
433
|
+
```
|
|
434
|
+
This asynchronous function takes a route object returned by [Run.match](#Run.match) the request and platform data and returns a response in the same way the [Run.fetch](#Run.fetch) does.
|
|
435
|
+
|
|
436
|
+
Express example:
|
|
437
|
+
```ts
|
|
438
|
+
import express from "express";
|
|
439
|
+
import * as Run from "@marko/run/router";
|
|
440
|
+
|
|
441
|
+
express()
|
|
442
|
+
.use((req, res) => {
|
|
443
|
+
const matchedRoute = Run.match(req.method, req.path);
|
|
444
|
+
if (matchedRoute) {
|
|
445
|
+
req.match = matchedRoute;
|
|
446
|
+
}
|
|
447
|
+
})
|
|
448
|
+
|
|
449
|
+
// ...other middleware
|
|
450
|
+
|
|
451
|
+
.use(async (req, res, next) => {
|
|
452
|
+
// Check if a route was previously matched
|
|
453
|
+
if (!req.match) {
|
|
454
|
+
next();
|
|
455
|
+
return;
|
|
456
|
+
}
|
|
457
|
+
|
|
458
|
+
const request = // ...code to create a WHATWG Request from `req`
|
|
459
|
+
const response = await Run.invoke(req.match, request, {
|
|
460
|
+
req,
|
|
461
|
+
res
|
|
462
|
+
});
|
|
463
|
+
|
|
464
|
+
if (response) {
|
|
465
|
+
// ...code to apply response to `res`
|
|
466
|
+
} else {
|
|
467
|
+
next();
|
|
468
|
+
}
|
|
469
|
+
})
|
|
470
|
+
.listen(3000);
|
|
471
|
+
```
|
|
472
|
+
|
|
473
|
+
|
|
474
|
+
|
|
348
475
|
## TypeScript
|
|
349
476
|
|
|
477
|
+
|
|
478
|
+
### Global Namespace
|
|
479
|
+
marko/run provides a global namespace `MarkoRun` with the folling types:
|
|
480
|
+
|
|
481
|
+
**`MarkoRun.Handler`** - Type that represents a handler function to be exported by a +handler or +middleware file
|
|
482
|
+
|
|
483
|
+
**`MarkoRun.CurrentRoute`** - Type of the route's params and meta data
|
|
484
|
+
|
|
485
|
+
**`MarkoRun.CurrentContext`** - Type of the request context object in a handler and `out.global` in your Marko files
|
|
486
|
+
|
|
487
|
+
|
|
488
|
+
### Generated Types
|
|
489
|
+
If a [TSConfig](https://www.typescriptlang.org/tsconfig) file is discovered in the project root, the Vite plugin will automatically generate a .d.ts file which provides more specific types for each of your middleware, handlers, layouts and pages. This file will be generated at `.marko-run/routes.d.ts` whenever the project is built - including dev.
|
|
490
|
+
> **Note** TypeScript will not include this file by default. If you are not using the [Marko VSCode plugin](https://marketplace.visualstudio.com/items?itemName=Marko-JS.marko-vscode) and you will need to [add it in your tsconfig](https://www.typescriptlang.org/tsconfig#include).
|
|
491
|
+
|
|
492
|
+
These types are replaced with more specific versions per routeable file:
|
|
493
|
+
|
|
494
|
+
**`MarkoRun.Handler`**
|
|
495
|
+
- Overrides context with specific MarkoRun.CurrentContext
|
|
496
|
+
|
|
497
|
+
**`MarkoRun.CurrentRoute`**
|
|
498
|
+
- Adds specific parameters and meta types
|
|
499
|
+
- In middleware and layouts which are used in many routes, this type will be a union of all possible routes that file will see
|
|
500
|
+
|
|
501
|
+
**`MarkoRun.CurrentContext`**
|
|
502
|
+
- In middleware and layouts which are used in many routes, this type will be a union of all possible routes that file will see.
|
|
503
|
+
- When an adapter is used, it can provide types for the platform
|
|
504
|
+
|
|
505
|
+
## Beta Roadmap
|
|
506
|
+
|
|
507
|
+
- Error handling
|
|
508
|
+
- Error component
|
|
509
|
+
- Redirect component
|
|
510
|
+
|
|
511
|
+
## What about @marko/serve?
|
|
512
|
+
|
|
513
|
+
Once stable @marko/run will replace @marko/serve and improves upon that project in several critical ways.
|
|
514
|
+
|
|
515
|
+
1. Special "route files" (eg `+page.marko`) improve the developer ergonomics quite substantially. While they may cause a double take initially, making these explicit allows colocating additional components, tests, stories, config, utilities and whatever else you need along side the page components. With `@marko/serve` it was far to easy to "accidentally" serve some of your test fixtures :see-no-evil:.
|
|
516
|
+
2. @marko/serve was built around Webpack. Since Webpack doesn't have great support for SSR'd apps it meant that a lot of this work was up to us. This was not only a maintenance burden but also lead to some rough edges such as no HMR support (just full page reloading in dev). By switching to Vite with first class SSR support things all come together much more smoothly. And we're in good company (LINK TO OTHER META FRAMEWORKS ON VITE)!
|
|
517
|
+
3. @marko/serve was primarily designed with a node target in mind. @marko/run instead supports an "adaptor" model, where you can author in web standard apis and build your application to run in Node, Deno, Netlify, Cloudflare and even a static site.
|
|
518
|
+
4. The programatic api of `@marko/serve` left some to be desired which made it difficult to integrate into existing development servers and projects. Because of this public facing eBay applications (The largest consumer of Marko) we're note able to bring in `@marko/serve`. With `@marko/run` we've worked from the ground up to ensure a flexible enough programatic api to allow embedding in existing complex applications. Because of this we're confident that `@marko/run` will see much more use than `@marko/serve` and more investment from us!
|
|
519
|
+
5. Built in layout management. Strictly speaking Marko does not need the concept of `+layout.marko` "route file". If you've used Marko before you know it's very easy to treat layouts as normal components. But by bringing these layouts into the router we're able to reduce the amount of JavaScript naively sent to the browser, reduce the amount of boilerplate, and prime ourselves for some plans we have post Marko 6 :eyes:.
|
|
520
|
+
|
|
521
|
+
There's more of course, but we're committed to make `@marko/run` _the best way_ to build a Marko application.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/@types/node/ts4.8/assert.d.ts","../../../node_modules/@types/node/ts4.8/assert/strict.d.ts","../../../node_modules/@types/node/ts4.8/globals.d.ts","../../../node_modules/@types/node/ts4.8/async_hooks.d.ts","../../../node_modules/@types/node/ts4.8/buffer.d.ts","../../../node_modules/@types/node/ts4.8/child_process.d.ts","../../../node_modules/@types/node/ts4.8/cluster.d.ts","../../../node_modules/@types/node/ts4.8/console.d.ts","../../../node_modules/@types/node/ts4.8/constants.d.ts","../../../node_modules/@types/node/ts4.8/crypto.d.ts","../../../node_modules/@types/node/ts4.8/dgram.d.ts","../../../node_modules/@types/node/ts4.8/diagnostics_channel.d.ts","../../../node_modules/@types/node/ts4.8/dns.d.ts","../../../node_modules/@types/node/ts4.8/dns/promises.d.ts","../../../node_modules/@types/node/ts4.8/domain.d.ts","../../../node_modules/@types/node/ts4.8/dom-events.d.ts","../../../node_modules/@types/node/ts4.8/events.d.ts","../../../node_modules/@types/node/ts4.8/fs.d.ts","../../../node_modules/@types/node/ts4.8/fs/promises.d.ts","../../../node_modules/@types/node/ts4.8/http.d.ts","../../../node_modules/@types/node/ts4.8/http2.d.ts","../../../node_modules/@types/node/ts4.8/https.d.ts","../../../node_modules/@types/node/ts4.8/inspector.d.ts","../../../node_modules/@types/node/ts4.8/module.d.ts","../../../node_modules/@types/node/ts4.8/net.d.ts","../../../node_modules/@types/node/ts4.8/os.d.ts","../../../node_modules/@types/node/ts4.8/path.d.ts","../../../node_modules/@types/node/ts4.8/perf_hooks.d.ts","../../../node_modules/@types/node/ts4.8/process.d.ts","../../../node_modules/@types/node/ts4.8/punycode.d.ts","../../../node_modules/@types/node/ts4.8/querystring.d.ts","../../../node_modules/@types/node/ts4.8/readline.d.ts","../../../node_modules/@types/node/ts4.8/readline/promises.d.ts","../../../node_modules/@types/node/ts4.8/repl.d.ts","../../../node_modules/@types/node/ts4.8/stream.d.ts","../../../node_modules/@types/node/ts4.8/stream/promises.d.ts","../../../node_modules/@types/node/ts4.8/stream/consumers.d.ts","../../../node_modules/@types/node/ts4.8/stream/web.d.ts","../../../node_modules/@types/node/ts4.8/string_decoder.d.ts","../../../node_modules/@types/node/ts4.8/test.d.ts","../../../node_modules/@types/node/ts4.8/timers.d.ts","../../../node_modules/@types/node/ts4.8/timers/promises.d.ts","../../../node_modules/@types/node/ts4.8/tls.d.ts","../../../node_modules/@types/node/ts4.8/trace_events.d.ts","../../../node_modules/@types/node/ts4.8/tty.d.ts","../../../node_modules/@types/node/ts4.8/url.d.ts","../../../node_modules/@types/node/ts4.8/util.d.ts","../../../node_modules/@types/node/ts4.8/v8.d.ts","../../../node_modules/@types/node/ts4.8/vm.d.ts","../../../node_modules/@types/node/ts4.8/wasi.d.ts","../../../node_modules/@types/node/ts4.8/worker_threads.d.ts","../../../node_modules/@types/node/ts4.8/zlib.d.ts","../../../node_modules/@types/node/ts4.8/globals.global.d.ts","../../../node_modules/@types/node/ts4.8/index.d.ts","../../../node_modules/vite/node_modules/esbuild/lib/main.d.ts","../../../node_modules/vite/types/metadata.d.ts","../../../node_modules/vite/types/hmrpayload.d.ts","../../../node_modules/vite/types/customevent.d.ts","../../../node_modules/rollup/dist/rollup.d.ts","../../../node_modules/vite/types/importglob.d.ts","../../../node_modules/source-map-js/source-map.d.ts","../../../node_modules/postcss/lib/comment.d.ts","../../../node_modules/postcss/lib/at-rule.d.ts","../../../node_modules/postcss/lib/rule.d.ts","../../../node_modules/postcss/lib/container.d.ts","../../../node_modules/postcss/lib/declaration.d.ts","../../../node_modules/postcss/lib/previous-map.d.ts","../../../node_modules/postcss/lib/input.d.ts","../../../node_modules/postcss/lib/css-syntax-error.d.ts","../../../node_modules/postcss/lib/warning.d.ts","../../../node_modules/postcss/lib/document.d.ts","../../../node_modules/postcss/lib/root.d.ts","../../../node_modules/postcss/lib/lazy-result.d.ts","../../../node_modules/postcss/lib/no-work-result.d.ts","../../../node_modules/postcss/lib/processor.d.ts","../../../node_modules/postcss/lib/result.d.ts","../../../node_modules/postcss/lib/node.d.ts","../../../node_modules/postcss/lib/list.d.ts","../../../node_modules/postcss/lib/postcss.d.ts","../../../node_modules/vite/dist/node/index.d.ts","../src/runtime/types.ts","../src/runtime/index.ts","../../../node_modules/undici/types/header.d.ts","../../../node_modules/undici/types/readable.d.ts","../../../node_modules/undici/types/file.d.ts","../../../node_modules/undici/types/fetch.d.ts","../../../node_modules/undici/types/formdata.d.ts","../../../node_modules/undici/types/connector.d.ts","../../../node_modules/undici/types/client.d.ts","../../../node_modules/undici/types/errors.d.ts","../../../node_modules/undici/types/dispatcher.d.ts","../../../node_modules/undici/types/global-dispatcher.d.ts","../../../node_modules/undici/types/global-origin.d.ts","../../../node_modules/undici/types/pool-stats.d.ts","../../../node_modules/undici/types/pool.d.ts","../../../node_modules/undici/types/handlers.d.ts","../../../node_modules/undici/types/balanced-pool.d.ts","../../../node_modules/undici/types/agent.d.ts","../../../node_modules/undici/types/mock-interceptor.d.ts","../../../node_modules/undici/types/mock-agent.d.ts","../../../node_modules/undici/types/mock-client.d.ts","../../../node_modules/undici/types/mock-pool.d.ts","../../../node_modules/undici/types/mock-errors.d.ts","../../../node_modules/undici/types/proxy-agent.d.ts","../../../node_modules/undici/types/api.d.ts","../../../node_modules/undici/types/cookies.d.ts","../../../node_modules/undici/types/patch.d.ts","../../../node_modules/undici/types/filereader.d.ts","../../../node_modules/undici/types/diagnostics-channel.d.ts","../../../node_modules/undici/types/websocket.d.ts","../../../node_modules/undici/types/content-type.d.ts","../../../node_modules/undici/types/interceptors.d.ts","../../../node_modules/undici/index.d.ts","../src/adapter/polyfill.ts","../src/adapter/middleware.ts","../src/adapter/dev-server.ts","../../../node_modules/@types/minimatch/index.d.ts","../../../node_modules/@types/glob/index.d.ts","../../../node_modules/magic-string/index.d.ts","../../../node_modules/@marko/babel-utils/index.d.ts","../../../node_modules/@marko/compiler/dist/types.d.ts","../../../node_modules/@marko/compiler/dist/traverse.d.ts","../../../node_modules/@marko/compiler/babel-types.d.ts","../../../node_modules/@marko/compiler/config.d.ts","../../../node_modules/@marko/compiler/index.d.ts","../../../node_modules/@marko/vite/dist/store/types.d.ts","../../../node_modules/@marko/vite/dist/store/file-store.d.ts","../../../node_modules/@marko/vite/dist/store/memory-store.d.ts","../../../node_modules/@marko/vite/dist/store/index.d.ts","../../../node_modules/@marko/vite/dist/index.d.ts","../src/vite/constants.ts","../src/vite/types.ts","../src/vite/routes/walk.ts","../src/vite/routes/builder.ts","../src/vite/codegen/writer.ts","../src/vite/routes/routetrie.ts","../src/vite/utils/route.ts","../src/vite/codegen/index.ts","../../../node_modules/@babel/types/lib/index.d.ts","../src/vite/utils/ast.ts","../../../node_modules/cli-table3/index.d.ts","../../../node_modules/kleur/index.d.ts","../../../node_modules/gzip-size/index.d.ts","../../../node_modules/@types/human-format/index.d.ts","../src/vite/utils/log.ts","../src/vite/utils/config.ts","../src/vite/plugin.ts","../../../node_modules/dotenv/lib/main.d.ts","../src/vite/utils/server.ts","../src/vite/index.ts","../src/adapter/index.ts","../src/runtime/internal.ts","../src/runtime/router.ts","../../../node_modules/@types/connect/index.d.ts","../../../node_modules/@types/body-parser/index.d.ts","../../../node_modules/@types/range-parser/index.d.ts","../../../node_modules/@types/qs/index.d.ts","../../../node_modules/@types/express-serve-static-core/index.d.ts","../../../node_modules/@types/mime/mime.d.ts","../../../node_modules/@types/mime/index.d.ts","../../../node_modules/@types/serve-static/index.d.ts","../../../node_modules/@types/express/index.d.ts","../../../node_modules/@types/compression/index.d.ts","../../../node_modules/@types/mocha/index.d.ts","../../../node_modules/@types/parse-json/index.d.ts"],"fileInfos":[{"version":"f20c05dbfe50a208301d2a1da37b9931bce0466eb5a1f4fe240971b4ecc82b67","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","d11a03592451da2d1065e09e61f4e2a9bf68f780f4f6623c18b57816a9679d17","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"9b087de7268e4efc5f215347a62656663933d63c0b1d7b624913240367b999ea","affectsGlobalScope":true},{"version":"3260e3386d9535b804205bdddb5618a9a27735bd22927f48ad54363abcd23d45","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"55f400eec64d17e888e278f4def2f254b41b89515d3b88ad75d5e05f019daddd","affectsGlobalScope":true},{"version":"181f1784c6c10b751631b24ce60c7f78b20665db4550b335be179217bacc0d5f","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"775d9c9fd150d5de79e0450f35bc8b8f94ae64e3eb5da12725ff2a649dccc777","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"34c839eaaa6d78c8674ae2c37af2236dee6831b13db7b4ef4df3ec889a04d4f2","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"ab7d58e6161a550ff92e5aff755dc37fe896245348332cd5f1e1203479fe0ed1","affectsGlobalScope":true},{"version":"6bda95ea27a59a276e46043b7065b55bd4b316c25e70e29b572958fa77565d43","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"a4da0551fd39b90ca7ce5f68fb55d4dc0c1396d589b612e1902f68ee090aaada","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},"7e771891adaa85b690266bc37bd6eb43bc57eecc4b54693ead36467e7369952a","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"02873d070f9cb79f50833fbf4a9a27ac578a2edf8ddb8421eba1b37faba83bfb","affectsGlobalScope":true},"21a167fec8f933752fb8157f06d28fab6817af3ad9b0bdb1908a10762391eab9",{"version":"c0db280fa6b09d7b8d6720a19a47f485956a41ee0e6914f1b704033eb69c6058","affectsGlobalScope":true},"374ca798f244e464346f14301dc2a8b4b111af1a83b49fffef5906c338a1f922","5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","dab86d9604fe40854ef3c0a6f9e8948873dc3509213418e5e457f410fd11200f","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","489532ff54b714f0e0939947a1c560e516d3ae93d51d639ab02e907a0e950114","f30bb836526d930a74593f7b0f5c1c46d10856415a8f69e5e2fc3db80371e362","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"816ad2e607a96de5bcac7d437f843f5afd8957f1fa5eefa6bba8e4ed7ca8fd84","affectsGlobalScope":true},"cec36af22f514322f870e81d30675c78df82ae8bf4863f5fd4e4424c040c678d","d903fafe96674bc0b2ac38a5be4a8fc07b14c2548d1cdb165a80ea24c44c0c54","5eec82ac21f84d83586c59a16b9b8502d34505d1393393556682fe7e7fde9ef2","04eb6578a588d6a46f50299b55f30e3a04ef27d0c5a46c57d8fcc211cd530faa","8d3c583a07e0c37e876908c2d5da575019f689df8d9fa4c081d99119d53dba22","2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"d4ac44f01d42f541631c5fc88d0ed8efac29a3a3ad9a745d9fd58f8b61ed132e","7c013aa892414a7fdcfd861ae524a668eaa3ede8c7c0acafaf611948122c8d93","b0973c3cbcdc59b37bf477731d468696ecaf442593ec51bab497a613a580fe30",{"version":"4989e92ba5b69b182d2caaea6295af52b7dc73a4f7a2e336a676722884e7139d","affectsGlobalScope":true},{"version":"b3624aed92dab6da8484280d3cb3e2f4130ec3f4ef3f8201c95144ae9e898bb6","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","210d54cd652ec0fec8c8916e4af59bb341065576ecda039842f9ffb2e908507c","36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","3163f47436da41706c6e2b3c1511f3b7cce9f9f3905b2f3e01246c48b4ba7d14","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","69ee23dd0d215b09907ad30d23f88b7790c93329d1faf31d7835552a10cf7cbf","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","223c37f62ce09a3d99e77498acdee7b2705a4ae14552fbdb4093600cd9164f3f",{"version":"970a90f76d4d219ad60819d61f5994514087ba94c985647a3474a5a3d12714ed","affectsGlobalScope":true},"e10177274a35a9d07c825615340b2fcde2f610f53f3fb40269fd196b4288dda6","4c8525f256873c7ba3135338c647eaf0ca7115a1a2805ae2d0056629461186ce","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"f0900cd5d00fe1263ff41201fb8073dbeb984397e4af3b8002a5c207a30bdc33","affectsGlobalScope":true},{"version":"4c50342e1b65d3bee2ed4ab18f84842d5724ad11083bd666d8705dc7a6079d80","affectsGlobalScope":true},"06d7c42d256f0ce6afe1b2b6cfbc97ab391f29dadb00dd0ae8e8f23f5bc916c3","ec4bd1b200670fb567920db572d6701ed42a9641d09c4ff6869768c8f81b404c","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa",{"version":"da26af7362f53d122283bc69fed862b9a9fe27e01bc6a69d1d682e0e5a4df3e6","affectsGlobalScope":true},"8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"652ee9c5103e89102d87bc20d167a02a0e3e5e53665674466c8cfea8a9e418c7","f05dce044af53a0b39d9540b53b0841e11c642908959bb865080288c1e24ebeb","8f07f2b6514744ac96e51d7cb8518c0f4de319471237ea10cf688b8d0e9d0225","bcb6ea18f23dae2c48459d7b86d3adccd6898f824fcbf9da08b935f559896580","0aa7220845f5f3902fe043f646f9d9218bd7dd6c4046e8471580866ea6b03aa2","8bff1a31f450aeb1dc454de28fa419ea8c15831bbc8469832ea6f609b9999ed4","739c2c46edc112421fc023c24b4898b1f413f792bb6a02b40ba182c648e56c2f","858d0d831826c6eb563df02f7db71c90e26deadd0938652096bea3cc14899700","d1c89db652113258e4ba4bbdf5cc7a2a3a600403d4d864a2087b95186253cd5b","11a90d2cb2eaf7fdf931a63b58279e8161f1477a1bd1e914ae026c1bbf9afed3","af18e30f3ba06e9870b61dfa4a109215caabdaa337590c51b4a044a9f338ce96","ace603f7b60599f2dcdbd71c07137b60a747dd33be540f4a294b890f9e0b89dc","7658fbdd425c656fb1849b44932ae7431e8c3198d22c65ce1490deb582743b52","7786c75c1b46e93b33c63dccf689143a5f47ff451a6b3bd9b10e4801cdeadcc2","dbef2851e33a4c2fd2f3164fec70e45df647eb0e87f250de784500a3037e2c37","31491a01ed7466e0b3b0ef8407f2524683055eceb955b1d5ccf7096129468b39","f4b12f7dde4fc0e386648318481bdcfe861b566be246bebf0e8a11ebd909adf9","e8966f7c424780bb0b9d411ebe13eda8555ca15aa675603316c2952bc027b0e3","df0e5f3c4a518111d160cf3bebc9a3ac7d39c6e3bfb7a21d43c304896c3015e2","df4e2f161f74870708c2cc5e1036a6405b878496408fda1ee50d5b10e50d6601","bf791da347fb1c0ffc1e2fcd35867e64bb8355270ae26278198c521bdcf94569","e0e0e3c068e145fbb322120979299ff130ffdd39f0dcd0d5aeaa9f3f8a0d01d9","fde91356172e35b9ea68bbdf33721f7c80307a4ce65b82105eac800e9e744995","9bd5e5a4a1e66b35efe3c48ddac1116537ef86e041717f3a9b9f1e060c74efa6","d7e4a5f4ccfb749c3033fafc233073b4d1dcca0249785186c589602a81f9d86f","68161b6f3004fc10f8bb47a4986cef13c3b0728fb1ca3e1dc7316227d09b2c8d","78c7b6467e0fa14eb0b465af39d6e6ac90c13e0607695a1367c71d33333bb7d5",{"version":"8a8ae6b256d36b0e9e601171b84e0254e2053413d1fc7cdc6271b8b8f98fc3e1","signature":"c3fed407be7cf0dfbec2cd07eac3ef8ec5e357289aae206a1859ca418010fe3c"},{"version":"70aff84abb09620960fc1363525ae59efac888534453348ba621a754ede154fe","signature":"690529b3de5d4033590c338bb7161e61efff5b8a8968504952ec4e4834253fec","affectsGlobalScope":true},"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","0589c85b507c2b90458bf7f87c2aebb0879a251fa119f2464350113d93113a32","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","db6c2d64e5c642b4e08a136a15ef7155452fc7072513ac5b18a03b8e8107fe45","d9bf99a360cb3dfdc87b7e4988d63115cb30bf180f2bcfd56f425d2aee49925f","2e98c8d346012b9ac4f372d5a0ba7930ec413e45822d52a833dcde4a1cca91eb","85b5d54fc8586dc83c99934f02df83954282725ffcbd6631d4aa0ec81afb8671","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","8b23b832eb8547e6ef837f2c86a2354bcc4a52f5a51b6f0c82da48dd71961bf1","80ad053918e96087d9da8d092ff9f90520c9fc199c8bfd9340266dd8f38f364e","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","cf01820a6625d372b406150fc8bbaaf82326dad57088a09d546df4619fcf4d2e","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","f436b69387a990543d96787d1671b601a1ca624c420edc53560cb3d742f132fb","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","e4da0dc0982bc3ecaed637009f74a847b8d3fe06cbcf9f5e83b8ce8b0ed5d393",{"version":"e7524c4e71eb352d4798b4d83b761a5cd703b8722d3c8de29fb2f5fd00fef7ae","signature":"44a848e913ff15fdc276433caaf5ca887c3ad0e730c488c700383912cfdc5b01"},{"version":"c18667d1cf6133a10ad8277ea19c78a413e2f9439b854c827e0fced9d4ccd296","signature":"0fa27571d00fcb0249f6ded53e889bbcc44f8c2dfc79dcef1b53a24499c5fbca"},{"version":"91568abc9d2bb10b55844d306ce1d8456b92b441b380a34e3b4b9ec6dc27ac4b","signature":"5e533490911188e94cde9ecaef198400fd71d03d253fd05d4bf516c67eeaa175"},"963d59066dd6742da1918a6213a209bcc205b8ee53b1876ee2b4e6d80f97c85e","a55ca8b5f8c6a8535bb26fac1e10132a5338234ca3d5b9ed739fbc8ef41c8075","7d2e8108a8d5104af657b553719cebbdc853c9b4ef6fcd61eed61cf5e08c887d","7b2c69215c38b985deeb5383888c97649fa614c85e0ffc3f59a7ee29c79f40ad","24568dcf744ed1a9700063a95362d507494180a671b4fbad1a72acf42e33ca42","737553ba98c20db05b610925e8106ba095707bb3af134229460c04fece8222de","27560169815f4eb65fd27e58a2ab5f1ee204c41c15484774de8cb9f8e0a4b578","5380aeeedece7663d123c548a2baf9209577fa270c6dd34f801e3401c633e463","d9e74b6fa3a9c501f4211daf19c300ff782e827dd4934a1188a37c00c7a1335c","93c8b225a9da82b35a6ccc81d9b9110ecd7f7264e711a505fde11de7ab937451","f45d5b8919f317b3decca1afb1f4357a9a83f20e774e0b7a53bdf02fc749db99","db848adfda3f25a5726066d4b84630cfeaee605d13171b19cf54d157cee612d6","0edf585c43954817bc6cae2411f6af9810af08ca39044ccd40122456235f314e","d6bb90af219c3713408075b9779d0894e93227a2777924b09f6bf930804f1428",{"version":"6a047d3fc0fbe3607188e07d04f588e22846dbd72b4e0b49cbfbd3cd2e27f414","signature":"cd77a3729d879c6986588bb950807674ed12a97bd2d2e3592b835f725f3d59bd"},{"version":"2c7fd83aa7b681bbce21b81ba55ecb2d658f41927426a1e4fe08a9447b7b878c","signature":"98b790989eb0e3b5478f9a359bfd68a412465ee5e3d9f827a27282ffb29dcf7c"},{"version":"c24c426a7df76ba13632f17cafb810387a6592e90899976851b95c054dc18ca4","signature":"48ebee34ad5fad861968dd42d94730c752df4bb4a89409da5d5a12fc2dd9617e"},{"version":"2a7833419b55a3d2c4398c02b7cbd01ab933c6266ad50d6c9cf22cebf572cdaa","signature":"7c818fe456a538663b89785111756cf9d7ce6fefda430b572a8d22a48dd31739"},{"version":"803d29d02ba47713168639b7d6d438ba2bafc836035d9d1e7abfac5d608229ec","signature":"46238c172356216ae0fdc56a47ccf7c07506062eda8276590d52fb8585fe7d08"},{"version":"df183dacdf7ac14916e06b8361b7ddc768b1447ce59e8d6d6b4293d0a6cd4aae","signature":"b3e32fb86dd71104f4fea5efe4839fcec9bb89659bdf0a4aa0ccd68fde2ca4e9"},{"version":"3e7025fa170435e50f393c7fe75bfdc99fe874b44fe50de148ec5242f75941fe","signature":"44428f74bf9a1b9df881b0e2e72b4036c6a80cfe84ab2a75bd8501efa4f1c9d9"},{"version":"522effd9831560a0a33423aafaa8e9a344c3bc49450ea3fe1c47a83526557255","signature":"06f4f6c7ee82dfaf3679a0107c00106406c1a688d0e94b49dbf1e19557dc96ed"},"c561efdf5ba0b62619745d4761fe2d9756f23db972e039367d15922fed67fd2f",{"version":"8edb7e8f82f7eefe4212848d6b6bff2e2fb0319cb9c1822d6e45e9e5d6e87d45","signature":"1f11365b8a4c385627c3df832da56fe501c5502799627cc998d0953bab447559"},"e6d2c107b358421399671d5afc04f9a0993833121c74bcbd3648ac3a65770936","6ab263df6465e2ed8f1d02922bae18bb5b407020767de021449a4c509859b22e","272291278c861cd68a097674773fe90b2d7a66f1da4e542d3aa814e8a06ee713","98380aa684fdfceb8b7107e302c62c207dbc1b60a249f6ce714277f103ba642b",{"version":"3967ec35d9c2e8e3b1ffa119b5422bdd123f21f0a4fc48914847a5ef6683e752","signature":"5a9f0842480ec222faf513217d0cb2fdf798e48831e56c62d3a575fed6c9c96a"},{"version":"ad9a77ed9ebf923071e1ded384388c0d2520936c246f9cfd040b5cd7d8c1c809","signature":"04d74cd36a20354e300041ad60390aae9f2fe37162cd2df8080b738e14ebd747"},{"version":"3b426aca20666a41ed6a27122a199481b92633f35ef9aa2368d5a728449c607a","signature":"ec0813eb2a5baaff37494fe7b3ac7f1076660430ff12ea74d6ce75dd503245a6"},"cfdd927a5eae7a7e623b9745722ef3f2b7a2997fddc5d32b7e3dcaeeb15ff4a3",{"version":"b77a765400e852a541ad85e3f7decaca85e8b0ddca360c6c2368278c54b8ff3d","signature":"349110fbb824c1719e8de0c7627c91bb4a875e75b7085f189888011e1e00dd23"},{"version":"ec70602ae60013833d26e459067d079a705a5658cfbe788da88700e46ed8d379","signature":"91afd8a2b4230e2830a040d4f48b2bc9ecb92db6244656a45932bf05670ca8f0"},{"version":"1fba983b85706217b708f26cf6064373782342ad9a9f842456242a3103e3aceb","signature":"61b167e597246e8b0616f6ae2e4abe2e3d3fb6530084bccc1d27be10966e1105"},{"version":"cbac0f09c7637ef5b43b20674f9a27bd1bc7157d5b67d2fb0aaab3ba61cc0514","signature":"0d755deaa110c081388b78d5ecd5b49908853d7d3f251d7af81821b1cc95a757"},{"version":"1cda2a4f2807f673c15d7818791d82b15d8ebfb3a5ade6f9aaa79f2020717b21","signature":"acabf8e4e3b870df53bd1e238c2dbdd6f5cc8db7dc6924fb9a4cbdc6a2180dd3"},"6d829824ead8999f87b6df21200df3c6150391b894b4e80662caa462bd48d073","afc559c1b93df37c25aef6b3dfa2d64325b0e112e887ee18bf7e6f4ec383fc90","16d51f964ec125ad2024cf03f0af444b3bc3ec3614d9345cc54d09bab45c9a4c","ba601641fac98c229ccd4a303f747de376d761babb33229bb7153bed9356c9cc",{"version":"ae3fe461989bbd951344efc1f1fe932360ce7392e6126bdb225a82a1bbaf15ee","affectsGlobalScope":true},"5b9ecf7da4d71cf3832dbb8336150fa924631811f488ad4690c2dfec2b4fb1d7","951c85f75aac041dddbedfedf565886a7b494e29ec1532e2a9b4a6180560b50e","f47887b61c6cf2f48746980390d6cb5b8013518951d912cfb37fe748071942be","15c88bfd1b8dc7231ff828ae8df5d955bae5ebca4cf2bcb417af5821e52299ae",{"version":"717e5f864ab6e755a23b66a7935920d9a73ec7d4728b84ddf85c1d334a9414ae","affectsGlobalScope":true},{"version":"3f6d6465811321abc30a1e5f667feed63e5b3917b3d6c8d6645daf96c75f97ba","affectsGlobalScope":true},"2b8264b2fefd7367e0f20e2c04eed5d3038831fe00f5efbc110ff0131aab899b"],"options":{"allowSyntheticDefaultImports":true,"allowUnreachableCode":false,"allowUnusedLabels":false,"composite":true,"emitDeclarationOnly":true,"esModuleInterop":true,"importsNotUsedAsValues":2,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noImplicitReturns":false,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","rootDir":"../src","sourceMap":false,"strict":true,"stripInternal":true,"target":99,"tsBuildInfoFile":"./.tsbuildinfo"},"fileIdsList":[[102],[102,180],[102,176,177],[73,102],[102,176,180],[102,174,175,178,179],[102,135,180,184],[102,181],[102,181,182,183],[75,102,109,169,170,209],[102,217],[75,102,109,169,170],[72,75,102,109,169,170,211,212],[102,210,212,213,216],[72,73,102,109,172],[102,214],[102,215],[56,102],[59,102],[60,65,93,102],[61,72,73,80,90,101,102],[61,62,72,80,102],[63,102],[64,65,73,81,102],[65,90,98,102],[66,68,72,80,102],[67,102],[68,69,102],[72,102],[70,72,102],[72,73,74,90,101,102],[72,73,74,87,90,93,102],[102,106],[68,75,80,90,101,102,169,170],[72,73,75,76,80,90,98,101,102],[75,77,90,98,101,102],[56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108],[72,78,102],[79,101,102],[68,72,80,90,102,170],[81,102],[82,102],[59,83,102],[84,100,102,106],[85,102],[86,102],[72,87,88,102],[87,89,102,104],[60,72,90,91,92,93,102],[60,90,92,102],[90,91,102],[93,102],[94,102],[72,96,97,102],[96,97,102],[65,80,90,98,102],[99,102],[80,100,102],[60,75,86,101,102],[65,102],[90,102,103],[102,104],[102,105],[60,65,72,74,83,90,101,102,104,106],[90,102,107],[75,102,109,169,170,215],[102,109],[60,90,102,107],[102,120],[102,120,132],[102,117,118,119,121,132],[102,123],[102,120,127,131,134],[102,122,134],[102,125,127,130,131,134],[102,125,127,128,130,131,134],[102,117,118,119,120,121,123,124,125,126,127,131,134],[102,116,117,118,119,120,121,123,124,125,126,127,128,130,131,132,133],[102,116,134],[102,127,128,129,131,134],[102,130,134],[102,120,126,131,134],[102,124,132],[102,116],[102,140,141,142,143,144,145,146,147,148,150,151,152,153,154,155,156,157,158,159,160,161,163,164,165,166,167],[101,102,146,150],[90,101,102,146],[98,101,102,143,146],[80,98,102,170],[102,109,141],[80,101,102,143,146,170],[60,72,90,101,102,138,139,142,145],[102,138,144],[60,93,101,102,109,142,146],[60,102,109],[60,102,109,162],[102,109,140,141],[102,146],[102,146,153,154],[102,144,146,154,155],[102,145],[102,138,141,146],[102,146,150,154,155],[102,150],[101,102,144,146,149],[102,138,143,146,153],[60,90,102],[102,109,162],[72,73,75,77,80,90,98,101,102,107,109,110,111,112,113,114,115,134],[102,112],[102,114],[102,135,137,170],[80,82,101,102,170,171,204,205],[75,80,102,135,137,169,170],[65,75,93,102,168,169,170],[102,136],[102,186,187,190,191,192],[102,187,202,204],[65,73,82,101,102,111,114,135,173,185,186,187,188,189,193,195,200,201],[102,186,187,188],[102,187],[73,82,102],[102,135,185,186],[102,194],[102,111,114,187,192,196,197,198,199],[61,73,80,102,170,203],[75,102,109,170,209],[75,102,109,170],[72,75,102,109,170,211,212],[68,75,80,90,101,102,170],[75,102,109,170,215],[135,170],[170,171,205],[75,80,135,137,169,170],[75,169,170],[136],[187],[187,202,204],[135,187],[187,188],[135,185,186],[111,114,187],[203]],"referencedMap":[[194,1],[175,2],[178,3],[179,4],[177,5],[176,1],[180,6],[185,7],[182,8],[184,9],[183,8],[181,1],[210,10],[218,11],[209,12],[213,13],[217,14],[173,15],[199,1],[215,16],[214,17],[172,1],[219,1],[56,18],[57,18],[59,19],[60,20],[61,21],[62,22],[63,23],[64,24],[65,25],[66,26],[67,27],[68,28],[69,28],[71,29],[70,30],[72,29],[73,31],[74,32],[58,33],[108,1],[75,34],[76,35],[77,36],[109,37],[78,38],[79,39],[80,40],[81,41],[82,42],[83,43],[84,44],[85,45],[86,46],[87,47],[88,47],[89,48],[90,49],[92,50],[91,51],[93,52],[94,53],[95,1],[96,54],[97,55],[98,56],[99,57],[100,58],[101,59],[102,60],[103,61],[104,62],[105,63],[106,64],[107,65],[220,1],[212,1],[211,1],[216,66],[196,1],[203,67],[198,68],[197,1],[174,1],[118,69],[117,70],[120,71],[124,72],[121,70],[126,73],[123,74],[128,75],[133,1],[129,76],[132,77],[134,78],[122,79],[130,80],[131,81],[127,82],[119,69],[125,83],[114,1],[116,84],[11,1],[12,1],[14,1],[13,1],[2,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[22,1],[3,1],[4,1],[26,1],[23,1],[24,1],[25,1],[27,1],[28,1],[29,1],[5,1],[30,1],[31,1],[32,1],[33,1],[6,1],[34,1],[35,1],[36,1],[37,1],[7,1],[38,1],[43,1],[44,1],[39,1],[40,1],[41,1],[42,1],[8,1],[48,1],[45,1],[46,1],[47,1],[49,1],[9,1],[50,1],[51,1],[52,1],[53,1],[54,1],[1,1],[10,1],[55,1],[168,85],[153,86],[160,87],[152,86],[144,88],[143,89],[166,67],[161,90],[164,91],[146,92],[145,93],[141,94],[140,95],[163,96],[142,97],[147,98],[148,1],[151,98],[138,1],[167,98],[155,99],[156,100],[158,101],[154,102],[157,103],[162,67],[149,104],[150,105],[159,106],[139,107],[165,108],[135,109],[110,1],[113,110],[112,1],[115,1],[111,111],[171,112],[206,113],[170,114],[169,115],[137,116],[207,116],[208,116],[136,1],[193,117],[190,1],[186,1],[205,118],[202,119],[189,120],[191,121],[188,122],[187,123],[195,124],[201,121],[200,125],[192,121],[204,126]],"exportedModulesMap":[[194,1],[175,2],[178,3],[179,4],[177,5],[176,1],[180,6],[185,7],[182,8],[184,9],[183,8],[181,1],[210,127],[218,11],[209,128],[213,129],[217,14],[173,15],[199,1],[215,16],[214,17],[172,1],[219,1],[56,18],[57,18],[59,19],[60,20],[61,21],[62,22],[63,23],[64,24],[65,25],[66,26],[67,27],[68,28],[69,28],[71,29],[70,30],[72,29],[73,31],[74,32],[58,33],[108,1],[75,130],[76,35],[77,36],[109,37],[78,38],[79,39],[80,40],[81,41],[82,42],[83,43],[84,44],[85,45],[86,46],[87,47],[88,47],[89,48],[90,49],[92,50],[91,51],[93,52],[94,53],[95,1],[96,54],[97,55],[98,56],[99,57],[100,58],[101,59],[102,60],[103,61],[104,62],[105,63],[106,64],[107,65],[220,1],[212,1],[211,1],[216,131],[196,1],[203,67],[198,68],[197,1],[174,1],[118,69],[117,70],[120,71],[124,72],[121,70],[126,73],[123,74],[128,75],[133,1],[129,76],[132,77],[134,78],[122,79],[130,80],[131,81],[127,82],[119,69],[125,83],[114,1],[116,84],[11,1],[12,1],[14,1],[13,1],[2,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[22,1],[3,1],[4,1],[26,1],[23,1],[24,1],[25,1],[27,1],[28,1],[29,1],[5,1],[30,1],[31,1],[32,1],[33,1],[6,1],[34,1],[35,1],[36,1],[37,1],[7,1],[38,1],[43,1],[44,1],[39,1],[40,1],[41,1],[42,1],[8,1],[48,1],[45,1],[46,1],[47,1],[49,1],[9,1],[50,1],[51,1],[52,1],[53,1],[54,1],[1,1],[10,1],[55,1],[168,85],[153,86],[160,87],[152,86],[144,88],[143,89],[166,67],[161,90],[164,91],[146,92],[145,93],[141,94],[140,95],[163,96],[142,97],[147,98],[148,1],[151,98],[138,1],[167,98],[155,99],[156,100],[158,101],[154,102],[157,103],[162,67],[149,104],[150,105],[159,106],[139,107],[165,108],[135,109],[110,1],[113,110],[112,1],[115,1],[111,111],[171,132],[206,133],[170,134],[169,135],[137,136],[207,136],[208,136],[193,137],[205,138],[202,139],[189,140],[191,137],[187,141],[201,137],[200,142],[192,137],[204,143]],"semanticDiagnosticsPerFile":[194,175,178,179,177,176,180,185,182,184,183,181,210,218,209,213,217,173,199,215,214,172,219,56,57,59,60,61,62,63,64,65,66,67,68,69,71,70,72,73,74,58,108,75,76,77,109,78,79,80,81,82,83,84,85,86,87,88,89,90,92,91,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,220,212,211,216,196,203,198,197,174,118,117,120,124,121,126,123,128,133,129,132,134,122,130,131,127,119,125,114,116,11,12,14,13,2,15,16,17,18,19,20,21,22,3,4,26,23,24,25,27,28,29,5,30,31,32,33,6,34,35,36,37,7,38,43,44,39,40,41,42,8,48,45,46,47,49,9,50,51,52,53,54,1,10,55,168,153,160,152,144,143,166,161,164,146,145,141,140,163,142,147,148,151,138,167,155,156,158,154,157,162,149,150,159,139,165,135,110,113,112,115,111,171,206,170,169,137,207,208,136,193,190,186,205,202,189,191,188,187,195,201,200,192,204],"latestChangedDtsFile":"./adapter/polyfill.d.ts"},"version":"4.8.3"}
|