secondhand-mcp 0.1.0 → 0.2.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 +57 -80
- package/dist/browser.d.ts +13 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +85 -0
- package/dist/browser.js.map +1 -0
- package/dist/index.js +34 -2
- package/dist/index.js.map +1 -1
- package/dist/marketplaces/depop.d.ts +20 -0
- package/dist/marketplaces/depop.d.ts.map +1 -0
- package/dist/marketplaces/depop.js +203 -0
- package/dist/marketplaces/depop.js.map +1 -0
- package/dist/marketplaces/index.d.ts +1 -0
- package/dist/marketplaces/index.d.ts.map +1 -1
- package/dist/marketplaces/index.js +10 -1
- package/dist/marketplaces/index.js.map +1 -1
- package/dist/types.d.ts +5 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +15 -8
package/README.md
CHANGED
|
@@ -1,35 +1,19 @@
|
|
|
1
1
|
# Secondhand MCP
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
A [Model Context Protocol](https://modelcontextprotocol.io) (MCP) server that lets AI assistants search secondhand marketplaces. Search Facebook Marketplace, eBay, and Depop for used and secondhand items — filter by price, category, condition, size, and color, then get full listing details with photos, descriptions, and seller info.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
- Search multiple marketplaces from a single interface
|
|
8
|
-
- Price filtering with min/max ranges
|
|
9
|
-
- Location-based search by city
|
|
10
|
-
- Detailed listing inspection (photos, descriptions, seller info)
|
|
11
|
-
- Availability filtering — sold/pending items excluded by default
|
|
12
|
-
- Works with Claude Desktop, Claude Code, Cursor, and other MCP clients
|
|
13
|
-
- Lightweight — no browser dependencies, native HTTP requests
|
|
5
|
+
Works with Claude Desktop, Claude Code, Cursor, and any MCP-compatible client.
|
|
14
6
|
|
|
15
7
|
## Supported Marketplaces
|
|
16
8
|
|
|
17
|
-
| Marketplace |
|
|
18
|
-
|
|
19
|
-
| Facebook Marketplace |
|
|
20
|
-
| eBay |
|
|
9
|
+
| Marketplace | Auth Required | Notes |
|
|
10
|
+
|-------------|---------------|-------|
|
|
11
|
+
| Facebook Marketplace | No | Location-based search |
|
|
12
|
+
| eBay | Yes (API keys) | Official Browse API |
|
|
13
|
+
| Depop | No | Requires Chrome installed |
|
|
21
14
|
|
|
22
15
|
## Setup
|
|
23
16
|
|
|
24
|
-
### From Source
|
|
25
|
-
|
|
26
|
-
```bash
|
|
27
|
-
git clone https://github.com/jlsookiki/secondhand-mcp.git
|
|
28
|
-
cd secondhand-mcp
|
|
29
|
-
npm install
|
|
30
|
-
npm run build
|
|
31
|
-
```
|
|
32
|
-
|
|
33
17
|
### Claude Desktop
|
|
34
18
|
|
|
35
19
|
Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
|
|
@@ -68,25 +52,31 @@ Add to `~/.claude/.mcp.json`:
|
|
|
68
52
|
}
|
|
69
53
|
```
|
|
70
54
|
|
|
71
|
-
eBay
|
|
55
|
+
eBay and Depop are both optional — if eBay API keys are missing or Chrome isn't installed, those marketplaces are automatically disabled and the rest still work.
|
|
56
|
+
|
|
57
|
+
### Depop / Chrome Requirement
|
|
58
|
+
|
|
59
|
+
Depop uses a headless browser to bypass Cloudflare. If **Google Chrome or Chromium** is installed on your system, Depop is automatically enabled — no config needed. If Chrome isn't found, Depop is silently skipped.
|
|
60
|
+
|
|
61
|
+
On macOS, the first time you search Depop, you may see a system prompt asking to allow Node.js to control Chrome. This is expected — puppeteer needs to launch Chrome in headless mode. Allow it once and it won't ask again.
|
|
62
|
+
|
|
63
|
+
The browser runs invisibly in the background and only launches when you actually search Depop.
|
|
72
64
|
|
|
73
65
|
## Configuration
|
|
74
66
|
|
|
75
67
|
### Choosing Marketplaces
|
|
76
68
|
|
|
77
|
-
By default all marketplaces are enabled. To limit which
|
|
69
|
+
By default all marketplaces are enabled. To limit which are active, set the `MARKETPLACES` env var (comma-separated):
|
|
78
70
|
|
|
79
71
|
```json
|
|
80
72
|
{
|
|
81
73
|
"env": {
|
|
82
|
-
"MARKETPLACES": "facebook"
|
|
83
|
-
"EBAY_CLIENT_ID": "...",
|
|
84
|
-
"EBAY_CLIENT_SECRET": "..."
|
|
74
|
+
"MARKETPLACES": "facebook,ebay"
|
|
85
75
|
}
|
|
86
76
|
}
|
|
87
77
|
```
|
|
88
78
|
|
|
89
|
-
Valid values: `facebook`, `ebay`
|
|
79
|
+
Valid values: `facebook`, `ebay`, `depop`
|
|
90
80
|
|
|
91
81
|
### eBay API Keys
|
|
92
82
|
|
|
@@ -100,29 +90,34 @@ eBay uses the official [Browse API](https://developer.ebay.com/api-docs/buy/brow
|
|
|
100
90
|
|
|
101
91
|
### `search_marketplace`
|
|
102
92
|
|
|
103
|
-
Search for items across marketplaces.
|
|
93
|
+
Search for items across marketplaces.
|
|
104
94
|
|
|
105
95
|
| Parameter | Required | Default | Description |
|
|
106
96
|
|-----------|----------|---------|-------------|
|
|
107
97
|
| `query` | Yes | | Search terms |
|
|
108
|
-
| `marketplace` | No | `facebook` | `facebook`, `ebay`, or `all` |
|
|
98
|
+
| `marketplace` | No | `facebook` | `facebook`, `ebay`, `depop`, or `all` |
|
|
109
99
|
| `location` | No | `san francisco` | City to search in (Facebook only) |
|
|
110
100
|
| `maxPrice` | No | | Maximum price |
|
|
111
101
|
| `minPrice` | No | | Minimum price |
|
|
112
102
|
| `limit` | No | `20` | Max results |
|
|
113
|
-
| `showSold` | No | `false` | Include sold
|
|
103
|
+
| `showSold` | No | `false` | Include sold items (Facebook only) |
|
|
114
104
|
| `includeImages` | No | `false` | Include image URLs in output |
|
|
105
|
+
| `sort` | No | `relevance` | Sort order (Depop only): `relevance`, `newest`, `most_popular`, `price_low_to_high`, `price_high_to_low` |
|
|
106
|
+
| `condition` | No | | Item condition. eBay: `new`, `like_new`, `good`, `fair`. Depop: `new`, `like_new`, `excellent`, `good`, `fair`, `used` |
|
|
107
|
+
| `category` | No | | Product category (Depop only): `tops`, `bottoms`, `dresses`, `coats-jackets`, `footwear`, `accessories`, `bags`, `jewellery`, `activewear`, `swimwear` |
|
|
108
|
+
| `sizes` | No | | Size filter (Depop only): e.g. `["S", "M", "L"]` or `["US 9", "US 10"]` |
|
|
109
|
+
| `colors` | No | | Color filter (Depop only): `black`, `white`, `red`, `blue`, `green`, `yellow`, `orange`, `pink`, `purple`, `brown`, `grey`, `cream`, `multi`, `silver`, `gold` |
|
|
115
110
|
|
|
116
111
|
**Data returned per marketplace:**
|
|
117
112
|
|
|
118
|
-
| Field | Facebook | eBay |
|
|
119
|
-
|
|
120
|
-
| Title | Yes | Yes |
|
|
121
|
-
| Price | Yes | Yes |
|
|
122
|
-
| Location | City
|
|
123
|
-
| Condition |
|
|
124
|
-
| Photo count |
|
|
125
|
-
| Seller | Yes | Yes |
|
|
113
|
+
| Field | Facebook | eBay | Depop |
|
|
114
|
+
|-------|----------|------|-------|
|
|
115
|
+
| Title | Yes | Yes | Yes |
|
|
116
|
+
| Price | Yes | Yes | Yes |
|
|
117
|
+
| Location | City | City, State | — |
|
|
118
|
+
| Condition | — | Yes | — |
|
|
119
|
+
| Photo count | 1 thumbnail | 1 thumbnail | 1 thumbnail |
|
|
120
|
+
| Seller | Yes | Yes | — |
|
|
126
121
|
|
|
127
122
|
### `get_listing_details`
|
|
128
123
|
|
|
@@ -131,71 +126,53 @@ Get full details for a specific listing using an ID from search results.
|
|
|
131
126
|
| Parameter | Required | Default | Description |
|
|
132
127
|
|-----------|----------|---------|-------------|
|
|
133
128
|
| `listingId` | Yes | | Listing ID from search results |
|
|
134
|
-
| `marketplace` | No | `facebook` | `facebook` or `
|
|
129
|
+
| `marketplace` | No | `facebook` | `facebook`, `ebay`, or `depop` |
|
|
135
130
|
|
|
136
131
|
**Data returned per marketplace:**
|
|
137
132
|
|
|
138
|
-
| Field | Facebook | eBay |
|
|
139
|
-
|
|
140
|
-
| Description | Yes | Yes |
|
|
141
|
-
| All photos | Yes | Yes |
|
|
142
|
-
| Location | City | City, State, Country |
|
|
143
|
-
| Seller | Name | Username |
|
|
144
|
-
| Delivery types | Yes |
|
|
145
|
-
| Shipping
|
|
133
|
+
| Field | Facebook | eBay | Depop |
|
|
134
|
+
|-------|----------|------|-------|
|
|
135
|
+
| Description | Yes | Yes | Yes |
|
|
136
|
+
| All photos | Yes | Yes | Yes |
|
|
137
|
+
| Location | City | City, State, Country | — |
|
|
138
|
+
| Seller | Name | Username | Username |
|
|
139
|
+
| Delivery types | Yes | — | — |
|
|
140
|
+
| Shipping | Yes/No | Service codes | Yes/No |
|
|
146
141
|
|
|
147
142
|
### `list_marketplaces`
|
|
148
143
|
|
|
149
144
|
List all enabled marketplaces and their status.
|
|
150
145
|
|
|
151
|
-
## Example Output
|
|
152
|
-
|
|
153
|
-
```
|
|
154
|
-
Found 15 listings for "stroller" on facebook
|
|
155
|
-
Location: san francisco
|
|
156
|
-
|
|
157
|
-
**$25** - Baby stroller
|
|
158
|
-
San Francisco, CA
|
|
159
|
-
ID: 123456789
|
|
160
|
-
1 photo
|
|
161
|
-
|
|
162
|
-
**$50** - Thule Urban Glide Jogging Stroller
|
|
163
|
-
San Francisco, CA
|
|
164
|
-
ID: 987654321
|
|
165
|
-
1 photo
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
Use `get_listing_details` with a listing ID to see full photos, description, and seller info.
|
|
169
|
-
|
|
170
146
|
## How It Works
|
|
171
147
|
|
|
172
|
-
**Facebook Marketplace** — Uses Facebook's internal GraphQL API
|
|
148
|
+
**Facebook Marketplace** — Uses Facebook's internal GraphQL API. Resolves city names to coordinates, then searches with location/price/query filters. No login or browser needed.
|
|
173
149
|
|
|
174
150
|
**eBay** — Uses the official eBay Browse API with OAuth 2.0 client credentials. Tokens are cached and auto-refreshed.
|
|
175
151
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
1. Create a new file in `src/marketplaces/` (e.g., `craigslist.ts`)
|
|
179
|
-
2. Extend `BaseMarketplace` and implement `search()` and optionally `getListingDetails()`
|
|
180
|
-
3. Add the constructor to the `allMarketplaces` registry in `src/marketplaces/index.ts`
|
|
152
|
+
**Depop** — Uses a headless browser (puppeteer-core + stealth plugin) to bypass Cloudflare TLS fingerprinting, then calls Depop's internal web API from within the browser context. Returns clean JSON — no DOM scraping. The browser instance is shared across requests.
|
|
181
153
|
|
|
182
154
|
## Development
|
|
183
155
|
|
|
184
156
|
```bash
|
|
157
|
+
git clone https://github.com/jlsookiki/secondhand-mcp.git
|
|
158
|
+
cd secondhand-mcp
|
|
185
159
|
npm install
|
|
186
160
|
npm run build
|
|
187
161
|
```
|
|
188
162
|
|
|
163
|
+
### Adding a Marketplace
|
|
164
|
+
|
|
165
|
+
1. Create a new file in `src/marketplaces/`
|
|
166
|
+
2. Extend `BaseMarketplace` and implement `search()` and optionally `getListingDetails()`
|
|
167
|
+
3. Add the constructor to `allMarketplaces` in `src/marketplaces/index.ts`
|
|
168
|
+
|
|
189
169
|
## Limitations
|
|
190
170
|
|
|
191
|
-
- **Facebook
|
|
192
|
-
- **Rate limiting**: Don't make too many requests too quickly
|
|
171
|
+
- **Facebook**: Uses undocumented GraphQL API — may break if Facebook changes `doc_id` values
|
|
193
172
|
- **eBay**: Requires developer API keys (free tier available)
|
|
173
|
+
- **Depop**: Requires Chrome/Chromium installed; slower than Facebook/eBay (~5s per search) due to headless browser startup
|
|
174
|
+
- **Rate limiting**: Don't make too many requests too quickly
|
|
194
175
|
|
|
195
176
|
## License
|
|
196
177
|
|
|
197
178
|
MIT
|
|
198
|
-
|
|
199
|
-
## Disclaimer
|
|
200
|
-
|
|
201
|
-
This tool is for personal use. Respect each marketplace's Terms of Service.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared headless browser management for Cloudflare-protected marketplaces.
|
|
3
|
+
*
|
|
4
|
+
* Uses puppeteer-core with the stealth plugin to bypass TLS fingerprinting.
|
|
5
|
+
* Requires system Chrome/Chromium installed.
|
|
6
|
+
* Browser instance is lazy-initialized and shared across requests.
|
|
7
|
+
*/
|
|
8
|
+
import { Browser, Page } from 'puppeteer-core';
|
|
9
|
+
export declare function findChrome(): string | null;
|
|
10
|
+
export declare function getBrowser(): Promise<Browser>;
|
|
11
|
+
export declare function newPage(): Promise<Page>;
|
|
12
|
+
export declare function closeBrowser(): Promise<void>;
|
|
13
|
+
//# sourceMappingURL=browser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAwB/C,wBAAgB,UAAU,IAAI,MAAM,GAAG,IAAI,CAM1C;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CAyBnD;AAED,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAK7C;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAKlD"}
|
package/dist/browser.js
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared headless browser management for Cloudflare-protected marketplaces.
|
|
4
|
+
*
|
|
5
|
+
* Uses puppeteer-core with the stealth plugin to bypass TLS fingerprinting.
|
|
6
|
+
* Requires system Chrome/Chromium installed.
|
|
7
|
+
* Browser instance is lazy-initialized and shared across requests.
|
|
8
|
+
*/
|
|
9
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
10
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.findChrome = findChrome;
|
|
14
|
+
exports.getBrowser = getBrowser;
|
|
15
|
+
exports.newPage = newPage;
|
|
16
|
+
exports.closeBrowser = closeBrowser;
|
|
17
|
+
const puppeteer_extra_1 = __importDefault(require("puppeteer-extra"));
|
|
18
|
+
const puppeteer_extra_plugin_stealth_1 = __importDefault(require("puppeteer-extra-plugin-stealth"));
|
|
19
|
+
const fs_1 = require("fs");
|
|
20
|
+
puppeteer_extra_1.default.use((0, puppeteer_extra_plugin_stealth_1.default)());
|
|
21
|
+
let browser = null;
|
|
22
|
+
const CHROME_PATHS = {
|
|
23
|
+
darwin: [
|
|
24
|
+
'/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
|
|
25
|
+
'/Applications/Chromium.app/Contents/MacOS/Chromium',
|
|
26
|
+
],
|
|
27
|
+
linux: [
|
|
28
|
+
'/usr/bin/google-chrome',
|
|
29
|
+
'/usr/bin/google-chrome-stable',
|
|
30
|
+
'/usr/bin/chromium-browser',
|
|
31
|
+
'/usr/bin/chromium',
|
|
32
|
+
],
|
|
33
|
+
win32: [
|
|
34
|
+
'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe',
|
|
35
|
+
'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe',
|
|
36
|
+
],
|
|
37
|
+
};
|
|
38
|
+
function findChrome() {
|
|
39
|
+
const paths = CHROME_PATHS[process.platform] ?? [];
|
|
40
|
+
for (const p of paths) {
|
|
41
|
+
if ((0, fs_1.existsSync)(p))
|
|
42
|
+
return p;
|
|
43
|
+
}
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
async function getBrowser() {
|
|
47
|
+
if (browser && browser.connected) {
|
|
48
|
+
return browser;
|
|
49
|
+
}
|
|
50
|
+
const executablePath = findChrome();
|
|
51
|
+
if (!executablePath) {
|
|
52
|
+
throw new Error('Chrome/Chromium not found. Install Google Chrome or set a custom path. ' +
|
|
53
|
+
`Checked: ${(CHROME_PATHS[process.platform] ?? []).join(', ')}`);
|
|
54
|
+
}
|
|
55
|
+
browser = await puppeteer_extra_1.default.launch({
|
|
56
|
+
headless: true,
|
|
57
|
+
executablePath,
|
|
58
|
+
args: [
|
|
59
|
+
'--no-sandbox',
|
|
60
|
+
'--disable-setuid-sandbox',
|
|
61
|
+
'--disable-dev-shm-usage',
|
|
62
|
+
'--disable-gpu',
|
|
63
|
+
],
|
|
64
|
+
});
|
|
65
|
+
return browser;
|
|
66
|
+
}
|
|
67
|
+
async function newPage() {
|
|
68
|
+
const b = await getBrowser();
|
|
69
|
+
const page = await b.newPage();
|
|
70
|
+
await page.setViewport({ width: 1280, height: 800 });
|
|
71
|
+
return page;
|
|
72
|
+
}
|
|
73
|
+
async function closeBrowser() {
|
|
74
|
+
if (browser) {
|
|
75
|
+
await browser.close().catch(() => { });
|
|
76
|
+
browser = null;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
// Clean shutdown
|
|
80
|
+
process.on('exit', () => {
|
|
81
|
+
if (browser) {
|
|
82
|
+
browser.close().catch(() => { });
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
//# sourceMappingURL=browser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;AA4BH,gCAMC;AAED,gCAyBC;AAED,0BAKC;AAED,oCAKC;AAzED,sEAAwC;AACxC,oGAA2D;AAE3D,2BAAgC;AAEhC,yBAAS,CAAC,GAAG,CAAC,IAAA,wCAAa,GAAE,CAAC,CAAC;AAE/B,IAAI,OAAO,GAAmB,IAAI,CAAC;AAEnC,MAAM,YAAY,GAA6B;IAC7C,MAAM,EAAE;QACN,8DAA8D;QAC9D,oDAAoD;KACrD;IACD,KAAK,EAAE;QACL,wBAAwB;QACxB,+BAA+B;QAC/B,2BAA2B;QAC3B,mBAAmB;KACpB;IACD,KAAK,EAAE;QACL,4DAA4D;QAC5D,kEAAkE;KACnE;CACF,CAAC;AAEF,SAAgB,UAAU;IACxB,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,IAAA,eAAU,EAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAEM,KAAK,UAAU,UAAU;IAC9B,IAAI,OAAO,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,cAAc,GAAG,UAAU,EAAE,CAAC;IACpC,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,yEAAyE;YACzE,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChE,CAAC;IACJ,CAAC;IAED,OAAO,GAAG,MAAO,yBAAiB,CAAC,MAAM,CAAC;QACxC,QAAQ,EAAE,IAAI;QACd,cAAc;QACd,IAAI,EAAE;YACJ,cAAc;YACd,0BAA0B;YAC1B,yBAAyB;YACzB,eAAe;SAChB;KACF,CAAY,CAAC;IAEd,OAAO,OAAO,CAAC;AACjB,CAAC;AAEM,KAAK,UAAU,OAAO;IAC3B,MAAM,CAAC,GAAG,MAAM,UAAU,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;IAC/B,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACrD,OAAO,IAAI,CAAC;AACd,CAAC;AAEM,KAAK,UAAU,YAAY;IAChC,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACtC,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;AACH,CAAC;AAED,iBAAiB;AACjB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;IACtB,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAClC,CAAC;AACH,CAAC,CAAC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -17,7 +17,7 @@ const marketplaces_1 = require("./marketplaces");
|
|
|
17
17
|
const tools = [
|
|
18
18
|
{
|
|
19
19
|
name: 'search_marketplace',
|
|
20
|
-
description: `Search for items on secondary marketplaces. Supports: ${(0, marketplaces_1.listMarketplaceNames)().join(', ')}. Returns listing ID, title, price, location, and photo count. Facebook: location-based search, no auth. eBay: keyword search with condition filter, requires API keys. Use get_listing_details with a listing ID for full description, all photos, seller info, and shipping options.`,
|
|
20
|
+
description: `Search for items on secondary marketplaces. Supports: ${(0, marketplaces_1.listMarketplaceNames)().join(', ')}. Returns listing ID, title, price, location, and photo count. Facebook: location-based search, no auth. eBay: keyword search with condition filter, requires API keys. Depop: keyword search with filters for sort, condition, category, brands, sizes, colors (requires Chrome). Use get_listing_details with a listing ID for full description, all photos, seller info, and shipping options.`,
|
|
21
21
|
inputSchema: {
|
|
22
22
|
type: 'object',
|
|
23
23
|
properties: {
|
|
@@ -57,6 +57,29 @@ const tools = [
|
|
|
57
57
|
type: 'boolean',
|
|
58
58
|
description: 'Include full image URLs in results (default: false). Use get_listing_details for full photos.',
|
|
59
59
|
default: false
|
|
60
|
+
},
|
|
61
|
+
sort: {
|
|
62
|
+
type: 'string',
|
|
63
|
+
description: 'Sort order (Depop only). Options: relevance, newest, most_popular, price_low_to_high, price_high_to_low',
|
|
64
|
+
default: 'relevance'
|
|
65
|
+
},
|
|
66
|
+
condition: {
|
|
67
|
+
type: 'string',
|
|
68
|
+
description: 'Item condition filter. eBay: new, like_new, good, fair. Depop: new, like_new, excellent, good, fair, used. Use "any" for no filter.',
|
|
69
|
+
},
|
|
70
|
+
category: {
|
|
71
|
+
type: 'string',
|
|
72
|
+
description: 'Product category (Depop only). Options: tops, bottoms, dresses, coats-jackets, footwear, accessories, bags, jewellery, activewear, swimwear',
|
|
73
|
+
},
|
|
74
|
+
sizes: {
|
|
75
|
+
type: 'array',
|
|
76
|
+
items: { type: 'string' },
|
|
77
|
+
description: 'Filter by sizes (Depop only). Example: ["S", "M", "L"] or ["US 9", "US 10"]',
|
|
78
|
+
},
|
|
79
|
+
colors: {
|
|
80
|
+
type: 'array',
|
|
81
|
+
items: { type: 'string' },
|
|
82
|
+
description: 'Filter by colors (Depop only). Options: black, white, red, blue, green, yellow, orange, pink, purple, brown, grey, cream, multi, silver, gold',
|
|
60
83
|
}
|
|
61
84
|
},
|
|
62
85
|
required: ['query']
|
|
@@ -64,7 +87,7 @@ const tools = [
|
|
|
64
87
|
},
|
|
65
88
|
{
|
|
66
89
|
name: 'get_listing_details',
|
|
67
|
-
description: 'Get full details for a specific listing using an ID from search results. Facebook returns: description, all photos, location, seller name, delivery types, shipping availability. eBay returns: description, all photos, location (city/state/country), seller username, shipping service options.',
|
|
90
|
+
description: 'Get full details for a specific listing using an ID from search results. Facebook returns: description, all photos, location, seller name, delivery types, shipping availability. eBay returns: description, all photos, location (city/state/country), seller username, shipping service options. Depop returns: description, all photos, seller username, shipping availability.',
|
|
68
91
|
inputSchema: {
|
|
69
92
|
type: 'object',
|
|
70
93
|
properties: {
|
|
@@ -116,6 +139,11 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
|
|
|
116
139
|
minPrice: params.minPrice,
|
|
117
140
|
limit: params.limit || 20,
|
|
118
141
|
showSold: params.showSold || false,
|
|
142
|
+
sort: params.sort,
|
|
143
|
+
condition: params.condition,
|
|
144
|
+
category: params.category,
|
|
145
|
+
sizes: params.sizes,
|
|
146
|
+
colors: params.colors,
|
|
119
147
|
};
|
|
120
148
|
const marketplaceName = params.marketplace || 'facebook';
|
|
121
149
|
if (marketplaceName === 'all') {
|
|
@@ -197,6 +225,10 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
|
|
|
197
225
|
const ebay = (0, marketplaces_1.getMarketplace)('ebay');
|
|
198
226
|
details = await ebay.getListingDetails(listingId);
|
|
199
227
|
}
|
|
228
|
+
else if (targetMp === 'depop') {
|
|
229
|
+
const depop = (0, marketplaces_1.getMarketplace)('depop');
|
|
230
|
+
details = await depop.getListingDetails(listingId);
|
|
231
|
+
}
|
|
200
232
|
else {
|
|
201
233
|
const fb = (0, marketplaces_1.getMarketplace)('facebook');
|
|
202
234
|
details = await fb.getListingDetails(listingId);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAEA;;;;;GAKG;;AAEH,wEAAmE;AACnE,wEAAiF;AACjF,iEAI4C;AAG5C,iDAOwB;AAExB,0BAA0B;AAC1B,IAAA,qCAAsB,GAAE,CAAC;AAEzB,yBAAyB;AACzB,MAAM,KAAK,GAAW;IACpB;QACE,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,yDAAyD,IAAA,mCAAoB,GAAE,CAAC,IAAI,CAAC,IAAI,CAAC,wRAAwR;QAC/X,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,+DAA+D;iBAC7E;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,mCAAmC,IAAA,mCAAoB,GAAE,CAAC,IAAI,CAAC,IAAI,CAAC,uCAAuC;oBACxH,OAAO,EAAE,UAAU;iBACpB;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,sEAAsE;oBACnF,OAAO,EAAE,eAAe;iBACzB;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,iCAAiC;iBAC/C;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,iCAAiC;iBAC/C;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,mDAAmD;oBAChE,OAAO,EAAE,EAAE;iBACZ;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,4DAA4D;oBACzE,OAAO,EAAE,KAAK;iBACf;gBACD,aAAa,EAAE;oBACb,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,+FAA+F;oBAC5G,OAAO,EAAE,KAAK;iBACf;aACF;YACD,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB;KACF;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,oSAAoS;QACjT,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2DAA2D;iBACzE;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2DAA2D;oBACxE,OAAO,EAAE,UAAU;iBACpB;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,CAAC;SACxB;KACF;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,kDAAkD;QAC/D,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE;SACf;KACF;CACF,CAAC;AAEF,gBAAgB;AAChB,MAAM,MAAM,GAAG,IAAI,iBAAM,CACvB;IACE,IAAI,EAAE,gBAAgB;IACtB,OAAO,EAAE,OAAO;CACjB,EACD;IACE,YAAY,EAAE;QACZ,KAAK,EAAE,EAAE;KACV;CACF,CACF,CAAC;AAEF,sBAAsB;AACtB,MAAM,CAAC,iBAAiB,CAAC,iCAAsB,EAAE,KAAK,IAAI,EAAE;IAC1D,OAAO,EAAE,KAAK,EAAE,CAAC;AACnB,CAAC,CAAC,CAAC;AAEH,oBAAoB;AACpB,MAAM,CAAC,iBAAiB,CAAC,gCAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAEjD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,oBAAoB,CAAC,CAAC,CAAC;YAC1B,MAAM,MAAM,GAAG,IASd,CAAC;YAEF,MAAM,YAAY,GAAiB;gBACjC,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,eAAe;gBAC5C,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;gBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,KAAK;aACnC,CAAC;YAEF,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,IAAI,UAAU,CAAC;YAEzD,IAAI,eAAe,KAAK,KAAK,EAAE,CAAC;gBAC9B,0BAA0B;gBAC1B,MAAM,OAAO,GAAmB,EAAE,CAAC;gBACnC,KAAK,MAAM,EAAE,IAAI,IAAA,iCAAkB,GAAE,EAAE,CAAC;oBACtC,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;wBAC7C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACvB,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,IAAI,CAAC;4BACX,WAAW,EAAE,EAAE,CAAC,IAAI;4BACpB,OAAO,EAAE,KAAK;4BACd,QAAQ,EAAE,EAAE;4BACZ,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;yBACrB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAED,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,qBAAqB,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC,aAAa,IAAI,KAAK,CAAC;yBAClF;qBACF;iBACF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,8BAA8B;gBAC9B,MAAM,WAAW,GAAG,IAAA,6BAAc,EAAC,eAAe,CAAC,CAAC;gBACpD,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,wBAAwB,eAAe,gBAAgB,IAAA,mCAAoB,GAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;6BACjG;yBACF;wBACD,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;gBAED,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;oBACtD,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,aAAa,IAAI,KAAK,CAAC;6BAC9E;yBACF;qBACF,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,mBAAmB,WAAW,CAAC,WAAW,KAAK,KAAK,EAAE;6BAC7D;yBACF;wBACD,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,KAAK,qBAAqB,CAAC,CAAC,CAAC;YAC3B,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,IAG1C,CAAC;YAEF,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,uCAAuC,EAAE,CAAC;oBAC1E,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,UAAU,CAAC;gBACtC,IAAI,OAAuB,CAAC;gBAE5B,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;oBACxB,MAAM,IAAI,GAAG,IAAA,6BAAc,EAAC,MAAM,CAAoB,CAAC;oBACvD,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;gBACpD,CAAC;qBAAM,CAAC;oBACN,MAAM,EAAE,GAAG,IAAA,6BAAc,EAAC,UAAU,CAAwB,CAAC;oBAC7D,OAAO,GAAG,MAAM,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;gBAClD,CAAC;gBAED,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC;iBACjE,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mCAAmC,KAAK,EAAE,EAAE,CAAC;oBAC7E,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC;QAED,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACzB,MAAM,YAAY,GAAG,IAAA,iCAAkB,GAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBACnC,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,WAAW,EAAE,EAAE,CAAC,WAAW;gBAC3B,YAAY,EAAE,EAAE,CAAC,YAAY;aAC9B,CAAC,CAAC,CAAC;YAEJ,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,8BAA8B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAC/C,KAAK,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAC5F,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;qBACf;iBACF;aACF,CAAC;QACJ,CAAC;QAED;YACE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,EAAE,CAAC;gBAC1D,OAAO,EAAE,IAAI;aACd,CAAC;IACN,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,6BAA6B;AAC7B,SAAS,kBAAkB,CAAC,MAAoB,EAAE,MAAoB,EAAE,aAAsB;IAC5F,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,KAAK,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC;IACpD,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,0BAA0B,MAAM,CAAC,KAAK,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;IACzE,CAAC;IAED,MAAM,KAAK,GAAG;QACZ,YAAY,MAAM,CAAC,QAAQ,CAAC,MAAM,kBAAkB,MAAM,CAAC,KAAK,QAAQ,MAAM,CAAC,WAAW,EAAE;QAC5F,gBAAgB,MAAM,CAAC,QAAQ,EAAE;QACjC,EAAE;KACH,CAAC;IAEF,gBAAgB;IAChB,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAChD,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAC9C,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,KAAK,QAAQ,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACtD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAClC,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,IAAI,aAAa,EAAE,CAAC;gBAClB,KAAK,CAAC,IAAI,CAAC,kBAAkB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC7D,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,MAAM,SAAS,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5F,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAuB,EAAE,MAAoB,EAAE,aAAsB;IAClG,MAAM,KAAK,GAAG;QACZ,0BAA0B,MAAM,CAAC,KAAK,2BAA2B;QACjE,gBAAgB,MAAM,CAAC,QAAQ,EAAE;QACjC,EAAE;KACH,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QAEvC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACzC,CAAC;aAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,QAAQ,CAAC,MAAM,YAAY,CAAC,CAAC;YAExD,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAChD,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAC9C,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,yBAAyB;YAEzC,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE,CAAC;gBAC7B,KAAK,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,KAAK,QAAQ,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC1D,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChD,IAAI,aAAa,EAAE,CAAC;wBAClB,KAAK,CAAC,IAAI,CAAC,mBAAmB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAC9D,CAAC;yBAAM,CAAC;wBACN,KAAK,CAAC,IAAI,CAAC,UAAU,OAAO,CAAC,MAAM,CAAC,MAAM,SAAS,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC7F,CAAC;gBACH,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,UAAU,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAuB;IACnD,MAAM,KAAK,GAAG;QACZ,oBAAoB;QACpB,MAAM,OAAO,CAAC,GAAG,EAAE;QACnB,EAAE;KACH,CAAC;IAEF,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,oBAAoB,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QACtD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,cAAc,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9D,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;QACrD,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,eAAe;AACf,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,+BAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;AACjD,CAAC;AAED,iBAAiB;AACjB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7C,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAEA;;;;;GAKG;;AAEH,wEAAmE;AACnE,wEAAiF;AACjF,iEAI4C;AAG5C,iDAQwB;AAExB,0BAA0B;AAC1B,IAAA,qCAAsB,GAAE,CAAC;AAEzB,yBAAyB;AACzB,MAAM,KAAK,GAAW;IACpB;QACE,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,yDAAyD,IAAA,mCAAoB,GAAE,CAAC,IAAI,CAAC,IAAI,CAAC,mYAAmY;QAC1e,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,+DAA+D;iBAC7E;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,mCAAmC,IAAA,mCAAoB,GAAE,CAAC,IAAI,CAAC,IAAI,CAAC,uCAAuC;oBACxH,OAAO,EAAE,UAAU;iBACpB;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,sEAAsE;oBACnF,OAAO,EAAE,eAAe;iBACzB;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,iCAAiC;iBAC/C;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,iCAAiC;iBAC/C;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,mDAAmD;oBAChE,OAAO,EAAE,EAAE;iBACZ;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,4DAA4D;oBACzE,OAAO,EAAE,KAAK;iBACf;gBACD,aAAa,EAAE;oBACb,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,+FAA+F;oBAC5G,OAAO,EAAE,KAAK;iBACf;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,yGAAyG;oBACtH,OAAO,EAAE,WAAW;iBACrB;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,qIAAqI;iBACnJ;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,6IAA6I;iBAC3J;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EAAE,6EAA6E;iBAC3F;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EAAE,+IAA+I;iBAC7J;aACF;YACD,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB;KACF;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,oXAAoX;QACjY,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2DAA2D;iBACzE;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2DAA2D;oBACxE,OAAO,EAAE,UAAU;iBACpB;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,CAAC;SACxB;KACF;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,kDAAkD;QAC/D,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE;SACf;KACF;CACF,CAAC;AAEF,gBAAgB;AAChB,MAAM,MAAM,GAAG,IAAI,iBAAM,CACvB;IACE,IAAI,EAAE,gBAAgB;IACtB,OAAO,EAAE,OAAO;CACjB,EACD;IACE,YAAY,EAAE;QACZ,KAAK,EAAE,EAAE;KACV;CACF,CACF,CAAC;AAEF,sBAAsB;AACtB,MAAM,CAAC,iBAAiB,CAAC,iCAAsB,EAAE,KAAK,IAAI,EAAE;IAC1D,OAAO,EAAE,KAAK,EAAE,CAAC;AACnB,CAAC,CAAC,CAAC;AAEH,oBAAoB;AACpB,MAAM,CAAC,iBAAiB,CAAC,gCAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAEjD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,oBAAoB,CAAC,CAAC,CAAC;YAC1B,MAAM,MAAM,GAAG,IAcd,CAAC;YAEF,MAAM,YAAY,GAAiB;gBACjC,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,eAAe;gBAC5C,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;gBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,KAAK;gBAClC,IAAI,EAAE,MAAM,CAAC,IAA4B;gBACzC,SAAS,EAAE,MAAM,CAAC,SAAsC;gBACxD,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC;YAEF,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,IAAI,UAAU,CAAC;YAEzD,IAAI,eAAe,KAAK,KAAK,EAAE,CAAC;gBAC9B,0BAA0B;gBAC1B,MAAM,OAAO,GAAmB,EAAE,CAAC;gBACnC,KAAK,MAAM,EAAE,IAAI,IAAA,iCAAkB,GAAE,EAAE,CAAC;oBACtC,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;wBAC7C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACvB,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,IAAI,CAAC;4BACX,WAAW,EAAE,EAAE,CAAC,IAAI;4BACpB,OAAO,EAAE,KAAK;4BACd,QAAQ,EAAE,EAAE;4BACZ,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;yBACrB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAED,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,qBAAqB,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC,aAAa,IAAI,KAAK,CAAC;yBAClF;qBACF;iBACF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,8BAA8B;gBAC9B,MAAM,WAAW,GAAG,IAAA,6BAAc,EAAC,eAAe,CAAC,CAAC;gBACpD,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,wBAAwB,eAAe,gBAAgB,IAAA,mCAAoB,GAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;6BACjG;yBACF;wBACD,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;gBAED,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;oBACtD,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,aAAa,IAAI,KAAK,CAAC;6BAC9E;yBACF;qBACF,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,mBAAmB,WAAW,CAAC,WAAW,KAAK,KAAK,EAAE;6BAC7D;yBACF;wBACD,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,KAAK,qBAAqB,CAAC,CAAC,CAAC;YAC3B,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,IAG1C,CAAC;YAEF,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,uCAAuC,EAAE,CAAC;oBAC1E,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,UAAU,CAAC;gBACtC,IAAI,OAAuB,CAAC;gBAE5B,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;oBACxB,MAAM,IAAI,GAAG,IAAA,6BAAc,EAAC,MAAM,CAAoB,CAAC;oBACvD,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;gBACpD,CAAC;qBAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;oBAChC,MAAM,KAAK,GAAG,IAAA,6BAAc,EAAC,OAAO,CAAqB,CAAC;oBAC1D,OAAO,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;gBACrD,CAAC;qBAAM,CAAC;oBACN,MAAM,EAAE,GAAG,IAAA,6BAAc,EAAC,UAAU,CAAwB,CAAC;oBAC7D,OAAO,GAAG,MAAM,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;gBAClD,CAAC;gBAED,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC;iBACjE,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mCAAmC,KAAK,EAAE,EAAE,CAAC;oBAC7E,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC;QAED,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACzB,MAAM,YAAY,GAAG,IAAA,iCAAkB,GAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBACnC,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,WAAW,EAAE,EAAE,CAAC,WAAW;gBAC3B,YAAY,EAAE,EAAE,CAAC,YAAY;aAC9B,CAAC,CAAC,CAAC;YAEJ,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,8BAA8B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAC/C,KAAK,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAC5F,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;qBACf;iBACF;aACF,CAAC;QACJ,CAAC;QAED;YACE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,EAAE,CAAC;gBAC1D,OAAO,EAAE,IAAI;aACd,CAAC;IACN,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,6BAA6B;AAC7B,SAAS,kBAAkB,CAAC,MAAoB,EAAE,MAAoB,EAAE,aAAsB;IAC5F,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,KAAK,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC;IACpD,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,0BAA0B,MAAM,CAAC,KAAK,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;IACzE,CAAC;IAED,MAAM,KAAK,GAAG;QACZ,YAAY,MAAM,CAAC,QAAQ,CAAC,MAAM,kBAAkB,MAAM,CAAC,KAAK,QAAQ,MAAM,CAAC,WAAW,EAAE;QAC5F,gBAAgB,MAAM,CAAC,QAAQ,EAAE;QACjC,EAAE;KACH,CAAC;IAEF,gBAAgB;IAChB,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAChD,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAC9C,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,KAAK,QAAQ,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACtD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAClC,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,IAAI,aAAa,EAAE,CAAC;gBAClB,KAAK,CAAC,IAAI,CAAC,kBAAkB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC7D,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,MAAM,SAAS,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5F,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAuB,EAAE,MAAoB,EAAE,aAAsB;IAClG,MAAM,KAAK,GAAG;QACZ,0BAA0B,MAAM,CAAC,KAAK,2BAA2B;QACjE,gBAAgB,MAAM,CAAC,QAAQ,EAAE;QACjC,EAAE;KACH,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QAEvC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACzC,CAAC;aAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,QAAQ,CAAC,MAAM,YAAY,CAAC,CAAC;YAExD,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAChD,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAC9C,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,yBAAyB;YAEzC,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE,CAAC;gBAC7B,KAAK,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,KAAK,QAAQ,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC1D,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChD,IAAI,aAAa,EAAE,CAAC;wBAClB,KAAK,CAAC,IAAI,CAAC,mBAAmB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAC9D,CAAC;yBAAM,CAAC;wBACN,KAAK,CAAC,IAAI,CAAC,UAAU,OAAO,CAAC,MAAM,CAAC,MAAM,SAAS,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC7F,CAAC;gBACH,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,UAAU,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAuB;IACnD,MAAM,KAAK,GAAG;QACZ,oBAAoB;QACpB,MAAM,OAAO,CAAC,GAAG,EAAE;QACnB,EAAE;KACH,CAAC;IAEF,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,oBAAoB,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QACtD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,cAAc,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9D,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;QACrD,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,eAAe;AACf,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,+BAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;AACjD,CAAC;AAED,iBAAiB;AACjB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7C,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Depop Marketplace implementation
|
|
3
|
+
*
|
|
4
|
+
* Uses a headless browser to bypass Cloudflare TLS fingerprinting,
|
|
5
|
+
* then calls the Depop web API directly from within the browser context.
|
|
6
|
+
* This gives us clean JSON without any DOM scraping.
|
|
7
|
+
* No Depop authentication required.
|
|
8
|
+
*/
|
|
9
|
+
import { BaseMarketplace } from './base';
|
|
10
|
+
import { SearchParams, SearchResult, ListingDetails } from '../types';
|
|
11
|
+
export declare class DepopMarketplace extends BaseMarketplace {
|
|
12
|
+
readonly name = "depop";
|
|
13
|
+
readonly displayName = "Depop";
|
|
14
|
+
readonly requiresAuth = false;
|
|
15
|
+
search(params: SearchParams): Promise<SearchResult>;
|
|
16
|
+
getListingDetails(slug: string): Promise<ListingDetails>;
|
|
17
|
+
healthCheck(): Promise<boolean>;
|
|
18
|
+
private humanizeSlug;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=depop.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"depop.d.ts","sourceRoot":"","sources":["../../src/marketplaces/depop.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAW,cAAc,EAAE,MAAM,UAAU,CAAC;AAiB/E,qBAAa,gBAAiB,SAAQ,eAAe;IACnD,QAAQ,CAAC,IAAI,WAAW;IACxB,QAAQ,CAAC,WAAW,WAAW;IAC/B,QAAQ,CAAC,YAAY,SAAS;IAExB,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAgGnD,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAqDxD,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAWrC,OAAO,CAAC,YAAY;CASrB"}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Depop Marketplace implementation
|
|
4
|
+
*
|
|
5
|
+
* Uses a headless browser to bypass Cloudflare TLS fingerprinting,
|
|
6
|
+
* then calls the Depop web API directly from within the browser context.
|
|
7
|
+
* This gives us clean JSON without any DOM scraping.
|
|
8
|
+
* No Depop authentication required.
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.DepopMarketplace = void 0;
|
|
12
|
+
const base_1 = require("./base");
|
|
13
|
+
const browser_1 = require("../browser");
|
|
14
|
+
const DEPOP_HOME = 'https://www.depop.com/';
|
|
15
|
+
const SEARCH_API = 'https://webapi.depop.com/api/v2/search/products/';
|
|
16
|
+
const EXTENDED_API = 'https://webapi.depop.com/api/v1/product/by-slug/';
|
|
17
|
+
const PRODUCT_URL = 'https://www.depop.com/products/';
|
|
18
|
+
// Map user-friendly condition names to Depop API values
|
|
19
|
+
const CONDITION_MAP = {
|
|
20
|
+
new: 'brand_new',
|
|
21
|
+
like_new: 'used_like_new',
|
|
22
|
+
excellent: 'used_excellent',
|
|
23
|
+
good: 'used_good',
|
|
24
|
+
fair: 'used_fair',
|
|
25
|
+
};
|
|
26
|
+
class DepopMarketplace extends base_1.BaseMarketplace {
|
|
27
|
+
name = 'depop';
|
|
28
|
+
displayName = 'Depop';
|
|
29
|
+
requiresAuth = false;
|
|
30
|
+
async search(params) {
|
|
31
|
+
const { query, maxPrice, minPrice, limit = 24, sort, condition, category, sizes, colors } = params;
|
|
32
|
+
let page;
|
|
33
|
+
try {
|
|
34
|
+
page = await (0, browser_1.newPage)();
|
|
35
|
+
// Navigate to Depop first to establish Cloudflare cookies/session
|
|
36
|
+
await page.goto(DEPOP_HOME, { waitUntil: 'networkidle2', timeout: 30000 });
|
|
37
|
+
// Build API URL
|
|
38
|
+
const apiUrl = new URL(SEARCH_API);
|
|
39
|
+
apiUrl.searchParams.set('what', query);
|
|
40
|
+
apiUrl.searchParams.set('itemsPerPage', String(limit));
|
|
41
|
+
apiUrl.searchParams.set('country', 'us');
|
|
42
|
+
apiUrl.searchParams.set('currency', 'USD');
|
|
43
|
+
apiUrl.searchParams.set('sort', sort || 'relevance');
|
|
44
|
+
if (minPrice != null)
|
|
45
|
+
apiUrl.searchParams.set('priceMin', String(minPrice));
|
|
46
|
+
if (maxPrice != null)
|
|
47
|
+
apiUrl.searchParams.set('priceMax', String(maxPrice));
|
|
48
|
+
if (condition && condition !== 'any') {
|
|
49
|
+
const depopCondition = CONDITION_MAP[condition];
|
|
50
|
+
if (depopCondition)
|
|
51
|
+
apiUrl.searchParams.set('conditions', depopCondition);
|
|
52
|
+
}
|
|
53
|
+
if (category)
|
|
54
|
+
apiUrl.searchParams.set('groups', category);
|
|
55
|
+
if (sizes)
|
|
56
|
+
for (const s of sizes)
|
|
57
|
+
apiUrl.searchParams.append('sizes', s);
|
|
58
|
+
if (colors)
|
|
59
|
+
for (const c of colors)
|
|
60
|
+
apiUrl.searchParams.append('colours', c);
|
|
61
|
+
// Call the API from within the browser context
|
|
62
|
+
const apiResponse = await page.evaluate(async (url) => {
|
|
63
|
+
try {
|
|
64
|
+
const res = await fetch(url, {
|
|
65
|
+
headers: {
|
|
66
|
+
'accept': 'application/json',
|
|
67
|
+
},
|
|
68
|
+
});
|
|
69
|
+
if (!res.ok)
|
|
70
|
+
return { error: `HTTP ${res.status}`, data: null };
|
|
71
|
+
const data = await res.json();
|
|
72
|
+
return { error: null, data };
|
|
73
|
+
}
|
|
74
|
+
catch (e) {
|
|
75
|
+
return { error: e.message || String(e), data: null };
|
|
76
|
+
}
|
|
77
|
+
}, apiUrl.toString());
|
|
78
|
+
if (apiResponse.error || !apiResponse.data) {
|
|
79
|
+
return this.createError(`Depop API error: ${apiResponse.error}`);
|
|
80
|
+
}
|
|
81
|
+
const data = apiResponse.data;
|
|
82
|
+
const products = data.products || [];
|
|
83
|
+
const listings = [];
|
|
84
|
+
for (const product of products) {
|
|
85
|
+
if (listings.length >= limit)
|
|
86
|
+
break;
|
|
87
|
+
const slug = product.slug;
|
|
88
|
+
if (!slug)
|
|
89
|
+
continue;
|
|
90
|
+
const priceAmount = product.price?.priceAmount;
|
|
91
|
+
const currency = product.price?.currencyName === 'GBP' ? '£' : '$';
|
|
92
|
+
const priceStr = priceAmount != null ? `${currency}${priceAmount}` : 'Price not listed';
|
|
93
|
+
const priceNumeric = priceAmount != null ? parseFloat(priceAmount) : undefined;
|
|
94
|
+
// Get best available preview image (values are direct URL strings)
|
|
95
|
+
const preview = product.preview;
|
|
96
|
+
const images = [];
|
|
97
|
+
if (preview) {
|
|
98
|
+
const imgUrl = preview['480'] || preview['320'] || preview['640'];
|
|
99
|
+
if (imgUrl)
|
|
100
|
+
images.push(imgUrl);
|
|
101
|
+
}
|
|
102
|
+
listings.push({
|
|
103
|
+
id: slug,
|
|
104
|
+
title: this.humanizeSlug(slug),
|
|
105
|
+
price: priceStr,
|
|
106
|
+
priceNumeric,
|
|
107
|
+
currency,
|
|
108
|
+
url: `${PRODUCT_URL}${slug}`,
|
|
109
|
+
images: images.length > 0 ? images : undefined,
|
|
110
|
+
marketplace: this.name,
|
|
111
|
+
scrapedAt: new Date().toISOString(),
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
return {
|
|
115
|
+
marketplace: this.name,
|
|
116
|
+
success: true,
|
|
117
|
+
listings,
|
|
118
|
+
totalFound: data.meta?.resultCount ?? listings.length,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
return this.createError(`Depop search failed: ${error}`);
|
|
123
|
+
}
|
|
124
|
+
finally {
|
|
125
|
+
if (page)
|
|
126
|
+
await page.close().catch(() => { });
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
async getListingDetails(slug) {
|
|
130
|
+
let page;
|
|
131
|
+
try {
|
|
132
|
+
page = await (0, browser_1.newPage)();
|
|
133
|
+
// Navigate to product page — JSON-LD has description + images
|
|
134
|
+
await page.goto(`${PRODUCT_URL}${slug}/`, { waitUntil: 'networkidle2', timeout: 30000 });
|
|
135
|
+
// Extract JSON-LD structured data (description, images, price, condition)
|
|
136
|
+
const jsonLd = await page.evaluate(`
|
|
137
|
+
(() => {
|
|
138
|
+
const el = document.querySelector('script[type="application/ld+json"]');
|
|
139
|
+
if (!el) return null;
|
|
140
|
+
try { return JSON.parse(el.textContent || ''); } catch { return null; }
|
|
141
|
+
})()
|
|
142
|
+
`);
|
|
143
|
+
// Call extended API for seller/shipping details
|
|
144
|
+
const extended = await page.evaluate(async (url) => {
|
|
145
|
+
try {
|
|
146
|
+
const res = await fetch(url);
|
|
147
|
+
if (res.ok)
|
|
148
|
+
return await res.json();
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
151
|
+
catch {
|
|
152
|
+
return null;
|
|
153
|
+
}
|
|
154
|
+
}, `${EXTENDED_API}${slug}/extended/?lang=en&force_fee_calculation=true`);
|
|
155
|
+
// Extract seller username from meta description ("... - Sold by @username")
|
|
156
|
+
const seller = await page.evaluate(`
|
|
157
|
+
(() => {
|
|
158
|
+
const meta = document.querySelector('meta[name="description"]');
|
|
159
|
+
const content = meta ? meta.getAttribute('content') || '' : '';
|
|
160
|
+
const match = content.match(/Sold by @(\\w+)/);
|
|
161
|
+
return match ? match[1] : undefined;
|
|
162
|
+
})()
|
|
163
|
+
`);
|
|
164
|
+
const images = jsonLd?.image || [];
|
|
165
|
+
const hasShipping = extended?.pricing?.national_shipping_cost != null
|
|
166
|
+
|| extended?.has_free_shipping === true;
|
|
167
|
+
return {
|
|
168
|
+
id: slug,
|
|
169
|
+
description: jsonLd?.description ?? undefined,
|
|
170
|
+
images,
|
|
171
|
+
seller,
|
|
172
|
+
isShippingOffered: hasShipping,
|
|
173
|
+
url: `${PRODUCT_URL}${slug}`,
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
finally {
|
|
177
|
+
if (page)
|
|
178
|
+
await page.close().catch(() => { });
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
async healthCheck() {
|
|
182
|
+
try {
|
|
183
|
+
const result = await this.search({ query: 'test', limit: 1 });
|
|
184
|
+
return result.success;
|
|
185
|
+
}
|
|
186
|
+
catch {
|
|
187
|
+
return false;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
// ── Private helpers ──────────────────────────────────────────────
|
|
191
|
+
humanizeSlug(slug) {
|
|
192
|
+
const parts = slug.split('-');
|
|
193
|
+
if (parts.length <= 2)
|
|
194
|
+
return slug.replace(/-/g, ' ');
|
|
195
|
+
// Remove first part (username) and last part (random suffix)
|
|
196
|
+
const titleParts = parts.slice(1, -1);
|
|
197
|
+
return titleParts
|
|
198
|
+
.map(word => word.charAt(0).toUpperCase() + word.slice(1))
|
|
199
|
+
.join(' ');
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
exports.DepopMarketplace = DepopMarketplace;
|
|
203
|
+
//# sourceMappingURL=depop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"depop.js","sourceRoot":"","sources":["../../src/marketplaces/depop.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ import { Marketplace } from './base';
|
|
|
5
5
|
export { Marketplace, BaseMarketplace } from './base';
|
|
6
6
|
export { FacebookMarketplace } from './facebook';
|
|
7
7
|
export { EbayMarketplace } from './ebay';
|
|
8
|
+
export { DepopMarketplace } from './depop';
|
|
8
9
|
export declare function initializeMarketplaces(): void;
|
|
9
10
|
export declare function registerMarketplace(marketplace: Marketplace): void;
|
|
10
11
|
export declare function getMarketplace(name: string): Marketplace | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/marketplaces/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/marketplaces/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAMrC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAc3C,wBAAgB,sBAAsB,IAAI,IAAI,CAoB7C;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAElE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAEpE;AAED,wBAAgB,kBAAkB,IAAI,WAAW,EAAE,CAElD;AAED,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAE/C"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Marketplace registry - central place to register and access all marketplace implementations
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.EbayMarketplace = exports.FacebookMarketplace = exports.BaseMarketplace = void 0;
|
|
6
|
+
exports.DepopMarketplace = exports.EbayMarketplace = exports.FacebookMarketplace = exports.BaseMarketplace = void 0;
|
|
7
7
|
exports.initializeMarketplaces = initializeMarketplaces;
|
|
8
8
|
exports.registerMarketplace = registerMarketplace;
|
|
9
9
|
exports.getMarketplace = getMarketplace;
|
|
@@ -11,18 +11,23 @@ exports.getAllMarketplaces = getAllMarketplaces;
|
|
|
11
11
|
exports.listMarketplaceNames = listMarketplaceNames;
|
|
12
12
|
const facebook_1 = require("./facebook");
|
|
13
13
|
const ebay_1 = require("./ebay");
|
|
14
|
+
const depop_1 = require("./depop");
|
|
15
|
+
const browser_1 = require("../browser");
|
|
14
16
|
var base_1 = require("./base");
|
|
15
17
|
Object.defineProperty(exports, "BaseMarketplace", { enumerable: true, get: function () { return base_1.BaseMarketplace; } });
|
|
16
18
|
var facebook_2 = require("./facebook");
|
|
17
19
|
Object.defineProperty(exports, "FacebookMarketplace", { enumerable: true, get: function () { return facebook_2.FacebookMarketplace; } });
|
|
18
20
|
var ebay_2 = require("./ebay");
|
|
19
21
|
Object.defineProperty(exports, "EbayMarketplace", { enumerable: true, get: function () { return ebay_2.EbayMarketplace; } });
|
|
22
|
+
var depop_2 = require("./depop");
|
|
23
|
+
Object.defineProperty(exports, "DepopMarketplace", { enumerable: true, get: function () { return depop_2.DepopMarketplace; } });
|
|
20
24
|
// Registry of all available marketplaces
|
|
21
25
|
const marketplaces = new Map();
|
|
22
26
|
// All known marketplace constructors
|
|
23
27
|
const allMarketplaces = {
|
|
24
28
|
facebook: () => new facebook_1.FacebookMarketplace(),
|
|
25
29
|
ebay: () => new ebay_1.EbayMarketplace(),
|
|
30
|
+
depop: () => new depop_1.DepopMarketplace(),
|
|
26
31
|
};
|
|
27
32
|
// Register marketplaces based on MARKETPLACES env var (comma-separated).
|
|
28
33
|
// If not set, all marketplaces are enabled by default.
|
|
@@ -39,6 +44,10 @@ function initializeMarketplaces() {
|
|
|
39
44
|
console.error('eBay marketplace enabled but EBAY_CLIENT_ID/EBAY_CLIENT_SECRET not set — skipping');
|
|
40
45
|
continue;
|
|
41
46
|
}
|
|
47
|
+
if (name === 'depop' && !(0, browser_1.findChrome)()) {
|
|
48
|
+
console.error('Depop marketplace enabled but Chrome/Chromium not found — skipping');
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
42
51
|
registerMarketplace(factory());
|
|
43
52
|
}
|
|
44
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/marketplaces/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/marketplaces/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAyBH,wDAoBC;AAED,kDAEC;AAED,wCAEC;AAED,gDAEC;AAED,oDAEC;AA1DD,yCAAiD;AACjD,iCAAyC;AACzC,mCAA2C;AAC3C,wCAAwC;AAExC,+BAAsD;AAAhC,uGAAA,eAAe,OAAA;AACrC,uCAAiD;AAAxC,+GAAA,mBAAmB,OAAA;AAC5B,+BAAyC;AAAhC,uGAAA,eAAe,OAAA;AACxB,iCAA2C;AAAlC,yGAAA,gBAAgB,OAAA;AAEzB,yCAAyC;AACzC,MAAM,YAAY,GAA6B,IAAI,GAAG,EAAE,CAAC;AAEzD,qCAAqC;AACrC,MAAM,eAAe,GAAsC;IACzD,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,8BAAmB,EAAE;IACzC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,sBAAe,EAAE;IACjC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,wBAAgB,EAAE;CACpC,CAAC;AAEF,yEAAyE;AACzE,uDAAuD;AACvD,SAAgB,sBAAsB;IACpC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACtG,MAAM,OAAO,GAAG,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAExD,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,wBAAwB,IAAI,8BAA8B,CAAC,CAAC;YAC1E,SAAS;QACX,CAAC;QACD,IAAI,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACxF,OAAO,CAAC,KAAK,CAAC,mFAAmF,CAAC,CAAC;YACnG,SAAS;QACX,CAAC;QACD,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,IAAA,oBAAU,GAAE,EAAE,CAAC;YACtC,OAAO,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;YACpF,SAAS;QACX,CAAC;QACD,mBAAmB,CAAC,OAAO,EAAE,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED,SAAgB,mBAAmB,CAAC,WAAwB;IAC1D,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAClD,CAAC;AAED,SAAgB,cAAc,CAAC,IAAY;IACzC,OAAO,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,SAAgB,kBAAkB;IAChC,OAAO,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,SAAgB,oBAAoB;IAClC,OAAO,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;AACzC,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -22,9 +22,13 @@ export interface SearchParams {
|
|
|
22
22
|
maxPrice?: number;
|
|
23
23
|
minPrice?: number;
|
|
24
24
|
radius?: number;
|
|
25
|
-
condition?: 'new' | 'like_new' | 'good' | 'fair' | 'any';
|
|
25
|
+
condition?: 'new' | 'like_new' | 'excellent' | 'good' | 'fair' | 'used' | 'any';
|
|
26
26
|
limit?: number;
|
|
27
27
|
showSold?: boolean;
|
|
28
|
+
sort?: 'relevance' | 'newest' | 'price_low_to_high' | 'price_high_to_low' | 'most_popular';
|
|
29
|
+
category?: string;
|
|
30
|
+
sizes?: string[];
|
|
31
|
+
colors?: string[];
|
|
28
32
|
}
|
|
29
33
|
export interface SearchResult {
|
|
30
34
|
marketplace: string;
|
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;AAEH,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,KAAK,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,KAAK,GAAG,UAAU,GAAG,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;IAChF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,cAAc,CAAC;IAC3F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "secondhand-mcp",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "MCP server for searching
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "MCP server for searching secondhand marketplaces — Facebook Marketplace, eBay, and Depop. Search listings, filter by price/category/condition, and get full details with photos.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"bin": {
|
|
@@ -19,30 +19,37 @@
|
|
|
19
19
|
},
|
|
20
20
|
"keywords": [
|
|
21
21
|
"mcp",
|
|
22
|
+
"mcp-server",
|
|
23
|
+
"model-context-protocol",
|
|
22
24
|
"marketplace",
|
|
23
25
|
"facebook-marketplace",
|
|
24
26
|
"ebay",
|
|
25
|
-
"
|
|
27
|
+
"depop",
|
|
26
28
|
"secondhand",
|
|
29
|
+
"thrift",
|
|
27
30
|
"resale",
|
|
28
31
|
"claude",
|
|
29
|
-
"
|
|
32
|
+
"claude-desktop",
|
|
33
|
+
"ai-tools"
|
|
30
34
|
],
|
|
31
35
|
"author": "Justin Sookikian",
|
|
32
36
|
"license": "MIT",
|
|
33
37
|
"dependencies": {
|
|
34
|
-
"@modelcontextprotocol/sdk": "~1.5.0"
|
|
38
|
+
"@modelcontextprotocol/sdk": "~1.5.0",
|
|
39
|
+
"puppeteer-core": "^24.37.1",
|
|
40
|
+
"puppeteer-extra": "^3.3.6",
|
|
41
|
+
"puppeteer-extra-plugin-stealth": "^2.11.2"
|
|
35
42
|
},
|
|
36
43
|
"devDependencies": {
|
|
37
44
|
"@types/node": "^20.10.0",
|
|
38
|
-
"
|
|
39
|
-
"
|
|
45
|
+
"ts-node": "^10.9.0",
|
|
46
|
+
"typescript": "^5.3.0"
|
|
40
47
|
},
|
|
41
48
|
"engines": {
|
|
42
49
|
"node": ">=18.0.0"
|
|
43
50
|
},
|
|
44
51
|
"repository": {
|
|
45
52
|
"type": "git",
|
|
46
|
-
"url": "https://github.com/jlsookiki/secondhand-mcp"
|
|
53
|
+
"url": "git+https://github.com/jlsookiki/secondhand-mcp.git"
|
|
47
54
|
}
|
|
48
55
|
}
|