@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/dist/pricing/rating.js
CHANGED
|
@@ -21,24 +21,26 @@ export function createPriceVersion(input) {
|
|
|
21
21
|
if (input.projectId !== input.meter.projectId) {
|
|
22
22
|
throw new Error('Price and meter must belong to the same project');
|
|
23
23
|
}
|
|
24
|
-
if (input.
|
|
25
|
-
throw new Error('
|
|
24
|
+
if (input.components && input.components.length === 0) {
|
|
25
|
+
throw new Error('Advanced pricing requires at least one component');
|
|
26
|
+
}
|
|
27
|
+
if ((input.rates?.length ?? 0) === 0 && !input.components) {
|
|
28
|
+
throw new Error('A price requires at least one rate or component');
|
|
26
29
|
}
|
|
27
30
|
const seen = new Set();
|
|
28
|
-
const
|
|
29
|
-
const dimension = assertIdentifier(
|
|
30
|
-
if (!input.meter.dimensions.includes(dimension))
|
|
31
|
+
const claimDimension = (value) => {
|
|
32
|
+
const dimension = assertIdentifier(value);
|
|
33
|
+
if (!input.meter.dimensions.includes(dimension))
|
|
31
34
|
throw new Error(`Unknown meter dimension: ${dimension}`);
|
|
32
|
-
|
|
33
|
-
if (seen.has(dimension)) {
|
|
35
|
+
if (seen.has(dimension))
|
|
34
36
|
throw new Error(`Duplicate price dimension: ${dimension}`);
|
|
35
|
-
}
|
|
36
37
|
seen.add(dimension);
|
|
38
|
+
return dimension;
|
|
39
|
+
};
|
|
40
|
+
const rates = (input.rates ?? []).map((rate) => {
|
|
41
|
+
const dimension = claimDimension(rate.dimension);
|
|
37
42
|
const unitSize = parsePositiveInteger(rate.unitSize, 'unitSize').toString();
|
|
38
|
-
const amountUnits =
|
|
39
|
-
if (amountUnits <= 0n) {
|
|
40
|
-
throw new Error('Rate amount must be positive');
|
|
41
|
-
}
|
|
43
|
+
const amountUnits = parsePositiveAmount(rate.amount, 'Rate amount');
|
|
42
44
|
return {
|
|
43
45
|
dimension,
|
|
44
46
|
unitSize,
|
|
@@ -46,6 +48,7 @@ export function createPriceVersion(input) {
|
|
|
46
48
|
amountUnits: amountUnits.toString(),
|
|
47
49
|
};
|
|
48
50
|
});
|
|
51
|
+
const components = input.components?.map((component) => normalizeComponent(component, claimDimension(component.dimension)));
|
|
49
52
|
return {
|
|
50
53
|
id: assertIdentifier(input.id),
|
|
51
54
|
projectId: assertIdentifier(input.projectId),
|
|
@@ -54,11 +57,22 @@ export function createPriceVersion(input) {
|
|
|
54
57
|
version: input.version,
|
|
55
58
|
currency: 'USD',
|
|
56
59
|
rates,
|
|
60
|
+
...(components ? { components } : {}),
|
|
57
61
|
createdAt: input.createdAt ?? Date.now(),
|
|
58
62
|
metadata: input.metadata,
|
|
59
63
|
};
|
|
60
64
|
}
|
|
61
65
|
export function rateUsage(price, quantities) {
|
|
66
|
+
const knownDimensions = new Set([
|
|
67
|
+
...price.rates.map((rate) => rate.dimension),
|
|
68
|
+
...(price.components ?? []).map((component) => component.dimension),
|
|
69
|
+
]);
|
|
70
|
+
for (const [dimension, quantity] of Object.entries(quantities)) {
|
|
71
|
+
parseNonNegativeInteger(quantity, dimension);
|
|
72
|
+
if (!knownDimensions.has(dimension)) {
|
|
73
|
+
throw new Error(`Usage contains an unpriced dimension: ${dimension}`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
62
76
|
const lineItems = price.rates.map((rate) => {
|
|
63
77
|
const quantity = parseNonNegativeInteger(quantities[rate.dimension] ?? '0', rate.dimension);
|
|
64
78
|
const rateUnits = parseCreditUnits(rate.amountUnits, 'rate amount units');
|
|
@@ -73,10 +87,11 @@ export function rateUsage(price, quantities) {
|
|
|
73
87
|
amountUnits: amountUnits.toString(),
|
|
74
88
|
};
|
|
75
89
|
});
|
|
76
|
-
for (const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
90
|
+
for (const component of price.components ?? []) {
|
|
91
|
+
const quantity = parseNonNegativeInteger(quantities[component.dimension] ?? '0', component.dimension);
|
|
92
|
+
lineItems.push(...(component.model === 'graduated'
|
|
93
|
+
? rateGraduatedComponent(component, quantity)
|
|
94
|
+
: [ratePackageComponent(component, quantity)]));
|
|
80
95
|
}
|
|
81
96
|
const totalUnits = lineItems.reduce((total, item) => total + parseCreditUnits(item.amountUnits), 0n);
|
|
82
97
|
return {
|
|
@@ -86,6 +101,95 @@ export function rateUsage(price, quantities) {
|
|
|
86
101
|
lineItems,
|
|
87
102
|
};
|
|
88
103
|
}
|
|
104
|
+
function normalizeComponent(component, dimension) {
|
|
105
|
+
if (component.model === 'package') {
|
|
106
|
+
const packageSize = parsePositiveInteger(component.packageSize, 'packageSize').toString();
|
|
107
|
+
const amountUnits = parsePositiveAmount(component.amount, 'Package amount');
|
|
108
|
+
return {
|
|
109
|
+
model: 'package',
|
|
110
|
+
dimension,
|
|
111
|
+
packageSize,
|
|
112
|
+
amount: creditUnitsToString(amountUnits),
|
|
113
|
+
amountUnits: amountUnits.toString(),
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
if (component.tiers.length === 0) {
|
|
117
|
+
throw new Error('A graduated component requires at least one tier');
|
|
118
|
+
}
|
|
119
|
+
let previousUpTo = 0n;
|
|
120
|
+
const tiers = component.tiers.map((tier, index) => {
|
|
121
|
+
const finalTier = index === component.tiers.length - 1;
|
|
122
|
+
if (finalTier && tier.upTo !== undefined) {
|
|
123
|
+
throw new Error('The final graduated tier must be unbounded');
|
|
124
|
+
}
|
|
125
|
+
if (!finalTier && tier.upTo === undefined) {
|
|
126
|
+
throw new Error('Only the final graduated tier may be unbounded');
|
|
127
|
+
}
|
|
128
|
+
let upTo;
|
|
129
|
+
if (tier.upTo !== undefined) {
|
|
130
|
+
const parsedUpTo = parsePositiveInteger(tier.upTo, 'tier upTo');
|
|
131
|
+
if (parsedUpTo <= previousUpTo) {
|
|
132
|
+
throw new Error('Graduated tier upTo values must be strictly increasing');
|
|
133
|
+
}
|
|
134
|
+
previousUpTo = parsedUpTo;
|
|
135
|
+
upTo = parsedUpTo.toString();
|
|
136
|
+
}
|
|
137
|
+
const unitSize = parsePositiveInteger(tier.unitSize, 'tier unitSize').toString();
|
|
138
|
+
const amountUnits = parsePositiveAmount(tier.amount, 'Tier amount');
|
|
139
|
+
return {
|
|
140
|
+
unitSize,
|
|
141
|
+
amount: creditUnitsToString(amountUnits),
|
|
142
|
+
amountUnits: amountUnits.toString(),
|
|
143
|
+
...(upTo ? { upTo } : {}),
|
|
144
|
+
};
|
|
145
|
+
});
|
|
146
|
+
return { model: 'graduated', dimension, tiers };
|
|
147
|
+
}
|
|
148
|
+
function rateGraduatedComponent(component, quantity) {
|
|
149
|
+
let tierFrom = 0n;
|
|
150
|
+
return component.tiers.map((tier, tierIndex) => {
|
|
151
|
+
const tierUpTo = tier.upTo === undefined ? undefined : BigInt(tier.upTo);
|
|
152
|
+
const capacity = tierUpTo === undefined ? undefined : tierUpTo - tierFrom;
|
|
153
|
+
const remaining = quantity > tierFrom ? quantity - tierFrom : 0n;
|
|
154
|
+
const tierQuantity = capacity === undefined || remaining < capacity ? remaining : capacity;
|
|
155
|
+
const rateUnits = parseCreditUnits(tier.amountUnits, 'tier amount units');
|
|
156
|
+
const amountUnits = divideCeil(tierQuantity * rateUnits, BigInt(tier.unitSize));
|
|
157
|
+
const lineItem = {
|
|
158
|
+
dimension: component.dimension,
|
|
159
|
+
quantity: tierQuantity.toString(),
|
|
160
|
+
unitSize: tier.unitSize,
|
|
161
|
+
rateAmount: tier.amount,
|
|
162
|
+
rateUnits: tier.amountUnits,
|
|
163
|
+
amount: creditUnitsToString(amountUnits),
|
|
164
|
+
amountUnits: amountUnits.toString(),
|
|
165
|
+
pricingModel: 'graduated',
|
|
166
|
+
tierIndex,
|
|
167
|
+
tierFrom: tierFrom.toString(),
|
|
168
|
+
...(tier.upTo === undefined ? {} : { tierUpTo: tier.upTo }),
|
|
169
|
+
};
|
|
170
|
+
if (tierUpTo !== undefined)
|
|
171
|
+
tierFrom = tierUpTo;
|
|
172
|
+
return lineItem;
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
function ratePackageComponent(component, quantity) {
|
|
176
|
+
const packageSize = BigInt(component.packageSize);
|
|
177
|
+
const packageCount = quantity === 0n ? 0n : divideCeil(quantity, packageSize);
|
|
178
|
+
const rateUnits = parseCreditUnits(component.amountUnits, 'package amount units');
|
|
179
|
+
const amountUnits = packageCount * rateUnits;
|
|
180
|
+
return {
|
|
181
|
+
dimension: component.dimension,
|
|
182
|
+
quantity: quantity.toString(),
|
|
183
|
+
unitSize: component.packageSize,
|
|
184
|
+
rateAmount: component.amount,
|
|
185
|
+
rateUnits: component.amountUnits,
|
|
186
|
+
amount: creditUnitsToString(amountUnits),
|
|
187
|
+
amountUnits: amountUnits.toString(),
|
|
188
|
+
pricingModel: 'package',
|
|
189
|
+
packageSize: component.packageSize,
|
|
190
|
+
packageCount: packageCount.toString(),
|
|
191
|
+
};
|
|
192
|
+
}
|
|
89
193
|
function assertIdentifier(value) {
|
|
90
194
|
const normalized = value.trim();
|
|
91
195
|
if (!/^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,127}$/.test(normalized)) {
|
|
@@ -100,6 +204,12 @@ function parsePositiveInteger(value, label) {
|
|
|
100
204
|
}
|
|
101
205
|
return parsed;
|
|
102
206
|
}
|
|
207
|
+
function parsePositiveAmount(value, label) {
|
|
208
|
+
const amountUnits = toCreditUnits(value);
|
|
209
|
+
if (amountUnits <= 0n)
|
|
210
|
+
throw new Error(`${label} must be positive`);
|
|
211
|
+
return amountUnits;
|
|
212
|
+
}
|
|
103
213
|
function parseNonNegativeInteger(value, label) {
|
|
104
214
|
if (!/^(0|[1-9]\d*)$/.test(value)) {
|
|
105
215
|
throw new Error(`${label} must be a non-negative integer`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rating.js","sourceRoot":"","sources":["../../src/pricing/rating.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,gBAAgB,EAChB,aAAa,GACd,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"rating.js","sourceRoot":"","sources":["../../src/pricing/rating.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@resvary/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0-rc.1",
|
|
4
4
|
"description": "Prepaid credits and usage billing SDK for AI products",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -26,6 +26,10 @@
|
|
|
26
26
|
"types": "./dist/credits/index.d.ts",
|
|
27
27
|
"import": "./dist/credits/index.js"
|
|
28
28
|
},
|
|
29
|
+
"./admin": {
|
|
30
|
+
"types": "./dist/admin/index.d.ts",
|
|
31
|
+
"import": "./dist/admin/index.js"
|
|
32
|
+
},
|
|
29
33
|
"./pricing": {
|
|
30
34
|
"types": "./dist/pricing/index.d.ts",
|
|
31
35
|
"import": "./dist/pricing/index.js"
|
|
@@ -115,5 +119,5 @@
|
|
|
115
119
|
"typescript": "^5.6.0",
|
|
116
120
|
"vitest": "^4.1.11"
|
|
117
121
|
},
|
|
118
|
-
"gitHead": "
|
|
122
|
+
"gitHead": "eba3747434a962da4f057390f411a54b799dfd93"
|
|
119
123
|
}
|