@nshiab/simple-data-analysis-core 1.0.0 → 2.0.0

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 (1528) hide show
  1. package/README.md +166 -14
  2. package/esm/_dnt.polyfills.d.ts +7 -0
  3. package/esm/_dnt.polyfills.d.ts.map +1 -0
  4. package/esm/_dnt.polyfills.js +1 -0
  5. package/esm/class/SDAError.d.ts +63 -0
  6. package/esm/class/SDAError.d.ts.map +1 -0
  7. package/esm/class/SDAError.js +83 -0
  8. package/esm/class/Simple.d.ts +40 -22
  9. package/esm/class/Simple.d.ts.map +1 -1
  10. package/esm/class/Simple.js +33 -20
  11. package/esm/class/SimpleDB.d.ts +268 -100
  12. package/esm/class/SimpleDB.d.ts.map +1 -1
  13. package/esm/class/SimpleDB.js +518 -284
  14. package/esm/class/SimpleTable.d.ts +1816 -940
  15. package/esm/class/SimpleTable.d.ts.map +1 -1
  16. package/esm/class/SimpleTable.js +1959 -1819
  17. package/esm/helpers/assertColumnsExist.d.ts +16 -0
  18. package/esm/helpers/assertColumnsExist.d.ts.map +1 -0
  19. package/esm/helpers/assertColumnsExist.js +21 -0
  20. package/esm/helpers/assertNewColumns.d.ts +17 -0
  21. package/esm/helpers/assertNewColumns.d.ts.map +1 -0
  22. package/esm/helpers/assertNewColumns.js +22 -0
  23. package/esm/helpers/assertSameDatabase.d.ts +11 -0
  24. package/esm/helpers/assertSameDatabase.d.ts.map +1 -0
  25. package/esm/helpers/assertSameDatabase.js +13 -0
  26. package/esm/helpers/asyncOperationContext.d.ts +19 -0
  27. package/esm/helpers/asyncOperationContext.d.ts.map +1 -0
  28. package/esm/helpers/asyncOperationContext.js +38 -0
  29. package/esm/helpers/buildFuzzyMatchSql.d.ts +9 -0
  30. package/esm/helpers/buildFuzzyMatchSql.d.ts.map +1 -0
  31. package/esm/helpers/buildFuzzyMatchSql.js +17 -0
  32. package/esm/helpers/cacheDatabase.d.ts +5 -0
  33. package/esm/helpers/cacheDatabase.d.ts.map +1 -0
  34. package/esm/helpers/cacheDatabase.js +110 -0
  35. package/esm/helpers/cacheDiagnostics.d.ts +4 -0
  36. package/esm/helpers/cacheDiagnostics.d.ts.map +1 -0
  37. package/esm/helpers/cacheDiagnostics.js +21 -0
  38. package/esm/helpers/cacheTableDependencies.d.ts +19 -0
  39. package/esm/helpers/cacheTableDependencies.d.ts.map +1 -0
  40. package/esm/helpers/cacheTableDependencies.js +117 -0
  41. package/esm/helpers/cleanCache.js +1 -1
  42. package/esm/helpers/createDirectory.d.ts +13 -0
  43. package/esm/helpers/createDirectory.d.ts.map +1 -1
  44. package/esm/helpers/createDirectory.js +13 -0
  45. package/esm/helpers/ensureSpatial.d.ts +7 -0
  46. package/esm/helpers/ensureSpatial.d.ts.map +1 -0
  47. package/esm/helpers/ensureSpatial.js +17 -0
  48. package/esm/helpers/extractTypes.d.ts +1 -1
  49. package/esm/helpers/extractTypes.d.ts.map +1 -1
  50. package/esm/helpers/extractZipEntryToFile.d.ts +3 -0
  51. package/esm/helpers/extractZipEntryToFile.d.ts.map +1 -0
  52. package/esm/helpers/extractZipEntryToFile.js +226 -0
  53. package/esm/helpers/fileCache.d.ts +15 -0
  54. package/esm/helpers/fileCache.d.ts.map +1 -0
  55. package/esm/helpers/fileCache.js +128 -0
  56. package/esm/helpers/findGeoColumn.d.ts +13 -1
  57. package/esm/helpers/findGeoColumn.d.ts.map +1 -1
  58. package/esm/helpers/findGeoColumn.js +15 -17
  59. package/esm/helpers/findGeoColumnFromSchema.d.ts +20 -0
  60. package/esm/helpers/findGeoColumnFromSchema.d.ts.map +1 -0
  61. package/esm/helpers/findGeoColumnFromSchema.js +28 -0
  62. package/esm/helpers/flushAllTables.d.ts +23 -0
  63. package/esm/helpers/flushAllTables.d.ts.map +1 -0
  64. package/esm/helpers/flushAllTables.js +411 -0
  65. package/esm/helpers/formatMissingTables.d.ts +19 -0
  66. package/esm/helpers/formatMissingTables.d.ts.map +1 -0
  67. package/esm/helpers/formatMissingTables.js +29 -0
  68. package/esm/helpers/getCurrentDatabase.d.ts +3 -0
  69. package/esm/helpers/getCurrentDatabase.d.ts.map +1 -0
  70. package/esm/helpers/getCurrentDatabase.js +7 -0
  71. package/esm/helpers/getDbFileType.d.ts +2 -0
  72. package/esm/helpers/getDbFileType.d.ts.map +1 -0
  73. package/esm/helpers/getDbFileType.js +9 -0
  74. package/esm/helpers/getDbIndexes.d.ts +4 -0
  75. package/esm/helpers/getDbIndexes.d.ts.map +1 -0
  76. package/esm/helpers/getDbIndexes.js +4 -0
  77. package/esm/helpers/getStatExpression.d.ts +10 -0
  78. package/esm/helpers/getStatExpression.d.ts.map +1 -0
  79. package/esm/helpers/getStatExpression.js +75 -0
  80. package/esm/helpers/index.d.ts +3 -0
  81. package/esm/helpers/index.d.ts.map +1 -1
  82. package/esm/helpers/index.js +3 -0
  83. package/esm/helpers/indexDefinitions.d.ts +30 -0
  84. package/esm/helpers/indexDefinitions.d.ts.map +1 -0
  85. package/esm/helpers/indexDefinitions.js +7 -0
  86. package/esm/helpers/indexQueries.d.ts +3 -0
  87. package/esm/helpers/indexQueries.d.ts.map +1 -0
  88. package/esm/helpers/indexQueries.js +36 -0
  89. package/esm/helpers/keepNumericalColumns.d.ts.map +1 -1
  90. package/esm/helpers/keepNumericalColumns.js +4 -5
  91. package/esm/helpers/loadOsmFile.d.ts +10 -0
  92. package/esm/helpers/loadOsmFile.d.ts.map +1 -0
  93. package/esm/helpers/loadOsmFile.js +28 -0
  94. package/esm/helpers/logData.d.ts +2 -2
  95. package/esm/helpers/logData.d.ts.map +1 -1
  96. package/esm/helpers/logData.js +6 -6
  97. package/esm/helpers/mergeOptions.d.ts +47 -15
  98. package/esm/helpers/mergeOptions.d.ts.map +1 -1
  99. package/esm/helpers/mergeOptions.js +35 -5
  100. package/esm/helpers/observeQuery.d.ts +9 -0
  101. package/esm/helpers/observeQuery.d.ts.map +1 -0
  102. package/esm/helpers/observeQuery.js +49 -0
  103. package/esm/helpers/osmCache.d.ts +16 -0
  104. package/esm/helpers/osmCache.d.ts.map +1 -0
  105. package/esm/helpers/osmCache.js +41 -0
  106. package/esm/helpers/osmFiles.d.ts +9 -0
  107. package/esm/helpers/osmFiles.d.ts.map +1 -0
  108. package/esm/helpers/osmFiles.js +52 -0
  109. package/esm/helpers/parseDuckDBType.d.ts +1 -1
  110. package/esm/helpers/parseValue.d.ts +16 -0
  111. package/esm/helpers/parseValue.d.ts.map +1 -1
  112. package/esm/helpers/parseValue.js +17 -1
  113. package/esm/helpers/pendingOps.d.ts +151 -0
  114. package/esm/helpers/pendingOps.d.ts.map +1 -0
  115. package/esm/helpers/pendingOps.js +1 -0
  116. package/esm/helpers/prepareDbExtensions.d.ts +4 -0
  117. package/esm/helpers/prepareDbExtensions.d.ts.map +1 -0
  118. package/esm/helpers/prepareDbExtensions.js +22 -0
  119. package/esm/helpers/prepareValueFilters.d.ts +11 -0
  120. package/esm/helpers/prepareValueFilters.d.ts.map +1 -0
  121. package/esm/helpers/prepareValueFilters.js +12 -0
  122. package/esm/helpers/queryDB.d.ts +43 -8
  123. package/esm/helpers/queryDB.d.ts.map +1 -1
  124. package/esm/helpers/queryDB.js +55 -36
  125. package/esm/helpers/queryDbFile.d.ts +8 -0
  126. package/esm/helpers/queryDbFile.d.ts.map +1 -0
  127. package/esm/helpers/queryDbFile.js +12 -0
  128. package/esm/helpers/queueAsyncBarrier.d.ts +47 -0
  129. package/esm/helpers/queueAsyncBarrier.d.ts.map +1 -0
  130. package/esm/helpers/queueAsyncBarrier.js +45 -0
  131. package/esm/helpers/queueOp.d.ts +18 -0
  132. package/esm/helpers/queueOp.d.ts.map +1 -0
  133. package/esm/helpers/queueOp.js +70 -0
  134. package/esm/helpers/quoteIdentifier.d.ts +16 -0
  135. package/esm/helpers/quoteIdentifier.d.ts.map +1 -0
  136. package/esm/helpers/quoteIdentifier.js +17 -0
  137. package/esm/helpers/quoteQualifiedIdentifier.d.ts +18 -0
  138. package/esm/helpers/quoteQualifiedIdentifier.d.ts.map +1 -0
  139. package/esm/helpers/quoteQualifiedIdentifier.js +20 -0
  140. package/esm/helpers/readDbMetadata.d.ts +5 -0
  141. package/esm/helpers/readDbMetadata.d.ts.map +1 -0
  142. package/esm/helpers/readDbMetadata.js +55 -0
  143. package/esm/helpers/removeColumnsNow.d.ts +8 -0
  144. package/esm/helpers/removeColumnsNow.d.ts.map +1 -0
  145. package/esm/helpers/removeColumnsNow.js +15 -0
  146. package/esm/helpers/resolveOutputTable.d.ts +9 -0
  147. package/esm/helpers/resolveOutputTable.d.ts.map +1 -0
  148. package/esm/helpers/resolveOutputTable.js +14 -0
  149. package/esm/helpers/runQuery.d.ts +11 -8
  150. package/esm/helpers/runQuery.d.ts.map +1 -1
  151. package/esm/helpers/runQuery.js +118 -15
  152. package/esm/helpers/serializeCacheInputs.d.ts +8 -0
  153. package/esm/helpers/serializeCacheInputs.d.ts.map +1 -0
  154. package/esm/helpers/serializeCacheInputs.js +113 -0
  155. package/esm/helpers/setDbProps.d.ts +4 -1
  156. package/esm/helpers/setDbProps.d.ts.map +1 -1
  157. package/esm/helpers/setDbProps.js +17 -15
  158. package/esm/helpers/statCanCache.d.ts +6 -0
  159. package/esm/helpers/statCanCache.d.ts.map +1 -0
  160. package/esm/helpers/statCanCache.js +38 -0
  161. package/esm/helpers/stringToArray.d.ts +14 -0
  162. package/esm/helpers/stringToArray.d.ts.map +1 -1
  163. package/esm/helpers/stringToArray.js +15 -1
  164. package/esm/helpers/tableGeneration.d.ts +18 -0
  165. package/esm/helpers/tableGeneration.d.ts.map +1 -0
  166. package/esm/helpers/tableGeneration.js +29 -0
  167. package/esm/helpers/tableRegistry.d.ts +9 -0
  168. package/esm/helpers/tableRegistry.d.ts.map +1 -0
  169. package/esm/helpers/tableRegistry.js +46 -0
  170. package/esm/helpers/toDuckDBValue.d.ts +4 -0
  171. package/esm/helpers/toDuckDBValue.d.ts.map +1 -0
  172. package/esm/helpers/toDuckDBValue.js +15 -0
  173. package/esm/helpers/unifyColumns.d.ts +5 -0
  174. package/esm/helpers/unifyColumns.d.ts.map +1 -1
  175. package/esm/helpers/unifyColumns.js +20 -4
  176. package/esm/helpers/validateNumericalAnalysis.d.ts +25 -0
  177. package/esm/helpers/validateNumericalAnalysis.d.ts.map +1 -0
  178. package/esm/helpers/validateNumericalAnalysis.js +49 -0
  179. package/esm/helpers/writeDbMetadata.d.ts +4 -0
  180. package/esm/helpers/writeDbMetadata.d.ts.map +1 -0
  181. package/esm/helpers/writeDbMetadata.js +9 -0
  182. package/esm/helpers/writeGeoData.d.ts.map +1 -1
  183. package/esm/helpers/writeGeoData.js +128 -41
  184. package/esm/helpers/writeZip.d.ts +15 -0
  185. package/esm/helpers/writeZip.d.ts.map +1 -0
  186. package/esm/helpers/writeZip.js +257 -0
  187. package/esm/index.d.ts +8 -4
  188. package/esm/index.d.ts.map +1 -1
  189. package/esm/index.js +8 -4
  190. package/esm/methods/accumulate.d.ts +5 -0
  191. package/esm/methods/accumulate.d.ts.map +1 -0
  192. package/esm/methods/accumulate.js +37 -0
  193. package/esm/methods/addBoundingBox.d.ts +6 -0
  194. package/esm/methods/addBoundingBox.d.ts.map +1 -0
  195. package/esm/methods/addBoundingBox.js +26 -0
  196. package/esm/methods/addColumn.d.ts +3 -0
  197. package/esm/methods/addColumn.d.ts.map +1 -0
  198. package/esm/methods/addColumn.js +24 -0
  199. package/esm/methods/addGeoClosedStatus.d.ts +5 -0
  200. package/esm/methods/addGeoClosedStatus.d.ts.map +1 -0
  201. package/esm/methods/addGeoClosedStatus.js +21 -0
  202. package/esm/methods/addGeoType.d.ts +5 -0
  203. package/esm/methods/addGeoType.d.ts.map +1 -0
  204. package/esm/methods/addGeoType.js +21 -0
  205. package/esm/methods/addGeoValidity.d.ts +5 -0
  206. package/esm/methods/addGeoValidity.d.ts.map +1 -0
  207. package/esm/methods/addGeoValidity.js +21 -0
  208. package/esm/methods/addRowNumber.d.ts +5 -0
  209. package/esm/methods/addRowNumber.d.ts.map +1 -0
  210. package/esm/methods/addRowNumber.js +26 -0
  211. package/esm/methods/addSummaryRows.d.ts +14 -0
  212. package/esm/methods/addSummaryRows.d.ts.map +1 -0
  213. package/esm/methods/addSummaryRows.js +122 -0
  214. package/esm/methods/addVertexCount.d.ts +5 -0
  215. package/esm/methods/addVertexCount.d.ts.map +1 -0
  216. package/esm/methods/addVertexCount.js +21 -0
  217. package/esm/methods/aggregateGeo.d.ts +7 -0
  218. package/esm/methods/aggregateGeo.d.ts.map +1 -0
  219. package/esm/methods/aggregateGeo.js +69 -0
  220. package/esm/methods/area.d.ts +7 -0
  221. package/esm/methods/area.d.ts.map +1 -0
  222. package/esm/methods/area.js +25 -0
  223. package/esm/methods/bins.d.ts +5 -0
  224. package/esm/methods/bins.d.ts.map +1 -0
  225. package/esm/methods/bins.js +87 -0
  226. package/esm/methods/bm25.d.ts +2 -2
  227. package/esm/methods/bm25.d.ts.map +1 -1
  228. package/esm/methods/bm25.js +28 -13
  229. package/esm/methods/buffer.d.ts +5 -0
  230. package/esm/methods/buffer.d.ts.map +1 -0
  231. package/esm/methods/buffer.js +24 -0
  232. package/esm/methods/cache.d.ts +2 -1
  233. package/esm/methods/cache.d.ts.map +1 -1
  234. package/esm/methods/cache.js +228 -71
  235. package/esm/methods/capitalize.d.ts +3 -0
  236. package/esm/methods/capitalize.d.ts.map +1 -0
  237. package/esm/methods/capitalize.js +15 -0
  238. package/esm/methods/centroid.d.ts +5 -0
  239. package/esm/methods/centroid.d.ts.map +1 -0
  240. package/esm/methods/centroid.js +24 -0
  241. package/esm/methods/clone.d.ts +9 -0
  242. package/esm/methods/clone.d.ts.map +1 -0
  243. package/esm/methods/clone.js +35 -0
  244. package/esm/methods/cloneColumn.d.ts +2 -3
  245. package/esm/methods/cloneColumn.d.ts.map +1 -1
  246. package/esm/methods/cloneColumn.js +17 -12
  247. package/esm/methods/cloneColumnWithOffset.d.ts +6 -0
  248. package/esm/methods/cloneColumnWithOffset.d.ts.map +1 -0
  249. package/esm/methods/cloneColumnWithOffset.js +35 -0
  250. package/esm/methods/columnProportions.d.ts +6 -0
  251. package/esm/methods/columnProportions.d.ts.map +1 -0
  252. package/esm/methods/columnProportions.js +23 -0
  253. package/esm/methods/concatenate.d.ts +5 -0
  254. package/esm/methods/concatenate.d.ts.map +1 -0
  255. package/esm/methods/concatenate.js +25 -0
  256. package/esm/methods/convert.d.ts +13 -0
  257. package/esm/methods/convert.d.ts.map +1 -0
  258. package/esm/methods/convert.js +112 -0
  259. package/esm/methods/correlations.d.ts +3 -3
  260. package/esm/methods/correlations.d.ts.map +1 -1
  261. package/esm/methods/correlations.js +70 -24
  262. package/esm/methods/coveredBy.d.ts +3 -0
  263. package/esm/methods/coveredBy.d.ts.map +1 -0
  264. package/esm/methods/coveredBy.js +16 -0
  265. package/esm/methods/createFtsIndex.d.ts +15 -2
  266. package/esm/methods/createFtsIndex.d.ts.map +1 -1
  267. package/esm/methods/createFtsIndex.js +52 -13
  268. package/esm/methods/createPoints.d.ts +5 -0
  269. package/esm/methods/createPoints.d.ts.map +1 -0
  270. package/esm/methods/createPoints.js +23 -0
  271. package/esm/methods/createVssIndex.d.ts +1 -1
  272. package/esm/methods/createVssIndex.d.ts.map +1 -1
  273. package/esm/methods/createVssIndex.js +34 -13
  274. package/esm/methods/crossJoin.d.ts +5 -0
  275. package/esm/methods/crossJoin.d.ts.map +1 -0
  276. package/esm/methods/crossJoin.js +35 -0
  277. package/esm/methods/difference.d.ts +3 -0
  278. package/esm/methods/difference.d.ts.map +1 -0
  279. package/esm/methods/difference.js +19 -0
  280. package/esm/methods/distance.d.ts +7 -0
  281. package/esm/methods/distance.d.ts.map +1 -0
  282. package/esm/methods/distance.js +48 -0
  283. package/esm/methods/extractDatePart.d.ts +7 -0
  284. package/esm/methods/extractDatePart.d.ts.map +1 -0
  285. package/esm/methods/extractDatePart.js +38 -0
  286. package/esm/methods/extractLatLon.d.ts +3 -0
  287. package/esm/methods/extractLatLon.d.ts.map +1 -0
  288. package/esm/methods/extractLatLon.js +16 -0
  289. package/esm/methods/fill.d.ts +2 -2
  290. package/esm/methods/fill.d.ts.map +1 -1
  291. package/esm/methods/fill.js +41 -44
  292. package/esm/methods/fillHoles.d.ts +3 -0
  293. package/esm/methods/fillHoles.d.ts.map +1 -0
  294. package/esm/methods/fillHoles.js +19 -0
  295. package/esm/methods/filter.d.ts +3 -0
  296. package/esm/methods/filter.d.ts.map +1 -0
  297. package/esm/methods/filter.js +14 -0
  298. package/esm/methods/firstChars.d.ts +3 -0
  299. package/esm/methods/firstChars.d.ts.map +1 -0
  300. package/esm/methods/firstChars.js +11 -0
  301. package/esm/methods/fixGeo.d.ts +3 -0
  302. package/esm/methods/fixGeo.d.ts.map +1 -0
  303. package/esm/methods/fixGeo.js +22 -0
  304. package/esm/methods/flipCoordinates.d.ts +3 -0
  305. package/esm/methods/flipCoordinates.d.ts.map +1 -0
  306. package/esm/methods/flipCoordinates.js +22 -0
  307. package/esm/methods/fuzzyClean.d.ts +3 -3
  308. package/esm/methods/fuzzyClean.d.ts.map +1 -1
  309. package/esm/methods/fuzzyClean.js +55 -55
  310. package/esm/methods/fuzzyJoin.d.ts +2 -2
  311. package/esm/methods/fuzzyJoin.d.ts.map +1 -1
  312. package/esm/methods/fuzzyJoin.js +60 -19
  313. package/esm/methods/getBottom.d.ts +1 -1
  314. package/esm/methods/getBottom.d.ts.map +1 -1
  315. package/esm/methods/getBottom.js +4 -3
  316. package/esm/methods/getBoundingBox.d.ts +3 -0
  317. package/esm/methods/getBoundingBox.d.ts.map +1 -0
  318. package/esm/methods/getBoundingBox.js +19 -0
  319. package/esm/methods/getCharacterCount.d.ts +3 -0
  320. package/esm/methods/getCharacterCount.d.ts.map +1 -0
  321. package/esm/methods/getCharacterCount.js +17 -0
  322. package/esm/methods/getColumns.d.ts.map +1 -1
  323. package/esm/methods/getColumns.js +4 -3
  324. package/esm/methods/getData.d.ts +9 -0
  325. package/esm/methods/getData.d.ts.map +1 -0
  326. package/esm/methods/getData.js +23 -0
  327. package/esm/methods/getDescription.d.ts.map +1 -1
  328. package/esm/methods/getDescription.js +15 -10
  329. package/esm/methods/getFirstRow.d.ts +1 -1
  330. package/esm/methods/getFirstRow.d.ts.map +1 -1
  331. package/esm/methods/getFirstRow.js +5 -4
  332. package/esm/methods/getGeoData.d.ts +1 -1
  333. package/esm/methods/getGeoData.d.ts.map +1 -1
  334. package/esm/methods/getGeoData.js +5 -3
  335. package/esm/methods/getHash.d.ts +3 -0
  336. package/esm/methods/getHash.d.ts.map +1 -0
  337. package/esm/methods/getHash.js +39 -0
  338. package/esm/methods/getLastRow.d.ts +2 -2
  339. package/esm/methods/getLastRow.d.ts.map +1 -1
  340. package/esm/methods/getLastRow.js +7 -3
  341. package/esm/methods/getMax.d.ts +1 -1
  342. package/esm/methods/getMax.d.ts.map +1 -1
  343. package/esm/methods/getMax.js +10 -10
  344. package/esm/methods/getMean.d.ts.map +1 -1
  345. package/esm/methods/getMean.js +7 -4
  346. package/esm/methods/getMedian.d.ts.map +1 -1
  347. package/esm/methods/getMedian.js +7 -4
  348. package/esm/methods/getMin.d.ts +1 -1
  349. package/esm/methods/getMin.d.ts.map +1 -1
  350. package/esm/methods/getMin.js +10 -10
  351. package/esm/methods/getQuantile.d.ts.map +1 -1
  352. package/esm/methods/getQuantile.js +7 -4
  353. package/esm/methods/getRowCount.d.ts +5 -0
  354. package/esm/methods/getRowCount.d.ts.map +1 -0
  355. package/esm/methods/getRowCount.js +16 -0
  356. package/esm/methods/getSchema.d.ts +5 -0
  357. package/esm/methods/getSchema.d.ts.map +1 -0
  358. package/esm/methods/getSchema.js +12 -0
  359. package/esm/methods/getSkew.d.ts.map +1 -1
  360. package/esm/methods/getSkew.js +7 -4
  361. package/esm/methods/getStdDev.d.ts.map +1 -1
  362. package/esm/methods/getStdDev.js +7 -4
  363. package/esm/methods/getSum.d.ts.map +1 -1
  364. package/esm/methods/getSum.js +6 -3
  365. package/esm/methods/getTableNames.js +2 -2
  366. package/esm/methods/getTop.d.ts +1 -1
  367. package/esm/methods/getTop.d.ts.map +1 -1
  368. package/esm/methods/getTop.js +3 -2
  369. package/esm/methods/getTypes.d.ts.map +1 -1
  370. package/esm/methods/getTypes.js +3 -2
  371. package/esm/methods/getUniques.d.ts +1 -1
  372. package/esm/methods/getUniques.d.ts.map +1 -1
  373. package/esm/methods/getUniques.js +6 -3
  374. package/esm/methods/getValues.d.ts +1 -1
  375. package/esm/methods/getValues.d.ts.map +1 -1
  376. package/esm/methods/getValues.js +5 -3
  377. package/esm/methods/getVariance.d.ts +5 -0
  378. package/esm/methods/getVariance.d.ts.map +1 -0
  379. package/esm/methods/getVariance.js +20 -0
  380. package/esm/methods/indexValues.d.ts +27 -0
  381. package/esm/methods/indexValues.d.ts.map +1 -0
  382. package/esm/methods/indexValues.js +281 -0
  383. package/esm/methods/insertRows.d.ts +5 -0
  384. package/esm/methods/insertRows.d.ts.map +1 -0
  385. package/esm/methods/insertRows.js +41 -0
  386. package/esm/methods/insertTables.d.ts +5 -0
  387. package/esm/methods/insertTables.d.ts.map +1 -0
  388. package/esm/methods/insertTables.js +99 -0
  389. package/esm/methods/intersection.d.ts +3 -0
  390. package/esm/methods/intersection.d.ts.map +1 -0
  391. package/esm/methods/intersection.js +19 -0
  392. package/esm/methods/intersects.d.ts +3 -0
  393. package/esm/methods/intersects.d.ts.map +1 -0
  394. package/esm/methods/intersects.js +16 -0
  395. package/esm/methods/join.d.ts +2 -2
  396. package/esm/methods/join.d.ts.map +1 -1
  397. package/esm/methods/join.js +77 -28
  398. package/esm/methods/joinGeo.d.ts +6 -4
  399. package/esm/methods/joinGeo.d.ts.map +1 -1
  400. package/esm/methods/joinGeo.js +127 -44
  401. package/esm/methods/keepValues.d.ts +5 -0
  402. package/esm/methods/keepValues.d.ts.map +1 -0
  403. package/esm/methods/keepValues.js +35 -0
  404. package/esm/methods/lastChars.d.ts +3 -0
  405. package/esm/methods/lastChars.d.ts.map +1 -0
  406. package/esm/methods/lastChars.js +11 -0
  407. package/esm/methods/length.d.ts +7 -0
  408. package/esm/methods/length.d.ts.map +1 -0
  409. package/esm/methods/length.js +25 -0
  410. package/esm/methods/linearRegressions.d.ts +3 -3
  411. package/esm/methods/linearRegressions.d.ts.map +1 -1
  412. package/esm/methods/linearRegressions.js +78 -24
  413. package/esm/methods/linesToPolygons.d.ts +3 -0
  414. package/esm/methods/linesToPolygons.d.ts.map +1 -0
  415. package/esm/methods/linesToPolygons.js +17 -0
  416. package/esm/methods/loadArray.d.ts +14 -2
  417. package/esm/methods/loadArray.d.ts.map +1 -1
  418. package/esm/methods/loadArray.js +52 -32
  419. package/esm/methods/loadDB.d.ts +3 -0
  420. package/esm/methods/loadDB.d.ts.map +1 -0
  421. package/esm/methods/loadDB.js +70 -0
  422. package/esm/methods/loadData.d.ts +52 -0
  423. package/esm/methods/loadData.d.ts.map +1 -0
  424. package/esm/methods/loadData.js +148 -0
  425. package/esm/methods/loadGeoData.d.ts +9 -0
  426. package/esm/methods/loadGeoData.d.ts.map +1 -0
  427. package/esm/methods/loadGeoData.js +104 -0
  428. package/esm/methods/loadOSM.d.ts +17 -0
  429. package/esm/methods/loadOSM.d.ts.map +1 -0
  430. package/esm/methods/loadOSM.js +194 -0
  431. package/esm/methods/loadSample.d.ts +1 -1
  432. package/esm/methods/loadSample.d.ts.map +1 -1
  433. package/esm/methods/loadSample.js +5 -4
  434. package/esm/methods/loadStatCanData.d.ts +10 -0
  435. package/esm/methods/loadStatCanData.d.ts.map +1 -0
  436. package/esm/methods/loadStatCanData.js +130 -0
  437. package/esm/methods/longer.d.ts +3 -0
  438. package/esm/methods/longer.d.ts.map +1 -0
  439. package/esm/methods/longer.js +23 -0
  440. package/esm/methods/lower.d.ts +3 -0
  441. package/esm/methods/lower.d.ts.map +1 -0
  442. package/esm/methods/lower.js +14 -0
  443. package/esm/methods/nest.d.ts +3 -0
  444. package/esm/methods/nest.d.ts.map +1 -0
  445. package/esm/methods/nest.js +23 -0
  446. package/esm/methods/normalize.d.ts +7 -0
  447. package/esm/methods/normalize.d.ts.map +1 -0
  448. package/esm/methods/normalize.js +41 -0
  449. package/esm/methods/normalizeString.d.ts +1 -1
  450. package/esm/methods/normalizeString.d.ts.map +1 -1
  451. package/esm/methods/normalizeString.js +15 -18
  452. package/esm/methods/outliersIQR.d.ts +5 -0
  453. package/esm/methods/outliersIQR.d.ts.map +1 -0
  454. package/esm/methods/outliersIQR.js +37 -0
  455. package/esm/methods/pad.d.ts +6 -0
  456. package/esm/methods/pad.d.ts.map +1 -0
  457. package/esm/methods/pad.js +55 -0
  458. package/esm/methods/perimeter.d.ts +7 -0
  459. package/esm/methods/perimeter.d.ts.map +1 -0
  460. package/esm/methods/perimeter.js +25 -0
  461. package/esm/methods/quantiles.d.ts +5 -0
  462. package/esm/methods/quantiles.d.ts.map +1 -0
  463. package/esm/methods/quantiles.js +22 -0
  464. package/esm/methods/randomPoint.d.ts +6 -0
  465. package/esm/methods/randomPoint.d.ts.map +1 -0
  466. package/esm/methods/randomPoint.js +105 -0
  467. package/esm/methods/ranks.d.ts +7 -0
  468. package/esm/methods/ranks.d.ts.map +1 -0
  469. package/esm/methods/ranks.js +22 -0
  470. package/esm/methods/reducePrecision.d.ts +5 -0
  471. package/esm/methods/reducePrecision.d.ts.map +1 -0
  472. package/esm/methods/reducePrecision.js +24 -0
  473. package/esm/methods/removeColumns.d.ts +3 -0
  474. package/esm/methods/removeColumns.d.ts.map +1 -0
  475. package/esm/methods/removeColumns.js +13 -0
  476. package/esm/methods/removeDuplicates.d.ts +5 -0
  477. package/esm/methods/removeDuplicates.d.ts.map +1 -0
  478. package/esm/methods/removeDuplicates.js +17 -0
  479. package/esm/methods/removeMissing.d.ts +1 -1
  480. package/esm/methods/removeMissing.d.ts.map +1 -1
  481. package/esm/methods/removeMissing.js +70 -11
  482. package/esm/methods/removeRows.d.ts +3 -0
  483. package/esm/methods/removeRows.d.ts.map +1 -0
  484. package/esm/methods/removeRows.js +14 -0
  485. package/esm/methods/removeTable.d.ts +3 -0
  486. package/esm/methods/removeTable.d.ts.map +1 -0
  487. package/esm/methods/removeTable.js +12 -0
  488. package/esm/methods/removeTables.d.ts +4 -0
  489. package/esm/methods/removeTables.d.ts.map +1 -0
  490. package/esm/methods/removeTables.js +21 -0
  491. package/esm/methods/removeValues.d.ts +5 -0
  492. package/esm/methods/removeValues.d.ts.map +1 -0
  493. package/esm/methods/removeValues.js +35 -0
  494. package/esm/methods/renameColumns.d.ts +7 -0
  495. package/esm/methods/renameColumns.d.ts.map +1 -0
  496. package/esm/methods/renameColumns.js +27 -0
  497. package/esm/methods/renameTable.d.ts +3 -0
  498. package/esm/methods/renameTable.d.ts.map +1 -0
  499. package/esm/methods/renameTable.js +12 -0
  500. package/esm/methods/repeatRows.d.ts +5 -0
  501. package/esm/methods/repeatRows.d.ts.map +1 -0
  502. package/esm/methods/repeatRows.js +19 -0
  503. package/esm/methods/replace.d.ts +8 -0
  504. package/esm/methods/replace.d.ts.map +1 -0
  505. package/esm/methods/replace.js +69 -0
  506. package/esm/methods/replaceNulls.d.ts +3 -0
  507. package/esm/methods/replaceNulls.d.ts.map +1 -0
  508. package/esm/methods/replaceNulls.js +36 -0
  509. package/esm/methods/reproject.d.ts +5 -0
  510. package/esm/methods/reproject.d.ts.map +1 -0
  511. package/esm/methods/reproject.js +21 -0
  512. package/esm/methods/rolling.d.ts +6 -0
  513. package/esm/methods/rolling.d.ts.map +1 -0
  514. package/esm/methods/rolling.js +42 -0
  515. package/esm/methods/round.d.ts +6 -0
  516. package/esm/methods/round.d.ts.map +1 -0
  517. package/esm/methods/round.js +22 -0
  518. package/esm/methods/rowProportions.d.ts +6 -0
  519. package/esm/methods/rowProportions.d.ts.map +1 -0
  520. package/esm/methods/rowProportions.js +30 -0
  521. package/esm/methods/rowRanks.d.ts +9 -0
  522. package/esm/methods/rowRanks.d.ts.map +1 -0
  523. package/esm/methods/rowRanks.js +113 -0
  524. package/esm/methods/rowToText.d.ts +3 -0
  525. package/esm/methods/rowToText.d.ts.map +1 -0
  526. package/esm/methods/rowToText.js +27 -0
  527. package/esm/methods/sample.d.ts +5 -0
  528. package/esm/methods/sample.d.ts.map +1 -0
  529. package/esm/methods/sample.js +16 -0
  530. package/esm/methods/selectColumns.d.ts +3 -0
  531. package/esm/methods/selectColumns.d.ts.map +1 -0
  532. package/esm/methods/selectColumns.js +19 -0
  533. package/esm/methods/selectRows.d.ts +6 -0
  534. package/esm/methods/selectRows.d.ts.map +1 -0
  535. package/esm/methods/selectRows.js +34 -0
  536. package/esm/methods/selectTables.d.ts +4 -0
  537. package/esm/methods/selectTables.d.ts.map +1 -0
  538. package/esm/methods/selectTables.js +25 -0
  539. package/esm/methods/setTypes.d.ts +5 -0
  540. package/esm/methods/setTypes.d.ts.map +1 -0
  541. package/esm/methods/setTypes.js +30 -0
  542. package/esm/methods/simplify.d.ts +6 -0
  543. package/esm/methods/simplify.d.ts.map +1 -0
  544. package/esm/methods/simplify.js +38 -0
  545. package/esm/methods/skip.d.ts +3 -0
  546. package/esm/methods/skip.d.ts.map +1 -0
  547. package/esm/methods/skip.js +11 -0
  548. package/esm/methods/sort.d.ts +9 -0
  549. package/esm/methods/sort.d.ts.map +1 -0
  550. package/esm/methods/sort.js +35 -0
  551. package/esm/methods/splitExtract.d.ts +3 -0
  552. package/esm/methods/splitExtract.d.ts.map +1 -0
  553. package/esm/methods/splitExtract.js +21 -0
  554. package/esm/methods/splitSpread.d.ts +2 -2
  555. package/esm/methods/splitSpread.d.ts.map +1 -1
  556. package/esm/methods/splitSpread.js +58 -35
  557. package/esm/methods/stream.d.ts +8 -0
  558. package/esm/methods/stream.d.ts.map +1 -0
  559. package/esm/methods/stream.js +59 -0
  560. package/esm/methods/summarize.d.ts +10 -8
  561. package/esm/methods/summarize.d.ts.map +1 -1
  562. package/esm/methods/summarize.js +135 -48
  563. package/esm/methods/trim.d.ts +6 -0
  564. package/esm/methods/trim.d.ts.map +1 -0
  565. package/esm/methods/trim.js +30 -0
  566. package/esm/methods/truncate.d.ts +3 -0
  567. package/esm/methods/truncate.d.ts.map +1 -0
  568. package/esm/methods/truncate.js +11 -0
  569. package/esm/methods/union.d.ts +3 -0
  570. package/esm/methods/union.d.ts.map +1 -0
  571. package/esm/methods/union.js +19 -0
  572. package/esm/methods/unnest.d.ts +3 -0
  573. package/esm/methods/unnest.d.ts.map +1 -0
  574. package/esm/methods/unnest.js +15 -0
  575. package/esm/methods/unnestGeo.d.ts +3 -0
  576. package/esm/methods/unnestGeo.d.ts.map +1 -0
  577. package/esm/methods/unnestGeo.js +18 -0
  578. package/esm/methods/updateColumn.d.ts +3 -0
  579. package/esm/methods/updateColumn.d.ts.map +1 -0
  580. package/esm/methods/updateColumn.js +15 -0
  581. package/esm/methods/updateWithJS.d.ts +11 -0
  582. package/esm/methods/updateWithJS.d.ts.map +1 -0
  583. package/esm/methods/updateWithJS.js +95 -0
  584. package/esm/methods/upper.d.ts +3 -0
  585. package/esm/methods/upper.d.ts.map +1 -0
  586. package/esm/methods/upper.js +14 -0
  587. package/esm/methods/wider.d.ts +5 -0
  588. package/esm/methods/wider.d.ts.map +1 -0
  589. package/esm/methods/wider.js +23 -0
  590. package/esm/methods/writeDB.d.ts +6 -0
  591. package/esm/methods/writeDB.d.ts.map +1 -0
  592. package/esm/methods/writeDB.js +99 -0
  593. package/esm/methods/writeData.d.ts +7 -0
  594. package/esm/methods/writeData.d.ts.map +1 -0
  595. package/esm/methods/writeData.js +80 -0
  596. package/esm/methods/zScore.d.ts +6 -0
  597. package/esm/methods/zScore.d.ts.map +1 -0
  598. package/esm/methods/zScore.js +29 -0
  599. package/llm.md +7925 -0
  600. package/llms.txt +19 -0
  601. package/package.json +18 -3
  602. package/script/_dnt.polyfills.d.ts +7 -0
  603. package/script/_dnt.polyfills.d.ts.map +1 -0
  604. package/script/_dnt.polyfills.js +2 -0
  605. package/script/class/SDAError.d.ts +63 -0
  606. package/script/class/SDAError.d.ts.map +1 -0
  607. package/script/class/SDAError.js +86 -0
  608. package/script/class/Simple.d.ts +40 -22
  609. package/script/class/Simple.d.ts.map +1 -1
  610. package/script/class/Simple.js +33 -20
  611. package/script/class/SimpleDB.d.ts +268 -100
  612. package/script/class/SimpleDB.d.ts.map +1 -1
  613. package/script/class/SimpleDB.js +549 -283
  614. package/script/class/SimpleTable.d.ts +1816 -940
  615. package/script/class/SimpleTable.d.ts.map +1 -1
  616. package/script/class/SimpleTable.js +1956 -1817
  617. package/script/helpers/assertColumnsExist.d.ts +16 -0
  618. package/script/helpers/assertColumnsExist.d.ts.map +1 -0
  619. package/script/helpers/assertColumnsExist.js +27 -0
  620. package/script/helpers/assertNewColumns.d.ts +17 -0
  621. package/script/helpers/assertNewColumns.d.ts.map +1 -0
  622. package/script/helpers/assertNewColumns.js +28 -0
  623. package/script/helpers/assertSameDatabase.d.ts +11 -0
  624. package/script/helpers/assertSameDatabase.d.ts.map +1 -0
  625. package/script/helpers/assertSameDatabase.js +16 -0
  626. package/script/helpers/asyncOperationContext.d.ts +19 -0
  627. package/script/helpers/asyncOperationContext.d.ts.map +1 -0
  628. package/script/helpers/asyncOperationContext.js +45 -0
  629. package/script/helpers/buildFuzzyMatchSql.d.ts +9 -0
  630. package/script/helpers/buildFuzzyMatchSql.d.ts.map +1 -0
  631. package/script/helpers/buildFuzzyMatchSql.js +20 -0
  632. package/script/helpers/cacheDatabase.d.ts +5 -0
  633. package/script/helpers/cacheDatabase.d.ts.map +1 -0
  634. package/script/helpers/cacheDatabase.js +117 -0
  635. package/script/helpers/cacheDiagnostics.d.ts +4 -0
  636. package/script/helpers/cacheDiagnostics.d.ts.map +1 -0
  637. package/script/helpers/cacheDiagnostics.js +29 -0
  638. package/script/helpers/cacheTableDependencies.d.ts +19 -0
  639. package/script/helpers/cacheTableDependencies.d.ts.map +1 -0
  640. package/script/helpers/cacheTableDependencies.js +125 -0
  641. package/script/helpers/cleanCache.js +1 -1
  642. package/script/helpers/createDirectory.d.ts +13 -0
  643. package/script/helpers/createDirectory.d.ts.map +1 -1
  644. package/script/helpers/createDirectory.js +13 -0
  645. package/script/helpers/ensureSpatial.d.ts +7 -0
  646. package/script/helpers/ensureSpatial.d.ts.map +1 -0
  647. package/script/helpers/ensureSpatial.js +23 -0
  648. package/script/helpers/extractTypes.d.ts +1 -1
  649. package/script/helpers/extractTypes.d.ts.map +1 -1
  650. package/script/helpers/extractZipEntryToFile.d.ts +3 -0
  651. package/script/helpers/extractZipEntryToFile.d.ts.map +1 -0
  652. package/script/helpers/extractZipEntryToFile.js +229 -0
  653. package/script/helpers/fileCache.d.ts +15 -0
  654. package/script/helpers/fileCache.d.ts.map +1 -0
  655. package/script/helpers/fileCache.js +135 -0
  656. package/script/helpers/findGeoColumn.d.ts +13 -1
  657. package/script/helpers/findGeoColumn.d.ts.map +1 -1
  658. package/script/helpers/findGeoColumn.js +18 -17
  659. package/script/helpers/findGeoColumnFromSchema.d.ts +20 -0
  660. package/script/helpers/findGeoColumnFromSchema.d.ts.map +1 -0
  661. package/script/helpers/findGeoColumnFromSchema.js +34 -0
  662. package/script/helpers/flushAllTables.d.ts +23 -0
  663. package/script/helpers/flushAllTables.d.ts.map +1 -0
  664. package/script/helpers/flushAllTables.js +418 -0
  665. package/script/helpers/formatMissingTables.d.ts +19 -0
  666. package/script/helpers/formatMissingTables.d.ts.map +1 -0
  667. package/script/helpers/formatMissingTables.js +35 -0
  668. package/script/helpers/getCurrentDatabase.d.ts +3 -0
  669. package/script/helpers/getCurrentDatabase.d.ts.map +1 -0
  670. package/script/helpers/getCurrentDatabase.js +13 -0
  671. package/script/helpers/getDbFileType.d.ts +2 -0
  672. package/script/helpers/getDbFileType.d.ts.map +1 -0
  673. package/script/helpers/getDbFileType.js +12 -0
  674. package/script/helpers/getDbIndexes.d.ts +4 -0
  675. package/script/helpers/getDbIndexes.d.ts.map +1 -0
  676. package/script/helpers/getDbIndexes.js +7 -0
  677. package/script/helpers/getStatExpression.d.ts +10 -0
  678. package/script/helpers/getStatExpression.d.ts.map +1 -0
  679. package/script/helpers/getStatExpression.js +80 -0
  680. package/script/helpers/index.d.ts +3 -0
  681. package/script/helpers/index.d.ts.map +1 -1
  682. package/script/helpers/index.js +10 -5
  683. package/script/helpers/indexDefinitions.d.ts +30 -0
  684. package/script/helpers/indexDefinitions.d.ts.map +1 -0
  685. package/script/helpers/indexDefinitions.js +10 -0
  686. package/script/helpers/indexQueries.d.ts +3 -0
  687. package/script/helpers/indexQueries.d.ts.map +1 -0
  688. package/script/helpers/indexQueries.js +42 -0
  689. package/script/helpers/keepNumericalColumns.d.ts.map +1 -1
  690. package/script/helpers/keepNumericalColumns.js +4 -5
  691. package/script/helpers/loadOsmFile.d.ts +10 -0
  692. package/script/helpers/loadOsmFile.d.ts.map +1 -0
  693. package/script/helpers/loadOsmFile.js +34 -0
  694. package/script/helpers/logData.d.ts +2 -2
  695. package/script/helpers/logData.d.ts.map +1 -1
  696. package/script/helpers/logData.js +6 -6
  697. package/script/helpers/mergeOptions.d.ts +47 -15
  698. package/script/helpers/mergeOptions.d.ts.map +1 -1
  699. package/script/helpers/mergeOptions.js +35 -5
  700. package/script/helpers/observeQuery.d.ts +9 -0
  701. package/script/helpers/observeQuery.d.ts.map +1 -0
  702. package/script/helpers/observeQuery.js +52 -0
  703. package/script/helpers/osmCache.d.ts +16 -0
  704. package/script/helpers/osmCache.d.ts.map +1 -0
  705. package/script/helpers/osmCache.js +81 -0
  706. package/script/helpers/osmFiles.d.ts +9 -0
  707. package/script/helpers/osmFiles.d.ts.map +1 -0
  708. package/script/helpers/osmFiles.js +60 -0
  709. package/script/helpers/parseDuckDBType.d.ts +1 -1
  710. package/script/helpers/parseValue.d.ts +16 -0
  711. package/script/helpers/parseValue.d.ts.map +1 -1
  712. package/script/helpers/parseValue.js +17 -1
  713. package/script/helpers/pendingOps.d.ts +151 -0
  714. package/script/helpers/pendingOps.d.ts.map +1 -0
  715. package/script/helpers/pendingOps.js +2 -0
  716. package/script/helpers/prepareDbExtensions.d.ts +4 -0
  717. package/script/helpers/prepareDbExtensions.d.ts.map +1 -0
  718. package/script/helpers/prepareDbExtensions.js +28 -0
  719. package/script/helpers/prepareValueFilters.d.ts +11 -0
  720. package/script/helpers/prepareValueFilters.d.ts.map +1 -0
  721. package/script/helpers/prepareValueFilters.js +18 -0
  722. package/script/helpers/queryDB.d.ts +43 -8
  723. package/script/helpers/queryDB.d.ts.map +1 -1
  724. package/script/helpers/queryDB.js +55 -36
  725. package/script/helpers/queryDbFile.d.ts +8 -0
  726. package/script/helpers/queryDbFile.d.ts.map +1 -0
  727. package/script/helpers/queryDbFile.js +18 -0
  728. package/script/helpers/queueAsyncBarrier.d.ts +47 -0
  729. package/script/helpers/queueAsyncBarrier.d.ts.map +1 -0
  730. package/script/helpers/queueAsyncBarrier.js +51 -0
  731. package/script/helpers/queueOp.d.ts +18 -0
  732. package/script/helpers/queueOp.d.ts.map +1 -0
  733. package/script/helpers/queueOp.js +74 -0
  734. package/script/helpers/quoteIdentifier.d.ts +16 -0
  735. package/script/helpers/quoteIdentifier.d.ts.map +1 -0
  736. package/script/helpers/quoteIdentifier.js +20 -0
  737. package/script/helpers/quoteQualifiedIdentifier.d.ts +18 -0
  738. package/script/helpers/quoteQualifiedIdentifier.d.ts.map +1 -0
  739. package/script/helpers/quoteQualifiedIdentifier.js +26 -0
  740. package/script/helpers/readDbMetadata.d.ts +5 -0
  741. package/script/helpers/readDbMetadata.d.ts.map +1 -0
  742. package/script/helpers/readDbMetadata.js +61 -0
  743. package/script/helpers/removeColumnsNow.d.ts +8 -0
  744. package/script/helpers/removeColumnsNow.d.ts.map +1 -0
  745. package/script/helpers/removeColumnsNow.js +21 -0
  746. package/script/helpers/resolveOutputTable.d.ts +9 -0
  747. package/script/helpers/resolveOutputTable.d.ts.map +1 -0
  748. package/script/helpers/resolveOutputTable.js +17 -0
  749. package/script/helpers/runQuery.d.ts +11 -8
  750. package/script/helpers/runQuery.d.ts.map +1 -1
  751. package/script/helpers/runQuery.js +119 -15
  752. package/script/helpers/serializeCacheInputs.d.ts +8 -0
  753. package/script/helpers/serializeCacheInputs.d.ts.map +1 -0
  754. package/script/helpers/serializeCacheInputs.js +120 -0
  755. package/script/helpers/setDbProps.d.ts +4 -1
  756. package/script/helpers/setDbProps.d.ts.map +1 -1
  757. package/script/helpers/setDbProps.js +17 -15
  758. package/script/helpers/statCanCache.d.ts +6 -0
  759. package/script/helpers/statCanCache.d.ts.map +1 -0
  760. package/script/helpers/statCanCache.js +78 -0
  761. package/script/helpers/stringToArray.d.ts +14 -0
  762. package/script/helpers/stringToArray.d.ts.map +1 -1
  763. package/script/helpers/stringToArray.js +15 -1
  764. package/script/helpers/tableGeneration.d.ts +18 -0
  765. package/script/helpers/tableGeneration.d.ts.map +1 -0
  766. package/script/helpers/tableGeneration.js +39 -0
  767. package/script/helpers/tableRegistry.d.ts +9 -0
  768. package/script/helpers/tableRegistry.d.ts.map +1 -0
  769. package/script/helpers/tableRegistry.js +54 -0
  770. package/script/helpers/toDuckDBValue.d.ts +4 -0
  771. package/script/helpers/toDuckDBValue.d.ts.map +1 -0
  772. package/script/helpers/toDuckDBValue.js +18 -0
  773. package/script/helpers/unifyColumns.d.ts +5 -0
  774. package/script/helpers/unifyColumns.d.ts.map +1 -1
  775. package/script/helpers/unifyColumns.js +23 -4
  776. package/script/helpers/validateNumericalAnalysis.d.ts +25 -0
  777. package/script/helpers/validateNumericalAnalysis.d.ts.map +1 -0
  778. package/script/helpers/validateNumericalAnalysis.js +55 -0
  779. package/script/helpers/writeDbMetadata.d.ts +4 -0
  780. package/script/helpers/writeDbMetadata.d.ts.map +1 -0
  781. package/script/helpers/writeDbMetadata.js +15 -0
  782. package/script/helpers/writeGeoData.d.ts.map +1 -1
  783. package/script/helpers/writeGeoData.js +127 -40
  784. package/script/helpers/writeZip.d.ts +15 -0
  785. package/script/helpers/writeZip.d.ts.map +1 -0
  786. package/script/helpers/writeZip.js +293 -0
  787. package/script/index.d.ts +8 -4
  788. package/script/index.d.ts.map +1 -1
  789. package/script/index.js +14 -9
  790. package/script/methods/accumulate.d.ts +5 -0
  791. package/script/methods/accumulate.d.ts.map +1 -0
  792. package/script/methods/accumulate.js +43 -0
  793. package/script/methods/addBoundingBox.d.ts +6 -0
  794. package/script/methods/addBoundingBox.d.ts.map +1 -0
  795. package/script/methods/addBoundingBox.js +32 -0
  796. package/script/methods/addColumn.d.ts +3 -0
  797. package/script/methods/addColumn.d.ts.map +1 -0
  798. package/script/methods/addColumn.js +30 -0
  799. package/script/methods/addGeoClosedStatus.d.ts +5 -0
  800. package/script/methods/addGeoClosedStatus.d.ts.map +1 -0
  801. package/script/methods/addGeoClosedStatus.js +27 -0
  802. package/script/methods/addGeoType.d.ts +5 -0
  803. package/script/methods/addGeoType.d.ts.map +1 -0
  804. package/script/methods/addGeoType.js +27 -0
  805. package/script/methods/addGeoValidity.d.ts +5 -0
  806. package/script/methods/addGeoValidity.d.ts.map +1 -0
  807. package/script/methods/addGeoValidity.js +27 -0
  808. package/script/methods/addRowNumber.d.ts +5 -0
  809. package/script/methods/addRowNumber.d.ts.map +1 -0
  810. package/script/methods/addRowNumber.js +32 -0
  811. package/script/methods/addSummaryRows.d.ts +14 -0
  812. package/script/methods/addSummaryRows.d.ts.map +1 -0
  813. package/script/methods/addSummaryRows.js +161 -0
  814. package/script/methods/addVertexCount.d.ts +5 -0
  815. package/script/methods/addVertexCount.d.ts.map +1 -0
  816. package/script/methods/addVertexCount.js +27 -0
  817. package/script/methods/aggregateGeo.d.ts +7 -0
  818. package/script/methods/aggregateGeo.d.ts.map +1 -0
  819. package/script/methods/aggregateGeo.js +75 -0
  820. package/script/methods/area.d.ts +7 -0
  821. package/script/methods/area.d.ts.map +1 -0
  822. package/script/methods/area.js +31 -0
  823. package/script/methods/bins.d.ts +5 -0
  824. package/script/methods/bins.d.ts.map +1 -0
  825. package/script/methods/bins.js +93 -0
  826. package/script/methods/bm25.d.ts +2 -2
  827. package/script/methods/bm25.d.ts.map +1 -1
  828. package/script/methods/bm25.js +28 -13
  829. package/script/methods/buffer.d.ts +5 -0
  830. package/script/methods/buffer.d.ts.map +1 -0
  831. package/script/methods/buffer.js +30 -0
  832. package/script/methods/cache.d.ts +2 -1
  833. package/script/methods/cache.d.ts.map +1 -1
  834. package/script/methods/cache.js +260 -70
  835. package/script/methods/capitalize.d.ts +3 -0
  836. package/script/methods/capitalize.d.ts.map +1 -0
  837. package/script/methods/capitalize.js +21 -0
  838. package/script/methods/centroid.d.ts +5 -0
  839. package/script/methods/centroid.d.ts.map +1 -0
  840. package/script/methods/centroid.js +30 -0
  841. package/script/methods/clone.d.ts +9 -0
  842. package/script/methods/clone.d.ts.map +1 -0
  843. package/script/methods/clone.js +41 -0
  844. package/script/methods/cloneColumn.d.ts +2 -3
  845. package/script/methods/cloneColumn.d.ts.map +1 -1
  846. package/script/methods/cloneColumn.js +21 -13
  847. package/script/methods/cloneColumnWithOffset.d.ts +6 -0
  848. package/script/methods/cloneColumnWithOffset.d.ts.map +1 -0
  849. package/script/methods/cloneColumnWithOffset.js +41 -0
  850. package/script/methods/columnProportions.d.ts +6 -0
  851. package/script/methods/columnProportions.d.ts.map +1 -0
  852. package/script/methods/columnProportions.js +29 -0
  853. package/script/methods/concatenate.d.ts +5 -0
  854. package/script/methods/concatenate.d.ts.map +1 -0
  855. package/script/methods/concatenate.js +31 -0
  856. package/script/methods/convert.d.ts +13 -0
  857. package/script/methods/convert.d.ts.map +1 -0
  858. package/script/methods/convert.js +119 -0
  859. package/script/methods/correlations.d.ts +3 -3
  860. package/script/methods/correlations.d.ts.map +1 -1
  861. package/script/methods/correlations.js +70 -24
  862. package/script/methods/coveredBy.d.ts +3 -0
  863. package/script/methods/coveredBy.d.ts.map +1 -0
  864. package/script/methods/coveredBy.js +22 -0
  865. package/script/methods/createFtsIndex.d.ts +15 -2
  866. package/script/methods/createFtsIndex.d.ts.map +1 -1
  867. package/script/methods/createFtsIndex.js +53 -13
  868. package/script/methods/createPoints.d.ts +5 -0
  869. package/script/methods/createPoints.d.ts.map +1 -0
  870. package/script/methods/createPoints.js +29 -0
  871. package/script/methods/createVssIndex.d.ts +1 -1
  872. package/script/methods/createVssIndex.d.ts.map +1 -1
  873. package/script/methods/createVssIndex.js +34 -13
  874. package/script/methods/crossJoin.d.ts +5 -0
  875. package/script/methods/crossJoin.d.ts.map +1 -0
  876. package/script/methods/crossJoin.js +41 -0
  877. package/script/methods/difference.d.ts +3 -0
  878. package/script/methods/difference.d.ts.map +1 -0
  879. package/script/methods/difference.js +25 -0
  880. package/script/methods/distance.d.ts +7 -0
  881. package/script/methods/distance.d.ts.map +1 -0
  882. package/script/methods/distance.js +54 -0
  883. package/script/methods/extractDatePart.d.ts +7 -0
  884. package/script/methods/extractDatePart.d.ts.map +1 -0
  885. package/script/methods/extractDatePart.js +44 -0
  886. package/script/methods/extractLatLon.d.ts +3 -0
  887. package/script/methods/extractLatLon.d.ts.map +1 -0
  888. package/script/methods/extractLatLon.js +22 -0
  889. package/script/methods/fill.d.ts +2 -2
  890. package/script/methods/fill.d.ts.map +1 -1
  891. package/script/methods/fill.js +41 -44
  892. package/script/methods/fillHoles.d.ts +3 -0
  893. package/script/methods/fillHoles.d.ts.map +1 -0
  894. package/script/methods/fillHoles.js +25 -0
  895. package/script/methods/filter.d.ts +3 -0
  896. package/script/methods/filter.d.ts.map +1 -0
  897. package/script/methods/filter.js +20 -0
  898. package/script/methods/firstChars.d.ts +3 -0
  899. package/script/methods/firstChars.d.ts.map +1 -0
  900. package/script/methods/firstChars.js +17 -0
  901. package/script/methods/fixGeo.d.ts +3 -0
  902. package/script/methods/fixGeo.d.ts.map +1 -0
  903. package/script/methods/fixGeo.js +28 -0
  904. package/script/methods/flipCoordinates.d.ts +3 -0
  905. package/script/methods/flipCoordinates.d.ts.map +1 -0
  906. package/script/methods/flipCoordinates.js +28 -0
  907. package/script/methods/fuzzyClean.d.ts +3 -3
  908. package/script/methods/fuzzyClean.d.ts.map +1 -1
  909. package/script/methods/fuzzyClean.js +55 -55
  910. package/script/methods/fuzzyJoin.d.ts +2 -2
  911. package/script/methods/fuzzyJoin.d.ts.map +1 -1
  912. package/script/methods/fuzzyJoin.js +60 -19
  913. package/script/methods/getBottom.d.ts +1 -1
  914. package/script/methods/getBottom.d.ts.map +1 -1
  915. package/script/methods/getBottom.js +4 -3
  916. package/script/methods/getBoundingBox.d.ts +3 -0
  917. package/script/methods/getBoundingBox.d.ts.map +1 -0
  918. package/script/methods/getBoundingBox.js +25 -0
  919. package/script/methods/getCharacterCount.d.ts +3 -0
  920. package/script/methods/getCharacterCount.d.ts.map +1 -0
  921. package/script/methods/getCharacterCount.js +23 -0
  922. package/script/methods/getColumns.d.ts.map +1 -1
  923. package/script/methods/getColumns.js +4 -3
  924. package/script/methods/getData.d.ts +9 -0
  925. package/script/methods/getData.d.ts.map +1 -0
  926. package/script/methods/getData.js +29 -0
  927. package/script/methods/getDescription.d.ts.map +1 -1
  928. package/script/methods/getDescription.js +15 -10
  929. package/script/methods/getFirstRow.d.ts +1 -1
  930. package/script/methods/getFirstRow.d.ts.map +1 -1
  931. package/script/methods/getFirstRow.js +5 -4
  932. package/script/methods/getGeoData.d.ts +1 -1
  933. package/script/methods/getGeoData.d.ts.map +1 -1
  934. package/script/methods/getGeoData.js +5 -3
  935. package/script/methods/getHash.d.ts +3 -0
  936. package/script/methods/getHash.d.ts.map +1 -0
  937. package/script/methods/getHash.js +45 -0
  938. package/script/methods/getLastRow.d.ts +2 -2
  939. package/script/methods/getLastRow.d.ts.map +1 -1
  940. package/script/methods/getLastRow.js +7 -3
  941. package/script/methods/getMax.d.ts +1 -1
  942. package/script/methods/getMax.d.ts.map +1 -1
  943. package/script/methods/getMax.js +10 -10
  944. package/script/methods/getMean.d.ts.map +1 -1
  945. package/script/methods/getMean.js +7 -4
  946. package/script/methods/getMedian.d.ts.map +1 -1
  947. package/script/methods/getMedian.js +7 -4
  948. package/script/methods/getMin.d.ts +1 -1
  949. package/script/methods/getMin.d.ts.map +1 -1
  950. package/script/methods/getMin.js +10 -10
  951. package/script/methods/getQuantile.d.ts.map +1 -1
  952. package/script/methods/getQuantile.js +7 -4
  953. package/script/methods/getRowCount.d.ts +5 -0
  954. package/script/methods/getRowCount.d.ts.map +1 -0
  955. package/script/methods/getRowCount.js +22 -0
  956. package/script/methods/getSchema.d.ts +5 -0
  957. package/script/methods/getSchema.d.ts.map +1 -0
  958. package/script/methods/getSchema.js +18 -0
  959. package/script/methods/getSkew.d.ts.map +1 -1
  960. package/script/methods/getSkew.js +7 -4
  961. package/script/methods/getStdDev.d.ts.map +1 -1
  962. package/script/methods/getStdDev.js +7 -4
  963. package/script/methods/getSum.d.ts.map +1 -1
  964. package/script/methods/getSum.js +6 -3
  965. package/script/methods/getTableNames.js +2 -2
  966. package/script/methods/getTop.d.ts +1 -1
  967. package/script/methods/getTop.d.ts.map +1 -1
  968. package/script/methods/getTop.js +3 -2
  969. package/script/methods/getTypes.d.ts.map +1 -1
  970. package/script/methods/getTypes.js +3 -2
  971. package/script/methods/getUniques.d.ts +1 -1
  972. package/script/methods/getUniques.d.ts.map +1 -1
  973. package/script/methods/getUniques.js +6 -3
  974. package/script/methods/getValues.d.ts +1 -1
  975. package/script/methods/getValues.d.ts.map +1 -1
  976. package/script/methods/getValues.js +5 -3
  977. package/script/methods/getVariance.d.ts +5 -0
  978. package/script/methods/getVariance.d.ts.map +1 -0
  979. package/script/methods/getVariance.js +26 -0
  980. package/script/methods/indexValues.d.ts +27 -0
  981. package/script/methods/indexValues.d.ts.map +1 -0
  982. package/script/methods/indexValues.js +287 -0
  983. package/script/methods/insertRows.d.ts +5 -0
  984. package/script/methods/insertRows.d.ts.map +1 -0
  985. package/script/methods/insertRows.js +47 -0
  986. package/script/methods/insertTables.d.ts +5 -0
  987. package/script/methods/insertTables.d.ts.map +1 -0
  988. package/script/methods/insertTables.js +105 -0
  989. package/script/methods/intersection.d.ts +3 -0
  990. package/script/methods/intersection.d.ts.map +1 -0
  991. package/script/methods/intersection.js +25 -0
  992. package/script/methods/intersects.d.ts +3 -0
  993. package/script/methods/intersects.d.ts.map +1 -0
  994. package/script/methods/intersects.js +22 -0
  995. package/script/methods/join.d.ts +2 -2
  996. package/script/methods/join.d.ts.map +1 -1
  997. package/script/methods/join.js +77 -28
  998. package/script/methods/joinGeo.d.ts +6 -4
  999. package/script/methods/joinGeo.d.ts.map +1 -1
  1000. package/script/methods/joinGeo.js +125 -42
  1001. package/script/methods/keepValues.d.ts +5 -0
  1002. package/script/methods/keepValues.d.ts.map +1 -0
  1003. package/script/methods/keepValues.js +41 -0
  1004. package/script/methods/lastChars.d.ts +3 -0
  1005. package/script/methods/lastChars.d.ts.map +1 -0
  1006. package/script/methods/lastChars.js +17 -0
  1007. package/script/methods/length.d.ts +7 -0
  1008. package/script/methods/length.d.ts.map +1 -0
  1009. package/script/methods/length.js +31 -0
  1010. package/script/methods/linearRegressions.d.ts +3 -3
  1011. package/script/methods/linearRegressions.d.ts.map +1 -1
  1012. package/script/methods/linearRegressions.js +78 -24
  1013. package/script/methods/linesToPolygons.d.ts +3 -0
  1014. package/script/methods/linesToPolygons.d.ts.map +1 -0
  1015. package/script/methods/linesToPolygons.js +23 -0
  1016. package/script/methods/loadArray.d.ts +14 -2
  1017. package/script/methods/loadArray.d.ts.map +1 -1
  1018. package/script/methods/loadArray.js +54 -32
  1019. package/script/methods/loadDB.d.ts +3 -0
  1020. package/script/methods/loadDB.d.ts.map +1 -0
  1021. package/script/methods/loadDB.js +76 -0
  1022. package/script/methods/loadData.d.ts +52 -0
  1023. package/script/methods/loadData.d.ts.map +1 -0
  1024. package/script/methods/loadData.js +155 -0
  1025. package/script/methods/loadGeoData.d.ts +9 -0
  1026. package/script/methods/loadGeoData.d.ts.map +1 -0
  1027. package/script/methods/loadGeoData.js +110 -0
  1028. package/script/methods/loadOSM.d.ts +17 -0
  1029. package/script/methods/loadOSM.d.ts.map +1 -0
  1030. package/script/methods/loadOSM.js +201 -0
  1031. package/script/methods/loadSample.d.ts +1 -1
  1032. package/script/methods/loadSample.d.ts.map +1 -1
  1033. package/script/methods/loadSample.js +5 -4
  1034. package/script/methods/loadStatCanData.d.ts +10 -0
  1035. package/script/methods/loadStatCanData.d.ts.map +1 -0
  1036. package/script/methods/loadStatCanData.js +137 -0
  1037. package/script/methods/longer.d.ts +3 -0
  1038. package/script/methods/longer.d.ts.map +1 -0
  1039. package/script/methods/longer.js +29 -0
  1040. package/script/methods/lower.d.ts +3 -0
  1041. package/script/methods/lower.d.ts.map +1 -0
  1042. package/script/methods/lower.js +20 -0
  1043. package/script/methods/nest.d.ts +3 -0
  1044. package/script/methods/nest.d.ts.map +1 -0
  1045. package/script/methods/nest.js +29 -0
  1046. package/script/methods/normalize.d.ts +7 -0
  1047. package/script/methods/normalize.d.ts.map +1 -0
  1048. package/script/methods/normalize.js +47 -0
  1049. package/script/methods/normalizeString.d.ts +1 -1
  1050. package/script/methods/normalizeString.d.ts.map +1 -1
  1051. package/script/methods/normalizeString.js +15 -18
  1052. package/script/methods/outliersIQR.d.ts +5 -0
  1053. package/script/methods/outliersIQR.d.ts.map +1 -0
  1054. package/script/methods/outliersIQR.js +43 -0
  1055. package/script/methods/pad.d.ts +6 -0
  1056. package/script/methods/pad.d.ts.map +1 -0
  1057. package/script/methods/pad.js +61 -0
  1058. package/script/methods/perimeter.d.ts +7 -0
  1059. package/script/methods/perimeter.d.ts.map +1 -0
  1060. package/script/methods/perimeter.js +31 -0
  1061. package/script/methods/quantiles.d.ts +5 -0
  1062. package/script/methods/quantiles.d.ts.map +1 -0
  1063. package/script/methods/quantiles.js +28 -0
  1064. package/script/methods/randomPoint.d.ts +6 -0
  1065. package/script/methods/randomPoint.d.ts.map +1 -0
  1066. package/script/methods/randomPoint.js +111 -0
  1067. package/script/methods/ranks.d.ts +7 -0
  1068. package/script/methods/ranks.d.ts.map +1 -0
  1069. package/script/methods/ranks.js +28 -0
  1070. package/script/methods/reducePrecision.d.ts +5 -0
  1071. package/script/methods/reducePrecision.d.ts.map +1 -0
  1072. package/script/methods/reducePrecision.js +30 -0
  1073. package/script/methods/removeColumns.d.ts +3 -0
  1074. package/script/methods/removeColumns.d.ts.map +1 -0
  1075. package/script/methods/removeColumns.js +19 -0
  1076. package/script/methods/removeDuplicates.d.ts +5 -0
  1077. package/script/methods/removeDuplicates.d.ts.map +1 -0
  1078. package/script/methods/removeDuplicates.js +23 -0
  1079. package/script/methods/removeMissing.d.ts +1 -1
  1080. package/script/methods/removeMissing.d.ts.map +1 -1
  1081. package/script/methods/removeMissing.js +70 -11
  1082. package/script/methods/removeRows.d.ts +3 -0
  1083. package/script/methods/removeRows.d.ts.map +1 -0
  1084. package/script/methods/removeRows.js +20 -0
  1085. package/script/methods/removeTable.d.ts +3 -0
  1086. package/script/methods/removeTable.d.ts.map +1 -0
  1087. package/script/methods/removeTable.js +18 -0
  1088. package/script/methods/removeTables.d.ts +4 -0
  1089. package/script/methods/removeTables.d.ts.map +1 -0
  1090. package/script/methods/removeTables.js +27 -0
  1091. package/script/methods/removeValues.d.ts +5 -0
  1092. package/script/methods/removeValues.d.ts.map +1 -0
  1093. package/script/methods/removeValues.js +41 -0
  1094. package/script/methods/renameColumns.d.ts +7 -0
  1095. package/script/methods/renameColumns.d.ts.map +1 -0
  1096. package/script/methods/renameColumns.js +33 -0
  1097. package/script/methods/renameTable.d.ts +3 -0
  1098. package/script/methods/renameTable.d.ts.map +1 -0
  1099. package/script/methods/renameTable.js +18 -0
  1100. package/script/methods/repeatRows.d.ts +5 -0
  1101. package/script/methods/repeatRows.d.ts.map +1 -0
  1102. package/script/methods/repeatRows.js +25 -0
  1103. package/script/methods/replace.d.ts +8 -0
  1104. package/script/methods/replace.d.ts.map +1 -0
  1105. package/script/methods/replace.js +75 -0
  1106. package/script/methods/replaceNulls.d.ts +3 -0
  1107. package/script/methods/replaceNulls.d.ts.map +1 -0
  1108. package/script/methods/replaceNulls.js +42 -0
  1109. package/script/methods/reproject.d.ts +5 -0
  1110. package/script/methods/reproject.d.ts.map +1 -0
  1111. package/script/methods/reproject.js +27 -0
  1112. package/script/methods/rolling.d.ts +6 -0
  1113. package/script/methods/rolling.d.ts.map +1 -0
  1114. package/script/methods/rolling.js +48 -0
  1115. package/script/methods/round.d.ts +6 -0
  1116. package/script/methods/round.d.ts.map +1 -0
  1117. package/script/methods/round.js +28 -0
  1118. package/script/methods/rowProportions.d.ts +6 -0
  1119. package/script/methods/rowProportions.d.ts.map +1 -0
  1120. package/script/methods/rowProportions.js +36 -0
  1121. package/script/methods/rowRanks.d.ts +9 -0
  1122. package/script/methods/rowRanks.d.ts.map +1 -0
  1123. package/script/methods/rowRanks.js +119 -0
  1124. package/script/methods/rowToText.d.ts +3 -0
  1125. package/script/methods/rowToText.d.ts.map +1 -0
  1126. package/script/methods/rowToText.js +33 -0
  1127. package/script/methods/sample.d.ts +5 -0
  1128. package/script/methods/sample.d.ts.map +1 -0
  1129. package/script/methods/sample.js +22 -0
  1130. package/script/methods/selectColumns.d.ts +3 -0
  1131. package/script/methods/selectColumns.d.ts.map +1 -0
  1132. package/script/methods/selectColumns.js +25 -0
  1133. package/script/methods/selectRows.d.ts +6 -0
  1134. package/script/methods/selectRows.d.ts.map +1 -0
  1135. package/script/methods/selectRows.js +40 -0
  1136. package/script/methods/selectTables.d.ts +4 -0
  1137. package/script/methods/selectTables.d.ts.map +1 -0
  1138. package/script/methods/selectTables.js +31 -0
  1139. package/script/methods/setTypes.d.ts +5 -0
  1140. package/script/methods/setTypes.d.ts.map +1 -0
  1141. package/script/methods/setTypes.js +36 -0
  1142. package/script/methods/simplify.d.ts +6 -0
  1143. package/script/methods/simplify.d.ts.map +1 -0
  1144. package/script/methods/simplify.js +44 -0
  1145. package/script/methods/skip.d.ts +3 -0
  1146. package/script/methods/skip.d.ts.map +1 -0
  1147. package/script/methods/skip.js +17 -0
  1148. package/script/methods/sort.d.ts +9 -0
  1149. package/script/methods/sort.d.ts.map +1 -0
  1150. package/script/methods/sort.js +41 -0
  1151. package/script/methods/splitExtract.d.ts +3 -0
  1152. package/script/methods/splitExtract.d.ts.map +1 -0
  1153. package/script/methods/splitExtract.js +27 -0
  1154. package/script/methods/splitSpread.d.ts +2 -2
  1155. package/script/methods/splitSpread.d.ts.map +1 -1
  1156. package/script/methods/splitSpread.js +58 -35
  1157. package/script/methods/stream.d.ts +8 -0
  1158. package/script/methods/stream.d.ts.map +1 -0
  1159. package/script/methods/stream.js +65 -0
  1160. package/script/methods/summarize.d.ts +10 -8
  1161. package/script/methods/summarize.d.ts.map +1 -1
  1162. package/script/methods/summarize.js +165 -45
  1163. package/script/methods/trim.d.ts +6 -0
  1164. package/script/methods/trim.d.ts.map +1 -0
  1165. package/script/methods/trim.js +36 -0
  1166. package/script/methods/truncate.d.ts +3 -0
  1167. package/script/methods/truncate.d.ts.map +1 -0
  1168. package/script/methods/truncate.js +17 -0
  1169. package/script/methods/union.d.ts +3 -0
  1170. package/script/methods/union.d.ts.map +1 -0
  1171. package/script/methods/union.js +25 -0
  1172. package/script/methods/unnest.d.ts +3 -0
  1173. package/script/methods/unnest.d.ts.map +1 -0
  1174. package/script/methods/unnest.js +21 -0
  1175. package/script/methods/unnestGeo.d.ts +3 -0
  1176. package/script/methods/unnestGeo.d.ts.map +1 -0
  1177. package/script/methods/unnestGeo.js +24 -0
  1178. package/script/methods/updateColumn.d.ts +3 -0
  1179. package/script/methods/updateColumn.d.ts.map +1 -0
  1180. package/script/methods/updateColumn.js +21 -0
  1181. package/script/methods/updateWithJS.d.ts +11 -0
  1182. package/script/methods/updateWithJS.d.ts.map +1 -0
  1183. package/script/methods/updateWithJS.js +101 -0
  1184. package/script/methods/upper.d.ts +3 -0
  1185. package/script/methods/upper.d.ts.map +1 -0
  1186. package/script/methods/upper.js +20 -0
  1187. package/script/methods/wider.d.ts +5 -0
  1188. package/script/methods/wider.d.ts.map +1 -0
  1189. package/script/methods/wider.js +29 -0
  1190. package/script/methods/writeDB.d.ts +6 -0
  1191. package/script/methods/writeDB.d.ts.map +1 -0
  1192. package/script/methods/writeDB.js +105 -0
  1193. package/script/methods/writeData.d.ts +7 -0
  1194. package/script/methods/writeData.d.ts.map +1 -0
  1195. package/script/methods/writeData.js +86 -0
  1196. package/script/methods/zScore.d.ts +6 -0
  1197. package/script/methods/zScore.d.ts.map +1 -0
  1198. package/script/methods/zScore.js +35 -0
  1199. package/esm/helpers/accumulateQuery.d.ts +0 -4
  1200. package/esm/helpers/accumulateQuery.d.ts.map +0 -1
  1201. package/esm/helpers/accumulateQuery.js +0 -15
  1202. package/esm/helpers/checkVssIndexes.d.ts +0 -2
  1203. package/esm/helpers/checkVssIndexes.d.ts.map +0 -1
  1204. package/esm/helpers/checkVssIndexes.js +0 -16
  1205. package/esm/helpers/concatenateRowQuery.d.ts +0 -2
  1206. package/esm/helpers/concatenateRowQuery.d.ts.map +0 -1
  1207. package/esm/helpers/concatenateRowQuery.js +0 -9
  1208. package/esm/helpers/convertForJS.d.ts +0 -6
  1209. package/esm/helpers/convertForJS.d.ts.map +0 -1
  1210. package/esm/helpers/convertForJS.js +0 -41
  1211. package/esm/helpers/getName.d.ts +0 -2
  1212. package/esm/helpers/getName.d.ts.map +0 -1
  1213. package/esm/helpers/getName.js +0 -14
  1214. package/esm/helpers/nestQuery.d.ts +0 -2
  1215. package/esm/helpers/nestQuery.d.ts.map +0 -1
  1216. package/esm/helpers/nestQuery.js +0 -13
  1217. package/esm/helpers/repeatRowsQuery.d.ts +0 -4
  1218. package/esm/helpers/repeatRowsQuery.d.ts.map +0 -1
  1219. package/esm/helpers/repeatRowsQuery.js +0 -8
  1220. package/esm/helpers/unnestQuery.d.ts +0 -2
  1221. package/esm/helpers/unnestQuery.d.ts.map +0 -1
  1222. package/esm/helpers/unnestQuery.js +0 -8
  1223. package/esm/helpers/writeIndexes.d.ts +0 -3
  1224. package/esm/helpers/writeIndexes.d.ts.map +0 -1
  1225. package/esm/helpers/writeIndexes.js +0 -16
  1226. package/esm/methods/aggregateGeoQuery.d.ts +0 -5
  1227. package/esm/methods/aggregateGeoQuery.d.ts.map +0 -1
  1228. package/esm/methods/aggregateGeoQuery.js +0 -25
  1229. package/esm/methods/binsQuery.d.ts +0 -5
  1230. package/esm/methods/binsQuery.d.ts.map +0 -1
  1231. package/esm/methods/binsQuery.js +0 -40
  1232. package/esm/methods/boundingBoxQuery.d.ts +0 -4
  1233. package/esm/methods/boundingBoxQuery.d.ts.map +0 -1
  1234. package/esm/methods/boundingBoxQuery.js +0 -21
  1235. package/esm/methods/capitalizeQuery.d.ts +0 -2
  1236. package/esm/methods/capitalizeQuery.d.ts.map +0 -1
  1237. package/esm/methods/capitalizeQuery.js +0 -8
  1238. package/esm/methods/cloneQuery.d.ts +0 -6
  1239. package/esm/methods/cloneQuery.d.ts.map +0 -1
  1240. package/esm/methods/cloneQuery.js +0 -6
  1241. package/esm/methods/concatenateQuery.d.ts +0 -4
  1242. package/esm/methods/concatenateQuery.d.ts.map +0 -1
  1243. package/esm/methods/concatenateQuery.js +0 -13
  1244. package/esm/methods/convertQuery.d.ts +0 -7
  1245. package/esm/methods/convertQuery.d.ts.map +0 -1
  1246. package/esm/methods/convertQuery.js +0 -78
  1247. package/esm/methods/correlationsQuery.d.ts +0 -5
  1248. package/esm/methods/correlationsQuery.d.ts.map +0 -1
  1249. package/esm/methods/correlationsQuery.js +0 -26
  1250. package/esm/methods/crossJoinQuery.d.ts +0 -4
  1251. package/esm/methods/crossJoinQuery.d.ts.map +0 -1
  1252. package/esm/methods/crossJoinQuery.js +0 -3
  1253. package/esm/methods/distanceQuery.d.ts +0 -6
  1254. package/esm/methods/distanceQuery.d.ts.map +0 -1
  1255. package/esm/methods/distanceQuery.js +0 -44
  1256. package/esm/methods/fuzzyJoinQuery.d.ts +0 -2
  1257. package/esm/methods/fuzzyJoinQuery.d.ts.map +0 -1
  1258. package/esm/methods/fuzzyJoinQuery.js +0 -29
  1259. package/esm/methods/getNbCharacters.d.ts +0 -3
  1260. package/esm/methods/getNbCharacters.d.ts.map +0 -1
  1261. package/esm/methods/getNbCharacters.js +0 -15
  1262. package/esm/methods/getNbRows.d.ts +0 -5
  1263. package/esm/methods/getNbRows.d.ts.map +0 -1
  1264. package/esm/methods/getNbRows.js +0 -15
  1265. package/esm/methods/getVar.d.ts +0 -5
  1266. package/esm/methods/getVar.d.ts.map +0 -1
  1267. package/esm/methods/getVar.js +0 -17
  1268. package/esm/methods/insertRowsQuery.d.ts +0 -4
  1269. package/esm/methods/insertRowsQuery.d.ts.map +0 -1
  1270. package/esm/methods/insertRowsQuery.js +0 -11
  1271. package/esm/methods/joinGeoQuery.d.ts +0 -2
  1272. package/esm/methods/joinGeoQuery.d.ts.map +0 -1
  1273. package/esm/methods/joinGeoQuery.js +0 -55
  1274. package/esm/methods/joinQuery.d.ts +0 -2
  1275. package/esm/methods/joinQuery.d.ts.map +0 -1
  1276. package/esm/methods/joinQuery.js +0 -21
  1277. package/esm/methods/keepQuery.d.ts +0 -4
  1278. package/esm/methods/keepQuery.d.ts.map +0 -1
  1279. package/esm/methods/keepQuery.js +0 -15
  1280. package/esm/methods/linearRegressionQuery.d.ts +0 -5
  1281. package/esm/methods/linearRegressionQuery.d.ts.map +0 -1
  1282. package/esm/methods/linearRegressionQuery.js +0 -37
  1283. package/esm/methods/loadDataQuery.d.ts +0 -24
  1284. package/esm/methods/loadDataQuery.d.ts.map +0 -1
  1285. package/esm/methods/loadDataQuery.js +0 -85
  1286. package/esm/methods/lowerQuery.d.ts +0 -2
  1287. package/esm/methods/lowerQuery.d.ts.map +0 -1
  1288. package/esm/methods/lowerQuery.js +0 -7
  1289. package/esm/methods/normalizeQuery.d.ts +0 -5
  1290. package/esm/methods/normalizeQuery.d.ts.map +0 -1
  1291. package/esm/methods/normalizeQuery.js +0 -22
  1292. package/esm/methods/outliersIQRQuery.d.ts +0 -4
  1293. package/esm/methods/outliersIQRQuery.d.ts.map +0 -1
  1294. package/esm/methods/outliersIQRQuery.js +0 -31
  1295. package/esm/methods/padQuery.d.ts +0 -5
  1296. package/esm/methods/padQuery.d.ts.map +0 -1
  1297. package/esm/methods/padQuery.js +0 -14
  1298. package/esm/methods/proportionsHorizontalQuery.d.ts +0 -5
  1299. package/esm/methods/proportionsHorizontalQuery.d.ts.map +0 -1
  1300. package/esm/methods/proportionsHorizontalQuery.js +0 -15
  1301. package/esm/methods/proportionsVerticalQuery.d.ts +0 -5
  1302. package/esm/methods/proportionsVerticalQuery.d.ts.map +0 -1
  1303. package/esm/methods/proportionsVerticalQuery.js +0 -19
  1304. package/esm/methods/quantilesQuery.d.ts +0 -4
  1305. package/esm/methods/quantilesQuery.d.ts.map +0 -1
  1306. package/esm/methods/quantilesQuery.js +0 -12
  1307. package/esm/methods/randomPointQuery.d.ts +0 -2
  1308. package/esm/methods/randomPointQuery.d.ts.map +0 -1
  1309. package/esm/methods/randomPointQuery.js +0 -66
  1310. package/esm/methods/ranksQuery.d.ts +0 -6
  1311. package/esm/methods/ranksQuery.d.ts.map +0 -1
  1312. package/esm/methods/ranksQuery.js +0 -12
  1313. package/esm/methods/removeDuplicatesQuery.d.ts +0 -4
  1314. package/esm/methods/removeDuplicatesQuery.d.ts.map +0 -1
  1315. package/esm/methods/removeDuplicatesQuery.js +0 -12
  1316. package/esm/methods/removeMissingQuery.d.ts +0 -7
  1317. package/esm/methods/removeMissingQuery.d.ts.map +0 -1
  1318. package/esm/methods/removeMissingQuery.js +0 -43
  1319. package/esm/methods/removeQuery.d.ts +0 -4
  1320. package/esm/methods/removeQuery.d.ts.map +0 -1
  1321. package/esm/methods/removeQuery.js +0 -15
  1322. package/esm/methods/renameColumnQuery.d.ts +0 -2
  1323. package/esm/methods/renameColumnQuery.d.ts.map +0 -1
  1324. package/esm/methods/renameColumnQuery.js +0 -7
  1325. package/esm/methods/replaceNullsQuery.d.ts +0 -2
  1326. package/esm/methods/replaceNullsQuery.d.ts.map +0 -1
  1327. package/esm/methods/replaceNullsQuery.js +0 -10
  1328. package/esm/methods/replaceQuery.d.ts +0 -5
  1329. package/esm/methods/replaceQuery.d.ts.map +0 -1
  1330. package/esm/methods/replaceQuery.js +0 -24
  1331. package/esm/methods/rollingQuery.d.ts +0 -5
  1332. package/esm/methods/rollingQuery.d.ts.map +0 -1
  1333. package/esm/methods/rollingQuery.js +0 -33
  1334. package/esm/methods/roundQuery.d.ts +0 -5
  1335. package/esm/methods/roundQuery.d.ts.map +0 -1
  1336. package/esm/methods/roundQuery.js +0 -16
  1337. package/esm/methods/selectRowsQuery.d.ts +0 -5
  1338. package/esm/methods/selectRowsQuery.d.ts.map +0 -1
  1339. package/esm/methods/selectRowsQuery.js +0 -3
  1340. package/esm/methods/sortQuery.d.ts +0 -8
  1341. package/esm/methods/sortQuery.d.ts.map +0 -1
  1342. package/esm/methods/sortQuery.js +0 -18
  1343. package/esm/methods/summarizeQuery.d.ts +0 -7
  1344. package/esm/methods/summarizeQuery.d.ts.map +0 -1
  1345. package/esm/methods/summarizeQuery.js +0 -112
  1346. package/esm/methods/trimQuery.d.ts +0 -5
  1347. package/esm/methods/trimQuery.d.ts.map +0 -1
  1348. package/esm/methods/trimQuery.js +0 -29
  1349. package/esm/methods/truncateQuery.d.ts +0 -2
  1350. package/esm/methods/truncateQuery.d.ts.map +0 -1
  1351. package/esm/methods/truncateQuery.js +0 -3
  1352. package/esm/methods/upperQuery.d.ts +0 -2
  1353. package/esm/methods/upperQuery.d.ts.map +0 -1
  1354. package/esm/methods/upperQuery.js +0 -7
  1355. package/esm/methods/writeDataQuery.d.ts +0 -5
  1356. package/esm/methods/writeDataQuery.d.ts.map +0 -1
  1357. package/esm/methods/writeDataQuery.js +0 -44
  1358. package/esm/methods/writeGeoDataQuery.d.ts +0 -4
  1359. package/esm/methods/writeGeoDataQuery.d.ts.map +0 -1
  1360. package/esm/methods/writeGeoDataQuery.js +0 -19
  1361. package/esm/methods/zScoreQuery.d.ts +0 -5
  1362. package/esm/methods/zScoreQuery.d.ts.map +0 -1
  1363. package/esm/methods/zScoreQuery.js +0 -23
  1364. package/script/helpers/accumulateQuery.d.ts +0 -4
  1365. package/script/helpers/accumulateQuery.d.ts.map +0 -1
  1366. package/script/helpers/accumulateQuery.js +0 -21
  1367. package/script/helpers/checkVssIndexes.d.ts +0 -2
  1368. package/script/helpers/checkVssIndexes.d.ts.map +0 -1
  1369. package/script/helpers/checkVssIndexes.js +0 -19
  1370. package/script/helpers/concatenateRowQuery.d.ts +0 -2
  1371. package/script/helpers/concatenateRowQuery.d.ts.map +0 -1
  1372. package/script/helpers/concatenateRowQuery.js +0 -12
  1373. package/script/helpers/convertForJS.d.ts +0 -6
  1374. package/script/helpers/convertForJS.d.ts.map +0 -1
  1375. package/script/helpers/convertForJS.js +0 -44
  1376. package/script/helpers/getName.d.ts +0 -2
  1377. package/script/helpers/getName.d.ts.map +0 -1
  1378. package/script/helpers/getName.js +0 -17
  1379. package/script/helpers/nestQuery.d.ts +0 -2
  1380. package/script/helpers/nestQuery.d.ts.map +0 -1
  1381. package/script/helpers/nestQuery.js +0 -19
  1382. package/script/helpers/repeatRowsQuery.d.ts +0 -4
  1383. package/script/helpers/repeatRowsQuery.d.ts.map +0 -1
  1384. package/script/helpers/repeatRowsQuery.js +0 -11
  1385. package/script/helpers/unnestQuery.d.ts +0 -2
  1386. package/script/helpers/unnestQuery.d.ts.map +0 -1
  1387. package/script/helpers/unnestQuery.js +0 -11
  1388. package/script/helpers/writeIndexes.d.ts +0 -3
  1389. package/script/helpers/writeIndexes.d.ts.map +0 -1
  1390. package/script/helpers/writeIndexes.js +0 -19
  1391. package/script/methods/aggregateGeoQuery.d.ts +0 -5
  1392. package/script/methods/aggregateGeoQuery.d.ts.map +0 -1
  1393. package/script/methods/aggregateGeoQuery.js +0 -31
  1394. package/script/methods/binsQuery.d.ts +0 -5
  1395. package/script/methods/binsQuery.d.ts.map +0 -1
  1396. package/script/methods/binsQuery.js +0 -43
  1397. package/script/methods/boundingBoxQuery.d.ts +0 -4
  1398. package/script/methods/boundingBoxQuery.d.ts.map +0 -1
  1399. package/script/methods/boundingBoxQuery.js +0 -24
  1400. package/script/methods/capitalizeQuery.d.ts +0 -2
  1401. package/script/methods/capitalizeQuery.d.ts.map +0 -1
  1402. package/script/methods/capitalizeQuery.js +0 -11
  1403. package/script/methods/cloneQuery.d.ts +0 -6
  1404. package/script/methods/cloneQuery.d.ts.map +0 -1
  1405. package/script/methods/cloneQuery.js +0 -9
  1406. package/script/methods/concatenateQuery.d.ts +0 -4
  1407. package/script/methods/concatenateQuery.d.ts.map +0 -1
  1408. package/script/methods/concatenateQuery.js +0 -16
  1409. package/script/methods/convertQuery.d.ts +0 -7
  1410. package/script/methods/convertQuery.d.ts.map +0 -1
  1411. package/script/methods/convertQuery.js +0 -84
  1412. package/script/methods/correlationsQuery.d.ts +0 -5
  1413. package/script/methods/correlationsQuery.d.ts.map +0 -1
  1414. package/script/methods/correlationsQuery.js +0 -32
  1415. package/script/methods/crossJoinQuery.d.ts +0 -4
  1416. package/script/methods/crossJoinQuery.d.ts.map +0 -1
  1417. package/script/methods/crossJoinQuery.js +0 -6
  1418. package/script/methods/distanceQuery.d.ts +0 -6
  1419. package/script/methods/distanceQuery.d.ts.map +0 -1
  1420. package/script/methods/distanceQuery.js +0 -47
  1421. package/script/methods/fuzzyJoinQuery.d.ts +0 -2
  1422. package/script/methods/fuzzyJoinQuery.d.ts.map +0 -1
  1423. package/script/methods/fuzzyJoinQuery.js +0 -32
  1424. package/script/methods/getNbCharacters.d.ts +0 -3
  1425. package/script/methods/getNbCharacters.d.ts.map +0 -1
  1426. package/script/methods/getNbCharacters.js +0 -21
  1427. package/script/methods/getNbRows.d.ts +0 -5
  1428. package/script/methods/getNbRows.d.ts.map +0 -1
  1429. package/script/methods/getNbRows.js +0 -21
  1430. package/script/methods/getVar.d.ts +0 -5
  1431. package/script/methods/getVar.d.ts.map +0 -1
  1432. package/script/methods/getVar.js +0 -23
  1433. package/script/methods/insertRowsQuery.d.ts +0 -4
  1434. package/script/methods/insertRowsQuery.d.ts.map +0 -1
  1435. package/script/methods/insertRowsQuery.js +0 -17
  1436. package/script/methods/joinGeoQuery.d.ts +0 -2
  1437. package/script/methods/joinGeoQuery.d.ts.map +0 -1
  1438. package/script/methods/joinGeoQuery.js +0 -58
  1439. package/script/methods/joinQuery.d.ts +0 -2
  1440. package/script/methods/joinQuery.d.ts.map +0 -1
  1441. package/script/methods/joinQuery.js +0 -24
  1442. package/script/methods/keepQuery.d.ts +0 -4
  1443. package/script/methods/keepQuery.d.ts.map +0 -1
  1444. package/script/methods/keepQuery.js +0 -21
  1445. package/script/methods/linearRegressionQuery.d.ts +0 -5
  1446. package/script/methods/linearRegressionQuery.d.ts.map +0 -1
  1447. package/script/methods/linearRegressionQuery.js +0 -43
  1448. package/script/methods/loadDataQuery.d.ts +0 -24
  1449. package/script/methods/loadDataQuery.d.ts.map +0 -1
  1450. package/script/methods/loadDataQuery.js +0 -91
  1451. package/script/methods/lowerQuery.d.ts +0 -2
  1452. package/script/methods/lowerQuery.d.ts.map +0 -1
  1453. package/script/methods/lowerQuery.js +0 -10
  1454. package/script/methods/normalizeQuery.d.ts +0 -5
  1455. package/script/methods/normalizeQuery.d.ts.map +0 -1
  1456. package/script/methods/normalizeQuery.js +0 -28
  1457. package/script/methods/outliersIQRQuery.d.ts +0 -4
  1458. package/script/methods/outliersIQRQuery.d.ts.map +0 -1
  1459. package/script/methods/outliersIQRQuery.js +0 -37
  1460. package/script/methods/padQuery.d.ts +0 -5
  1461. package/script/methods/padQuery.d.ts.map +0 -1
  1462. package/script/methods/padQuery.js +0 -17
  1463. package/script/methods/proportionsHorizontalQuery.d.ts +0 -5
  1464. package/script/methods/proportionsHorizontalQuery.d.ts.map +0 -1
  1465. package/script/methods/proportionsHorizontalQuery.js +0 -18
  1466. package/script/methods/proportionsVerticalQuery.d.ts +0 -5
  1467. package/script/methods/proportionsVerticalQuery.d.ts.map +0 -1
  1468. package/script/methods/proportionsVerticalQuery.js +0 -25
  1469. package/script/methods/quantilesQuery.d.ts +0 -4
  1470. package/script/methods/quantilesQuery.d.ts.map +0 -1
  1471. package/script/methods/quantilesQuery.js +0 -18
  1472. package/script/methods/randomPointQuery.d.ts +0 -2
  1473. package/script/methods/randomPointQuery.d.ts.map +0 -1
  1474. package/script/methods/randomPointQuery.js +0 -69
  1475. package/script/methods/ranksQuery.d.ts +0 -6
  1476. package/script/methods/ranksQuery.d.ts.map +0 -1
  1477. package/script/methods/ranksQuery.js +0 -18
  1478. package/script/methods/removeDuplicatesQuery.d.ts +0 -4
  1479. package/script/methods/removeDuplicatesQuery.d.ts.map +0 -1
  1480. package/script/methods/removeDuplicatesQuery.js +0 -18
  1481. package/script/methods/removeMissingQuery.d.ts +0 -7
  1482. package/script/methods/removeMissingQuery.d.ts.map +0 -1
  1483. package/script/methods/removeMissingQuery.js +0 -46
  1484. package/script/methods/removeQuery.d.ts +0 -4
  1485. package/script/methods/removeQuery.d.ts.map +0 -1
  1486. package/script/methods/removeQuery.js +0 -21
  1487. package/script/methods/renameColumnQuery.d.ts +0 -2
  1488. package/script/methods/renameColumnQuery.d.ts.map +0 -1
  1489. package/script/methods/renameColumnQuery.js +0 -10
  1490. package/script/methods/replaceNullsQuery.d.ts +0 -2
  1491. package/script/methods/replaceNullsQuery.d.ts.map +0 -1
  1492. package/script/methods/replaceNullsQuery.js +0 -16
  1493. package/script/methods/replaceQuery.d.ts +0 -5
  1494. package/script/methods/replaceQuery.d.ts.map +0 -1
  1495. package/script/methods/replaceQuery.js +0 -27
  1496. package/script/methods/rollingQuery.d.ts +0 -5
  1497. package/script/methods/rollingQuery.d.ts.map +0 -1
  1498. package/script/methods/rollingQuery.js +0 -39
  1499. package/script/methods/roundQuery.d.ts +0 -5
  1500. package/script/methods/roundQuery.d.ts.map +0 -1
  1501. package/script/methods/roundQuery.js +0 -19
  1502. package/script/methods/selectRowsQuery.d.ts +0 -5
  1503. package/script/methods/selectRowsQuery.d.ts.map +0 -1
  1504. package/script/methods/selectRowsQuery.js +0 -6
  1505. package/script/methods/sortQuery.d.ts +0 -8
  1506. package/script/methods/sortQuery.d.ts.map +0 -1
  1507. package/script/methods/sortQuery.js +0 -21
  1508. package/script/methods/summarizeQuery.d.ts +0 -7
  1509. package/script/methods/summarizeQuery.d.ts.map +0 -1
  1510. package/script/methods/summarizeQuery.js +0 -115
  1511. package/script/methods/trimQuery.d.ts +0 -5
  1512. package/script/methods/trimQuery.d.ts.map +0 -1
  1513. package/script/methods/trimQuery.js +0 -32
  1514. package/script/methods/truncateQuery.d.ts +0 -2
  1515. package/script/methods/truncateQuery.d.ts.map +0 -1
  1516. package/script/methods/truncateQuery.js +0 -6
  1517. package/script/methods/upperQuery.d.ts +0 -2
  1518. package/script/methods/upperQuery.d.ts.map +0 -1
  1519. package/script/methods/upperQuery.js +0 -10
  1520. package/script/methods/writeDataQuery.d.ts +0 -5
  1521. package/script/methods/writeDataQuery.d.ts.map +0 -1
  1522. package/script/methods/writeDataQuery.js +0 -50
  1523. package/script/methods/writeGeoDataQuery.d.ts +0 -4
  1524. package/script/methods/writeGeoDataQuery.d.ts.map +0 -1
  1525. package/script/methods/writeGeoDataQuery.js +0 -25
  1526. package/script/methods/zScoreQuery.d.ts +0 -5
  1527. package/script/methods/zScoreQuery.d.ts.map +0 -1
  1528. package/script/methods/zScoreQuery.js +0 -29
@@ -1,26 +1,81 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
36
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
37
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
38
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
39
+ };
40
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
41
+ if (kind === "m") throw new TypeError("Private method is not writable");
42
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
43
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
44
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
45
+ };
2
46
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
47
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
48
  };
49
+ var _SimpleDB_instances, _SimpleDB_closePromise, _SimpleDB_startPromise, _SimpleDB_initialized, _SimpleDB_setup, _SimpleDB_close;
5
50
  Object.defineProperty(exports, "__esModule", { value: true });
51
+ const quoteIdentifier_js_1 = __importDefault(require("../helpers/quoteIdentifier.js"));
6
52
  const node_api_1 = require("@duckdb/node-api");
7
53
  const runQuery_js_1 = __importDefault(require("../helpers/runQuery.js"));
8
54
  const SimpleTable_js_1 = __importDefault(require("./SimpleTable.js"));
9
55
  const cleanCache_js_1 = __importDefault(require("../helpers/cleanCache.js"));
10
- const createDirectory_js_1 = __importDefault(require("../helpers/createDirectory.js"));
11
56
  const prettyDuration_js_1 = __importDefault(require("../helpers/prettyDuration.js"));
12
57
  const Simple_js_1 = __importDefault(require("./Simple.js"));
13
58
  const queryDB_js_1 = __importDefault(require("../helpers/queryDB.js"));
14
59
  const mergeOptions_js_1 = __importDefault(require("../helpers/mergeOptions.js"));
15
60
  const getTableNames_js_1 = __importDefault(require("../methods/getTableNames.js"));
16
- const cleanPath_js_1 = __importDefault(require("../helpers/cleanPath.js"));
17
- const getExtension_js_1 = __importDefault(require("../helpers/getExtension.js"));
18
61
  const node_fs_1 = require("node:fs");
19
- const checkVssIndexes_js_1 = __importDefault(require("../helpers/checkVssIndexes.js"));
62
+ const createDirectory_js_1 = __importDefault(require("../helpers/createDirectory.js"));
63
+ const getDbFileType_js_1 = __importDefault(require("../helpers/getDbFileType.js"));
64
+ const getCurrentDatabase_js_1 = __importDefault(require("../helpers/getCurrentDatabase.js"));
65
+ const getDbIndexes_js_1 = __importDefault(require("../helpers/getDbIndexes.js"));
66
+ const readDbMetadata_js_1 = __importDefault(require("../helpers/readDbMetadata.js"));
67
+ const writeDbMetadata_js_1 = __importDefault(require("../helpers/writeDbMetadata.js"));
68
+ const prepareDbExtensions_js_1 = __importDefault(require("../helpers/prepareDbExtensions.js"));
20
69
  const setDbProps_js_1 = __importDefault(require("../helpers/setDbProps.js"));
21
- const writeIndexes_js_1 = __importDefault(require("../helpers/writeIndexes.js"));
22
- const getName_js_1 = __importDefault(require("../helpers/getName.js"));
23
- const node_fs_2 = require("node:fs");
70
+ const queryDbFile_js_1 = __importDefault(require("../helpers/queryDbFile.js"));
71
+ const removeTables_js_1 = __importDefault(require("../methods/removeTables.js"));
72
+ const selectTables_js_1 = __importDefault(require("../methods/selectTables.js"));
73
+ const loadDB_js_1 = __importDefault(require("../methods/loadDB.js"));
74
+ const writeDB_js_1 = __importDefault(require("../methods/writeDB.js"));
75
+ const flushAllTables_js_1 = __importStar(require("../helpers/flushAllTables.js"));
76
+ const queueOp_js_1 = require("../helpers/queueOp.js");
77
+ const tableRegistry_js_1 = require("../helpers/tableRegistry.js");
78
+ const formatMissingTables_js_1 = __importDefault(require("../helpers/formatMissingTables.js"));
24
79
  /**
25
80
  * Manages a DuckDB database instance, providing a simplified interface for database operations.
26
81
  *
@@ -28,32 +83,30 @@ const node_fs_2 = require("node:fs");
28
83
  * ```ts
29
84
  * // Create an in-memory database instance
30
85
  * const sdb = new SimpleDB();
31
- * // Create a new table named "employees"
32
- * const employees = sdb.newTable("employees");
33
- * // Load data from a CSV file into the "employees" table
34
- * await employees.loadData("./employees.csv");
35
- * // Log the first few rows of the "employees" table to the console
36
- * await employees.logTable();
86
+ * // Create a table, load a CSV file, and log its first few rows
87
+ * const employees = await sdb
88
+ * .newTable("employees")
89
+ * .loadData("./employees.csv")
90
+ * .log();
37
91
  * // Close the database connection and clean up resources
38
- * await sdb.done();
92
+ * await sdb.close();
39
93
  * ```
40
94
  *
41
95
  * @example
42
96
  * ```ts
43
- * // Create a persistent database instance, saving data to a file
44
- * // To load an existing database, use the `loadDB` method instead
97
+ * // Open or create a persistent DuckDB database. Changes persist in this file.
45
98
  * const sdb = new SimpleDB({ file: "./my_database.db" });
46
99
  * // Perform database operations...
47
- * // Close the database connection, which saves changes to the specified file
48
- * await sdb.done();
100
+ * // Execute pending work, save SDA metadata, and close the database connection
101
+ * await sdb.close();
49
102
  * ```
50
103
  *
51
104
  * @example
52
105
  * ```ts
53
106
  * // Create a database instance with custom options
54
107
  * const sdb = new SimpleDB({
55
- * debug: true, // Enable debugging output
56
- * nbRowsToLog: 20 // Set the number of rows to log by default
108
+ * logSQL: true, // Log SQL immediately before it runs
109
+ * rowsToLog: 20 // Set the number of rows to log by default
57
110
  * });
58
111
  * ```
59
112
  */
@@ -61,21 +114,73 @@ class SimpleDB extends Simple_js_1.default {
61
114
  /**
62
115
  * Creates a new SimpleDB instance.
63
116
  *
117
+ * DuckDB sessions use UTC so temporal parsing, extraction, and returned
118
+ * `TIMESTAMP WITH TIME ZONE` strings are consistent across environments.
119
+ *
120
+ * Existing tables and SDA index metadata are restored on first use. The
121
+ * `__sda` schema is reserved for versioned SDA metadata. SQLite files can be
122
+ * imported with `loadDB()` but cannot be used as the persistent database.
123
+ *
64
124
  * @param options - Configuration options for the SimpleDB instance.
65
- * @param options.file - The path to the database file. If not provided, an in-memory database is used.
66
- * @param options.overwrite - A flag indicating whether to overwrite the database file if it already exists.
125
+ * @param options.file - A `.db` or `.duckdb` file to open or create. Defaults to an in-memory database.
126
+ * @param options.overwrite - If true, replaces an existing file on first use. Defaults to false, which opens the existing file.
127
+ * @param options.readOnly - Opens an existing DuckDB file read-only. Defaults to false. Requires a file and cannot be combined with overwrite.
67
128
  * @param options.logDuration - A flag indicating whether to log the total execution duration.
68
- * @param options.nbRowsToLog - The number of rows to display when logging a table.
69
- * @param options.nbCharactersToLog - The maximum number of characters to display for text-based cells.
70
- * @param options.types - A flag indicating whether to include data types when logging a table.
71
- * @param options.cacheVerbose - A flag indicating whether to log verbose cache-related messages.
72
- * @param options.debug - A flag indicating whether to log debugging information.
129
+ * @param options.rowsToLog - The number of rows to display when logging a table.
130
+ * @param options.charsToLog - The maximum number of characters to display for text-based cells.
131
+ * @param options.typesToLog - A flag indicating whether to include data types when logging a table.
132
+ * @param options.cacheVerbose - Whether to log cache hits and misses, code and input changes, TTL status, and cache read/write timing.
133
+ * @param options.logSQL - A flag indicating whether to log SQL immediately before execution.
134
+ * @param options.explainSQL - A flag indicating whether to log DuckDB query plans for supported statements.
73
135
  * @param options.duckDbCache - A flag indicating whether to use DuckDB's external file cache.
74
136
  * @param options.progressBar - A flag indicating whether to display a progress bar for long-running operations.
137
+ * @param options.memoryLimit - The maximum amount of memory DuckDB is allowed to use (e.g., `'4GB'`). Defaults to 80% of system RAM.
138
+ * @param options.tempDir - The path to the directory used for temporary files when data exceeds the memory limit (e.g., `'/tmp/duckdb_swap'`). Defaults to `.tmp` for in-memory databases or `<file>.tmp` for file-based databases. Automatically removed when calling `close()`.
75
139
  * @category Constructor
140
+ *
141
+ * @example
142
+ * ```ts
143
+ * const sdb = new SimpleDB({
144
+ * logSQL: true,
145
+ * explainSQL: true,
146
+ * });
147
+ * ```
76
148
  */
77
149
  constructor(options = {}) {
78
150
  super(options);
151
+ _SimpleDB_instances.add(this);
152
+ /**
153
+ * Whether to log each SQL statement immediately before execution.
154
+ *
155
+ * @defaultValue `false`
156
+ * @category Properties
157
+ * @example
158
+ * ```ts
159
+ * const sdb = new SimpleDB({ logSQL: true });
160
+ * ```
161
+ */
162
+ Object.defineProperty(this, "logSQL", {
163
+ enumerable: true,
164
+ configurable: true,
165
+ writable: true,
166
+ value: void 0
167
+ });
168
+ /**
169
+ * Whether to log DuckDB query plans before supported statements execute.
170
+ *
171
+ * @defaultValue `false`
172
+ * @category Properties
173
+ * @example
174
+ * ```ts
175
+ * const sdb = new SimpleDB({ explainSQL: true });
176
+ * ```
177
+ */
178
+ Object.defineProperty(this, "explainSQL", {
179
+ enumerable: true,
180
+ configurable: true,
181
+ writable: true,
182
+ value: void 0
183
+ });
79
184
  /**
80
185
  * An array of paths to the data sources used in the cache.
81
186
  *
@@ -125,19 +230,8 @@ class SimpleDB extends Simple_js_1.default {
125
230
  value: void 0
126
231
  });
127
232
  /**
128
- * An array of table instances associated with this database.
129
- *
130
- * @defaultValue `[]`
131
- * @category Properties
132
- */
133
- Object.defineProperty(this, "tables", {
134
- enumerable: true,
135
- configurable: true,
136
- writable: true,
137
- value: void 0
138
- });
139
- /**
140
- * A flag indicating whether to log verbose cache-related messages.
233
+ * Whether to log cache hits and misses, code and input changes, TTL status,
234
+ * and cache read/write timing.
141
235
  *
142
236
  * @defaultValue `false`
143
237
  * @category Properties
@@ -184,6 +278,75 @@ class SimpleDB extends Simple_js_1.default {
184
278
  writable: true,
185
279
  value: void 0
186
280
  });
281
+ /**
282
+ * The in-flight flush of the pending chains, if one is running. Concurrent
283
+ * observers await it instead of reading mid-flush state. This is for
284
+ * internal use only.
285
+ *
286
+ * @defaultValue `null`
287
+ * @internal
288
+ */
289
+ Object.defineProperty(this, "flushPromise", {
290
+ enumerable: true,
291
+ configurable: true,
292
+ writable: true,
293
+ value: void 0
294
+ });
295
+ _SimpleDB_closePromise.set(this, null);
296
+ _SimpleDB_startPromise.set(this, null);
297
+ _SimpleDB_initialized.set(this, false);
298
+ /**
299
+ * The database lifecycle state. This is for internal use only.
300
+ *
301
+ * @internal
302
+ */
303
+ Object.defineProperty(this, "lifecycleState", {
304
+ enumerable: true,
305
+ configurable: true,
306
+ writable: true,
307
+ value: void 0
308
+ });
309
+ /**
310
+ * The number of queued operations across all tables, so query execution
311
+ * points skip the flush entirely when nothing is pending. This is for
312
+ * internal use only.
313
+ *
314
+ * @defaultValue `0`
315
+ * @internal
316
+ */
317
+ Object.defineProperty(this, "pendingCount", {
318
+ enumerable: true,
319
+ configurable: true,
320
+ writable: true,
321
+ value: void 0
322
+ });
323
+ /**
324
+ * A counter stamping queued operations with their position in program
325
+ * order across all tables, so flushes replay them in the order they were
326
+ * queued. This is for internal use only.
327
+ *
328
+ * @defaultValue `0`
329
+ * @internal
330
+ */
331
+ Object.defineProperty(this, "opSequence", {
332
+ enumerable: true,
333
+ configurable: true,
334
+ writable: true,
335
+ value: void 0
336
+ });
337
+ /**
338
+ * A flag indicating that the spatial extension has been loaded on this
339
+ * connection, so it's only loaded once. This is for internal use only.
340
+ *
341
+ * @defaultValue `false`
342
+ * @internal
343
+ */
344
+ Object.defineProperty(this, "spatialLoaded", {
345
+ enumerable: true,
346
+ configurable: true,
347
+ writable: true,
348
+ value: void 0
349
+ });
187
350
  /**
188
351
  * A flag indicating whether to use DuckDB's external file cache.
189
352
  *
@@ -197,7 +360,32 @@ class SimpleDB extends Simple_js_1.default {
197
360
  value: void 0
198
361
  });
199
362
  /**
200
- * The path to the database file. If not provided, an in-memory database is used.
363
+ * The maximum amount of memory DuckDB is allowed to use (e.g., `'4GB'`). Defaults to 80% of system RAM.
364
+ *
365
+ * @defaultValue `undefined`
366
+ * @category Properties
367
+ */
368
+ Object.defineProperty(this, "memoryLimit", {
369
+ enumerable: true,
370
+ configurable: true,
371
+ writable: true,
372
+ value: void 0
373
+ });
374
+ /**
375
+ * The path to the directory used for temporary files when data exceeds the memory limit (e.g., `'/tmp/duckdb_swap'`). Defaults to `.tmp` for in-memory databases or `<file>.tmp` for file-based databases. Temporary directories are automatically removed when calling `close()`.
376
+ *
377
+ * @defaultValue `undefined`
378
+ * @category Properties
379
+ */
380
+ Object.defineProperty(this, "tempDir", {
381
+ enumerable: true,
382
+ configurable: true,
383
+ writable: true,
384
+ value: void 0
385
+ });
386
+ /**
387
+ * The path to the persistent DuckDB database, opened or created on first use.
388
+ * If not provided, an in-memory database is used. Imports and exports do not change this path.
201
389
  *
202
390
  * @defaultValue `:memory:`
203
391
  * @category Properties
@@ -209,7 +397,7 @@ class SimpleDB extends Simple_js_1.default {
209
397
  value: void 0
210
398
  });
211
399
  /**
212
- * A flag indicating whether to overwrite the database file if it already exists.
400
+ * Whether to replace an existing DuckDB file on first use instead of opening it.
213
401
  *
214
402
  * @defaultValue `false`
215
403
  * @category Properties
@@ -220,10 +408,30 @@ class SimpleDB extends Simple_js_1.default {
220
408
  writable: true,
221
409
  value: void 0
222
410
  });
411
+ /**
412
+ * Whether the persistent DuckDB file is opened read-only. Requires an existing
413
+ * file and cannot be combined with `overwrite`. DuckDB rejects writes to it.
414
+ *
415
+ * @defaultValue `false`
416
+ * @category Properties
417
+ * @example
418
+ * ```ts
419
+ * const sdb = new SimpleDB({ file: "./archive.duckdb", readOnly: true });
420
+ * const table = await sdb.getTable("employees");
421
+ * await table.log();
422
+ * await sdb.close();
423
+ * ```
424
+ */
425
+ Object.defineProperty(this, "readOnly", {
426
+ enumerable: true,
427
+ configurable: true,
428
+ writable: true,
429
+ value: void 0
430
+ });
223
431
  /**
224
432
  * The class used to create table instances. Defaults to `SimpleTable`.
225
433
  * Override this property when subclassing to ensure all table-creating
226
- * methods (e.g., `newTable()`, `cloneTable()`) return instances of your
434
+ * methods (e.g., `newTable()`, `clone()`) return instances of your
227
435
  * custom table class.
228
436
  *
229
437
  * @defaultValue `SimpleTable`
@@ -254,10 +462,13 @@ class SimpleDB extends Simple_js_1.default {
254
462
  value: SimpleTable_js_1.default
255
463
  });
256
464
  this.file = options.file ?? ":memory:";
465
+ this.logSQL = options.logSQL ?? false;
466
+ this.explainSQL = options.explainSQL ?? false;
257
467
  this.overwrite = options.overwrite ?? false;
468
+ this.readOnly = options.readOnly ?? false;
258
469
  this.logDuration = options.logDuration ?? false;
259
470
  this.tableIncrement = 1;
260
- this.tables = [];
471
+ (0, tableRegistry_js_1.initializeTableRegistry)(this);
261
472
  this.cacheSourcesUsed = [];
262
473
  this.cacheVerbose = options.cacheVerbose ?? false;
263
474
  this.cacheTimeSaved = 0;
@@ -266,6 +477,13 @@ class SimpleDB extends Simple_js_1.default {
266
477
  this.duckDbCache = options.duckDbCache === undefined
267
478
  ? false
268
479
  : options.duckDbCache;
480
+ this.memoryLimit = options.memoryLimit;
481
+ this.tempDir = options.tempDir;
482
+ this.flushPromise = null;
483
+ this.lifecycleState = "open";
484
+ this.pendingCount = 0;
485
+ this.opSequence = 0;
486
+ this.spatialLoaded = false;
269
487
  this.runQuery = runQuery_js_1.default;
270
488
  if (this.cacheVerbose || this.logDuration) {
271
489
  this.durationStart = Date.now();
@@ -279,52 +497,19 @@ class SimpleDB extends Simple_js_1.default {
279
497
  * @category Lifecycle
280
498
  */
281
499
  async start() {
282
- if (this.db === undefined || this.connection === undefined) {
283
- if (this.file !== ":memory:") {
284
- if ((0, getExtension_js_1.default)(this.file) !== "db") {
285
- throw new Error(`The file extension must be .db. The current file is ${this.file}.`);
286
- }
287
- if ((0, node_fs_1.existsSync)(this.file) && this.overwrite === false) {
288
- throw new Error(`The file ${this.file} already exists. Set the overwrite option to true to overwrite it. Otherwise, use the loadDB() method to load an existing database with more options.`);
289
- }
290
- else if ((0, node_fs_1.existsSync)(this.file) && this.overwrite === true) {
291
- (0, node_fs_1.rmSync)(this.file);
292
- }
293
- }
294
- this.db = await node_api_1.DuckDBInstance.create(this.file);
295
- this.connection = await this.db.connect();
296
- // By default, DuckDB does not compress in-memory databases, so we enable it here.
297
- if (this.file === ":memory:") {
298
- await this.customQuery("ATTACH OR REPLACE ':memory:' AS memory (COMPRESS);");
299
- }
300
- if (this.duckDbCache === true) {
301
- await this.customQuery("SET enable_external_file_cache=true;");
302
- }
303
- else if (this.duckDbCache === false) {
304
- await this.customQuery("SET enable_external_file_cache=false;");
305
- }
306
- if (this.progressBar) {
307
- await this.customQuery(`SET enable_progress_bar = TRUE; SET progress_bar_time = 0;`);
308
- }
500
+ if (this.lifecycleState === "closed") {
501
+ throw new Error(`start() cannot use a SimpleDB that is ${this.lifecycleState}.`);
309
502
  }
310
- return this;
311
- }
312
- /**
313
- * Adds a SimpleTable instance to the internal list of tables.
314
- *
315
- * @param table - The SimpleTable instance to add.
316
- * @internal
317
- * @category Table Management
318
- */
319
- pushTable(table) {
320
- const TableClass = this.tableClass;
321
- if (!(table instanceof TableClass)) {
322
- throw new Error(`The table must be an instance of ${TableClass.name}.`);
503
+ if (__classPrivateFieldGet(this, _SimpleDB_startPromise, "f") === null) {
504
+ // The setup queries below must run before any queued operation, so
505
+ // they must not trigger a flush.
506
+ __classPrivateFieldSet(this, _SimpleDB_startPromise, (0, flushAllTables_js_1.runExemptFromFlush)(this, async () => {
507
+ await __classPrivateFieldGet(this, _SimpleDB_instances, "m", _SimpleDB_setup).call(this);
508
+ __classPrivateFieldSet(this, _SimpleDB_initialized, true, "f");
509
+ return this;
510
+ }), "f");
323
511
  }
324
- if (this.tables.map((t) => t.name).includes(table.name)) {
325
- throw new Error(`Table ${table.name} already exists.`);
326
- }
327
- this.tables.push(table);
512
+ return await __classPrivateFieldGet(this, _SimpleDB_startPromise, "f");
328
513
  }
329
514
  /**
330
515
  * Creates a new SimpleTable instance within the database.
@@ -336,39 +521,49 @@ class SimpleDB extends Simple_js_1.default {
336
521
  * @example
337
522
  * ```ts
338
523
  * // Create a table with a default name (e.g., "table1", "table2", etc.)
339
- * const dataTable = sdb.newTable();
524
+ * const dataTable = await sdb
525
+ * .newTable()
526
+ * .loadArray([{ value: 1 }])
527
+ * .log();
340
528
  * ```
341
529
  *
342
530
  * @example
343
531
  * ```ts
344
532
  * // Create a table with a specific name
345
- * const employees = sdb.newTable("employees");
533
+ * const employees = await sdb
534
+ * .newTable("employees")
535
+ * .loadData("employees.csv")
536
+ * .log();
346
537
  * ```
347
538
  */
348
539
  newTable(name) {
540
+ if (this.lifecycleState !== "open") {
541
+ throw new Error(`newTable() cannot use a SimpleDB that is ${this.lifecycleState}.`);
542
+ }
349
543
  const TableClass = this.tableClass;
350
- // SHOULD MATCH cloneTable
544
+ // SHOULD MATCH clone
351
545
  let table;
352
546
  if (typeof name === "string") {
353
547
  table = new TableClass(name, this, {
354
- debug: this.debug,
355
- nbRowsToLog: this.nbRowsToLog,
356
- nbCharactersToLog: this.nbCharactersToLog,
357
- types: this.types,
548
+ rowsToLog: this.rowsToLog,
549
+ charsToLog: this.charsToLog,
550
+ typesToLog: this.typesToLog,
358
551
  });
359
552
  table.defaultTableName = false;
360
553
  }
361
554
  else {
555
+ while (this.getTables().some((table) => table.name.toLowerCase() === `table${this.tableIncrement}`)) {
556
+ this.tableIncrement++;
557
+ }
362
558
  table = new TableClass(`table${this.tableIncrement}`, this, {
363
- debug: this.debug,
364
- nbRowsToLog: this.nbRowsToLog,
365
- nbCharactersToLog: this.nbCharactersToLog,
366
- types: this.types,
559
+ rowsToLog: this.rowsToLog,
560
+ charsToLog: this.charsToLog,
561
+ typesToLog: this.typesToLog,
367
562
  });
368
563
  table.defaultTableName = true;
369
564
  this.tableIncrement += 1;
370
565
  }
371
- this.pushTable(table);
566
+ (0, tableRegistry_js_1.registerTable)(this, table);
372
567
  return table;
373
568
  }
374
569
  /**
@@ -382,22 +577,25 @@ class SimpleDB extends Simple_js_1.default {
382
577
  * ```ts
383
578
  * // Retrieve the "employees" table
384
579
  * const employees = await sdb.getTable("employees");
580
+ * await employees.log();
385
581
  * ```
386
582
  */
387
583
  async getTable(name) {
388
- const table = this.tables.find((t) => t.name === name);
584
+ await this.start();
585
+ const tables = this.getTables();
586
+ const table = tables.find((t) => t.name === name);
389
587
  if (table) {
390
588
  return await table;
391
589
  }
392
590
  else {
393
- throw new Error(`Table ${name} not found.`);
591
+ throw new Error((0, formatMissingTables_js_1.default)("getTable()", [name], tables.map((availableTable) => availableTable.name)));
394
592
  }
395
593
  }
396
594
  /**
397
595
  * Removes one or more tables from the database.
398
596
  *
399
- * @param tables - A single table or an array of tables to remove, specified by name or as SimpleTable instances.
400
- * @returns A promise that resolves when the tables have been removed.
597
+ * @param tables - A single table or an array of tables to remove, specified by name or as SimpleTable instances. Pass `"all"` to remove all tables.
598
+ * @returns A promise that resolves to the database, so methods can be chained.
401
599
  * @category Table Management
402
600
  *
403
601
  * @example
@@ -419,22 +617,22 @@ class SimpleDB extends Simple_js_1.default {
419
617
  * // ... load data ...
420
618
  * await sdb.removeTables(employeesTable);
421
619
  * ```
620
+ *
621
+ * @example
622
+ * ```ts
623
+ * // Remove all tables
624
+ * await sdb.removeTables("all");
625
+ * ```
422
626
  */
423
627
  async removeTables(tables) {
424
- const tablesToBeRemoved = Array.isArray(tables) ? tables : [tables];
425
- await (0, queryDB_js_1.default)(this, tablesToBeRemoved.map((d) => `DROP TABLE "${d instanceof SimpleTable_js_1.default ? d.name : d}";`).join("\n"), (0, mergeOptions_js_1.default)(this, {
426
- table: null,
427
- method: "removeTable()",
428
- parameters: {},
429
- }));
430
- const tablesNamesToBeRemoved = tablesToBeRemoved.map((t) => t instanceof SimpleTable_js_1.default ? t.name : t);
431
- this.tables = this.tables.filter((t) => !tablesNamesToBeRemoved.includes(t.name));
628
+ await (0, removeTables_js_1.default)(this, tables);
629
+ return this;
432
630
  }
433
631
  /**
434
632
  * Selects one or more tables to keep in the database, removing all others.
435
633
  *
436
634
  * @param tables - A single table or an array of tables to select, specified by name or as SimpleTable instances.
437
- * @returns A promise that resolves when the tables have been selected.
635
+ * @returns A promise that resolves to the database, so methods can be chained.
438
636
  * @category Table Management
439
637
  *
440
638
  * @example
@@ -458,20 +656,8 @@ class SimpleDB extends Simple_js_1.default {
458
656
  * ```
459
657
  */
460
658
  async selectTables(tables) {
461
- const tablesToBeSelected = (Array.isArray(tables) ? tables : [tables]).map((t) => t instanceof SimpleTable_js_1.default ? t.name : t);
462
- for (const table of tablesToBeSelected) {
463
- if (!(await this.hasTable(table))) {
464
- throw new Error(`Table ${table} not found.`);
465
- }
466
- }
467
- const tablesToBeRemoved = this.tables.filter((t) => !tablesToBeSelected.includes(t.name));
468
- await (0, queryDB_js_1.default)(this, tablesToBeRemoved.map((d) => `DROP TABLE "${d instanceof SimpleTable_js_1.default ? d.name : d}";`).join("\n"), (0, mergeOptions_js_1.default)(this, {
469
- table: null,
470
- method: "removeTable()",
471
- parameters: {},
472
- }));
473
- const tablesNamesToBeRemoved = tablesToBeRemoved.map((t) => t instanceof SimpleTable_js_1.default ? t.name : t);
474
- this.tables = this.tables.filter((t) => !tablesNamesToBeRemoved.includes(t.name));
659
+ await (0, selectTables_js_1.default)(this, tables);
660
+ return this;
475
661
  }
476
662
  /**
477
663
  * Returns an array of all table names in the database, sorted alphabetically.
@@ -492,7 +678,7 @@ class SimpleDB extends Simple_js_1.default {
492
678
  /**
493
679
  * Logs the names of all tables in the database to the console, sorted alphabetically.
494
680
  *
495
- * @returns A promise that resolves when the table names have been logged.
681
+ * @returns A promise that resolves to the database, so methods can be chained.
496
682
  * @category Table Management
497
683
  *
498
684
  * @example
@@ -510,21 +696,25 @@ class SimpleDB extends Simple_js_1.default {
510
696
  else {
511
697
  console.log(`\nSimpleDB - No tables found.`);
512
698
  }
699
+ return this;
513
700
  }
514
701
  /**
515
702
  * Returns an array of all SimpleTable instances in the database.
516
703
  *
517
- * @returns A promise that resolves to an array of SimpleTable instances.
704
+ * The returned array is a snapshot and cannot mutate the database's internal
705
+ * table registry.
706
+ *
707
+ * @returns A read-only array of SimpleTable instances.
518
708
  * @category Table Management
519
709
  *
520
710
  * @example
521
711
  * ```ts
522
712
  * // Get all SimpleTable instances
523
- * const tables = await sdb.getTables();
713
+ * const tables = sdb.getTables();
524
714
  * ```
525
715
  */
526
- async getTables() {
527
- return await this.tables;
716
+ getTables() {
717
+ return (0, tableRegistry_js_1.listRegisteredTables)(this);
528
718
  }
529
719
  /**
530
720
  * Checks if a table exists in the database.
@@ -568,7 +758,7 @@ class SimpleDB extends Simple_js_1.default {
568
758
  */
569
759
  async getExtensions() {
570
760
  return (await (0, queryDB_js_1.default)(this, `FROM duckdb_extensions();`, (0, mergeOptions_js_1.default)(this, {
571
- returnDataFrom: "query",
761
+ returnData: true,
572
762
  table: null,
573
763
  method: "getExtensions()",
574
764
  parameters: {},
@@ -576,15 +766,20 @@ class SimpleDB extends Simple_js_1.default {
576
766
  }
577
767
  /**
578
768
  * Executes a custom SQL query directly against the DuckDB instance.
769
+ * Queries run in UTC. When data is returned, temporal values use the same
770
+ * JavaScript representations as `SimpleTable.getData()`.
579
771
  *
580
- * If you want to force the returned data to match the types of the columns, you can use the `types` option.
772
+ * `customQuery()` bypasses the dependency and table-generation tracking used
773
+ * by `SimpleTable.cache()`. Reading or changing a table with `customQuery()`
774
+ * can therefore cause `cache()` to return stale data. Include a value that
775
+ * identifies the custom query's dependencies in the cache's `options.inputs`
776
+ * (such as a table content hash), or use tracked `SimpleTable` methods.
581
777
  *
582
778
  * @param query - The SQL query string to execute.
583
779
  * @param options - Configuration options for the query.
584
- * @param options.returnDataFrom - Specifies whether to return data from the query. Can be `"query"` to return data or `"none"` (default) to not return data.
780
+ * @param options.returnData - If `true`, the query result is returned. Defaults to `false`.
585
781
  * @param options.table - The name of the table associated with the query, primarily used for debugging and logging.
586
- * @param options.types - An optional object specifying data types for the query parameters.
587
- * @returns A promise that resolves to the query result as an array of objects if `returnDataFrom` is `"query"`, otherwise `null`.
782
+ * @returns A promise that resolves to the query result as an array of objects if `returnData` is `true`, otherwise `null`.
588
783
  * @category DuckDB
589
784
  *
590
785
  * @example
@@ -598,29 +793,33 @@ class SimpleDB extends Simple_js_1.default {
598
793
  * // Execute a query and return the results
599
794
  * const youngEmployees = await sdb.customQuery(
600
795
  * "SELECT * FROM employees WHERE age < 30",
601
- * { returnDataFrom: "query" }
796
+ * { returnData: true }
602
797
  * );
603
798
  * console.log(youngEmployees);
604
799
  * ```
605
800
  */
606
801
  async customQuery(query, options = {}) {
607
802
  return await (0, queryDB_js_1.default)(this, query, (0, mergeOptions_js_1.default)(this, {
608
- returnDataFrom: options.returnDataFrom,
803
+ returnData: options.returnData ?? false,
609
804
  table: options.table ?? null,
610
805
  method: "customQuery()",
611
806
  parameters: { query, options },
612
- types: options.types,
613
807
  }));
614
808
  }
615
809
  /**
616
- * Loads a database from a specified file into the current SimpleDB instance.
617
- * Supported file types are `.db` (DuckDB) and `.sqlite` (SQLite).
618
- *
619
- * @param file - The absolute path to the database file (e.g., "./my_database.db").
620
- * @param options - Configuration options for loading the database.
621
- * @param options.name - The name to assign to the loaded database within the DuckDB instance. Defaults to the file name without extension.
622
- * @param options.detach - If `true` (default), the database is detached after loading its contents into memory. If `false`, the database remains attached.
623
- * @returns A promise that resolves when the database has been loaded.
810
+ * Imports a copy of a `.db` or `.duckdb` (DuckDB) or `.sqlite` (SQLite)
811
+ * file into the current database. The source is opened read-only and detached
812
+ * after importing; subsequent transformations do not modify the source file.
813
+ * Imports work with in-memory and writable persistent databases. Existing
814
+ * table-name conflicts are rejected and a failed copy is rolled back.
815
+ *
816
+ * DuckDB files restore embedded SDA index definitions when present. SQLite
817
+ * imports copy data without SDA index metadata. The `__sda` schema is reserved
818
+ * for SDA metadata.
819
+ * To edit an existing DuckDB file in place, use `new SimpleDB({ file })`.
820
+ *
821
+ * @param file - The relative or absolute path to the database file.
822
+ * @returns A promise that resolves to the database, so methods can be chained.
624
823
  * @category File Operations
625
824
  *
626
825
  * @example
@@ -631,85 +830,42 @@ class SimpleDB extends Simple_js_1.default {
631
830
  *
632
831
  * @example
633
832
  * ```ts
634
- * // Load a SQLite database file and keep it attached
635
- * await sdb.loadDB("./my_database.sqlite", { detach: false });
833
+ * // Import SQLite tables without modifying the original file
834
+ * await sdb.loadDB("./my_database.sqlite");
636
835
  * ```
637
836
  *
638
837
  * @example
639
838
  * ```ts
640
- * // Load a database with a custom name
641
- * await sdb.loadDB("./archive.db", { name: "archive_db" });
839
+ * // Import a copy into a persistent DuckDB database
840
+ * const sdb = new SimpleDB({ file: "./analysis.duckdb" });
841
+ * await sdb.loadDB("./archive.db");
842
+ * await sdb.close();
642
843
  * ```
643
844
  */
644
- async loadDB(file, options = {}) {
645
- const name = options.name ?? "my_database";
646
- const detach = options.detach ?? true;
647
- if (!(0, node_fs_1.existsSync)(file)) {
648
- throw new Error(`The file ${file} does not exist.`);
649
- }
650
- const extension = (0, getExtension_js_1.default)(file);
651
- const allIndexesFile = `${file.replace(`.${extension}`, "")}_indexes.json`;
652
- const vssIndex = (0, checkVssIndexes_js_1.default)(allIndexesFile);
653
- if (vssIndex) {
654
- await this.customQuery(`INSTALL vss; LOAD vss;`);
655
- }
656
- if (extension === "db") {
657
- if (detach) {
658
- await (0, queryDB_js_1.default)(this, `ATTACH '${(0, cleanPath_js_1.default)(file)}' AS ${name};
659
- COPY FROM DATABASE ${name} TO memory;
660
- DETACH ${name};`, (0, mergeOptions_js_1.default)(this, {
661
- returnDataFrom: "none",
662
- table: null,
663
- method: "loadDB()",
664
- parameters: {},
665
- }));
666
- }
667
- else {
668
- await (0, queryDB_js_1.default)(this, `ATTACH '${(0, cleanPath_js_1.default)(file)}' AS ${name};
669
- USE ${name};`, (0, mergeOptions_js_1.default)(this, {
670
- returnDataFrom: "none",
671
- table: null,
672
- method: "loadDB()",
673
- parameters: {},
674
- }));
675
- }
676
- }
677
- else if (extension === "sqlite") {
678
- if (detach) {
679
- await (0, queryDB_js_1.default)(this, `INSTALL sqlite; LOAD sqlite;
680
- ATTACH '${(0, cleanPath_js_1.default)(file)}' AS ${name} (TYPE SQLITE);
681
- COPY FROM DATABASE ${name} TO memory;
682
- DETACH ${name};`, (0, mergeOptions_js_1.default)(this, {
683
- returnDataFrom: "none",
684
- table: null,
685
- method: "loadDB()",
686
- parameters: {},
687
- }));
688
- }
689
- else {
690
- await (0, queryDB_js_1.default)(this, `INSTALL sqlite; LOAD sqlite;
691
- ATTACH '${(0, cleanPath_js_1.default)(file)}' AS ${name} (TYPE SQLITE);
692
- USE ${name};`, (0, mergeOptions_js_1.default)(this, {
693
- returnDataFrom: "none",
694
- table: null,
695
- method: "loadDB()",
696
- parameters: {},
697
- }));
698
- }
699
- }
700
- else {
701
- throw new Error(`The extension ${extension} is not supported. Please use .db or .sqlite instead.`);
702
- }
703
- await (0, setDbProps_js_1.default)(this, allIndexesFile);
845
+ async loadDB(file) {
846
+ await (0, loadDB_js_1.default)(this, file);
847
+ return this;
704
848
  }
705
849
  /**
706
- * Writes the current state of the database to a specified file.
707
- * Supported output file types are `.db` (DuckDB) and `.sqlite` (SQLite).
850
+ * Exports a snapshot of the current database after executing pending work.
851
+ * Does not change the working database or where subsequent changes persist.
852
+ * DuckDB outputs (`.db` and `.duckdb`) preserve database objects and embed SDA
853
+ * index definitions in the reserved `__sda` schema.
708
854
  *
709
- * @param file - The absolute path to the output file (e.g., "./my_exported_database.db").
855
+ * SQLite output (`.sqlite`) materializes main-schema tables and views as
856
+ * tables. It does not preserve DuckDB schemas, indexes, constraints, or SDA
857
+ * metadata, and SQLite type conversion may lose type information. Unsupported
858
+ * conversions fail without replacing an existing destination.
859
+ *
860
+ * Existing files require explicit overwrite permission. The completed export
861
+ * is published only after its connection is detached. Database files attached
862
+ * to this instance, directories, and symbolic links cannot be replaced.
863
+ *
864
+ * @param file - The relative or absolute path to the output file.
710
865
  * @param options - Configuration options for writing the database.
711
- * @param options.noMetaData - If `true`, metadata files (indexes) are not created alongside the database file. Defaults to `false`.
712
- * @returns A promise that resolves when the database has been written to the file.
866
+ * @param options.overwrite - If true, permits atomic replacement of an existing output file. Defaults to false.
867
+ * @param options.metadata - If false, omits logical SDA index definitions from DuckDB exports. Defaults to true. Does not control physical indexes; SQLite exports never include SDA metadata.
868
+ * @returns A promise that resolves to the database, so methods can be chained.
713
869
  * @category File Operations
714
870
  *
715
871
  * @example
@@ -720,92 +876,202 @@ DETACH ${name};`, (0, mergeOptions_js_1.default)(this, {
720
876
  *
721
877
  * @example
722
878
  * ```ts
723
- * // Write the current database to a SQLite file without metadata
724
- * await sdb.writeDB("./my_exported_database.sqlite", { noMetaData: true });
879
+ * // Explicitly replace an earlier snapshot
880
+ * await sdb.writeDB("./my_exported_database.duckdb", { overwrite: true });
881
+ * ```
882
+ *
883
+ * @example
884
+ * ```ts
885
+ * // Export table data for use with SQLite
886
+ * await sdb.writeDB("./my_exported_database.sqlite");
725
887
  * ```
726
888
  */
727
889
  async writeDB(file, options = {}) {
728
- const noMetaData = options.noMetaData ?? false;
729
- if ((0, node_fs_1.existsSync)(file)) {
730
- (0, node_fs_1.rmSync)(file);
731
- }
732
- (0, createDirectory_js_1.default)(file);
733
- const extension = (0, getExtension_js_1.default)(file);
734
- if (!noMetaData) {
735
- (0, writeIndexes_js_1.default)(this, extension, file);
736
- }
737
- const name = (0, getName_js_1.default)(file);
738
- if (extension === "db") {
739
- await (0, queryDB_js_1.default)(this, `ATTACH '${(0, cleanPath_js_1.default)(file)}' AS ${name};
740
- COPY FROM DATABASE ${(0, getName_js_1.default)(this.file)} TO ${name};
741
- DETACH ${name};`, (0, mergeOptions_js_1.default)(this, {
742
- returnDataFrom: "none",
743
- table: null,
744
- method: "writeDB()",
745
- parameters: {},
746
- }));
747
- }
748
- else if (extension === "sqlite") {
749
- await (0, queryDB_js_1.default)(this, `INSTALL sqlite; LOAD sqlite;
750
- ATTACH '${(0, cleanPath_js_1.default)(file)}' AS ${name} (TYPE SQLITE);
751
- COPY FROM DATABASE ${(0, getName_js_1.default)(this.file)} TO ${name};
752
- DETACH ${name};`, (0, mergeOptions_js_1.default)(this, {
753
- returnDataFrom: "none",
754
- table: null,
755
- method: "writeDB()",
756
- parameters: {},
757
- }));
758
- }
759
- else {
760
- throw new Error(`The extension ${extension} is not supported. Please use .db or .sqlite instead.`);
890
+ await (0, writeDB_js_1.default)(this, file, options);
891
+ return this;
892
+ }
893
+ /**
894
+ * Executes all queued methods across every table in the database. Sync
895
+ * builder methods (like `filter()` or `convert()`) only queue their
896
+ * operation; execution happens when an async observer method (like
897
+ * `getData()`, `log()`, or `writeData()`) is awaited. Use `run()` when
898
+ * your script ends in pure mutations with nothing to observe and you want
899
+ * the work done now.
900
+ *
901
+ * The whole database is flushed in program order, so operations on
902
+ * different tables execute exactly in the order they were queued. This is
903
+ * the database-level counterpart to `SimpleTable.run()`.
904
+ *
905
+ * @returns A promise that resolves to the SimpleDB instance once the queued methods have been executed.
906
+ * @category Lifecycle
907
+ *
908
+ * @example
909
+ * ```ts
910
+ * // Nothing is observed after the mutations, so run() executes them.
911
+ * table1.loadData("data1.csv").convert({ price: "number" });
912
+ * table2.loadData("data2.csv").filter(`price > 0`);
913
+ * await sdb.run();
914
+ * ```
915
+ */
916
+ async run() {
917
+ if (this.lifecycleState !== "open") {
918
+ throw new Error(`run() cannot use a SimpleDB that is ${this.lifecycleState}.`);
761
919
  }
920
+ await (0, flushAllTables_js_1.default)(this);
921
+ return this;
762
922
  }
763
923
  /**
764
- * Frees up memory by closing the database connection and instance, and cleans up the cache.
765
- * If the database is file-based, it also compacts the database file to optimize storage.
924
+ * Executes pending transformations, saves SDA metadata for writable persistent
925
+ * databases, and closes the connection and instance. Also cleans up temporary
926
+ * files and the cache. Does not copy, compact, or replace the database file.
766
927
  *
767
928
  * @returns A promise that resolves to the SimpleDB instance after cleanup.
929
+ * @throws An error after cleanup when pending execution or cleanup fails.
768
930
  * @category Lifecycle
769
931
  *
770
932
  * @example
771
933
  * ```ts
772
- * // Close the database and clean up resources
773
- * await sdb.done();
934
+ * // close() executes queued transformations before cleaning up resources.
935
+ * table.loadData("data.csv").convert({ price: "number" });
936
+ * await sdb.close();
774
937
  * ```
775
938
  */
776
- async done() {
777
- if (this.file !== ":memory:") {
778
- await this.customQuery("CHECKPOINT;");
779
- // To make sure the files will have the proper names.
780
- (0, writeIndexes_js_1.default)(this, (0, getExtension_js_1.default)(this.file), this.file);
781
- await this.writeDB(this.file.replace(".db", "_compacted.db"), {
782
- noMetaData: true,
783
- });
939
+ async close() {
940
+ if (__classPrivateFieldGet(this, _SimpleDB_closePromise, "f") !== null) {
941
+ return await __classPrivateFieldGet(this, _SimpleDB_closePromise, "f");
942
+ }
943
+ this.lifecycleState = "closing";
944
+ const closePromise = __classPrivateFieldGet(this, _SimpleDB_instances, "m", _SimpleDB_close).call(this);
945
+ __classPrivateFieldSet(this, _SimpleDB_closePromise, closePromise, "f");
946
+ return await closePromise;
947
+ }
948
+ }
949
+ _SimpleDB_closePromise = new WeakMap(), _SimpleDB_startPromise = new WeakMap(), _SimpleDB_initialized = new WeakMap(), _SimpleDB_instances = new WeakSet(), _SimpleDB_setup = async function _SimpleDB_setup() {
950
+ if (this.readOnly && (this.file === ":memory:" || this.overwrite)) {
951
+ throw new Error("readOnly requires an existing database file and cannot be combined with overwrite.");
952
+ }
953
+ if (this.file !== ":memory:") {
954
+ if ((0, getDbFileType_js_1.default)(this.file) !== "duckdb") {
955
+ throw new Error("Persistent databases must use .db or .duckdb. Use loadDB() to import SQLite files.");
956
+ }
957
+ if (this.readOnly && !(0, node_fs_1.existsSync)(this.file)) {
958
+ throw new Error(`The file ${this.file} does not exist.`);
959
+ }
960
+ if ((0, node_fs_1.existsSync)(this.file) && this.overwrite) {
784
961
  (0, node_fs_1.rmSync)(this.file);
785
- (0, node_fs_2.renameSync)(this.file.replace(".db", "_compacted.db"), this.file);
962
+ // A WAL belongs to the database being explicitly replaced.
963
+ (0, node_fs_1.rmSync)(`${this.file}.wal`, { force: true });
786
964
  }
787
- if (this.db instanceof node_api_1.DuckDBInstance) {
965
+ if (!this.readOnly)
966
+ (0, createDirectory_js_1.default)(this.file);
967
+ }
968
+ this.db = await node_api_1.DuckDBInstance.create(this.file, this.readOnly ? { access_mode: "READ_ONLY" } : {});
969
+ this.connection = await this.db.connect();
970
+ // Keep temporal parsing, extraction, and serialization deterministic
971
+ // across machines. DuckDB otherwise inherits the process timezone.
972
+ await this.customQuery("SET TimeZone = 'UTC';");
973
+ // By default, DuckDB does not compress in-memory databases, so we enable it here.
974
+ if (this.file === ":memory:") {
975
+ await this.customQuery(`ATTACH OR REPLACE ':memory:' AS ${(0, quoteIdentifier_js_1.default)("memory")} (COMPRESS);`);
976
+ }
977
+ if (this.duckDbCache === true) {
978
+ await this.customQuery("SET enable_external_file_cache=true;");
979
+ }
980
+ else if (this.duckDbCache === false) {
981
+ await this.customQuery("SET enable_external_file_cache=false;");
982
+ }
983
+ if (this.progressBar) {
984
+ await this.customQuery(`SET enable_progress_bar = TRUE; SET progress_bar_time = 0;`);
985
+ }
986
+ if (this.memoryLimit !== undefined) {
987
+ await this.customQuery(`SET memory_limit = '${this.memoryLimit}';`);
988
+ }
989
+ if (this.tempDir !== undefined) {
990
+ await this.customQuery(`SET temp_directory = '${this.tempDir}';`);
991
+ }
992
+ if (this.file !== ":memory:") {
993
+ const database = await (0, getCurrentDatabase_js_1.default)(this);
994
+ const indexes = await (0, readDbMetadata_js_1.default)(this, database);
995
+ await (0, prepareDbExtensions_js_1.default)(this, database, indexes);
996
+ const existingNames = new Set((await this.getTableNames()).map((name) => name.toLowerCase()));
997
+ const conflicts = this.getTables().filter((table) => existingNames.has(table.name.toLowerCase()));
998
+ if (conflicts.length > 0) {
999
+ throw new Error(`Tables already exist in ${this.file}: ${conflicts.map((table) => table.name).join(", ")}. Use getTable() to access them.`);
1000
+ }
1001
+ await (0, setDbProps_js_1.default)(this, indexes);
1002
+ }
1003
+ }, _SimpleDB_close = async function _SimpleDB_close() {
1004
+ let operationError;
1005
+ try {
1006
+ await (0, flushAllTables_js_1.default)(this);
1007
+ if (this.file !== ":memory:" && !this.readOnly && __classPrivateFieldGet(this, _SimpleDB_initialized, "f")) {
1008
+ const database = await (0, getCurrentDatabase_js_1.default)(this);
1009
+ await (0, readDbMetadata_js_1.default)(this, database);
1010
+ await (0, writeDbMetadata_js_1.default)(this, database, (0, getDbIndexes_js_1.default)(this));
1011
+ await (0, queryDbFile_js_1.default)(this, `CHECKPOINT ${(0, quoteIdentifier_js_1.default)(database)};`);
1012
+ }
1013
+ }
1014
+ catch (error) {
1015
+ operationError = error;
1016
+ // A failed flush can requeue work belonging to other tables. The
1017
+ // connection is about to close, so release those captured values.
1018
+ (0, queueOp_js_1.discardAllPending)(this);
1019
+ }
1020
+ const cleanupErrors = [];
1021
+ if (this.db instanceof node_api_1.DuckDBInstance) {
1022
+ try {
788
1023
  this.connection.closeSync();
1024
+ }
1025
+ catch (error) {
1026
+ cleanupErrors.push(error);
1027
+ }
1028
+ try {
789
1029
  this.db.closeSync();
790
1030
  }
1031
+ catch (error) {
1032
+ cleanupErrors.push(error);
1033
+ }
1034
+ }
1035
+ try {
1036
+ const tmpDir = this.tempDir ??
1037
+ (this.file === ":memory:" ? ".tmp" : `${this.file}.tmp`);
1038
+ if ((0, node_fs_1.existsSync)(tmpDir)) {
1039
+ (0, node_fs_1.rmSync)(tmpDir, { recursive: true });
1040
+ }
791
1041
  (0, cleanCache_js_1.default)(this);
792
- if (typeof this.durationStart === "number") {
793
- let string = (0, prettyDuration_js_1.default)(this.durationStart, {
794
- prefix: "\n\nSimpleDB - Done in ",
795
- });
796
- if (this.cacheTimeSaved > 0) {
797
- string += ` / ${(0, prettyDuration_js_1.default)(0, {
798
- end: this.cacheTimeSaved,
799
- })} saved by using the cache`;
800
- }
801
- if (this.cacheTimeWriting > 0) {
802
- string += ` / ${(0, prettyDuration_js_1.default)(0, {
803
- end: this.cacheTimeWriting,
804
- })} spent writing the cache`;
805
- }
806
- console.log(`${string}\n`);
1042
+ }
1043
+ catch (error) {
1044
+ cleanupErrors.push(error);
1045
+ }
1046
+ this.lifecycleState = "closed";
1047
+ if (operationError !== undefined && cleanupErrors.length > 0) {
1048
+ throw new AggregateError([operationError, ...cleanupErrors], "Pending execution and database cleanup both failed.", { cause: operationError });
1049
+ }
1050
+ if (operationError !== undefined) {
1051
+ throw operationError;
1052
+ }
1053
+ if (cleanupErrors.length === 1) {
1054
+ throw cleanupErrors[0];
1055
+ }
1056
+ if (cleanupErrors.length > 1) {
1057
+ throw new AggregateError(cleanupErrors, "Multiple errors occurred while cleaning up the database.", { cause: cleanupErrors[0] });
1058
+ }
1059
+ if (typeof this.durationStart === "number") {
1060
+ let string = (0, prettyDuration_js_1.default)(this.durationStart, {
1061
+ prefix: "\n\nSimpleDB ran for ",
1062
+ });
1063
+ if (this.cacheTimeSaved > 0) {
1064
+ string += ` / ${(0, prettyDuration_js_1.default)(0, {
1065
+ end: this.cacheTimeSaved,
1066
+ })} saved by using the cache`;
807
1067
  }
808
- return await this;
1068
+ if (this.cacheTimeWriting > 0) {
1069
+ string += ` / ${(0, prettyDuration_js_1.default)(0, {
1070
+ end: this.cacheTimeWriting,
1071
+ })} spent writing the cache`;
1072
+ }
1073
+ console.log(`${string}\n`);
809
1074
  }
810
- }
1075
+ return await this;
1076
+ };
811
1077
  exports.default = SimpleDB;