seo 0.13.0 → 0.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +75 -75
- package/dist/cli.js.map +1 -1
- package/dist/{dist-CLV_HXUd.js → dist-3A3Vzp7r.js} +1 -1
- package/dist/{dist-wzZsD_Fi.js → dist-rmavn5h6.js} +121 -121
- package/dist/dist-rmavn5h6.js.map +1 -0
- package/dist/{esm-BfNQ2FiC.js → esm-BIXGSxFJ.js} +2 -2
- package/dist/{esm-BfNQ2FiC.js.map → esm-BIXGSxFJ.js.map} +1 -1
- package/dist/index.d.ts +173 -171
- package/dist/index.js +129 -70
- package/dist/index.js.map +1 -1
- package/dist/mcp.js +223 -94
- package/dist/mcp.js.map +1 -1
- package/package.json +1 -1
- package/dist/dist-wzZsD_Fi.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire as __seoCreateRequire } from 'node:module'; const require = __seoCreateRequire(import.meta.url);
|
|
2
|
-
import { n as version, t as load } from "./esm-
|
|
2
|
+
import { n as version, t as load } from "./esm-BIXGSxFJ.js";
|
|
3
3
|
import { SEO_PROVIDER_API_VERSION } from "./provider-sdk.js";
|
|
4
4
|
import crypto, { createHash, randomUUID, sign } from "node:crypto";
|
|
5
5
|
import { z } from "zod";
|
|
@@ -1400,6 +1400,44 @@ function agentActionsView(report, options = {}) {
|
|
|
1400
1400
|
};
|
|
1401
1401
|
}
|
|
1402
1402
|
//#endregion
|
|
1403
|
+
//#region packages/core/src/providers/errors.ts
|
|
1404
|
+
const PROVIDER_ERROR_CODES = {
|
|
1405
|
+
configuration: "AUTH_CONFIG_REQUIRED",
|
|
1406
|
+
authentication: "AUTH_CONFIG_REQUIRED",
|
|
1407
|
+
"rate-limit": "RATE_LIMITED",
|
|
1408
|
+
timeout: "PROVIDER_UNAVAILABLE",
|
|
1409
|
+
"response-too-large": "PROVIDER_UNAVAILABLE",
|
|
1410
|
+
"invalid-response": "PROVIDER_UNAVAILABLE",
|
|
1411
|
+
"remote-error": "PROVIDER_UNAVAILABLE"
|
|
1412
|
+
};
|
|
1413
|
+
var ProviderError = class extends Error {
|
|
1414
|
+
provider;
|
|
1415
|
+
operation;
|
|
1416
|
+
code;
|
|
1417
|
+
status;
|
|
1418
|
+
retryable;
|
|
1419
|
+
constructor(input) {
|
|
1420
|
+
super(input.message, { cause: input.cause });
|
|
1421
|
+
this.name = "ProviderError";
|
|
1422
|
+
this.provider = input.provider;
|
|
1423
|
+
this.operation = input.operation;
|
|
1424
|
+
this.code = input.code;
|
|
1425
|
+
this.status = input.status ?? null;
|
|
1426
|
+
this.retryable = input.retryable ?? false;
|
|
1427
|
+
}
|
|
1428
|
+
toJSON() {
|
|
1429
|
+
return {
|
|
1430
|
+
name: this.name,
|
|
1431
|
+
provider: this.provider,
|
|
1432
|
+
operation: this.operation,
|
|
1433
|
+
code: this.code,
|
|
1434
|
+
message: this.message,
|
|
1435
|
+
status: this.status,
|
|
1436
|
+
retryable: this.retryable
|
|
1437
|
+
};
|
|
1438
|
+
}
|
|
1439
|
+
};
|
|
1440
|
+
//#endregion
|
|
1403
1441
|
//#region packages/core/src/errors.ts
|
|
1404
1442
|
const errorMetadata = {
|
|
1405
1443
|
ACCESS_DENIED: {
|
|
@@ -1465,6 +1503,7 @@ function errorMessage$1(error) {
|
|
|
1465
1503
|
function toSeoError(error) {
|
|
1466
1504
|
if (error instanceof SeoError) return error;
|
|
1467
1505
|
const message = errorMessage$1(error);
|
|
1506
|
+
if (error instanceof ProviderError) return new SeoError(PROVIDER_ERROR_CODES[error.code], message);
|
|
1468
1507
|
if (/not logged in/i.test(message)) return new SeoError("AUTH_REQUIRED", message);
|
|
1469
1508
|
if (/oauth client config.*missing|shared seo google app/i.test(message)) return new SeoError("AUTH_CONFIG_REQUIRED", message);
|
|
1470
1509
|
if (/invalid_grant|refresh token.*no longer valid/i.test(message)) return new SeoError("AUTH_EXPIRED", message);
|
|
@@ -2249,15 +2288,18 @@ function factsOnly(value) {
|
|
|
2249
2288
|
if (value && typeof value === "object") return Object.fromEntries(Object.entries(value).filter(([key]) => !ADVICE_KEYS.test(key)).map(([key, child]) => [key, factsOnly(child)]));
|
|
2250
2289
|
return value;
|
|
2251
2290
|
}
|
|
2291
|
+
function realIsoDate(value) {
|
|
2292
|
+
return /^\d{4}-\d{2}-\d{2}$/.test(value) && (/* @__PURE__ */ new Date(`${value}T00:00:00Z`)).toISOString().startsWith(value);
|
|
2293
|
+
}
|
|
2252
2294
|
function dateWindow(input, fallbackDays) {
|
|
2253
|
-
if (input.startDate
|
|
2254
|
-
|
|
2255
|
-
|
|
2256
|
-
|
|
2257
|
-
|
|
2258
|
-
|
|
2259
|
-
|
|
2260
|
-
|
|
2295
|
+
if (!input.startDate && !input.endDate) return finalGscDateRange(fallbackDays);
|
|
2296
|
+
const endDate = input.endDate ?? latestFinalGscDate();
|
|
2297
|
+
const startDate = input.startDate ?? shiftIsoDate(endDate, 1 - fallbackDays);
|
|
2298
|
+
if (!realIsoDate(startDate) || !realIsoDate(endDate) || startDate > endDate) throw new CommandError("INVALID_INPUT", `Send real YYYY-MM-DD dates with the start before the end (got ${startDate} to ${endDate}).`);
|
|
2299
|
+
return {
|
|
2300
|
+
startDate,
|
|
2301
|
+
endDate
|
|
2302
|
+
};
|
|
2261
2303
|
}
|
|
2262
2304
|
function earlierRange(range) {
|
|
2263
2305
|
return decayComparisonRange(range, "previous-period");
|
|
@@ -2341,20 +2383,38 @@ function listOfUpdates(value, checked) {
|
|
|
2341
2383
|
if (value.length === 0) return `Google updates ${where}: none.`;
|
|
2342
2384
|
return `Google updates ${where} (timing only, not cause): ${value.map((update) => `${update.name} (${update.start.slice(0, 10)} to ${update.end?.slice(0, 10) ?? "ongoing"})`).join("; ")}.`;
|
|
2343
2385
|
}
|
|
2386
|
+
function readable(names, who = "it") {
|
|
2387
|
+
if (!names.length) return `Search Console properties ${who} can read: none.`;
|
|
2388
|
+
const more = names.length > 20 ? `, and ${names.length - 20} more` : "";
|
|
2389
|
+
return `Search Console properties ${who} can read: ${names.slice(0, 20).join(", ")}${more}.`;
|
|
2390
|
+
}
|
|
2344
2391
|
function matchProperty(names, site) {
|
|
2345
|
-
|
|
2346
|
-
|
|
2347
|
-
let
|
|
2392
|
+
const value = site.trim();
|
|
2393
|
+
if (names.includes(value)) return value;
|
|
2394
|
+
let url;
|
|
2348
2395
|
try {
|
|
2349
|
-
|
|
2350
|
-
host = url.hostname.replace(/^www\./, "");
|
|
2351
|
-
origin = url.origin;
|
|
2396
|
+
url = new URL(value.includes("://") ? value : `https://${value.replace(/^sc-domain:/i, "")}`);
|
|
2352
2397
|
} catch {
|
|
2353
2398
|
return null;
|
|
2354
2399
|
}
|
|
2355
|
-
const
|
|
2356
|
-
|
|
2357
|
-
|
|
2400
|
+
const bare = (name) => name.replace(/^www\./, "");
|
|
2401
|
+
const host = bare(url.hostname);
|
|
2402
|
+
const domain = names.filter((name) => name.startsWith("sc-domain:")).filter((name) => {
|
|
2403
|
+
const own = name.slice(10);
|
|
2404
|
+
return own.startsWith("www.") ? bare(own) === host : host === own || host.endsWith(`.${own}`);
|
|
2405
|
+
}).sort((a, b) => b.length - a.length || a.localeCompare(b))[0];
|
|
2406
|
+
if (domain) return domain;
|
|
2407
|
+
const schemes = value.includes("://") ? [url.protocol] : ["https:", "http:"];
|
|
2408
|
+
return names.map((name) => {
|
|
2409
|
+
try {
|
|
2410
|
+
return {
|
|
2411
|
+
name,
|
|
2412
|
+
url: new URL(name)
|
|
2413
|
+
};
|
|
2414
|
+
} catch {
|
|
2415
|
+
return null;
|
|
2416
|
+
}
|
|
2417
|
+
}).filter((entry) => entry !== null && schemes.includes(entry.url.protocol) && bare(entry.url.hostname) === host && `${url.pathname}/`.startsWith(entry.url.pathname)).sort((a, b) => b.url.pathname.length - a.url.pathname.length || schemes.indexOf(a.url.protocol) - schemes.indexOf(b.url.protocol) || Number(b.url.hostname === url.hostname) - Number(a.url.hostname === url.hostname) || a.name.localeCompare(b.name))[0]?.name ?? null;
|
|
2358
2418
|
}
|
|
2359
2419
|
//#endregion
|
|
2360
2420
|
//#region packages/core/src/commands/present.ts
|
|
@@ -2776,9 +2836,10 @@ var LinkedAccounts = class {
|
|
|
2776
2836
|
}
|
|
2777
2837
|
async resolve(site) {
|
|
2778
2838
|
if (this.google.length === 0) throw new CommandError("NOT_CONNECTED", `No Google account is connected. ${this.hint.signIn}`);
|
|
2779
|
-
const
|
|
2839
|
+
const names = await this.properties();
|
|
2840
|
+
const found = matchProperty(names, site);
|
|
2780
2841
|
if (found) return found;
|
|
2781
|
-
throw new CommandError("NO_ACCESS", `None of the connected Google accounts (${this.google.map((linked) => linked.email).join(", ")}) has a Search Console property for ${site}. ${this.hint.addGoogle}`);
|
|
2842
|
+
throw new CommandError("NO_ACCESS", `None of the connected Google accounts (${this.google.map((linked) => linked.email).join(", ")}) has a Search Console property for ${site}. ${readable(names, "they")} ${this.hint.addGoogle}`);
|
|
2782
2843
|
}
|
|
2783
2844
|
async owner(site) {
|
|
2784
2845
|
const owner = (await this.ownerMap()).get(await this.resolve(site));
|
|
@@ -3179,6 +3240,10 @@ function classify(error) {
|
|
|
3179
3240
|
errorCategory: "crawl_timeout",
|
|
3180
3241
|
failureReason: "crawl_timeout"
|
|
3181
3242
|
};
|
|
3243
|
+
const provider = signals.find((signal) => signal.name === "ProviderError");
|
|
3244
|
+
const providerCode = PROVIDER_ERROR_CODES[provider?.code];
|
|
3245
|
+
const fromProvider = providerCode && PRODUCT_FAILURES[providerCode];
|
|
3246
|
+
if (fromProvider) return fromProvider;
|
|
3182
3247
|
for (const code of codes) {
|
|
3183
3248
|
const product = PRODUCT_FAILURES[code];
|
|
3184
3249
|
if (product) return product;
|
|
@@ -3397,6 +3462,19 @@ function detectTelemetryAgent(input = {}) {
|
|
|
3397
3462
|
if (env.CODEX_HOME || env.CODEX_THREAD_ID || env.CODEX_SANDBOX) return "codex";
|
|
3398
3463
|
return "cli";
|
|
3399
3464
|
}
|
|
3465
|
+
function detectAgentName(env = process.env) {
|
|
3466
|
+
const named = (env.AI_AGENT || env.AGENT)?.trim().toLowerCase();
|
|
3467
|
+
if (named) return named.slice(0, 40);
|
|
3468
|
+
const agent = detectTelemetryAgent({ env });
|
|
3469
|
+
if (agent !== "cli") return agent;
|
|
3470
|
+
if (env.GEMINI_CLI) return "gemini";
|
|
3471
|
+
if (env.OPENCODE || env.OPENCODE_CLIENT) return "opencode";
|
|
3472
|
+
if (env.ANTIGRAVITY_AGENT) return "antigravity";
|
|
3473
|
+
if (env.AUGMENT_AGENT) return "augment";
|
|
3474
|
+
if (env.COPILOT_MODEL || env.COPILOT_ALLOW_ALL) return "github-copilot";
|
|
3475
|
+
if (env.REPL_ID) return "replit";
|
|
3476
|
+
return null;
|
|
3477
|
+
}
|
|
3400
3478
|
function telemetryAgent(options) {
|
|
3401
3479
|
return options.agent ?? detectTelemetryAgent({
|
|
3402
3480
|
clientName: options.clientName,
|
|
@@ -3689,7 +3767,7 @@ async function startCloudLogin() {
|
|
|
3689
3767
|
method: "POST",
|
|
3690
3768
|
body: JSON.stringify({
|
|
3691
3769
|
label: `seo on ${hostname().split(".")[0] || "this machine"}`.slice(0, 60),
|
|
3692
|
-
agent: getTelemetryStatus().enabled ?
|
|
3770
|
+
agent: getTelemetryStatus().enabled ? detectAgentName() : void 0
|
|
3693
3771
|
})
|
|
3694
3772
|
});
|
|
3695
3773
|
const { device, code, url, expiresIn } = result.body;
|
|
@@ -16121,35 +16199,6 @@ async function fetchSitemapUrls(input) {
|
|
|
16121
16199
|
};
|
|
16122
16200
|
}
|
|
16123
16201
|
//#endregion
|
|
16124
|
-
//#region packages/core/src/providers/errors.ts
|
|
16125
|
-
var ProviderError = class extends Error {
|
|
16126
|
-
provider;
|
|
16127
|
-
operation;
|
|
16128
|
-
code;
|
|
16129
|
-
status;
|
|
16130
|
-
retryable;
|
|
16131
|
-
constructor(input) {
|
|
16132
|
-
super(input.message, { cause: input.cause });
|
|
16133
|
-
this.name = "ProviderError";
|
|
16134
|
-
this.provider = input.provider;
|
|
16135
|
-
this.operation = input.operation;
|
|
16136
|
-
this.code = input.code;
|
|
16137
|
-
this.status = input.status ?? null;
|
|
16138
|
-
this.retryable = input.retryable ?? false;
|
|
16139
|
-
}
|
|
16140
|
-
toJSON() {
|
|
16141
|
-
return {
|
|
16142
|
-
name: this.name,
|
|
16143
|
-
provider: this.provider,
|
|
16144
|
-
operation: this.operation,
|
|
16145
|
-
code: this.code,
|
|
16146
|
-
message: this.message,
|
|
16147
|
-
status: this.status,
|
|
16148
|
-
retryable: this.retryable
|
|
16149
|
-
};
|
|
16150
|
-
}
|
|
16151
|
-
};
|
|
16152
|
-
//#endregion
|
|
16153
16202
|
//#region packages/core/src/providers/cache.ts
|
|
16154
16203
|
function stableValue(value) {
|
|
16155
16204
|
if (Array.isArray(value)) return value.map(stableValue);
|
|
@@ -22746,7 +22795,7 @@ function analyzeTrafficAnomalyRows(input) {
|
|
|
22746
22795
|
const comparisonStart = shiftIsoDate(input.endDate, -(input.recentDays - 1));
|
|
22747
22796
|
const baselineEnd = shiftIsoDate(comparisonStart, -1);
|
|
22748
22797
|
const baselineExpectedDays = calendarDays(input.startDate, baselineEnd);
|
|
22749
|
-
if (comparisonStart < input.startDate || baselineExpectedDays < 14) throw new SeoError("INSUFFICIENT_DATA",
|
|
22798
|
+
if (comparisonStart < input.startDate || baselineExpectedDays < 14) throw new SeoError("INSUFFICIENT_DATA", `The date range needs at least ${input.recentDays + 14} days: 14 baseline days before the last ${input.recentDays}. Send a longer range, or leave the dates out for the default.`);
|
|
22750
22799
|
const aggregated = aggregateDailyRows({
|
|
22751
22800
|
rows: input.rows,
|
|
22752
22801
|
startDate: input.startDate,
|
|
@@ -22754,7 +22803,7 @@ function analyzeTrafficAnomalyRows(input) {
|
|
|
22754
22803
|
});
|
|
22755
22804
|
const baselineRows = aggregated.rows.filter((row) => (row.keys[0] ?? "") <= baselineEnd);
|
|
22756
22805
|
const comparisonRows = aggregated.rows.filter((row) => (row.keys[0] ?? "") >= comparisonStart);
|
|
22757
|
-
if (baselineRows.length < 14 || comparisonRows.length < 3) throw new SeoError("INSUFFICIENT_DATA", `Not enough
|
|
22806
|
+
if (baselineRows.length < 14 || comparisonRows.length < 3) throw new SeoError("INSUFFICIENT_DATA", `Not enough daily Search Console data to look for a drop: ${baselineRows.length} baseline days and ${comparisonRows.length} comparison days, and it needs 14 and 3. The site may be new or get too few clicks for daily rows.`);
|
|
22758
22807
|
const metrics = ["clicks", "impressions"];
|
|
22759
22808
|
const stepCaveats = [];
|
|
22760
22809
|
const anomalies = metrics.map((metric) => {
|
|
@@ -32493,10 +32542,10 @@ function markdownText(markdown, url) {
|
|
|
32493
32542
|
return `Main content as Markdown (live page${markdown.truncated ? `, cut to ${markdown.markdown.length.toLocaleString("en-US")} of ${markdown.characters.toLocaleString("en-US")} characters` : ""}):\n\n${markdown.markdown}`;
|
|
32494
32543
|
}
|
|
32495
32544
|
async function runCompare(input, deps) {
|
|
32496
|
-
if (
|
|
32545
|
+
if (!realIsoDate(input.date)) throw new CommandError("INVALID_INPUT", "The date must be a real day as YYYY-MM-DD.");
|
|
32497
32546
|
const last = latestFinalGscDate(deps.now?.() ?? /* @__PURE__ */ new Date());
|
|
32498
32547
|
const daysAfter = Math.round((Date.parse(last) - Date.parse(input.date)) / 864e5) + 1;
|
|
32499
|
-
if (daysAfter < 3) throw new CommandError("INVALID_INPUT", `Search Console has final data to ${last}
|
|
32548
|
+
if (daysAfter < 3) throw new CommandError("INVALID_INPUT", `Search Console has final data to ${last}, and a comparison needs 3 days after the change. The latest date that works is ${shiftIsoDate(last, -2)}.`);
|
|
32500
32549
|
const days = Math.min(28, daysAfter);
|
|
32501
32550
|
const after = {
|
|
32502
32551
|
startDate: input.date,
|
|
@@ -32838,8 +32887,15 @@ function weekMarkdown(data) {
|
|
|
32838
32887
|
out.push("", "## Ask your agent", "", "Paste this into your agent:", "", "```", prompt, "```");
|
|
32839
32888
|
return out.join("\n");
|
|
32840
32889
|
}
|
|
32841
|
-
async function runAllSites(deps) {
|
|
32890
|
+
async function runAllSites(deps, sites) {
|
|
32842
32891
|
const data = deps.week ? await deps.week() : null;
|
|
32892
|
+
if (!data && sites) {
|
|
32893
|
+
const list = await sites();
|
|
32894
|
+
return {
|
|
32895
|
+
text: `No site given. Pick one below and send it: ${deps.call("report", { site: "<site>" })}. The summary of every site is for accounts in the weekly site audit beta.\n\n${list.text}`,
|
|
32896
|
+
data: list.data
|
|
32897
|
+
};
|
|
32898
|
+
}
|
|
32843
32899
|
if (!data) throw new CommandError("INVALID_INPUT", `No site given. Name one: ${deps.call("report", { site: "<site>" })}. The summary of every site is for accounts in the weekly site audit beta.`);
|
|
32844
32900
|
const startMs = Date.parse(`${data.start}T00:00:00Z`);
|
|
32845
32901
|
const endMs = Date.parse(`${data.end}T00:00:00Z`) + DAY_MS;
|
|
@@ -32855,8 +32911,8 @@ async function runAllSites(deps) {
|
|
|
32855
32911
|
//#region packages/core/src/commands/tools.ts
|
|
32856
32912
|
const site = z.string().min(1).describe("Search Console property or site, such as sc-domain:example.com, https://example.com/ or example.com.");
|
|
32857
32913
|
const dates = {
|
|
32858
|
-
start_date: z.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional().describe("YYYY-MM-DD. Optional;
|
|
32859
|
-
end_date: z.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional().describe("YYYY-MM-DD. Optional
|
|
32914
|
+
start_date: z.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional().describe("YYYY-MM-DD. Optional; without end_date it runs to the latest final day."),
|
|
32915
|
+
end_date: z.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional().describe("YYYY-MM-DD. Optional.")
|
|
32860
32916
|
};
|
|
32861
32917
|
const detail = {
|
|
32862
32918
|
detail: z.enum([
|
|
@@ -32875,6 +32931,14 @@ const DATA_SOURCES = [
|
|
|
32875
32931
|
function tool(spec) {
|
|
32876
32932
|
return spec;
|
|
32877
32933
|
}
|
|
32934
|
+
const listSites$1 = async (surface) => runSites({
|
|
32935
|
+
accounts: await surface.accounts(),
|
|
32936
|
+
keys: await surface.keys(),
|
|
32937
|
+
clicky: clickySites(await surface.keys()).map(clickyLabel),
|
|
32938
|
+
signIn: surface.signIn,
|
|
32939
|
+
bing: surface.deps.bing ? await surface.deps.bing() : void 0,
|
|
32940
|
+
connect: surface.connect
|
|
32941
|
+
});
|
|
32878
32942
|
const SHARED_TOOLS = [
|
|
32879
32943
|
tool({
|
|
32880
32944
|
name: "seo_sites",
|
|
@@ -32882,20 +32946,13 @@ const SHARED_TOOLS = [
|
|
|
32882
32946
|
title: "List sites",
|
|
32883
32947
|
description: "Lists the Search Console and Google Analytics properties the connected Google accounts can read, the Bing Webmaster site for each, and which research keys are set. Call it first.",
|
|
32884
32948
|
input: z.object({}),
|
|
32885
|
-
run:
|
|
32886
|
-
accounts: await surface.accounts(),
|
|
32887
|
-
keys: await surface.keys(),
|
|
32888
|
-
clicky: clickySites(await surface.keys()).map(clickyLabel),
|
|
32889
|
-
signIn: surface.signIn,
|
|
32890
|
-
bing: surface.deps.bing ? await surface.deps.bing() : void 0,
|
|
32891
|
-
connect: surface.connect
|
|
32892
|
-
})
|
|
32949
|
+
run: listSites$1
|
|
32893
32950
|
}),
|
|
32894
32951
|
tool({
|
|
32895
32952
|
name: "seo_report",
|
|
32896
32953
|
command: "report",
|
|
32897
32954
|
title: "Search Console report",
|
|
32898
|
-
description: `Start here. Without site: a short summary of every site in the person's weekly site audit (beta) for last week, with what needs a look and the next step for each, ending with the site to ask about next; an account outside that beta
|
|
32955
|
+
description: `Start here. Without site: a short summary of every site in the person's weekly site audit (beta) for last week, with what needs a look and the next step for each, ending with the site to ask about next; an account outside that beta gets its site list to pick from. With site: the main report for that Search Console property, the overview plus each section's row count and top rows. With site and section: that section's rows; page sections also check their top 20 URLs live. Sections:\n${Object.entries(SECTIONS).map(([id, text]) => `- ${id}: ${text}`).join("\n")}`,
|
|
32899
32956
|
input: z.object({
|
|
32900
32957
|
site: site.optional().describe("Leave it out for the summary of every audited site (weekly site audit beta). Otherwise a Search Console property or site, such as sc-domain:example.com, https://example.com/ or example.com."),
|
|
32901
32958
|
section: z.enum(SECTION_IDS).optional().describe("Optional, needs site. Leave it out first; then ask for one section."),
|
|
@@ -32908,7 +32965,7 @@ const SHARED_TOOLS = [
|
|
|
32908
32965
|
site: "<site>",
|
|
32909
32966
|
section: input.section
|
|
32910
32967
|
})}.`);
|
|
32911
|
-
return runAllSites(surface.deps);
|
|
32968
|
+
return runAllSites(surface.deps, () => listSites$1(surface));
|
|
32912
32969
|
}
|
|
32913
32970
|
const target = input.site;
|
|
32914
32971
|
const resolved = await surface.resolveSite(target).catch((error) => error instanceof Error ? error : new Error(String(error)));
|
|
@@ -33434,8 +33491,9 @@ async function localRefreshClicky() {
|
|
|
33434
33491
|
return localResearchKeys();
|
|
33435
33492
|
}
|
|
33436
33493
|
async function resolveLocalSite(site, options = {}) {
|
|
33437
|
-
const
|
|
33438
|
-
|
|
33494
|
+
const names = (await listSites(options.refresh, options.account)).map((entry) => entry.siteUrl);
|
|
33495
|
+
const found = matchProperty(names, site);
|
|
33496
|
+
if (!found) throw new CommandError("NO_ACCESS", `This Google login has no Search Console property for ${site}. ${readable(names)}`);
|
|
33439
33497
|
return found;
|
|
33440
33498
|
}
|
|
33441
33499
|
const ERROR_CODES = {
|
|
@@ -33443,6 +33501,7 @@ const ERROR_CODES = {
|
|
|
33443
33501
|
NOT_CONNECTED: "AUTH_REQUIRED",
|
|
33444
33502
|
NO_ACCESS: "PROPERTY_NOT_FOUND",
|
|
33445
33503
|
NO_KEY: "AUTH_CONFIG_REQUIRED",
|
|
33504
|
+
NO_DATA: "INSUFFICIENT_DATA",
|
|
33446
33505
|
RATE_LIMITED: "RATE_LIMITED",
|
|
33447
33506
|
GOOGLE_ERROR: "PROVIDER_UNAVAILABLE",
|
|
33448
33507
|
PROVIDER_ERROR: "PROVIDER_UNAVAILABLE"
|
|
@@ -35139,6 +35198,6 @@ function isoDate(daysAgo = 0) {
|
|
|
35139
35198
|
return date.toISOString().slice(0, 10);
|
|
35140
35199
|
}
|
|
35141
35200
|
//#endregion
|
|
35142
|
-
export { AHREFS_API_KEY_ENV, AHREFS_API_KEY_SECRET, AI_REFERRAL_SOURCES, AI_REFERRAL_SOURCES_VERSION, ANALYTICS_PROVIDER_IDS, AUDIT_PAGE_RULE_IDS, AhrefsClient, BING_API_KEY_ENV, BING_API_KEY_SECRET, BROWSER_USER_AGENT, CANNIBAL_MAXIMUM_DOMINANT_SHARE, CANNIBAL_MINIMUM_PAGE_SHARE, CLICKY_SITEKEY_ENV, CLICKY_SITE_KEYS_SECRET, CLOUD_SIGN_IN, CLOUD_URL, CRAWL_SKIP_REASONS, CTR_DEFAULT_LIMIT, CTR_MAX_LIMIT, CTR_MAX_MIN_IMPRESSIONS, DATAFORSEO_CREDENTIAL_SECRET, DATAFORSEO_LOGIN_ENV, DATAFORSEO_PASSWORD_ENV, DEFAULT_MAX_PAGES, DEFAULT_SEARCH_CONSOLE_EXPORT_ROW_LIMIT, DEFAULT_UNREACHED_PAGE_LIMIT, DataForSeoClient, DecisionModelError, DecisionRunner, GSC_FINAL_DATA_LAG_DAYS, GSC_TIME_ZONE, GoogleApiError, INCIDENTS_URL, JsonFileStorageAdapter, LINK_ROLES, LOCAL_BING_CONNECT, LOCAL_SIGN_IN, LOG_MAX_AGE_MS, LOG_MAX_FILE_BYTES, LOG_MAX_TOTAL_BYTES, LocalCredentialsProvider, MANAGED_PROVIDER_SECRET_NAMES, MAX_CRAWL_CONCURRENCY, MAX_CRAWL_DEPTH, MAX_CRAWL_PAGES, MAX_CRAWL_TIMEOUT_MS, MAX_MAX_PAGES, MAX_SEARCH_CONSOLE_EXPORT_FILES, MAX_SEARCH_CONSOLE_EXPORT_ROW_LIMIT, PAGE_TYPES, PROVIDER_SECRET_NAMES, ProviderError, ProviderExtensionRegistry, RESEARCH_IMPORT_COLUMN_KEYS, ResponseSizeLimitError, SEARCH_INTENTS, SEO_CRAWLER_IDENTITY, SEO_CRAWLER_TOKEN, SEO_CRAWLER_USER_AGENT, SEO_PROVIDER_API_VERSION, SEO_VERSION, SERP_TITLE_REFERENCE_WIDTH_PX, SERP_TITLE_WIDTH_PROFILE, STEP_CHANGE_RULES, SeoError, ServiceAccountAccessTokenClient, SessionLedger, TELEMETRY_AGENTS, TELEMETRY_ENDPOINT, TELEMETRY_ERROR_CATEGORIES, TELEMETRY_EVENTS, TELEMETRY_FAILURE_CONTEXTS, TELEMETRY_FAILURE_REASONS, TELEMETRY_NOTICE, TELEMETRY_OPERATIONS, TELEMETRY_REPORTS, TELEMETRY_SCHEMA_VERSION, TELEMETRY_TIMEOUT_MS, TYPESAFE_API_KEY_ENV, agentActionsView, aiReferralSourceForValue, aiReferralsReport, analyticsConnectionLabel, analyticsConnectionProviderId, analyticsConnectionSchema, analyticsProviderDetails, analyticsProviderSchema, analyzeAiReferralRows, analyzeCannibalImportRows, analyzeCannibalRows, analyzeCtrUnderperformersFromRows, analyzeDecay, analyzeIndexCoverageSignals, analyzePageOpportunitiesFromRows, analyzeQueryClustersFromRows, analyzeQuickWinsFromRows, analyzeSecondPageRows, analyzeSegmentRows, analyzeStrikingDistanceRows, analyzeTrafficAnomalyRows, assertCrawlConfigLimits, assertUrlMatchesGscProperty, auditCrawlPages, auditCrawlRequests, auditPage, authStatus, bearerFetch, boundedSitemapInventory, buildAgentFindings, buildQueryClusterReportFromRows, buildTelemetryPayload, cacheDb, cannibalImportReport, cannibalReport, cannibalReportWith, changeWindow, checkDatabaseReadiness, classifyTelemetryFailure, clearCache, cloudAccountFor, cloudBing, cloudCredentials, cloudGoogleEmails, cloudGoogleToken, cloudKeys, cloudLinked, cloudLogout, cloudWeek, clusterQueryRows, combineRobotsValues, compareSegmentRows, configSchema, contentCoverageRecommendation, contentCoverageType, contentOptimizationFromPageOpportunities, contentOptimizationReport, countLabel, crawlConfigHash, crawlConfigSchema, crawlDefinitionId, crawlFixToQueueItem, crawlImplementationQueueWorkflow, crawlIssueGroupSchema, crawlIssueSchema, crawlOne, crawlPageSnapshotSchema, crawlReportSchema, crawlReportSummarySchema, crawlRequestObservationSchema, crawlRunId, crawlSite, crawlSkipImpact, crawlSkipReasonCountsFromRecord, crawlStatusOnly, crawlTopFixSchema, crawlerJsonSchemas, crawlerRuleCategorySchema, crawlerRuleIdSchema, crawlerRuleInfoSchema, crawlerRuleRecommendationSchema, crawlerRuleSeveritySchema, crawlerSchemas, createAuthorizedClient, createCrawlReport, createCtrBenchmarkContext, createGoogleAccessTokenClient, createLogger, createPageRenderer, ctrUnderperformersReport, ctrUnderperformersReportWith, decayClusterDrafts, decayComparisonRange, decayingReport, decayingReportWith, deleteAhrefsApiKey, deleteBingApiKey, deleteClickySiteKey, deleteDataForSeoCredentials, deleteManagedProviderSecrets, deleteProviderExtensionAccount, deleteProviderExtensionCredentials, deleteProviderSecret, deleteTokens, deriveBrandTerms, describeInstalledProviderExtension, detectBrandTerms, detectTelemetryAgent, diagnoseCsvFiles, diagnoseProperty, diagnosePropertyWorkflow, effectiveRobotsDirectives, effectiveSnippetControl, ensurePrivateDatabaseFiles, ensureSeoCliDirs, estimateSerpTitleWidth, expectedCtrForPosition, explainRule, fetchCruxFieldData, fetchPage, fetchPageStatus, fetchSearchStatusIncidents, fetchSitemapUrls, fileSize, finalGscDateRange, findOverlappingSearchUpdates, finishCloudLogin, formatRelativeExpiry, ga4MatchReason, ga4PropertyIdFromName, ga4ReportQualityWarnings, ga4RequestCanUseCache, ga4RowsToObjects, getAuthModeStatus, getCacheStats, getClientConfig, getDb, getPrivacySnapshot, getSeoCliPaths, getServiceAccountConfig, getServiceAccountStatus, getTelemetryStatus, getTokenStorageStatus, googleJson, groupCrawlIssues, hasMetaRobotsDirective, hasRule, hasXRobotsDirective, hashKey, indexCoverageSignals, inferTemplateMovement, initializeTelemetry, inspectProviderPackage, inspectSearchConsoleUrl, inspectUrl, installProviderPackage, installedProviderPackageSchema, installedProviderPackagesSchema, internalLinksReport, interpretUpdateCorrelation, isBrandQuery, isNewerVersion, isSkippableReportError, isTelemetryCi, isTelemetryOperation, isTelemetryReport, isoDate, isoWeek, latestFinalGscDate, linkRecover, linkRecoverRecommendation, listAnalyticsAccounts, listAnalyticsDataStreams, listGa4AccountSummaries, listGa4DataStreams, listGoogleAccounts, listInstalledProviderExtensions, listRules, listSearchConsoleSites, listSearchUpdates, listSites, loadInstalledProviderExtensions, loadProviderExtensions, loadProviderPackage, loadSearchConsoleExport, localAccounts, localBing, localCredentialsProvider, localError, localGoogleFetch, localInternalLinksDependencies, localRefreshClicky, localResearchKeys, loginWithLoopback, makeRunId, matchGa4WebStreams, measureCoverage, metaRobotsDirectives, migrateLegacyMacConfig, missingOAuthClientMessage, missingSharedClientLoginMessage, nodeCommandDeps, normalizeBrandText, normalizeClickySiteId, normalizeClickySiteKey, normalizeCrawlConfig, normalizeCrawlSkipReasonCounts, normalizeForCoverage, normalizeHttpUrl, normalizeJavaScriptRenderingMode, normalizeLoadedCrawlReport, normalizeProviderExtensionAccount, normalizedResearchColumnName, notSignedIn, noteCacheWrite, openCloudLink, pageEvidenceRecommendation, pageOpportunitiesReport, parseOlderThan, pendingCloudLogin, performanceAudit, performanceReportIsCacheable, plural, providerCapabilitySchema, providerConnectionFieldSchema, providerExactVersionSchema, providerExtensionIdSchema, providerIdSchema, providerIntegritySchema, providerKindSchema, providerPackageManifestSchema, providerPackageNameSchema, providerPreferenceSchema, providerRegistrationSchema, providerRequestJson, providerRequestText, pruneLogs, publicHttpFetch, queryClusterReport, queryClusterTokens, queryContentCoverageFromPage, queryContentFieldsFromPage, queryFieldCoverage, queryOpportunityRecommendation, queryPageMetrics, queryPageTopQuery, queryPagesMetrics, queryPagesMetricsBatch, queryPagesTopQueries, queryPagesTopQueriesBatch, querySearchAnalytics, quickWinsCsvRows, quickWinsReport, quickWinsReportWith, readAhrefsApiKey, readAllTokens, readBingApiKey, readBoundedResponseText, readClickySiteKey, readClickySiteKeys, readConfig, readDataForSeoCredentials, readInstalledProviderPackages, readJson, readJsonOrUndefined, readOauthClient, readProviderExtensionAccount, readProviderExtensionCredentials, readProviderSecret, readTokens, recommendationForRule, reconcileExportPagesWithCrawl, redirectTrace, refreshAuthToken, refreshPrioritiesCsvFiles, refreshPrioritiesWorkflow, registrableDomain, removeInstalledProviderPackage, renderCrawlCsv, renderCrawlHtml, renderCrawlJunit, renderCrawlMarkdownTickets, renderCrawlPagesCsv, renderCrawlPretty, renderCsv, renderPresentationTablesMarkdown, renderWorkflowMarkdown, reportNarrative, requestHeaders, requirePageVerification, researchImportColumns, resetSeoData, resolveLocalSite, resolveSegmentRanges, resolveSeoCliPaths, reviewObservations, roundedPosition, runAnalyticsProviderLandingPages, runAnalyticsReport, runDoctor, runGa4Report, runProviderExtensionAction, runtimeForProvider, safeProviderAdapterError, saveInstalledProviderPackage, searchAnalyticsRows, searchUpdatesFromIncidents, secondPage, secondPageWith, segmentComparisonRange, segmentImpact, segmentRangeDays, seoErrorEnvelope, sessionSourceInListFilter, setActiveGoogleAccount, setTelemetryEnabled, setTokenStorageMode, shiftIsoDate, shouldExcludeBrandQuery, siteStartUrl, startCloudLogin, strikingDistance, strikingDistanceWith, summarizeCrawlReport, pageTechnicalSignals as technicalPageSignals, telemetryErrorCategory, toSeoError, tokenSchema, tokenStoreSchema, topFixes, trackTelemetryCommandFailed, trackTelemetryReportComplete, trackTelemetryReportFailed, trackTelemetryReportStart, trackTelemetrySetupComplete, trafficAnomaly, trafficAnomalyWith, typesafeDecisionModel, unavailableSegmentImpactReport, unicodeTokens, uninstallProviderExtension, updateCorrelation, updateNotice, updatePostmortemCsvFiles, updatePostmortemWorkflow, urlInspectionQuota, validateResearchImportColumnSources, verifyAnalyticsProvider, verifyProviderExtension, verifyQueryContent, verifyQueryContentWith, withAgentReportContract, withRankingHistory, workflowPresentation, writeAhrefsApiKey, writeBingApiKey, writeClickySiteKey, writeConfig, writeDataForSeoCredentials, writeInstalledProviderPackages, writeOauthClient, writeProviderExtensionAccount, writeProviderExtensionCredentials, writeProviderSecret, writeToCache, writeTokens, xRobotsDirectives };
|
|
35201
|
+
export { AHREFS_API_KEY_ENV, AHREFS_API_KEY_SECRET, AI_REFERRAL_SOURCES, AI_REFERRAL_SOURCES_VERSION, ANALYTICS_PROVIDER_IDS, AUDIT_PAGE_RULE_IDS, AhrefsClient, BING_API_KEY_ENV, BING_API_KEY_SECRET, BROWSER_USER_AGENT, CANNIBAL_MAXIMUM_DOMINANT_SHARE, CANNIBAL_MINIMUM_PAGE_SHARE, CLICKY_SITEKEY_ENV, CLICKY_SITE_KEYS_SECRET, CLOUD_SIGN_IN, CLOUD_URL, CRAWL_SKIP_REASONS, CTR_DEFAULT_LIMIT, CTR_MAX_LIMIT, CTR_MAX_MIN_IMPRESSIONS, DATAFORSEO_CREDENTIAL_SECRET, DATAFORSEO_LOGIN_ENV, DATAFORSEO_PASSWORD_ENV, DEFAULT_MAX_PAGES, DEFAULT_SEARCH_CONSOLE_EXPORT_ROW_LIMIT, DEFAULT_UNREACHED_PAGE_LIMIT, DataForSeoClient, DecisionModelError, DecisionRunner, GSC_FINAL_DATA_LAG_DAYS, GSC_TIME_ZONE, GoogleApiError, INCIDENTS_URL, JsonFileStorageAdapter, LINK_ROLES, LOCAL_BING_CONNECT, LOCAL_SIGN_IN, LOG_MAX_AGE_MS, LOG_MAX_FILE_BYTES, LOG_MAX_TOTAL_BYTES, LocalCredentialsProvider, MANAGED_PROVIDER_SECRET_NAMES, MAX_CRAWL_CONCURRENCY, MAX_CRAWL_DEPTH, MAX_CRAWL_PAGES, MAX_CRAWL_TIMEOUT_MS, MAX_MAX_PAGES, MAX_SEARCH_CONSOLE_EXPORT_FILES, MAX_SEARCH_CONSOLE_EXPORT_ROW_LIMIT, PAGE_TYPES, PROVIDER_ERROR_CODES, PROVIDER_SECRET_NAMES, ProviderError, ProviderExtensionRegistry, RESEARCH_IMPORT_COLUMN_KEYS, ResponseSizeLimitError, SEARCH_INTENTS, SEO_CRAWLER_IDENTITY, SEO_CRAWLER_TOKEN, SEO_CRAWLER_USER_AGENT, SEO_PROVIDER_API_VERSION, SEO_VERSION, SERP_TITLE_REFERENCE_WIDTH_PX, SERP_TITLE_WIDTH_PROFILE, STEP_CHANGE_RULES, SeoError, ServiceAccountAccessTokenClient, SessionLedger, TELEMETRY_AGENTS, TELEMETRY_ENDPOINT, TELEMETRY_ERROR_CATEGORIES, TELEMETRY_EVENTS, TELEMETRY_FAILURE_CONTEXTS, TELEMETRY_FAILURE_REASONS, TELEMETRY_NOTICE, TELEMETRY_OPERATIONS, TELEMETRY_REPORTS, TELEMETRY_SCHEMA_VERSION, TELEMETRY_TIMEOUT_MS, TYPESAFE_API_KEY_ENV, agentActionsView, aiReferralSourceForValue, aiReferralsReport, analyticsConnectionLabel, analyticsConnectionProviderId, analyticsConnectionSchema, analyticsProviderDetails, analyticsProviderSchema, analyzeAiReferralRows, analyzeCannibalImportRows, analyzeCannibalRows, analyzeCtrUnderperformersFromRows, analyzeDecay, analyzeIndexCoverageSignals, analyzePageOpportunitiesFromRows, analyzeQueryClustersFromRows, analyzeQuickWinsFromRows, analyzeSecondPageRows, analyzeSegmentRows, analyzeStrikingDistanceRows, analyzeTrafficAnomalyRows, assertCrawlConfigLimits, assertUrlMatchesGscProperty, auditCrawlPages, auditCrawlRequests, auditPage, authStatus, bearerFetch, boundedSitemapInventory, buildAgentFindings, buildQueryClusterReportFromRows, buildTelemetryPayload, cacheDb, cannibalImportReport, cannibalReport, cannibalReportWith, changeWindow, checkDatabaseReadiness, classifyTelemetryFailure, clearCache, cloudAccountFor, cloudBing, cloudCredentials, cloudGoogleEmails, cloudGoogleToken, cloudKeys, cloudLinked, cloudLogout, cloudWeek, clusterQueryRows, combineRobotsValues, compareSegmentRows, configSchema, contentCoverageRecommendation, contentCoverageType, contentOptimizationFromPageOpportunities, contentOptimizationReport, countLabel, crawlConfigHash, crawlConfigSchema, crawlDefinitionId, crawlFixToQueueItem, crawlImplementationQueueWorkflow, crawlIssueGroupSchema, crawlIssueSchema, crawlOne, crawlPageSnapshotSchema, crawlReportSchema, crawlReportSummarySchema, crawlRequestObservationSchema, crawlRunId, crawlSite, crawlSkipImpact, crawlSkipReasonCountsFromRecord, crawlStatusOnly, crawlTopFixSchema, crawlerJsonSchemas, crawlerRuleCategorySchema, crawlerRuleIdSchema, crawlerRuleInfoSchema, crawlerRuleRecommendationSchema, crawlerRuleSeveritySchema, crawlerSchemas, createAuthorizedClient, createCrawlReport, createCtrBenchmarkContext, createGoogleAccessTokenClient, createLogger, createPageRenderer, ctrUnderperformersReport, ctrUnderperformersReportWith, decayClusterDrafts, decayComparisonRange, decayingReport, decayingReportWith, deleteAhrefsApiKey, deleteBingApiKey, deleteClickySiteKey, deleteDataForSeoCredentials, deleteManagedProviderSecrets, deleteProviderExtensionAccount, deleteProviderExtensionCredentials, deleteProviderSecret, deleteTokens, deriveBrandTerms, describeInstalledProviderExtension, detectAgentName, detectBrandTerms, detectTelemetryAgent, diagnoseCsvFiles, diagnoseProperty, diagnosePropertyWorkflow, effectiveRobotsDirectives, effectiveSnippetControl, ensurePrivateDatabaseFiles, ensureSeoCliDirs, estimateSerpTitleWidth, expectedCtrForPosition, explainRule, fetchCruxFieldData, fetchPage, fetchPageStatus, fetchSearchStatusIncidents, fetchSitemapUrls, fileSize, finalGscDateRange, findOverlappingSearchUpdates, finishCloudLogin, formatRelativeExpiry, ga4MatchReason, ga4PropertyIdFromName, ga4ReportQualityWarnings, ga4RequestCanUseCache, ga4RowsToObjects, getAuthModeStatus, getCacheStats, getClientConfig, getDb, getPrivacySnapshot, getSeoCliPaths, getServiceAccountConfig, getServiceAccountStatus, getTelemetryStatus, getTokenStorageStatus, googleJson, groupCrawlIssues, hasMetaRobotsDirective, hasRule, hasXRobotsDirective, hashKey, indexCoverageSignals, inferTemplateMovement, initializeTelemetry, inspectProviderPackage, inspectSearchConsoleUrl, inspectUrl, installProviderPackage, installedProviderPackageSchema, installedProviderPackagesSchema, internalLinksReport, interpretUpdateCorrelation, isBrandQuery, isNewerVersion, isSkippableReportError, isTelemetryCi, isTelemetryOperation, isTelemetryReport, isoDate, isoWeek, latestFinalGscDate, linkRecover, linkRecoverRecommendation, listAnalyticsAccounts, listAnalyticsDataStreams, listGa4AccountSummaries, listGa4DataStreams, listGoogleAccounts, listInstalledProviderExtensions, listRules, listSearchConsoleSites, listSearchUpdates, listSites, loadInstalledProviderExtensions, loadProviderExtensions, loadProviderPackage, loadSearchConsoleExport, localAccounts, localBing, localCredentialsProvider, localError, localGoogleFetch, localInternalLinksDependencies, localRefreshClicky, localResearchKeys, loginWithLoopback, makeRunId, matchGa4WebStreams, measureCoverage, metaRobotsDirectives, migrateLegacyMacConfig, missingOAuthClientMessage, missingSharedClientLoginMessage, nodeCommandDeps, normalizeBrandText, normalizeClickySiteId, normalizeClickySiteKey, normalizeCrawlConfig, normalizeCrawlSkipReasonCounts, normalizeForCoverage, normalizeHttpUrl, normalizeJavaScriptRenderingMode, normalizeLoadedCrawlReport, normalizeProviderExtensionAccount, normalizedResearchColumnName, notSignedIn, noteCacheWrite, openCloudLink, pageEvidenceRecommendation, pageOpportunitiesReport, parseOlderThan, pendingCloudLogin, performanceAudit, performanceReportIsCacheable, plural, providerCapabilitySchema, providerConnectionFieldSchema, providerExactVersionSchema, providerExtensionIdSchema, providerIdSchema, providerIntegritySchema, providerKindSchema, providerPackageManifestSchema, providerPackageNameSchema, providerPreferenceSchema, providerRegistrationSchema, providerRequestJson, providerRequestText, pruneLogs, publicHttpFetch, queryClusterReport, queryClusterTokens, queryContentCoverageFromPage, queryContentFieldsFromPage, queryFieldCoverage, queryOpportunityRecommendation, queryPageMetrics, queryPageTopQuery, queryPagesMetrics, queryPagesMetricsBatch, queryPagesTopQueries, queryPagesTopQueriesBatch, querySearchAnalytics, quickWinsCsvRows, quickWinsReport, quickWinsReportWith, readAhrefsApiKey, readAllTokens, readBingApiKey, readBoundedResponseText, readClickySiteKey, readClickySiteKeys, readConfig, readDataForSeoCredentials, readInstalledProviderPackages, readJson, readJsonOrUndefined, readOauthClient, readProviderExtensionAccount, readProviderExtensionCredentials, readProviderSecret, readTokens, recommendationForRule, reconcileExportPagesWithCrawl, redirectTrace, refreshAuthToken, refreshPrioritiesCsvFiles, refreshPrioritiesWorkflow, registrableDomain, removeInstalledProviderPackage, renderCrawlCsv, renderCrawlHtml, renderCrawlJunit, renderCrawlMarkdownTickets, renderCrawlPagesCsv, renderCrawlPretty, renderCsv, renderPresentationTablesMarkdown, renderWorkflowMarkdown, reportNarrative, requestHeaders, requirePageVerification, researchImportColumns, resetSeoData, resolveLocalSite, resolveSegmentRanges, resolveSeoCliPaths, reviewObservations, roundedPosition, runAnalyticsProviderLandingPages, runAnalyticsReport, runDoctor, runGa4Report, runProviderExtensionAction, runtimeForProvider, safeProviderAdapterError, saveInstalledProviderPackage, searchAnalyticsRows, searchUpdatesFromIncidents, secondPage, secondPageWith, segmentComparisonRange, segmentImpact, segmentRangeDays, seoErrorEnvelope, sessionSourceInListFilter, setActiveGoogleAccount, setTelemetryEnabled, setTokenStorageMode, shiftIsoDate, shouldExcludeBrandQuery, siteStartUrl, startCloudLogin, strikingDistance, strikingDistanceWith, summarizeCrawlReport, pageTechnicalSignals as technicalPageSignals, telemetryErrorCategory, toSeoError, tokenSchema, tokenStoreSchema, topFixes, trackTelemetryCommandFailed, trackTelemetryReportComplete, trackTelemetryReportFailed, trackTelemetryReportStart, trackTelemetrySetupComplete, trafficAnomaly, trafficAnomalyWith, typesafeDecisionModel, unavailableSegmentImpactReport, unicodeTokens, uninstallProviderExtension, updateCorrelation, updateNotice, updatePostmortemCsvFiles, updatePostmortemWorkflow, urlInspectionQuota, validateResearchImportColumnSources, verifyAnalyticsProvider, verifyProviderExtension, verifyQueryContent, verifyQueryContentWith, withAgentReportContract, withRankingHistory, workflowPresentation, writeAhrefsApiKey, writeBingApiKey, writeClickySiteKey, writeConfig, writeDataForSeoCredentials, writeInstalledProviderPackages, writeOauthClient, writeProviderExtensionAccount, writeProviderExtensionCredentials, writeProviderSecret, writeToCache, writeTokens, xRobotsDirectives };
|
|
35143
35202
|
|
|
35144
35203
|
//# sourceMappingURL=index.js.map
|