gscdump 0.11.4 → 0.12.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.
@@ -1,14 +1,4 @@
1
- /**
2
- * Canonical cross-package contracts. Type-only — zero runtime cost.
3
- *
4
- * Imported by @gscdump/engine, @gscdump/analysis, @gscdump/cli, @gscdump/mcp,
5
- * @gscdump/cloud as the single source of truth for cross-cutting types so
6
- * schema identifiers, tenant shape, and analyzer IO can't drift across
7
- * packages.
8
- */
9
- /** Logical table / dataset identifier. Canonical across query builder + storage engine. */
10
1
  type TableName = 'pages' | 'keywords' | 'countries' | 'devices' | 'page_keywords' | 'search_appearance';
11
- /** Untyped row shape crossing storage/query boundaries. */
12
2
  type Row = Record<string, unknown>;
13
3
  type ColumnType = 'DATE' | 'VARCHAR' | 'INTEGER' | 'BIGINT' | 'DOUBLE';
14
4
  interface ColumnDef {
@@ -20,24 +10,12 @@ interface TableSchema {
20
10
  name: TableName;
21
11
  columns: ColumnDef[];
22
12
  sortKey: string[];
23
- /**
24
- * Monotonically increasing version. Tagged onto every manifest entry written
25
- * for this table; bump when columns are added/removed/retyped so readers can
26
- * detect stale on-disk data.
27
- */
28
13
  version: number;
29
14
  }
30
- /** Tenant identity for multi-user / multi-site storage. */
31
15
  interface TenantCtx {
32
16
  userId: string;
33
17
  siteId?: string;
34
18
  }
35
- /**
36
- * Dimensions accepted by the Google Search Console Search Analytics API.
37
- *
38
- * This intentionally excludes package-only logical dimensions such as
39
- * `queryCanonical`; host apps must route those through an engine-backed path.
40
- */
41
19
  type GscSearchAnalyticsDimension = 'page' | 'query' | 'country' | 'device' | 'date' | 'searchAppearance';
42
20
  type GscSearchAnalyticsFilterOperator = 'equals' | 'notEquals' | 'contains' | 'notContains' | 'includingRegex' | 'excludingRegex';
43
21
  interface GscSearchAnalyticsFilter {
@@ -50,13 +28,6 @@ interface GscSearchAnalyticsFilterGroup {
50
28
  filters: GscSearchAnalyticsFilter[];
51
29
  }
52
30
  type GscSearchType = 'web' | 'image' | 'video' | 'news' | 'discover' | 'googleNews';
53
- /**
54
- * Canonical host-facing Search Analytics request body.
55
- *
56
- * Google's generated client type also has deprecated/alternate fields. The
57
- * gscdump query builder emits `searchType`, so apps should forward that field
58
- * unchanged rather than translating it to `type`.
59
- */
60
31
  interface GscSearchAnalyticsRequest {
61
32
  startDate: string;
62
33
  endDate: string;
package/dist/index.d.mts CHANGED
@@ -12,12 +12,6 @@ declare function runSequentialBatch<I, R>(items: I[], operation: (item: I, index
12
12
  concurrency?: number;
13
13
  onProgress?: (result: R, index: number, total: number) => void;
14
14
  }): Promise<R[]>;
15
- /**
16
- * Dimensions accepted by the Google Search Console Search Analytics API.
17
- *
18
- * This intentionally excludes package-only logical dimensions such as
19
- * `queryCanonical`; host apps must route those through an engine-backed path.
20
- */
21
15
  type GscSearchAnalyticsDimension = 'page' | 'query' | 'country' | 'device' | 'date' | 'searchAppearance';
22
16
  type GscSearchAnalyticsFilterOperator = 'equals' | 'notEquals' | 'contains' | 'notContains' | 'includingRegex' | 'excludingRegex';
23
17
  interface GscSearchAnalyticsFilter {
@@ -30,13 +24,6 @@ interface GscSearchAnalyticsFilterGroup {
30
24
  filters: GscSearchAnalyticsFilter[];
31
25
  }
32
26
  type GscSearchType = 'web' | 'image' | 'video' | 'news' | 'discover' | 'googleNews';
33
- /**
34
- * Canonical host-facing Search Analytics request body.
35
- *
36
- * Google's generated client type also has deprecated/alternate fields. The
37
- * gscdump query builder emits `searchType`, so apps should forward that field
38
- * unchanged rather than translating it to `type`.
39
- */
40
27
  interface GscSearchAnalyticsRequest {
41
28
  startDate: string;
42
29
  endDate: string;
@@ -1,20 +1,5 @@
1
1
  import _dayjs, { Dayjs } from "dayjs";
2
- /**
3
- * Canonical cross-package contracts. Type-only — zero runtime cost.
4
- *
5
- * Imported by @gscdump/engine, @gscdump/analysis, @gscdump/cli, @gscdump/mcp,
6
- * @gscdump/cloud as the single source of truth for cross-cutting types so
7
- * schema identifiers, tenant shape, and analyzer IO can't drift across
8
- * packages.
9
- */
10
- /** Logical table / dataset identifier. Canonical across query builder + storage engine. */
11
2
  type TableName = 'pages' | 'keywords' | 'countries' | 'devices' | 'page_keywords' | 'search_appearance';
12
- /**
13
- * Dimensions accepted by the Google Search Console Search Analytics API.
14
- *
15
- * This intentionally excludes package-only logical dimensions such as
16
- * `queryCanonical`; host apps must route those through an engine-backed path.
17
- */
18
3
  type GscSearchAnalyticsDimension = 'page' | 'query' | 'country' | 'device' | 'date' | 'searchAppearance';
19
4
  type GscSearchAnalyticsFilterOperator = 'equals' | 'notEquals' | 'contains' | 'notContains' | 'includingRegex' | 'excludingRegex';
20
5
  interface GscSearchAnalyticsFilter {
@@ -27,13 +12,6 @@ interface GscSearchAnalyticsFilterGroup {
27
12
  filters: GscSearchAnalyticsFilter[];
28
13
  }
29
14
  type GscSearchType = 'web' | 'image' | 'video' | 'news' | 'discover' | 'googleNews';
30
- /**
31
- * Canonical host-facing Search Analytics request body.
32
- *
33
- * Google's generated client type also has deprecated/alternate fields. The
34
- * gscdump query builder emits `searchType`, so apps should forward that field
35
- * unchanged rather than translating it to `type`.
36
- */
37
15
  interface GscSearchAnalyticsRequest {
38
16
  startDate: string;
39
17
  endDate: string;
@@ -1,12 +1,3 @@
1
- /**
2
- * Canonical cross-package contracts. Type-only — zero runtime cost.
3
- *
4
- * Imported by @gscdump/engine, @gscdump/analysis, @gscdump/cli, @gscdump/mcp,
5
- * @gscdump/cloud as the single source of truth for cross-cutting types so
6
- * schema identifiers, tenant shape, and analyzer IO can't drift across
7
- * packages.
8
- */
9
- /** Logical table / dataset identifier. Canonical across query builder + storage engine. */
10
1
  type TableName = 'pages' | 'keywords' | 'countries' | 'devices' | 'page_keywords' | 'search_appearance';
11
2
  declare const _default: {
12
3
  name: string;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "gscdump",
3
3
  "type": "module",
4
- "version": "0.11.4",
4
+ "version": "0.12.0",
5
5
  "description": "Google Search Console API wrapper with typed query builder, streaming pagination, and SEO analysis functions",
6
6
  "author": {
7
7
  "name": "Harlan Wilton",
@@ -107,7 +107,8 @@
107
107
  "dayjs": "^1.11.20",
108
108
  "defu": "^6.1.7",
109
109
  "ofetch": "^1.5.1",
110
- "ufo": "^1.6.4"
110
+ "ufo": "^1.6.4",
111
+ "@gscdump/contracts": "0.12.0"
111
112
  },
112
113
  "devDependencies": {
113
114
  "@googleapis/indexing": "^6.0.1",