@sveltejs/kit 2.62.0 → 2.63.1
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/package.json +12 -1
- package/src/cli.js +32 -6
- package/src/core/adapt/builder.js +26 -5
- package/src/core/adapt/index.js +5 -2
- package/src/core/config/index.js +7 -5
- package/src/core/config/options.js +1 -0
- package/src/core/env.js +313 -8
- package/src/core/postbuild/analyse.js +2 -1
- package/src/core/postbuild/prerender.js +2 -1
- package/src/core/sync/create_manifest_data/index.js +24 -1
- package/src/core/sync/sync.js +16 -0
- package/src/core/sync/write_ambient.js +12 -6
- package/src/core/sync/write_env.js +33 -0
- package/src/core/sync/write_root.js +1 -1
- package/src/core/sync/write_server.js +3 -2
- package/src/core/sync/write_tsconfig.js +1 -0
- package/src/exports/hooks/index.js +13 -0
- package/src/exports/internal/env.js +71 -0
- package/src/exports/internal/types.d.ts +3 -0
- package/src/exports/public.d.ts +40 -0
- package/src/exports/vite/build/build_service_worker.js +20 -4
- package/src/exports/vite/dev/index.js +2 -2
- package/src/exports/vite/index.js +129 -36
- package/src/exports/vite/module_ids.js +10 -1
- package/src/exports/vite/static_analysis/index.js +2 -4
- package/src/exports/vite/static_analysis/types.d.ts +14 -0
- package/src/exports/vite/utils.js +7 -12
- package/src/runtime/app/env/index.js +2 -0
- package/src/runtime/app/env/internal.js +11 -0
- package/src/runtime/app/env/private.js +1 -0
- package/src/runtime/app/env/public/client.js +7 -0
- package/src/runtime/app/env/public/index.js +1 -0
- package/src/runtime/app/env/public/server.js +7 -0
- package/src/runtime/app/env/standard-schema.d.ts +0 -0
- package/src/runtime/app/env/types.d.ts +19 -0
- package/src/runtime/app/environment/index.js +8 -2
- package/src/runtime/app/server/remote/query.js +1 -1
- package/src/runtime/client/ndjson.js +6 -33
- package/src/runtime/client/remote-functions/prerender.svelte.js +1 -1
- package/src/runtime/client/remote-functions/query-live/iterator.js +36 -55
- package/src/runtime/client/sse.js +32 -0
- package/src/runtime/client/stream.js +38 -0
- package/src/runtime/client/utils.js +1 -1
- package/src/runtime/server/env_module.js +13 -3
- package/src/runtime/server/index.js +2 -0
- package/src/runtime/server/page/render.js +14 -3
- package/src/runtime/server/remote.js +2 -2
- package/src/runtime/server/respond.js +1 -1
- package/src/types/ambient-private.d.ts +25 -9
- package/src/types/global-private.d.ts +2 -0
- package/src/types/internal.d.ts +2 -1
- package/src/utils/error.js +12 -0
- package/src/utils/import.js +2 -2
- package/src/version.js +1 -1
- package/types/index.d.ts +81 -3
- package/types/index.d.ts.map +11 -3
|
@@ -4,21 +4,28 @@ import { get_remote_request_headers, handle_side_channel_response } from '../sha
|
|
|
4
4
|
import * as devalue from 'devalue';
|
|
5
5
|
import { HttpError } from '@sveltejs/kit/internal';
|
|
6
6
|
import { noop } from '../../../../utils/functions.js';
|
|
7
|
-
import {
|
|
7
|
+
import { read_sse } from '../../sse.js';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
|
-
* @
|
|
11
|
-
* @
|
|
10
|
+
* @template T
|
|
11
|
+
* @param {string} id
|
|
12
|
+
* @param {string} payload
|
|
13
|
+
* @param {AbortController} [controller]
|
|
14
|
+
* @param {() => void} [on_connect]
|
|
15
|
+
* @returns {AsyncGenerator<T>}
|
|
12
16
|
*/
|
|
13
|
-
async function
|
|
14
|
-
|
|
17
|
+
export async function* create_live_iterator(
|
|
18
|
+
id,
|
|
19
|
+
payload,
|
|
20
|
+
controller = new AbortController(),
|
|
21
|
+
on_connect = noop
|
|
22
|
+
) {
|
|
23
|
+
const url = `${base}/${app_dir}/remote/${id}${payload ? `?payload=${payload}` : ''}`;
|
|
15
24
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
throw new HttpError(500, 'Invalid query.live response');
|
|
21
|
-
}
|
|
25
|
+
const response = await fetch(url, {
|
|
26
|
+
headers: get_remote_request_headers(),
|
|
27
|
+
signal: controller.signal
|
|
28
|
+
});
|
|
22
29
|
|
|
23
30
|
if (!response.ok) {
|
|
24
31
|
const result = await response.json().catch(() => ({
|
|
@@ -30,60 +37,34 @@ async function get_stream_reader(response) {
|
|
|
30
37
|
throw new HttpError(result.status ?? response.status ?? 500, result.error);
|
|
31
38
|
}
|
|
32
39
|
|
|
33
|
-
if (
|
|
34
|
-
|
|
40
|
+
if (response.headers.get('content-type')?.includes('application/json')) {
|
|
41
|
+
// we can end up here if we e.g. redirect in `handle`
|
|
42
|
+
const result = await response.json();
|
|
43
|
+
await handle_side_channel_response(result);
|
|
44
|
+
throw new HttpError(500, 'Invalid query.live response');
|
|
35
45
|
}
|
|
36
46
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Yields deserialized results from a ReadableStream of newline-delimited JSON
|
|
42
|
-
* @param {ReadableStreamDefaultReader<Uint8Array>} reader
|
|
43
|
-
*/
|
|
44
|
-
async function* read_live_ndjson(reader) {
|
|
45
|
-
for await (const node of read_ndjson(reader)) {
|
|
46
|
-
if (node.type === 'result') {
|
|
47
|
-
yield devalue.parse(node.result, app.decoders);
|
|
48
|
-
continue;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
await handle_side_channel_response(node);
|
|
52
|
-
throw new HttpError(500, 'Invalid query.live response');
|
|
47
|
+
if (!response.body) {
|
|
48
|
+
throw new Error('Expected query.live response body to be a ReadableStream');
|
|
53
49
|
}
|
|
54
|
-
}
|
|
55
50
|
|
|
56
|
-
|
|
57
|
-
* @template T
|
|
58
|
-
* @param {string} id
|
|
59
|
-
* @param {string} payload
|
|
60
|
-
* @param {AbortController} [controller]
|
|
61
|
-
* @param {() => void} [on_connect]
|
|
62
|
-
* @returns {AsyncGenerator<T>}
|
|
63
|
-
*/
|
|
64
|
-
export async function* create_live_iterator(
|
|
65
|
-
id,
|
|
66
|
-
payload,
|
|
67
|
-
controller = new AbortController(),
|
|
68
|
-
on_connect = noop
|
|
69
|
-
) {
|
|
70
|
-
const url = `${base}/${app_dir}/remote/${id}${payload ? `?payload=${payload}` : ''}`;
|
|
71
|
-
/** @type {ReadableStreamDefaultReader<Uint8Array> | null} */
|
|
72
|
-
let reader = null;
|
|
51
|
+
const reader = response.body.getReader();
|
|
73
52
|
|
|
74
53
|
try {
|
|
75
|
-
const response = await fetch(url, {
|
|
76
|
-
headers: get_remote_request_headers(),
|
|
77
|
-
signal: controller.signal
|
|
78
|
-
});
|
|
79
|
-
reader = await get_stream_reader(response);
|
|
80
|
-
|
|
81
54
|
on_connect();
|
|
82
55
|
|
|
83
|
-
|
|
56
|
+
for await (const node of read_sse(reader)) {
|
|
57
|
+
if (node.type === 'result') {
|
|
58
|
+
yield devalue.parse(node.result, app.decoders);
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
await handle_side_channel_response(node);
|
|
63
|
+
throw new HttpError(500, 'Invalid query.live response');
|
|
64
|
+
}
|
|
84
65
|
} finally {
|
|
85
66
|
try {
|
|
86
|
-
await reader
|
|
67
|
+
await reader.cancel();
|
|
87
68
|
} catch {
|
|
88
69
|
// already closed
|
|
89
70
|
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { read_stream } from './stream.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @param {string} block
|
|
5
|
+
* @returns {string | undefined}
|
|
6
|
+
*/
|
|
7
|
+
function parse_sse_event_data(block) {
|
|
8
|
+
const lines = block.split('\n');
|
|
9
|
+
let data = '';
|
|
10
|
+
|
|
11
|
+
for (const line of lines) {
|
|
12
|
+
if (line.startsWith('data:')) {
|
|
13
|
+
data += (data ? '\n' : '') + line.slice(5).trimStart();
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
return data || undefined;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Yields parsed JSON objects from a ReadableStream of Server-Sent Events.
|
|
22
|
+
* Each yielded value is the raw `JSON.parse`'d object from a `data:` field.
|
|
23
|
+
* @param {ReadableStreamDefaultReader<Uint8Array>} reader
|
|
24
|
+
*/
|
|
25
|
+
export async function* read_sse(reader) {
|
|
26
|
+
for await (const block of read_stream(reader, '\n\n')) {
|
|
27
|
+
const data = parse_sse_event_data(block);
|
|
28
|
+
if (data) {
|
|
29
|
+
yield JSON.parse(data);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reads from a stream, decoding it as text and yielding each block of content
|
|
3
|
+
* separated by `delimiter`. The trailing block (if any) is yielded once the
|
|
4
|
+
* stream closes.
|
|
5
|
+
* @param {ReadableStreamDefaultReader<Uint8Array>} reader
|
|
6
|
+
* @param {string} delimiter
|
|
7
|
+
*/
|
|
8
|
+
export async function* read_stream(reader, delimiter) {
|
|
9
|
+
let done = false;
|
|
10
|
+
let buffer = '';
|
|
11
|
+
const decoder = new TextDecoder();
|
|
12
|
+
|
|
13
|
+
while (true) {
|
|
14
|
+
let split = buffer.indexOf(delimiter);
|
|
15
|
+
while (split !== -1) {
|
|
16
|
+
yield buffer.slice(0, split);
|
|
17
|
+
buffer = buffer.slice(split + delimiter.length);
|
|
18
|
+
split = buffer.indexOf(delimiter);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
if (done) {
|
|
22
|
+
if (buffer) {
|
|
23
|
+
yield buffer;
|
|
24
|
+
}
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const chunk = await reader.read();
|
|
29
|
+
done = chunk.done;
|
|
30
|
+
if (chunk.value) {
|
|
31
|
+
buffer += decoder.decode(chunk.value, { stream: true });
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
if (done) {
|
|
35
|
+
buffer += decoder.decode();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BROWSER, DEV } from 'esm-env';
|
|
2
2
|
import { writable } from 'svelte/store';
|
|
3
3
|
import { assets } from '$app/paths';
|
|
4
|
-
import { version } from '
|
|
4
|
+
import { version } from '$app/env';
|
|
5
5
|
import { noop } from '../../utils/functions.js';
|
|
6
6
|
import { PRELOAD_PRIORITIES } from './constants.js';
|
|
7
7
|
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import * as devalue from 'devalue';
|
|
1
2
|
import { public_env } from '../shared-server.js';
|
|
3
|
+
import { rendered_env } from '__sveltekit/env';
|
|
2
4
|
|
|
3
5
|
/** @type {string} */
|
|
4
|
-
let
|
|
6
|
+
let payload;
|
|
5
7
|
|
|
6
8
|
/** @type {string} */
|
|
7
9
|
let etag;
|
|
@@ -14,7 +16,11 @@ let headers;
|
|
|
14
16
|
* @returns {Response}
|
|
15
17
|
*/
|
|
16
18
|
export function get_public_env(request) {
|
|
17
|
-
|
|
19
|
+
const script = request.url.endsWith('.script.js');
|
|
20
|
+
|
|
21
|
+
const env = __SVELTEKIT_EXPERIMENTAL_EXPLICIT_ENVIRONMENT_VARIABLES__ ? rendered_env : public_env;
|
|
22
|
+
|
|
23
|
+
payload ??= devalue.uneval(env);
|
|
18
24
|
etag ??= `W/${Date.now()}`;
|
|
19
25
|
headers ??= new Headers({
|
|
20
26
|
'content-type': 'application/javascript; charset=utf-8',
|
|
@@ -25,5 +31,9 @@ export function get_public_env(request) {
|
|
|
25
31
|
return new Response(undefined, { status: 304, headers });
|
|
26
32
|
}
|
|
27
33
|
|
|
28
|
-
|
|
34
|
+
if (script) {
|
|
35
|
+
return new Response(`globalThis.__sveltekit_sw={env:${payload}}`, { headers });
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
return new Response(`export const env=${payload}`, { headers });
|
|
29
39
|
}
|
|
@@ -8,6 +8,7 @@ import { options, get_hooks } from '__SERVER__/internal.js';
|
|
|
8
8
|
import { filter_env } from '../../utils/env.js';
|
|
9
9
|
import { format_server_error } from './utils.js';
|
|
10
10
|
import { set_read_implementation, set_manifest } from '__sveltekit/server';
|
|
11
|
+
import { set_env } from '__sveltekit/env';
|
|
11
12
|
import { set_app } from './app.js';
|
|
12
13
|
|
|
13
14
|
/** @type {Promise<any>} */
|
|
@@ -62,6 +63,7 @@ export class Server {
|
|
|
62
63
|
|
|
63
64
|
set_private_env(filter_env(env, env_private_prefix, env_public_prefix));
|
|
64
65
|
set_public_env(filter_env(env, env_public_prefix, env_private_prefix));
|
|
66
|
+
set_env(env);
|
|
65
67
|
|
|
66
68
|
if (read) {
|
|
67
69
|
// Wrap the read function to handle MaybePromise<ReadableStream>
|
|
@@ -23,6 +23,7 @@ import {
|
|
|
23
23
|
} from '../utils.js';
|
|
24
24
|
import { create_remote_key } from '../../shared.js';
|
|
25
25
|
import { get_status } from '../../../utils/error.js';
|
|
26
|
+
import * as env from '__sveltekit/env';
|
|
26
27
|
|
|
27
28
|
// TODO rename this function/module
|
|
28
29
|
|
|
@@ -404,7 +405,10 @@ export async function render_response({
|
|
|
404
405
|
// import the env.js module so that it evaluates before any user code can evaluate.
|
|
405
406
|
// TODO revert to using top-level await once https://bugs.webkit.org/show_bug.cgi?id=242740 is fixed
|
|
406
407
|
// https://github.com/sveltejs/kit/pull/11601
|
|
407
|
-
const load_env_eagerly =
|
|
408
|
+
const load_env_eagerly =
|
|
409
|
+
(__SVELTEKIT_EXPERIMENTAL_EXPLICIT_ENVIRONMENT_VARIABLES__ ||
|
|
410
|
+
client.uses_env_dynamic_public) &&
|
|
411
|
+
state.prerendering;
|
|
408
412
|
|
|
409
413
|
const properties = [`base: ${base_expression}`];
|
|
410
414
|
|
|
@@ -412,7 +416,9 @@ export async function render_response({
|
|
|
412
416
|
properties.push(`assets: ${s(paths.assets)}`);
|
|
413
417
|
}
|
|
414
418
|
|
|
415
|
-
if (
|
|
419
|
+
if (__SVELTEKIT_EXPERIMENTAL_EXPLICIT_ENVIRONMENT_VARIABLES__) {
|
|
420
|
+
properties.push(`env: ${load_env_eagerly ? 'null' : devalue.uneval(env.rendered_env)}`);
|
|
421
|
+
} else if (client.uses_env_dynamic_public) {
|
|
416
422
|
properties.push(`env: ${load_env_eagerly ? 'null' : s(public_env)}`);
|
|
417
423
|
}
|
|
418
424
|
|
|
@@ -628,8 +634,11 @@ export async function render_response({
|
|
|
628
634
|
}`);
|
|
629
635
|
}
|
|
630
636
|
|
|
637
|
+
// we need to eagerly import the Vite client module in development to ensure
|
|
638
|
+
// that Vite global constant replacements are initialised before our code runs
|
|
631
639
|
const init_app = `
|
|
632
640
|
{
|
|
641
|
+
${DEV ? `import('${paths.base}/@vite/client')` : ''}
|
|
633
642
|
${blocks.join('\n\n\t\t\t\t\t')}
|
|
634
643
|
}
|
|
635
644
|
`;
|
|
@@ -677,7 +686,9 @@ export async function render_response({
|
|
|
677
686
|
body,
|
|
678
687
|
assets,
|
|
679
688
|
nonce: /** @type {string} */ (csp.nonce),
|
|
680
|
-
env:
|
|
689
|
+
env: __SVELTEKIT_EXPERIMENTAL_EXPLICIT_ENVIRONMENT_VARIABLES__
|
|
690
|
+
? env.explicit_public_env
|
|
691
|
+
: public_env
|
|
681
692
|
});
|
|
682
693
|
|
|
683
694
|
// TODO flush chunks as early as we can
|
|
@@ -170,7 +170,7 @@ async function handle_remote_call_internal(event, state, options, manifest, id)
|
|
|
170
170
|
* @param {any} payload
|
|
171
171
|
*/
|
|
172
172
|
function send(controller, payload) {
|
|
173
|
-
controller.enqueue(encoder.encode(JSON.stringify(payload) + '\n'));
|
|
173
|
+
controller.enqueue(encoder.encode('data: ' + JSON.stringify(payload) + '\n\n'));
|
|
174
174
|
}
|
|
175
175
|
|
|
176
176
|
let closed = false;
|
|
@@ -245,7 +245,7 @@ async function handle_remote_call_internal(event, state, options, manifest, id)
|
|
|
245
245
|
{
|
|
246
246
|
headers: {
|
|
247
247
|
'cache-control': 'private, no-store',
|
|
248
|
-
'content-type': '
|
|
248
|
+
'content-type': 'text/event-stream'
|
|
249
249
|
}
|
|
250
250
|
}
|
|
251
251
|
);
|
|
@@ -317,7 +317,7 @@ export async function internal_respond(request, options, manifest, state) {
|
|
|
317
317
|
return resolve_route(resolved_path, new URL(request.url), manifest);
|
|
318
318
|
}
|
|
319
319
|
|
|
320
|
-
if (resolved_path === `/${app_dir}/env.js`) {
|
|
320
|
+
if (resolved_path === `/${app_dir}/env.js` || resolved_path === `/${app_dir}/env.script.js`) {
|
|
321
321
|
return get_public_env(request);
|
|
322
322
|
}
|
|
323
323
|
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
/** Internal version of $app/environment */
|
|
2
|
-
declare module '__sveltekit/environment' {
|
|
3
|
-
export const building: boolean;
|
|
4
|
-
export const prerendering: boolean;
|
|
5
|
-
export const version: string;
|
|
6
|
-
export function set_building(): void;
|
|
7
|
-
export function set_prerendering(): void;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
1
|
/** Internal version of $app/paths */
|
|
11
2
|
declare module '__sveltekit/paths' {
|
|
12
3
|
export let base: '' | `/${string}`;
|
|
@@ -27,3 +18,28 @@ declare module '__sveltekit/server' {
|
|
|
27
18
|
export function set_manifest(manifest: SSRManifest): void;
|
|
28
19
|
export function set_read_implementation(fn: (path: string) => ReadableStream): void;
|
|
29
20
|
}
|
|
21
|
+
|
|
22
|
+
declare module '__sveltekit/env' {
|
|
23
|
+
// exported environment variables are defined in env.d.ts
|
|
24
|
+
|
|
25
|
+
/** Populate exported environment variables */
|
|
26
|
+
export function set_env(environment: Record<string, string>): void;
|
|
27
|
+
|
|
28
|
+
/** public env vars */
|
|
29
|
+
export const explicit_public_env: Record<string, any>;
|
|
30
|
+
|
|
31
|
+
/** public env vars that should be inlined when a page is rendered */
|
|
32
|
+
export const rendered_env: Record<string, any>;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
declare module '__sveltekit/env/private' {
|
|
36
|
+
// exported environment variables are defined in env.d.ts
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
declare module '__sveltekit/env/public/client' {
|
|
40
|
+
// exported environment variables are defined in env.d.ts
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
declare module '__sveltekit/env/public/server' {
|
|
44
|
+
// exported environment variables are defined in env.d.ts
|
|
45
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
declare global {
|
|
2
2
|
const __SVELTEKIT_ADAPTER_NAME__: string;
|
|
3
3
|
const __SVELTEKIT_APP_DIR__: string;
|
|
4
|
+
const __SVELTEKIT_APP_VERSION__: string;
|
|
4
5
|
const __SVELTEKIT_APP_VERSION_FILE__: string;
|
|
5
6
|
const __SVELTEKIT_APP_VERSION_POLL_INTERVAL__: number;
|
|
6
7
|
/**
|
|
@@ -63,6 +64,7 @@ declare global {
|
|
|
63
64
|
*/
|
|
64
65
|
var __SVELTEKIT_TRACK__: (label: string) => void;
|
|
65
66
|
var __SVELTEKIT_EXPERIMENTAL_USE_TRANSFORM_ERROR__: boolean;
|
|
67
|
+
var __SVELTEKIT_EXPERIMENTAL_EXPLICIT_ENVIRONMENT_VARIABLES__: boolean;
|
|
66
68
|
var Bun: object;
|
|
67
69
|
var Deno: object;
|
|
68
70
|
}
|
package/src/types/internal.d.ts
CHANGED
|
@@ -34,7 +34,7 @@ import {
|
|
|
34
34
|
TrailingSlash
|
|
35
35
|
} from './private.js';
|
|
36
36
|
import { Span } from '@opentelemetry/api';
|
|
37
|
-
import
|
|
37
|
+
import { PageOptions } from '../exports/vite/static_analysis/types.js';
|
|
38
38
|
import { SharedIterator } from '../utils/shared-iterator.js';
|
|
39
39
|
|
|
40
40
|
export interface ServerModule {
|
|
@@ -44,6 +44,7 @@ export interface ServerModule {
|
|
|
44
44
|
export interface ServerInternalModule {
|
|
45
45
|
set_assets(path: string): void;
|
|
46
46
|
set_building(): void;
|
|
47
|
+
set_env(environment: Record<string, string>): void;
|
|
47
48
|
set_manifest(manifest: SSRManifest): void;
|
|
48
49
|
set_prerendering(): void;
|
|
49
50
|
set_private_env(environment: Record<string, string>): void;
|
package/src/utils/error.js
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
import { HttpError, SvelteKitError } from '@sveltejs/kit/internal';
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* For times when you need to throw an error, but without
|
|
5
|
+
* displaying a useless stack trace (since the developer
|
|
6
|
+
* can't do anything useful with it)
|
|
7
|
+
* @param {string} message
|
|
8
|
+
*/
|
|
9
|
+
export function stackless(message) {
|
|
10
|
+
const error = new Error(message);
|
|
11
|
+
error.stack = '';
|
|
12
|
+
return error;
|
|
13
|
+
}
|
|
14
|
+
|
|
3
15
|
/**
|
|
4
16
|
* @param {unknown} err
|
|
5
17
|
* @return {Error}
|
package/src/utils/import.js
CHANGED
|
@@ -45,8 +45,8 @@ function resolve_peer(dependency) {
|
|
|
45
45
|
*/
|
|
46
46
|
export async function import_peer(dependency) {
|
|
47
47
|
try {
|
|
48
|
-
return await import(resolve_peer(dependency));
|
|
48
|
+
return await import(/* @vite-ignore */ resolve_peer(dependency));
|
|
49
49
|
} catch {
|
|
50
|
-
return await import(dependency);
|
|
50
|
+
return await import(/* @vite-ignore */ dependency);
|
|
51
51
|
}
|
|
52
52
|
}
|
package/src/version.js
CHANGED
package/types/index.d.ts
CHANGED
|
@@ -450,6 +450,13 @@ declare module '@sveltejs/kit' {
|
|
|
450
450
|
};
|
|
451
451
|
/** Experimental features. Here be dragons. These are not subject to semantic versioning, so breaking changes or removal can happen in any release. */
|
|
452
452
|
experimental?: {
|
|
453
|
+
/**
|
|
454
|
+
* Whether to enable explicit environment variables using `src/env.js` or `src/env.ts`.
|
|
455
|
+
* @since 2.63.0
|
|
456
|
+
* @default false
|
|
457
|
+
*/
|
|
458
|
+
explicitEnvironmentVariables?: boolean;
|
|
459
|
+
|
|
453
460
|
/**
|
|
454
461
|
* Options for enabling server-side [OpenTelemetry](https://opentelemetry.io/) tracing for SvelteKit operations including the [`handle` hook](https://svelte.dev/docs/kit/hooks#Server-hooks-handle), [`load` functions](https://svelte.dev/docs/kit/load), [form actions](https://svelte.dev/docs/kit/form-actions), and [remote functions](https://svelte.dev/docs/kit/remote-functions).
|
|
455
462
|
* @default { server: false, serverFile: false }
|
|
@@ -2287,6 +2294,39 @@ declare module '@sveltejs/kit' {
|
|
|
2287
2294
|
export type RemoteLiveQueryFunction<Input, Output, _Validated = Input> = (
|
|
2288
2295
|
arg: undefined extends Input ? Input | void : Input
|
|
2289
2296
|
) => RemoteLiveQuery<Output>;
|
|
2297
|
+
|
|
2298
|
+
/**
|
|
2299
|
+
* [Environment variables](https://svelte.dev/docs/kit/environment-variables) can be configured by exporting
|
|
2300
|
+
* a `variables` object from `src/env.ts`, using [`defineEnvVars`](https://svelte.dev/docs/kit/@sveltejs-kit-hooks#defineEnvVars).
|
|
2301
|
+
*/
|
|
2302
|
+
export interface EnvVarConfig<T> {
|
|
2303
|
+
/**
|
|
2304
|
+
* Whether the environment variable can be accessed by client-side code.
|
|
2305
|
+
* - if `true`, it can be imported from `$app/env/public`
|
|
2306
|
+
* - if `false`, it can be imported from `$app/env/private`, which is a [server-only module](https://svelte.dev/docs/kit/server-only-modules)
|
|
2307
|
+
* @default false
|
|
2308
|
+
*/
|
|
2309
|
+
public?: boolean;
|
|
2310
|
+
/**
|
|
2311
|
+
* Whether the value is determined at build time or when the app runs.
|
|
2312
|
+
* - if `true`, the build time value is inlined into the bundle. This enables optimisations like dead-code elimination
|
|
2313
|
+
* - if `false`, the value is read from the environment when the app starts
|
|
2314
|
+
* @default false
|
|
2315
|
+
*/
|
|
2316
|
+
static?: boolean;
|
|
2317
|
+
/**
|
|
2318
|
+
* A [Standard Schema](https://standardschema.dev/) validator that is applied to the value when the app starts.
|
|
2319
|
+
* The validator can output any value — not necessarily a string — but public, non-static values must be
|
|
2320
|
+
* serializable by [devalue](https://github.com/sveltejs/devalue) so that they can be sent to the browser.
|
|
2321
|
+
*
|
|
2322
|
+
* If omitted, the value must be a non-empty string.
|
|
2323
|
+
*/
|
|
2324
|
+
schema?: StandardSchemaV1<string | undefined, T>;
|
|
2325
|
+
/**
|
|
2326
|
+
* A description of the variable that will be used for inline documentation on hover.
|
|
2327
|
+
*/
|
|
2328
|
+
description?: string;
|
|
2329
|
+
}
|
|
2290
2330
|
interface AdapterEntry {
|
|
2291
2331
|
/**
|
|
2292
2332
|
* A string that uniquely identifies an HTTP service (e.g. serverless function) and is used for deduplication.
|
|
@@ -2908,8 +2948,16 @@ declare module '@sveltejs/kit' {
|
|
|
2908
2948
|
export type LessThan<TNumber extends number, TArray extends any[] = []> = TNumber extends TArray["length"] ? TArray[number] : LessThan<TNumber, [...TArray, TArray["length"]]>;
|
|
2909
2949
|
export type NumericRange<TStart extends number, TEnd extends number> = Exclude<TEnd | LessThan<TEnd>, LessThan<TStart>>;
|
|
2910
2950
|
type ValidPageOption = (typeof valid_page_options_array)[number];
|
|
2911
|
-
|
|
2912
|
-
|
|
2951
|
+
|
|
2952
|
+
type PageOptions = Partial<{
|
|
2953
|
+
[K in ValidPageOption]: K extends 'ssr' | 'csr'
|
|
2954
|
+
? boolean
|
|
2955
|
+
: K extends 'prerender'
|
|
2956
|
+
? PrerenderOption
|
|
2957
|
+
: K extends 'trailingSlash'
|
|
2958
|
+
? TrailingSlash
|
|
2959
|
+
: any;
|
|
2960
|
+
}>;
|
|
2913
2961
|
export const VERSION: string;
|
|
2914
2962
|
class HttpError_1 {
|
|
2915
2963
|
|
|
@@ -2926,12 +2974,18 @@ declare module '@sveltejs/kit' {
|
|
|
2926
2974
|
status: 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308;
|
|
2927
2975
|
location: string;
|
|
2928
2976
|
}
|
|
2977
|
+
const valid_page_options_array: readonly ["ssr", "prerender", "csr", "trailingSlash", "config", "entries", "load"];
|
|
2929
2978
|
|
|
2930
2979
|
export {};
|
|
2931
2980
|
}
|
|
2932
2981
|
|
|
2933
2982
|
declare module '@sveltejs/kit/hooks' {
|
|
2934
|
-
import type { Handle } from '@sveltejs/kit';
|
|
2983
|
+
import type { EnvVarConfig, Handle } from '@sveltejs/kit';
|
|
2984
|
+
/**
|
|
2985
|
+
* Utility for defining [environment variables](https://svelte.dev/docs/kit/environment-variables),
|
|
2986
|
+
* which are made available via `$app/env/public` and `$app/env/private`.
|
|
2987
|
+
* */
|
|
2988
|
+
export function defineEnvVars<T extends Record<string, EnvVarConfig<any>>>(variables: T): T;
|
|
2935
2989
|
/**
|
|
2936
2990
|
* A helper function for sequencing multiple `handle` calls in a middleware-like manner.
|
|
2937
2991
|
* The behavior for the `handle` options is as follows:
|
|
@@ -3048,6 +3102,30 @@ declare module '@sveltejs/kit/vite' {
|
|
|
3048
3102
|
export {};
|
|
3049
3103
|
}
|
|
3050
3104
|
|
|
3105
|
+
declare module '$app/env' {
|
|
3106
|
+
/**
|
|
3107
|
+
* `true` if the app is running in the browser.
|
|
3108
|
+
*/
|
|
3109
|
+
export const browser: boolean;
|
|
3110
|
+
|
|
3111
|
+
/**
|
|
3112
|
+
* Whether the dev server is running. This is not guaranteed to correspond to `NODE_ENV` or `MODE`.
|
|
3113
|
+
*/
|
|
3114
|
+
export const dev: boolean;
|
|
3115
|
+
|
|
3116
|
+
/**
|
|
3117
|
+
* SvelteKit analyses your app during the `build` step by running it. During this process, `building` is `true`. This also applies during prerendering.
|
|
3118
|
+
*/
|
|
3119
|
+
export const building: boolean;
|
|
3120
|
+
|
|
3121
|
+
/**
|
|
3122
|
+
* The value of `config.kit.version.name`.
|
|
3123
|
+
*/
|
|
3124
|
+
export const version: string;
|
|
3125
|
+
|
|
3126
|
+
export {};
|
|
3127
|
+
}
|
|
3128
|
+
|
|
3051
3129
|
declare module '$app/environment' {
|
|
3052
3130
|
/**
|
|
3053
3131
|
* `true` if the app is running in the browser.
|
package/types/index.d.ts.map
CHANGED
|
@@ -96,6 +96,7 @@
|
|
|
96
96
|
"RemotePrerenderFunction",
|
|
97
97
|
"RemoteQueryFunction",
|
|
98
98
|
"RemoteLiveQueryFunction",
|
|
99
|
+
"EnvVarConfig",
|
|
99
100
|
"AdapterEntry",
|
|
100
101
|
"Csp",
|
|
101
102
|
"CspDirectives",
|
|
@@ -148,8 +149,9 @@
|
|
|
148
149
|
"normalizeUrl",
|
|
149
150
|
"ValidPageOption",
|
|
150
151
|
"PageOptions",
|
|
151
|
-
"valid_page_options_array",
|
|
152
152
|
"VERSION",
|
|
153
|
+
"valid_page_options_array",
|
|
154
|
+
"defineEnvVars",
|
|
153
155
|
"sequence",
|
|
154
156
|
"getRequest",
|
|
155
157
|
"setResponse",
|
|
@@ -198,12 +200,15 @@
|
|
|
198
200
|
"../src/types/private.d.ts",
|
|
199
201
|
"../src/types/internal.d.ts",
|
|
200
202
|
"../src/exports/index.js",
|
|
201
|
-
"../src/exports/vite/static_analysis/
|
|
203
|
+
"../src/exports/vite/static_analysis/types.d.ts",
|
|
202
204
|
"../src/version.js",
|
|
205
|
+
"../src/exports/vite/static_analysis/index.js",
|
|
206
|
+
"../src/exports/hooks/index.js",
|
|
203
207
|
"../src/exports/hooks/sequence.js",
|
|
204
208
|
"../src/exports/node/index.js",
|
|
205
209
|
"../src/exports/node/polyfills.js",
|
|
206
210
|
"../src/exports/vite/index.js",
|
|
211
|
+
"../src/runtime/app/env/types.d.ts",
|
|
207
212
|
"../src/runtime/app/environment/types.d.ts",
|
|
208
213
|
"../src/runtime/app/forms.js",
|
|
209
214
|
"../src/runtime/client/client.js",
|
|
@@ -236,8 +241,11 @@
|
|
|
236
241
|
null,
|
|
237
242
|
null,
|
|
238
243
|
null,
|
|
244
|
+
null,
|
|
245
|
+
null,
|
|
246
|
+
null,
|
|
239
247
|
null
|
|
240
248
|
],
|
|
241
|
-
"mappings": ";;;;;;;;MAiCKA,IAAIA;;;;;kBAKQC,OAAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAiCZC,cAAcA;;;;;;aAMdC,cAAcA;;;;;;;;MAQrBC,aAAaA;;;;;OAKJC,YAAYA;;kBAETC,aAAaA;;;;;;MAMzBC,qBAAqBA;;;;;;;;;;;kBAWTC,OAAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA8IPC,MAAMA;;;;;;;;;;;kBAWNC,OAAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA4DPC,QAAQA;;;;;;;;kBAQRC,SAASA
|
|
249
|
+
"mappings": ";;;;;;;;MAiCKA,IAAIA;;;;;kBAKQC,OAAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAiCZC,cAAcA;;;;;;aAMdC,cAAcA;;;;;;;;MAQrBC,aAAaA;;;;;OAKJC,YAAYA;;kBAETC,aAAaA;;;;;;MAMzBC,qBAAqBA;;;;;;;;;;;kBAWTC,OAAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA8IPC,MAAMA;;;;;;;;;;;kBAWNC,OAAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA4DPC,QAAQA;;;;;;;;kBAQRC,SAASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAylBdC,MAAMA;;;;;;;;;;;aAWNC,iBAAiBA;;;;;;;;;;;;aAYjBC,qBAAqBA;;;;;;;;;aASrBC,iBAAiBA;;;;;;;;;;aAUjBC,WAAWA;;;;;;;;;;aAUXC,UAAUA;;;;;;aAMVC,UAAUA;;;;;;aAMVC,OAAOA;;;;;;;;;;;;;;;;;;;;;;;;;;aA0BPC,SAASA;;;;;kBAKJC,WAAWA;;;;;;;;;;;;aAYhBC,IAAIA;;;;;;;;;;;;kBAYCC,SAASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAyHTC,eAAeA;;;;;;;;;;;;;;;;;;;;;;;;;;kBA0BfC,gBAAgBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA6CrBC,cAAcA;;kBAETC,cAAcA;;;;;;;;;;;;;;;;;;;;kBAoBdC,eAAeA;;;;;;;;;;;;;;;;;;aAkBpBC,kBAAkBA;;kBAEbC,cAAcA;;;;;;;;;;;;;;;kBAedC,eAAeA;;;;;;;;;;;;;;;kBAefC,oBAAoBA;;;;;;;;;;;;;;;;;;;;kBAoBpBC,kBAAkBA;;;;;;;;;;;;;;;;;;kBAkBlBC,cAAcA;;;;;;;;;;;;;;;;;;;;aAoBnBC,UAAUA;;;;;;;;;aASVC,cAAcA;;;;;;;;;;aAUdC,UAAUA;;;;;;;;;;;aAWVC,aAAaA;;;;;;;;;;;kBAWRC,IAAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA8CTC,YAAYA;;;;;;;;;aASZC,cAAcA;;;;;;;;;;;aAWdC,kBAAkBA;;;;;aAKlBC,oBAAoBA;;;;;;;;;;;;;;;;aAgBpBC,wBAAwBA;;;;;;;;;;;;;;;;;;aAkBxBC,eAAeA;;;;kBAIVC,YAAYA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA+GjBC,cAAcA;;;;;kBAKTC,cAAcA;;;;;;;;;;;;;;;;;;;;;;;kBAuBdC,eAAeA;;;;;;;;;;;;;;;cAenBC,MAAMA;;;;;;kBAMFC,iBAAiBA;;;;;;;kBAOjBC,WAAWA;;;;;;;;;;;;;;;;;;;;;;;;;aAyBhBC,UAAUA;;;;;;;kBAOLC,eAAeA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAkFpBC,MAAMA;;;;;;;;;;aAUNC,OAAOA;;;;;;;;;;;;;;;;aAgBPC,YAAYA;;;;;;;;;;;;kBCnyDXC,SAASA;;;;;;;;;;kBAqBTC,QAAQA;;;;;;;aD2yDTC,cAAcA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA6BTC,QAAQA;;;;;;MAMpBC,uBAAuBA;;;MAGvBC,YAAYA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA6BLC,mBAAmBA;;;;;MAK1BC,iBAAiBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAkDjBC,sBAAsBA;;;;;;;;;;;MAWtBC,WAAWA;MACXC,eAAeA;;;;;;aAMRC,oBAAoBA;;MAE3BC,MAAMA;;;;;;;;;;;;;;;;;;;aAmBCC,eAAeA;;;;;;;;;;;;;;MActBC,wBAAwBA;;;;;MAKxBC,YAAYA;;;;;;;;;;;;;;;;;;MAkBZC,oBAAoBA;;;;;;;;;;;;;;;aAebC,gBAAgBA;;;;;;;;;;;;;;;;;;;;;MAqBvBC,mBAAmBA;;;;MAInBC,UAAUA;;kBAEEC,eAAeA;;;;kBAIfC,eAAeA;;;;;;;MAO3BC,SAASA;;;;;;;;;;;;;aAaFC,YAAYA;;;;;;;;;;;;;;;;;;kBAkBPC,eAAeA;;;;;;;;aAQpBC,UAAUA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA2DVC,aAAaA;;;;;;;;aAQbC,iBAAiBA;;;;;;;aAOjBC,cAAcA;;;;;;;;;;;;;;;;;;aAkBdC,WAAWA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAqCXC,eAAeA;;;;;;;;;;aAUfC,mBAAmBA;;;;;aAKnBC,uBAAuBA;;;;;;;;;;;;;;;;aAgBvBC,mBAAmBA;;;;;;;;;;;aAWnBC,uBAAuBA;;;;;;;;kBAQlBC,YAAYA;;;;;;;;;;;;;;;;;;;;;;;;;;;;WEjxEZC,YAAYA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAkDZC,GAAGA;;;;;;;;;;;;;;;;;;;;;WAqBHC,aAAaA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAmElBC,UAAUA;;WAELC,MAAMA;;;;;;;;;MASXC,YAAYA;;WAEPC,WAAWA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAmCXC,yBAAyBA;;;;;;;;;;WAUzBC,yBAAyBA;;;;WAIzBC,sCAAsCA;;;;WAItCC,4BAA4BA;;;;MAIjCC,8BAA8BA;MAC9BC,8BAA8BA;MAC9BC,iCAAiCA;;;;;MAKjCC,2CAA2CA;;;;;;aAM3CC,eAAeA;;WAIVC,cAAcA;;;;;WAKdC,YAAYA;;;;;;;MAOjBC,aAAaA;;MAEbC,WAAWA;;;;;;;;MAQXC,KAAKA;WCpMAC,KAAKA;;;;;;WAeLC,SAASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA6HTC,YAAYA;;;;;;;;;;;;;WAkBZC,QAAQA;;;;;;;;;;;;;;;;MAkCbC,iBAAiBA;;;;;;;;;WAWZC,UAAUA;;;;;;;;;;;;;WAaVC,SAASA;;;;;;;;;;;;;;;;;;;;;;;;;WAqJTC,YAAYA;;;;;;;;;;;;;;;;;;;;MAoBjBC,kBAAkBA;;WAEbC,aAAaA;;;;;;;;;;;WAWbC,UAAUA;;;;;;;;;;;WAWVC,OAAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA4BZC,aAAaA;;WA+BRC,eAAeA;;;;;;MAMpBC,uBAAuBA;;MAGvBC,WAAWA;;;;;;;;WAQNC,QAAQA;;;;;;;;;WASRC,cAAcA;;;;;;;;;MAqDnBC,eAAeA;;;;;MAKfC,kBAAkBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBCxgBdC,WAAWA;;;;;;;;;;;;;;;;;;;iBAsBXC,QAAQA;;;;;iBAiBRC,UAAUA;;;;;;iBASVC,IAAIA;;;;;;iBA4BJC,IAAIA;;;;;;;;;;;;;;;;iBAkDJC,eAAeA;;;;;;;;;;;;;;;;;;;;;;;;;;iBA+BfC,OAAOA;;;;;;iBAYPC,iBAAiBA;;;;;;;;;;;;;;iBAmBjBC,YAAYA;;;;;;;MClRvBC,eAAeA;;MAERC,WAAWA;;;;;;;;;cCFVC,OAAOA;;;;;;;;;;;;;;;;OCEPC,wBAAwBA;;;;;;;;;;;iBCMrBC,aAAaA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBCoEbC,QAAQA;;;;;;iBCyCFC,UAAUA;;;;;;iBAgDVC,WAAWA;;;;;iBAwEjBC,oBAAoBA;;;;;;;;;;;iBC9NpBC,gBAAgBA;;;;;;;;;;;;;iBCkIVC,SAASA;;;;;;;;;cCjJlBC,OAAOA;;;;;cAKPC,GAAGA;;;;;cAKHC,QAAQA;;;;;cAKRC,OAAOA;;;;;;;;;cCfPH,OAAOA;;;;;cAKPC,GAAGA;;;;;cAKHC,QAAQA;;;;;cAKRC,OAAOA;;;;;;;;;;;;;;;;;;;;;;;;iBCaJC,WAAWA;;;;;;;;;;;;;;;;;;;;;;;;iBAgDXC,OAAOA;;;;;;;iBCo5EDC,WAAWA;;;;;;;;;;;iBA9UjBC,aAAaA;;;;;;;;;;;;iBAiBbC,cAAcA;;;;;;;;;;iBAedC,UAAUA;;;;;iBASVC,qBAAqBA;;;;;;;;;;iBA8BrBC,IAAIA;;;;;;;;;;;;;;;;;;;;;;;;;iBAsCJC,UAAUA;;;;iBA0BVC,aAAaA;;;;;iBAebC,UAAUA;;;;;;;;;;;;;;iBAqBJC,WAAWA;;;;;;;;;;;;;;;;;;iBAoCXC,WAAWA;;;;;iBAsCjBC,SAASA;;;;;iBA+CTC,YAAYA;Md9xEhB1E,YAAYA;;;;;;;;;;;;;;Ye/Ib2E,IAAIA;;;;;;;;;YASJC,MAAMA;;;;;iBAKDC,YAAYA;;;MCnBvBC,iBAAiBA;;;;;;MAMVC,WAAWA;;;;;;;;;;;;;;;;;;;;;;;;;;iBCWPC,KAAKA;;;;;;;;;;;;;;;;;;;;;iBA6BLC,OAAOA;;;;;;;;;;;;;;;;;;;iBAmCDC,KAAKA;;;;;;;;;;;;;;;;;;;;;;;iBCtEXC,IAAIA;;;;;;;;iBCUJC,eAAeA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MlB2TnBC,qCAAqCA;;;;;;;;MA6LrCC,8BAA8BA;MDzX9BtF,YAAYA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;coB1GXuF,IAAIA;;;;;cAQJC,UAAUA;;;;;;;;;;;cAMVC,OAAOA;;;;;;;;;iBCrDPC,SAASA;;;;;;;;;;;;;;;cAyBTH,IAAIA;;;;;;;;;;cAiBJC,UAAUA;;;;;;;;cAeVC,OAAOA",
|
|
242
250
|
"ignoreList": []
|
|
243
251
|
}
|