@gscdump/lakehouse 1.4.0 → 1.4.2
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.
- package/dist/_virtual/node_modules/.pnpm/chokidar@5.0.0/node_modules/chokidar/handler.d.mts +2 -0
- package/dist/_virtual/node_modules/.pnpm/chokidar@5.0.0/node_modules/chokidar/index.d.mts +2 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.bitreader.mjs +88 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.blocks.mjs +120 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.context.mjs +1805 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.contextmap.mjs +49 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.dictionary.mjs +984 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.huffman.mjs +266 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.mjs +340 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.prefix.mjs +109 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.streams.mjs +21 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.transform.mjs +190 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/compressors.mjs +14 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/gzip.huffman.mjs +121 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/gzip.mjs +176 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/index.mjs +7 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/lz4.mjs +52 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/bloom.mjs +93 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/bytewriter.mjs +91 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/column.mjs +186 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/datapage.mjs +113 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/delta.mjs +111 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/dictionary.mjs +99 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/dremel.mjs +116 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/encoding.mjs +51 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/geospatial.mjs +84 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/index.mjs +7 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/indexes.mjs +31 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/metadata.mjs +138 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/node.mjs +7 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/parquet-writer.mjs +139 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/plain.mjs +68 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/schema.mjs +254 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/snappy.mjs +125 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/splitstream.mjs +38 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/thrift.mjs +79 -0
- package/dist/{_chunks/libs/hyparquet-writer.d.mts → _virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/types.d.mts} +2 -2
- package/dist/_virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/unconvert.mjs +247 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/variant.mjs +391 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/wkb.mjs +79 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/write-rows.mjs +3 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/write.mjs +46 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/types/bytewriter.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/types/index.d.mts +10 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/types/node.d.mts +3 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/types/parquet-writer.d.mts +2 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/types/schema.d.mts +2 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/types/write-rows.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/types/write.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/assemble.mjs +3 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/bloom.mjs +69 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/column.mjs +8 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/constants.mjs +80 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/convert.mjs +3 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/datapage.mjs +6 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/delta.mjs +2 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/encoding.mjs +2 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/filter.mjs +3 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/geoparquet.mjs +1 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/index.mjs +7 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/indexes.mjs +5 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/metadata.mjs +7 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/node.mjs +3 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/plain.mjs +1 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/plan.mjs +5 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/query.mjs +3 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/read.mjs +6 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/rowgroup.mjs +7 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/schema.mjs +54 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/snappy.mjs +1 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/thrift.mjs +1 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/utils.mjs +19 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/variant.mjs +3 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/wkb.mjs +1 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/xxhash.mjs +68 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/index.d.mts +7 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/indexes.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/metadata.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/node.d.mts +2 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/query.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/read.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/snappy.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/utils.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/assemble.mjs +144 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/bloom.mjs +124 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/column.mjs +127 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/constants.mjs +75 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/convert.mjs +118 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/datapage.mjs +144 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/delta.mjs +65 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/encoding.mjs +76 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/filter.mjs +98 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/geoparquet.mjs +24 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/index.mjs +7 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/indexes.mjs +16 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/metadata.mjs +235 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/node.mjs +7 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/plain.mjs +78 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/plan.mjs +147 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/query.mjs +3 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/read.mjs +106 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/rowgroup.mjs +154 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/schema.mjs +75 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/snappy.mjs +70 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/thrift.mjs +86 -0
- package/dist/{_chunks/libs/hyparquet.d.mts → _virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/types.d.mts} +2 -3
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/utils.mjs +127 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/variant.mjs +225 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/wkb.mjs +94 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/xxhash.mjs +68 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/index.d.mts +9 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/indexes.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/metadata.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/node.d.mts +3 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/query.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/read.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/snappy.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/utils.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/avro/avro.metadata.mjs +53 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/avro/avro.read.mjs +136 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/avro/avro.write.mjs +148 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/catalog/file.mjs +1 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/catalog/loadTable.mjs +48 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/catalog/rest.mjs +159 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/create.mjs +67 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/delete.mjs +34 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/fetch.mjs +261 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/index.mjs +13 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/json.mjs +147 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/manifest.mjs +84 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/metadata.mjs +159 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/prune.mjs +4 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/puffin/deletion-vector.mjs +122 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/puffin/puffin.mjs +78 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/puffin/roaring.mjs +132 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/read.mjs +324 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/s3.mjs +91 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/schema.mjs +76 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/sigv4.mjs +70 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/sql/icebergDataSource.mjs +8 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/sql/icebergQuery.mjs +5 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/sql/whereFilter.mjs +1 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/types.d.mts +255 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/utils.mjs +45 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/commit.mjs +392 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/conversions.mjs +59 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/delete-file.mjs +52 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/geospatial.mjs +72 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/manifest-list.mjs +152 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/manifest.mjs +256 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/parquet.mjs +305 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/partition.mjs +178 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/rewrite.mjs +174 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/serde.mjs +148 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/snapshot.mjs +107 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/sort.mjs +47 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/stage-deletion-vector.mjs +295 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/stage-position-delete.mjs +216 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/stage.mjs +354 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/stats.mjs +153 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/transform.mjs +220 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/write.mjs +476 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/catalog/file.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/catalog/rest.d.mts +76 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/create.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/fetch.d.mts +36 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/index.d.mts +13 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/manifest.d.mts +30 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/metadata.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/read.d.mts +2 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/s3.d.mts +36 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/sql/icebergDataSource.d.mts +2 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/sql/icebergQuery.d.mts +2 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.15_patch_hash=d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/write/write.d.mts +79 -0
- package/dist/{_chunks/libs/ioredis.d.mts → _virtual/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/Command.d.mts} +1 -1
- package/dist/_virtual/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/DataHandler.d.mts +4 -0
- package/dist/_virtual/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/Pipeline.d.mts +4 -0
- package/dist/_virtual/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/Redis.d.mts +10 -0
- package/dist/_virtual/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/ScanStream.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/SubscriptionSet.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/cluster/ClusterOptions.d.mts +4 -0
- package/dist/_virtual/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/cluster/index.d.mts +9 -0
- package/dist/_virtual/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/cluster/util.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/connectors/AbstractConnector.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/connectors/ConnectorConstructor.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/connectors/SentinelConnector/SentinelIterator.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/connectors/SentinelConnector/index.d.mts +6 -0
- package/dist/_virtual/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/connectors/SentinelConnector/types.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/connectors/StandaloneConnector.d.mts +3 -0
- package/dist/_virtual/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/index.d.mts +13 -0
- package/dist/_virtual/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/redis/RedisOptions.d.mts +4 -0
- package/dist/_virtual/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/transaction.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/types.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/utils/Commander.d.mts +3 -0
- package/dist/_virtual/node_modules/.pnpm/ioredis@5.10.1_supports-color@10.2.2/node_modules/ioredis/built/utils/RedisCommander.d.mts +2 -0
- package/dist/_virtual/node_modules/.pnpm/lru-cache@11.5.0/node_modules/lru-cache/dist/esm/index.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/lru-cache@11.5.0/node_modules/lru-cache/dist/esm/perf.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/readdirp@5.0.0/node_modules/readdirp/index.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/ast.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/backend/dataSource.mjs +1 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/accumulator.mjs +2 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/aggregates.mjs +10 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/execute.mjs +15 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/join.mjs +5 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/scanColumn.mjs +1 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/sort.mjs +5 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/streamingAggregate.mjs +9 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/utils.mjs +1 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/window.mjs +5 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/yield.mjs +17 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/expression/alias.mjs +1 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/expression/binary.mjs +1 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/expression/date.mjs +1 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/expression/evaluate.mjs +15 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/expression/math.mjs +1 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/expression/regexp.mjs +2 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/expression/strings.mjs +3 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/index.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/index.mjs +9 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/expression.mjs +6 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/extractTables.mjs +1 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/functions.mjs +5 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/joins.mjs +7 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/parse.mjs +10 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/primary.mjs +8 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/state.mjs +2 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/tokenize.mjs +3 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/types.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/plan/columns.mjs +3 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/plan/plan.mjs +7 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/plan/types.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/bbox.mjs +2 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/equality.mjs +2 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/operations.mjs +5 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/pointRelations.mjs +2 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/primitives.mjs +2 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/segments.mjs +2 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/spatial.mjs +6 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/wkt.mjs +1 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/types.d.mts +3 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/validation/aggregates.mjs +3 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/validation/executionErrors.mjs +2 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/validation/functions.mjs +2 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/validation/keywords.mjs +1 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/validation/parseErrors.mjs +2 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/validation/tables.mjs +2 -0
- package/dist/_virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/dist/index.d.mts +32 -0
- package/dist/_virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/dist/index2.d.mts +33 -0
- package/dist/{_chunks/libs/unstorage.d.mts → _virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/dist/shared/unstorage.DqlWKU2I.d.mts} +9 -13
- package/dist/_virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/dist/shared/unstorage2.DqlWKU2I.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/azure-app-configuration.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/azure-cosmos.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/azure-key-vault.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/azure-storage-blob.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/azure-storage-table.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/capacitor-preferences.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/cloudflare-kv-binding.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/cloudflare-kv-http.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/cloudflare-r2-binding.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/db0.d.mts +2 -0
- package/dist/_virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/deno-kv-node.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/deno-kv.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/fs-lite.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/fs.d.mts +2 -0
- package/dist/_virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/github.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/http.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/indexedb.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/localstorage.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/localstorage2.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/lru-cache.d.mts +2 -0
- package/dist/_virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/mongodb.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/netlify-blobs.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/overlay.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/planetscale.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/redis.d.mts +2 -0
- package/dist/_virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/s3.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/session-storage.d.mts +2 -0
- package/dist/_virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/uploadthing.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/upstash.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/vercel-blob.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/vercel-kv.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/vercel-runtime-cache.d.mts +1 -0
- package/dist/catalog-cache.d.mts +32 -0
- package/dist/catalog-cache.mjs +31 -0
- package/dist/{_chunks/catalog.d.mts → catalog.d.mts} +9 -70
- package/dist/{_chunks/catalog.mjs → catalog.mjs} +15 -96
- package/dist/dataset-runtime.mjs +68 -0
- package/dist/dataset.d.mts +154 -0
- package/dist/dataset.mjs +312 -0
- package/dist/date.d.mts +8 -0
- package/dist/date.mjs +13 -0
- package/dist/index.d.mts +6 -159
- package/dist/index.mjs +6 -361
- package/dist/maintenance.d.mts +2 -93
- package/dist/maintenance.mjs +2 -139
- package/dist/orphan-sweep.d.mts +94 -0
- package/dist/orphan-sweep.mjs +141 -0
- package/dist/partition-prune.d.mts +35 -0
- package/dist/partition-prune.mjs +57 -0
- package/dist/provisioning/allocator.d.mts +44 -0
- package/dist/provisioning/allocator.mjs +24 -0
- package/dist/provisioning/index.d.mts +2 -44
- package/dist/provisioning/index.mjs +1 -23
- package/dist/schema.d.mts +77 -2
- package/dist/schema.mjs +9 -1
- package/dist/unsafe-raw.d.mts +6 -2
- package/dist/unsafe-raw.mjs +6 -2
- package/dist/vendor/hysnappy-purejs.mjs +10 -0
- package/package.json +11 -1
- package/dist/_chunks/libs/hyparquet-compressors.mjs +0 -2785
- package/dist/_chunks/libs/hyparquet-writer.mjs +0 -2516
- package/dist/_chunks/libs/hyparquet.mjs +0 -474
- package/dist/_chunks/libs/icebird.d.mts +0 -500
- package/dist/_chunks/libs/icebird.mjs +0 -3854
- package/dist/_chunks/schema.d.mts +0 -74
- /package/dist/{_chunks/libs/chokidar.d.mts → _virtual/node_modules/.pnpm/db0@0.3.4_drizzle-orm@1.0.0-rc.3_@cloudflare+workers-types@5.20260722.1_valibot@1.4.2_typescript@7.0.2__zod@4.4.3_/node_modules/db0/dist/index.d.mts} +0 -0
- /package/dist/{_chunks/libs/db0.d.mts → _virtual/node_modules/.pnpm/denque@2.1.0/node_modules/denque/index.d.mts} +0 -0
- /package/dist/{_chunks/libs/fzstd.mjs → _virtual/node_modules/.pnpm/fzstd@0.1.1/node_modules/fzstd/esm/index.mjs} +0 -0
- /package/dist/{_chunks/libs/denque.d.mts → _virtual/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/types/wkb.d.mts} +0 -0
- /package/dist/{_chunks/libs/lru-cache.d.mts → _virtual/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/types.d.mts} +0 -0
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
import { parquetMetadataAsync } from "../../../../hyparquet@1.26.2/node_modules/hyparquet/src/metadata.mjs";
|
|
2
|
+
import { asyncBufferFromUrl, cachedAsyncBuffer } from "../../../../hyparquet@1.26.2/node_modules/hyparquet/src/utils.mjs";
|
|
3
|
+
import { parquetReadObjects } from "../../../../hyparquet@1.26.2/node_modules/hyparquet/src/read.mjs";
|
|
4
|
+
import "../../../../hyparquet@1.26.2/node_modules/hyparquet/src/node.mjs";
|
|
5
|
+
import { compressors } from "../../../../hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/compressors.mjs";
|
|
6
|
+
import "../../../../hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/index.mjs";
|
|
7
|
+
import { ByteWriter } from "../../../../hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/bytewriter.mjs";
|
|
8
|
+
import "../../../../hyparquet-writer@0.16.1_patch_hash=7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/node.mjs";
|
|
9
|
+
import { avroMetadata } from "./avro/avro.metadata.mjs";
|
|
10
|
+
import { avroRead } from "./avro/avro.read.mjs";
|
|
11
|
+
import { puffinReadDeletionVector } from "./puffin/puffin.mjs";
|
|
12
|
+
import { sanitize } from "./utils.mjs";
|
|
13
|
+
function translateS3Url(url) {
|
|
14
|
+
if (url.startsWith("s3a://") || url.startsWith("s3://")) {
|
|
15
|
+
const rest = url.slice(url.indexOf("://") + 3);
|
|
16
|
+
const slashIndex = rest.indexOf("/");
|
|
17
|
+
if (slashIndex === -1) throw new Error("Invalid S3 URL, missing \"/\" after bucket");
|
|
18
|
+
return `https://${rest.slice(0, slashIndex)}.s3.amazonaws.com${rest.slice(slashIndex)}`;
|
|
19
|
+
}
|
|
20
|
+
return url;
|
|
21
|
+
}
|
|
22
|
+
function urlResolver({ requestInit } = {}) {
|
|
23
|
+
return {
|
|
24
|
+
reader(url, byteLength) {
|
|
25
|
+
return asyncBufferFromUrl({
|
|
26
|
+
url: translateS3Url(url),
|
|
27
|
+
byteLength,
|
|
28
|
+
requestInit
|
|
29
|
+
});
|
|
30
|
+
},
|
|
31
|
+
writer(url, options) {
|
|
32
|
+
const w = new ByteWriter();
|
|
33
|
+
w.finish = async function() {
|
|
34
|
+
const target = translateS3Url(url);
|
|
35
|
+
const body = w.getBytes().slice();
|
|
36
|
+
const headers = {};
|
|
37
|
+
if (requestInit?.headers) new Headers(requestInit.headers).forEach((v, k) => {
|
|
38
|
+
headers[k] = v;
|
|
39
|
+
});
|
|
40
|
+
if (options?.ifNoneMatch) headers["If-None-Match"] = options.ifNoneMatch;
|
|
41
|
+
const res = await fetch(target, {
|
|
42
|
+
...requestInit,
|
|
43
|
+
method: "PUT",
|
|
44
|
+
headers,
|
|
45
|
+
body
|
|
46
|
+
});
|
|
47
|
+
if (!res.ok) {
|
|
48
|
+
const err = /* @__PURE__ */ new Error(`PUT ${url}: ${res.status} ${res.statusText}`);
|
|
49
|
+
err.status = res.status;
|
|
50
|
+
throw err;
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
return w;
|
|
54
|
+
},
|
|
55
|
+
async deleter(url) {
|
|
56
|
+
const res = await fetch(translateS3Url(url), {
|
|
57
|
+
...requestInit,
|
|
58
|
+
method: "DELETE"
|
|
59
|
+
});
|
|
60
|
+
if (!res.ok && res.status !== 404) throw new Error(`DELETE ${url}: ${res.status} ${res.statusText}`);
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
function cachingResolver(base) {
|
|
65
|
+
const cache = /* @__PURE__ */ new Map();
|
|
66
|
+
const out = { reader(path, byteLength) {
|
|
67
|
+
let buf = cache.get(path);
|
|
68
|
+
if (!buf) {
|
|
69
|
+
buf = (async () => cachedAsyncBuffer(await base.reader(path, byteLength)))();
|
|
70
|
+
cache.set(path, buf);
|
|
71
|
+
buf.catch(() => {
|
|
72
|
+
if (cache.get(path) === buf) cache.delete(path);
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
return buf;
|
|
76
|
+
} };
|
|
77
|
+
if (base.writer) {
|
|
78
|
+
const baseWriter = base.writer;
|
|
79
|
+
out.writer = (path, options) => {
|
|
80
|
+
const w = baseWriter(path, options);
|
|
81
|
+
const origFinish = w.finish.bind(w);
|
|
82
|
+
w.finish = async function() {
|
|
83
|
+
await origFinish();
|
|
84
|
+
cache.delete(path);
|
|
85
|
+
};
|
|
86
|
+
return w;
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
if (base.deleter) {
|
|
90
|
+
const baseDeleter = base.deleter;
|
|
91
|
+
out.deleter = async (path) => {
|
|
92
|
+
await baseDeleter(path);
|
|
93
|
+
cache.delete(path);
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
return out;
|
|
97
|
+
}
|
|
98
|
+
function s3Lister({ requestInit } = {}) {
|
|
99
|
+
return async function list(url) {
|
|
100
|
+
const s3parts = s3ParseUrl(url);
|
|
101
|
+
if (!s3parts) throw new Error(`not an S3 URL: ${url}`);
|
|
102
|
+
const { bucket, prefix } = s3parts;
|
|
103
|
+
const listUrl = `https://${bucket}.s3.amazonaws.com/?list-type=2&prefix=${prefix.replace(/\/$/, "")}/&delimiter=/`;
|
|
104
|
+
const res = await fetch(listUrl, requestInit);
|
|
105
|
+
if (!res.ok) throw new Error(`${res.status} ${res.statusText}`);
|
|
106
|
+
return ((await res.text()).match(/<Contents>(.*?)<\/Contents>/gs) || []).map((match) => {
|
|
107
|
+
const keyMatch = match.match(/<Key>(.*?)<\/Key>/);
|
|
108
|
+
if (!keyMatch) throw new Error("failed to parse S3 list response");
|
|
109
|
+
return keyMatch[1].split("/").pop() ?? "";
|
|
110
|
+
}).filter(Boolean);
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
function s3ParseUrl(url) {
|
|
114
|
+
if (url.startsWith("s3://") || url.startsWith("s3a://")) {
|
|
115
|
+
const parts = url.split("/");
|
|
116
|
+
return {
|
|
117
|
+
bucket: parts[2],
|
|
118
|
+
prefix: parts.slice(3).join("/")
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
if (url.startsWith("https://s3.amazonaws.com/")) {
|
|
122
|
+
const parts = url.split("/");
|
|
123
|
+
return {
|
|
124
|
+
bucket: parts[3],
|
|
125
|
+
prefix: parts.slice(4).join("/")
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
const m = url.match(/^https:\/\/([a-z0-9][a-z0-9-]*)\.s3(?:[.-][a-z0-9-]+)?\.amazonaws\.com\/(.*)$/);
|
|
129
|
+
if (m) return {
|
|
130
|
+
bucket: m[1],
|
|
131
|
+
prefix: m[2]
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
async function fetchDeleteMaps(deleteEntries, resolver) {
|
|
135
|
+
const positionDeletesMap = /* @__PURE__ */ new Map();
|
|
136
|
+
const equalityDeleteGroups = [];
|
|
137
|
+
await Promise.all(deleteEntries.map(async (deleteEntry) => {
|
|
138
|
+
const { content, file_path, file_size_in_bytes } = deleteEntry.data_file;
|
|
139
|
+
const file = cachedAsyncBuffer(await resolver.reader(file_path, Number(file_size_in_bytes)));
|
|
140
|
+
if (content === 1) if (isDeletionVector(deleteEntry)) {
|
|
141
|
+
const { referenced_data_file, content_offset, content_size_in_bytes } = deleteEntry.data_file;
|
|
142
|
+
if (!referenced_data_file) throw new Error("deletion vector missing referenced_data_file");
|
|
143
|
+
if (content_offset == null) throw new Error("deletion vector missing content_offset");
|
|
144
|
+
if (content_size_in_bytes == null) throw new Error("deletion vector missing content_size_in_bytes");
|
|
145
|
+
const positions = await puffinReadDeletionVector(file, {
|
|
146
|
+
offset: content_offset,
|
|
147
|
+
length: content_size_in_bytes,
|
|
148
|
+
referencedDataFile: referenced_data_file
|
|
149
|
+
});
|
|
150
|
+
const set = /* @__PURE__ */ new Set();
|
|
151
|
+
for (const pos of positions) set.add(pos);
|
|
152
|
+
addPositionDeleteGroup(positionDeletesMap, referenced_data_file, deleteEntry, set);
|
|
153
|
+
} else {
|
|
154
|
+
const deleteRows = await parquetReadObjects({
|
|
155
|
+
file,
|
|
156
|
+
compressors
|
|
157
|
+
});
|
|
158
|
+
const positionsByPath = /* @__PURE__ */ new Map();
|
|
159
|
+
for (const deleteRow of deleteRows) {
|
|
160
|
+
const { file_path, pos } = deleteRow;
|
|
161
|
+
if (!file_path) throw new Error("position delete missing target file path");
|
|
162
|
+
if (pos === void 0) throw new Error("position delete missing pos");
|
|
163
|
+
let set = positionsByPath.get(file_path);
|
|
164
|
+
if (!set) {
|
|
165
|
+
set = /* @__PURE__ */ new Set();
|
|
166
|
+
positionsByPath.set(file_path, set);
|
|
167
|
+
}
|
|
168
|
+
set.add(pos);
|
|
169
|
+
}
|
|
170
|
+
for (const [targetPath, positions] of positionsByPath) addPositionDeleteGroup(positionDeletesMap, targetPath, deleteEntry, positions);
|
|
171
|
+
}
|
|
172
|
+
else if (content === 2) {
|
|
173
|
+
const { sequence_number } = deleteEntry;
|
|
174
|
+
const equalityIds = deleteEntry.data_file.equality_ids;
|
|
175
|
+
if (sequence_number === void 0) throw new Error("equality delete missing sequence number");
|
|
176
|
+
if (!equalityIds?.length) throw new Error("equality delete missing equality_ids");
|
|
177
|
+
const metadata = await parquetMetadataAsync(file);
|
|
178
|
+
const columnNamesById = equalityColumnNamesById(metadata, equalityIds);
|
|
179
|
+
const deleteRows = await parquetReadObjects({
|
|
180
|
+
file,
|
|
181
|
+
metadata,
|
|
182
|
+
columns: equalityIds.map((id) => columnNamesById[id]),
|
|
183
|
+
compressors
|
|
184
|
+
});
|
|
185
|
+
const rows = [];
|
|
186
|
+
for (const deleteRow of deleteRows) rows.push(equalityPredicate(deleteRow, equalityIds, columnNamesById));
|
|
187
|
+
equalityDeleteGroups.push({
|
|
188
|
+
deleteEntry,
|
|
189
|
+
rows
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
}));
|
|
193
|
+
return {
|
|
194
|
+
positionDeletesMap,
|
|
195
|
+
equalityDeleteGroups
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
function addPositionDeleteGroup(positionDeletesMap, targetPath, deleteEntry, positions) {
|
|
199
|
+
let groups = positionDeletesMap.get(targetPath);
|
|
200
|
+
if (!groups) {
|
|
201
|
+
groups = [];
|
|
202
|
+
positionDeletesMap.set(targetPath, groups);
|
|
203
|
+
}
|
|
204
|
+
groups.push({
|
|
205
|
+
deleteEntry,
|
|
206
|
+
positions
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
function isDeletionVector(deleteEntry) {
|
|
210
|
+
const dataFile = deleteEntry.data_file;
|
|
211
|
+
return dataFile.file_format.toLowerCase() === "puffin" || dataFile.content_offset != null || dataFile.content_size_in_bytes != null;
|
|
212
|
+
}
|
|
213
|
+
function equalityColumnNamesById(parquetMetadata, equalityIds) {
|
|
214
|
+
const kv = parquetMetadata.key_value_metadata?.find((k) => k.key === "iceberg.schema");
|
|
215
|
+
if (!kv?.value) throw new Error("equality delete missing iceberg.schema parquet metadata");
|
|
216
|
+
const schema = JSON.parse(kv.value);
|
|
217
|
+
const out = {};
|
|
218
|
+
for (const id of equalityIds) {
|
|
219
|
+
const field = schema.fields.find((f) => f.id === id);
|
|
220
|
+
if (!field) throw new Error(`equality delete missing field id ${id} in parquet schema`);
|
|
221
|
+
out[id] = sanitize(field.name);
|
|
222
|
+
}
|
|
223
|
+
return out;
|
|
224
|
+
}
|
|
225
|
+
function equalityPredicate(deleteRow, equalityIds, columnNamesById) {
|
|
226
|
+
const out = {};
|
|
227
|
+
for (const id of equalityIds) out[id] = deleteRow[columnNamesById[id]];
|
|
228
|
+
return out;
|
|
229
|
+
}
|
|
230
|
+
async function resolveText(resolver, path) {
|
|
231
|
+
const ab = await resolver.reader(path);
|
|
232
|
+
let buf = await ab.slice(0, ab.byteLength);
|
|
233
|
+
if (isGzip(buf)) buf = await decompressGzip(buf);
|
|
234
|
+
return new TextDecoder().decode(buf);
|
|
235
|
+
}
|
|
236
|
+
function isGzip(buf) {
|
|
237
|
+
if (buf.byteLength < 2) return false;
|
|
238
|
+
const view = new Uint8Array(buf, 0, 2);
|
|
239
|
+
return view[0] === 31 && view[1] === 139;
|
|
240
|
+
}
|
|
241
|
+
async function decompressGzip(buf) {
|
|
242
|
+
if (!globalThis.DecompressionStream) throw new Error("gzip decompression is not supported in this environment");
|
|
243
|
+
const stream = new Blob([buf]).stream().pipeThrough(new DecompressionStream("gzip"));
|
|
244
|
+
return await new Response(stream).arrayBuffer();
|
|
245
|
+
}
|
|
246
|
+
async function fetchAvroRecords(url, resolver, byteLength) {
|
|
247
|
+
const lengthHint = byteLength !== void 0 && Number.isFinite(byteLength) ? byteLength : void 0;
|
|
248
|
+
const ab = await resolver.reader(url, lengthHint);
|
|
249
|
+
const buffer = await ab.slice(0, ab.byteLength);
|
|
250
|
+
const reader = {
|
|
251
|
+
view: new DataView(buffer),
|
|
252
|
+
offset: 0
|
|
253
|
+
};
|
|
254
|
+
const { metadata, syncMarker } = await avroMetadata(reader);
|
|
255
|
+
return await avroRead({
|
|
256
|
+
reader,
|
|
257
|
+
metadata,
|
|
258
|
+
syncMarker
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
export { cachingResolver, fetchAvroRecords, fetchDeleteMaps, resolveText, s3Lister, s3ParseUrl, translateS3Url, urlResolver };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { restCatalogConnect, restCatalogCreateNamespace, restCatalogListTables, restCatalogLoadTable } from "./catalog/rest.mjs";
|
|
2
|
+
import "./fetch.mjs";
|
|
3
|
+
import { icebergManifests } from "./manifest.mjs";
|
|
4
|
+
import { s3SignedResolver } from "./s3.mjs";
|
|
5
|
+
import "./metadata.mjs";
|
|
6
|
+
import "./create.mjs";
|
|
7
|
+
import "./read.mjs";
|
|
8
|
+
import { icebergAppend, icebergCreateTable, icebergDropTable } from "./write/write.mjs";
|
|
9
|
+
import "./catalog/file.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 { icebergAppend, icebergCreateTable, icebergDropTable, icebergManifests, restCatalogConnect, restCatalogCreateNamespace, restCatalogListTables, restCatalogLoadTable, s3SignedResolver };
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
const MAX_SAFE = BigInt(Number.MAX_SAFE_INTEGER);
|
|
2
|
+
function parseIcebergJson(text) {
|
|
3
|
+
let i = 0;
|
|
4
|
+
function skipWs() {
|
|
5
|
+
while (i < text.length) {
|
|
6
|
+
const c = text.charCodeAt(i);
|
|
7
|
+
if (c !== 32 && c !== 9 && c !== 10 && c !== 13) break;
|
|
8
|
+
i++;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
function parseString() {
|
|
12
|
+
if (text[i] !== "\"") throw new Error(`expected " at ${i}`);
|
|
13
|
+
i++;
|
|
14
|
+
let s = "";
|
|
15
|
+
while (i < text.length) {
|
|
16
|
+
const c = text[i++];
|
|
17
|
+
if (c === "\"") return s;
|
|
18
|
+
if (c !== "\\") {
|
|
19
|
+
s += c;
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
const e = text[i++];
|
|
23
|
+
if (e === "u") {
|
|
24
|
+
s += String.fromCharCode(parseInt(text.slice(i, i + 4), 16));
|
|
25
|
+
i += 4;
|
|
26
|
+
} else if (e === "n") s += "\n";
|
|
27
|
+
else if (e === "t") s += " ";
|
|
28
|
+
else if (e === "r") s += "\r";
|
|
29
|
+
else if (e === "b") s += "\b";
|
|
30
|
+
else if (e === "f") s += "\f";
|
|
31
|
+
else s += e;
|
|
32
|
+
}
|
|
33
|
+
throw new Error("unterminated string");
|
|
34
|
+
}
|
|
35
|
+
function parseNumber() {
|
|
36
|
+
const start = i;
|
|
37
|
+
if (text[i] === "-") i++;
|
|
38
|
+
while (text[i] >= "0" && text[i] <= "9") i++;
|
|
39
|
+
const intEnd = i;
|
|
40
|
+
let isFloat = false;
|
|
41
|
+
if (text[i] === ".") {
|
|
42
|
+
isFloat = true;
|
|
43
|
+
i++;
|
|
44
|
+
while (text[i] >= "0" && text[i] <= "9") i++;
|
|
45
|
+
}
|
|
46
|
+
if (text[i] === "e" || text[i] === "E") {
|
|
47
|
+
isFloat = true;
|
|
48
|
+
i++;
|
|
49
|
+
if (text[i] === "+" || text[i] === "-") i++;
|
|
50
|
+
while (text[i] >= "0" && text[i] <= "9") i++;
|
|
51
|
+
}
|
|
52
|
+
if (isFloat) return Number(text.slice(start, i));
|
|
53
|
+
const intStr = text.slice(start, intEnd);
|
|
54
|
+
if (intStr.length >= 16) {
|
|
55
|
+
const n = BigInt(intStr);
|
|
56
|
+
if (n > MAX_SAFE || n < -MAX_SAFE) return n;
|
|
57
|
+
}
|
|
58
|
+
return Number(intStr);
|
|
59
|
+
}
|
|
60
|
+
function parseLiteral(lit, val) {
|
|
61
|
+
if (text.slice(i, i + lit.length) !== lit) throw new Error(`bad literal at ${i}`);
|
|
62
|
+
i += lit.length;
|
|
63
|
+
return val;
|
|
64
|
+
}
|
|
65
|
+
function parseValue() {
|
|
66
|
+
skipWs();
|
|
67
|
+
const ch = text[i];
|
|
68
|
+
if (ch === "\"") return parseString();
|
|
69
|
+
if (ch === "{") return parseObject();
|
|
70
|
+
if (ch === "[") return parseArray();
|
|
71
|
+
if (ch === "t") return parseLiteral("true", true);
|
|
72
|
+
if (ch === "f") return parseLiteral("false", false);
|
|
73
|
+
if (ch === "n") return parseLiteral("null", null);
|
|
74
|
+
return parseNumber();
|
|
75
|
+
}
|
|
76
|
+
function parseObject() {
|
|
77
|
+
i++;
|
|
78
|
+
skipWs();
|
|
79
|
+
const obj = {};
|
|
80
|
+
if (text[i] === "}") {
|
|
81
|
+
i++;
|
|
82
|
+
return obj;
|
|
83
|
+
}
|
|
84
|
+
while (true) {
|
|
85
|
+
skipWs();
|
|
86
|
+
const key = parseString();
|
|
87
|
+
skipWs();
|
|
88
|
+
if (text[i] !== ":") throw new Error(`expected : at ${i}`);
|
|
89
|
+
i++;
|
|
90
|
+
obj[key] = parseValue();
|
|
91
|
+
skipWs();
|
|
92
|
+
if (text[i] === ",") {
|
|
93
|
+
i++;
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
if (text[i] === "}") {
|
|
97
|
+
i++;
|
|
98
|
+
return obj;
|
|
99
|
+
}
|
|
100
|
+
throw new Error(`expected , or } at ${i}`);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
function parseArray() {
|
|
104
|
+
i++;
|
|
105
|
+
skipWs();
|
|
106
|
+
const arr = [];
|
|
107
|
+
if (text[i] === "]") {
|
|
108
|
+
i++;
|
|
109
|
+
return arr;
|
|
110
|
+
}
|
|
111
|
+
while (true) {
|
|
112
|
+
arr.push(parseValue());
|
|
113
|
+
skipWs();
|
|
114
|
+
if (text[i] === ",") {
|
|
115
|
+
i++;
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
if (text[i] === "]") {
|
|
119
|
+
i++;
|
|
120
|
+
return arr;
|
|
121
|
+
}
|
|
122
|
+
throw new Error(`expected , or ] at ${i}`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
const value = parseValue();
|
|
126
|
+
skipWs();
|
|
127
|
+
if (i !== text.length) throw new Error(`unexpected trailing input at ${i}`);
|
|
128
|
+
return value;
|
|
129
|
+
}
|
|
130
|
+
function stringifyIcebergJson(value, indent = 2) {
|
|
131
|
+
const pad = " ".repeat(indent);
|
|
132
|
+
function serialize(val, depth) {
|
|
133
|
+
if (typeof val === "bigint") return val.toString();
|
|
134
|
+
if (val === null || typeof val !== "object") return JSON.stringify(val);
|
|
135
|
+
const inner = pad.repeat(depth + 1);
|
|
136
|
+
const outer = pad.repeat(depth);
|
|
137
|
+
if (Array.isArray(val)) {
|
|
138
|
+
if (val.length === 0) return "[]";
|
|
139
|
+
return `[\n${val.map((v) => inner + serialize(v === void 0 ? null : v, depth + 1)).join(",\n")}\n${outer}]`;
|
|
140
|
+
}
|
|
141
|
+
const keys = Object.keys(val).filter((k) => val[k] !== void 0);
|
|
142
|
+
if (keys.length === 0) return "{}";
|
|
143
|
+
return `{\n${keys.map((k) => `${inner}${JSON.stringify(k)}: ${serialize(val[k], depth + 1)}`).join(",\n")}\n${outer}}`;
|
|
144
|
+
}
|
|
145
|
+
return serialize(value, 0);
|
|
146
|
+
}
|
|
147
|
+
export { parseIcebergJson, stringifyIcebergJson };
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { fetchAvroRecords, urlResolver } from "./fetch.mjs";
|
|
2
|
+
async function icebergManifests({ metadata, resolver, snapshotId, partitionFilter }) {
|
|
3
|
+
resolver ??= urlResolver();
|
|
4
|
+
const rawTarget = snapshotId ?? metadata["current-snapshot-id"];
|
|
5
|
+
if (rawTarget == null || rawTarget < 0) throw new Error("No current snapshot id found in table metadata");
|
|
6
|
+
const targetId = BigInt(rawTarget);
|
|
7
|
+
const snapshot = metadata.snapshots?.find((s) => BigInt(s["snapshot-id"]) === targetId);
|
|
8
|
+
if (!snapshot) throw new Error(`Snapshot ${rawTarget} not found in metadata`);
|
|
9
|
+
let manifests = [];
|
|
10
|
+
if (snapshot["manifest-list"]) {
|
|
11
|
+
const manifestListUrl = snapshot["manifest-list"];
|
|
12
|
+
manifests = await fetchAvroRecords(manifestListUrl, resolver);
|
|
13
|
+
} else if (snapshot.manifests) manifests = snapshot.manifests;
|
|
14
|
+
else throw new Error("No manifest information found in snapshot");
|
|
15
|
+
if (partitionFilter) manifests = manifests.filter((manifest) => {
|
|
16
|
+
let keep = true;
|
|
17
|
+
try {
|
|
18
|
+
keep = partitionFilter(manifest.partitions, manifest.partition_spec_id ?? 0, manifest) !== false;
|
|
19
|
+
} catch {
|
|
20
|
+
keep = true;
|
|
21
|
+
}
|
|
22
|
+
return keep;
|
|
23
|
+
});
|
|
24
|
+
return await fetchManifests(manifests, resolver);
|
|
25
|
+
}
|
|
26
|
+
const MANIFEST_FETCH_CONCURRENCY = 8;
|
|
27
|
+
async function fetchOneManifest(manifest, resolver) {
|
|
28
|
+
const url = manifest.manifest_path;
|
|
29
|
+
const entries = await fetchAvroRecords(url, resolver, Number(manifest.manifest_length));
|
|
30
|
+
for (const entry of entries) {
|
|
31
|
+
entry.partition_spec_id = manifest.partition_spec_id ?? 0;
|
|
32
|
+
if (entry.sequence_number === void 0) entry.sequence_number = manifest.sequence_number ?? 0n;
|
|
33
|
+
if (entry.status === 1) {
|
|
34
|
+
if (entry.sequence_number === void 0) entry.sequence_number = manifest.sequence_number;
|
|
35
|
+
if (entry.file_sequence_number === void 0) entry.file_sequence_number = manifest.sequence_number;
|
|
36
|
+
} else if (entry.sequence_number === void 0 || entry.file_sequence_number === void 0) throw new Error("iceberg manifest entry missing sequence number");
|
|
37
|
+
}
|
|
38
|
+
assignFirstRowIds(manifest, entries);
|
|
39
|
+
return {
|
|
40
|
+
url,
|
|
41
|
+
entries
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
async function fetchManifests(manifests, resolver) {
|
|
45
|
+
const results = new Array(manifests.length);
|
|
46
|
+
let next = 0;
|
|
47
|
+
async function worker() {
|
|
48
|
+
while (next < manifests.length) {
|
|
49
|
+
const i = next++;
|
|
50
|
+
results[i] = await fetchOneManifest(manifests[i], resolver);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
const poolSize = Math.min(MANIFEST_FETCH_CONCURRENCY, manifests.length);
|
|
54
|
+
const workers = [];
|
|
55
|
+
for (let w = 0; w < poolSize; w++) workers.push(worker());
|
|
56
|
+
await Promise.all(workers);
|
|
57
|
+
return results;
|
|
58
|
+
}
|
|
59
|
+
function assignFirstRowIds(manifest, entries) {
|
|
60
|
+
if (manifest.content !== 0 || manifest.first_row_id == null) return;
|
|
61
|
+
let nextFirstRowId = BigInt(manifest.first_row_id);
|
|
62
|
+
for (const entry of entries) {
|
|
63
|
+
const dataFile = entry.data_file;
|
|
64
|
+
if (dataFile.content !== 0) continue;
|
|
65
|
+
if (dataFile.first_row_id == null) {
|
|
66
|
+
dataFile.first_row_id = nextFirstRowId;
|
|
67
|
+
nextFirstRowId += BigInt(dataFile.record_count);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
function splitManifestEntries(manifests) {
|
|
72
|
+
const dataEntries = [];
|
|
73
|
+
const deleteEntries = [];
|
|
74
|
+
for (const { entries } of manifests) for (const entry of entries) {
|
|
75
|
+
if (entry.status === 2) continue;
|
|
76
|
+
if (entry.data_file.content) deleteEntries.push(entry);
|
|
77
|
+
else dataEntries.push(entry);
|
|
78
|
+
}
|
|
79
|
+
return {
|
|
80
|
+
dataEntries,
|
|
81
|
+
deleteEntries
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
export { icebergManifests, splitManifestEntries };
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { parseIcebergJson } from "./json.mjs";
|
|
2
|
+
import { resolveText, s3Lister, urlResolver } from "./fetch.mjs";
|
|
3
|
+
function metadataFileVersionNumber(file) {
|
|
4
|
+
const match = file.match(/^(?:v(\d+)|(\d+)-.+)(?:\.metadata\.json|\.gz\.metadata\.json|\.metadata\.json\.gz)$/);
|
|
5
|
+
if (!match) return void 0;
|
|
6
|
+
return Number(match[1] ?? match[2]);
|
|
7
|
+
}
|
|
8
|
+
function metadataFileVersionName(file) {
|
|
9
|
+
if (metadataFileVersionNumber(file) === void 0) return void 0;
|
|
10
|
+
return file.replace(/(?:\.metadata\.json\.gz|\.gz\.metadata\.json|\.metadata\.json)$/, "");
|
|
11
|
+
}
|
|
12
|
+
function metadataVersions(files) {
|
|
13
|
+
const versions = /* @__PURE__ */ new Map();
|
|
14
|
+
for (const file of files) {
|
|
15
|
+
const version = metadataFileVersionNumber(file);
|
|
16
|
+
const name = metadataFileVersionName(file);
|
|
17
|
+
if (version === void 0 || name === void 0) continue;
|
|
18
|
+
const current = versions.get(version);
|
|
19
|
+
const paddedVersion = String(version).padStart(5, "0");
|
|
20
|
+
if (current === void 0 || metadataFilePreference(file, paddedVersion) < metadataFilePreference(`${current}.metadata.json`, paddedVersion)) versions.set(version, name);
|
|
21
|
+
}
|
|
22
|
+
return [...versions.entries()].sort(([a], [b]) => a - b).map(([, name]) => name);
|
|
23
|
+
}
|
|
24
|
+
function icebergLatestVersion({ tableUrl, resolver, lister }) {
|
|
25
|
+
resolver ??= urlResolver();
|
|
26
|
+
lister ??= s3Lister();
|
|
27
|
+
const url = `${tableUrl}/metadata/version-hint.text`;
|
|
28
|
+
return resolveText(resolver, url).then((text) => {
|
|
29
|
+
const version = parseInt(text);
|
|
30
|
+
if (isNaN(version)) throw new Error(`invalid version: ${text}`);
|
|
31
|
+
return `v${version}`;
|
|
32
|
+
}).catch(() => {
|
|
33
|
+
const metadataDir = `${tableUrl}/metadata`;
|
|
34
|
+
return lister(metadataDir).then((files) => {
|
|
35
|
+
const versions = metadataVersions(files);
|
|
36
|
+
if (versions.length === 0) throw new Error("no metadata files found");
|
|
37
|
+
return versions[versions.length - 1];
|
|
38
|
+
});
|
|
39
|
+
}).catch((err) => {
|
|
40
|
+
throw new Error(`failed to determine latest iceberg version of ${tableUrl}: ${err.message}`);
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
async function icebergMetadata({ tableUrl, metadataFileName, resolver, lister }) {
|
|
44
|
+
return (await resolveMetadata({
|
|
45
|
+
tableUrl,
|
|
46
|
+
metadataFileName,
|
|
47
|
+
resolver,
|
|
48
|
+
lister
|
|
49
|
+
})).metadata;
|
|
50
|
+
}
|
|
51
|
+
async function resolveMetadata({ tableUrl, metadataFileName, resolver, lister }) {
|
|
52
|
+
resolver ??= urlResolver();
|
|
53
|
+
lister ??= s3Lister();
|
|
54
|
+
if (!metadataFileName) metadataFileName = `${await icebergLatestVersion({
|
|
55
|
+
tableUrl,
|
|
56
|
+
resolver,
|
|
57
|
+
lister
|
|
58
|
+
})}.metadata.json`;
|
|
59
|
+
const url = `${tableUrl}/metadata/${metadataFileName}`;
|
|
60
|
+
try {
|
|
61
|
+
return {
|
|
62
|
+
metadata: parseIcebergJson(await resolveText(resolver, url)),
|
|
63
|
+
metadataFileName
|
|
64
|
+
};
|
|
65
|
+
} catch (err) {
|
|
66
|
+
try {
|
|
67
|
+
const metadataDir = `${tableUrl}/metadata`;
|
|
68
|
+
const match = findMetadataFile(await lister(metadataDir), metadataFileName);
|
|
69
|
+
if (match) return {
|
|
70
|
+
metadata: parseIcebergJson(await resolveText(resolver, `${metadataDir}/${match}`)),
|
|
71
|
+
metadataFileName: match
|
|
72
|
+
};
|
|
73
|
+
} catch {}
|
|
74
|
+
throw new Error(`failed to get iceberg metadata: ${err.message}`);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
function findMetadataFile(files, metadataFileName) {
|
|
78
|
+
if (files.includes(metadataFileName)) return metadataFileName;
|
|
79
|
+
const version = metadataFileVersionNumber(metadataFileName);
|
|
80
|
+
if (version === void 0) return void 0;
|
|
81
|
+
const versionNum = String(version).padStart(5, "0");
|
|
82
|
+
return files.filter((f) => metadataFileVersionNumber(f) === version).sort((a, b) => metadataFilePreference(a, versionNum) - metadataFilePreference(b, versionNum))[0];
|
|
83
|
+
}
|
|
84
|
+
async function loadLatestFileCatalogMetadata({ tableUrl, resolver, lister, maxProbe = 64 }) {
|
|
85
|
+
resolver ??= urlResolver();
|
|
86
|
+
lister ??= s3Lister();
|
|
87
|
+
let files;
|
|
88
|
+
try {
|
|
89
|
+
files = await lister(`${tableUrl}/metadata`);
|
|
90
|
+
} catch (err) {
|
|
91
|
+
const fallback = await hintProbeFallback(resolver, tableUrl, maxProbe);
|
|
92
|
+
if (fallback) return fallback;
|
|
93
|
+
throw err;
|
|
94
|
+
}
|
|
95
|
+
let highest = -1;
|
|
96
|
+
let highestFile;
|
|
97
|
+
for (const file of files) {
|
|
98
|
+
const v = metadataFileVersionNumber(file);
|
|
99
|
+
if (v === void 0) continue;
|
|
100
|
+
if (v > highest) {
|
|
101
|
+
highest = v;
|
|
102
|
+
highestFile = file;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
if (highest < 0 || !highestFile) throw new Error(`no metadata files found at ${tableUrl}/metadata`);
|
|
106
|
+
const metadataLocation = `${tableUrl}/metadata/${highestFile}`;
|
|
107
|
+
const text = await resolveText(resolver, metadataLocation);
|
|
108
|
+
return {
|
|
109
|
+
version: highest,
|
|
110
|
+
metadata: parseIcebergJson(text),
|
|
111
|
+
metadataFileName: highestFile,
|
|
112
|
+
metadataLocation
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
async function hintProbeFallback(resolver, tableUrl, maxProbe) {
|
|
116
|
+
let hintVersion;
|
|
117
|
+
try {
|
|
118
|
+
const text = await resolveText(resolver, `${tableUrl}/metadata/version-hint.text`);
|
|
119
|
+
const parsed = parseInt(text);
|
|
120
|
+
if (!isNaN(parsed)) hintVersion = parsed;
|
|
121
|
+
} catch {}
|
|
122
|
+
if (hintVersion === void 0 || hintVersion < 0) return void 0;
|
|
123
|
+
let lastFound = await tryReadVersion(resolver, tableUrl, hintVersion);
|
|
124
|
+
if (!lastFound) return void 0;
|
|
125
|
+
let probe = hintVersion + 1;
|
|
126
|
+
const limit = hintVersion + maxProbe;
|
|
127
|
+
while (probe <= limit) {
|
|
128
|
+
const next = await tryReadVersion(resolver, tableUrl, probe);
|
|
129
|
+
if (!next) break;
|
|
130
|
+
lastFound = next;
|
|
131
|
+
probe++;
|
|
132
|
+
}
|
|
133
|
+
if (probe > limit) return void 0;
|
|
134
|
+
return lastFound;
|
|
135
|
+
}
|
|
136
|
+
async function tryReadVersion(resolver, tableUrl, version) {
|
|
137
|
+
const fileName = `v${version}.metadata.json`;
|
|
138
|
+
const metadataLocation = `${tableUrl}/metadata/${fileName}`;
|
|
139
|
+
try {
|
|
140
|
+
return {
|
|
141
|
+
version,
|
|
142
|
+
metadata: parseIcebergJson(await resolveText(resolver, metadataLocation)),
|
|
143
|
+
metadataFileName: fileName,
|
|
144
|
+
metadataLocation
|
|
145
|
+
};
|
|
146
|
+
} catch {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
function metadataFilePreference(file, paddedVersion) {
|
|
151
|
+
if (file === `v${Number(paddedVersion)}.metadata.json`) return 0;
|
|
152
|
+
if (file === `v${Number(paddedVersion)}.gz.metadata.json`) return 1;
|
|
153
|
+
if (file === `v${Number(paddedVersion)}.metadata.json.gz`) return 2;
|
|
154
|
+
if (file.startsWith(`${paddedVersion}-`) && file.endsWith(".metadata.json")) return 3;
|
|
155
|
+
if (file.startsWith(`${paddedVersion}-`) && file.endsWith(".gz.metadata.json")) return 4;
|
|
156
|
+
if (file.startsWith(`${paddedVersion}-`) && file.endsWith(".metadata.json.gz")) return 5;
|
|
157
|
+
return 6;
|
|
158
|
+
}
|
|
159
|
+
export { icebergLatestVersion, icebergMetadata, loadLatestFileCatalogMetadata, resolveMetadata };
|