@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
@@ -0,0 +1,220 @@
1
+ import { typeName } from "../schema.mjs";
2
+ import { uuidToBytes } from "./conversions.mjs";
3
+ function parseTransform(transform) {
4
+ if (transform === "identity" || transform === "void" || transform === "year" || transform === "month" || transform === "day" || transform === "hour") return { kind: transform };
5
+ let m = /^bucket\[(\d+)\]$/.exec(transform);
6
+ if (m) {
7
+ const n = parseInt(m[1], 10);
8
+ if (n > 0) return {
9
+ kind: "bucket",
10
+ n
11
+ };
12
+ }
13
+ m = /^truncate\[(\d+)\]$/.exec(transform);
14
+ if (m) {
15
+ const w = parseInt(m[1], 10);
16
+ if (w > 0) return {
17
+ kind: "truncate",
18
+ w
19
+ };
20
+ }
21
+ throw new Error(`unsupported partition transform: ${transform}`);
22
+ }
23
+ function transformResultType(transform, sourceType) {
24
+ const parsed = parseTransform(transform);
25
+ validateTransformSource(parsed, sourceType);
26
+ switch (parsed.kind) {
27
+ case "identity":
28
+ case "truncate": return sourceType;
29
+ case "void": return "int";
30
+ case "year":
31
+ case "month":
32
+ case "day":
33
+ case "hour":
34
+ case "bucket": return "int";
35
+ }
36
+ }
37
+ function applyTransform(transform, value, sourceType) {
38
+ const parsed = parseTransform(transform);
39
+ validateTransformSource(parsed, sourceType);
40
+ if (value == null) return null;
41
+ switch (parsed.kind) {
42
+ case "identity": return value;
43
+ case "void": return null;
44
+ case "year": return yearTransform(value, sourceType);
45
+ case "month": return monthTransform(value, sourceType);
46
+ case "day": return dayTransform(value, sourceType);
47
+ case "hour": return hourTransform(value, sourceType);
48
+ case "bucket": return bucketTransform(value, sourceType, parsed.n);
49
+ case "truncate": return truncateTransform(value, sourceType, parsed.w);
50
+ }
51
+ }
52
+ function dateAsMillis(value, sourceType, transform) {
53
+ const t = typeName(sourceType);
54
+ validateTransformSource({ kind: transform }, sourceType);
55
+ if (value instanceof Date) return value.getTime();
56
+ const n = typeof value === "bigint" ? value : BigInt(value);
57
+ switch (t) {
58
+ case "date": return Number(n) * 864e5;
59
+ case "timestamp":
60
+ case "timestamptz": return Number(n / 1000n);
61
+ default: return Number(n / 1000000n);
62
+ }
63
+ }
64
+ function yearTransform(v, t) {
65
+ return new Date(dateAsMillis(v, t, "year")).getUTCFullYear() - 1970;
66
+ }
67
+ function monthTransform(v, t) {
68
+ const d = new Date(dateAsMillis(v, t, "month"));
69
+ return (d.getUTCFullYear() - 1970) * 12 + d.getUTCMonth();
70
+ }
71
+ function dayTransform(v, t) {
72
+ return Math.floor(dateAsMillis(v, t, "day") / 864e5);
73
+ }
74
+ function hourTransform(v, t) {
75
+ return Math.floor(dateAsMillis(v, t, "hour") / 36e5);
76
+ }
77
+ function bucketTransform(value, sourceType, n) {
78
+ return (murmur3_32(bucketBytes(value, sourceType), 0) & 2147483647) % n;
79
+ }
80
+ function bucketBytes(value, sourceType) {
81
+ const t = typeName(sourceType);
82
+ if (t.startsWith("decimal(")) return decimalToUnscaledBytes(value, t);
83
+ if (t === "uuid") return uuidToBytes(value, "uuid partition value");
84
+ if (t.startsWith("fixed[") || t === "binary" || t === "fixed") return value instanceof Uint8Array ? value : new Uint8Array(value);
85
+ switch (t) {
86
+ case "int":
87
+ case "long":
88
+ case "date":
89
+ case "time":
90
+ case "timestamp":
91
+ case "timestamptz":
92
+ case "timestamp_ns":
93
+ case "timestamptz_ns": {
94
+ let v;
95
+ if (t === "date") v = value instanceof Date ? BigInt(Math.floor(value.getTime() / 864e5)) : BigInt(value);
96
+ else if (t === "timestamp" || t === "timestamptz") v = value instanceof Date ? BigInt(value.getTime()) * 1000n : BigInt(value);
97
+ else if (t === "timestamp_ns" || t === "timestamptz_ns") v = value instanceof Date ? BigInt(value.getTime()) * 1000n : BigInt(value) / 1000n;
98
+ else v = typeof value === "bigint" ? value : BigInt(value);
99
+ const out = /* @__PURE__ */ new Uint8Array(8);
100
+ new DataView(out.buffer).setBigInt64(0, v, true);
101
+ return out;
102
+ }
103
+ case "string": return new TextEncoder().encode(String(value));
104
+ default: throw new Error(`bucket transform: unsupported source type ${t}`);
105
+ }
106
+ }
107
+ function decimalToUnscaledBytes(value, decimalType) {
108
+ const m = /^decimal\((\d+),\s*(\d+)\)$/.exec(decimalType);
109
+ if (!m) throw new Error(`bucket transform: invalid decimal type ${decimalType}`);
110
+ const scale = parseInt(m[2], 10);
111
+ const factor = 10n ** BigInt(scale);
112
+ const unscaled = typeof value === "bigint" ? value * factor : BigInt(Math.round(Number(value) * Number(factor)));
113
+ const bytes = [];
114
+ let v = unscaled;
115
+ while (true) {
116
+ const byte = Number(v & 255n);
117
+ bytes.unshift(byte);
118
+ v >>= 8n;
119
+ const sign = byte & 128;
120
+ if (!sign && v === 0n || sign && v === -1n) break;
121
+ }
122
+ return new Uint8Array(bytes);
123
+ }
124
+ function truncateTransform(value, sourceType, w) {
125
+ const t = typeName(sourceType);
126
+ if (t.startsWith("decimal(")) {
127
+ const m = /^decimal\((\d+),\s*(\d+)\)$/.exec(t);
128
+ if (!m) throw new Error(`truncate transform: invalid decimal type ${t}`);
129
+ const scale = parseInt(m[2], 10);
130
+ const factor = 10n ** BigInt(scale);
131
+ const unscaled = typeof value === "bigint" ? value * factor : BigInt(Math.round(Number(value) * Number(factor)));
132
+ const W = BigInt(w);
133
+ const truncated = unscaled - (unscaled % W + W) % W;
134
+ return Number(truncated) / Number(factor);
135
+ }
136
+ if (t === "binary") return (value instanceof Uint8Array ? value : new Uint8Array(value)).slice(0, w);
137
+ switch (t) {
138
+ case "int": {
139
+ const v = Number(value);
140
+ return v - (v % w + w) % w;
141
+ }
142
+ case "long": {
143
+ const W = BigInt(w);
144
+ const v = typeof value === "bigint" ? value : BigInt(value);
145
+ return v - (v % W + W) % W;
146
+ }
147
+ case "string": {
148
+ const s = String(value);
149
+ let count = 0;
150
+ let i = 0;
151
+ while (i < s.length && count < w) {
152
+ const code = s.codePointAt(i);
153
+ i += code > 65535 ? 2 : 1;
154
+ count++;
155
+ }
156
+ return s.slice(0, i);
157
+ }
158
+ default: throw new Error(`truncate transform: unsupported source type ${t}`);
159
+ }
160
+ }
161
+ function validateTransformSource(parsed, sourceType) {
162
+ const t = typeName(sourceType);
163
+ switch (parsed.kind) {
164
+ case "identity":
165
+ if (t === "variant" || t === "geometry" || t.startsWith("geometry(") || t === "geography" || t.startsWith("geography(")) throw new Error(`identity transform: unsupported source type ${t}`);
166
+ return;
167
+ case "void": return;
168
+ case "bucket":
169
+ if (t === "int" || t === "long" || t.startsWith("decimal(") || t === "date" || t === "time" || t === "timestamp" || t === "timestamptz" || t === "timestamp_ns" || t === "timestamptz_ns" || t === "string" || t === "uuid" || t.startsWith("fixed[") || t === "binary" || t === "fixed") return;
170
+ throw new Error(`bucket transform: unsupported source type ${t}`);
171
+ case "truncate":
172
+ if (t === "int" || t === "long" || t.startsWith("decimal(") || t === "string" || t === "binary") return;
173
+ throw new Error(`truncate transform: unsupported source type ${t}`);
174
+ case "year":
175
+ case "month":
176
+ case "day":
177
+ if (t === "date" || t === "timestamp" || t === "timestamptz" || t === "timestamp_ns" || t === "timestamptz_ns") return;
178
+ throw new Error(`${parsed.kind} transform: unsupported source type ${t}`);
179
+ case "hour":
180
+ if (t === "timestamp" || t === "timestamptz" || t === "timestamp_ns" || t === "timestamptz_ns") return;
181
+ throw new Error("hour transform: unsupported source type " + t);
182
+ }
183
+ }
184
+ function murmur3_32(data, seed) {
185
+ const c1 = 3432918353;
186
+ const c2 = 461845907;
187
+ const len = data.length;
188
+ const nBlocks = len >>> 2;
189
+ let h1 = seed >>> 0;
190
+ for (let i = 0; i < nBlocks; i++) {
191
+ const off = i * 4;
192
+ let k1 = data[off] | data[off + 1] << 8 | data[off + 2] << 16 | data[off + 3] << 24;
193
+ k1 = Math.imul(k1, c1);
194
+ k1 = k1 << 15 | k1 >>> 17;
195
+ k1 = Math.imul(k1, c2);
196
+ h1 ^= k1;
197
+ h1 = h1 << 13 | h1 >>> 19;
198
+ h1 = Math.imul(h1, 5) + 3864292196 | 0;
199
+ }
200
+ let k1 = 0;
201
+ const tail = nBlocks * 4;
202
+ switch (len & 3) {
203
+ case 3: k1 ^= data[tail + 2] << 16;
204
+ case 2: k1 ^= data[tail + 1] << 8;
205
+ case 1:
206
+ k1 ^= data[tail];
207
+ k1 = Math.imul(k1, c1);
208
+ k1 = k1 << 15 | k1 >>> 17;
209
+ k1 = Math.imul(k1, c2);
210
+ h1 ^= k1;
211
+ }
212
+ h1 ^= len;
213
+ h1 ^= h1 >>> 16;
214
+ h1 = Math.imul(h1, 2246822507);
215
+ h1 ^= h1 >>> 13;
216
+ h1 = Math.imul(h1, 3266489909);
217
+ h1 ^= h1 >>> 16;
218
+ return h1 >>> 0;
219
+ }
220
+ export { applyTransform, murmur3_32, parseTransform, transformResultType };
@@ -0,0 +1,247 @@
1
+ import { loadLatestFileCatalogMetadata } from "../metadata.mjs";
2
+ import { restCatalogCreateTable, restCatalogDropTable, restCatalogLoadTable, restCatalogUpdateTable } from "../catalog/rest.mjs";
3
+ import { loadTable } from "../catalog/loadTable.mjs";
4
+ import { icebergCreate } from "../create.mjs";
5
+ import { fileCatalogCommit } from "./commit.mjs";
6
+ import { prepareAppend, stageSnapshotForAppend, stageSnapshotForAppendBatches } from "./stage.mjs";
7
+ import "./stage-position-delete.mjs";
8
+ import "./stage-deletion-vector.mjs";
9
+ import "./rewrite.mjs";
10
+ const DEFAULT_RETRY = Object.freeze({
11
+ maxAttempts: 50,
12
+ initialMs: 50,
13
+ maxMs: 3e3,
14
+ factor: 2,
15
+ totalTimeoutMs: 1800 * 1e3
16
+ });
17
+ async function icebergAppend({ catalog, namespace, table, tableUrl, resolver, records, sortOrderId, snapshotProperties }) {
18
+ const ctx = await loadTable({
19
+ catalog,
20
+ namespace,
21
+ table,
22
+ tableUrl,
23
+ resolver
24
+ });
25
+ const prepared = await prepareAppend({
26
+ tableUrl: ctx.tableUrl,
27
+ metadata: ctx.metadata,
28
+ records,
29
+ resolver: requireResolver(ctx.resolver, "icebergAppend"),
30
+ sortOrderId
31
+ });
32
+ return await commitWithRetry({
33
+ catalog,
34
+ target: {
35
+ namespace,
36
+ table
37
+ },
38
+ ctx,
39
+ stage: (workingCtx) => stageSnapshotForAppend({
40
+ tableUrl: workingCtx.tableUrl,
41
+ metadata: workingCtx.metadata,
42
+ prepared,
43
+ resolver: requireResolver(workingCtx.resolver, "icebergAppend"),
44
+ snapshotProperties
45
+ })
46
+ });
47
+ }
48
+ async function icebergAppendBatches({ catalog, namespace, table, tableUrl, resolver, batches, sortOrderId, snapshotProperties }) {
49
+ const ctx = await loadTable({
50
+ catalog,
51
+ namespace,
52
+ table,
53
+ tableUrl,
54
+ resolver
55
+ });
56
+ const writer = requireResolver(ctx.resolver, "icebergAppendBatches");
57
+ const prepared = [];
58
+ let snapshotId;
59
+ for await (const records of batches) {
60
+ if (records.length === 0) continue;
61
+ const batch = await prepareAppend({
62
+ tableUrl: ctx.tableUrl,
63
+ metadata: ctx.metadata,
64
+ records,
65
+ resolver: writer,
66
+ sortOrderId,
67
+ snapshotId
68
+ });
69
+ snapshotId ??= batch.snapshotId;
70
+ prepared.push(batch);
71
+ }
72
+ if (prepared.length === 0) return ctx.metadata;
73
+ return await commitWithRetry({
74
+ catalog,
75
+ target: {
76
+ namespace,
77
+ table
78
+ },
79
+ ctx,
80
+ stage: (workingCtx) => stageSnapshotForAppendBatches({
81
+ tableUrl: workingCtx.tableUrl,
82
+ metadata: workingCtx.metadata,
83
+ prepared,
84
+ resolver: requireResolver(workingCtx.resolver, "icebergAppendBatches"),
85
+ snapshotProperties
86
+ })
87
+ });
88
+ }
89
+ async function icebergCreateTable({ catalog, namespace, table, tableUrl, schema, partitionSpec, sortOrder, properties, formatVersion, stageCreate }) {
90
+ if (catalog.type === "rest") {
91
+ if (!namespace || !table) throw new Error("namespace and table are required for rest catalogs");
92
+ if (!schema) throw new Error("schema is required for rest catalogs");
93
+ const { metadata } = await restCatalogCreateTable(catalog, {
94
+ namespace,
95
+ table,
96
+ schema,
97
+ location: tableUrl,
98
+ partitionSpec,
99
+ writeOrder: sortOrder,
100
+ stageCreate,
101
+ properties
102
+ });
103
+ return metadata;
104
+ }
105
+ if (!tableUrl) throw new Error("tableUrl is required for file catalogs");
106
+ return await icebergCreate({
107
+ tableUrl,
108
+ resolver: catalog.resolver,
109
+ schema,
110
+ formatVersion,
111
+ partitionSpec,
112
+ sortOrder,
113
+ properties,
114
+ conditionalCommits: catalog.conditionalCommits
115
+ });
116
+ }
117
+ async function icebergDropTable({ catalog, namespace, table, tableUrl, lister, purgeRequested }) {
118
+ if (catalog.type === "rest") {
119
+ if (!namespace || !table) throw new Error("namespace and table are required for rest catalogs");
120
+ await restCatalogDropTable(catalog, {
121
+ namespace,
122
+ table,
123
+ purgeRequested
124
+ });
125
+ return;
126
+ }
127
+ if (!tableUrl) throw new Error("tableUrl is required for file catalogs");
128
+ if (!lister) throw new Error("lister is required to drop a file catalog table");
129
+ const { deleter } = catalog.resolver;
130
+ if (!deleter) throw new Error("resolver.deleter is required to drop a file catalog table");
131
+ const dirs = purgeRequested ? ["metadata", "data"] : ["metadata"];
132
+ for (const dir of dirs) {
133
+ const names = await lister(`${tableUrl}/${dir}`).catch(() => []);
134
+ await Promise.allSettled(names.map((n) => deleter(`${tableUrl}/${dir}/${n}`)));
135
+ }
136
+ }
137
+ function requireResolver(resolver, caller) {
138
+ if (!resolver) throw new Error(`${caller}: resolver is required`);
139
+ return resolver;
140
+ }
141
+ async function commitStaged(catalog, target, ctx, staged) {
142
+ if (catalog.type === "rest") {
143
+ const { metadata } = await restCatalogUpdateTable(catalog, {
144
+ namespace: target.namespace,
145
+ table: target.table,
146
+ requirements: staged.requirements,
147
+ updates: staged.updates
148
+ });
149
+ return metadata;
150
+ }
151
+ if (!ctx.resolver) throw new Error("resolver is required to commit to a file catalog");
152
+ return await fileCatalogCommit({
153
+ tableUrl: ctx.tableUrl,
154
+ metadata: ctx.metadata,
155
+ metadataFileName: ctx.metadataFileName,
156
+ currentVersion: ctx.version,
157
+ staged,
158
+ resolver: ctx.resolver,
159
+ conditionalCommits: catalog.type === "file" && catalog.conditionalCommits
160
+ });
161
+ }
162
+ async function commitWithRetry({ catalog, target, ctx, stage }) {
163
+ const retryEnabled = catalog.type === "rest" || catalog.type === "file" && catalog.conditionalCommits === true;
164
+ const policy = resolveRetryPolicy(ctx.metadata);
165
+ const startedAt = Date.now();
166
+ let workingCtx = ctx;
167
+ for (let attempt = 1; attempt <= policy.maxAttempts; attempt++) {
168
+ const staged = await stage(workingCtx);
169
+ try {
170
+ return await commitStaged(catalog, target, workingCtx, staged);
171
+ } catch (err) {
172
+ if (!retryEnabled || !isCommitConflict(err)) throw err;
173
+ if (attempt === policy.maxAttempts) throw new Error(`${catalog.type} catalog commit failed after ${policy.maxAttempts} attempts due to concurrent commits`);
174
+ const elapsed = Date.now() - startedAt;
175
+ if (elapsed >= policy.totalTimeoutMs) throw new Error(`${catalog.type} catalog commit retry budget exhausted after ${attempt} attempts and ${elapsed}ms (limit ${policy.totalTimeoutMs}ms)`);
176
+ const remaining = policy.totalTimeoutMs - elapsed;
177
+ await sleep(Math.min(jitteredBackoff(attempt, policy), remaining));
178
+ workingCtx = await reloadCtx(catalog, target, workingCtx, err);
179
+ }
180
+ }
181
+ throw new Error("unreachable");
182
+ }
183
+ async function reloadCtx(catalog, target, workingCtx, lastErr) {
184
+ if (catalog.type === "rest") {
185
+ if (!target.namespace || !target.table) throw lastErr;
186
+ const { metadata } = await restCatalogLoadTable(catalog, {
187
+ namespace: target.namespace,
188
+ table: target.table
189
+ });
190
+ return {
191
+ metadata,
192
+ metadataFileName: workingCtx.metadataFileName,
193
+ version: workingCtx.version,
194
+ tableUrl: workingCtx.tableUrl,
195
+ resolver: workingCtx.resolver
196
+ };
197
+ }
198
+ if (!workingCtx.resolver) throw lastErr;
199
+ const fresh = await loadLatestFileCatalogMetadata({
200
+ tableUrl: workingCtx.tableUrl,
201
+ resolver: workingCtx.resolver,
202
+ lister: catalog.lister
203
+ });
204
+ return {
205
+ metadata: fresh.metadata,
206
+ metadataFileName: fresh.metadataFileName,
207
+ version: fresh.version,
208
+ tableUrl: workingCtx.tableUrl,
209
+ resolver: workingCtx.resolver
210
+ };
211
+ }
212
+ function resolveRetryPolicy(metadata) {
213
+ const props = metadata.properties ?? {};
214
+ const numRetries = parseTableProp(props["commit.retry.num-retries"]);
215
+ const maxAttempts = numRetries === void 0 ? DEFAULT_RETRY.maxAttempts : numRetries + 1;
216
+ const initialMs = parseTableProp(props["commit.retry.min-wait-ms"]) ?? DEFAULT_RETRY.initialMs;
217
+ const maxMs = parseTableProp(props["commit.retry.max-wait-ms"]) ?? DEFAULT_RETRY.maxMs;
218
+ const totalTimeoutMs = parseTableProp(props["commit.retry.total-timeout-ms"]) ?? DEFAULT_RETRY.totalTimeoutMs;
219
+ return {
220
+ maxAttempts,
221
+ initialMs,
222
+ maxMs,
223
+ factor: DEFAULT_RETRY.factor,
224
+ totalTimeoutMs
225
+ };
226
+ }
227
+ function parseTableProp(value) {
228
+ if (value === void 0 || value === null || value === "") return void 0;
229
+ const n = Number(value);
230
+ if (!Number.isFinite(n) || n < 0) return void 0;
231
+ return n;
232
+ }
233
+ function jitteredBackoff(attempt, policy) {
234
+ if (policy.initialMs === 0 || policy.maxMs === 0) return 0;
235
+ const base = Math.min(policy.maxMs, policy.initialMs * policy.factor ** (attempt - 1));
236
+ return Math.floor(Math.random() * base);
237
+ }
238
+ function sleep(ms) {
239
+ if (ms <= 0) return Promise.resolve();
240
+ return new Promise((resolve) => setTimeout(resolve, ms));
241
+ }
242
+ function isCommitConflict(err) {
243
+ if (!err || typeof err !== "object") return false;
244
+ const { status } = err;
245
+ return status === 412 || status === 409;
246
+ }
247
+ export { icebergAppend, icebergAppendBatches, icebergCreateTable, icebergDropTable };
@@ -0,0 +1,76 @@
1
+ import { LoadTableResponse, RestCatalogContext, TableIdentifier } from "../../src/types.mjs";
2
+ /**
3
+ * Iceberg REST Catalog client.
4
+ *
5
+ * Plain async functions over a stateless context object — no classes.
6
+ * The catalog client never imports from the read path; callers glue the
7
+ * two together by passing `metadata` and `metadata.location` from
8
+ * `restCatalogLoadTable` into `icebergRead`.
9
+ *
10
+ * @import {LoadTableResponse, PartitionSpec, RestCatalogContext, Schema, SortOrder, StorageCredential, TableIdentifier, TableMetadata, TableRequirement, TableUpdate} from '../../src/types.js'
11
+ */
12
+ /**
13
+ * Connect to a REST catalog by fetching `/v1/config`.
14
+ * Returns a frozen context object that holds the prefix, defaults, overrides
15
+ * and the user-supplied requestInit (for auth) for use in subsequent calls.
16
+ *
17
+ * @param {object} options
18
+ * @param {string} options.url - catalog base URL, with or without trailing slash
19
+ * @param {string} [options.warehouse] - optional warehouse query param sent to /v1/config
20
+ * @param {RequestInit} [options.requestInit] - fetch options (e.g. Authorization header)
21
+ * @param {(url: string, init?: RequestInit) => Promise<RequestInit>} [options.signRequest] - per-request auth hook
22
+ * @returns {Promise<RestCatalogContext>}
23
+ */
24
+ declare function restCatalogConnect({ url, warehouse, requestInit, signRequest }: {
25
+ url: string;
26
+ warehouse?: string;
27
+ requestInit?: RequestInit;
28
+ signRequest?: (url: string, init?: RequestInit) => Promise<RequestInit>;
29
+ }): Promise<RestCatalogContext>;
30
+ /**
31
+ * List tables within a namespace.
32
+ * Follows pagination (`next-page-token`) until exhausted.
33
+ *
34
+ * @param {RestCatalogContext} ctx
35
+ * @param {object} options
36
+ * @param {string | string[]} options.namespace
37
+ * @returns {Promise<TableIdentifier[]>}
38
+ */
39
+ declare function restCatalogListTables(ctx: RestCatalogContext, { namespace }: {
40
+ namespace: string | string[];
41
+ }): Promise<TableIdentifier[]>;
42
+ /**
43
+ * Load a single table. Returns the inline TableMetadata, the metadata
44
+ * file location, and any per-table config the server returned.
45
+ *
46
+ * The returned `metadata` and `metadata.location` can be passed directly
47
+ * into `icebergRead({ tableUrl: metadata.location, metadata })`.
48
+ *
49
+ * @param {RestCatalogContext} ctx
50
+ * @param {object} options
51
+ * @param {string | string[]} options.namespace
52
+ * @param {string} options.table
53
+ * @returns {Promise<LoadTableResponse>}
54
+ */
55
+ declare function restCatalogLoadTable(ctx: RestCatalogContext, { namespace, table }: {
56
+ namespace: string | string[];
57
+ table: string;
58
+ }): Promise<LoadTableResponse>;
59
+ /**
60
+ * Create a namespace. Returns the namespace as the server stored it (which may
61
+ * include defaulted properties).
62
+ *
63
+ * @param {RestCatalogContext} ctx
64
+ * @param {object} options
65
+ * @param {string | string[]} options.namespace
66
+ * @param {Record<string, string>} [options.properties]
67
+ * @returns {Promise<{namespace: string[], properties: Record<string, string>}>}
68
+ */
69
+ declare function restCatalogCreateNamespace(ctx: RestCatalogContext, { namespace, properties }: {
70
+ namespace: string | string[];
71
+ properties?: Record<string, string>;
72
+ }): Promise<{
73
+ namespace: string[];
74
+ properties: Record<string, string>;
75
+ }>;
76
+ export { restCatalogConnect, restCatalogCreateNamespace, restCatalogListTables, restCatalogLoadTable };
@@ -0,0 +1,36 @@
1
+ import { Resolver } from "../src/types.mjs";
2
+ /**
3
+ * Wrap a `Resolver` so reads of the same path share one HTTP fetch and
4
+ * subsequent range reads share one in-memory buffer. Writes and deletes
5
+ * through the same resolver invalidate the cache entry for their path on
6
+ * success, so a commit pipeline (`icebergAppend` → reload metadata) sees the
7
+ * new bytes without manual invalidation.
8
+ *
9
+ * - `reader(path)` is memoized by path. The returned buffer is passed through
10
+ * `cachedAsyncBuffer` so range reads within a single file are also deduped.
11
+ * `byteLength` is a fetch hint and not part of the cache key — the bytes
12
+ * are the same either way.
13
+ * - `writer(path).finish()` invalidates the cache entry only when the
14
+ * underlying finish resolves; a rejected finish (e.g. an `If-None-Match: *`
15
+ * collision returning 412/409) leaves the cached bytes intact, since the
16
+ * server-side object hasn't changed.
17
+ * - `deleter(path)` invalidates the cache entry on success.
18
+ * - `writer` and `deleter` are omitted when the base resolver omits them, so
19
+ * wrapping a read-only resolver still yields a read-only resolver.
20
+ *
21
+ * Iceberg writes are almost entirely create-new-path (data parquets, manifest
22
+ * avros, snapshot avros, vN.metadata.json all live at fresh paths per
23
+ * commit). Only `version-hint.text` and equivalent catalog-pointer files are
24
+ * truly mutated in place, so path-level invalidation is sufficient to keep
25
+ * single-process write-then-read pipelines consistent.
26
+ *
27
+ * Cross-process freshness is out of scope: a reader in process B does not
28
+ * see writes committed by process A through a different cache. Use a
29
+ * short-lived resolver, an external coordination layer, or wrap with TTL /
30
+ * conditional-GET revalidation if you need that.
31
+ *
32
+ * @param {Resolver} base
33
+ * @returns {Resolver}
34
+ */
35
+ declare function cachingResolver(base: Resolver): Resolver;
36
+ export { cachingResolver };
@@ -0,0 +1,13 @@
1
+ import { icebergAppend, icebergCreateTable, icebergDropTable } from "./write/write.mjs";
2
+ import "./create.mjs";
3
+ import "./catalog/file.mjs";
4
+ import { restCatalogConnect, restCatalogCreateNamespace, restCatalogListTables, restCatalogLoadTable } from "./catalog/rest.mjs";
5
+ import { cachingResolver } from "./fetch.mjs";
6
+ import { s3SignedResolver } from "./s3.mjs";
7
+ import "./read.mjs";
8
+ import "./metadata.mjs";
9
+ import { icebergManifests } from "./manifest.mjs";
10
+ import "../../../../squirreling@0.15.0/node_modules/squirreling/src/index.mjs";
11
+ import "./sql/icebergDataSource.mjs";
12
+ import "./sql/icebergQuery.mjs";
13
+ export { cachingResolver, icebergAppend, icebergCreateTable, icebergDropTable, icebergManifests, restCatalogConnect, restCatalogCreateNamespace, restCatalogListTables, restCatalogLoadTable, s3SignedResolver };
@@ -0,0 +1,30 @@
1
+ import { Manifest, ManifestEntry, Resolver, TableMetadata } from "../src/types.mjs";
2
+ type ManifestList = {
3
+ url: string;
4
+ entries: ManifestEntry[];
5
+ }[];
6
+ /**
7
+ * Predicate applied to each manifest's manifest-list `partitions` field-summary
8
+ * array before entry fetch. Return `false` to skip the manifest's entry fetch.
9
+ */
10
+ type ManifestPartitionFilter = (partitions: Manifest['partitions'], partitionSpecId: number, manifest: Manifest) => boolean;
11
+ /**
12
+ * Returns manifest entries for a snapshot. Defaults to the current snapshot;
13
+ * pass `snapshotId` to time-travel to a prior snapshot in the metadata's
14
+ * snapshot log.
15
+ *
16
+ * @import {Resolver, TableMetadata, Manifest, ManifestEntry} from '../src/types.js'
17
+ * @typedef {{ url: string, entries: ManifestEntry[] }[]} ManifestList
18
+ * @param {object} options
19
+ * @param {TableMetadata} options.metadata
20
+ * @param {Resolver} [options.resolver]
21
+ * @param {number | bigint} [options.snapshotId] - Optional snapshot id; defaults to `current-snapshot-id`.
22
+ * @returns {Promise<ManifestList>}
23
+ */
24
+ declare function icebergManifests({ metadata, resolver, snapshotId, partitionFilter }: {
25
+ metadata: TableMetadata;
26
+ resolver?: Resolver;
27
+ snapshotId?: number | bigint;
28
+ partitionFilter?: ManifestPartitionFilter;
29
+ }): Promise<ManifestList>;
30
+ export { ManifestList, ManifestPartitionFilter, icebergManifests };
@@ -0,0 +1,2 @@
1
+ import "../../../../hyparquet@1.26.2/node_modules/hyparquet/types/node.mjs";
2
+ import "../src/types.mjs";
@@ -0,0 +1,36 @@
1
+ import { Resolver } from "../src/types.mjs";
2
+ /**
3
+ * @import {Resolver} from '../src/types.js'
4
+ */
5
+ /**
6
+ * Build a SigV4-signing `Resolver` for private S3-compatible buckets (AWS S3,
7
+ * Cloudflare R2, MinIO, etc.). Signs every request with AWS Signature V4
8
+ * using static credentials. Works in browsers and Node via the Web Crypto API.
9
+ *
10
+ * Credentials are taken as inputs; profile/STS/IMDS chains are out of scope.
11
+ * For Iceberg REST catalogs that vend per-table credentials (R2, AWS Glue),
12
+ * pass the `s3.*` keys from `restCatalogLoadCredentials` or `LoadTable.config`.
13
+ *
14
+ * Accepts paths as `s3://bucket/key`, `s3a://bucket/key`, or full https URLs.
15
+ *
16
+ * @param {object} options
17
+ * @param {string} options.accessKeyId
18
+ * @param {string} options.secretAccessKey
19
+ * @param {string} [options.sessionToken] - For temporary credentials (STS/vended).
20
+ * @param {string} options.region - e.g. 'us-east-1', or 'auto' for R2.
21
+ * @param {string} [options.endpoint] - HTTPS endpoint root for non-AWS providers
22
+ * (e.g. `https://<account>.r2.cloudflarestorage.com`). Defaults to AWS S3.
23
+ * @param {boolean} [options.pathStyle] - When true, URLs are
24
+ * `<endpoint>/<bucket>/<key>`; when false (default), virtual-hosted-style
25
+ * `<bucket>.<endpoint-host>/<key>`. R2 requires true.
26
+ * @returns {Resolver}
27
+ */
28
+ declare function s3SignedResolver({ accessKeyId, secretAccessKey, sessionToken, region, endpoint, pathStyle }: {
29
+ accessKeyId: string;
30
+ secretAccessKey: string;
31
+ sessionToken?: string;
32
+ region: string;
33
+ endpoint?: string;
34
+ pathStyle?: boolean;
35
+ }): Resolver;
36
+ export { s3SignedResolver };
@@ -0,0 +1,2 @@
1
+ import "../../src/types.mjs";
2
+ import "../../../../../squirreling@0.15.0/node_modules/squirreling/src/index.mjs";