@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
package/dist/date.mjs
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const DAY_MILLIS = 864e5;
|
|
2
|
+
function toIcebergDayCount(value) {
|
|
3
|
+
if (typeof value === "number") return value;
|
|
4
|
+
if (value instanceof Date) {
|
|
5
|
+
const ms = value.getTime();
|
|
6
|
+
if (Number.isNaN(ms)) throw new TypeError("toIcebergDayCount: invalid Date (NaN)");
|
|
7
|
+
return Math.floor(ms / DAY_MILLIS);
|
|
8
|
+
}
|
|
9
|
+
const ms = Date.parse(`${value}T00:00:00Z`);
|
|
10
|
+
if (Number.isNaN(ms)) throw new TypeError(`toIcebergDayCount: invalid date string '${value}'`);
|
|
11
|
+
return Math.floor(ms / DAY_MILLIS);
|
|
12
|
+
}
|
|
13
|
+
export { toIcebergDayCount };
|
package/dist/index.d.mts
CHANGED
|
@@ -1,161 +1,8 @@
|
|
|
1
1
|
import { bigintJsonReplacer, coerceBigIntToNumber, encodeJsonBigintSafe, stringifyBigintSafe } from "./bigint.mjs";
|
|
2
|
-
import { CatalogCache,
|
|
3
|
-
import { DEFAULT_PARTITION_KEY_ENCODING, IcebergColumn, IcebergColumnType, IcebergPartitionField, IcebergPartitionTransform, IcebergS3Config, IcebergTableSpec, PartitionKeyEncoding } from "./
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
* with per-column encoding, replacing the original opaque `'custom'` shape.
|
|
9
|
-
*/
|
|
10
|
-
type DatasetIdentity = {
|
|
11
|
-
kind: 'site-int';
|
|
12
|
-
encoding?: 'int' | 'string';
|
|
13
|
-
} | {
|
|
14
|
-
kind: 'columns';
|
|
15
|
-
columns: readonly {
|
|
16
|
-
name: string;
|
|
17
|
-
encoding: 'int32' | 'string';
|
|
18
|
-
}[];
|
|
19
|
-
};
|
|
20
|
-
/** A per-slice dimension (GSC's `searchType`). Absent for plain snapshot datasets. */
|
|
21
|
-
interface DatasetDim {
|
|
22
|
-
toPartitionValue: (v: string) => string | number;
|
|
23
|
-
/** Required (amendment 5) — how the reader decodes this column's manifest bounds. */
|
|
24
|
-
boundEncoding: 'int32' | 'string';
|
|
25
|
-
}
|
|
26
|
-
interface IcebergDatasetColumnDef {
|
|
27
|
-
name: string;
|
|
28
|
-
type: IcebergColumnType;
|
|
29
|
-
required: boolean;
|
|
30
|
-
}
|
|
31
|
-
interface IcebergDatasetLedger {
|
|
32
|
-
key: readonly string[];
|
|
33
|
-
}
|
|
34
|
-
interface IcebergDatasetDef {
|
|
35
|
-
namespace: string;
|
|
36
|
-
table: string;
|
|
37
|
-
identity: DatasetIdentity;
|
|
38
|
-
/** Extra per-slice dimensions; absent for snapshot datasets. */
|
|
39
|
-
dims?: Record<string, DatasetDim>;
|
|
40
|
-
/** Data columns (non-identity, non-dims) — includes any partition source column (e.g. `date`). */
|
|
41
|
-
columns: readonly IcebergDatasetColumnDef[];
|
|
42
|
-
/** Partition fields; identity columns must appear here. */
|
|
43
|
-
partition: readonly IcebergPartitionField[];
|
|
44
|
-
/** Natural-key columns. Full dedupe key = identity + dims + naturalKey (amendment 3). */
|
|
45
|
-
naturalKey: readonly string[];
|
|
46
|
-
clusterKey?: readonly string[];
|
|
47
|
-
/** Consumer-owned exactly-once ledger shape — folded into `appendSink().close()` (amendment 6). */
|
|
48
|
-
ledger?: IcebergDatasetLedger;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Derive the full {@link IcebergTableSpec} from a dataset def. Field ids are
|
|
52
|
-
* assigned sequentially in ONE fixed order — identity columns, then dims
|
|
53
|
-
* columns, then declared data columns — starting at 1. This mirrors the
|
|
54
|
-
* engine's original `icebergTableSpec` contract (identity columns first, data
|
|
55
|
-
* columns from a fixed base) so a def-derived spec for an existing table
|
|
56
|
-
* (`crawl.pages`, `lighthouse.scans`, `dataforseo.keywords`) is BYTE-IDENTICAL
|
|
57
|
-
* to the frozen inline constants it replaces.
|
|
58
|
-
*/
|
|
59
|
-
declare function deriveTableSpec(def: IcebergDatasetDef): IcebergTableSpec;
|
|
60
|
-
/**
|
|
61
|
-
* Convert a `YYYY-MM-DD` string / `Date` / already-numeric day-count to the
|
|
62
|
-
* integer "days since the Unix epoch" the Iceberg `date` type stores.
|
|
63
|
-
* hyparquet-writer mis-encodes Date-valued dictionary columns, so callers
|
|
64
|
-
* should feed this INTO their row before `appendRows`/`appendSink.emit` for
|
|
65
|
-
* any `month`-partitioned date column.
|
|
66
|
-
*/
|
|
67
|
-
declare function toIcebergDayCount(value: string | Date | number): number;
|
|
68
|
-
/** Options shared by `appendRows` / `appendSink`. */
|
|
69
|
-
interface AppendCommitOptions {
|
|
70
|
-
commitRetry?: CommitRetryOptions;
|
|
71
|
-
}
|
|
72
|
-
interface AppendSinkOptions extends AppendCommitOptions {
|
|
73
|
-
catalog: IcebergCatalogConfig;
|
|
74
|
-
connect?: ConnectIcebergOptions;
|
|
75
|
-
/** Invoked ONLY after a successful flush (amendment 6) — never on a failed/empty close. */
|
|
76
|
-
ledger?: {
|
|
77
|
-
record: () => Promise<void> | void;
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
interface AppendResult {
|
|
81
|
-
/** Rows accepted after the identity guard + dedupe (what was actually appended). */
|
|
82
|
-
accepted: number;
|
|
83
|
-
/** Rows dropped by the identity guard (missing/out-of-range required identity value). */
|
|
84
|
-
skipped: number;
|
|
85
|
-
}
|
|
86
|
-
type AppendBatchSource = () => Iterable<readonly Record<string, unknown>[]> | AsyncIterable<readonly Record<string, unknown>[]>;
|
|
87
|
-
interface AppendBatchesOptions extends AppendCommitOptions {
|
|
88
|
-
/** Stable across job retries; recorded in snapshot metadata for landed checks. */
|
|
89
|
-
appendId: string;
|
|
90
|
-
}
|
|
91
|
-
interface AppendBatchesResult extends AppendResult {
|
|
92
|
-
/** False when this append id was already present before the call. */
|
|
93
|
-
committed: boolean;
|
|
94
|
-
}
|
|
95
|
-
interface AppendSinkCloseResult extends AppendResult {
|
|
96
|
-
flushed: boolean;
|
|
97
|
-
error?: unknown;
|
|
98
|
-
}
|
|
99
|
-
interface AppendSink {
|
|
100
|
-
emit: (rows: readonly Record<string, unknown>[]) => void;
|
|
101
|
-
close: () => Promise<AppendSinkCloseResult>;
|
|
102
|
-
}
|
|
103
|
-
interface ResolveDataFilesOptions {
|
|
104
|
-
cache?: CatalogCache;
|
|
105
|
-
clock?: () => number;
|
|
106
|
-
profiler?: QueryProfiler;
|
|
107
|
-
}
|
|
108
|
-
interface IcebergDataset {
|
|
109
|
-
readonly def: IcebergDatasetDef;
|
|
110
|
-
readonly tableSpec: IcebergTableSpec;
|
|
111
|
-
icebergSchema: () => IcebergSchema;
|
|
112
|
-
icebergPartitionSpec: () => IcebergPartitionSpec;
|
|
113
|
-
icebergSortOrder: () => IcebergSortOrder | undefined;
|
|
114
|
-
createTable: (conn: IcebergConnection) => Promise<IcebergTableOpResult[]>;
|
|
115
|
-
/**
|
|
116
|
-
* One-shot append over an EXISTING connection: identity INT32 guard, dedupe
|
|
117
|
-
* by identity+dims+naturalKey (last-wins), cluster pre-sort (if
|
|
118
|
-
* `clusterKey` is set), then a single `icebergAppendRetrying` commit. `rows`
|
|
119
|
-
* must already be in final storage-column shape — identity/dims/data
|
|
120
|
-
* columns keyed by their STORED column names, with any `month`-partitioned
|
|
121
|
-
* date column pre-converted via {@link toIcebergDayCount}.
|
|
122
|
-
*/
|
|
123
|
-
appendRows: (conn: IcebergConnection, rows: readonly Record<string, unknown>[], opts?: AppendCommitOptions) => Promise<AppendResult>;
|
|
124
|
-
/**
|
|
125
|
-
* Lazily process bounded row batches, writing multiple data files into one
|
|
126
|
-
* append snapshot and one catalog commit. Dedupe keys must be disjoint
|
|
127
|
-
* across source batches.
|
|
128
|
-
*/
|
|
129
|
-
appendBatches: (conn: IcebergConnection, source: AppendBatchSource, opts: AppendBatchesOptions) => Promise<AppendBatchesResult>;
|
|
130
|
-
/**
|
|
131
|
-
* PURE row processing — the identity INT32 guard, dedupe (identity+dims+
|
|
132
|
-
* naturalKey, last-wins) and cluster pre-sort `appendRows`/`appendSink`
|
|
133
|
-
* apply before committing, exposed standalone with NO network/icebird call.
|
|
134
|
-
* Lets a consumer that owns its own commit call-site (e.g. one still
|
|
135
|
-
* calling a frozen `icebergAppendRetrying` import directly, for test-mock
|
|
136
|
-
* compatibility) still route its dedupe/guard/sort logic through the
|
|
137
|
-
* dataset definition.
|
|
138
|
-
*/
|
|
139
|
-
prepareRows: (rows: readonly Record<string, unknown>[]) => {
|
|
140
|
-
records: Record<string, unknown>[];
|
|
141
|
-
skipped: number;
|
|
142
|
-
};
|
|
143
|
-
/** Buffered multi-emit sink — owns its own connect/close lifecycle (ADR-0021's primary contract). */
|
|
144
|
-
appendSink: (opts: AppendSinkOptions) => AppendSink;
|
|
145
|
-
/** `PartitionValueMatch[]` for one identity value (+ optional dims), for manual manifest filtering. */
|
|
146
|
-
readerPredicate: (identity: string | number, dims?: Record<string, string>) => PartitionValueMatch[];
|
|
147
|
-
/** A ready-to-use manifest partition filter for one identity value + wanted months. */
|
|
148
|
-
partitionBoundFilter: (identity: string | number, months: ReadonlySet<number>, dims?: Record<string, string>) => ManifestPartitionFilter;
|
|
149
|
-
/** Resolve the data files for one identity value across a date range. */
|
|
150
|
-
resolveDataFiles: (conn: IcebergConnection, identity: string | number, range: {
|
|
151
|
-
start: string;
|
|
152
|
-
end: string;
|
|
153
|
-
}, dims?: Record<string, string>, opts?: ResolveDataFilesOptions) => Promise<IcebergListedDataFile[]>;
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* Declare an Iceberg dataset — one `namespace.table` — deriving its schema,
|
|
157
|
-
* partition spec, dedupe key, INT32 guard, append path, and reader helpers
|
|
158
|
-
* from the def. See {@link IcebergDatasetDef}.
|
|
159
|
-
*/
|
|
160
|
-
declare function defineIcebergDataset(def: IcebergDatasetDef): IcebergDataset;
|
|
2
|
+
import { CatalogCache, cacheGet, cachePut } from "./catalog-cache.mjs";
|
|
3
|
+
import { DEFAULT_PARTITION_KEY_ENCODING, ICEBERG_TYPE_MAP, IcebergColumn, IcebergColumnType, IcebergPartitionField, IcebergPartitionTransform, IcebergPrimitiveType, IcebergS3Config, IcebergTableSpec, PartitionKeyEncoding } from "./schema.mjs";
|
|
4
|
+
import { IcebergFieldSummary, ManifestPartitionFilter, PartitionValueMatch, buildManifestPartitionFilter } from "./partition-prune.mjs";
|
|
5
|
+
import { CommitRetryOptions, ConnectIcebergOptions, IcebergCatalogConfig, IcebergConnection, IcebergListedDataFile, IcebergPartitionSpec, IcebergPartitionSpecField, IcebergSchema, IcebergSchemaField, IcebergSortOrder, IcebergSortOrderField, IcebergTableOpResult, QueryProfiler, ResolveIcebergDataFilesOptions, catalogCacheScope, connectIcebergCatalog, dropIcebergTables, ensureIcebergNamespace, invalidateSnapshotRef, listIcebergTables, resolveIcebergDataFiles } from "./catalog.mjs";
|
|
6
|
+
import { AppendBatchSource, AppendBatchesOptions, AppendBatchesResult, AppendCommitOptions, AppendResult, AppendSink, AppendSinkCloseResult, AppendSinkOptions, DatasetDim, DatasetIdentity, IcebergDataset, IcebergDatasetColumnDef, IcebergDatasetDef, IcebergDatasetLedger, ResolveDataFilesOptions, defineIcebergDataset, deriveTableSpec } from "./dataset.mjs";
|
|
7
|
+
import { toIcebergDayCount } from "./date.mjs";
|
|
161
8
|
export { type AppendBatchSource, type AppendBatchesOptions, type AppendBatchesResult, type AppendCommitOptions, type AppendResult, type AppendSink, type AppendSinkCloseResult, type AppendSinkOptions, type CatalogCache, type CommitRetryOptions, type ConnectIcebergOptions, DEFAULT_PARTITION_KEY_ENCODING, type DatasetDim, type DatasetIdentity, ICEBERG_TYPE_MAP, type IcebergCatalogConfig, type IcebergColumn, type IcebergColumnType, type IcebergConnection, type IcebergDataset, type IcebergDatasetColumnDef, type IcebergDatasetDef, type IcebergDatasetLedger, type IcebergFieldSummary, type IcebergListedDataFile, type IcebergPartitionField, type IcebergPartitionSpec, type IcebergPartitionSpecField, type IcebergPartitionTransform, type IcebergPrimitiveType, type IcebergS3Config, type IcebergSchema, type IcebergSchemaField, type IcebergSortOrder, type IcebergSortOrderField, type IcebergTableOpResult, type IcebergTableSpec, type ManifestPartitionFilter, type PartitionKeyEncoding, type PartitionValueMatch, type QueryProfiler, type ResolveDataFilesOptions, type ResolveIcebergDataFilesOptions, bigintJsonReplacer, buildManifestPartitionFilter, cacheGet, cachePut, catalogCacheScope, coerceBigIntToNumber, connectIcebergCatalog, defineIcebergDataset, deriveTableSpec, dropIcebergTables, encodeJsonBigintSafe, ensureIcebergNamespace, invalidateSnapshotRef, listIcebergTables, resolveIcebergDataFiles, stringifyBigintSafe, toIcebergDayCount };
|
package/dist/index.mjs
CHANGED
|
@@ -1,363 +1,8 @@
|
|
|
1
1
|
import { bigintJsonReplacer, coerceBigIntToNumber, encodeJsonBigintSafe, stringifyBigintSafe } from "./bigint.mjs";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
function identityColumnNames(identity) {
|
|
9
|
-
return identity.kind === "site-int" ? ["site_id"] : identity.columns.map((c) => c.name);
|
|
10
|
-
}
|
|
11
|
-
function identityEncodings(identity) {
|
|
12
|
-
const map = /* @__PURE__ */ new Map();
|
|
13
|
-
if (identity.kind === "site-int") map.set("site_id", (identity.encoding ?? "int") === "int" ? "int32" : "string");
|
|
14
|
-
else for (const c of identity.columns) map.set(c.name, c.encoding);
|
|
15
|
-
return map;
|
|
16
|
-
}
|
|
17
|
-
function identityColumnType(encoding) {
|
|
18
|
-
return encoding === "int32" ? "INT" : "STRING";
|
|
19
|
-
}
|
|
20
|
-
function deriveTableSpec(def) {
|
|
21
|
-
const encodings = identityEncodings(def.identity);
|
|
22
|
-
const idNames = identityColumnNames(def.identity);
|
|
23
|
-
const dimNames = def.dims ? Object.keys(def.dims) : [];
|
|
24
|
-
let fieldId = 1;
|
|
25
|
-
const columns = [];
|
|
26
|
-
for (const name of idNames) columns.push({
|
|
27
|
-
name,
|
|
28
|
-
type: identityColumnType(encodings.get(name)),
|
|
29
|
-
required: true,
|
|
30
|
-
fieldId: fieldId++
|
|
31
|
-
});
|
|
32
|
-
for (const name of dimNames) {
|
|
33
|
-
const enc = def.dims[name].boundEncoding;
|
|
34
|
-
columns.push({
|
|
35
|
-
name,
|
|
36
|
-
type: identityColumnType(enc),
|
|
37
|
-
required: true,
|
|
38
|
-
fieldId: fieldId++
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
for (const col of def.columns) columns.push({
|
|
42
|
-
name: col.name,
|
|
43
|
-
type: col.type,
|
|
44
|
-
required: col.required,
|
|
45
|
-
fieldId: fieldId++
|
|
46
|
-
});
|
|
47
|
-
return {
|
|
48
|
-
namespace: def.namespace,
|
|
49
|
-
table: def.table,
|
|
50
|
-
columns,
|
|
51
|
-
partitionSpec: def.partition,
|
|
52
|
-
naturalKey: def.naturalKey,
|
|
53
|
-
identityColumns: [
|
|
54
|
-
...idNames,
|
|
55
|
-
...dimNames,
|
|
56
|
-
...def.naturalKey
|
|
57
|
-
],
|
|
58
|
-
clusterKey: def.clusterKey
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
function icebergSchemaFromSpec(spec) {
|
|
62
|
-
return {
|
|
63
|
-
"type": "struct",
|
|
64
|
-
"schema-id": 0,
|
|
65
|
-
"fields": spec.columns.map((col) => ({
|
|
66
|
-
id: col.fieldId,
|
|
67
|
-
name: col.name,
|
|
68
|
-
required: col.required,
|
|
69
|
-
type: ICEBERG_TYPE_MAP[col.type]
|
|
70
|
-
}))
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
function icebergPartitionSpecFromSpec(spec) {
|
|
74
|
-
const fieldId = (name) => {
|
|
75
|
-
const col = spec.columns.find((c) => c.name === name);
|
|
76
|
-
if (!col) throw new Error(`lakehouse: table '${spec.table}' has no '${name}' column`);
|
|
77
|
-
return col.fieldId;
|
|
78
|
-
};
|
|
79
|
-
return {
|
|
80
|
-
"spec-id": 0,
|
|
81
|
-
"fields": spec.partitionSpec.map((p, i) => ({
|
|
82
|
-
"source-id": fieldId(p.sourceColumn),
|
|
83
|
-
"field-id": 1e3 + i,
|
|
84
|
-
"name": p.name,
|
|
85
|
-
"transform": p.transform
|
|
86
|
-
}))
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
function icebergSortOrderFromSpec(spec) {
|
|
90
|
-
if (!spec.clusterKey || spec.clusterKey.length === 0) return void 0;
|
|
91
|
-
const fieldId = (name) => {
|
|
92
|
-
const col = spec.columns.find((c) => c.name === name);
|
|
93
|
-
if (!col) throw new Error(`lakehouse: table '${spec.table}' has no '${name}' column`);
|
|
94
|
-
return col.fieldId;
|
|
95
|
-
};
|
|
96
|
-
return {
|
|
97
|
-
"order-id": 1,
|
|
98
|
-
"fields": spec.clusterKey.map((col) => ({
|
|
99
|
-
"source-id": fieldId(col),
|
|
100
|
-
"transform": "identity",
|
|
101
|
-
"direction": "asc",
|
|
102
|
-
"null-order": "nulls-last"
|
|
103
|
-
}))
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
function toIcebergDayCount(value) {
|
|
107
|
-
if (typeof value === "number") return value;
|
|
108
|
-
if (value instanceof Date) {
|
|
109
|
-
const ms = value.getTime();
|
|
110
|
-
if (Number.isNaN(ms)) throw new TypeError("toIcebergDayCount: invalid Date (NaN)");
|
|
111
|
-
return Math.floor(ms / DAY_MILLIS);
|
|
112
|
-
}
|
|
113
|
-
const ms = Date.parse(`${value}T00:00:00Z`);
|
|
114
|
-
if (Number.isNaN(ms)) throw new TypeError(`toIcebergDayCount: invalid date string '${value}'`);
|
|
115
|
-
return Math.floor(ms / DAY_MILLIS);
|
|
116
|
-
}
|
|
117
|
-
function asInt32(value) {
|
|
118
|
-
if (typeof value !== "string" && typeof value !== "number" && typeof value !== "bigint") return null;
|
|
119
|
-
const n = Number(value);
|
|
120
|
-
if (!Number.isSafeInteger(n) || n < INT32_MIN || n > INT32_MAX) return null;
|
|
121
|
-
return n;
|
|
122
|
-
}
|
|
123
|
-
function buildRowProcessor(def, tableSpec) {
|
|
124
|
-
const idNames = identityColumnNames(def.identity);
|
|
125
|
-
const idEncodings = identityEncodings(def.identity);
|
|
126
|
-
const dimNames = def.dims ? Object.keys(def.dims) : [];
|
|
127
|
-
const identityColumns = tableSpec.identityColumns;
|
|
128
|
-
function guard(row) {
|
|
129
|
-
const out = {};
|
|
130
|
-
for (const name of idNames) {
|
|
131
|
-
const enc = idEncodings.get(name);
|
|
132
|
-
const raw = row[name];
|
|
133
|
-
if (enc === "int32") {
|
|
134
|
-
const n = asInt32(raw);
|
|
135
|
-
if (n === null) return null;
|
|
136
|
-
out[name] = n;
|
|
137
|
-
} else {
|
|
138
|
-
if (raw == null || raw === "") return null;
|
|
139
|
-
out[name] = String(raw);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
for (const name of dimNames) out[name] = def.dims[name].toPartitionValue(String(row[name]));
|
|
143
|
-
for (const col of def.columns) {
|
|
144
|
-
const value = row[col.name];
|
|
145
|
-
out[col.name] = col.type === "LONG" ? typeof value === "number" ? BigInt(value) : value : coerceBigIntToNumber(value);
|
|
146
|
-
}
|
|
147
|
-
return out;
|
|
148
|
-
}
|
|
149
|
-
function dedupe(rows) {
|
|
150
|
-
if (rows.length < 2) return rows;
|
|
151
|
-
const seen = /* @__PURE__ */ new Map();
|
|
152
|
-
for (const rec of rows) {
|
|
153
|
-
let identity = "";
|
|
154
|
-
for (let index = 0; index < identityColumns.length; index++) {
|
|
155
|
-
if (index > 0) identity += "\0";
|
|
156
|
-
identity += `${rec[identityColumns[index]] ?? ""}`;
|
|
157
|
-
}
|
|
158
|
-
seen.set(identity, rec);
|
|
159
|
-
}
|
|
160
|
-
return seen.size === rows.length ? rows : [...seen.values()];
|
|
161
|
-
}
|
|
162
|
-
function sort(rows) {
|
|
163
|
-
const cols = def.clusterKey;
|
|
164
|
-
if (!cols || cols.length === 0 || rows.length < 2) return rows;
|
|
165
|
-
return rows.slice().sort((a, b) => {
|
|
166
|
-
for (const col of cols) {
|
|
167
|
-
const av = a[col];
|
|
168
|
-
const bv = b[col];
|
|
169
|
-
if (av === bv) continue;
|
|
170
|
-
if (av == null) return -1;
|
|
171
|
-
if (bv == null) return 1;
|
|
172
|
-
if (typeof av === "number" && typeof bv === "number") return av - bv;
|
|
173
|
-
const as = String(av);
|
|
174
|
-
const bs = String(bv);
|
|
175
|
-
if (as !== bs) return as < bs ? -1 : 1;
|
|
176
|
-
}
|
|
177
|
-
return 0;
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
return {
|
|
181
|
-
guard,
|
|
182
|
-
dedupe,
|
|
183
|
-
sort
|
|
184
|
-
};
|
|
185
|
-
}
|
|
186
|
-
function defineIcebergDataset(def) {
|
|
187
|
-
const tableSpec = deriveTableSpec(def);
|
|
188
|
-
const schema = icebergSchemaFromSpec(tableSpec);
|
|
189
|
-
const partitionSpecIcebird = icebergPartitionSpecFromSpec(tableSpec);
|
|
190
|
-
const sortOrder = icebergSortOrderFromSpec(tableSpec);
|
|
191
|
-
const { guard, dedupe, sort } = buildRowProcessor(def, tableSpec);
|
|
192
|
-
async function createTable(conn) {
|
|
193
|
-
const results = [];
|
|
194
|
-
await icebergCreateTable({
|
|
195
|
-
catalog: conn.catalog,
|
|
196
|
-
namespace: conn.namespace,
|
|
197
|
-
table: def.table,
|
|
198
|
-
schema,
|
|
199
|
-
partitionSpec: partitionSpecIcebird,
|
|
200
|
-
...sortOrder ? { sortOrder } : {}
|
|
201
|
-
}).then(() => results.push({
|
|
202
|
-
table: def.table,
|
|
203
|
-
ok: true
|
|
204
|
-
}), (e) => results.push({
|
|
205
|
-
table: def.table,
|
|
206
|
-
ok: false,
|
|
207
|
-
error: e instanceof Error ? e.message : String(e)
|
|
208
|
-
}));
|
|
209
|
-
return results;
|
|
210
|
-
}
|
|
211
|
-
function process(rows) {
|
|
212
|
-
const guarded = [];
|
|
213
|
-
let skipped = 0;
|
|
214
|
-
for (const row of rows) {
|
|
215
|
-
const rec = guard(row);
|
|
216
|
-
if (rec === null) skipped++;
|
|
217
|
-
else guarded.push(rec);
|
|
218
|
-
}
|
|
219
|
-
return {
|
|
220
|
-
records: sort(dedupe(guarded)),
|
|
221
|
-
skipped
|
|
222
|
-
};
|
|
223
|
-
}
|
|
224
|
-
async function appendRows(conn, rows, opts = {}) {
|
|
225
|
-
if (rows.length === 0) return {
|
|
226
|
-
accepted: 0,
|
|
227
|
-
skipped: 0
|
|
228
|
-
};
|
|
229
|
-
const { records, skipped } = process(rows);
|
|
230
|
-
if (records.length === 0) return {
|
|
231
|
-
accepted: 0,
|
|
232
|
-
skipped
|
|
233
|
-
};
|
|
234
|
-
await icebergAppendRetrying({
|
|
235
|
-
catalog: conn.catalog,
|
|
236
|
-
namespace: conn.namespace,
|
|
237
|
-
table: def.table,
|
|
238
|
-
resolver: conn.resolver,
|
|
239
|
-
records
|
|
240
|
-
}, opts.commitRetry);
|
|
241
|
-
return {
|
|
242
|
-
accepted: records.length,
|
|
243
|
-
skipped
|
|
244
|
-
};
|
|
245
|
-
}
|
|
246
|
-
async function appendBatches(conn, source, opts) {
|
|
247
|
-
let accepted = 0;
|
|
248
|
-
let skipped = 0;
|
|
249
|
-
const batchFactory = async function* () {
|
|
250
|
-
accepted = 0;
|
|
251
|
-
skipped = 0;
|
|
252
|
-
for await (const rows of source()) {
|
|
253
|
-
const prepared = process(rows);
|
|
254
|
-
accepted += prepared.records.length;
|
|
255
|
-
skipped += prepared.skipped;
|
|
256
|
-
if (prepared.records.length > 0) yield prepared.records;
|
|
257
|
-
}
|
|
258
|
-
};
|
|
259
|
-
const committed = await icebergAppendBatchesRetrying({
|
|
260
|
-
catalog: conn.catalog,
|
|
261
|
-
namespace: conn.namespace,
|
|
262
|
-
table: def.table,
|
|
263
|
-
resolver: conn.resolver,
|
|
264
|
-
batchFactory
|
|
265
|
-
}, {
|
|
266
|
-
...opts.commitRetry,
|
|
267
|
-
appendId: opts.appendId
|
|
268
|
-
});
|
|
269
|
-
return {
|
|
270
|
-
accepted,
|
|
271
|
-
skipped,
|
|
272
|
-
committed
|
|
273
|
-
};
|
|
274
|
-
}
|
|
275
|
-
function appendSink(opts) {
|
|
276
|
-
let buffer = [];
|
|
277
|
-
let connection;
|
|
278
|
-
function connect() {
|
|
279
|
-
connection ??= connectIcebergCatalog(opts.catalog, opts.connect).then(async (conn) => {
|
|
280
|
-
await ensureIcebergNamespace(conn);
|
|
281
|
-
return conn;
|
|
282
|
-
});
|
|
283
|
-
return connection;
|
|
284
|
-
}
|
|
285
|
-
return {
|
|
286
|
-
emit(rows) {
|
|
287
|
-
for (const r of rows) buffer.push(r);
|
|
288
|
-
},
|
|
289
|
-
async close() {
|
|
290
|
-
if (buffer.length === 0) return {
|
|
291
|
-
flushed: false,
|
|
292
|
-
accepted: 0,
|
|
293
|
-
skipped: 0
|
|
294
|
-
};
|
|
295
|
-
const rows = buffer;
|
|
296
|
-
buffer = [];
|
|
297
|
-
try {
|
|
298
|
-
const result = await appendRows(await connect(), rows, { commitRetry: opts.commitRetry });
|
|
299
|
-
if (result.accepted > 0 && opts.ledger) await opts.ledger.record();
|
|
300
|
-
return {
|
|
301
|
-
flushed: result.accepted > 0,
|
|
302
|
-
...result
|
|
303
|
-
};
|
|
304
|
-
} catch (error) {
|
|
305
|
-
return {
|
|
306
|
-
flushed: false,
|
|
307
|
-
accepted: 0,
|
|
308
|
-
skipped: 0,
|
|
309
|
-
error
|
|
310
|
-
};
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
};
|
|
314
|
-
}
|
|
315
|
-
function readerPredicate(identity, dims) {
|
|
316
|
-
const idNames = identityColumnNames(def.identity);
|
|
317
|
-
const idEncodings = identityEncodings(def.identity);
|
|
318
|
-
const matches = idNames.map((name) => ({
|
|
319
|
-
field: name,
|
|
320
|
-
value: idEncodings.get(name) === "int32" ? Number(identity) : identity,
|
|
321
|
-
encoding: idEncodings.get(name) === "int32" ? "int32" : "string"
|
|
322
|
-
}));
|
|
323
|
-
if (def.dims && dims) {
|
|
324
|
-
for (const [name, dim] of Object.entries(def.dims)) if (name in dims) matches.push({
|
|
325
|
-
field: name,
|
|
326
|
-
value: dim.toPartitionValue(dims[name]),
|
|
327
|
-
encoding: dim.boundEncoding
|
|
328
|
-
});
|
|
329
|
-
}
|
|
330
|
-
return matches;
|
|
331
|
-
}
|
|
332
|
-
function partitionBoundFilter(identity, months, dims) {
|
|
333
|
-
return buildManifestPartitionFilter(def.partition, readerPredicate(identity, dims), months);
|
|
334
|
-
}
|
|
335
|
-
async function resolveDataFiles(conn, identity, range, dims, opts = {}) {
|
|
336
|
-
return resolveIcebergDataFiles(conn, {
|
|
337
|
-
namespace: def.namespace,
|
|
338
|
-
table: def.table,
|
|
339
|
-
partitionSpec: def.partition,
|
|
340
|
-
matches: readerPredicate(identity, dims),
|
|
341
|
-
range,
|
|
342
|
-
cache: opts.cache,
|
|
343
|
-
clock: opts.clock,
|
|
344
|
-
profiler: opts.profiler
|
|
345
|
-
});
|
|
346
|
-
}
|
|
347
|
-
return {
|
|
348
|
-
def,
|
|
349
|
-
tableSpec,
|
|
350
|
-
icebergSchema: () => schema,
|
|
351
|
-
icebergPartitionSpec: () => partitionSpecIcebird,
|
|
352
|
-
icebergSortOrder: () => sortOrder,
|
|
353
|
-
createTable,
|
|
354
|
-
appendRows,
|
|
355
|
-
appendBatches,
|
|
356
|
-
prepareRows: process,
|
|
357
|
-
appendSink,
|
|
358
|
-
readerPredicate,
|
|
359
|
-
partitionBoundFilter,
|
|
360
|
-
resolveDataFiles
|
|
361
|
-
};
|
|
362
|
-
}
|
|
2
|
+
import { cacheGet, cachePut } from "./catalog-cache.mjs";
|
|
3
|
+
import { buildManifestPartitionFilter } from "./partition-prune.mjs";
|
|
4
|
+
import { catalogCacheScope, connectIcebergCatalog, dropIcebergTables, ensureIcebergNamespace, invalidateSnapshotRef, listIcebergTables, resolveIcebergDataFiles } from "./catalog.mjs";
|
|
5
|
+
import { DEFAULT_PARTITION_KEY_ENCODING, ICEBERG_TYPE_MAP } from "./schema.mjs";
|
|
6
|
+
import { defineIcebergDataset, deriveTableSpec } from "./dataset.mjs";
|
|
7
|
+
import { toIcebergDayCount } from "./date.mjs";
|
|
363
8
|
export { DEFAULT_PARTITION_KEY_ENCODING, ICEBERG_TYPE_MAP, bigintJsonReplacer, buildManifestPartitionFilter, cacheGet, cachePut, catalogCacheScope, coerceBigIntToNumber, connectIcebergCatalog, defineIcebergDataset, deriveTableSpec, dropIcebergTables, encodeJsonBigintSafe, ensureIcebergNamespace, invalidateSnapshotRef, listIcebergTables, resolveIcebergDataFiles, stringifyBigintSafe, toIcebergDayCount };
|
package/dist/maintenance.d.mts
CHANGED
|
@@ -1,94 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
interface SweepListedObject {
|
|
4
|
-
key: string;
|
|
5
|
-
uploaded: Date;
|
|
6
|
-
}
|
|
7
|
-
/** One page of a prefix listing. */
|
|
8
|
-
interface SweepListPage {
|
|
9
|
-
objects: readonly SweepListedObject[];
|
|
10
|
-
truncated: boolean;
|
|
11
|
-
cursor?: string;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Minimal storage client `sweepUncommittedOrphans` needs: list-by-prefix +
|
|
15
|
-
* batch delete against the warehouse bucket. Deliberately NOT an S3 SDK
|
|
16
|
-
* client shape — this interface is structurally satisfied by Cloudflare's
|
|
17
|
-
* native `R2Bucket` Workers binding (`env.R2_ANALYTICS.list({ prefix })` /
|
|
18
|
-
* `env.R2_ANALYTICS.delete(keys)`), so a caller running inside a Worker can
|
|
19
|
-
* pass the binding straight through with no adapter. Any other
|
|
20
|
-
* S3-compatible client can be wrapped to this shape.
|
|
21
|
-
*/
|
|
22
|
-
interface SweepStorageClient {
|
|
23
|
-
list: (options: {
|
|
24
|
-
prefix: string;
|
|
25
|
-
cursor?: string;
|
|
26
|
-
}) => Promise<SweepListPage>;
|
|
27
|
-
delete: (keys: string[]) => Promise<void>;
|
|
28
|
-
}
|
|
29
|
-
interface SweepUncommittedOrphansOptions {
|
|
30
|
-
conn: IcebergConnection;
|
|
31
|
-
s3: SweepStorageClient;
|
|
32
|
-
/**
|
|
33
|
-
* Bare R2 bucket name backing `conn`'s warehouse. Every scanned table's
|
|
34
|
-
* `location` must resolve into this exact bucket; a table whose location
|
|
35
|
-
* points elsewhere is SKIPPED — never guessed at, never touched.
|
|
36
|
-
*/
|
|
37
|
-
bucket: string;
|
|
38
|
-
/**
|
|
39
|
-
* Restrict the sweep to these tables; defaults to every table currently
|
|
40
|
-
* in `conn.namespace` (`conn` already carries the namespace scope, so
|
|
41
|
-
* there's no separate `namespace` field here).
|
|
42
|
-
*/
|
|
43
|
-
tables?: readonly string[];
|
|
44
|
-
/** Only delete objects older than this many hours. Default 48. */
|
|
45
|
-
graceHours?: number;
|
|
46
|
-
/** Hard cap on deletions in one run. Default 500. */
|
|
47
|
-
maxDeletes?: number;
|
|
48
|
-
/** Compute the delete set but never call `s3.delete`. Default false. */
|
|
49
|
-
dryRun?: boolean;
|
|
50
|
-
/** Injectable clock (ms epoch). Defaults to `Date.now`. */
|
|
51
|
-
now?: () => number;
|
|
52
|
-
/** Maximum catalog/object-store reads held in flight. Default 4, max 32. */
|
|
53
|
-
ioConcurrency?: number;
|
|
54
|
-
}
|
|
55
|
-
interface SweepUncommittedOrphansResult {
|
|
56
|
-
/** Tables whose retained snapshots were successfully walked. */
|
|
57
|
-
scannedTables: string[];
|
|
58
|
-
/** Tables skipped because their `location` didn't resolve into `bucket` — never scanned, never touched. */
|
|
59
|
-
skippedTables: string[];
|
|
60
|
-
/** Count of live (referenced-by-some-retained-snapshot) files found across `scannedTables`. */
|
|
61
|
-
liveFileCount: number;
|
|
62
|
-
/** Objects under a scanned table's data prefix with no snapshot reference anywhere, past `graceHours`. */
|
|
63
|
-
candidateCount: number;
|
|
64
|
-
/** Keys deleted (or, under `dryRun`, that WOULD be deleted). */
|
|
65
|
-
deleted: string[];
|
|
66
|
-
dryRun: boolean;
|
|
67
|
-
/** True when `candidateCount` exceeded `maxDeletes` — remaining orphans are left for the next run. */
|
|
68
|
-
cappedAtLimit: boolean;
|
|
69
|
-
/** Set when the sweep did nothing because the table scope listed zero tables (fail-closed — see class docs). */
|
|
70
|
-
reason?: 'zero-tables';
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Sweep data files written under a table's `data/` prefix that were NEVER
|
|
74
|
-
* referenced by any snapshot the catalog still retains — a crashed/partial
|
|
75
|
-
* writer's leftovers. This is the one orphan class Cloudflare's own R2 Data
|
|
76
|
-
* Catalog snapshot-expiration GC does not cover.
|
|
77
|
-
*
|
|
78
|
-
* HARD SAFETY:
|
|
79
|
-
* - A listing failure (table load / manifest walk throwing) PROPAGATES.
|
|
80
|
-
* It is never caught and treated as "no live files" — that would make
|
|
81
|
-
* every real data file look orphaned. Callers must let this reject and
|
|
82
|
-
* must not proceed to delete on catch.
|
|
83
|
-
* - Zero tables in scope is treated as "couldn't determine what's live",
|
|
84
|
-
* not "nothing to protect" — the sweep no-ops with `reason: 'zero-tables'`
|
|
85
|
-
* rather than listing/deleting anything.
|
|
86
|
-
* - Deletions are capped at `maxDeletes` per run (default 500).
|
|
87
|
-
* - `dryRun` computes the exact candidate set without ever calling `s3.delete`.
|
|
88
|
-
* - Only ever lists/deletes keys under a scanned table's own
|
|
89
|
-
* `<table.location>/data/` prefix, and every candidate is re-checked to
|
|
90
|
-
* actually start with that prefix before being considered for deletion —
|
|
91
|
-
* never a bare bucket-root listing, never a key outside a data prefix.
|
|
92
|
-
*/
|
|
93
|
-
declare function sweepUncommittedOrphans(opts: SweepUncommittedOrphansOptions): Promise<SweepUncommittedOrphansResult>;
|
|
1
|
+
import { isCommitRateLimited } from "./catalog.mjs";
|
|
2
|
+
import { SweepListPage, SweepListedObject, SweepStorageClient, SweepUncommittedOrphansOptions, SweepUncommittedOrphansResult, sweepUncommittedOrphans } from "./orphan-sweep.mjs";
|
|
94
3
|
export { type SweepListPage, type SweepListedObject, type SweepStorageClient, type SweepUncommittedOrphansOptions, type SweepUncommittedOrphansResult, isCommitRateLimited, sweepUncommittedOrphans };
|