function create_manifest_data({
	config,
	fallback = `${runtime_directory}/components/${isSvelte5Plus() ? 'svelte-5' : 'svelte-4'}`,
	cwd = process.cwd()
}) {
	const assets = create_assets(config);
	const hooks = create_hooks(config, cwd);
	const matchers = create_matchers(config, cwd);
	const { nodes, routes } = create_routes_and_nodes(cwd, config, fallback);

	for (const route of routes) {
		for (const param of route.params) {
			if (param.matcher && !matchers[param.matcher]) {
				throw new Error(`No matcher found for parameter '${param.matcher}' in route ${route.id}`);
			}
		}
	}

	return {
		assets,
		hooks,
		matchers,
		nodes,
		routes
	};
}
Generates the manifest data used for the client-side manifest and types generation.
@param {{
  config: import('types').ValidatedConfig;
  fallback?: string;
  cwd?: string;
}} opts
@returns {import('types').ManifestData}