@nshiab/simple-data-analysis-core 1.0.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +166 -14
- package/esm/_dnt.polyfills.d.ts +7 -0
- package/esm/_dnt.polyfills.d.ts.map +1 -0
- package/esm/_dnt.polyfills.js +1 -0
- package/esm/class/SDAError.d.ts +63 -0
- package/esm/class/SDAError.d.ts.map +1 -0
- package/esm/class/SDAError.js +83 -0
- package/esm/class/Simple.d.ts +40 -22
- package/esm/class/Simple.d.ts.map +1 -1
- package/esm/class/Simple.js +33 -20
- package/esm/class/SimpleDB.d.ts +268 -100
- package/esm/class/SimpleDB.d.ts.map +1 -1
- package/esm/class/SimpleDB.js +518 -284
- package/esm/class/SimpleTable.d.ts +1816 -940
- package/esm/class/SimpleTable.d.ts.map +1 -1
- package/esm/class/SimpleTable.js +1959 -1819
- package/esm/helpers/assertColumnsExist.d.ts +16 -0
- package/esm/helpers/assertColumnsExist.d.ts.map +1 -0
- package/esm/helpers/assertColumnsExist.js +21 -0
- package/esm/helpers/assertNewColumns.d.ts +17 -0
- package/esm/helpers/assertNewColumns.d.ts.map +1 -0
- package/esm/helpers/assertNewColumns.js +22 -0
- package/esm/helpers/assertSameDatabase.d.ts +11 -0
- package/esm/helpers/assertSameDatabase.d.ts.map +1 -0
- package/esm/helpers/assertSameDatabase.js +13 -0
- package/esm/helpers/asyncOperationContext.d.ts +19 -0
- package/esm/helpers/asyncOperationContext.d.ts.map +1 -0
- package/esm/helpers/asyncOperationContext.js +38 -0
- package/esm/helpers/buildFuzzyMatchSql.d.ts +9 -0
- package/esm/helpers/buildFuzzyMatchSql.d.ts.map +1 -0
- package/esm/helpers/buildFuzzyMatchSql.js +17 -0
- package/esm/helpers/cacheDatabase.d.ts +5 -0
- package/esm/helpers/cacheDatabase.d.ts.map +1 -0
- package/esm/helpers/cacheDatabase.js +110 -0
- package/esm/helpers/cacheDiagnostics.d.ts +4 -0
- package/esm/helpers/cacheDiagnostics.d.ts.map +1 -0
- package/esm/helpers/cacheDiagnostics.js +21 -0
- package/esm/helpers/cacheTableDependencies.d.ts +19 -0
- package/esm/helpers/cacheTableDependencies.d.ts.map +1 -0
- package/esm/helpers/cacheTableDependencies.js +117 -0
- package/esm/helpers/cleanCache.js +1 -1
- package/esm/helpers/createDirectory.d.ts +13 -0
- package/esm/helpers/createDirectory.d.ts.map +1 -1
- package/esm/helpers/createDirectory.js +13 -0
- package/esm/helpers/ensureSpatial.d.ts +7 -0
- package/esm/helpers/ensureSpatial.d.ts.map +1 -0
- package/esm/helpers/ensureSpatial.js +17 -0
- package/esm/helpers/extractTypes.d.ts +1 -1
- package/esm/helpers/extractTypes.d.ts.map +1 -1
- package/esm/helpers/extractZipEntryToFile.d.ts +3 -0
- package/esm/helpers/extractZipEntryToFile.d.ts.map +1 -0
- package/esm/helpers/extractZipEntryToFile.js +226 -0
- package/esm/helpers/fileCache.d.ts +15 -0
- package/esm/helpers/fileCache.d.ts.map +1 -0
- package/esm/helpers/fileCache.js +128 -0
- package/esm/helpers/findGeoColumn.d.ts +13 -1
- package/esm/helpers/findGeoColumn.d.ts.map +1 -1
- package/esm/helpers/findGeoColumn.js +15 -17
- package/esm/helpers/findGeoColumnFromSchema.d.ts +20 -0
- package/esm/helpers/findGeoColumnFromSchema.d.ts.map +1 -0
- package/esm/helpers/findGeoColumnFromSchema.js +28 -0
- package/esm/helpers/flushAllTables.d.ts +23 -0
- package/esm/helpers/flushAllTables.d.ts.map +1 -0
- package/esm/helpers/flushAllTables.js +411 -0
- package/esm/helpers/formatMissingTables.d.ts +19 -0
- package/esm/helpers/formatMissingTables.d.ts.map +1 -0
- package/esm/helpers/formatMissingTables.js +29 -0
- package/esm/helpers/getCurrentDatabase.d.ts +3 -0
- package/esm/helpers/getCurrentDatabase.d.ts.map +1 -0
- package/esm/helpers/getCurrentDatabase.js +7 -0
- package/esm/helpers/getDbFileType.d.ts +2 -0
- package/esm/helpers/getDbFileType.d.ts.map +1 -0
- package/esm/helpers/getDbFileType.js +9 -0
- package/esm/helpers/getDbIndexes.d.ts +4 -0
- package/esm/helpers/getDbIndexes.d.ts.map +1 -0
- package/esm/helpers/getDbIndexes.js +4 -0
- package/esm/helpers/getStatExpression.d.ts +10 -0
- package/esm/helpers/getStatExpression.d.ts.map +1 -0
- package/esm/helpers/getStatExpression.js +75 -0
- package/esm/helpers/index.d.ts +3 -0
- package/esm/helpers/index.d.ts.map +1 -1
- package/esm/helpers/index.js +3 -0
- package/esm/helpers/indexDefinitions.d.ts +30 -0
- package/esm/helpers/indexDefinitions.d.ts.map +1 -0
- package/esm/helpers/indexDefinitions.js +7 -0
- package/esm/helpers/indexQueries.d.ts +3 -0
- package/esm/helpers/indexQueries.d.ts.map +1 -0
- package/esm/helpers/indexQueries.js +36 -0
- package/esm/helpers/keepNumericalColumns.d.ts.map +1 -1
- package/esm/helpers/keepNumericalColumns.js +4 -5
- package/esm/helpers/loadOsmFile.d.ts +10 -0
- package/esm/helpers/loadOsmFile.d.ts.map +1 -0
- package/esm/helpers/loadOsmFile.js +28 -0
- package/esm/helpers/logData.d.ts +2 -2
- package/esm/helpers/logData.d.ts.map +1 -1
- package/esm/helpers/logData.js +6 -6
- package/esm/helpers/mergeOptions.d.ts +47 -15
- package/esm/helpers/mergeOptions.d.ts.map +1 -1
- package/esm/helpers/mergeOptions.js +35 -5
- package/esm/helpers/observeQuery.d.ts +9 -0
- package/esm/helpers/observeQuery.d.ts.map +1 -0
- package/esm/helpers/observeQuery.js +49 -0
- package/esm/helpers/osmCache.d.ts +16 -0
- package/esm/helpers/osmCache.d.ts.map +1 -0
- package/esm/helpers/osmCache.js +41 -0
- package/esm/helpers/osmFiles.d.ts +9 -0
- package/esm/helpers/osmFiles.d.ts.map +1 -0
- package/esm/helpers/osmFiles.js +52 -0
- package/esm/helpers/parseDuckDBType.d.ts +1 -1
- package/esm/helpers/parseValue.d.ts +16 -0
- package/esm/helpers/parseValue.d.ts.map +1 -1
- package/esm/helpers/parseValue.js +17 -1
- package/esm/helpers/pendingOps.d.ts +151 -0
- package/esm/helpers/pendingOps.d.ts.map +1 -0
- package/esm/helpers/pendingOps.js +1 -0
- package/esm/helpers/prepareDbExtensions.d.ts +4 -0
- package/esm/helpers/prepareDbExtensions.d.ts.map +1 -0
- package/esm/helpers/prepareDbExtensions.js +22 -0
- package/esm/helpers/prepareValueFilters.d.ts +11 -0
- package/esm/helpers/prepareValueFilters.d.ts.map +1 -0
- package/esm/helpers/prepareValueFilters.js +12 -0
- package/esm/helpers/queryDB.d.ts +43 -8
- package/esm/helpers/queryDB.d.ts.map +1 -1
- package/esm/helpers/queryDB.js +55 -36
- package/esm/helpers/queryDbFile.d.ts +8 -0
- package/esm/helpers/queryDbFile.d.ts.map +1 -0
- package/esm/helpers/queryDbFile.js +12 -0
- package/esm/helpers/queueAsyncBarrier.d.ts +47 -0
- package/esm/helpers/queueAsyncBarrier.d.ts.map +1 -0
- package/esm/helpers/queueAsyncBarrier.js +45 -0
- package/esm/helpers/queueOp.d.ts +18 -0
- package/esm/helpers/queueOp.d.ts.map +1 -0
- package/esm/helpers/queueOp.js +70 -0
- package/esm/helpers/quoteIdentifier.d.ts +16 -0
- package/esm/helpers/quoteIdentifier.d.ts.map +1 -0
- package/esm/helpers/quoteIdentifier.js +17 -0
- package/esm/helpers/quoteQualifiedIdentifier.d.ts +18 -0
- package/esm/helpers/quoteQualifiedIdentifier.d.ts.map +1 -0
- package/esm/helpers/quoteQualifiedIdentifier.js +20 -0
- package/esm/helpers/readDbMetadata.d.ts +5 -0
- package/esm/helpers/readDbMetadata.d.ts.map +1 -0
- package/esm/helpers/readDbMetadata.js +55 -0
- package/esm/helpers/removeColumnsNow.d.ts +8 -0
- package/esm/helpers/removeColumnsNow.d.ts.map +1 -0
- package/esm/helpers/removeColumnsNow.js +15 -0
- package/esm/helpers/resolveOutputTable.d.ts +9 -0
- package/esm/helpers/resolveOutputTable.d.ts.map +1 -0
- package/esm/helpers/resolveOutputTable.js +14 -0
- package/esm/helpers/runQuery.d.ts +11 -8
- package/esm/helpers/runQuery.d.ts.map +1 -1
- package/esm/helpers/runQuery.js +118 -15
- package/esm/helpers/serializeCacheInputs.d.ts +8 -0
- package/esm/helpers/serializeCacheInputs.d.ts.map +1 -0
- package/esm/helpers/serializeCacheInputs.js +113 -0
- package/esm/helpers/setDbProps.d.ts +4 -1
- package/esm/helpers/setDbProps.d.ts.map +1 -1
- package/esm/helpers/setDbProps.js +17 -15
- package/esm/helpers/statCanCache.d.ts +6 -0
- package/esm/helpers/statCanCache.d.ts.map +1 -0
- package/esm/helpers/statCanCache.js +38 -0
- package/esm/helpers/stringToArray.d.ts +14 -0
- package/esm/helpers/stringToArray.d.ts.map +1 -1
- package/esm/helpers/stringToArray.js +15 -1
- package/esm/helpers/tableGeneration.d.ts +18 -0
- package/esm/helpers/tableGeneration.d.ts.map +1 -0
- package/esm/helpers/tableGeneration.js +29 -0
- package/esm/helpers/tableRegistry.d.ts +9 -0
- package/esm/helpers/tableRegistry.d.ts.map +1 -0
- package/esm/helpers/tableRegistry.js +46 -0
- package/esm/helpers/toDuckDBValue.d.ts +4 -0
- package/esm/helpers/toDuckDBValue.d.ts.map +1 -0
- package/esm/helpers/toDuckDBValue.js +15 -0
- package/esm/helpers/unifyColumns.d.ts +5 -0
- package/esm/helpers/unifyColumns.d.ts.map +1 -1
- package/esm/helpers/unifyColumns.js +20 -4
- package/esm/helpers/validateNumericalAnalysis.d.ts +25 -0
- package/esm/helpers/validateNumericalAnalysis.d.ts.map +1 -0
- package/esm/helpers/validateNumericalAnalysis.js +49 -0
- package/esm/helpers/writeDbMetadata.d.ts +4 -0
- package/esm/helpers/writeDbMetadata.d.ts.map +1 -0
- package/esm/helpers/writeDbMetadata.js +9 -0
- package/esm/helpers/writeGeoData.d.ts.map +1 -1
- package/esm/helpers/writeGeoData.js +128 -41
- package/esm/helpers/writeZip.d.ts +15 -0
- package/esm/helpers/writeZip.d.ts.map +1 -0
- package/esm/helpers/writeZip.js +257 -0
- package/esm/index.d.ts +8 -4
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +8 -4
- package/esm/methods/accumulate.d.ts +5 -0
- package/esm/methods/accumulate.d.ts.map +1 -0
- package/esm/methods/accumulate.js +37 -0
- package/esm/methods/addBoundingBox.d.ts +6 -0
- package/esm/methods/addBoundingBox.d.ts.map +1 -0
- package/esm/methods/addBoundingBox.js +26 -0
- package/esm/methods/addColumn.d.ts +3 -0
- package/esm/methods/addColumn.d.ts.map +1 -0
- package/esm/methods/addColumn.js +24 -0
- package/esm/methods/addGeoClosedStatus.d.ts +5 -0
- package/esm/methods/addGeoClosedStatus.d.ts.map +1 -0
- package/esm/methods/addGeoClosedStatus.js +21 -0
- package/esm/methods/addGeoType.d.ts +5 -0
- package/esm/methods/addGeoType.d.ts.map +1 -0
- package/esm/methods/addGeoType.js +21 -0
- package/esm/methods/addGeoValidity.d.ts +5 -0
- package/esm/methods/addGeoValidity.d.ts.map +1 -0
- package/esm/methods/addGeoValidity.js +21 -0
- package/esm/methods/addRowNumber.d.ts +5 -0
- package/esm/methods/addRowNumber.d.ts.map +1 -0
- package/esm/methods/addRowNumber.js +26 -0
- package/esm/methods/addSummaryRows.d.ts +14 -0
- package/esm/methods/addSummaryRows.d.ts.map +1 -0
- package/esm/methods/addSummaryRows.js +122 -0
- package/esm/methods/addVertexCount.d.ts +5 -0
- package/esm/methods/addVertexCount.d.ts.map +1 -0
- package/esm/methods/addVertexCount.js +21 -0
- package/esm/methods/aggregateGeo.d.ts +7 -0
- package/esm/methods/aggregateGeo.d.ts.map +1 -0
- package/esm/methods/aggregateGeo.js +69 -0
- package/esm/methods/area.d.ts +7 -0
- package/esm/methods/area.d.ts.map +1 -0
- package/esm/methods/area.js +25 -0
- package/esm/methods/bins.d.ts +5 -0
- package/esm/methods/bins.d.ts.map +1 -0
- package/esm/methods/bins.js +87 -0
- package/esm/methods/bm25.d.ts +2 -2
- package/esm/methods/bm25.d.ts.map +1 -1
- package/esm/methods/bm25.js +28 -13
- package/esm/methods/buffer.d.ts +5 -0
- package/esm/methods/buffer.d.ts.map +1 -0
- package/esm/methods/buffer.js +24 -0
- package/esm/methods/cache.d.ts +2 -1
- package/esm/methods/cache.d.ts.map +1 -1
- package/esm/methods/cache.js +228 -71
- package/esm/methods/capitalize.d.ts +3 -0
- package/esm/methods/capitalize.d.ts.map +1 -0
- package/esm/methods/capitalize.js +15 -0
- package/esm/methods/centroid.d.ts +5 -0
- package/esm/methods/centroid.d.ts.map +1 -0
- package/esm/methods/centroid.js +24 -0
- package/esm/methods/clone.d.ts +9 -0
- package/esm/methods/clone.d.ts.map +1 -0
- package/esm/methods/clone.js +35 -0
- package/esm/methods/cloneColumn.d.ts +2 -3
- package/esm/methods/cloneColumn.d.ts.map +1 -1
- package/esm/methods/cloneColumn.js +17 -12
- package/esm/methods/cloneColumnWithOffset.d.ts +6 -0
- package/esm/methods/cloneColumnWithOffset.d.ts.map +1 -0
- package/esm/methods/cloneColumnWithOffset.js +35 -0
- package/esm/methods/columnProportions.d.ts +6 -0
- package/esm/methods/columnProportions.d.ts.map +1 -0
- package/esm/methods/columnProportions.js +23 -0
- package/esm/methods/concatenate.d.ts +5 -0
- package/esm/methods/concatenate.d.ts.map +1 -0
- package/esm/methods/concatenate.js +25 -0
- package/esm/methods/convert.d.ts +13 -0
- package/esm/methods/convert.d.ts.map +1 -0
- package/esm/methods/convert.js +112 -0
- package/esm/methods/correlations.d.ts +3 -3
- package/esm/methods/correlations.d.ts.map +1 -1
- package/esm/methods/correlations.js +70 -24
- package/esm/methods/coveredBy.d.ts +3 -0
- package/esm/methods/coveredBy.d.ts.map +1 -0
- package/esm/methods/coveredBy.js +16 -0
- package/esm/methods/createFtsIndex.d.ts +15 -2
- package/esm/methods/createFtsIndex.d.ts.map +1 -1
- package/esm/methods/createFtsIndex.js +52 -13
- package/esm/methods/createPoints.d.ts +5 -0
- package/esm/methods/createPoints.d.ts.map +1 -0
- package/esm/methods/createPoints.js +23 -0
- package/esm/methods/createVssIndex.d.ts +1 -1
- package/esm/methods/createVssIndex.d.ts.map +1 -1
- package/esm/methods/createVssIndex.js +34 -13
- package/esm/methods/crossJoin.d.ts +5 -0
- package/esm/methods/crossJoin.d.ts.map +1 -0
- package/esm/methods/crossJoin.js +35 -0
- package/esm/methods/difference.d.ts +3 -0
- package/esm/methods/difference.d.ts.map +1 -0
- package/esm/methods/difference.js +19 -0
- package/esm/methods/distance.d.ts +7 -0
- package/esm/methods/distance.d.ts.map +1 -0
- package/esm/methods/distance.js +48 -0
- package/esm/methods/extractDatePart.d.ts +7 -0
- package/esm/methods/extractDatePart.d.ts.map +1 -0
- package/esm/methods/extractDatePart.js +38 -0
- package/esm/methods/extractLatLon.d.ts +3 -0
- package/esm/methods/extractLatLon.d.ts.map +1 -0
- package/esm/methods/extractLatLon.js +16 -0
- package/esm/methods/fill.d.ts +2 -2
- package/esm/methods/fill.d.ts.map +1 -1
- package/esm/methods/fill.js +41 -44
- package/esm/methods/fillHoles.d.ts +3 -0
- package/esm/methods/fillHoles.d.ts.map +1 -0
- package/esm/methods/fillHoles.js +19 -0
- package/esm/methods/filter.d.ts +3 -0
- package/esm/methods/filter.d.ts.map +1 -0
- package/esm/methods/filter.js +14 -0
- package/esm/methods/firstChars.d.ts +3 -0
- package/esm/methods/firstChars.d.ts.map +1 -0
- package/esm/methods/firstChars.js +11 -0
- package/esm/methods/fixGeo.d.ts +3 -0
- package/esm/methods/fixGeo.d.ts.map +1 -0
- package/esm/methods/fixGeo.js +22 -0
- package/esm/methods/flipCoordinates.d.ts +3 -0
- package/esm/methods/flipCoordinates.d.ts.map +1 -0
- package/esm/methods/flipCoordinates.js +22 -0
- package/esm/methods/fuzzyClean.d.ts +3 -3
- package/esm/methods/fuzzyClean.d.ts.map +1 -1
- package/esm/methods/fuzzyClean.js +55 -55
- package/esm/methods/fuzzyJoin.d.ts +2 -2
- package/esm/methods/fuzzyJoin.d.ts.map +1 -1
- package/esm/methods/fuzzyJoin.js +60 -19
- package/esm/methods/getBottom.d.ts +1 -1
- package/esm/methods/getBottom.d.ts.map +1 -1
- package/esm/methods/getBottom.js +4 -3
- package/esm/methods/getBoundingBox.d.ts +3 -0
- package/esm/methods/getBoundingBox.d.ts.map +1 -0
- package/esm/methods/getBoundingBox.js +19 -0
- package/esm/methods/getCharacterCount.d.ts +3 -0
- package/esm/methods/getCharacterCount.d.ts.map +1 -0
- package/esm/methods/getCharacterCount.js +17 -0
- package/esm/methods/getColumns.d.ts.map +1 -1
- package/esm/methods/getColumns.js +4 -3
- package/esm/methods/getData.d.ts +9 -0
- package/esm/methods/getData.d.ts.map +1 -0
- package/esm/methods/getData.js +23 -0
- package/esm/methods/getDescription.d.ts.map +1 -1
- package/esm/methods/getDescription.js +15 -10
- package/esm/methods/getFirstRow.d.ts +1 -1
- package/esm/methods/getFirstRow.d.ts.map +1 -1
- package/esm/methods/getFirstRow.js +5 -4
- package/esm/methods/getGeoData.d.ts +1 -1
- package/esm/methods/getGeoData.d.ts.map +1 -1
- package/esm/methods/getGeoData.js +5 -3
- package/esm/methods/getHash.d.ts +3 -0
- package/esm/methods/getHash.d.ts.map +1 -0
- package/esm/methods/getHash.js +39 -0
- package/esm/methods/getLastRow.d.ts +2 -2
- package/esm/methods/getLastRow.d.ts.map +1 -1
- package/esm/methods/getLastRow.js +7 -3
- package/esm/methods/getMax.d.ts +1 -1
- package/esm/methods/getMax.d.ts.map +1 -1
- package/esm/methods/getMax.js +10 -10
- package/esm/methods/getMean.d.ts.map +1 -1
- package/esm/methods/getMean.js +7 -4
- package/esm/methods/getMedian.d.ts.map +1 -1
- package/esm/methods/getMedian.js +7 -4
- package/esm/methods/getMin.d.ts +1 -1
- package/esm/methods/getMin.d.ts.map +1 -1
- package/esm/methods/getMin.js +10 -10
- package/esm/methods/getQuantile.d.ts.map +1 -1
- package/esm/methods/getQuantile.js +7 -4
- package/esm/methods/getRowCount.d.ts +5 -0
- package/esm/methods/getRowCount.d.ts.map +1 -0
- package/esm/methods/getRowCount.js +16 -0
- package/esm/methods/getSchema.d.ts +5 -0
- package/esm/methods/getSchema.d.ts.map +1 -0
- package/esm/methods/getSchema.js +12 -0
- package/esm/methods/getSkew.d.ts.map +1 -1
- package/esm/methods/getSkew.js +7 -4
- package/esm/methods/getStdDev.d.ts.map +1 -1
- package/esm/methods/getStdDev.js +7 -4
- package/esm/methods/getSum.d.ts.map +1 -1
- package/esm/methods/getSum.js +6 -3
- package/esm/methods/getTableNames.js +2 -2
- package/esm/methods/getTop.d.ts +1 -1
- package/esm/methods/getTop.d.ts.map +1 -1
- package/esm/methods/getTop.js +3 -2
- package/esm/methods/getTypes.d.ts.map +1 -1
- package/esm/methods/getTypes.js +3 -2
- package/esm/methods/getUniques.d.ts +1 -1
- package/esm/methods/getUniques.d.ts.map +1 -1
- package/esm/methods/getUniques.js +6 -3
- package/esm/methods/getValues.d.ts +1 -1
- package/esm/methods/getValues.d.ts.map +1 -1
- package/esm/methods/getValues.js +5 -3
- package/esm/methods/getVariance.d.ts +5 -0
- package/esm/methods/getVariance.d.ts.map +1 -0
- package/esm/methods/getVariance.js +20 -0
- package/esm/methods/indexValues.d.ts +27 -0
- package/esm/methods/indexValues.d.ts.map +1 -0
- package/esm/methods/indexValues.js +281 -0
- package/esm/methods/insertRows.d.ts +5 -0
- package/esm/methods/insertRows.d.ts.map +1 -0
- package/esm/methods/insertRows.js +41 -0
- package/esm/methods/insertTables.d.ts +5 -0
- package/esm/methods/insertTables.d.ts.map +1 -0
- package/esm/methods/insertTables.js +99 -0
- package/esm/methods/intersection.d.ts +3 -0
- package/esm/methods/intersection.d.ts.map +1 -0
- package/esm/methods/intersection.js +19 -0
- package/esm/methods/intersects.d.ts +3 -0
- package/esm/methods/intersects.d.ts.map +1 -0
- package/esm/methods/intersects.js +16 -0
- package/esm/methods/join.d.ts +2 -2
- package/esm/methods/join.d.ts.map +1 -1
- package/esm/methods/join.js +77 -28
- package/esm/methods/joinGeo.d.ts +6 -4
- package/esm/methods/joinGeo.d.ts.map +1 -1
- package/esm/methods/joinGeo.js +127 -44
- package/esm/methods/keepValues.d.ts +5 -0
- package/esm/methods/keepValues.d.ts.map +1 -0
- package/esm/methods/keepValues.js +35 -0
- package/esm/methods/lastChars.d.ts +3 -0
- package/esm/methods/lastChars.d.ts.map +1 -0
- package/esm/methods/lastChars.js +11 -0
- package/esm/methods/length.d.ts +7 -0
- package/esm/methods/length.d.ts.map +1 -0
- package/esm/methods/length.js +25 -0
- package/esm/methods/linearRegressions.d.ts +3 -3
- package/esm/methods/linearRegressions.d.ts.map +1 -1
- package/esm/methods/linearRegressions.js +78 -24
- package/esm/methods/linesToPolygons.d.ts +3 -0
- package/esm/methods/linesToPolygons.d.ts.map +1 -0
- package/esm/methods/linesToPolygons.js +17 -0
- package/esm/methods/loadArray.d.ts +14 -2
- package/esm/methods/loadArray.d.ts.map +1 -1
- package/esm/methods/loadArray.js +52 -32
- package/esm/methods/loadDB.d.ts +3 -0
- package/esm/methods/loadDB.d.ts.map +1 -0
- package/esm/methods/loadDB.js +70 -0
- package/esm/methods/loadData.d.ts +52 -0
- package/esm/methods/loadData.d.ts.map +1 -0
- package/esm/methods/loadData.js +148 -0
- package/esm/methods/loadGeoData.d.ts +9 -0
- package/esm/methods/loadGeoData.d.ts.map +1 -0
- package/esm/methods/loadGeoData.js +104 -0
- package/esm/methods/loadOSM.d.ts +17 -0
- package/esm/methods/loadOSM.d.ts.map +1 -0
- package/esm/methods/loadOSM.js +194 -0
- package/esm/methods/loadSample.d.ts +1 -1
- package/esm/methods/loadSample.d.ts.map +1 -1
- package/esm/methods/loadSample.js +5 -4
- package/esm/methods/loadStatCanData.d.ts +10 -0
- package/esm/methods/loadStatCanData.d.ts.map +1 -0
- package/esm/methods/loadStatCanData.js +130 -0
- package/esm/methods/longer.d.ts +3 -0
- package/esm/methods/longer.d.ts.map +1 -0
- package/esm/methods/longer.js +23 -0
- package/esm/methods/lower.d.ts +3 -0
- package/esm/methods/lower.d.ts.map +1 -0
- package/esm/methods/lower.js +14 -0
- package/esm/methods/nest.d.ts +3 -0
- package/esm/methods/nest.d.ts.map +1 -0
- package/esm/methods/nest.js +23 -0
- package/esm/methods/normalize.d.ts +7 -0
- package/esm/methods/normalize.d.ts.map +1 -0
- package/esm/methods/normalize.js +41 -0
- package/esm/methods/normalizeString.d.ts +1 -1
- package/esm/methods/normalizeString.d.ts.map +1 -1
- package/esm/methods/normalizeString.js +15 -18
- package/esm/methods/outliersIQR.d.ts +5 -0
- package/esm/methods/outliersIQR.d.ts.map +1 -0
- package/esm/methods/outliersIQR.js +37 -0
- package/esm/methods/pad.d.ts +6 -0
- package/esm/methods/pad.d.ts.map +1 -0
- package/esm/methods/pad.js +55 -0
- package/esm/methods/perimeter.d.ts +7 -0
- package/esm/methods/perimeter.d.ts.map +1 -0
- package/esm/methods/perimeter.js +25 -0
- package/esm/methods/quantiles.d.ts +5 -0
- package/esm/methods/quantiles.d.ts.map +1 -0
- package/esm/methods/quantiles.js +22 -0
- package/esm/methods/randomPoint.d.ts +6 -0
- package/esm/methods/randomPoint.d.ts.map +1 -0
- package/esm/methods/randomPoint.js +105 -0
- package/esm/methods/ranks.d.ts +7 -0
- package/esm/methods/ranks.d.ts.map +1 -0
- package/esm/methods/ranks.js +22 -0
- package/esm/methods/reducePrecision.d.ts +5 -0
- package/esm/methods/reducePrecision.d.ts.map +1 -0
- package/esm/methods/reducePrecision.js +24 -0
- package/esm/methods/removeColumns.d.ts +3 -0
- package/esm/methods/removeColumns.d.ts.map +1 -0
- package/esm/methods/removeColumns.js +13 -0
- package/esm/methods/removeDuplicates.d.ts +5 -0
- package/esm/methods/removeDuplicates.d.ts.map +1 -0
- package/esm/methods/removeDuplicates.js +17 -0
- package/esm/methods/removeMissing.d.ts +1 -1
- package/esm/methods/removeMissing.d.ts.map +1 -1
- package/esm/methods/removeMissing.js +70 -11
- package/esm/methods/removeRows.d.ts +3 -0
- package/esm/methods/removeRows.d.ts.map +1 -0
- package/esm/methods/removeRows.js +14 -0
- package/esm/methods/removeTable.d.ts +3 -0
- package/esm/methods/removeTable.d.ts.map +1 -0
- package/esm/methods/removeTable.js +12 -0
- package/esm/methods/removeTables.d.ts +4 -0
- package/esm/methods/removeTables.d.ts.map +1 -0
- package/esm/methods/removeTables.js +21 -0
- package/esm/methods/removeValues.d.ts +5 -0
- package/esm/methods/removeValues.d.ts.map +1 -0
- package/esm/methods/removeValues.js +35 -0
- package/esm/methods/renameColumns.d.ts +7 -0
- package/esm/methods/renameColumns.d.ts.map +1 -0
- package/esm/methods/renameColumns.js +27 -0
- package/esm/methods/renameTable.d.ts +3 -0
- package/esm/methods/renameTable.d.ts.map +1 -0
- package/esm/methods/renameTable.js +12 -0
- package/esm/methods/repeatRows.d.ts +5 -0
- package/esm/methods/repeatRows.d.ts.map +1 -0
- package/esm/methods/repeatRows.js +19 -0
- package/esm/methods/replace.d.ts +8 -0
- package/esm/methods/replace.d.ts.map +1 -0
- package/esm/methods/replace.js +69 -0
- package/esm/methods/replaceNulls.d.ts +3 -0
- package/esm/methods/replaceNulls.d.ts.map +1 -0
- package/esm/methods/replaceNulls.js +36 -0
- package/esm/methods/reproject.d.ts +5 -0
- package/esm/methods/reproject.d.ts.map +1 -0
- package/esm/methods/reproject.js +21 -0
- package/esm/methods/rolling.d.ts +6 -0
- package/esm/methods/rolling.d.ts.map +1 -0
- package/esm/methods/rolling.js +42 -0
- package/esm/methods/round.d.ts +6 -0
- package/esm/methods/round.d.ts.map +1 -0
- package/esm/methods/round.js +22 -0
- package/esm/methods/rowProportions.d.ts +6 -0
- package/esm/methods/rowProportions.d.ts.map +1 -0
- package/esm/methods/rowProportions.js +30 -0
- package/esm/methods/rowRanks.d.ts +9 -0
- package/esm/methods/rowRanks.d.ts.map +1 -0
- package/esm/methods/rowRanks.js +113 -0
- package/esm/methods/rowToText.d.ts +3 -0
- package/esm/methods/rowToText.d.ts.map +1 -0
- package/esm/methods/rowToText.js +27 -0
- package/esm/methods/sample.d.ts +5 -0
- package/esm/methods/sample.d.ts.map +1 -0
- package/esm/methods/sample.js +16 -0
- package/esm/methods/selectColumns.d.ts +3 -0
- package/esm/methods/selectColumns.d.ts.map +1 -0
- package/esm/methods/selectColumns.js +19 -0
- package/esm/methods/selectRows.d.ts +6 -0
- package/esm/methods/selectRows.d.ts.map +1 -0
- package/esm/methods/selectRows.js +34 -0
- package/esm/methods/selectTables.d.ts +4 -0
- package/esm/methods/selectTables.d.ts.map +1 -0
- package/esm/methods/selectTables.js +25 -0
- package/esm/methods/setTypes.d.ts +5 -0
- package/esm/methods/setTypes.d.ts.map +1 -0
- package/esm/methods/setTypes.js +30 -0
- package/esm/methods/simplify.d.ts +6 -0
- package/esm/methods/simplify.d.ts.map +1 -0
- package/esm/methods/simplify.js +38 -0
- package/esm/methods/skip.d.ts +3 -0
- package/esm/methods/skip.d.ts.map +1 -0
- package/esm/methods/skip.js +11 -0
- package/esm/methods/sort.d.ts +9 -0
- package/esm/methods/sort.d.ts.map +1 -0
- package/esm/methods/sort.js +35 -0
- package/esm/methods/splitExtract.d.ts +3 -0
- package/esm/methods/splitExtract.d.ts.map +1 -0
- package/esm/methods/splitExtract.js +21 -0
- package/esm/methods/splitSpread.d.ts +2 -2
- package/esm/methods/splitSpread.d.ts.map +1 -1
- package/esm/methods/splitSpread.js +58 -35
- package/esm/methods/stream.d.ts +8 -0
- package/esm/methods/stream.d.ts.map +1 -0
- package/esm/methods/stream.js +59 -0
- package/esm/methods/summarize.d.ts +10 -8
- package/esm/methods/summarize.d.ts.map +1 -1
- package/esm/methods/summarize.js +135 -48
- package/esm/methods/trim.d.ts +6 -0
- package/esm/methods/trim.d.ts.map +1 -0
- package/esm/methods/trim.js +30 -0
- package/esm/methods/truncate.d.ts +3 -0
- package/esm/methods/truncate.d.ts.map +1 -0
- package/esm/methods/truncate.js +11 -0
- package/esm/methods/union.d.ts +3 -0
- package/esm/methods/union.d.ts.map +1 -0
- package/esm/methods/union.js +19 -0
- package/esm/methods/unnest.d.ts +3 -0
- package/esm/methods/unnest.d.ts.map +1 -0
- package/esm/methods/unnest.js +15 -0
- package/esm/methods/unnestGeo.d.ts +3 -0
- package/esm/methods/unnestGeo.d.ts.map +1 -0
- package/esm/methods/unnestGeo.js +18 -0
- package/esm/methods/updateColumn.d.ts +3 -0
- package/esm/methods/updateColumn.d.ts.map +1 -0
- package/esm/methods/updateColumn.js +15 -0
- package/esm/methods/updateWithJS.d.ts +11 -0
- package/esm/methods/updateWithJS.d.ts.map +1 -0
- package/esm/methods/updateWithJS.js +95 -0
- package/esm/methods/upper.d.ts +3 -0
- package/esm/methods/upper.d.ts.map +1 -0
- package/esm/methods/upper.js +14 -0
- package/esm/methods/wider.d.ts +5 -0
- package/esm/methods/wider.d.ts.map +1 -0
- package/esm/methods/wider.js +23 -0
- package/esm/methods/writeDB.d.ts +6 -0
- package/esm/methods/writeDB.d.ts.map +1 -0
- package/esm/methods/writeDB.js +99 -0
- package/esm/methods/writeData.d.ts +7 -0
- package/esm/methods/writeData.d.ts.map +1 -0
- package/esm/methods/writeData.js +80 -0
- package/esm/methods/zScore.d.ts +6 -0
- package/esm/methods/zScore.d.ts.map +1 -0
- package/esm/methods/zScore.js +29 -0
- package/llm.md +7925 -0
- package/llms.txt +19 -0
- package/package.json +18 -3
- package/script/_dnt.polyfills.d.ts +7 -0
- package/script/_dnt.polyfills.d.ts.map +1 -0
- package/script/_dnt.polyfills.js +2 -0
- package/script/class/SDAError.d.ts +63 -0
- package/script/class/SDAError.d.ts.map +1 -0
- package/script/class/SDAError.js +86 -0
- package/script/class/Simple.d.ts +40 -22
- package/script/class/Simple.d.ts.map +1 -1
- package/script/class/Simple.js +33 -20
- package/script/class/SimpleDB.d.ts +268 -100
- package/script/class/SimpleDB.d.ts.map +1 -1
- package/script/class/SimpleDB.js +549 -283
- package/script/class/SimpleTable.d.ts +1816 -940
- package/script/class/SimpleTable.d.ts.map +1 -1
- package/script/class/SimpleTable.js +1956 -1817
- package/script/helpers/assertColumnsExist.d.ts +16 -0
- package/script/helpers/assertColumnsExist.d.ts.map +1 -0
- package/script/helpers/assertColumnsExist.js +27 -0
- package/script/helpers/assertNewColumns.d.ts +17 -0
- package/script/helpers/assertNewColumns.d.ts.map +1 -0
- package/script/helpers/assertNewColumns.js +28 -0
- package/script/helpers/assertSameDatabase.d.ts +11 -0
- package/script/helpers/assertSameDatabase.d.ts.map +1 -0
- package/script/helpers/assertSameDatabase.js +16 -0
- package/script/helpers/asyncOperationContext.d.ts +19 -0
- package/script/helpers/asyncOperationContext.d.ts.map +1 -0
- package/script/helpers/asyncOperationContext.js +45 -0
- package/script/helpers/buildFuzzyMatchSql.d.ts +9 -0
- package/script/helpers/buildFuzzyMatchSql.d.ts.map +1 -0
- package/script/helpers/buildFuzzyMatchSql.js +20 -0
- package/script/helpers/cacheDatabase.d.ts +5 -0
- package/script/helpers/cacheDatabase.d.ts.map +1 -0
- package/script/helpers/cacheDatabase.js +117 -0
- package/script/helpers/cacheDiagnostics.d.ts +4 -0
- package/script/helpers/cacheDiagnostics.d.ts.map +1 -0
- package/script/helpers/cacheDiagnostics.js +29 -0
- package/script/helpers/cacheTableDependencies.d.ts +19 -0
- package/script/helpers/cacheTableDependencies.d.ts.map +1 -0
- package/script/helpers/cacheTableDependencies.js +125 -0
- package/script/helpers/cleanCache.js +1 -1
- package/script/helpers/createDirectory.d.ts +13 -0
- package/script/helpers/createDirectory.d.ts.map +1 -1
- package/script/helpers/createDirectory.js +13 -0
- package/script/helpers/ensureSpatial.d.ts +7 -0
- package/script/helpers/ensureSpatial.d.ts.map +1 -0
- package/script/helpers/ensureSpatial.js +23 -0
- package/script/helpers/extractTypes.d.ts +1 -1
- package/script/helpers/extractTypes.d.ts.map +1 -1
- package/script/helpers/extractZipEntryToFile.d.ts +3 -0
- package/script/helpers/extractZipEntryToFile.d.ts.map +1 -0
- package/script/helpers/extractZipEntryToFile.js +229 -0
- package/script/helpers/fileCache.d.ts +15 -0
- package/script/helpers/fileCache.d.ts.map +1 -0
- package/script/helpers/fileCache.js +135 -0
- package/script/helpers/findGeoColumn.d.ts +13 -1
- package/script/helpers/findGeoColumn.d.ts.map +1 -1
- package/script/helpers/findGeoColumn.js +18 -17
- package/script/helpers/findGeoColumnFromSchema.d.ts +20 -0
- package/script/helpers/findGeoColumnFromSchema.d.ts.map +1 -0
- package/script/helpers/findGeoColumnFromSchema.js +34 -0
- package/script/helpers/flushAllTables.d.ts +23 -0
- package/script/helpers/flushAllTables.d.ts.map +1 -0
- package/script/helpers/flushAllTables.js +418 -0
- package/script/helpers/formatMissingTables.d.ts +19 -0
- package/script/helpers/formatMissingTables.d.ts.map +1 -0
- package/script/helpers/formatMissingTables.js +35 -0
- package/script/helpers/getCurrentDatabase.d.ts +3 -0
- package/script/helpers/getCurrentDatabase.d.ts.map +1 -0
- package/script/helpers/getCurrentDatabase.js +13 -0
- package/script/helpers/getDbFileType.d.ts +2 -0
- package/script/helpers/getDbFileType.d.ts.map +1 -0
- package/script/helpers/getDbFileType.js +12 -0
- package/script/helpers/getDbIndexes.d.ts +4 -0
- package/script/helpers/getDbIndexes.d.ts.map +1 -0
- package/script/helpers/getDbIndexes.js +7 -0
- package/script/helpers/getStatExpression.d.ts +10 -0
- package/script/helpers/getStatExpression.d.ts.map +1 -0
- package/script/helpers/getStatExpression.js +80 -0
- package/script/helpers/index.d.ts +3 -0
- package/script/helpers/index.d.ts.map +1 -1
- package/script/helpers/index.js +10 -5
- package/script/helpers/indexDefinitions.d.ts +30 -0
- package/script/helpers/indexDefinitions.d.ts.map +1 -0
- package/script/helpers/indexDefinitions.js +10 -0
- package/script/helpers/indexQueries.d.ts +3 -0
- package/script/helpers/indexQueries.d.ts.map +1 -0
- package/script/helpers/indexQueries.js +42 -0
- package/script/helpers/keepNumericalColumns.d.ts.map +1 -1
- package/script/helpers/keepNumericalColumns.js +4 -5
- package/script/helpers/loadOsmFile.d.ts +10 -0
- package/script/helpers/loadOsmFile.d.ts.map +1 -0
- package/script/helpers/loadOsmFile.js +34 -0
- package/script/helpers/logData.d.ts +2 -2
- package/script/helpers/logData.d.ts.map +1 -1
- package/script/helpers/logData.js +6 -6
- package/script/helpers/mergeOptions.d.ts +47 -15
- package/script/helpers/mergeOptions.d.ts.map +1 -1
- package/script/helpers/mergeOptions.js +35 -5
- package/script/helpers/observeQuery.d.ts +9 -0
- package/script/helpers/observeQuery.d.ts.map +1 -0
- package/script/helpers/observeQuery.js +52 -0
- package/script/helpers/osmCache.d.ts +16 -0
- package/script/helpers/osmCache.d.ts.map +1 -0
- package/script/helpers/osmCache.js +81 -0
- package/script/helpers/osmFiles.d.ts +9 -0
- package/script/helpers/osmFiles.d.ts.map +1 -0
- package/script/helpers/osmFiles.js +60 -0
- package/script/helpers/parseDuckDBType.d.ts +1 -1
- package/script/helpers/parseValue.d.ts +16 -0
- package/script/helpers/parseValue.d.ts.map +1 -1
- package/script/helpers/parseValue.js +17 -1
- package/script/helpers/pendingOps.d.ts +151 -0
- package/script/helpers/pendingOps.d.ts.map +1 -0
- package/script/helpers/pendingOps.js +2 -0
- package/script/helpers/prepareDbExtensions.d.ts +4 -0
- package/script/helpers/prepareDbExtensions.d.ts.map +1 -0
- package/script/helpers/prepareDbExtensions.js +28 -0
- package/script/helpers/prepareValueFilters.d.ts +11 -0
- package/script/helpers/prepareValueFilters.d.ts.map +1 -0
- package/script/helpers/prepareValueFilters.js +18 -0
- package/script/helpers/queryDB.d.ts +43 -8
- package/script/helpers/queryDB.d.ts.map +1 -1
- package/script/helpers/queryDB.js +55 -36
- package/script/helpers/queryDbFile.d.ts +8 -0
- package/script/helpers/queryDbFile.d.ts.map +1 -0
- package/script/helpers/queryDbFile.js +18 -0
- package/script/helpers/queueAsyncBarrier.d.ts +47 -0
- package/script/helpers/queueAsyncBarrier.d.ts.map +1 -0
- package/script/helpers/queueAsyncBarrier.js +51 -0
- package/script/helpers/queueOp.d.ts +18 -0
- package/script/helpers/queueOp.d.ts.map +1 -0
- package/script/helpers/queueOp.js +74 -0
- package/script/helpers/quoteIdentifier.d.ts +16 -0
- package/script/helpers/quoteIdentifier.d.ts.map +1 -0
- package/script/helpers/quoteIdentifier.js +20 -0
- package/script/helpers/quoteQualifiedIdentifier.d.ts +18 -0
- package/script/helpers/quoteQualifiedIdentifier.d.ts.map +1 -0
- package/script/helpers/quoteQualifiedIdentifier.js +26 -0
- package/script/helpers/readDbMetadata.d.ts +5 -0
- package/script/helpers/readDbMetadata.d.ts.map +1 -0
- package/script/helpers/readDbMetadata.js +61 -0
- package/script/helpers/removeColumnsNow.d.ts +8 -0
- package/script/helpers/removeColumnsNow.d.ts.map +1 -0
- package/script/helpers/removeColumnsNow.js +21 -0
- package/script/helpers/resolveOutputTable.d.ts +9 -0
- package/script/helpers/resolveOutputTable.d.ts.map +1 -0
- package/script/helpers/resolveOutputTable.js +17 -0
- package/script/helpers/runQuery.d.ts +11 -8
- package/script/helpers/runQuery.d.ts.map +1 -1
- package/script/helpers/runQuery.js +119 -15
- package/script/helpers/serializeCacheInputs.d.ts +8 -0
- package/script/helpers/serializeCacheInputs.d.ts.map +1 -0
- package/script/helpers/serializeCacheInputs.js +120 -0
- package/script/helpers/setDbProps.d.ts +4 -1
- package/script/helpers/setDbProps.d.ts.map +1 -1
- package/script/helpers/setDbProps.js +17 -15
- package/script/helpers/statCanCache.d.ts +6 -0
- package/script/helpers/statCanCache.d.ts.map +1 -0
- package/script/helpers/statCanCache.js +78 -0
- package/script/helpers/stringToArray.d.ts +14 -0
- package/script/helpers/stringToArray.d.ts.map +1 -1
- package/script/helpers/stringToArray.js +15 -1
- package/script/helpers/tableGeneration.d.ts +18 -0
- package/script/helpers/tableGeneration.d.ts.map +1 -0
- package/script/helpers/tableGeneration.js +39 -0
- package/script/helpers/tableRegistry.d.ts +9 -0
- package/script/helpers/tableRegistry.d.ts.map +1 -0
- package/script/helpers/tableRegistry.js +54 -0
- package/script/helpers/toDuckDBValue.d.ts +4 -0
- package/script/helpers/toDuckDBValue.d.ts.map +1 -0
- package/script/helpers/toDuckDBValue.js +18 -0
- package/script/helpers/unifyColumns.d.ts +5 -0
- package/script/helpers/unifyColumns.d.ts.map +1 -1
- package/script/helpers/unifyColumns.js +23 -4
- package/script/helpers/validateNumericalAnalysis.d.ts +25 -0
- package/script/helpers/validateNumericalAnalysis.d.ts.map +1 -0
- package/script/helpers/validateNumericalAnalysis.js +55 -0
- package/script/helpers/writeDbMetadata.d.ts +4 -0
- package/script/helpers/writeDbMetadata.d.ts.map +1 -0
- package/script/helpers/writeDbMetadata.js +15 -0
- package/script/helpers/writeGeoData.d.ts.map +1 -1
- package/script/helpers/writeGeoData.js +127 -40
- package/script/helpers/writeZip.d.ts +15 -0
- package/script/helpers/writeZip.d.ts.map +1 -0
- package/script/helpers/writeZip.js +293 -0
- package/script/index.d.ts +8 -4
- package/script/index.d.ts.map +1 -1
- package/script/index.js +14 -9
- package/script/methods/accumulate.d.ts +5 -0
- package/script/methods/accumulate.d.ts.map +1 -0
- package/script/methods/accumulate.js +43 -0
- package/script/methods/addBoundingBox.d.ts +6 -0
- package/script/methods/addBoundingBox.d.ts.map +1 -0
- package/script/methods/addBoundingBox.js +32 -0
- package/script/methods/addColumn.d.ts +3 -0
- package/script/methods/addColumn.d.ts.map +1 -0
- package/script/methods/addColumn.js +30 -0
- package/script/methods/addGeoClosedStatus.d.ts +5 -0
- package/script/methods/addGeoClosedStatus.d.ts.map +1 -0
- package/script/methods/addGeoClosedStatus.js +27 -0
- package/script/methods/addGeoType.d.ts +5 -0
- package/script/methods/addGeoType.d.ts.map +1 -0
- package/script/methods/addGeoType.js +27 -0
- package/script/methods/addGeoValidity.d.ts +5 -0
- package/script/methods/addGeoValidity.d.ts.map +1 -0
- package/script/methods/addGeoValidity.js +27 -0
- package/script/methods/addRowNumber.d.ts +5 -0
- package/script/methods/addRowNumber.d.ts.map +1 -0
- package/script/methods/addRowNumber.js +32 -0
- package/script/methods/addSummaryRows.d.ts +14 -0
- package/script/methods/addSummaryRows.d.ts.map +1 -0
- package/script/methods/addSummaryRows.js +161 -0
- package/script/methods/addVertexCount.d.ts +5 -0
- package/script/methods/addVertexCount.d.ts.map +1 -0
- package/script/methods/addVertexCount.js +27 -0
- package/script/methods/aggregateGeo.d.ts +7 -0
- package/script/methods/aggregateGeo.d.ts.map +1 -0
- package/script/methods/aggregateGeo.js +75 -0
- package/script/methods/area.d.ts +7 -0
- package/script/methods/area.d.ts.map +1 -0
- package/script/methods/area.js +31 -0
- package/script/methods/bins.d.ts +5 -0
- package/script/methods/bins.d.ts.map +1 -0
- package/script/methods/bins.js +93 -0
- package/script/methods/bm25.d.ts +2 -2
- package/script/methods/bm25.d.ts.map +1 -1
- package/script/methods/bm25.js +28 -13
- package/script/methods/buffer.d.ts +5 -0
- package/script/methods/buffer.d.ts.map +1 -0
- package/script/methods/buffer.js +30 -0
- package/script/methods/cache.d.ts +2 -1
- package/script/methods/cache.d.ts.map +1 -1
- package/script/methods/cache.js +260 -70
- package/script/methods/capitalize.d.ts +3 -0
- package/script/methods/capitalize.d.ts.map +1 -0
- package/script/methods/capitalize.js +21 -0
- package/script/methods/centroid.d.ts +5 -0
- package/script/methods/centroid.d.ts.map +1 -0
- package/script/methods/centroid.js +30 -0
- package/script/methods/clone.d.ts +9 -0
- package/script/methods/clone.d.ts.map +1 -0
- package/script/methods/clone.js +41 -0
- package/script/methods/cloneColumn.d.ts +2 -3
- package/script/methods/cloneColumn.d.ts.map +1 -1
- package/script/methods/cloneColumn.js +21 -13
- package/script/methods/cloneColumnWithOffset.d.ts +6 -0
- package/script/methods/cloneColumnWithOffset.d.ts.map +1 -0
- package/script/methods/cloneColumnWithOffset.js +41 -0
- package/script/methods/columnProportions.d.ts +6 -0
- package/script/methods/columnProportions.d.ts.map +1 -0
- package/script/methods/columnProportions.js +29 -0
- package/script/methods/concatenate.d.ts +5 -0
- package/script/methods/concatenate.d.ts.map +1 -0
- package/script/methods/concatenate.js +31 -0
- package/script/methods/convert.d.ts +13 -0
- package/script/methods/convert.d.ts.map +1 -0
- package/script/methods/convert.js +119 -0
- package/script/methods/correlations.d.ts +3 -3
- package/script/methods/correlations.d.ts.map +1 -1
- package/script/methods/correlations.js +70 -24
- package/script/methods/coveredBy.d.ts +3 -0
- package/script/methods/coveredBy.d.ts.map +1 -0
- package/script/methods/coveredBy.js +22 -0
- package/script/methods/createFtsIndex.d.ts +15 -2
- package/script/methods/createFtsIndex.d.ts.map +1 -1
- package/script/methods/createFtsIndex.js +53 -13
- package/script/methods/createPoints.d.ts +5 -0
- package/script/methods/createPoints.d.ts.map +1 -0
- package/script/methods/createPoints.js +29 -0
- package/script/methods/createVssIndex.d.ts +1 -1
- package/script/methods/createVssIndex.d.ts.map +1 -1
- package/script/methods/createVssIndex.js +34 -13
- package/script/methods/crossJoin.d.ts +5 -0
- package/script/methods/crossJoin.d.ts.map +1 -0
- package/script/methods/crossJoin.js +41 -0
- package/script/methods/difference.d.ts +3 -0
- package/script/methods/difference.d.ts.map +1 -0
- package/script/methods/difference.js +25 -0
- package/script/methods/distance.d.ts +7 -0
- package/script/methods/distance.d.ts.map +1 -0
- package/script/methods/distance.js +54 -0
- package/script/methods/extractDatePart.d.ts +7 -0
- package/script/methods/extractDatePart.d.ts.map +1 -0
- package/script/methods/extractDatePart.js +44 -0
- package/script/methods/extractLatLon.d.ts +3 -0
- package/script/methods/extractLatLon.d.ts.map +1 -0
- package/script/methods/extractLatLon.js +22 -0
- package/script/methods/fill.d.ts +2 -2
- package/script/methods/fill.d.ts.map +1 -1
- package/script/methods/fill.js +41 -44
- package/script/methods/fillHoles.d.ts +3 -0
- package/script/methods/fillHoles.d.ts.map +1 -0
- package/script/methods/fillHoles.js +25 -0
- package/script/methods/filter.d.ts +3 -0
- package/script/methods/filter.d.ts.map +1 -0
- package/script/methods/filter.js +20 -0
- package/script/methods/firstChars.d.ts +3 -0
- package/script/methods/firstChars.d.ts.map +1 -0
- package/script/methods/firstChars.js +17 -0
- package/script/methods/fixGeo.d.ts +3 -0
- package/script/methods/fixGeo.d.ts.map +1 -0
- package/script/methods/fixGeo.js +28 -0
- package/script/methods/flipCoordinates.d.ts +3 -0
- package/script/methods/flipCoordinates.d.ts.map +1 -0
- package/script/methods/flipCoordinates.js +28 -0
- package/script/methods/fuzzyClean.d.ts +3 -3
- package/script/methods/fuzzyClean.d.ts.map +1 -1
- package/script/methods/fuzzyClean.js +55 -55
- package/script/methods/fuzzyJoin.d.ts +2 -2
- package/script/methods/fuzzyJoin.d.ts.map +1 -1
- package/script/methods/fuzzyJoin.js +60 -19
- package/script/methods/getBottom.d.ts +1 -1
- package/script/methods/getBottom.d.ts.map +1 -1
- package/script/methods/getBottom.js +4 -3
- package/script/methods/getBoundingBox.d.ts +3 -0
- package/script/methods/getBoundingBox.d.ts.map +1 -0
- package/script/methods/getBoundingBox.js +25 -0
- package/script/methods/getCharacterCount.d.ts +3 -0
- package/script/methods/getCharacterCount.d.ts.map +1 -0
- package/script/methods/getCharacterCount.js +23 -0
- package/script/methods/getColumns.d.ts.map +1 -1
- package/script/methods/getColumns.js +4 -3
- package/script/methods/getData.d.ts +9 -0
- package/script/methods/getData.d.ts.map +1 -0
- package/script/methods/getData.js +29 -0
- package/script/methods/getDescription.d.ts.map +1 -1
- package/script/methods/getDescription.js +15 -10
- package/script/methods/getFirstRow.d.ts +1 -1
- package/script/methods/getFirstRow.d.ts.map +1 -1
- package/script/methods/getFirstRow.js +5 -4
- package/script/methods/getGeoData.d.ts +1 -1
- package/script/methods/getGeoData.d.ts.map +1 -1
- package/script/methods/getGeoData.js +5 -3
- package/script/methods/getHash.d.ts +3 -0
- package/script/methods/getHash.d.ts.map +1 -0
- package/script/methods/getHash.js +45 -0
- package/script/methods/getLastRow.d.ts +2 -2
- package/script/methods/getLastRow.d.ts.map +1 -1
- package/script/methods/getLastRow.js +7 -3
- package/script/methods/getMax.d.ts +1 -1
- package/script/methods/getMax.d.ts.map +1 -1
- package/script/methods/getMax.js +10 -10
- package/script/methods/getMean.d.ts.map +1 -1
- package/script/methods/getMean.js +7 -4
- package/script/methods/getMedian.d.ts.map +1 -1
- package/script/methods/getMedian.js +7 -4
- package/script/methods/getMin.d.ts +1 -1
- package/script/methods/getMin.d.ts.map +1 -1
- package/script/methods/getMin.js +10 -10
- package/script/methods/getQuantile.d.ts.map +1 -1
- package/script/methods/getQuantile.js +7 -4
- package/script/methods/getRowCount.d.ts +5 -0
- package/script/methods/getRowCount.d.ts.map +1 -0
- package/script/methods/getRowCount.js +22 -0
- package/script/methods/getSchema.d.ts +5 -0
- package/script/methods/getSchema.d.ts.map +1 -0
- package/script/methods/getSchema.js +18 -0
- package/script/methods/getSkew.d.ts.map +1 -1
- package/script/methods/getSkew.js +7 -4
- package/script/methods/getStdDev.d.ts.map +1 -1
- package/script/methods/getStdDev.js +7 -4
- package/script/methods/getSum.d.ts.map +1 -1
- package/script/methods/getSum.js +6 -3
- package/script/methods/getTableNames.js +2 -2
- package/script/methods/getTop.d.ts +1 -1
- package/script/methods/getTop.d.ts.map +1 -1
- package/script/methods/getTop.js +3 -2
- package/script/methods/getTypes.d.ts.map +1 -1
- package/script/methods/getTypes.js +3 -2
- package/script/methods/getUniques.d.ts +1 -1
- package/script/methods/getUniques.d.ts.map +1 -1
- package/script/methods/getUniques.js +6 -3
- package/script/methods/getValues.d.ts +1 -1
- package/script/methods/getValues.d.ts.map +1 -1
- package/script/methods/getValues.js +5 -3
- package/script/methods/getVariance.d.ts +5 -0
- package/script/methods/getVariance.d.ts.map +1 -0
- package/script/methods/getVariance.js +26 -0
- package/script/methods/indexValues.d.ts +27 -0
- package/script/methods/indexValues.d.ts.map +1 -0
- package/script/methods/indexValues.js +287 -0
- package/script/methods/insertRows.d.ts +5 -0
- package/script/methods/insertRows.d.ts.map +1 -0
- package/script/methods/insertRows.js +47 -0
- package/script/methods/insertTables.d.ts +5 -0
- package/script/methods/insertTables.d.ts.map +1 -0
- package/script/methods/insertTables.js +105 -0
- package/script/methods/intersection.d.ts +3 -0
- package/script/methods/intersection.d.ts.map +1 -0
- package/script/methods/intersection.js +25 -0
- package/script/methods/intersects.d.ts +3 -0
- package/script/methods/intersects.d.ts.map +1 -0
- package/script/methods/intersects.js +22 -0
- package/script/methods/join.d.ts +2 -2
- package/script/methods/join.d.ts.map +1 -1
- package/script/methods/join.js +77 -28
- package/script/methods/joinGeo.d.ts +6 -4
- package/script/methods/joinGeo.d.ts.map +1 -1
- package/script/methods/joinGeo.js +125 -42
- package/script/methods/keepValues.d.ts +5 -0
- package/script/methods/keepValues.d.ts.map +1 -0
- package/script/methods/keepValues.js +41 -0
- package/script/methods/lastChars.d.ts +3 -0
- package/script/methods/lastChars.d.ts.map +1 -0
- package/script/methods/lastChars.js +17 -0
- package/script/methods/length.d.ts +7 -0
- package/script/methods/length.d.ts.map +1 -0
- package/script/methods/length.js +31 -0
- package/script/methods/linearRegressions.d.ts +3 -3
- package/script/methods/linearRegressions.d.ts.map +1 -1
- package/script/methods/linearRegressions.js +78 -24
- package/script/methods/linesToPolygons.d.ts +3 -0
- package/script/methods/linesToPolygons.d.ts.map +1 -0
- package/script/methods/linesToPolygons.js +23 -0
- package/script/methods/loadArray.d.ts +14 -2
- package/script/methods/loadArray.d.ts.map +1 -1
- package/script/methods/loadArray.js +54 -32
- package/script/methods/loadDB.d.ts +3 -0
- package/script/methods/loadDB.d.ts.map +1 -0
- package/script/methods/loadDB.js +76 -0
- package/script/methods/loadData.d.ts +52 -0
- package/script/methods/loadData.d.ts.map +1 -0
- package/script/methods/loadData.js +155 -0
- package/script/methods/loadGeoData.d.ts +9 -0
- package/script/methods/loadGeoData.d.ts.map +1 -0
- package/script/methods/loadGeoData.js +110 -0
- package/script/methods/loadOSM.d.ts +17 -0
- package/script/methods/loadOSM.d.ts.map +1 -0
- package/script/methods/loadOSM.js +201 -0
- package/script/methods/loadSample.d.ts +1 -1
- package/script/methods/loadSample.d.ts.map +1 -1
- package/script/methods/loadSample.js +5 -4
- package/script/methods/loadStatCanData.d.ts +10 -0
- package/script/methods/loadStatCanData.d.ts.map +1 -0
- package/script/methods/loadStatCanData.js +137 -0
- package/script/methods/longer.d.ts +3 -0
- package/script/methods/longer.d.ts.map +1 -0
- package/script/methods/longer.js +29 -0
- package/script/methods/lower.d.ts +3 -0
- package/script/methods/lower.d.ts.map +1 -0
- package/script/methods/lower.js +20 -0
- package/script/methods/nest.d.ts +3 -0
- package/script/methods/nest.d.ts.map +1 -0
- package/script/methods/nest.js +29 -0
- package/script/methods/normalize.d.ts +7 -0
- package/script/methods/normalize.d.ts.map +1 -0
- package/script/methods/normalize.js +47 -0
- package/script/methods/normalizeString.d.ts +1 -1
- package/script/methods/normalizeString.d.ts.map +1 -1
- package/script/methods/normalizeString.js +15 -18
- package/script/methods/outliersIQR.d.ts +5 -0
- package/script/methods/outliersIQR.d.ts.map +1 -0
- package/script/methods/outliersIQR.js +43 -0
- package/script/methods/pad.d.ts +6 -0
- package/script/methods/pad.d.ts.map +1 -0
- package/script/methods/pad.js +61 -0
- package/script/methods/perimeter.d.ts +7 -0
- package/script/methods/perimeter.d.ts.map +1 -0
- package/script/methods/perimeter.js +31 -0
- package/script/methods/quantiles.d.ts +5 -0
- package/script/methods/quantiles.d.ts.map +1 -0
- package/script/methods/quantiles.js +28 -0
- package/script/methods/randomPoint.d.ts +6 -0
- package/script/methods/randomPoint.d.ts.map +1 -0
- package/script/methods/randomPoint.js +111 -0
- package/script/methods/ranks.d.ts +7 -0
- package/script/methods/ranks.d.ts.map +1 -0
- package/script/methods/ranks.js +28 -0
- package/script/methods/reducePrecision.d.ts +5 -0
- package/script/methods/reducePrecision.d.ts.map +1 -0
- package/script/methods/reducePrecision.js +30 -0
- package/script/methods/removeColumns.d.ts +3 -0
- package/script/methods/removeColumns.d.ts.map +1 -0
- package/script/methods/removeColumns.js +19 -0
- package/script/methods/removeDuplicates.d.ts +5 -0
- package/script/methods/removeDuplicates.d.ts.map +1 -0
- package/script/methods/removeDuplicates.js +23 -0
- package/script/methods/removeMissing.d.ts +1 -1
- package/script/methods/removeMissing.d.ts.map +1 -1
- package/script/methods/removeMissing.js +70 -11
- package/script/methods/removeRows.d.ts +3 -0
- package/script/methods/removeRows.d.ts.map +1 -0
- package/script/methods/removeRows.js +20 -0
- package/script/methods/removeTable.d.ts +3 -0
- package/script/methods/removeTable.d.ts.map +1 -0
- package/script/methods/removeTable.js +18 -0
- package/script/methods/removeTables.d.ts +4 -0
- package/script/methods/removeTables.d.ts.map +1 -0
- package/script/methods/removeTables.js +27 -0
- package/script/methods/removeValues.d.ts +5 -0
- package/script/methods/removeValues.d.ts.map +1 -0
- package/script/methods/removeValues.js +41 -0
- package/script/methods/renameColumns.d.ts +7 -0
- package/script/methods/renameColumns.d.ts.map +1 -0
- package/script/methods/renameColumns.js +33 -0
- package/script/methods/renameTable.d.ts +3 -0
- package/script/methods/renameTable.d.ts.map +1 -0
- package/script/methods/renameTable.js +18 -0
- package/script/methods/repeatRows.d.ts +5 -0
- package/script/methods/repeatRows.d.ts.map +1 -0
- package/script/methods/repeatRows.js +25 -0
- package/script/methods/replace.d.ts +8 -0
- package/script/methods/replace.d.ts.map +1 -0
- package/script/methods/replace.js +75 -0
- package/script/methods/replaceNulls.d.ts +3 -0
- package/script/methods/replaceNulls.d.ts.map +1 -0
- package/script/methods/replaceNulls.js +42 -0
- package/script/methods/reproject.d.ts +5 -0
- package/script/methods/reproject.d.ts.map +1 -0
- package/script/methods/reproject.js +27 -0
- package/script/methods/rolling.d.ts +6 -0
- package/script/methods/rolling.d.ts.map +1 -0
- package/script/methods/rolling.js +48 -0
- package/script/methods/round.d.ts +6 -0
- package/script/methods/round.d.ts.map +1 -0
- package/script/methods/round.js +28 -0
- package/script/methods/rowProportions.d.ts +6 -0
- package/script/methods/rowProportions.d.ts.map +1 -0
- package/script/methods/rowProportions.js +36 -0
- package/script/methods/rowRanks.d.ts +9 -0
- package/script/methods/rowRanks.d.ts.map +1 -0
- package/script/methods/rowRanks.js +119 -0
- package/script/methods/rowToText.d.ts +3 -0
- package/script/methods/rowToText.d.ts.map +1 -0
- package/script/methods/rowToText.js +33 -0
- package/script/methods/sample.d.ts +5 -0
- package/script/methods/sample.d.ts.map +1 -0
- package/script/methods/sample.js +22 -0
- package/script/methods/selectColumns.d.ts +3 -0
- package/script/methods/selectColumns.d.ts.map +1 -0
- package/script/methods/selectColumns.js +25 -0
- package/script/methods/selectRows.d.ts +6 -0
- package/script/methods/selectRows.d.ts.map +1 -0
- package/script/methods/selectRows.js +40 -0
- package/script/methods/selectTables.d.ts +4 -0
- package/script/methods/selectTables.d.ts.map +1 -0
- package/script/methods/selectTables.js +31 -0
- package/script/methods/setTypes.d.ts +5 -0
- package/script/methods/setTypes.d.ts.map +1 -0
- package/script/methods/setTypes.js +36 -0
- package/script/methods/simplify.d.ts +6 -0
- package/script/methods/simplify.d.ts.map +1 -0
- package/script/methods/simplify.js +44 -0
- package/script/methods/skip.d.ts +3 -0
- package/script/methods/skip.d.ts.map +1 -0
- package/script/methods/skip.js +17 -0
- package/script/methods/sort.d.ts +9 -0
- package/script/methods/sort.d.ts.map +1 -0
- package/script/methods/sort.js +41 -0
- package/script/methods/splitExtract.d.ts +3 -0
- package/script/methods/splitExtract.d.ts.map +1 -0
- package/script/methods/splitExtract.js +27 -0
- package/script/methods/splitSpread.d.ts +2 -2
- package/script/methods/splitSpread.d.ts.map +1 -1
- package/script/methods/splitSpread.js +58 -35
- package/script/methods/stream.d.ts +8 -0
- package/script/methods/stream.d.ts.map +1 -0
- package/script/methods/stream.js +65 -0
- package/script/methods/summarize.d.ts +10 -8
- package/script/methods/summarize.d.ts.map +1 -1
- package/script/methods/summarize.js +165 -45
- package/script/methods/trim.d.ts +6 -0
- package/script/methods/trim.d.ts.map +1 -0
- package/script/methods/trim.js +36 -0
- package/script/methods/truncate.d.ts +3 -0
- package/script/methods/truncate.d.ts.map +1 -0
- package/script/methods/truncate.js +17 -0
- package/script/methods/union.d.ts +3 -0
- package/script/methods/union.d.ts.map +1 -0
- package/script/methods/union.js +25 -0
- package/script/methods/unnest.d.ts +3 -0
- package/script/methods/unnest.d.ts.map +1 -0
- package/script/methods/unnest.js +21 -0
- package/script/methods/unnestGeo.d.ts +3 -0
- package/script/methods/unnestGeo.d.ts.map +1 -0
- package/script/methods/unnestGeo.js +24 -0
- package/script/methods/updateColumn.d.ts +3 -0
- package/script/methods/updateColumn.d.ts.map +1 -0
- package/script/methods/updateColumn.js +21 -0
- package/script/methods/updateWithJS.d.ts +11 -0
- package/script/methods/updateWithJS.d.ts.map +1 -0
- package/script/methods/updateWithJS.js +101 -0
- package/script/methods/upper.d.ts +3 -0
- package/script/methods/upper.d.ts.map +1 -0
- package/script/methods/upper.js +20 -0
- package/script/methods/wider.d.ts +5 -0
- package/script/methods/wider.d.ts.map +1 -0
- package/script/methods/wider.js +29 -0
- package/script/methods/writeDB.d.ts +6 -0
- package/script/methods/writeDB.d.ts.map +1 -0
- package/script/methods/writeDB.js +105 -0
- package/script/methods/writeData.d.ts +7 -0
- package/script/methods/writeData.d.ts.map +1 -0
- package/script/methods/writeData.js +86 -0
- package/script/methods/zScore.d.ts +6 -0
- package/script/methods/zScore.d.ts.map +1 -0
- package/script/methods/zScore.js +35 -0
- package/esm/helpers/accumulateQuery.d.ts +0 -4
- package/esm/helpers/accumulateQuery.d.ts.map +0 -1
- package/esm/helpers/accumulateQuery.js +0 -15
- package/esm/helpers/checkVssIndexes.d.ts +0 -2
- package/esm/helpers/checkVssIndexes.d.ts.map +0 -1
- package/esm/helpers/checkVssIndexes.js +0 -16
- package/esm/helpers/concatenateRowQuery.d.ts +0 -2
- package/esm/helpers/concatenateRowQuery.d.ts.map +0 -1
- package/esm/helpers/concatenateRowQuery.js +0 -9
- package/esm/helpers/convertForJS.d.ts +0 -6
- package/esm/helpers/convertForJS.d.ts.map +0 -1
- package/esm/helpers/convertForJS.js +0 -41
- package/esm/helpers/getName.d.ts +0 -2
- package/esm/helpers/getName.d.ts.map +0 -1
- package/esm/helpers/getName.js +0 -14
- package/esm/helpers/nestQuery.d.ts +0 -2
- package/esm/helpers/nestQuery.d.ts.map +0 -1
- package/esm/helpers/nestQuery.js +0 -13
- package/esm/helpers/repeatRowsQuery.d.ts +0 -4
- package/esm/helpers/repeatRowsQuery.d.ts.map +0 -1
- package/esm/helpers/repeatRowsQuery.js +0 -8
- package/esm/helpers/unnestQuery.d.ts +0 -2
- package/esm/helpers/unnestQuery.d.ts.map +0 -1
- package/esm/helpers/unnestQuery.js +0 -8
- package/esm/helpers/writeIndexes.d.ts +0 -3
- package/esm/helpers/writeIndexes.d.ts.map +0 -1
- package/esm/helpers/writeIndexes.js +0 -16
- package/esm/methods/aggregateGeoQuery.d.ts +0 -5
- package/esm/methods/aggregateGeoQuery.d.ts.map +0 -1
- package/esm/methods/aggregateGeoQuery.js +0 -25
- package/esm/methods/binsQuery.d.ts +0 -5
- package/esm/methods/binsQuery.d.ts.map +0 -1
- package/esm/methods/binsQuery.js +0 -40
- package/esm/methods/boundingBoxQuery.d.ts +0 -4
- package/esm/methods/boundingBoxQuery.d.ts.map +0 -1
- package/esm/methods/boundingBoxQuery.js +0 -21
- package/esm/methods/capitalizeQuery.d.ts +0 -2
- package/esm/methods/capitalizeQuery.d.ts.map +0 -1
- package/esm/methods/capitalizeQuery.js +0 -8
- package/esm/methods/cloneQuery.d.ts +0 -6
- package/esm/methods/cloneQuery.d.ts.map +0 -1
- package/esm/methods/cloneQuery.js +0 -6
- package/esm/methods/concatenateQuery.d.ts +0 -4
- package/esm/methods/concatenateQuery.d.ts.map +0 -1
- package/esm/methods/concatenateQuery.js +0 -13
- package/esm/methods/convertQuery.d.ts +0 -7
- package/esm/methods/convertQuery.d.ts.map +0 -1
- package/esm/methods/convertQuery.js +0 -78
- package/esm/methods/correlationsQuery.d.ts +0 -5
- package/esm/methods/correlationsQuery.d.ts.map +0 -1
- package/esm/methods/correlationsQuery.js +0 -26
- package/esm/methods/crossJoinQuery.d.ts +0 -4
- package/esm/methods/crossJoinQuery.d.ts.map +0 -1
- package/esm/methods/crossJoinQuery.js +0 -3
- package/esm/methods/distanceQuery.d.ts +0 -6
- package/esm/methods/distanceQuery.d.ts.map +0 -1
- package/esm/methods/distanceQuery.js +0 -44
- package/esm/methods/fuzzyJoinQuery.d.ts +0 -2
- package/esm/methods/fuzzyJoinQuery.d.ts.map +0 -1
- package/esm/methods/fuzzyJoinQuery.js +0 -29
- package/esm/methods/getNbCharacters.d.ts +0 -3
- package/esm/methods/getNbCharacters.d.ts.map +0 -1
- package/esm/methods/getNbCharacters.js +0 -15
- package/esm/methods/getNbRows.d.ts +0 -5
- package/esm/methods/getNbRows.d.ts.map +0 -1
- package/esm/methods/getNbRows.js +0 -15
- package/esm/methods/getVar.d.ts +0 -5
- package/esm/methods/getVar.d.ts.map +0 -1
- package/esm/methods/getVar.js +0 -17
- package/esm/methods/insertRowsQuery.d.ts +0 -4
- package/esm/methods/insertRowsQuery.d.ts.map +0 -1
- package/esm/methods/insertRowsQuery.js +0 -11
- package/esm/methods/joinGeoQuery.d.ts +0 -2
- package/esm/methods/joinGeoQuery.d.ts.map +0 -1
- package/esm/methods/joinGeoQuery.js +0 -55
- package/esm/methods/joinQuery.d.ts +0 -2
- package/esm/methods/joinQuery.d.ts.map +0 -1
- package/esm/methods/joinQuery.js +0 -21
- package/esm/methods/keepQuery.d.ts +0 -4
- package/esm/methods/keepQuery.d.ts.map +0 -1
- package/esm/methods/keepQuery.js +0 -15
- package/esm/methods/linearRegressionQuery.d.ts +0 -5
- package/esm/methods/linearRegressionQuery.d.ts.map +0 -1
- package/esm/methods/linearRegressionQuery.js +0 -37
- package/esm/methods/loadDataQuery.d.ts +0 -24
- package/esm/methods/loadDataQuery.d.ts.map +0 -1
- package/esm/methods/loadDataQuery.js +0 -85
- package/esm/methods/lowerQuery.d.ts +0 -2
- package/esm/methods/lowerQuery.d.ts.map +0 -1
- package/esm/methods/lowerQuery.js +0 -7
- package/esm/methods/normalizeQuery.d.ts +0 -5
- package/esm/methods/normalizeQuery.d.ts.map +0 -1
- package/esm/methods/normalizeQuery.js +0 -22
- package/esm/methods/outliersIQRQuery.d.ts +0 -4
- package/esm/methods/outliersIQRQuery.d.ts.map +0 -1
- package/esm/methods/outliersIQRQuery.js +0 -31
- package/esm/methods/padQuery.d.ts +0 -5
- package/esm/methods/padQuery.d.ts.map +0 -1
- package/esm/methods/padQuery.js +0 -14
- package/esm/methods/proportionsHorizontalQuery.d.ts +0 -5
- package/esm/methods/proportionsHorizontalQuery.d.ts.map +0 -1
- package/esm/methods/proportionsHorizontalQuery.js +0 -15
- package/esm/methods/proportionsVerticalQuery.d.ts +0 -5
- package/esm/methods/proportionsVerticalQuery.d.ts.map +0 -1
- package/esm/methods/proportionsVerticalQuery.js +0 -19
- package/esm/methods/quantilesQuery.d.ts +0 -4
- package/esm/methods/quantilesQuery.d.ts.map +0 -1
- package/esm/methods/quantilesQuery.js +0 -12
- package/esm/methods/randomPointQuery.d.ts +0 -2
- package/esm/methods/randomPointQuery.d.ts.map +0 -1
- package/esm/methods/randomPointQuery.js +0 -66
- package/esm/methods/ranksQuery.d.ts +0 -6
- package/esm/methods/ranksQuery.d.ts.map +0 -1
- package/esm/methods/ranksQuery.js +0 -12
- package/esm/methods/removeDuplicatesQuery.d.ts +0 -4
- package/esm/methods/removeDuplicatesQuery.d.ts.map +0 -1
- package/esm/methods/removeDuplicatesQuery.js +0 -12
- package/esm/methods/removeMissingQuery.d.ts +0 -7
- package/esm/methods/removeMissingQuery.d.ts.map +0 -1
- package/esm/methods/removeMissingQuery.js +0 -43
- package/esm/methods/removeQuery.d.ts +0 -4
- package/esm/methods/removeQuery.d.ts.map +0 -1
- package/esm/methods/removeQuery.js +0 -15
- package/esm/methods/renameColumnQuery.d.ts +0 -2
- package/esm/methods/renameColumnQuery.d.ts.map +0 -1
- package/esm/methods/renameColumnQuery.js +0 -7
- package/esm/methods/replaceNullsQuery.d.ts +0 -2
- package/esm/methods/replaceNullsQuery.d.ts.map +0 -1
- package/esm/methods/replaceNullsQuery.js +0 -10
- package/esm/methods/replaceQuery.d.ts +0 -5
- package/esm/methods/replaceQuery.d.ts.map +0 -1
- package/esm/methods/replaceQuery.js +0 -24
- package/esm/methods/rollingQuery.d.ts +0 -5
- package/esm/methods/rollingQuery.d.ts.map +0 -1
- package/esm/methods/rollingQuery.js +0 -33
- package/esm/methods/roundQuery.d.ts +0 -5
- package/esm/methods/roundQuery.d.ts.map +0 -1
- package/esm/methods/roundQuery.js +0 -16
- package/esm/methods/selectRowsQuery.d.ts +0 -5
- package/esm/methods/selectRowsQuery.d.ts.map +0 -1
- package/esm/methods/selectRowsQuery.js +0 -3
- package/esm/methods/sortQuery.d.ts +0 -8
- package/esm/methods/sortQuery.d.ts.map +0 -1
- package/esm/methods/sortQuery.js +0 -18
- package/esm/methods/summarizeQuery.d.ts +0 -7
- package/esm/methods/summarizeQuery.d.ts.map +0 -1
- package/esm/methods/summarizeQuery.js +0 -112
- package/esm/methods/trimQuery.d.ts +0 -5
- package/esm/methods/trimQuery.d.ts.map +0 -1
- package/esm/methods/trimQuery.js +0 -29
- package/esm/methods/truncateQuery.d.ts +0 -2
- package/esm/methods/truncateQuery.d.ts.map +0 -1
- package/esm/methods/truncateQuery.js +0 -3
- package/esm/methods/upperQuery.d.ts +0 -2
- package/esm/methods/upperQuery.d.ts.map +0 -1
- package/esm/methods/upperQuery.js +0 -7
- package/esm/methods/writeDataQuery.d.ts +0 -5
- package/esm/methods/writeDataQuery.d.ts.map +0 -1
- package/esm/methods/writeDataQuery.js +0 -44
- package/esm/methods/writeGeoDataQuery.d.ts +0 -4
- package/esm/methods/writeGeoDataQuery.d.ts.map +0 -1
- package/esm/methods/writeGeoDataQuery.js +0 -19
- package/esm/methods/zScoreQuery.d.ts +0 -5
- package/esm/methods/zScoreQuery.d.ts.map +0 -1
- package/esm/methods/zScoreQuery.js +0 -23
- package/script/helpers/accumulateQuery.d.ts +0 -4
- package/script/helpers/accumulateQuery.d.ts.map +0 -1
- package/script/helpers/accumulateQuery.js +0 -21
- package/script/helpers/checkVssIndexes.d.ts +0 -2
- package/script/helpers/checkVssIndexes.d.ts.map +0 -1
- package/script/helpers/checkVssIndexes.js +0 -19
- package/script/helpers/concatenateRowQuery.d.ts +0 -2
- package/script/helpers/concatenateRowQuery.d.ts.map +0 -1
- package/script/helpers/concatenateRowQuery.js +0 -12
- package/script/helpers/convertForJS.d.ts +0 -6
- package/script/helpers/convertForJS.d.ts.map +0 -1
- package/script/helpers/convertForJS.js +0 -44
- package/script/helpers/getName.d.ts +0 -2
- package/script/helpers/getName.d.ts.map +0 -1
- package/script/helpers/getName.js +0 -17
- package/script/helpers/nestQuery.d.ts +0 -2
- package/script/helpers/nestQuery.d.ts.map +0 -1
- package/script/helpers/nestQuery.js +0 -19
- package/script/helpers/repeatRowsQuery.d.ts +0 -4
- package/script/helpers/repeatRowsQuery.d.ts.map +0 -1
- package/script/helpers/repeatRowsQuery.js +0 -11
- package/script/helpers/unnestQuery.d.ts +0 -2
- package/script/helpers/unnestQuery.d.ts.map +0 -1
- package/script/helpers/unnestQuery.js +0 -11
- package/script/helpers/writeIndexes.d.ts +0 -3
- package/script/helpers/writeIndexes.d.ts.map +0 -1
- package/script/helpers/writeIndexes.js +0 -19
- package/script/methods/aggregateGeoQuery.d.ts +0 -5
- package/script/methods/aggregateGeoQuery.d.ts.map +0 -1
- package/script/methods/aggregateGeoQuery.js +0 -31
- package/script/methods/binsQuery.d.ts +0 -5
- package/script/methods/binsQuery.d.ts.map +0 -1
- package/script/methods/binsQuery.js +0 -43
- package/script/methods/boundingBoxQuery.d.ts +0 -4
- package/script/methods/boundingBoxQuery.d.ts.map +0 -1
- package/script/methods/boundingBoxQuery.js +0 -24
- package/script/methods/capitalizeQuery.d.ts +0 -2
- package/script/methods/capitalizeQuery.d.ts.map +0 -1
- package/script/methods/capitalizeQuery.js +0 -11
- package/script/methods/cloneQuery.d.ts +0 -6
- package/script/methods/cloneQuery.d.ts.map +0 -1
- package/script/methods/cloneQuery.js +0 -9
- package/script/methods/concatenateQuery.d.ts +0 -4
- package/script/methods/concatenateQuery.d.ts.map +0 -1
- package/script/methods/concatenateQuery.js +0 -16
- package/script/methods/convertQuery.d.ts +0 -7
- package/script/methods/convertQuery.d.ts.map +0 -1
- package/script/methods/convertQuery.js +0 -84
- package/script/methods/correlationsQuery.d.ts +0 -5
- package/script/methods/correlationsQuery.d.ts.map +0 -1
- package/script/methods/correlationsQuery.js +0 -32
- package/script/methods/crossJoinQuery.d.ts +0 -4
- package/script/methods/crossJoinQuery.d.ts.map +0 -1
- package/script/methods/crossJoinQuery.js +0 -6
- package/script/methods/distanceQuery.d.ts +0 -6
- package/script/methods/distanceQuery.d.ts.map +0 -1
- package/script/methods/distanceQuery.js +0 -47
- package/script/methods/fuzzyJoinQuery.d.ts +0 -2
- package/script/methods/fuzzyJoinQuery.d.ts.map +0 -1
- package/script/methods/fuzzyJoinQuery.js +0 -32
- package/script/methods/getNbCharacters.d.ts +0 -3
- package/script/methods/getNbCharacters.d.ts.map +0 -1
- package/script/methods/getNbCharacters.js +0 -21
- package/script/methods/getNbRows.d.ts +0 -5
- package/script/methods/getNbRows.d.ts.map +0 -1
- package/script/methods/getNbRows.js +0 -21
- package/script/methods/getVar.d.ts +0 -5
- package/script/methods/getVar.d.ts.map +0 -1
- package/script/methods/getVar.js +0 -23
- package/script/methods/insertRowsQuery.d.ts +0 -4
- package/script/methods/insertRowsQuery.d.ts.map +0 -1
- package/script/methods/insertRowsQuery.js +0 -17
- package/script/methods/joinGeoQuery.d.ts +0 -2
- package/script/methods/joinGeoQuery.d.ts.map +0 -1
- package/script/methods/joinGeoQuery.js +0 -58
- package/script/methods/joinQuery.d.ts +0 -2
- package/script/methods/joinQuery.d.ts.map +0 -1
- package/script/methods/joinQuery.js +0 -24
- package/script/methods/keepQuery.d.ts +0 -4
- package/script/methods/keepQuery.d.ts.map +0 -1
- package/script/methods/keepQuery.js +0 -21
- package/script/methods/linearRegressionQuery.d.ts +0 -5
- package/script/methods/linearRegressionQuery.d.ts.map +0 -1
- package/script/methods/linearRegressionQuery.js +0 -43
- package/script/methods/loadDataQuery.d.ts +0 -24
- package/script/methods/loadDataQuery.d.ts.map +0 -1
- package/script/methods/loadDataQuery.js +0 -91
- package/script/methods/lowerQuery.d.ts +0 -2
- package/script/methods/lowerQuery.d.ts.map +0 -1
- package/script/methods/lowerQuery.js +0 -10
- package/script/methods/normalizeQuery.d.ts +0 -5
- package/script/methods/normalizeQuery.d.ts.map +0 -1
- package/script/methods/normalizeQuery.js +0 -28
- package/script/methods/outliersIQRQuery.d.ts +0 -4
- package/script/methods/outliersIQRQuery.d.ts.map +0 -1
- package/script/methods/outliersIQRQuery.js +0 -37
- package/script/methods/padQuery.d.ts +0 -5
- package/script/methods/padQuery.d.ts.map +0 -1
- package/script/methods/padQuery.js +0 -17
- package/script/methods/proportionsHorizontalQuery.d.ts +0 -5
- package/script/methods/proportionsHorizontalQuery.d.ts.map +0 -1
- package/script/methods/proportionsHorizontalQuery.js +0 -18
- package/script/methods/proportionsVerticalQuery.d.ts +0 -5
- package/script/methods/proportionsVerticalQuery.d.ts.map +0 -1
- package/script/methods/proportionsVerticalQuery.js +0 -25
- package/script/methods/quantilesQuery.d.ts +0 -4
- package/script/methods/quantilesQuery.d.ts.map +0 -1
- package/script/methods/quantilesQuery.js +0 -18
- package/script/methods/randomPointQuery.d.ts +0 -2
- package/script/methods/randomPointQuery.d.ts.map +0 -1
- package/script/methods/randomPointQuery.js +0 -69
- package/script/methods/ranksQuery.d.ts +0 -6
- package/script/methods/ranksQuery.d.ts.map +0 -1
- package/script/methods/ranksQuery.js +0 -18
- package/script/methods/removeDuplicatesQuery.d.ts +0 -4
- package/script/methods/removeDuplicatesQuery.d.ts.map +0 -1
- package/script/methods/removeDuplicatesQuery.js +0 -18
- package/script/methods/removeMissingQuery.d.ts +0 -7
- package/script/methods/removeMissingQuery.d.ts.map +0 -1
- package/script/methods/removeMissingQuery.js +0 -46
- package/script/methods/removeQuery.d.ts +0 -4
- package/script/methods/removeQuery.d.ts.map +0 -1
- package/script/methods/removeQuery.js +0 -21
- package/script/methods/renameColumnQuery.d.ts +0 -2
- package/script/methods/renameColumnQuery.d.ts.map +0 -1
- package/script/methods/renameColumnQuery.js +0 -10
- package/script/methods/replaceNullsQuery.d.ts +0 -2
- package/script/methods/replaceNullsQuery.d.ts.map +0 -1
- package/script/methods/replaceNullsQuery.js +0 -16
- package/script/methods/replaceQuery.d.ts +0 -5
- package/script/methods/replaceQuery.d.ts.map +0 -1
- package/script/methods/replaceQuery.js +0 -27
- package/script/methods/rollingQuery.d.ts +0 -5
- package/script/methods/rollingQuery.d.ts.map +0 -1
- package/script/methods/rollingQuery.js +0 -39
- package/script/methods/roundQuery.d.ts +0 -5
- package/script/methods/roundQuery.d.ts.map +0 -1
- package/script/methods/roundQuery.js +0 -19
- package/script/methods/selectRowsQuery.d.ts +0 -5
- package/script/methods/selectRowsQuery.d.ts.map +0 -1
- package/script/methods/selectRowsQuery.js +0 -6
- package/script/methods/sortQuery.d.ts +0 -8
- package/script/methods/sortQuery.d.ts.map +0 -1
- package/script/methods/sortQuery.js +0 -21
- package/script/methods/summarizeQuery.d.ts +0 -7
- package/script/methods/summarizeQuery.d.ts.map +0 -1
- package/script/methods/summarizeQuery.js +0 -115
- package/script/methods/trimQuery.d.ts +0 -5
- package/script/methods/trimQuery.d.ts.map +0 -1
- package/script/methods/trimQuery.js +0 -32
- package/script/methods/truncateQuery.d.ts +0 -2
- package/script/methods/truncateQuery.d.ts.map +0 -1
- package/script/methods/truncateQuery.js +0 -6
- package/script/methods/upperQuery.d.ts +0 -2
- package/script/methods/upperQuery.d.ts.map +0 -1
- package/script/methods/upperQuery.js +0 -10
- package/script/methods/writeDataQuery.d.ts +0 -5
- package/script/methods/writeDataQuery.d.ts.map +0 -1
- package/script/methods/writeDataQuery.js +0 -50
- package/script/methods/writeGeoDataQuery.d.ts +0 -4
- package/script/methods/writeGeoDataQuery.d.ts.map +0 -1
- package/script/methods/writeGeoDataQuery.js +0 -25
- package/script/methods/zScoreQuery.d.ts +0 -5
- package/script/methods/zScoreQuery.d.ts.map +0 -1
- package/script/methods/zScoreQuery.js +0 -29
package/esm/class/SimpleDB.js
CHANGED
|
@@ -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
|
|
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
|
|
17
|
-
import
|
|
18
|
-
import
|
|
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,54 +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
|
|
27
|
-
* const employees = sdb
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
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.
|
|
54
|
+
* await sdb.close();
|
|
34
55
|
* ```
|
|
35
56
|
*
|
|
36
57
|
* @example
|
|
37
58
|
* ```ts
|
|
38
|
-
* //
|
|
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
|
-
* //
|
|
43
|
-
* await sdb.
|
|
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
|
-
*
|
|
51
|
-
*
|
|
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
|
-
|
|
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 -
|
|
61
|
-
* @param options.overwrite -
|
|
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.
|
|
64
|
-
* @param options.
|
|
65
|
-
* @param options.
|
|
66
|
-
* @param options.cacheVerbose -
|
|
67
|
-
* @param options.
|
|
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.
|
|
99
|
+
* @param options.memoryLimit - The maximum amount of memory DuckDB is allowed to use (e.g., `'4GB'`). Defaults to 80% of system RAM.
|
|
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()`.
|
|
70
101
|
* @category Constructor
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* ```ts
|
|
105
|
+
* const sdb = new SimpleDB({
|
|
106
|
+
* logSQL: true,
|
|
107
|
+
* explainSQL: true,
|
|
108
|
+
* });
|
|
109
|
+
* ```
|
|
71
110
|
*/
|
|
72
111
|
constructor(options = {}) {
|
|
73
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
|
+
});
|
|
74
146
|
/**
|
|
75
147
|
* An array of paths to the data sources used in the cache.
|
|
76
148
|
*
|
|
@@ -120,19 +192,8 @@ export default class SimpleDB extends Simple {
|
|
|
120
192
|
value: void 0
|
|
121
193
|
});
|
|
122
194
|
/**
|
|
123
|
-
*
|
|
124
|
-
*
|
|
125
|
-
* @defaultValue `[]`
|
|
126
|
-
* @category Properties
|
|
127
|
-
*/
|
|
128
|
-
Object.defineProperty(this, "tables", {
|
|
129
|
-
enumerable: true,
|
|
130
|
-
configurable: true,
|
|
131
|
-
writable: true,
|
|
132
|
-
value: void 0
|
|
133
|
-
});
|
|
134
|
-
/**
|
|
135
|
-
* 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.
|
|
136
197
|
*
|
|
137
198
|
* @defaultValue `false`
|
|
138
199
|
* @category Properties
|
|
@@ -179,6 +240,75 @@ export default class SimpleDB extends Simple {
|
|
|
179
240
|
writable: true,
|
|
180
241
|
value: void 0
|
|
181
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
|
+
});
|
|
182
312
|
/**
|
|
183
313
|
* A flag indicating whether to use DuckDB's external file cache.
|
|
184
314
|
*
|
|
@@ -192,7 +322,32 @@ export default class SimpleDB extends Simple {
|
|
|
192
322
|
value: void 0
|
|
193
323
|
});
|
|
194
324
|
/**
|
|
195
|
-
* The
|
|
325
|
+
* The maximum amount of memory DuckDB is allowed to use (e.g., `'4GB'`). Defaults to 80% of system RAM.
|
|
326
|
+
*
|
|
327
|
+
* @defaultValue `undefined`
|
|
328
|
+
* @category Properties
|
|
329
|
+
*/
|
|
330
|
+
Object.defineProperty(this, "memoryLimit", {
|
|
331
|
+
enumerable: true,
|
|
332
|
+
configurable: true,
|
|
333
|
+
writable: true,
|
|
334
|
+
value: void 0
|
|
335
|
+
});
|
|
336
|
+
/**
|
|
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()`.
|
|
338
|
+
*
|
|
339
|
+
* @defaultValue `undefined`
|
|
340
|
+
* @category Properties
|
|
341
|
+
*/
|
|
342
|
+
Object.defineProperty(this, "tempDir", {
|
|
343
|
+
enumerable: true,
|
|
344
|
+
configurable: true,
|
|
345
|
+
writable: true,
|
|
346
|
+
value: void 0
|
|
347
|
+
});
|
|
348
|
+
/**
|
|
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.
|
|
196
351
|
*
|
|
197
352
|
* @defaultValue `:memory:`
|
|
198
353
|
* @category Properties
|
|
@@ -204,7 +359,7 @@ export default class SimpleDB extends Simple {
|
|
|
204
359
|
value: void 0
|
|
205
360
|
});
|
|
206
361
|
/**
|
|
207
|
-
*
|
|
362
|
+
* Whether to replace an existing DuckDB file on first use instead of opening it.
|
|
208
363
|
*
|
|
209
364
|
* @defaultValue `false`
|
|
210
365
|
* @category Properties
|
|
@@ -215,10 +370,30 @@ export default class SimpleDB extends Simple {
|
|
|
215
370
|
writable: true,
|
|
216
371
|
value: void 0
|
|
217
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
|
+
});
|
|
218
393
|
/**
|
|
219
394
|
* The class used to create table instances. Defaults to `SimpleTable`.
|
|
220
395
|
* Override this property when subclassing to ensure all table-creating
|
|
221
|
-
* methods (e.g., `newTable()`, `
|
|
396
|
+
* methods (e.g., `newTable()`, `clone()`) return instances of your
|
|
222
397
|
* custom table class.
|
|
223
398
|
*
|
|
224
399
|
* @defaultValue `SimpleTable`
|
|
@@ -249,10 +424,13 @@ export default class SimpleDB extends Simple {
|
|
|
249
424
|
value: SimpleTable
|
|
250
425
|
});
|
|
251
426
|
this.file = options.file ?? ":memory:";
|
|
427
|
+
this.logSQL = options.logSQL ?? false;
|
|
428
|
+
this.explainSQL = options.explainSQL ?? false;
|
|
252
429
|
this.overwrite = options.overwrite ?? false;
|
|
430
|
+
this.readOnly = options.readOnly ?? false;
|
|
253
431
|
this.logDuration = options.logDuration ?? false;
|
|
254
432
|
this.tableIncrement = 1;
|
|
255
|
-
this
|
|
433
|
+
initializeTableRegistry(this);
|
|
256
434
|
this.cacheSourcesUsed = [];
|
|
257
435
|
this.cacheVerbose = options.cacheVerbose ?? false;
|
|
258
436
|
this.cacheTimeSaved = 0;
|
|
@@ -261,6 +439,13 @@ export default class SimpleDB extends Simple {
|
|
|
261
439
|
this.duckDbCache = options.duckDbCache === undefined
|
|
262
440
|
? false
|
|
263
441
|
: options.duckDbCache;
|
|
442
|
+
this.memoryLimit = options.memoryLimit;
|
|
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;
|
|
264
449
|
this.runQuery = runQuery;
|
|
265
450
|
if (this.cacheVerbose || this.logDuration) {
|
|
266
451
|
this.durationStart = Date.now();
|
|
@@ -274,52 +459,19 @@ export default class SimpleDB extends Simple {
|
|
|
274
459
|
* @category Lifecycle
|
|
275
460
|
*/
|
|
276
461
|
async start() {
|
|
277
|
-
if (this.
|
|
278
|
-
|
|
279
|
-
if (getExtension(this.file) !== "db") {
|
|
280
|
-
throw new Error(`The file extension must be .db. The current file is ${this.file}.`);
|
|
281
|
-
}
|
|
282
|
-
if (existsSync(this.file) && this.overwrite === false) {
|
|
283
|
-
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.`);
|
|
284
|
-
}
|
|
285
|
-
else if (existsSync(this.file) && this.overwrite === true) {
|
|
286
|
-
rmSync(this.file);
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
this.db = await DuckDBInstance.create(this.file);
|
|
290
|
-
this.connection = await this.db.connect();
|
|
291
|
-
// By default, DuckDB does not compress in-memory databases, so we enable it here.
|
|
292
|
-
if (this.file === ":memory:") {
|
|
293
|
-
await this.customQuery("ATTACH OR REPLACE ':memory:' AS memory (COMPRESS);");
|
|
294
|
-
}
|
|
295
|
-
if (this.duckDbCache === true) {
|
|
296
|
-
await this.customQuery("SET enable_external_file_cache=true;");
|
|
297
|
-
}
|
|
298
|
-
else if (this.duckDbCache === false) {
|
|
299
|
-
await this.customQuery("SET enable_external_file_cache=false;");
|
|
300
|
-
}
|
|
301
|
-
if (this.progressBar) {
|
|
302
|
-
await this.customQuery(`SET enable_progress_bar = TRUE; SET progress_bar_time = 0;`);
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
return this;
|
|
306
|
-
}
|
|
307
|
-
/**
|
|
308
|
-
* Adds a SimpleTable instance to the internal list of tables.
|
|
309
|
-
*
|
|
310
|
-
* @param table - The SimpleTable instance to add.
|
|
311
|
-
* @internal
|
|
312
|
-
* @category Table Management
|
|
313
|
-
*/
|
|
314
|
-
pushTable(table) {
|
|
315
|
-
const TableClass = this.tableClass;
|
|
316
|
-
if (!(table instanceof TableClass)) {
|
|
317
|
-
throw new Error(`The table must be an instance of ${TableClass.name}.`);
|
|
462
|
+
if (this.lifecycleState === "closed") {
|
|
463
|
+
throw new Error(`start() cannot use a SimpleDB that is ${this.lifecycleState}.`);
|
|
318
464
|
}
|
|
319
|
-
if (this
|
|
320
|
-
|
|
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");
|
|
321
473
|
}
|
|
322
|
-
this
|
|
474
|
+
return await __classPrivateFieldGet(this, _SimpleDB_startPromise, "f");
|
|
323
475
|
}
|
|
324
476
|
/**
|
|
325
477
|
* Creates a new SimpleTable instance within the database.
|
|
@@ -331,39 +483,49 @@ export default class SimpleDB extends Simple {
|
|
|
331
483
|
* @example
|
|
332
484
|
* ```ts
|
|
333
485
|
* // Create a table with a default name (e.g., "table1", "table2", etc.)
|
|
334
|
-
* const dataTable = sdb
|
|
486
|
+
* const dataTable = await sdb
|
|
487
|
+
* .newTable()
|
|
488
|
+
* .loadArray([{ value: 1 }])
|
|
489
|
+
* .log();
|
|
335
490
|
* ```
|
|
336
491
|
*
|
|
337
492
|
* @example
|
|
338
493
|
* ```ts
|
|
339
494
|
* // Create a table with a specific name
|
|
340
|
-
* const employees = sdb
|
|
495
|
+
* const employees = await sdb
|
|
496
|
+
* .newTable("employees")
|
|
497
|
+
* .loadData("employees.csv")
|
|
498
|
+
* .log();
|
|
341
499
|
* ```
|
|
342
500
|
*/
|
|
343
501
|
newTable(name) {
|
|
502
|
+
if (this.lifecycleState !== "open") {
|
|
503
|
+
throw new Error(`newTable() cannot use a SimpleDB that is ${this.lifecycleState}.`);
|
|
504
|
+
}
|
|
344
505
|
const TableClass = this.tableClass;
|
|
345
|
-
// SHOULD MATCH
|
|
506
|
+
// SHOULD MATCH clone
|
|
346
507
|
let table;
|
|
347
508
|
if (typeof name === "string") {
|
|
348
509
|
table = new TableClass(name, this, {
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
types: this.types,
|
|
510
|
+
rowsToLog: this.rowsToLog,
|
|
511
|
+
charsToLog: this.charsToLog,
|
|
512
|
+
typesToLog: this.typesToLog,
|
|
353
513
|
});
|
|
354
514
|
table.defaultTableName = false;
|
|
355
515
|
}
|
|
356
516
|
else {
|
|
517
|
+
while (this.getTables().some((table) => table.name.toLowerCase() === `table${this.tableIncrement}`)) {
|
|
518
|
+
this.tableIncrement++;
|
|
519
|
+
}
|
|
357
520
|
table = new TableClass(`table${this.tableIncrement}`, this, {
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
types: this.types,
|
|
521
|
+
rowsToLog: this.rowsToLog,
|
|
522
|
+
charsToLog: this.charsToLog,
|
|
523
|
+
typesToLog: this.typesToLog,
|
|
362
524
|
});
|
|
363
525
|
table.defaultTableName = true;
|
|
364
526
|
this.tableIncrement += 1;
|
|
365
527
|
}
|
|
366
|
-
this
|
|
528
|
+
registerTable(this, table);
|
|
367
529
|
return table;
|
|
368
530
|
}
|
|
369
531
|
/**
|
|
@@ -377,22 +539,25 @@ export default class SimpleDB extends Simple {
|
|
|
377
539
|
* ```ts
|
|
378
540
|
* // Retrieve the "employees" table
|
|
379
541
|
* const employees = await sdb.getTable("employees");
|
|
542
|
+
* await employees.log();
|
|
380
543
|
* ```
|
|
381
544
|
*/
|
|
382
545
|
async getTable(name) {
|
|
383
|
-
|
|
546
|
+
await this.start();
|
|
547
|
+
const tables = this.getTables();
|
|
548
|
+
const table = tables.find((t) => t.name === name);
|
|
384
549
|
if (table) {
|
|
385
550
|
return await table;
|
|
386
551
|
}
|
|
387
552
|
else {
|
|
388
|
-
throw new Error(
|
|
553
|
+
throw new Error(formatMissingTables("getTable()", [name], tables.map((availableTable) => availableTable.name)));
|
|
389
554
|
}
|
|
390
555
|
}
|
|
391
556
|
/**
|
|
392
557
|
* Removes one or more tables from the database.
|
|
393
558
|
*
|
|
394
|
-
* @param tables - A single table or an array of tables to remove, specified by name or as SimpleTable instances.
|
|
395
|
-
* @returns A promise that resolves
|
|
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.
|
|
560
|
+
* @returns A promise that resolves to the database, so methods can be chained.
|
|
396
561
|
* @category Table Management
|
|
397
562
|
*
|
|
398
563
|
* @example
|
|
@@ -414,22 +579,22 @@ export default class SimpleDB extends Simple {
|
|
|
414
579
|
* // ... load data ...
|
|
415
580
|
* await sdb.removeTables(employeesTable);
|
|
416
581
|
* ```
|
|
582
|
+
*
|
|
583
|
+
* @example
|
|
584
|
+
* ```ts
|
|
585
|
+
* // Remove all tables
|
|
586
|
+
* await sdb.removeTables("all");
|
|
587
|
+
* ```
|
|
417
588
|
*/
|
|
418
589
|
async removeTables(tables) {
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
table: null,
|
|
422
|
-
method: "removeTable()",
|
|
423
|
-
parameters: {},
|
|
424
|
-
}));
|
|
425
|
-
const tablesNamesToBeRemoved = tablesToBeRemoved.map((t) => t instanceof SimpleTable ? t.name : t);
|
|
426
|
-
this.tables = this.tables.filter((t) => !tablesNamesToBeRemoved.includes(t.name));
|
|
590
|
+
await removeTables(this, tables);
|
|
591
|
+
return this;
|
|
427
592
|
}
|
|
428
593
|
/**
|
|
429
594
|
* Selects one or more tables to keep in the database, removing all others.
|
|
430
595
|
*
|
|
431
596
|
* @param tables - A single table or an array of tables to select, specified by name or as SimpleTable instances.
|
|
432
|
-
* @returns A promise that resolves
|
|
597
|
+
* @returns A promise that resolves to the database, so methods can be chained.
|
|
433
598
|
* @category Table Management
|
|
434
599
|
*
|
|
435
600
|
* @example
|
|
@@ -453,20 +618,8 @@ export default class SimpleDB extends Simple {
|
|
|
453
618
|
* ```
|
|
454
619
|
*/
|
|
455
620
|
async selectTables(tables) {
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
if (!(await this.hasTable(table))) {
|
|
459
|
-
throw new Error(`Table ${table} not found.`);
|
|
460
|
-
}
|
|
461
|
-
}
|
|
462
|
-
const tablesToBeRemoved = this.tables.filter((t) => !tablesToBeSelected.includes(t.name));
|
|
463
|
-
await queryDB(this, tablesToBeRemoved.map((d) => `DROP TABLE "${d instanceof SimpleTable ? d.name : d}";`).join("\n"), mergeOptions(this, {
|
|
464
|
-
table: null,
|
|
465
|
-
method: "removeTable()",
|
|
466
|
-
parameters: {},
|
|
467
|
-
}));
|
|
468
|
-
const tablesNamesToBeRemoved = tablesToBeRemoved.map((t) => t instanceof SimpleTable ? t.name : t);
|
|
469
|
-
this.tables = this.tables.filter((t) => !tablesNamesToBeRemoved.includes(t.name));
|
|
621
|
+
await selectTables(this, tables);
|
|
622
|
+
return this;
|
|
470
623
|
}
|
|
471
624
|
/**
|
|
472
625
|
* Returns an array of all table names in the database, sorted alphabetically.
|
|
@@ -487,7 +640,7 @@ export default class SimpleDB extends Simple {
|
|
|
487
640
|
/**
|
|
488
641
|
* Logs the names of all tables in the database to the console, sorted alphabetically.
|
|
489
642
|
*
|
|
490
|
-
* @returns A promise that resolves
|
|
643
|
+
* @returns A promise that resolves to the database, so methods can be chained.
|
|
491
644
|
* @category Table Management
|
|
492
645
|
*
|
|
493
646
|
* @example
|
|
@@ -505,21 +658,25 @@ export default class SimpleDB extends Simple {
|
|
|
505
658
|
else {
|
|
506
659
|
console.log(`\nSimpleDB - No tables found.`);
|
|
507
660
|
}
|
|
661
|
+
return this;
|
|
508
662
|
}
|
|
509
663
|
/**
|
|
510
664
|
* Returns an array of all SimpleTable instances in the database.
|
|
511
665
|
*
|
|
512
|
-
*
|
|
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.
|
|
513
670
|
* @category Table Management
|
|
514
671
|
*
|
|
515
672
|
* @example
|
|
516
673
|
* ```ts
|
|
517
674
|
* // Get all SimpleTable instances
|
|
518
|
-
* const tables =
|
|
675
|
+
* const tables = sdb.getTables();
|
|
519
676
|
* ```
|
|
520
677
|
*/
|
|
521
|
-
|
|
522
|
-
return
|
|
678
|
+
getTables() {
|
|
679
|
+
return listRegisteredTables(this);
|
|
523
680
|
}
|
|
524
681
|
/**
|
|
525
682
|
* Checks if a table exists in the database.
|
|
@@ -563,7 +720,7 @@ export default class SimpleDB extends Simple {
|
|
|
563
720
|
*/
|
|
564
721
|
async getExtensions() {
|
|
565
722
|
return (await queryDB(this, `FROM duckdb_extensions();`, mergeOptions(this, {
|
|
566
|
-
|
|
723
|
+
returnData: true,
|
|
567
724
|
table: null,
|
|
568
725
|
method: "getExtensions()",
|
|
569
726
|
parameters: {},
|
|
@@ -571,15 +728,20 @@ export default class SimpleDB extends Simple {
|
|
|
571
728
|
}
|
|
572
729
|
/**
|
|
573
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()`.
|
|
574
733
|
*
|
|
575
|
-
*
|
|
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.
|
|
576
739
|
*
|
|
577
740
|
* @param query - The SQL query string to execute.
|
|
578
741
|
* @param options - Configuration options for the query.
|
|
579
|
-
* @param options.
|
|
742
|
+
* @param options.returnData - If `true`, the query result is returned. Defaults to `false`.
|
|
580
743
|
* @param options.table - The name of the table associated with the query, primarily used for debugging and logging.
|
|
581
|
-
* @
|
|
582
|
-
* @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`.
|
|
583
745
|
* @category DuckDB
|
|
584
746
|
*
|
|
585
747
|
* @example
|
|
@@ -593,29 +755,33 @@ export default class SimpleDB extends Simple {
|
|
|
593
755
|
* // Execute a query and return the results
|
|
594
756
|
* const youngEmployees = await sdb.customQuery(
|
|
595
757
|
* "SELECT * FROM employees WHERE age < 30",
|
|
596
|
-
* {
|
|
758
|
+
* { returnData: true }
|
|
597
759
|
* );
|
|
598
760
|
* console.log(youngEmployees);
|
|
599
761
|
* ```
|
|
600
762
|
*/
|
|
601
763
|
async customQuery(query, options = {}) {
|
|
602
764
|
return await queryDB(this, query, mergeOptions(this, {
|
|
603
|
-
|
|
765
|
+
returnData: options.returnData ?? false,
|
|
604
766
|
table: options.table ?? null,
|
|
605
767
|
method: "customQuery()",
|
|
606
768
|
parameters: { query, options },
|
|
607
|
-
types: options.types,
|
|
608
769
|
}));
|
|
609
770
|
}
|
|
610
771
|
/**
|
|
611
|
-
*
|
|
612
|
-
*
|
|
613
|
-
*
|
|
614
|
-
*
|
|
615
|
-
*
|
|
616
|
-
*
|
|
617
|
-
*
|
|
618
|
-
*
|
|
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.
|
|
619
785
|
* @category File Operations
|
|
620
786
|
*
|
|
621
787
|
* @example
|
|
@@ -626,85 +792,42 @@ export default class SimpleDB extends Simple {
|
|
|
626
792
|
*
|
|
627
793
|
* @example
|
|
628
794
|
* ```ts
|
|
629
|
-
* //
|
|
630
|
-
* await sdb.loadDB("./my_database.sqlite"
|
|
795
|
+
* // Import SQLite tables without modifying the original file
|
|
796
|
+
* await sdb.loadDB("./my_database.sqlite");
|
|
631
797
|
* ```
|
|
632
798
|
*
|
|
633
799
|
* @example
|
|
634
800
|
* ```ts
|
|
635
|
-
* //
|
|
636
|
-
*
|
|
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();
|
|
637
805
|
* ```
|
|
638
806
|
*/
|
|
639
|
-
async loadDB(file
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
if (!existsSync(file)) {
|
|
643
|
-
throw new Error(`The file ${file} does not exist.`);
|
|
644
|
-
}
|
|
645
|
-
const extension = getExtension(file);
|
|
646
|
-
const allIndexesFile = `${file.replace(`.${extension}`, "")}_indexes.json`;
|
|
647
|
-
const vssIndex = checkVssIndexes(allIndexesFile);
|
|
648
|
-
if (vssIndex) {
|
|
649
|
-
await this.customQuery(`INSTALL vss; LOAD vss;`);
|
|
650
|
-
}
|
|
651
|
-
if (extension === "db") {
|
|
652
|
-
if (detach) {
|
|
653
|
-
await queryDB(this, `ATTACH '${cleanPath(file)}' AS ${name};
|
|
654
|
-
COPY FROM DATABASE ${name} TO memory;
|
|
655
|
-
DETACH ${name};`, mergeOptions(this, {
|
|
656
|
-
returnDataFrom: "none",
|
|
657
|
-
table: null,
|
|
658
|
-
method: "loadDB()",
|
|
659
|
-
parameters: {},
|
|
660
|
-
}));
|
|
661
|
-
}
|
|
662
|
-
else {
|
|
663
|
-
await queryDB(this, `ATTACH '${cleanPath(file)}' AS ${name};
|
|
664
|
-
USE ${name};`, mergeOptions(this, {
|
|
665
|
-
returnDataFrom: "none",
|
|
666
|
-
table: null,
|
|
667
|
-
method: "loadDB()",
|
|
668
|
-
parameters: {},
|
|
669
|
-
}));
|
|
670
|
-
}
|
|
671
|
-
}
|
|
672
|
-
else if (extension === "sqlite") {
|
|
673
|
-
if (detach) {
|
|
674
|
-
await queryDB(this, `INSTALL sqlite; LOAD sqlite;
|
|
675
|
-
ATTACH '${cleanPath(file)}' AS ${name} (TYPE SQLITE);
|
|
676
|
-
COPY FROM DATABASE ${name} TO memory;
|
|
677
|
-
DETACH ${name};`, mergeOptions(this, {
|
|
678
|
-
returnDataFrom: "none",
|
|
679
|
-
table: null,
|
|
680
|
-
method: "loadDB()",
|
|
681
|
-
parameters: {},
|
|
682
|
-
}));
|
|
683
|
-
}
|
|
684
|
-
else {
|
|
685
|
-
await queryDB(this, `INSTALL sqlite; LOAD sqlite;
|
|
686
|
-
ATTACH '${cleanPath(file)}' AS ${name} (TYPE SQLITE);
|
|
687
|
-
USE ${name};`, mergeOptions(this, {
|
|
688
|
-
returnDataFrom: "none",
|
|
689
|
-
table: null,
|
|
690
|
-
method: "loadDB()",
|
|
691
|
-
parameters: {},
|
|
692
|
-
}));
|
|
693
|
-
}
|
|
694
|
-
}
|
|
695
|
-
else {
|
|
696
|
-
throw new Error(`The extension ${extension} is not supported. Please use .db or .sqlite instead.`);
|
|
697
|
-
}
|
|
698
|
-
await setDbProps(this, allIndexesFile);
|
|
807
|
+
async loadDB(file) {
|
|
808
|
+
await loadDB(this, file);
|
|
809
|
+
return this;
|
|
699
810
|
}
|
|
700
811
|
/**
|
|
701
|
-
*
|
|
702
|
-
*
|
|
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.
|
|
703
816
|
*
|
|
704
|
-
*
|
|
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.
|
|
825
|
+
*
|
|
826
|
+
* @param file - The relative or absolute path to the output file.
|
|
705
827
|
* @param options - Configuration options for writing the database.
|
|
706
|
-
* @param options.
|
|
707
|
-
* @
|
|
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.
|
|
708
831
|
* @category File Operations
|
|
709
832
|
*
|
|
710
833
|
* @example
|
|
@@ -715,91 +838,202 @@ DETACH ${name};`, mergeOptions(this, {
|
|
|
715
838
|
*
|
|
716
839
|
* @example
|
|
717
840
|
* ```ts
|
|
718
|
-
* //
|
|
719
|
-
* await sdb.writeDB("./my_exported_database.
|
|
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");
|
|
720
849
|
* ```
|
|
721
850
|
*/
|
|
722
851
|
async writeDB(file, options = {}) {
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
}));
|
|
753
|
-
}
|
|
754
|
-
else {
|
|
755
|
-
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}.`);
|
|
756
881
|
}
|
|
882
|
+
await flushAllTables(this);
|
|
883
|
+
return this;
|
|
757
884
|
}
|
|
758
885
|
/**
|
|
759
|
-
*
|
|
760
|
-
*
|
|
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.
|
|
761
889
|
*
|
|
762
890
|
* @returns A promise that resolves to the SimpleDB instance after cleanup.
|
|
891
|
+
* @throws An error after cleanup when pending execution or cleanup fails.
|
|
763
892
|
* @category Lifecycle
|
|
764
893
|
*
|
|
765
894
|
* @example
|
|
766
895
|
* ```ts
|
|
767
|
-
* //
|
|
768
|
-
*
|
|
896
|
+
* // close() executes queued transformations before cleaning up resources.
|
|
897
|
+
* table.loadData("data.csv").convert({ price: "number" });
|
|
898
|
+
* await sdb.close();
|
|
769
899
|
* ```
|
|
770
900
|
*/
|
|
771
|
-
async
|
|
772
|
-
if (this
|
|
773
|
-
await this
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
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) {
|
|
779
923
|
rmSync(this.file);
|
|
780
|
-
|
|
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.`);
|
|
781
962
|
}
|
|
782
|
-
|
|
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)};`);
|
|
974
|
+
}
|
|
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 {
|
|
783
985
|
this.connection.closeSync();
|
|
986
|
+
}
|
|
987
|
+
catch (error) {
|
|
988
|
+
cleanupErrors.push(error);
|
|
989
|
+
}
|
|
990
|
+
try {
|
|
784
991
|
this.db.closeSync();
|
|
785
992
|
}
|
|
993
|
+
catch (error) {
|
|
994
|
+
cleanupErrors.push(error);
|
|
995
|
+
}
|
|
996
|
+
}
|
|
997
|
+
try {
|
|
998
|
+
const tmpDir = this.tempDir ??
|
|
999
|
+
(this.file === ":memory:" ? ".tmp" : `${this.file}.tmp`);
|
|
1000
|
+
if (existsSync(tmpDir)) {
|
|
1001
|
+
rmSync(tmpDir, { recursive: true });
|
|
1002
|
+
}
|
|
786
1003
|
cleanCache(this);
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
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`;
|
|
802
1034
|
}
|
|
803
|
-
|
|
1035
|
+
console.log(`${string}\n`);
|
|
804
1036
|
}
|
|
805
|
-
|
|
1037
|
+
return await this;
|
|
1038
|
+
};
|
|
1039
|
+
export default SimpleDB;
|