domain-search-mcp 1.2.13 → 1.2.14
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/.mcpregistry_github_token +1 -0
- package/.mcpregistry_registry_token +1 -0
- package/AGENTS.md +38 -0
- package/CLAUDE.md +1 -1
- package/README.md +1 -1
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/registrars/godaddy-public.d.ts +87 -0
- package/dist/registrars/godaddy-public.d.ts.map +1 -0
- package/dist/registrars/godaddy-public.js +419 -0
- package/dist/registrars/godaddy-public.js.map +1 -0
- package/dist/registrars/index.d.ts +1 -1
- package/dist/registrars/index.d.ts.map +1 -1
- package/dist/registrars/index.js +4 -4
- package/dist/registrars/index.js.map +1 -1
- package/dist/services/domain-search.d.ts +1 -1
- package/dist/services/domain-search.js +5 -5
- package/dist/services/domain-search.js.map +1 -1
- package/dist/tools/suggest_domains_smart.js +1 -1
- package/dist/tools/suggest_domains_smart.js.map +1 -1
- package/docs/CONFIGURATION.md +1 -1
- package/package.json +1 -1
- package/server.json +50 -0
- package/src/config.ts +1 -1
- package/src/registrars/{godaddy-mcp.ts → godaddy-public.ts} +37 -37
- package/src/registrars/index.ts +3 -3
- package/src/services/domain-search.ts +6 -6
- package/src/tools/suggest_domains_smart.ts +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ghu_jGWUWux2cnn2stxn5fDvYRfAUalcNX2kPevo
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"token":"eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJtY3AtcmVnaXN0cnkiLCJleHAiOjE3NjY4MjU3OTIsIm5iZiI6MTc2NjgyNTQ5MiwiaWF0IjoxNzY2ODI1NDkyLCJhdXRoX21ldGhvZCI6ImdpdGh1Yi1hdCIsImF1dGhfbWV0aG9kX3N1YiI6ImRvcnVrYXJkYWhhbiIsInBlcm1pc3Npb25zIjpbeyJhY3Rpb24iOiJwdWJsaXNoIiwicmVzb3VyY2UiOiJpby5naXRodWIuZG9ydWthcmRhaGFuLyoifV19.fOxYQgr8ZnfRak457qG-p4GGkffs9TGrokvc6dSgWDl7_AhZXQoEAywNOeScmP3QXdblQiRgGBP7eL75aNmeAg","expires_at":1766825792}
|
package/AGENTS.md
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Repository Guidelines
|
|
2
|
+
|
|
3
|
+
## Project Structure & Module Organization
|
|
4
|
+
- `src/` holds the MCP server and core logic. Key areas: `src/tools/` (tool definitions and executors), `src/services/` (orchestration), `src/registrars/` (API adapters), `src/fallbacks/` (RDAP/WHOIS), and `src/utils/` (cache, logging, errors, validators).
|
|
5
|
+
- `tests/` contains Jest tests, with unit tests under `tests/unit/`.
|
|
6
|
+
- `examples/` provides runnable scripts that exercise tools end-to-end.
|
|
7
|
+
- `docs/` contains API and configuration docs. `dist/` is generated by the build.
|
|
8
|
+
- Root config files: `package.json`, `tsconfig.json`, `jest.config.js`, `server.json` (MCP metadata).
|
|
9
|
+
|
|
10
|
+
## Build, Test, and Development Commands
|
|
11
|
+
- `npm run dev`: Run the server in watch mode with `tsx` for local iteration.
|
|
12
|
+
- `npm run build`: Compile TypeScript to `dist/`.
|
|
13
|
+
- `npm start`: Run the compiled server from `dist/`.
|
|
14
|
+
- `npm test`: Run the full Jest suite.
|
|
15
|
+
- `npm run test:unit` / `npm run test:integration`: Focused test runs.
|
|
16
|
+
- `npm run coverage`: Generate coverage output.
|
|
17
|
+
- `npm run lint`: Run ESLint on `src/**/*.ts` (add config if extending lint rules).
|
|
18
|
+
- `npm run clean`: Remove `dist/`.
|
|
19
|
+
|
|
20
|
+
## Coding Style & Naming Conventions
|
|
21
|
+
- TypeScript, ES modules, semicolons, and 2-space indentation.
|
|
22
|
+
- Keep import paths using `.js` extensions (matches ESM output).
|
|
23
|
+
- Tool modules follow a pattern: `*Tool`, `*Schema`, and `execute*` exports (e.g., `search_domain.ts`).
|
|
24
|
+
- Use `PascalCase` for types/interfaces, `camelCase` for functions, and kebab-case filenames.
|
|
25
|
+
|
|
26
|
+
## Testing Guidelines
|
|
27
|
+
- Framework: Jest (`jest.config.js`). Tests live in `tests/` and are named `*.test.ts`.
|
|
28
|
+
- Run a single test file with `npx jest tests/unit/cache.test.ts`.
|
|
29
|
+
- Keep unit tests fast and deterministic; integration tests can call real adapters when configured.
|
|
30
|
+
|
|
31
|
+
## Commit & Pull Request Guidelines
|
|
32
|
+
- Recent commits use Conventional Commits: `type: short summary` (e.g., `docs: ...`, `chore: ...`).
|
|
33
|
+
- PRs should include a clear description of changes, test evidence (command + result), and links to related issues if applicable.
|
|
34
|
+
|
|
35
|
+
## Configuration & Security Tips
|
|
36
|
+
- Use `.env` for secrets and keep it out of version control; required keys are listed in `README.md` and `docs/CONFIGURATION.md`.
|
|
37
|
+
- Registrar API keys are optional; the server falls back to RDAP/WHOIS when unset.
|
|
38
|
+
- Do not commit `.mcpregistry_*` token files.
|
package/CLAUDE.md
CHANGED
|
@@ -53,7 +53,7 @@ fallbacks/*.ts (RDAP, WHOIS)
|
|
|
53
53
|
**Domain Search Service** (`src/services/domain-search.ts`): Orchestrates source selection:
|
|
54
54
|
1. Porkbun API (if configured)
|
|
55
55
|
2. Namecheap API (if configured)
|
|
56
|
-
3. GoDaddy
|
|
56
|
+
3. GoDaddy public endpoint (always available, no auth)
|
|
57
57
|
4. RDAP fallback
|
|
58
58
|
5. WHOIS last resort
|
|
59
59
|
|
package/README.md
CHANGED
|
@@ -155,7 +155,7 @@ PORKBUN_API_SECRET=sk1_xxx
|
|
|
155
155
|
|--------|-------|---------|---------------|
|
|
156
156
|
| Porkbun API | Fast | Yes | API key |
|
|
157
157
|
| Namecheap API | Fast | Yes | API key + IP whitelist |
|
|
158
|
-
| GoDaddy
|
|
158
|
+
| GoDaddy public endpoint | Medium | No | None |
|
|
159
159
|
| RDAP | Medium | No | None |
|
|
160
160
|
| WHOIS | Slow | No | None |
|
|
161
161
|
|
package/dist/config.js
CHANGED
|
@@ -111,7 +111,7 @@ function getAvailableSources() {
|
|
|
111
111
|
sources.push('porkbun');
|
|
112
112
|
if (exports.config.namecheap.enabled)
|
|
113
113
|
sources.push('namecheap');
|
|
114
|
-
sources.push('godaddy'); // GoDaddy
|
|
114
|
+
sources.push('godaddy'); // GoDaddy public endpoint - always available (no auth needed)
|
|
115
115
|
sources.push('rdap', 'whois'); // Always available as fallbacks
|
|
116
116
|
return sources;
|
|
117
117
|
}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GoDaddy Public Endpoint Adapter.
|
|
3
|
+
*
|
|
4
|
+
* Uses GoDaddy's public endpoint for domain availability checks.
|
|
5
|
+
* No API key or reseller account required!
|
|
6
|
+
*
|
|
7
|
+
* Endpoint: https://api.godaddy.com/v1/domains/mcp
|
|
8
|
+
* Protocol: JSON-RPC 2.0 over HTTP (SSE response)
|
|
9
|
+
*
|
|
10
|
+
* Features:
|
|
11
|
+
* - Free availability checking (no auth)
|
|
12
|
+
* - Bulk checking up to 1000 domains
|
|
13
|
+
* - Premium/auction domain detection
|
|
14
|
+
*
|
|
15
|
+
* Limitations:
|
|
16
|
+
* - No pricing information
|
|
17
|
+
* - Rate limits not documented (be conservative)
|
|
18
|
+
*/
|
|
19
|
+
import { RegistrarAdapter } from './base.js';
|
|
20
|
+
import type { DomainResult, TLDInfo } from '../types.js';
|
|
21
|
+
/**
|
|
22
|
+
* Parse availability from GoDaddy public endpoint text response.
|
|
23
|
+
* The response is markdown-formatted text with different formats for single vs bulk queries.
|
|
24
|
+
*/
|
|
25
|
+
export interface ParsedAvailability {
|
|
26
|
+
available: boolean;
|
|
27
|
+
premium: boolean;
|
|
28
|
+
auction: boolean;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Parsed suggestion from GoDaddy's domains_suggest response.
|
|
32
|
+
*/
|
|
33
|
+
export interface GodaddySuggestion {
|
|
34
|
+
domain: string;
|
|
35
|
+
available: boolean;
|
|
36
|
+
premium: boolean;
|
|
37
|
+
auction: boolean;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* GoDaddy public endpoint adapter.
|
|
41
|
+
*
|
|
42
|
+
* Uses GoDaddy's public endpoint - no authentication required!
|
|
43
|
+
*/
|
|
44
|
+
export declare class GodaddyPublicAdapter extends RegistrarAdapter {
|
|
45
|
+
readonly name = "GoDaddy";
|
|
46
|
+
readonly id = "godaddy";
|
|
47
|
+
constructor();
|
|
48
|
+
/**
|
|
49
|
+
* Check if GoDaddy public endpoint is enabled.
|
|
50
|
+
* Always enabled since no API key needed!
|
|
51
|
+
*/
|
|
52
|
+
isEnabled(): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Search for domain availability using GoDaddy public endpoint.
|
|
55
|
+
*/
|
|
56
|
+
search(domain: string, tld: string): Promise<DomainResult>;
|
|
57
|
+
/**
|
|
58
|
+
* Bulk check multiple domains at once.
|
|
59
|
+
* GoDaddy public endpoint supports up to 1000 domains per request.
|
|
60
|
+
*/
|
|
61
|
+
bulkSearch(domains: string[]): Promise<Map<string, ParsedAvailability>>;
|
|
62
|
+
/**
|
|
63
|
+
* Get TLD info - not supported by GoDaddy public endpoint.
|
|
64
|
+
*/
|
|
65
|
+
getTldInfo(_tld: string): Promise<TLDInfo | null>;
|
|
66
|
+
/**
|
|
67
|
+
* Get domain suggestions from GoDaddy public endpoint.
|
|
68
|
+
* Uses their domains_suggest tool for suggestion results.
|
|
69
|
+
*
|
|
70
|
+
* @param query - Keywords or business description (e.g., "sustainable fashion")
|
|
71
|
+
* @param options - Optional parameters for suggestion customization
|
|
72
|
+
* @returns Array of suggested domains with availability info
|
|
73
|
+
*/
|
|
74
|
+
suggestDomains(query: string, options?: {
|
|
75
|
+
tlds?: string[];
|
|
76
|
+
limit?: number;
|
|
77
|
+
}): Promise<GodaddySuggestion[]>;
|
|
78
|
+
/**
|
|
79
|
+
* Call a GoDaddy public JSON-RPC tool.
|
|
80
|
+
*/
|
|
81
|
+
private callPublicTool;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Singleton instance.
|
|
85
|
+
*/
|
|
86
|
+
export declare const godaddyPublicAdapter: GodaddyPublicAdapter;
|
|
87
|
+
//# sourceMappingURL=godaddy-public.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"godaddy-public.d.ts","sourceRoot":"","sources":["../../src/registrars/godaddy-public.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,gBAAgB,EAAe,MAAM,WAAW,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAiCzD;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAmND;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,gBAAgB;IACxD,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,EAAE,aAAa;;IAQxB;;;OAGG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA0BhE;;;OAGG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAmB7E;;OAEG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAIvD;;;;;;;OAOG;IACG,cAAc,CAClB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;QACP,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KACX,GACL,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAsC/B;;OAEG;YACW,cAAc;CAyG7B;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,sBAA6B,CAAC"}
|
|
@@ -0,0 +1,419 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* GoDaddy Public Endpoint Adapter.
|
|
4
|
+
*
|
|
5
|
+
* Uses GoDaddy's public endpoint for domain availability checks.
|
|
6
|
+
* No API key or reseller account required!
|
|
7
|
+
*
|
|
8
|
+
* Endpoint: https://api.godaddy.com/v1/domains/mcp
|
|
9
|
+
* Protocol: JSON-RPC 2.0 over HTTP (SSE response)
|
|
10
|
+
*
|
|
11
|
+
* Features:
|
|
12
|
+
* - Free availability checking (no auth)
|
|
13
|
+
* - Bulk checking up to 1000 domains
|
|
14
|
+
* - Premium/auction domain detection
|
|
15
|
+
*
|
|
16
|
+
* Limitations:
|
|
17
|
+
* - No pricing information
|
|
18
|
+
* - Rate limits not documented (be conservative)
|
|
19
|
+
*/
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.godaddyPublicAdapter = exports.GodaddyPublicAdapter = void 0;
|
|
22
|
+
const zod_1 = require("zod");
|
|
23
|
+
const base_js_1 = require("./base.js");
|
|
24
|
+
const logger_js_1 = require("../utils/logger.js");
|
|
25
|
+
const errors_js_1 = require("../utils/errors.js");
|
|
26
|
+
/**
|
|
27
|
+
* GoDaddy public endpoint.
|
|
28
|
+
*/
|
|
29
|
+
const GODADDY_PUBLIC_ENDPOINT = 'https://api.godaddy.com/v1/domains/mcp';
|
|
30
|
+
/**
|
|
31
|
+
* JSON-RPC request ID counter.
|
|
32
|
+
*/
|
|
33
|
+
let jsonRpcId = 1;
|
|
34
|
+
/**
|
|
35
|
+
* Response schema for GoDaddy JSON-RPC tool call.
|
|
36
|
+
*/
|
|
37
|
+
const GoDaddyRpcResponseSchema = zod_1.z.object({
|
|
38
|
+
jsonrpc: zod_1.z.literal('2.0'),
|
|
39
|
+
id: zod_1.z.number(),
|
|
40
|
+
result: zod_1.z.object({
|
|
41
|
+
content: zod_1.z.array(zod_1.z.object({
|
|
42
|
+
type: zod_1.z.string(),
|
|
43
|
+
text: zod_1.z.string(),
|
|
44
|
+
})),
|
|
45
|
+
isError: zod_1.z.boolean().optional(),
|
|
46
|
+
}).optional(),
|
|
47
|
+
error: zod_1.z.object({
|
|
48
|
+
code: zod_1.z.number(),
|
|
49
|
+
message: zod_1.z.string(),
|
|
50
|
+
}).optional(),
|
|
51
|
+
});
|
|
52
|
+
/**
|
|
53
|
+
* Parse suggestions from GoDaddy public domains_suggest response.
|
|
54
|
+
* Response format varies but typically includes categorized domain lists.
|
|
55
|
+
*/
|
|
56
|
+
function parseSuggestResponse(text) {
|
|
57
|
+
const suggestions = [];
|
|
58
|
+
const seenDomains = new Set();
|
|
59
|
+
// Helper to add a suggestion without duplicates
|
|
60
|
+
const addSuggestion = (domain, available, premium, auction) => {
|
|
61
|
+
const normalized = domain.toLowerCase().trim();
|
|
62
|
+
// Validate it looks like a domain (has at least one dot)
|
|
63
|
+
if (normalized.includes('.') && !seenDomains.has(normalized)) {
|
|
64
|
+
seenDomains.add(normalized);
|
|
65
|
+
suggestions.push({ domain: normalized, available, premium, auction });
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
// ==== SECTION-BASED PARSING ====
|
|
69
|
+
// GoDaddy groups suggestions by category with emojis
|
|
70
|
+
// ✅ Available/Standard domains
|
|
71
|
+
const availableMatch = text.match(/✅\s*\*\*(?:AVAILABLE|STANDARD)[^]*?(?=(?:💎|🔨|⚠️|❌|\*\*[A-Z])|$)/gi);
|
|
72
|
+
if (availableMatch) {
|
|
73
|
+
for (const section of availableMatch) {
|
|
74
|
+
// Extract domain names (word.tld format)
|
|
75
|
+
const domainMatches = section.match(/\b[a-z0-9][-a-z0-9]*\.[a-z]{2,}\b/gi);
|
|
76
|
+
if (domainMatches) {
|
|
77
|
+
for (const domain of domainMatches) {
|
|
78
|
+
addSuggestion(domain, true, false, false);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
// 💎 Premium domains
|
|
84
|
+
const premiumMatch = text.match(/💎\s*\*\*PREMIUM[^]*?(?=(?:✅|🔨|⚠️|❌|\*\*[A-Z])|$)/gi);
|
|
85
|
+
if (premiumMatch) {
|
|
86
|
+
for (const section of premiumMatch) {
|
|
87
|
+
const domainMatches = section.match(/\b[a-z0-9][-a-z0-9]*\.[a-z]{2,}\b/gi);
|
|
88
|
+
if (domainMatches) {
|
|
89
|
+
for (const domain of domainMatches) {
|
|
90
|
+
addSuggestion(domain, true, true, false);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// 🔨 Auction domains
|
|
96
|
+
const auctionMatch = text.match(/🔨\s*\*\*AUCTION[^]*?(?=(?:✅|💎|⚠️|❌|\*\*[A-Z])|$)/gi);
|
|
97
|
+
if (auctionMatch) {
|
|
98
|
+
for (const section of auctionMatch) {
|
|
99
|
+
const domainMatches = section.match(/\b[a-z0-9][-a-z0-9]*\.[a-z]{2,}\b/gi);
|
|
100
|
+
if (domainMatches) {
|
|
101
|
+
for (const domain of domainMatches) {
|
|
102
|
+
addSuggestion(domain, true, false, true);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
// ==== FALLBACK: Line-by-line extraction ====
|
|
108
|
+
// If section parsing didn't find much, try line-by-line
|
|
109
|
+
if (suggestions.length < 3) {
|
|
110
|
+
const lines = text.split('\n');
|
|
111
|
+
for (const line of lines) {
|
|
112
|
+
const lowerLine = line.toLowerCase();
|
|
113
|
+
// Skip header lines
|
|
114
|
+
if (lowerLine.includes('**') && !lowerLine.includes('.'))
|
|
115
|
+
continue;
|
|
116
|
+
// Extract any domain-like patterns
|
|
117
|
+
const domainMatches = line.match(/\b[a-z0-9][-a-z0-9]*\.[a-z]{2,}\b/gi);
|
|
118
|
+
if (domainMatches) {
|
|
119
|
+
for (const domain of domainMatches) {
|
|
120
|
+
// Determine type from context
|
|
121
|
+
const isPremium = lowerLine.includes('premium') || lowerLine.includes('💎');
|
|
122
|
+
const isAuction = lowerLine.includes('auction') || lowerLine.includes('🔨');
|
|
123
|
+
const isUnavailable = lowerLine.includes('❌') || lowerLine.includes('unavailable');
|
|
124
|
+
addSuggestion(domain, !isUnavailable, isPremium, isAuction);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return suggestions;
|
|
130
|
+
}
|
|
131
|
+
function parseAvailabilityResponse(text, domain) {
|
|
132
|
+
const normalizedDomain = domain.toLowerCase();
|
|
133
|
+
const normalizedText = text.toLowerCase();
|
|
134
|
+
// Default: unavailable
|
|
135
|
+
const result = {
|
|
136
|
+
available: false,
|
|
137
|
+
premium: false,
|
|
138
|
+
auction: false,
|
|
139
|
+
};
|
|
140
|
+
// ==== SINGLE DOMAIN FORMAT ====
|
|
141
|
+
// Format: "STATUS: ✅ AVAILABLE" or "AVAILABILITY: Standard registration available"
|
|
142
|
+
if (normalizedText.includes('status:') || normalizedText.includes('availability:')) {
|
|
143
|
+
// Check for explicit availability indicators
|
|
144
|
+
if (normalizedText.includes('status: ✅ available') ||
|
|
145
|
+
normalizedText.includes('✅ available') ||
|
|
146
|
+
normalizedText.includes('standard registration available') ||
|
|
147
|
+
normalizedText.includes('purchasable: yes')) {
|
|
148
|
+
result.available = true;
|
|
149
|
+
// Check if premium
|
|
150
|
+
if (normalizedText.includes('type: premium') || normalizedText.includes('premium domain')) {
|
|
151
|
+
result.premium = true;
|
|
152
|
+
}
|
|
153
|
+
// Check if auction
|
|
154
|
+
if (normalizedText.includes('type: auction') || normalizedText.includes('auction domain')) {
|
|
155
|
+
result.auction = true;
|
|
156
|
+
}
|
|
157
|
+
return result;
|
|
158
|
+
}
|
|
159
|
+
// Explicit unavailable
|
|
160
|
+
if (normalizedText.includes('status: ❌') ||
|
|
161
|
+
normalizedText.includes('not available') ||
|
|
162
|
+
normalizedText.includes('already registered') ||
|
|
163
|
+
normalizedText.includes('purchasable: no')) {
|
|
164
|
+
result.available = false;
|
|
165
|
+
return result;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
// ==== BULK DOMAIN FORMAT ====
|
|
169
|
+
// Check if domain appears in available section
|
|
170
|
+
// GoDaddy formats: "✅ **AVAILABLE DOMAINS" or "✅ **STANDARD SUGGESTIONS"
|
|
171
|
+
const availableMatch = text.match(/✅\s*\*\*(?:AVAILABLE|STANDARD)[^]*?(?=(?:💎|⚠️|❌|\*\*[A-Z])|$)/i);
|
|
172
|
+
if (availableMatch && availableMatch[0].toLowerCase().includes(normalizedDomain)) {
|
|
173
|
+
result.available = true;
|
|
174
|
+
return result;
|
|
175
|
+
}
|
|
176
|
+
// Check premium section
|
|
177
|
+
// GoDaddy format: "💎 **PREMIUM DOMAINS"
|
|
178
|
+
const premiumMatch = text.match(/💎\s*\*\*PREMIUM[^]*?(?=(?:⚠️|❌|\*\*[A-Z])|$)/i);
|
|
179
|
+
if (premiumMatch && premiumMatch[0].toLowerCase().includes(normalizedDomain)) {
|
|
180
|
+
result.available = true;
|
|
181
|
+
result.premium = true;
|
|
182
|
+
return result;
|
|
183
|
+
}
|
|
184
|
+
// Check auction section
|
|
185
|
+
// GoDaddy format: "🔨 **AUCTION DOMAINS" or similar
|
|
186
|
+
const auctionMatch = text.match(/🔨\s*\*\*AUCTION[^]*?(?=(?:💎|⚠️|❌|\*\*[A-Z])|$)/i);
|
|
187
|
+
if (auctionMatch && auctionMatch[0].toLowerCase().includes(normalizedDomain)) {
|
|
188
|
+
result.available = true;
|
|
189
|
+
result.auction = true;
|
|
190
|
+
return result;
|
|
191
|
+
}
|
|
192
|
+
// Check unavailable section
|
|
193
|
+
// GoDaddy format: "❌ **UNAVAILABLE DOMAINS"
|
|
194
|
+
const unavailableMatch = text.match(/❌\s*\*\*UNAVAILABLE[^]*?(?=(?:💎|⚠️|\*\*[A-Z])|$)/i);
|
|
195
|
+
if (unavailableMatch && unavailableMatch[0].toLowerCase().includes(normalizedDomain)) {
|
|
196
|
+
result.available = false;
|
|
197
|
+
return result;
|
|
198
|
+
}
|
|
199
|
+
// ==== FALLBACK: LINE-BY-LINE ANALYSIS ====
|
|
200
|
+
const lines = text.split('\n');
|
|
201
|
+
for (const line of lines) {
|
|
202
|
+
const lowerLine = line.toLowerCase();
|
|
203
|
+
// Check for domain-specific lines or general status
|
|
204
|
+
if (lowerLine.includes(normalizedDomain) || lowerLine.includes('status') || lowerLine.includes('available')) {
|
|
205
|
+
// Premium indicators
|
|
206
|
+
if (lowerLine.includes('premium')) {
|
|
207
|
+
result.available = true;
|
|
208
|
+
result.premium = true;
|
|
209
|
+
return result;
|
|
210
|
+
}
|
|
211
|
+
// Auction indicators
|
|
212
|
+
if (lowerLine.includes('auction')) {
|
|
213
|
+
result.available = true;
|
|
214
|
+
result.auction = true;
|
|
215
|
+
return result;
|
|
216
|
+
}
|
|
217
|
+
// Available indicators (must check before unavailable since "unavailable" contains "available")
|
|
218
|
+
if ((lowerLine.includes('✅') && lowerLine.includes('available')) ||
|
|
219
|
+
lowerLine.includes('register at') ||
|
|
220
|
+
lowerLine.includes('can be registered')) {
|
|
221
|
+
result.available = true;
|
|
222
|
+
return result;
|
|
223
|
+
}
|
|
224
|
+
// Unavailable indicators
|
|
225
|
+
if (lowerLine.includes('❌') || lowerLine.includes('unavailable') || lowerLine.includes('not available')) {
|
|
226
|
+
result.available = false;
|
|
227
|
+
return result;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
return result;
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* GoDaddy public endpoint adapter.
|
|
235
|
+
*
|
|
236
|
+
* Uses GoDaddy's public endpoint - no authentication required!
|
|
237
|
+
*/
|
|
238
|
+
class GodaddyPublicAdapter extends base_js_1.RegistrarAdapter {
|
|
239
|
+
name = 'GoDaddy';
|
|
240
|
+
id = 'godaddy';
|
|
241
|
+
constructor() {
|
|
242
|
+
// Conservative rate limit - GoDaddy doesn't document their limits
|
|
243
|
+
// Using 30/min to be safe (they say "excessive requests may be throttled")
|
|
244
|
+
super(30);
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Check if GoDaddy public endpoint is enabled.
|
|
248
|
+
* Always enabled since no API key needed!
|
|
249
|
+
*/
|
|
250
|
+
isEnabled() {
|
|
251
|
+
return true;
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Search for domain availability using GoDaddy public endpoint.
|
|
255
|
+
*/
|
|
256
|
+
async search(domain, tld) {
|
|
257
|
+
const fullDomain = `${domain}.${tld}`;
|
|
258
|
+
return this.retryWithBackoff(async () => {
|
|
259
|
+
const text = await this.callPublicTool('domains_check_availability', {
|
|
260
|
+
domains: fullDomain,
|
|
261
|
+
});
|
|
262
|
+
const parsed = parseAvailabilityResponse(text, fullDomain);
|
|
263
|
+
return this.createResult(domain, tld, {
|
|
264
|
+
available: parsed.available,
|
|
265
|
+
premium: parsed.premium,
|
|
266
|
+
price_first_year: null, // GoDaddy public endpoint doesn't provide pricing
|
|
267
|
+
price_renewal: null,
|
|
268
|
+
privacy_included: false, // Unknown
|
|
269
|
+
source: 'godaddy_api',
|
|
270
|
+
premium_reason: parsed.premium
|
|
271
|
+
? 'Premium domain (GoDaddy)'
|
|
272
|
+
: parsed.auction
|
|
273
|
+
? 'Auction domain (GoDaddy)'
|
|
274
|
+
: undefined,
|
|
275
|
+
});
|
|
276
|
+
}, `check ${fullDomain}`);
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Bulk check multiple domains at once.
|
|
280
|
+
* GoDaddy public endpoint supports up to 1000 domains per request.
|
|
281
|
+
*/
|
|
282
|
+
async bulkSearch(domains) {
|
|
283
|
+
const results = new Map();
|
|
284
|
+
// GoDaddy accepts comma-separated domains
|
|
285
|
+
const domainList = domains.join(', ');
|
|
286
|
+
const text = await this.callPublicTool('domains_check_availability', {
|
|
287
|
+
domains: domainList,
|
|
288
|
+
});
|
|
289
|
+
// Parse results for each domain
|
|
290
|
+
for (const domain of domains) {
|
|
291
|
+
const parsed = parseAvailabilityResponse(text, domain);
|
|
292
|
+
results.set(domain.toLowerCase(), parsed);
|
|
293
|
+
}
|
|
294
|
+
return results;
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Get TLD info - not supported by GoDaddy public endpoint.
|
|
298
|
+
*/
|
|
299
|
+
async getTldInfo(_tld) {
|
|
300
|
+
return null;
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Get domain suggestions from GoDaddy public endpoint.
|
|
304
|
+
* Uses their domains_suggest tool for suggestion results.
|
|
305
|
+
*
|
|
306
|
+
* @param query - Keywords or business description (e.g., "sustainable fashion")
|
|
307
|
+
* @param options - Optional parameters for suggestion customization
|
|
308
|
+
* @returns Array of suggested domains with availability info
|
|
309
|
+
*/
|
|
310
|
+
async suggestDomains(query, options = {}) {
|
|
311
|
+
const { tlds, limit = 50 } = options;
|
|
312
|
+
return this.retryWithBackoff(async () => {
|
|
313
|
+
// Build the query - GoDaddy accepts natural language
|
|
314
|
+
let fullQuery = query;
|
|
315
|
+
if (tlds && tlds.length > 0) {
|
|
316
|
+
fullQuery = `${query} (prefer .${tlds.join(', .')})`;
|
|
317
|
+
}
|
|
318
|
+
const text = await this.callPublicTool('domains_suggest', {
|
|
319
|
+
query: fullQuery,
|
|
320
|
+
});
|
|
321
|
+
logger_js_1.logger.debug('GoDaddy domains_suggest raw response', {
|
|
322
|
+
query: fullQuery,
|
|
323
|
+
response_length: text.length,
|
|
324
|
+
preview: text.substring(0, 500),
|
|
325
|
+
});
|
|
326
|
+
const suggestions = parseSuggestResponse(text);
|
|
327
|
+
// Filter by TLD if specified
|
|
328
|
+
let filtered = suggestions;
|
|
329
|
+
if (tlds && tlds.length > 0) {
|
|
330
|
+
const tldSet = new Set(tlds.map(t => t.toLowerCase()));
|
|
331
|
+
filtered = suggestions.filter(s => {
|
|
332
|
+
const parts = s.domain.split('.');
|
|
333
|
+
const tld = parts[parts.length - 1];
|
|
334
|
+
return tld && tldSet.has(tld);
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
// Limit results
|
|
338
|
+
return filtered.slice(0, limit);
|
|
339
|
+
}, `suggest domains for "${query}"`);
|
|
340
|
+
}
|
|
341
|
+
/**
|
|
342
|
+
* Call a GoDaddy public JSON-RPC tool.
|
|
343
|
+
*/
|
|
344
|
+
async callPublicTool(toolName, args) {
|
|
345
|
+
const requestId = jsonRpcId++;
|
|
346
|
+
const payload = {
|
|
347
|
+
jsonrpc: '2.0',
|
|
348
|
+
method: 'tools/call',
|
|
349
|
+
params: {
|
|
350
|
+
name: toolName,
|
|
351
|
+
arguments: args,
|
|
352
|
+
},
|
|
353
|
+
id: requestId,
|
|
354
|
+
};
|
|
355
|
+
logger_js_1.logger.debug('GoDaddy public request', {
|
|
356
|
+
tool: toolName,
|
|
357
|
+
args,
|
|
358
|
+
request_id: requestId,
|
|
359
|
+
});
|
|
360
|
+
try {
|
|
361
|
+
const response = await this.withTimeout(fetch(GODADDY_PUBLIC_ENDPOINT, {
|
|
362
|
+
method: 'POST',
|
|
363
|
+
headers: {
|
|
364
|
+
'Content-Type': 'application/json',
|
|
365
|
+
'Accept': 'application/json, text/event-stream',
|
|
366
|
+
},
|
|
367
|
+
body: JSON.stringify(payload),
|
|
368
|
+
}), `GoDaddy public ${toolName}`, 15000);
|
|
369
|
+
if (!response.ok) {
|
|
370
|
+
throw new errors_js_1.RegistrarApiError('GoDaddy', `HTTP ${response.status}: ${response.statusText}`);
|
|
371
|
+
}
|
|
372
|
+
// Response is SSE format: "event: message\ndata: {...}"
|
|
373
|
+
const rawText = await response.text();
|
|
374
|
+
// Extract JSON from SSE format
|
|
375
|
+
const dataMatch = rawText.match(/data:\s*(\{.*\})/s);
|
|
376
|
+
if (!dataMatch) {
|
|
377
|
+
throw new errors_js_1.RegistrarApiError('GoDaddy', 'Invalid response format - expected SSE');
|
|
378
|
+
}
|
|
379
|
+
const jsonStr = dataMatch[1];
|
|
380
|
+
const parsed = JSON.parse(jsonStr);
|
|
381
|
+
// Validate response
|
|
382
|
+
const validated = GoDaddyRpcResponseSchema.parse(parsed);
|
|
383
|
+
if (validated.error) {
|
|
384
|
+
throw new errors_js_1.RegistrarApiError('GoDaddy', `RPC Error ${validated.error.code}: ${validated.error.message}`);
|
|
385
|
+
}
|
|
386
|
+
if (!validated.result || validated.result.isError) {
|
|
387
|
+
throw new errors_js_1.RegistrarApiError('GoDaddy', 'Tool call returned error');
|
|
388
|
+
}
|
|
389
|
+
// Extract text content
|
|
390
|
+
const textContent = validated.result.content.find(c => c.type === 'text');
|
|
391
|
+
if (!textContent) {
|
|
392
|
+
throw new errors_js_1.RegistrarApiError('GoDaddy', 'No text content in response');
|
|
393
|
+
}
|
|
394
|
+
logger_js_1.logger.debug('GoDaddy public response', {
|
|
395
|
+
request_id: requestId,
|
|
396
|
+
text_length: textContent.text.length,
|
|
397
|
+
});
|
|
398
|
+
return textContent.text;
|
|
399
|
+
}
|
|
400
|
+
catch (error) {
|
|
401
|
+
if (error instanceof errors_js_1.RegistrarApiError) {
|
|
402
|
+
throw error;
|
|
403
|
+
}
|
|
404
|
+
if (error instanceof Error) {
|
|
405
|
+
if (error.name === 'AbortError' || error.message.includes('timeout')) {
|
|
406
|
+
throw error;
|
|
407
|
+
}
|
|
408
|
+
throw new errors_js_1.RegistrarApiError('GoDaddy', error.message);
|
|
409
|
+
}
|
|
410
|
+
throw new errors_js_1.RegistrarApiError('GoDaddy', 'Unknown network error');
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
exports.GodaddyPublicAdapter = GodaddyPublicAdapter;
|
|
415
|
+
/**
|
|
416
|
+
* Singleton instance.
|
|
417
|
+
*/
|
|
418
|
+
exports.godaddyPublicAdapter = new GodaddyPublicAdapter();
|
|
419
|
+
//# sourceMappingURL=godaddy-public.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"godaddy-public.js","sourceRoot":"","sources":["../../src/registrars/godaddy-public.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,5 +4,5 @@
|
|
|
4
4
|
export { RegistrarAdapter } from './base.js';
|
|
5
5
|
export { PorkbunAdapter, porkbunAdapter } from './porkbun.js';
|
|
6
6
|
export { NamecheapAdapter, namecheapAdapter } from './namecheap.js';
|
|
7
|
-
export {
|
|
7
|
+
export { GodaddyPublicAdapter, godaddyPublicAdapter, type GodaddySuggestion, type ParsedAvailability, } from './godaddy-public.js';
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/registrars/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/registrars/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC"}
|
package/dist/registrars/index.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Registrar Exports.
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.godaddyPublicAdapter = exports.GodaddyPublicAdapter = exports.namecheapAdapter = exports.NamecheapAdapter = exports.porkbunAdapter = exports.PorkbunAdapter = exports.RegistrarAdapter = void 0;
|
|
7
7
|
var base_js_1 = require("./base.js");
|
|
8
8
|
Object.defineProperty(exports, "RegistrarAdapter", { enumerable: true, get: function () { return base_js_1.RegistrarAdapter; } });
|
|
9
9
|
var porkbun_js_1 = require("./porkbun.js");
|
|
@@ -12,7 +12,7 @@ Object.defineProperty(exports, "porkbunAdapter", { enumerable: true, get: functi
|
|
|
12
12
|
var namecheap_js_1 = require("./namecheap.js");
|
|
13
13
|
Object.defineProperty(exports, "NamecheapAdapter", { enumerable: true, get: function () { return namecheap_js_1.NamecheapAdapter; } });
|
|
14
14
|
Object.defineProperty(exports, "namecheapAdapter", { enumerable: true, get: function () { return namecheap_js_1.namecheapAdapter; } });
|
|
15
|
-
var
|
|
16
|
-
Object.defineProperty(exports, "
|
|
17
|
-
Object.defineProperty(exports, "
|
|
15
|
+
var godaddy_public_js_1 = require("./godaddy-public.js");
|
|
16
|
+
Object.defineProperty(exports, "GodaddyPublicAdapter", { enumerable: true, get: function () { return godaddy_public_js_1.GodaddyPublicAdapter; } });
|
|
17
|
+
Object.defineProperty(exports, "godaddyPublicAdapter", { enumerable: true, get: function () { return godaddy_public_js_1.godaddyPublicAdapter; } });
|
|
18
18
|
//# sourceMappingURL=index.js.map
|