gscdump 0.12.0 → 0.13.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.mts +2 -0
- package/dist/query/index.d.mts +3 -0
- package/dist/query/index.mjs +13 -0
- package/dist/query/plan.d.mts +2 -0
- package/dist/query/plan.mjs +7 -0
- package/package.json +2 -2
package/dist/index.d.mts
CHANGED
|
@@ -106,6 +106,7 @@ interface BuilderState {
|
|
|
106
106
|
dimensions: Dimension[];
|
|
107
107
|
metrics?: Metric[];
|
|
108
108
|
filter?: Filter<any>;
|
|
109
|
+
prefilter?: Filter<any>;
|
|
109
110
|
orderBy?: {
|
|
110
111
|
column: Metric | 'date';
|
|
111
112
|
dir: 'asc' | 'desc';
|
|
@@ -122,6 +123,7 @@ interface GSCQueryBuilder<D extends Dimension[] = [], C = object> {
|
|
|
122
123
|
<T extends SelectableColumn[]>(...cols: T): GSCQueryBuilder<ExtractDimensions<T> & Dimension[], C>;
|
|
123
124
|
};
|
|
124
125
|
where: <F extends Filter<any>>(filter: F) => GSCQueryBuilder<D, C & F['_constraints']>;
|
|
126
|
+
prefilter: <F extends Filter<any>>(filter: F) => GSCQueryBuilder<D, C>;
|
|
125
127
|
orderBy: (col: OrderableColumn, dir: 'asc' | 'desc') => GSCQueryBuilder<D, C>;
|
|
126
128
|
limit: (n: number) => GSCQueryBuilder<D, C>;
|
|
127
129
|
offset: (n: number) => GSCQueryBuilder<D, C>;
|
package/dist/query/index.d.mts
CHANGED
|
@@ -103,6 +103,7 @@ interface BuilderState {
|
|
|
103
103
|
dimensions: Dimension[];
|
|
104
104
|
metrics?: Metric[];
|
|
105
105
|
filter?: Filter<any>;
|
|
106
|
+
prefilter?: Filter<any>;
|
|
106
107
|
orderBy?: {
|
|
107
108
|
column: Metric | 'date';
|
|
108
109
|
dir: 'asc' | 'desc';
|
|
@@ -131,6 +132,7 @@ interface GSCQueryBuilder<D extends Dimension[] = [], C = object> {
|
|
|
131
132
|
<T extends SelectableColumn[]>(...cols: T): GSCQueryBuilder<ExtractDimensions<T> & Dimension[], C>;
|
|
132
133
|
};
|
|
133
134
|
where: <F extends Filter<any>>(filter: F) => GSCQueryBuilder<D, C & F['_constraints']>;
|
|
135
|
+
prefilter: <F extends Filter<any>>(filter: F) => GSCQueryBuilder<D, C>;
|
|
134
136
|
orderBy: (col: OrderableColumn, dir: 'asc' | 'desc') => GSCQueryBuilder<D, C>;
|
|
135
137
|
limit: (n: number) => GSCQueryBuilder<D, C>;
|
|
136
138
|
offset: (n: number) => GSCQueryBuilder<D, C>;
|
|
@@ -215,6 +217,7 @@ interface LogicalQueryPlan {
|
|
|
215
217
|
dimensionFilters: LogicalDimensionFilter[];
|
|
216
218
|
dimensionFilterTree?: LogicalFilterNode;
|
|
217
219
|
metricFilters: LogicalMetricFilter[];
|
|
220
|
+
prefilters: LogicalMetricFilter[];
|
|
218
221
|
specialFilters: {
|
|
219
222
|
topLevel: boolean;
|
|
220
223
|
};
|
package/dist/query/index.mjs
CHANGED
|
@@ -258,6 +258,12 @@ function createBuilder(state) {
|
|
|
258
258
|
filter
|
|
259
259
|
});
|
|
260
260
|
},
|
|
261
|
+
prefilter(filter) {
|
|
262
|
+
return createBuilder({
|
|
263
|
+
...state,
|
|
264
|
+
prefilter: filter
|
|
265
|
+
});
|
|
266
|
+
},
|
|
261
267
|
orderBy(col, dir) {
|
|
262
268
|
const column = isMetricColumn(col) ? col.metric : col.dimension;
|
|
263
269
|
return createBuilder({
|
|
@@ -1995,6 +2001,7 @@ function buildLogicalPlan(state, capabilities = {}) {
|
|
|
1995
2001
|
const allFilters = collectInternalFilters(normalizedFilter);
|
|
1996
2002
|
const metricFilters = extractMetricFilters(normalizedFilter);
|
|
1997
2003
|
const specialFilters = extractSpecialOperatorFilters(normalizedFilter);
|
|
2004
|
+
const prefilters = extractMetricFilters(normalizeFilter(state.prefilter));
|
|
1998
2005
|
const queryParams = {};
|
|
1999
2006
|
const dimensionFilters = [];
|
|
2000
2007
|
for (const filter of allFilters) {
|
|
@@ -2039,6 +2046,12 @@ function buildLogicalPlan(state, capabilities = {}) {
|
|
|
2039
2046
|
expression: Number(filter.expression),
|
|
2040
2047
|
expression2: filter.expression2 == null ? void 0 : Number(filter.expression2)
|
|
2041
2048
|
})),
|
|
2049
|
+
prefilters: prefilters.map((filter) => ({
|
|
2050
|
+
metric: filter.dimension,
|
|
2051
|
+
operator: filter.operator,
|
|
2052
|
+
expression: Number(filter.expression),
|
|
2053
|
+
expression2: filter.expression2 == null ? void 0 : Number(filter.expression2)
|
|
2054
|
+
})),
|
|
2042
2055
|
specialFilters: { topLevel: specialFilters.some((filter) => filter.operator === "topLevel") },
|
|
2043
2056
|
queryParams,
|
|
2044
2057
|
orderBy: state.orderBy,
|
package/dist/query/plan.d.mts
CHANGED
|
@@ -58,6 +58,7 @@ interface BuilderState {
|
|
|
58
58
|
dimensions: Dimension[];
|
|
59
59
|
metrics?: Metric[];
|
|
60
60
|
filter?: Filter<any>;
|
|
61
|
+
prefilter?: Filter<any>;
|
|
61
62
|
orderBy?: {
|
|
62
63
|
column: Metric | 'date';
|
|
63
64
|
dir: 'asc' | 'desc';
|
|
@@ -108,6 +109,7 @@ interface LogicalQueryPlan {
|
|
|
108
109
|
dimensionFilters: LogicalDimensionFilter[];
|
|
109
110
|
dimensionFilterTree?: LogicalFilterNode;
|
|
110
111
|
metricFilters: LogicalMetricFilter[];
|
|
112
|
+
prefilters: LogicalMetricFilter[];
|
|
111
113
|
specialFilters: {
|
|
112
114
|
topLevel: boolean;
|
|
113
115
|
};
|
package/dist/query/plan.mjs
CHANGED
|
@@ -231,6 +231,7 @@ function buildLogicalPlan(state, capabilities = {}) {
|
|
|
231
231
|
const allFilters = collectInternalFilters(normalizedFilter);
|
|
232
232
|
const metricFilters = extractMetricFilters(normalizedFilter);
|
|
233
233
|
const specialFilters = extractSpecialOperatorFilters(normalizedFilter);
|
|
234
|
+
const prefilters = extractMetricFilters(normalizeFilter(state.prefilter));
|
|
234
235
|
const queryParams = {};
|
|
235
236
|
const dimensionFilters = [];
|
|
236
237
|
for (const filter of allFilters) {
|
|
@@ -275,6 +276,12 @@ function buildLogicalPlan(state, capabilities = {}) {
|
|
|
275
276
|
expression: Number(filter.expression),
|
|
276
277
|
expression2: filter.expression2 == null ? void 0 : Number(filter.expression2)
|
|
277
278
|
})),
|
|
279
|
+
prefilters: prefilters.map((filter) => ({
|
|
280
|
+
metric: filter.dimension,
|
|
281
|
+
operator: filter.operator,
|
|
282
|
+
expression: Number(filter.expression),
|
|
283
|
+
expression2: filter.expression2 == null ? void 0 : Number(filter.expression2)
|
|
284
|
+
})),
|
|
278
285
|
specialFilters: { topLevel: specialFilters.some((filter) => filter.operator === "topLevel") },
|
|
279
286
|
queryParams,
|
|
280
287
|
orderBy: state.orderBy,
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gscdump",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.13.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",
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
"defu": "^6.1.7",
|
|
109
109
|
"ofetch": "^1.5.1",
|
|
110
110
|
"ufo": "^1.6.4",
|
|
111
|
-
"@gscdump/contracts": "0.
|
|
111
|
+
"@gscdump/contracts": "0.13.0"
|
|
112
112
|
},
|
|
113
113
|
"devDependencies": {
|
|
114
114
|
"@googleapis/indexing": "^6.0.1",
|