@resvary/sdk 0.5.0-alpha.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/LICENSE +13 -0
- package/README.md +17 -0
- package/dist/billing/index.d.ts +3 -0
- package/dist/billing/index.d.ts.map +1 -0
- package/dist/billing/index.js +3 -0
- package/dist/billing/index.js.map +1 -0
- package/dist/billing/meter.d.ts +97 -0
- package/dist/billing/meter.d.ts.map +1 -0
- package/dist/billing/meter.js +109 -0
- package/dist/billing/meter.js.map +1 -0
- package/dist/billing/plans.d.ts +77 -0
- package/dist/billing/plans.d.ts.map +1 -0
- package/dist/billing/plans.js +65 -0
- package/dist/billing/plans.js.map +1 -0
- package/dist/client/buyer.d.ts +82 -0
- package/dist/client/buyer.d.ts.map +1 -0
- package/dist/client/buyer.js +168 -0
- package/dist/client/buyer.js.map +1 -0
- package/dist/client/index.d.ts +2 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +2 -0
- package/dist/client/index.js.map +1 -0
- package/dist/constants.d.ts +36 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +42 -0
- package/dist/constants.js.map +1 -0
- package/dist/credits/amount.d.ts +7 -0
- package/dist/credits/amount.d.ts.map +1 -0
- package/dist/credits/amount.js +36 -0
- package/dist/credits/amount.js.map +1 -0
- package/dist/credits/errors.d.ts +20 -0
- package/dist/credits/errors.d.ts.map +1 -0
- package/dist/credits/errors.js +35 -0
- package/dist/credits/errors.js.map +1 -0
- package/dist/credits/index.d.ts +7 -0
- package/dist/credits/index.d.ts.map +1 -0
- package/dist/credits/index.js +6 -0
- package/dist/credits/index.js.map +1 -0
- package/dist/credits/ledger.d.ts +175 -0
- package/dist/credits/ledger.d.ts.map +1 -0
- package/dist/credits/ledger.js +705 -0
- package/dist/credits/ledger.js.map +1 -0
- package/dist/credits/store.d.ts +104 -0
- package/dist/credits/store.d.ts.map +1 -0
- package/dist/credits/store.js +420 -0
- package/dist/credits/store.js.map +1 -0
- package/dist/credits/types.d.ts +234 -0
- package/dist/credits/types.d.ts.map +1 -0
- package/dist/credits/types.js +2 -0
- package/dist/credits/types.js.map +1 -0
- package/dist/credits/webhooks.d.ts +5 -0
- package/dist/credits/webhooks.d.ts.map +1 -0
- package/dist/credits/webhooks.js +13 -0
- package/dist/credits/webhooks.js.map +1 -0
- package/dist/funding/arc-worker.d.ts +55 -0
- package/dist/funding/arc-worker.d.ts.map +1 -0
- package/dist/funding/arc-worker.js +133 -0
- package/dist/funding/arc-worker.js.map +1 -0
- package/dist/funding/arc.d.ts +38 -0
- package/dist/funding/arc.d.ts.map +1 -0
- package/dist/funding/arc.js +83 -0
- package/dist/funding/arc.js.map +1 -0
- package/dist/funding/index.d.ts +3 -0
- package/dist/funding/index.d.ts.map +1 -0
- package/dist/funding/index.js +3 -0
- package/dist/funding/index.js.map +1 -0
- package/dist/gateway/client.d.ts +51 -0
- package/dist/gateway/client.d.ts.map +1 -0
- package/dist/gateway/client.js +59 -0
- package/dist/gateway/client.js.map +1 -0
- package/dist/gateway/index.d.ts +2 -0
- package/dist/gateway/index.d.ts.map +1 -0
- package/dist/gateway/index.js +2 -0
- package/dist/gateway/index.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/middleware/express.d.ts +25 -0
- package/dist/middleware/express.d.ts.map +1 -0
- package/dist/middleware/express.js +61 -0
- package/dist/middleware/express.js.map +1 -0
- package/dist/middleware/index.d.ts +4 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +4 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/middleware/next.d.ts +27 -0
- package/dist/middleware/next.d.ts.map +1 -0
- package/dist/middleware/next.js +67 -0
- package/dist/middleware/next.js.map +1 -0
- package/dist/middleware/paywall.d.ts +54 -0
- package/dist/middleware/paywall.d.ts.map +1 -0
- package/dist/middleware/paywall.js +102 -0
- package/dist/middleware/paywall.js.map +1 -0
- package/dist/pricing/index.d.ts +3 -0
- package/dist/pricing/index.d.ts.map +1 -0
- package/dist/pricing/index.js +2 -0
- package/dist/pricing/index.js.map +1 -0
- package/dist/pricing/rating.d.ts +21 -0
- package/dist/pricing/rating.d.ts.map +1 -0
- package/dist/pricing/rating.js +109 -0
- package/dist/pricing/rating.js.map +1 -0
- package/dist/receipts/amount.d.ts +8 -0
- package/dist/receipts/amount.d.ts.map +1 -0
- package/dist/receipts/amount.js +27 -0
- package/dist/receipts/amount.js.map +1 -0
- package/dist/receipts/index.d.ts +16 -0
- package/dist/receipts/index.d.ts.map +1 -0
- package/dist/receipts/index.js +15 -0
- package/dist/receipts/index.js.map +1 -0
- package/dist/receipts/invoice.d.ts +18 -0
- package/dist/receipts/invoice.d.ts.map +1 -0
- package/dist/receipts/invoice.js +112 -0
- package/dist/receipts/invoice.js.map +1 -0
- package/dist/receipts/ledger.d.ts +30 -0
- package/dist/receipts/ledger.d.ts.map +1 -0
- package/dist/receipts/ledger.js +109 -0
- package/dist/receipts/ledger.js.map +1 -0
- package/dist/receipts/memo-payment.d.ts +100 -0
- package/dist/receipts/memo-payment.d.ts.map +1 -0
- package/dist/receipts/memo-payment.js +91 -0
- package/dist/receipts/memo-payment.js.map +1 -0
- package/dist/receipts/memo.d.ts +14 -0
- package/dist/receipts/memo.d.ts.map +1 -0
- package/dist/receipts/memo.js +39 -0
- package/dist/receipts/memo.js.map +1 -0
- package/dist/receipts/persistent-ledger.d.ts +27 -0
- package/dist/receipts/persistent-ledger.d.ts.map +1 -0
- package/dist/receipts/persistent-ledger.js +111 -0
- package/dist/receipts/persistent-ledger.js.map +1 -0
- package/dist/receipts/persistent-webhook-inbox.d.ts +32 -0
- package/dist/receipts/persistent-webhook-inbox.d.ts.map +1 -0
- package/dist/receipts/persistent-webhook-inbox.js +93 -0
- package/dist/receipts/persistent-webhook-inbox.js.map +1 -0
- package/dist/receipts/proof.d.ts +80 -0
- package/dist/receipts/proof.d.ts.map +1 -0
- package/dist/receipts/proof.js +223 -0
- package/dist/receipts/proof.js.map +1 -0
- package/dist/receipts/serialization.d.ts +3 -0
- package/dist/receipts/serialization.d.ts.map +1 -0
- package/dist/receipts/serialization.js +24 -0
- package/dist/receipts/serialization.js.map +1 -0
- package/dist/receipts/store.d.ts +69 -0
- package/dist/receipts/store.d.ts.map +1 -0
- package/dist/receipts/store.js +85 -0
- package/dist/receipts/store.js.map +1 -0
- package/dist/receipts/types.d.ts +134 -0
- package/dist/receipts/types.d.ts.map +1 -0
- package/dist/receipts/types.js +5 -0
- package/dist/receipts/types.js.map +1 -0
- package/dist/receipts/watcher.d.ts +92 -0
- package/dist/receipts/watcher.d.ts.map +1 -0
- package/dist/receipts/watcher.js +323 -0
- package/dist/receipts/watcher.js.map +1 -0
- package/dist/receipts/webhook-inbox.d.ts +34 -0
- package/dist/receipts/webhook-inbox.d.ts.map +1 -0
- package/dist/receipts/webhook-inbox.js +101 -0
- package/dist/receipts/webhook-inbox.js.map +1 -0
- package/dist/receipts/webhook-route.d.ts +22 -0
- package/dist/receipts/webhook-route.d.ts.map +1 -0
- package/dist/receipts/webhook-route.js +37 -0
- package/dist/receipts/webhook-route.js.map +1 -0
- package/dist/receipts/webhooks.d.ts +20 -0
- package/dist/receipts/webhooks.d.ts.map +1 -0
- package/dist/receipts/webhooks.js +72 -0
- package/dist/receipts/webhooks.js.map +1 -0
- package/dist/types.d.ts +101 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/package.json +116 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buyer.js","sourceRoot":"","sources":["../../src/client/buyer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA6C,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Arc network configuration constants.
|
|
3
|
+
*/
|
|
4
|
+
import type { NetworkConfig } from './types.js';
|
|
5
|
+
/** USDC uses 6 decimal places */
|
|
6
|
+
export declare const USDC_DECIMALS = 6;
|
|
7
|
+
/** Minimum payment amount in USDC */
|
|
8
|
+
export declare const MIN_PAYMENT = "0.000001";
|
|
9
|
+
/** x402 protocol header name */
|
|
10
|
+
export declare const X402_HEADER = "x-payment";
|
|
11
|
+
/** x402 payment requirements header */
|
|
12
|
+
export declare const PAYMENT_REQUIRED_HEADER = "x-payment-requirements";
|
|
13
|
+
/** HTTP 402 status code */
|
|
14
|
+
export declare const HTTP_402 = 402;
|
|
15
|
+
/** Arc Testnet predeployed contract addresses */
|
|
16
|
+
export declare const ARC_TESTNET_CONTRACTS: {
|
|
17
|
+
/** Optional ERC-20 interface for Arc's native USDC balance (6 decimals) */
|
|
18
|
+
readonly usdc: "0x3600000000000000000000000000000000000000";
|
|
19
|
+
/** Predeployed transaction memo contract */
|
|
20
|
+
readonly memo: "0x5294E9927c3306DcBaDb03fe70b92e01cCede505";
|
|
21
|
+
/** Native USDC system event emitter (18 decimals) */
|
|
22
|
+
readonly nativeUsdcSystemEmitter: "0xfffffffffffffffffffffffffffffffffffffffe";
|
|
23
|
+
};
|
|
24
|
+
/** Arc Testnet configuration */
|
|
25
|
+
export declare const ARC_TESTNET: NetworkConfig;
|
|
26
|
+
/** Default configuration values */
|
|
27
|
+
export declare const DEFAULTS: {
|
|
28
|
+
readonly network: "arc-testnet";
|
|
29
|
+
readonly scheme: "exact";
|
|
30
|
+
readonly x402Version: 2;
|
|
31
|
+
/** Default payment validity window: 1 hour */
|
|
32
|
+
readonly paymentValiditySeconds: 3600;
|
|
33
|
+
/** Default batch settlement interval: 5 minutes */
|
|
34
|
+
readonly batchIntervalMs: 300000;
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,iCAAiC;AACjC,eAAO,MAAM,aAAa,IAAI,CAAC;AAE/B,qCAAqC;AACrC,eAAO,MAAM,WAAW,aAAa,CAAC;AAEtC,gCAAgC;AAChC,eAAO,MAAM,WAAW,cAAc,CAAC;AAEvC,uCAAuC;AACvC,eAAO,MAAM,uBAAuB,2BAA2B,CAAC;AAEhE,2BAA2B;AAC3B,eAAO,MAAM,QAAQ,MAAM,CAAC;AAE5B,iDAAiD;AACjD,eAAO,MAAM,qBAAqB;IAChC,2EAA2E;;IAE3E,4CAA4C;;IAE5C,qDAAqD;;CAE7C,CAAC;AAEX,gCAAgC;AAChC,eAAO,MAAM,WAAW,EAAE,aAOhB,CAAC;AAEX,mCAAmC;AACnC,eAAO,MAAM,QAAQ;;;;IAInB,8CAA8C;;IAE9C,mDAAmD;;CAE3C,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Arc network configuration constants.
|
|
3
|
+
*/
|
|
4
|
+
/** USDC uses 6 decimal places */
|
|
5
|
+
export const USDC_DECIMALS = 6;
|
|
6
|
+
/** Minimum payment amount in USDC */
|
|
7
|
+
export const MIN_PAYMENT = '0.000001';
|
|
8
|
+
/** x402 protocol header name */
|
|
9
|
+
export const X402_HEADER = 'x-payment';
|
|
10
|
+
/** x402 payment requirements header */
|
|
11
|
+
export const PAYMENT_REQUIRED_HEADER = 'x-payment-requirements';
|
|
12
|
+
/** HTTP 402 status code */
|
|
13
|
+
export const HTTP_402 = 402;
|
|
14
|
+
/** Arc Testnet predeployed contract addresses */
|
|
15
|
+
export const ARC_TESTNET_CONTRACTS = {
|
|
16
|
+
/** Optional ERC-20 interface for Arc's native USDC balance (6 decimals) */
|
|
17
|
+
usdc: '0x3600000000000000000000000000000000000000',
|
|
18
|
+
/** Predeployed transaction memo contract */
|
|
19
|
+
memo: '0x5294E9927c3306DcBaDb03fe70b92e01cCede505',
|
|
20
|
+
/** Native USDC system event emitter (18 decimals) */
|
|
21
|
+
nativeUsdcSystemEmitter: '0xfffffffffffffffffffffffffffffffffffffffe',
|
|
22
|
+
};
|
|
23
|
+
/** Arc Testnet configuration */
|
|
24
|
+
export const ARC_TESTNET = {
|
|
25
|
+
chainId: 5042002,
|
|
26
|
+
rpcUrl: 'https://rpc.testnet.arc.network',
|
|
27
|
+
name: 'Arc Testnet',
|
|
28
|
+
usdcAddress: ARC_TESTNET_CONTRACTS.usdc,
|
|
29
|
+
explorerUrl: 'https://testnet.arcscan.app',
|
|
30
|
+
cctpDomainId: 26,
|
|
31
|
+
};
|
|
32
|
+
/** Default configuration values */
|
|
33
|
+
export const DEFAULTS = {
|
|
34
|
+
network: 'arc-testnet',
|
|
35
|
+
scheme: 'exact',
|
|
36
|
+
x402Version: 2,
|
|
37
|
+
/** Default payment validity window: 1 hour */
|
|
38
|
+
paymentValiditySeconds: 3600,
|
|
39
|
+
/** Default batch settlement interval: 5 minutes */
|
|
40
|
+
batchIntervalMs: 300_000,
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,iCAAiC;AACjC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC;AAE/B,qCAAqC;AACrC,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAC;AAEtC,gCAAgC;AAChC,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAC;AAEvC,uCAAuC;AACvC,MAAM,CAAC,MAAM,uBAAuB,GAAG,wBAAwB,CAAC;AAEhE,2BAA2B;AAC3B,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAC;AAE5B,iDAAiD;AACjD,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,2EAA2E;IAC3E,IAAI,EAAE,4CAA4C;IAClD,4CAA4C;IAC5C,IAAI,EAAE,4CAA4C;IAClD,qDAAqD;IACrD,uBAAuB,EAAE,4CAA4C;CAC7D,CAAC;AAEX,gCAAgC;AAChC,MAAM,CAAC,MAAM,WAAW,GAAkB;IACxC,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,iCAAiC;IACzC,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,qBAAqB,CAAC,IAAI;IACvC,WAAW,EAAE,6BAA6B;IAC1C,YAAY,EAAE,EAAE;CACR,CAAC;AAEX,mCAAmC;AACnC,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,OAAO,EAAE,aAAa;IACtB,MAAM,EAAE,OAAO;IACf,WAAW,EAAE,CAAC;IACd,8CAA8C;IAC9C,sBAAsB,EAAE,IAAI;IAC5B,mDAAmD;IACnD,eAAe,EAAE,OAAO;CAChB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const CREDIT_DECIMALS = 6;
|
|
2
|
+
export declare const CREDIT_SCALE: bigint;
|
|
3
|
+
export declare function toCreditUnits(amount: string): bigint;
|
|
4
|
+
export declare function creditUnitsToString(units: bigint): string;
|
|
5
|
+
export declare function parseCreditUnits(units: string, label?: string): bigint;
|
|
6
|
+
export declare function divideCeil(numerator: bigint, denominator: bigint): bigint;
|
|
7
|
+
//# sourceMappingURL=amount.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"amount.d.ts","sourceRoot":"","sources":["../../src/credits/amount.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,eAAO,MAAM,YAAY,QAAiC,CAAC;AAI3D,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAUpD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAUzD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAU,GAAG,MAAM,CAMvE;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAMzE"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export const CREDIT_DECIMALS = 6;
|
|
2
|
+
export const CREDIT_SCALE = 10n ** BigInt(CREDIT_DECIMALS);
|
|
3
|
+
const CREDIT_AMOUNT_PATTERN = /^(0|[1-9]\d*)(?:\.(\d{1,6}))?$/;
|
|
4
|
+
export function toCreditUnits(amount) {
|
|
5
|
+
const normalized = amount.trim();
|
|
6
|
+
const match = CREDIT_AMOUNT_PATTERN.exec(normalized);
|
|
7
|
+
if (!match) {
|
|
8
|
+
throw new Error(`Invalid USD credit amount: ${amount}`);
|
|
9
|
+
}
|
|
10
|
+
const whole = BigInt(match[1]);
|
|
11
|
+
const fraction = (match[2] ?? '').padEnd(CREDIT_DECIMALS, '0');
|
|
12
|
+
return whole * CREDIT_SCALE + BigInt(fraction || '0');
|
|
13
|
+
}
|
|
14
|
+
export function creditUnitsToString(units) {
|
|
15
|
+
const sign = units < 0n ? '-' : '';
|
|
16
|
+
const absolute = units < 0n ? -units : units;
|
|
17
|
+
const whole = absolute / CREDIT_SCALE;
|
|
18
|
+
const fraction = (absolute % CREDIT_SCALE)
|
|
19
|
+
.toString()
|
|
20
|
+
.padStart(CREDIT_DECIMALS, '0')
|
|
21
|
+
.replace(/0+$/, '');
|
|
22
|
+
return `${sign}${whole}${fraction ? `.${fraction}` : ''}`;
|
|
23
|
+
}
|
|
24
|
+
export function parseCreditUnits(units, label = 'units') {
|
|
25
|
+
if (!/^-?\d+$/.test(units)) {
|
|
26
|
+
throw new Error(`Invalid ${label}: ${units}`);
|
|
27
|
+
}
|
|
28
|
+
return BigInt(units);
|
|
29
|
+
}
|
|
30
|
+
export function divideCeil(numerator, denominator) {
|
|
31
|
+
if (numerator < 0n || denominator <= 0n) {
|
|
32
|
+
throw new Error('divideCeil requires a non-negative numerator and positive denominator');
|
|
33
|
+
}
|
|
34
|
+
return numerator === 0n ? 0n : (numerator + denominator - 1n) / denominator;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=amount.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"amount.js","sourceRoot":"","sources":["../../src/credits/amount.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AACjC,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,IAAI,MAAM,CAAC,eAAe,CAAC,CAAC;AAE3D,MAAM,qBAAqB,GAAG,gCAAgC,CAAC;AAE/D,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;IAChC,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IAC/D,OAAO,KAAK,GAAG,YAAY,GAAG,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,MAAM,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7C,MAAM,KAAK,GAAG,QAAQ,GAAG,YAAY,CAAC;IACtC,MAAM,QAAQ,GAAG,CAAC,QAAQ,GAAG,YAAY,CAAC;SACvC,QAAQ,EAAE;SACV,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC;SAC9B,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAEtB,OAAO,GAAG,IAAI,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,KAAK,GAAG,OAAO;IAC7D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,WAAW,KAAK,KAAK,KAAK,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,SAAiB,EAAE,WAAmB;IAC/D,IAAI,SAAS,GAAG,EAAE,IAAI,WAAW,IAAI,EAAE,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IAC3F,CAAC;IAED,OAAO,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,WAAW,GAAG,EAAE,CAAC,GAAG,WAAW,CAAC;AAC9E,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export declare class CreditError extends Error {
|
|
2
|
+
readonly code: string;
|
|
3
|
+
constructor(message: string, code: string);
|
|
4
|
+
}
|
|
5
|
+
export declare class InsufficientCreditsError extends CreditError {
|
|
6
|
+
readonly availableUnits: string;
|
|
7
|
+
readonly requiredUnits: string;
|
|
8
|
+
constructor(availableUnits: string, requiredUnits: string);
|
|
9
|
+
}
|
|
10
|
+
export declare class IdempotencyConflictError extends CreditError {
|
|
11
|
+
readonly idempotencyKey: string;
|
|
12
|
+
constructor(idempotencyKey: string);
|
|
13
|
+
}
|
|
14
|
+
export declare class CreditNotFoundError extends CreditError {
|
|
15
|
+
constructor(entity: string, id: string);
|
|
16
|
+
}
|
|
17
|
+
export declare class InvalidCreditStateError extends CreditError {
|
|
18
|
+
constructor(message: string);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/credits/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAY,SAAQ,KAAK;IAGlC,QAAQ,CAAC,IAAI,EAAE,MAAM;gBADrB,OAAO,EAAE,MAAM,EACN,IAAI,EAAE,MAAM;CAKxB;AAED,qBAAa,wBAAyB,SAAQ,WAAW;IAErD,QAAQ,CAAC,cAAc,EAAE,MAAM;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM;gBADrB,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM;CAOjC;AAED,qBAAa,wBAAyB,SAAQ,WAAW;IAC3C,QAAQ,CAAC,cAAc,EAAE,MAAM;gBAAtB,cAAc,EAAE,MAAM;CAM5C;AAED,qBAAa,mBAAoB,SAAQ,WAAW;gBACtC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;CAGvC;AAED,qBAAa,uBAAwB,SAAQ,WAAW;gBAC1C,OAAO,EAAE,MAAM;CAG5B"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export class CreditError extends Error {
|
|
2
|
+
code;
|
|
3
|
+
constructor(message, code) {
|
|
4
|
+
super(message);
|
|
5
|
+
this.code = code;
|
|
6
|
+
this.name = new.target.name;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export class InsufficientCreditsError extends CreditError {
|
|
10
|
+
availableUnits;
|
|
11
|
+
requiredUnits;
|
|
12
|
+
constructor(availableUnits, requiredUnits) {
|
|
13
|
+
super(`Insufficient credits: available ${availableUnits}, required ${requiredUnits}`, 'insufficient_credits');
|
|
14
|
+
this.availableUnits = availableUnits;
|
|
15
|
+
this.requiredUnits = requiredUnits;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export class IdempotencyConflictError extends CreditError {
|
|
19
|
+
idempotencyKey;
|
|
20
|
+
constructor(idempotencyKey) {
|
|
21
|
+
super(`Idempotency key was already used with a different request: ${idempotencyKey}`, 'idempotency_conflict');
|
|
22
|
+
this.idempotencyKey = idempotencyKey;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export class CreditNotFoundError extends CreditError {
|
|
26
|
+
constructor(entity, id) {
|
|
27
|
+
super(`${entity} not found: ${id}`, 'not_found');
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export class InvalidCreditStateError extends CreditError {
|
|
31
|
+
constructor(message) {
|
|
32
|
+
super(message, 'invalid_state');
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/credits/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,WAAY,SAAQ,KAAK;IAGzB;IAFX,YACE,OAAe,EACN,IAAY;QAErB,KAAK,CAAC,OAAO,CAAC,CAAC;QAFN,SAAI,GAAJ,IAAI,CAAQ;QAGrB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,wBAAyB,SAAQ,WAAW;IAE5C;IACA;IAFX,YACW,cAAsB,EACtB,aAAqB;QAE9B,KAAK,CACH,mCAAmC,cAAc,cAAc,aAAa,EAAE,EAC9E,sBAAsB,CACvB,CAAC;QANO,mBAAc,GAAd,cAAc,CAAQ;QACtB,kBAAa,GAAb,aAAa,CAAQ;IAMhC,CAAC;CACF;AAED,MAAM,OAAO,wBAAyB,SAAQ,WAAW;IAClC;IAArB,YAAqB,cAAsB;QACzC,KAAK,CACH,8DAA8D,cAAc,EAAE,EAC9E,sBAAsB,CACvB,CAAC;QAJiB,mBAAc,GAAd,cAAc,CAAQ;IAK3C,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,WAAW;IAClD,YAAY,MAAc,EAAE,EAAU;QACpC,KAAK,CAAC,GAAG,MAAM,eAAe,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;IACnD,CAAC;CACF;AAED,MAAM,OAAO,uBAAwB,SAAQ,WAAW;IACtD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAClC,CAAC;CACF"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { CREDIT_DECIMALS, CREDIT_SCALE, creditUnitsToString, divideCeil, parseCreditUnits, toCreditUnits, } from './amount.js';
|
|
2
|
+
export { CreditError, CreditNotFoundError, IdempotencyConflictError, InsufficientCreditsError, InvalidCreditStateError, } from './errors.js';
|
|
3
|
+
export { CreditLedger, type AdjustCreditsInput, type CommitUsageInput, type ConfirmFundingInput, type CreateFundingIntentInput, type CreatePriceVersionInput, type CreditLedgerConfig, type EnsureAccountInput, type FailFundingIntentInput, type GrantCreditsInput, type RegisterMeterInput, type ReleaseReservationInput, type ReserveCreditsInput, type RunMeteredCallbackResult, type RunMeteredInput, type RunMeteredResult, type UpdateFundingSettlementInput, } from './ledger.js';
|
|
4
|
+
export { InMemoryCreditStore, type CreditReservationFilter, type CreditStore, type CreditStoreReader, type CreditStoreTransaction, type ClaimOutboxEventsInput, type FailOutboxEventInput, type OutboxDeliveryStore, } from './store.js';
|
|
5
|
+
export { createCreditWebhookEvent, signCreditOutboxEvent } from './webhooks.js';
|
|
6
|
+
export type { CreditAccount, CreditAccountKey, CreditBalanceFilter, CreditCurrency, CreditEventType, CreditGrant, CreditGrantSource, CreditOutboxEvent, CreditReservation, IdempotencyRecord, FundingEvidence, FundingIntent, FundingIntentStatus, FundingRail, FundingSettlementStatus, FundingTransaction, LedgerBucket, LedgerEntry, LedgerEntryType, MeterDefinition, OutboxEventFilter, OutboxEventStatus, PriceRate, PriceRateInput, PriceVersion, RatedLineItem, RatedUsage, ReservationStatus, UsageEvent, UsageQuantities, UsageReceipt, } from './types.js';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +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,GACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,YAAY,EACZ,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,4BAA4B,GAClC,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mBAAmB,EACnB,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,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,uBAAuB,EACvB,kBAAkB,EAClB,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,GACb,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { CREDIT_DECIMALS, CREDIT_SCALE, creditUnitsToString, divideCeil, parseCreditUnits, toCreditUnits, } from './amount.js';
|
|
2
|
+
export { CreditError, CreditNotFoundError, IdempotencyConflictError, InsufficientCreditsError, InvalidCreditStateError, } from './errors.js';
|
|
3
|
+
export { CreditLedger, } from './ledger.js';
|
|
4
|
+
export { InMemoryCreditStore, } from './store.js';
|
|
5
|
+
export { createCreditWebhookEvent, signCreditOutboxEvent } from './webhooks.js';
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +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,GACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,YAAY,GAiBb,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mBAAmB,GAQpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { type CreditStore } from './store.js';
|
|
2
|
+
import type { CreditAccount, CreditGrant, CreditGrantSource, FundingEvidence, FundingIntent, FundingRail, FundingSettlementStatus, FundingTransaction, CreditOutboxEvent, CreditReservation, LedgerEntry, MeterDefinition, OutboxEventFilter, PriceRateInput, PriceVersion, UsageQuantities, UsageReceipt } from './types.js';
|
|
3
|
+
export interface CreditLedgerConfig {
|
|
4
|
+
projectId: string;
|
|
5
|
+
store?: CreditStore;
|
|
6
|
+
reservationTtlMs?: number;
|
|
7
|
+
now?: () => number;
|
|
8
|
+
}
|
|
9
|
+
export interface EnsureAccountInput {
|
|
10
|
+
customerId: string;
|
|
11
|
+
idempotencyKey: string;
|
|
12
|
+
metadata?: Record<string, unknown>;
|
|
13
|
+
}
|
|
14
|
+
export interface GrantCreditsInput extends EnsureAccountInput {
|
|
15
|
+
amount: string;
|
|
16
|
+
source?: CreditGrantSource;
|
|
17
|
+
externalRef?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface AdjustCreditsInput extends EnsureAccountInput {
|
|
20
|
+
amount: string;
|
|
21
|
+
reason: string;
|
|
22
|
+
}
|
|
23
|
+
export interface RegisterMeterInput {
|
|
24
|
+
key: string;
|
|
25
|
+
name?: string;
|
|
26
|
+
dimensions: string[];
|
|
27
|
+
idempotencyKey: string;
|
|
28
|
+
metadata?: Record<string, unknown>;
|
|
29
|
+
}
|
|
30
|
+
export interface CreatePriceVersionInput {
|
|
31
|
+
meterKey: string;
|
|
32
|
+
rates: PriceRateInput[];
|
|
33
|
+
idempotencyKey: string;
|
|
34
|
+
metadata?: Record<string, unknown>;
|
|
35
|
+
}
|
|
36
|
+
export interface ReserveCreditsInput extends EnsureAccountInput {
|
|
37
|
+
priceId: string;
|
|
38
|
+
estimatedUsage: UsageQuantities;
|
|
39
|
+
expiresAt?: number;
|
|
40
|
+
}
|
|
41
|
+
export interface CommitUsageInput {
|
|
42
|
+
reservationId: string;
|
|
43
|
+
usageEventId: string;
|
|
44
|
+
actualUsage: UsageQuantities;
|
|
45
|
+
idempotencyKey: string;
|
|
46
|
+
occurredAt?: number;
|
|
47
|
+
metadata?: Record<string, unknown>;
|
|
48
|
+
}
|
|
49
|
+
export interface ReleaseReservationInput {
|
|
50
|
+
reservationId: string;
|
|
51
|
+
idempotencyKey: string;
|
|
52
|
+
reason?: string;
|
|
53
|
+
}
|
|
54
|
+
export interface RunMeteredInput extends ReserveCreditsInput {
|
|
55
|
+
}
|
|
56
|
+
export interface RunMeteredCallbackResult<T> {
|
|
57
|
+
value: T;
|
|
58
|
+
actualUsage: UsageQuantities;
|
|
59
|
+
usageEventId: string;
|
|
60
|
+
occurredAt?: number;
|
|
61
|
+
metadata?: Record<string, unknown>;
|
|
62
|
+
}
|
|
63
|
+
export interface RunMeteredResult<T> {
|
|
64
|
+
value?: T;
|
|
65
|
+
replayed: boolean;
|
|
66
|
+
reservation: CreditReservation;
|
|
67
|
+
receipt: UsageReceipt;
|
|
68
|
+
balance: CreditAccount;
|
|
69
|
+
}
|
|
70
|
+
export interface CreateFundingIntentInput extends EnsureAccountInput {
|
|
71
|
+
id?: string;
|
|
72
|
+
amount: string;
|
|
73
|
+
rail?: FundingRail;
|
|
74
|
+
network: string;
|
|
75
|
+
invoiceId: string;
|
|
76
|
+
expiresAt?: number;
|
|
77
|
+
}
|
|
78
|
+
export interface ConfirmFundingInput {
|
|
79
|
+
fundingIntentId: string;
|
|
80
|
+
rail?: FundingRail;
|
|
81
|
+
network: string;
|
|
82
|
+
externalPaymentId?: string;
|
|
83
|
+
txHash?: `0x${string}`;
|
|
84
|
+
amount: string;
|
|
85
|
+
paymentReceiptId: string;
|
|
86
|
+
payer?: `0x${string}`;
|
|
87
|
+
settlementStatus?: Extract<FundingSettlementStatus, 'accepted' | 'settled'>;
|
|
88
|
+
settledAt?: number;
|
|
89
|
+
requireExactAmount?: boolean;
|
|
90
|
+
evidence?: Omit<FundingEvidence, 'amountUnits'>;
|
|
91
|
+
idempotencyKey: string;
|
|
92
|
+
metadata?: Record<string, unknown>;
|
|
93
|
+
}
|
|
94
|
+
export interface UpdateFundingSettlementInput {
|
|
95
|
+
fundingTransactionId: string;
|
|
96
|
+
status: Extract<FundingSettlementStatus, 'settled' | 'reconciliation_required'>;
|
|
97
|
+
idempotencyKey: string;
|
|
98
|
+
settledAt?: number;
|
|
99
|
+
reason?: string;
|
|
100
|
+
metadata?: Record<string, unknown>;
|
|
101
|
+
}
|
|
102
|
+
export interface FailFundingIntentInput {
|
|
103
|
+
fundingIntentId: string;
|
|
104
|
+
reason: string;
|
|
105
|
+
idempotencyKey: string;
|
|
106
|
+
}
|
|
107
|
+
export declare class CreditLedger {
|
|
108
|
+
readonly projectId: string;
|
|
109
|
+
readonly store: CreditStore;
|
|
110
|
+
private readonly reservationTtlMs;
|
|
111
|
+
private readonly now;
|
|
112
|
+
constructor(config: CreditLedgerConfig);
|
|
113
|
+
ensureAccount(input: EnsureAccountInput): Promise<CreditAccount>;
|
|
114
|
+
grantCredits(input: GrantCreditsInput): Promise<{
|
|
115
|
+
account: CreditAccount;
|
|
116
|
+
grant: CreditGrant;
|
|
117
|
+
}>;
|
|
118
|
+
adjustCredits(input: AdjustCreditsInput): Promise<{
|
|
119
|
+
account: CreditAccount;
|
|
120
|
+
entry: LedgerEntry;
|
|
121
|
+
}>;
|
|
122
|
+
registerMeter(input: RegisterMeterInput): Promise<MeterDefinition>;
|
|
123
|
+
createPriceVersion(input: CreatePriceVersionInput): Promise<PriceVersion>;
|
|
124
|
+
createFundingIntent(input: CreateFundingIntentInput): Promise<FundingIntent>;
|
|
125
|
+
confirmFunding(input: ConfirmFundingInput): Promise<{
|
|
126
|
+
account: CreditAccount;
|
|
127
|
+
grant: CreditGrant;
|
|
128
|
+
fundingIntent: FundingIntent;
|
|
129
|
+
fundingTransaction: FundingTransaction;
|
|
130
|
+
}>;
|
|
131
|
+
updateFundingSettlement(input: UpdateFundingSettlementInput): Promise<FundingTransaction>;
|
|
132
|
+
failFundingIntent(input: FailFundingIntentInput): Promise<FundingIntent>;
|
|
133
|
+
reserveCredits(input: ReserveCreditsInput): Promise<CreditReservation>;
|
|
134
|
+
commitUsage(input: CommitUsageInput): Promise<{
|
|
135
|
+
receipt: UsageReceipt;
|
|
136
|
+
reservation: CreditReservation;
|
|
137
|
+
balance: CreditAccount;
|
|
138
|
+
}>;
|
|
139
|
+
releaseReservation(input: ReleaseReservationInput): Promise<{
|
|
140
|
+
reservation: CreditReservation;
|
|
141
|
+
balance: CreditAccount;
|
|
142
|
+
}>;
|
|
143
|
+
releaseExpiredReservations(input: {
|
|
144
|
+
idempotencyKey: string;
|
|
145
|
+
now?: number;
|
|
146
|
+
}): Promise<CreditReservation[]>;
|
|
147
|
+
runMetered<T>(input: RunMeteredInput, callback: () => Promise<RunMeteredCallbackResult<T>>): Promise<RunMeteredResult<T>>;
|
|
148
|
+
getBalance(customerId: string): Promise<CreditAccount>;
|
|
149
|
+
getReservation(id: string): Promise<CreditReservation | undefined>;
|
|
150
|
+
getUsageReceipt(id: string): Promise<UsageReceipt | undefined>;
|
|
151
|
+
getFundingIntent(id: string): Promise<FundingIntent | undefined>;
|
|
152
|
+
listFundingIntents(): Promise<FundingIntent[]>;
|
|
153
|
+
getFundingTransaction(id: string): Promise<FundingTransaction | undefined>;
|
|
154
|
+
listFundingTransactions(fundingIntentId?: string): Promise<FundingTransaction[]>;
|
|
155
|
+
listUsageReceipts(customerId?: string): Promise<UsageReceipt[]>;
|
|
156
|
+
listLedgerEntries(customerId?: string): Promise<LedgerEntry[]>;
|
|
157
|
+
listOutboxEvents(filter?: Omit<OutboxEventFilter, 'projectId'>): Promise<CreditOutboxEvent<unknown>[]>;
|
|
158
|
+
markOutboxEventDelivered(input: {
|
|
159
|
+
eventId: string;
|
|
160
|
+
idempotencyKey: string;
|
|
161
|
+
deliveredAt?: number;
|
|
162
|
+
}): Promise<CreditOutboxEvent>;
|
|
163
|
+
private ensureAccountInTransaction;
|
|
164
|
+
private expireOpenReservations;
|
|
165
|
+
private expireReservation;
|
|
166
|
+
private closeReservation;
|
|
167
|
+
private idempotent;
|
|
168
|
+
private saveLedgerEntry;
|
|
169
|
+
private saveOutboxEvent;
|
|
170
|
+
private requirePrice;
|
|
171
|
+
private requireReservation;
|
|
172
|
+
private requireAccountById;
|
|
173
|
+
private requireUsageReceipt;
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=ledger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ledger.d.ts","sourceRoot":"","sources":["../../src/credits/ledger.ts"],"names":[],"mappings":"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"}
|