async function setParquetURLs(urls, { append, addBasePath = (x) => x } = {}) {
	if (!db) await initDB();
	if (!append) await emptyDbFs('*');
	if (import.meta.env.VITE_EVIDENCE_DEBUG) console.debug('Updating Parquet URLs');

	try {
		for (const source in urls) {
			await connection.query(`CREATE SCHEMA IF NOT EXISTS "${source}";`);
			for (const url of urls[source]) {
				const table = url.split(/[\\/]/).at(-1).slice(0, -'.parquet'.length);
				const file_name = `${source}_${table}.parquet`;
				let path = url;

				if (!url.startsWith('http') && !url.startsWith('/')) {
					// URL Needs to be absolute
					path = `/${url}`;
				}
				// Sveltekit doesn't like referencing the static dir expilcitly
				if (path.startsWith('/static')) path = path.substring(7);

				if (append) {
					await emptyDbFs(file_name);
					await emptyDbFs(url);
				}
				await db.registerFileURL(file_name, addBasePath(path), DuckDBDataProtocol.HTTP, false);
				await connection.query(
					`CREATE OR REPLACE VIEW "${source}"."${table}" AS (SELECT * FROM read_parquet('${file_name}'));`
				);
			}
		}
		resolveTables();
	} catch (e) {
		rejectTables(e);
		console.error(`Error encountered while updating Parquet URLs`, e);
		throw e;
	}
}
Adds a new view to the database, pointing to the provided parquet URL.
@param {Record<string, string[]>} urls
@param {{ append?: boolean, addBasePath?: (path: string) => string }} [opts]
@returns {Promise<void>}