@nshiab/simple-data-analysis-core 1.0.1 → 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 +247 -103
  12. package/esm/class/SimpleDB.d.ts.map +1 -1
  13. package/esm/class/SimpleDB.js +483 -298
  14. package/esm/class/SimpleTable.d.ts +1804 -940
  15. package/esm/class/SimpleTable.d.ts.map +1 -1
  16. package/esm/class/SimpleTable.js +1946 -1825
  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 +247 -103
  612. package/script/class/SimpleDB.d.ts.map +1 -1
  613. package/script/class/SimpleDB.js +514 -297
  614. package/script/class/SimpleTable.d.ts +1804 -940
  615. package/script/class/SimpleTable.d.ts.map +1 -1
  616. package/script/class/SimpleTable.js +1943 -1823
  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,21 +1,43 @@
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ 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");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
6
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
7
+ if (kind === "m") throw new TypeError("Private method is not writable");
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
9
+ 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");
10
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
11
+ };
12
+ var _SimpleDB_instances, _SimpleDB_closePromise, _SimpleDB_startPromise, _SimpleDB_initialized, _SimpleDB_setup, _SimpleDB_close;
13
+ import quoteIdentifier from "../helpers/quoteIdentifier.js";
1
14
  import { DuckDBInstance } from "@duckdb/node-api";
2
15
  import runQuery from "../helpers/runQuery.js";
3
16
  import SimpleTable from "./SimpleTable.js";
4
17
  import cleanCache from "../helpers/cleanCache.js";
5
- import createDirectory from "../helpers/createDirectory.js";
6
18
  import prettyDuration from "../helpers/prettyDuration.js";
7
19
  import Simple from "./Simple.js";
8
20
  import queryDB from "../helpers/queryDB.js";
9
21
  import mergeOptions from "../helpers/mergeOptions.js";
10
22
  import getTableNames from "../methods/getTableNames.js";
11
- import cleanPath from "../helpers/cleanPath.js";
12
- import getExtension from "../helpers/getExtension.js";
13
23
  import { existsSync, rmSync } from "node:fs";
14
- import checkVssIndexes from "../helpers/checkVssIndexes.js";
24
+ import createDirectory from "../helpers/createDirectory.js";
25
+ import getDbFileType from "../helpers/getDbFileType.js";
26
+ import getCurrentDatabase from "../helpers/getCurrentDatabase.js";
27
+ import getDbIndexes from "../helpers/getDbIndexes.js";
28
+ import readDbMetadata from "../helpers/readDbMetadata.js";
29
+ import writeDbMetadata from "../helpers/writeDbMetadata.js";
30
+ import prepareDbExtensions from "../helpers/prepareDbExtensions.js";
15
31
  import setDbProps from "../helpers/setDbProps.js";
16
- import writeIndexes from "../helpers/writeIndexes.js";
17
- import getName from "../helpers/getName.js";
18
- import { renameSync } from "node:fs";
32
+ import queryDbFile from "../helpers/queryDbFile.js";
33
+ import removeTables from "../methods/removeTables.js";
34
+ import selectTables from "../methods/selectTables.js";
35
+ import loadDB from "../methods/loadDB.js";
36
+ import writeDB from "../methods/writeDB.js";
37
+ import flushAllTables, { runExemptFromFlush, } from "../helpers/flushAllTables.js";
38
+ import { discardAllPending } from "../helpers/queueOp.js";
39
+ import { initializeTableRegistry, listRegisteredTables, registerTable, } from "../helpers/tableRegistry.js";
40
+ import formatMissingTables from "../helpers/formatMissingTables.js";
19
41
  /**
20
42
  * Manages a DuckDB database instance, providing a simplified interface for database operations.
21
43
  *
@@ -23,56 +45,104 @@ import { renameSync } from "node:fs";
23
45
  * ```ts
24
46
  * // Create an in-memory database instance
25
47
  * const sdb = new SimpleDB();
26
- * // Create a new table named "employees"
27
- * const employees = sdb.newTable("employees");
28
- * // Load data from a CSV file into the "employees" table
29
- * await employees.loadData("./employees.csv");
30
- * // Log the first few rows of the "employees" table to the console
31
- * await employees.logTable();
48
+ * // Create a table, load a CSV file, and log its first few rows
49
+ * const employees = await sdb
50
+ * .newTable("employees")
51
+ * .loadData("./employees.csv")
52
+ * .log();
32
53
  * // Close the database connection and clean up resources
33
- * await sdb.done();
54
+ * await sdb.close();
34
55
  * ```
35
56
  *
36
57
  * @example
37
58
  * ```ts
38
- * // Create a persistent database instance, saving data to a file
39
- * // To load an existing database, use the `loadDB` method instead
59
+ * // Open or create a persistent DuckDB database. Changes persist in this file.
40
60
  * const sdb = new SimpleDB({ file: "./my_database.db" });
41
61
  * // Perform database operations...
42
- * // Close the database connection, which saves changes to the specified file
43
- * await sdb.done();
62
+ * // Execute pending work, save SDA metadata, and close the database connection
63
+ * await sdb.close();
44
64
  * ```
45
65
  *
46
66
  * @example
47
67
  * ```ts
48
68
  * // Create a database instance with custom options
49
69
  * const sdb = new SimpleDB({
50
- * debug: true, // Enable debugging output
51
- * nbRowsToLog: 20 // Set the number of rows to log by default
70
+ * logSQL: true, // Log SQL immediately before it runs
71
+ * rowsToLog: 20 // Set the number of rows to log by default
52
72
  * });
53
73
  * ```
54
74
  */
55
- export default class SimpleDB extends Simple {
75
+ class SimpleDB extends Simple {
56
76
  /**
57
77
  * Creates a new SimpleDB instance.
58
78
  *
79
+ * DuckDB sessions use UTC so temporal parsing, extraction, and returned
80
+ * `TIMESTAMP WITH TIME ZONE` strings are consistent across environments.
81
+ *
82
+ * Existing tables and SDA index metadata are restored on first use. The
83
+ * `__sda` schema is reserved for versioned SDA metadata. SQLite files can be
84
+ * imported with `loadDB()` but cannot be used as the persistent database.
85
+ *
59
86
  * @param options - Configuration options for the SimpleDB instance.
60
- * @param options.file - The path to the database file. If not provided, an in-memory database is used.
61
- * @param options.overwrite - A flag indicating whether to overwrite the database file if it already exists.
87
+ * @param options.file - A `.db` or `.duckdb` file to open or create. Defaults to an in-memory database.
88
+ * @param options.overwrite - If true, replaces an existing file on first use. Defaults to false, which opens the existing file.
89
+ * @param options.readOnly - Opens an existing DuckDB file read-only. Defaults to false. Requires a file and cannot be combined with overwrite.
62
90
  * @param options.logDuration - A flag indicating whether to log the total execution duration.
63
- * @param options.nbRowsToLog - The number of rows to display when logging a table.
64
- * @param options.nbCharactersToLog - The maximum number of characters to display for text-based cells.
65
- * @param options.types - A flag indicating whether to include data types when logging a table.
66
- * @param options.cacheVerbose - A flag indicating whether to log verbose cache-related messages.
67
- * @param options.debug - A flag indicating whether to log debugging information.
91
+ * @param options.rowsToLog - The number of rows to display when logging a table.
92
+ * @param options.charsToLog - The maximum number of characters to display for text-based cells.
93
+ * @param options.typesToLog - A flag indicating whether to include data types when logging a table.
94
+ * @param options.cacheVerbose - Whether to log cache hits and misses, code and input changes, TTL status, and cache read/write timing.
95
+ * @param options.logSQL - A flag indicating whether to log SQL immediately before execution.
96
+ * @param options.explainSQL - A flag indicating whether to log DuckDB query plans for supported statements.
68
97
  * @param options.duckDbCache - A flag indicating whether to use DuckDB's external file cache.
69
98
  * @param options.progressBar - A flag indicating whether to display a progress bar for long-running operations.
70
99
  * @param options.memoryLimit - The maximum amount of memory DuckDB is allowed to use (e.g., `'4GB'`). Defaults to 80% of system RAM.
71
- * @param options.tempDirectory - 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 `done()`.
100
+ * @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()`.
72
101
  * @category Constructor
102
+ *
103
+ * @example
104
+ * ```ts
105
+ * const sdb = new SimpleDB({
106
+ * logSQL: true,
107
+ * explainSQL: true,
108
+ * });
109
+ * ```
73
110
  */
74
111
  constructor(options = {}) {
75
112
  super(options);
113
+ _SimpleDB_instances.add(this);
114
+ /**
115
+ * Whether to log each SQL statement immediately before execution.
116
+ *
117
+ * @defaultValue `false`
118
+ * @category Properties
119
+ * @example
120
+ * ```ts
121
+ * const sdb = new SimpleDB({ logSQL: true });
122
+ * ```
123
+ */
124
+ Object.defineProperty(this, "logSQL", {
125
+ enumerable: true,
126
+ configurable: true,
127
+ writable: true,
128
+ value: void 0
129
+ });
130
+ /**
131
+ * Whether to log DuckDB query plans before supported statements execute.
132
+ *
133
+ * @defaultValue `false`
134
+ * @category Properties
135
+ * @example
136
+ * ```ts
137
+ * const sdb = new SimpleDB({ explainSQL: true });
138
+ * ```
139
+ */
140
+ Object.defineProperty(this, "explainSQL", {
141
+ enumerable: true,
142
+ configurable: true,
143
+ writable: true,
144
+ value: void 0
145
+ });
76
146
  /**
77
147
  * An array of paths to the data sources used in the cache.
78
148
  *
@@ -122,19 +192,8 @@ export default class SimpleDB extends Simple {
122
192
  value: void 0
123
193
  });
124
194
  /**
125
- * An array of table instances associated with this database.
126
- *
127
- * @defaultValue `[]`
128
- * @category Properties
129
- */
130
- Object.defineProperty(this, "tables", {
131
- enumerable: true,
132
- configurable: true,
133
- writable: true,
134
- value: void 0
135
- });
136
- /**
137
- * A flag indicating whether to log verbose cache-related messages.
195
+ * Whether to log cache hits and misses, code and input changes, TTL status,
196
+ * and cache read/write timing.
138
197
  *
139
198
  * @defaultValue `false`
140
199
  * @category Properties
@@ -181,6 +240,75 @@ export default class SimpleDB extends Simple {
181
240
  writable: true,
182
241
  value: void 0
183
242
  });
243
+ /**
244
+ * The in-flight flush of the pending chains, if one is running. Concurrent
245
+ * observers await it instead of reading mid-flush state. This is for
246
+ * internal use only.
247
+ *
248
+ * @defaultValue `null`
249
+ * @internal
250
+ */
251
+ Object.defineProperty(this, "flushPromise", {
252
+ enumerable: true,
253
+ configurable: true,
254
+ writable: true,
255
+ value: void 0
256
+ });
257
+ _SimpleDB_closePromise.set(this, null);
258
+ _SimpleDB_startPromise.set(this, null);
259
+ _SimpleDB_initialized.set(this, false);
260
+ /**
261
+ * The database lifecycle state. This is for internal use only.
262
+ *
263
+ * @internal
264
+ */
265
+ Object.defineProperty(this, "lifecycleState", {
266
+ enumerable: true,
267
+ configurable: true,
268
+ writable: true,
269
+ value: void 0
270
+ });
271
+ /**
272
+ * The number of queued operations across all tables, so query execution
273
+ * points skip the flush entirely when nothing is pending. This is for
274
+ * internal use only.
275
+ *
276
+ * @defaultValue `0`
277
+ * @internal
278
+ */
279
+ Object.defineProperty(this, "pendingCount", {
280
+ enumerable: true,
281
+ configurable: true,
282
+ writable: true,
283
+ value: void 0
284
+ });
285
+ /**
286
+ * A counter stamping queued operations with their position in program
287
+ * order across all tables, so flushes replay them in the order they were
288
+ * queued. This is for internal use only.
289
+ *
290
+ * @defaultValue `0`
291
+ * @internal
292
+ */
293
+ Object.defineProperty(this, "opSequence", {
294
+ enumerable: true,
295
+ configurable: true,
296
+ writable: true,
297
+ value: void 0
298
+ });
299
+ /**
300
+ * A flag indicating that the spatial extension has been loaded on this
301
+ * connection, so it's only loaded once. This is for internal use only.
302
+ *
303
+ * @defaultValue `false`
304
+ * @internal
305
+ */
306
+ Object.defineProperty(this, "spatialLoaded", {
307
+ enumerable: true,
308
+ configurable: true,
309
+ writable: true,
310
+ value: void 0
311
+ });
184
312
  /**
185
313
  * A flag indicating whether to use DuckDB's external file cache.
186
314
  *
@@ -206,19 +334,20 @@ export default class SimpleDB extends Simple {
206
334
  value: void 0
207
335
  });
208
336
  /**
209
- * 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 `done()`.
337
+ * 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()`.
210
338
  *
211
339
  * @defaultValue `undefined`
212
340
  * @category Properties
213
341
  */
214
- Object.defineProperty(this, "tempDirectory", {
342
+ Object.defineProperty(this, "tempDir", {
215
343
  enumerable: true,
216
344
  configurable: true,
217
345
  writable: true,
218
346
  value: void 0
219
347
  });
220
348
  /**
221
- * The path to the database file. If not provided, an in-memory database is used.
349
+ * The path to the persistent DuckDB database, opened or created on first use.
350
+ * If not provided, an in-memory database is used. Imports and exports do not change this path.
222
351
  *
223
352
  * @defaultValue `:memory:`
224
353
  * @category Properties
@@ -230,7 +359,7 @@ export default class SimpleDB extends Simple {
230
359
  value: void 0
231
360
  });
232
361
  /**
233
- * A flag indicating whether to overwrite the database file if it already exists.
362
+ * Whether to replace an existing DuckDB file on first use instead of opening it.
234
363
  *
235
364
  * @defaultValue `false`
236
365
  * @category Properties
@@ -241,10 +370,30 @@ export default class SimpleDB extends Simple {
241
370
  writable: true,
242
371
  value: void 0
243
372
  });
373
+ /**
374
+ * Whether the persistent DuckDB file is opened read-only. Requires an existing
375
+ * file and cannot be combined with `overwrite`. DuckDB rejects writes to it.
376
+ *
377
+ * @defaultValue `false`
378
+ * @category Properties
379
+ * @example
380
+ * ```ts
381
+ * const sdb = new SimpleDB({ file: "./archive.duckdb", readOnly: true });
382
+ * const table = await sdb.getTable("employees");
383
+ * await table.log();
384
+ * await sdb.close();
385
+ * ```
386
+ */
387
+ Object.defineProperty(this, "readOnly", {
388
+ enumerable: true,
389
+ configurable: true,
390
+ writable: true,
391
+ value: void 0
392
+ });
244
393
  /**
245
394
  * The class used to create table instances. Defaults to `SimpleTable`.
246
395
  * Override this property when subclassing to ensure all table-creating
247
- * methods (e.g., `newTable()`, `cloneTable()`) return instances of your
396
+ * methods (e.g., `newTable()`, `clone()`) return instances of your
248
397
  * custom table class.
249
398
  *
250
399
  * @defaultValue `SimpleTable`
@@ -275,10 +424,13 @@ export default class SimpleDB extends Simple {
275
424
  value: SimpleTable
276
425
  });
277
426
  this.file = options.file ?? ":memory:";
427
+ this.logSQL = options.logSQL ?? false;
428
+ this.explainSQL = options.explainSQL ?? false;
278
429
  this.overwrite = options.overwrite ?? false;
430
+ this.readOnly = options.readOnly ?? false;
279
431
  this.logDuration = options.logDuration ?? false;
280
432
  this.tableIncrement = 1;
281
- this.tables = [];
433
+ initializeTableRegistry(this);
282
434
  this.cacheSourcesUsed = [];
283
435
  this.cacheVerbose = options.cacheVerbose ?? false;
284
436
  this.cacheTimeSaved = 0;
@@ -288,7 +440,12 @@ export default class SimpleDB extends Simple {
288
440
  ? false
289
441
  : options.duckDbCache;
290
442
  this.memoryLimit = options.memoryLimit;
291
- this.tempDirectory = options.tempDirectory;
443
+ this.tempDir = options.tempDir;
444
+ this.flushPromise = null;
445
+ this.lifecycleState = "open";
446
+ this.pendingCount = 0;
447
+ this.opSequence = 0;
448
+ this.spatialLoaded = false;
292
449
  this.runQuery = runQuery;
293
450
  if (this.cacheVerbose || this.logDuration) {
294
451
  this.durationStart = Date.now();
@@ -302,58 +459,19 @@ export default class SimpleDB extends Simple {
302
459
  * @category Lifecycle
303
460
  */
304
461
  async start() {
305
- if (this.db === undefined || this.connection === undefined) {
306
- if (this.file !== ":memory:") {
307
- if (getExtension(this.file) !== "db") {
308
- throw new Error(`The file extension must be .db. The current file is ${this.file}.`);
309
- }
310
- if (existsSync(this.file) && this.overwrite === false) {
311
- 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.`);
312
- }
313
- else if (existsSync(this.file) && this.overwrite === true) {
314
- rmSync(this.file);
315
- }
316
- }
317
- this.db = await DuckDBInstance.create(this.file);
318
- this.connection = await this.db.connect();
319
- // By default, DuckDB does not compress in-memory databases, so we enable it here.
320
- if (this.file === ":memory:") {
321
- await this.customQuery("ATTACH OR REPLACE ':memory:' AS memory (COMPRESS);");
322
- }
323
- if (this.duckDbCache === true) {
324
- await this.customQuery("SET enable_external_file_cache=true;");
325
- }
326
- else if (this.duckDbCache === false) {
327
- await this.customQuery("SET enable_external_file_cache=false;");
328
- }
329
- if (this.progressBar) {
330
- await this.customQuery(`SET enable_progress_bar = TRUE; SET progress_bar_time = 0;`);
331
- }
332
- if (this.memoryLimit !== undefined) {
333
- await this.customQuery(`SET memory_limit = '${this.memoryLimit}';`);
334
- }
335
- if (this.tempDirectory !== undefined) {
336
- await this.customQuery(`SET temp_directory = '${this.tempDirectory}';`);
337
- }
462
+ if (this.lifecycleState === "closed") {
463
+ throw new Error(`start() cannot use a SimpleDB that is ${this.lifecycleState}.`);
338
464
  }
339
- return this;
340
- }
341
- /**
342
- * Adds a SimpleTable instance to the internal list of tables.
343
- *
344
- * @param table - The SimpleTable instance to add.
345
- * @internal
346
- * @category Table Management
347
- */
348
- pushTable(table) {
349
- const TableClass = this.tableClass;
350
- if (!(table instanceof TableClass)) {
351
- throw new Error(`The table must be an instance of ${TableClass.name}.`);
352
- }
353
- if (this.tables.map((t) => t.name).includes(table.name)) {
354
- throw new Error(`Table ${table.name} already exists.`);
465
+ if (__classPrivateFieldGet(this, _SimpleDB_startPromise, "f") === null) {
466
+ // The setup queries below must run before any queued operation, so
467
+ // they must not trigger a flush.
468
+ __classPrivateFieldSet(this, _SimpleDB_startPromise, runExemptFromFlush(this, async () => {
469
+ await __classPrivateFieldGet(this, _SimpleDB_instances, "m", _SimpleDB_setup).call(this);
470
+ __classPrivateFieldSet(this, _SimpleDB_initialized, true, "f");
471
+ return this;
472
+ }), "f");
355
473
  }
356
- this.tables.push(table);
474
+ return await __classPrivateFieldGet(this, _SimpleDB_startPromise, "f");
357
475
  }
358
476
  /**
359
477
  * Creates a new SimpleTable instance within the database.
@@ -365,39 +483,49 @@ export default class SimpleDB extends Simple {
365
483
  * @example
366
484
  * ```ts
367
485
  * // Create a table with a default name (e.g., "table1", "table2", etc.)
368
- * const dataTable = sdb.newTable();
486
+ * const dataTable = await sdb
487
+ * .newTable()
488
+ * .loadArray([{ value: 1 }])
489
+ * .log();
369
490
  * ```
370
491
  *
371
492
  * @example
372
493
  * ```ts
373
494
  * // Create a table with a specific name
374
- * const employees = sdb.newTable("employees");
495
+ * const employees = await sdb
496
+ * .newTable("employees")
497
+ * .loadData("employees.csv")
498
+ * .log();
375
499
  * ```
376
500
  */
377
501
  newTable(name) {
502
+ if (this.lifecycleState !== "open") {
503
+ throw new Error(`newTable() cannot use a SimpleDB that is ${this.lifecycleState}.`);
504
+ }
378
505
  const TableClass = this.tableClass;
379
- // SHOULD MATCH cloneTable
506
+ // SHOULD MATCH clone
380
507
  let table;
381
508
  if (typeof name === "string") {
382
509
  table = new TableClass(name, this, {
383
- debug: this.debug,
384
- nbRowsToLog: this.nbRowsToLog,
385
- nbCharactersToLog: this.nbCharactersToLog,
386
- types: this.types,
510
+ rowsToLog: this.rowsToLog,
511
+ charsToLog: this.charsToLog,
512
+ typesToLog: this.typesToLog,
387
513
  });
388
514
  table.defaultTableName = false;
389
515
  }
390
516
  else {
517
+ while (this.getTables().some((table) => table.name.toLowerCase() === `table${this.tableIncrement}`)) {
518
+ this.tableIncrement++;
519
+ }
391
520
  table = new TableClass(`table${this.tableIncrement}`, this, {
392
- debug: this.debug,
393
- nbRowsToLog: this.nbRowsToLog,
394
- nbCharactersToLog: this.nbCharactersToLog,
395
- types: this.types,
521
+ rowsToLog: this.rowsToLog,
522
+ charsToLog: this.charsToLog,
523
+ typesToLog: this.typesToLog,
396
524
  });
397
525
  table.defaultTableName = true;
398
526
  this.tableIncrement += 1;
399
527
  }
400
- this.pushTable(table);
528
+ registerTable(this, table);
401
529
  return table;
402
530
  }
403
531
  /**
@@ -411,22 +539,25 @@ export default class SimpleDB extends Simple {
411
539
  * ```ts
412
540
  * // Retrieve the "employees" table
413
541
  * const employees = await sdb.getTable("employees");
542
+ * await employees.log();
414
543
  * ```
415
544
  */
416
545
  async getTable(name) {
417
- const table = this.tables.find((t) => t.name === name);
546
+ await this.start();
547
+ const tables = this.getTables();
548
+ const table = tables.find((t) => t.name === name);
418
549
  if (table) {
419
550
  return await table;
420
551
  }
421
552
  else {
422
- throw new Error(`Table ${name} not found.`);
553
+ throw new Error(formatMissingTables("getTable()", [name], tables.map((availableTable) => availableTable.name)));
423
554
  }
424
555
  }
425
556
  /**
426
557
  * Removes one or more tables from the database.
427
558
  *
428
559
  * @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.
429
- * @returns A promise that resolves when the tables have been removed.
560
+ * @returns A promise that resolves to the database, so methods can be chained.
430
561
  * @category Table Management
431
562
  *
432
563
  * @example
@@ -456,24 +587,14 @@ export default class SimpleDB extends Simple {
456
587
  * ```
457
588
  */
458
589
  async removeTables(tables) {
459
- const tablesToBeRemoved = tables === "all"
460
- ? [...this.tables]
461
- : Array.isArray(tables)
462
- ? tables
463
- : [tables];
464
- await queryDB(this, tablesToBeRemoved.map((d) => `DROP TABLE "${d instanceof SimpleTable ? d.name : d}";`).join("\n"), mergeOptions(this, {
465
- table: null,
466
- method: "removeTable()",
467
- parameters: {},
468
- }));
469
- const tablesNamesToBeRemoved = tablesToBeRemoved.map((t) => t instanceof SimpleTable ? t.name : t);
470
- this.tables = this.tables.filter((t) => !tablesNamesToBeRemoved.includes(t.name));
590
+ await removeTables(this, tables);
591
+ return this;
471
592
  }
472
593
  /**
473
594
  * Selects one or more tables to keep in the database, removing all others.
474
595
  *
475
596
  * @param tables - A single table or an array of tables to select, specified by name or as SimpleTable instances.
476
- * @returns A promise that resolves when the tables have been selected.
597
+ * @returns A promise that resolves to the database, so methods can be chained.
477
598
  * @category Table Management
478
599
  *
479
600
  * @example
@@ -497,20 +618,8 @@ export default class SimpleDB extends Simple {
497
618
  * ```
498
619
  */
499
620
  async selectTables(tables) {
500
- const tablesToBeSelected = (Array.isArray(tables) ? tables : [tables]).map((t) => t instanceof SimpleTable ? t.name : t);
501
- for (const table of tablesToBeSelected) {
502
- if (!(await this.hasTable(table))) {
503
- throw new Error(`Table ${table} not found.`);
504
- }
505
- }
506
- const tablesToBeRemoved = this.tables.filter((t) => !tablesToBeSelected.includes(t.name));
507
- await queryDB(this, tablesToBeRemoved.map((d) => `DROP TABLE "${d instanceof SimpleTable ? d.name : d}";`).join("\n"), mergeOptions(this, {
508
- table: null,
509
- method: "removeTable()",
510
- parameters: {},
511
- }));
512
- const tablesNamesToBeRemoved = tablesToBeRemoved.map((t) => t instanceof SimpleTable ? t.name : t);
513
- this.tables = this.tables.filter((t) => !tablesNamesToBeRemoved.includes(t.name));
621
+ await selectTables(this, tables);
622
+ return this;
514
623
  }
515
624
  /**
516
625
  * Returns an array of all table names in the database, sorted alphabetically.
@@ -531,7 +640,7 @@ export default class SimpleDB extends Simple {
531
640
  /**
532
641
  * Logs the names of all tables in the database to the console, sorted alphabetically.
533
642
  *
534
- * @returns A promise that resolves when the table names have been logged.
643
+ * @returns A promise that resolves to the database, so methods can be chained.
535
644
  * @category Table Management
536
645
  *
537
646
  * @example
@@ -549,21 +658,25 @@ export default class SimpleDB extends Simple {
549
658
  else {
550
659
  console.log(`\nSimpleDB - No tables found.`);
551
660
  }
661
+ return this;
552
662
  }
553
663
  /**
554
664
  * Returns an array of all SimpleTable instances in the database.
555
665
  *
556
- * @returns A promise that resolves to an array of SimpleTable instances.
666
+ * The returned array is a snapshot and cannot mutate the database's internal
667
+ * table registry.
668
+ *
669
+ * @returns A read-only array of SimpleTable instances.
557
670
  * @category Table Management
558
671
  *
559
672
  * @example
560
673
  * ```ts
561
674
  * // Get all SimpleTable instances
562
- * const tables = await sdb.getTables();
675
+ * const tables = sdb.getTables();
563
676
  * ```
564
677
  */
565
- async getTables() {
566
- return await this.tables;
678
+ getTables() {
679
+ return listRegisteredTables(this);
567
680
  }
568
681
  /**
569
682
  * Checks if a table exists in the database.
@@ -607,7 +720,7 @@ export default class SimpleDB extends Simple {
607
720
  */
608
721
  async getExtensions() {
609
722
  return (await queryDB(this, `FROM duckdb_extensions();`, mergeOptions(this, {
610
- returnDataFrom: "query",
723
+ returnData: true,
611
724
  table: null,
612
725
  method: "getExtensions()",
613
726
  parameters: {},
@@ -615,15 +728,20 @@ export default class SimpleDB extends Simple {
615
728
  }
616
729
  /**
617
730
  * Executes a custom SQL query directly against the DuckDB instance.
731
+ * Queries run in UTC. When data is returned, temporal values use the same
732
+ * JavaScript representations as `SimpleTable.getData()`.
618
733
  *
619
- * If you want to force the returned data to match the types of the columns, you can use the `types` option.
734
+ * `customQuery()` bypasses the dependency and table-generation tracking used
735
+ * by `SimpleTable.cache()`. Reading or changing a table with `customQuery()`
736
+ * can therefore cause `cache()` to return stale data. Include a value that
737
+ * identifies the custom query's dependencies in the cache's `options.inputs`
738
+ * (such as a table content hash), or use tracked `SimpleTable` methods.
620
739
  *
621
740
  * @param query - The SQL query string to execute.
622
741
  * @param options - Configuration options for the query.
623
- * @param options.returnDataFrom - Specifies whether to return data from the query. Can be `"query"` to return data or `"none"` (default) to not return data.
742
+ * @param options.returnData - If `true`, the query result is returned. Defaults to `false`.
624
743
  * @param options.table - The name of the table associated with the query, primarily used for debugging and logging.
625
- * @param options.types - An optional object specifying data types for the query parameters.
626
- * @returns A promise that resolves to the query result as an array of objects if `returnDataFrom` is `"query"`, otherwise `null`.
744
+ * @returns A promise that resolves to the query result as an array of objects if `returnData` is `true`, otherwise `null`.
627
745
  * @category DuckDB
628
746
  *
629
747
  * @example
@@ -637,29 +755,33 @@ export default class SimpleDB extends Simple {
637
755
  * // Execute a query and return the results
638
756
  * const youngEmployees = await sdb.customQuery(
639
757
  * "SELECT * FROM employees WHERE age < 30",
640
- * { returnDataFrom: "query" }
758
+ * { returnData: true }
641
759
  * );
642
760
  * console.log(youngEmployees);
643
761
  * ```
644
762
  */
645
763
  async customQuery(query, options = {}) {
646
764
  return await queryDB(this, query, mergeOptions(this, {
647
- returnDataFrom: options.returnDataFrom,
765
+ returnData: options.returnData ?? false,
648
766
  table: options.table ?? null,
649
767
  method: "customQuery()",
650
768
  parameters: { query, options },
651
- types: options.types,
652
769
  }));
653
770
  }
654
771
  /**
655
- * Loads a database from a specified file into the current SimpleDB instance.
656
- * Supported file types are `.db` (DuckDB) and `.sqlite` (SQLite).
657
- *
658
- * @param file - The absolute path to the database file (e.g., "./my_database.db").
659
- * @param options - Configuration options for loading the database.
660
- * @param options.name - The name to assign to the loaded database within the DuckDB instance. Defaults to the file name without extension.
661
- * @param options.detach - If `true` (default), the database is detached after loading its contents into memory. If `false`, the database remains attached.
662
- * @returns A promise that resolves when the database has been loaded.
772
+ * Imports a copy of a `.db` or `.duckdb` (DuckDB) or `.sqlite` (SQLite)
773
+ * file into the current database. The source is opened read-only and detached
774
+ * after importing; subsequent transformations do not modify the source file.
775
+ * Imports work with in-memory and writable persistent databases. Existing
776
+ * table-name conflicts are rejected and a failed copy is rolled back.
777
+ *
778
+ * DuckDB files restore embedded SDA index definitions when present. SQLite
779
+ * imports copy data without SDA index metadata. The `__sda` schema is reserved
780
+ * for SDA metadata.
781
+ * To edit an existing DuckDB file in place, use `new SimpleDB({ file })`.
782
+ *
783
+ * @param file - The relative or absolute path to the database file.
784
+ * @returns A promise that resolves to the database, so methods can be chained.
663
785
  * @category File Operations
664
786
  *
665
787
  * @example
@@ -670,85 +792,42 @@ export default class SimpleDB extends Simple {
670
792
  *
671
793
  * @example
672
794
  * ```ts
673
- * // Load a SQLite database file and keep it attached
674
- * await sdb.loadDB("./my_database.sqlite", { detach: false });
795
+ * // Import SQLite tables without modifying the original file
796
+ * await sdb.loadDB("./my_database.sqlite");
675
797
  * ```
676
798
  *
677
799
  * @example
678
800
  * ```ts
679
- * // Load a database with a custom name
680
- * await sdb.loadDB("./archive.db", { name: "archive_db" });
801
+ * // Import a copy into a persistent DuckDB database
802
+ * const sdb = new SimpleDB({ file: "./analysis.duckdb" });
803
+ * await sdb.loadDB("./archive.db");
804
+ * await sdb.close();
681
805
  * ```
682
806
  */
683
- async loadDB(file, options = {}) {
684
- const name = options.name ?? "my_database";
685
- const detach = options.detach ?? true;
686
- if (!existsSync(file)) {
687
- throw new Error(`The file ${file} does not exist.`);
688
- }
689
- const extension = getExtension(file);
690
- const allIndexesFile = `${file.replace(`.${extension}`, "")}_indexes.json`;
691
- const vssIndex = checkVssIndexes(allIndexesFile);
692
- if (vssIndex) {
693
- await this.customQuery(`INSTALL vss; LOAD vss;`);
694
- }
695
- if (extension === "db") {
696
- if (detach) {
697
- await queryDB(this, `ATTACH '${cleanPath(file)}' AS ${name};
698
- COPY FROM DATABASE ${name} TO memory;
699
- DETACH ${name};`, mergeOptions(this, {
700
- returnDataFrom: "none",
701
- table: null,
702
- method: "loadDB()",
703
- parameters: {},
704
- }));
705
- }
706
- else {
707
- await queryDB(this, `ATTACH '${cleanPath(file)}' AS ${name};
708
- USE ${name};`, mergeOptions(this, {
709
- returnDataFrom: "none",
710
- table: null,
711
- method: "loadDB()",
712
- parameters: {},
713
- }));
714
- }
715
- }
716
- else if (extension === "sqlite") {
717
- if (detach) {
718
- await queryDB(this, `INSTALL sqlite; LOAD sqlite;
719
- ATTACH '${cleanPath(file)}' AS ${name} (TYPE SQLITE);
720
- COPY FROM DATABASE ${name} TO memory;
721
- DETACH ${name};`, mergeOptions(this, {
722
- returnDataFrom: "none",
723
- table: null,
724
- method: "loadDB()",
725
- parameters: {},
726
- }));
727
- }
728
- else {
729
- await queryDB(this, `INSTALL sqlite; LOAD sqlite;
730
- ATTACH '${cleanPath(file)}' AS ${name} (TYPE SQLITE);
731
- USE ${name};`, mergeOptions(this, {
732
- returnDataFrom: "none",
733
- table: null,
734
- method: "loadDB()",
735
- parameters: {},
736
- }));
737
- }
738
- }
739
- else {
740
- throw new Error(`The extension ${extension} is not supported. Please use .db or .sqlite instead.`);
741
- }
742
- await setDbProps(this, allIndexesFile);
807
+ async loadDB(file) {
808
+ await loadDB(this, file);
809
+ return this;
743
810
  }
744
811
  /**
745
- * Writes the current state of the database to a specified file.
746
- * Supported output file types are `.db` (DuckDB) and `.sqlite` (SQLite).
812
+ * Exports a snapshot of the current database after executing pending work.
813
+ * Does not change the working database or where subsequent changes persist.
814
+ * DuckDB outputs (`.db` and `.duckdb`) preserve database objects and embed SDA
815
+ * index definitions in the reserved `__sda` schema.
816
+ *
817
+ * SQLite output (`.sqlite`) materializes main-schema tables and views as
818
+ * tables. It does not preserve DuckDB schemas, indexes, constraints, or SDA
819
+ * metadata, and SQLite type conversion may lose type information. Unsupported
820
+ * conversions fail without replacing an existing destination.
821
+ *
822
+ * Existing files require explicit overwrite permission. The completed export
823
+ * is published only after its connection is detached. Database files attached
824
+ * to this instance, directories, and symbolic links cannot be replaced.
747
825
  *
748
- * @param file - The absolute path to the output file (e.g., "./my_exported_database.db").
826
+ * @param file - The relative or absolute path to the output file.
749
827
  * @param options - Configuration options for writing the database.
750
- * @param options.noMetaData - If `true`, metadata files (indexes) are not created alongside the database file. Defaults to `false`.
751
- * @returns A promise that resolves when the database has been written to the file.
828
+ * @param options.overwrite - If true, permits atomic replacement of an existing output file. Defaults to false.
829
+ * @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.
830
+ * @returns A promise that resolves to the database, so methods can be chained.
752
831
  * @category File Operations
753
832
  *
754
833
  * @example
@@ -759,96 +838,202 @@ DETACH ${name};`, mergeOptions(this, {
759
838
  *
760
839
  * @example
761
840
  * ```ts
762
- * // Write the current database to a SQLite file without metadata
763
- * await sdb.writeDB("./my_exported_database.sqlite", { noMetaData: true });
841
+ * // Explicitly replace an earlier snapshot
842
+ * await sdb.writeDB("./my_exported_database.duckdb", { overwrite: true });
843
+ * ```
844
+ *
845
+ * @example
846
+ * ```ts
847
+ * // Export table data for use with SQLite
848
+ * await sdb.writeDB("./my_exported_database.sqlite");
764
849
  * ```
765
850
  */
766
851
  async writeDB(file, options = {}) {
767
- const noMetaData = options.noMetaData ?? false;
768
- if (existsSync(file)) {
769
- rmSync(file);
770
- }
771
- createDirectory(file);
772
- const extension = getExtension(file);
773
- if (!noMetaData) {
774
- writeIndexes(this, extension, file);
775
- }
776
- const name = getName(file);
777
- if (extension === "db") {
778
- await queryDB(this, `ATTACH '${cleanPath(file)}' AS ${name};
779
- COPY FROM DATABASE ${getName(this.file)} TO ${name};
780
- DETACH ${name};`, mergeOptions(this, {
781
- returnDataFrom: "none",
782
- table: null,
783
- method: "writeDB()",
784
- parameters: {},
785
- }));
786
- }
787
- else if (extension === "sqlite") {
788
- await queryDB(this, `INSTALL sqlite; LOAD sqlite;
789
- ATTACH '${cleanPath(file)}' AS ${name} (TYPE SQLITE);
790
- COPY FROM DATABASE ${getName(this.file)} TO ${name};
791
- DETACH ${name};`, mergeOptions(this, {
792
- returnDataFrom: "none",
793
- table: null,
794
- method: "writeDB()",
795
- parameters: {},
796
- }));
797
- }
798
- else {
799
- throw new Error(`The extension ${extension} is not supported. Please use .db or .sqlite instead.`);
852
+ await writeDB(this, file, options);
853
+ return this;
854
+ }
855
+ /**
856
+ * Executes all queued methods across every table in the database. Sync
857
+ * builder methods (like `filter()` or `convert()`) only queue their
858
+ * operation; execution happens when an async observer method (like
859
+ * `getData()`, `log()`, or `writeData()`) is awaited. Use `run()` when
860
+ * your script ends in pure mutations with nothing to observe and you want
861
+ * the work done now.
862
+ *
863
+ * The whole database is flushed in program order, so operations on
864
+ * different tables execute exactly in the order they were queued. This is
865
+ * the database-level counterpart to `SimpleTable.run()`.
866
+ *
867
+ * @returns A promise that resolves to the SimpleDB instance once the queued methods have been executed.
868
+ * @category Lifecycle
869
+ *
870
+ * @example
871
+ * ```ts
872
+ * // Nothing is observed after the mutations, so run() executes them.
873
+ * table1.loadData("data1.csv").convert({ price: "number" });
874
+ * table2.loadData("data2.csv").filter(`price > 0`);
875
+ * await sdb.run();
876
+ * ```
877
+ */
878
+ async run() {
879
+ if (this.lifecycleState !== "open") {
880
+ throw new Error(`run() cannot use a SimpleDB that is ${this.lifecycleState}.`);
800
881
  }
882
+ await flushAllTables(this);
883
+ return this;
801
884
  }
802
885
  /**
803
- * Frees up memory by closing the database connection and instance, and cleans up the cache.
804
- * If the database is file-based, it also compacts the database file to optimize storage.
886
+ * Executes pending transformations, saves SDA metadata for writable persistent
887
+ * databases, and closes the connection and instance. Also cleans up temporary
888
+ * files and the cache. Does not copy, compact, or replace the database file.
805
889
  *
806
890
  * @returns A promise that resolves to the SimpleDB instance after cleanup.
891
+ * @throws An error after cleanup when pending execution or cleanup fails.
807
892
  * @category Lifecycle
808
893
  *
809
894
  * @example
810
895
  * ```ts
811
- * // Close the database and clean up resources
812
- * await sdb.done();
896
+ * // close() executes queued transformations before cleaning up resources.
897
+ * table.loadData("data.csv").convert({ price: "number" });
898
+ * await sdb.close();
813
899
  * ```
814
900
  */
815
- async done() {
816
- if (this.file !== ":memory:") {
817
- await this.customQuery("CHECKPOINT;");
818
- // To make sure the files will have the proper names.
819
- writeIndexes(this, getExtension(this.file), this.file);
820
- await this.writeDB(this.file.replace(".db", "_compacted.db"), {
821
- noMetaData: true,
822
- });
901
+ async close() {
902
+ if (__classPrivateFieldGet(this, _SimpleDB_closePromise, "f") !== null) {
903
+ return await __classPrivateFieldGet(this, _SimpleDB_closePromise, "f");
904
+ }
905
+ this.lifecycleState = "closing";
906
+ const closePromise = __classPrivateFieldGet(this, _SimpleDB_instances, "m", _SimpleDB_close).call(this);
907
+ __classPrivateFieldSet(this, _SimpleDB_closePromise, closePromise, "f");
908
+ return await closePromise;
909
+ }
910
+ }
911
+ _SimpleDB_closePromise = new WeakMap(), _SimpleDB_startPromise = new WeakMap(), _SimpleDB_initialized = new WeakMap(), _SimpleDB_instances = new WeakSet(), _SimpleDB_setup = async function _SimpleDB_setup() {
912
+ if (this.readOnly && (this.file === ":memory:" || this.overwrite)) {
913
+ throw new Error("readOnly requires an existing database file and cannot be combined with overwrite.");
914
+ }
915
+ if (this.file !== ":memory:") {
916
+ if (getDbFileType(this.file) !== "duckdb") {
917
+ throw new Error("Persistent databases must use .db or .duckdb. Use loadDB() to import SQLite files.");
918
+ }
919
+ if (this.readOnly && !existsSync(this.file)) {
920
+ throw new Error(`The file ${this.file} does not exist.`);
921
+ }
922
+ if (existsSync(this.file) && this.overwrite) {
823
923
  rmSync(this.file);
824
- renameSync(this.file.replace(".db", "_compacted.db"), this.file);
924
+ // A WAL belongs to the database being explicitly replaced.
925
+ rmSync(`${this.file}.wal`, { force: true });
926
+ }
927
+ if (!this.readOnly)
928
+ createDirectory(this.file);
929
+ }
930
+ this.db = await DuckDBInstance.create(this.file, this.readOnly ? { access_mode: "READ_ONLY" } : {});
931
+ this.connection = await this.db.connect();
932
+ // Keep temporal parsing, extraction, and serialization deterministic
933
+ // across machines. DuckDB otherwise inherits the process timezone.
934
+ await this.customQuery("SET TimeZone = 'UTC';");
935
+ // By default, DuckDB does not compress in-memory databases, so we enable it here.
936
+ if (this.file === ":memory:") {
937
+ await this.customQuery(`ATTACH OR REPLACE ':memory:' AS ${quoteIdentifier("memory")} (COMPRESS);`);
938
+ }
939
+ if (this.duckDbCache === true) {
940
+ await this.customQuery("SET enable_external_file_cache=true;");
941
+ }
942
+ else if (this.duckDbCache === false) {
943
+ await this.customQuery("SET enable_external_file_cache=false;");
944
+ }
945
+ if (this.progressBar) {
946
+ await this.customQuery(`SET enable_progress_bar = TRUE; SET progress_bar_time = 0;`);
947
+ }
948
+ if (this.memoryLimit !== undefined) {
949
+ await this.customQuery(`SET memory_limit = '${this.memoryLimit}';`);
950
+ }
951
+ if (this.tempDir !== undefined) {
952
+ await this.customQuery(`SET temp_directory = '${this.tempDir}';`);
953
+ }
954
+ if (this.file !== ":memory:") {
955
+ const database = await getCurrentDatabase(this);
956
+ const indexes = await readDbMetadata(this, database);
957
+ await prepareDbExtensions(this, database, indexes);
958
+ const existingNames = new Set((await this.getTableNames()).map((name) => name.toLowerCase()));
959
+ const conflicts = this.getTables().filter((table) => existingNames.has(table.name.toLowerCase()));
960
+ if (conflicts.length > 0) {
961
+ throw new Error(`Tables already exist in ${this.file}: ${conflicts.map((table) => table.name).join(", ")}. Use getTable() to access them.`);
962
+ }
963
+ await setDbProps(this, indexes);
964
+ }
965
+ }, _SimpleDB_close = async function _SimpleDB_close() {
966
+ let operationError;
967
+ try {
968
+ await flushAllTables(this);
969
+ if (this.file !== ":memory:" && !this.readOnly && __classPrivateFieldGet(this, _SimpleDB_initialized, "f")) {
970
+ const database = await getCurrentDatabase(this);
971
+ await readDbMetadata(this, database);
972
+ await writeDbMetadata(this, database, getDbIndexes(this));
973
+ await queryDbFile(this, `CHECKPOINT ${quoteIdentifier(database)};`);
825
974
  }
826
- if (this.db instanceof DuckDBInstance) {
975
+ }
976
+ catch (error) {
977
+ operationError = error;
978
+ // A failed flush can requeue work belonging to other tables. The
979
+ // connection is about to close, so release those captured values.
980
+ discardAllPending(this);
981
+ }
982
+ const cleanupErrors = [];
983
+ if (this.db instanceof DuckDBInstance) {
984
+ try {
827
985
  this.connection.closeSync();
986
+ }
987
+ catch (error) {
988
+ cleanupErrors.push(error);
989
+ }
990
+ try {
828
991
  this.db.closeSync();
829
992
  }
830
- const tmpDir = this.tempDirectory ??
993
+ catch (error) {
994
+ cleanupErrors.push(error);
995
+ }
996
+ }
997
+ try {
998
+ const tmpDir = this.tempDir ??
831
999
  (this.file === ":memory:" ? ".tmp" : `${this.file}.tmp`);
832
1000
  if (existsSync(tmpDir)) {
833
1001
  rmSync(tmpDir, { recursive: true });
834
1002
  }
835
1003
  cleanCache(this);
836
- if (typeof this.durationStart === "number") {
837
- let string = prettyDuration(this.durationStart, {
838
- prefix: "\n\nSimpleDB - Done in ",
839
- });
840
- if (this.cacheTimeSaved > 0) {
841
- string += ` / ${prettyDuration(0, {
842
- end: this.cacheTimeSaved,
843
- })} saved by using the cache`;
844
- }
845
- if (this.cacheTimeWriting > 0) {
846
- string += ` / ${prettyDuration(0, {
847
- end: this.cacheTimeWriting,
848
- })} spent writing the cache`;
849
- }
850
- console.log(`${string}\n`);
1004
+ }
1005
+ catch (error) {
1006
+ cleanupErrors.push(error);
1007
+ }
1008
+ this.lifecycleState = "closed";
1009
+ if (operationError !== undefined && cleanupErrors.length > 0) {
1010
+ throw new AggregateError([operationError, ...cleanupErrors], "Pending execution and database cleanup both failed.", { cause: operationError });
1011
+ }
1012
+ if (operationError !== undefined) {
1013
+ throw operationError;
1014
+ }
1015
+ if (cleanupErrors.length === 1) {
1016
+ throw cleanupErrors[0];
1017
+ }
1018
+ if (cleanupErrors.length > 1) {
1019
+ throw new AggregateError(cleanupErrors, "Multiple errors occurred while cleaning up the database.", { cause: cleanupErrors[0] });
1020
+ }
1021
+ if (typeof this.durationStart === "number") {
1022
+ let string = prettyDuration(this.durationStart, {
1023
+ prefix: "\n\nSimpleDB ran for ",
1024
+ });
1025
+ if (this.cacheTimeSaved > 0) {
1026
+ string += ` / ${prettyDuration(0, {
1027
+ end: this.cacheTimeSaved,
1028
+ })} saved by using the cache`;
1029
+ }
1030
+ if (this.cacheTimeWriting > 0) {
1031
+ string += ` / ${prettyDuration(0, {
1032
+ end: this.cacheTimeWriting,
1033
+ })} spent writing the cache`;
851
1034
  }
852
- return await this;
1035
+ console.log(`${string}\n`);
853
1036
  }
854
- }
1037
+ return await this;
1038
+ };
1039
+ export default SimpleDB;