Future<T> firstWithTimeout(Duration duration) => first.timeout( duration, onTimeout: () => throw TimeoutException( 'Stream did not emit within ${duration.inSeconds}s', ), );