@one-source/api-mcp 2.5.0 → 3.1.0
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 +42 -14
- package/README.npm.md +42 -14
- package/README.repo.md +42 -17
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +6 -0
- package/dist/cli.js.map +1 -1
- package/dist/tools/chain/contract-code.d.ts.map +1 -1
- package/dist/tools/chain/contract-code.js +2 -1
- package/dist/tools/chain/contract-code.js.map +1 -1
- package/dist/tools/chain/pending-block.d.ts.map +1 -1
- package/dist/tools/chain/pending-block.js +2 -0
- package/dist/tools/chain/pending-block.js.map +1 -1
- package/dist/tools/live/erc20-transfers.d.ts.map +1 -1
- package/dist/tools/live/erc20-transfers.js +3 -1
- package/dist/tools/live/erc20-transfers.js.map +1 -1
- package/dist/tools/live/events.d.ts.map +1 -1
- package/dist/tools/live/events.js +3 -1
- package/dist/tools/live/events.js.map +1 -1
- package/dist/tools/live/total-supply.js +2 -2
- package/dist/tools/live/total-supply.js.map +1 -1
- package/dist/types.d.ts +3 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +15 -3
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -8,21 +8,35 @@ npx onesource-api-mcp
|
|
|
8
8
|
|
|
9
9
|
## Install
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
### Claude Code
|
|
12
|
+
|
|
13
|
+
```bash
|
|
13
14
|
claude mcp add onesource-api -- npx onesource-api-mcp
|
|
14
15
|
|
|
15
|
-
#
|
|
16
|
+
# With x402 payments
|
|
17
|
+
claude mcp add onesource-api -e X402_PRIVATE_KEY=0x... -- npx onesource-api-mcp
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
### Claude Desktop / Cursor
|
|
21
|
+
|
|
22
|
+
Add to your MCP config (`claude_desktop_config.json` or Cursor settings):
|
|
23
|
+
|
|
24
|
+
```json
|
|
16
25
|
{
|
|
17
26
|
"mcpServers": {
|
|
18
27
|
"onesource-api": {
|
|
19
28
|
"command": "npx",
|
|
20
|
-
"args": ["-y", "onesource-api-mcp"]
|
|
29
|
+
"args": ["-y", "onesource-api-mcp"],
|
|
30
|
+
"env": {
|
|
31
|
+
"X402_PRIVATE_KEY": "0x..."
|
|
32
|
+
}
|
|
21
33
|
}
|
|
22
34
|
}
|
|
23
35
|
}
|
|
24
36
|
```
|
|
25
37
|
|
|
38
|
+
Remove the `env` block to run without payments.
|
|
39
|
+
|
|
26
40
|
## Tools (22)
|
|
27
41
|
|
|
28
42
|
|
|
@@ -73,23 +87,37 @@ All tools accept an optional `network` parameter:
|
|
|
73
87
|
|
|
74
88
|
## Payment (x402)
|
|
75
89
|
|
|
76
|
-
Endpoints are priced in USDC on Base via [x402](https://github.com/coinbase/x402). When the
|
|
90
|
+
Endpoints are priced in USDC on Base via [x402](https://github.com/coinbase/x402). When `X402_PRIVATE_KEY` is set, the server automatically signs and settles USDC payments for each tool call. Without it, paid endpoints return 402 errors with a descriptive message.
|
|
77
91
|
|
|
78
|
-
|
|
92
|
+
### Getting a Private Key
|
|
79
93
|
|
|
80
|
-
|
|
81
|
-
|
|
94
|
+
`X402_PRIVATE_KEY` is an EVM wallet private key — the same kind used by MetaMask, Foundry, or any Ethereum wallet. It must be a hex string starting with `0x`.
|
|
95
|
+
|
|
96
|
+
**Option A — Export from MetaMask:**
|
|
97
|
+
1. Open MetaMask → click the three dots → Account details → Show private key
|
|
98
|
+
2. Copy the key (it starts with `0x`)
|
|
99
|
+
|
|
100
|
+
**Option B — Generate a new wallet:**
|
|
101
|
+
```bash
|
|
102
|
+
# Using Foundry (cast)
|
|
103
|
+
cast wallet new
|
|
104
|
+
|
|
105
|
+
# Using OpenSSL
|
|
106
|
+
openssl rand -hex 32 | sed 's/^/0x/'
|
|
82
107
|
```
|
|
83
108
|
|
|
84
|
-
|
|
109
|
+
### Funding the Wallet
|
|
85
110
|
|
|
111
|
+
The wallet needs **USDC on Base** to pay for tool calls. Send USDC to your wallet address on the Base network. Typical tool calls cost fractions of a cent.
|
|
86
112
|
|
|
87
|
-
|
|
113
|
+
### Running with Payments
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
# Inline
|
|
117
|
+
X402_PRIVATE_KEY=0x... npx onesource-api-mcp
|
|
118
|
+
```
|
|
88
119
|
|
|
89
|
-
|
|
90
|
-
|----------|---------|-------------|
|
|
91
|
-
| `ONESOURCE_BASE_URL` | `https://skills.onesource.io` | Skills API endpoint |
|
|
92
|
-
| `X402_PRIVATE_KEY` | — | EVM private key (0x-prefixed hex) for automatic x402 USDC payments on Base |
|
|
120
|
+
Or configure the key in your MCP client's `env` block (see [Install](#install) above).
|
|
93
121
|
|
|
94
122
|
|
|
95
123
|
## License
|
package/README.npm.md
CHANGED
|
@@ -8,21 +8,35 @@ npx onesource-api-mcp
|
|
|
8
8
|
|
|
9
9
|
## Install
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
### Claude Code
|
|
12
|
+
|
|
13
|
+
```bash
|
|
13
14
|
claude mcp add onesource-api -- npx onesource-api-mcp
|
|
14
15
|
|
|
15
|
-
#
|
|
16
|
+
# With x402 payments
|
|
17
|
+
claude mcp add onesource-api -e X402_PRIVATE_KEY=0x... -- npx onesource-api-mcp
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
### Claude Desktop / Cursor
|
|
21
|
+
|
|
22
|
+
Add to your MCP config (`claude_desktop_config.json` or Cursor settings):
|
|
23
|
+
|
|
24
|
+
```json
|
|
16
25
|
{
|
|
17
26
|
"mcpServers": {
|
|
18
27
|
"onesource-api": {
|
|
19
28
|
"command": "npx",
|
|
20
|
-
"args": ["-y", "onesource-api-mcp"]
|
|
29
|
+
"args": ["-y", "onesource-api-mcp"],
|
|
30
|
+
"env": {
|
|
31
|
+
"X402_PRIVATE_KEY": "0x..."
|
|
32
|
+
}
|
|
21
33
|
}
|
|
22
34
|
}
|
|
23
35
|
}
|
|
24
36
|
```
|
|
25
37
|
|
|
38
|
+
Remove the `env` block to run without payments.
|
|
39
|
+
|
|
26
40
|
## Tools (22)
|
|
27
41
|
|
|
28
42
|
|
|
@@ -73,23 +87,37 @@ All tools accept an optional `network` parameter:
|
|
|
73
87
|
|
|
74
88
|
## Payment (x402)
|
|
75
89
|
|
|
76
|
-
Endpoints are priced in USDC on Base via [x402](https://github.com/coinbase/x402). When the
|
|
90
|
+
Endpoints are priced in USDC on Base via [x402](https://github.com/coinbase/x402). When `X402_PRIVATE_KEY` is set, the server automatically signs and settles USDC payments for each tool call. Without it, paid endpoints return 402 errors with a descriptive message.
|
|
77
91
|
|
|
78
|
-
|
|
92
|
+
### Getting a Private Key
|
|
79
93
|
|
|
80
|
-
|
|
81
|
-
|
|
94
|
+
`X402_PRIVATE_KEY` is an EVM wallet private key — the same kind used by MetaMask, Foundry, or any Ethereum wallet. It must be a hex string starting with `0x`.
|
|
95
|
+
|
|
96
|
+
**Option A — Export from MetaMask:**
|
|
97
|
+
1. Open MetaMask → click the three dots → Account details → Show private key
|
|
98
|
+
2. Copy the key (it starts with `0x`)
|
|
99
|
+
|
|
100
|
+
**Option B — Generate a new wallet:**
|
|
101
|
+
```bash
|
|
102
|
+
# Using Foundry (cast)
|
|
103
|
+
cast wallet new
|
|
104
|
+
|
|
105
|
+
# Using OpenSSL
|
|
106
|
+
openssl rand -hex 32 | sed 's/^/0x/'
|
|
82
107
|
```
|
|
83
108
|
|
|
84
|
-
|
|
109
|
+
### Funding the Wallet
|
|
85
110
|
|
|
111
|
+
The wallet needs **USDC on Base** to pay for tool calls. Send USDC to your wallet address on the Base network. Typical tool calls cost fractions of a cent.
|
|
86
112
|
|
|
87
|
-
|
|
113
|
+
### Running with Payments
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
# Inline
|
|
117
|
+
X402_PRIVATE_KEY=0x... npx onesource-api-mcp
|
|
118
|
+
```
|
|
88
119
|
|
|
89
|
-
|
|
90
|
-
|----------|---------|-------------|
|
|
91
|
-
| `ONESOURCE_BASE_URL` | `https://skills.onesource.io` | Skills API endpoint |
|
|
92
|
-
| `X402_PRIVATE_KEY` | — | EVM private key (0x-prefixed hex) for automatic x402 USDC payments on Base |
|
|
120
|
+
Or configure the key in your MCP client's `env` block (see [Install](#install) above).
|
|
93
121
|
|
|
94
122
|
|
|
95
123
|
## License
|
package/README.repo.md
CHANGED
|
@@ -8,21 +8,35 @@ npx onesource-api-mcp
|
|
|
8
8
|
|
|
9
9
|
## Install
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
### Claude Code
|
|
12
|
+
|
|
13
|
+
```bash
|
|
13
14
|
claude mcp add onesource-api -- npx onesource-api-mcp
|
|
14
15
|
|
|
15
|
-
#
|
|
16
|
+
# With x402 payments
|
|
17
|
+
claude mcp add onesource-api -e X402_PRIVATE_KEY=0x... -- npx onesource-api-mcp
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
### Claude Desktop / Cursor
|
|
21
|
+
|
|
22
|
+
Add to your MCP config (`claude_desktop_config.json` or Cursor settings):
|
|
23
|
+
|
|
24
|
+
```json
|
|
16
25
|
{
|
|
17
26
|
"mcpServers": {
|
|
18
27
|
"onesource-api": {
|
|
19
28
|
"command": "npx",
|
|
20
|
-
"args": ["-y", "onesource-api-mcp"]
|
|
29
|
+
"args": ["-y", "onesource-api-mcp"],
|
|
30
|
+
"env": {
|
|
31
|
+
"X402_PRIVATE_KEY": "0x..."
|
|
32
|
+
}
|
|
21
33
|
}
|
|
22
34
|
}
|
|
23
35
|
}
|
|
24
36
|
```
|
|
25
37
|
|
|
38
|
+
Remove the `env` block to run without payments.
|
|
39
|
+
|
|
26
40
|
## Tools (22)
|
|
27
41
|
|
|
28
42
|
|
|
@@ -73,26 +87,37 @@ All tools accept an optional `network` parameter:
|
|
|
73
87
|
|
|
74
88
|
## Payment (x402)
|
|
75
89
|
|
|
76
|
-
Endpoints are priced in USDC on Base via [x402](https://github.com/coinbase/x402). When the
|
|
90
|
+
Endpoints are priced in USDC on Base via [x402](https://github.com/coinbase/x402). When `X402_PRIVATE_KEY` is set, the server automatically signs and settles USDC payments for each tool call. Without it, paid endpoints return 402 errors with a descriptive message.
|
|
77
91
|
|
|
78
|
-
|
|
92
|
+
### Getting a Private Key
|
|
79
93
|
|
|
80
|
-
|
|
81
|
-
|
|
94
|
+
`X402_PRIVATE_KEY` is an EVM wallet private key — the same kind used by MetaMask, Foundry, or any Ethereum wallet. It must be a hex string starting with `0x`.
|
|
95
|
+
|
|
96
|
+
**Option A — Export from MetaMask:**
|
|
97
|
+
1. Open MetaMask → click the three dots → Account details → Show private key
|
|
98
|
+
2. Copy the key (it starts with `0x`)
|
|
99
|
+
|
|
100
|
+
**Option B — Generate a new wallet:**
|
|
101
|
+
```bash
|
|
102
|
+
# Using Foundry (cast)
|
|
103
|
+
cast wallet new
|
|
104
|
+
|
|
105
|
+
# Using OpenSSL
|
|
106
|
+
openssl rand -hex 32 | sed 's/^/0x/'
|
|
82
107
|
```
|
|
83
108
|
|
|
84
|
-
|
|
109
|
+
### Funding the Wallet
|
|
85
110
|
|
|
111
|
+
The wallet needs **USDC on Base** to pay for tool calls. Send USDC to your wallet address on the Base network. Typical tool calls cost fractions of a cent.
|
|
86
112
|
|
|
87
|
-
|
|
113
|
+
### Running with Payments
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
# Inline
|
|
117
|
+
X402_PRIVATE_KEY=0x... npx onesource-api-mcp
|
|
118
|
+
```
|
|
88
119
|
|
|
89
|
-
|
|
90
|
-
|----------|---------|-------------|
|
|
91
|
-
| `ONESOURCE_BASE_URL` | `https://skills.onesource.io` | Skills API endpoint |
|
|
92
|
-
| `X402_PRIVATE_KEY` | — | EVM private key (0x-prefixed hex) for automatic x402 USDC payments on Base |
|
|
93
|
-
| `ONESOURCE_ANALYTICS` | `true` | Set `false` to disable analytics |
|
|
94
|
-
| `ONESOURCE_ANALYTICS_URL` | — | Dashboard endpoint for event ingestion |
|
|
95
|
-
| `ONESOURCE_ANALYTICS_KEY` | — | API key for the analytics dashboard |
|
|
120
|
+
Or configure the key in your MCP client's `env` block (see [Install](#install) above).
|
|
96
121
|
|
|
97
122
|
## Transport Modes
|
|
98
123
|
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAwLA,OAAO,EAAE,CAAC"}
|
package/dist/cli.js
CHANGED
|
@@ -12,6 +12,10 @@ import { createClientFromEnv } from './client.js';
|
|
|
12
12
|
import { createAnalytics } from './analytics.js';
|
|
13
13
|
import { setupX402 } from './x402.js';
|
|
14
14
|
const MAX_BODY_BYTES = 1_048_576; // 1 MB
|
|
15
|
+
// Analytics defaults — must be set before any createAnalytics() call.
|
|
16
|
+
// Users can override via environment; ONESOURCE_ANALYTICS=false disables entirely.
|
|
17
|
+
process.env.ONESOURCE_ANALYTICS_URL ??= 'https://1s-analytics.vercel.app';
|
|
18
|
+
process.env.X402_ANALYTICS_KEY ??= 'onesource-api-mcp';
|
|
15
19
|
const x402 = setupX402();
|
|
16
20
|
if (x402.enabled) {
|
|
17
21
|
console.error(`[onesource-api] x402 payments enabled (wallet: ${x402.address})`);
|
|
@@ -59,6 +63,7 @@ if (args.includes('--http')) {
|
|
|
59
63
|
// Shared client + analytics — reused across requests
|
|
60
64
|
const sharedClient = createClientFromEnv({ fetch: x402.fetch });
|
|
61
65
|
const sharedAnalytics = createAnalytics();
|
|
66
|
+
console.error(`[onesource-api] analytics: ${process.env.ONESOURCE_ANALYTICS === 'false' ? 'disabled' : `dashboard (${process.env.ONESOURCE_ANALYTICS_URL})`}`);
|
|
62
67
|
const httpServer = createServer(async (req, res) => {
|
|
63
68
|
if (req.url === '/mcp' && req.method === 'POST') {
|
|
64
69
|
// Reject oversized requests (content-length check; body may still be streamed)
|
|
@@ -138,6 +143,7 @@ else {
|
|
|
138
143
|
const stdioTransport = new StdioServerTransport();
|
|
139
144
|
await server.connect(stdioTransport);
|
|
140
145
|
console.error('[onesource-api] Server connected via stdio');
|
|
146
|
+
console.error(`[onesource-api] analytics: ${process.env.ONESOURCE_ANALYTICS === 'false' ? 'disabled' : `dashboard (${process.env.ONESOURCE_ANALYTICS_URL})`}`);
|
|
141
147
|
analytics.trackService({
|
|
142
148
|
type: 'service_start',
|
|
143
149
|
service: 'onesource-api',
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract-code.d.ts","sourceRoot":"","sources":["../../../src/tools/chain/contract-code.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,eAAO,MAAM,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"contract-code.d.ts","sourceRoot":"","sources":["../../../src/tools/chain/contract-code.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,eAAO,MAAM,IAAI,EAAE,OAkBlB,CAAC"}
|
|
@@ -3,7 +3,8 @@ export const tool = {
|
|
|
3
3
|
name: '1s_contract_code',
|
|
4
4
|
description: 'Get the deployed bytecode of a contract via eth_getCode. ' +
|
|
5
5
|
"Returns '0x' for EOA (non-contract) addresses. " +
|
|
6
|
-
'
|
|
6
|
+
'Bytecode can be very large for complex contracts. ' +
|
|
7
|
+
'Prefer 1s_proxy_detect or 1s_contract_info_live for type checks without fetching full bytecode.',
|
|
7
8
|
category: 'chain',
|
|
8
9
|
schema: {
|
|
9
10
|
address: addressParam,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract-code.js","sourceRoot":"","sources":["../../../src/tools/chain/contract-code.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEtF,MAAM,CAAC,MAAM,IAAI,GAAY;IAC3B,IAAI,EAAE,kBAAkB;IACxB,WAAW,EACT,2DAA2D;QAC3D,iDAAiD;QACjD,
|
|
1
|
+
{"version":3,"file":"contract-code.js","sourceRoot":"","sources":["../../../src/tools/chain/contract-code.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEtF,MAAM,CAAC,MAAM,IAAI,GAAY;IAC3B,IAAI,EAAE,kBAAkB;IACxB,WAAW,EACT,2DAA2D;QAC3D,iDAAiD;QACjD,oDAAoD;QACpD,iGAAiG;IACnG,QAAQ,EAAE,OAAO;IACjB,MAAM,EAAE;QACN,OAAO,EAAE,YAAY;QACrB,OAAO,EAAE,YAAY;KACtB;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,mBAAmB,QAAQ,CAAC,KAAK,CAAC,OAAiB,CAAC,EAAE,EAAE;YACnF,OAAO,EAAE,KAAK,CAAC,OAA6B;SAC7C,CAAC,CAAC;QACH,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pending-block.d.ts","sourceRoot":"","sources":["../../../src/tools/chain/pending-block.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,eAAO,MAAM,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"pending-block.d.ts","sourceRoot":"","sources":["../../../src/tools/chain/pending-block.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,eAAO,MAAM,IAAI,EAAE,OAkBlB,CAAC"}
|
|
@@ -3,6 +3,8 @@ export const tool = {
|
|
|
3
3
|
name: '1s_pending_block',
|
|
4
4
|
description: 'Get the current pending block from the mempool. ' +
|
|
5
5
|
'Use this to see transactions waiting for inclusion. ' +
|
|
6
|
+
'WARNING: Response can be very large (1MB+) on mainnet as it includes all pending transactions. ' +
|
|
7
|
+
'Prefer 1s_network_info for chain status or 1s_tx_details_live for specific transactions. ' +
|
|
6
8
|
'Not all nodes expose pending block data; results vary by RPC provider.',
|
|
7
9
|
category: 'chain',
|
|
8
10
|
schema: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pending-block.js","sourceRoot":"","sources":["../../../src/tools/chain/pending-block.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE9D,MAAM,CAAC,MAAM,IAAI,GAAY;IAC3B,IAAI,EAAE,kBAAkB;IACxB,WAAW,EACT,kDAAkD;QAClD,sDAAsD;QACtD,wEAAwE;IAC1E,QAAQ,EAAE,OAAO;IACjB,MAAM,EAAE;QACN,OAAO,EAAE,YAAY;KACtB;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE;YACjD,OAAO,EAAE,KAAK,CAAC,OAA6B;SAC7C,CAAC,CAAC;QACH,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"pending-block.js","sourceRoot":"","sources":["../../../src/tools/chain/pending-block.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE9D,MAAM,CAAC,MAAM,IAAI,GAAY;IAC3B,IAAI,EAAE,kBAAkB;IACxB,WAAW,EACT,kDAAkD;QAClD,sDAAsD;QACtD,iGAAiG;QACjG,2FAA2F;QAC3F,wEAAwE;IAC1E,QAAQ,EAAE,OAAO;IACjB,MAAM,EAAE;QACN,OAAO,EAAE,YAAY;KACtB;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE;YACjD,OAAO,EAAE,KAAK,CAAC,OAA6B;SAC7C,CAAC,CAAC;QACH,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"erc20-transfers.d.ts","sourceRoot":"","sources":["../../../src/tools/live/erc20-transfers.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,eAAO,MAAM,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"erc20-transfers.d.ts","sourceRoot":"","sources":["../../../src/tools/live/erc20-transfers.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,eAAO,MAAM,IAAI,EAAE,OA0BlB,CAAC"}
|
|
@@ -3,7 +3,9 @@ export const tool = {
|
|
|
3
3
|
name: '1s_erc20_transfers_live',
|
|
4
4
|
description: 'Query ERC20 Transfer(from, to, value) event logs via eth_getLogs directly from the node. ' +
|
|
5
5
|
'Filter by token contract and/or wallet address. Block params are hex-encoded (e.g. 0x1234). ' +
|
|
6
|
-
'Returns decoded transfer events with sender, recipient, and value.'
|
|
6
|
+
'Returns decoded transfer events with sender, recipient, and value. ' +
|
|
7
|
+
'WARNING: Keep block ranges small (10 blocks or fewer) to avoid huge responses. ' +
|
|
8
|
+
'Omitting from_block/to_block queries only the latest block.',
|
|
7
9
|
category: 'live',
|
|
8
10
|
schema: {
|
|
9
11
|
token: optionalAddressParam.describe('ERC20 token contract address'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"erc20-transfers.js","sourceRoot":"","sources":["../../../src/tools/live/erc20-transfers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAElG,MAAM,CAAC,MAAM,IAAI,GAAY;IAC3B,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EACT,2FAA2F;QAC3F,8FAA8F;QAC9F,
|
|
1
|
+
{"version":3,"file":"erc20-transfers.js","sourceRoot":"","sources":["../../../src/tools/live/erc20-transfers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAElG,MAAM,CAAC,MAAM,IAAI,GAAY;IAC3B,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EACT,2FAA2F;QAC3F,8FAA8F;QAC9F,qEAAqE;QACrE,iFAAiF;QACjF,6DAA6D;IAC/D,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE;QACN,KAAK,EAAE,oBAAoB,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QACpE,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,oCAAoC,CAAC;QAC3E,UAAU,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QAChF,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAC9D,OAAO,EAAE,YAAY;KACtB;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,4BAA4B,EAAE;YACzD,KAAK,EAAE,KAAK,CAAC,KAA2B;YACxC,MAAM,EAAE,KAAK,CAAC,MAA4B;YAC1C,UAAU,EAAE,KAAK,CAAC,UAAgC;YAClD,QAAQ,EAAE,KAAK,CAAC,QAA8B;YAC9C,OAAO,EAAE,KAAK,CAAC,OAA6B;SAC7C,CAAC,CAAC;QACH,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/tools/live/events.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,eAAO,MAAM,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/tools/live/events.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,eAAO,MAAM,IAAI,EAAE,OA0BlB,CAAC"}
|
|
@@ -3,7 +3,9 @@ export const tool = {
|
|
|
3
3
|
name: '1s_events_live',
|
|
4
4
|
description: 'Query raw event logs via eth_getLogs directly from the node. ' +
|
|
5
5
|
'Filter by contract address and/or topic0 (keccak256 hash of event signature, e.g. Transfer(address,address,uint256)). ' +
|
|
6
|
-
'Block params are hex-encoded (e.g. 0x1234). Returns raw log entries with topics, data, and block context.'
|
|
6
|
+
'Block params are hex-encoded (e.g. 0x1234). Returns raw log entries with topics, data, and block context. ' +
|
|
7
|
+
'WARNING: Keep block ranges small (10 blocks or fewer) to avoid huge responses. ' +
|
|
8
|
+
'Always specify a contract address when possible. Omitting from_block/to_block queries only the latest block.',
|
|
7
9
|
category: 'live',
|
|
8
10
|
schema: {
|
|
9
11
|
contract: optionalAddressParam.describe('Contract address to filter'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/tools/live/events.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAElG,MAAM,CAAC,MAAM,IAAI,GAAY;IAC3B,IAAI,EAAE,gBAAgB;IACtB,WAAW,EACT,+DAA+D;QAC/D,wHAAwH;QACxH,
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/tools/live/events.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAElG,MAAM,CAAC,MAAM,IAAI,GAAY;IAC3B,IAAI,EAAE,gBAAgB;IACtB,WAAW,EACT,+DAA+D;QAC/D,wHAAwH;QACxH,4GAA4G;QAC5G,iFAAiF;QACjF,8GAA8G;IAChH,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE;QACN,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACrE,KAAK,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QACpE,UAAU,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QAChF,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAC9D,OAAO,EAAE,YAAY;KACtB;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE;YAChD,QAAQ,EAAE,KAAK,CAAC,QAA8B;YAC9C,KAAK,EAAE,KAAK,CAAC,KAA2B;YACxC,UAAU,EAAE,KAAK,CAAC,UAAgC;YAClD,QAAQ,EAAE,KAAK,CAAC,QAA8B;YAC9C,OAAO,EAAE,KAAK,CAAC,OAA6B;SAC7C,CAAC,CAAC;QACH,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC"}
|
|
@@ -6,12 +6,12 @@ export const tool = {
|
|
|
6
6
|
'Returns raw token units for ERC20 (divide by 10^decimals) or total count for ERC721.',
|
|
7
7
|
category: 'live',
|
|
8
8
|
schema: {
|
|
9
|
-
|
|
9
|
+
contract: addressParam.describe('Token contract address'),
|
|
10
10
|
network: networkParam,
|
|
11
11
|
},
|
|
12
12
|
handler: async (input, client) => {
|
|
13
13
|
const res = await client.get('/api/chain/total-supply', {
|
|
14
|
-
|
|
14
|
+
contract: input.contract,
|
|
15
15
|
network: input.network,
|
|
16
16
|
});
|
|
17
17
|
return formatResponse(res);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"total-supply.js","sourceRoot":"","sources":["../../../src/tools/live/total-supply.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE5E,MAAM,CAAC,MAAM,IAAI,GAAY;IAC3B,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EACT,+EAA+E;QAC/E,sCAAsC;QACtC,sFAAsF;IACxF,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE;QACN,
|
|
1
|
+
{"version":3,"file":"total-supply.js","sourceRoot":"","sources":["../../../src/tools/live/total-supply.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE5E,MAAM,CAAC,MAAM,IAAI,GAAY;IAC3B,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EACT,+EAA+E;QAC/E,sCAAsC;QACtC,sFAAsF;IACxF,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE;QACN,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QACzD,OAAO,EAAE,YAAY;KACtB;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,yBAAyB,EAAE;YACtD,QAAQ,EAAE,KAAK,CAAC,QAAkB;YAClC,OAAO,EAAE,KAAK,CAAC,OAA6B;SAC7C,CAAC,CAAC;QACH,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -59,8 +59,11 @@ export declare const optionalHexParam: z.ZodOptional<z.ZodString>;
|
|
|
59
59
|
* Use this for any user-supplied value placed in a URL path.
|
|
60
60
|
*/
|
|
61
61
|
export declare function safePath(segment: string): string;
|
|
62
|
+
/** Maximum response size in characters. Responses exceeding this are truncated. */
|
|
63
|
+
export declare const MAX_RESPONSE_CHARS = 100000;
|
|
62
64
|
/**
|
|
63
65
|
* Format an API response for the LLM. Returns text content.
|
|
66
|
+
* Oversized responses are replaced with a structured truncation notice.
|
|
64
67
|
*/
|
|
65
68
|
export declare function formatResponse(response: ApiResponse): string;
|
|
66
69
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD;;;GAGG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,OAAO,IAC/B;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAC9D;IAAE,IAAI,CAAC,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC;IACtB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACvF;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,2DAKtB,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,YAAY,aAGc,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,oBAAoB,4BAA0B,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,WAAW,aAGe,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,YAAY,aAGe,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,YAAY,aAGc,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,gBAAgB,4BAA0B,CAAC;AAExD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD;;;GAGG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,OAAO,IAC/B;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAC9D;IAAE,IAAI,CAAC,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC;IACtB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACvF;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,2DAKtB,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,YAAY,aAGc,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,oBAAoB,4BAA0B,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,WAAW,aAGe,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,YAAY,aAGe,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,YAAY,aAGc,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,gBAAgB,4BAA0B,CAAC;AAExD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,mFAAmF;AACnF,eAAO,MAAM,kBAAkB,SAAU,CAAC;AAE1C;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM,CAoB5D"}
|
package/dist/types.js
CHANGED
|
@@ -52,16 +52,28 @@ export const optionalHexParam = hexDataParam.optional();
|
|
|
52
52
|
export function safePath(segment) {
|
|
53
53
|
return encodeURIComponent(segment);
|
|
54
54
|
}
|
|
55
|
+
/** Maximum response size in characters. Responses exceeding this are truncated. */
|
|
56
|
+
export const MAX_RESPONSE_CHARS = 100_000;
|
|
55
57
|
/**
|
|
56
58
|
* Format an API response for the LLM. Returns text content.
|
|
59
|
+
* Oversized responses are replaced with a structured truncation notice.
|
|
57
60
|
*/
|
|
58
61
|
export function formatResponse(response) {
|
|
59
62
|
if (response.error) {
|
|
60
63
|
return `Error: ${response.error}`;
|
|
61
64
|
}
|
|
62
|
-
|
|
63
|
-
|
|
65
|
+
const payload = response.meta
|
|
66
|
+
? { data: response.data, meta: response.meta }
|
|
67
|
+
: response.data;
|
|
68
|
+
const json = JSON.stringify(payload) ?? 'null';
|
|
69
|
+
if (json.length > MAX_RESPONSE_CHARS) {
|
|
70
|
+
return JSON.stringify({
|
|
71
|
+
truncated: true,
|
|
72
|
+
original_size: json.length,
|
|
73
|
+
message: 'Response exceeded 100K characters and was truncated. Narrow your query — use smaller block ranges, add filters, or request specific fields.',
|
|
74
|
+
preview: json.slice(0, 500),
|
|
75
|
+
});
|
|
64
76
|
}
|
|
65
|
-
return
|
|
77
|
+
return json;
|
|
66
78
|
}
|
|
67
79
|
//# sourceMappingURL=types.js.map
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAsBxB;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;KACrC,QAAQ,EAAE;KACV,QAAQ,CACP,6DAA6D,CAC9D,CAAC;AAEJ;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,EAAE;KACR,KAAK,CAAC,qBAAqB,EAAE,2CAA2C,CAAC;KACzE,QAAQ,CAAC,0BAA0B,CAAC,CAAC;AAExC;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;AAE5D;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC;KACzB,MAAM,EAAE;KACR,KAAK,CAAC,qBAAqB,EAAE,iDAAiD,CAAC;KAC/E,QAAQ,CAAC,0BAA0B,CAAC,CAAC;AAExC;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,EAAE;KACR,KAAK,CAAC,OAAO,EAAE,0BAA0B,CAAC;KAC1C,QAAQ,CAAC,2BAA2B,CAAC,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,EAAE;KACR,KAAK,CAAC,kBAAkB,EAAE,8BAA8B,CAAC;KACzD,QAAQ,CAAC,0BAA0B,CAAC,CAAC;AAExC;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;AAExD;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAsBxB;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;KACrC,QAAQ,EAAE;KACV,QAAQ,CACP,6DAA6D,CAC9D,CAAC;AAEJ;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,EAAE;KACR,KAAK,CAAC,qBAAqB,EAAE,2CAA2C,CAAC;KACzE,QAAQ,CAAC,0BAA0B,CAAC,CAAC;AAExC;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;AAE5D;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC;KACzB,MAAM,EAAE;KACR,KAAK,CAAC,qBAAqB,EAAE,iDAAiD,CAAC;KAC/E,QAAQ,CAAC,0BAA0B,CAAC,CAAC;AAExC;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,EAAE;KACR,KAAK,CAAC,OAAO,EAAE,0BAA0B,CAAC;KAC1C,QAAQ,CAAC,2BAA2B,CAAC,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,EAAE;KACR,KAAK,CAAC,kBAAkB,EAAE,8BAA8B,CAAC;KACzD,QAAQ,CAAC,0BAA0B,CAAC,CAAC;AAExC;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;AAExD;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC;AAED,mFAAmF;AACnF,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAE1C;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,QAAqB;IAClD,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,UAAU,QAAQ,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI;QAC3B,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE;QAC9C,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;IAClB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC;IAE/C,IAAI,IAAI,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,SAAS,EAAE,IAAI;YACf,aAAa,EAAE,IAAI,CAAC,MAAM;YAC1B,OAAO,EAAE,6IAA6I;YACtJ,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/package.json
CHANGED