async getReferrersHistoryWithRange(startDate, endDate) {
        const paidConversionEntries = await this.fetchPaidConversionSourcesWithRange(startDate, endDate);
        const signupEntries = await this.fetchSignupSourcesWithRange(startDate, endDate);
        const mrrEntries = await this.fetchMrrSourcesWithRange(startDate, endDate);

        const allEntries = signupEntries.map((entry) => {
            return {
                ...entry,
                paid_conversions: 0,
                mrr: 0,
                date: moment(entry.date).format('YYYY-MM-DD')
            };
        });

        paidConversionEntries.forEach((entry) => {
            const entryDate = moment(entry.date).format('YYYY-MM-DD');
            const existingEntry = allEntries.find(e => e.source === entry.source && e.date === entryDate);

            if (existingEntry) {
                existingEntry.paid_conversions = entry.paid_conversions;
            } else {
                allEntries.push({
                    ...entry,
                    signups: 0,
                    mrr: 0,
                    date: entryDate
                });
            }
        });

        mrrEntries.forEach((entry) => {
            const entryDate = moment(entry.date).format('YYYY-MM-DD');
            const existingEntry = allEntries.find(e => e.source === entry.source && e.date === entryDate);

            if (existingEntry) {
                existingEntry.mrr = entry.mrr;
            } else {
                allEntries.push({
                    ...entry,
                    signups: 0,
                    paid_conversions: 0,
                    date: entryDate
                });
            }
        });

        // sort allEntries in date ascending format
        allEntries.sort((a, b) => {
            return moment(a.date).diff(moment(b.date));
        });

        return {
            data: allEntries,
            meta: {}
        };
    }
Return a list of all the attribution sources with date range filtering, including MRR data
@param {string} startDate - Start date in YYYY-MM-DD format
@param {string} endDate - End date in YYYY-MM-DD format
@returns {Promise<{data: AttributionCountStatWithMrr[], meta: {}}>}