seo 0.10.0 → 0.11.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/dist/index.d.ts CHANGED
@@ -21729,6 +21729,8 @@ declare namespace SqliteDatabase {
21729
21729
  //#region packages/core/src/storage/database.d.ts
21730
21730
  declare function ensurePrivateDatabaseFiles(path: string): void;
21731
21731
  declare function getDb(): SqliteDatabase.Database;
21732
+ declare function cacheDb(): SqliteDatabase.Database;
21733
+ declare function writeToCache(write: (database: SqliteDatabase.Database) => void): void;
21732
21734
  declare function noteCacheWrite(sizeBytes?: number, database?: SqliteDatabase.Database): void;
21733
21735
  declare function checkDatabaseReadiness(): {
21734
21736
  dbPath: string;
@@ -22451,6 +22453,18 @@ declare function trackTelemetryCommandFailed(operation: string, error: unknown,
22451
22453
  declare function trackTelemetrySetupComplete(options?: TelemetryOptions): void;
22452
22454
  declare function telemetryErrorCategory(error: unknown): TelemetryErrorCategory;
22453
22455
  //#endregion
22456
+ //#region packages/core/src/update-notice.d.ts
22457
+ type UpdateNoticeOptions = {
22458
+ argv?: string[];
22459
+ cacheFile?: string;
22460
+ cliPath?: string;
22461
+ env?: NodeJS.ProcessEnv;
22462
+ now?: Date;
22463
+ version?: string;
22464
+ };
22465
+ declare function isNewerVersion(current: string, latest: string): boolean;
22466
+ declare function updateNotice(options?: UpdateNoticeOptions): string | undefined;
22467
+ //#endregion
22454
22468
  //#region packages/core/src/updates/search-status.d.ts
22455
22469
  declare const INCIDENTS_URL = "https://status.search.google.com/incidents.json";
22456
22470
  declare function fetchSearchStatusIncidents(): Promise<SearchStatusIncident[]>;
@@ -22467,5 +22481,5 @@ declare function isoDate(daysAgo?: number): string;
22467
22481
  //#region packages/core/src/version.d.ts
22468
22482
  declare const SEO_VERSION: string;
22469
22483
  //#endregion
22470
- export { AHREFS_API_KEY_ENV, AHREFS_API_KEY_SECRET, AI_REFERRAL_SOURCES, AI_REFERRAL_SOURCES_VERSION, ANALYTICS_PROVIDER_IDS, AUDIT_PAGE_RULE_IDS, AccessBlockEvidence, AgentFinding, AgentFindingStatus, AgentFindings, AgentFixFinding, AgentReportInventory, AgentReportOptions, AgentReviewFinding, AhrefsClient, AhrefsClientOptions, AhrefsLimitsAndUsage, type AiReferralDataSource, type AiReferralMetrics, type AiReferralQueryEvidence, type AiReferralReport, type AiReferralSourceDefinition, AnalyticsConnection, AnalyticsProvider, AnalyticsProviderDetails, AnalyticsProviderRuntimeOptions, type AnalyzeCannibalImportRowsInput, type AnalyzeCannibalRowsInput, type AnalyzeDecayInput, type AnalyzeQuickWinsInput, type AnalyzeSecondPageInput, type AnalyzeStrikingDistanceInput, AppConfig, AuditPageDependencies, AuditPageReport, AuthorizedGoogleClient, BING_API_KEY_ENV, BING_API_KEY_SECRET, BROWSER_USER_AGENT, BoundedSitemapInventory, BrandTermCandidate, 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, CacheStats, type CannibalAnalysis, CannibalDependencies, type CannibalImportAnalysis, CannibalImportDependencies, type CannibalImportItem, type CannibalImportPage, type CannibalImportReport, CannibalImportReportInput, type CannibalImportSelection, type CannibalItem, type CannibalPage, type CannibalReport, CannibalReportInput, CannibalSearchConsoleInput, type CannibalSelection, type CannibalSuppression, type CannibalSuppressionReason, CloudCredentials, ContentExtractionDiagnostics, ContentExtractor, ContentOptimizationIntent, ContentOptimizationReport, CoverageField, CrawlAccessSummary, type CrawlAiAvailability, type CrawlAiBotAccess, type CrawlAiLinkCheck, type CrawlAiResourceSignal, type CrawlAiSignals, CrawlAnalyticsDataSource, CrawlConfig, CrawlConfigInput, CrawlDataSourceStatus, CrawlDataSourceWindow, CrawlExternalLinkVerification, CrawlFetchRateConfig, CrawlImplementationQueueInput, CrawlImplementationQueueItem, CrawlImplementationQueueOutput, CrawlIssue, CrawlIssueGroup, CrawlLinkGraph, CrawlMode, CrawlOneResult, CrawlOutputFormat, CrawlPageSnapshot, CrawlReport, CrawlReportDataSources, CrawlReportSummary, CrawlRequestObservation, CrawlResponseObservation, CrawlRunStats, CrawlSearchDataSource, type CrawlSiteChecks, type CrawlSiteDependencies, CrawlSitemapDiscovery, CrawlSkipImpact, CrawlSkipReason, CrawlSkipReasonCount, CrawlSkippedUrlsByImpact, CrawlStatusEvent, CrawlStatusHandler, type CrawlStatusPhase, CrawlStrategy, CrawlerIdentity, CredentialsProvider, CreditUsage, CsvFile, CsvRow, CsvValue, type CtrUnderperformer, CtrUnderperformerDependencies, type CtrUnderperformerSelection, CtrUnderperformersInput, CtrUnderperformersReport, DATAFORSEO_CREDENTIAL_SECRET, DATAFORSEO_LOGIN_ENV, DATAFORSEO_PASSWORD_ENV, DEFAULT_MAX_PAGES, DEFAULT_SEARCH_CONSOLE_EXPORT_ROW_LIMIT, DEFAULT_UNREACHED_PAGE_LIMIT, type DataForSeoAccountSnapshot, DataForSeoClient, type DataForSeoClientOptions, DataForSeoCredentials, type DecayAnalysis, type DecayComparison, type DecayDiagnosis, type DecayGroup, type DecayItem, type DecayMetrics, type DecayReport, type DecaySelection, type DecaySignal, DecayingDependencies, DecayingReportInput, DecisionAnswer, DecisionErrorKind, DecisionModel, DecisionModelError, DecisionQuestion, DecisionRequest, DecisionResponse, DecisionRunner, DecisionUsage, DiagnosePropertyDependencies, DiagnosePropertyReport, DiagnosisDataStatus, DiagnosisPriority, DoctorCheck, EffectiveSnippetControl, ExternalLinkCheck, ExternalLinkCheckAttempt, ExternalLinkCheckState, ExternalServiceId, ExtractedLinkLocation, ExtractedPage, FetchPageDependencies, type FetchPageOptions, type FetchRateControls, GSC_FINAL_DATA_LAG_DAYS, GSC_TIME_ZONE, type Ga4AccountSummary, Ga4DataStream, type Ga4PropertySummary, Ga4ReportRequest, Ga4RunReportResult, Ga4WebStreamCandidate, Ga4WebStreamMatch, type GoogleAccessTokenClient, GoogleApiError, GoogleCallOptions, GoogleFetch, GoogleRichResultAssessment, GoogleRichResultAssessmentSelection, GoogleRichResultAssessmentStatus, GscRow, HttpProfile, INCIDENTS_URL, IndexCoverageBoundedSection, IndexCoverageCandidateItem, IndexCoverageControlReason, IndexCoverageControlledItem, IndexCoverageCrawlInput, IndexCoverageInput, IndexCoverageInventoryItem, IndexCoverageReport, IndexCoverageReportDependencies, IndexCoverageReportInput, IndexCoverageSearchConsoleInput, IndexCoverageSearchVisibilityItem, IndexCoverageSignalsReport, IndexCoverageSitemapInput, IndexCoverageSourceCompleteness, IndexCoverageSourceEvidence, IndexCoverageSourceMembership, IndexCoverageTemplateReview, InstalledProviderPackage, InstalledProviderPackages, type InternalLinkSuggestion, InternalLinksDependencies, InternalLinksInput, type InternalLinksPage, type InternalLinksReport, type JavaScriptRenderingInput, type JavaScriptRenderingMode, JsonFileStorageAdapter, KeywordMetric, KeywordMonthlySearch, LINK_ROLES, LOCAL_BING_CONNECT, LOCAL_SIGN_IN, LOG_MAX_AGE_MS, LOG_MAX_FILE_BYTES, LOG_MAX_TOTAL_BYTES, LighthouseFailureCode, LinkRecoverItem, LinkRecoverReport, LoadedProviderExtensions, LocalCredentialsProvider, LogPruneResult, 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, NarrativeSection, type OAuthClientConfig, OpportunityBenchmarkRow, PAGE_TYPES, PROVIDER_SECRET_NAMES, PageExtractor, PageFetchDiagnostics, PageFetchResult, PageFetcher, type PageOpportunityAnalysis, type PageOpportunityAnalysisInput, type PageOpportunityBenchmark, PageOpportunityInput, type PageOpportunityItem, PageOpportunityReport, type PageOpportunitySelection, type PageOpportunityType, type PageOpportunityVerification, type PageRenderer, PageSearchMetrics, PageTopQuery, PartialDiagnosisReason, PerformanceAuditReport, PerformanceFieldData, PerformanceFieldMetric, PerformanceMetric, PerformanceRating, PositionBenchmark, Presentation, PresentationChart, PresentationScalar, PresentationTable, PresentationTableColumn, PriorityQueueItem, ProgressReporter, ProviderActionResult, ProviderCapability, ProviderError, ProviderErrorCode, ProviderExtensionLoadFailure, ProviderExtensionLoaderOptions, ProviderExtensionRegistry, ProviderFetch, ProviderId, ProviderImportEvidence, ProviderInstallerOptions, ProviderPackageCommand, ProviderPackageCommandResult, ProviderPackageManifest, ProviderPackageRelease, ProviderRequestInput, ProviderRuntimeOptions, ProviderSecret, ProviderSecretSource, ProviderValue, ProviderWarning, QueryCluster, type QueryClusterPage, QueryClusterReport, type QueryClusterRow, QueryClusterSourceRow, QueryContentClassification, QueryContentCoverage, QueryContentSignal, QueryContentVerifier, QueryFieldCoverage, type QuickWinAnalysis, type QuickWinGroup, type QuickWinItem, type QuickWinSelection, type QuickWinTemplateRecommendation, QuickWinsDependencies, QuickWinsInput, QuickWinsReport, RESEARCH_IMPORT_COLUMN_KEYS, Recommendation, RedirectTraceIssue, RedirectTraceReport, RedirectTraceStep, RegisteredProviderExtension, RenderingDocumentDifference, RenderingDocumentField, RenderingDocumentSnapshot, ReportNarrative, ResearchImportColumn, ResearchImportColumns, ResponseSizeLimitError, RobotsDirective, RuleCategory, RuleId, RuleInfo, RuleRecommendation, RuleSeverity, 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, SearchAnalyticsOptions, SearchAnalyticsQuery, SearchAnalyticsRequest, SearchAnalyticsResult, SearchConsoleExportEvidence, SearchConsoleExportFileImport, SearchConsoleExportPageRow, SearchConsoleExportQueryRow, SearchConsoleExportReconciliation, SearchConsoleSite, SearchDateWindow, SearchPageBatch, type SearchStatusIncident, type SearchUpdate, type SecondPageAnalysis, SecondPageDependencies, SecondPageInput, type SecondPageItem, type SecondPageQuery, type SecondPageRecommendation, type SecondPageReport, type SecondPageSelection, type SegmentDimension, SegmentImpactDependencies, SegmentImpactInput, type SegmentImpactItem, type SegmentImpactReport, type SegmentImpactSelection, type SegmentPeriodEvidence, type SegmentRange, SeoAnalyticsConnection, SeoAnalyticsLandingPageResult, SeoCliPathOptions, SeoCliPaths, SeoError, SeoErrorCode, SeoLandingPageVisitRow, SeoLandingPageVisitsCapability, SeoLandingPageVisitsResult, SeoProviderActionAdapter, SeoProviderActivate, SeoProviderApiVersion, SeoProviderCapabilityAdapter, SeoProviderCapabilityId, SeoProviderConnection, SeoProviderConnectionAdapter, SeoProviderConnectionField, SeoProviderHost, SeoProviderJson, SeoProviderJsonSchema, SeoProviderKind, SeoProviderRegistration, SeoProviderRequest, SeoProviderRuntime, SeoSearchMarket, SeoSerpLocalPackResult, SeoSerpOrganicResult, SeoSerpSnapshotCapability, SeoSerpSnapshotResult, ServiceAccountAccessTokenClient, ServiceAccountConfig, ServiceAccountStatus, SessionLedger, SitemapDocument, SitemapFetchResult, SitemapInvalidLoc, SitemapLastmodObservation, SkippedDiagnosisSection, SnippetControlEvidence, StorageAdapter, StoredAhrefsApiKey, StoredClickySiteKey, StoredDataForSeoCredentials, StoredTokenStore, StoredTokens, type StrikingDistanceAnalysis, type StrikingDistanceAnalysisGroup, type StrikingDistanceAnalysisItem, StrikingDistanceDependencies, StrikingDistanceInput, StrikingDistanceItem, StrikingDistanceReport, 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, TelemetryAgent, TelemetryDisableReason, type TelemetryErrorCategory, TelemetryEvent, type TelemetryFailureClassification, type TelemetryFailureContext, type TelemetryFailureReason, type TelemetryOperation, TelemetryOptions, TelemetryPayload, TelemetryReport, TelemetryState, TelemetryStatus, TemplateAwareReport, TitleWidthEstimate, TokenStorageMode, TokenStorageStatus, TopFix, TopFixFilters, TrafficAnomaly, TrafficAnomalyCoverage, TrafficAnomalyDependencies, TrafficAnomalyDetection, TrafficAnomalyInput, TrafficAnomalyReport, TrafficAnomalySelection, type UnmatchedSegment, UpdateConfounder, UpdateCorrelationReport, UrlInspectionRequest, UrlInspectionResult, VerifyQueryContentInput, WorkflowAction, WorkflowReport, WorkflowStep, 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, cannibalImportReport, cannibalReport, cannibalReportWith, changeWindow, checkDatabaseReadiness, classifyTelemetryFailure, clearCache, cloudAccountFor, cloudBing, cloudCredentials, cloudGoogleEmails, cloudGoogleToken, cloudKeys, cloudLinked, cloudLogout, 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, 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, updatePostmortemCsvFiles, updatePostmortemWorkflow, validateResearchImportColumnSources, verifyAnalyticsProvider, verifyProviderExtension, verifyQueryContent, verifyQueryContentWith, withAgentReportContract, withRankingHistory, workflowPresentation, writeAhrefsApiKey, writeBingApiKey, writeClickySiteKey, writeConfig, writeDataForSeoCredentials, writeInstalledProviderPackages, writeOauthClient, writeProviderExtensionAccount, writeProviderExtensionCredentials, writeProviderSecret, writeTokens, xRobotsDirectives };
22484
+ export { AHREFS_API_KEY_ENV, AHREFS_API_KEY_SECRET, AI_REFERRAL_SOURCES, AI_REFERRAL_SOURCES_VERSION, ANALYTICS_PROVIDER_IDS, AUDIT_PAGE_RULE_IDS, AccessBlockEvidence, AgentFinding, AgentFindingStatus, AgentFindings, AgentFixFinding, AgentReportInventory, AgentReportOptions, AgentReviewFinding, AhrefsClient, AhrefsClientOptions, AhrefsLimitsAndUsage, type AiReferralDataSource, type AiReferralMetrics, type AiReferralQueryEvidence, type AiReferralReport, type AiReferralSourceDefinition, AnalyticsConnection, AnalyticsProvider, AnalyticsProviderDetails, AnalyticsProviderRuntimeOptions, type AnalyzeCannibalImportRowsInput, type AnalyzeCannibalRowsInput, type AnalyzeDecayInput, type AnalyzeQuickWinsInput, type AnalyzeSecondPageInput, type AnalyzeStrikingDistanceInput, AppConfig, AuditPageDependencies, AuditPageReport, AuthorizedGoogleClient, BING_API_KEY_ENV, BING_API_KEY_SECRET, BROWSER_USER_AGENT, BoundedSitemapInventory, BrandTermCandidate, 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, CacheStats, type CannibalAnalysis, CannibalDependencies, type CannibalImportAnalysis, CannibalImportDependencies, type CannibalImportItem, type CannibalImportPage, type CannibalImportReport, CannibalImportReportInput, type CannibalImportSelection, type CannibalItem, type CannibalPage, type CannibalReport, CannibalReportInput, CannibalSearchConsoleInput, type CannibalSelection, type CannibalSuppression, type CannibalSuppressionReason, CloudCredentials, ContentExtractionDiagnostics, ContentExtractor, ContentOptimizationIntent, ContentOptimizationReport, CoverageField, CrawlAccessSummary, type CrawlAiAvailability, type CrawlAiBotAccess, type CrawlAiLinkCheck, type CrawlAiResourceSignal, type CrawlAiSignals, CrawlAnalyticsDataSource, CrawlConfig, CrawlConfigInput, CrawlDataSourceStatus, CrawlDataSourceWindow, CrawlExternalLinkVerification, CrawlFetchRateConfig, CrawlImplementationQueueInput, CrawlImplementationQueueItem, CrawlImplementationQueueOutput, CrawlIssue, CrawlIssueGroup, CrawlLinkGraph, CrawlMode, CrawlOneResult, CrawlOutputFormat, CrawlPageSnapshot, CrawlReport, CrawlReportDataSources, CrawlReportSummary, CrawlRequestObservation, CrawlResponseObservation, CrawlRunStats, CrawlSearchDataSource, type CrawlSiteChecks, type CrawlSiteDependencies, CrawlSitemapDiscovery, CrawlSkipImpact, CrawlSkipReason, CrawlSkipReasonCount, CrawlSkippedUrlsByImpact, CrawlStatusEvent, CrawlStatusHandler, type CrawlStatusPhase, CrawlStrategy, CrawlerIdentity, CredentialsProvider, CreditUsage, CsvFile, CsvRow, CsvValue, type CtrUnderperformer, CtrUnderperformerDependencies, type CtrUnderperformerSelection, CtrUnderperformersInput, CtrUnderperformersReport, DATAFORSEO_CREDENTIAL_SECRET, DATAFORSEO_LOGIN_ENV, DATAFORSEO_PASSWORD_ENV, DEFAULT_MAX_PAGES, DEFAULT_SEARCH_CONSOLE_EXPORT_ROW_LIMIT, DEFAULT_UNREACHED_PAGE_LIMIT, type DataForSeoAccountSnapshot, DataForSeoClient, type DataForSeoClientOptions, DataForSeoCredentials, type DecayAnalysis, type DecayComparison, type DecayDiagnosis, type DecayGroup, type DecayItem, type DecayMetrics, type DecayReport, type DecaySelection, type DecaySignal, DecayingDependencies, DecayingReportInput, DecisionAnswer, DecisionErrorKind, DecisionModel, DecisionModelError, DecisionQuestion, DecisionRequest, DecisionResponse, DecisionRunner, DecisionUsage, DiagnosePropertyDependencies, DiagnosePropertyReport, DiagnosisDataStatus, DiagnosisPriority, DoctorCheck, EffectiveSnippetControl, ExternalLinkCheck, ExternalLinkCheckAttempt, ExternalLinkCheckState, ExternalServiceId, ExtractedLinkLocation, ExtractedPage, FetchPageDependencies, type FetchPageOptions, type FetchRateControls, GSC_FINAL_DATA_LAG_DAYS, GSC_TIME_ZONE, type Ga4AccountSummary, Ga4DataStream, type Ga4PropertySummary, Ga4ReportRequest, Ga4RunReportResult, Ga4WebStreamCandidate, Ga4WebStreamMatch, type GoogleAccessTokenClient, GoogleApiError, GoogleCallOptions, GoogleFetch, GoogleRichResultAssessment, GoogleRichResultAssessmentSelection, GoogleRichResultAssessmentStatus, GscRow, HttpProfile, INCIDENTS_URL, IndexCoverageBoundedSection, IndexCoverageCandidateItem, IndexCoverageControlReason, IndexCoverageControlledItem, IndexCoverageCrawlInput, IndexCoverageInput, IndexCoverageInventoryItem, IndexCoverageReport, IndexCoverageReportDependencies, IndexCoverageReportInput, IndexCoverageSearchConsoleInput, IndexCoverageSearchVisibilityItem, IndexCoverageSignalsReport, IndexCoverageSitemapInput, IndexCoverageSourceCompleteness, IndexCoverageSourceEvidence, IndexCoverageSourceMembership, IndexCoverageTemplateReview, InstalledProviderPackage, InstalledProviderPackages, type InternalLinkSuggestion, InternalLinksDependencies, InternalLinksInput, type InternalLinksPage, type InternalLinksReport, type JavaScriptRenderingInput, type JavaScriptRenderingMode, JsonFileStorageAdapter, KeywordMetric, KeywordMonthlySearch, LINK_ROLES, LOCAL_BING_CONNECT, LOCAL_SIGN_IN, LOG_MAX_AGE_MS, LOG_MAX_FILE_BYTES, LOG_MAX_TOTAL_BYTES, LighthouseFailureCode, LinkRecoverItem, LinkRecoverReport, LoadedProviderExtensions, LocalCredentialsProvider, LogPruneResult, 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, NarrativeSection, type OAuthClientConfig, OpportunityBenchmarkRow, PAGE_TYPES, PROVIDER_SECRET_NAMES, PageExtractor, PageFetchDiagnostics, PageFetchResult, PageFetcher, type PageOpportunityAnalysis, type PageOpportunityAnalysisInput, type PageOpportunityBenchmark, PageOpportunityInput, type PageOpportunityItem, PageOpportunityReport, type PageOpportunitySelection, type PageOpportunityType, type PageOpportunityVerification, type PageRenderer, PageSearchMetrics, PageTopQuery, PartialDiagnosisReason, PerformanceAuditReport, PerformanceFieldData, PerformanceFieldMetric, PerformanceMetric, PerformanceRating, PositionBenchmark, Presentation, PresentationChart, PresentationScalar, PresentationTable, PresentationTableColumn, PriorityQueueItem, ProgressReporter, ProviderActionResult, ProviderCapability, ProviderError, ProviderErrorCode, ProviderExtensionLoadFailure, ProviderExtensionLoaderOptions, ProviderExtensionRegistry, ProviderFetch, ProviderId, ProviderImportEvidence, ProviderInstallerOptions, ProviderPackageCommand, ProviderPackageCommandResult, ProviderPackageManifest, ProviderPackageRelease, ProviderRequestInput, ProviderRuntimeOptions, ProviderSecret, ProviderSecretSource, ProviderValue, ProviderWarning, QueryCluster, type QueryClusterPage, QueryClusterReport, type QueryClusterRow, QueryClusterSourceRow, QueryContentClassification, QueryContentCoverage, QueryContentSignal, QueryContentVerifier, QueryFieldCoverage, type QuickWinAnalysis, type QuickWinGroup, type QuickWinItem, type QuickWinSelection, type QuickWinTemplateRecommendation, QuickWinsDependencies, QuickWinsInput, QuickWinsReport, RESEARCH_IMPORT_COLUMN_KEYS, Recommendation, RedirectTraceIssue, RedirectTraceReport, RedirectTraceStep, RegisteredProviderExtension, RenderingDocumentDifference, RenderingDocumentField, RenderingDocumentSnapshot, ReportNarrative, ResearchImportColumn, ResearchImportColumns, ResponseSizeLimitError, RobotsDirective, RuleCategory, RuleId, RuleInfo, RuleRecommendation, RuleSeverity, 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, SearchAnalyticsOptions, SearchAnalyticsQuery, SearchAnalyticsRequest, SearchAnalyticsResult, SearchConsoleExportEvidence, SearchConsoleExportFileImport, SearchConsoleExportPageRow, SearchConsoleExportQueryRow, SearchConsoleExportReconciliation, SearchConsoleSite, SearchDateWindow, SearchPageBatch, type SearchStatusIncident, type SearchUpdate, type SecondPageAnalysis, SecondPageDependencies, SecondPageInput, type SecondPageItem, type SecondPageQuery, type SecondPageRecommendation, type SecondPageReport, type SecondPageSelection, type SegmentDimension, SegmentImpactDependencies, SegmentImpactInput, type SegmentImpactItem, type SegmentImpactReport, type SegmentImpactSelection, type SegmentPeriodEvidence, type SegmentRange, SeoAnalyticsConnection, SeoAnalyticsLandingPageResult, SeoCliPathOptions, SeoCliPaths, SeoError, SeoErrorCode, SeoLandingPageVisitRow, SeoLandingPageVisitsCapability, SeoLandingPageVisitsResult, SeoProviderActionAdapter, SeoProviderActivate, SeoProviderApiVersion, SeoProviderCapabilityAdapter, SeoProviderCapabilityId, SeoProviderConnection, SeoProviderConnectionAdapter, SeoProviderConnectionField, SeoProviderHost, SeoProviderJson, SeoProviderJsonSchema, SeoProviderKind, SeoProviderRegistration, SeoProviderRequest, SeoProviderRuntime, SeoSearchMarket, SeoSerpLocalPackResult, SeoSerpOrganicResult, SeoSerpSnapshotCapability, SeoSerpSnapshotResult, ServiceAccountAccessTokenClient, ServiceAccountConfig, ServiceAccountStatus, SessionLedger, SitemapDocument, SitemapFetchResult, SitemapInvalidLoc, SitemapLastmodObservation, SkippedDiagnosisSection, SnippetControlEvidence, StorageAdapter, StoredAhrefsApiKey, StoredClickySiteKey, StoredDataForSeoCredentials, StoredTokenStore, StoredTokens, type StrikingDistanceAnalysis, type StrikingDistanceAnalysisGroup, type StrikingDistanceAnalysisItem, StrikingDistanceDependencies, StrikingDistanceInput, StrikingDistanceItem, StrikingDistanceReport, 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, TelemetryAgent, TelemetryDisableReason, type TelemetryErrorCategory, TelemetryEvent, type TelemetryFailureClassification, type TelemetryFailureContext, type TelemetryFailureReason, type TelemetryOperation, TelemetryOptions, TelemetryPayload, TelemetryReport, TelemetryState, TelemetryStatus, TemplateAwareReport, TitleWidthEstimate, TokenStorageMode, TokenStorageStatus, TopFix, TopFixFilters, TrafficAnomaly, TrafficAnomalyCoverage, TrafficAnomalyDependencies, TrafficAnomalyDetection, TrafficAnomalyInput, TrafficAnomalyReport, TrafficAnomalySelection, type UnmatchedSegment, UpdateConfounder, UpdateCorrelationReport, UpdateNoticeOptions, UrlInspectionRequest, UrlInspectionResult, VerifyQueryContentInput, WorkflowAction, WorkflowReport, WorkflowStep, 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, 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, validateResearchImportColumnSources, verifyAnalyticsProvider, verifyProviderExtension, verifyQueryContent, verifyQueryContentWith, withAgentReportContract, withRankingHistory, workflowPresentation, writeAhrefsApiKey, writeBingApiKey, writeClickySiteKey, writeConfig, writeDataForSeoCredentials, writeInstalledProviderPackages, writeOauthClient, writeProviderExtensionAccount, writeProviderExtensionCredentials, writeProviderSecret, writeToCache, writeTokens, xRobotsDirectives };
22471
22485
  //# sourceMappingURL=index.d.ts.map
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-CM7xTOjT.js";
2
+ import { n as version, t as load } from "./esm-ZQwQYL0U.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";
@@ -27,6 +27,7 @@ import { TextDecoder as TextDecoder$1, promisify } from "node:util";
27
27
  import { execFile } from "node:child_process";
28
28
  import pino from "pino";
29
29
  import pretty from "pino-pretty";
30
+ import { request } from "node:https";
30
31
  //#region packages/core/src/analytics/providers.ts
31
32
  const ANALYTICS_PROVIDER_IDS = ["google", "clicky"];
32
33
  const ANALYTICS_PROVIDER_DETAILS = {
@@ -1701,7 +1702,7 @@ async function runAnalyticsReport(gfetch, propertyId, body, options) {
1701
1702
  //#endregion
1702
1703
  //#region packages/core/src/bing/api.ts
1703
1704
  const BASE = "https://ssl.bing.com/webmaster/api.svc/json";
1704
- const MAX_BYTES$2 = 8e6;
1705
+ const MAX_BYTES$3 = 8e6;
1705
1706
  function bingCall(auth, options) {
1706
1707
  return async (method, params = {}) => {
1707
1708
  const url = new URL(`${BASE}/${method}`);
@@ -1726,7 +1727,7 @@ function bingCall(auth, options) {
1726
1727
  if (response.status === 429 || /throttle/i.test(detail)) throw new SeoError("RATE_LIMITED", "Bing Webmaster is limiting requests. Try again in a few minutes.");
1727
1728
  throw new SeoError("OPTIONAL_PROVIDER_UNAVAILABLE", `Bing Webmaster answered ${response.status}. ${detail}`.trim());
1728
1729
  }
1729
- return (await readJson(response, "Bing Webmaster", { maxBytes: MAX_BYTES$2 })).d;
1730
+ return (await readJson(response, "Bing Webmaster", { maxBytes: MAX_BYTES$3 })).d;
1730
1731
  };
1731
1732
  }
1732
1733
  //#endregion
@@ -4614,10 +4615,12 @@ function initDb(database, isNewDatabase) {
4614
4615
  database.exec("DROP TABLE IF EXISTS provider_spend_notices");
4615
4616
  ensureColumn(database, "http_cache", "metadata_json", "TEXT");
4616
4617
  }).immediate();
4617
- runCacheMaintenance(database, {
4618
- compact: true,
4619
- allowFullVacuum: true
4620
- });
4618
+ try {
4619
+ runCacheMaintenance(database, {
4620
+ compact: true,
4621
+ allowFullVacuum: true
4622
+ });
4623
+ } catch {}
4621
4624
  }
4622
4625
  function getDb() {
4623
4626
  if (db) return db;
@@ -4628,12 +4631,41 @@ function getDb() {
4628
4631
  mode: 448
4629
4632
  });
4630
4633
  ensurePrivateDatabaseFiles(path);
4631
- db = new SqliteDatabase(path);
4632
- ensurePrivateDatabaseFiles(path);
4633
- initDb(db, isNewDatabase);
4634
- ensurePrivateDatabaseFiles(path);
4634
+ const opened = new SqliteDatabase(path);
4635
+ try {
4636
+ ensurePrivateDatabaseFiles(path);
4637
+ initDb(opened, isNewDatabase);
4638
+ ensurePrivateDatabaseFiles(path);
4639
+ } catch (error) {
4640
+ opened.close();
4641
+ throw error;
4642
+ }
4643
+ db = opened;
4635
4644
  return db;
4636
4645
  }
4646
+ let memoryDb;
4647
+ function memoryCache() {
4648
+ if (!memoryDb) {
4649
+ memoryDb = new SqliteDatabase(":memory:");
4650
+ memoryDb.exec(CREATE_SQL);
4651
+ }
4652
+ return memoryDb;
4653
+ }
4654
+ function cacheDb() {
4655
+ if (memoryDb) return memoryDb;
4656
+ try {
4657
+ return getDb();
4658
+ } catch {
4659
+ return memoryCache();
4660
+ }
4661
+ }
4662
+ function writeToCache(write) {
4663
+ try {
4664
+ write(cacheDb());
4665
+ } catch {
4666
+ memoryCache();
4667
+ }
4668
+ }
4637
4669
  function noteCacheWrite(sizeBytes = 0, database = getDb()) {
4638
4670
  const counter = cacheMaintenanceCounters.get(database) ?? {
4639
4671
  writes: 0,
@@ -4715,7 +4747,7 @@ function ga4RequestCanUseCache(body) {
4715
4747
  }
4716
4748
  async function runGa4Report(propertyId, body, opts = {}) {
4717
4749
  const { client, identity } = await createGoogleAccessTokenClient(opts.accountEmail);
4718
- const db = getDb();
4750
+ const db = cacheDb();
4719
4751
  const queryHash = hashKey([
4720
4752
  propertyId,
4721
4753
  identity,
@@ -4728,10 +4760,12 @@ async function runGa4Report(propertyId, body, opts = {}) {
4728
4760
  if (cacheable) {
4729
4761
  const requestJson = JSON.stringify(body);
4730
4762
  const responseJson = JSON.stringify(result);
4731
- db.prepare(`INSERT OR REPLACE INTO ga4_cache
4732
- (property_id, query_hash, request_json, response_json, row_count, fetched_at, expires_at)
4733
- VALUES (?, ?, ?, ?, ?, ?, ?)`).run(propertyId, queryHash, requestJson, responseJson, result.rowCount ?? result.rows?.length ?? 0, Date.now(), Date.now() + 864e5);
4734
- noteCacheWrite(Buffer.byteLength(requestJson) + Buffer.byteLength(responseJson));
4763
+ writeToCache((database) => {
4764
+ database.prepare(`INSERT OR REPLACE INTO ga4_cache
4765
+ (property_id, query_hash, request_json, response_json, row_count, fetched_at, expires_at)
4766
+ VALUES (?, ?, ?, ?, ?, ?, ?)`).run(propertyId, queryHash, requestJson, responseJson, result.rowCount ?? result.rows?.length ?? 0, Date.now(), Date.now() + 864e5);
4767
+ noteCacheWrite(Buffer.byteLength(requestJson) + Buffer.byteLength(responseJson), database);
4768
+ });
4735
4769
  }
4736
4770
  return result;
4737
4771
  }
@@ -7190,7 +7224,7 @@ async function fetchRobotsSource(origin, refresh, options) {
7190
7224
  const robotsUrl = new URL("/robots.txt", origin).toString();
7191
7225
  const key = hashKey(["robots", robotsUrl]);
7192
7226
  if (!refresh) {
7193
- const cached = getDb().prepare("SELECT status, body_blob, expires_at FROM http_cache WHERE url_hash = ?").get(key);
7227
+ const cached = cacheDb().prepare("SELECT status, body_blob, expires_at FROM http_cache WHERE url_hash = ?").get(key);
7194
7228
  if (cached?.body_blob && cached.status !== void 0 && cacheableStatus(cached.status) && cached.expires_at && cached.expires_at > Date.now()) return {
7195
7229
  robotsUrl,
7196
7230
  status: cached.status,
@@ -7209,12 +7243,12 @@ async function fetchRobotsSource(origin, refresh, options) {
7209
7243
  signal: controller.signal
7210
7244
  });
7211
7245
  const text = await readBoundedResponseText(response, MAX_ROBOTS_RESPONSE_BYTES, "robots.txt response");
7212
- if (options.writeCache !== false && cacheableStatus(response.status)) {
7213
- getDb().prepare(`INSERT OR REPLACE INTO http_cache
7214
- (url_hash, url, status, headers_json, body_blob, etag, fetched_at, expires_at)
7215
- VALUES (?, ?, ?, ?, ?, ?, ?, ?)`).run(key, robotsUrl, response.status, "{}", Buffer.from(text), null, Date.now(), Date.now() + 864e5);
7216
- noteCacheWrite(Buffer.byteLength(text));
7217
- }
7246
+ if (options.writeCache !== false && cacheableStatus(response.status)) writeToCache((database) => {
7247
+ database.prepare(`INSERT OR REPLACE INTO http_cache
7248
+ (url_hash, url, status, headers_json, body_blob, etag, fetched_at, expires_at)
7249
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?)`).run(key, robotsUrl, response.status, "{}", Buffer.from(text), null, Date.now(), Date.now() + 864e5);
7250
+ noteCacheWrite(Buffer.byteLength(text), database);
7251
+ });
7218
7252
  return {
7219
7253
  robotsUrl,
7220
7254
  status: response.status,
@@ -7321,7 +7355,6 @@ function decodePageFetchCacheEvidence(value) {
7321
7355
  }
7322
7356
  async function fetchPlain(url, refresh = false, timeoutMs = 2e4, rate, signal, respectRobots = false, writeCache = true) {
7323
7357
  const startedAt = Date.now();
7324
- const db = getDb();
7325
7358
  const key = hashKey(["page", url]);
7326
7359
  const host = new URL(url).host;
7327
7360
  let robots = respectRobots ? await fetchRobots(new URL(url).origin, url, refresh, {
@@ -7329,7 +7362,7 @@ async function fetchPlain(url, refresh = false, timeoutMs = 2e4, rate, signal, r
7329
7362
  signal
7330
7363
  }) : void 0;
7331
7364
  if (robots && robots.allowed !== true) throw new RobotsAccessError(robots.allowed === false ? "robots-disallowed" : "robots-deferred", robots);
7332
- const cached = db.prepare("SELECT status, headers_json, body_blob, metadata_json, expires_at FROM http_cache WHERE url_hash = ? AND expires_at > ?").get(key, Date.now());
7365
+ const cached = cacheDb().prepare("SELECT status, headers_json, body_blob, metadata_json, expires_at FROM http_cache WHERE url_hash = ? AND expires_at > ?").get(key, Date.now());
7333
7366
  if (!refresh && cached) {
7334
7367
  const evidence = decodePageFetchCacheEvidence(cached.metadata_json);
7335
7368
  return {
@@ -7431,12 +7464,12 @@ async function fetchPlain(url, refresh = false, timeoutMs = 2e4, rate, signal, r
7431
7464
  warnings: [...robots.allowed === null ? [`robots.txt availability is unknown${robots.status ? ` after HTTP ${robots.status}` : ""}; this fetch does not prove crawler access is allowed.`] : [], ...accessBlock ? [`${accessBlock.guidance.summary} Identify the crawler as ${accessBlock.crawler.userAgent}.`] : []],
7432
7465
  robotsTxt: pageRobotsEvidence(robots)
7433
7466
  };
7434
- if (!accessBlock && writeCache) {
7435
- db.prepare(`INSERT OR REPLACE INTO http_cache
7436
- (url_hash, url, status, headers_json, body_blob, metadata_json, etag, fetched_at, expires_at)
7437
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(key, url, response.response.status, JSON.stringify(headerMap), Buffer.from(html), encodePageFetchCacheEvidence(result), response.response.headers.get("etag"), Date.now(), Date.now() + 36e5);
7438
- noteCacheWrite(Buffer.byteLength(html));
7439
- }
7467
+ if (!accessBlock && writeCache) writeToCache((database) => {
7468
+ database.prepare(`INSERT OR REPLACE INTO http_cache
7469
+ (url_hash, url, status, headers_json, body_blob, metadata_json, etag, fetched_at, expires_at)
7470
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(key, url, response.response.status, JSON.stringify(headerMap), Buffer.from(html), encodePageFetchCacheEvidence(result), response.response.headers.get("etag"), Date.now(), Date.now() + 36e5);
7471
+ noteCacheWrite(Buffer.byteLength(html), database);
7472
+ });
7440
7473
  return result;
7441
7474
  }
7442
7475
  //#endregion
@@ -8294,7 +8327,7 @@ function resolveSearchDateWindow(input = 28) {
8294
8327
  }
8295
8328
  async function querySearchAnalytics(site, body, opts = {}) {
8296
8329
  const { client, identity } = await getAuthorized(opts.accountEmail ?? await cloudAccountFor(site));
8297
- const db = getDb();
8330
+ const db = cacheDb();
8298
8331
  const queryHash = hashKey([
8299
8332
  site,
8300
8333
  identity,
@@ -8314,10 +8347,12 @@ async function querySearchAnalytics(site, body, opts = {}) {
8314
8347
  const calls = result.calls;
8315
8348
  const requestJson = JSON.stringify(body);
8316
8349
  const responseJson = JSON.stringify(allRows);
8317
- db.prepare(`INSERT OR REPLACE INTO gsc_cache
8318
- (site_url, query_hash, request_json, response_json, row_count, fetched_at, expires_at)
8319
- VALUES (?, ?, ?, ?, ?, ?, ?)`).run(site, queryHash, requestJson, responseJson, allRows.length, Date.now(), Date.now() + 864e5);
8320
- noteCacheWrite(Buffer.byteLength(requestJson) + Buffer.byteLength(responseJson));
8350
+ writeToCache((database) => {
8351
+ database.prepare(`INSERT OR REPLACE INTO gsc_cache
8352
+ (site_url, query_hash, request_json, response_json, row_count, fetched_at, expires_at)
8353
+ VALUES (?, ?, ?, ?, ?, ?, ?)`).run(site, queryHash, requestJson, responseJson, allRows.length, Date.now(), Date.now() + 864e5);
8354
+ noteCacheWrite(Buffer.byteLength(requestJson) + Buffer.byteLength(responseJson), database);
8355
+ });
8321
8356
  return {
8322
8357
  rows: allRows,
8323
8358
  calls,
@@ -8453,8 +8488,10 @@ async function queryPagesTopQueriesBatch(site, pageUrls, range = 28) {
8453
8488
  //#region packages/core/src/gsc/client/sites.ts
8454
8489
  async function listSites(_refresh = false, accountEmail) {
8455
8490
  const entries = !accountEmail && cloudLinked() ? await allCloudSites() : await listSearchConsoleSites(googleFetchFor((await getAuthorized(accountEmail)).client), LOCAL_SIGN_IN);
8456
- const insert = getDb().prepare("INSERT OR REPLACE INTO sites (site_url, display_name, permission, added_at, is_default) VALUES (?, ?, ?, ?, COALESCE((SELECT is_default FROM sites WHERE site_url = ?), 0))");
8457
- for (const site of entries) insert.run(site.siteUrl, site.siteUrl, site.permissionLevel ?? null, Date.now(), site.siteUrl);
8491
+ writeToCache((database) => {
8492
+ const insert = database.prepare("INSERT OR REPLACE INTO sites (site_url, display_name, permission, added_at, is_default) VALUES (?, ?, ?, ?, COALESCE((SELECT is_default FROM sites WHERE site_url = ?), 0))");
8493
+ for (const site of entries) insert.run(site.siteUrl, site.siteUrl, site.permissionLevel ?? null, Date.now(), site.siteUrl);
8494
+ });
8458
8495
  return entries;
8459
8496
  }
8460
8497
  async function allCloudSites() {
@@ -15565,7 +15602,7 @@ function taskIds(value) {
15565
15602
  }
15566
15603
  }
15567
15604
  function readProviderCache(key, schema, options = {}) {
15568
- const database = options.database ?? getDb();
15605
+ const database = options.database ?? cacheDb();
15569
15606
  const now = options.now ?? Date.now();
15570
15607
  const hash = requestHash(key, stableProviderRequestJson(key.request));
15571
15608
  const row = database.prepare(`SELECT response_json, row_count, source_cost_micros, task_ids_json,
@@ -15586,9 +15623,11 @@ function readProviderCache(key, schema, options = {}) {
15586
15623
  taskIds: taskIds(row.task_ids_json)
15587
15624
  };
15588
15625
  } catch {
15589
- database.prepare(`DELETE FROM provider_cache
15590
- WHERE provider = ? AND credential_scope = ? AND operation = ?
15591
- AND request_hash = ?`).run(key.provider, key.credentialScope, key.operation, hash);
15626
+ try {
15627
+ database.prepare(`DELETE FROM provider_cache
15628
+ WHERE provider = ? AND credential_scope = ? AND operation = ?
15629
+ AND request_hash = ?`).run(key.provider, key.credentialScope, key.operation, hash);
15630
+ } catch {}
15592
15631
  return null;
15593
15632
  }
15594
15633
  }
@@ -15599,19 +15638,22 @@ function writeProviderCache(key, input, options = {}) {
15599
15638
  code: "configuration",
15600
15639
  message: `Provider cache TTL must be between 1 and ${CACHE_MAX_AGE_MS} milliseconds.`
15601
15640
  });
15602
- const database = options.database ?? getDb();
15603
15641
  const now = options.now ?? Date.now();
15604
15642
  const expiresAt = now + input.ttlMs;
15605
15643
  const requestJson = stableProviderRequestJson(key.request);
15606
15644
  const responseJson = JSON.stringify(input.data);
15607
15645
  const normalizedTaskIds = [...new Set(input.taskIds)].filter((id) => id.length > 0 && id.length <= 100).sort((left, right) => left < right ? -1 : left > right ? 1 : 0).slice(0, 20);
15608
15646
  const taskIdsJson = JSON.stringify(normalizedTaskIds);
15609
- database.prepare(`INSERT OR REPLACE INTO provider_cache (
15610
- provider, credential_scope, operation, request_hash, request_json,
15611
- response_json, row_count, source_cost_micros, task_ids_json,
15612
- fetched_at, expires_at
15613
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(key.provider, key.credentialScope, key.operation, requestHash(key, requestJson), requestJson, responseJson, input.rowCount, input.sourceCostMicros, taskIdsJson, now, expiresAt);
15614
- noteCacheWrite(Buffer.byteLength(requestJson) + Buffer.byteLength(responseJson) + Buffer.byteLength(taskIdsJson), database);
15647
+ const save = (database) => {
15648
+ database.prepare(`INSERT OR REPLACE INTO provider_cache (
15649
+ provider, credential_scope, operation, request_hash, request_json,
15650
+ response_json, row_count, source_cost_micros, task_ids_json,
15651
+ fetched_at, expires_at
15652
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(key.provider, key.credentialScope, key.operation, requestHash(key, requestJson), requestJson, responseJson, input.rowCount, input.sourceCostMicros, taskIdsJson, now, expiresAt);
15653
+ noteCacheWrite(Buffer.byteLength(requestJson) + Buffer.byteLength(responseJson) + Buffer.byteLength(taskIdsJson), database);
15654
+ };
15655
+ if (options.database) save(options.database);
15656
+ else writeToCache(save);
15615
15657
  return {
15616
15658
  data: input.data,
15617
15659
  storedAt: new Date(now).toISOString(),
@@ -16326,7 +16368,7 @@ async function loadInstalledProviderExtensions(options = {}) {
16326
16368
  const DEFAULT_MAX_REQUESTS = 8;
16327
16369
  const MAX_RESPONSE_BYTES$1 = 10 * 1024 * 1024;
16328
16370
  const MAX_REQUEST_BODY_BYTES = 64 * 1024;
16329
- const TIMEOUT_MS$1 = 15e3;
16371
+ const TIMEOUT_MS$2 = 15e3;
16330
16372
  function normalizeProviderExtensionAccount(provider, account) {
16331
16373
  const fields = provider.connection.fields.filter((field) => field.kind === "account");
16332
16374
  const allowed = new Set(fields.map((field) => field.id));
@@ -16373,7 +16415,7 @@ function runtimeForProvider(provider, options = {}) {
16373
16415
  },
16374
16416
  fetch: providerFetch,
16375
16417
  maxResponseBytes: MAX_RESPONSE_BYTES$1,
16376
- timeoutMs: TIMEOUT_MS$1,
16418
+ timeoutMs: TIMEOUT_MS$2,
16377
16419
  retry: (input.method ?? "GET") === "GET" ? "safe" : "never",
16378
16420
  schema: z.unknown()
16379
16421
  });
@@ -25992,7 +26034,7 @@ function reportId(input) {
25992
26034
  })).digest("hex").slice(0, 20)}`;
25993
26035
  }
25994
26036
  function cacheGet(id, now) {
25995
- const row = getDb().prepare("SELECT report_json FROM performance_reports WHERE id = ? AND expires_at > ?").get(id, now);
26037
+ const row = cacheDb().prepare("SELECT report_json FROM performance_reports WHERE id = ? AND expires_at > ?").get(id, now);
25996
26038
  if (!row?.report_json) return void 0;
25997
26039
  try {
25998
26040
  const report = JSON.parse(row.report_json);
@@ -26007,10 +26049,12 @@ function cacheSet(report, now) {
26007
26049
  raw: void 0
26008
26050
  };
26009
26051
  const reportJson = JSON.stringify(stored);
26010
- getDb().prepare(`INSERT OR REPLACE INTO performance_reports
26011
- (id, url, strategy, report_json, created_at, expires_at)
26012
- VALUES (?, ?, ?, ?, ?, ?)`).run(report.id, report.url, report.strategy, reportJson, Date.parse(report.generatedAt), now + CACHE_TTL_MS);
26013
- noteCacheWrite(Buffer.byteLength(reportJson));
26052
+ writeToCache((database) => {
26053
+ database.prepare(`INSERT OR REPLACE INTO performance_reports
26054
+ (id, url, strategy, report_json, created_at, expires_at)
26055
+ VALUES (?, ?, ?, ?, ?, ?)`).run(report.id, report.url, report.strategy, reportJson, Date.parse(report.generatedAt), now + CACHE_TTL_MS);
26056
+ noteCacheWrite(Buffer.byteLength(reportJson), database);
26057
+ });
26014
26058
  }
26015
26059
  async function fallbackReport(input) {
26016
26060
  const fetched = await fetchPage(input.url, {
@@ -28498,8 +28542,8 @@ const CLICKY_KEY_PREFIX = "x-clicky-";
28498
28542
  //#endregion
28499
28543
  //#region packages/core/src/commands/page-facts.ts
28500
28544
  const MAX_PAGES = 20;
28501
- const TIMEOUT_MS = 6e3;
28502
- const MAX_BYTES = 1e6;
28545
+ const TIMEOUT_MS$1 = 6e3;
28546
+ const MAX_BYTES$1 = 1e6;
28503
28547
  const clean = (value) => value?.trim().replace(/\s+/g, " ") || null;
28504
28548
  async function boundedText(response) {
28505
28549
  if (!response.body) return "";
@@ -28507,7 +28551,7 @@ async function boundedText(response) {
28507
28551
  const decoder = new TextDecoder();
28508
28552
  let text = "";
28509
28553
  let total = 0;
28510
- while (total < MAX_BYTES) {
28554
+ while (total < MAX_BYTES$1) {
28511
28555
  const { done, value } = await reader.read();
28512
28556
  if (done) return text + decoder.decode();
28513
28557
  total += value.byteLength;
@@ -28587,7 +28631,7 @@ async function facts(url) {
28587
28631
  "user-agent": SEO_CRAWLER_USER_AGENT,
28588
28632
  accept: "text/html"
28589
28633
  },
28590
- signal: AbortSignal.timeout(TIMEOUT_MS)
28634
+ signal: AbortSignal.timeout(TIMEOUT_MS$1)
28591
28635
  });
28592
28636
  out.status = response.status;
28593
28637
  const location = response.headers.get("location");
@@ -30564,6 +30608,94 @@ async function resetSeoData() {
30564
30608
  });
30565
30609
  }
30566
30610
  //#endregion
30611
+ //#region packages/core/src/update-notice.ts
30612
+ const REGISTRY_URL = "https://registry.npmjs.org/seo/latest";
30613
+ const CHECK_EVERY_MS = 864e5;
30614
+ const TIMEOUT_MS = 2e3;
30615
+ const MAX_BYTES = 65536;
30616
+ let checking = false;
30617
+ function runByNpx(env, cliPath) {
30618
+ if (env.npm_command === "exec" || /npx/i.test(env.npm_execpath ?? "")) return true;
30619
+ if (!cliPath) return false;
30620
+ let path = cliPath;
30621
+ try {
30622
+ path = realpathSync(cliPath);
30623
+ } catch {}
30624
+ return /[\\/](?:_npx|dlx)[\\/]/.test(path);
30625
+ }
30626
+ function isNewerVersion(current, latest) {
30627
+ const parse = (value) => value.replace(/^v/, "").split("-")[0]?.split(".").map((part) => Number.parseInt(part, 10)) ?? [];
30628
+ const currentParts = parse(current);
30629
+ const latestParts = parse(latest);
30630
+ for (let index = 0; index < 3; index += 1) {
30631
+ const currentPart = currentParts[index] ?? 0;
30632
+ const latestPart = latestParts[index] ?? 0;
30633
+ if (!Number.isFinite(currentPart) || !Number.isFinite(latestPart)) return false;
30634
+ if (latestPart > currentPart) return true;
30635
+ if (latestPart < currentPart) return false;
30636
+ }
30637
+ return false;
30638
+ }
30639
+ function isLatestCache(value) {
30640
+ if (!value || typeof value !== "object") return false;
30641
+ const cache = value;
30642
+ return typeof cache.checkedAt === "number" && typeof cache.latest === "string" && /^\d+\.\d+\.\d+$/.test(cache.latest);
30643
+ }
30644
+ function checkRegistry(cacheFile, now) {
30645
+ if (checking) return;
30646
+ checking = true;
30647
+ const done = () => {
30648
+ checking = false;
30649
+ };
30650
+ const req = request(REGISTRY_URL, { headers: { accept: "application/json" } });
30651
+ const timer = setTimeout(() => req.destroy(), TIMEOUT_MS);
30652
+ timer.unref();
30653
+ req.on("socket", (socket) => socket.unref());
30654
+ req.on("error", () => void 0);
30655
+ req.on("close", () => {
30656
+ clearTimeout(timer);
30657
+ done();
30658
+ });
30659
+ req.on("response", (response) => {
30660
+ const chunks = [];
30661
+ let size = 0;
30662
+ response.on("error", () => void 0);
30663
+ response.on("data", (chunk) => {
30664
+ size += chunk.length;
30665
+ if (size > MAX_BYTES) req.destroy();
30666
+ else chunks.push(chunk);
30667
+ });
30668
+ response.on("end", () => {
30669
+ if (response.statusCode !== 200 || size > MAX_BYTES) return;
30670
+ readJson(new Response(Buffer.concat(chunks)), "The npm registry").then((body) => {
30671
+ const cache = {
30672
+ checkedAt: now,
30673
+ latest: body.version
30674
+ };
30675
+ if (isLatestCache(cache)) writeJsonAtomic(cacheFile, cache, 384);
30676
+ }).catch(() => void 0);
30677
+ });
30678
+ });
30679
+ req.end();
30680
+ }
30681
+ function updateNotice(options = {}) {
30682
+ try {
30683
+ const env = options.env ?? process.env;
30684
+ const argv = options.argv ?? process.argv;
30685
+ if (env.NO_UPDATE_NOTIFIER || argv.includes("--no-update-notifier") || isTelemetryCi(env)) return;
30686
+ const cacheFile = options.cacheFile ?? join(getSeoCliPaths().cacheDir, "latest-version.json");
30687
+ const now = (options.now ?? /* @__PURE__ */ new Date()).getTime();
30688
+ const stored = readJsonFile(cacheFile);
30689
+ const cache = isLatestCache(stored) ? stored : void 0;
30690
+ if (!cache || now - cache.checkedAt >= CHECK_EVERY_MS) checkRegistry(cacheFile, now);
30691
+ const current = options.version ?? SEO_VERSION;
30692
+ if (!cache || !isNewerVersion(current, cache.latest)) return void 0;
30693
+ return runByNpx(env, options.cliPath ?? argv[1]) ? `seo ${cache.latest} is out (you have ${current}). Run npx -y seo@latest; in an MCP config use seo@latest, then restart the client.` : `seo ${cache.latest} is out (you have ${current}). Update with: npm i -g seo`;
30694
+ } catch {
30695
+ return;
30696
+ }
30697
+ }
30698
+ //#endregion
30567
30699
  //#region packages/core/src/utils/time.ts
30568
30700
  function parseOlderThan(input) {
30569
30701
  if (!input) return;
@@ -30598,6 +30730,6 @@ function isoDate(daysAgo = 0) {
30598
30730
  return date.toISOString().slice(0, 10);
30599
30731
  }
30600
30732
  //#endregion
30601
- 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, cannibalImportReport, cannibalReport, cannibalReportWith, changeWindow, checkDatabaseReadiness, classifyTelemetryFailure, clearCache, cloudAccountFor, cloudBing, cloudCredentials, cloudGoogleEmails, cloudGoogleToken, cloudKeys, cloudLinked, cloudLogout, 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, 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, updatePostmortemCsvFiles, updatePostmortemWorkflow, validateResearchImportColumnSources, verifyAnalyticsProvider, verifyProviderExtension, verifyQueryContent, verifyQueryContentWith, withAgentReportContract, withRankingHistory, workflowPresentation, writeAhrefsApiKey, writeBingApiKey, writeClickySiteKey, writeConfig, writeDataForSeoCredentials, writeInstalledProviderPackages, writeOauthClient, writeProviderExtensionAccount, writeProviderExtensionCredentials, writeProviderSecret, writeTokens, xRobotsDirectives };
30733
+ 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, 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, validateResearchImportColumnSources, verifyAnalyticsProvider, verifyProviderExtension, verifyQueryContent, verifyQueryContentWith, withAgentReportContract, withRankingHistory, workflowPresentation, writeAhrefsApiKey, writeBingApiKey, writeClickySiteKey, writeConfig, writeDataForSeoCredentials, writeInstalledProviderPackages, writeOauthClient, writeProviderExtensionAccount, writeProviderExtensionCredentials, writeProviderSecret, writeToCache, writeTokens, xRobotsDirectives };
30602
30734
 
30603
30735
  //# sourceMappingURL=index.js.map