Class: CreditManager
Defined in: javascript/src/manager.ts:33
Orchestrates credit operations: pricing -> reserve -> deduct.
Optionally accepts a CreditEventEmitter to emit lifecycle events
(deducted, added, refunded, expired, cap_reached, cap_warning, low_balance).
Constructors
Constructor
new CreditManager(
store,engine?,emitter?):CreditManager
Defined in: javascript/src/manager.ts:38
Parameters
store
engine?
PricingEngine | null
emitter?
CreditEventEmitter | null
Returns
CreditManager
Accessors
pricingEngine
Get Signature
get pricingEngine():
PricingEngine|null
Defined in: javascript/src/manager.ts:101
The current PricingEngine, or null if not loaded.
Returns
PricingEngine | null
Methods
addCredits()
addCredits(
userId,amount,type?,metadata?,expiresAt?):Promise<AddCreditsResult>
Defined in: javascript/src/manager.ts:121
Add credits to a user's account.
Parameters
userId
string
amount
number
type?
string = "adjustment"
metadata?
CreditMetadata | null
expiresAt?
Date | null
Returns
Promise<AddCreditsResult>
aggregateStats()
aggregateStats(
start,end):Promise<AggregateStats>
Defined in: javascript/src/manager.ts:366
Aggregate statistics across all users in a time window.
Parameters
start
Date
end
Date
Returns
Promise<AggregateStats>
checkFeature()
checkFeature(
userId,feature):Promise<CheckFeatureResult>
Defined in: javascript/src/manager.ts:111
Check whether a user's plan has a specific feature entitlement.
Parameters
userId
string
feature
string
Returns
Promise<CheckFeatureResult>
dailySpend()
dailySpend(
start,end):Promise<DailySpendRow[]>
Defined in: javascript/src/manager.ts:386
Daily spend aggregation in a time window.
Parameters
start
Date
end
Date
Returns
Promise<DailySpendRow[]>
deduct()
deduct(
userId,metrics,idempotencyKey?,metadata?):Promise<DeductionResult>
Defined in: javascript/src/manager.ts:153
Full deduction flow: calculate -> reserve -> deduct.
Parameters
userId
string
metrics
idempotencyKey?
string | null
metadata?
CreditMetadata | null
Returns
Promise<DeductionResult>
deductFixed()
deductFixed(
userId,jobName,idempotencyKey?,metadata?):Promise<DeductionResult>
Defined in: javascript/src/manager.ts:337
Shortcut for fixed-cost batch jobs.
Parameters
userId
string
jobName
string
idempotencyKey?
string | null
metadata?
CreditMetadata | null
Returns
Promise<DeductionResult>
deductTeam()
deductTeam(
teamId,userId,metrics,metadata?):Promise<TeamDeductionResult>
Defined in: javascript/src/manager.ts:296
Deduct from a team's shared balance pool. Calculates cost via the pricing engine, then debits the team balance.
Parameters
teamId
string
userId
string
metrics
metadata?
CreditMetadata | null
Returns
Promise<TeamDeductionResult>
getBalance()
getBalance(
userId):Promise<BalanceResult>
Defined in: javascript/src/manager.ts:116
Get a user's current credit balance.
Parameters
userId
string
Returns
Promise<BalanceResult>
getUserPlan()
getUserPlan(
userId):Promise<GetUserPlanResult>
Defined in: javascript/src/manager.ts:106
Fetch a user's current plan (including feature entitlements).
Parameters
userId
string
Returns
Promise<GetUserPlanResult>
loadPricingFromStore()
loadPricingFromStore():
Promise<void>
Defined in: javascript/src/manager.ts:66
Load the active pricing config from the store.
Returns
Promise<void>
publishPricing()
publishPricing(
config,label?):void
Defined in: javascript/src/manager.ts:85
Publish new pricing and update the engine in one call.
Parameters
config
label?
string | null
Returns
void
publishPricingFromDict()
publishPricingFromDict(
data):Promise<void>
Defined in: javascript/src/manager.ts:59
Load pricing from a PricingConfigData or raw dict and sync it.
Parameters
data
Record<string, unknown> | PricingConfigData
Returns
Promise<void>
refundCredits()
refundCredits(
transactionId,amount?,reason?,metadata?):Promise<RefundResult>
Defined in: javascript/src/manager.ts:275
Refund a previous credit deduction.
Parameters
transactionId
string
amount?
number
reason?
string
metadata?
CreditMetadata | null
Returns
Promise<RefundResult>
reserveCredits()
reserveCredits(
userId,amount,operationType?,metadata?,minBalance?):Promise<ReserveResult>
Defined in: javascript/src/manager.ts:139
Reserve credits for an upcoming operation.
Parameters
userId
string
amount
number
operationType?
string = "usage"
metadata?
CreditMetadata | null
minBalance?
number | null
Returns
Promise<ReserveResult>
setup()
setup():
Promise<SetupResult>
Defined in: javascript/src/manager.ts:54
Run bundled SQL migrations through the store.
Returns
Promise<SetupResult>
spendByModel()
spendByModel(
start,end):Promise<SpendByModelRow[]>
Defined in: javascript/src/manager.ts:376
Aggregate spend by model in a time window.
Parameters
start
Date
end
Date
Returns
Promise<SpendByModelRow[]>
spendByUser()
spendByUser(
start,end):Promise<SpendByUserRow[]>
Defined in: javascript/src/manager.ts:371
Aggregate spend by user in a time window.
Parameters
start
Date
end
Date
Returns
Promise<SpendByUserRow[]>
sweepExpiredCredits()
sweepExpiredCredits(
dryRun?):Promise<SweepResult>
Defined in: javascript/src/manager.ts:352
Sweep expired credits from all users' balances.
When dryRun is true, reports what would be expired without modifying
any balances.
Parameters
dryRun?
boolean
Returns
Promise<SweepResult>
topUsers()
topUsers(
limit,start,end):Promise<TopUserRow[]>
Defined in: javascript/src/manager.ts:381
Top users by spend in a time window with limit.
Parameters
limit
number
start
Date
end
Date
Returns
Promise<TopUserRow[]>