@gscdump/engine 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.
Files changed (274) hide show
  1. package/README.md +28 -18
  2. package/dist/THIRD-PARTY-LICENSES.md +2 -2
  3. package/dist/adapters/duckdb-node.d.mts +4 -4
  4. package/dist/adapters/duckdb-node.mjs +103 -77
  5. package/dist/adapters/filesystem.d.mts +6 -7
  6. package/dist/adapters/filesystem.mjs +11 -6
  7. package/dist/adapters/hyparquet.d.mts +9 -10
  8. package/dist/adapters/hyparquet.mjs +84 -44
  9. package/dist/adapters/node-harness.d.mts +3 -4
  10. package/dist/adapters/parquet-attach.d.mts +4 -5
  11. package/dist/adapters/parquet-attach.mjs +7 -2
  12. package/dist/adapters/r2-manifest.d.mts +4 -5
  13. package/dist/adapters/r2.d.mts +2 -3
  14. package/dist/adapters/snapshot-attach.d.mts +7 -8
  15. package/dist/adapters/snapshot-attach.mjs +7 -2
  16. package/dist/analysis-range.d.mts +2 -3
  17. package/dist/analysis-types.d.mts +4 -5
  18. package/dist/analyzer/define.d.mts +6 -7
  19. package/dist/analyzer/dispatch.d.mts +2 -3
  20. package/dist/analyzer/registry.d.mts +4 -5
  21. package/dist/analyzer/types.d.mts +11 -12
  22. package/dist/arrow-utils.d.mts +4 -5
  23. package/dist/arrow-utils.mjs +10 -0
  24. package/dist/coerce.d.mts +1 -2
  25. package/dist/compaction.d.mts +2 -3
  26. package/dist/drizzle-schema.d.mts +14 -15
  27. package/dist/duckdb.d.mts +5 -6
  28. package/dist/duckdb.mjs +9 -5
  29. package/dist/engine.d.mts +1 -2
  30. package/dist/entities/empty-types.d.mts +4 -5
  31. package/dist/entities/indexing-metadata.d.mts +5 -6
  32. package/dist/entities/inspection.d.mts +9 -10
  33. package/dist/entities/query-dim.d.mts +7 -7
  34. package/dist/entities/sitemap-shared.d.mts +26 -27
  35. package/dist/entities/sitemap-write.d.mts +1 -2
  36. package/dist/entities/sitemap.d.mts +1 -2
  37. package/dist/entity-keys.d.mts +28 -29
  38. package/dist/errors.d.mts +5 -6
  39. package/dist/iceberg/append-sink.d.mts +2 -3
  40. package/dist/iceberg/catalog.d.mts +10 -10
  41. package/dist/iceberg/catalog.mjs +2 -2
  42. package/dist/iceberg/overwrite-writer.d.mts +17 -18
  43. package/dist/iceberg/schema.d.mts +16 -16
  44. package/dist/ingest-accumulator.d.mts +8 -9
  45. package/dist/ingest.d.mts +15 -12
  46. package/dist/ingest.mjs +22 -6
  47. package/dist/layout.d.mts +4 -5
  48. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f/node_modules/hyparquet-writer/src/datapage.mjs +1 -1
  49. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f/node_modules/hyparquet-writer/src/indexes.mjs +1 -1
  50. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f/node_modules/hyparquet-writer/src/metadata.mjs +1 -1
  51. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f/node_modules/hyparquet-writer/src/types.d.mts +2 -3
  52. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f/node_modules/hyparquet-writer/types/index.d.mts +2 -3
  53. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/assemble.mjs +3 -144
  54. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/bloom.mjs +3 -58
  55. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/column.mjs +8 -129
  56. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/convert.mjs +3 -118
  57. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/datapage.mjs +6 -144
  58. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/delta.mjs +2 -65
  59. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/encoding.mjs +2 -76
  60. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/filter.mjs +4 -212
  61. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/geoparquet.mjs +1 -24
  62. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/index.mjs +3 -3
  63. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/indexes.mjs +5 -32
  64. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/metadata.mjs +7 -241
  65. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/node.mjs +1 -5
  66. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/plain.mjs +1 -79
  67. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/plan.mjs +6 -375
  68. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/read.mjs +6 -77
  69. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/rowgroup.mjs +7 -175
  70. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/scan.mjs +5 -73
  71. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/schema.mjs +1 -22
  72. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/snappy.mjs +1 -68
  73. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/thrift.mjs +1 -86
  74. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/types.d.mts +2 -28
  75. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/utils.mjs +1 -31
  76. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/variant.mjs +3 -228
  77. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/wkb.mjs +1 -94
  78. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/types/index.d.mts +2 -52
  79. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/types/node.d.mts +2 -2
  80. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/src/assemble.mjs +144 -0
  81. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/src/bloom.mjs +124 -0
  82. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/src/column.mjs +129 -0
  83. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/src/constants.mjs +80 -0
  84. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/src/convert.mjs +118 -0
  85. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/src/datapage.mjs +144 -0
  86. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/src/delta.mjs +65 -0
  87. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/src/encoding.mjs +76 -0
  88. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/src/filter.mjs +212 -0
  89. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/src/geoparquet.mjs +24 -0
  90. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/src/index.mjs +8 -0
  91. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/src/indexes.mjs +32 -0
  92. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/src/metadata.mjs +241 -0
  93. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/src/node.mjs +7 -0
  94. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/src/plain.mjs +79 -0
  95. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/src/plan.mjs +375 -0
  96. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/src/query.mjs +3 -0
  97. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/src/read.mjs +81 -0
  98. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/src/rowgroup.mjs +175 -0
  99. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/src/scan.mjs +74 -0
  100. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/src/schema.mjs +75 -0
  101. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/src/snappy.mjs +68 -0
  102. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/src/thrift.mjs +86 -0
  103. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/src/types.d.mts +25 -0
  104. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/src/utils.mjs +32 -0
  105. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/src/variant.mjs +228 -0
  106. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/src/wkb.mjs +94 -0
  107. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/src/xxhash.mjs +68 -0
  108. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/types/index.d.mts +58 -0
  109. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/types/node.d.mts +3 -0
  110. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/types/scan.d.mts +1 -0
  111. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/types/utils.d.mts +1 -0
  112. package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/index.mjs +1 -1
  113. package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/read.mjs +1 -1
  114. package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/sql/icebergDataSource.mjs +1 -1
  115. package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/sql/icebergQuery.mjs +1 -1
  116. package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/types.d.mts +17 -18
  117. package/dist/node_modules/.pnpm/icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7/node_modules/icebird/types/create.d.mts +1 -0
  118. package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/types/index.d.mts +1 -1
  119. package/dist/node_modules/.pnpm/icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7/node_modules/icebird/types/manifest.d.mts +1 -0
  120. package/dist/node_modules/.pnpm/icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7/node_modules/icebird/types/metadata.d.mts +1 -0
  121. package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/types/read.d.mts +1 -1
  122. package/dist/node_modules/.pnpm/icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7/node_modules/icebird/types/s3.d.mts +1 -0
  123. package/dist/node_modules/.pnpm/icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7/node_modules/icebird/types/sql/icebergDataSource.d.mts +2 -0
  124. package/dist/node_modules/.pnpm/icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7/node_modules/icebird/types/sql/icebergQuery.d.mts +2 -0
  125. package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/types/write/write.d.mts +2 -3
  126. package/dist/node_modules/.pnpm/squirreling@0.16.4/node_modules/squirreling/src/ast.d.mts +1 -0
  127. package/dist/parquet-plan.d.mts +5 -6
  128. package/dist/period/index.d.mts +8 -8
  129. package/dist/profile.d.mts +3 -3
  130. package/dist/report/define.d.mts +1 -2
  131. package/dist/report/hash.d.mts +3 -4
  132. package/dist/report/registry.d.mts +3 -4
  133. package/dist/report/types.d.mts +22 -23
  134. package/dist/resolver/adapter.d.mts +2 -3
  135. package/dist/resolver/canonical-source.d.mts +1 -2
  136. package/dist/resolver/compile.d.mts +12 -8
  137. package/dist/resolver/compile.mjs +7 -3
  138. package/dist/resolver/datasets.d.mts +9 -9
  139. package/dist/resolver/extras-overlay.d.mts +2 -3
  140. package/dist/resolver/filter-utils.d.mts +7 -7
  141. package/dist/resolver/fragments.d.mts +3 -4
  142. package/dist/resolver/pg-adapter.d.mts +7 -8
  143. package/dist/resolver/run-query.d.mts +16 -17
  144. package/dist/resolver/run-query.mjs +16 -15
  145. package/dist/resolver/schema-drift.d.mts +2 -3
  146. package/dist/resolver/types.d.mts +8 -9
  147. package/dist/rollups/canonical.d.mts +4 -5
  148. package/dist/rollups/core.d.mts +12 -13
  149. package/dist/rollups/defaults.d.mts +2 -3
  150. package/dist/rollups/hourly.d.mts +3 -4
  151. package/dist/rollups/indexing.d.mts +5 -6
  152. package/dist/rollups/traffic.d.mts +5 -6
  153. package/dist/rollups/windows.d.mts +7 -8
  154. package/dist/schedule.d.mts +6 -7
  155. package/dist/schema.d.mts +9 -9
  156. package/dist/scope.d.mts +6 -7
  157. package/dist/sink.d.mts +9 -10
  158. package/dist/sinks/in-memory-sink.d.mts +3 -4
  159. package/dist/snapshot.d.mts +2 -3
  160. package/dist/source/attached-table.d.mts +4 -5
  161. package/dist/source/create-sql-query-source.d.mts +2 -3
  162. package/dist/source/index.d.mts +6 -6
  163. package/dist/source/source-types.d.mts +7 -8
  164. package/dist/sql-bind.d.mts +3 -4
  165. package/dist/sql-fragments.d.mts +5 -6
  166. package/dist/storage.d.mts +37 -37
  167. package/dist/sync-config.d.mts +20 -21
  168. package/dist/vendor/hysnappy-purejs.d.mts +2 -3
  169. package/dist/vendor/hysnappy-purejs.mjs +1 -1
  170. package/package.json +12 -10
  171. package/dist/node_modules/.pnpm/icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7/node_modules/icebird/types/sql/icebergDataSource.d.mts +0 -2
  172. package/dist/node_modules/.pnpm/icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7/node_modules/icebird/types/sql/icebergQuery.d.mts +0 -2
  173. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7/node_modules/icebird/types/create.d.mts → hyparquet@1.30.0/node_modules/hyparquet/types/indexes.d.mts} +0 -0
  174. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7/node_modules/icebird → hyparquet@1.30.0/node_modules/hyparquet}/types/metadata.d.mts +0 -0
  175. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7/node_modules/icebird/types/manifest.d.mts → hyparquet@1.30.0/node_modules/hyparquet/types/query.d.mts} +0 -0
  176. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7/node_modules/icebird/types/s3.d.mts → hyparquet@1.30.0/node_modules/hyparquet/types/read.d.mts} +0 -0
  177. /package/dist/node_modules/.pnpm/{squirreling@0.16.3/node_modules/squirreling/src/ast.d.mts → hyparquet@1.30.0/node_modules/hyparquet/types/snappy.d.mts} +0 -0
  178. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/avro/avro.metadata.mjs +0 -0
  179. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/avro/avro.read.mjs +0 -0
  180. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/avro/avro.write.mjs +0 -0
  181. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/catalog/file.mjs +0 -0
  182. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/catalog/loadTable.mjs +0 -0
  183. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/catalog/rest.mjs +0 -0
  184. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/create.mjs +0 -0
  185. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/delete.mjs +0 -0
  186. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/fetch.mjs +0 -0
  187. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/json.mjs +0 -0
  188. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/manifest.mjs +0 -0
  189. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/metadata.mjs +0 -0
  190. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/prune.mjs +0 -0
  191. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/puffin/deletion-vector.mjs +0 -0
  192. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/puffin/puffin.mjs +0 -0
  193. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/puffin/roaring.mjs +0 -0
  194. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/s3.mjs +0 -0
  195. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/schema.mjs +0 -0
  196. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/sigv4.mjs +0 -0
  197. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/sql/whereFilter.mjs +0 -0
  198. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/utils.mjs +0 -0
  199. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/write/commit.mjs +0 -0
  200. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/write/conversions.mjs +0 -0
  201. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/write/delete-file.mjs +0 -0
  202. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/write/geospatial.mjs +0 -0
  203. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/write/manifest-list.mjs +0 -0
  204. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/write/manifest.mjs +0 -0
  205. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/write/parquet.mjs +0 -0
  206. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/write/partition.mjs +0 -0
  207. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/write/rewrite.mjs +0 -0
  208. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/write/serde.mjs +0 -0
  209. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/write/snapshot.mjs +0 -0
  210. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/write/sort.mjs +0 -0
  211. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/write/stage-deletion-vector.mjs +0 -0
  212. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/write/stage-position-delete.mjs +0 -0
  213. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/write/stage.mjs +0 -0
  214. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/write/stats.mjs +0 -0
  215. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/write/transform.mjs +0 -0
  216. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/write/write.mjs +0 -0
  217. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/types/catalog/file.d.mts +0 -0
  218. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/types/catalog/rest.d.mts +0 -0
  219. /package/dist/node_modules/.pnpm/{icebird@0.8.27_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7 → icebird@0.8.28_patch_hash_651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/types/fetch.d.mts +0 -0
  220. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/backend/batch.mjs +0 -0
  221. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/backend/batchAdapters.mjs +0 -0
  222. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/backend/dataSource.mjs +0 -0
  223. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/execute/accumulator.mjs +0 -0
  224. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/execute/aggregates.mjs +0 -0
  225. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/execute/batchResults.mjs +0 -0
  226. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/execute/batches.mjs +0 -0
  227. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/execute/execute.mjs +0 -0
  228. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/execute/fold.mjs +0 -0
  229. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/execute/join.mjs +0 -0
  230. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/execute/rowScope.mjs +0 -0
  231. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/execute/scanColumn.mjs +0 -0
  232. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/execute/sort.mjs +0 -0
  233. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/execute/streamingAggregate.mjs +0 -0
  234. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/execute/utils.mjs +0 -0
  235. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/execute/window.mjs +0 -0
  236. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/execute/yield.mjs +0 -0
  237. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/expression/alias.mjs +0 -0
  238. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/expression/batch.mjs +0 -0
  239. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/expression/binary.mjs +0 -0
  240. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/expression/date.mjs +0 -0
  241. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/expression/evaluate.mjs +0 -0
  242. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/expression/math.mjs +0 -0
  243. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/expression/regexp.mjs +0 -0
  244. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/expression/scalar.mjs +0 -0
  245. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/expression/strings.mjs +0 -0
  246. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/index.d.mts +0 -0
  247. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/index.mjs +0 -0
  248. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/parse/expression.mjs +0 -0
  249. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/parse/extractTables.mjs +0 -0
  250. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/parse/functions.mjs +0 -0
  251. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/parse/joins.mjs +0 -0
  252. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/parse/parse.mjs +0 -0
  253. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/parse/primary.mjs +0 -0
  254. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/parse/state.mjs +0 -0
  255. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/parse/tokenize.mjs +0 -0
  256. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/parse/types.d.mts +0 -0
  257. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/plan/columns.mjs +0 -0
  258. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/plan/plan.mjs +0 -0
  259. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/plan/types.d.mts +0 -0
  260. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/spatial/bbox.mjs +0 -0
  261. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/spatial/equality.mjs +0 -0
  262. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/spatial/operations.mjs +0 -0
  263. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/spatial/pointRelations.mjs +0 -0
  264. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/spatial/primitives.mjs +0 -0
  265. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/spatial/segments.mjs +0 -0
  266. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/spatial/spatial.mjs +0 -0
  267. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/spatial/wkt.mjs +0 -0
  268. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/types.d.mts +0 -0
  269. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/validation/aggregates.mjs +0 -0
  270. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/validation/executionErrors.mjs +0 -0
  271. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/validation/functions.mjs +0 -0
  272. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/validation/keywords.mjs +0 -0
  273. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/validation/parseErrors.mjs +0 -0
  274. /package/dist/node_modules/.pnpm/{squirreling@0.16.3 → squirreling@0.16.4}/node_modules/squirreling/src/validation/tables.mjs +0 -0
@@ -8,22 +8,22 @@ import { RollupDef } from "./core.mjs";
8
8
  * — surfaces GSC's anonymous-query gap so the dashboard can warn users not
9
9
  * to trust query-grained breakdowns as comprehensive.
10
10
  */
11
- declare const dailyTotalsRollup: RollupDef;
11
+ export declare const dailyTotalsRollup: RollupDef;
12
12
  /** Weekly totals, ISO week aligned. Cheap and stable for trend widgets. */
13
- declare const weeklyTotalsRollup: RollupDef;
13
+ export declare const weeklyTotalsRollup: RollupDef;
14
14
  /**
15
15
  * Top 1000 pages by clicks over the trailing 28-day window. JSON for v1;
16
16
  * promote to parquet (`top_pages_28d.parquet`) when the dashboard needs
17
17
  * server-side WHERE filtering on this rollup.
18
18
  */
19
- declare const topPages28dRollup: RollupDef;
19
+ export declare const topPages28dRollup: RollupDef;
20
20
  /**
21
21
  * Top 250 countries by clicks over the trailing 28-day window. Countries
22
22
  * cardinality is bounded (~250 ISO codes), so the list fits in a tiny JSON
23
23
  * payload regardless of traffic shape. Powers a geo-overview widget without
24
24
  * spinning up DuckDB-WASM.
25
25
  */
26
- declare const topCountries28dRollup: RollupDef;
26
+ export declare const topCountries28dRollup: RollupDef;
27
27
  /**
28
28
  * Parquet-format companion to `topKeywords28dRollup`. Same shape, but persists
29
29
  * as a parquet object plus JSON sidecar pointer so widgets that need
@@ -34,5 +34,4 @@ declare const topCountries28dRollup: RollupDef;
34
34
  * the JSON variant; the runner treats the two as independent ids so they can
35
35
  * coexist during a migration.
36
36
  */
37
- declare const topKeywords28dParquetRollup: RollupDef;
38
- export { dailyTotalsRollup, topCountries28dRollup, topKeywords28dParquetRollup, topPages28dRollup, weeklyTotalsRollup };
37
+ export declare const topKeywords28dParquetRollup: RollupDef;
@@ -14,7 +14,7 @@ import { SearchType } from "gscdump/query";
14
14
  * conservatively below the guard. Re-measure the parquet→IPC ratio against
15
15
  * production and raise if headroom allows.
16
16
  */
17
- declare const WINDOW_BYTE_BUDGET: number;
17
+ export declare const WINDOW_BYTE_BUDGET: number;
18
18
  /**
19
19
  * Per-page OUTPUT row cap for key-paginated rollups (`runWindowed({ paginate })`
20
20
  * and `runPagedQuery`). `planRollupWindows` bounds the *input* parquet bytes a
@@ -33,15 +33,15 @@ declare const WINDOW_BYTE_BUDGET: number;
33
33
  * `GROUP_CONCAT` variants string (up to ~10 variants × ~60 chars) the heuristic
34
34
  * under-counts, so they page smaller to keep the real IPC payload bounded.
35
35
  */
36
- declare const ROLLUP_PAGE_ROWS = 50000;
37
- declare const ROLLUP_PAGE_ROWS_WIDE = 20000;
38
- declare const ROLLUP_PAGE_ROWS_DAILY = 70000;
36
+ export declare const ROLLUP_PAGE_ROWS = 50000;
37
+ export declare const ROLLUP_PAGE_ROWS_WIDE = 20000;
38
+ export declare const ROLLUP_PAGE_ROWS_DAILY = 70000;
39
39
  /**
40
40
  * Plan byte-bounded windows over a partition set. Each window names the
41
41
  * partitions whose span intersects it; a coarse tier file can land in two
42
42
  * windows, so every windowed SQL MUST also date-filter to the window bounds.
43
43
  */
44
- declare function planRollupWindows(parts: Array<{
44
+ export declare function planRollupWindows(parts: Array<{
45
45
  partition: string;
46
46
  bytes: number;
47
47
  }>, clampRange?: {
@@ -64,7 +64,7 @@ declare function planRollupWindows(parts: Array<{
64
64
  * The two are orthogonal and compose. When `paginate` is set, `sqlFor` MUST emit
65
65
  * no trailing `ORDER BY`/`LIMIT` and `paginate.orderBy` MUST be a total order.
66
66
  */
67
- declare function runWindowed(opts: {
67
+ export declare function runWindowed(opts: {
68
68
  engine: RollupEngine;
69
69
  ctx: TenantCtx;
70
70
  table: TableName$1;
@@ -86,5 +86,4 @@ declare function runWindowed(opts: {
86
86
  };
87
87
  /** Cap each window's day span (output-cardinality bound). See `planRollupWindows`. */
88
88
  maxWindowDays?: number;
89
- }): Promise<Row$1[]>;
90
- export { ROLLUP_PAGE_ROWS, ROLLUP_PAGE_ROWS_DAILY, ROLLUP_PAGE_ROWS_WIDE, WINDOW_BYTE_BUDGET, planRollupWindows, runWindowed };
89
+ }): Promise<Row$1[]>;
@@ -1,9 +1,9 @@
1
- interface ScheduleState {
1
+ export interface ScheduleState {
2
2
  nextAt: number;
3
3
  consecutiveUnchanged: number;
4
4
  policyVersion: number;
5
5
  }
6
- interface SchedulePolicy {
6
+ export interface SchedulePolicy {
7
7
  readonly version: number;
8
8
  initial: (now: number) => ScheduleState;
9
9
  observe: (prev: ScheduleState, evt: {
@@ -12,8 +12,7 @@ interface SchedulePolicy {
12
12
  }) => ScheduleState;
13
13
  isDue: (state: ScheduleState, now: number) => boolean;
14
14
  }
15
- declare const sitemapPolicy: SchedulePolicy;
16
- type InspectionVerdict = 'PASS' | 'FAIL' | 'NEUTRAL';
17
- declare function inspectionPolicy(verdict: InspectionVerdict): SchedulePolicy;
18
- declare function fixedPolicy(intervalMs: number): SchedulePolicy;
19
- export { InspectionVerdict, SchedulePolicy, ScheduleState, fixedPolicy, inspectionPolicy, sitemapPolicy };
15
+ export declare const sitemapPolicy: SchedulePolicy;
16
+ export type InspectionVerdict = 'PASS' | 'FAIL' | 'NEUTRAL';
17
+ export declare function inspectionPolicy(verdict: InspectionVerdict): SchedulePolicy;
18
+ export declare function fixedPolicy(intervalMs: number): SchedulePolicy;
package/dist/schema.d.mts CHANGED
@@ -1,21 +1,21 @@
1
1
  import { DrizzleSchema, TABLE_METADATA, countries, dates, drizzleSchema, hourly_pages, page_queries, pages, queries, search_appearance, search_appearance_page_queries, search_appearance_pages, search_appearance_queries } from "./drizzle-schema.mjs";
2
2
  import { ColumnDef, ColumnType, Row, TableName, TableSchema, TableSchema as TableSchema$1 } from "@gscdump/contracts";
3
- declare const SCHEMAS: Record<TableName, TableSchema$1>;
4
- declare function currentSchemaVersion(table: TableName): number;
3
+ export declare const SCHEMAS: Record<TableName, TableSchema$1>;
4
+ export declare function currentSchemaVersion(table: TableName): number;
5
5
  /**
6
6
  * DATE column names for a table. The single schema-derived source every read
7
7
  * path uses to build the legacy-VARCHAR date canonicalization (see
8
8
  * `dateReplaceClause` in `./sql-fragments`), so the engine codec and the CLI
9
9
  * `dump`/`export` commands agree on which columns to cast.
10
10
  */
11
- declare function dateColumnsFor(table: TableName): string[];
12
- declare function allTables(): readonly TableName[];
13
- declare function inferTable(dimensions: readonly string[]): TableName;
11
+ export declare function dateColumnsFor(table: TableName): string[];
12
+ export declare function allTables(): readonly TableName[];
13
+ export declare function inferTable(dimensions: readonly string[]): TableName;
14
14
  /**
15
15
  * Natural-key columns for a table: the `sortKey` dimensions that uniquely
16
16
  * identify a metric row (e.g. `['date', 'url']` for `pages`).
17
17
  */
18
- declare function naturalKeyColumns(table: TableName): readonly string[];
18
+ export declare function naturalKeyColumns(table: TableName): readonly string[];
19
19
  /**
20
20
  * Collapse rows that share a natural key (see {@link naturalKeyColumns}) to a
21
21
  * single survivor.
@@ -30,6 +30,6 @@ declare function naturalKeyColumns(table: TableName): readonly string[];
30
30
  * Last occurrence wins. Observed duplicates are byte-identical, so the choice
31
31
  * of survivor is immaterial.
32
32
  */
33
- declare function dedupeByNaturalKey(table: TableName, rows: readonly Row[]): Row[];
34
- declare function dimensionToColumn(dim: string, _table: TableName): string;
35
- export { type ColumnDef, type ColumnType, type DrizzleSchema, SCHEMAS, TABLE_METADATA, type TableSchema, allTables, countries, currentSchemaVersion, dateColumnsFor, dates, dedupeByNaturalKey, dimensionToColumn, drizzleSchema, hourly_pages, inferTable, naturalKeyColumns, page_queries, pages, queries, search_appearance, search_appearance_page_queries, search_appearance_pages, search_appearance_queries };
33
+ export declare function dedupeByNaturalKey(table: TableName, rows: readonly Row[]): Row[];
34
+ export declare function dimensionToColumn(dim: string, _table: TableName): string;
35
+ export { type ColumnDef, type ColumnType, type DrizzleSchema, TABLE_METADATA, type TableSchema, countries, dates, drizzleSchema, hourly_pages, page_queries, pages, queries, search_appearance, search_appearance_page_queries, search_appearance_pages, search_appearance_queries };
package/dist/scope.d.mts CHANGED
@@ -4,12 +4,12 @@ import { SQL } from "drizzle-orm";
4
4
  * Inlined here to avoid the cross-module type import in this leaf module;
5
5
  * any object with `start`/`end` strings (and optional `days`) satisfies it.
6
6
  */
7
- interface ResolvedWindow {
7
+ export interface ResolvedWindow {
8
8
  start: string;
9
9
  end: string;
10
10
  days?: number;
11
11
  }
12
- interface ScopedRunnerOptions {
12
+ export interface ScopedRunnerOptions {
13
13
  siteId?: string;
14
14
  window?: ResolvedWindow;
15
15
  /** Inclusive lower bound for `date`. Ignored if `window` is supplied. */
@@ -23,12 +23,12 @@ interface ScopedRunnerOptions {
23
23
  */
24
24
  grain?: 'day' | 'hour';
25
25
  }
26
- interface TableScope {
26
+ export interface TableScope {
27
27
  wherePredicates: SQL[];
28
28
  window?: ResolvedWindow;
29
29
  siteId?: string;
30
30
  }
31
- declare function mergeScope(scope: TableScope, ...extra: SQL[]): SQL | undefined;
31
+ export declare function mergeScope(scope: TableScope, ...extra: SQL[]): SQL | undefined;
32
32
  /**
33
33
  * Bind `buildTableScope` + `mergeScope` to a specific drizzle schema. Engine
34
34
  * adapters (`engine-sqlite`, `engine-duckdb-wasm`) call this once at module load and
@@ -36,8 +36,7 @@ declare function mergeScope(scope: TableScope, ...extra: SQL[]): SQL | undefined
36
36
  * `keyof Schema` table parameter without each adapter re-implementing the
37
37
  * pass-through wrapper.
38
38
  */
39
- declare function createScopedHelpers<S extends Record<string, Record<string, any>>>(schema: S): {
39
+ export declare function createScopedHelpers<S extends Record<string, Record<string, any>>>(schema: S): {
40
40
  scopeFor: (table: keyof S, opts: ScopedRunnerOptions) => TableScope;
41
41
  mergeScope: typeof mergeScope;
42
- };
43
- export { ResolvedWindow, ScopedRunnerOptions, TableScope, createScopedHelpers, mergeScope };
42
+ };
package/dist/sink.d.mts CHANGED
@@ -8,7 +8,7 @@ import { CommitRetryOptions, ConnectIcebergOptions, IcebergCatalogConfig } from
8
8
  * tenant-scoped sinks (local/in-memory); the prod Iceberg table is global
9
9
  * and keys only on `siteId`.
10
10
  */
11
- interface SinkSlice {
11
+ export interface SinkSlice {
12
12
  ctx: TenantCtx;
13
13
  table: IcebergTableName;
14
14
  /** GSC search-type partition. */
@@ -20,7 +20,7 @@ interface SinkSlice {
20
20
  * Outcome of a sink write. `rowCount` is the number of rows accepted;
21
21
  * `bytes` is best-effort — `IcebergAppendSink` does not report it (undefined there).
22
22
  */
23
- interface SinkWriteResult {
23
+ export interface SinkWriteResult {
24
24
  rowCount: number;
25
25
  bytes?: number;
26
26
  }
@@ -29,14 +29,14 @@ interface SinkWriteResult {
29
29
  * v5 stability-cutoff model. Test and revision-path adapters may expose an
30
30
  * overwrite capability explicitly.
31
31
  */
32
- interface SinkCapabilities {
32
+ export interface SinkCapabilities {
33
33
  /** When true, re-emitting a slice accumulates duplicate rows. */
34
34
  appendOnly: boolean;
35
35
  /** Whether the sink exposes partition overwrite semantics. */
36
36
  canOverwrite?: boolean;
37
37
  }
38
38
  /** Partition-overwrite writer for revision paths. */
39
- interface SliceOverwriteWriter {
39
+ export interface SliceOverwriteWriter {
40
40
  overwriteSlice: (slice: SinkSlice, rows: readonly Row[]) => Promise<SinkWriteResult>;
41
41
  }
42
42
  /**
@@ -50,7 +50,7 @@ interface SliceOverwriteWriter {
50
50
  * leaves its slices un-recorded so the next sync re-emits them. This is what
51
51
  * keeps the D1 ledger from ever running ahead of Iceberg.
52
52
  */
53
- interface SinkCloseResult {
53
+ export interface SinkCloseResult {
54
54
  /** Tables whose buffered rows committed durably. */
55
55
  flushed: IcebergTableName[];
56
56
  /**
@@ -63,7 +63,7 @@ interface SinkCloseResult {
63
63
  error: EngineError;
64
64
  }[];
65
65
  }
66
- interface Sink {
66
+ export interface Sink {
67
67
  readonly capabilities: SinkCapabilities;
68
68
  /**
69
69
  * Emit the fact rows for one slice. Append semantics — for `IcebergAppendSink`
@@ -89,7 +89,7 @@ interface Sink {
89
89
  close: () => Promise<SinkCloseResult>;
90
90
  }
91
91
  /** Construction options shared by all sink implementations. */
92
- interface SinkOptions {
92
+ export interface SinkOptions {
93
93
  now?: () => number;
94
94
  }
95
95
  /**
@@ -97,7 +97,7 @@ interface SinkOptions {
97
97
  * sink appends to via `icebird`. The catalog config shape (`IcebergCatalogConfig`)
98
98
  * is type-only here so this contract file stays implementation-free.
99
99
  */
100
- interface IcebergAppendSinkOptions extends SinkOptions {
100
+ export interface IcebergAppendSinkOptions extends SinkOptions {
101
101
  /** R2 Data Catalog connection config (catalog URI, warehouse, namespace, token, S3 creds). */
102
102
  catalog: IcebergCatalogConfig;
103
103
  /**
@@ -121,5 +121,4 @@ interface IcebergAppendSinkOptions extends SinkOptions {
121
121
  * {@link import('./iceberg/schema').PartitionKeyEncoding}.
122
122
  */
123
123
  encoding?: PartitionKeyEncoding;
124
- }
125
- export { IcebergAppendSinkOptions, Sink, SinkCapabilities, SinkCloseResult, SinkOptions, SinkSlice, SinkWriteResult, SliceOverwriteWriter };
124
+ }
@@ -2,11 +2,11 @@ import { Row } from "../storage.mjs";
2
2
  import { IcebergTableName } from "../iceberg/schema.mjs";
3
3
  import { Sink, SinkSlice } from "../sink.mjs";
4
4
  /** A row as stored by the fake — data columns plus the injected identity columns. */
5
- type StoredRow = Row & {
5
+ export type StoredRow = Row & {
6
6
  site_id: string;
7
7
  search_type: string;
8
8
  };
9
- interface InMemorySink extends Sink {
9
+ export interface InMemorySink extends Sink {
10
10
  /** All rows accepted, in partition order. */
11
11
  readonly rows: readonly StoredRow[];
12
12
  /** Rows for one table. */
@@ -21,5 +21,4 @@ interface InMemorySink extends Sink {
21
21
  /**
22
22
  * Create an in-memory append-only `Sink`.
23
23
  */
24
- declare function createInMemorySink(): InMemorySink;
25
- export { InMemorySink, StoredRow, createInMemorySink };
24
+ export declare function createInMemorySink(): InMemorySink;
@@ -4,11 +4,10 @@
4
4
  * via `cold-${yearMonth}.duckdb`; hot is always `hot.duckdb` when
5
5
  * `hot: true`.
6
6
  */
7
- interface SnapshotIndex {
7
+ export interface SnapshotIndex {
8
8
  version: 1;
9
9
  builtAt: string;
10
10
  cold: string[];
11
11
  hot: boolean;
12
12
  hotDays: number;
13
- }
14
- export { SnapshotIndex };
13
+ }
@@ -3,7 +3,7 @@ import { ResolverAdapter } from "../resolver/types.mjs";
3
3
  import { AnalysisQuerySource } from "./source-types.mjs";
4
4
  import { EngineError } from "../errors.mjs";
5
5
  import "../contracts.mjs";
6
- interface AttachedTableRunner {
6
+ export interface AttachedTableRunner {
7
7
  /**
8
8
  * Run a query with positional (`?`) bound parameters. Return objects keyed
9
9
  * by column name. BIGINT → number coercion is applied by the source factory
@@ -12,7 +12,7 @@ interface AttachedTableRunner {
12
12
  */
13
13
  query: (sql: string, params?: unknown[], signal?: AbortSignal) => Promise<Row[]>;
14
14
  }
15
- interface AttachedTableSourceOptions {
15
+ export interface AttachedTableSourceOptions {
16
16
  /** Schema name the exported DuckDB file was attached under — e.g. `gsc`. */
17
17
  schema: string;
18
18
  /**
@@ -36,10 +36,9 @@ interface AttachedTableSourceOptions {
36
36
  */
37
37
  adapter?: ResolverAdapter<any>;
38
38
  }
39
- declare class AttachedTableMissingError extends Error {
39
+ export declare class AttachedTableMissingError extends Error {
40
40
  readonly missing: readonly string[];
41
41
  readonly engineError: EngineError;
42
42
  constructor(missing: readonly string[]);
43
43
  }
44
- declare function createAttachedTableSource(runner: AttachedTableRunner, options: AttachedTableSourceOptions): AnalysisQuerySource;
45
- export { AttachedTableMissingError, AttachedTableRunner, AttachedTableSourceOptions, createAttachedTableSource };
44
+ export declare function createAttachedTableSource(runner: AttachedTableRunner, options: AttachedTableSourceOptions): AnalysisQuerySource;
@@ -1,6 +1,6 @@
1
1
  import { ResolverAdapter } from "../resolver/types.mjs";
2
2
  import { AnalysisQuerySource, AnalysisSourceKind, QueryRow, SourceCapabilities } from "./source-types.mjs";
3
- interface CreateSqlQuerySourceOptions<TKey extends string> {
3
+ export interface CreateSqlQuerySourceOptions<TKey extends string> {
4
4
  /** Debug-only identifier surfaced on the source for error messages. */
5
5
  name: string;
6
6
  /** Telemetry tag stamped onto analyzer result meta. */
@@ -20,5 +20,4 @@ interface CreateSqlQuerySourceOptions<TKey extends string> {
20
20
  /** Additional capability flags merged on top of `adapter.capabilities`. */
21
21
  extraCapabilities?: Partial<SourceCapabilities>;
22
22
  }
23
- declare function createSqlQuerySource<TKey extends string>(options: CreateSqlQuerySourceOptions<TKey>): AnalysisQuerySource;
24
- export { CreateSqlQuerySourceOptions, createSqlQuerySource };
23
+ export declare function createSqlQuerySource<TKey extends string>(options: CreateSqlQuerySourceOptions<TKey>): AnalysisQuerySource;
@@ -12,8 +12,8 @@ import { BuilderState } from "gscdump/query";
12
12
  * multi-dataset queries belong to the analyzer dispatcher, not the engine's
13
13
  * builder-state query path.
14
14
  */
15
- declare const ENGINE_QUERY_CAPABILITIES: PlannerCapabilities;
16
- interface EngineQuerySourceOptions {
15
+ export declare const ENGINE_QUERY_CAPABILITIES: PlannerCapabilities;
16
+ export interface EngineQuerySourceOptions {
17
17
  engine: StorageEngine;
18
18
  ctx: TenantCtx;
19
19
  /**
@@ -31,14 +31,14 @@ interface EngineQuerySourceOptions {
31
31
  * `engine.runSQL` and requires `opts.fileSets` (with a `FILES` entry so the
32
32
  * target table can be resolved for partition lookup).
33
33
  */
34
- declare function createEngineQuerySource(options: EngineQuerySourceOptions): AnalysisQuerySource;
34
+ export declare function createEngineQuerySource(options: EngineQuerySourceOptions): AnalysisQuerySource;
35
35
  /**
36
36
  * Convenience: wrap a storage engine + tenant ctx in a source and dispatch.
37
37
  * Equivalent to wrapping `createEngineQuerySource`, with omitted searchType
38
38
  * defaulted to web at this public helper boundary.
39
39
  */
40
- declare function runAnalyzerWithEngine(deps: {
40
+ export declare function runAnalyzerWithEngine(deps: {
41
41
  engine: StorageEngine;
42
42
  }, ctx: TenantCtx, params: AnalysisParams, registry: AnalyzerRegistry): Promise<AnalysisResult>;
43
- declare function queryRows<TRow = QueryRow>(source: AnalysisQuerySource, state: BuilderState): Promise<TRow[]>;
44
- export { type AnalysisQuerySource, type AnalysisSourceKind, AttachedTableMissingError, type AttachedTableRunner, type AttachedTableSourceOptions, type CreateSqlQuerySourceOptions, ENGINE_QUERY_CAPABILITIES, EngineQuerySourceOptions, type ExecuteSqlOptions, type FileSet, type QueryRow, type SourceCapabilities, createAttachedTableSource, createEngineQuerySource, createSqlQuerySource, queryRows, runAnalyzerWithEngine };
43
+ export declare function queryRows<TRow = QueryRow>(source: AnalysisQuerySource, state: BuilderState): Promise<TRow[]>;
44
+ export { type AnalysisQuerySource, type AnalysisSourceKind, AttachedTableMissingError, type AttachedTableRunner, type AttachedTableSourceOptions, type CreateSqlQuerySourceOptions, type ExecuteSqlOptions, type FileSet, type QueryRow, type SourceCapabilities, createAttachedTableSource, createSqlQuerySource };
@@ -2,12 +2,12 @@ import { ResolverAdapter } from "../resolver/types.mjs";
2
2
  import { PlannerCapabilities } from "gscdump/query/plan";
3
3
  import { TableName } from "@gscdump/contracts";
4
4
  import { BuilderState } from "gscdump/query";
5
- type QueryRow = Record<string, unknown>;
6
- interface FileSet {
5
+ export type QueryRow = Record<string, unknown>;
6
+ export interface FileSet {
7
7
  table: TableName;
8
8
  partitions: string[];
9
9
  }
10
- interface ExecuteSqlOptions {
10
+ export interface ExecuteSqlOptions {
11
11
  fileSets?: Record<string, FileSet>;
12
12
  }
13
13
  /**
@@ -15,7 +15,7 @@ interface ExecuteSqlOptions {
15
15
  * mixed with storage-side flags. SQL execution is not a capability flag —
16
16
  * callers probe `typeof source.executeSql === 'function'`.
17
17
  */
18
- interface SourceCapabilities extends PlannerCapabilities {
18
+ export interface SourceCapabilities extends PlannerCapabilities {
19
19
  attachedTables?: boolean;
20
20
  fileSets?: boolean;
21
21
  /**
@@ -24,8 +24,8 @@ interface SourceCapabilities extends PlannerCapabilities {
24
24
  */
25
25
  adapter?: boolean;
26
26
  }
27
- type AnalysisSourceKind = 'local' | 'browser' | 'live' | 'in-memory' | 'composite' | 'attached-table';
28
- interface AnalysisQuerySource {
27
+ export type AnalysisSourceKind = 'local' | 'browser' | 'live' | 'in-memory' | 'composite' | 'attached-table';
28
+ export interface AnalysisQuerySource {
29
29
  name?: string;
30
30
  /** Telemetry tag stamped onto analyzer result meta; not used for routing. */
31
31
  kind?: AnalysisSourceKind;
@@ -45,5 +45,4 @@ interface AnalysisQuerySource {
45
45
  * BigInts to numbers before returning (see Source invariant above).
46
46
  */
47
47
  executeSql?: (sql: string, params?: unknown[], opts?: ExecuteSqlOptions) => Promise<QueryRow[]>;
48
- }
49
- export { AnalysisQuerySource, AnalysisSourceKind, ExecuteSqlOptions, FileSet, QueryRow, SourceCapabilities };
48
+ }
@@ -1,5 +1,4 @@
1
1
  /** Escape single quotes for inlining inside a SQL string literal (SQL-standard `''` escaping). */
2
- declare function sqlEscape(s: string): string;
3
- declare function formatLiteral(value: unknown): string;
4
- declare function bindLiterals(sql: string, params: readonly unknown[]): string;
5
- export { bindLiterals, formatLiteral, sqlEscape };
2
+ export declare function sqlEscape(s: string): string;
3
+ export declare function formatLiteral(value: unknown): string;
4
+ export declare function bindLiterals(sql: string, params: readonly unknown[]): string;
@@ -3,7 +3,7 @@ import { Metric } from "gscdump/query";
3
3
  * Standard SQL `LIKE` escape. Backslash is the explicit ESCAPE char so
4
4
  * literal `%`, `_`, and `\` survive a `contains` predicate unchanged.
5
5
  */
6
- declare function escapeLike(value: string): string;
6
+ export declare function escapeLike(value: string): string;
7
7
  /**
8
8
  * Per-metric raw SQL aggregate expression.
9
9
  *
@@ -12,12 +12,12 @@ declare function escapeLike(value: string): string;
12
12
  * - `position` reverses the ingestion offset (`sum_position = position - 1`
13
13
  * summed; divide by impressions and add 1 back).
14
14
  */
15
- declare const METRIC_EXPR: Record<Metric, string>;
15
+ export declare const METRIC_EXPR: Record<Metric, string>;
16
16
  /**
17
17
  * Top-level page predicate: matches paths with at most one `/`. Parameterized
18
18
  * on the resolved column expression so drizzle can pass a column ref.
19
19
  */
20
- declare function topLevelPagePredicateSql(pathExpr: string): string;
20
+ export declare function topLevelPagePredicateSql(pathExpr: string): string;
21
21
  /**
22
22
  * How a canonicalized date column is emitted by {@link dateReplaceClause}:
23
23
  * - `'date'` keeps a real `DATE` value (`CAST(col AS DATE)`). Right for views
@@ -26,7 +26,7 @@ declare function topLevelPagePredicateSql(pathExpr: string): string;
26
26
  * Right for row materialisation to JSON/CSV/NDJSON, where a `DATE` would
27
27
  * serialize as an opaque object / epoch.
28
28
  */
29
- type DateCanonicalForm = 'date' | 'string';
29
+ export type DateCanonicalForm = 'date' | 'string';
30
30
  /**
31
31
  * Build a `read_parquet` `REPLACE (…)` clause that canonicalizes legacy `date`
32
32
  * columns. `date` lands as VARCHAR in older parquets (BYTE_ARRAY/UTF8, written
@@ -40,5 +40,4 @@ type DateCanonicalForm = 'date' | 'string';
40
40
  * table has no DATE columns, so callers can interpolate it unconditionally:
41
41
  * `SELECT * ${dateReplaceClause(cols)} FROM read_parquet(…)`.
42
42
  */
43
- declare function dateReplaceClause(dateColumns: readonly string[], form?: DateCanonicalForm): string;
44
- export { DateCanonicalForm, METRIC_EXPR, dateReplaceClause, escapeLike, topLevelPagePredicateSql };
43
+ export declare function dateReplaceClause(dateColumns: readonly string[], form?: DateCanonicalForm): string;