@gscdump/engine 3.7.0 → 4.0.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 (282) hide show
  1. package/dist/THIRD-PARTY-LICENSES.md +2 -2
  2. package/dist/adapters/filesystem.mjs +52 -19
  3. package/dist/adapters/hyparquet.d.mts +2 -2
  4. package/dist/adapters/hyparquet.mjs +6 -6
  5. package/dist/adapters/node.d.mts +2 -2
  6. package/dist/adapters/parquet-attach.d.mts +11 -4
  7. package/dist/adapters/parquet-attach.mjs +18 -5
  8. package/dist/adapters/r2-manifest.mjs +47 -27
  9. package/dist/analysis-range.d.mts +58 -1
  10. package/dist/analysis-range.mjs +102 -1
  11. package/dist/analysis-types.d.mts +42 -1
  12. package/dist/analysis-types.mjs +8 -1
  13. package/dist/analyzer/dispatch.mjs +21 -4
  14. package/dist/engine.mjs +5 -4
  15. package/dist/entities/inspection.d.mts +11 -0
  16. package/dist/entities/inspection.mjs +17 -0
  17. package/dist/entities/sitemap-list.d.mts +37 -0
  18. package/dist/entities/sitemap-list.mjs +23 -0
  19. package/dist/entities.d.mts +3 -2
  20. package/dist/entities.mjs +3 -2
  21. package/dist/entity-keys.d.mts +2 -0
  22. package/dist/entity-keys.mjs +4 -1
  23. package/dist/iceberg/catalog.d.mts +2 -2
  24. package/dist/iceberg/catalog.mjs +2 -2
  25. package/dist/ingest.d.mts +11 -2
  26. package/dist/ingest.mjs +19 -12
  27. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.2/node_modules/hyparquet-compressors/src/brotli.bitreader.mjs +93 -0
  28. package/dist/node_modules/.pnpm/{hyparquet-compressors@1.1.1 → hyparquet-compressors@1.1.2}/node_modules/hyparquet-compressors/src/brotli.huffman.mjs +19 -15
  29. package/dist/node_modules/.pnpm/{hyparquet-compressors@1.1.1 → hyparquet-compressors@1.1.2}/node_modules/hyparquet-compressors/src/brotli.mjs +5 -13
  30. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.2/node_modules/hyparquet-compressors/src/brotli.streams.mjs +25 -0
  31. package/dist/node_modules/.pnpm/{hyparquet-compressors@1.1.1 → hyparquet-compressors@1.1.2}/node_modules/hyparquet-compressors/src/brotli.transform.mjs +9 -7
  32. package/dist/node_modules/.pnpm/{hyparquet-compressors@1.1.1 → hyparquet-compressors@1.1.2}/node_modules/hyparquet-compressors/src/gzip.mjs +1 -4
  33. package/dist/node_modules/.pnpm/{hyparquet-compressors@1.1.1 → hyparquet-compressors@1.1.2}/node_modules/hyparquet-compressors/src/lz4.mjs +2 -1
  34. package/dist/node_modules/.pnpm/{hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f → hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/bloom.mjs +1 -1
  35. package/dist/node_modules/.pnpm/{hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f → hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/column.mjs +5 -4
  36. package/dist/node_modules/.pnpm/{hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f → hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/datapage.mjs +1 -1
  37. package/dist/node_modules/.pnpm/{hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f → hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/delta.mjs +21 -6
  38. package/dist/node_modules/.pnpm/{hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f → hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/dremel.mjs +1 -1
  39. package/dist/node_modules/.pnpm/{hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f → hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/indexes.mjs +1 -1
  40. package/dist/node_modules/.pnpm/{hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f → hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/metadata.mjs +2 -2
  41. package/dist/node_modules/.pnpm/{hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f → hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/parquet-writer.mjs +1 -1
  42. package/dist/node_modules/.pnpm/{hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f → hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/types.d.mts +1 -1
  43. package/dist/node_modules/.pnpm/{hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f → hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/unconvert.mjs +2 -2
  44. package/dist/node_modules/.pnpm/{hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f → hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/types/index.d.mts +1 -1
  45. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f/node_modules/hyparquet-writer/types/parquet-writer.d.mts +2 -0
  46. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f/node_modules/hyparquet-writer/types/schema.d.mts +2 -0
  47. package/dist/node_modules/.pnpm/{hyparquet@1.30.0 → hyparquet@1.31.1}/node_modules/hyparquet/src/filter.mjs +1 -1
  48. package/dist/node_modules/.pnpm/{hyparquet@1.30.0 → hyparquet@1.31.1}/node_modules/hyparquet/src/index.mjs +2 -2
  49. package/dist/node_modules/.pnpm/{hyparquet@1.30.0 → hyparquet@1.31.1}/node_modules/hyparquet/src/indexes.mjs +3 -3
  50. package/dist/node_modules/.pnpm/{hyparquet@1.30.0 → hyparquet@1.31.1}/node_modules/hyparquet/src/metadata.mjs +2 -2
  51. package/dist/node_modules/.pnpm/{hyparquet@1.30.0 → hyparquet@1.31.1}/node_modules/hyparquet/src/node.mjs +2 -2
  52. package/dist/node_modules/.pnpm/{hyparquet@1.30.0 → hyparquet@1.31.1}/node_modules/hyparquet/src/rowgroup.mjs +7 -7
  53. package/dist/node_modules/.pnpm/{hyparquet@1.30.0 → hyparquet@1.31.1}/node_modules/hyparquet/src/types.d.mts +9 -1
  54. package/dist/node_modules/.pnpm/{hyparquet@1.30.0 → hyparquet@1.31.1}/node_modules/hyparquet/src/utils.mjs +18 -1
  55. package/dist/node_modules/.pnpm/{hyparquet@1.30.0 → hyparquet@1.31.1}/node_modules/hyparquet/types/index.d.mts +2 -1
  56. package/dist/node_modules/.pnpm/hyparquet@1.31.1/node_modules/hyparquet/types/node.d.mts +3 -0
  57. package/dist/node_modules/.pnpm/icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae/node_modules/icebird/src/avro/avro.metadata.mjs +2 -0
  58. package/dist/node_modules/.pnpm/icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae/node_modules/icebird/src/avro/avro.read.mjs +5 -0
  59. package/dist/node_modules/.pnpm/icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae/node_modules/icebird/src/avro/avro.write.mjs +2 -0
  60. package/dist/node_modules/.pnpm/icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae/node_modules/icebird/src/fetch.mjs +9 -0
  61. package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/index.mjs +1 -1
  62. package/dist/node_modules/.pnpm/icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae/node_modules/icebird/src/read.mjs +12 -0
  63. package/dist/node_modules/.pnpm/icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae/node_modules/icebird/src/s3.mjs +3 -0
  64. package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/sql/icebergDataSource.mjs +1 -1
  65. package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/sql/icebergQuery.mjs +1 -1
  66. package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/types.d.mts +4 -4
  67. package/dist/node_modules/.pnpm/icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae/node_modules/icebird/src/write/parquet.mjs +5 -0
  68. package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/write/rewrite.mjs +1 -1
  69. package/dist/node_modules/.pnpm/icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae/node_modules/icebird/types/fetch.d.mts +2 -0
  70. package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/types/index.d.mts +1 -1
  71. package/dist/node_modules/.pnpm/icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae/node_modules/icebird/types/read.d.mts +3 -0
  72. package/dist/node_modules/.pnpm/icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae/node_modules/icebird/types/sql/icebergDataSource.d.mts +2 -0
  73. package/dist/node_modules/.pnpm/icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae/node_modules/icebird/types/sql/icebergQuery.d.mts +2 -0
  74. package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/plan/plan.mjs +1 -0
  75. package/dist/report/types.d.mts +8 -1
  76. package/dist/resolver/fragments.mjs +6 -4
  77. package/dist/schema.d.mts +4 -2
  78. package/dist/storage.d.mts +15 -5
  79. package/dist/vendor/hysnappy-purejs.mjs +1 -1
  80. package/package.json +12 -12
  81. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.bitreader.mjs +0 -88
  82. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.streams.mjs +0 -21
  83. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f/node_modules/hyparquet-writer/types/parquet-writer.d.mts +0 -2
  84. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f/node_modules/hyparquet-writer/types/schema.d.mts +0 -2
  85. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/assemble.mjs +0 -3
  86. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/bloom.mjs +0 -69
  87. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/column.mjs +0 -8
  88. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/convert.mjs +0 -3
  89. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/datapage.mjs +0 -6
  90. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/delta.mjs +0 -2
  91. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/encoding.mjs +0 -2
  92. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/filter.mjs +0 -4
  93. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/geoparquet.mjs +0 -1
  94. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/index.mjs +0 -8
  95. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/indexes.mjs +0 -5
  96. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/metadata.mjs +0 -7
  97. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/node.mjs +0 -3
  98. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/plain.mjs +0 -1
  99. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/plan.mjs +0 -6
  100. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/read.mjs +0 -7
  101. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/rowgroup.mjs +0 -7
  102. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/scan.mjs +0 -6
  103. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/schema.mjs +0 -54
  104. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/snappy.mjs +0 -1
  105. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/thrift.mjs +0 -1
  106. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/types.d.mts +0 -8
  107. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/utils.mjs +0 -19
  108. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/variant.mjs +0 -3
  109. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/wkb.mjs +0 -1
  110. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/types/index.d.mts +0 -9
  111. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/types/node.d.mts +0 -3
  112. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/src/constants.mjs +0 -80
  113. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/src/query.mjs +0 -3
  114. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/src/xxhash.mjs +0 -68
  115. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/types/indexes.d.mts +0 -1
  116. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/types/node.d.mts +0 -3
  117. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/types/query.d.mts +0 -1
  118. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/types/read.d.mts +0 -1
  119. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/types/scan.d.mts +0 -1
  120. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/types/snappy.d.mts +0 -1
  121. package/dist/node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/types/utils.d.mts +0 -1
  122. package/dist/node_modules/.pnpm/icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae/node_modules/icebird/src/avro/avro.metadata.mjs +0 -1
  123. package/dist/node_modules/.pnpm/icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae/node_modules/icebird/src/avro/avro.read.mjs +0 -4
  124. package/dist/node_modules/.pnpm/icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae/node_modules/icebird/src/avro/avro.write.mjs +0 -2
  125. package/dist/node_modules/.pnpm/icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae/node_modules/icebird/src/fetch.mjs +0 -9
  126. package/dist/node_modules/.pnpm/icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae/node_modules/icebird/src/read.mjs +0 -12
  127. package/dist/node_modules/.pnpm/icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae/node_modules/icebird/src/s3.mjs +0 -3
  128. package/dist/node_modules/.pnpm/icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae/node_modules/icebird/src/write/parquet.mjs +0 -5
  129. package/dist/node_modules/.pnpm/icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae/node_modules/icebird/types/fetch.d.mts +0 -2
  130. package/dist/node_modules/.pnpm/icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae/node_modules/icebird/types/metadata.d.mts +0 -1
  131. package/dist/node_modules/.pnpm/icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae/node_modules/icebird/types/read.d.mts +0 -3
  132. package/dist/node_modules/.pnpm/icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae/node_modules/icebird/types/sql/icebergDataSource.d.mts +0 -2
  133. package/dist/node_modules/.pnpm/icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae/node_modules/icebird/types/sql/icebergQuery.d.mts +0 -2
  134. /package/dist/node_modules/.pnpm/{hyparquet-compressors@1.1.1 → hyparquet-compressors@1.1.2}/node_modules/hyparquet-compressors/src/brotli.blocks.mjs +0 -0
  135. /package/dist/node_modules/.pnpm/{hyparquet-compressors@1.1.1 → hyparquet-compressors@1.1.2}/node_modules/hyparquet-compressors/src/brotli.context.mjs +0 -0
  136. /package/dist/node_modules/.pnpm/{hyparquet-compressors@1.1.1 → hyparquet-compressors@1.1.2}/node_modules/hyparquet-compressors/src/brotli.contextmap.mjs +0 -0
  137. /package/dist/node_modules/.pnpm/{hyparquet-compressors@1.1.1 → hyparquet-compressors@1.1.2}/node_modules/hyparquet-compressors/src/brotli.dictionary.mjs +0 -0
  138. /package/dist/node_modules/.pnpm/{hyparquet-compressors@1.1.1 → hyparquet-compressors@1.1.2}/node_modules/hyparquet-compressors/src/brotli.prefix.mjs +0 -0
  139. /package/dist/node_modules/.pnpm/{hyparquet-compressors@1.1.1 → hyparquet-compressors@1.1.2}/node_modules/hyparquet-compressors/src/compressors.mjs +0 -0
  140. /package/dist/node_modules/.pnpm/{hyparquet-compressors@1.1.1 → hyparquet-compressors@1.1.2}/node_modules/hyparquet-compressors/src/gzip.huffman.mjs +0 -0
  141. /package/dist/node_modules/.pnpm/{hyparquet-compressors@1.1.1 → hyparquet-compressors@1.1.2}/node_modules/hyparquet-compressors/src/index.mjs +0 -0
  142. /package/dist/node_modules/.pnpm/{hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f → hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/bytewriter.mjs +0 -0
  143. /package/dist/node_modules/.pnpm/{hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f → hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/dictionary.mjs +0 -0
  144. /package/dist/node_modules/.pnpm/{hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f → hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/encoding.mjs +0 -0
  145. /package/dist/node_modules/.pnpm/{hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f → hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/geospatial.mjs +0 -0
  146. /package/dist/node_modules/.pnpm/{hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f → hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/index.mjs +0 -0
  147. /package/dist/node_modules/.pnpm/{hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f → hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/node.mjs +0 -0
  148. /package/dist/node_modules/.pnpm/{hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f → hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/plain.mjs +0 -0
  149. /package/dist/node_modules/.pnpm/{hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f → hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/schema.mjs +0 -0
  150. /package/dist/node_modules/.pnpm/{hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f → hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/snappy.mjs +0 -0
  151. /package/dist/node_modules/.pnpm/{hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f → hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/splitstream.mjs +0 -0
  152. /package/dist/node_modules/.pnpm/{hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f → hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/thrift.mjs +0 -0
  153. /package/dist/node_modules/.pnpm/{hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f → hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/variant.mjs +0 -0
  154. /package/dist/node_modules/.pnpm/{hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f → hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/wkb.mjs +0 -0
  155. /package/dist/node_modules/.pnpm/{hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f → hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/write-rows.mjs +0 -0
  156. /package/dist/node_modules/.pnpm/{hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f → hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/write.mjs +0 -0
  157. /package/dist/node_modules/.pnpm/{hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f → hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/types/bytewriter.d.mts +0 -0
  158. /package/dist/node_modules/.pnpm/{hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f → hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/types/node.d.mts +0 -0
  159. /package/dist/node_modules/.pnpm/{hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f → hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/types/wkb.d.mts +0 -0
  160. /package/dist/node_modules/.pnpm/{hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f → hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/types/write-rows.d.mts +0 -0
  161. /package/dist/node_modules/.pnpm/{hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f → hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/types/write.d.mts +0 -0
  162. /package/dist/node_modules/.pnpm/{hyparquet@1.30.0 → hyparquet@1.31.1}/node_modules/hyparquet/src/assemble.mjs +0 -0
  163. /package/dist/node_modules/.pnpm/{hyparquet@1.30.0 → hyparquet@1.31.1}/node_modules/hyparquet/src/bloom.mjs +0 -0
  164. /package/dist/node_modules/.pnpm/{hyparquet@1.30.0 → hyparquet@1.31.1}/node_modules/hyparquet/src/column.mjs +0 -0
  165. /package/dist/node_modules/.pnpm/{hyparquet@1.29.2 → hyparquet@1.31.1}/node_modules/hyparquet/src/constants.mjs +0 -0
  166. /package/dist/node_modules/.pnpm/{hyparquet@1.30.0 → hyparquet@1.31.1}/node_modules/hyparquet/src/convert.mjs +0 -0
  167. /package/dist/node_modules/.pnpm/{hyparquet@1.30.0 → hyparquet@1.31.1}/node_modules/hyparquet/src/datapage.mjs +0 -0
  168. /package/dist/node_modules/.pnpm/{hyparquet@1.30.0 → hyparquet@1.31.1}/node_modules/hyparquet/src/delta.mjs +0 -0
  169. /package/dist/node_modules/.pnpm/{hyparquet@1.30.0 → hyparquet@1.31.1}/node_modules/hyparquet/src/encoding.mjs +0 -0
  170. /package/dist/node_modules/.pnpm/{hyparquet@1.30.0 → hyparquet@1.31.1}/node_modules/hyparquet/src/geoparquet.mjs +0 -0
  171. /package/dist/node_modules/.pnpm/{hyparquet@1.30.0 → hyparquet@1.31.1}/node_modules/hyparquet/src/plain.mjs +0 -0
  172. /package/dist/node_modules/.pnpm/{hyparquet@1.30.0 → hyparquet@1.31.1}/node_modules/hyparquet/src/plan.mjs +0 -0
  173. /package/dist/node_modules/.pnpm/{hyparquet@1.29.2 → hyparquet@1.31.1}/node_modules/hyparquet/src/query.mjs +0 -0
  174. /package/dist/node_modules/.pnpm/{hyparquet@1.30.0 → hyparquet@1.31.1}/node_modules/hyparquet/src/read.mjs +0 -0
  175. /package/dist/node_modules/.pnpm/{hyparquet@1.30.0 → hyparquet@1.31.1}/node_modules/hyparquet/src/scan.mjs +0 -0
  176. /package/dist/node_modules/.pnpm/{hyparquet@1.30.0 → hyparquet@1.31.1}/node_modules/hyparquet/src/schema.mjs +0 -0
  177. /package/dist/node_modules/.pnpm/{hyparquet@1.30.0 → hyparquet@1.31.1}/node_modules/hyparquet/src/snappy.mjs +0 -0
  178. /package/dist/node_modules/.pnpm/{hyparquet@1.30.0 → hyparquet@1.31.1}/node_modules/hyparquet/src/thrift.mjs +0 -0
  179. /package/dist/node_modules/.pnpm/{hyparquet@1.30.0 → hyparquet@1.31.1}/node_modules/hyparquet/src/variant.mjs +0 -0
  180. /package/dist/node_modules/.pnpm/{hyparquet@1.30.0 → hyparquet@1.31.1}/node_modules/hyparquet/src/wkb.mjs +0 -0
  181. /package/dist/node_modules/.pnpm/{hyparquet@1.29.2 → hyparquet@1.31.1}/node_modules/hyparquet/src/xxhash.mjs +0 -0
  182. /package/dist/node_modules/.pnpm/{hyparquet@1.29.2 → hyparquet@1.31.1}/node_modules/hyparquet/types/indexes.d.mts +0 -0
  183. /package/dist/node_modules/.pnpm/{hyparquet@1.29.2 → hyparquet@1.31.1}/node_modules/hyparquet/types/metadata.d.mts +0 -0
  184. /package/dist/node_modules/.pnpm/{hyparquet@1.29.2 → hyparquet@1.31.1}/node_modules/hyparquet/types/query.d.mts +0 -0
  185. /package/dist/node_modules/.pnpm/{hyparquet@1.29.2 → hyparquet@1.31.1}/node_modules/hyparquet/types/read.d.mts +0 -0
  186. /package/dist/node_modules/.pnpm/{hyparquet@1.29.2 → hyparquet@1.31.1}/node_modules/hyparquet/types/scan.d.mts +0 -0
  187. /package/dist/node_modules/.pnpm/{hyparquet@1.29.2 → hyparquet@1.31.1}/node_modules/hyparquet/types/snappy.d.mts +0 -0
  188. /package/dist/node_modules/.pnpm/{hyparquet@1.29.2 → hyparquet@1.31.1}/node_modules/hyparquet/types/utils.d.mts +0 -0
  189. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/catalog/file.mjs +0 -0
  190. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/catalog/loadTable.mjs +0 -0
  191. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/catalog/rest.mjs +0 -0
  192. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/create.mjs +0 -0
  193. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/delete.mjs +0 -0
  194. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/json.mjs +0 -0
  195. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/manifest.mjs +0 -0
  196. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/metadata.mjs +0 -0
  197. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/prune.mjs +0 -0
  198. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/puffin/deletion-vector.mjs +0 -0
  199. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/puffin/puffin.mjs +0 -0
  200. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/puffin/roaring.mjs +0 -0
  201. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/schema.mjs +0 -0
  202. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/sigv4.mjs +0 -0
  203. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/sql/whereFilter.mjs +0 -0
  204. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/utils.mjs +0 -0
  205. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/write/commit.mjs +0 -0
  206. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/write/conversions.mjs +0 -0
  207. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/write/delete-file.mjs +0 -0
  208. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/write/geospatial.mjs +0 -0
  209. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/write/manifest-list.mjs +0 -0
  210. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/write/manifest.mjs +0 -0
  211. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/write/partition.mjs +0 -0
  212. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/write/serde.mjs +0 -0
  213. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/write/snapshot.mjs +0 -0
  214. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/write/sort.mjs +0 -0
  215. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/write/stage-deletion-vector.mjs +0 -0
  216. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/write/stage-position-delete.mjs +0 -0
  217. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/write/stage.mjs +0 -0
  218. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/write/stats.mjs +0 -0
  219. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/write/transform.mjs +0 -0
  220. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/src/write/write.mjs +0 -0
  221. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/types/catalog/file.d.mts +0 -0
  222. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/types/catalog/rest.d.mts +0 -0
  223. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/types/create.d.mts +0 -0
  224. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/types/manifest.d.mts +0 -0
  225. /package/dist/node_modules/.pnpm/{hyparquet@1.30.0/node_modules/hyparquet → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae/node_modules/icebird}/types/metadata.d.mts +0 -0
  226. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/types/s3.d.mts +0 -0
  227. /package/dist/node_modules/.pnpm/{icebird@0.8.28_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae → icebird@0.8.30_patch_hash_fddf140b38d2e0cf41ed74c5b5eb5cac324d0a6ac428572f1df7a967dcb19cae}/node_modules/icebird/types/write/write.d.mts +0 -0
  228. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/ast.d.mts +0 -0
  229. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/backend/batch.mjs +0 -0
  230. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/backend/batchAdapters.mjs +0 -0
  231. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/backend/dataSource.mjs +0 -0
  232. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/execute/accumulator.mjs +0 -0
  233. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/execute/aggregates.mjs +0 -0
  234. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/execute/batchResults.mjs +0 -0
  235. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/execute/batches.mjs +0 -0
  236. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/execute/execute.mjs +0 -0
  237. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/execute/fold.mjs +0 -0
  238. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/execute/join.mjs +0 -0
  239. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/execute/rowScope.mjs +0 -0
  240. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/execute/scanColumn.mjs +0 -0
  241. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/execute/sort.mjs +0 -0
  242. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/execute/streamingAggregate.mjs +0 -0
  243. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/execute/utils.mjs +0 -0
  244. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/execute/window.mjs +0 -0
  245. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/execute/yield.mjs +0 -0
  246. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/expression/alias.mjs +0 -0
  247. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/expression/batch.mjs +0 -0
  248. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/expression/binary.mjs +0 -0
  249. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/expression/date.mjs +0 -0
  250. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/expression/evaluate.mjs +0 -0
  251. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/expression/math.mjs +0 -0
  252. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/expression/regexp.mjs +0 -0
  253. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/expression/scalar.mjs +0 -0
  254. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/expression/strings.mjs +0 -0
  255. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/index.d.mts +0 -0
  256. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/index.mjs +0 -0
  257. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/parse/expression.mjs +0 -0
  258. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/parse/extractTables.mjs +0 -0
  259. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/parse/functions.mjs +0 -0
  260. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/parse/joins.mjs +0 -0
  261. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/parse/parse.mjs +0 -0
  262. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/parse/primary.mjs +0 -0
  263. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/parse/state.mjs +0 -0
  264. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/parse/tokenize.mjs +0 -0
  265. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/parse/types.d.mts +0 -0
  266. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/plan/columns.mjs +0 -0
  267. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/plan/types.d.mts +0 -0
  268. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/spatial/bbox.mjs +0 -0
  269. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/spatial/equality.mjs +0 -0
  270. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/spatial/operations.mjs +0 -0
  271. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/spatial/pointRelations.mjs +0 -0
  272. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/spatial/primitives.mjs +0 -0
  273. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/spatial/segments.mjs +0 -0
  274. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/spatial/spatial.mjs +0 -0
  275. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/spatial/wkt.mjs +0 -0
  276. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/types.d.mts +0 -0
  277. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/validation/aggregates.mjs +0 -0
  278. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/validation/executionErrors.mjs +0 -0
  279. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/validation/functions.mjs +0 -0
  280. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/validation/keywords.mjs +0 -0
  281. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/validation/parseErrors.mjs +0 -0
  282. /package/dist/node_modules/.pnpm/{squirreling@0.16.4 → squirreling@0.16.6}/node_modules/squirreling/src/validation/tables.mjs +0 -0
@@ -17,7 +17,7 @@ function usesInt32NumberPath(values) {
17
17
  if (values instanceof Int32Array) return true;
18
18
  for (let i = 0; i < values.length; i++) {
19
19
  const value = values[i];
20
- if (typeof value !== "number" || !Number.isInteger(value) || value < -2147483648 || value > 2147483647) return false;
20
+ if (typeof value !== "number" || value !== (value | 0)) return false;
21
21
  }
22
22
  return true;
23
23
  }
@@ -26,7 +26,7 @@ function deltaBinaryPackInt32(writer, values) {
26
26
  writer.appendVarInt(BLOCK_SIZE);
27
27
  writer.appendVarInt(MINIBLOCKS_PER_BLOCK);
28
28
  writer.appendVarInt(count);
29
- appendZigZagNumber(writer, Number(values[0]));
29
+ appendZigZagNumber(writer, values[0]);
30
30
  const packedByBitWidth = [];
31
31
  const blockDeltas = new Float64Array(BLOCK_SIZE);
32
32
  const bitWidths = new Uint8Array(MINIBLOCKS_PER_BLOCK);
@@ -34,10 +34,25 @@ function deltaBinaryPackInt32(writer, values) {
34
34
  while (index < count) {
35
35
  const blockEnd = Math.min(index + BLOCK_SIZE, count);
36
36
  const blockSize = blockEnd - index;
37
- let minDelta = Number(values[index]) - Number(values[index - 1]);
37
+ const firstDelta = values[index] - values[index - 1];
38
+ let previous = values[index];
39
+ let constantEnd = index + 1;
40
+ while (constantEnd < blockEnd) {
41
+ const value = values[constantEnd];
42
+ if (value - previous !== firstDelta) break;
43
+ previous = value;
44
+ constantEnd++;
45
+ }
46
+ if (constantEnd === blockEnd) {
47
+ appendZigZagNumber(writer, firstDelta);
48
+ writer.appendUint32(0);
49
+ index = blockEnd;
50
+ continue;
51
+ }
52
+ let minDelta = values[index] - values[index - 1];
38
53
  blockDeltas[0] = minDelta;
39
54
  for (let i = 1; i < blockSize; i++) {
40
- const delta = Number(values[index + i]) - Number(values[index + i - 1]);
55
+ const delta = values[index + i] - values[index + i - 1];
41
56
  blockDeltas[i] = delta;
42
57
  if (delta < minDelta) minDelta = delta;
43
58
  }
@@ -93,11 +108,12 @@ function deltaBinaryPackBigInt(writer, values) {
93
108
  writer.appendVarInt(MINIBLOCKS_PER_BLOCK);
94
109
  writer.appendVarInt(count);
95
110
  writer.appendZigZag(values[0]);
111
+ const blockDeltas = new BigInt64Array(BLOCK_SIZE);
112
+ const bitWidths = new Uint8Array(MINIBLOCKS_PER_BLOCK);
96
113
  let index = 1;
97
114
  while (index < count) {
98
115
  const blockEnd = Math.min(index + BLOCK_SIZE, count);
99
116
  const blockSize = blockEnd - index;
100
- const blockDeltas = new BigInt64Array(blockSize);
101
117
  let minDelta = BigInt(values[index]) - BigInt(values[index - 1]);
102
118
  blockDeltas[0] = minDelta;
103
119
  for (let i = 1; i < blockSize; i++) {
@@ -106,7 +122,6 @@ function deltaBinaryPackBigInt(writer, values) {
106
122
  if (delta < minDelta) minDelta = delta;
107
123
  }
108
124
  writer.appendZigZag(minDelta);
109
- const bitWidths = new Uint8Array(MINIBLOCKS_PER_BLOCK);
110
125
  for (let mb = 0; mb < MINIBLOCKS_PER_BLOCK; mb++) {
111
126
  const mbStart = mb * VALUES_PER_MINIBLOCK;
112
127
  const mbEnd = Math.min(mbStart + VALUES_PER_MINIBLOCK, blockSize);
@@ -1,4 +1,4 @@
1
- import { getMaxDefinitionLevel, isListLike, isMapLike } from "../../../../hyparquet@1.29.2/node_modules/hyparquet/src/schema.mjs";
1
+ import { getMaxDefinitionLevel, isListLike, isMapLike } from "../../../../hyparquet@1.31.1/node_modules/hyparquet/src/schema.mjs";
2
2
  function encodeNestedValues(treePath, rows) {
3
3
  const schemaPath = treePath.map((n) => n.element);
4
4
  if (treePath.length < 2) throw new Error("parquet schema path must include column");
@@ -1,5 +1,5 @@
1
+ import { BoundaryOrders } from "../../../../hyparquet@1.31.1/node_modules/hyparquet/src/constants.mjs";
1
2
  import { serializeTCompactProtocol } from "./thrift.mjs";
2
- import { BoundaryOrders } from "../../../../hyparquet@1.29.2/node_modules/hyparquet/src/constants.mjs";
3
3
  function writeIndexes(writer, pageIndexes) {
4
4
  for (const { chunk, columnIndex } of pageIndexes) writeColumnIndex(writer, chunk, columnIndex);
5
5
  for (const { chunk, offsetIndex } of pageIndexes) writeOffsetIndex(writer, chunk, offsetIndex);
@@ -1,6 +1,6 @@
1
- import { getSchemaPath } from "../../../../hyparquet@1.29.2/node_modules/hyparquet/src/schema.mjs";
1
+ import { CompressionCodecs, ConvertedTypes, EdgeInterpolationAlgorithms, Encodings, FieldRepetitionTypes, PageTypes, ParquetTypes } from "../../../../hyparquet@1.31.1/node_modules/hyparquet/src/constants.mjs";
2
+ import { getSchemaPath } from "../../../../hyparquet@1.31.1/node_modules/hyparquet/src/schema.mjs";
2
3
  import { ThriftStruct, serializeTCompactProtocol } from "./thrift.mjs";
3
- import { CompressionCodecs, ConvertedTypes, EdgeInterpolationAlgorithms, Encodings, FieldRepetitionTypes, PageTypes, ParquetTypes } from "../../../../hyparquet@1.29.2/node_modules/hyparquet/src/constants.mjs";
4
4
  import { unconvertStatistics } from "./unconvert.mjs";
5
5
  function writeMetadata(writer, metadata) {
6
6
  const compact = {
@@ -1,4 +1,4 @@
1
- import { getSchemaPath } from "../../../../hyparquet@1.29.2/node_modules/hyparquet/src/schema.mjs";
1
+ import { getSchemaPath } from "../../../../hyparquet@1.31.1/node_modules/hyparquet/src/schema.mjs";
2
2
  import { writeBlooms } from "./bloom.mjs";
3
3
  import { encodeVariantColumn } from "./variant.mjs";
4
4
  import { writeColumn } from "./column.mjs";
@@ -1,4 +1,4 @@
1
- import "../../../../hyparquet@1.29.2/node_modules/hyparquet/types/node.mjs";
1
+ import "../../../../hyparquet@1.31.1/node_modules/hyparquet/types/node.mjs";
2
2
  export interface Writer {
3
3
  buffer: ArrayBuffer;
4
4
  view: DataView;
@@ -1,5 +1,5 @@
1
- import { toJson } from "../../../../hyparquet@1.29.2/node_modules/hyparquet/src/utils.mjs";
2
- import "../../../../hyparquet@1.29.2/node_modules/hyparquet/src/node.mjs";
1
+ import { toJson } from "../../../../hyparquet@1.31.1/node_modules/hyparquet/src/utils.mjs";
2
+ import "../../../../hyparquet@1.31.1/node_modules/hyparquet/src/node.mjs";
3
3
  import { geojsonToWkb } from "./wkb.mjs";
4
4
  const dayMillis = 864e5;
5
5
  function mapConverted(values, convert) {
@@ -1,4 +1,4 @@
1
- import "../../../../hyparquet@1.29.2/node_modules/hyparquet/types/node.mjs";
1
+ import "../../../../hyparquet@1.31.1/node_modules/hyparquet/types/node.mjs";
2
2
  import { Writer as Writer$1 } from "../src/types.mjs";
3
3
  import "./write.mjs";
4
4
  import "./write-rows.mjs";
@@ -0,0 +1,2 @@
1
+ import "../../../../hyparquet@1.31.1/node_modules/hyparquet/types/node.mjs";
2
+ import "../src/types.mjs";
@@ -0,0 +1,2 @@
1
+ import "../../../../hyparquet@1.31.1/node_modules/hyparquet/types/node.mjs";
2
+ import "../src/types.mjs";
@@ -29,7 +29,7 @@ function matchFilter(record, filter, strict = true) {
29
29
  if (operator === "$ne") return !equals(value, target, strict);
30
30
  if (operator === "$in") return Array.isArray(target) && matchesIn(value, target, strict);
31
31
  if (operator === "$nin") return Array.isArray(target) && !matchesIn(value, target, strict);
32
- if (operator === "$not") return !matchFilter({ [field]: value }, { [field]: target }, strict);
32
+ if (operator === "$not") return !matchFilter({ value }, { value: target }, strict);
33
33
  return true;
34
34
  });
35
35
  });
@@ -1,8 +1,8 @@
1
1
  import { parquetMetadataAsync, parquetSchema } from "./metadata.mjs";
2
2
  import "./indexes.mjs";
3
- import "./utils.mjs";
3
+ import { toJson } from "./utils.mjs";
4
4
  import "./snappy.mjs";
5
5
  import "./scan.mjs";
6
6
  import { parquetReadObjects } from "./read.mjs";
7
7
  import "./query.mjs";
8
- export { parquetMetadataAsync, parquetReadObjects, parquetSchema };
8
+ export { parquetMetadataAsync, parquetReadObjects, parquetSchema, toJson };
@@ -3,15 +3,15 @@ import { DEFAULT_PARSERS } from "./convert.mjs";
3
3
  import { deserializeTCompactProtocol } from "./thrift.mjs";
4
4
  import { convertMetadata } from "./metadata.mjs";
5
5
  function readColumnIndex(reader, schema, parsers = void 0) {
6
- parsers = {
6
+ const allParsers = {
7
7
  ...DEFAULT_PARSERS,
8
8
  ...parsers
9
9
  };
10
10
  const thrift = deserializeTCompactProtocol(reader);
11
11
  return {
12
12
  null_pages: thrift.field_1,
13
- min_values: thrift.field_2.map((m) => convertMetadata(m, schema, parsers)),
14
- max_values: thrift.field_3.map((m) => convertMetadata(m, schema, parsers)),
13
+ min_values: thrift.field_2.map((m) => convertMetadata(m, schema, allParsers)),
14
+ max_values: thrift.field_3.map((m) => convertMetadata(m, schema, allParsers)),
15
15
  boundary_order: BoundaryOrders[thrift.field_4],
16
16
  null_counts: thrift.field_5,
17
17
  repetition_level_histograms: thrift.field_6,
@@ -35,7 +35,7 @@ async function parquetMetadataAsync(asyncBuffer, { parsers, initialFetchSize = d
35
35
  function parquetMetadata(arrayBuffer, { parsers, geoparquet = true } = {}) {
36
36
  if (!(arrayBuffer instanceof ArrayBuffer)) throw new Error("parquet expected ArrayBuffer");
37
37
  const view = new DataView(arrayBuffer);
38
- parsers = {
38
+ const allParsers = {
39
39
  ...DEFAULT_PARSERS,
40
40
  ...parsers
41
41
  };
@@ -83,7 +83,7 @@ function parquetMetadata(arrayBuffer, { parsers, geoparquet = true } = {}) {
83
83
  data_page_offset: column.field_3.field_9,
84
84
  index_page_offset: column.field_3.field_10,
85
85
  dictionary_page_offset: column.field_3.field_11,
86
- statistics: convertStats(column.field_3.field_12, columnSchema[columnIndex], parsers),
86
+ statistics: convertStats(column.field_3.field_12, columnSchema[columnIndex], allParsers),
87
87
  encoding_stats: column.field_3.field_13?.map((encodingStat) => ({
88
88
  page_type: PageTypes[encodingStat.field_1],
89
89
  encoding: Encodings[encodingStat.field_2],
@@ -1,7 +1,7 @@
1
1
  import { parquetMetadataAsync, parquetSchema } from "./metadata.mjs";
2
2
  import "./indexes.mjs";
3
- import "./utils.mjs";
3
+ import { toJson } from "./utils.mjs";
4
4
  import "./snappy.mjs";
5
5
  import { parquetReadObjects } from "./read.mjs";
6
6
  import "./index.mjs";
7
- export { parquetMetadataAsync, parquetReadObjects, parquetSchema };
7
+ export { parquetMetadataAsync, parquetReadObjects, parquetSchema, toJson };
@@ -13,12 +13,12 @@ function readRowGroup(options, { metadata }, groupPlan) {
13
13
  pathInSchema,
14
14
  element: schemaPath[schemaPath.length - 1].element,
15
15
  schemaPath,
16
+ ...options,
17
+ ...chunk.columnMetadata,
16
18
  parsers: {
17
19
  ...DEFAULT_PARSERS,
18
20
  ...options.parsers
19
- },
20
- ...options,
21
- ...chunk.columnMetadata
21
+ }
22
22
  };
23
23
  const { startByte, endByte } = chunk.range;
24
24
  if ("pageLocations" in chunk) asyncColumns.push({
@@ -133,7 +133,7 @@ async function asyncGroupToRows({ asyncColumns }, selectStart, selectEnd, column
133
133
  }
134
134
  function assembleAsync(asyncRowGroup, schemaTree, parsers) {
135
135
  const { asyncColumns } = asyncRowGroup;
136
- parsers = {
136
+ const allParsers = {
137
137
  ...DEFAULT_PARSERS,
138
138
  ...parsers
139
139
  };
@@ -147,14 +147,14 @@ function assembleAsync(asyncRowGroup, schemaTree, parsers) {
147
147
  const resolved = await Promise.all(childColumns.map((c) => c.data));
148
148
  const subcolumnData = /* @__PURE__ */ new Map();
149
149
  const flattened = resolved.map(({ data }) => flatten(data));
150
- const skipped = Math.max(...resolved.map((result) => result.skipped));
151
- const end = Math.min(...resolved.map((result, i) => result.skipped + flattened[i].length));
150
+ const skipped = Math.max(asyncRowGroup.selectStart ?? 0, ...resolved.map((result) => result.skipped));
151
+ const end = Math.min(asyncRowGroup.selectEnd ?? Infinity, ...resolved.map((result, i) => result.skipped + flattened[i].length));
152
152
  for (let i = 0; i < childColumns.length; i++) {
153
153
  const start = skipped - resolved[i].skipped;
154
154
  const length = Math.max(0, end - skipped);
155
155
  subcolumnData.set(childColumns[i].pathInSchema.join("."), flattened[i].slice(start, start + length));
156
156
  }
157
- assembleNested(subcolumnData, child, parsers);
157
+ assembleNested(subcolumnData, child, allParsers);
158
158
  const assembled = subcolumnData.get(child.element.name);
159
159
  if (!assembled) throw new Error("parquet column data not assembled");
160
160
  return {
@@ -22,4 +22,12 @@ export type ParquetQueryOperator = {
22
22
  $in?: ParquetQueryValue[];
23
23
  $nin?: ParquetQueryValue[];
24
24
  $not?: ParquetQueryOperator;
25
- };
25
+ };
26
+ /**
27
+ * File-like object that can read slices of a file asynchronously.
28
+ */
29
+ export interface AsyncBuffer {
30
+ byteLength: number;
31
+ slice(start: number, end?: number): Awaitable<ArrayBuffer>;
32
+ }
33
+ export type Awaitable<T> = T | Promise<T>;
@@ -1,4 +1,21 @@
1
1
  import "./metadata.mjs";
2
+ function toJson(obj) {
3
+ if (obj === void 0) return null;
4
+ if (typeof obj === "bigint") return Number(obj);
5
+ if (Object.is(obj, -0)) return 0;
6
+ if (Array.isArray(obj)) return obj.map(toJson);
7
+ if (obj instanceof Uint8Array) return Array.from(obj);
8
+ if (obj instanceof Date) return obj.toISOString();
9
+ if (obj instanceof Object) {
10
+ const newObj = {};
11
+ for (const key of Object.keys(obj)) {
12
+ if (obj[key] === void 0) continue;
13
+ newObj[key] = toJson(obj[key]);
14
+ }
15
+ return newObj;
16
+ }
17
+ return obj;
18
+ }
2
19
  function concat(aaa, bbb) {
3
20
  const chunk = 1e4;
4
21
  for (let i = 0; i < bbb.length; i += chunk) aaa.push(...bbb.slice(i, i + chunk));
@@ -29,4 +46,4 @@ function flatten(chunks) {
29
46
  for (const chunk of chunks) concat(output, chunk);
30
47
  return output;
31
48
  }
32
- export { concat, equals, flatten };
49
+ export { concat, equals, flatten, toJson };
@@ -1,4 +1,4 @@
1
- import { ParquetQueryFilter as ParquetQueryFilter$1 } from "../src/types.mjs";
1
+ import { AsyncBuffer as AsyncBuffer$1, ParquetQueryFilter as ParquetQueryFilter$1 } from "../src/types.mjs";
2
2
  import "./indexes.mjs";
3
3
  import "./metadata.mjs";
4
4
  import "./read.mjs";
@@ -6,6 +6,7 @@ import "./scan.mjs";
6
6
  import "./query.mjs";
7
7
  import "./snappy.mjs";
8
8
  import "./utils.mjs";
9
+ export type AsyncBuffer = AsyncBuffer$1;
9
10
  export type ParquetQueryFilter = ParquetQueryFilter$1;
10
11
  /**
11
12
  * Explicitly export types for use in downstream typescript projects through
@@ -0,0 +1,3 @@
1
+ import "../src/types.mjs";
2
+ import { AsyncBuffer, ParquetQueryFilter } from "./index.mjs";
3
+ export { AsyncBuffer, ParquetQueryFilter };
@@ -0,0 +1,5 @@
1
+ import "../../../../../hyparquet@1.31.1/node_modules/hyparquet/src/convert.mjs";
2
+ import "../../../../../hyparquet-compressors@1.1.2/node_modules/hyparquet-compressors/src/index.mjs";
3
+ import "./avro.metadata.mjs";
4
+ new TextDecoder();
5
+ export {};
@@ -0,0 +1,2 @@
1
+ import "../../../../../hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f/node_modules/hyparquet-writer/src/node.mjs";
2
+ export {};
@@ -0,0 +1,9 @@
1
+ import "../../../../hyparquet@1.31.1/node_modules/hyparquet/src/node.mjs";
2
+ import "../../../../hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f/node_modules/hyparquet-writer/src/node.mjs";
3
+ import "../../../../hyparquet-compressors@1.1.2/node_modules/hyparquet-compressors/src/index.mjs";
4
+ import "./avro/avro.metadata.mjs";
5
+ import "./avro/avro.read.mjs";
6
+ import "./utils.mjs";
7
+ import "./delete.mjs";
8
+ import "./puffin/puffin.mjs";
9
+ export {};
@@ -3,7 +3,7 @@ import "./metadata.mjs";
3
3
  import "./catalog/rest.mjs";
4
4
  import "./create.mjs";
5
5
  import "./manifest.mjs";
6
- import "../../../../squirreling@0.16.4/node_modules/squirreling/src/index.mjs";
6
+ import "../../../../squirreling@0.16.6/node_modules/squirreling/src/index.mjs";
7
7
  import "./read.mjs";
8
8
  import { icebergCreateTable } from "./write/write.mjs";
9
9
  import "./catalog/file.mjs";
@@ -0,0 +1,12 @@
1
+ import "../../../../hyparquet@1.31.1/node_modules/hyparquet/src/schema.mjs";
2
+ import "../../../../hyparquet@1.31.1/node_modules/hyparquet/src/utils.mjs";
3
+ import "../../../../hyparquet@1.31.1/node_modules/hyparquet/src/filter.mjs";
4
+ import "../../../../hyparquet@1.31.1/node_modules/hyparquet/src/node.mjs";
5
+ import "../../../../hyparquet-compressors@1.1.2/node_modules/hyparquet-compressors/src/index.mjs";
6
+ import "./utils.mjs";
7
+ import "./delete.mjs";
8
+ import "./fetch.mjs";
9
+ import "./metadata.mjs";
10
+ import "./manifest.mjs";
11
+ import "../../../../squirreling@0.16.6/node_modules/squirreling/src/index.mjs";
12
+ export {};
@@ -0,0 +1,3 @@
1
+ import "../../../../hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f/node_modules/hyparquet-writer/src/node.mjs";
2
+ import "./sigv4.mjs";
3
+ export {};
@@ -1,7 +1,7 @@
1
1
  import "../fetch.mjs";
2
2
  import "../metadata.mjs";
3
3
  import "../manifest.mjs";
4
- import "../../../../../squirreling@0.16.4/node_modules/squirreling/src/index.mjs";
4
+ import "../../../../../squirreling@0.16.6/node_modules/squirreling/src/index.mjs";
5
5
  import "../read.mjs";
6
6
  import "../prune.mjs";
7
7
  import "./whereFilter.mjs";
@@ -1,5 +1,5 @@
1
1
  import "../fetch.mjs";
2
2
  import "../catalog/loadTable.mjs";
3
- import "../../../../../squirreling@0.16.4/node_modules/squirreling/src/index.mjs";
3
+ import "../../../../../squirreling@0.16.6/node_modules/squirreling/src/index.mjs";
4
4
  import "./icebergDataSource.mjs";
5
5
  export {};
@@ -1,7 +1,7 @@
1
- import { AsyncBuffer } from "../../../../hyparquet@1.29.2/node_modules/hyparquet/types/index.mjs";
2
- import "../../../../hyparquet@1.29.2/node_modules/hyparquet/types/node.mjs";
3
- import { Writer } from "../../../../hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f/node_modules/hyparquet-writer/types/index.mjs";
4
- import "../../../../hyparquet-writer@0.16.9_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f/node_modules/hyparquet-writer/types/node.mjs";
1
+ import { AsyncBuffer } from "../../../../hyparquet@1.31.1/node_modules/hyparquet/types/index.mjs";
2
+ import "../../../../hyparquet@1.31.1/node_modules/hyparquet/types/node.mjs";
3
+ import { Writer } from "../../../../hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f/node_modules/hyparquet-writer/types/index.mjs";
4
+ import "../../../../hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f/node_modules/hyparquet-writer/types/node.mjs";
5
5
  export interface WriterOptions {
6
6
  /**
7
7
  * If `'*'`, the writer must create the object only if it does not already
@@ -0,0 +1,5 @@
1
+ import "../../../../../hyparquet-writer@0.16.10_patch_hash_d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f/node_modules/hyparquet-writer/src/node.mjs";
2
+ import "../utils.mjs";
3
+ import "../schema.mjs";
4
+ import "./conversions.mjs";
5
+ export {};
@@ -1,4 +1,4 @@
1
- import "../../../../../hyparquet@1.29.2/node_modules/hyparquet/src/utils.mjs";
1
+ import "../../../../../hyparquet@1.31.1/node_modules/hyparquet/src/utils.mjs";
2
2
  import "../utils.mjs";
3
3
  import "../fetch.mjs";
4
4
  import "./partition.mjs";
@@ -0,0 +1,2 @@
1
+ import "../../../../hyparquet@1.31.1/node_modules/hyparquet/types/node.mjs";
2
+ import "../src/types.mjs";
@@ -4,7 +4,7 @@ import "./catalog/file.mjs";
4
4
  import "./catalog/rest.mjs";
5
5
  import "./fetch.mjs";
6
6
  import "./s3.mjs";
7
- import "../../../../squirreling@0.16.4/node_modules/squirreling/src/index.mjs";
7
+ import "../../../../squirreling@0.16.6/node_modules/squirreling/src/index.mjs";
8
8
  import "./read.mjs";
9
9
  import "./metadata.mjs";
10
10
  import "./manifest.mjs";
@@ -0,0 +1,3 @@
1
+ import "../../../../hyparquet@1.31.1/node_modules/hyparquet/types/node.mjs";
2
+ import "../src/types.mjs";
3
+ import "../../../../squirreling@0.16.6/node_modules/squirreling/src/index.mjs";
@@ -0,0 +1,2 @@
1
+ import "../../src/types.mjs";
2
+ import "../../../../../squirreling@0.16.6/node_modules/squirreling/src/index.mjs";
@@ -0,0 +1,2 @@
1
+ import "../../src/types.mjs";
2
+ import "../../../../../squirreling@0.16.6/node_modules/squirreling/src/index.mjs";
@@ -1,3 +1,4 @@
1
+ import "../backend/dataSource.mjs";
1
2
  import "../expression/alias.mjs";
2
3
  import "../validation/parseErrors.mjs";
3
4
  import "../validation/tables.mjs";
@@ -1,4 +1,4 @@
1
- import { AnalysisParams, AnalysisResult } from "../analysis-types.mjs";
1
+ import { AnalysisParams, AnalysisResult, AnalyzerCoverage } from "../analysis-types.mjs";
2
2
  import { ComparisonMode, ResolvedWindow, WindowPreset } from "../period/index.mjs";
3
3
  export type ReportStepStatus = 'pending' | 'running' | 'done' | 'skipped' | 'error';
4
4
  /**
@@ -90,6 +90,8 @@ export interface ReportStepStateMeta {
90
90
  type: string;
91
91
  status: ReportStepStatus;
92
92
  error?: string;
93
+ /** Set on `done` steps. `truncated` means the step read only part of its rows. */
94
+ coverage?: AnalyzerCoverage;
93
95
  }
94
96
  export interface ReportResultMeta {
95
97
  durationMs: number;
@@ -122,6 +124,11 @@ export interface ReportContext<P extends ReportParams = ReportParams> {
122
124
  params: P;
123
125
  /** Hash of registry/code version. Bumped via package version. */
124
126
  registryVersion: string;
127
+ /**
128
+ * Row-plan fetch cap applied to every step (`AnalysisParams.fetchBudget`).
129
+ * Omit for the default. SQL plans ignore it.
130
+ */
131
+ fetchBudget?: number;
125
132
  }
126
133
  /**
127
134
  * Reduce step results → sections. Runtime injects `meta` post-reduce.
@@ -1,4 +1,5 @@
1
1
  import { escapeLike } from "../sql-fragments.mjs";
2
+ import { toPath } from "../ingest.mjs";
2
3
  import { LOGICAL_DATASETS, UnresolvableDatasetError, inferLogicalDataset, isDatasetResolvable } from "./datasets.mjs";
3
4
  import { sql } from "drizzle-orm";
4
5
  const METRIC_NAMES = [
@@ -155,18 +156,19 @@ function createSqlFragments(config) {
155
156
  const cRef = dim === "queryCanonical" ? void 0 : colRef(tableKey, dimColumn(dim, tableKey));
156
157
  const matchExpr = dim === "page" || dim === "queryCanonical" ? dimExprSql(dim, tableKey) : cRef;
157
158
  const patternExpr = dim === "queryCanonical" ? matchExpr : cRef;
159
+ const value = dim === "page" ? toPath(f.expression) : f.expression;
158
160
  switch (f.operator) {
159
161
  case "equals":
160
- preds.push(sql`${matchExpr} = ${f.expression}`);
162
+ preds.push(sql`${matchExpr} = ${value}`);
161
163
  break;
162
164
  case "notEquals":
163
- preds.push(sql`${matchExpr} != ${f.expression}`);
165
+ preds.push(sql`${matchExpr} != ${value}`);
164
166
  break;
165
167
  case "contains":
166
- preds.push(sql`${patternExpr} LIKE ${`%${escapeLike(f.expression)}%`} ESCAPE '\\'`);
168
+ preds.push(sql`${patternExpr} LIKE ${`%${escapeLike(value)}%`} ESCAPE '\\'`);
167
169
  break;
168
170
  case "notContains":
169
- preds.push(sql`${patternExpr} NOT LIKE ${`%${escapeLike(f.expression)}%`} ESCAPE '\\'`);
171
+ preds.push(sql`${patternExpr} NOT LIKE ${`%${escapeLike(value)}%`} ESCAPE '\\'`);
170
172
  break;
171
173
  case "includingRegex":
172
174
  preds.push(regexPredicate(patternExpr, f.expression, false));
package/dist/schema.d.mts CHANGED
@@ -24,11 +24,13 @@ export declare function naturalKeyColumns(table: TableName): readonly string[];
24
24
  * (date, dimension) tuple is produced exactly once per slice — so on healthy
25
25
  * data this is a no-op. It exists as a recurrence guard: the 2026-04 monthly
26
26
  * compaction corruption folded a complete month back on top of its own daily
27
- * inputs, doubling every row. Absorbing duplicates at every write/compaction
27
+ * inputs, doubling every row. Absorbing duplicates at a write or compaction
28
28
  * boundary keeps that class of bug from inflating impressions downstream.
29
29
  *
30
30
  * Last occurrence wins. Observed duplicates are byte-identical, so the choice
31
- * of survivor is immaterial.
31
+ * of survivor is immaterial. Rows that are distinct facts under one stored
32
+ * key, such as two Google URLs that normalize to one path, must add instead:
33
+ * use `sumByStoredKey` from `@gscdump/engine/ingest`.
32
34
  */
33
35
  export declare function dedupeByNaturalKey(table: TableName, rows: readonly Row[]): Row[];
34
36
  export declare function dimensionToColumn(dim: string, _table: TableName): string;
@@ -1,6 +1,6 @@
1
1
  import { CompactionThresholds } from "./compaction.mjs";
2
- import { ParquetQueryFilter } from "./node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/types/index.mjs";
3
- import "./node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/types/node.mjs";
2
+ import { ParquetQueryFilter } from "./node_modules/.pnpm/hyparquet@1.31.1/node_modules/hyparquet/types/index.mjs";
3
+ import "./node_modules/.pnpm/hyparquet@1.31.1/node_modules/hyparquet/types/node.mjs";
4
4
  import { Grain, Grain as Grain$1, Row, Row as Row$1, TableName, TableName as TableName$1, TenantCtx, TenantCtx as TenantCtx$1 } from "@gscdump/contracts";
5
5
  import { BuilderState, SearchType, SearchType as SearchType$1 } from "gscdump/query";
6
6
  export interface WriteCtx extends TenantCtx {
@@ -280,6 +280,8 @@ export interface ManifestStore {
280
280
  bumpWatermark: (scope: WatermarkScope, date: string, at?: number) => Promise<void>;
281
281
  getSyncStates: (filter: SyncStateFilter) => Promise<SyncState[]>;
282
282
  setSyncState: (scope: SyncStateScope, state: SyncStateKind, detail?: SyncStateDetail) => Promise<void>;
283
+ /** Set one state on many scopes in a single write. Sync uses it to mark a whole plan `pending`. */
284
+ setSyncStates: (scopes: readonly SyncStateScope[], state: SyncStateKind, detail?: SyncStateDetail) => Promise<void>;
283
285
  /**
284
286
  * Serialize concurrent writers against the same scope. Held across the
285
287
  * write+register window so GC (orphan sweep) won't delete bytes that are
@@ -454,11 +456,17 @@ export interface RunSQLOptions {
454
456
  profiler?: QueryProfiler;
455
457
  }
456
458
  export interface StorageEngine {
459
+ /**
460
+ * Replace one day partition with `rows`. URLs are normalized to paths
461
+ * first, and rows that then share a stored key sum their metrics. Writing
462
+ * the same day again replaces it, so a re-fire never doubles the totals.
463
+ */
457
464
  writeDay: (ctx: WriteCtx, rows: Row[]) => Promise<void>;
458
465
  /**
459
- * Read-merge-write a single-day hourly partition. Idempotent on
460
- * `(url, hour)` (last-write-wins): callers can re-fire the same slice
461
- * after a retry and the partition converges. `ctx.date` is the PT
466
+ * Read-merge-write a single-day hourly partition. Rows in one call that
467
+ * share a stored key sum. Across calls, the newest write wins on
468
+ * `(url, hour)`: callers can re-fire the same slice after a retry and the
469
+ * partition converges. `ctx.date` is the PT
462
470
  * calendar day; rows must carry `hour` + `date` fields. Partition shape
463
471
  * `hourly/{date}`; coexists with daily partitions in the same `table`
464
472
  * prefix (`hourly_pages`).
@@ -534,6 +542,8 @@ export interface StorageEngine {
534
542
  getWatermarks: (filter: WatermarkFilter) => Promise<Watermark[]>;
535
543
  getSyncStates: (filter: SyncStateFilter) => Promise<SyncState[]>;
536
544
  setSyncState: (scope: SyncStateScope, state: SyncStateKind, detail?: SyncStateDetail) => Promise<void>;
545
+ /** Set one state on many scopes in a single write. Sync uses it to mark a whole plan `pending`. */
546
+ setSyncStates: (scopes: readonly SyncStateScope[], state: SyncStateKind, detail?: SyncStateDetail) => Promise<void>;
537
547
  /** Read the raw bytes of a single object. Rarely needed outside the `dump` CLI. */
538
548
  readObject: (key: string) => Promise<Uint8Array>;
539
549
  }
@@ -1,4 +1,4 @@
1
- import { snappyUncompress as snappyUncompress$1 } from "../node_modules/.pnpm/hyparquet@1.30.0/node_modules/hyparquet/src/snappy.mjs";
1
+ import { snappyUncompress as snappyUncompress$1 } from "../node_modules/.pnpm/hyparquet@1.31.1/node_modules/hyparquet/src/snappy.mjs";
2
2
  function decode(input, outputLength) {
3
3
  const output = new Uint8Array(outputLength);
4
4
  snappyUncompress$1(input, output);