@gscdump/lakehouse 1.4.1 → 1.4.3

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 (337) hide show
  1. package/dist/_virtual/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/compressors.mjs +14 -0
  2. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/index.mjs +3 -3
  3. package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/assemble.mjs +144 -0
  4. package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/bloom.mjs +124 -0
  5. package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/column.mjs +127 -0
  6. package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/constants.mjs +75 -0
  7. package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/convert.mjs +118 -0
  8. package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/datapage.mjs +144 -0
  9. package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/delta.mjs +65 -0
  10. package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/encoding.mjs +76 -0
  11. package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/filter.mjs +98 -0
  12. package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/geoparquet.mjs +24 -0
  13. package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/index.mjs +7 -0
  14. package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/indexes.mjs +16 -0
  15. package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/metadata.mjs +235 -0
  16. package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/node.mjs +7 -0
  17. package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/plain.mjs +78 -0
  18. package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/plan.mjs +147 -0
  19. package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/read.mjs +106 -0
  20. package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/rowgroup.mjs +154 -0
  21. package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/schema.mjs +75 -0
  22. package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/thrift.mjs +86 -0
  23. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/utils.mjs +30 -1
  24. package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/variant.mjs +225 -0
  25. package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/wkb.mjs +94 -0
  26. package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/xxhash.mjs +68 -0
  27. package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/src/avro/avro.write.mjs +2 -2
  28. package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/delete.mjs +34 -0
  29. package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/src/fetch.mjs +104 -5
  30. package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/src/index.mjs +6 -6
  31. package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/src/manifest.mjs +14 -1
  32. package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/src/metadata.mjs +10 -2
  33. package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/puffin/deletion-vector.mjs +122 -0
  34. package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/puffin/puffin.mjs +78 -0
  35. package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/puffin/roaring.mjs +132 -0
  36. package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/read.mjs +324 -0
  37. package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/src/s3.mjs +2 -2
  38. package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/src/types.d.mts +2 -2
  39. package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/src/utils.mjs +20 -1
  40. package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/delete-file.mjs +52 -0
  41. package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/src/write/manifest.mjs +45 -1
  42. package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/src/write/parquet.mjs +2 -2
  43. package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/rewrite.mjs +174 -0
  44. package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/stage-deletion-vector.mjs +295 -0
  45. package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/stage-position-delete.mjs +216 -0
  46. package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/src/write/stage.mjs +119 -2
  47. package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/src/write/write.mjs +236 -7
  48. package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/types/index.d.mts +3 -3
  49. package/dist/{node_modules → _virtual/node_modules}/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/db0.d.mts +1 -1
  50. package/dist/catalog-cache.d.mts +2 -2
  51. package/dist/catalog.d.mts +7 -10
  52. package/dist/catalog.mjs +13 -15
  53. package/dist/dataset-runtime.mjs +68 -0
  54. package/dist/dataset.d.mts +1 -9
  55. package/dist/dataset.mjs +24 -76
  56. package/dist/date.d.mts +8 -0
  57. package/dist/date.mjs +13 -0
  58. package/dist/index.d.mts +4 -3
  59. package/dist/index.mjs +4 -3
  60. package/dist/orphan-sweep.mjs +3 -3
  61. package/dist/schema.d.mts +4 -1
  62. package/dist/schema.mjs +9 -1
  63. package/dist/unsafe-raw.d.mts +5 -5
  64. package/dist/unsafe-raw.mjs +5 -5
  65. package/dist/vendor/hysnappy-purejs.mjs +1 -1
  66. package/package.json +11 -1
  67. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/compressors.mjs +0 -7
  68. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/assemble.mjs +0 -3
  69. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/bloom.mjs +0 -14
  70. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/column.mjs +0 -8
  71. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/constants.mjs +0 -1
  72. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/convert.mjs +0 -11
  73. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/datapage.mjs +0 -6
  74. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/delta.mjs +0 -2
  75. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/encoding.mjs +0 -2
  76. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/filter.mjs +0 -3
  77. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/geoparquet.mjs +0 -1
  78. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/index.mjs +0 -7
  79. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/indexes.mjs +0 -5
  80. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/metadata.mjs +0 -8
  81. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/node.mjs +0 -4
  82. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/plain.mjs +0 -1
  83. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/plan.mjs +0 -5
  84. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/read.mjs +0 -6
  85. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/rowgroup.mjs +0 -7
  86. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/schema.mjs +0 -1
  87. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/thrift.mjs +0 -1
  88. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/variant.mjs +0 -3
  89. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/wkb.mjs +0 -1
  90. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/xxhash.mjs +0 -1
  91. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/delete.mjs +0 -2
  92. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/puffin/deletion-vector.mjs +0 -2
  93. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/puffin/puffin.mjs +0 -2
  94. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/puffin/roaring.mjs +0 -1
  95. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/read.mjs +0 -9
  96. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/delete-file.mjs +0 -3
  97. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/rewrite.mjs +0 -10
  98. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/stage-deletion-vector.mjs +0 -11
  99. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/stage-position-delete.mjs +0 -8
  100. package/dist/{node_modules → _virtual/node_modules}/.pnpm/chokidar@5.0.0/node_modules/chokidar/handler.d.mts +0 -0
  101. package/dist/{node_modules → _virtual/node_modules}/.pnpm/chokidar@5.0.0/node_modules/chokidar/index.d.mts +0 -0
  102. package/dist/{node_modules/.pnpm/db0@0.3.4_drizzle-orm@1.0.0-rc.3_@cloudflare_workers-types@5.20260722.1_valibot@1.4.2_typescript@7.0.2__zod@4.4.3_ → _virtual/node_modules/.pnpm/db0@0.3.4_drizzle-orm@1.0.0-rc.3_@cloudflare+workers-types@5.20260722.1_valibot@1.4.2_typescript@6.0.3__zod@4.4.3_}/node_modules/db0/dist/index.d.mts +0 -0
  103. package/dist/{node_modules → _virtual/node_modules}/.pnpm/denque@2.1.0/node_modules/denque/index.d.mts +0 -0
  104. package/dist/{node_modules → _virtual/node_modules}/.pnpm/fzstd@0.1.1/node_modules/fzstd/esm/index.mjs +0 -0
  105. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.bitreader.mjs +0 -0
  106. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.blocks.mjs +0 -0
  107. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.context.mjs +0 -0
  108. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.contextmap.mjs +0 -0
  109. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.dictionary.mjs +0 -0
  110. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.huffman.mjs +0 -0
  111. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.mjs +0 -0
  112. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.prefix.mjs +0 -0
  113. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.streams.mjs +0 -0
  114. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.transform.mjs +0 -0
  115. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/gzip.huffman.mjs +0 -0
  116. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/gzip.mjs +0 -0
  117. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/lz4.mjs +0 -0
  118. package/dist/{node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec → _virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec}/node_modules/hyparquet-writer/src/bloom.mjs +0 -0
  119. package/dist/{node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec → _virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec}/node_modules/hyparquet-writer/src/bytewriter.mjs +0 -0
  120. package/dist/{node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec → _virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec}/node_modules/hyparquet-writer/src/column.mjs +0 -0
  121. package/dist/{node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec → _virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec}/node_modules/hyparquet-writer/src/datapage.mjs +0 -0
  122. package/dist/{node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec → _virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec}/node_modules/hyparquet-writer/src/delta.mjs +0 -0
  123. package/dist/{node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec → _virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec}/node_modules/hyparquet-writer/src/dictionary.mjs +0 -0
  124. package/dist/{node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec → _virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec}/node_modules/hyparquet-writer/src/dremel.mjs +0 -0
  125. package/dist/{node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec → _virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec}/node_modules/hyparquet-writer/src/encoding.mjs +0 -0
  126. package/dist/{node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec → _virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec}/node_modules/hyparquet-writer/src/geospatial.mjs +0 -0
  127. package/dist/{node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec → _virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec}/node_modules/hyparquet-writer/src/index.mjs +0 -0
  128. package/dist/{node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec → _virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec}/node_modules/hyparquet-writer/src/indexes.mjs +0 -0
  129. package/dist/{node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec → _virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec}/node_modules/hyparquet-writer/src/metadata.mjs +0 -0
  130. package/dist/{node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec → _virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec}/node_modules/hyparquet-writer/src/node.mjs +0 -0
  131. package/dist/{node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec → _virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec}/node_modules/hyparquet-writer/src/parquet-writer.mjs +0 -0
  132. package/dist/{node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec → _virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec}/node_modules/hyparquet-writer/src/plain.mjs +0 -0
  133. package/dist/{node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec → _virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec}/node_modules/hyparquet-writer/src/schema.mjs +0 -0
  134. package/dist/{node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec → _virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec}/node_modules/hyparquet-writer/src/snappy.mjs +0 -0
  135. package/dist/{node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec → _virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec}/node_modules/hyparquet-writer/src/splitstream.mjs +0 -0
  136. package/dist/{node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec → _virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec}/node_modules/hyparquet-writer/src/thrift.mjs +0 -0
  137. package/dist/{node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec → _virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec}/node_modules/hyparquet-writer/src/types.d.mts +0 -0
  138. package/dist/{node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec → _virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec}/node_modules/hyparquet-writer/src/unconvert.mjs +0 -0
  139. package/dist/{node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec → _virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec}/node_modules/hyparquet-writer/src/variant.mjs +0 -0
  140. package/dist/{node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec → _virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec}/node_modules/hyparquet-writer/src/wkb.mjs +0 -0
  141. package/dist/{node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec → _virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec}/node_modules/hyparquet-writer/src/write-rows.mjs +0 -0
  142. package/dist/{node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec → _virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec}/node_modules/hyparquet-writer/src/write.mjs +0 -0
  143. package/dist/{node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec → _virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec}/node_modules/hyparquet-writer/types/bytewriter.d.mts +0 -0
  144. package/dist/{node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec → _virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec}/node_modules/hyparquet-writer/types/index.d.mts +0 -0
  145. package/dist/{node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec → _virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec}/node_modules/hyparquet-writer/types/node.d.mts +0 -0
  146. package/dist/{node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec → _virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec}/node_modules/hyparquet-writer/types/parquet-writer.d.mts +0 -0
  147. package/dist/{node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec → _virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec}/node_modules/hyparquet-writer/types/schema.d.mts +0 -0
  148. package/dist/{node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec → _virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec}/node_modules/hyparquet-writer/types/wkb.d.mts +0 -0
  149. package/dist/{node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec → _virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec}/node_modules/hyparquet-writer/types/write-rows.d.mts +0 -0
  150. package/dist/{node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec → _virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec}/node_modules/hyparquet-writer/types/write.d.mts +0 -0
  151. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/assemble.mjs +0 -0
  152. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/bloom.mjs +0 -0
  153. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/column.mjs +0 -0
  154. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/constants.mjs +0 -0
  155. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/convert.mjs +0 -0
  156. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/datapage.mjs +0 -0
  157. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/delta.mjs +0 -0
  158. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/encoding.mjs +0 -0
  159. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/filter.mjs +0 -0
  160. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/geoparquet.mjs +0 -0
  161. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/index.mjs +0 -0
  162. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/indexes.mjs +0 -0
  163. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/metadata.mjs +0 -0
  164. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/node.mjs +0 -0
  165. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/plain.mjs +0 -0
  166. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/plan.mjs +0 -0
  167. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/query.mjs +0 -0
  168. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/read.mjs +0 -0
  169. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/rowgroup.mjs +0 -0
  170. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/schema.mjs +0 -0
  171. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/snappy.mjs +0 -0
  172. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/thrift.mjs +0 -0
  173. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/types.d.mts +0 -0
  174. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/utils.mjs +0 -0
  175. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/variant.mjs +0 -0
  176. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/wkb.mjs +0 -0
  177. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/xxhash.mjs +0 -0
  178. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/index.d.mts +0 -0
  179. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/indexes.d.mts +0 -0
  180. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/metadata.d.mts +0 -0
  181. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/node.d.mts +0 -0
  182. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/query.d.mts +0 -0
  183. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/read.d.mts +0 -0
  184. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/snappy.d.mts +0 -0
  185. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/utils.d.mts +0 -0
  186. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/query.mjs +0 -0
  187. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/snappy.mjs +0 -0
  188. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/types.d.mts +0 -0
  189. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/index.d.mts +0 -0
  190. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/indexes.d.mts +0 -0
  191. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/metadata.d.mts +0 -0
  192. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/node.d.mts +0 -0
  193. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/query.d.mts +0 -0
  194. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/read.d.mts +0 -0
  195. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/snappy.d.mts +0 -0
  196. package/dist/{node_modules → _virtual/node_modules}/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/utils.d.mts +0 -0
  197. package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/src/avro/avro.metadata.mjs +0 -0
  198. package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/src/avro/avro.read.mjs +0 -0
  199. package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/src/catalog/file.mjs +0 -0
  200. package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/src/catalog/loadTable.mjs +1 -1
  201. package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/src/catalog/rest.mjs +0 -0
  202. package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/src/create.mjs +1 -1
  203. package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/src/json.mjs +0 -0
  204. package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/src/prune.mjs +0 -0
  205. package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/src/schema.mjs +0 -0
  206. package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/src/sigv4.mjs +0 -0
  207. package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/src/sql/icebergDataSource.mjs +1 -1
  208. /package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/src/sql/icebergQuery.mjs +0 -0
  209. /package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/src/sql/whereFilter.mjs +0 -0
  210. /package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/src/write/commit.mjs +0 -0
  211. /package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/src/write/conversions.mjs +0 -0
  212. /package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/src/write/geospatial.mjs +0 -0
  213. /package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/src/write/manifest-list.mjs +0 -0
  214. /package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/src/write/partition.mjs +0 -0
  215. /package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/src/write/serde.mjs +0 -0
  216. /package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/src/write/snapshot.mjs +0 -0
  217. /package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/src/write/sort.mjs +0 -0
  218. /package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/src/write/stats.mjs +0 -0
  219. /package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/src/write/transform.mjs +0 -0
  220. /package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/types/catalog/file.d.mts +0 -0
  221. /package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/types/catalog/rest.d.mts +0 -0
  222. /package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/types/create.d.mts +0 -0
  223. /package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/types/fetch.d.mts +0 -0
  224. /package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/types/manifest.d.mts +0 -0
  225. /package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/types/metadata.d.mts +0 -0
  226. /package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/types/read.d.mts +0 -0
  227. /package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/types/s3.d.mts +0 -0
  228. /package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/types/sql/icebergDataSource.d.mts +0 -0
  229. /package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/types/sql/icebergQuery.d.mts +0 -0
  230. /package/dist/{node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057 → _virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057}/node_modules/icebird/types/write/write.d.mts +0 -0
  231. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/Command.d.mts +0 -0
  232. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/DataHandler.d.mts +0 -0
  233. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/Pipeline.d.mts +0 -0
  234. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/Redis.d.mts +0 -0
  235. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/ScanStream.d.mts +0 -0
  236. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/SubscriptionSet.d.mts +0 -0
  237. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/cluster/ClusterOptions.d.mts +0 -0
  238. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/cluster/index.d.mts +0 -0
  239. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/cluster/util.d.mts +0 -0
  240. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/connectors/AbstractConnector.d.mts +0 -0
  241. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/connectors/ConnectorConstructor.d.mts +0 -0
  242. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/connectors/SentinelConnector/SentinelIterator.d.mts +0 -0
  243. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/connectors/SentinelConnector/index.d.mts +0 -0
  244. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/connectors/SentinelConnector/types.d.mts +0 -0
  245. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/connectors/StandaloneConnector.d.mts +0 -0
  246. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/index.d.mts +0 -0
  247. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/redis/RedisOptions.d.mts +0 -0
  248. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/transaction.d.mts +0 -0
  249. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/types.d.mts +0 -0
  250. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/utils/Commander.d.mts +0 -0
  251. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/utils/RedisCommander.d.mts +0 -0
  252. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/lru-cache@11.5.0/node_modules/lru-cache/dist/esm/index.d.mts +0 -0
  253. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/lru-cache@11.5.0/node_modules/lru-cache/dist/esm/perf.d.mts +0 -0
  254. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/readdirp@5.0.0/node_modules/readdirp/index.d.mts +0 -0
  255. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/ast.d.mts +0 -0
  256. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/backend/dataSource.mjs +0 -0
  257. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/accumulator.mjs +0 -0
  258. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/aggregates.mjs +0 -0
  259. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/execute.mjs +0 -0
  260. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/join.mjs +0 -0
  261. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/scanColumn.mjs +0 -0
  262. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/sort.mjs +0 -0
  263. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/streamingAggregate.mjs +0 -0
  264. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/utils.mjs +0 -0
  265. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/window.mjs +0 -0
  266. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/yield.mjs +0 -0
  267. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/expression/alias.mjs +0 -0
  268. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/expression/binary.mjs +0 -0
  269. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/expression/date.mjs +0 -0
  270. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/expression/evaluate.mjs +0 -0
  271. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/expression/math.mjs +0 -0
  272. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/expression/regexp.mjs +0 -0
  273. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/expression/strings.mjs +0 -0
  274. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/index.d.mts +0 -0
  275. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/index.mjs +0 -0
  276. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/expression.mjs +0 -0
  277. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/extractTables.mjs +0 -0
  278. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/functions.mjs +0 -0
  279. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/joins.mjs +0 -0
  280. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/parse.mjs +0 -0
  281. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/primary.mjs +0 -0
  282. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/state.mjs +0 -0
  283. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/tokenize.mjs +0 -0
  284. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/types.d.mts +0 -0
  285. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/plan/columns.mjs +0 -0
  286. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/plan/plan.mjs +0 -0
  287. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/plan/types.d.mts +0 -0
  288. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/bbox.mjs +0 -0
  289. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/equality.mjs +0 -0
  290. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/operations.mjs +0 -0
  291. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/pointRelations.mjs +0 -0
  292. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/primitives.mjs +0 -0
  293. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/segments.mjs +0 -0
  294. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/spatial.mjs +0 -0
  295. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/wkt.mjs +0 -0
  296. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/types.d.mts +0 -0
  297. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/validation/aggregates.mjs +0 -0
  298. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/validation/executionErrors.mjs +0 -0
  299. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/validation/functions.mjs +0 -0
  300. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/validation/keywords.mjs +0 -0
  301. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/validation/parseErrors.mjs +0 -0
  302. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/validation/tables.mjs +0 -0
  303. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/dist/index.d.mts +0 -0
  304. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/dist/index2.d.mts +0 -0
  305. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/dist/shared/unstorage.DqlWKU2I.d.mts +0 -0
  306. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/dist/shared/unstorage2.DqlWKU2I.d.mts +0 -0
  307. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/azure-app-configuration.d.mts +0 -0
  308. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/azure-cosmos.d.mts +0 -0
  309. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/azure-key-vault.d.mts +0 -0
  310. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/azure-storage-blob.d.mts +0 -0
  311. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/azure-storage-table.d.mts +0 -0
  312. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/capacitor-preferences.d.mts +0 -0
  313. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/cloudflare-kv-binding.d.mts +0 -0
  314. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/cloudflare-kv-http.d.mts +0 -0
  315. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/cloudflare-r2-binding.d.mts +0 -0
  316. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/deno-kv-node.d.mts +0 -0
  317. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/deno-kv.d.mts +0 -0
  318. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/fs-lite.d.mts +0 -0
  319. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/fs.d.mts +0 -0
  320. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/github.d.mts +0 -0
  321. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/http.d.mts +0 -0
  322. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/indexedb.d.mts +0 -0
  323. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/localstorage.d.mts +0 -0
  324. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/localstorage2.d.mts +0 -0
  325. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/lru-cache.d.mts +0 -0
  326. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/mongodb.d.mts +0 -0
  327. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/netlify-blobs.d.mts +0 -0
  328. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/overlay.d.mts +0 -0
  329. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/planetscale.d.mts +0 -0
  330. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/redis.d.mts +0 -0
  331. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/s3.d.mts +0 -0
  332. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/session-storage.d.mts +0 -0
  333. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/uploadthing.d.mts +0 -0
  334. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/upstash.d.mts +0 -0
  335. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/vercel-blob.d.mts +0 -0
  336. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/vercel-kv.d.mts +0 -0
  337. /package/dist/{node_modules → _virtual/node_modules}/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/vercel-runtime-cache.d.mts +0 -0
@@ -11,6 +11,25 @@ function sanitize(name) {
11
11
  }
12
12
  return result;
13
13
  }
14
+ function equalityMatch(row, deletePredicate, columnNamesById) {
15
+ for (const key of Object.keys(deletePredicate)) {
16
+ const columnName = columnNamesById ? columnNamesById[Number(key)] : key;
17
+ if (columnName === "file_path" || columnName === "pos") continue;
18
+ if (!columnName) return false;
19
+ if (!valuesEqual(row[columnName], deletePredicate[key])) return false;
20
+ }
21
+ return true;
22
+ }
23
+ function valuesEqual(a, b) {
24
+ if (typeof a === "number" && typeof b === "number" && Number.isNaN(a) && Number.isNaN(b)) return true;
25
+ if (a instanceof Date && b instanceof Date) return a.getTime() === b.getTime();
26
+ if (a instanceof Uint8Array && b instanceof Uint8Array) {
27
+ if (a.length !== b.length) return false;
28
+ for (let i = 0; i < a.length; i++) if (a[i] !== b[i]) return false;
29
+ return true;
30
+ }
31
+ return a === b;
32
+ }
14
33
  function bytesToHex(bytes) {
15
34
  let hex = "";
16
35
  for (let i = 0; i < bytes.length; i++) hex += bytes[i].toString(16).padStart(2, "0");
@@ -23,4 +42,4 @@ function uuid4() {
23
42
  return (c === "x" ? r : r & 3 | 8).toString(16);
24
43
  });
25
44
  }
26
- export { bytesToHex, sanitize, uuid4 };
45
+ export { bytesToHex, equalityMatch, sanitize, uuid4, valuesEqual };
@@ -0,0 +1,52 @@
1
+ import { computeColumnStats } from "./stats.mjs";
2
+ import { writeParquet } from "./parquet.mjs";
3
+ const POSITION_DELETE_SCHEMA = {
4
+ type: "struct",
5
+ "schema-id": 0,
6
+ fields: [{
7
+ id: 2147483546,
8
+ name: "file_path",
9
+ required: true,
10
+ type: "string"
11
+ }, {
12
+ id: 2147483545,
13
+ name: "pos",
14
+ required: true,
15
+ type: "long"
16
+ }]
17
+ };
18
+ async function writePositionDeleteFile({ writer, deletes, codec }) {
19
+ if (!deletes?.length) throw new Error("writePositionDeleteFile requires at least one delete");
20
+ const records = deletes.map((d) => {
21
+ if (typeof d.file_path !== "string" || !d.file_path) throw new Error("position delete file_path must be a non-empty string");
22
+ if (d.pos === void 0 || d.pos === null) throw new Error("position delete pos is required");
23
+ const pos = typeof d.pos === "bigint" ? d.pos : BigInt(d.pos);
24
+ if (pos < 0n) throw new Error(`position delete pos must be non-negative: ${pos}`);
25
+ return {
26
+ file_path: d.file_path,
27
+ pos
28
+ };
29
+ });
30
+ records.sort((a, b) => {
31
+ if (a.file_path < b.file_path) return -1;
32
+ if (a.file_path > b.file_path) return 1;
33
+ if (a.pos < b.pos) return -1;
34
+ if (a.pos > b.pos) return 1;
35
+ return 0;
36
+ });
37
+ await writeParquet({
38
+ writer,
39
+ schema: POSITION_DELETE_SCHEMA,
40
+ records,
41
+ codec
42
+ });
43
+ const { value_counts, null_value_counts, lower_bounds, upper_bounds } = computeColumnStats(records, POSITION_DELETE_SCHEMA);
44
+ return {
45
+ record_count: BigInt(records.length),
46
+ value_counts,
47
+ null_value_counts,
48
+ lower_bounds,
49
+ upper_bounds
50
+ };
51
+ }
52
+ export { writePositionDeleteFile };
@@ -176,6 +176,50 @@ function writeDataManifest({ writer, schema, partitionSpec, snapshotId, dataFile
176
176
  }
177
177
  });
178
178
  }
179
+ function writeDeleteManifest({ writer, schema, partitionSpec, snapshotId, deleteFiles, formatVersion = 2 }) {
180
+ const records = deleteFiles.map((deleteFile) => {
181
+ if (deleteFile.content !== 1 && deleteFile.content !== 2) throw new Error(`writeDeleteManifest expects delete files (content=1 or 2), got content=${deleteFile.content}`);
182
+ if (deleteFile.content === 2 && !deleteFile.equality_ids?.length) throw new Error("equality delete file missing equality_ids");
183
+ return manifestEntryRecord(deleteFile, schema, partitionSpec, snapshotId, formatVersion, 1);
184
+ });
185
+ return avroWrite({
186
+ writer,
187
+ schema: manifestEntrySchema(schema, partitionSpec, formatVersion, 1),
188
+ records,
189
+ metadata: {
190
+ "format-version": String(formatVersion),
191
+ content: "deletes",
192
+ schema: icebergSchemaJson(schema),
193
+ "partition-spec": partitionSpecJson(partitionSpec),
194
+ "partition-spec-id": String(partitionSpec["spec-id"])
195
+ }
196
+ });
197
+ }
198
+ function writeExistingDeleteManifest({ writer, schema, partitionSpec, entries, formatVersion = 2 }) {
199
+ const records = entries.map((entry) => {
200
+ const deleteFile = entry.data_file;
201
+ if (deleteFile.content !== 1 && deleteFile.content !== 2) throw new Error(`writeExistingDeleteManifest expects delete files (content=1 or 2), got content=${deleteFile.content}`);
202
+ const record = manifestEntryRecord(deleteFile, schema, partitionSpec, 0n, formatVersion, 1);
203
+ record.status = 0;
204
+ record.snapshot_id = entry.snapshot_id ?? null;
205
+ record.sequence_number = entry.sequence_number ?? null;
206
+ record.file_sequence_number = entry.file_sequence_number ?? null;
207
+ if (record.sequence_number == null || record.file_sequence_number == null) throw new Error("existing delete manifest entry missing sequence numbers");
208
+ return record;
209
+ });
210
+ return avroWrite({
211
+ writer,
212
+ schema: manifestEntrySchema(schema, partitionSpec, formatVersion, 1),
213
+ records,
214
+ metadata: {
215
+ "format-version": String(formatVersion),
216
+ content: "deletes",
217
+ schema: icebergSchemaJson(schema),
218
+ "partition-spec": partitionSpecJson(partitionSpec),
219
+ "partition-spec-id": String(partitionSpec["spec-id"])
220
+ }
221
+ });
222
+ }
179
223
  function manifestEntryRecord(dataFile, schema, partitionSpec, snapshotId, formatVersion, manifestContent) {
180
224
  const dataFileRecord = {
181
225
  content: dataFile.content,
@@ -209,4 +253,4 @@ function manifestEntryRecord(dataFile, schema, partitionSpec, snapshotId, format
209
253
  data_file: dataFileRecord
210
254
  };
211
255
  }
212
- export { writeDataManifest };
256
+ export { writeDataManifest, writeDeleteManifest, writeExistingDeleteManifest };
@@ -1,5 +1,5 @@
1
- import { parquetWrite } from "../../../../../hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/write.mjs";
2
- import "../../../../../hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/node.mjs";
1
+ import { parquetWrite } from "../../../../../hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/write.mjs";
2
+ import "../../../../../hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/node.mjs";
3
3
  import { sanitize } from "../utils.mjs";
4
4
  import { typeName } from "../schema.mjs";
5
5
  import { decimalRequiredBytes, parseDecimalType } from "./conversions.mjs";
@@ -0,0 +1,174 @@
1
+ import { uuid4 } from "../utils.mjs";
2
+ import { groupByPartition } from "./partition.mjs";
3
+ import { writeDataManifest } from "./manifest.mjs";
4
+ import { computeColumnStats } from "./stats.mjs";
5
+ import { buildPartitionSummaries, buildSnapshotUpdate, currentSnapshot, loadPriorManifests } from "./snapshot.mjs";
6
+ import { writeParquet } from "./parquet.mjs";
7
+ import { buildSortComparator } from "./sort.mjs";
8
+ import { checkWriteFormat, newSnapshotId, resolveParquetCodec } from "./stage.mjs";
9
+ import { icebergRead } from "../read.mjs";
10
+ async function icebergStageRewrite({ tableUrl, metadata, resolver, sortOrderId, partitionSpecId, targetFileRows }) {
11
+ if (!tableUrl) throw new Error("tableUrl is required");
12
+ if (!resolver?.writer) throw new Error("resolver.writer is required");
13
+ const writerFn = resolver.writer;
14
+ if (metadata["format-version"] !== 2 && metadata["format-version"] !== 3) throw new Error(`unsupported format-version: ${metadata["format-version"]}`);
15
+ const formatVersion = metadata["format-version"];
16
+ if (targetFileRows !== void 0 && !(targetFileRows > 0)) throw new Error("targetFileRows must be a positive number");
17
+ if (!currentSnapshot(metadata)) throw new Error("no current snapshot to rewrite");
18
+ const schema = metadata.schemas.find((s) => s["schema-id"] === metadata["current-schema-id"]);
19
+ if (!schema) throw new Error("current schema not found in metadata");
20
+ const specId = partitionSpecId ?? metadata["default-spec-id"];
21
+ const partitionSpec = metadata["partition-specs"].find((s) => s["spec-id"] === specId);
22
+ if (!partitionSpec) throw new Error(`partition spec ${specId} not found in metadata`);
23
+ const orderId = sortOrderId ?? metadata["default-sort-order-id"] ?? 0;
24
+ const sortOrder = (metadata["sort-orders"] ?? []).find((o) => o["order-id"] === orderId);
25
+ if (sortOrderId !== void 0 && !sortOrder) throw new Error(`sort order ${sortOrderId} not found in metadata`);
26
+ const comparator = buildSortComparator(sortOrder, schema);
27
+ const appliedSortOrderId = comparator ? orderId : 0;
28
+ checkWriteFormat(metadata.properties?.["write.format.default"]);
29
+ const codec = resolveParquetCodec(metadata.properties?.["write.parquet.compression-codec"]);
30
+ const liveRows = await icebergRead({
31
+ tableUrl,
32
+ metadata,
33
+ resolver
34
+ });
35
+ const sortedRows = comparator ? [...liveRows].sort(comparator) : liveRows;
36
+ const rowLineage = formatVersion >= 3;
37
+ const allLineage = rowLineage && liveRows.length > 0 && liveRows.every((r) => r._row_id != null && r._last_updated_sequence_number != null);
38
+ const minRowId = allLineage ? liveRows.reduce((min, r) => r._row_id < min ? r._row_id : min, liveRows[0]._row_id) : void 0;
39
+ const groups = partitionSpec.fields.length ? groupByPartition(sortedRows, schema, partitionSpec) : [{
40
+ partition: {},
41
+ records: sortedRows
42
+ }];
43
+ const snapshotId = newSnapshotId(metadata);
44
+ const manifestUuid = uuid4();
45
+ const writeSchema = rowLineage ? {
46
+ ...schema,
47
+ fields: [
48
+ ...schema.fields,
49
+ {
50
+ id: 2147483540,
51
+ name: "_row_id",
52
+ required: false,
53
+ type: "long"
54
+ },
55
+ {
56
+ id: 2147483539,
57
+ name: "_last_updated_sequence_number",
58
+ required: false,
59
+ type: "long"
60
+ }
61
+ ]
62
+ } : schema;
63
+ const writtenDataFiles = [];
64
+ for (const group of groups) {
65
+ const chunks = targetFileRows ? chunkRecords(group.records, targetFileRows) : [group.records];
66
+ for (const chunk of chunks) {
67
+ if (chunk.length === 0) continue;
68
+ const dataPath = `${tableUrl}/data/${uuid4()}.parquet`;
69
+ const dataWriter = writerFn(dataPath);
70
+ await writeParquet({
71
+ writer: dataWriter,
72
+ schema: writeSchema,
73
+ records: chunk,
74
+ codec
75
+ });
76
+ const stats = computeColumnStats(chunk, schema);
77
+ writtenDataFiles.push({
78
+ partition: group.partition,
79
+ dataFile: {
80
+ content: 0,
81
+ file_path: dataPath,
82
+ file_format: "parquet",
83
+ partition: group.partition,
84
+ record_count: BigInt(chunk.length),
85
+ file_size_in_bytes: BigInt(dataWriter.offset),
86
+ value_counts: stats.value_counts,
87
+ null_value_counts: stats.null_value_counts,
88
+ nan_value_counts: stats.nan_value_counts,
89
+ lower_bounds: stats.lower_bounds,
90
+ upper_bounds: stats.upper_bounds,
91
+ sort_order_id: appliedSortOrderId
92
+ },
93
+ path: dataPath
94
+ });
95
+ }
96
+ }
97
+ const manifestPath = `${tableUrl}/metadata/${manifestUuid}-m0.avro`;
98
+ const manifestWriter = writerFn(manifestPath);
99
+ await writeDataManifest({
100
+ writer: manifestWriter,
101
+ schema,
102
+ partitionSpec,
103
+ snapshotId,
104
+ dataFiles: writtenDataFiles.map((f) => f.dataFile),
105
+ formatVersion
106
+ });
107
+ const manifestLength = BigInt(manifestWriter.offset);
108
+ const sequenceNumber = BigInt(metadata["last-sequence-number"] ?? 0) + 1n;
109
+ const timestampMs = Date.now();
110
+ const addedRowCount = writtenDataFiles.reduce((sum, f) => sum + f.dataFile.record_count, 0n);
111
+ const addedFilesSize = writtenDataFiles.reduce((sum, f) => sum + f.dataFile.file_size_in_bytes, 0n);
112
+ const partitions = buildPartitionSummaries(writtenDataFiles.map((f) => f.dataFile.partition), schema, partitionSpec);
113
+ const newManifest = {
114
+ manifest_path: manifestPath,
115
+ manifest_length: manifestLength,
116
+ partition_spec_id: partitionSpec["spec-id"],
117
+ content: 0,
118
+ sequence_number: sequenceNumber,
119
+ min_sequence_number: sequenceNumber,
120
+ added_snapshot_id: snapshotId,
121
+ added_files_count: writtenDataFiles.length,
122
+ existing_files_count: 0,
123
+ deleted_files_count: 0,
124
+ added_rows_count: addedRowCount,
125
+ existing_rows_count: 0n,
126
+ deleted_rows_count: 0n,
127
+ partitions
128
+ };
129
+ if (allLineage) newManifest.first_row_id = minRowId;
130
+ const priorManifests = await loadPriorManifests(metadata, resolver);
131
+ const skipPriorManifestPaths = new Set(priorManifests.map((m) => m.manifest_path));
132
+ let deletedDataFiles = 0;
133
+ let deletedRecords = 0n;
134
+ for (const m of priorManifests) {
135
+ if (m.content !== 0) continue;
136
+ deletedDataFiles += (m.added_files_count ?? 0) + (m.existing_files_count ?? 0);
137
+ deletedRecords += BigInt(m.added_rows_count ?? 0) + BigInt(m.existing_rows_count ?? 0);
138
+ }
139
+ const summary = {
140
+ operation: "replace",
141
+ "added-data-files": String(writtenDataFiles.length),
142
+ "added-records": String(addedRowCount),
143
+ "added-files-size": String(addedFilesSize),
144
+ "deleted-data-files": String(deletedDataFiles),
145
+ "deleted-records": String(deletedRecords),
146
+ "total-records": String(addedRowCount),
147
+ "total-files-size": String(addedFilesSize),
148
+ "total-data-files": String(writtenDataFiles.length),
149
+ "total-delete-files": "0",
150
+ "total-position-deletes": "0",
151
+ "total-equality-deletes": "0"
152
+ };
153
+ return await buildSnapshotUpdate({
154
+ tableUrl,
155
+ metadata,
156
+ resolver,
157
+ snapshotId,
158
+ sequenceNumber,
159
+ manifestUuid,
160
+ timestampMs,
161
+ formatVersion,
162
+ newManifests: [newManifest],
163
+ summary,
164
+ writtenFiles: [...writtenDataFiles.map((f) => f.path), manifestPath],
165
+ priorManifests,
166
+ skipPriorManifestPaths
167
+ });
168
+ }
169
+ function chunkRecords(arr, size) {
170
+ const out = [];
171
+ for (let i = 0; i < arr.length; i += size) out.push(arr.slice(i, i + size));
172
+ return out;
173
+ }
174
+ export { icebergStageRewrite };
@@ -0,0 +1,295 @@
1
+ import { writeDeletionVector } from "../puffin/deletion-vector.mjs";
2
+ import { writePuffinFile } from "../puffin/puffin.mjs";
3
+ import { uuid4 } from "../utils.mjs";
4
+ import { fetchDeleteMaps } from "../fetch.mjs";
5
+ import { validateSchemaForVersion } from "../schema.mjs";
6
+ import { deleteFileAppliesToDataEntry } from "../delete.mjs";
7
+ import { writeDeleteManifest, writeExistingDeleteManifest } from "./manifest.mjs";
8
+ import { buildPartitionSummaries, buildSnapshotUpdate, currentSnapshot, loadPriorManifests } from "./snapshot.mjs";
9
+ import { checkWriteFormat, newSnapshotId } from "./stage.mjs";
10
+ import { findDataFileEntries, loadManifestEntries, partitionTupleKey } from "./stage-position-delete.mjs";
11
+ async function icebergStageDeletionVector({ tableUrl, metadata, deletes, resolver }) {
12
+ if (!tableUrl) throw new Error("tableUrl is required");
13
+ if (!resolver?.writer) throw new Error("resolver.writer is required");
14
+ if (!Array.isArray(deletes) || !deletes.length) throw new Error("deletes must be a non-empty array");
15
+ const writerFn = resolver.writer;
16
+ if (metadata["format-version"] !== 3) throw new Error("icebergStageDeletionVector requires format-version 3");
17
+ const formatVersion = 3;
18
+ if (!metadata["partition-specs"].find((s) => s["spec-id"] === metadata["default-spec-id"])) throw new Error("default partition spec not found in metadata");
19
+ const schema = metadata.schemas.find((s) => s["schema-id"] === metadata["current-schema-id"]);
20
+ if (!schema) throw new Error("current schema not found in metadata");
21
+ validateSchemaForVersion(schema, formatVersion);
22
+ const snapshotId = newSnapshotId();
23
+ const sequenceNumber = BigInt(metadata["last-sequence-number"] ?? 0) + 1n;
24
+ const manifestUuid = uuid4();
25
+ const timestampMs = Date.now();
26
+ checkWriteFormat(metadata.properties?.["write.format.default"]);
27
+ const dataFileMap = await findDataFileEntries(metadata, resolver);
28
+ const byFile = /* @__PURE__ */ new Map();
29
+ for (const d of deletes) {
30
+ if (typeof d.file_path !== "string" || !d.file_path) throw new Error("deletion vector file_path must be a non-empty string");
31
+ if (d.pos === void 0 || d.pos === null) throw new Error("deletion vector pos is required");
32
+ const pos = typeof d.pos === "bigint" ? d.pos : BigInt(d.pos);
33
+ if (pos < 0n) throw new Error(`deletion vector pos must be non-negative: ${pos}`);
34
+ let entry = byFile.get(d.file_path);
35
+ if (!entry) {
36
+ const found = dataFileMap.get(d.file_path);
37
+ if (!found) throw new Error(`target data file not found in current snapshot: ${d.file_path}`);
38
+ entry = {
39
+ positions: /* @__PURE__ */ new Set(),
40
+ partition: found.partition,
41
+ partitionSpecId: found.partitionSpecId,
42
+ dataEntry: found.entry
43
+ };
44
+ byFile.set(d.file_path, entry);
45
+ }
46
+ entry.positions.add(pos);
47
+ }
48
+ const priorManifests = await loadPriorManifests(metadata, resolver);
49
+ const priorDeleteManifests = await loadPriorDeleteManifestEntries(priorManifests, resolver);
50
+ const priorPositionDeleteEntries = priorDeleteManifests.flatMap((m) => m.entries).filter((entry) => entry.data_file.content === 1);
51
+ const targetPaths = new Set(byFile.keys());
52
+ const obsoletePositionDeleteEntries = /* @__PURE__ */ new Set();
53
+ if (priorPositionDeleteEntries.length) {
54
+ const { positionDeletesMap } = await fetchDeleteMaps(priorPositionDeleteEntries, resolver);
55
+ const positionDeleteTargets = /* @__PURE__ */ new Map();
56
+ for (const [targetPath, groups] of positionDeletesMap) for (const group of groups) {
57
+ let targets = positionDeleteTargets.get(group.deleteEntry);
58
+ if (!targets) {
59
+ targets = /* @__PURE__ */ new Set();
60
+ positionDeleteTargets.set(group.deleteEntry, targets);
61
+ }
62
+ targets.add(targetPath);
63
+ }
64
+ for (const [targetPath, info] of byFile) {
65
+ const groups = positionDeletesMap.get(targetPath) ?? [];
66
+ for (const group of groups) {
67
+ if (!deleteFileAppliesToDataEntry(info.dataEntry, group.deleteEntry, metadata, "position")) continue;
68
+ for (const pos of group.positions) info.positions.add(pos);
69
+ }
70
+ }
71
+ for (const [entry, coveredTargets] of positionDeleteTargets) {
72
+ if (isDeletionVectorForTarget(entry, targetPaths)) continue;
73
+ let allTargetsCovered = true;
74
+ let appliesToTarget = false;
75
+ for (const targetPath of coveredTargets) {
76
+ if (!targetPaths.has(targetPath)) {
77
+ allTargetsCovered = false;
78
+ break;
79
+ }
80
+ const info = byFile.get(targetPath);
81
+ if (info && deleteFileAppliesToDataEntry(info.dataEntry, entry, metadata, "position")) appliesToTarget = true;
82
+ }
83
+ if (allTargetsCovered && appliesToTarget) obsoletePositionDeleteEntries.add(entry);
84
+ }
85
+ }
86
+ const skipPriorManifestPaths = /* @__PURE__ */ new Set();
87
+ const replacementManifests = [];
88
+ const replacementManifestPaths = [];
89
+ let replacementIndex = 0;
90
+ let removedDeleteFiles = 0n;
91
+ let removedPositionDeletes = 0n;
92
+ let removedDvs = 0n;
93
+ for (const { manifest, entries } of priorDeleteManifests) {
94
+ const obsolete = entries.filter((entry) => isObsoleteDeleteEntry(entry, targetPaths, obsoletePositionDeleteEntries));
95
+ if (!obsolete.length) continue;
96
+ skipPriorManifestPaths.add(manifest.manifest_path);
97
+ removedDeleteFiles += BigInt(obsolete.length);
98
+ removedPositionDeletes += obsolete.reduce((sum, entry) => sum + entry.data_file.record_count, 0n);
99
+ removedDvs += BigInt(obsolete.filter((entry) => isDeletionVectorForTarget(entry, targetPaths)).length);
100
+ const retained = entries.filter((entry) => !isObsoleteDeleteEntry(entry, targetPaths, obsoletePositionDeleteEntries)).map((entry) => ({
101
+ ...entry,
102
+ status: 0
103
+ }));
104
+ if (!retained.length) continue;
105
+ const spec = metadata["partition-specs"].find((s) => s["spec-id"] === manifest.partition_spec_id);
106
+ if (!spec) throw new Error(`partition spec ${manifest.partition_spec_id} not found in metadata`);
107
+ const manifestPath = `${tableUrl}/metadata/${manifestUuid}-r${replacementIndex}.avro`;
108
+ const manifestWriter = writerFn(manifestPath);
109
+ await writeExistingDeleteManifest({
110
+ writer: manifestWriter,
111
+ schema,
112
+ partitionSpec: spec,
113
+ entries: retained,
114
+ formatVersion
115
+ });
116
+ const existingRows = retained.reduce((sum, entry) => sum + entry.data_file.record_count, 0n);
117
+ replacementManifests.push({
118
+ manifest_path: manifestPath,
119
+ manifest_length: BigInt(manifestWriter.offset),
120
+ partition_spec_id: spec["spec-id"],
121
+ content: 1,
122
+ sequence_number: sequenceNumber,
123
+ min_sequence_number: minEntrySequenceNumber(retained, sequenceNumber),
124
+ added_snapshot_id: snapshotId,
125
+ added_files_count: 0,
126
+ existing_files_count: retained.length,
127
+ deleted_files_count: 0,
128
+ added_rows_count: 0n,
129
+ existing_rows_count: existingRows,
130
+ deleted_rows_count: 0n,
131
+ partitions: manifest.partitions ?? []
132
+ });
133
+ replacementManifestPaths.push(manifestPath);
134
+ replacementIndex++;
135
+ }
136
+ const writtenPuffinPaths = [];
137
+ const writtenDeleteFiles = await Promise.all([...byFile.entries()].sort(([a], [b]) => a < b ? -1 : a > b ? 1 : 0).map(async ([targetPath, info]) => {
138
+ const blob = writeDeletionVector(info.positions);
139
+ const puffin = writePuffinFile({ blobs: [{
140
+ type: "deletion-vector-v1",
141
+ fields: [],
142
+ snapshotId: -1,
143
+ sequenceNumber: -1,
144
+ data: blob,
145
+ properties: {
146
+ "referenced-data-file": targetPath,
147
+ cardinality: String(info.positions.size)
148
+ }
149
+ }] });
150
+ const puffinPath = `${tableUrl}/data/${uuid4()}-deletes.puffin`;
151
+ const puffinWriter = writerFn(puffinPath);
152
+ puffinWriter.appendBytes(puffin);
153
+ await puffinWriter.finish();
154
+ writtenPuffinPaths.push(puffinPath);
155
+ const deleteFile = {
156
+ content: 1,
157
+ file_path: puffinPath,
158
+ file_format: "puffin",
159
+ partition: info.partition,
160
+ record_count: BigInt(info.positions.size),
161
+ file_size_in_bytes: BigInt(puffinWriter.offset),
162
+ referenced_data_file: targetPath,
163
+ content_offset: 4n,
164
+ content_size_in_bytes: BigInt(blob.byteLength)
165
+ };
166
+ return {
167
+ specId: info.partitionSpecId,
168
+ partition: info.partition,
169
+ deleteFile
170
+ };
171
+ }));
172
+ const bySpec = /* @__PURE__ */ new Map();
173
+ for (const f of writtenDeleteFiles) {
174
+ let bucket = bySpec.get(f.specId);
175
+ if (!bucket) {
176
+ const spec = metadata["partition-specs"].find((s) => s["spec-id"] === f.specId);
177
+ if (!spec) throw new Error(`partition spec ${f.specId} not found in metadata`);
178
+ bucket = {
179
+ spec,
180
+ files: [],
181
+ partitions: []
182
+ };
183
+ bySpec.set(f.specId, bucket);
184
+ }
185
+ bucket.files.push(f.deleteFile);
186
+ bucket.partitions.push(f.partition);
187
+ }
188
+ const newManifests = [];
189
+ const writtenManifestPaths = [];
190
+ let manifestIndex = 0;
191
+ for (const { spec, files, partitions } of bySpec.values()) {
192
+ const manifestPath = `${tableUrl}/metadata/${manifestUuid}-m${manifestIndex}.avro`;
193
+ const manifestWriter = writerFn(manifestPath);
194
+ await writeDeleteManifest({
195
+ writer: manifestWriter,
196
+ schema,
197
+ partitionSpec: spec,
198
+ snapshotId,
199
+ deleteFiles: files,
200
+ formatVersion
201
+ });
202
+ const manifestLength = BigInt(manifestWriter.offset);
203
+ const totalAddedRows = files.reduce((sum, f) => sum + f.record_count, 0n);
204
+ newManifests.push({
205
+ manifest_path: manifestPath,
206
+ manifest_length: manifestLength,
207
+ partition_spec_id: spec["spec-id"],
208
+ content: 1,
209
+ sequence_number: sequenceNumber,
210
+ min_sequence_number: sequenceNumber,
211
+ added_snapshot_id: snapshotId,
212
+ added_files_count: files.length,
213
+ existing_files_count: 0,
214
+ deleted_files_count: 0,
215
+ added_rows_count: totalAddedRows,
216
+ existing_rows_count: 0n,
217
+ deleted_rows_count: 0n,
218
+ partitions: spec.fields.length ? buildPartitionSummaries(partitions, schema, spec) : []
219
+ });
220
+ writtenManifestPaths.push(manifestPath);
221
+ manifestIndex++;
222
+ }
223
+ const partitionKeys = /* @__PURE__ */ new Set();
224
+ for (const f of writtenDeleteFiles) partitionKeys.add(`${f.specId}|${partitionTupleKey(f.partition)}`);
225
+ const totalAddedRows = writtenDeleteFiles.reduce((sum, f) => sum + f.deleteFile.record_count, 0n);
226
+ const totalAddedSize = writtenDeleteFiles.reduce((sum, f) => sum + f.deleteFile.file_size_in_bytes, 0n);
227
+ const prevSummary = currentSnapshot(metadata)?.summary;
228
+ const prevTotals = {
229
+ records: BigInt(prevSummary?.["total-records"] ?? "0"),
230
+ size: BigInt(prevSummary?.["total-files-size"] ?? "0"),
231
+ dataFiles: BigInt(prevSummary?.["total-data-files"] ?? "0"),
232
+ deleteFiles: BigInt(prevSummary?.["total-delete-files"] ?? "0"),
233
+ posDeletes: BigInt(prevSummary?.["total-position-deletes"] ?? "0"),
234
+ eqDeletes: BigInt(prevSummary?.["total-equality-deletes"] ?? "0")
235
+ };
236
+ const summary = {
237
+ operation: "delete",
238
+ "added-delete-files": String(writtenDeleteFiles.length),
239
+ "added-dvs": String(writtenDeleteFiles.length),
240
+ "added-position-deletes": String(totalAddedRows),
241
+ "added-files-size": String(totalAddedSize),
242
+ "changed-partition-count": String(partitionKeys.size),
243
+ "total-records": String(prevTotals.records),
244
+ "total-files-size": String(prevTotals.size + totalAddedSize),
245
+ "total-data-files": String(prevTotals.dataFiles),
246
+ "total-delete-files": String(prevTotals.deleteFiles + BigInt(writtenDeleteFiles.length) - removedDeleteFiles),
247
+ "total-position-deletes": String(prevTotals.posDeletes + totalAddedRows - removedPositionDeletes),
248
+ "total-equality-deletes": String(prevTotals.eqDeletes)
249
+ };
250
+ if (removedDeleteFiles > 0n) {
251
+ summary["removed-delete-files"] = String(removedDeleteFiles);
252
+ summary["removed-position-deletes"] = String(removedPositionDeletes);
253
+ if (removedDvs > 0n) summary["removed-dvs"] = String(removedDvs);
254
+ }
255
+ return await buildSnapshotUpdate({
256
+ tableUrl,
257
+ metadata,
258
+ resolver,
259
+ snapshotId,
260
+ sequenceNumber,
261
+ manifestUuid,
262
+ timestampMs,
263
+ formatVersion,
264
+ newManifests: [...replacementManifests, ...newManifests],
265
+ summary,
266
+ writtenFiles: [
267
+ ...replacementManifestPaths,
268
+ ...writtenPuffinPaths,
269
+ ...writtenManifestPaths
270
+ ],
271
+ priorManifests,
272
+ skipPriorManifestPaths
273
+ });
274
+ }
275
+ async function loadPriorDeleteManifestEntries(manifests, resolver) {
276
+ return (await Promise.all(manifests.map(async (manifest) => {
277
+ if (manifest.content !== 1) return;
278
+ return {
279
+ manifest,
280
+ entries: await loadManifestEntries(manifest, resolver)
281
+ };
282
+ }))).filter((g) => g !== void 0);
283
+ }
284
+ function isDeletionVectorForTarget(entry, targetPaths) {
285
+ return entry.data_file.content === 1 && entry.data_file.file_format.toLowerCase() === "puffin" && entry.data_file.referenced_data_file !== void 0 && targetPaths.has(entry.data_file.referenced_data_file);
286
+ }
287
+ function isObsoleteDeleteEntry(entry, targetPaths, obsoletePositionDeleteEntries) {
288
+ return isDeletionVectorForTarget(entry, targetPaths) || obsoletePositionDeleteEntries.has(entry);
289
+ }
290
+ function minEntrySequenceNumber(entries, fallback) {
291
+ let min = fallback;
292
+ for (const entry of entries) if (entry.sequence_number !== void 0 && entry.sequence_number < min) min = entry.sequence_number;
293
+ return min;
294
+ }
295
+ export { icebergStageDeletionVector };