@gscdump/lakehouse 1.4.0 → 1.4.1

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 (316) hide show
  1. package/dist/catalog-cache.d.mts +32 -0
  2. package/dist/catalog-cache.mjs +31 -0
  3. package/dist/{_chunks/catalog.d.mts → catalog.d.mts} +8 -66
  4. package/dist/{_chunks/catalog.mjs → catalog.mjs} +10 -89
  5. package/dist/dataset.d.mts +162 -0
  6. package/dist/dataset.mjs +364 -0
  7. package/dist/index.d.mts +5 -159
  8. package/dist/index.mjs +4 -360
  9. package/dist/maintenance.d.mts +2 -93
  10. package/dist/maintenance.mjs +2 -139
  11. package/dist/node_modules/.pnpm/chokidar@5.0.0/node_modules/chokidar/handler.d.mts +2 -0
  12. package/dist/node_modules/.pnpm/chokidar@5.0.0/node_modules/chokidar/index.d.mts +2 -0
  13. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.bitreader.mjs +88 -0
  14. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.blocks.mjs +120 -0
  15. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.context.mjs +1805 -0
  16. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.contextmap.mjs +49 -0
  17. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.dictionary.mjs +984 -0
  18. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.huffman.mjs +266 -0
  19. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.mjs +340 -0
  20. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.prefix.mjs +109 -0
  21. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.streams.mjs +21 -0
  22. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.transform.mjs +190 -0
  23. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/compressors.mjs +7 -0
  24. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/gzip.huffman.mjs +121 -0
  25. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/gzip.mjs +176 -0
  26. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/index.mjs +7 -0
  27. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/lz4.mjs +52 -0
  28. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/bloom.mjs +93 -0
  29. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/bytewriter.mjs +91 -0
  30. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/column.mjs +186 -0
  31. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/datapage.mjs +113 -0
  32. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/delta.mjs +111 -0
  33. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/dictionary.mjs +99 -0
  34. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/dremel.mjs +116 -0
  35. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/encoding.mjs +51 -0
  36. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/geospatial.mjs +84 -0
  37. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/index.mjs +7 -0
  38. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/indexes.mjs +31 -0
  39. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/metadata.mjs +138 -0
  40. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/node.mjs +7 -0
  41. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/parquet-writer.mjs +139 -0
  42. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/plain.mjs +68 -0
  43. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/schema.mjs +254 -0
  44. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/snappy.mjs +125 -0
  45. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/splitstream.mjs +38 -0
  46. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/thrift.mjs +79 -0
  47. package/dist/{_chunks/libs/hyparquet-writer.d.mts → node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/types.d.mts} +2 -2
  48. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/unconvert.mjs +247 -0
  49. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/variant.mjs +391 -0
  50. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/wkb.mjs +79 -0
  51. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/write-rows.mjs +3 -0
  52. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/write.mjs +46 -0
  53. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/types/bytewriter.d.mts +1 -0
  54. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/types/index.d.mts +10 -0
  55. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/types/node.d.mts +3 -0
  56. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/types/parquet-writer.d.mts +2 -0
  57. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/types/schema.d.mts +2 -0
  58. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/types/write-rows.d.mts +1 -0
  59. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/types/write.d.mts +1 -0
  60. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/assemble.mjs +3 -0
  61. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/bloom.mjs +69 -0
  62. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/column.mjs +8 -0
  63. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/constants.mjs +80 -0
  64. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/convert.mjs +3 -0
  65. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/datapage.mjs +6 -0
  66. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/delta.mjs +2 -0
  67. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/encoding.mjs +2 -0
  68. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/filter.mjs +3 -0
  69. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/geoparquet.mjs +1 -0
  70. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/index.mjs +7 -0
  71. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/indexes.mjs +5 -0
  72. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/metadata.mjs +7 -0
  73. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/node.mjs +3 -0
  74. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/plain.mjs +1 -0
  75. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/plan.mjs +5 -0
  76. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/query.mjs +3 -0
  77. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/read.mjs +6 -0
  78. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/rowgroup.mjs +7 -0
  79. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/schema.mjs +54 -0
  80. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/snappy.mjs +1 -0
  81. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/thrift.mjs +1 -0
  82. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/utils.mjs +19 -0
  83. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/variant.mjs +3 -0
  84. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/wkb.mjs +1 -0
  85. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/xxhash.mjs +68 -0
  86. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/index.d.mts +7 -0
  87. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/indexes.d.mts +1 -0
  88. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/metadata.d.mts +1 -0
  89. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/node.d.mts +2 -0
  90. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/query.d.mts +1 -0
  91. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/read.d.mts +1 -0
  92. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/snappy.d.mts +1 -0
  93. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/utils.d.mts +1 -0
  94. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/assemble.mjs +3 -0
  95. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/bloom.mjs +14 -0
  96. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/column.mjs +8 -0
  97. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/constants.mjs +1 -0
  98. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/convert.mjs +11 -0
  99. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/datapage.mjs +6 -0
  100. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/delta.mjs +2 -0
  101. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/encoding.mjs +2 -0
  102. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/filter.mjs +3 -0
  103. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/geoparquet.mjs +1 -0
  104. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/index.mjs +7 -0
  105. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/indexes.mjs +5 -0
  106. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/metadata.mjs +8 -0
  107. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/node.mjs +4 -0
  108. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/plain.mjs +1 -0
  109. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/plan.mjs +5 -0
  110. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/query.mjs +3 -0
  111. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/read.mjs +6 -0
  112. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/rowgroup.mjs +7 -0
  113. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/schema.mjs +1 -0
  114. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/snappy.mjs +70 -0
  115. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/thrift.mjs +1 -0
  116. package/dist/{_chunks/libs/hyparquet.d.mts → node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/types.d.mts} +2 -3
  117. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/utils.mjs +98 -0
  118. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/variant.mjs +3 -0
  119. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/wkb.mjs +1 -0
  120. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/xxhash.mjs +1 -0
  121. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/index.d.mts +9 -0
  122. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/indexes.d.mts +1 -0
  123. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/metadata.d.mts +1 -0
  124. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/node.d.mts +3 -0
  125. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/query.d.mts +1 -0
  126. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/read.d.mts +1 -0
  127. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/snappy.d.mts +1 -0
  128. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/utils.d.mts +1 -0
  129. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/avro/avro.metadata.mjs +53 -0
  130. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/avro/avro.read.mjs +136 -0
  131. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/avro/avro.write.mjs +148 -0
  132. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/catalog/file.mjs +1 -0
  133. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/catalog/loadTable.mjs +48 -0
  134. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/catalog/rest.mjs +159 -0
  135. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/create.mjs +67 -0
  136. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/delete.mjs +2 -0
  137. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/fetch.mjs +162 -0
  138. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/index.mjs +13 -0
  139. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/json.mjs +147 -0
  140. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/manifest.mjs +71 -0
  141. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/metadata.mjs +151 -0
  142. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/prune.mjs +4 -0
  143. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/puffin/deletion-vector.mjs +2 -0
  144. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/puffin/puffin.mjs +2 -0
  145. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/puffin/roaring.mjs +1 -0
  146. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/read.mjs +9 -0
  147. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/s3.mjs +91 -0
  148. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/schema.mjs +76 -0
  149. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/sigv4.mjs +70 -0
  150. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/sql/icebergDataSource.mjs +8 -0
  151. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/sql/icebergQuery.mjs +5 -0
  152. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/sql/whereFilter.mjs +1 -0
  153. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/types.d.mts +255 -0
  154. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/utils.mjs +26 -0
  155. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/commit.mjs +392 -0
  156. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/conversions.mjs +59 -0
  157. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/delete-file.mjs +3 -0
  158. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/geospatial.mjs +72 -0
  159. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/manifest-list.mjs +152 -0
  160. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/manifest.mjs +212 -0
  161. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/parquet.mjs +305 -0
  162. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/partition.mjs +178 -0
  163. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/rewrite.mjs +10 -0
  164. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/serde.mjs +148 -0
  165. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/snapshot.mjs +107 -0
  166. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/sort.mjs +47 -0
  167. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/stage-deletion-vector.mjs +11 -0
  168. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/stage-position-delete.mjs +8 -0
  169. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/stage.mjs +237 -0
  170. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/stats.mjs +153 -0
  171. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/transform.mjs +220 -0
  172. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/write.mjs +247 -0
  173. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/catalog/file.d.mts +1 -0
  174. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/catalog/rest.d.mts +76 -0
  175. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/create.d.mts +1 -0
  176. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/fetch.d.mts +36 -0
  177. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/index.d.mts +13 -0
  178. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/manifest.d.mts +30 -0
  179. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/metadata.d.mts +1 -0
  180. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/read.d.mts +2 -0
  181. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/s3.d.mts +36 -0
  182. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/sql/icebergDataSource.d.mts +2 -0
  183. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/sql/icebergQuery.d.mts +2 -0
  184. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/write/write.d.mts +79 -0
  185. package/dist/{_chunks/libs/ioredis.d.mts → node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/Command.d.mts} +1 -1
  186. package/dist/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/DataHandler.d.mts +4 -0
  187. package/dist/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/Pipeline.d.mts +4 -0
  188. package/dist/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/Redis.d.mts +10 -0
  189. package/dist/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/ScanStream.d.mts +1 -0
  190. package/dist/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/SubscriptionSet.d.mts +1 -0
  191. package/dist/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/cluster/ClusterOptions.d.mts +4 -0
  192. package/dist/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/cluster/index.d.mts +9 -0
  193. package/dist/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/cluster/util.d.mts +1 -0
  194. package/dist/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/connectors/AbstractConnector.d.mts +1 -0
  195. package/dist/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/connectors/ConnectorConstructor.d.mts +1 -0
  196. package/dist/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/connectors/SentinelConnector/SentinelIterator.d.mts +1 -0
  197. package/dist/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/connectors/SentinelConnector/index.d.mts +6 -0
  198. package/dist/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/connectors/SentinelConnector/types.d.mts +1 -0
  199. package/dist/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/connectors/StandaloneConnector.d.mts +3 -0
  200. package/dist/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/index.d.mts +13 -0
  201. package/dist/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/redis/RedisOptions.d.mts +4 -0
  202. package/dist/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/transaction.d.mts +1 -0
  203. package/dist/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/types.d.mts +1 -0
  204. package/dist/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/utils/Commander.d.mts +3 -0
  205. package/dist/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/utils/RedisCommander.d.mts +2 -0
  206. package/dist/node_modules/.pnpm/lru-cache@11.5.0/node_modules/lru-cache/dist/esm/index.d.mts +1 -0
  207. package/dist/node_modules/.pnpm/lru-cache@11.5.0/node_modules/lru-cache/dist/esm/perf.d.mts +1 -0
  208. package/dist/node_modules/.pnpm/readdirp@5.0.0/node_modules/readdirp/index.d.mts +1 -0
  209. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/ast.d.mts +1 -0
  210. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/backend/dataSource.mjs +1 -0
  211. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/accumulator.mjs +2 -0
  212. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/aggregates.mjs +10 -0
  213. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/execute.mjs +15 -0
  214. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/join.mjs +5 -0
  215. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/scanColumn.mjs +1 -0
  216. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/sort.mjs +5 -0
  217. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/streamingAggregate.mjs +9 -0
  218. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/utils.mjs +1 -0
  219. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/window.mjs +5 -0
  220. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/yield.mjs +17 -0
  221. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/expression/alias.mjs +1 -0
  222. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/expression/binary.mjs +1 -0
  223. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/expression/date.mjs +1 -0
  224. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/expression/evaluate.mjs +15 -0
  225. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/expression/math.mjs +1 -0
  226. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/expression/regexp.mjs +2 -0
  227. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/expression/strings.mjs +3 -0
  228. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/index.d.mts +1 -0
  229. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/index.mjs +9 -0
  230. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/expression.mjs +6 -0
  231. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/extractTables.mjs +1 -0
  232. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/functions.mjs +5 -0
  233. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/joins.mjs +7 -0
  234. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/parse.mjs +10 -0
  235. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/primary.mjs +8 -0
  236. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/state.mjs +2 -0
  237. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/tokenize.mjs +3 -0
  238. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/types.d.mts +1 -0
  239. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/plan/columns.mjs +3 -0
  240. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/plan/plan.mjs +7 -0
  241. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/plan/types.d.mts +1 -0
  242. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/bbox.mjs +2 -0
  243. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/equality.mjs +2 -0
  244. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/operations.mjs +5 -0
  245. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/pointRelations.mjs +2 -0
  246. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/primitives.mjs +2 -0
  247. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/segments.mjs +2 -0
  248. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/spatial.mjs +6 -0
  249. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/wkt.mjs +1 -0
  250. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/types.d.mts +3 -0
  251. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/validation/aggregates.mjs +3 -0
  252. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/validation/executionErrors.mjs +2 -0
  253. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/validation/functions.mjs +2 -0
  254. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/validation/keywords.mjs +1 -0
  255. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/validation/parseErrors.mjs +2 -0
  256. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/validation/tables.mjs +2 -0
  257. package/dist/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 +32 -0
  258. package/dist/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 +33 -0
  259. package/dist/{_chunks/libs/unstorage.d.mts → 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} +9 -13
  260. package/dist/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 +1 -0
  261. package/dist/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 +1 -0
  262. package/dist/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 +1 -0
  263. package/dist/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 +1 -0
  264. package/dist/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 +1 -0
  265. package/dist/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 +1 -0
  266. package/dist/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 +1 -0
  267. package/dist/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 +1 -0
  268. package/dist/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 +1 -0
  269. package/dist/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 +1 -0
  270. package/dist/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 +2 -0
  271. package/dist/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 +1 -0
  272. package/dist/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 +1 -0
  273. package/dist/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 +1 -0
  274. package/dist/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 +2 -0
  275. package/dist/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 +1 -0
  276. package/dist/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 +1 -0
  277. package/dist/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 +1 -0
  278. package/dist/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 +1 -0
  279. package/dist/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 +1 -0
  280. package/dist/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 +2 -0
  281. package/dist/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 +1 -0
  282. package/dist/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 +1 -0
  283. package/dist/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 +1 -0
  284. package/dist/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 +1 -0
  285. package/dist/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 +2 -0
  286. package/dist/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 +1 -0
  287. package/dist/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 +2 -0
  288. package/dist/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 +1 -0
  289. package/dist/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 +1 -0
  290. package/dist/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 +1 -0
  291. package/dist/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 +1 -0
  292. package/dist/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 +1 -0
  293. package/dist/orphan-sweep.d.mts +94 -0
  294. package/dist/orphan-sweep.mjs +141 -0
  295. package/dist/partition-prune.d.mts +35 -0
  296. package/dist/partition-prune.mjs +57 -0
  297. package/dist/provisioning/allocator.d.mts +44 -0
  298. package/dist/provisioning/allocator.mjs +24 -0
  299. package/dist/provisioning/index.d.mts +2 -44
  300. package/dist/provisioning/index.mjs +1 -23
  301. package/dist/schema.d.mts +73 -1
  302. package/dist/unsafe-raw.d.mts +6 -2
  303. package/dist/unsafe-raw.mjs +6 -2
  304. package/dist/vendor/hysnappy-purejs.mjs +10 -0
  305. package/package.json +1 -1
  306. package/dist/_chunks/libs/hyparquet-compressors.mjs +0 -2785
  307. package/dist/_chunks/libs/hyparquet-writer.mjs +0 -2516
  308. package/dist/_chunks/libs/hyparquet.mjs +0 -474
  309. package/dist/_chunks/libs/icebird.d.mts +0 -500
  310. package/dist/_chunks/libs/icebird.mjs +0 -3854
  311. package/dist/_chunks/schema.d.mts +0 -74
  312. /package/dist/{_chunks/libs/chokidar.d.mts → 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_/node_modules/db0/dist/index.d.mts} +0 -0
  313. /package/dist/{_chunks/libs/db0.d.mts → node_modules/.pnpm/denque@2.1.0/node_modules/denque/index.d.mts} +0 -0
  314. /package/dist/{_chunks/libs/fzstd.mjs → node_modules/.pnpm/fzstd@0.1.1/node_modules/fzstd/esm/index.mjs} +0 -0
  315. /package/dist/{_chunks/libs/denque.d.mts → node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/types/wkb.d.mts} +0 -0
  316. /package/dist/{_chunks/libs/lru-cache.d.mts → node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/types.d.mts} +0 -0
package/dist/index.mjs CHANGED
@@ -1,363 +1,7 @@
1
1
  import { bigintJsonReplacer, coerceBigIntToNumber, encodeJsonBigintSafe, stringifyBigintSafe } from "./bigint.mjs";
2
- import { icebergCreateTable } from "./_chunks/libs/icebird.mjs";
3
- import { ICEBERG_TYPE_MAP, buildManifestPartitionFilter, cacheGet, cachePut, catalogCacheScope, connectIcebergCatalog, dropIcebergTables, ensureIcebergNamespace, icebergAppendBatchesRetrying, icebergAppendRetrying, invalidateSnapshotRef, listIcebergTables, resolveIcebergDataFiles } from "./_chunks/catalog.mjs";
2
+ import { cacheGet, cachePut } from "./catalog-cache.mjs";
3
+ import { buildManifestPartitionFilter } from "./partition-prune.mjs";
4
+ import { ICEBERG_TYPE_MAP, catalogCacheScope, connectIcebergCatalog, dropIcebergTables, ensureIcebergNamespace, invalidateSnapshotRef, listIcebergTables, resolveIcebergDataFiles } from "./catalog.mjs";
5
+ import { defineIcebergDataset, deriveTableSpec, toIcebergDayCount } from "./dataset.mjs";
4
6
  import { DEFAULT_PARTITION_KEY_ENCODING } from "./schema.mjs";
5
- const INT32_MIN = -2147483648;
6
- const INT32_MAX = 2147483647;
7
- const DAY_MILLIS = 864e5;
8
- function identityColumnNames(identity) {
9
- return identity.kind === "site-int" ? ["site_id"] : identity.columns.map((c) => c.name);
10
- }
11
- function identityEncodings(identity) {
12
- const map = /* @__PURE__ */ new Map();
13
- if (identity.kind === "site-int") map.set("site_id", (identity.encoding ?? "int") === "int" ? "int32" : "string");
14
- else for (const c of identity.columns) map.set(c.name, c.encoding);
15
- return map;
16
- }
17
- function identityColumnType(encoding) {
18
- return encoding === "int32" ? "INT" : "STRING";
19
- }
20
- function deriveTableSpec(def) {
21
- const encodings = identityEncodings(def.identity);
22
- const idNames = identityColumnNames(def.identity);
23
- const dimNames = def.dims ? Object.keys(def.dims) : [];
24
- let fieldId = 1;
25
- const columns = [];
26
- for (const name of idNames) columns.push({
27
- name,
28
- type: identityColumnType(encodings.get(name)),
29
- required: true,
30
- fieldId: fieldId++
31
- });
32
- for (const name of dimNames) {
33
- const enc = def.dims[name].boundEncoding;
34
- columns.push({
35
- name,
36
- type: identityColumnType(enc),
37
- required: true,
38
- fieldId: fieldId++
39
- });
40
- }
41
- for (const col of def.columns) columns.push({
42
- name: col.name,
43
- type: col.type,
44
- required: col.required,
45
- fieldId: fieldId++
46
- });
47
- return {
48
- namespace: def.namespace,
49
- table: def.table,
50
- columns,
51
- partitionSpec: def.partition,
52
- naturalKey: def.naturalKey,
53
- identityColumns: [
54
- ...idNames,
55
- ...dimNames,
56
- ...def.naturalKey
57
- ],
58
- clusterKey: def.clusterKey
59
- };
60
- }
61
- function icebergSchemaFromSpec(spec) {
62
- return {
63
- "type": "struct",
64
- "schema-id": 0,
65
- "fields": spec.columns.map((col) => ({
66
- id: col.fieldId,
67
- name: col.name,
68
- required: col.required,
69
- type: ICEBERG_TYPE_MAP[col.type]
70
- }))
71
- };
72
- }
73
- function icebergPartitionSpecFromSpec(spec) {
74
- const fieldId = (name) => {
75
- const col = spec.columns.find((c) => c.name === name);
76
- if (!col) throw new Error(`lakehouse: table '${spec.table}' has no '${name}' column`);
77
- return col.fieldId;
78
- };
79
- return {
80
- "spec-id": 0,
81
- "fields": spec.partitionSpec.map((p, i) => ({
82
- "source-id": fieldId(p.sourceColumn),
83
- "field-id": 1e3 + i,
84
- "name": p.name,
85
- "transform": p.transform
86
- }))
87
- };
88
- }
89
- function icebergSortOrderFromSpec(spec) {
90
- if (!spec.clusterKey || spec.clusterKey.length === 0) return void 0;
91
- const fieldId = (name) => {
92
- const col = spec.columns.find((c) => c.name === name);
93
- if (!col) throw new Error(`lakehouse: table '${spec.table}' has no '${name}' column`);
94
- return col.fieldId;
95
- };
96
- return {
97
- "order-id": 1,
98
- "fields": spec.clusterKey.map((col) => ({
99
- "source-id": fieldId(col),
100
- "transform": "identity",
101
- "direction": "asc",
102
- "null-order": "nulls-last"
103
- }))
104
- };
105
- }
106
- function toIcebergDayCount(value) {
107
- if (typeof value === "number") return value;
108
- if (value instanceof Date) {
109
- const ms = value.getTime();
110
- if (Number.isNaN(ms)) throw new TypeError("toIcebergDayCount: invalid Date (NaN)");
111
- return Math.floor(ms / DAY_MILLIS);
112
- }
113
- const ms = Date.parse(`${value}T00:00:00Z`);
114
- if (Number.isNaN(ms)) throw new TypeError(`toIcebergDayCount: invalid date string '${value}'`);
115
- return Math.floor(ms / DAY_MILLIS);
116
- }
117
- function asInt32(value) {
118
- if (typeof value !== "string" && typeof value !== "number" && typeof value !== "bigint") return null;
119
- const n = Number(value);
120
- if (!Number.isSafeInteger(n) || n < INT32_MIN || n > INT32_MAX) return null;
121
- return n;
122
- }
123
- function buildRowProcessor(def, tableSpec) {
124
- const idNames = identityColumnNames(def.identity);
125
- const idEncodings = identityEncodings(def.identity);
126
- const dimNames = def.dims ? Object.keys(def.dims) : [];
127
- const identityColumns = tableSpec.identityColumns;
128
- function guard(row) {
129
- const out = {};
130
- for (const name of idNames) {
131
- const enc = idEncodings.get(name);
132
- const raw = row[name];
133
- if (enc === "int32") {
134
- const n = asInt32(raw);
135
- if (n === null) return null;
136
- out[name] = n;
137
- } else {
138
- if (raw == null || raw === "") return null;
139
- out[name] = String(raw);
140
- }
141
- }
142
- for (const name of dimNames) out[name] = def.dims[name].toPartitionValue(String(row[name]));
143
- for (const col of def.columns) {
144
- const value = row[col.name];
145
- out[col.name] = col.type === "LONG" ? typeof value === "number" ? BigInt(value) : value : coerceBigIntToNumber(value);
146
- }
147
- return out;
148
- }
149
- function dedupe(rows) {
150
- if (rows.length < 2) return rows;
151
- const seen = /* @__PURE__ */ new Map();
152
- for (const rec of rows) {
153
- let identity = "";
154
- for (let index = 0; index < identityColumns.length; index++) {
155
- if (index > 0) identity += "\0";
156
- identity += `${rec[identityColumns[index]] ?? ""}`;
157
- }
158
- seen.set(identity, rec);
159
- }
160
- return seen.size === rows.length ? rows : [...seen.values()];
161
- }
162
- function sort(rows) {
163
- const cols = def.clusterKey;
164
- if (!cols || cols.length === 0 || rows.length < 2) return rows;
165
- return rows.slice().sort((a, b) => {
166
- for (const col of cols) {
167
- const av = a[col];
168
- const bv = b[col];
169
- if (av === bv) continue;
170
- if (av == null) return -1;
171
- if (bv == null) return 1;
172
- if (typeof av === "number" && typeof bv === "number") return av - bv;
173
- const as = String(av);
174
- const bs = String(bv);
175
- if (as !== bs) return as < bs ? -1 : 1;
176
- }
177
- return 0;
178
- });
179
- }
180
- return {
181
- guard,
182
- dedupe,
183
- sort
184
- };
185
- }
186
- function defineIcebergDataset(def) {
187
- const tableSpec = deriveTableSpec(def);
188
- const schema = icebergSchemaFromSpec(tableSpec);
189
- const partitionSpecIcebird = icebergPartitionSpecFromSpec(tableSpec);
190
- const sortOrder = icebergSortOrderFromSpec(tableSpec);
191
- const { guard, dedupe, sort } = buildRowProcessor(def, tableSpec);
192
- async function createTable(conn) {
193
- const results = [];
194
- await icebergCreateTable({
195
- catalog: conn.catalog,
196
- namespace: conn.namespace,
197
- table: def.table,
198
- schema,
199
- partitionSpec: partitionSpecIcebird,
200
- ...sortOrder ? { sortOrder } : {}
201
- }).then(() => results.push({
202
- table: def.table,
203
- ok: true
204
- }), (e) => results.push({
205
- table: def.table,
206
- ok: false,
207
- error: e instanceof Error ? e.message : String(e)
208
- }));
209
- return results;
210
- }
211
- function process(rows) {
212
- const guarded = [];
213
- let skipped = 0;
214
- for (const row of rows) {
215
- const rec = guard(row);
216
- if (rec === null) skipped++;
217
- else guarded.push(rec);
218
- }
219
- return {
220
- records: sort(dedupe(guarded)),
221
- skipped
222
- };
223
- }
224
- async function appendRows(conn, rows, opts = {}) {
225
- if (rows.length === 0) return {
226
- accepted: 0,
227
- skipped: 0
228
- };
229
- const { records, skipped } = process(rows);
230
- if (records.length === 0) return {
231
- accepted: 0,
232
- skipped
233
- };
234
- await icebergAppendRetrying({
235
- catalog: conn.catalog,
236
- namespace: conn.namespace,
237
- table: def.table,
238
- resolver: conn.resolver,
239
- records
240
- }, opts.commitRetry);
241
- return {
242
- accepted: records.length,
243
- skipped
244
- };
245
- }
246
- async function appendBatches(conn, source, opts) {
247
- let accepted = 0;
248
- let skipped = 0;
249
- const batchFactory = async function* () {
250
- accepted = 0;
251
- skipped = 0;
252
- for await (const rows of source()) {
253
- const prepared = process(rows);
254
- accepted += prepared.records.length;
255
- skipped += prepared.skipped;
256
- if (prepared.records.length > 0) yield prepared.records;
257
- }
258
- };
259
- const committed = await icebergAppendBatchesRetrying({
260
- catalog: conn.catalog,
261
- namespace: conn.namespace,
262
- table: def.table,
263
- resolver: conn.resolver,
264
- batchFactory
265
- }, {
266
- ...opts.commitRetry,
267
- appendId: opts.appendId
268
- });
269
- return {
270
- accepted,
271
- skipped,
272
- committed
273
- };
274
- }
275
- function appendSink(opts) {
276
- let buffer = [];
277
- let connection;
278
- function connect() {
279
- connection ??= connectIcebergCatalog(opts.catalog, opts.connect).then(async (conn) => {
280
- await ensureIcebergNamespace(conn);
281
- return conn;
282
- });
283
- return connection;
284
- }
285
- return {
286
- emit(rows) {
287
- for (const r of rows) buffer.push(r);
288
- },
289
- async close() {
290
- if (buffer.length === 0) return {
291
- flushed: false,
292
- accepted: 0,
293
- skipped: 0
294
- };
295
- const rows = buffer;
296
- buffer = [];
297
- try {
298
- const result = await appendRows(await connect(), rows, { commitRetry: opts.commitRetry });
299
- if (result.accepted > 0 && opts.ledger) await opts.ledger.record();
300
- return {
301
- flushed: result.accepted > 0,
302
- ...result
303
- };
304
- } catch (error) {
305
- return {
306
- flushed: false,
307
- accepted: 0,
308
- skipped: 0,
309
- error
310
- };
311
- }
312
- }
313
- };
314
- }
315
- function readerPredicate(identity, dims) {
316
- const idNames = identityColumnNames(def.identity);
317
- const idEncodings = identityEncodings(def.identity);
318
- const matches = idNames.map((name) => ({
319
- field: name,
320
- value: idEncodings.get(name) === "int32" ? Number(identity) : identity,
321
- encoding: idEncodings.get(name) === "int32" ? "int32" : "string"
322
- }));
323
- if (def.dims && dims) {
324
- for (const [name, dim] of Object.entries(def.dims)) if (name in dims) matches.push({
325
- field: name,
326
- value: dim.toPartitionValue(dims[name]),
327
- encoding: dim.boundEncoding
328
- });
329
- }
330
- return matches;
331
- }
332
- function partitionBoundFilter(identity, months, dims) {
333
- return buildManifestPartitionFilter(def.partition, readerPredicate(identity, dims), months);
334
- }
335
- async function resolveDataFiles(conn, identity, range, dims, opts = {}) {
336
- return resolveIcebergDataFiles(conn, {
337
- namespace: def.namespace,
338
- table: def.table,
339
- partitionSpec: def.partition,
340
- matches: readerPredicate(identity, dims),
341
- range,
342
- cache: opts.cache,
343
- clock: opts.clock,
344
- profiler: opts.profiler
345
- });
346
- }
347
- return {
348
- def,
349
- tableSpec,
350
- icebergSchema: () => schema,
351
- icebergPartitionSpec: () => partitionSpecIcebird,
352
- icebergSortOrder: () => sortOrder,
353
- createTable,
354
- appendRows,
355
- appendBatches,
356
- prepareRows: process,
357
- appendSink,
358
- readerPredicate,
359
- partitionBoundFilter,
360
- resolveDataFiles
361
- };
362
- }
363
7
  export { DEFAULT_PARTITION_KEY_ENCODING, ICEBERG_TYPE_MAP, bigintJsonReplacer, buildManifestPartitionFilter, cacheGet, cachePut, catalogCacheScope, coerceBigIntToNumber, connectIcebergCatalog, defineIcebergDataset, deriveTableSpec, dropIcebergTables, encodeJsonBigintSafe, ensureIcebergNamespace, invalidateSnapshotRef, listIcebergTables, resolveIcebergDataFiles, stringifyBigintSafe, toIcebergDayCount };
@@ -1,94 +1,3 @@
1
- import { IcebergConnection, isCommitRateLimited } from "./_chunks/catalog.mjs";
2
- /** One listed object under a data prefix. */
3
- interface SweepListedObject {
4
- key: string;
5
- uploaded: Date;
6
- }
7
- /** One page of a prefix listing. */
8
- interface SweepListPage {
9
- objects: readonly SweepListedObject[];
10
- truncated: boolean;
11
- cursor?: string;
12
- }
13
- /**
14
- * Minimal storage client `sweepUncommittedOrphans` needs: list-by-prefix +
15
- * batch delete against the warehouse bucket. Deliberately NOT an S3 SDK
16
- * client shape — this interface is structurally satisfied by Cloudflare's
17
- * native `R2Bucket` Workers binding (`env.R2_ANALYTICS.list({ prefix })` /
18
- * `env.R2_ANALYTICS.delete(keys)`), so a caller running inside a Worker can
19
- * pass the binding straight through with no adapter. Any other
20
- * S3-compatible client can be wrapped to this shape.
21
- */
22
- interface SweepStorageClient {
23
- list: (options: {
24
- prefix: string;
25
- cursor?: string;
26
- }) => Promise<SweepListPage>;
27
- delete: (keys: string[]) => Promise<void>;
28
- }
29
- interface SweepUncommittedOrphansOptions {
30
- conn: IcebergConnection;
31
- s3: SweepStorageClient;
32
- /**
33
- * Bare R2 bucket name backing `conn`'s warehouse. Every scanned table's
34
- * `location` must resolve into this exact bucket; a table whose location
35
- * points elsewhere is SKIPPED — never guessed at, never touched.
36
- */
37
- bucket: string;
38
- /**
39
- * Restrict the sweep to these tables; defaults to every table currently
40
- * in `conn.namespace` (`conn` already carries the namespace scope, so
41
- * there's no separate `namespace` field here).
42
- */
43
- tables?: readonly string[];
44
- /** Only delete objects older than this many hours. Default 48. */
45
- graceHours?: number;
46
- /** Hard cap on deletions in one run. Default 500. */
47
- maxDeletes?: number;
48
- /** Compute the delete set but never call `s3.delete`. Default false. */
49
- dryRun?: boolean;
50
- /** Injectable clock (ms epoch). Defaults to `Date.now`. */
51
- now?: () => number;
52
- /** Maximum catalog/object-store reads held in flight. Default 4, max 32. */
53
- ioConcurrency?: number;
54
- }
55
- interface SweepUncommittedOrphansResult {
56
- /** Tables whose retained snapshots were successfully walked. */
57
- scannedTables: string[];
58
- /** Tables skipped because their `location` didn't resolve into `bucket` — never scanned, never touched. */
59
- skippedTables: string[];
60
- /** Count of live (referenced-by-some-retained-snapshot) files found across `scannedTables`. */
61
- liveFileCount: number;
62
- /** Objects under a scanned table's data prefix with no snapshot reference anywhere, past `graceHours`. */
63
- candidateCount: number;
64
- /** Keys deleted (or, under `dryRun`, that WOULD be deleted). */
65
- deleted: string[];
66
- dryRun: boolean;
67
- /** True when `candidateCount` exceeded `maxDeletes` — remaining orphans are left for the next run. */
68
- cappedAtLimit: boolean;
69
- /** Set when the sweep did nothing because the table scope listed zero tables (fail-closed — see class docs). */
70
- reason?: 'zero-tables';
71
- }
72
- /**
73
- * Sweep data files written under a table's `data/` prefix that were NEVER
74
- * referenced by any snapshot the catalog still retains — a crashed/partial
75
- * writer's leftovers. This is the one orphan class Cloudflare's own R2 Data
76
- * Catalog snapshot-expiration GC does not cover.
77
- *
78
- * HARD SAFETY:
79
- * - A listing failure (table load / manifest walk throwing) PROPAGATES.
80
- * It is never caught and treated as "no live files" — that would make
81
- * every real data file look orphaned. Callers must let this reject and
82
- * must not proceed to delete on catch.
83
- * - Zero tables in scope is treated as "couldn't determine what's live",
84
- * not "nothing to protect" — the sweep no-ops with `reason: 'zero-tables'`
85
- * rather than listing/deleting anything.
86
- * - Deletions are capped at `maxDeletes` per run (default 500).
87
- * - `dryRun` computes the exact candidate set without ever calling `s3.delete`.
88
- * - Only ever lists/deletes keys under a scanned table's own
89
- * `<table.location>/data/` prefix, and every candidate is re-checked to
90
- * actually start with that prefix before being considered for deletion —
91
- * never a bare bucket-root listing, never a key outside a data prefix.
92
- */
93
- declare function sweepUncommittedOrphans(opts: SweepUncommittedOrphansOptions): Promise<SweepUncommittedOrphansResult>;
1
+ import { isCommitRateLimited } from "./catalog.mjs";
2
+ import { SweepListPage, SweepListedObject, SweepStorageClient, SweepUncommittedOrphansOptions, SweepUncommittedOrphansResult, sweepUncommittedOrphans } from "./orphan-sweep.mjs";
94
3
  export { type SweepListPage, type SweepListedObject, type SweepStorageClient, type SweepUncommittedOrphansOptions, type SweepUncommittedOrphansResult, isCommitRateLimited, sweepUncommittedOrphans };
@@ -1,140 +1,3 @@
1
- import { icebergManifests, restCatalogListTables, restCatalogLoadTable } from "./_chunks/libs/icebird.mjs";
2
- import { isCommitRateLimited } from "./_chunks/catalog.mjs";
3
- const DEFAULT_GRACE_HOURS = 48;
4
- const DEFAULT_MAX_DELETES = 500;
5
- const DEFAULT_IO_CONCURRENCY = 4;
6
- const MAX_IO_CONCURRENCY = 32;
7
- const HOUR_MS = 3600 * 1e3;
8
- function createIoLimiter(requested) {
9
- const concurrency = typeof requested === "number" && Number.isFinite(requested) ? Math.max(1, Math.min(MAX_IO_CONCURRENCY, Math.floor(requested))) : DEFAULT_IO_CONCURRENCY;
10
- let active = 0;
11
- const waiters = [];
12
- return async (operation) => {
13
- if (active >= concurrency) await new Promise((resolve) => waiters.push(resolve));
14
- active++;
15
- try {
16
- return await operation();
17
- } finally {
18
- active--;
19
- waiters.shift()?.();
20
- }
21
- };
22
- }
23
- async function settleOrThrow(promises) {
24
- const settled = await Promise.allSettled(promises);
25
- const failure = settled.find((result) => result.status === "rejected");
26
- if (failure) throw failure.reason;
27
- return settled.map((result) => result.value);
28
- }
29
- function splitBucketKey(filePath) {
30
- if (!filePath.startsWith("s3://")) return null;
31
- const rest = filePath.slice(5);
32
- const slash = rest.indexOf("/");
33
- if (slash < 0) return null;
34
- return {
35
- bucket: rest.slice(0, slash),
36
- key: rest.slice(slash + 1)
37
- };
38
- }
39
- async function scanTable(conn, table, bucket, io) {
40
- const { metadata } = await io(() => restCatalogLoadTable(conn.catalog, {
41
- namespace: conn.namespace,
42
- table
43
- }));
44
- const location = splitBucketKey(String(metadata.location ?? ""));
45
- if (!location || location.bucket !== bucket) return {
46
- dataPrefix: null,
47
- liveKeys: /* @__PURE__ */ new Set()
48
- };
49
- const dataPrefix = `${location.key.replace(/\/+$/, "")}/data/`;
50
- const liveKeys = /* @__PURE__ */ new Set();
51
- const manifestsBySnapshot = await settleOrThrow((metadata.snapshots ?? []).map((snapshot) => io(() => icebergManifests({
52
- metadata,
53
- resolver: conn.resolver,
54
- snapshotId: snapshot["snapshot-id"]
55
- }))));
56
- for (const manifests of manifestsBySnapshot) for (const manifest of manifests) for (const entry of manifest.entries) {
57
- if (entry.status === 2) continue;
58
- const filePath = entry.data_file?.file_path;
59
- if (!filePath) continue;
60
- const parsed = splitBucketKey(filePath);
61
- if (parsed && parsed.bucket === bucket) liveKeys.add(parsed.key);
62
- }
63
- return {
64
- dataPrefix,
65
- liveKeys
66
- };
67
- }
68
- async function listAllUnderPrefix(s3, prefix, io) {
69
- const out = [];
70
- let cursor;
71
- do {
72
- const page = await io(() => s3.list({
73
- prefix,
74
- cursor
75
- }));
76
- out.push(...page.objects);
77
- cursor = page.truncated ? page.cursor : void 0;
78
- } while (cursor);
79
- return out;
80
- }
81
- async function sweepUncommittedOrphans(opts) {
82
- const { conn, s3, bucket } = opts;
83
- const graceHours = opts.graceHours ?? DEFAULT_GRACE_HOURS;
84
- const maxDeletes = opts.maxDeletes ?? DEFAULT_MAX_DELETES;
85
- const dryRun = opts.dryRun ?? false;
86
- const graceCutoff = (opts.now ?? Date.now)() - graceHours * HOUR_MS;
87
- const io = createIoLimiter(opts.ioConcurrency);
88
- const tables = opts.tables ?? (await io(() => restCatalogListTables(conn.catalog, { namespace: conn.namespace }))).map((t) => t.name);
89
- if (tables.length === 0) return {
90
- scannedTables: [],
91
- skippedTables: [],
92
- liveFileCount: 0,
93
- candidateCount: 0,
94
- deleted: [],
95
- dryRun,
96
- cappedAtLimit: false,
97
- reason: "zero-tables"
98
- };
99
- const tableResults = await settleOrThrow(tables.map(async (table) => {
100
- const { dataPrefix, liveKeys } = await scanTable(conn, table, bucket, io);
101
- if (!dataPrefix) return {
102
- table,
103
- skipped: true,
104
- liveFileCount: 0,
105
- candidates: []
106
- };
107
- const listed = await listAllUnderPrefix(s3, dataPrefix, io);
108
- const tableCandidates = [];
109
- for (const obj of listed) {
110
- if (!obj.key.startsWith(dataPrefix)) continue;
111
- if (liveKeys.has(obj.key)) continue;
112
- if (obj.uploaded.getTime() > graceCutoff) continue;
113
- tableCandidates.push(obj);
114
- }
115
- return {
116
- table,
117
- skipped: false,
118
- liveFileCount: liveKeys.size,
119
- candidates: tableCandidates
120
- };
121
- }));
122
- const scannedTables = tableResults.filter((result) => !result.skipped).map((result) => result.table);
123
- const skippedTables = tableResults.filter((result) => result.skipped).map((result) => result.table);
124
- const liveFileCount = tableResults.reduce((sum, result) => sum + result.liveFileCount, 0);
125
- const candidates = tableResults.flatMap((result) => result.candidates);
126
- const candidateCount = candidates.length;
127
- const toDelete = candidates.slice(0, maxDeletes);
128
- const cappedAtLimit = candidateCount > maxDeletes;
129
- if (!dryRun && toDelete.length > 0) await s3.delete(toDelete.map((o) => o.key));
130
- return {
131
- scannedTables,
132
- skippedTables,
133
- liveFileCount,
134
- candidateCount,
135
- deleted: toDelete.map((o) => o.key),
136
- dryRun,
137
- cappedAtLimit
138
- };
139
- }
1
+ import { isCommitRateLimited } from "./catalog.mjs";
2
+ import { sweepUncommittedOrphans } from "./orphan-sweep.mjs";
140
3
  export { isCommitRateLimited, sweepUncommittedOrphans };
@@ -0,0 +1,2 @@
1
+ import "../../../readdirp@5.0.0/node_modules/readdirp/index.mjs";
2
+ import "./index.mjs";
@@ -0,0 +1,2 @@
1
+ import "../../../readdirp@5.0.0/node_modules/readdirp/index.mjs";
2
+ import "./handler.mjs";
@@ -0,0 +1,88 @@
1
+ const BROTLI_READ_SIZE = 4096;
2
+ const BROTLI_IBUF_SIZE = 8224;
3
+ const BROTLI_IBUF_MASK = 2 * BROTLI_READ_SIZE - 1;
4
+ const kBitMask = new Uint32Array([
5
+ 0,
6
+ 1,
7
+ 3,
8
+ 7,
9
+ 15,
10
+ 31,
11
+ 63,
12
+ 127,
13
+ 255,
14
+ 511,
15
+ 1023,
16
+ 2047,
17
+ 4095,
18
+ 8191,
19
+ 16383,
20
+ 32767,
21
+ 65535,
22
+ 131071,
23
+ 262143,
24
+ 524287,
25
+ 1048575,
26
+ 2097151,
27
+ 4194303,
28
+ 8388607,
29
+ 16777215
30
+ ]);
31
+ function BrotliBitReader(input) {
32
+ this.buf_ = new Uint8Array(BROTLI_IBUF_SIZE);
33
+ this.input_ = input;
34
+ this.buf_ptr_ = 0;
35
+ this.val_ = 0;
36
+ this.pos_ = 0;
37
+ this.reset();
38
+ }
39
+ BrotliBitReader.READ_SIZE = BROTLI_READ_SIZE;
40
+ BrotliBitReader.IBUF_MASK = BROTLI_IBUF_MASK;
41
+ BrotliBitReader.prototype.reset = function() {
42
+ this.buf_ptr_ = 0;
43
+ this.val_ = 0;
44
+ this.pos_ = 0;
45
+ this.bit_pos_ = 0;
46
+ this.bit_end_pos_ = 0;
47
+ this.eos_ = 0;
48
+ this.readMoreInput();
49
+ for (let i = 0; i < 4; i++) {
50
+ this.val_ |= this.buf_[this.pos_] << 8 * i;
51
+ this.pos_++;
52
+ }
53
+ return this.bit_end_pos_ > 0;
54
+ };
55
+ BrotliBitReader.prototype.readMoreInput = function() {
56
+ if (this.bit_end_pos_ > 256) {} else if (this.eos_) {
57
+ if (this.bit_pos_ > this.bit_end_pos_) throw new Error("Unexpected end of input " + this.bit_pos_ + " " + this.bit_end_pos_);
58
+ } else {
59
+ const dst = this.buf_ptr_;
60
+ const bytes_read = this.input_.read(this.buf_, dst, BROTLI_READ_SIZE);
61
+ if (bytes_read < 0) throw new Error("Unexpected end of input");
62
+ if (bytes_read < BROTLI_READ_SIZE) {
63
+ this.eos_ = 1;
64
+ for (let p = 0; p < 32; p++) this.buf_[dst + bytes_read + p] = 0;
65
+ }
66
+ if (dst === 0) {
67
+ for (let p = 0; p < 32; p++) this.buf_[(BROTLI_READ_SIZE << 1) + p] = this.buf_[p];
68
+ this.buf_ptr_ = BROTLI_READ_SIZE;
69
+ } else this.buf_ptr_ = 0;
70
+ this.bit_end_pos_ += bytes_read << 3;
71
+ }
72
+ };
73
+ BrotliBitReader.prototype.fillBitWindow = function() {
74
+ while (this.bit_pos_ >= 8) {
75
+ this.val_ >>>= 8;
76
+ this.val_ |= this.buf_[this.pos_ & BROTLI_IBUF_MASK] << 24;
77
+ this.pos_++;
78
+ this.bit_pos_ = this.bit_pos_ - 8 >>> 0;
79
+ this.bit_end_pos_ = this.bit_end_pos_ - 8 >>> 0;
80
+ }
81
+ };
82
+ BrotliBitReader.prototype.readBits = function(n_bits) {
83
+ if (32 - this.bit_pos_ < n_bits) this.fillBitWindow();
84
+ const val = this.val_ >>> this.bit_pos_ & kBitMask[n_bits];
85
+ this.bit_pos_ += n_bits;
86
+ return val;
87
+ };
88
+ export { BrotliBitReader };