refactor: Change default exports to named exports for consistency

This commit is contained in:
2026-01-02 17:05:06 +01:00
parent fe41b5c0c5
commit 4ee648e5cb
11 changed files with 16 additions and 35 deletions

View File

@@ -1,10 +0,0 @@
// Health check endpoint for Vercel
module.exports = function handler(req, res) {
res.json({
status: 'ok',
timestamp: new Date().toISOString(),
endpoints: {
reportError: '/api/report-error'
}
})
}

View File

@@ -1,4 +1,4 @@
import Browser from '../browser/Browser'
import { Browser } from '../browser/Browser'
import { MicrosoftRewardsBot } from '../index'
import type { AccountProxy } from '../interface/Account'
import { log } from '../util/notifications/Logger'

View File

@@ -9,7 +9,7 @@ import { getAntiDetectionScript, getTimezoneScript } from '../util/security/Anti
import { loadSessionData, saveFingerprintData } from '../util/state/Load'
import { logFingerprintValidation, validateFingerprintConsistency } from '../util/validation/FingerprintValidator'
class Browser {
export class Browser {
private bot: MicrosoftRewardsBot
constructor(bot: MicrosoftRewardsBot) {
@@ -281,6 +281,4 @@ class Browser {
return updatedFingerPrintData
}
}
export default Browser
}

View File

@@ -13,7 +13,7 @@ import { extractBalancedObject } from '../util/core/Utils'
import { saveSessionData } from '../util/state/Load'
export default class BrowserFunc {
export class BrowserFunc {
private bot: MicrosoftRewardsBot
constructor(bot: MicrosoftRewardsBot) {

View File

@@ -7,7 +7,7 @@ import { logError } from '../util/notifications/Logger'
type DismissButton = { selector: string; label: string; isXPath?: boolean }
export default class BrowserUtil {
export class BrowserUtil {
private bot: MicrosoftRewardsBot
private static readonly DISMISS_BUTTONS: readonly DismissButton[] = [

View File

@@ -9,7 +9,7 @@ import { Retry } from '../util/core/Retry'
import { AdaptiveThrottler } from '../util/notifications/AdaptiveThrottler'
import { logError } from '../util/notifications/Logger'
import { getActivityStatsTracker } from '../util/state/ActivityStatsTracker'
import JobState from '../util/state/JobState'
import { JobState } from '../util/state/JobState'
// Selector patterns (extracted to avoid magic strings)
const ACTIVITY_SELECTORS = {

View File

@@ -7,15 +7,15 @@ import fs from 'fs'
import path from 'path'
import type { Page } from 'playwright'
import { createInterface } from 'readline'
import BrowserFunc from './browser/BrowserFunc'
import BrowserUtil from './browser/BrowserUtil'
import Humanizer from './util/browser/Humanizer'
import { BrowserFunc } from './browser/BrowserFunc'
import { BrowserUtil } from './browser/BrowserUtil'
import { Humanizer } from './util/browser/Humanizer'
import { getMemoryMonitor, stopMemoryMonitor } from './util/core/MemoryMonitor'
import { formatDetailedError, normalizeRecoveryEmail, shortErrorMessage, Util } from './util/core/Utils'
import Axios from './util/network/Axios'
import { AxiosClient } from './util/network/Axios'
import { QueryDiversityEngine } from './util/network/QueryDiversityEngine'
import { log, stopWebhookCleanup } from './util/notifications/Logger'
import JobState from './util/state/JobState'
import { JobState } from './util/state/JobState'
import { loadAccounts, loadConfig } from './util/state/Load'
import { MobileRetryTracker } from './util/state/MobileRetryTracker'
import { detectBanReason } from './util/validation/BanDetector'
@@ -68,7 +68,7 @@ export class MicrosoftRewardsBot {
private accountJobState?: JobState
private accountRunCounts: Map<string, number> = new Map()
public axios!: Axios
public axios!: AxiosClient
constructor(isMobile: boolean) {
this.isMobile = isMobile
@@ -525,7 +525,7 @@ export class MicrosoftRewardsBot {
const errors: string[] = []
const banned = { status: false, reason: '' }
this.axios = new Axios(account.proxy)
this.axios = new AxiosClient(account.proxy)
this.queryEngine = this.buildQueryEngine()
const verbose = process.env.DEBUG_REWARDS_VERBOSE === '1'

View File

@@ -27,8 +27,7 @@ export async function createBrowserInstance(
email: string
): Promise<BrowserContext> {
const browserModule = await import('../../browser/Browser')
const Browser = browserModule.default
const browserInstance = new Browser(bot)
const browserInstance = new browserModule.Browser(bot)
return await browserInstance.createBrowser(proxy, email)
}

View File

@@ -363,5 +363,3 @@ export class Humanizer {
this.actionCount = 0
}
}
export default Humanizer

View File

@@ -4,7 +4,7 @@ import { HttpsProxyAgent } from 'https-proxy-agent'
import { SocksProxyAgent } from 'socks-proxy-agent'
import { AccountProxy } from '../../interface/Account'
class AxiosClient {
export class AxiosClient {
private instance: AxiosInstance
private account: AccountProxy
@@ -152,6 +152,4 @@ class AxiosClient {
private sleep(ms: number): Promise<void> {
return new Promise(resolve => setTimeout(resolve, ms))
}
}
export default AxiosClient
}

View File

@@ -108,5 +108,3 @@ export class JobState {
return this.baseDir
}
}
export default JobState