@resvary/sdk 0.7.0 → 1.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/dist/admin/index.d.ts +3 -0
- package/dist/admin/index.d.ts.map +1 -0
- package/dist/admin/index.js +3 -0
- package/dist/admin/index.js.map +1 -0
- package/dist/admin/service.d.ts +62 -0
- package/dist/admin/service.d.ts.map +1 -0
- package/dist/admin/service.js +150 -0
- package/dist/admin/service.js.map +1 -0
- package/dist/admin/types.d.ts +117 -0
- package/dist/admin/types.d.ts.map +1 -0
- package/dist/admin/types.js +25 -0
- package/dist/admin/types.js.map +1 -0
- package/dist/credits/index.d.ts +2 -2
- package/dist/credits/index.d.ts.map +1 -1
- package/dist/credits/index.js.map +1 -1
- package/dist/credits/ledger.d.ts +9 -1
- package/dist/credits/ledger.d.ts.map +1 -1
- package/dist/credits/ledger.js +9 -3
- package/dist/credits/ledger.js.map +1 -1
- package/dist/credits/types.d.ts +36 -0
- package/dist/credits/types.d.ts.map +1 -1
- package/dist/pricing/index.d.ts +1 -1
- package/dist/pricing/index.d.ts.map +1 -1
- package/dist/pricing/rating.d.ts +15 -8
- package/dist/pricing/rating.d.ts.map +1 -1
- package/dist/pricing/rating.js +126 -16
- package/dist/pricing/rating.js.map +1 -1
- package/package.json +6 -2
package/README.md
CHANGED
|
@@ -10,7 +10,9 @@ import { createMeterDefinition, createPriceVersion, rateUsage } from '@resvary/s
|
|
|
10
10
|
import { ArcCreditFunding } from '@resvary/sdk/funding/arc';
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
The SDK provides USD credit accounts, manual grants, recurring allowance policies, expiring promotions, deterministic credit lots, reserve/commit/release, immutable usage receipts, idempotency, a transactional outbox, and signed credit webhooks. It has no database or AI provider dependency. Policy commands require the optional `CreditPolicyStore` capability; existing custom `CreditStore` implementations retain their previous flows.
|
|
13
|
+
The SDK provides USD credit accounts, linear, graduated, and package pricing, manual grants, recurring allowance policies, expiring promotions, deterministic credit lots, reserve/commit/release, immutable usage receipts, idempotency, a transactional outbox, and signed credit webhooks. It has no database or AI provider dependency. Policy commands require the optional `CreditPolicyStore` capability; existing custom `CreditStore` implementations retain their previous flows.
|
|
14
|
+
|
|
15
|
+
Advanced price versions use `components`: graduated tiers charge each cumulative range independently, while package pricing charges every started block. Existing `rates` and linear receipt line items remain unchanged. See `docs/usage-rating.md` in the repository.
|
|
14
16
|
|
|
15
17
|
Legacy stablecoin payment imports remain under `/receipts`, `/middleware`, `/client`, and `/gateway`. Legacy paywall middleware requires a trusted `verifyPayment` callback and fails closed without one. `BuyerClient` also fails closed on `402` unless the caller configures per-request and total spend limits plus a recipient allowlist. `UsageMeter` and `createBillingPlan` are deprecated for new balance systems.
|
|
16
18
|
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { decodeAdminCursor, encodeAdminCursor, normalizeAdminPage, type AdminAuditQuery, type AdminCursorValue, type AdminCustomerDetail, type AdminCustomerQuery, type AdminCustomerSummary, type AdminOverview, type AdminPage, type AdminPageInput, type AdminQueryStore, type AdminUsageEvidence, type AuditItem, type AuditItemKind, type OperatorAction, type OperatorActionStatus, type OperatorActionType, } from './types.js';
|
|
2
|
+
export { OperatorService, type OperatorAdjustInput, type OperatorExpireOverdueInput, type OperatorGrantInput, type OperatorRequeueInput, type OperatorServiceConfig, } from './service.js';
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,eAAe,EACf,KAAK,mBAAmB,EACxB,KAAK,0BAA0B,EAC/B,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,GAC3B,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,GAgBnB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,eAAe,GAMhB,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { CreditLedger } from '../credits/ledger.js';
|
|
2
|
+
import type { CreditStore, OutboxDeliveryStore } from '../credits/store.js';
|
|
3
|
+
import type { AdminQueryStore, OperatorAction } from './types.js';
|
|
4
|
+
export interface OperatorServiceConfig {
|
|
5
|
+
projectId: string;
|
|
6
|
+
ledger: CreditLedger;
|
|
7
|
+
adminStore: AdminQueryStore;
|
|
8
|
+
deliveryStore: CreditStore & OutboxDeliveryStore;
|
|
9
|
+
now?: () => number;
|
|
10
|
+
}
|
|
11
|
+
interface OperatorCommandBase {
|
|
12
|
+
actionId: string;
|
|
13
|
+
reason: string;
|
|
14
|
+
}
|
|
15
|
+
export interface OperatorGrantInput extends OperatorCommandBase {
|
|
16
|
+
customerId: string;
|
|
17
|
+
amount: string;
|
|
18
|
+
}
|
|
19
|
+
export interface OperatorAdjustInput extends OperatorCommandBase {
|
|
20
|
+
customerId: string;
|
|
21
|
+
amount: string;
|
|
22
|
+
}
|
|
23
|
+
export interface OperatorExpireOverdueInput extends OperatorCommandBase {
|
|
24
|
+
before?: number;
|
|
25
|
+
}
|
|
26
|
+
export interface OperatorRequeueInput extends OperatorCommandBase {
|
|
27
|
+
eventId: string;
|
|
28
|
+
}
|
|
29
|
+
export declare class OperatorService {
|
|
30
|
+
private readonly config;
|
|
31
|
+
private readonly now;
|
|
32
|
+
constructor(config: OperatorServiceConfig);
|
|
33
|
+
grantCredits(input: OperatorGrantInput): Promise<{
|
|
34
|
+
action: OperatorAction;
|
|
35
|
+
result: {
|
|
36
|
+
account: import("../index.js").CreditAccount;
|
|
37
|
+
grant: import("../index.js").CreditGrant;
|
|
38
|
+
};
|
|
39
|
+
}>;
|
|
40
|
+
adjustCredits(input: OperatorAdjustInput): Promise<{
|
|
41
|
+
action: OperatorAction;
|
|
42
|
+
result: {
|
|
43
|
+
account: import("../index.js").CreditAccount;
|
|
44
|
+
entry: import("../index.js").LedgerEntry;
|
|
45
|
+
};
|
|
46
|
+
}>;
|
|
47
|
+
expireOverdueReservations(input: OperatorExpireOverdueInput): Promise<{
|
|
48
|
+
action: OperatorAction;
|
|
49
|
+
result: import("../index.js").CreditReservation[];
|
|
50
|
+
}>;
|
|
51
|
+
requeueDeadLetter(input: OperatorRequeueInput): Promise<{
|
|
52
|
+
action: OperatorAction;
|
|
53
|
+
result: import("../index.js").CreditOutboxEvent<unknown> | undefined;
|
|
54
|
+
}>;
|
|
55
|
+
private execute;
|
|
56
|
+
private appendOutcome;
|
|
57
|
+
private assertSameCommand;
|
|
58
|
+
private idempotencyKey;
|
|
59
|
+
private metadata;
|
|
60
|
+
}
|
|
61
|
+
export {};
|
|
62
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/admin/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE5E,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EAGf,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,eAAe,CAAC;IAC5B,aAAa,EAAE,WAAW,GAAG,mBAAmB,CAAC;IACjD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB;IAC7D,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,0BAA2B,SAAQ,mBAAmB;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAqB,SAAQ,mBAAmB;IAC/D,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,eAAe;IAGd,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;gBAEN,MAAM,EAAE,qBAAqB;IAQ1D,YAAY,CAAC,KAAK,EAAE,kBAAkB;gBAkEjB,cAAc;;;;;;IApDnC,aAAa,CAAC,KAAK,EAAE,mBAAmB;gBAoDnB,cAAc;;;;;;IAxCnC,yBAAyB,CAAC,KAAK,EAAE,0BAA0B;gBAwCtC,cAAc;;;IA3B7B,iBAAiB,CAAC,KAAK,EAAE,oBAAoB;gBA2B9B,cAAc;;;YANrB,OAAO;YA8DP,aAAa;IA8B3B,OAAO,CAAC,iBAAiB;IAiBzB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,QAAQ;CAOjB"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { toCreditUnits } from '../credits/amount.js';
|
|
2
|
+
export class OperatorService {
|
|
3
|
+
config;
|
|
4
|
+
now;
|
|
5
|
+
constructor(config) {
|
|
6
|
+
this.config = config;
|
|
7
|
+
if (!config.projectId.trim())
|
|
8
|
+
throw new Error('Operator projectId is required');
|
|
9
|
+
if (config.ledger.projectId !== config.projectId) {
|
|
10
|
+
throw new Error('Operator service and ledger must use the same projectId');
|
|
11
|
+
}
|
|
12
|
+
this.now = config.now ?? Date.now;
|
|
13
|
+
}
|
|
14
|
+
grantCredits(input) {
|
|
15
|
+
if (toCreditUnits(input.amount) <= 0n)
|
|
16
|
+
throw new Error('Operator grant amount must be positive');
|
|
17
|
+
return this.execute(input, 'credit.grant', 'customer', input.customerId, () => this.config.ledger.grantCredits({
|
|
18
|
+
customerId: input.customerId,
|
|
19
|
+
amount: input.amount,
|
|
20
|
+
source: 'manual',
|
|
21
|
+
idempotencyKey: this.idempotencyKey(input.actionId),
|
|
22
|
+
metadata: this.metadata(input),
|
|
23
|
+
}));
|
|
24
|
+
}
|
|
25
|
+
adjustCredits(input) {
|
|
26
|
+
return this.execute(input, 'credit.adjust', 'customer', input.customerId, () => this.config.ledger.adjustCredits({
|
|
27
|
+
customerId: input.customerId,
|
|
28
|
+
amount: input.amount,
|
|
29
|
+
reason: input.reason,
|
|
30
|
+
idempotencyKey: this.idempotencyKey(input.actionId),
|
|
31
|
+
metadata: this.metadata(input),
|
|
32
|
+
}));
|
|
33
|
+
}
|
|
34
|
+
expireOverdueReservations(input) {
|
|
35
|
+
const currentTime = this.now();
|
|
36
|
+
const before = input.before ?? currentTime;
|
|
37
|
+
if (!Number.isSafeInteger(before))
|
|
38
|
+
throw new Error('Operator expiry time must be an integer');
|
|
39
|
+
if (before > currentTime)
|
|
40
|
+
throw new Error('Operator expiry time cannot be in the future');
|
|
41
|
+
return this.execute(input, 'reservation.expire_overdue', 'project', this.config.projectId, () => this.config.ledger.releaseExpiredReservations({
|
|
42
|
+
now: before,
|
|
43
|
+
idempotencyKey: this.idempotencyKey(input.actionId),
|
|
44
|
+
}));
|
|
45
|
+
}
|
|
46
|
+
async requeueDeadLetter(input) {
|
|
47
|
+
return this.execute(input, 'outbox.requeue', 'outbox_event', input.eventId, async (pendingRecovery) => {
|
|
48
|
+
const event = await this.config.deliveryStore.getOutboxEvent(input.eventId);
|
|
49
|
+
if (!event || event.projectId !== this.config.projectId) {
|
|
50
|
+
throw new Error(`Outbox event not found: ${input.eventId}`);
|
|
51
|
+
}
|
|
52
|
+
if (pendingRecovery && event.status === 'pending' && event.attemptCount === 0)
|
|
53
|
+
return event;
|
|
54
|
+
if (event.status !== 'dead_letter') {
|
|
55
|
+
throw new Error(`Outbox event is not dead-lettered: ${input.eventId}`);
|
|
56
|
+
}
|
|
57
|
+
await this.config.deliveryStore.requeueOutboxEvent(input.eventId, this.now());
|
|
58
|
+
return this.config.deliveryStore.getOutboxEvent(input.eventId);
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
async execute(input, type, targetType, targetId, operation) {
|
|
62
|
+
const actionId = requireUuid(input.actionId);
|
|
63
|
+
const reason = requireText(input.reason, 'reason');
|
|
64
|
+
const existing = await this.config.adminStore.getOperatorAction(this.config.projectId, actionId);
|
|
65
|
+
if (existing) {
|
|
66
|
+
this.assertSameCommand(existing, type, targetType, targetId, reason);
|
|
67
|
+
if (existing.status === 'succeeded') {
|
|
68
|
+
return { action: existing, result: existing.result };
|
|
69
|
+
}
|
|
70
|
+
if (existing.status === 'failed')
|
|
71
|
+
throw new Error(existing.error ?? 'Operator action failed');
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
await this.config.adminStore.appendOperatorAction({
|
|
75
|
+
id: actionId,
|
|
76
|
+
sequence: 0,
|
|
77
|
+
projectId: this.config.projectId,
|
|
78
|
+
type,
|
|
79
|
+
targetType,
|
|
80
|
+
targetId,
|
|
81
|
+
reason,
|
|
82
|
+
status: 'pending',
|
|
83
|
+
createdAt: this.now(),
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
let result;
|
|
87
|
+
try {
|
|
88
|
+
result = await operation(existing?.status === 'pending');
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
await this.appendOutcome(actionId, type, targetType, targetId, reason, 'failed', undefined, error instanceof Error ? error.message : String(error));
|
|
92
|
+
throw error;
|
|
93
|
+
}
|
|
94
|
+
const action = await this.appendOutcome(actionId, type, targetType, targetId, reason, 'succeeded', result);
|
|
95
|
+
return { action, result };
|
|
96
|
+
}
|
|
97
|
+
async appendOutcome(id, type, targetType, targetId, reason, status, result, error) {
|
|
98
|
+
const pending = await this.config.adminStore.getOperatorAction(this.config.projectId, id);
|
|
99
|
+
if (pending?.status === 'succeeded')
|
|
100
|
+
return pending;
|
|
101
|
+
const action = {
|
|
102
|
+
id,
|
|
103
|
+
sequence: (pending?.sequence ?? 0) + 1,
|
|
104
|
+
projectId: this.config.projectId,
|
|
105
|
+
type,
|
|
106
|
+
targetType,
|
|
107
|
+
targetId,
|
|
108
|
+
reason,
|
|
109
|
+
status,
|
|
110
|
+
createdAt: pending?.createdAt ?? this.now(),
|
|
111
|
+
completedAt: this.now(),
|
|
112
|
+
result,
|
|
113
|
+
error,
|
|
114
|
+
};
|
|
115
|
+
await this.config.adminStore.appendOperatorAction(action);
|
|
116
|
+
return action;
|
|
117
|
+
}
|
|
118
|
+
assertSameCommand(action, type, targetType, targetId, reason) {
|
|
119
|
+
if (action.type !== type ||
|
|
120
|
+
action.targetType !== targetType ||
|
|
121
|
+
action.targetId !== targetId ||
|
|
122
|
+
action.reason !== reason) {
|
|
123
|
+
throw new Error(`Operator action id ${action.id} was already used for another command`);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
idempotencyKey(actionId) {
|
|
127
|
+
return `operator:${this.config.projectId}:${actionId}`;
|
|
128
|
+
}
|
|
129
|
+
metadata(input) {
|
|
130
|
+
return {
|
|
131
|
+
source: 'operator_console',
|
|
132
|
+
operatorActionId: input.actionId,
|
|
133
|
+
reason: input.reason,
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
function requireText(value, field) {
|
|
138
|
+
const normalized = value.trim();
|
|
139
|
+
if (!normalized)
|
|
140
|
+
throw new Error(`Operator ${field} is required`);
|
|
141
|
+
return normalized;
|
|
142
|
+
}
|
|
143
|
+
function requireUuid(value) {
|
|
144
|
+
const actionId = requireText(value, 'actionId');
|
|
145
|
+
if (!/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(actionId)) {
|
|
146
|
+
throw new Error('Operator actionId must be a UUID');
|
|
147
|
+
}
|
|
148
|
+
return actionId;
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/admin/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import type { CreditAccount, CreditGrant, CreditLot, CreditOutboxEvent, CreditReservation, FundingIntent, FundingTransaction, LedgerEntry, PriceVersion, UsageReceipt } from '../credits/types.js';
|
|
2
|
+
export interface AdminPage<T> {
|
|
3
|
+
items: T[];
|
|
4
|
+
nextCursor?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface AdminPageInput {
|
|
7
|
+
cursor?: string;
|
|
8
|
+
limit?: number;
|
|
9
|
+
}
|
|
10
|
+
export interface AdminOverview {
|
|
11
|
+
projectId: string;
|
|
12
|
+
generatedAt: number;
|
|
13
|
+
postedUnits: string;
|
|
14
|
+
reservedUnits: string;
|
|
15
|
+
availableUnits: string;
|
|
16
|
+
charged24hUnits: string;
|
|
17
|
+
charged7dUnits: string;
|
|
18
|
+
charged30dUnits: string;
|
|
19
|
+
customerCount: number;
|
|
20
|
+
overdueReservationCount: number;
|
|
21
|
+
pendingOutboxCount: number;
|
|
22
|
+
deadLetterCount: number;
|
|
23
|
+
reconciliationRequiredCount: number;
|
|
24
|
+
dailyCharges: Array<{
|
|
25
|
+
day: string;
|
|
26
|
+
amountUnits: string;
|
|
27
|
+
receiptCount: number;
|
|
28
|
+
}>;
|
|
29
|
+
}
|
|
30
|
+
export interface AdminCustomerSummary {
|
|
31
|
+
account: CreditAccount;
|
|
32
|
+
receiptCount: number;
|
|
33
|
+
charged30dUnits: string;
|
|
34
|
+
openReservationCount: number;
|
|
35
|
+
lastActivityAt?: number;
|
|
36
|
+
}
|
|
37
|
+
export interface AdminCustomerQuery extends AdminPageInput {
|
|
38
|
+
projectId: string;
|
|
39
|
+
search?: string;
|
|
40
|
+
}
|
|
41
|
+
export type AuditItemKind = 'grant' | 'reservation' | 'usage_receipt' | 'ledger_entry' | 'funding_intent' | 'funding_transaction' | 'outbox_event' | 'operator_action';
|
|
42
|
+
export interface AuditItem {
|
|
43
|
+
id: string;
|
|
44
|
+
projectId: string;
|
|
45
|
+
customerId?: string;
|
|
46
|
+
kind: AuditItemKind;
|
|
47
|
+
type: string;
|
|
48
|
+
status?: string;
|
|
49
|
+
amountUnits?: string;
|
|
50
|
+
createdAt: number;
|
|
51
|
+
payload: unknown;
|
|
52
|
+
}
|
|
53
|
+
export interface AdminAuditQuery extends AdminPageInput {
|
|
54
|
+
projectId: string;
|
|
55
|
+
customerId?: string;
|
|
56
|
+
entityId?: string;
|
|
57
|
+
kind?: AuditItemKind;
|
|
58
|
+
type?: string;
|
|
59
|
+
status?: string;
|
|
60
|
+
from?: number;
|
|
61
|
+
to?: number;
|
|
62
|
+
}
|
|
63
|
+
export interface AdminCustomerDetail {
|
|
64
|
+
account: CreditAccount;
|
|
65
|
+
grants: CreditGrant[];
|
|
66
|
+
lots: CreditLot[];
|
|
67
|
+
reservations: CreditReservation[];
|
|
68
|
+
receipts: UsageReceipt[];
|
|
69
|
+
ledgerEntries: LedgerEntry[];
|
|
70
|
+
fundingIntents: FundingIntent[];
|
|
71
|
+
fundingTransactions: FundingTransaction[];
|
|
72
|
+
}
|
|
73
|
+
export interface AdminUsageEvidence {
|
|
74
|
+
receipt: UsageReceipt;
|
|
75
|
+
reservation?: CreditReservation;
|
|
76
|
+
price?: PriceVersion;
|
|
77
|
+
ledgerEntries: LedgerEntry[];
|
|
78
|
+
}
|
|
79
|
+
export type OperatorActionType = 'credit.grant' | 'credit.adjust' | 'reservation.expire_overdue' | 'outbox.requeue';
|
|
80
|
+
export type OperatorActionStatus = 'pending' | 'succeeded' | 'failed';
|
|
81
|
+
export interface OperatorAction {
|
|
82
|
+
id: string;
|
|
83
|
+
sequence: number;
|
|
84
|
+
projectId: string;
|
|
85
|
+
type: OperatorActionType;
|
|
86
|
+
targetType: 'customer' | 'project' | 'outbox_event';
|
|
87
|
+
targetId: string;
|
|
88
|
+
reason: string;
|
|
89
|
+
status: OperatorActionStatus;
|
|
90
|
+
createdAt: number;
|
|
91
|
+
completedAt?: number;
|
|
92
|
+
result?: unknown;
|
|
93
|
+
error?: string;
|
|
94
|
+
}
|
|
95
|
+
export interface AdminQueryStore {
|
|
96
|
+
getOverview(projectId: string, now?: number): Promise<AdminOverview>;
|
|
97
|
+
listCustomers(input: AdminCustomerQuery): Promise<AdminPage<AdminCustomerSummary>>;
|
|
98
|
+
getCustomer(projectId: string, customerId: string): Promise<AdminCustomerDetail | undefined>;
|
|
99
|
+
listAuditItems(input: AdminAuditQuery): Promise<AdminPage<AuditItem>>;
|
|
100
|
+
getUsageEvidence(projectId: string, receiptId: string): Promise<AdminUsageEvidence | undefined>;
|
|
101
|
+
listOverdueReservations(projectId: string, now?: number): Promise<CreditReservation[]>;
|
|
102
|
+
listDeadLetterEvents(projectId: string): Promise<CreditOutboxEvent[]>;
|
|
103
|
+
getOperatorAction(projectId: string, id: string): Promise<OperatorAction | undefined>;
|
|
104
|
+
listOperatorActions(projectId: string, input?: AdminPageInput): Promise<AdminPage<OperatorAction>>;
|
|
105
|
+
appendOperatorAction(action: OperatorAction): Promise<void>;
|
|
106
|
+
}
|
|
107
|
+
export interface AdminCursorValue {
|
|
108
|
+
createdAt: number;
|
|
109
|
+
id: string;
|
|
110
|
+
}
|
|
111
|
+
export declare function normalizeAdminPage(input: AdminPageInput): {
|
|
112
|
+
limit: number;
|
|
113
|
+
cursor?: AdminCursorValue;
|
|
114
|
+
};
|
|
115
|
+
export declare function encodeAdminCursor(value: AdminCursorValue): string;
|
|
116
|
+
export declare function decodeAdminCursor(value: string): AdminCursorValue;
|
|
117
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/admin/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export function normalizeAdminPage(input) {
|
|
2
|
+
const limit = input.limit ?? 50;
|
|
3
|
+
if (!Number.isSafeInteger(limit) || limit <= 0 || limit > 100) {
|
|
4
|
+
throw new Error('Admin page limit must be an integer between 1 and 100');
|
|
5
|
+
}
|
|
6
|
+
return { limit, cursor: input.cursor ? decodeAdminCursor(input.cursor) : undefined };
|
|
7
|
+
}
|
|
8
|
+
export function encodeAdminCursor(value) {
|
|
9
|
+
const encoded = JSON.stringify(value);
|
|
10
|
+
return Buffer.from(encoded, 'utf8').toString('base64url');
|
|
11
|
+
}
|
|
12
|
+
export function decodeAdminCursor(value) {
|
|
13
|
+
try {
|
|
14
|
+
const parsed = JSON.parse(Buffer.from(value, 'base64url').toString('utf8'));
|
|
15
|
+
const createdAt = parsed.createdAt;
|
|
16
|
+
if (!Number.isSafeInteger(createdAt) || typeof parsed.id !== 'string' || !parsed.id) {
|
|
17
|
+
throw new Error('invalid cursor payload');
|
|
18
|
+
}
|
|
19
|
+
return { createdAt: createdAt, id: parsed.id };
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
throw new Error('Invalid admin cursor');
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/admin/types.ts"],"names":[],"mappings":"AAoJA,MAAM,UAAU,kBAAkB,CAAC,KAAqB;IAItD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;IAChC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAuB;IACvD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACtC,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CACvB,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CACpB,CAAC;QAC/B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACpF,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,EAAE,SAAS,EAAE,SAAmB,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC"}
|
package/dist/credits/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { CREDIT_DECIMALS, CREDIT_SCALE, creditUnitsToString, divideCeil, parseCreditUnits, toCreditUnits, } from './amount.js';
|
|
2
2
|
export { CreditError, CreditNotFoundError, IdempotencyConflictError, InsufficientCreditsError, InvalidCreditStateError, UnsupportedCreditStoreCapabilityError, } from './errors.js';
|
|
3
|
-
export { CreditLedger, type AdjustCreditsInput, type ApplyAllowanceInput, type ClaimPromotionInput, type CommitUsageInput, type ConfirmFundingInput, type CreateFundingIntentInput, type CreateAllowanceGrantPolicyInput, type CreateGrantPolicyInput, type CreatePromotionGrantPolicyInput, type CreatePriceVersionInput, type CreditLedgerConfig, type EnsureAccountInput, type FailFundingIntentInput, type GrantCreditsInput, type GrantPolicyResult, type RegisterMeterInput, type ReleaseReservationInput, type ReserveCreditsInput, type RunMeteredCallbackResult, type RunMeteredInput, type RunMeteredResult, type SweepExpiredCreditLotsInput, type SweepExpiredCreditLotsResult, type UpdateFundingSettlementInput, } from './ledger.js';
|
|
3
|
+
export { CreditLedger, type AdjustCreditsInput, type ApplyAllowanceInput, type ClaimPromotionInput, type CommitUsageInput, type ConfirmFundingInput, type CreateAdvancedPriceVersionInput, type CreateFundingIntentInput, type CreateAllowanceGrantPolicyInput, type CreateGrantPolicyInput, type CreatePromotionGrantPolicyInput, type CreatePriceVersionInput, type CreditLedgerConfig, type EnsureAccountInput, type FailFundingIntentInput, type GrantCreditsInput, type GrantPolicyResult, type RegisterMeterInput, type ReleaseReservationInput, type ReserveCreditsInput, type RunMeteredCallbackResult, type RunMeteredInput, type RunMeteredResult, type SweepExpiredCreditLotsInput, type SweepExpiredCreditLotsResult, type UpdateFundingSettlementInput, } from './ledger.js';
|
|
4
4
|
export { InMemoryCreditStore, isCreditPolicyStore, type CreditPolicyStore, type CreditPolicyStoreReader, type CreditPolicyStoreTransaction, type CreditReservationFilter, type CreditStore, type CreditStoreReader, type CreditStoreTransaction, type ClaimOutboxEventsInput, type FailOutboxEventInput, type OutboxDeliveryStore, } from './store.js';
|
|
5
5
|
export { createCreditWebhookEvent, signCreditOutboxEvent } from './webhooks.js';
|
|
6
|
-
export type { CreditAccount, CreditAccountKey, CreditBalanceFilter, CreditCurrency, CreditEventType, CreditGrant, CreditGrantPolicy, CreditGrantPolicyType, CreditGrantSource, CreditLot, CreditLotAllocation, CreditLotFilter, CreditLotKind, CreditOutboxEvent, CreditReservation, IdempotencyRecord, FundingEvidence, FundingIntent, FundingIntentStatus, FundingRail, FundingSettlementStatus, FundingTransaction, GrantPolicyApplication, GrantPolicyApplicationFilter, LedgerBucket, LedgerEntry, LedgerEntryType, MeterDefinition, OutboxEventFilter, OutboxEventStatus, PriceRate, PriceRateInput, PriceVersion, RatedLineItem, RatedUsage, ReservationStatus, UsageEvent, UsageQuantities, UsageReceipt, AllowanceCadence, AllowanceGrantPolicy, PromotionGrantPolicy, } from './types.js';
|
|
6
|
+
export type { CreditAccount, CreditAccountKey, CreditBalanceFilter, CreditCurrency, CreditEventType, CreditGrant, CreditGrantPolicy, CreditGrantPolicyType, CreditGrantSource, CreditLot, CreditLotAllocation, CreditLotFilter, CreditLotKind, CreditOutboxEvent, CreditReservation, IdempotencyRecord, FundingEvidence, FundingIntent, FundingIntentStatus, FundingRail, FundingSettlementStatus, FundingTransaction, GraduatedPriceComponent, GraduatedPriceComponentInput, GraduatedPriceTier, GraduatedPriceTierInput, GrantPolicyApplication, GrantPolicyApplicationFilter, LedgerBucket, LedgerEntry, LedgerEntryType, MeterDefinition, OutboxEventFilter, OutboxEventStatus, PackagePriceComponent, PackagePriceComponentInput, PriceComponent, PriceComponentInput, PriceRate, PriceRateInput, PriceVersion, RatedLineItem, RatedUsage, ReservationStatus, UsageEvent, UsageQuantities, UsageReceipt, AllowanceCadence, AllowanceGrantPolicy, PromotionGrantPolicy, } from './types.js';
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/credits/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,UAAU,EACV,gBAAgB,EAChB,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,qCAAqC,GACtC,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,YAAY,EACZ,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,+BAA+B,EACpC,KAAK,sBAAsB,EAC3B,KAAK,+BAA+B,EACpC,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,GAClC,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,4BAA4B,EACjC,KAAK,uBAAuB,EAC5B,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAChF,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,SAAS,EACT,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,EACtB,4BAA4B,EAC5B,YAAY,EACZ,WAAW,EACX,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,SAAS,EACT,cAAc,EACd,YAAY,EACZ,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,UAAU,EACV,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/credits/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,UAAU,EACV,gBAAgB,EAChB,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,qCAAqC,GACtC,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,YAAY,EACZ,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,+BAA+B,EACpC,KAAK,wBAAwB,EAC7B,KAAK,+BAA+B,EACpC,KAAK,sBAAsB,EAC3B,KAAK,+BAA+B,EACpC,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,GAClC,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,4BAA4B,EACjC,KAAK,uBAAuB,EAC5B,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAChF,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,SAAS,EACT,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EACvB,4BAA4B,EAC5B,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,EACtB,4BAA4B,EAC5B,YAAY,EACZ,WAAW,EACX,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,0BAA0B,EAC1B,cAAc,EACd,mBAAmB,EACnB,SAAS,EACT,cAAc,EACd,YAAY,EACZ,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,UAAU,EACV,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/credits/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,UAAU,EACV,gBAAgB,EAChB,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,qCAAqC,GACtC,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,YAAY,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/credits/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,UAAU,EACV,gBAAgB,EAChB,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,qCAAqC,GACtC,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,YAAY,GA0Bb,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,GAWpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/credits/ledger.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type CreditStore } from './store.js';
|
|
2
|
-
import type { AllowanceCadence, CreditAccount, CreditGrant, CreditGrantPolicy, CreditGrantSource, CreditLot, CreditLotAllocation, CreditLotFilter, FundingEvidence, FundingIntent, FundingRail, FundingSettlementStatus, FundingTransaction, GrantPolicyApplication, GrantPolicyApplicationFilter, CreditOutboxEvent, CreditReservation, LedgerEntry, MeterDefinition, OutboxEventFilter, PriceRateInput, PriceVersion, UsageQuantities, UsageReceipt } from './types.js';
|
|
2
|
+
import type { AllowanceCadence, CreditAccount, CreditGrant, CreditGrantPolicy, CreditGrantSource, CreditLot, CreditLotAllocation, CreditLotFilter, FundingEvidence, FundingIntent, FundingRail, FundingSettlementStatus, FundingTransaction, GrantPolicyApplication, GrantPolicyApplicationFilter, CreditOutboxEvent, CreditReservation, LedgerEntry, MeterDefinition, OutboxEventFilter, PriceComponentInput, PriceRateInput, PriceVersion, UsageQuantities, UsageReceipt } from './types.js';
|
|
3
3
|
export interface CreditLedgerConfig {
|
|
4
4
|
projectId: string;
|
|
5
5
|
store?: CreditStore;
|
|
@@ -69,6 +69,13 @@ export interface CreatePriceVersionInput {
|
|
|
69
69
|
idempotencyKey: string;
|
|
70
70
|
metadata?: Record<string, unknown>;
|
|
71
71
|
}
|
|
72
|
+
export interface CreateAdvancedPriceVersionInput {
|
|
73
|
+
meterKey: string;
|
|
74
|
+
components: PriceComponentInput[];
|
|
75
|
+
rates?: PriceRateInput[];
|
|
76
|
+
idempotencyKey: string;
|
|
77
|
+
metadata?: Record<string, unknown>;
|
|
78
|
+
}
|
|
72
79
|
export interface ReserveCreditsInput extends EnsureAccountInput {
|
|
73
80
|
priceId: string;
|
|
74
81
|
estimatedUsage: UsageQuantities;
|
|
@@ -161,6 +168,7 @@ export declare class CreditLedger {
|
|
|
161
168
|
}>;
|
|
162
169
|
registerMeter(input: RegisterMeterInput): Promise<MeterDefinition>;
|
|
163
170
|
createPriceVersion(input: CreatePriceVersionInput): Promise<PriceVersion>;
|
|
171
|
+
createPriceVersion(input: CreateAdvancedPriceVersionInput): Promise<PriceVersion>;
|
|
164
172
|
createFundingIntent(input: CreateFundingIntentInput): Promise<FundingIntent>;
|
|
165
173
|
confirmFunding(input: ConfirmFundingInput): Promise<{
|
|
166
174
|
account: CreditAccount;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ledger.d.ts","sourceRoot":"","sources":["../../src/credits/ledger.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ledger.d.ts","sourceRoot":"","sources":["../../src/credits/ledger.ts"],"names":[],"mappings":"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"}
|
package/dist/credits/ledger.js
CHANGED
|
@@ -271,15 +271,21 @@ export class CreditLedger {
|
|
|
271
271
|
if (!meter)
|
|
272
272
|
throw new CreditNotFoundError('Meter', input.meterKey);
|
|
273
273
|
const versions = await tx.listPriceVersions(meter.id);
|
|
274
|
-
const
|
|
274
|
+
const base = {
|
|
275
275
|
id: createId('price'),
|
|
276
276
|
projectId: this.projectId,
|
|
277
277
|
meter,
|
|
278
278
|
version: versions.reduce((max, item) => Math.max(max, item.version), 0) + 1,
|
|
279
|
-
rates: input.rates,
|
|
280
279
|
createdAt: this.now(),
|
|
281
280
|
metadata: input.metadata,
|
|
282
|
-
}
|
|
281
|
+
};
|
|
282
|
+
const price = 'components' in input
|
|
283
|
+
? createPriceVersion({
|
|
284
|
+
...base,
|
|
285
|
+
rates: input.rates,
|
|
286
|
+
components: input.components,
|
|
287
|
+
})
|
|
288
|
+
: createPriceVersion({ ...base, rates: input.rates });
|
|
283
289
|
await tx.savePriceVersion(price);
|
|
284
290
|
return price;
|
|
285
291
|
}));
|