@gscdump/engine 1.3.2 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (366) hide show
  1. package/dist/adapters/duckdb-node.d.mts +7 -0
  2. package/dist/adapters/duckdb-node.mjs +94 -0
  3. package/dist/adapters/filesystem.d.mts +1 -1
  4. package/dist/adapters/filesystem.mjs +1 -1
  5. package/dist/adapters/hyparquet.d.mts +4 -3
  6. package/dist/adapters/hyparquet.mjs +7 -3
  7. package/dist/adapters/node-harness.d.mts +38 -0
  8. package/dist/adapters/node-harness.mjs +47 -0
  9. package/dist/adapters/node.d.mts +4 -100
  10. package/dist/adapters/node.mjs +4 -240
  11. package/dist/adapters/parquet-attach.d.mts +23 -0
  12. package/dist/adapters/parquet-attach.mjs +21 -0
  13. package/dist/adapters/r2-manifest.d.mts +82 -0
  14. package/dist/adapters/r2-manifest.mjs +364 -0
  15. package/dist/adapters/r2.d.mts +1 -1
  16. package/dist/adapters/read-optional.mjs +15 -0
  17. package/dist/adapters/snapshot-attach.d.mts +38 -0
  18. package/dist/adapters/snapshot-attach.mjs +85 -0
  19. package/dist/analysis-types.d.mts +56 -1
  20. package/dist/analyzer/define.d.mts +48 -0
  21. package/dist/analyzer/define.mjs +60 -0
  22. package/dist/analyzer/dispatch.d.mts +17 -0
  23. package/dist/analyzer/index.d.mts +4 -14
  24. package/dist/analyzer/index.mjs +4 -112
  25. package/dist/analyzer/registry.d.mts +33 -0
  26. package/dist/analyzer/registry.mjs +49 -0
  27. package/dist/analyzer/types.d.mts +95 -0
  28. package/dist/analyzer/types.mjs +5 -0
  29. package/dist/coerce.d.mts +4 -0
  30. package/dist/compaction.d.mts +14 -0
  31. package/dist/{_chunks/parquet-plan.mjs → compaction.mjs} +2 -138
  32. package/dist/contracts.d.mts +1 -2
  33. package/dist/{_chunks/schema.d.mts → drizzle-schema.d.mts} +22 -54
  34. package/dist/{_chunks/schema.mjs → drizzle-schema.mjs} +2 -78
  35. package/dist/{_chunks/snapshot.d.mts → duckdb.d.mts} +1 -14
  36. package/dist/duckdb.mjs +207 -0
  37. package/dist/engine.d.mts +4 -0
  38. package/dist/engine.mjs +385 -0
  39. package/dist/entities.d.mts +3 -52
  40. package/dist/entities.mjs +867 -2
  41. package/dist/errors.d.mts +114 -1
  42. package/dist/gc.mjs +92 -0
  43. package/dist/iceberg/append-sink.d.mts +14 -0
  44. package/dist/iceberg/append-sink.mjs +142 -0
  45. package/dist/iceberg/catalog.d.mts +71 -0
  46. package/dist/iceberg/catalog.mjs +109 -0
  47. package/dist/iceberg/index.d.mts +4 -13
  48. package/dist/iceberg/index.mjs +3 -244
  49. package/dist/iceberg/overwrite-writer.d.mts +161 -0
  50. package/dist/iceberg/overwrite-writer.mjs +102 -0
  51. package/dist/iceberg/pyiceberg-runtime.mjs +34 -0
  52. package/dist/iceberg/schema.d.mts +69 -0
  53. package/dist/{_chunks/schema2.mjs → iceberg/schema.mjs} +3 -2
  54. package/dist/index.d.mts +14 -190
  55. package/dist/index.mjs +10 -645
  56. package/dist/ingest-accumulator.d.mts +1 -1
  57. package/dist/ingest.d.mts +1 -1
  58. package/dist/layout.d.mts +31 -0
  59. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.bitreader.mjs +88 -0
  60. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.blocks.mjs +120 -0
  61. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.context.mjs +1805 -0
  62. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.contextmap.mjs +49 -0
  63. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.dictionary.mjs +984 -0
  64. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.huffman.mjs +266 -0
  65. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.mjs +340 -0
  66. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.prefix.mjs +109 -0
  67. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.streams.mjs +21 -0
  68. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.transform.mjs +190 -0
  69. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/compressors.mjs +7 -0
  70. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/gzip.huffman.mjs +121 -0
  71. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/gzip.mjs +176 -0
  72. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/index.mjs +7 -0
  73. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/lz4.mjs +52 -0
  74. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/bloom.mjs +93 -0
  75. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/bytewriter.mjs +91 -0
  76. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/column.mjs +186 -0
  77. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/datapage.mjs +113 -0
  78. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/delta.mjs +111 -0
  79. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/dictionary.mjs +99 -0
  80. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/dremel.mjs +116 -0
  81. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/encoding.mjs +51 -0
  82. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/geospatial.mjs +84 -0
  83. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/index.mjs +7 -0
  84. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/indexes.mjs +31 -0
  85. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/metadata.mjs +138 -0
  86. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/node.mjs +8 -0
  87. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/parquet-writer.mjs +139 -0
  88. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/plain.mjs +68 -0
  89. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/schema.mjs +254 -0
  90. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/snappy.mjs +125 -0
  91. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/splitstream.mjs +38 -0
  92. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/thrift.mjs +79 -0
  93. package/dist/{_chunks/libs/hyparquet-writer.d.mts → node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/types.d.mts} +2 -2
  94. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/unconvert.mjs +247 -0
  95. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/variant.mjs +321 -0
  96. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/wkb.mjs +79 -0
  97. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/write-rows.mjs +122 -0
  98. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/write.mjs +5 -0
  99. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/types/bytewriter.d.mts +1 -0
  100. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/types/index.d.mts +10 -0
  101. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/types/node.d.mts +3 -0
  102. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/types/parquet-writer.d.mts +2 -0
  103. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/types/schema.d.mts +2 -0
  104. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/types/wkb.d.mts +1 -0
  105. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/types/write-rows.d.mts +1 -0
  106. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/types/write.d.mts +1 -0
  107. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/assemble.mjs +3 -0
  108. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/bloom.mjs +69 -0
  109. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/column.mjs +8 -0
  110. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/constants.mjs +80 -0
  111. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/convert.mjs +3 -0
  112. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/datapage.mjs +6 -0
  113. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/delta.mjs +2 -0
  114. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/encoding.mjs +2 -0
  115. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/filter.mjs +3 -0
  116. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/geoparquet.mjs +1 -0
  117. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/index.mjs +7 -0
  118. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/indexes.mjs +5 -0
  119. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/metadata.mjs +7 -0
  120. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/node.mjs +3 -0
  121. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/plain.mjs +1 -0
  122. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/plan.mjs +5 -0
  123. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/query.mjs +3 -0
  124. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/read.mjs +6 -0
  125. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/rowgroup.mjs +7 -0
  126. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/schema.mjs +54 -0
  127. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/snappy.mjs +1 -0
  128. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/thrift.mjs +1 -0
  129. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/types.d.mts +1 -0
  130. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/utils.mjs +19 -0
  131. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/variant.mjs +3 -0
  132. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/wkb.mjs +1 -0
  133. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/xxhash.mjs +68 -0
  134. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/index.d.mts +7 -0
  135. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/indexes.d.mts +1 -0
  136. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/metadata.d.mts +1 -0
  137. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/node.d.mts +2 -0
  138. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/query.d.mts +1 -0
  139. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/read.d.mts +1 -0
  140. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/snappy.d.mts +1 -0
  141. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/utils.d.mts +1 -0
  142. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/assemble.mjs +144 -0
  143. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/bloom.mjs +124 -0
  144. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/column.mjs +127 -0
  145. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/constants.mjs +75 -0
  146. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/convert.mjs +118 -0
  147. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/datapage.mjs +144 -0
  148. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/delta.mjs +65 -0
  149. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/encoding.mjs +76 -0
  150. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/filter.mjs +98 -0
  151. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/geoparquet.mjs +24 -0
  152. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/index.mjs +7 -0
  153. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/indexes.mjs +16 -0
  154. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/metadata.mjs +235 -0
  155. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/node.mjs +7 -0
  156. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/plain.mjs +78 -0
  157. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/plan.mjs +147 -0
  158. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/query.mjs +3 -0
  159. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/read.mjs +106 -0
  160. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/rowgroup.mjs +154 -0
  161. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/schema.mjs +75 -0
  162. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/snappy.mjs +70 -0
  163. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/thrift.mjs +86 -0
  164. package/dist/{_chunks/libs/hyparquet.d.mts → node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/types.d.mts} +6 -8
  165. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/utils.mjs +31 -0
  166. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/variant.mjs +225 -0
  167. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/wkb.mjs +94 -0
  168. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/xxhash.mjs +68 -0
  169. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/index.d.mts +10 -0
  170. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/indexes.d.mts +1 -0
  171. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/metadata.d.mts +1 -0
  172. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/node.d.mts +3 -0
  173. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/query.d.mts +1 -0
  174. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/read.d.mts +1 -0
  175. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/snappy.d.mts +1 -0
  176. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/utils.d.mts +1 -0
  177. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/avro/avro.metadata.mjs +1 -0
  178. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/avro/avro.read.mjs +4 -0
  179. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/avro/avro.write.mjs +2 -0
  180. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/catalog/file.mjs +1 -0
  181. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/catalog/loadTable.mjs +3 -0
  182. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/catalog/rest.mjs +73 -0
  183. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/create.mjs +67 -0
  184. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/delete.mjs +2 -0
  185. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/fetch.mjs +8 -0
  186. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/index.mjs +13 -0
  187. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/json.mjs +147 -0
  188. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/manifest.mjs +2 -0
  189. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/metadata.mjs +3 -0
  190. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/prune.mjs +4 -0
  191. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/puffin/deletion-vector.mjs +2 -0
  192. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/puffin/puffin.mjs +2 -0
  193. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/puffin/roaring.mjs +1 -0
  194. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/read.mjs +9 -0
  195. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/s3.mjs +3 -0
  196. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/schema.mjs +76 -0
  197. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/sigv4.mjs +2 -0
  198. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/sql/icebergDataSource.mjs +8 -0
  199. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/sql/icebergQuery.mjs +5 -0
  200. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/sql/whereFilter.mjs +1 -0
  201. package/dist/{_chunks/libs/icebird.d.mts → node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/types.d.mts} +5 -33
  202. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/utils.mjs +8 -0
  203. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/commit.mjs +5 -0
  204. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/conversions.mjs +19 -0
  205. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/delete-file.mjs +3 -0
  206. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/geospatial.mjs +1 -0
  207. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/manifest-list.mjs +2 -0
  208. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/manifest.mjs +3 -0
  209. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/parquet.mjs +5 -0
  210. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/partition.mjs +75 -0
  211. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/rewrite.mjs +10 -0
  212. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/serde.mjs +2 -0
  213. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/snapshot.mjs +5 -0
  214. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/sort.mjs +3 -0
  215. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/stage-deletion-vector.mjs +11 -0
  216. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/stage-position-delete.mjs +8 -0
  217. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/stage.mjs +10 -0
  218. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/stats.mjs +4 -0
  219. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/transform.mjs +60 -0
  220. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/write.mjs +45 -0
  221. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/catalog/file.d.mts +1 -0
  222. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/catalog/rest.d.mts +1 -0
  223. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/create.d.mts +1 -0
  224. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/fetch.d.mts +1 -0
  225. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/index.d.mts +13 -0
  226. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/manifest.d.mts +1 -0
  227. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/metadata.d.mts +1 -0
  228. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/read.d.mts +2 -0
  229. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/s3.d.mts +1 -0
  230. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/sql/icebergDataSource.d.mts +2 -0
  231. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/sql/icebergQuery.d.mts +2 -0
  232. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/write/write.d.mts +32 -0
  233. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/ast.d.mts +1 -0
  234. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/backend/dataSource.mjs +1 -0
  235. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/accumulator.mjs +2 -0
  236. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/aggregates.mjs +10 -0
  237. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/execute.mjs +15 -0
  238. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/join.mjs +5 -0
  239. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/scanColumn.mjs +1 -0
  240. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/sort.mjs +5 -0
  241. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/streamingAggregate.mjs +9 -0
  242. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/utils.mjs +1 -0
  243. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/window.mjs +5 -0
  244. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/yield.mjs +17 -0
  245. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/expression/alias.mjs +1 -0
  246. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/expression/binary.mjs +1 -0
  247. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/expression/date.mjs +1 -0
  248. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/expression/evaluate.mjs +15 -0
  249. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/expression/math.mjs +1 -0
  250. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/expression/regexp.mjs +2 -0
  251. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/expression/strings.mjs +3 -0
  252. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/index.d.mts +1 -0
  253. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/index.mjs +9 -0
  254. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/expression.mjs +6 -0
  255. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/extractTables.mjs +1 -0
  256. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/functions.mjs +5 -0
  257. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/joins.mjs +7 -0
  258. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/parse.mjs +10 -0
  259. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/primary.mjs +8 -0
  260. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/state.mjs +2 -0
  261. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/tokenize.mjs +3 -0
  262. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/types.d.mts +1 -0
  263. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/plan/columns.mjs +3 -0
  264. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/plan/plan.mjs +7 -0
  265. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/plan/types.d.mts +1 -0
  266. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/bbox.mjs +2 -0
  267. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/equality.mjs +2 -0
  268. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/operations.mjs +5 -0
  269. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/pointRelations.mjs +2 -0
  270. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/primitives.mjs +2 -0
  271. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/segments.mjs +2 -0
  272. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/spatial.mjs +6 -0
  273. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/wkt.mjs +1 -0
  274. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/types.d.mts +3 -0
  275. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/validation/aggregates.mjs +3 -0
  276. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/validation/executionErrors.mjs +2 -0
  277. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/validation/functions.mjs +2 -0
  278. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/validation/keywords.mjs +1 -0
  279. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/validation/parseErrors.mjs +2 -0
  280. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/validation/tables.mjs +2 -0
  281. package/dist/parquet-plan.d.mts +15 -0
  282. package/dist/parquet-plan.mjs +139 -0
  283. package/dist/parquet-pushdown.mjs +58 -0
  284. package/dist/period/index.d.mts +52 -1
  285. package/dist/planner.d.mts +2 -14
  286. package/dist/planner.mjs +2 -1
  287. package/dist/profile.d.mts +21 -0
  288. package/dist/profile.mjs +27 -0
  289. package/dist/query-dim.d.mts +54 -0
  290. package/dist/query-dim.mjs +91 -0
  291. package/dist/report/define.d.mts +8 -0
  292. package/dist/report/define.mjs +15 -0
  293. package/dist/report/hash.d.mts +13 -0
  294. package/dist/report/hash.mjs +29 -0
  295. package/dist/report/index.d.mts +4 -170
  296. package/dist/report/index.mjs +3 -55
  297. package/dist/report/registry.d.mts +18 -0
  298. package/dist/report/registry.mjs +14 -0
  299. package/dist/report/types.d.mts +139 -0
  300. package/dist/resolver/adapter.d.mts +13 -0
  301. package/dist/resolver/adapter.mjs +27 -0
  302. package/dist/resolver/canonical-source.d.mts +5 -0
  303. package/dist/resolver/canonical-source.mjs +14 -0
  304. package/dist/resolver/compile.d.mts +15 -0
  305. package/dist/resolver/compile.mjs +396 -0
  306. package/dist/resolver/datasets.d.mts +16 -0
  307. package/dist/resolver/datasets.mjs +159 -0
  308. package/dist/resolver/extras-overlay.d.mts +37 -0
  309. package/dist/resolver/extras-overlay.mjs +17 -0
  310. package/dist/resolver/filter-utils.d.mts +10 -0
  311. package/dist/resolver/filter-utils.mjs +59 -0
  312. package/dist/resolver/fragments.d.mts +60 -0
  313. package/dist/resolver/fragments.mjs +206 -0
  314. package/dist/resolver/index.d.mts +11 -371
  315. package/dist/resolver/index.mjs +10 -1
  316. package/dist/resolver/pg-adapter.d.mts +56 -0
  317. package/dist/resolver/pg-adapter.mjs +110 -0
  318. package/dist/resolver/run-query.d.mts +172 -0
  319. package/dist/resolver/run-query.mjs +241 -0
  320. package/dist/resolver/schema-drift.d.mts +15 -0
  321. package/dist/resolver/schema-drift.mjs +12 -0
  322. package/dist/rollups.d.mts +4 -4
  323. package/dist/rollups.mjs +3 -2
  324. package/dist/schedule.mjs +100 -0
  325. package/dist/schema.d.mts +34 -1
  326. package/dist/schema.mjs +78 -1
  327. package/dist/sink-node.d.mts +1 -159
  328. package/dist/sink-node.mjs +1 -133
  329. package/dist/sink.d.mts +125 -0
  330. package/dist/sinks/in-memory-sink.d.mts +25 -0
  331. package/dist/sinks/in-memory-sink.mjs +61 -0
  332. package/dist/sinks/index.d.mts +2 -0
  333. package/dist/sinks/index.mjs +2 -0
  334. package/dist/snapshot.d.mts +14 -0
  335. package/dist/source/attached-table.d.mts +45 -0
  336. package/dist/source/attached-table.mjs +55 -0
  337. package/dist/source/create-sql-query-source.d.mts +24 -0
  338. package/dist/source/create-sql-query-source.mjs +28 -0
  339. package/dist/source/index.d.mts +6 -66
  340. package/dist/source/index.mjs +9 -82
  341. package/dist/source/source-types.d.mts +49 -0
  342. package/dist/{_chunks/storage.d.mts → storage.d.mts} +4 -14
  343. package/dist/sync-config.d.mts +36 -0
  344. package/dist/sync-config.mjs +98 -0
  345. package/dist/vendor/hysnappy-purejs.mjs +12 -1
  346. package/package.json +4 -4
  347. package/dist/_chunks/analysis-types.d.mts +0 -57
  348. package/dist/_chunks/contracts.d.mts +0 -1
  349. package/dist/_chunks/engine.mjs +0 -731
  350. package/dist/_chunks/entities.mjs +0 -967
  351. package/dist/_chunks/errors.d.mts +0 -115
  352. package/dist/_chunks/index.d.mts +0 -53
  353. package/dist/_chunks/libs/hyparquet-compressors.mjs +0 -2796
  354. package/dist/_chunks/libs/hyparquet-writer.mjs +0 -2524
  355. package/dist/_chunks/libs/hyparquet.mjs +0 -2596
  356. package/dist/_chunks/libs/icebird.mjs +0 -564
  357. package/dist/_chunks/registry.d.mts +0 -213
  358. package/dist/_chunks/resolver.mjs +0 -1220
  359. package/dist/_chunks/sink.d.mts +0 -257
  360. /package/dist/{_chunks → analyzer}/dispatch.mjs +0 -0
  361. /package/dist/{_chunks/coerce.mjs → coerce.mjs} +0 -0
  362. /package/dist/{_chunks/layout.mjs → layout.mjs} +0 -0
  363. /package/dist/{_chunks/manifest-store-utils.mjs → manifest-store-utils.mjs} +0 -0
  364. /package/dist/{_chunks/libs/fzstd.mjs → node_modules/.pnpm/fzstd@0.1.1/node_modules/fzstd/esm/index.mjs} +0 -0
  365. /package/dist/{_chunks → resolver}/types.d.mts +0 -0
  366. /package/dist/{_chunks/schedule.d.mts → schedule.d.mts} +0 -0
@@ -0,0 +1,247 @@
1
+ import { toJson } from "../../../../hyparquet@1.26.1/node_modules/hyparquet/src/utils.mjs";
2
+ import "../../../../hyparquet@1.26.1/node_modules/hyparquet/src/node.mjs";
3
+ import { geojsonToWkb } from "./wkb.mjs";
4
+ const dayMillis = 864e5;
5
+ function unconvert(element, values) {
6
+ const { type, converted_type: ctype, logical_type: ltype } = element;
7
+ if (ctype === "DECIMAL") {
8
+ const factor = 10 ** (element.scale || 0);
9
+ return values.map((v) => {
10
+ if (v === null || v === void 0) return v;
11
+ if (typeof v !== "number") throw new Error("DECIMAL must be a number");
12
+ return unconvertDecimal(element, BigInt(Math.round(v * factor)));
13
+ });
14
+ }
15
+ if (ctype === "DATE") return Array.from(values).map((v) => {
16
+ if (v instanceof Date) return Math.floor(v.getTime() / dayMillis);
17
+ return v;
18
+ });
19
+ if (ctype === "TIMESTAMP_MILLIS") return Array.from(values).map((v) => {
20
+ if (v === null || v === void 0) return v;
21
+ if (v instanceof Date) return BigInt(v.getTime());
22
+ return BigInt(v);
23
+ });
24
+ if (ctype === "TIMESTAMP_MICROS") return Array.from(values).map((v) => {
25
+ if (v === null || v === void 0) return v;
26
+ if (v instanceof Date) return BigInt(v.getTime() * 1e3);
27
+ return BigInt(v);
28
+ });
29
+ if (ctype === "JSON") {
30
+ if (!Array.isArray(values)) throw new Error("JSON must be an array");
31
+ const encoder = new TextEncoder();
32
+ return values.map((v) => v === void 0 ? void 0 : encoder.encode(JSON.stringify(toJson(v))));
33
+ }
34
+ if (ctype === "UTF8") {
35
+ if (!Array.isArray(values)) throw new Error("strings must be an array");
36
+ const encoder = new TextEncoder();
37
+ return values.map((v) => typeof v === "string" ? encoder.encode(v) : v);
38
+ }
39
+ if (ctype === "UINT_32" || ltype?.type === "INTEGER" && ltype.bitWidth === 32 && !ltype.isSigned) {
40
+ if (values instanceof Uint32Array) return values;
41
+ if (values instanceof Int32Array) return new Uint32Array(values.buffer, values.byteOffset, values.length);
42
+ return Array.from(values).map((v) => {
43
+ if (v === null || v === void 0) return v;
44
+ if (!Number.isSafeInteger(v)) throw new Error("expected integer value, got " + v);
45
+ if (v < 0 || v > 4294967295) throw new Error("expected uint32 value, got " + v);
46
+ if (v > 2147483647) return v - 4294967296;
47
+ return v;
48
+ });
49
+ }
50
+ if (ltype?.type === "FLOAT16") {
51
+ if (type !== "FIXED_LEN_BYTE_ARRAY") throw new Error("FLOAT16 must be FIXED_LEN_BYTE_ARRAY type");
52
+ if (element.type_length !== 2) throw new Error("FLOAT16 expected type_length to be 2 bytes");
53
+ return Array.from(values).map(unconvertFloat16);
54
+ }
55
+ if (ltype?.type === "UUID") {
56
+ if (!Array.isArray(values)) throw new Error("UUID must be an array");
57
+ if (type !== "FIXED_LEN_BYTE_ARRAY") throw new Error("UUID must be FIXED_LEN_BYTE_ARRAY type");
58
+ if (element.type_length !== 16) throw new Error("UUID expected type_length to be 16 bytes");
59
+ return values.map(unconvertUuid);
60
+ }
61
+ if (ltype?.type === "TIMESTAMP") return Array.from(values).map((v) => {
62
+ if (v === null || v === void 0) return v;
63
+ if (v instanceof Date) {
64
+ const millis = BigInt(v.getTime());
65
+ if (ltype.unit === "NANOS") return millis * 1000000n;
66
+ if (ltype.unit === "MICROS") return millis * 1000n;
67
+ return millis;
68
+ }
69
+ return BigInt(v);
70
+ });
71
+ if (ltype?.type === "GEOMETRY" || ltype?.type === "GEOGRAPHY") {
72
+ if (!Array.isArray(values)) throw new Error("geometry must be an array");
73
+ return values.map((v) => {
74
+ if (v === null || v === void 0) return v;
75
+ return geojsonToWkb(v);
76
+ });
77
+ }
78
+ return values;
79
+ }
80
+ function unconvertUuid(value) {
81
+ if (value === void 0 || value === null) return;
82
+ if (value instanceof Uint8Array) return value;
83
+ if (typeof value === "string") {
84
+ if (!/^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$/i.test(value)) throw new Error("UUID must be a valid UUID string");
85
+ value = value.replace(/-/g, "").toLowerCase();
86
+ const bytes = /* @__PURE__ */ new Uint8Array(16);
87
+ for (let i = 0; i < 16; i++) bytes[i] = parseInt(value.slice(i * 2, i * 2 + 2), 16);
88
+ return bytes;
89
+ }
90
+ throw new Error("UUID must be a string or Uint8Array");
91
+ }
92
+ const STATS_TRUNCATE_LENGTH = 16;
93
+ function truncateStatistic(bytes, isMax) {
94
+ if (bytes.length <= STATS_TRUNCATE_LENGTH) return bytes;
95
+ let cut = STATS_TRUNCATE_LENGTH;
96
+ while (cut > 0 && (bytes[cut] & 192) === 128) cut--;
97
+ const prefix = bytes.slice(0, cut);
98
+ if (!isMax) return prefix;
99
+ const out = new Uint8Array(prefix.length + 4);
100
+ out.set(prefix, 0);
101
+ out.set([
102
+ 244,
103
+ 143,
104
+ 191,
105
+ 191
106
+ ], prefix.length);
107
+ return out;
108
+ }
109
+ function minMaxIsExact(value, element) {
110
+ if (value === void 0 || value === null) return void 0;
111
+ const { type } = element;
112
+ if (type !== "BYTE_ARRAY" && type !== "FIXED_LEN_BYTE_ARRAY") return void 0;
113
+ if (element.logical_type?.type === "UUID") return void 0;
114
+ return (value instanceof Uint8Array ? value : new TextEncoder().encode(value.toString())).length > STATS_TRUNCATE_LENGTH ? false : void 0;
115
+ }
116
+ function unconvertMinMax(value, element, isMax) {
117
+ if (value === void 0 || value === null) return void 0;
118
+ const { type, converted_type } = element;
119
+ if (type === "BOOLEAN") return new Uint8Array([value ? 1 : 0]);
120
+ if (element.logical_type?.type === "UUID" && (typeof value === "string" || value instanceof Uint8Array)) return unconvertUuid(value);
121
+ if (converted_type === "DECIMAL") {
122
+ if (typeof value !== "number") throw new Error("DECIMAL must be a number");
123
+ const factor = 10 ** (element.scale || 0);
124
+ const out = unconvertDecimal(element, BigInt(Math.round(value * factor)));
125
+ if (out instanceof Uint8Array) return out;
126
+ if (typeof out === "number") {
127
+ const buffer = /* @__PURE__ */ new ArrayBuffer(4);
128
+ new DataView(buffer).setFloat32(0, out, true);
129
+ return new Uint8Array(buffer);
130
+ }
131
+ if (typeof out === "bigint") {
132
+ const buffer = /* @__PURE__ */ new ArrayBuffer(8);
133
+ new DataView(buffer).setBigInt64(0, out, true);
134
+ return new Uint8Array(buffer);
135
+ }
136
+ }
137
+ if (type === "BYTE_ARRAY" || type === "FIXED_LEN_BYTE_ARRAY") return truncateStatistic(value instanceof Uint8Array ? value : new TextEncoder().encode(value.toString()), isMax);
138
+ if (type === "FLOAT" && typeof value === "number") {
139
+ const buffer = /* @__PURE__ */ new ArrayBuffer(4);
140
+ new DataView(buffer).setFloat32(0, value, true);
141
+ return new Uint8Array(buffer);
142
+ }
143
+ if (type === "DOUBLE" && typeof value === "number") {
144
+ const buffer = /* @__PURE__ */ new ArrayBuffer(8);
145
+ new DataView(buffer).setFloat64(0, value, true);
146
+ return new Uint8Array(buffer);
147
+ }
148
+ if (type === "INT32" && typeof value === "number") {
149
+ const buffer = /* @__PURE__ */ new ArrayBuffer(4);
150
+ new DataView(buffer).setInt32(0, value, true);
151
+ return new Uint8Array(buffer);
152
+ }
153
+ if (type === "INT64" && typeof value === "bigint") {
154
+ const buffer = /* @__PURE__ */ new ArrayBuffer(8);
155
+ new DataView(buffer).setBigInt64(0, value, true);
156
+ return new Uint8Array(buffer);
157
+ }
158
+ if (type === "INT32" && converted_type === "DATE" && value instanceof Date) {
159
+ const buffer = /* @__PURE__ */ new ArrayBuffer(4);
160
+ new DataView(buffer).setInt32(0, Math.floor(value.getTime() / dayMillis), true);
161
+ return new Uint8Array(buffer);
162
+ }
163
+ if (type === "INT64" && converted_type === "TIMESTAMP_MILLIS" && value instanceof Date) {
164
+ const buffer = /* @__PURE__ */ new ArrayBuffer(8);
165
+ new DataView(buffer).setBigInt64(0, BigInt(value.getTime()), true);
166
+ return new Uint8Array(buffer);
167
+ }
168
+ if (type === "INT64" && converted_type === "TIMESTAMP_MICROS" && value instanceof Date) {
169
+ const buffer = /* @__PURE__ */ new ArrayBuffer(8);
170
+ new DataView(buffer).setBigInt64(0, BigInt(value.getTime() * 1e3), true);
171
+ return new Uint8Array(buffer);
172
+ }
173
+ if (type === "INT64" && element.logical_type?.type === "TIMESTAMP" && value instanceof Date) {
174
+ const millis = BigInt(value.getTime());
175
+ const { unit } = element.logical_type;
176
+ let bigintValue = millis;
177
+ if (unit === "NANOS") bigintValue = millis * 1000000n;
178
+ else if (unit === "MICROS") bigintValue = millis * 1000n;
179
+ const buffer = /* @__PURE__ */ new ArrayBuffer(8);
180
+ new DataView(buffer).setBigInt64(0, bigintValue, true);
181
+ return new Uint8Array(buffer);
182
+ }
183
+ throw new Error(`unsupported type for statistics: ${type} with value ${value}`);
184
+ }
185
+ function unconvertStatistics(stats, element) {
186
+ return {
187
+ field_1: unconvertMinMax(stats.max, element, true),
188
+ field_2: unconvertMinMax(stats.min, element, false),
189
+ field_3: stats.null_count,
190
+ field_4: stats.distinct_count,
191
+ field_5: unconvertMinMax(stats.max_value, element, true),
192
+ field_6: unconvertMinMax(stats.min_value, element, false),
193
+ field_7: stats.is_max_value_exact ?? minMaxIsExact(stats.max_value ?? stats.max, element),
194
+ field_8: stats.is_min_value_exact ?? minMaxIsExact(stats.min_value ?? stats.min, element)
195
+ };
196
+ }
197
+ function unconvertDecimal({ type, type_length }, value) {
198
+ if (type === "INT32") return Number(value);
199
+ if (type === "INT64") return value;
200
+ if (type === "FIXED_LEN_BYTE_ARRAY" && !type_length) throw new Error("fixed length byte array type_length is required");
201
+ if (!type_length && !value) return /* @__PURE__ */ new Uint8Array();
202
+ const bytes = [];
203
+ while (true) {
204
+ const byte = Number(value & 255n);
205
+ bytes.unshift(byte);
206
+ value >>= 8n;
207
+ if (type_length) {
208
+ if (bytes.length >= type_length) break;
209
+ } else {
210
+ const sign = byte & 128;
211
+ if (!sign && value === 0n || sign && value === -1n) break;
212
+ }
213
+ }
214
+ return new Uint8Array(bytes);
215
+ }
216
+ function unconvertFloat16(value) {
217
+ if (value === void 0 || value === null) return;
218
+ if (typeof value !== "number") throw new Error("parquet float16 expected number value");
219
+ if (Number.isNaN(value)) return new Uint8Array([0, 126]);
220
+ const sign = value < 0 || Object.is(value, -0) ? 1 : 0;
221
+ const abs = Math.abs(value);
222
+ if (!isFinite(abs)) return new Uint8Array([0, sign << 7 | 124]);
223
+ if (abs === 0) return new Uint8Array([0, sign << 7]);
224
+ const buf = /* @__PURE__ */ new ArrayBuffer(4);
225
+ new Float32Array(buf)[0] = abs;
226
+ const bits32 = new Uint32Array(buf)[0];
227
+ let exp32 = bits32 >>> 23 & 255;
228
+ let mant32 = bits32 & 8388607;
229
+ exp32 -= 127;
230
+ if (exp32 < -14) {
231
+ const shift = -14 - exp32;
232
+ mant32 = (mant32 | 8388608) >> shift + 13;
233
+ if (mant32 & 1) mant32 += 1;
234
+ const bits16 = sign << 15 | mant32;
235
+ return new Uint8Array([bits16 & 255, bits16 >> 8]);
236
+ }
237
+ if (exp32 > 15) return new Uint8Array([0, sign << 7 | 124]);
238
+ let exp16 = exp32 + 15;
239
+ mant32 = mant32 + 4096;
240
+ if (mant32 & 8388608) {
241
+ mant32 = 0;
242
+ if (++exp16 === 31) return new Uint8Array([0, sign << 7 | 124]);
243
+ }
244
+ const bits16 = sign << 15 | exp16 << 10 | mant32 >> 13;
245
+ return new Uint8Array([bits16 & 255, bits16 >> 8]);
246
+ }
247
+ export { unconvert, unconvertDecimal, unconvertFloat16, unconvertMinMax, unconvertStatistics };
@@ -0,0 +1,321 @@
1
+ import { ByteWriter } from "./bytewriter.mjs";
2
+ const encoder = new TextEncoder();
3
+ const INT64_MIN = -(2n ** 63n);
4
+ const INT64_MAX = 2n ** 63n - 1n;
5
+ const VARIANT_NULL = new Uint8Array([0]);
6
+ const RESERVED_SHREDDING_FIELDS = /* @__PURE__ */ new Set(["value", "typed_value"]);
7
+ const EMPTY_KEY_INDEX = /* @__PURE__ */ new Map();
8
+ const EMPTY_METADATA = writeVariantMetadata([]);
9
+ function encodeVariantColumn(values, shredding, column) {
10
+ if (column?.required) {
11
+ for (let i = 0; i < values.length; i++) if (values[i] === void 0) throw new Error(`required variant column ${column.name} has undefined value at index ${i}`);
12
+ }
13
+ const shreddingConfig = shredding && normalizeShreddingConfig(shredding);
14
+ if (shreddingConfig) {
15
+ const metadataCache = /* @__PURE__ */ new Map();
16
+ return values.map((value) => {
17
+ if (value === void 0) return null;
18
+ const keys = /* @__PURE__ */ new Set();
19
+ collectKeys(value, keys);
20
+ const { metadata, keyIndex } = getVariantRowMetadata(keys, metadataCache);
21
+ return {
22
+ metadata,
23
+ ...encodeShredded(value, shreddingConfig, keyIndex, true)
24
+ };
25
+ });
26
+ }
27
+ const dictionary = buildVariantDictionary(values);
28
+ const metadata = writeVariantMetadata(dictionary);
29
+ const keyIndex = /* @__PURE__ */ new Map();
30
+ for (let i = 0; i < dictionary.length; i++) keyIndex.set(dictionary[i], i);
31
+ return values.map((value) => {
32
+ if (value === void 0) return null;
33
+ return {
34
+ metadata,
35
+ value: writeVariantValue(value, keyIndex)
36
+ };
37
+ });
38
+ }
39
+ function encodeShredded(value, shredType, keyIndex, allowPartialObjects) {
40
+ if (value === null || value === void 0) return {
41
+ value: VARIANT_NULL,
42
+ typed_value: null
43
+ };
44
+ if (Array.isArray(shredType)) {
45
+ if (!Array.isArray(value)) return {
46
+ value: writeVariantValue(value, keyIndex),
47
+ typed_value: null
48
+ };
49
+ const elemShred = shredType[0];
50
+ return {
51
+ value: null,
52
+ typed_value: value.map((el) => encodeShredded(el, elemShred, keyIndex, false))
53
+ };
54
+ }
55
+ if (typeof shredType === "object") {
56
+ if (typeof value !== "object" || Array.isArray(value) || value instanceof Date || value instanceof Uint8Array) return {
57
+ value: writeVariantValue(value, keyIndex),
58
+ typed_value: null
59
+ };
60
+ const remaining = {};
61
+ let hasRemaining = false;
62
+ for (const k of Object.keys(value)) {
63
+ if (k in shredType || value[k] === void 0) continue;
64
+ remaining[k] = value[k];
65
+ hasRemaining = true;
66
+ }
67
+ if (hasRemaining && !allowPartialObjects) return {
68
+ value: writeVariantValue(value, keyIndex),
69
+ typed_value: null
70
+ };
71
+ const fieldNames = Object.keys(shredType);
72
+ if (fieldNames.some((fieldName) => (!Object.prototype.hasOwnProperty.call(value, fieldName) || value[fieldName] === void 0) && keyIndex.has(fieldName))) return {
73
+ value: writeVariantValue(value, keyIndex),
74
+ typed_value: null
75
+ };
76
+ const typedValue = {};
77
+ for (const fieldName of fieldNames) {
78
+ if (!Object.prototype.hasOwnProperty.call(value, fieldName) || value[fieldName] === void 0) continue;
79
+ typedValue[fieldName] = encodeShredded(value[fieldName], shredType[fieldName], keyIndex, false);
80
+ }
81
+ return {
82
+ value: hasRemaining ? writeVariantValue(remaining, keyIndex) : null,
83
+ typed_value: typedValue
84
+ };
85
+ }
86
+ if (matchesType(value, shredType)) return {
87
+ value: null,
88
+ typed_value: value
89
+ };
90
+ return {
91
+ value: writeVariantValue(value, keyIndex),
92
+ typed_value: null
93
+ };
94
+ }
95
+ function getVariantRowMetadata(keys, metadataCache) {
96
+ if (keys.size === 0) return {
97
+ metadata: EMPTY_METADATA,
98
+ keyIndex: EMPTY_KEY_INDEX
99
+ };
100
+ const dictionary = [...keys].sort();
101
+ const cacheKey = dictionary.join("\0");
102
+ const cached = metadataCache.get(cacheKey);
103
+ if (cached) return cached;
104
+ const metadata = writeVariantMetadata(dictionary);
105
+ const keyIndex = /* @__PURE__ */ new Map();
106
+ for (let i = 0; i < dictionary.length; i++) keyIndex.set(dictionary[i], i);
107
+ const rowMetadata = {
108
+ metadata,
109
+ keyIndex
110
+ };
111
+ metadataCache.set(cacheKey, rowMetadata);
112
+ return rowMetadata;
113
+ }
114
+ function matchesType(value, type) {
115
+ if (value === null || value === void 0) return false;
116
+ switch (type) {
117
+ case "BOOLEAN": return typeof value === "boolean";
118
+ case "INT32": return typeof value === "number" && Number.isInteger(value) && value >= -2147483648 && value <= 2147483647;
119
+ case "INT64": return typeof value === "bigint" && value >= INT64_MIN && value <= INT64_MAX;
120
+ case "FLOAT": return typeof value === "number";
121
+ case "DOUBLE": return typeof value === "number";
122
+ case "STRING": return typeof value === "string";
123
+ case "TIMESTAMP": return value instanceof Date;
124
+ default: return false;
125
+ }
126
+ }
127
+ function normalizeShreddingConfig(shredding) {
128
+ if (Array.isArray(shredding)) {
129
+ const elem = shredding.length ? normalizeShreddingConfig(shredding[0]) : void 0;
130
+ return elem === void 0 ? void 0 : [elem];
131
+ }
132
+ if (typeof shredding === "object") {
133
+ const normalized = {};
134
+ for (const [key, type] of Object.entries(shredding)) {
135
+ if (RESERVED_SHREDDING_FIELDS.has(key)) continue;
136
+ const norm = normalizeShreddingConfig(type);
137
+ if (norm !== void 0) normalized[key] = norm;
138
+ }
139
+ return Object.keys(normalized).length > 0 ? normalized : void 0;
140
+ }
141
+ return shredding;
142
+ }
143
+ function buildVariantDictionary(values) {
144
+ const keys = /* @__PURE__ */ new Set();
145
+ collectKeys(values, keys);
146
+ return [...keys].sort();
147
+ }
148
+ function collectKeys(value, keys) {
149
+ if (value === null || value === void 0) return;
150
+ if (Array.isArray(value)) {
151
+ for (const item of value) collectKeys(item, keys);
152
+ return;
153
+ }
154
+ if (value instanceof Date || value instanceof Uint8Array) return;
155
+ if (typeof value === "object") for (const key of Object.keys(value)) {
156
+ keys.add(key);
157
+ collectKeys(value[key], keys);
158
+ }
159
+ }
160
+ function writeVariantMetadata(dictionary) {
161
+ const n = dictionary.length;
162
+ const encoded = new Array(n);
163
+ let totalStringBytes = 0;
164
+ for (let i = 0; i < n; i++) {
165
+ const e = encoder.encode(dictionary[i]);
166
+ encoded[i] = e;
167
+ totalStringBytes += e.length;
168
+ }
169
+ const offsetSize = byteWidth(totalStringBytes);
170
+ const header = 17 | offsetSize - 1 << 6;
171
+ const totalSize = 1 + offsetSize + (n + 1) * offsetSize + totalStringBytes;
172
+ const bytes = new Uint8Array(totalSize);
173
+ let offset = 0;
174
+ bytes[offset++] = header;
175
+ for (let j = 0; j < offsetSize; j++) bytes[offset++] = n >> j * 8 & 255;
176
+ let strOffset = 0;
177
+ for (let i = 0; i < n; i++) {
178
+ for (let j = 0; j < offsetSize; j++) bytes[offset++] = strOffset >> j * 8 & 255;
179
+ strOffset += encoded[i].length;
180
+ }
181
+ for (let j = 0; j < offsetSize; j++) bytes[offset++] = strOffset >> j * 8 & 255;
182
+ for (let i = 0; i < n; i++) {
183
+ bytes.set(encoded[i], offset);
184
+ offset += encoded[i].length;
185
+ }
186
+ return bytes;
187
+ }
188
+ function writeVariantValue(value, keyIndex) {
189
+ const writer = new ByteWriter(8);
190
+ writeValue(value, writer, keyIndex);
191
+ return writer.getBytes();
192
+ }
193
+ function writeValue(val, writer, keyIndex) {
194
+ if (val === null || val === void 0) {
195
+ writer.appendUint8(0);
196
+ return;
197
+ }
198
+ if (val === true) {
199
+ writer.appendUint8(4);
200
+ return;
201
+ }
202
+ if (val === false) {
203
+ writer.appendUint8(8);
204
+ return;
205
+ }
206
+ if (typeof val === "bigint") {
207
+ if (val < INT64_MIN || val > INT64_MAX) throw new RangeError(`variant bigint out of int64 range: ${val}`);
208
+ writer.appendUint8(24);
209
+ writer.appendInt64(val);
210
+ return;
211
+ }
212
+ if (typeof val === "number") {
213
+ if (Number.isInteger(val)) {
214
+ if (val >= -128 && val <= 127) {
215
+ writer.appendUint8(12);
216
+ writer.appendUint8(val & 255);
217
+ return;
218
+ }
219
+ if (val >= -32768 && val <= 32767) {
220
+ writer.appendUint8(16);
221
+ appendUnsignedLE(writer, val, 2);
222
+ return;
223
+ }
224
+ if (val >= -2147483648 && val <= 2147483647) {
225
+ writer.appendUint8(20);
226
+ writer.appendInt32(val);
227
+ return;
228
+ }
229
+ }
230
+ writer.appendUint8(28);
231
+ writer.appendFloat64(val);
232
+ return;
233
+ }
234
+ if (typeof val === "string") {
235
+ const strBytes = encoder.encode(val);
236
+ if (strBytes.length <= 63) {
237
+ writer.appendUint8(strBytes.length << 2 | 1);
238
+ writer.appendBytes(strBytes);
239
+ } else {
240
+ writer.appendUint8(64);
241
+ writer.appendUint32(strBytes.length);
242
+ writer.appendBytes(strBytes);
243
+ }
244
+ return;
245
+ }
246
+ if (val instanceof Date) {
247
+ writer.appendUint8(52);
248
+ writer.appendInt64(BigInt(val.getTime()) * 1000n);
249
+ return;
250
+ }
251
+ if (val instanceof Uint8Array) {
252
+ writer.appendUint8(60);
253
+ writer.appendUint32(val.length);
254
+ writer.appendBytes(val);
255
+ return;
256
+ }
257
+ if (Array.isArray(val)) {
258
+ writeVariantArray(val, writer, keyIndex);
259
+ return;
260
+ }
261
+ if (typeof val === "object") {
262
+ writeVariantObject(val, writer, keyIndex);
263
+ return;
264
+ }
265
+ throw new Error(`variant cannot encode value: ${val}`);
266
+ }
267
+ function writeVariantObject(obj, writer, keyIndex) {
268
+ const entries = Object.keys(obj).filter((key) => obj[key] !== void 0).map((key) => {
269
+ const id = keyIndex.get(key);
270
+ if (id === void 0) throw new Error(`variant key not in dictionary: ${key}`);
271
+ return {
272
+ id,
273
+ key
274
+ };
275
+ });
276
+ entries.sort((a, b) => a.id - b.id);
277
+ const numElements = entries.length;
278
+ const idWidth = byteWidth(numElements > 0 ? entries[numElements - 1].id : 0);
279
+ const scratch = new ByteWriter(8);
280
+ const offsets = new Array(numElements + 1);
281
+ offsets[0] = 0;
282
+ for (let i = 0; i < numElements; i++) {
283
+ writeValue(obj[entries[i].key], scratch, keyIndex);
284
+ offsets[i + 1] = scratch.index;
285
+ }
286
+ const offsetWidth = byteWidth(offsets[numElements]);
287
+ const isLarge = numElements > 255 ? 1 : 0;
288
+ writer.appendUint8((offsetWidth - 1 | idWidth - 1 << 2 | isLarge << 4) << 2 | 2);
289
+ if (isLarge) writer.appendUint32(numElements);
290
+ else writer.appendUint8(numElements);
291
+ for (const { id } of entries) appendUnsignedLE(writer, id, idWidth);
292
+ for (const off of offsets) appendUnsignedLE(writer, off, offsetWidth);
293
+ writer.appendBytes(scratch.getBytes());
294
+ }
295
+ function writeVariantArray(arr, writer, keyIndex) {
296
+ const numElements = arr.length;
297
+ const scratch = new ByteWriter(8);
298
+ const offsets = new Array(numElements + 1);
299
+ offsets[0] = 0;
300
+ for (let i = 0; i < numElements; i++) {
301
+ writeValue(arr[i], scratch, keyIndex);
302
+ offsets[i + 1] = scratch.index;
303
+ }
304
+ const offsetWidth = byteWidth(offsets[numElements]);
305
+ const isLarge = numElements > 255 ? 1 : 0;
306
+ writer.appendUint8((offsetWidth - 1 | isLarge << 2) << 2 | 3);
307
+ if (isLarge) writer.appendUint32(numElements);
308
+ else writer.appendUint8(numElements);
309
+ for (const off of offsets) appendUnsignedLE(writer, off, offsetWidth);
310
+ writer.appendBytes(scratch.getBytes());
311
+ }
312
+ function byteWidth(maxValue) {
313
+ if (maxValue <= 255) return 1;
314
+ if (maxValue <= 65535) return 2;
315
+ if (maxValue <= 16777215) return 3;
316
+ return 4;
317
+ }
318
+ function appendUnsignedLE(writer, value, width) {
319
+ for (let i = 0; i < width; i++) writer.appendUint8(value >> i * 8 & 255);
320
+ }
321
+ export { encodeVariantColumn, normalizeShreddingConfig };
@@ -0,0 +1,79 @@
1
+ import { ByteWriter } from "./bytewriter.mjs";
2
+ function geojsonToWkb(geometry) {
3
+ const writer = new ByteWriter();
4
+ writeGeometry(writer, geometry);
5
+ return writer.getBytes();
6
+ }
7
+ function writeGeometry(writer, geometry) {
8
+ if (typeof geometry !== "object") throw new Error("geometry values must be GeoJSON geometries");
9
+ const typeCode = geometryTypeCode(geometry.type);
10
+ const dim = inferGeometryDimensions(geometry);
11
+ let flag = 0;
12
+ if (dim === 3) flag = 1;
13
+ else if (dim === 4) flag = 3;
14
+ else if (dim > 4) throw new Error(`unsupported geometry dimensions: ${dim}`);
15
+ writer.appendUint8(1);
16
+ writer.appendUint32(typeCode + flag * 1e3);
17
+ if (geometry.type === "Point") writePosition(writer, geometry.coordinates, dim);
18
+ else if (geometry.type === "LineString") writeLine(writer, geometry.coordinates, dim);
19
+ else if (geometry.type === "Polygon") {
20
+ writer.appendUint32(geometry.coordinates.length);
21
+ for (const ring of geometry.coordinates) writeLine(writer, ring, dim);
22
+ } else if (geometry.type === "MultiPoint") {
23
+ writer.appendUint32(geometry.coordinates.length);
24
+ for (const coordinates of geometry.coordinates) writeGeometry(writer, {
25
+ type: "Point",
26
+ coordinates
27
+ });
28
+ } else if (geometry.type === "MultiLineString") {
29
+ writer.appendUint32(geometry.coordinates.length);
30
+ for (const coordinates of geometry.coordinates) writeGeometry(writer, {
31
+ type: "LineString",
32
+ coordinates
33
+ });
34
+ } else if (geometry.type === "MultiPolygon") {
35
+ writer.appendUint32(geometry.coordinates.length);
36
+ for (const coordinates of geometry.coordinates) writeGeometry(writer, {
37
+ type: "Polygon",
38
+ coordinates
39
+ });
40
+ } else if (geometry.type === "GeometryCollection") {
41
+ writer.appendUint32(geometry.geometries.length);
42
+ for (const child of geometry.geometries) writeGeometry(writer, child);
43
+ } else throw new Error("unsupported geometry type");
44
+ }
45
+ function writePosition(writer, position, dim) {
46
+ if (position.length < dim) throw new Error("geometry position dimensions mismatch");
47
+ for (let i = 0; i < dim; i++) writer.appendFloat64(position[i]);
48
+ }
49
+ function writeLine(writer, coordinates, dim) {
50
+ writer.appendUint32(coordinates.length);
51
+ for (const position of coordinates) writePosition(writer, position, dim);
52
+ }
53
+ function geometryTypeCode(type) {
54
+ if (type === "Point") return 1;
55
+ if (type === "LineString") return 2;
56
+ if (type === "Polygon") return 3;
57
+ if (type === "MultiPoint") return 4;
58
+ if (type === "MultiLineString") return 5;
59
+ if (type === "MultiPolygon") return 6;
60
+ if (type === "GeometryCollection") return 7;
61
+ throw new Error(`unknown geometry type: ${type}`);
62
+ }
63
+ function inferGeometryDimensions(geometry) {
64
+ if (geometry.type === "GeometryCollection") {
65
+ let maxDim = 0;
66
+ for (const child of geometry.geometries) maxDim = Math.max(maxDim, inferGeometryDimensions(child));
67
+ return maxDim || 2;
68
+ }
69
+ return inferCoordinateDimensions(geometry.coordinates);
70
+ }
71
+ function inferCoordinateDimensions(value) {
72
+ if (!Array.isArray(value)) return 2;
73
+ if (!value.length) return 2;
74
+ if (typeof value[0] === "number") return value.length;
75
+ let maxDim = 0;
76
+ for (const item of value) maxDim = Math.max(maxDim, inferCoordinateDimensions(item));
77
+ return maxDim || 2;
78
+ }
79
+ export { geojsonToWkb };