@mirage-cli/dataforseo-cli 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +171 -0
- package/dist/api/ai.d.ts +32 -0
- package/dist/api/backlinks.d.ts +20 -0
- package/dist/api/keywords.d.ts +27 -0
- package/dist/api/labs.d.ts +40 -0
- package/dist/api/meta.d.ts +4 -0
- package/dist/api/serp.d.ts +14 -0
- package/dist/api/trends.d.ts +18 -0
- package/dist/commands/ai.d.ts +8 -0
- package/dist/commands/backlinks.d.ts +8 -0
- package/dist/commands/endpoints.d.ts +5 -0
- package/dist/commands/keywords.d.ts +6 -0
- package/dist/commands/labs.d.ts +11 -0
- package/dist/commands/login.d.ts +3 -0
- package/dist/commands/meta.d.ts +4 -0
- package/dist/commands/raw.d.ts +2 -0
- package/dist/commands/serp.d.ts +7 -0
- package/dist/commands/trends.d.ts +5 -0
- package/dist/dfs.d.ts +7 -0
- package/dist/dfs.js +687 -0
- package/dist/framework/index.d.ts +2 -0
- package/dist/framework/output.d.ts +25 -0
- package/dist/framework/runtime.d.ts +74 -0
- package/dist/framework/types.d.ts +89 -0
- package/dist/index.d.ts +42 -0
- package/dist/index.js +686 -0
- package/dist/lib/auth.d.ts +8 -0
- package/dist/lib/client.d.ts +33 -0
- package/dist/lib/output.d.ts +11 -0
- package/dist/lib/spec.d.ts +15 -0
- package/package.json +61 -0
- package/src/spec/index.json +1 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Alex Brufsky
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# dataforseo-cli
|
|
2
|
+
|
|
3
|
+
`dfs` — an ergonomic CLI **and** a programmatic library for the DataForSEO API.
|
|
4
|
+
|
|
5
|
+
- Curated commands cover ~30 high-value endpoints.
|
|
6
|
+
- `dfs raw` escape hatch hits any of the 437 endpoints by path (driven off the official OpenAPI spec, slimmed at build time to a 327 KiB JSON index).
|
|
7
|
+
- Same command definitions are exported as a library — the `command()` factory and `CommandSpec` / `Option` / `Operand` / `OperandKind` / `IOResult` shapes match `@struktoai/mirage-browser`, so a command authored here can be lifted into a mirage workspace later without rewrite.
|
|
8
|
+
|
|
9
|
+
Bun + TypeScript. Companion Claude Code skill in `skill/`.
|
|
10
|
+
|
|
11
|
+
## Install
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
bun install
|
|
15
|
+
bun run build
|
|
16
|
+
ln -sf "$PWD/dist/dfs.js" /usr/local/bin/dfs
|
|
17
|
+
|
|
18
|
+
# Or compile a standalone binary:
|
|
19
|
+
bun run compile && cp bin/dfs /usr/local/bin/dfs
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Auth
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
dfs login --login you@example.com --password <api_password>
|
|
26
|
+
# or
|
|
27
|
+
export DATAFORSEO_LOGIN=you@example.com
|
|
28
|
+
export DATAFORSEO_PASSWORD=...
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Credentials are written to `~/.config/dataforseo/config.json` (chmod 600).
|
|
32
|
+
|
|
33
|
+
## Quick tour
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
dfs whoami
|
|
37
|
+
dfs user
|
|
38
|
+
|
|
39
|
+
# keyword research
|
|
40
|
+
dfs keywords search-volume "seo tools" "keyword research" -o table
|
|
41
|
+
dfs labs bulk-difficulty "seo tools" "ai search" "claude code"
|
|
42
|
+
dfs labs intent "buy nike shoes" "how to tie shoelaces" -o table
|
|
43
|
+
dfs keywords ranked example.com --limit 500 -o csv > ranked.csv
|
|
44
|
+
|
|
45
|
+
# SERPs
|
|
46
|
+
dfs serp google organic "best running shoes" --advanced --device mobile
|
|
47
|
+
dfs serp google news "anthropic claude"
|
|
48
|
+
dfs serp google images "minimalist desk"
|
|
49
|
+
|
|
50
|
+
# backlinks + gap
|
|
51
|
+
dfs backlinks summary example.com -o table
|
|
52
|
+
dfs labs competitors example.com --limit 50
|
|
53
|
+
dfs labs intersection example.com competitor.com --limit 200
|
|
54
|
+
|
|
55
|
+
# AI visibility (LLM mentions, top-cited pages/domains, AI search volume)
|
|
56
|
+
dfs ai top-domains "claude code" -o table
|
|
57
|
+
dfs ai search-volume "seo tools" "keyword research"
|
|
58
|
+
dfs ai ask "summarize the latest Claude release" --model claude
|
|
59
|
+
|
|
60
|
+
# trends
|
|
61
|
+
dfs trends explore "chatgpt" "claude" --date-from 2026-01-01
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Discovering endpoints
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
dfs endpoints tags
|
|
68
|
+
dfs endpoints list --tag KeywordsData -q trends
|
|
69
|
+
dfs endpoints show keywords_data/google_trends/explore/live
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Raw escape hatch
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
# Curated command doesn't exist? Hit the endpoint directly.
|
|
76
|
+
dfs raw keywords_data/google_trends/explore/live \
|
|
77
|
+
-d '{"keywords":["seo","sem"],"location_code":2840}'
|
|
78
|
+
|
|
79
|
+
# Key/value shorthand:
|
|
80
|
+
dfs raw serp/google/organic/live/advanced \
|
|
81
|
+
--kv keyword="best laptops" location_code=2840 language_code=en device=mobile
|
|
82
|
+
|
|
83
|
+
# Use the OpenAPI spec's example body:
|
|
84
|
+
dfs raw serp/google/organic/live/regular --example
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Output
|
|
88
|
+
|
|
89
|
+
Every data command supports `-o json|ndjson|table|csv|raw` and `--columns col1,col2`. Cost is printed to stderr.
|
|
90
|
+
|
|
91
|
+
## Programmatic use
|
|
92
|
+
|
|
93
|
+
The package exports three layers — pick whichever fits.
|
|
94
|
+
|
|
95
|
+
**1. Plain async functions** — typed wrappers, return the raw `DfsResponse`:
|
|
96
|
+
|
|
97
|
+
```ts
|
|
98
|
+
import { keywordsSearchVolume } from 'dataforseo-cli'
|
|
99
|
+
|
|
100
|
+
const resp = await keywordsSearchVolume({
|
|
101
|
+
keywords: ['seo tools', 'keyword research'],
|
|
102
|
+
locationName: 'United States',
|
|
103
|
+
})
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
**2. Mirage-shaped command definitions** — call them via `invoke()` for CLI-style argument parsing without spawning a subprocess:
|
|
107
|
+
|
|
108
|
+
```ts
|
|
109
|
+
import { invoke, keywordsSearchVolumeCmd } from 'dataforseo-cli'
|
|
110
|
+
|
|
111
|
+
const { text, result } = await invoke(keywordsSearchVolumeCmd, {
|
|
112
|
+
texts: ['seo tools'],
|
|
113
|
+
flags: { location: 'United States', output: 'table' },
|
|
114
|
+
})
|
|
115
|
+
console.log(text)
|
|
116
|
+
console.log(`exit: ${result.exitCode}`)
|
|
117
|
+
|
|
118
|
+
// Or pass argv tokens, like the CLI would receive:
|
|
119
|
+
await invoke(keywordsSearchVolumeCmd, ['--location', 'United States', 'seo tools'])
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
**3. Author your own command using the same primitives** — same shape as `@struktoai/mirage-browser`:
|
|
123
|
+
|
|
124
|
+
```ts
|
|
125
|
+
import {
|
|
126
|
+
command,
|
|
127
|
+
CommandSpec,
|
|
128
|
+
IOResult,
|
|
129
|
+
Operand,
|
|
130
|
+
OperandKind,
|
|
131
|
+
Option,
|
|
132
|
+
invoke,
|
|
133
|
+
} from 'dataforseo-cli'
|
|
134
|
+
|
|
135
|
+
const greet = command({
|
|
136
|
+
name: 'greet',
|
|
137
|
+
spec: new CommandSpec({
|
|
138
|
+
description: 'Print hello <name>.',
|
|
139
|
+
options: [new Option({ short: 'u', long: 'upper', description: 'shout it' })],
|
|
140
|
+
positional: [new Operand({ kind: OperandKind.TEXT, name: 'name' })],
|
|
141
|
+
}),
|
|
142
|
+
async fn(parsed) {
|
|
143
|
+
const name = parsed.texts[0] ?? 'world'
|
|
144
|
+
const upper = parsed.flag('upper', false) === true
|
|
145
|
+
const msg = upper ? `HELLO ${name.toUpperCase()}!\n` : `hello ${name}\n`
|
|
146
|
+
return [new TextEncoder().encode(msg), new IOResult({ exitCode: 0 })]
|
|
147
|
+
},
|
|
148
|
+
})
|
|
149
|
+
|
|
150
|
+
await invoke(greet, { texts: ['alex'], flags: { upper: true } })
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
To plug your own commands into the CLI, import `toCommander(cmd)` and add the resulting `Command` to your commander program.
|
|
154
|
+
|
|
155
|
+
## Refresh the spec
|
|
156
|
+
|
|
157
|
+
When DataForSEO ships new endpoints:
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
bun run spec:refresh
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Pulls the latest `openapi_specification.yaml` from `dataforseo/OpenApiDocumentation`.
|
|
164
|
+
|
|
165
|
+
## Companion Claude skill
|
|
166
|
+
|
|
167
|
+
Drop `skill/` into `~/.claude/skills/dataforseo` (or your skill manager) — it teaches Claude when to reach for `dfs` and how to use the curated commands + raw escape hatch.
|
|
168
|
+
|
|
169
|
+
## License
|
|
170
|
+
|
|
171
|
+
MIT
|
package/dist/api/ai.d.ts
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type DfsResponse } from "../lib/client.ts";
|
|
2
|
+
import type { LocLang } from "./keywords.ts";
|
|
3
|
+
export type AiModel = "chatgpt" | "claude" | "gemini" | "perplexity";
|
|
4
|
+
/** AI-flavored search volume — how often a keyword is typed at AI tools. */
|
|
5
|
+
export declare function aiSearchVolume(opts: LocLang & {
|
|
6
|
+
keywords: string[];
|
|
7
|
+
}): Promise<DfsResponse>;
|
|
8
|
+
/** Find LLM mentions matching one or more keyword targets. */
|
|
9
|
+
export declare function aiMentions(opts: LocLang & {
|
|
10
|
+
keywords: string[];
|
|
11
|
+
}): Promise<DfsResponse>;
|
|
12
|
+
/** Top pages cited by AI for the given keyword targets. */
|
|
13
|
+
export declare function aiTopPages(opts: LocLang & {
|
|
14
|
+
keywords: string[];
|
|
15
|
+
}): Promise<DfsResponse>;
|
|
16
|
+
/** Top domains cited by AI for the given keyword targets. */
|
|
17
|
+
export declare function aiTopDomains(opts: LocLang & {
|
|
18
|
+
keywords: string[];
|
|
19
|
+
}): Promise<DfsResponse>;
|
|
20
|
+
/** Aggregated mention metrics (volume, sentiment, etc.) for keyword targets. */
|
|
21
|
+
export declare function aiMentionMetrics(opts: LocLang & {
|
|
22
|
+
keywords: string[];
|
|
23
|
+
}): Promise<DfsResponse>;
|
|
24
|
+
/** Ask a specific LLM via DataForSEO's metered LLM proxy. */
|
|
25
|
+
export declare function aiAsk(opts: {
|
|
26
|
+
model: AiModel;
|
|
27
|
+
message: string;
|
|
28
|
+
systemMessage?: string;
|
|
29
|
+
maxOutputTokens?: number;
|
|
30
|
+
temperature?: number;
|
|
31
|
+
topP?: number;
|
|
32
|
+
}): Promise<DfsResponse>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type DfsResponse } from "../lib/client.ts";
|
|
2
|
+
export declare function backlinksSummary(target: string): Promise<DfsResponse>;
|
|
3
|
+
export declare function backlinksList(opts: {
|
|
4
|
+
target: string;
|
|
5
|
+
limit?: number;
|
|
6
|
+
mode?: "as_is" | "one_per_domain" | "one_per_anchor";
|
|
7
|
+
}): Promise<DfsResponse>;
|
|
8
|
+
export declare function backlinksReferringDomains(opts: {
|
|
9
|
+
target: string;
|
|
10
|
+
limit?: number;
|
|
11
|
+
}): Promise<DfsResponse>;
|
|
12
|
+
export declare function backlinksAnchors(opts: {
|
|
13
|
+
target: string;
|
|
14
|
+
limit?: number;
|
|
15
|
+
}): Promise<DfsResponse>;
|
|
16
|
+
export declare function backlinksCompetitors(opts: {
|
|
17
|
+
target: string;
|
|
18
|
+
limit?: number;
|
|
19
|
+
}): Promise<DfsResponse>;
|
|
20
|
+
export declare function backlinksRanks(targets: string[]): Promise<DfsResponse>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure async API functions for the "keywords" group. The CLI commands and
|
|
3
|
+
* any programmatic caller delegate to these.
|
|
4
|
+
*/
|
|
5
|
+
import { type DfsResponse } from "../lib/client.ts";
|
|
6
|
+
export interface LocLang {
|
|
7
|
+
locationName?: string;
|
|
8
|
+
locationCode?: number;
|
|
9
|
+
languageName?: string;
|
|
10
|
+
languageCode?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function keywordsSearchVolume(opts: LocLang & {
|
|
13
|
+
keywords: string[];
|
|
14
|
+
includeSerpInfo?: boolean;
|
|
15
|
+
}): Promise<DfsResponse>;
|
|
16
|
+
export declare function keywordsIdeas(opts: LocLang & {
|
|
17
|
+
keywords: string[];
|
|
18
|
+
limit?: number;
|
|
19
|
+
}): Promise<DfsResponse>;
|
|
20
|
+
export declare function keywordsSuggestions(opts: LocLang & {
|
|
21
|
+
keyword: string;
|
|
22
|
+
limit?: number;
|
|
23
|
+
}): Promise<DfsResponse>;
|
|
24
|
+
export declare function keywordsRanked(opts: LocLang & {
|
|
25
|
+
target: string;
|
|
26
|
+
limit?: number;
|
|
27
|
+
}): Promise<DfsResponse>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type DfsResponse } from "../lib/client.ts";
|
|
2
|
+
import type { LocLang } from "./keywords.ts";
|
|
3
|
+
export declare function labsCompetitors(opts: LocLang & {
|
|
4
|
+
target: string;
|
|
5
|
+
limit?: number;
|
|
6
|
+
}): Promise<DfsResponse>;
|
|
7
|
+
export declare function labsIntersection(opts: LocLang & {
|
|
8
|
+
target1: string;
|
|
9
|
+
target2: string;
|
|
10
|
+
limit?: number;
|
|
11
|
+
}): Promise<DfsResponse>;
|
|
12
|
+
export declare function labsOverview(opts: LocLang & {
|
|
13
|
+
target: string;
|
|
14
|
+
}): Promise<DfsResponse>;
|
|
15
|
+
export declare function labsRelated(opts: LocLang & {
|
|
16
|
+
keyword: string;
|
|
17
|
+
limit?: number;
|
|
18
|
+
}): Promise<DfsResponse>;
|
|
19
|
+
/** Full keyword overview: KD + volume + intent + SERP + backlink info in one call. */
|
|
20
|
+
export declare function labsKeywordOverview(opts: LocLang & {
|
|
21
|
+
keywords: string[];
|
|
22
|
+
includeSerpInfo?: boolean;
|
|
23
|
+
includeClickstream?: boolean;
|
|
24
|
+
}): Promise<DfsResponse>;
|
|
25
|
+
/** Bulk keyword difficulty (KD) for up to 1000 keywords in one call. */
|
|
26
|
+
export declare function labsBulkDifficulty(opts: LocLang & {
|
|
27
|
+
keywords: string[];
|
|
28
|
+
}): Promise<DfsResponse>;
|
|
29
|
+
/** Classify search intent (informational/navigational/commercial/transactional) for keywords. */
|
|
30
|
+
export declare function labsIntent(opts: LocLang & {
|
|
31
|
+
keywords: string[];
|
|
32
|
+
}): Promise<DfsResponse>;
|
|
33
|
+
/** Currently-trending top searches in a location. */
|
|
34
|
+
export declare function labsTopSearches(opts: LocLang & {
|
|
35
|
+
limit?: number;
|
|
36
|
+
}): Promise<DfsResponse>;
|
|
37
|
+
/** Historical rank overview for a domain (month-by-month organic position counts). */
|
|
38
|
+
export declare function labsHistorical(opts: LocLang & {
|
|
39
|
+
target: string;
|
|
40
|
+
}): Promise<DfsResponse>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type DfsResponse } from "../lib/client.ts";
|
|
2
|
+
import type { LocLang } from "./keywords.ts";
|
|
3
|
+
export interface SerpOpts extends LocLang {
|
|
4
|
+
keyword: string;
|
|
5
|
+
device?: "desktop" | "mobile";
|
|
6
|
+
depth?: number;
|
|
7
|
+
}
|
|
8
|
+
export declare function serpGoogleOrganic(opts: SerpOpts & {
|
|
9
|
+
advanced?: boolean;
|
|
10
|
+
}): Promise<DfsResponse>;
|
|
11
|
+
export declare function serpGoogleMaps(opts: SerpOpts): Promise<DfsResponse>;
|
|
12
|
+
export declare function serpYoutubeOrganic(opts: SerpOpts): Promise<DfsResponse>;
|
|
13
|
+
export declare function serpGoogleNews(opts: SerpOpts): Promise<DfsResponse>;
|
|
14
|
+
export declare function serpGoogleImages(opts: SerpOpts): Promise<DfsResponse>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type DfsResponse } from "../lib/client.ts";
|
|
2
|
+
import type { LocLang } from "./keywords.ts";
|
|
3
|
+
export type TrendsType = "web" | "news" | "youtube" | "images" | "shopping";
|
|
4
|
+
/** Google Trends "Explore" — popularity time series. */
|
|
5
|
+
export declare function trendsExplore(opts: LocLang & {
|
|
6
|
+
keywords: string[];
|
|
7
|
+
type?: TrendsType;
|
|
8
|
+
dateFrom?: string;
|
|
9
|
+
dateTo?: string;
|
|
10
|
+
}): Promise<DfsResponse>;
|
|
11
|
+
/** DataForSEO Trends demography — age/gender breakdown for keywords. */
|
|
12
|
+
export declare function trendsDemography(opts: LocLang & {
|
|
13
|
+
keywords: string[];
|
|
14
|
+
}): Promise<DfsResponse>;
|
|
15
|
+
/** DataForSEO Trends sub-region interest — regional popularity heatmap. */
|
|
16
|
+
export declare function trendsSubregion(opts: LocLang & {
|
|
17
|
+
keywords: string[];
|
|
18
|
+
}): Promise<DfsResponse>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type CommandDef } from "../framework/index.ts";
|
|
2
|
+
export declare const aiSearchVolumeCmd: CommandDef;
|
|
3
|
+
export declare const aiMentionsCmd: CommandDef;
|
|
4
|
+
export declare const aiTopPagesCmd: CommandDef;
|
|
5
|
+
export declare const aiTopDomainsCmd: CommandDef;
|
|
6
|
+
export declare const aiMetricsCmd: CommandDef;
|
|
7
|
+
export declare const aiAskCmd: CommandDef;
|
|
8
|
+
export declare const aiGroup: import("../index.ts").CommandGroup;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type CommandDef } from "../framework/index.ts";
|
|
2
|
+
export declare const backlinksSummaryCmd: CommandDef;
|
|
3
|
+
export declare const backlinksListCmd: CommandDef;
|
|
4
|
+
export declare const backlinksReferringDomainsCmd: CommandDef;
|
|
5
|
+
export declare const backlinksAnchorsCmd: CommandDef;
|
|
6
|
+
export declare const backlinksCompetitorsCmd: CommandDef;
|
|
7
|
+
export declare const backlinksRanksCmd: CommandDef;
|
|
8
|
+
export declare const backlinksGroup: import("../index.ts").CommandGroup;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type CommandDef } from "../framework/index.ts";
|
|
2
|
+
export declare const endpointsListCmd: CommandDef;
|
|
3
|
+
export declare const endpointsShowCmd: CommandDef;
|
|
4
|
+
export declare const endpointsTagsCmd: CommandDef;
|
|
5
|
+
export declare const endpointsGroup: import("../index.ts").CommandGroup;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type CommandDef } from "../framework/index.ts";
|
|
2
|
+
export declare const keywordsSearchVolumeCmd: CommandDef;
|
|
3
|
+
export declare const keywordsIdeasCmd: CommandDef;
|
|
4
|
+
export declare const keywordsSuggestionsCmd: CommandDef;
|
|
5
|
+
export declare const keywordsRankedCmd: CommandDef;
|
|
6
|
+
export declare const keywordsGroup: import("../index.ts").CommandGroup;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type CommandDef } from "../framework/index.ts";
|
|
2
|
+
export declare const labsCompetitorsCmd: CommandDef;
|
|
3
|
+
export declare const labsIntersectionCmd: CommandDef;
|
|
4
|
+
export declare const labsOverviewCmd: CommandDef;
|
|
5
|
+
export declare const labsRelatedCmd: CommandDef;
|
|
6
|
+
export declare const labsKeywordOverviewCmd: CommandDef;
|
|
7
|
+
export declare const labsBulkDifficultyCmd: CommandDef;
|
|
8
|
+
export declare const labsIntentCmd: CommandDef;
|
|
9
|
+
export declare const labsTopSearchesCmd: CommandDef;
|
|
10
|
+
export declare const labsHistoricalCmd: CommandDef;
|
|
11
|
+
export declare const labsGroup: import("../index.ts").CommandGroup;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type CommandDef } from "../framework/index.ts";
|
|
2
|
+
export declare const serpGoogleOrganicCmd: CommandDef;
|
|
3
|
+
export declare const serpGoogleMapsCmd: CommandDef;
|
|
4
|
+
export declare const serpGoogleNewsCmd: CommandDef;
|
|
5
|
+
export declare const serpGoogleImagesCmd: CommandDef;
|
|
6
|
+
export declare const serpYoutubeOrganicCmd: CommandDef;
|
|
7
|
+
export declare const serpGroup: import("../index.ts").CommandGroup;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type CommandDef } from "../framework/index.ts";
|
|
2
|
+
export declare const trendsExploreCmd: CommandDef;
|
|
3
|
+
export declare const trendsDemographyCmd: CommandDef;
|
|
4
|
+
export declare const trendsSubregionCmd: CommandDef;
|
|
5
|
+
export declare const trendsGroup: import("../index.ts").CommandGroup;
|
package/dist/dfs.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
/**
|
|
3
|
+
* Build the dfs Commander program. Pure function — no side effects, safe to
|
|
4
|
+
* call from in-process wrappers (`@mirage-cli/dataforseo`) or from this file's
|
|
5
|
+
* own auto-parse block below when invoked as a CLI binary.
|
|
6
|
+
*/
|
|
7
|
+
export declare function buildProgram(): Command;
|