@gscdump/analysis 0.17.1 → 0.17.3
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.mts +34 -1
- package/dist/index.mjs +37 -1
- package/package.json +4 -4
package/dist/index.d.mts
CHANGED
|
@@ -433,6 +433,39 @@ interface DryRunReportResult {
|
|
|
433
433
|
* Useful right now only as an "is this report wired up correctly?" check.
|
|
434
434
|
*/
|
|
435
435
|
declare function dryRunReport<P extends ReportParams = ReportParams>(report: DefinedReport$1<P>, ctx: ReportContext$1<P>): Promise<DryRunReportResult>;
|
|
436
|
+
interface SitemapHealthRow {
|
|
437
|
+
path: string;
|
|
438
|
+
errors: number;
|
|
439
|
+
warnings: number;
|
|
440
|
+
}
|
|
441
|
+
interface SitemapHealthInput extends SitemapHealthRow {
|
|
442
|
+
isPending?: boolean;
|
|
443
|
+
type?: string;
|
|
444
|
+
contents?: Array<{
|
|
445
|
+
submitted: number | string;
|
|
446
|
+
}>;
|
|
447
|
+
}
|
|
448
|
+
interface SitemapDelta {
|
|
449
|
+
path: string;
|
|
450
|
+
errorDelta: number;
|
|
451
|
+
warningDelta: number;
|
|
452
|
+
newErrors: number;
|
|
453
|
+
newWarnings: number;
|
|
454
|
+
}
|
|
455
|
+
interface SitemapHealthTotals {
|
|
456
|
+
totalSitemaps: number;
|
|
457
|
+
totalUrls: number;
|
|
458
|
+
totalErrors: number;
|
|
459
|
+
totalWarnings: number;
|
|
460
|
+
pendingCount: number;
|
|
461
|
+
indexSitemaps: number;
|
|
462
|
+
}
|
|
463
|
+
interface SitemapHealthDiff {
|
|
464
|
+
changed: boolean;
|
|
465
|
+
deltas: SitemapDelta[];
|
|
466
|
+
totals: SitemapHealthTotals;
|
|
467
|
+
}
|
|
468
|
+
declare function diffSitemapHealth(prev: readonly SitemapHealthRow[], curr: readonly SitemapHealthInput[]): SitemapHealthDiff;
|
|
436
469
|
interface SyncedRange {
|
|
437
470
|
oldestDateSynced: string | null;
|
|
438
471
|
newestDateSynced: string | null;
|
|
@@ -454,4 +487,4 @@ interface InMemoryQuerySourceOptions {
|
|
|
454
487
|
}
|
|
455
488
|
declare function createInMemoryQuerySource(options: InMemoryQuerySourceOptions): AnalysisQuerySource$1;
|
|
456
489
|
declare const SQL_ANALYZERS: readonly Analyzer$1[];
|
|
457
|
-
export { type ActionPriorityResult, type ActionPrioritySourceState, type ActionPrioritySourceStatus, type ActionSource, type AnalysisParams, type AnalysisPeriod, type AnalysisQuerySource, type AnalysisResult, type AnalysisSourceKind, type AnalysisTool, type Analyzer, AnalyzerCapabilityError, type AnalyzerRegistry, type AnalyzerRegistryInit, type AnalyzerRunner, type AnalyzerVariants, type BaseMetrics, type BrandSegmentationOptions, type BrandSegmentationResult, type BrandSummary, type BrowserAnalyzeOptions, type CannibalizationCompetitor, type CannibalizationEvent, type CannibalizationOptions, type CannibalizationPage, type CannibalizationResult, type CannibalizationSortMetric, type ClusterType, type ClusteringOptions, type ClusteringResult, type ComparisonMode, type ComparisonPeriod, type CompositeSourceOptions, type ConcentrationInput, type ConcentrationItem, type ConcentrationOptions, type ConcentrationResult, type ConcentrationRiskLevel, DEFAULT_PRIORITY_SOURCES, type DateRow, type DecayInput, type DecayOptions, type DecayResult, type DecaySeriesPoint, type DecaySortMetric, type DefineAnalyzerOptions, type DefineReportOptions, type DefinedAnalyzer, type DefinedReport, type DryRunReportResult, ENGINE_QUERY_CAPABILITIES, type Effort, type EngineQuerySourceOptions, type ExecuteSqlOptions, type FileSet, type FormatReportOptions, IN_MEMORY_DEFAULT_CAPABILITIES, type InMemoryQuerySourceOptions, type KeywordCluster, type KeywordRow, type MonthlyData, type MoverData, type MoversInput, type MoversOptions, type MoversResult, type MoversSortMetric, type OpportunityResult, type PadTimeseriesOptions, type PageRow, type Plan, type PriorityAction, type QueryPageRow, type QueryRow, REPORTS, ROW_ANALYZERS, type ReduceContext, type ReduceCtx, type Reducer, type ReportAction, type ReportContext, type ReportFinding, type ReportPlanStep, type ReportResult, type ReportSection, type RequiredCapability, type ResolveWindowOptions, type ResolvedWindow, type RowQueriesPlan, type RunReportOptions, SQL_ANALYZERS, type SeasonalityMetric, type SeasonalityOptions, type SeasonalityResult, type SortOrder, type SourceCapabilities, type SqlExtraQuery, type SqlPlan, type SqlPlanSpec, type StrikingDistanceInputRow, type StrikingDistanceResult, type TypedQuery, type TypedRowQuery, type WindowPreset, type ZeroClickResult, analyzeBrandSegmentation, analyzeCannibalization, analyzeClustering, analyzeConcentration, analyzeDecay, analyzeInBrowser, analyzeKeywordConcentration, analyzeMovers, analyzePageConcentration, analyzeSeasonality, comparisonOf, createAnalyzerRegistry, createCompositeSource, createEngineQuerySource, createInMemoryQuerySource, createSorter, defaultAnalyzerRegistry, defaultReportRegistry, defineAnalyzer, dryRunReport, formatReport, mergePriorityActions, normalizePriorityActions, normalizeQuery, num, padTimeseries, periodOf, queryComparisonRows, queryRows, resolveWindow, rewriteForTableSource, runAnalyzerFromSource, runAnalyzerWithEngine, runReport, scorePriorityActions, typedQuery, windowToComparisonPeriod, windowToPeriod };
|
|
490
|
+
export { type ActionPriorityResult, type ActionPrioritySourceState, type ActionPrioritySourceStatus, type ActionSource, type AnalysisParams, type AnalysisPeriod, type AnalysisQuerySource, type AnalysisResult, type AnalysisSourceKind, type AnalysisTool, type Analyzer, AnalyzerCapabilityError, type AnalyzerRegistry, type AnalyzerRegistryInit, type AnalyzerRunner, type AnalyzerVariants, type BaseMetrics, type BrandSegmentationOptions, type BrandSegmentationResult, type BrandSummary, type BrowserAnalyzeOptions, type CannibalizationCompetitor, type CannibalizationEvent, type CannibalizationOptions, type CannibalizationPage, type CannibalizationResult, type CannibalizationSortMetric, type ClusterType, type ClusteringOptions, type ClusteringResult, type ComparisonMode, type ComparisonPeriod, type CompositeSourceOptions, type ConcentrationInput, type ConcentrationItem, type ConcentrationOptions, type ConcentrationResult, type ConcentrationRiskLevel, DEFAULT_PRIORITY_SOURCES, type DateRow, type DecayInput, type DecayOptions, type DecayResult, type DecaySeriesPoint, type DecaySortMetric, type DefineAnalyzerOptions, type DefineReportOptions, type DefinedAnalyzer, type DefinedReport, type DryRunReportResult, ENGINE_QUERY_CAPABILITIES, type Effort, type EngineQuerySourceOptions, type ExecuteSqlOptions, type FileSet, type FormatReportOptions, IN_MEMORY_DEFAULT_CAPABILITIES, type InMemoryQuerySourceOptions, type KeywordCluster, type KeywordRow, type MonthlyData, type MoverData, type MoversInput, type MoversOptions, type MoversResult, type MoversSortMetric, type OpportunityResult, type PadTimeseriesOptions, type PageRow, type Plan, type PriorityAction, type QueryPageRow, type QueryRow, REPORTS, ROW_ANALYZERS, type ReduceContext, type ReduceCtx, type Reducer, type ReportAction, type ReportContext, type ReportFinding, type ReportPlanStep, type ReportResult, type ReportSection, type RequiredCapability, type ResolveWindowOptions, type ResolvedWindow, type RowQueriesPlan, type RunReportOptions, SQL_ANALYZERS, type SeasonalityMetric, type SeasonalityOptions, type SeasonalityResult, type SitemapDelta, type SitemapHealthDiff, type SitemapHealthInput, type SitemapHealthRow, type SitemapHealthTotals, type SortOrder, type SourceCapabilities, type SqlExtraQuery, type SqlPlan, type SqlPlanSpec, type StrikingDistanceInputRow, type StrikingDistanceResult, type TypedQuery, type TypedRowQuery, type WindowPreset, type ZeroClickResult, analyzeBrandSegmentation, analyzeCannibalization, analyzeClustering, analyzeConcentration, analyzeDecay, analyzeInBrowser, analyzeKeywordConcentration, analyzeMovers, analyzePageConcentration, analyzeSeasonality, comparisonOf, createAnalyzerRegistry, createCompositeSource, createEngineQuerySource, createInMemoryQuerySource, createSorter, defaultAnalyzerRegistry, defaultReportRegistry, defineAnalyzer, diffSitemapHealth, dryRunReport, formatReport, mergePriorityActions, normalizePriorityActions, normalizeQuery, num, padTimeseries, periodOf, queryComparisonRows, queryRows, resolveWindow, rewriteForTableSource, runAnalyzerFromSource, runAnalyzerWithEngine, runReport, scorePriorityActions, typedQuery, windowToComparisonPeriod, windowToPeriod };
|
package/dist/index.mjs
CHANGED
|
@@ -6702,6 +6702,42 @@ async function dryRunReport(report, ctx) {
|
|
|
6702
6702
|
}
|
|
6703
6703
|
};
|
|
6704
6704
|
}
|
|
6705
|
+
function urlCountOf(sitemap) {
|
|
6706
|
+
return sitemap.contents?.reduce((sum, c) => sum + (Number(c.submitted) || 0), 0) || 0;
|
|
6707
|
+
}
|
|
6708
|
+
function diffSitemapHealth(prev, curr) {
|
|
6709
|
+
const previousByPath = new Map(prev.map((r) => [r.path, r]));
|
|
6710
|
+
const deltas = [];
|
|
6711
|
+
let changed = false;
|
|
6712
|
+
for (const sitemap of curr) {
|
|
6713
|
+
const prior = previousByPath.get(sitemap.path);
|
|
6714
|
+
const errorDelta = prior ? sitemap.errors - (prior.errors || 0) : 0;
|
|
6715
|
+
const warningDelta = prior ? sitemap.warnings - (prior.warnings || 0) : 0;
|
|
6716
|
+
if (errorDelta !== 0 || warningDelta !== 0) {
|
|
6717
|
+
changed = true;
|
|
6718
|
+
deltas.push({
|
|
6719
|
+
path: sitemap.path,
|
|
6720
|
+
errorDelta,
|
|
6721
|
+
warningDelta,
|
|
6722
|
+
newErrors: sitemap.errors,
|
|
6723
|
+
newWarnings: sitemap.warnings
|
|
6724
|
+
});
|
|
6725
|
+
}
|
|
6726
|
+
}
|
|
6727
|
+
const totals = {
|
|
6728
|
+
totalSitemaps: curr.length,
|
|
6729
|
+
totalUrls: curr.reduce((sum, s) => sum + urlCountOf(s), 0),
|
|
6730
|
+
totalErrors: curr.reduce((sum, s) => sum + s.errors, 0),
|
|
6731
|
+
totalWarnings: curr.reduce((sum, s) => sum + s.warnings, 0),
|
|
6732
|
+
pendingCount: curr.filter((s) => s.isPending).length,
|
|
6733
|
+
indexSitemaps: curr.filter((s) => s.type === "sitemapIndex").length
|
|
6734
|
+
};
|
|
6735
|
+
return {
|
|
6736
|
+
changed,
|
|
6737
|
+
deltas,
|
|
6738
|
+
totals
|
|
6739
|
+
};
|
|
6740
|
+
}
|
|
6705
6741
|
function shouldRouteToLive(state, site) {
|
|
6706
6742
|
if (!canProxyToGsc(state)) return false;
|
|
6707
6743
|
const { startDate, endDate } = extractDateRange(state.filter);
|
|
@@ -6741,4 +6777,4 @@ function createInMemoryQuerySource(options) {
|
|
|
6741
6777
|
};
|
|
6742
6778
|
}
|
|
6743
6779
|
const SQL_ANALYZERS = ALL_ANALYZERS.flatMap((d) => d.sql ? [d.sql] : []);
|
|
6744
|
-
export { AnalyzerCapabilityError, DEFAULT_PRIORITY_SOURCES, ENGINE_QUERY_CAPABILITIES, IN_MEMORY_DEFAULT_CAPABILITIES, REPORTS, ROW_ANALYZERS, SQL_ANALYZERS, analyzeBrandSegmentation, analyzeCannibalization, analyzeClustering, analyzeConcentration, analyzeDecay, analyzeInBrowser, analyzeKeywordConcentration, analyzeMovers, analyzePageConcentration, analyzeSeasonality, comparisonOf, createAnalyzerRegistry, createCompositeSource, createEngineQuerySource, createInMemoryQuerySource, createSorter, defaultAnalyzerRegistry, defaultReportRegistry, defineAnalyzer, dryRunReport, formatReport, mergePriorityActions, normalizePriorityActions, normalizeQuery, num, padTimeseries, periodOf, queryComparisonRows, queryRows, resolveWindow, rewriteForTableSource, runAnalyzerFromSource, runAnalyzerWithEngine, runReport, scorePriorityActions, typedQuery, windowToComparisonPeriod, windowToPeriod };
|
|
6780
|
+
export { AnalyzerCapabilityError, DEFAULT_PRIORITY_SOURCES, ENGINE_QUERY_CAPABILITIES, IN_MEMORY_DEFAULT_CAPABILITIES, REPORTS, ROW_ANALYZERS, SQL_ANALYZERS, analyzeBrandSegmentation, analyzeCannibalization, analyzeClustering, analyzeConcentration, analyzeDecay, analyzeInBrowser, analyzeKeywordConcentration, analyzeMovers, analyzePageConcentration, analyzeSeasonality, comparisonOf, createAnalyzerRegistry, createCompositeSource, createEngineQuerySource, createInMemoryQuerySource, createSorter, defaultAnalyzerRegistry, defaultReportRegistry, defineAnalyzer, diffSitemapHealth, dryRunReport, formatReport, mergePriorityActions, normalizePriorityActions, normalizeQuery, num, padTimeseries, periodOf, queryComparisonRows, queryRows, resolveWindow, rewriteForTableSource, runAnalyzerFromSource, runAnalyzerWithEngine, runReport, scorePriorityActions, typedQuery, windowToComparisonPeriod, windowToPeriod };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gscdump/analysis",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.17.
|
|
4
|
+
"version": "0.17.3",
|
|
5
5
|
"description": "GSC analyzers — striking-distance, opportunity, movers, decay, brand, clustering, concentration, seasonality. Pure row-based + DuckDB-native.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Harlan Wilton",
|
|
@@ -75,9 +75,9 @@
|
|
|
75
75
|
},
|
|
76
76
|
"dependencies": {
|
|
77
77
|
"drizzle-orm": "^0.45.2",
|
|
78
|
-
"@gscdump/engine": "0.17.
|
|
79
|
-
"@gscdump/engine-gsc-api": "0.17.
|
|
80
|
-
"gscdump": "0.17.
|
|
78
|
+
"@gscdump/engine": "0.17.3",
|
|
79
|
+
"@gscdump/engine-gsc-api": "0.17.3",
|
|
80
|
+
"gscdump": "0.17.3"
|
|
81
81
|
},
|
|
82
82
|
"devDependencies": {
|
|
83
83
|
"vitest": "^4.1.6"
|