diff --git a/packages/kit/src/exports/internal/index.js b/packages/kit/src/exports/internal/index.js index b87448b30914..15838944b030 100644 --- a/packages/kit/src/exports/internal/index.js +++ b/packages/kit/src/exports/internal/index.js @@ -62,4 +62,10 @@ export class ActionFailure { } } -export { init_remote_functions } from './remote-functions.js'; +export { + init_remote_functions, + create_remote_id, + create_remote_cache_key, + REMOTE_CACHE_DELIMITER, + REMOTE_CACHE_PREFIX +} from './remote-functions.js'; diff --git a/packages/kit/src/exports/internal/remote-functions.js b/packages/kit/src/exports/internal/remote-functions.js index ae83ed5d3d2b..c7097c4e5c23 100644 --- a/packages/kit/src/exports/internal/remote-functions.js +++ b/packages/kit/src/exports/internal/remote-functions.js @@ -22,7 +22,25 @@ export function init_remote_functions(module, file, hash) { ); } - fn.__.id = `${hash}/${name}`; + fn.__.id = create_remote_id(hash, name); fn.__.name = name; } } + +export const REMOTE_CACHE_PREFIX = '@sveltejs/kit/remote'; +export const REMOTE_CACHE_DELIMITER = '::::'; + +/** + * @param {string} id + * @param {string} payload + */ +export function create_remote_cache_key(id, payload) { + return `${REMOTE_CACHE_PREFIX}${REMOTE_CACHE_DELIMITER}${id}${REMOTE_CACHE_DELIMITER}${payload ?? ''}`; +} + +/** + * @param {(string | undefined)[]} identifiers + */ +export function create_remote_id(...identifiers) { + return identifiers.filter((id) => id !== undefined).join(REMOTE_CACHE_DELIMITER); +} diff --git a/packages/kit/src/exports/vite/index.js b/packages/kit/src/exports/vite/index.js index 14a1103f6a61..5a8d4097cb0e 100644 --- a/packages/kit/src/exports/vite/index.js +++ b/packages/kit/src/exports/vite/index.js @@ -41,6 +41,7 @@ import { import { import_peer } from '../../utils/import.js'; import { compact } from '../../utils/array.js'; import { should_ignore } from './static_analysis/utils.js'; +import { create_remote_id } from '@sveltejs/kit/internal'; const cwd = process.cwd(); @@ -709,14 +710,14 @@ async function kit({ svelte_config }) { '\n\n' + dedent` import * as $$_self_$$ from './${path.basename(id)}'; - import { init_remote_functions as $$_init_$$ } from '@sveltejs/kit/internal'; + import { init_remote_functions as $$_init_$$, create_remote_id as $$_create_remote_id_$$ } from '@sveltejs/kit/internal'; ${dev_server ? 'await Promise.resolve()' : ''} $$_init_$$($$_self_$$, ${s(file)}, ${s(remote.hash)}); for (const [name, fn] of Object.entries($$_self_$$)) { - fn.__.id = ${s(remote.hash)} + '/' + name; + fn.__.id = $$_create_remote_id_$$(${s(remote.hash)}, name); fn.__.name = name; } `; @@ -772,7 +773,7 @@ async function kit({ svelte_config }) { while (map.has(namespace)) namespace = `__remote${uid++}`; const exports = Array.from(map).map(([name, type]) => { - return `export const ${name} = ${namespace}.${type}('${remote.hash}/${name}');`; + return `export const ${name} = ${namespace}.${type}('${create_remote_id(remote.hash, name)}');`; }); let result = `import * as ${namespace} from '__sveltekit/remote';\n\n${exports.join('\n')}\n`; diff --git a/packages/kit/src/runtime/app/server/remote/form.js b/packages/kit/src/runtime/app/server/remote/form.js index c1fe5a1d2c10..d6539239cc69 100644 --- a/packages/kit/src/runtime/app/server/remote/form.js +++ b/packages/kit/src/runtime/app/server/remote/form.js @@ -13,6 +13,7 @@ import { flatten_issues } from '../../../form-utils.js'; import { get_cache, run_remote_function } from './shared.js'; +import { create_remote_id } from '@sveltejs/kit/internal'; /** * Creates a form object that can be spread onto a `
` element. @@ -188,7 +189,7 @@ export function form(validate_or_fn, maybe_fn) { // We don't need to care about args or deduplicating calls, because uneval results are only relevant in full page reloads // where only one form submission is active at the same time if (!event.isRemoteRequest) { - get_cache(__, state)[''] ??= output; + get_cache(__, state).data[''] ??= output; } return output; @@ -209,7 +210,7 @@ export function form(validate_or_fn, maybe_fn) { Object.defineProperty(instance, 'fields', { get() { - const data = get_cache(__)?.['']; + const data = get_cache(__).data['']; const issues = flatten_issues(data?.issues ?? []); return create_field_proxy( @@ -224,7 +225,7 @@ export function form(validate_or_fn, maybe_fn) { const input = path.length === 0 ? value : deep_set(data?.input ?? {}, path.map(String), value); - (get_cache(__)[''] ??= {}).input = input; + (get_cache(__).data[''] ??= {}).input = input; }, () => issues ); @@ -239,7 +240,7 @@ export function form(validate_or_fn, maybe_fn) { Object.defineProperty(instance, 'result', { get() { try { - return get_cache(__)?.['']?.result; + return get_cache(__).data['']?.result; } catch { return undefined; } @@ -277,7 +278,7 @@ export function form(validate_or_fn, maybe_fn) { if (!instance) { instance = create_instance(key); - instance.__.id = `${__.id}/${encodeURIComponent(JSON.stringify(key))}`; + instance.__.id = create_remote_id(__.id, encodeURIComponent(JSON.stringify(key))); instance.__.name = __.name; state.form_instances.set(cache_key, instance); diff --git a/packages/kit/src/runtime/app/server/remote/prerender.js b/packages/kit/src/runtime/app/server/remote/prerender.js index 8e9762463063..ad2786268115 100644 --- a/packages/kit/src/runtime/app/server/remote/prerender.js +++ b/packages/kit/src/runtime/app/server/remote/prerender.js @@ -6,13 +6,9 @@ import { DEV } from 'esm-env'; import { get_request_store } from '@sveltejs/kit/internal/server'; import { stringify, stringify_remote_arg } from '../../../shared.js'; import { app_dir, base } from '$app/paths/internal/server'; -import { - create_validator, - get_cache, - get_response, - parse_remote_response, - run_remote_function -} from './shared.js'; +import { create_validator, get_response, run_remote_function } from './shared.js'; +import { create_remote_id } from '@sveltejs/kit/internal'; +import * as devalue from 'devalue'; /** * Creates a remote prerender function. When called from the browser, the function will be invoked on the server via a `fetch` call. @@ -93,18 +89,15 @@ export function prerender(validate_or_fn, fn_or_options, maybe_options) { const { event, state } = get_request_store(); const payload = stringify_remote_arg(arg, state.transport); const id = __.id; - const url = `${base}/${app_dir}/remote/${id}${payload ? `/${payload}` : ''}`; + const url = `${base}/${app_dir}/remote/${create_remote_id(id, payload)}`; if (!state.prerendering && !DEV && !event.isRemoteRequest) { try { return await get_response(__, arg, state, async () => { - const key = stringify_remote_arg(arg, state.transport); - const cache = get_cache(__, state); - // TODO adapters can provide prerendered data more efficiently than // fetching from the public internet - const promise = (cache[key] ??= fetch(new URL(url, event.url.origin).href).then( - async (response) => { + return await fetch(new URL(url, event.url.origin).href) + .then(async (response) => { if (!response.ok) { throw new Error('Prerendered response not found'); } @@ -116,10 +109,13 @@ export function prerender(validate_or_fn, fn_or_options, maybe_options) { } return prerendered.result; - } - )); - - return parse_remote_response(await promise, state.transport); + }) + .then((data) => + devalue.parse( + data, + Object.fromEntries(Object.entries(state.transport).map(([k, v]) => [k, v.decode])) + ) + ); }); } catch { // not available prerendered, fallback to normal function diff --git a/packages/kit/src/runtime/app/server/remote/query.js b/packages/kit/src/runtime/app/server/remote/query.js index 22eed9a10b01..5746c59cfd3b 100644 --- a/packages/kit/src/runtime/app/server/remote/query.js +++ b/packages/kit/src/runtime/app/server/remote/query.js @@ -2,9 +2,10 @@ /** @import { RemoteInfo, MaybePromise } from 'types' */ /** @import { StandardSchemaV1 } from '@standard-schema/spec' */ import { get_request_store } from '@sveltejs/kit/internal/server'; -import { create_remote_cache_key, stringify_remote_arg } from '../../../shared.js'; +import { stringify_remote_arg } from '../../../shared.js'; import { prerendering } from '__sveltekit/environment'; import { create_validator, get_cache, get_response, run_remote_function } from './shared.js'; +import { create_remote_cache_key } from '@sveltejs/kit/internal'; /** * Creates a remote query. When called from the browser, the function will be invoked on the server via a `fetch` call. @@ -93,7 +94,7 @@ export function query(validate_or_fn, maybe_fn) { if (__.id) { const cache = get_cache(__, state); const key = stringify_remote_arg(arg, state.transport); - refreshes[create_remote_cache_key(__.id, key)] = cache[key] = Promise.resolve(value); + refreshes[create_remote_cache_key(__.id, key)] = cache.data[key] = Promise.resolve(value); } }; diff --git a/packages/kit/src/runtime/app/server/remote/shared.js b/packages/kit/src/runtime/app/server/remote/shared.js index c078d290db6f..9f5ca6321da6 100644 --- a/packages/kit/src/runtime/app/server/remote/shared.js +++ b/packages/kit/src/runtime/app/server/remote/shared.js @@ -1,9 +1,10 @@ /** @import { RequestEvent } from '@sveltejs/kit' */ -/** @import { ServerHooks, MaybePromise, RequestState, RemoteInfo, RequestStore } from 'types' */ -import { parse } from 'devalue'; +/** @import { MaybePromise, RequestState, RemoteInfo, RequestStore } from 'types' */ import { error } from '@sveltejs/kit'; import { with_request_store, get_request_store } from '@sveltejs/kit/internal/server'; -import { stringify_remote_arg } from '../../../shared.js'; +import { stringify, stringify_remote_arg } from '../../../shared.js'; +import { hydratable } from 'svelte'; +import { create_remote_cache_key } from '@sveltejs/kit/internal'; /** * @param {any} validate_or_fn @@ -75,21 +76,20 @@ export async function get_response(info, arg, state, get_result) { const cache = get_cache(info, state); - return (cache[stringify_remote_arg(arg, state.transport)] ??= get_result()); -} + const payload = stringify_remote_arg(arg, state.transport); + const response = (cache.data[payload] ??= get_result()); -/** - * @param {any} data - * @param {ServerHooks['transport']} transport - */ -export function parse_remote_response(data, transport) { - /** @type {Record} */ - const revivers = {}; - for (const key in transport) { - revivers[key] = transport[key].decode; + if (info.id) { + const key = create_remote_cache_key(info.id, payload); + if (state.is_in_render && !hydratable.has(key)) { + hydratable.set(key, response, { + encode: (val) => stringify(val, state.transport) + }); + } + cache.universal_load ||= state.is_in_universal_load; } - return parse(data, revivers); + return response; } /** @@ -152,11 +152,11 @@ export async function run_remote_function(event, state, allow_cookies, arg, vali * @param {RequestState} state */ export function get_cache(info, state = get_request_store().state) { - let cache = state.remote_data?.get(info); + let cache = state.remote_responses.get(info); if (cache === undefined) { - cache = {}; - (state.remote_data ??= new Map()).set(info, cache); + cache = { universal_load: false, data: {} }; + state.remote_responses.set(info, cache); } return cache; diff --git a/packages/kit/src/runtime/client/client.js b/packages/kit/src/runtime/client/client.js index b04664ddc578..4576a7b047a4 100644 --- a/packages/kit/src/runtime/client/client.js +++ b/packages/kit/src/runtime/client/client.js @@ -51,6 +51,7 @@ import { page, update, navigating } from './state.svelte.js'; import { add_data_suffix, add_resolution_suffix } from '../pathname.js'; import { noop_span } from '../telemetry/noop.js'; import { text_decoder } from '../utils.js'; +import { query_cache } from './remote-functions/query-cache.js'; export { load_css }; const ICON_REL_ATTRIBUTES = new Set(['icon', 'shortcut icon', 'apple-touch-icon']); @@ -190,6 +191,9 @@ let target; export let app; /** + * TODO this is only needed to catch stuff that's in `load` functions, so it can eventually + * be removed when we deprecate `load` functions. That, or we can decide that it's only valid to + * call remote functions in the render cycle. (This might be good in the long run?) * Data that was serialized during SSR. This is cleared when the user first navigates * @type {Record} */ @@ -281,12 +285,6 @@ const preload_tokens = new Set(); /** @type {Promise | null} */ export let pending_invalidate; -/** - * @type {Map} - * A map of id -> query info with all queries that currently exist in the app. - */ -export const query_map = new Map(); - /** * @param {import('./types.js').SvelteKitApp} _app * @param {HTMLElement} _target @@ -391,7 +389,7 @@ async function _invalidate(include_load_functions = true, reset_page_state = tru // Rerun queries if (force_invalidation) { - query_map.forEach(({ resource }) => { + query_cache.forEach((resource) => { resource.refresh?.(); }); } @@ -423,7 +421,7 @@ async function _invalidate(include_load_functions = true, reset_page_state = tru } // Don't use allSettled yet because it's too new - await Promise.all([...query_map.values()].map(({ resource }) => resource)).catch(noop); + await Promise.all([...query_cache.values()]).catch(noop); } function reset_invalidation() { @@ -481,7 +479,7 @@ export async function _goto(url, options, redirect_count, nav_token) { accept: () => { if (options.invalidateAll) { force_invalidation = true; - query_keys = [...query_map.keys()]; + query_keys = [...query_cache.keys()]; } if (options.invalidate) { @@ -497,7 +495,7 @@ export async function _goto(url, options, redirect_count, nav_token) { .tick() .then(svelte.tick) .then(() => { - query_map.forEach(({ resource }, key) => { + query_cache.forEach((resource, key) => { // Only refresh those that already existed on the old page if (query_keys?.includes(key)) { resource.refresh?.(); diff --git a/packages/kit/src/runtime/client/remote-functions/form.svelte.js b/packages/kit/src/runtime/client/remote-functions/form.svelte.js index 02bbf9239720..34fb6c17f83e 100644 --- a/packages/kit/src/runtime/client/remote-functions/form.svelte.js +++ b/packages/kit/src/runtime/client/remote-functions/form.svelte.js @@ -5,9 +5,9 @@ import { app_dir, base } from '$app/paths/internal/client'; import * as devalue from 'devalue'; import { DEV } from 'esm-env'; -import { HttpError } from '@sveltejs/kit/internal'; -import { app, remote_responses, _goto, set_nearest_error_page, invalidateAll } from '../client.js'; -import { tick } from 'svelte'; +import { HttpError, REMOTE_CACHE_DELIMITER } from '@sveltejs/kit/internal'; +import { app, _goto, set_nearest_error_page, invalidateAll, remote_responses } from '../client.js'; +import { tick, hydratable } from 'svelte'; import { refresh_queries, release_overrides } from './shared.svelte.js'; import { createAttachmentKey } from 'svelte/attachments'; import { @@ -55,7 +55,8 @@ export function form(id) { /** @param {string | number | boolean} [key] */ function create_instance(key) { - const action_id = id + (key != undefined ? `/${JSON.stringify(key)}` : ''); + const action_id = + id + (key != undefined ? `${REMOTE_CACHE_DELIMITER}${JSON.stringify(key)}` : ''); const action = '?/remote=' + encodeURIComponent(action_id); /** @@ -69,7 +70,12 @@ export function form(id) { const issues = $derived(flatten_issues(raw_issues)); /** @type {any} */ - let result = $state.raw(remote_responses[action_id]); + let result = $state.raw( + remote_responses[action_id] ?? + hydratable.get(action_id, { + decode: (val) => devalue.parse(/** @type {string} */ (val), app.decoders) + }) + ); /** @type {number} */ let pending_count = $state(0); @@ -299,7 +305,7 @@ export function form(id) { if (element) { let message = `A form object can only be attached to a single \`\` element`; if (DEV && !key) { - const name = id.split('/').pop(); + const name = id.split(REMOTE_CACHE_DELIMITER).pop(); message += `. To create multiple instances, use \`${name}.for(key)\``; } diff --git a/packages/kit/src/runtime/client/remote-functions/prerender.svelte.js b/packages/kit/src/runtime/client/remote-functions/prerender.svelte.js index 4f622605eee9..c9654da8fdfc 100644 --- a/packages/kit/src/runtime/client/remote-functions/prerender.svelte.js +++ b/packages/kit/src/runtime/client/remote-functions/prerender.svelte.js @@ -1,9 +1,13 @@ +/** @import { Resource } from 'svelte/reactivity' */ import { app_dir, base } from '$app/paths/internal/client'; import { version } from '__sveltekit/environment'; import * as devalue from 'devalue'; import { DEV } from 'esm-env'; import { app, remote_responses } from '../client.js'; import { create_remote_function, remote_request } from './shared.svelte.js'; +import { hydratable } from 'svelte'; +import { resource } from 'svelte/reactivity'; +import { create_remote_id } from '@sveltejs/kit/internal'; // Initialize Cache API for prerender functions const CACHE_NAME = DEV ? `sveltekit:${Date.now()}` : `sveltekit:${version}`; @@ -33,34 +37,15 @@ const prerender_cache_ready = (async () => { * @implements {Partial>} */ class Prerender { - /** @type {Promise} */ - #promise; - - #loading = $state(true); - #ready = $state(false); - - /** @type {T | undefined} */ - #current = $state.raw(); - - #error = $state.raw(undefined); + /** @type {Resource} */ + #resource; /** + * @param {string} key * @param {() => Promise} fn */ - constructor(fn) { - this.#promise = fn().then( - (value) => { - this.#loading = false; - this.#ready = true; - this.#current = value; - return value; - }, - (error) => { - this.#loading = false; - this.#error = error; - throw error; - } - ); + constructor(key, fn) { + this.#resource = resource(() => hydratable(key, fn)); } /** @@ -70,43 +55,43 @@ class Prerender { * @returns */ then(onfulfilled, onrejected) { - return this.#promise.then(onfulfilled, onrejected); + return this.#resource.then(onfulfilled, onrejected); } /** * @param {((reason: any) => any) | null | undefined} onrejected */ catch(onrejected) { - return this.#promise.catch(onrejected); + return this.#resource.catch(onrejected); } /** * @param {(() => any) | null | undefined} onfinally */ finally(onfinally) { - return this.#promise.finally(onfinally); + return this.#resource.finally(onfinally); } get current() { - return this.#current; + return this.#resource.current; } get error() { - return this.#error; + return this.#resource.error; } /** * Returns true if the resource is loading. */ get loading() { - return this.#loading; + return this.#resource.loading; } /** * Returns true once the resource has been loaded. */ get ready() { - return this.#ready; + return this.#resource.ready; } } @@ -135,10 +120,10 @@ function put(url, encoded) { */ export function prerender(id) { return create_remote_function(id, (cache_key, payload) => { - return new Prerender(async () => { + return new Prerender(cache_key, async () => { await prerender_cache_ready; - const url = `${base}/${app_dir}/remote/${id}${payload ? `/${payload}` : ''}`; + const url = `${base}/${app_dir}/remote/${create_remote_id(id, payload)}`; if (Object.hasOwn(remote_responses, cache_key)) { const data = remote_responses[cache_key]; diff --git a/packages/kit/src/runtime/client/remote-functions/query-cache.js b/packages/kit/src/runtime/client/remote-functions/query-cache.js new file mode 100644 index 000000000000..f450bd35f236 --- /dev/null +++ b/packages/kit/src/runtime/client/remote-functions/query-cache.js @@ -0,0 +1,14 @@ +import { CacheObserver } from 'svelte/reactivity'; +import { REMOTE_CACHE_PREFIX } from '@sveltejs/kit/internal'; + +// TODO there's no reason this can't be better-typed +/** @type {CacheObserver} */ +export const query_cache = (() => { + // TODO remove in 3.0 + try { + // not available if `async` isn't on -- but nothing to do with remote functions is + return new CacheObserver(REMOTE_CACHE_PREFIX); + } catch { + return /** @type {CacheObserver} */ (/** @type {unknown} */ (new Map())); + } +})(); diff --git a/packages/kit/src/runtime/client/remote-functions/query.svelte.js b/packages/kit/src/runtime/client/remote-functions/query.svelte.js index 196a959d25a7..3931c5c0b6b6 100644 --- a/packages/kit/src/runtime/client/remote-functions/query.svelte.js +++ b/packages/kit/src/runtime/client/remote-functions/query.svelte.js @@ -1,12 +1,20 @@ /** @import { RemoteQueryFunction } from '@sveltejs/kit' */ /** @import { RemoteFunctionResponse } from 'types' */ +/** @import { Resource } from 'svelte/reactivity' */ import { app_dir, base } from '$app/paths/internal/client'; -import { app, goto, query_map, remote_responses } from '../client.js'; -import { tick } from 'svelte'; +import { app, goto, remote_responses } from '../client.js'; import { create_remote_function, remote_request } from './shared.svelte.js'; import * as devalue from 'devalue'; -import { HttpError, Redirect } from '@sveltejs/kit/internal'; +import { + HttpError, + Redirect, + REMOTE_CACHE_DELIMITER, + REMOTE_CACHE_PREFIX +} from '@sveltejs/kit/internal'; import { DEV } from 'esm-env'; +import { resource } from 'svelte/reactivity'; +import { hydratable } from 'svelte'; +import { query_cache } from './query-cache.js'; /** * @param {string} id @@ -15,8 +23,9 @@ import { DEV } from 'esm-env'; export function query(id) { if (DEV) { // If this reruns as part of HMR, refresh the query - for (const [key, entry] of query_map) { - if (key === id || key.startsWith(id + '/')) { + for (const [key, entry] of query_cache) { + const cache_key = `${REMOTE_CACHE_PREFIX}${REMOTE_CACHE_DELIMITER}${id}`; + if (key === cache_key || key.startsWith(cache_key + REMOTE_CACHE_DELIMITER)) { // use optional chaining in case a prerender function was turned into a query entry.resource.refresh?.(); } @@ -125,191 +134,96 @@ export function query_batch(id) { /** * @template T - * @implements {Partial>} + * @implements {Partial>>} */ export class Query { /** @type {string} */ _key; - #init = false; - /** @type {() => Promise} */ - #fn; - #loading = $state(true); - /** @type {Array<() => void>} */ - #latest = []; - - /** @type {boolean} */ - #ready = $state(false); - /** @type {T | undefined} */ - #raw = $state.raw(); - /** @type {Promise} */ - #promise; - /** @type {Array<(old: T) => T>} */ + /** @type {Array<(old: Awaited) => Awaited>} */ #overrides = $state([]); - /** @type {T | undefined} */ - #current = $derived.by(() => { - // don't reduce undefined value - if (!this.#ready) return undefined; - - return this.#overrides.reduce((v, r) => r(v), /** @type {T} */ (this.#raw)); - }); - - #error = $state.raw(undefined); - - /** @type {Promise['then']} */ - // @ts-expect-error TS doesn't understand that the promise returns something - #then = $derived.by(() => { - const p = this.#promise; - this.#overrides.length; - - return (resolve, reject) => { - const result = (async () => { - await p; - // svelte-ignore await_reactivity_loss - await tick(); - return /** @type {T} */ (this.#current); - })(); - - if (resolve || reject) { - return result.then(resolve, reject); - } - - return result; - }; - }); + /** @type {Resource} */ + #resource; /** * @param {string} key - * @param {() => Promise} fn + * @param {() => T} fn */ constructor(key, fn) { this._key = key; - this.#fn = fn; - this.#promise = $state.raw(this.#run()); - } - - #run() { - // Prevent state_unsafe_mutation error on first run when the resource is created within the template - if (this.#init) { - this.#loading = true; - } else { - this.#init = true; - } - - // Don't use Promise.withResolvers, it's too new still - /** @type {() => void} */ - let resolve; - /** @type {(e?: any) => void} */ - let reject; - /** @type {Promise} */ - const promise = new Promise((res, rej) => { - resolve = res; - reject = rej; - }); - - this.#latest.push( - // @ts-expect-error it's defined at this point - resolve - ); - - Promise.resolve(this.#fn()) - .then((value) => { - // Skip the response if resource was refreshed with a later promise while we were waiting for this one to resolve - const idx = this.#latest.indexOf(resolve); - if (idx === -1) return; - - this.#latest.splice(0, idx).forEach((r) => r()); - this.#ready = true; - this.#loading = false; - this.#raw = value; - this.#error = undefined; - - resolve(); + this.#resource = resource(() => + hydratable(key, fn, { + decode: (val) => devalue.parse(/** @type {string} */ (val), app.decoders) }) - .catch((e) => { - const idx = this.#latest.indexOf(resolve); - if (idx === -1) return; - - this.#latest.splice(0, idx).forEach((r) => r()); - this.#error = e; - this.#loading = false; - reject(e); - }); - - return promise; + ); } get then() { - return this.#then; + this.#overrides.length; + /** @type {Resource['then']} */ + return (onresolve, onreject) => + this.#resource.then( + onresolve ? () => onresolve(/** @type {Awaited} */ (this.current)) : undefined, + onreject + ); } get catch() { - this.#then; - return (/** @type {any} */ reject) => { - return this.#then(undefined, reject); - }; + this.#overrides.length; + return this.#resource.catch; } get finally() { - this.#then; - return (/** @type {any} */ fn) => { - return this.#then( - (value) => { - fn(); - return value; - }, - (error) => { - fn(); - throw error; - } - ); - }; + this.#overrides.length; + return this.#resource.finally; } - get current() { - return this.#current; - } + /** @type {T | undefined} */ + current = $derived.by(() => { + // don't reduce undefined value + if (!this.ready) return undefined; + + return this.#overrides.reduce( + (v, r) => r(v), + /** @type {Awaited} */ (this.#resource.current) + ); + }); get error() { - return this.#error; + return this.#resource.error; } /** * Returns true if the resource is loading or reloading. */ get loading() { - return this.#loading; + return this.#resource.loading; } /** * Returns true once the resource has been loaded for the first time. */ get ready() { - return this.#ready; + return this.#resource.ready; } /** * @returns {Promise} */ refresh() { - delete remote_responses[this._key]; - return (this.#promise = this.#run()); + return this.#resource.refresh(); } /** - * @param {T} value + * @param {Awaited} value */ set(value) { - this.#ready = true; - this.#loading = false; - this.#error = undefined; - this.#raw = value; - this.#promise = Promise.resolve(); + return this.#resource.set(value); } /** - * @param {(old: T) => T} fn + * @param {(old: Awaited) => Awaited} fn */ withOverride(fn) { this.#overrides.push(fn); diff --git a/packages/kit/src/runtime/client/remote-functions/shared.svelte.js b/packages/kit/src/runtime/client/remote-functions/shared.svelte.js index 05f9fdb84171..92833ae7e8f0 100644 --- a/packages/kit/src/runtime/client/remote-functions/shared.svelte.js +++ b/packages/kit/src/runtime/client/remote-functions/shared.svelte.js @@ -2,10 +2,16 @@ /** @import { RemoteFunctionResponse } from 'types' */ /** @import { Query } from './query.svelte.js' */ import * as devalue from 'devalue'; -import { app, goto, query_map, remote_responses } from '../client.js'; -import { HttpError, Redirect } from '@sveltejs/kit/internal'; -import { tick } from 'svelte'; -import { create_remote_cache_key, stringify_remote_arg } from '../../shared.js'; +import { app, goto } from '../client.js'; +import { + create_remote_cache_key, + HttpError, + Redirect, + REMOTE_CACHE_PREFIX +} from '@sveltejs/kit/internal'; +import { stringify_remote_arg } from '../../shared.js'; +import { cache } from 'svelte/reactivity'; +import { query_cache } from './query-cache.js'; /** * @@ -49,65 +55,7 @@ export function create_remote_function(id, create) { return (/** @type {any} */ arg) => { const payload = stringify_remote_arg(arg, app.hooks.transport); const cache_key = create_remote_cache_key(id, payload); - let entry = query_map.get(cache_key); - - let tracking = true; - try { - $effect.pre(() => { - if (entry) entry.count++; - return () => { - const entry = query_map.get(cache_key); - if (entry) { - entry.count--; - void tick().then(() => { - if (!entry.count && entry === query_map.get(cache_key)) { - query_map.delete(cache_key); - delete remote_responses[cache_key]; - } - }); - } - }; - }); - } catch { - tracking = false; - } - - let resource = entry?.resource; - if (!resource) { - resource = create(cache_key, payload); - - Object.defineProperty(resource, '_key', { - value: cache_key - }); - - query_map.set( - cache_key, - (entry = { - count: tracking ? 1 : 0, - resource - }) - ); - - resource - .then(() => { - void tick().then(() => { - if ( - !(/** @type {NonNullable} */ (entry).count) && - entry === query_map.get(cache_key) - ) { - // If no one is tracking this resource anymore, we can delete it from the cache - query_map.delete(cache_key); - } - }); - }) - .catch(() => { - // error delete the resource from the cache - // TODO is that correct? - query_map.delete(cache_key); - }); - } - - return resource; + return cache(cache_key, () => create(cache_key, payload)); }; } @@ -137,7 +85,7 @@ export function refresh_queries(stringified_refreshes, updates = []) { update.release(); } // Update the query with the new value - const entry = query_map.get(key); - entry?.resource.set(value); + const resource = query_cache.get(key.replace(REMOTE_CACHE_PREFIX, '')); // TODO should query cache treat prefixed keys as identical to unprefixed ones + resource?.set(value); } } diff --git a/packages/kit/src/runtime/server/page/load_data.js b/packages/kit/src/runtime/server/page/load_data.js index 520d6ff5bb85..31096bcf1127 100644 --- a/packages/kit/src/runtime/server/page/load_data.js +++ b/packages/kit/src/runtime/server/page/load_data.js @@ -233,19 +233,21 @@ export async function load_data({ }, fn: async (current) => { const traced_event = merge_tracing(event, current); - return await with_request_store({ event: traced_event, state: event_state }, () => - load.call(null, { - url: event.url, - params: event.params, - data: server_data_node?.data ?? null, - route: event.route, - fetch: create_universal_fetch(event, state, fetched, csr, resolve_opts), - setHeaders: event.setHeaders, - depends: () => {}, - parent, - untrack: (fn) => fn(), - tracing: traced_event.tracing - }) + return await with_request_store( + { event: traced_event, state: { ...event_state, is_in_universal_load: true } }, + () => + load.call(null, { + url: event.url, + params: event.params, + data: server_data_node?.data ?? null, + route: event.route, + fetch: create_universal_fetch(event, state, fetched, csr, resolve_opts), + setHeaders: event.setHeaders, + depends: () => {}, + parent, + untrack: (fn) => fn(), + tracing: traced_event.tracing + }) ); } }); diff --git a/packages/kit/src/runtime/server/page/render.js b/packages/kit/src/runtime/server/page/render.js index c3905d035b84..24d2c7f5a66a 100644 --- a/packages/kit/src/runtime/server/page/render.js +++ b/packages/kit/src/runtime/server/page/render.js @@ -16,7 +16,7 @@ import { add_resolution_suffix } from '../../pathname.js'; import { try_get_request_store, with_request_store } from '@sveltejs/kit/internal/server'; import { text_encoder } from '../../utils.js'; import { get_global_name } from '../utils.js'; -import { create_remote_cache_key } from '../../shared.js'; +import { create_remote_cache_key } from '@sveltejs/kit/internal'; // TODO rename this function/module @@ -201,36 +201,39 @@ export async function render_response({ }; } - rendered = await with_request_store({ event, state: event_state }, async () => { - // use relative paths during rendering, so that the resulting HTML is as - // portable as possible, but reset afterwards - if (paths.relative) paths.override({ base, assets }); - - const maybe_promise = options.root.render(props, render_opts); - // We have to invoke .then eagerly here in order to kick off rendering: it's only starting on access, - // and `await maybe_promise` would eagerly access the .then property but call its function only after a tick, which is too late - // for the paths.reset() below and for any eager getRequestEvent() calls during rendering without AsyncLocalStorage available. - const rendered = - options.async && 'then' in maybe_promise - ? /** @type {ReturnType & Promise} */ ( - maybe_promise - ).then((r) => r) - : maybe_promise; - - // TODO 3.0 remove options.async - if (options.async) { - // we reset this synchronously, rather than after async rendering is complete, - // to avoid cross-talk between requests. This is a breaking change for - // anyone who opts into async SSR, since `base` and `assets` will no - // longer be relative to the current pathname. - // TODO 3.0 remove `base` and `assets` in favour of `resolve(...)` and `asset(...)` - paths.reset(); - } + rendered = await with_request_store( + { event, state: { ...event_state, is_in_render: true } }, + async () => { + // use relative paths during rendering, so that the resulting HTML is as + // portable as possible, but reset afterwards + if (paths.relative) paths.override({ base, assets }); + + const maybe_promise = options.root.render(props, render_opts); + // We have to invoke .then eagerly here in order to kick off rendering: it's only starting on access, + // and `await maybe_promise` would eagerly access the .then property but call its function only after a tick, which is too late + // for the paths.reset() below and for any eager getRequestEvent() calls during rendering without AsyncLocalStorage available. + const rendered = + options.async && 'then' in maybe_promise + ? /** @type {ReturnType & Promise} */ ( + maybe_promise + ).then((r) => r) + : maybe_promise; + + // TODO 3.0 remove options.async + if (options.async) { + // we reset this synchronously, rather than after async rendering is complete, + // to avoid cross-talk between requests. This is a breaking change for + // anyone who opts into async SSR, since `base` and `assets` will no + // longer be relative to the current pathname. + // TODO 3.0 remove `base` and `assets` in favour of `resolve(...)` and `asset(...)` + paths.reset(); + } - const { head, html, css } = options.async ? await rendered : rendered; + const { head, html, css } = options.async ? await rendered : rendered; - return { head, html, css }; - }); + return { head, html, css }; + } + ); } finally { if (DEV) { globalThis.fetch = fetch; @@ -479,21 +482,23 @@ export async function render_response({ args.push(`{\n${indent}\t${hydrate.join(`,\n${indent}\t`)}\n${indent}}`); } - const { remote_data: remote_cache } = event_state; + // TODO: this is being serialized twice (once for `hydratable` things and once for everything else) + // we need to move loading to inside the `render` call when `experimental.async` is on, then we can remove this + const { remote_responses: remote_cache } = event_state; let serialized_remote_data = ''; - if (remote_cache) { + if (remote_cache.size) { /** @type {Record} */ const remote = {}; for (const [info, cache] of remote_cache) { // remote functions without an `id` aren't exported, and thus // cannot be called from the client - if (!info.id) continue; + if (!info.id || !cache.universal_load) continue; - for (const key in cache) { - remote[create_remote_cache_key(info.id, key)] = await cache[key]; + for (const key in cache.data) { + remote[create_remote_cache_key(info.id, key)] = await cache.data[key]; } } diff --git a/packages/kit/src/runtime/server/remote.js b/packages/kit/src/runtime/server/remote.js index 88ae0d41387c..58613ac534c5 100644 --- a/packages/kit/src/runtime/server/remote.js +++ b/packages/kit/src/runtime/server/remote.js @@ -2,7 +2,12 @@ /** @import { RemoteFunctionResponse, RemoteInfo, RequestState, SSROptions } from 'types' */ import { json, error } from '@sveltejs/kit'; -import { HttpError, Redirect, SvelteKitError } from '@sveltejs/kit/internal'; +import { + HttpError, + Redirect, + REMOTE_CACHE_DELIMITER, + SvelteKitError +} from '@sveltejs/kit/internal'; import { with_request_store, merge_tracing } from '@sveltejs/kit/internal/server'; import { app_dir, base } from '$app/paths/internal/server'; import { is_form_content_type } from '../../utils/http.js'; @@ -37,7 +42,7 @@ export async function handle_remote_call(event, state, options, manifest, id) { * @param {string} id */ async function handle_remote_call_internal(event, state, options, manifest, id) { - const [hash, name, additional_args] = id.split('/'); + const [hash, name, additional_args] = id.split(REMOTE_CACHE_DELIMITER); const remotes = manifest._.remotes; if (!remotes[hash]) error(404); @@ -212,7 +217,7 @@ async function handle_remote_call_internal(event, state, options, manifest, id) for (const key of client_refreshes) { if (refreshes[key] !== undefined) continue; - const [hash, name, payload] = key.split('/'); + const [, hash, name, payload] = key.split(REMOTE_CACHE_DELIMITER); const loader = manifest._.remotes[hash]; const fn = (await loader?.())?.default?.[name]; @@ -263,7 +268,7 @@ export async function handle_remote_form_post(event, state, manifest, id) { * @returns {Promise} */ async function handle_remote_form_post_internal(event, state, manifest, id) { - const [hash, name, action_id] = id.split('/'); + const [hash, name, action_id] = id.split(REMOTE_CACHE_DELIMITER); const remotes = manifest._.remotes; const module = await remotes[hash]?.(); diff --git a/packages/kit/src/runtime/server/respond.js b/packages/kit/src/runtime/server/respond.js index 9067418bc450..2c479dec5f03 100644 --- a/packages/kit/src/runtime/server/respond.js +++ b/packages/kit/src/runtime/server/respond.js @@ -149,7 +149,10 @@ export async function internal_respond(request, options, manifest, state) { tracing: { record_span }, - is_in_remote_function: false + remote_responses: new Map(), + is_in_remote_function: false, + is_in_universal_load: false, + is_in_render: false }; /** @type {import('@sveltejs/kit').RequestEvent} */ diff --git a/packages/kit/src/runtime/shared.js b/packages/kit/src/runtime/shared.js index ae3ee4a06c10..4bf43b748c22 100644 --- a/packages/kit/src/runtime/shared.js +++ b/packages/kit/src/runtime/shared.js @@ -83,11 +83,3 @@ export function parse_remote_arg(string, transport) { return devalue.parse(json_string, decoders); } - -/** - * @param {string} id - * @param {string} payload - */ -export function create_remote_cache_key(id, payload) { - return id + '/' + payload; -} diff --git a/packages/kit/src/types/internal.d.ts b/packages/kit/src/types/internal.d.ts index 84242df90417..0e22748b13ef 100644 --- a/packages/kit/src/types/internal.d.ts +++ b/packages/kit/src/types/internal.d.ts @@ -607,8 +607,13 @@ export interface RequestState { record_span: RecordSpan; }; is_in_remote_function: boolean; + is_in_universal_load: boolean; + is_in_render: boolean; form_instances?: Map; - remote_data?: Map>>; + remote_responses: Map< + RemoteInfo, + { universal_load: boolean; data: Record> } + >; refreshes?: Record>; is_endpoint_request?: boolean; } diff --git a/packages/kit/test/apps/basics/test/client.test.js b/packages/kit/test/apps/basics/test/client.test.js index 059e3afed201..ab5bf4e7b597 100644 --- a/packages/kit/test/apps/basics/test/client.test.js +++ b/packages/kit/test/apps/basics/test/client.test.js @@ -1787,6 +1787,8 @@ test.describe('routing', () => { }); test.describe('remote functions', () => { + test.skip(process.env.SVELTE_ASYNC !== 'true', 'when not in async mode'); + test('preloading data works when the page component and server load both import a remote function', async ({ page }) => { @@ -1804,6 +1806,7 @@ test.describe('remote functions', () => { // have to run in serial because commands mutate in-memory data on the server test.describe('remote function mutations', () => { + test.skip(process.env.SVELTE_ASYNC !== 'true', 'when not in async mode'); test.describe.configure({ mode: 'default' }); test.afterEach(async ({ page }) => { if (page.url().endsWith('/remote')) { @@ -1916,8 +1919,6 @@ test.describe('remote function mutations', () => { }); test('prerendered entries not called in prod', async ({ page }) => { - let request_count = 0; - page.on('request', (r) => (request_count += r.url().includes('/_app/remote') ? 1 : 0)); await page.goto('/remote/prerender'); await page.click('#fetch-prerendered'); diff --git a/packages/kit/test/apps/basics/test/server.test.js b/packages/kit/test/apps/basics/test/server.test.js index eea785051107..940e2aa524b1 100644 --- a/packages/kit/test/apps/basics/test/server.test.js +++ b/packages/kit/test/apps/basics/test/server.test.js @@ -1365,6 +1365,8 @@ test.describe('tracing', () => { }); test.describe('remote functions', () => { + test.skip(process.env.SVELTE_ASYNC !== 'true', 'when not in async mode'); + test("doesn't write bundle to disk when treeshaking prerendered remote functions", () => { test.skip(!!process.env.DEV, 'skip when in dev mode'); expect(fs.existsSync(path.join(root, 'dist'))).toBe(false); diff --git a/packages/kit/test/apps/basics/test/test.js b/packages/kit/test/apps/basics/test/test.js index 2518529e27d5..351fa56d2791 100644 --- a/packages/kit/test/apps/basics/test/test.js +++ b/packages/kit/test/apps/basics/test/test.js @@ -733,12 +733,13 @@ test.describe('$app/paths', () => { test('includes paths', async ({ page, javaScriptEnabled }) => { await page.goto('/paths'); - let base = javaScriptEnabled ? '' : '.'; + // in async mode, the render is always run after a microtask, which means `base` and `assets` are not relative. + let base = javaScriptEnabled || process.env.SVELTE_ASYNC === 'true' ? '' : '.'; expect(await page.innerHTML('pre')).toBe(JSON.stringify({ base, assets: base })); await page.goto('/paths/deeply/nested'); - base = javaScriptEnabled ? '' : '../..'; + base = javaScriptEnabled || process.env.SVELTE_ASYNC === 'true' ? '' : '../..'; expect(await page.innerHTML('pre')).toBe(JSON.stringify({ base, assets: base })); }); @@ -1601,6 +1602,8 @@ test.describe('getRequestEvent', () => { }); test.describe('remote functions', () => { + test.skip(process.env.SVELTE_ASYNC !== 'true', 'when not in async mode'); + test('query returns correct data', async ({ page, javaScriptEnabled }) => { await page.goto('/remote'); await expect(page.locator('#echo-result')).toHaveText('Hello world'); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index eae19dbb96f7..35a82a10bf3d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,7 +23,7 @@ catalogs: version: 0.207.0 '@opentelemetry/sdk-trace-node': specifier: ^2.0.1 - version: 2.2.0 + version: 2.1.0 '@playwright/test': specifier: ^1.51.1 version: 1.51.1 @@ -91,8 +91,8 @@ catalogs: specifier: ^3.0.0 version: 3.0.0 svelte: - specifier: ^5.42.1 - version: 5.42.2 + specifier: https://pkg.pr.new/svelte@aaf2eb + version: 5.43.3 svelte-check: specifier: ^4.1.1 version: 4.1.1 @@ -127,7 +127,7 @@ importers: version: 1.51.1 '@sveltejs/eslint-config': specifier: 'catalog:' - version: 8.2.0(@stylistic/eslint-plugin-js@2.1.0(eslint@9.34.0(jiti@2.4.2)))(eslint-config-prettier@9.1.0(eslint@9.34.0(jiti@2.4.2)))(eslint-plugin-n@17.16.1(eslint@9.34.0(jiti@2.4.2))(typescript@5.8.3))(eslint-plugin-svelte@3.9.3(eslint@9.34.0(jiti@2.4.2))(svelte@5.42.2)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.8.3)))(eslint@9.34.0(jiti@2.4.2))(typescript-eslint@8.43.0(eslint@9.34.0(jiti@2.4.2))(typescript@5.8.3))(typescript@5.8.3) + version: 8.2.0(@stylistic/eslint-plugin-js@2.1.0(eslint@9.34.0(jiti@2.4.2)))(eslint-config-prettier@9.1.0(eslint@9.34.0(jiti@2.4.2)))(eslint-plugin-n@17.16.1(eslint@9.34.0(jiti@2.4.2))(typescript@5.8.3))(eslint-plugin-svelte@3.9.3(eslint@9.34.0(jiti@2.4.2))(svelte@5.43.3)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.8.3)))(eslint@9.34.0(jiti@2.4.2))(typescript-eslint@8.43.0(eslint@9.34.0(jiti@2.4.2))(typescript@5.8.3))(typescript@5.8.3) '@svitejs/changesets-changelog-github-compact': specifier: 'catalog:' version: 1.2.0 @@ -139,7 +139,7 @@ importers: version: 3.6.0 prettier-plugin-svelte: specifier: ^3.4.0 - version: 3.4.0(prettier@3.6.0)(svelte@5.42.2) + version: 3.4.0(prettier@3.6.0)(svelte@5.43.3) typescript-eslint: specifier: 'catalog:' version: 8.43.0(eslint@9.34.0(jiti@2.4.2))(typescript@5.8.3) @@ -151,7 +151,7 @@ importers: version: link:../kit '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@5.43.3)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) '@types/node': specifier: 'catalog:' version: 18.19.119 @@ -200,13 +200,13 @@ importers: version: link:../../../../kit '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) server-side-dep: specifier: file:server-side-dep version: file:packages/adapter-cloudflare/test/apps/pages/server-side-dep svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb vite: specifier: 'catalog:' version: 6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0) @@ -221,13 +221,13 @@ importers: version: link:../../../../kit '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) server-side-dep: specifier: file:server-side-dep version: file:packages/adapter-cloudflare/test/apps/workers/server-side-dep svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb vite: specifier: 'catalog:' version: 6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0) @@ -273,7 +273,7 @@ importers: version: link:../kit '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@5.43.3)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) '@types/node': specifier: 'catalog:' version: 18.19.119 @@ -297,13 +297,13 @@ importers: version: link:../../../../kit '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) netlify-cli: specifier: 'catalog:' version: 23.5.1(@types/node@18.19.119)(picomatch@4.0.3)(rollup@4.50.1) svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb vite: specifier: 'catalog:' version: 6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0) @@ -315,13 +315,13 @@ importers: version: link:../../../../kit '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) netlify-cli: specifier: 'catalog:' version: 23.5.1(@types/node@18.19.119)(picomatch@4.0.3)(rollup@4.50.1) svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb vite: specifier: 'catalog:' version: 6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0) @@ -349,7 +349,7 @@ importers: version: link:../kit '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@5.43.3)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) '@types/node': specifier: 'catalog:' version: 18.19.119 @@ -376,7 +376,7 @@ importers: version: link:../kit '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) '@types/node': specifier: 'catalog:' version: 18.19.119 @@ -385,7 +385,7 @@ importers: version: 3.0.2 svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb typescript: specifier: ^5.3.3 version: 5.8.3 @@ -400,13 +400,13 @@ importers: version: link:../../../../kit '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) sirv-cli: specifier: 'catalog:' version: 3.0.0 svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb vite: specifier: 'catalog:' version: 6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0) @@ -418,13 +418,13 @@ importers: version: link:../../../../kit '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) sirv-cli: specifier: 'catalog:' version: 3.0.0 svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb vite: specifier: 'catalog:' version: 6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0) @@ -443,7 +443,7 @@ importers: version: link:../kit '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@5.43.3)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) '@types/node': specifier: 'catalog:' version: 18.19.119 @@ -473,7 +473,7 @@ importers: version: 0.34.4 svelte-parse-markup: specifier: ^0.1.5 - version: 0.1.5(svelte@5.42.2) + version: 0.1.5(svelte@https://pkg.pr.new/svelte@aaf2eb) vite-imagetools: specifier: ^8.0.0 version: 8.0.0(rollup@4.50.1) @@ -483,7 +483,7 @@ importers: devDependencies: '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) '@types/estree': specifier: 'catalog:' version: 1.0.8 @@ -495,7 +495,7 @@ importers: version: 4.50.1 svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb typescript: specifier: ^5.6.3 version: 5.8.3 @@ -516,10 +516,10 @@ importers: version: link:../../../../kit '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb vite: specifier: 'catalog:' version: 6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0) @@ -574,7 +574,7 @@ importers: version: 1.51.1 '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) '@types/connect': specifier: 'catalog:' version: 3.4.38 @@ -592,10 +592,10 @@ importers: version: 4.50.1 svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb svelte-preprocess: specifier: 'catalog:' - version: 6.0.0(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.8.3)))(postcss@8.5.6)(svelte@5.42.2)(typescript@5.8.3) + version: 6.0.0(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.8.3)))(postcss@8.5.6)(svelte@https://pkg.pr.new/svelte@aaf2eb)(typescript@5.8.3) typescript: specifier: ^5.3.3 version: 5.8.3 @@ -616,16 +616,16 @@ importers: version: link:../../.. '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) dropcss: specifier: 'catalog:' version: 1.0.16 svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb svelte-check: specifier: 'catalog:' - version: 4.1.1(picomatch@4.0.3)(svelte@5.42.2)(typescript@5.8.3) + version: 4.1.1(picomatch@4.0.3)(svelte@https://pkg.pr.new/svelte@aaf2eb)(typescript@5.8.3) typescript: specifier: ^5.5.4 version: 5.8.3 @@ -643,22 +643,22 @@ importers: version: 0.207.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-node': specifier: 'catalog:' - version: 2.2.0(@opentelemetry/api@1.9.0) + version: 2.1.0(@opentelemetry/api@1.9.0) '@sveltejs/kit': specifier: workspace:^ version: link:../../.. '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) '@vitest/browser': specifier: 'catalog:' version: 3.2.4(playwright@1.51.1)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0))(vitest@3.2.4) svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb svelte-check: specifier: 'catalog:' - version: 4.1.1(picomatch@4.0.3)(svelte@5.42.2)(typescript@5.8.3) + version: 4.1.1(picomatch@4.0.3)(svelte@https://pkg.pr.new/svelte@aaf2eb)(typescript@5.8.3) test-redirect-importer: specifier: workspace:* version: link:../../../../test-redirect-importer @@ -682,7 +682,7 @@ importers: version: link:../../.. '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) e2e-test-dep-error: specifier: file:./_test_dependencies/cjs-only version: e2e-test-dep-cjs-only@file:packages/kit/test/apps/dev-only/_test_dependencies/cjs-only @@ -715,10 +715,10 @@ importers: version: e2e-test-dep-cjs-only@file:packages/kit/test/apps/dev-only/_test_dependencies/cjs-only svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb svelte-check: specifier: 'catalog:' - version: 4.1.1(picomatch@4.0.3)(svelte@5.42.2)(typescript@5.8.3) + version: 4.1.1(picomatch@4.0.3)(svelte@https://pkg.pr.new/svelte@aaf2eb)(typescript@5.8.3) typescript: specifier: ^5.5.4 version: 5.8.3 @@ -733,13 +733,13 @@ importers: version: link:../../.. '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb svelte-check: specifier: 'catalog:' - version: 4.1.1(picomatch@4.0.3)(svelte@5.42.2)(typescript@5.8.3) + version: 4.1.1(picomatch@4.0.3)(svelte@https://pkg.pr.new/svelte@aaf2eb)(typescript@5.8.3) typescript: specifier: ^5.5.4 version: 5.8.3 @@ -754,13 +754,13 @@ importers: version: link:../../.. '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb svelte-check: specifier: 'catalog:' - version: 4.1.1(picomatch@4.0.3)(svelte@5.42.2)(typescript@5.8.3) + version: 4.1.1(picomatch@4.0.3)(svelte@https://pkg.pr.new/svelte@aaf2eb)(typescript@5.8.3) typescript: specifier: ^5.5.4 version: 5.8.3 @@ -775,13 +775,13 @@ importers: version: link:../../.. '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb svelte-check: specifier: 'catalog:' - version: 4.1.1(picomatch@4.0.3)(svelte@5.42.2)(typescript@5.8.3) + version: 4.1.1(picomatch@4.0.3)(svelte@https://pkg.pr.new/svelte@aaf2eb)(typescript@5.8.3) typescript: specifier: ^5.5.4 version: 5.8.3 @@ -799,13 +799,13 @@ importers: version: link:../../.. '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb svelte-check: specifier: 'catalog:' - version: 4.1.1(picomatch@4.0.3)(svelte@5.42.2)(typescript@5.8.3) + version: 4.1.1(picomatch@4.0.3)(svelte@https://pkg.pr.new/svelte@aaf2eb)(typescript@5.8.3) typescript: specifier: ^5.5.4 version: 5.8.3 @@ -823,13 +823,13 @@ importers: version: link:../../.. '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb svelte-check: specifier: 'catalog:' - version: 4.1.1(picomatch@4.0.3)(svelte@5.42.2)(typescript@5.8.3) + version: 4.1.1(picomatch@4.0.3)(svelte@https://pkg.pr.new/svelte@aaf2eb)(typescript@5.8.3) typescript: specifier: ^5.5.4 version: 5.8.3 @@ -850,13 +850,13 @@ importers: version: link:../../.. '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb svelte-check: specifier: 'catalog:' - version: 4.1.1(picomatch@4.0.3)(svelte@5.42.2)(typescript@5.8.3) + version: 4.1.1(picomatch@4.0.3)(svelte@https://pkg.pr.new/svelte@aaf2eb)(typescript@5.8.3) typescript: specifier: ^5.5.4 version: 5.8.3 @@ -871,13 +871,13 @@ importers: version: link:../../.. '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb svelte-check: specifier: 'catalog:' - version: 4.1.1(picomatch@4.0.3)(svelte@5.42.2)(typescript@5.8.3) + version: 4.1.1(picomatch@4.0.3)(svelte@https://pkg.pr.new/svelte@aaf2eb)(typescript@5.8.3) typescript: specifier: ^5.5.4 version: 5.8.3 @@ -892,13 +892,13 @@ importers: version: link:../../.. '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb svelte-check: specifier: 'catalog:' - version: 4.1.1(picomatch@4.0.3)(svelte@5.42.2)(typescript@5.8.3) + version: 4.1.1(picomatch@4.0.3)(svelte@https://pkg.pr.new/svelte@aaf2eb)(typescript@5.8.3) typescript: specifier: ^5.5.4 version: 5.8.3 @@ -922,13 +922,13 @@ importers: version: link:../../../.. '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb svelte-check: specifier: 'catalog:' - version: 4.1.1(picomatch@4.0.3)(svelte@5.42.2)(typescript@5.8.3) + version: 4.1.1(picomatch@4.0.3)(svelte@https://pkg.pr.new/svelte@aaf2eb)(typescript@5.8.3) typescript: specifier: ^5.5.4 version: 5.8.3 @@ -946,13 +946,13 @@ importers: version: link:../../../.. '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb svelte-check: specifier: 'catalog:' - version: 4.1.1(picomatch@4.0.3)(svelte@5.42.2)(typescript@5.8.3) + version: 4.1.1(picomatch@4.0.3)(svelte@https://pkg.pr.new/svelte@aaf2eb)(typescript@5.8.3) typescript: specifier: ^5.5.4 version: 5.8.3 @@ -970,13 +970,13 @@ importers: version: link:../../../.. '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb svelte-check: specifier: 'catalog:' - version: 4.1.1(picomatch@4.0.3)(svelte@5.42.2)(typescript@5.8.3) + version: 4.1.1(picomatch@4.0.3)(svelte@https://pkg.pr.new/svelte@aaf2eb)(typescript@5.8.3) typescript: specifier: ^5.5.4 version: 5.8.3 @@ -994,13 +994,13 @@ importers: version: link:../../../.. '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb svelte-check: specifier: 'catalog:' - version: 4.1.1(picomatch@4.0.3)(svelte@5.42.2)(typescript@5.8.3) + version: 4.1.1(picomatch@4.0.3)(svelte@https://pkg.pr.new/svelte@aaf2eb)(typescript@5.8.3) typescript: specifier: ^5.5.4 version: 5.8.3 @@ -1015,13 +1015,13 @@ importers: version: link:../../../.. '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb svelte-check: specifier: 'catalog:' - version: 4.1.1(picomatch@4.0.3)(svelte@5.42.2)(typescript@5.8.3) + version: 4.1.1(picomatch@4.0.3)(svelte@https://pkg.pr.new/svelte@aaf2eb)(typescript@5.8.3) typescript: specifier: ^5.5.4 version: 5.8.3 @@ -1036,13 +1036,13 @@ importers: version: link:../../../.. '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb svelte-check: specifier: 'catalog:' - version: 4.1.1(picomatch@4.0.3)(svelte@5.42.2)(typescript@5.8.3) + version: 4.1.1(picomatch@4.0.3)(svelte@https://pkg.pr.new/svelte@aaf2eb)(typescript@5.8.3) typescript: specifier: ^5.5.4 version: 5.8.3 @@ -1057,13 +1057,13 @@ importers: version: link:../../../.. '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb svelte-check: specifier: 'catalog:' - version: 4.1.1(picomatch@4.0.3)(svelte@5.42.2)(typescript@5.8.3) + version: 4.1.1(picomatch@4.0.3)(svelte@https://pkg.pr.new/svelte@aaf2eb)(typescript@5.8.3) typescript: specifier: ^5.5.4 version: 5.8.3 @@ -1078,13 +1078,13 @@ importers: version: link:../../../.. '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb svelte-check: specifier: 'catalog:' - version: 4.1.1(picomatch@4.0.3)(svelte@5.42.2)(typescript@5.8.3) + version: 4.1.1(picomatch@4.0.3)(svelte@https://pkg.pr.new/svelte@aaf2eb)(typescript@5.8.3) typescript: specifier: ^5.5.4 version: 5.8.3 @@ -1099,13 +1099,13 @@ importers: version: link:../../../.. '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb svelte-check: specifier: 'catalog:' - version: 4.1.1(picomatch@4.0.3)(svelte@5.42.2)(typescript@5.8.3) + version: 4.1.1(picomatch@4.0.3)(svelte@https://pkg.pr.new/svelte@aaf2eb)(typescript@5.8.3) typescript: specifier: ^5.5.4 version: 5.8.3 @@ -1120,13 +1120,13 @@ importers: version: link:../../../.. '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb svelte-check: specifier: 'catalog:' - version: 4.1.1(picomatch@4.0.3)(svelte@5.42.2)(typescript@5.8.3) + version: 4.1.1(picomatch@4.0.3)(svelte@https://pkg.pr.new/svelte@aaf2eb)(typescript@5.8.3) typescript: specifier: ^5.5.4 version: 5.8.3 @@ -1141,13 +1141,13 @@ importers: version: link:../../../.. '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb svelte-check: specifier: 'catalog:' - version: 4.1.1(picomatch@4.0.3)(svelte@5.42.2)(typescript@5.8.3) + version: 4.1.1(picomatch@4.0.3)(svelte@https://pkg.pr.new/svelte@aaf2eb)(typescript@5.8.3) typescript: specifier: ^5.5.4 version: 5.8.3 @@ -1162,13 +1162,13 @@ importers: version: link:../../../.. '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb svelte-check: specifier: 'catalog:' - version: 4.1.1(picomatch@4.0.3)(svelte@5.42.2)(typescript@5.8.3) + version: 4.1.1(picomatch@4.0.3)(svelte@https://pkg.pr.new/svelte@aaf2eb)(typescript@5.8.3) typescript: specifier: ^5.5.4 version: 5.8.3 @@ -1183,13 +1183,13 @@ importers: version: link:../../../.. '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb svelte-check: specifier: 'catalog:' - version: 4.1.1(picomatch@4.0.3)(svelte@5.42.2)(typescript@5.8.3) + version: 4.1.1(picomatch@4.0.3)(svelte@https://pkg.pr.new/svelte@aaf2eb)(typescript@5.8.3) typescript: specifier: ^5.5.4 version: 5.8.3 @@ -1204,13 +1204,13 @@ importers: version: link:../../../.. '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb svelte-check: specifier: 'catalog:' - version: 4.1.1(picomatch@4.0.3)(svelte@5.42.2)(typescript@5.8.3) + version: 4.1.1(picomatch@4.0.3)(svelte@https://pkg.pr.new/svelte@aaf2eb)(typescript@5.8.3) typescript: specifier: ^5.5.4 version: 5.8.3 @@ -1225,13 +1225,13 @@ importers: version: link:../../../.. '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb svelte-check: specifier: 'catalog:' - version: 4.1.1(picomatch@4.0.3)(svelte@5.42.2)(typescript@5.8.3) + version: 4.1.1(picomatch@4.0.3)(svelte@https://pkg.pr.new/svelte@aaf2eb)(typescript@5.8.3) typescript: specifier: ^5.5.4 version: 5.8.3 @@ -1246,13 +1246,13 @@ importers: version: link:../../.. '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb svelte-check: specifier: 'catalog:' - version: 4.1.1(picomatch@4.0.3)(svelte@5.42.2)(typescript@5.8.3) + version: 4.1.1(picomatch@4.0.3)(svelte@https://pkg.pr.new/svelte@aaf2eb)(typescript@5.8.3) typescript: specifier: ^5.5.4 version: 5.8.3 @@ -1270,13 +1270,13 @@ importers: version: link:../../.. '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb svelte-check: specifier: 'catalog:' - version: 4.1.1(picomatch@4.0.3)(svelte@5.42.2)(typescript@5.8.3) + version: 4.1.1(picomatch@4.0.3)(svelte@https://pkg.pr.new/svelte@aaf2eb)(typescript@5.8.3) typescript: specifier: ^5.5.4 version: 5.8.3 @@ -1294,13 +1294,13 @@ importers: version: link:../../.. '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb svelte-check: specifier: 'catalog:' - version: 4.1.1(picomatch@4.0.3)(svelte@5.42.2)(typescript@5.8.3) + version: 4.1.1(picomatch@4.0.3)(svelte@https://pkg.pr.new/svelte@aaf2eb)(typescript@5.8.3) typescript: specifier: ^5.5.4 version: 5.8.3 @@ -1327,11 +1327,11 @@ importers: version: 7.7.2 svelte2tsx: specifier: ~0.7.33 - version: 0.7.33(svelte@5.42.2)(typescript@5.8.3) + version: 0.7.33(svelte@https://pkg.pr.new/svelte@aaf2eb)(typescript@5.8.3) devDependencies: '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) '@types/node': specifier: 'catalog:' version: 18.19.119 @@ -1343,10 +1343,10 @@ importers: version: 3.6.0 svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb svelte-preprocess: specifier: 'catalog:' - version: 6.0.0(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.8.3)))(postcss@8.5.6)(svelte@5.42.2)(typescript@5.8.3) + version: 6.0.0(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.8.3)))(postcss@8.5.6)(svelte@https://pkg.pr.new/svelte@aaf2eb)(typescript@5.8.3) typescript: specifier: ^5.3.3 version: 5.8.3 @@ -1394,22 +1394,22 @@ importers: version: link:../../packages/package '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + version: 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) prettier: specifier: ^3.3.2 version: 3.6.0 prettier-plugin-svelte: specifier: ^3.2.6 - version: 3.4.0(prettier@3.6.0)(svelte@5.42.2) + version: 3.4.0(prettier@3.6.0)(svelte@https://pkg.pr.new/svelte@aaf2eb) publint: specifier: 'catalog:' version: 0.3.0 svelte: specifier: 'catalog:' - version: 5.42.2 + version: https://pkg.pr.new/svelte@aaf2eb svelte-check: specifier: 'catalog:' - version: 4.1.1(picomatch@4.0.3)(svelte@5.42.2)(typescript@5.8.3) + version: 4.1.1(picomatch@4.0.3)(svelte@https://pkg.pr.new/svelte@aaf2eb)(typescript@5.8.3) typescript: specifier: ^5.5.0 version: 5.8.3 @@ -2578,12 +2578,24 @@ packages: resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} engines: {node: '>=8.0.0'} + '@opentelemetry/context-async-hooks@2.1.0': + resolution: {integrity: sha512-zOyetmZppnwTyPrt4S7jMfXiSX9yyfF0hxlA8B5oo2TtKl+/RGCy7fi4DrBfIf3lCPrkKsRBWZZD7RFojK7FDg==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + '@opentelemetry/context-async-hooks@2.2.0': resolution: {integrity: sha512-qRkLWiUEZNAmYapZ7KGS5C4OmBLcP/H2foXeOEaowYCR0wi89fHejrfYfbuLVCMLp/dWZXKvQusdbUEZjERfwQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' + '@opentelemetry/core@2.1.0': + resolution: {integrity: sha512-RMEtHsxJs/GiHHxYT58IY57UXAQTuUnZVco6ymDEqTNlJKTimM4qPUPVe8InNFyBjhHBEAx4k3Q8LtNayBsbUQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + '@opentelemetry/core@2.2.0': resolution: {integrity: sha512-FuabnnUm8LflnieVxs6eP7Z383hgQU4W1e3KJS6aOG3RxWxcHyBxH8fDMHNgu/gFx/M2jvTOW/4/PHhLz6bjWw==} engines: {node: ^18.19.0 || >=20.6.0} @@ -2692,6 +2704,12 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' + '@opentelemetry/resources@2.1.0': + resolution: {integrity: sha512-1CJjf3LCvoefUOgegxi8h6r4B/wLSzInyhGP2UmIBYNlo4Qk5CZ73e1eEyWmfXvFtm1ybkmfb2DqWvspsYLrWw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + '@opentelemetry/resources@2.2.0': resolution: {integrity: sha512-1pNQf/JazQTMA0BiO5NINUzH0cbLbbl7mntLa4aJNmCCXSj0q03T5ZXXL0zw4G55TjdL9Tz32cznGClf+8zr5A==} engines: {node: ^18.19.0 || >=20.6.0} @@ -2716,12 +2734,24 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' + '@opentelemetry/sdk-trace-base@2.1.0': + resolution: {integrity: sha512-uTX9FBlVQm4S2gVQO1sb5qyBLq/FPjbp+tmGoxu4tIgtYGmBYB44+KX/725RFDe30yBSaA9Ml9fqphe1hbUyLQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + '@opentelemetry/sdk-trace-base@2.2.0': resolution: {integrity: sha512-xWQgL0Bmctsalg6PaXExmzdedSp3gyKV8mQBwK/j9VGdCDu2fmXIb2gAehBKbkXCpJ4HPkgv3QfoJWRT4dHWbw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' + '@opentelemetry/sdk-trace-node@2.1.0': + resolution: {integrity: sha512-SvVlBFc/jI96u/mmlKm86n9BbTCbQ35nsPoOohqJX6DXH92K0kTe73zGY5r8xoI1QkjR9PizszVJLzMC966y9Q==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + '@opentelemetry/sdk-trace-node@2.2.0': resolution: {integrity: sha512-+OaRja3f0IqGG2kptVeYsrZQK9nKRSpfFrKtRBq4uh6nIB8bTBgaGvYQrQoRrQWQMA5dK5yLhDMDc0dvYvCOIQ==} engines: {node: ^18.19.0 || >=20.6.0} @@ -4073,6 +4103,9 @@ packages: devalue@5.3.2: resolution: {integrity: sha512-UDsjUbpQn9kvm68slnrs+mfxwFkIflOhkanmyabZ8zOYk8SMEIbJ3TK+88g70hSIeytu4y18f0z/hYHMTrXIWw==} + devalue@5.4.2: + resolution: {integrity: sha512-MwPZTKEPK2k8Qgfmqrd48ZKVvzSQjgW0lXLxiIBA8dQjtf/6mw6pggHNLcyDKyf+fI6eXxlQwPsfaCMTU5U+Bw==} + diff@4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} @@ -6534,6 +6567,7 @@ packages: svelte-check@4.1.1: resolution: {integrity: sha512-NfaX+6Qtc8W/CyVGS/F7/XdiSSyXz+WGYA9ZWV3z8tso14V2vzjfXviKaTFEzB7g8TqfgO2FOzP6XT4ApSTUTw==} + version: 4.1.1 engines: {node: '>= 18.0.0'} hasBin: true peerDependencies: @@ -6551,11 +6585,13 @@ packages: svelte-parse-markup@0.1.5: resolution: {integrity: sha512-T6mqZrySltPCDwfKXWQ6zehipVLk4GWfH1zCMGgRtLlOIFPuw58ZxVYxVvotMJgJaurKi1i14viB2GIRKXeJTQ==} + version: 0.1.5 peerDependencies: svelte: ^3.0.0 || ^4.0.0 || ^5.0.0-next.1 svelte-preprocess@6.0.0: resolution: {integrity: sha512-sbyHnWBwIphuaJWC7hnJd6ZoW/VN0va3jVb/8dDfeT2+0hVmo1DCx+zBK0/JfUKQmzg/FOEtcsGKRnbt8pRRkw==} + version: 6.0.0 engines: {node: '>= 18.0.0'} peerDependencies: '@babel/core': ^7.10.2 @@ -6593,12 +6629,18 @@ packages: svelte2tsx@0.7.33: resolution: {integrity: sha512-geogGkzfciwteiKvlbaDBnKOitWuh6e1n2f5KLBBXEfZgui9gy5yRlOBYtNEkdwciO4MC9fTM/EyltsiQrOPNQ==} + version: 0.7.33 peerDependencies: svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0 typescript: ^4.9.4 || ^5.0.0 - svelte@5.42.2: - resolution: {integrity: sha512-iSry5jsBHispVczyt9UrBX/1qu3HQ/UyKPAIjqlvlu3o/eUvc+kpyMyRS2O4HLLx4MvLurLGIUOyyP11pyD59g==} + svelte@5.43.3: + resolution: {integrity: sha512-kjkAjCk41mJfvJZG56XcJNOdJSke94JxtcX8zFzzz2vrt47E0LnoBzU6azIZ1aBxJgUep8qegAkguSf1GjxLXQ==} + engines: {node: '>=18'} + + svelte@https://pkg.pr.new/svelte@aaf2eb: + resolution: {tarball: https://pkg.pr.new/svelte@aaf2eb} + version: 5.43.3 engines: {node: '>=18'} svgo@4.0.0: @@ -8438,10 +8480,19 @@ snapshots: '@opentelemetry/api@1.9.0': {} + '@opentelemetry/context-async-hooks@2.1.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 + '@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -8596,6 +8647,12 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources@2.1.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/resources@2.2.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -8643,6 +8700,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -8650,6 +8714,13 @@ snapshots: '@opentelemetry/resources': 2.2.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/sdk-trace-node@2.1.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/context-async-hooks': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-node@2.2.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -8907,34 +8978,56 @@ snapshots: dependencies: acorn: 8.15.0 - '@sveltejs/eslint-config@8.2.0(@stylistic/eslint-plugin-js@2.1.0(eslint@9.34.0(jiti@2.4.2)))(eslint-config-prettier@9.1.0(eslint@9.34.0(jiti@2.4.2)))(eslint-plugin-n@17.16.1(eslint@9.34.0(jiti@2.4.2))(typescript@5.8.3))(eslint-plugin-svelte@3.9.3(eslint@9.34.0(jiti@2.4.2))(svelte@5.42.2)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.8.3)))(eslint@9.34.0(jiti@2.4.2))(typescript-eslint@8.43.0(eslint@9.34.0(jiti@2.4.2))(typescript@5.8.3))(typescript@5.8.3)': + '@sveltejs/eslint-config@8.2.0(@stylistic/eslint-plugin-js@2.1.0(eslint@9.34.0(jiti@2.4.2)))(eslint-config-prettier@9.1.0(eslint@9.34.0(jiti@2.4.2)))(eslint-plugin-n@17.16.1(eslint@9.34.0(jiti@2.4.2))(typescript@5.8.3))(eslint-plugin-svelte@3.9.3(eslint@9.34.0(jiti@2.4.2))(svelte@5.43.3)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.8.3)))(eslint@9.34.0(jiti@2.4.2))(typescript-eslint@8.43.0(eslint@9.34.0(jiti@2.4.2))(typescript@5.8.3))(typescript@5.8.3)': dependencies: '@stylistic/eslint-plugin-js': 2.1.0(eslint@9.34.0(jiti@2.4.2)) eslint: 9.34.0(jiti@2.4.2) eslint-config-prettier: 9.1.0(eslint@9.34.0(jiti@2.4.2)) eslint-plugin-n: 17.16.1(eslint@9.34.0(jiti@2.4.2))(typescript@5.8.3) - eslint-plugin-svelte: 3.9.3(eslint@9.34.0(jiti@2.4.2))(svelte@5.42.2)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.8.3)) + eslint-plugin-svelte: 3.9.3(eslint@9.34.0(jiti@2.4.2))(svelte@5.43.3)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.8.3)) globals: 15.15.0 typescript: 5.8.3 typescript-eslint: 8.43.0(eslint@9.34.0(jiti@2.4.2))(typescript@5.8.3) - '@sveltejs/vite-plugin-svelte-inspector@5.0.0-next.0(@sveltejs/vite-plugin-svelte@6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)))(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0))': + '@sveltejs/vite-plugin-svelte-inspector@5.0.0-next.0(@sveltejs/vite-plugin-svelte@6.0.0-next.3(svelte@5.43.3)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)))(svelte@5.43.3)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0))': + dependencies: + '@sveltejs/vite-plugin-svelte': 6.0.0-next.3(svelte@5.43.3)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + debug: 4.4.1(supports-color@10.0.0) + svelte: 5.43.3 + vite: 6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0) + transitivePeerDependencies: + - supports-color + + '@sveltejs/vite-plugin-svelte-inspector@5.0.0-next.0(@sveltejs/vite-plugin-svelte@6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)))(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0))': dependencies: - '@sveltejs/vite-plugin-svelte': 6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + '@sveltejs/vite-plugin-svelte': 6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) debug: 4.4.1(supports-color@10.0.0) - svelte: 5.42.2 + svelte: https://pkg.pr.new/svelte@aaf2eb vite: 6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0))': + '@sveltejs/vite-plugin-svelte@6.0.0-next.3(svelte@5.43.3)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 5.0.0-next.0(@sveltejs/vite-plugin-svelte@6.0.0-next.3(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)))(svelte@5.42.2)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + '@sveltejs/vite-plugin-svelte-inspector': 5.0.0-next.0(@sveltejs/vite-plugin-svelte@6.0.0-next.3(svelte@5.43.3)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)))(svelte@5.43.3)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) debug: 4.4.1(supports-color@10.0.0) deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.17 - svelte: 5.42.2 + svelte: 5.43.3 + vite: 6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0) + vitefu: 1.1.1(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + transitivePeerDependencies: + - supports-color + + '@sveltejs/vite-plugin-svelte@6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0))': + dependencies: + '@sveltejs/vite-plugin-svelte-inspector': 5.0.0-next.0(@sveltejs/vite-plugin-svelte@6.0.0-next.3(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)))(svelte@https://pkg.pr.new/svelte@aaf2eb)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) + debug: 4.4.1(supports-color@10.0.0) + deepmerge: 4.3.1 + kleur: 4.1.5 + magic-string: 0.30.17 + svelte: https://pkg.pr.new/svelte@aaf2eb vite: 6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0) vitefu: 1.1.1(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)) transitivePeerDependencies: @@ -10009,6 +10102,8 @@ snapshots: devalue@5.3.2: {} + devalue@5.4.2: {} + diff@4.0.2: {} dir-glob@3.0.1: @@ -10235,7 +10330,7 @@ snapshots: - supports-color - typescript - eslint-plugin-svelte@3.9.3(eslint@9.34.0(jiti@2.4.2))(svelte@5.42.2)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.8.3)): + eslint-plugin-svelte@3.9.3(eslint@9.34.0(jiti@2.4.2))(svelte@5.43.3)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.8.3)): dependencies: '@eslint-community/eslint-utils': 4.9.0(eslint@9.34.0(jiti@2.4.2)) '@jridgewell/sourcemap-codec': 1.5.5 @@ -10247,9 +10342,9 @@ snapshots: postcss-load-config: 3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.8.3)) postcss-safe-parser: 7.0.1(postcss@8.5.6) semver: 7.7.2 - svelte-eslint-parser: 1.3.1(svelte@5.42.2) + svelte-eslint-parser: 1.3.1(svelte@5.43.3) optionalDependencies: - svelte: 5.42.2 + svelte: 5.43.3 transitivePeerDependencies: - ts-node @@ -12073,10 +12168,15 @@ snapshots: prelude-ls@1.2.1: {} - prettier-plugin-svelte@3.4.0(prettier@3.6.0)(svelte@5.42.2): + prettier-plugin-svelte@3.4.0(prettier@3.6.0)(svelte@5.43.3): dependencies: prettier: 3.6.0 - svelte: 5.42.2 + svelte: 5.43.3 + + prettier-plugin-svelte@3.4.0(prettier@3.6.0)(svelte@https://pkg.pr.new/svelte@aaf2eb): + dependencies: + prettier: 3.6.0 + svelte: https://pkg.pr.new/svelte@aaf2eb prettier@2.8.8: {} @@ -12722,19 +12822,19 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@4.1.1(picomatch@4.0.3)(svelte@5.42.2)(typescript@5.8.3): + svelte-check@4.1.1(picomatch@4.0.3)(svelte@https://pkg.pr.new/svelte@aaf2eb)(typescript@5.8.3): dependencies: '@jridgewell/trace-mapping': 0.3.25 chokidar: 4.0.3 fdir: 6.5.0(picomatch@4.0.3) picocolors: 1.1.1 sade: 1.8.1 - svelte: 5.42.2 + svelte: https://pkg.pr.new/svelte@aaf2eb typescript: 5.8.3 transitivePeerDependencies: - picomatch - svelte-eslint-parser@1.3.1(svelte@5.42.2): + svelte-eslint-parser@1.3.1(svelte@5.43.3): dependencies: eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 @@ -12743,30 +12843,47 @@ snapshots: postcss-scss: 4.0.9(postcss@8.5.6) postcss-selector-parser: 7.1.0 optionalDependencies: - svelte: 5.42.2 + svelte: 5.43.3 - svelte-parse-markup@0.1.5(svelte@5.42.2): + svelte-parse-markup@0.1.5(svelte@https://pkg.pr.new/svelte@aaf2eb): dependencies: - svelte: 5.42.2 + svelte: https://pkg.pr.new/svelte@aaf2eb - svelte-preprocess@6.0.0(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.8.3)))(postcss@8.5.6)(svelte@5.42.2)(typescript@5.8.3): + svelte-preprocess@6.0.0(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.8.3)))(postcss@8.5.6)(svelte@https://pkg.pr.new/svelte@aaf2eb)(typescript@5.8.3): dependencies: detect-indent: 6.1.0 strip-indent: 3.0.0 - svelte: 5.42.2 + svelte: https://pkg.pr.new/svelte@aaf2eb optionalDependencies: postcss: 8.5.6 postcss-load-config: 3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.8.3)) typescript: 5.8.3 - svelte2tsx@0.7.33(svelte@5.42.2)(typescript@5.8.3): + svelte2tsx@0.7.33(svelte@https://pkg.pr.new/svelte@aaf2eb)(typescript@5.8.3): dependencies: dedent-js: 1.0.1 pascal-case: 3.1.2 - svelte: 5.42.2 + svelte: https://pkg.pr.new/svelte@aaf2eb typescript: 5.8.3 - svelte@5.42.2: + svelte@5.43.3: + dependencies: + '@jridgewell/remapping': 2.3.5 + '@jridgewell/sourcemap-codec': 1.5.5 + '@sveltejs/acorn-typescript': 1.0.5(acorn@8.15.0) + '@types/estree': 1.0.8 + acorn: 8.15.0 + aria-query: 5.3.2 + axobject-query: 4.1.0 + clsx: 2.1.1 + esm-env: 1.2.2 + esrap: 2.1.0 + is-reference: 3.0.3 + locate-character: 3.0.0 + magic-string: 0.30.17 + zimmerframe: 1.1.2 + + svelte@https://pkg.pr.new/svelte@aaf2eb: dependencies: '@jridgewell/remapping': 2.3.5 '@jridgewell/sourcemap-codec': 1.5.5 @@ -12776,6 +12893,7 @@ snapshots: aria-query: 5.3.2 axobject-query: 4.1.0 clsx: 2.1.1 + devalue: 5.4.2 esm-env: 1.2.2 esrap: 2.1.0 is-reference: 3.0.3 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 8890bccf7d43..41dae7b92495 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -41,7 +41,7 @@ catalog: publint: ^0.3.0 semver: ^7.5.4 sirv-cli: ^3.0.0 - svelte: ^5.42.1 + svelte: https://pkg.pr.new/svelte@aaf2eb svelte-check: ^4.1.1 svelte-preprocess: ^6.0.0 typescript-eslint: ^8.43.0