@antseed/cli 0.1.70 → 0.1.72
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/dist/cli/commands/metering.d.ts +3 -0
- package/dist/cli/commands/metering.d.ts.map +1 -0
- package/dist/cli/commands/metering.js +104 -0
- package/dist/cli/commands/metering.js.map +1 -0
- package/dist/cli/commands/metering.test.d.ts +2 -0
- package/dist/cli/commands/metering.test.d.ts.map +1 -0
- package/dist/cli/commands/metering.test.js +119 -0
- package/dist/cli/commands/metering.test.js.map +1 -0
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/payment-utils.d.ts +1 -0
- package/dist/cli/payment-utils.d.ts.map +1 -1
- package/dist/cli/payment-utils.js +3 -1
- package/dist/cli/payment-utils.js.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metering.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/metering.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBzC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiG9D"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { getGlobalOptions } from './types.js';
|
|
3
|
+
import { loadOrCreateIdentity } from '@antseed/node';
|
|
4
|
+
import { openChannelStore } from '../payment-utils.js';
|
|
5
|
+
/** Format USDC base units (6 decimals) to human-readable string. */
|
|
6
|
+
function formatUsdc(baseUnits) {
|
|
7
|
+
const n = BigInt(baseUnits);
|
|
8
|
+
const abs = n < 0n ? -n : n;
|
|
9
|
+
const sign = n < 0n ? '-' : '';
|
|
10
|
+
const whole = abs / 1000000n;
|
|
11
|
+
const frac = abs % 1000000n;
|
|
12
|
+
const fracStr = frac.toString().padStart(6, '0').replace(/0+$/, '') || '0';
|
|
13
|
+
return `${sign}${whole}.${fracStr}`;
|
|
14
|
+
}
|
|
15
|
+
export function registerMeteringCommand(program) {
|
|
16
|
+
program
|
|
17
|
+
.command('metering')
|
|
18
|
+
.description('Show payment channel and usage stats from local database')
|
|
19
|
+
.option('--peer <peerId>', 'show stats for a specific peer')
|
|
20
|
+
.option('--json', 'output as JSON', false)
|
|
21
|
+
.action(async (options) => {
|
|
22
|
+
const globalOpts = getGlobalOptions(program);
|
|
23
|
+
try {
|
|
24
|
+
const identity = await loadOrCreateIdentity(globalOpts.dataDir);
|
|
25
|
+
const buyerAddress = identity.wallet.address;
|
|
26
|
+
const store = openChannelStore(globalOpts.dataDir);
|
|
27
|
+
try {
|
|
28
|
+
const activeChannels = store.getActiveChannels('buyer');
|
|
29
|
+
const channels = options.peer
|
|
30
|
+
? activeChannels.filter((c) => c.peerId === options.peer)
|
|
31
|
+
: activeChannels;
|
|
32
|
+
if (channels.length === 0) {
|
|
33
|
+
// Show settled channels if no active ones
|
|
34
|
+
const allChannels = options.peer
|
|
35
|
+
? [store.getLatestChannelByPeerAndBuyer(options.peer, 'buyer', buyerAddress)].filter(Boolean)
|
|
36
|
+
: [];
|
|
37
|
+
if (allChannels.length === 0) {
|
|
38
|
+
console.log(chalk.dim(options.peer ? 'No channels found for this peer.' : 'No active payment channels.'));
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
const results = {};
|
|
43
|
+
// Collect unique peers (active + specific peer)
|
|
44
|
+
const peerIds = options.peer
|
|
45
|
+
? [options.peer]
|
|
46
|
+
: [...new Set(activeChannels.map((c) => c.peerId))];
|
|
47
|
+
for (const peerId of peerIds) {
|
|
48
|
+
const channel = store.getActiveChannelByPeerAndBuyer(peerId, 'buyer', buyerAddress)
|
|
49
|
+
?? store.getLatestChannelByPeerAndBuyer(peerId, 'buyer', buyerAddress);
|
|
50
|
+
const lifetime = store.getTotalsByPeerAndBuyer(peerId, 'buyer', buyerAddress);
|
|
51
|
+
if (!channel && !lifetime)
|
|
52
|
+
continue;
|
|
53
|
+
const reserved = BigInt(channel?.previousConsumption ?? '0'); // repurposed: stores reserveMax
|
|
54
|
+
const consumed = BigInt(channel?.authMax ?? '0');
|
|
55
|
+
const remaining = reserved - consumed;
|
|
56
|
+
const stats = {
|
|
57
|
+
channelId: channel?.sessionId ?? null,
|
|
58
|
+
channelStatus: channel?.status ?? null,
|
|
59
|
+
reserved: reserved.toString(),
|
|
60
|
+
consumed: consumed.toString(),
|
|
61
|
+
remaining: remaining.toString(),
|
|
62
|
+
requests: channel?.requestCount ?? 0,
|
|
63
|
+
inputTokens: Number(channel?.tokensDelivered ?? '0'),
|
|
64
|
+
outputTokens: Number(channel?.previousConsumption ?? '0'),
|
|
65
|
+
lifetimeSessions: lifetime?.totalSessions ?? 0,
|
|
66
|
+
lifetimeRequests: lifetime?.totalRequests ?? 0,
|
|
67
|
+
lifetimeInputTokens: lifetime?.totalInputTokens ?? 0,
|
|
68
|
+
lifetimeOutputTokens: lifetime?.totalOutputTokens ?? 0,
|
|
69
|
+
lifetimeAuthorizedUsdc: (lifetime?.totalAuthorizedUsdc ?? 0n).toString(),
|
|
70
|
+
};
|
|
71
|
+
results[peerId] = stats;
|
|
72
|
+
if (!options.json) {
|
|
73
|
+
console.log(chalk.bold('Peer: ') + chalk.cyan(peerId.slice(0, 16) + '...'));
|
|
74
|
+
console.log('');
|
|
75
|
+
console.log(chalk.bold(' Current Channel:'));
|
|
76
|
+
console.log(` Channel: ${chalk.dim(channel?.sessionId ? channel.sessionId.slice(0, 18) + '...' : 'none')}`);
|
|
77
|
+
console.log(` Status: ${channel?.status === 'active' ? chalk.green('active') : chalk.dim(channel?.status ?? 'none')}`);
|
|
78
|
+
console.log(` Reserved: ${chalk.yellow(formatUsdc(reserved) + ' USDC')}`);
|
|
79
|
+
console.log(` Consumed: ${chalk.green(formatUsdc(consumed) + ' USDC')}`);
|
|
80
|
+
console.log(` Remaining: ${remaining >= 0n ? chalk.green(formatUsdc(remaining) + ' USDC') : chalk.red(formatUsdc(remaining) + ' USDC')}`);
|
|
81
|
+
console.log(` Requests: ${channel?.requestCount ?? 0}`);
|
|
82
|
+
console.log('');
|
|
83
|
+
console.log(chalk.bold(' Lifetime:'));
|
|
84
|
+
console.log(` Sessions: ${lifetime?.totalSessions ?? 0}`);
|
|
85
|
+
console.log(` Requests: ${lifetime?.totalRequests ?? 0}`);
|
|
86
|
+
console.log(` Authorized: ${chalk.green(formatUsdc(lifetime?.totalAuthorizedUsdc ?? 0n) + ' USDC')}`);
|
|
87
|
+
console.log('');
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
if (options.json) {
|
|
91
|
+
console.log(JSON.stringify(results, null, 2));
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
finally {
|
|
95
|
+
store.close();
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
catch (err) {
|
|
99
|
+
console.error(chalk.red(`Error: ${err.message}`));
|
|
100
|
+
process.exitCode = 1;
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=metering.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metering.js","sourceRoot":"","sources":["../../../src/cli/commands/metering.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metering.test.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/metering.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import assert from 'node:assert/strict';
|
|
2
|
+
import test from 'node:test';
|
|
3
|
+
import { mkdtempSync, rmSync } from 'node:fs';
|
|
4
|
+
import { join } from 'node:path';
|
|
5
|
+
import { tmpdir } from 'node:os';
|
|
6
|
+
import { ChannelStore } from '@antseed/node';
|
|
7
|
+
function seedChannel(store, overrides = {}) {
|
|
8
|
+
const now = Date.now();
|
|
9
|
+
const channel = {
|
|
10
|
+
sessionId: '0x' + 'aa'.repeat(32),
|
|
11
|
+
peerId: 'test-seller-peer-id',
|
|
12
|
+
role: 'buyer',
|
|
13
|
+
sellerEvmAddr: '0x' + '11'.repeat(20),
|
|
14
|
+
buyerEvmAddr: '0x' + '22'.repeat(20),
|
|
15
|
+
nonce: 0,
|
|
16
|
+
authMax: '500000',
|
|
17
|
+
previousConsumption: '1000000', // repurposed as reserveMax
|
|
18
|
+
tokensDelivered: '12345',
|
|
19
|
+
deadline: Math.floor(now / 1000) + 3600,
|
|
20
|
+
previousSessionId: '',
|
|
21
|
+
requestCount: 42,
|
|
22
|
+
reservedAt: now,
|
|
23
|
+
settledAt: null,
|
|
24
|
+
settledAmount: null,
|
|
25
|
+
status: 'active',
|
|
26
|
+
latestBuyerSig: null,
|
|
27
|
+
latestSpendingAuthSig: null,
|
|
28
|
+
latestMetadata: null,
|
|
29
|
+
createdAt: now,
|
|
30
|
+
updatedAt: now,
|
|
31
|
+
...overrides,
|
|
32
|
+
};
|
|
33
|
+
store.upsertChannel(channel);
|
|
34
|
+
return channel;
|
|
35
|
+
}
|
|
36
|
+
test('ChannelStore returns active buyer channels for metering', () => {
|
|
37
|
+
const tempDir = mkdtempSync(join(tmpdir(), 'metering-test-'));
|
|
38
|
+
const store = new ChannelStore(tempDir);
|
|
39
|
+
try {
|
|
40
|
+
seedChannel(store);
|
|
41
|
+
const channels = store.getActiveChannels('buyer');
|
|
42
|
+
assert.equal(channels.length, 1);
|
|
43
|
+
assert.equal(channels[0].peerId, 'test-seller-peer-id');
|
|
44
|
+
assert.equal(channels[0].authMax, '500000');
|
|
45
|
+
assert.equal(channels[0].requestCount, 42);
|
|
46
|
+
assert.equal(channels[0].status, 'active');
|
|
47
|
+
}
|
|
48
|
+
finally {
|
|
49
|
+
store.close();
|
|
50
|
+
rmSync(tempDir, { recursive: true, force: true });
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
test('ChannelStore returns lifetime totals by peer and buyer', () => {
|
|
54
|
+
const tempDir = mkdtempSync(join(tmpdir(), 'metering-test-'));
|
|
55
|
+
const store = new ChannelStore(tempDir);
|
|
56
|
+
try {
|
|
57
|
+
const buyerAddr = '0x' + '22'.repeat(20);
|
|
58
|
+
// Seed two sessions — one settled, one active
|
|
59
|
+
seedChannel(store, {
|
|
60
|
+
sessionId: '0x' + 'bb'.repeat(32),
|
|
61
|
+
authMax: '200000',
|
|
62
|
+
requestCount: 10,
|
|
63
|
+
status: 'settled',
|
|
64
|
+
});
|
|
65
|
+
seedChannel(store, {
|
|
66
|
+
sessionId: '0x' + 'cc'.repeat(32),
|
|
67
|
+
authMax: '300000',
|
|
68
|
+
requestCount: 15,
|
|
69
|
+
status: 'active',
|
|
70
|
+
});
|
|
71
|
+
const totals = store.getTotalsByPeerAndBuyer('test-seller-peer-id', 'buyer', buyerAddr);
|
|
72
|
+
assert.ok(totals);
|
|
73
|
+
assert.equal(totals.totalSessions, 2);
|
|
74
|
+
assert.equal(totals.totalRequests, 25);
|
|
75
|
+
assert.equal(totals.totalAuthorizedUsdc, 500000n);
|
|
76
|
+
}
|
|
77
|
+
finally {
|
|
78
|
+
store.close();
|
|
79
|
+
rmSync(tempDir, { recursive: true, force: true });
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
test('ChannelStore returns null totals for unknown peer', () => {
|
|
83
|
+
const tempDir = mkdtempSync(join(tmpdir(), 'metering-test-'));
|
|
84
|
+
const store = new ChannelStore(tempDir);
|
|
85
|
+
try {
|
|
86
|
+
const totals = store.getTotalsByPeerAndBuyer('nonexistent', 'buyer', '0x0000');
|
|
87
|
+
// Should return null or zeroed totals
|
|
88
|
+
assert.ok(totals === null || totals.totalSessions === 0);
|
|
89
|
+
}
|
|
90
|
+
finally {
|
|
91
|
+
store.close();
|
|
92
|
+
rmSync(tempDir, { recursive: true, force: true });
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
test('metering shows settled channels when no active ones exist', () => {
|
|
96
|
+
const tempDir = mkdtempSync(join(tmpdir(), 'metering-test-'));
|
|
97
|
+
const store = new ChannelStore(tempDir);
|
|
98
|
+
try {
|
|
99
|
+
const buyerAddr = '0x' + '22'.repeat(20);
|
|
100
|
+
seedChannel(store, {
|
|
101
|
+
status: 'settled',
|
|
102
|
+
authMax: '750000',
|
|
103
|
+
requestCount: 30,
|
|
104
|
+
});
|
|
105
|
+
// No active channels
|
|
106
|
+
const active = store.getActiveChannels('buyer');
|
|
107
|
+
assert.equal(active.length, 0);
|
|
108
|
+
// But latest channel is findable
|
|
109
|
+
const latest = store.getLatestChannelByPeerAndBuyer('test-seller-peer-id', 'buyer', buyerAddr);
|
|
110
|
+
assert.ok(latest);
|
|
111
|
+
assert.equal(latest.status, 'settled');
|
|
112
|
+
assert.equal(latest.authMax, '750000');
|
|
113
|
+
}
|
|
114
|
+
finally {
|
|
115
|
+
store.close();
|
|
116
|
+
rmSync(tempDir, { recursive: true, force: true });
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
//# sourceMappingURL=metering.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metering.test.js","sourceRoot":"","sources":["../../../src/cli/commands/metering.test.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -24,6 +24,7 @@ import { registerEmissionsCommand } from './commands/emissions.js';
|
|
|
24
24
|
import { registerChannelsCommand } from './commands/channels.js';
|
|
25
25
|
import { registerSubscribeCommand } from './commands/subscribe.js';
|
|
26
26
|
import { registerPaymentsCommand } from './commands/payments.js';
|
|
27
|
+
import { registerMeteringCommand } from './commands/metering.js';
|
|
27
28
|
loadEnvFromFiles();
|
|
28
29
|
import pkg from '../../package.json' with { type: 'json' };
|
|
29
30
|
const version = pkg.version;
|
|
@@ -59,5 +60,6 @@ registerEmissionsCommand(program);
|
|
|
59
60
|
registerChannelsCommand(program);
|
|
60
61
|
registerSubscribeCommand(program);
|
|
61
62
|
registerPaymentsCommand(program);
|
|
63
|
+
registerMeteringCommand(program);
|
|
62
64
|
program.parse(process.argv);
|
|
63
65
|
//# sourceMappingURL=index.js.map
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,6 +48,7 @@ export declare function createEmissionsClient(config: AntseedConfig): EmissionsC
|
|
|
48
48
|
export declare function createSubPoolClient(config: AntseedConfig): SubPoolClient;
|
|
49
49
|
/**
|
|
50
50
|
* Open a ChannelStore from the given data directory.
|
|
51
|
+
* The runtime stores channels in {dataDir}/payments/sessions.db.
|
|
51
52
|
*/
|
|
52
53
|
export declare function openChannelStore(dataDir: string): ChannelStore;
|
|
53
54
|
//# sourceMappingURL=payment-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payment-utils.d.ts","sourceRoot":"","sources":["../../src/cli/payment-utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"payment-utils.d.ts","sourceRoot":"","sources":["../../src/cli/payment-utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EACL,cAAc,EACd,cAAc,EACd,aAAa,EAGd,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,cAAc,EACd,eAAe,EACf,aAAa,EACb,YAAY,EACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,wEAAwE;AACxE,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAKpD;AAED,oEAAoE;AACpE,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAKpD;AAED,4DAA4D;AAC5D,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAM3D;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAK/E;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,CAiB3G;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,cAAc,CAO1E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,cAAc,CAM1E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,cAAc,CAS1E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAUxE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,eAAe,CAS5E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAUxE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAE9D"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { join } from 'node:path';
|
|
1
2
|
import { DepositsClient, ChannelsClient, StakingClient, loadOrCreateIdentity, resolveChainConfig, } from '@antseed/node';
|
|
2
3
|
import { IdentityClient, EmissionsClient, SubPoolClient, ChannelStore, } from '@antseed/node/payments';
|
|
3
4
|
/** Format ANTS token amounts (18 decimals) to human-readable string. */
|
|
@@ -130,8 +131,9 @@ export function createSubPoolClient(config) {
|
|
|
130
131
|
}
|
|
131
132
|
/**
|
|
132
133
|
* Open a ChannelStore from the given data directory.
|
|
134
|
+
* The runtime stores channels in {dataDir}/payments/sessions.db.
|
|
133
135
|
*/
|
|
134
136
|
export function openChannelStore(dataDir) {
|
|
135
|
-
return new ChannelStore(dataDir);
|
|
137
|
+
return new ChannelStore(join(dataDir, 'payments'));
|
|
136
138
|
}
|
|
137
139
|
//# sourceMappingURL=payment-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payment-utils.js","sourceRoot":"","sources":["../../src/cli/payment-utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"payment-utils.js","sourceRoot":"","sources":["../../src/cli/payment-utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@antseed/cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.72",
|
|
4
4
|
"description": "Antseed Network CLI and Web Dashboard",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
@@ -20,11 +20,11 @@
|
|
|
20
20
|
"open": "^11.0.0",
|
|
21
21
|
"ora": "^9.3.0",
|
|
22
22
|
"@antseed/api-adapter": "0.1.18",
|
|
23
|
-
"@antseed/node": "0.2.
|
|
23
|
+
"@antseed/node": "0.2.45",
|
|
24
24
|
"@antseed/payments": "0.1.3",
|
|
25
25
|
"@antseed/ant-agent": "0.1.17",
|
|
26
|
-
"@antseed/
|
|
27
|
-
"@antseed/
|
|
26
|
+
"@antseed/dashboard": "0.1.26",
|
|
27
|
+
"@antseed/provider-core": "0.2.30"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@types/node": "^20.11.0",
|