@gscdump/engine-sqlite 3.4.4 → 3.6.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/README.md CHANGED
@@ -4,11 +4,10 @@
4
4
  [![npm downloads](https://img.shields.io/npm/dm/@gscdump/engine-sqlite?color=yellow)](https://npm.chart.dev/@gscdump/engine-sqlite)
5
5
  [![license](https://img.shields.io/github/license/harlan-zw/gscdump?color=yellow)](https://github.com/harlan-zw/gscdump/blob/main/LICENSE)
6
6
 
7
- > SQLite / D1 engine adapter for `@gscdump/analysis` — typed analytics over sqlite-proxy executors (Cloudflare D1, libsql).
7
+ Run typed analytics over SQLite or D1 through an async executor.
8
8
 
9
- Wraps any sqlite-proxy executor (`(sql, params) => rows`) as a `SqlQuerySource` bound to a tenant `siteId`. Driver glue only; the typed builder + raw-SQL plumbing lives in `@gscdump/engine/resolver`.
10
-
11
- Bundle: **5.3 kB / 1.4 kB gzipped**.
9
+ `createSqliteQuerySource` wraps an executor as an `AnalysisQuerySource` scoped to a Site.
10
+ The Engine resolver builds the SQL; your executor runs it.
12
11
 
13
12
  ## Install
14
13
 
@@ -20,18 +19,14 @@ npm install @gscdump/engine-sqlite @gscdump/engine drizzle-orm
20
19
 
21
20
  ```ts
22
21
  import {
23
- aggClicks,
24
22
  aggCtr,
25
- aggImpressions,
26
- aggPosition,
27
23
  compileSqlite,
28
- createSqliteInsightRunner,
29
24
  gsc_keywords,
30
25
  sql,
31
26
  } from '@gscdump/engine-sqlite'
32
27
 
33
28
  const queryExpr = sql`
34
- SELECT ${gsc_keywords.query} as keyword,
29
+ SELECT ${gsc_keywords.query} as query,
35
30
  SUM(${gsc_keywords.clicks}) as clicks,
36
31
  ${aggCtr(gsc_keywords)} as ctr
37
32
  FROM ${gsc_keywords}
@@ -40,7 +35,7 @@ const queryExpr = sql`
40
35
  `
41
36
 
42
37
  const { sql: compiledSql, params } = compileSqlite(queryExpr)
43
- const rows = await executor(compiledSql, params) // queryUserD1, libsql, ...
38
+ const { rows } = await executor(compiledSql, params, 'all')
44
39
  ```
45
40
 
46
41
  ### Engine source for analyzer dispatch
@@ -51,39 +46,37 @@ import { createSqliteQuerySource } from '@gscdump/engine-sqlite'
51
46
  const source = createSqliteQuerySource({
52
47
  executor, // (sql, params, mode) => { rows }
53
48
  siteId,
54
- regex: true, // hosts that expose REGEXP (D1, libsql, sqlite3+regexp)
49
+ regex: true, // Enable only if your executor supports REGEXP
55
50
  })
56
51
  ```
57
52
 
58
- Always import `sql` from `@gscdump/engine-sqlite` — not `drizzle-orm` directly — so consumers bind to the package's drizzle-orm instance and avoid cross-install `SQL<unknown>` mismatches.
53
+ Import `sql` from `@gscdump/engine-sqlite` so it uses the same Drizzle instance as the package.
54
+ This avoids `SQL<unknown>` type mismatches between installations.
59
55
 
60
56
  ## Exports
61
57
 
62
- - `createSqliteQuerySource({ executor, siteId, regex? })` builds an `AnalysisQuerySource`.
63
- - `createSqliteInsightRunner({ executor })` sqlite-proxy drizzle adapter.
64
- - `compileSqlite(sql)` compile to `{ sql, params }` for any HTTP executor.
65
- - `aggClicks` / `aggImpressions` / `aggCtr` / `aggPosition` aggregate helpers.
66
- - `scopeFor(table, { siteId, window })` / `mergeScope()` tenant scope predicates.
67
- - `gsc_pages` / `gsc_keywords` / `gsc_page_keywords` / `gsc_countries` / `gsc_devices` / `schema` drizzle schema mirroring `gscdump/analytics` `SCHEMAS`.
68
- - `sqliteResolverAdapter` / `createSqliteResolverAdapter` / `probeSqliteRegex` dialect adapter for the resolver kit.
58
+ - `createSqliteQuerySource({ executor, siteId, regex? })` : builds an `AnalysisQuerySource`.
59
+ - `createSqliteInsightRunner({ executor })` : sqlite-proxy drizzle adapter.
60
+ - `compileSqlite(sql)` : compile to `{ sql, params }` for any HTTP executor.
61
+ - `aggClicks` / `aggImpressions` / `aggCtr` / `aggPosition` : aggregate helpers.
62
+ - `scopeFor(table, { siteId, window })` / `mergeScope()` : tenant scope predicates.
63
+ - `gsc_pages` / `gsc_keywords` / `gsc_page_keywords` / `gsc_countries` / `gsc_devices` / `gsc_query_dim` / `schema` : drizzle schema mirroring `@gscdump/engine/schema`.
64
+ - `sqliteResolverAdapter` / `createSqliteResolverAdapter` / `probeSqliteRegex` : dialect adapter for the resolver kit.
69
65
  - `resolveWindow` (re-exported from `@gscdump/engine/period`).
70
66
 
71
- ## D1 Analytics Table Status
67
+ ## Storage tables
72
68
 
73
- The `gsc_*` analytics tables remain a supported compatibility surface. The
74
- 2026-06-29 Iceberg migration audit found active package exports, resolver tests,
75
- and docs for `gsc_pages`, `gsc_keywords`, `gsc_page_keywords`, `gsc_countries`,
76
- and `gsc_devices`. Do not remove these tables as part of the Iceberg/canonical
77
- migration. A future retirement should be staged behind a consumer usage audit,
78
- dual-read/shadow-read checks, and a release note that names the replacement
79
- Iceberg/R2 SQL path.
69
+ The `gsc_*` tables remain exported for SQLite and D1 consumers.
70
+ This adapter also exports `createD1ManifestStore` and its `r2*` manifest tables.
71
+ Your application owns table creation, migrations, and data ingestion.
72
+ The CLI uses a Parquet Store; it does not sync into these SQLite tables.
80
73
 
81
74
  ## Related
82
75
 
83
- - [`@gscdump/engine`](../engine) Storage contracts + dialect-neutral resolver.
84
- - [`@gscdump/analysis`](../analysis) Analyzer registry + dispatcher.
85
- - [`@gscdump/engine/node`](../engine) Node DuckDB counterpart.
86
- - [`@gscdump/engine-duckdb-wasm`](../engine-duckdb-wasm) Browser DuckDB-WASM counterpart.
76
+ - [`@gscdump/engine`](../engine) : Storage contracts + dialect-neutral resolver.
77
+ - [`@gscdump/analysis`](../analysis) : Analyzer registry + dispatcher.
78
+ - [`@gscdump/engine/node`](../engine) : Node DuckDB counterpart.
79
+ - [`@gscdump/engine-duckdb-wasm`](../engine-duckdb-wasm) : Browser DuckDB-WASM counterpart.
87
80
 
88
81
  ## License
89
82
 
@@ -1,8 +1,7 @@
1
1
  import { gsc_countries, gsc_devices, gsc_keywords, gsc_page_keywords, gsc_pages } from "./schema.mjs";
2
2
  import { SQL } from "drizzle-orm";
3
3
  type MetricTable = typeof gsc_pages | typeof gsc_keywords | typeof gsc_countries | typeof gsc_devices | typeof gsc_page_keywords;
4
- declare function aggClicks(t: MetricTable): SQL;
5
- declare function aggImpressions(t: MetricTable): SQL;
6
- declare function aggCtr(t: MetricTable): SQL;
7
- declare function aggPosition(t: MetricTable): SQL;
8
- export { aggClicks, aggCtr, aggImpressions, aggPosition };
4
+ export declare function aggClicks(t: MetricTable): SQL;
5
+ export declare function aggImpressions(t: MetricTable): SQL;
6
+ export declare function aggCtr(t: MetricTable): SQL;
7
+ export declare function aggPosition(t: MetricTable): SQL;
@@ -1,11 +1,10 @@
1
1
  import { SqliteRowExecutor } from "./runner.mjs";
2
2
  import { AnalysisQuerySource } from "@gscdump/engine/source";
3
- type SqliteQueryExecutor = SqliteRowExecutor;
4
- interface SqliteQuerySourceOptions {
3
+ export type SqliteQueryExecutor = SqliteRowExecutor;
4
+ export interface SqliteQuerySourceOptions {
5
5
  executor: SqliteQueryExecutor;
6
6
  siteId: string | number;
7
7
  /** Override for hosts that expose REGEXP (D1, libsql, sqlite3+regexp). */
8
8
  regex?: boolean;
9
9
  }
10
- declare function createSqliteQuerySource(config: SqliteQuerySourceOptions): AnalysisQuerySource;
11
- export { SqliteQueryExecutor, SqliteQuerySourceOptions, createSqliteQuerySource };
10
+ export declare function createSqliteQuerySource(config: SqliteQuerySourceOptions): AnalysisQuerySource;
@@ -1,4 +1,4 @@
1
- declare const r2Manifest: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
1
+ export declare const r2Manifest: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
2
2
  name: "r2_manifest";
3
3
  schema: undefined;
4
4
  columns: {
@@ -213,9 +213,9 @@ declare const r2Manifest: import("drizzle-orm/sqlite-core").SQLiteTableWithColum
213
213
  };
214
214
  dialect: "sqlite";
215
215
  }>;
216
- type R2ManifestInsert = typeof r2Manifest.$inferInsert;
217
- type R2ManifestSelect = typeof r2Manifest.$inferSelect;
218
- declare const r2WriteErrors: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
216
+ export type R2ManifestInsert = typeof r2Manifest.$inferInsert;
217
+ export type R2ManifestSelect = typeof r2Manifest.$inferSelect;
218
+ export declare const r2WriteErrors: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
219
219
  name: "r2_write_errors";
220
220
  schema: undefined;
221
221
  columns: {
@@ -334,9 +334,9 @@ declare const r2WriteErrors: import("drizzle-orm/sqlite-core").SQLiteTableWithCo
334
334
  };
335
335
  dialect: "sqlite";
336
336
  }>;
337
- type R2WriteErrorInsert = typeof r2WriteErrors.$inferInsert;
338
- type R2WriteErrorSelect = typeof r2WriteErrors.$inferSelect;
339
- declare const r2ShadowDiffs: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
337
+ export type R2WriteErrorInsert = typeof r2WriteErrors.$inferInsert;
338
+ export type R2WriteErrorSelect = typeof r2WriteErrors.$inferSelect;
339
+ export declare const r2ShadowDiffs: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
340
340
  name: "r2_shadow_diffs";
341
341
  schema: undefined;
342
342
  columns: {
@@ -439,9 +439,9 @@ declare const r2ShadowDiffs: import("drizzle-orm/sqlite-core").SQLiteTableWithCo
439
439
  };
440
440
  dialect: "sqlite";
441
441
  }>;
442
- type R2ShadowDiffInsert = typeof r2ShadowDiffs.$inferInsert;
443
- type R2ShadowDiffSelect = typeof r2ShadowDiffs.$inferSelect;
444
- declare const r2Locks: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
442
+ export type R2ShadowDiffInsert = typeof r2ShadowDiffs.$inferInsert;
443
+ export type R2ShadowDiffSelect = typeof r2ShadowDiffs.$inferSelect;
444
+ export declare const r2Locks: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
445
445
  name: "r2_locks";
446
446
  schema: undefined;
447
447
  columns: {
@@ -512,9 +512,9 @@ declare const r2Locks: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<
512
512
  };
513
513
  dialect: "sqlite";
514
514
  }>;
515
- type R2LockInsert = typeof r2Locks.$inferInsert;
516
- type R2LockSelect = typeof r2Locks.$inferSelect;
517
- declare const r2Watermarks: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
515
+ export type R2LockInsert = typeof r2Locks.$inferInsert;
516
+ export type R2LockSelect = typeof r2Locks.$inferSelect;
517
+ export declare const r2Watermarks: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
518
518
  name: "r2_watermarks";
519
519
  schema: undefined;
520
520
  columns: {
@@ -617,9 +617,9 @@ declare const r2Watermarks: import("drizzle-orm/sqlite-core").SQLiteTableWithCol
617
617
  };
618
618
  dialect: "sqlite";
619
619
  }>;
620
- type R2WatermarkInsert = typeof r2Watermarks.$inferInsert;
621
- type R2WatermarkSelect = typeof r2Watermarks.$inferSelect;
622
- declare const r2SyncStates: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
620
+ export type R2WatermarkInsert = typeof r2Watermarks.$inferInsert;
621
+ export type R2WatermarkSelect = typeof r2Watermarks.$inferSelect;
622
+ export declare const r2SyncStates: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
623
623
  name: "r2_sync_states";
624
624
  schema: undefined;
625
625
  columns: {
@@ -770,6 +770,5 @@ declare const r2SyncStates: import("drizzle-orm/sqlite-core").SQLiteTableWithCol
770
770
  };
771
771
  dialect: "sqlite";
772
772
  }>;
773
- type R2SyncStateInsert = typeof r2SyncStates.$inferInsert;
774
- type R2SyncStateSelect = typeof r2SyncStates.$inferSelect;
775
- export { R2LockInsert, R2LockSelect, R2ManifestInsert, R2ManifestSelect, R2ShadowDiffInsert, R2ShadowDiffSelect, R2SyncStateInsert, R2SyncStateSelect, R2WatermarkInsert, R2WatermarkSelect, R2WriteErrorInsert, R2WriteErrorSelect, r2Locks, r2Manifest, r2ShadowDiffs, r2SyncStates, r2Watermarks, r2WriteErrors };
773
+ export type R2SyncStateInsert = typeof r2SyncStates.$inferInsert;
774
+ export type R2SyncStateSelect = typeof r2SyncStates.$inferSelect;
@@ -9,6 +9,5 @@ interface AnalyticsManifestSchema extends Schema {
9
9
  r2Watermarks: typeof r2Watermarks;
10
10
  }
11
11
  type AnalyticsManifestRelations = ExtractTablesWithRelations<Record<string, never>, AnalyticsManifestSchema>;
12
- type AnalyticsManifestDb = DrizzleD1Database<AnalyticsManifestRelations>;
13
- declare function createD1ManifestStore(db: AnalyticsManifestDb): ManifestStore;
14
- export { AnalyticsManifestDb, createD1ManifestStore };
12
+ export type AnalyticsManifestDb = DrizzleD1Database<AnalyticsManifestRelations>;
13
+ export declare function createD1ManifestStore(db: AnalyticsManifestDb): ManifestStore;
@@ -1,20 +1,20 @@
1
1
  import { schema } from "./schema.mjs";
2
2
  import { SqliteRowExecutor } from "./runner.mjs";
3
3
  import { ResolverAdapter } from "@gscdump/engine/resolver";
4
- type TableKey = keyof typeof schema;
5
- interface CreateSqliteResolverAdapterOptions {
4
+ export type TableKey = keyof typeof schema;
5
+ export interface CreateSqliteResolverAdapterOptions {
6
6
  regex?: boolean;
7
7
  }
8
- declare function createSqliteResolverAdapter(options?: CreateSqliteResolverAdapterOptions): ResolverAdapter<TableKey>;
9
- declare const sqliteResolverAdapter: ResolverAdapter<"gsc_pages" | "gsc_keywords" | "gsc_countries" | "gsc_devices" | "gsc_page_keywords" | "gsc_search_appearance" | "gsc_search_appearance_pages" | "gsc_search_appearance_queries" | "gsc_search_appearance_page_queries" | "gsc_hourly_pages" | "gsc_query_dim">;
8
+ export declare function createSqliteResolverAdapter(options?: CreateSqliteResolverAdapterOptions): ResolverAdapter<TableKey>;
9
+ export declare const sqliteResolverAdapter: ResolverAdapter<"gsc_pages" | "gsc_keywords" | "gsc_countries" | "gsc_devices" | "gsc_page_keywords" | "gsc_search_appearance" | "gsc_search_appearance_pages" | "gsc_search_appearance_queries" | "gsc_search_appearance_page_queries" | "gsc_hourly_pages" | "gsc_query_dim">;
10
10
  /**
11
11
  * One-shot probe that detects whether the host SQLite has a working REGEXP
12
12
  * function. SQLite ships REGEXP as a no-op stub by default; D1, libsql, and
13
13
  * sqlite3 with the regexp extension register a real implementation. Probe
14
14
  * once at adapter construction so per-query plan-time gating is honest.
15
15
  */
16
- declare function probeSqliteRegex(executor: SqliteRowExecutor): Promise<boolean>;
17
- interface CreateSqliteResolverAdapterFromExecutorOptions {
16
+ export declare function probeSqliteRegex(executor: SqliteRowExecutor): Promise<boolean>;
17
+ export interface CreateSqliteResolverAdapterFromExecutorOptions {
18
18
  executor: SqliteRowExecutor;
19
19
  }
20
20
  /**
@@ -23,5 +23,4 @@ interface CreateSqliteResolverAdapterFromExecutorOptions {
23
23
  * the manual `createSqliteResolverAdapter({ regex })` whenever you have
24
24
  * an executor handy.
25
25
  */
26
- declare function createSqliteResolverAdapterFromExecutor(options: CreateSqliteResolverAdapterFromExecutorOptions): Promise<ResolverAdapter<TableKey>>;
27
- export { CreateSqliteResolverAdapterFromExecutorOptions, CreateSqliteResolverAdapterOptions, TableKey, createSqliteResolverAdapter, createSqliteResolverAdapterFromExecutor, probeSqliteRegex, sqliteResolverAdapter };
26
+ export declare function createSqliteResolverAdapterFromExecutor(options: CreateSqliteResolverAdapterFromExecutorOptions): Promise<ResolverAdapter<TableKey>>;
package/dist/runner.d.mts CHANGED
@@ -4,14 +4,14 @@ import { ScopedRunnerOptions, TableScope } from "@gscdump/engine/scope";
4
4
  import { ExtractTablesWithRelations, Schema } from "drizzle-orm/relations";
5
5
  import { SqliteRemoteDatabase } from "drizzle-orm/sqlite-proxy";
6
6
  type SchemaRelations<TSchema extends Schema> = ExtractTablesWithRelations<Record<string, never>, TSchema>;
7
- declare function compileSqlite(query: SQL): {
7
+ export declare function compileSqlite(query: SQL): {
8
8
  sql: string;
9
9
  params: unknown[];
10
10
  };
11
- type SqliteRowExecutor = (sql: string, params: unknown[], method: 'run' | 'all' | 'values' | 'get') => Promise<{
11
+ export type SqliteRowExecutor = (sql: string, params: unknown[], method: 'run' | 'all' | 'values' | 'get') => Promise<{
12
12
  rows: unknown[];
13
13
  }>;
14
- interface SqliteInsightRunnerOptions<TSchema extends Schema = Schema$1> {
14
+ export interface SqliteInsightRunnerOptions<TSchema extends Schema = Schema$1> {
15
15
  executor: SqliteRowExecutor;
16
16
  logger?: boolean;
17
17
  /**
@@ -27,10 +27,10 @@ interface SqliteInsightRunnerOptions<TSchema extends Schema = Schema$1> {
27
27
  */
28
28
  schema?: TSchema;
29
29
  }
30
- interface SqliteInsightRunner<TSchema extends Schema = Schema$1> {
30
+ export interface SqliteInsightRunner<TSchema extends Schema = Schema$1> {
31
31
  db: SqliteRemoteDatabase<SchemaRelations<TSchema>>;
32
32
  }
33
- declare function createSqliteInsightRunner<TSchema extends Schema = Schema$1>(opts: SqliteInsightRunnerOptions<TSchema>): SqliteInsightRunner<TSchema>;
34
- declare const scopeFor: (table: "gsc_pages" | "gsc_keywords" | "gsc_countries" | "gsc_devices" | "gsc_page_keywords" | "gsc_search_appearance" | "gsc_search_appearance_pages" | "gsc_search_appearance_queries" | "gsc_search_appearance_page_queries" | "gsc_hourly_pages" | "gsc_query_dim", opts: ScopedRunnerOptions) => TableScope;
35
- declare const mergeScope: typeof import("@gscdump/engine/scope").mergeScope;
36
- export { type ScopedRunnerOptions, SqliteInsightRunner, SqliteInsightRunnerOptions, SqliteRowExecutor, type TableScope, compileSqlite, createSqliteInsightRunner, mergeScope, scopeFor };
33
+ export declare function createSqliteInsightRunner<TSchema extends Schema = Schema$1>(opts: SqliteInsightRunnerOptions<TSchema>): SqliteInsightRunner<TSchema>;
34
+ export declare const scopeFor: (table: "gsc_pages" | "gsc_keywords" | "gsc_countries" | "gsc_devices" | "gsc_page_keywords" | "gsc_search_appearance" | "gsc_search_appearance_pages" | "gsc_search_appearance_queries" | "gsc_search_appearance_page_queries" | "gsc_hourly_pages" | "gsc_query_dim", opts: ScopedRunnerOptions) => TableScope;
35
+ export declare const mergeScope: typeof import("@gscdump/engine/scope").mergeScope;
36
+ export type { ScopedRunnerOptions, TableScope };
package/dist/schema.d.mts CHANGED
@@ -6,7 +6,7 @@
6
6
  * aggregation. Mirror of gscdump.com/database/user/schema.ts relative to
7
7
  * the columns analytics queries actually read.
8
8
  */
9
- declare const gsc_pages: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
9
+ export declare const gsc_pages: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
10
10
  name: "gsc_pages";
11
11
  schema: undefined;
12
12
  columns: {
@@ -218,7 +218,7 @@ declare const gsc_pages: import("drizzle-orm/sqlite-core").SQLiteTableWithColumn
218
218
  };
219
219
  dialect: "sqlite";
220
220
  }>;
221
- declare const gsc_keywords: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
221
+ export declare const gsc_keywords: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
222
222
  name: "gsc_keywords";
223
223
  schema: undefined;
224
224
  columns: {
@@ -430,7 +430,7 @@ declare const gsc_keywords: import("drizzle-orm/sqlite-core").SQLiteTableWithCol
430
430
  };
431
431
  dialect: "sqlite";
432
432
  }>;
433
- declare const gsc_countries: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
433
+ export declare const gsc_countries: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
434
434
  name: "gsc_countries";
435
435
  schema: undefined;
436
436
  columns: {
@@ -642,7 +642,7 @@ declare const gsc_countries: import("drizzle-orm/sqlite-core").SQLiteTableWithCo
642
642
  };
643
643
  dialect: "sqlite";
644
644
  }>;
645
- declare const gsc_devices: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
645
+ export declare const gsc_devices: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
646
646
  name: "gsc_devices";
647
647
  schema: undefined;
648
648
  columns: {
@@ -854,7 +854,7 @@ declare const gsc_devices: import("drizzle-orm/sqlite-core").SQLiteTableWithColu
854
854
  };
855
855
  dialect: "sqlite";
856
856
  }>;
857
- declare const gsc_page_keywords: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
857
+ export declare const gsc_page_keywords: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
858
858
  name: "gsc_page_keywords";
859
859
  schema: undefined;
860
860
  columns: {
@@ -1082,7 +1082,7 @@ declare const gsc_page_keywords: import("drizzle-orm/sqlite-core").SQLiteTableWi
1082
1082
  };
1083
1083
  dialect: "sqlite";
1084
1084
  }>;
1085
- declare const gsc_query_dim: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
1085
+ export declare const gsc_query_dim: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
1086
1086
  name: "gsc_query_dim";
1087
1087
  schema: undefined;
1088
1088
  columns: {
@@ -1201,7 +1201,7 @@ declare const gsc_query_dim: import("drizzle-orm/sqlite-core").SQLiteTableWithCo
1201
1201
  };
1202
1202
  dialect: "sqlite";
1203
1203
  }>;
1204
- declare const schema: {
1204
+ export declare const schema: {
1205
1205
  gsc_pages: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
1206
1206
  name: "gsc_pages";
1207
1207
  schema: undefined;
@@ -3538,5 +3538,4 @@ declare const schema: {
3538
3538
  dialect: "sqlite";
3539
3539
  }>;
3540
3540
  };
3541
- type Schema = typeof schema;
3542
- export { Schema, gsc_countries, gsc_devices, gsc_keywords, gsc_page_keywords, gsc_pages, gsc_query_dim, schema };
3541
+ export type Schema = typeof schema;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@gscdump/engine-sqlite",
3
3
  "type": "module",
4
- "version": "3.4.4",
4
+ "version": "3.6.0",
5
5
  "description": "SQLite / D1 engine adapter for @gscdump/analysis — typed analytics over sqlite-proxy executors (Cloudflare D1, libsql).",
6
6
  "author": {
7
7
  "name": "Harlan Wilton",
@@ -44,11 +44,11 @@
44
44
  "drizzle-orm": "1.0.0-rc.4"
45
45
  },
46
46
  "dependencies": {
47
- "@gscdump/engine": "^3.4.4"
47
+ "@gscdump/engine": "^3.6.0"
48
48
  },
49
49
  "devDependencies": {
50
50
  "drizzle-orm": "1.0.0-rc.4",
51
- "vitest": "^4.1.11"
51
+ "vitest": "^5.0.0"
52
52
  },
53
53
  "scripts": {
54
54
  "build": "obuild",