@gscdump/engine 7.5.1 → 7.7.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 (79) hide show
  1. package/README.md +13 -0
  2. package/dist/adapters/hyparquet.d.mts +7 -0
  3. package/dist/adapters/hyparquet.mjs +33 -3
  4. package/dist/iceberg/catalog.d.mts +2 -2
  5. package/dist/iceberg/catalog.mjs +2 -2
  6. package/dist/node_modules/.pnpm/{hyparquet-compressors@1.1.2 → hyparquet-compressors@1.1.2_patch_hash_821c89dbb6181f0c34d9abebd844451458a4f16c04e7aa7a19abca0c09c2238d}/node_modules/hyparquet-compressors/src/gzip.mjs +23 -10
  7. package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/avro/avro.metadata.mjs +1 -0
  8. package/dist/node_modules/.pnpm/icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471/node_modules/icebird/src/avro/avro.read.mjs +6 -0
  9. package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/fetch.mjs +1 -1
  10. package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/manifest.mjs +1 -0
  11. package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/read.mjs +1 -1
  12. package/dist/node_modules/.pnpm/icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471/node_modules/icebird/src/write/geospatial.mjs +1 -0
  13. package/package.json +4 -4
  14. package/dist/node_modules/.pnpm/icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f/node_modules/icebird/src/avro/avro.read.mjs +0 -5
  15. /package/dist/node_modules/.pnpm/{hyparquet-compressors@1.1.2 → hyparquet-compressors@1.1.2_patch_hash_821c89dbb6181f0c34d9abebd844451458a4f16c04e7aa7a19abca0c09c2238d}/node_modules/hyparquet-compressors/src/brotli.bitreader.mjs +0 -0
  16. /package/dist/node_modules/.pnpm/{hyparquet-compressors@1.1.2 → hyparquet-compressors@1.1.2_patch_hash_821c89dbb6181f0c34d9abebd844451458a4f16c04e7aa7a19abca0c09c2238d}/node_modules/hyparquet-compressors/src/brotli.blocks.mjs +0 -0
  17. /package/dist/node_modules/.pnpm/{hyparquet-compressors@1.1.2 → hyparquet-compressors@1.1.2_patch_hash_821c89dbb6181f0c34d9abebd844451458a4f16c04e7aa7a19abca0c09c2238d}/node_modules/hyparquet-compressors/src/brotli.context.mjs +0 -0
  18. /package/dist/node_modules/.pnpm/{hyparquet-compressors@1.1.2 → hyparquet-compressors@1.1.2_patch_hash_821c89dbb6181f0c34d9abebd844451458a4f16c04e7aa7a19abca0c09c2238d}/node_modules/hyparquet-compressors/src/brotli.contextmap.mjs +0 -0
  19. /package/dist/node_modules/.pnpm/{hyparquet-compressors@1.1.2 → hyparquet-compressors@1.1.2_patch_hash_821c89dbb6181f0c34d9abebd844451458a4f16c04e7aa7a19abca0c09c2238d}/node_modules/hyparquet-compressors/src/brotli.dictionary.mjs +0 -0
  20. /package/dist/node_modules/.pnpm/{hyparquet-compressors@1.1.2 → hyparquet-compressors@1.1.2_patch_hash_821c89dbb6181f0c34d9abebd844451458a4f16c04e7aa7a19abca0c09c2238d}/node_modules/hyparquet-compressors/src/brotli.huffman.mjs +0 -0
  21. /package/dist/node_modules/.pnpm/{hyparquet-compressors@1.1.2 → hyparquet-compressors@1.1.2_patch_hash_821c89dbb6181f0c34d9abebd844451458a4f16c04e7aa7a19abca0c09c2238d}/node_modules/hyparquet-compressors/src/brotli.mjs +0 -0
  22. /package/dist/node_modules/.pnpm/{hyparquet-compressors@1.1.2 → hyparquet-compressors@1.1.2_patch_hash_821c89dbb6181f0c34d9abebd844451458a4f16c04e7aa7a19abca0c09c2238d}/node_modules/hyparquet-compressors/src/brotli.prefix.mjs +0 -0
  23. /package/dist/node_modules/.pnpm/{hyparquet-compressors@1.1.2 → hyparquet-compressors@1.1.2_patch_hash_821c89dbb6181f0c34d9abebd844451458a4f16c04e7aa7a19abca0c09c2238d}/node_modules/hyparquet-compressors/src/brotli.streams.mjs +0 -0
  24. /package/dist/node_modules/.pnpm/{hyparquet-compressors@1.1.2 → hyparquet-compressors@1.1.2_patch_hash_821c89dbb6181f0c34d9abebd844451458a4f16c04e7aa7a19abca0c09c2238d}/node_modules/hyparquet-compressors/src/brotli.transform.mjs +0 -0
  25. /package/dist/node_modules/.pnpm/{hyparquet-compressors@1.1.2 → hyparquet-compressors@1.1.2_patch_hash_821c89dbb6181f0c34d9abebd844451458a4f16c04e7aa7a19abca0c09c2238d}/node_modules/hyparquet-compressors/src/compressors.mjs +0 -0
  26. /package/dist/node_modules/.pnpm/{hyparquet-compressors@1.1.2 → hyparquet-compressors@1.1.2_patch_hash_821c89dbb6181f0c34d9abebd844451458a4f16c04e7aa7a19abca0c09c2238d}/node_modules/hyparquet-compressors/src/gzip.huffman.mjs +0 -0
  27. /package/dist/node_modules/.pnpm/{hyparquet-compressors@1.1.2 → hyparquet-compressors@1.1.2_patch_hash_821c89dbb6181f0c34d9abebd844451458a4f16c04e7aa7a19abca0c09c2238d}/node_modules/hyparquet-compressors/src/index.mjs +0 -0
  28. /package/dist/node_modules/.pnpm/{hyparquet-compressors@1.1.2 → hyparquet-compressors@1.1.2_patch_hash_821c89dbb6181f0c34d9abebd844451458a4f16c04e7aa7a19abca0c09c2238d}/node_modules/hyparquet-compressors/src/lz4.mjs +0 -0
  29. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f/node_modules/icebird/src/catalog/file.mjs → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471/node_modules/icebird/src/avro/avro.budget.mjs} +0 -0
  30. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/avro/avro.write.mjs +0 -0
  31. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f/node_modules/icebird/src/puffin/roaring.mjs → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471/node_modules/icebird/src/catalog/file.mjs} +0 -0
  32. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/catalog/loadTable.mjs +0 -0
  33. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/catalog/rest.mjs +0 -0
  34. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/create.mjs +0 -0
  35. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/delete.mjs +0 -0
  36. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/index.mjs +0 -0
  37. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/json.mjs +0 -0
  38. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/metadata.mjs +0 -0
  39. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/prune.mjs +0 -0
  40. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/puffin/deletion-vector.mjs +0 -0
  41. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/puffin/puffin.mjs +0 -0
  42. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f/node_modules/icebird/src/sql/whereFilter.mjs → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471/node_modules/icebird/src/puffin/roaring.mjs} +0 -0
  43. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/s3.mjs +0 -0
  44. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/schema.mjs +0 -0
  45. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/sigv4.mjs +0 -0
  46. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/sql/icebergDataSource.mjs +0 -0
  47. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/sql/icebergQuery.mjs +0 -0
  48. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f/node_modules/icebird/src/write/geospatial.mjs → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471/node_modules/icebird/src/sql/whereFilter.mjs} +0 -0
  49. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/types.d.mts +0 -0
  50. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/utils.mjs +0 -0
  51. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/write/commit.mjs +0 -0
  52. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/write/conversions.mjs +0 -0
  53. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/write/delete-file.mjs +0 -0
  54. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/write/manifest-list.mjs +0 -0
  55. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/write/manifest.mjs +0 -0
  56. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/write/parquet.mjs +0 -0
  57. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/write/partition.mjs +0 -0
  58. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/write/rewrite.mjs +0 -0
  59. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/write/serde.mjs +0 -0
  60. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/write/snapshot.mjs +0 -0
  61. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/write/sort.mjs +0 -0
  62. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/write/stage-deletion-vector.mjs +0 -0
  63. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/write/stage-position-delete.mjs +0 -0
  64. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/write/stage.mjs +0 -0
  65. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/write/stats.mjs +0 -0
  66. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/write/transform.mjs +0 -0
  67. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/src/write/write.mjs +0 -0
  68. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/types/catalog/file.d.mts +0 -0
  69. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/types/catalog/rest.d.mts +0 -0
  70. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/types/create.d.mts +0 -0
  71. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/types/fetch.d.mts +0 -0
  72. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/types/index.d.mts +0 -0
  73. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/types/manifest.d.mts +0 -0
  74. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/types/metadata.d.mts +0 -0
  75. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/types/read.d.mts +0 -0
  76. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/types/s3.d.mts +0 -0
  77. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/types/sql/icebergDataSource.d.mts +0 -0
  78. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/types/sql/icebergQuery.d.mts +0 -0
  79. /package/dist/node_modules/.pnpm/{icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f → icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471}/node_modules/icebird/types/write/write.d.mts +0 -0
package/README.md CHANGED
@@ -42,6 +42,19 @@ options produces identical bytes regardless of producer batch boundaries.
42
42
  This supports a counting/digest pass followed by a separately coordinated
43
43
  fixed-length upload, without the codec owning transport or commit semantics.
44
44
 
45
+ The streaming encoder normally refuses when retained footer/index descriptors
46
+ exceed `limits.maxRetainedMetadataBytes` (8 MiB by default). For wide values,
47
+ callers can explicitly choose `metadataOverflow: 'omit-statistics'`. On the
48
+ first overflow it omits column-chunk statistics and ColumnIndexes throughout
49
+ that file, including earlier groups. OffsetIndexes, encoding descriptors,
50
+ schema, row counts, data/dictionary pages and explicit `fileMetadata` remain
51
+ unchanged. Required descriptors must still fit the same budget, and the
52
+ group/footer output-buffer limit still applies. Missing statistics mean unknown
53
+ bounds, so readers may scan more pages or groups; they do not mean empty data.
54
+ If no overflow occurs, this option preserves the normal bytes. It bounds
55
+ retained optional descriptors, not their transient construction or total heap.
56
+ The array encoders and all omitted-option behavior remain unchanged.
57
+
45
58
  `decodeParquetRowGroups({ byteLength, slice }, options)` reads exact byte ranges
46
59
  and by default yields one physical row group at a time. The caller must pin every range
47
60
  to the same immutable object or ETag. It preserves the existing date, column
@@ -29,6 +29,13 @@ export interface EncodeParquetBatchesOptions extends EncodeParquetOptions {
29
29
  columns: readonly ColumnDef[];
30
30
  /** Maximum rows per output group. Default 25000, matching the array codec. */
31
31
  rowGroupSize?: number;
32
+ /**
33
+ * Opt in to omitting all footer column statistics and ColumnIndexes if they
34
+ * exceed the retained metadata limit. Default: refuse. OffsetIndexes,
35
+ * required descriptors and explicit file metadata remain bounded/preserved.
36
+ * Missing statistics reduce pruning; this does not bound transient codec heap.
37
+ */
38
+ metadataOverflow?: 'omit-statistics';
32
39
  limits?: {
33
40
  /** Refuse a producer batch with more rows. Default 25000. */
34
41
  maxBatchRows?: number;
@@ -219,6 +219,11 @@ function streamLimit(value, fallback, name) {
219
219
  function scalarBytes(value) {
220
220
  return typeof value === "string" ? value.length * 3 + 8 : 16;
221
221
  }
222
+ var RetainedMetadataLimitError = class extends RangeError {
223
+ constructor() {
224
+ super("parquet stream exceeds maxRetainedMetadataBytes");
225
+ }
226
+ };
222
227
  function retainedDescriptorBytes(value, remaining) {
223
228
  const seen = /* @__PURE__ */ new Set();
224
229
  let bytes = 0;
@@ -233,12 +238,14 @@ function retainedDescriptorBytes(value, remaining) {
233
238
  visit(value[key]);
234
239
  }
235
240
  } else bytes += scalarBytes(value);
236
- if (bytes > remaining) throw new RangeError("parquet stream exceeds maxRetainedMetadataBytes");
241
+ if (bytes > remaining) throw new RetainedMetadataLimitError();
237
242
  };
238
243
  visit(value);
239
244
  return bytes;
240
245
  }
241
246
  async function encodeParquetRowBatches(batches, opts, write) {
247
+ const metadataOverflow = opts.metadataOverflow;
248
+ if (metadataOverflow !== void 0 && metadataOverflow !== "omit-statistics") throw new RangeError("parquet stream metadataOverflow must be omit-statistics when provided");
242
249
  const rowGroupSize = streamLimit(opts.rowGroupSize, ROW_GROUP_SIZE, "rowGroupSize");
243
250
  const maxBatchRows = streamLimit(opts.limits?.maxBatchRows, ROW_GROUP_SIZE, "maxBatchRows");
244
251
  const maxBatchBytes = streamLimit(opts.limits?.maxBatchBytes, 8388608, "maxBatchBytes");
@@ -260,7 +267,8 @@ async function encodeParquetRowBatches(batches, opts, write) {
260
267
  metadataBytes += scalarBytes(key) + scalarBytes(opts.fileMetadata[key]);
261
268
  if (metadataBytes > maxOutputBufferBytes) throw new RangeError("parquet stream file metadata exceeds maxOutputBufferBytes");
262
269
  }
263
- let retainedMetadataBytes = retainedDescriptorBytes([schema, opts.fileMetadata], maxRetainedMetadataBytes);
270
+ const initialMetadataBytes = retainedDescriptorBytes([schema, opts.fileMetadata], maxRetainedMetadataBytes);
271
+ let retainedMetadataBytes = initialMetadataBytes;
264
272
  const writer = new ByteWriter(Math.min(65536, maxOutputBufferBytes));
265
273
  writer.ensure = (size) => {
266
274
  const required = writer.index + size;
@@ -293,6 +301,14 @@ async function encodeParquetRowBatches(batches, opts, write) {
293
301
  let groupBytes = 0;
294
302
  let groups = 0;
295
303
  let rowCount = 0;
304
+ let omitStatistics = false;
305
+ const omitOptionalMetadata = (firstIndex) => {
306
+ for (let index = firstIndex; index < parquet.pendingIndexes.length; index++) {
307
+ const pending = parquet.pendingIndexes[index];
308
+ if (pending.chunk.meta_data) delete pending.chunk.meta_data.statistics;
309
+ delete pending.columnIndex;
310
+ }
311
+ };
296
312
  const flushGroup = async () => {
297
313
  if (!groupRows) return;
298
314
  if (++groups > maxRowGroups) throw new RangeError("parquet stream exceeds maxRowGroups");
@@ -306,7 +322,21 @@ async function encodeParquetRowBatches(batches, opts, write) {
306
322
  })),
307
323
  rowGroupSize: groupRows
308
324
  });
309
- retainedMetadataBytes += retainedDescriptorBytes([parquet.row_groups[parquet.row_groups.length - 1], parquet.pendingIndexes.slice(firstIndex)], maxRetainedMetadataBytes - retainedMetadataBytes);
325
+ if (omitStatistics) omitOptionalMetadata(firstIndex);
326
+ try {
327
+ retainedMetadataBytes += retainedDescriptorBytes([parquet.row_groups[parquet.row_groups.length - 1], parquet.pendingIndexes.slice(firstIndex)], maxRetainedMetadataBytes - retainedMetadataBytes);
328
+ } catch (error) {
329
+ if (!(error instanceof RetainedMetadataLimitError) || metadataOverflow !== "omit-statistics" || omitStatistics) throw error;
330
+ omitStatistics = true;
331
+ omitOptionalMetadata(0);
332
+ retainedMetadataBytes = initialMetadataBytes;
333
+ let index = 0;
334
+ for (const group of parquet.row_groups) {
335
+ const end = index + group.columns.length;
336
+ retainedMetadataBytes += retainedDescriptorBytes([group, parquet.pendingIndexes.slice(index, end)], maxRetainedMetadataBytes - retainedMetadataBytes);
337
+ index = end;
338
+ }
339
+ }
310
340
  values = codecs.map(() => []);
311
341
  groupRows = 0;
312
342
  groupBytes = 0;
@@ -1,7 +1,7 @@
1
1
  import { EngineError } from "../errors.mjs";
2
2
  import { IcebergTableName, PartitionKeyEncoding } from "./schema.mjs";
3
- import { icebergCreateTable } from "../node_modules/.pnpm/icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f/node_modules/icebird/types/write/write.mjs";
4
- import "../node_modules/.pnpm/icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f/node_modules/icebird/types/index.mjs";
3
+ import { icebergCreateTable } from "../node_modules/.pnpm/icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471/node_modules/icebird/types/write/write.mjs";
4
+ import "../node_modules/.pnpm/icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471/node_modules/icebird/types/index.mjs";
5
5
  import { Result } from "gscdump/result";
6
6
  import { CommitRetryOptions, ConnectIcebergOptions, IcebergCatalogConfig, IcebergConnection, IcebergListedDataFile, QueryProfiler } from "@gscdump/lakehouse";
7
7
  type IcebirdCreateTableOptions = Parameters<typeof icebergCreateTable>[0];
@@ -2,8 +2,8 @@ import { engineErrors } from "../errors.mjs";
2
2
  import { TABLE_METADATA } from "../drizzle-schema.mjs";
3
3
  import "../schema.mjs";
4
4
  import { DEFAULT_PARTITION_KEY_ENCODING, ICEBERG_PARTITION_SPEC, ICEBERG_TABLES, icebergSchemasFor } from "./schema.mjs";
5
- import { icebergCreateTable } from "../node_modules/.pnpm/icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f/node_modules/icebird/src/write/write.mjs";
6
- import "../node_modules/.pnpm/icebird@0.8.30_patch_hash_a400e343a199b1ca18601f96348011745ac6518fc07ffa71d5adfdd2ccc7d14f/node_modules/icebird/src/index.mjs";
5
+ import { icebergCreateTable } from "../node_modules/.pnpm/icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471/node_modules/icebird/src/write/write.mjs";
6
+ import "../node_modules/.pnpm/icebird@0.8.30_patch_hash_1359a91da68522a736babe444880ae391f19455fbe47c346f76cec92c5c2e471/node_modules/icebird/src/index.mjs";
7
7
  import { err, ok } from "gscdump/result";
8
8
  import { ICEBERG_TYPE_MAP, connectIcebergCatalog, dropIcebergTables, resolveIcebergDataFiles } from "@gscdump/lakehouse";
9
9
  import { icebergAppendRetrying } from "@gscdump/lakehouse/unsafe-raw";
@@ -39,12 +39,15 @@ function gzipStart(input, i) {
39
39
  for (let zs = (flag >> 3 & 1) + (flag >> 4 & 1); zs > 0; zs -= Number(!input[i++]));
40
40
  return i + (flag & 2);
41
41
  }
42
- function gunzip(input, output, inputIndex = 0, outputIndex = 0) {
43
- let out = output ?? /* @__PURE__ */ new Uint8Array(1024);
42
+ function gunzip(input, output, inputIndex = 0, outputIndex = 0, limits) {
43
+ const maximum = limits?.maxOutputBytes;
44
+ if (limits && (limits.raw !== true || !Number.isSafeInteger(maximum) || maximum < 0 || output || inputIndex !== 0 || outputIndex !== 0)) throw new RangeError("Invalid bounded raw DEFLATE options");
45
+ let out = output ?? new Uint8Array(limits ? Math.min(1024, maximum) : 1024);
46
+ if (limits && !input.length) throw new Error("unexpected EOF");
44
47
  if (!(input.length - inputIndex)) return out;
45
- const payloadStart = gzipStart(input, inputIndex);
46
- if (payloadStart === input.length - 8) return out;
47
- if (payloadStart > input.length - 8) throw new Error("unexpected EOF");
48
+ const payloadStart = limits ? 0 : gzipStart(input, inputIndex);
49
+ if (!limits && payloadStart === input.length - 8) return out;
50
+ if (!limits && payloadStart > input.length - 8) throw new Error("unexpected EOF");
48
51
  let pos = payloadStart * 8;
49
52
  let final = 0;
50
53
  let lengthBits = 0;
@@ -53,9 +56,10 @@ function gunzip(input, output, inputIndex = 0, outputIndex = 0) {
53
56
  let distMap;
54
57
  const totalBits = input.length * 8;
55
58
  function ensureSize(length) {
59
+ if (limits && (!Number.isSafeInteger(length) || length > maximum)) throw new RangeError("DEFLATE output byte limit exceeded");
56
60
  if (!output && length > out.length) {
57
61
  const old = out;
58
- out = new Uint8Array(Math.max(old.length * 2, length));
62
+ out = new Uint8Array(limits ? Math.min(maximum, Math.max(old.length * 2, length)) : Math.max(old.length * 2, length));
59
63
  out.set(old);
60
64
  }
61
65
  }
@@ -67,6 +71,7 @@ function gunzip(input, output, inputIndex = 0, outputIndex = 0) {
67
71
  if (!type) {
68
72
  const s = shft(pos) + 4;
69
73
  const l = input[s - 4] | input[s - 3] << 8;
74
+ if (limits && (s > input.length || ((input[s - 2] | input[s - 1] << 8) ^ l) !== 65535)) throw new Error("invalid stored block length");
70
75
  const t = s + l;
71
76
  if (t > input.length) throw new Error("unexpected EOF");
72
77
  ensureSize(outputIndex + l);
@@ -93,6 +98,7 @@ function gunzip(input, output, inputIndex = 0, outputIndex = 0) {
93
98
  const codeLengthMap = huffMap(codeLengthTree, codeLengthBits, 1);
94
99
  for (let i = 0; i < tl;) {
95
100
  const r = codeLengthMap[bits(input, pos, clbMask)];
101
+ if (limits && !r) throw new Error("invalid code length");
96
102
  pos += r & 15;
97
103
  const symbol = r >> 4;
98
104
  if (symbol < 16) lengthDistanceTree[i++] = symbol;
@@ -100,6 +106,7 @@ function gunzip(input, output, inputIndex = 0, outputIndex = 0) {
100
106
  let copy = 0;
101
107
  let n = 0;
102
108
  if (symbol === 16) {
109
+ if (limits && i === 0) throw new Error("invalid code length repeat");
103
110
  n = 3 + bits(input, pos, 3);
104
111
  pos += 2;
105
112
  copy = lengthDistanceTree[i - 1];
@@ -110,6 +117,7 @@ function gunzip(input, output, inputIndex = 0, outputIndex = 0) {
110
117
  n = 11 + bits(input, pos, 127);
111
118
  pos += 7;
112
119
  }
120
+ if (limits && i + n > tl) throw new Error("invalid code length repeat");
113
121
  while (n--) lengthDistanceTree[i++] = copy;
114
122
  }
115
123
  }
@@ -122,7 +130,7 @@ function gunzip(input, output, inputIndex = 0, outputIndex = 0) {
122
130
  } else throw new Error("invalid block type");
123
131
  if (pos > totalBits) throw new Error("unexpected EOF");
124
132
  }
125
- ensureSize(outputIndex + 131072);
133
+ ensureSize(limits ? Math.min(maximum, outputIndex + 131072) : outputIndex + 131072);
126
134
  const lms = (1 << lengthBits) - 1;
127
135
  const dms = (1 << distBits) - 1;
128
136
  for (;;) {
@@ -131,8 +139,10 @@ function gunzip(input, output, inputIndex = 0, outputIndex = 0) {
131
139
  pos += code & 15;
132
140
  if (pos > totalBits) throw new Error("unexpected EOF");
133
141
  if (!code) throw new Error("invalid length/literal");
134
- if (sym < 256) out[outputIndex++] = sym;
135
- else if (sym === 256) {
142
+ if (sym < 256) {
143
+ if (limits) ensureSize(outputIndex + 1);
144
+ out[outputIndex++] = sym;
145
+ } else if (sym === 256) {
136
146
  lengthMap = void 0;
137
147
  break;
138
148
  } else {
@@ -147,6 +157,7 @@ function gunzip(input, output, inputIndex = 0, outputIndex = 0) {
147
157
  const d = distMap[bits16(input, pos) & dms];
148
158
  const dsym = d >> 4;
149
159
  if (!d) throw new Error("invalid distance");
160
+ if (limits && dsym > 29) throw new Error("invalid distance symbol");
150
161
  pos += d & 15;
151
162
  let dt = fixedDistance[dsym];
152
163
  if (dsym > 3) {
@@ -163,10 +174,12 @@ function gunzip(input, output, inputIndex = 0, outputIndex = 0) {
163
174
  }
164
175
  if (lengthMap) final = 1;
165
176
  } while (!final);
166
- if (outputIndex < out.length) {
177
+ if (limits && Math.ceil(pos / 8) !== input.length) throw new Error("trailing raw DEFLATE bytes");
178
+ if (!limits && outputIndex < out.length) {
167
179
  const nextBlock = Math.ceil(pos / 8) + 8;
168
180
  gunzip(input, out, nextBlock, outputIndex);
169
181
  }
182
+ if (limits && outputIndex !== out.length) return out.slice(0, outputIndex);
170
183
  if (!output) return out.subarray(0, outputIndex);
171
184
  return out;
172
185
  }
@@ -0,0 +1,6 @@
1
+ import "../../../../../hyparquet@1.31.1/node_modules/hyparquet/src/convert.mjs";
2
+ import "../../../../../hyparquet-compressors@1.1.2_patch_hash_821c89dbb6181f0c34d9abebd844451458a4f16c04e7aa7a19abca0c09c2238d/node_modules/hyparquet-compressors/src/index.mjs";
3
+ import "./avro.budget.mjs";
4
+ import "./avro.metadata.mjs";
5
+ new TextDecoder();
6
+ export {};
@@ -1,6 +1,6 @@
1
1
  import "../../../../hyparquet@1.31.1/node_modules/hyparquet/src/node.mjs";
2
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";
3
+ import "../../../../hyparquet-compressors@1.1.2_patch_hash_821c89dbb6181f0c34d9abebd844451458a4f16c04e7aa7a19abca0c09c2238d/node_modules/hyparquet-compressors/src/index.mjs";
4
4
  import "./avro/avro.metadata.mjs";
5
5
  import "./avro/avro.read.mjs";
6
6
  import "./utils.mjs";
@@ -2,7 +2,7 @@ import "../../../../hyparquet@1.31.1/node_modules/hyparquet/src/schema.mjs";
2
2
  import "../../../../hyparquet@1.31.1/node_modules/hyparquet/src/utils.mjs";
3
3
  import "../../../../hyparquet@1.31.1/node_modules/hyparquet/src/filter.mjs";
4
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";
5
+ import "../../../../hyparquet-compressors@1.1.2_patch_hash_821c89dbb6181f0c34d9abebd844451458a4f16c04e7aa7a19abca0c09c2238d/node_modules/hyparquet-compressors/src/index.mjs";
6
6
  import "./utils.mjs";
7
7
  import "./delete.mjs";
8
8
  import "./fetch.mjs";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@gscdump/engine",
3
3
  "type": "module",
4
- "version": "7.5.1",
4
+ "version": "7.7.0",
5
5
  "description": "Append-only Parquet/DuckDB storage engine + planner + adapters for the gscdump pipeline. Node + edge runtimes; opt-in heavy peers.",
6
6
  "author": {
7
7
  "name": "Harlan Wilton",
@@ -189,10 +189,10 @@
189
189
  }
190
190
  },
191
191
  "dependencies": {
192
- "@gscdump/contracts": "^7.5.1",
193
- "@gscdump/lakehouse": "^7.5.1",
192
+ "@gscdump/contracts": "^7.7.0",
193
+ "@gscdump/lakehouse": "^7.7.0",
194
194
  "drizzle-orm": "1.0.0-rc.4",
195
- "gscdump": "^7.5.1",
195
+ "gscdump": "^7.7.0",
196
196
  "pathe": "^2.0.3",
197
197
  "proper-lockfile": "^4.1.2"
198
198
  },
@@ -1,5 +0,0 @@
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 {};