export function allSettled(promises: Promise[]): Promise[]> { const mapped = promises.map(p => p instanceof Promise ? p .then( value => ({ status: 'fulfilled', value, }) as const, ) .catch( reason => ({ status: 'rejected', reason, }) as const, ) : ({ status: 'fulfilled', value: p, } as const), ) return Promise.all(mapped) } export function sleep(ms: number): Promise { return new Promise(resolve => setTimeout(resolve, ms)) }