Based of v3.0.0b10.
This commit is contained in:
TheNetsky
2025-12-11 16:16:32 +01:00
parent 7b4b20ab4e
commit 2c4d85f732
58 changed files with 11062 additions and 0 deletions

15
src/interface/Account.ts Normal file
View File

@@ -0,0 +1,15 @@
export interface Account {
email: string
password: string
totp?: string
geoLocale: 'auto' | string
proxy: AccountProxy
}
export interface AccountProxy {
proxyAxios: boolean
url: string
port: number
password: string
username: string
}

View File

@@ -0,0 +1,105 @@
export interface AppDashboardData {
response: Response
correlationId: string
code: number
}
export interface Response {
profile: Profile
balance: number
counters: null
promotions: Promotion[]
catalog: null
goal_item: GoalItem
activities: null
cashback: null
orders: unknown[]
rebateProfile: null
rebatePayouts: null
giveProfile: null
autoRedeemProfile: null
autoRedeemItem: null
thirdPartyProfile: null
notifications: null
waitlist: null
autoOpenFlyout: null
coupons: null
recommendedAffordableCatalog: null
generativeAICreditsBalance: null
requestCountryCatalog: null
donationCatalog: null
}
export interface GoalItem {
name: string
provider: string
price: number
attributes: GoalItemAttributes
config: Config
}
export interface GoalItemAttributes {
category: string
CategoryDescription: string
'desc.group_text': string
'desc.legal_text': string
'desc.sc_description': string
'desc.sc_title': string
display_order: string
ExtraLargeImage: string
group: string
group_image: string
group_sc_image: string
group_title: string
hidden: string
large_image: string
large_sc_image: string
medium_image: string
MobileImage: string
original_price: string
points_destination: string
points_source: string
Remarks: string
ShortText: string
showcase: string
small_image: string
title: string
cimsid: string
user_defined_goal: string
}
export interface Config {
isHidden: string
}
export interface Profile {
ruid: string
attributes: ProfileAttributes
offline_attributes: OfflineAttributes
}
export interface ProfileAttributes {
ismsaautojoined: string
created: Date
creative: string
publisher: string
program: string
country: string
target: string
epuid: string
level: string
level_upd: Date
iris_segmentation: string
iris_segmentation_upd: Date
waitlistattributes: string
waitlistattributes_upd: Date
}
export interface OfflineAttributes {}
export interface Promotion {
name: string
priority: number
attributes: { [key: string]: string }
tags: string[]
}

View File

@@ -0,0 +1,225 @@
export interface AppUserData {
response: Response
correlationId: string
code: number
}
export interface Response {
profile: Profile
balance: number
counters: null
promotions: Promotion[]
catalog: null
goal_item: GoalItem
activities: null
cashback: null
orders: Order[]
rebateProfile: null
rebatePayouts: null
giveProfile: GiveProfile
autoRedeemProfile: null
autoRedeemItem: null
thirdPartyProfile: null
notifications: null
waitlist: null
autoOpenFlyout: null
coupons: null
recommendedAffordableCatalog: null
}
export interface GiveProfile {
give_user: string
give_organization: { [key: string]: GiveOrganization | null }
first_give_optin: string
last_give_optout: string
give_lifetime_balance: string
give_lifetime_donation_balance: string
give_balance: string
form: null
}
export interface GiveOrganization {
give_organization_donation_points: number
give_organization_donation_point_to_currency_ratio: number
give_organization_donation_currency: number
}
export interface GoalItem {
name: string
provider: string
price: number
attributes: GoalItemAttributes
config: GoalItemConfig
}
export interface GoalItemAttributes {
category: string
CategoryDescription: string
'desc.group_text': string
'desc.legal_text'?: string
'desc.sc_description': string
'desc.sc_title': string
display_order: string
ExtraLargeImage: string
group: string
group_image: string
group_sc_image: string
group_title: string
hidden?: string
large_image: string
large_sc_image: string
medium_image: string
MobileImage: string
original_price: string
Remarks?: string
ShortText?: string
showcase?: string
small_image: string
title: string
cimsid: string
user_defined_goal?: string
disable_bot_redemptions?: string
'desc.large_text'?: string
english_title?: string
etid?: string
sku?: string
coupon_discount?: string
}
export interface GoalItemConfig {
amount: string
currencyCode: string
isHidden: string
PointToCurrencyConversionRatio: string
}
export interface Order {
id: string
t: Date
sku: string
item_snapshot: ItemSnapshot
p: number
s: S
a: A
child_redemption: null
third_party_partner: null
log: Log[]
}
export interface A {
form?: string
OrderId: string
CorrelationId: string
Channel: string
Language: string
Country: string
EvaluationId: string
provider?: string
referenceOrderID?: string
externalRefID?: string
denomination?: string
rewardName?: string
sendEmail?: string
status?: string
createdAt?: Date
bal_before_deduct?: string
bal_after_deduct?: string
}
export interface ItemSnapshot {
name: string
provider: string
price: number
attributes: GoalItemAttributes
config: ItemSnapshotConfig
}
export interface ItemSnapshotConfig {
amount: string
countryCode: string
currencyCode: string
sku: string
}
export interface Log {
time: Date
from: From
to: S
reason: string
}
export enum From {
Created = 'Created',
RiskApproved = 'RiskApproved',
RiskReview = 'RiskReview'
}
export enum S {
Cancelled = 'Cancelled',
RiskApproved = 'RiskApproved',
RiskReview = 'RiskReview',
Shipped = 'Shipped'
}
export interface Profile {
ruid: string
attributes: ProfileAttributes
offline_attributes: OfflineAttributes
}
export interface ProfileAttributes {
publisher: string
publisher_upd: Date
creative: string
creative_upd: Date
program: string
program_upd: Date
country: string
country_upd: Date
referrerhash: string
referrerhash_upd: Date
optout_upd: Date
language: string
language_upd: Date
target: string
target_upd: Date
created: Date
created_upd: Date
epuid: string
epuid_upd: Date
goal: string
goal_upd: Date
waitlistattributes: string
waitlistattributes_upd: Date
serpbotscore_upd: Date
iscashbackeligible: string
cbedc: string
rlscpct_upd: Date
give_user: string
rebcpc_upd: Date
SerpBotScore_upd: Date
AdsBotScore_upd: Date
dbs_upd: Date
rbs: string
rbs_upd: Date
iris_segmentation: string
iris_segmentation_upd: Date
}
export interface OfflineAttributes {}
export interface Promotion {
name: string
priority: number
attributes: { [key: string]: string }
tags: Tag[]
}
export enum Tag {
AllowTrialUser = 'allow_trial_user',
ExcludeGivePcparent = 'exclude_give_pcparent',
ExcludeGlobalConfig = 'exclude_global_config',
ExcludeHidden = 'exclude_hidden',
LOCString = 'locString',
NonGlobalConfig = 'non_global_config'
}

81
src/interface/Config.ts Normal file
View File

@@ -0,0 +1,81 @@
export interface Config {
baseURL: string
sessionPath: string
headless: boolean
runOnZeroPoints: boolean
clusters: number
errorDiagnostics: boolean
saveFingerprint: ConfigSaveFingerprint
workers: ConfigWorkers
searchOnBingLocalQueries: boolean
globalTimeout: number | string
searchSettings: ConfigSearchSettings
debugLogs: boolean
proxy: ConfigProxy
consoleLogFilter: LogFilter
webhook: ConfigWebhook
}
export interface ConfigSaveFingerprint {
mobile: boolean
desktop: boolean
}
export interface ConfigSearchSettings {
scrollRandomResults: boolean
clickRandomResults: boolean
parallelSearching: boolean
searchResultVisitTime: number | string
searchDelay: ConfigDelay
readDelay: ConfigDelay
}
export interface ConfigDelay {
min: number | string
max: number | string
}
export interface ConfigProxy {
queryEngine: boolean
}
export interface ConfigWorkers {
doDailySet: boolean
doMorePromotions: boolean
doPunchCards: boolean
doAppPromotions: boolean
doDesktopSearch: boolean
doMobileSearch: boolean
doDailyCheckIn: boolean
doReadToEarn: boolean
}
// Webhooks
export interface ConfigWebhook {
discord?: WebhookDiscordConfig
ntfy?: WebhookNtfyConfig
webhookLogFilter: LogFilter
}
export interface LogFilter {
enabled: boolean
mode: 'whitelist' | 'blacklist'
levels?: Array<'debug' | 'info' | 'warn' | 'error'>
keywords?: string[]
regexPatterns?: string[]
}
export interface WebhookDiscordConfig {
enabled: boolean
url: string
}
export interface WebhookNtfyConfig {
enabled?: boolean
url: string
topic?: string
token?: string
title?: string
tags?: string[]
priority?: 1 | 2 | 3 | 4 | 5 // 5 highest (important)
}

View File

@@ -0,0 +1,803 @@
export interface DashboardData {
userStatus: UserStatus
userWarnings: unknown[]
promotionalItem: PromotionalItem
promotionalItems: PurplePromotionalItem[]
dailySetPromotions: { [key: string]: PromotionalItem[] }
streakPromotion: StreakPromotion
streakBonusPromotions: StreakBonusPromotion[]
punchCards: PunchCard[]
dashboardFlights: DashboardFlights
morePromotions: MorePromotion[]
morePromotionsWithoutPromotionalItems: MorePromotion[]
suggestedRewards: AutoRedeemItem[]
coachMarks: CoachMarks
welcomeTour: WelcomeTour
userInterests: UserInterests
isVisualParityTest: boolean
mbingFlight: null
componentImpressionPromotions: ComponentImpressionPromotion[]
machineTranslationPromo: BingUfMachineTranslationPromo
bingUfMachineTranslationPromo: BingUfMachineTranslationPromo
streakProtectionPromo: StreakProtectionPromo
autoRedeemItem: AutoRedeemItem
isAutoRedeemEligible: boolean
autoRedeemSubscriptions: unknown[]
userProfile: UserProfile
coupons: unknown[]
couponBannerPromotion: null
popUpPromotions: BingUfMachineTranslationPromo
pointClaimBannerPromotion: null
highValueSweepstakesPromotions: HighValueSweepstakesPromotion[]
revIpCountryName: null
shareAndWinPromotion: null
referAndEarnPromotion: ReferAndEarnPromotion
giveWithBingNoticePromotion: null
levelUpHeroBannerPromotion: null
monthlyBonusHeroBannerPromotion: null
starBonusWeeklyBannerPromotion: null
userGeneratedContentPromotion: null
created: Date
findClippyPromotion: FindClippyPromotion
}
export enum ExclusiveLockedFeature {
Locked = 'locked',
Notsupported = 'notsupported',
Unlocked = 'unlocked'
}
export enum GiveEligible {
False = 'False',
True = 'True'
}
export enum State {
Complete = 'Complete',
Default = 'Default'
}
export enum Type {
Empty = '',
Quiz = 'quiz',
Urlreward = 'urlreward'
}
export enum Style {
ColorBlack = 'color:black',
Empty = ''
}
export enum LegalLinkText {
ContinueToMicrosoftEdge = 'Continue to Microsoft Edge',
Empty = ''
}
export enum Title {
Empty = '',
SetAGoal = 'Set a goal'
}
export interface CloseLink {
text: null | string
url: null | string
}
export interface SupportedLevels {
level1?: string
level2: string
level2XBoxGold: string
}
export interface Benefit {
key: string
text: string
url: null | string
helpText: null | string
supportedLevels: SupportedLevels
}
export interface BasePromotion<
TAttributes = Record<string, any>,
TTitleStyle = string,
TDescriptionStyle = string,
TLegalLinkText = string,
TExclusiveLockedFeatureCategory = ExclusiveLockedFeature,
TPromotionType = string
> {
name: string
priority: number
attributes: TAttributes
offerId: string
complete: boolean
counter: number
activityProgress: number
activityProgressMax: number
pointProgressMax: number
pointProgress: number
promotionType: TPromotionType
promotionSubtype: string
title: string
extBannerTitle: string
titleStyle: TTitleStyle
theme: string
description: string
extBannerDescription: string
descriptionStyle: TDescriptionStyle
showcaseTitle: string
showcaseDescription: string
imageUrl: string
dynamicImage: string
smallImageUrl: string
backgroundImageUrl: string
showcaseBackgroundImageUrl: string
showcaseBackgroundLargeImageUrl: string
promotionBackgroundLeft: string
promotionBackgroundRight: string
iconUrl: string
animatedIconUrl: string
animatedLargeBackgroundImageUrl: string
destinationUrl: string
linkText: string
hash: string
activityType: string
isRecurring: boolean
isHidden: boolean
isTestOnly: boolean
isGiveEligible: boolean
level: string
levelUpActionsProgress: number
levelUpActivityDefaultSearchEngineDays: number
levelUpActivityDefaultSearchEngineCompletedAmount: number
levelUpActivityDailySetStreakDays: number
levelUpActivityDailySetCompletedAmount: number
levelUpActivityDailyStreaksCompletedAmount: number
levelUpActivityXboxGamePassCompleted: boolean
bingSearchDailyPoints: number
bingStarMonthlyBonusProgress: number
bingStarMonthlyBonusMaximum: number
bingStarBonusWeeklyProgress: number
bingStarBonusWeeklyState: string
defaultSearchEngineMonthlyBonusProgress: number
defaultSearchEngineMonthlyBonusMaximum: number
defaultSearchEngineMonthlyBonusState: string
monthlyLevelBonusMaximum: number
monthlyDistributionChartSrc: string
monthlyLevelBonusProgress: number
monthlyLevelBonusState: string
slidesCount: number
legalText: string
legalLinkText: TLegalLinkText
deviceType: string
exclusiveLockedFeatureCategory: TExclusiveLockedFeatureCategory
exclusiveLockedFeatureStatus: ExclusiveLockedFeature
exclusiveLockedFeatureDestinationUrl: string
lockedImage: string
pointsPerSearch: number
pointsPerSearchNewLevels: number
lastMonthLevel: string
sectionalOrdering: number
isAnimatedRewardEnabled: boolean
hvaLevelUpActivityDailySetCompletedAmount_V2: string
hvaLevelUpActivityDailySetCompletedMax_V2: string
hvaLevelUpActivityDailySetDays_V2: string
hvaLevelUpActivityDailySetDaysMax_V2: string
hvaLevelUpActivityDailySetProgress_V2: boolean
hvaLevelUpActivityDailySetDisplay_V2: boolean
hvaLevelUpActivityDailyStreaksBingCompletedAmount_V2: string
hvaLevelUpActivityDailyStreaksBingCompletedMax_V2: string
hvaLevelUpActivityDailyStreaksBingProgress_V2: boolean
hvaLevelUpActivityDailyStreaksBingDisplay_V2: boolean
hvaLevelUpActivityDailyStreaksMobileCompletedAmount_V2: string
hvaLevelUpActivityDailyStreaksMobileCompletedMax_V2: string
hvaLevelUpActivityDailyStreaksMobileProgress_V2: boolean
hvaLevelUpActivityDailyStreaksMobileDisplay_V2: boolean
hvaLevelUpDefaultSearchEngineCompletedAmount_V2: string
hvaLevelUpActivityDefaultSearchEngineCompletedMax_V2: string
hvaLevelUpActivityDefaultSearchEngineDays_V2: string
hvaLevelUpActivityDefaultSearchEngineDaysMax_V2: string
hvaLevelUpActivityDefaultSearchEngineProgress_V2: boolean
hvaLevelUpActivityDefaultSearchEngineDisplay_V2: boolean
hvaLevelUpActivityXboxGamePassCompletedAmount_V2: string
hvaLevelUpActivityXboxGamePassCompletedMax_V2: string
hvaLevelUpActivityXboxGamePassProgress_V2: boolean
hvaLevelUpActivityXboxGamePassDisplay_V2: boolean
programRestructureWave2HvaFlight: string
programRestructureHvaSevenDayLink: string
}
export type AnyPromotion = BasePromotion
export interface AutoRedeemItem {
name: null | string
price: number
provider: null | string
disabled: boolean
category: string
title: string
variableGoalSpecificTitle: string
smallImageUrl: string
mediumImageUrl: string
largeImageUrl: string
largeShowcaseImageUrl: string
description: Description
showcase: boolean
showcaseInAllCategory: boolean
originalPrice: number
discountedPrice: number
couponDiscount: number
popular: boolean
isTestOnly: boolean
groupId: string
inGroup: boolean
isDefaultItemInGroup: boolean
groupTitle: string
groupImageUrl: string
groupShowcaseImageUrl: string
isEligibleForOneClickRedemption: boolean
instantWinGameId: string
instantWinPlayAgainSku: string
isLowInStock: boolean
isOutOfStock: boolean
getCodeMessage: string
disableEmail: boolean
stockMessage: string
comingSoonFlag: boolean
onSaleFlag: boolean
onSaleText: string
isGenericDonation: boolean
shouldDisableButton: boolean
highValueSweepstakesCatalogItemId: string
isHighValueSweepstakesRedeemCatalogSKU: boolean
isVariableRedemptionItem: boolean
variableRedemptionItemCurrencySymbol: null
variableRedemptionItemMin: number
variableRedemptionItemMax: number
variableItemConfigPointsToCurrencyConversionRatio: number
isRecommendedAffordableItem: boolean
recommendedAffordableOrder: number
isAutoRedeem: boolean
isAutoDonate: boolean
isAutoDonateAllPointsItem: boolean
isOneTimeDonateAllPointsItem: boolean
isAutoDonateAllGivePointsItem: boolean
isAutoDonateSetPointsItem: boolean
products: null
isDiscontinuedAutoRedeem: boolean
discontinuedAutoRedeemDate: null
isSubscriptionToggleDisabled: boolean
}
export interface Description {
itemGroupText: string
smallText: string
largeText: string
legalText: string
showcaseTitle: string
showcaseDescription: string
pageTitleTag: string
metaDescription: string
}
export interface BingUfMachineTranslationPromo {}
export interface CoachMarks {
streaks: WelcomeTour
}
export interface WelcomeTour {
promotion: DashboardImpression | null
slides: Slide[]
}
export type DashboardImpression = BasePromotion<{ [key: string]: string } | null> & {
benefits?: Benefit[]
levelRequirements?: null
supportedLevelKeys?: string[]
supportedLevelTitles?: string[]
supportedLevelTitlesMobile?: string[]
activeLevel?: string
showShopAndEarnBenefits?: boolean
showXboxBenefits?: boolean
isLevelRedesignEnabled?: boolean
hvaDailySetDays?: string
hvaDseDays?: string
hvaGamepassCompleted?: string
hvaPuzzlePiecesCompletedAmount?: string
}
export interface Slide {
slideType: null
slideShowTourId: string
id: number
title: string
subtitle: null
subtitle1: null
description: string
description1: null
imageTitle: null
image2Title: null
image3Title: null
image4Title: null
imageDescription: null
image2Description: null
image3Description: null
image4Description: null
imageUrl: null
darkImageUrl: null
image2Url: null
image3Url: null
image4Url: null
layout: null
actionButtonText: null
actionButtonUrl: null
foregroundImageUrl: null
backLink: null
nextLink: CloseLink
closeLink: CloseLink
footnote: null
termsText: null
termsUrl: null
privacyText: null
privacyUrl: null
taggedItem: string
slideVisited: boolean
aboutPageLinkText: null
aboutPageLink: null
redeemLink: null
rewardsLink: null
labelText: null
}
export interface ComponentImpressionPromotionAttributes {
red_dot_form_code?: string
hidden: GiveEligible
type: string
offerid: string
give_eligible: GiveEligible
destination: string
progress?: string
max?: string
complete?: GiveEligible
activity_progress?: string
}
export type ComponentImpressionPromotion = BasePromotion<ComponentImpressionPromotionAttributes>
export interface DailySetPromotionAttributes {
animated_icon?: string
bg_image: string
complete: GiveEligible
daily_set_date?: string
description: string
destination: string
icon: string
image: string
link_text: string
max: string
modern_image?: string
offerid: string
progress: string
sc_bg_image: string
sc_bg_large_image: string
small_image: string
state: State
title: string
type: Type
give_eligible: GiveEligible
ariaLabel?: string
promotional?: GiveEligible
parentPunchcards?: string
is_unlocked?: GiveEligible
translation_prompt?: string
}
// Daily set "tile" promotion
export type PromotionalItem = BasePromotion<
DailySetPromotionAttributes,
string,
string,
string,
ExclusiveLockedFeature,
Type
>
export interface DashboardFlights {
dashboardbannernav: string
togglegiveuser: string
spotifyRedirect: string
give_eligible: GiveEligible
destination: string
}
export interface FindClippyPromotionAttributes {
enabled: GiveEligible
points: string
activity_type: string
hidden: GiveEligible
give_eligible: GiveEligible
progress: string
max: string
complete: GiveEligible
offerid: string
destination: string
}
export type FindClippyPromotion = BasePromotion<FindClippyPromotionAttributes>
export type HighValueSweepstakesPromotion = BasePromotion<{ [key: string]: string }>
export interface MorePromotionAttributes {
animated_icon: string
bg_image: string
complete: GiveEligible
description: string
description_style?: Style
destination: string
icon: string
image: string
link_text: string
max: string
offerid: string
progress: string
promotional?: GiveEligible
sc_bg_image: string
sc_bg_large_image: string
small_image: string
state: State
title: string
title_style?: Style
type?: Type
give_eligible: GiveEligible
cardHeader?: string
enable_hva_card?: string
hvA_BG_static?: string
hvA_BG_type?: string
hvA_primary_asset?: string
hvA_text_color?: string
isHvaV2Compatible?: GiveEligible
link_text_style?: Style
isExploreOnBingTask?: GiveEligible
isInProgress?: GiveEligible
modern_image?: string
is_unlocked?: GiveEligible
locked_category_criteria?: string
translationprompt?: string
legal_link_text?: LegalLinkText
legal_text?: string
description_comment?: string
query_comment?: string
title_comment?: string
layout?: string
sc_description?: string
sc_title?: Title
schemaName?: string
daily_set_date?: string
}
export type MorePromotion = BasePromotion<MorePromotionAttributes, Style, Style, LegalLinkText, string, Type>
export interface PurpleAttributes {
animated_icon: string
ariaLabel?: string
bg_image: string
complete: GiveEligible
description: string
destination: string
icon: string
image: string
link_text: string
max: string
offerid: string
progress: string
promotional: GiveEligible
sc_bg_image: string
sc_bg_large_image: string
small_image: string
state: State
title: string
type: Type
give_eligible: GiveEligible
description_style?: Style
title_style?: Style
cardHeader?: string
enable_hva_card?: string
hvA_BG_static?: string
hvA_BG_type?: string
hvA_primary_asset?: string
hvA_text_color?: string
isHvaV2Compatible?: GiveEligible
link_text_style?: Style
}
export type PurplePromotionalItem = BasePromotion<PurpleAttributes, Style, Style, string, ExclusiveLockedFeature, Type>
export interface ParentPromotionAttributes {
bg_image: string
'classification.DescriptionText': string
'classification.PunchcardChildrenCount': string
'classification.PunchcardEndDate': Date
'classification.Template': string
'classification.TitleText': string
complete: GiveEligible
description: string
destination: string
icon: string
image: string
legal_text?: string
link_text: string
max: string
offerid: string
progress: string
sc_bg_image: string
sc_bg_large_image: string
small_image: string
state: State
title: string
type: string
give_eligible: GiveEligible
modern_image?: string
translation_prompt?: string
}
export type ParentPromotion = BasePromotion<ParentPromotionAttributes>
export interface PunchCard {
name: string
parentPromotion: ParentPromotion
childPromotions: PromotionalItem[]
}
export interface ReferAndEarnPromotionAttributes {
bannerImpressionOffer: string
claimedPointsFrom1stLayer: string
claimedPointsFrom2ndLayer: string
dailyDirectDepositPoints: string
eduBannerEnabled: GiveEligible
eventEndDate: Date
eventStartDate: Date
firstLayerDailySearchCount: string
firstLayerDailySearchUser: string
firstLayerRefereeCount: string
hidden: GiveEligible
isBigBlueBtn: GiveEligible
isNewString: GiveEligible
isOneLayer: GiveEligible
isRafStatusBanner: GiveEligible
isTwoLayer: GiveEligible
offerid: string
pendingPointsFrom1stLayer: string
pendingPointsFrom2ndLayer: string
rafBannerTreatment: string
secondLayerDailySearchCount: string
secondLayerDailySearchUser: string
secondLayerRefereeCount: string
showRedDot: GiveEligible
showTopBanner: GiveEligible
showUnusualActivityBanner: GiveEligible
totalClaimedPoints: string
totalDeclinedPoints: string
totalPendingPoints: string
type: string
give_eligible: GiveEligible
destination: string
}
export type ReferAndEarnPromotion = BasePromotion<ReferAndEarnPromotionAttributes>
export interface StreakBonusPromotionAttributes {
activity_max: string
activity_progress: string
animated_icon: string
bonus_earned?: string
break_description?: string
description: string
description_localizedkey: string
hidden: GiveEligible
image: string
title: string
type: string
give_eligible: GiveEligible
destination: string
}
export type StreakBonusPromotion = BasePromotion<StreakBonusPromotionAttributes>
export interface StreakPromotionAttributes {
hidden: GiveEligible
type: string
title: string
image: string
activity_progress: string
last_updated: Date
break_image: string
lifetime_max: string
bonus_points: string
give_eligible: GiveEligible
destination: string
}
export type StreakPromotion = BasePromotion<StreakPromotionAttributes> & {
lastUpdatedDate: Date
breakImageUrl: string
lifetimeMaxValue: number
bonusPointsEarned: number
}
export interface StreakProtectionPromo {
type: string
offerid: string
isStreakProtectionOnEligible: GiveEligible
streakProtectionStatus: GiveEligible
remainingDays: string
isFirstTime: GiveEligible
streakCount: string
isTodayStreakComplete: GiveEligible
autoTurnOn: GiveEligible
give_eligible: GiveEligible
destination: string
}
export interface UserInterestsAttributes {
hidden: GiveEligible
give_eligible: GiveEligible
destination: string
}
export type UserInterests = BasePromotion<UserInterestsAttributes>
export interface UserProfile {
ruid: string
attributes: UserProfileAttributes
}
export interface UserProfileAttributes {
ismsaautojoined: GiveEligible
created: Date
creative: string
publisher: string
program: string
country: string
target: string
epuid: string
level: string
level_upd: Date
iris_segmentation: string
iris_segmentation_upd: Date
waitlistattributes: string
waitlistattributes_upd: Date
iscashbackeligible: GiveEligible
serpbotscore: string
serpbotscore_upd: Date
}
export interface UserStatus {
levelInfo: LevelInfo
availablePoints: number
lifetimePoints: number
lifetimePointsRedeemed: number
migratedGiveBalance: number
ePuid: string
redeemGoal: AutoRedeemItem
counters: Counters
lastOrder: LastOrder
dashboardImpression: DashboardImpression
highvalueSweepstakesHVAImpression: DashboardImpression
highvalueSweepstakesWinnerImpression: DashboardImpression
referrerProgressInfo: ReferrerProgressInfo
isAutoDonateFlightEnabled: boolean
isGiveModeOn: boolean
giveBalance: number
firstTimeGiveModeOptIn: null
giveOrganizationName: null
lifetimeGivingPoints: number
isRewardsUser: boolean
isMuidTrialUser: boolean
isUserEligibleForOneClickRedemption: boolean
primaryEarningCountryName: null
}
export interface Counters {
pcSearch: DashboardImpression[]
mobileSearch: DashboardImpression[]
activityAndQuiz: ActivityAndQuiz[]
dailyPoint: DashboardImpression[]
}
export interface ActivityAndQuizAttributes {
type: string
title: string
link_text: string
description: string
foreground_color: string
image: string
recurring: string
destination: string
'classification.ShowProgress': GiveEligible
hidden: GiveEligible
give_eligible: GiveEligible
}
export type ActivityAndQuiz = BasePromotion<ActivityAndQuizAttributes>
export interface LastOrder {
id: null
price: number
status: null
sku: null
timestamp: Date
catalogItem: null
}
export interface LevelInfo {
isNewLevelsFeatureAvailable: boolean
lastMonthLevel: string
activeLevel: string
activeLevelName: string
progress: number
progressMax: number
levels: Level[]
benefitsPromotion: DashboardImpression
levelUpActivitiesProgress: number
levelUpActivitiesMax: number
levelUpActivityDefaultSearchEngineDays: number
levelUpActivityDefaultSearchEngineCompletedAmount: number
levelUpActivityDailySetStreakDays: number
levelUpActivityDailySetCompletedAmount: number
levelUpActivityDailyStreaksCompletedAmount: number
levelUpActivityXboxGamePassCompleted: boolean
bingStarMonthlyBonusProgress: number
bingStarMonthlyBonusMaximum: number
bingStarBonusWeeklyProgress: number
bingStarBonusWeeklyState: string
defaultSearchEngineMonthlyBonusProgress: number
defaultSearchEngineMonthlyBonusMaximum: number
defaultSearchEngineMonthlyBonusState: string
monthlyLevelBonusProgress: number
monthlyLevelBonusMaximum: number
monthlyLevelBonusState: string
monthlyDistributionChartSrc: string
bingSearchDailyPoints: number
pointsPerSearch: number
hvaLevelUpActivityDailySetCompletedAmount_V2: string
hvaLevelUpActivityDailySetCompletedMax_V2: string
hvaLevelUpActivityDailySetDays_V2: string
hvaLevelUpActivityDailySetDaysMax_V2: string
hvaLevelUpActivityDailySetProgress_V2: boolean
hvaLevelUpActivityDailySetDisplay_V2: boolean
hvaLevelUpActivityDailyStreaksBingCompletedAmount_V2: string
hvaLevelUpActivityDailyStreaksBingCompletedMax_V2: string
hvaLevelUpActivityDailyStreaksBingProgress_V2: boolean
hvaLevelUpActivityDailyStreaksBingDisplay_V2: boolean
hvaLevelUpActivityDailyStreaksMobileCompletedAmount_V2: string
hvaLevelUpActivityDailyStreaksMobileCompletedMax_V2: string
hvaLevelUpActivityDailyStreaksMobileProgress_V2: boolean
hvaLevelUpActivityDailyStreaksMobileDisplay_V2: boolean
hvaLevelUpDefaultSearchEngineCompletedAmount_V2: string
hvaLevelUpActivityDefaultSearchEngineCompletedMax_V2: string
hvaLevelUpActivityDefaultSearchEngineDays_V2: string
hvaLevelUpActivityDefaultSearchEngineDaysMax_V2: string
hvaLevelUpActivityDefaultSearchEngineProgress_V2: boolean
hvaLevelUpActivityDefaultSearchEngineDisplay_V2: boolean
hvaLevelUpActivityXboxGamePassCompletedAmount_V2: string
hvaLevelUpActivityXboxGamePassCompletedMax_V2: string
hvaLevelUpActivityXboxGamePassProgress_V2: boolean
hvaLevelUpActivityXboxGamePassDisplay_V2: boolean
programRestructureWave2HvaFlight: string
programRestructureHvaSevenDayLink: string
}
export interface Level {
key: string
active: boolean
name: string
tasks: CloseLink[]
privileges: CloseLink[]
}
export interface ReferrerProgressInfo {
pointsEarned: number
pointsMax: number
isComplete: boolean
promotions: unknown[]
}

9
src/interface/OAuth.ts Normal file
View File

@@ -0,0 +1,9 @@
export interface OAuth {
access_token: string
refresh_token: string
scope: string
expires_in: number
ext_expires_in: number
foci: string
token_type: string
}

20
src/interface/Points.ts Normal file
View File

@@ -0,0 +1,20 @@
export interface BrowserEarnablePoints {
desktopSearchPoints: number
mobileSearchPoints: number
dailySetPoints: number
morePromotionsPoints: number
totalEarnablePoints: number
}
export interface AppEarnablePoints {
readToEarn: number
checkIn: number
totalEarnablePoints: number
}
export interface MissingSearchPoints {
mobilePoints: number
desktopPoints: number
edgePoints: number
totalPoints: number
}

50
src/interface/QuizData.ts Normal file
View File

@@ -0,0 +1,50 @@
export interface QuizData {
offerId: string
quizId: string
quizCategory: string
IsCurrentQuestionCompleted: boolean
quizRenderSummaryPage: boolean
resetQuiz: boolean
userClickedOnHint: boolean
isDemoEnabled: boolean
correctAnswer: string
isMultiChoiceQuizType: boolean
isPutInOrderQuizType: boolean
isListicleQuizType: boolean
isWOTQuizType: boolean
isBugsForRewardsQuizType: boolean
currentQuestionNumber: number
maxQuestions: number
resetTrackingCounters: boolean
showWelcomePanel: boolean
isAjaxCall: boolean
showHint: boolean
numberOfOptions: number
isMobile: boolean
inRewardsMode: boolean
enableDailySetWelcomePane: boolean
enableDailySetNonWelcomePane: boolean
isDailySetUrlOffer: boolean
isDailySetFlightEnabled: boolean
dailySetUrlOfferId: string
earnedCredits: number
maxCredits: number
creditsPerQuestion: number
userAlreadyClickedOptions: number
hasUserClickedOnOption: boolean
recentAnswerChoice: string
sessionTimerSeconds: string
isOverlayMinimized: number
ScreenReaderMsgOnMove: string
ScreenReaderMsgOnDrop: string
IsPartialPointsEnabled: boolean
PrioritizeUrlOverCookies: boolean
UseNewReportActivityAPI: boolean
CorrectlyAnsweredQuestionCount: number
showJoinRewardsPage: boolean
CorrectOptionAnswer_WOT: string
WrongOptionAnswer_WOT: string
enableSlideAnimation: boolean
ariaLoggingEnabled: boolean
UseQuestionIndexInActivityId: boolean
}

96
src/interface/Search.ts Normal file
View File

@@ -0,0 +1,96 @@
// Google Trends
export type GoogleTrendsResponse = [string, [string, ...null[], [string, ...string[]]][]]
export interface GoogleSearch {
topic: string
related: string[]
}
// Bing Suggestions
export interface BingSuggestionResponse {
_type: string
instrumentation: BingInstrumentation
queryContext: BingQueryContext
suggestionGroups: BingSuggestionGroup[]
}
export interface BingInstrumentation {
_type: string
pingUrlBase: string
pageLoadPingUrl: string
llmPingUrlBase: string
llmLogPingUrlBase: string
}
export interface BingQueryContext {
originalQuery: string
}
export interface BingSuggestionGroup {
name: string
searchSuggestions: BingSearchSuggestion[]
}
export interface BingSearchSuggestion {
url: string
urlPingSuffix: string
displayText: string
query: string
result?: BingResult[]
searchKind?: string
}
export interface BingResult {
id: string
readLink: string
readLinkPingSuffix: string
webSearchUrl: string
webSearchUrlPingSuffix: string
name: string
image: BingSuggestionImage
description: string
entityPresentationInfo: BingEntityPresentationInfo
bingId: string
}
export interface BingEntityPresentationInfo {
entityScenario: string
entityTypeDisplayHint: string
query: string
}
export interface BingSuggestionImage {
thumbnailUrl: string
hostPageUrl: string
hostPageUrlPingSuffix: string
width: number
height: number
sourceWidth: number
sourceHeight: number
}
// Bing Tending Topics
export interface BingTrendingTopicsResponse {
_type: string
instrumentation: BingInstrumentation
value: BingValue[]
}
export interface BingValue {
webSearchUrl: string
webSearchUrlPingSuffix: string
name: string
image: BingTrendingImage
isBreakingNews: boolean
query: BingTrendingQuery
newsSearchUrl: string
newsSearchUrlPingSuffix: string
}
export interface BingTrendingImage {
url: string
}
export interface BingTrendingQuery {
text: string
}

View File

@@ -0,0 +1,62 @@
// Chrome Product Data
export interface ChromeVersion {
timestamp: Date
channels: Channels
}
export interface Channels {
Stable: Beta
Beta: Beta
Dev: Beta
Canary: Beta
}
export interface Beta {
channel: string
version: string
revision: string
}
// Edge Product Data
export interface EdgeVersion {
Product: string
Releases: Release[]
}
export interface Release {
ReleaseId: number
Platform: Platform
Architecture: Architecture
CVEs: string[]
ProductVersion: string
Artifacts: Artifact[]
PublishedTime: Date
ExpectedExpiryDate: Date
}
export enum Architecture {
Arm64 = 'arm64',
Universal = 'universal',
X64 = 'x64',
X86 = 'x86'
}
export interface Artifact {
ArtifactName: string
Location: string
Hash: string
HashAlgorithm: HashAlgorithm
SizeInBytes: number
}
export enum HashAlgorithm {
Sha256 = 'SHA256'
}
export enum Platform {
Android = 'Android',
IOS = 'iOS',
Linux = 'Linux',
MACOS = 'MacOS',
Windows = 'Windows'
}

View File

@@ -0,0 +1,43 @@
export interface XboxDashboardData {
response: Response
correlationId: string
code: number
}
export interface Response {
profile: null
balance: number
counters: { [key: string]: string }
promotions: Promotion[]
catalog: null
goal_item: null
activities: null
cashback: null
orders: null
rebateProfile: null
rebatePayouts: null
giveProfile: null
autoRedeemProfile: null
autoRedeemItem: null
thirdPartyProfile: null
notifications: null
waitlist: null
autoOpenFlyout: null
coupons: null
recommendedAffordableCatalog: null
generativeAICreditsBalance: null
requestCountryCatalog: null
donationCatalog: null
}
export interface Promotion {
name: string
priority: number
attributes: { [key: string]: string }
tags: Tag[]
}
export enum Tag {
ExcludeHidden = 'exclude_hidden',
NonGlobalConfig = 'non_global_config'
}