@naturalcycles/db-lib 10.6.0 → 10.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/dist/adapter/cachedb/cache.db.d.ts +4 -3
  2. package/dist/adapter/cachedb/cache.db.js +2 -2
  3. package/dist/adapter/cachedb/cache.db.model.d.ts +3 -2
  4. package/dist/adapter/file/file.db.d.ts +4 -3
  5. package/dist/adapter/file/file.db.js +9 -4
  6. package/dist/adapter/file/file.db.model.d.ts +2 -1
  7. package/dist/adapter/file/inMemory.persistence.plugin.d.ts +1 -1
  8. package/dist/adapter/file/localFile.persistence.plugin.d.ts +1 -1
  9. package/dist/adapter/file/localFile.persistence.plugin.js +1 -1
  10. package/dist/adapter/file/noop.persistence.plugin.d.ts +1 -1
  11. package/dist/commondao/common.dao.d.ts +3 -1
  12. package/dist/commondao/common.dao.js +15 -9
  13. package/dist/commondao/common.dao.model.d.ts +14 -8
  14. package/dist/commondao/index.d.ts +2 -0
  15. package/dist/commondao/index.js +2 -0
  16. package/dist/{base.common.db.d.ts → commondb/base.common.db.d.ts} +4 -3
  17. package/dist/{base.common.db.js → commondb/base.common.db.js} +1 -1
  18. package/dist/{common.db.d.ts → commondb/common.db.d.ts} +4 -3
  19. package/dist/db.model.d.ts +2 -2
  20. package/dist/index.d.ts +2 -13
  21. package/dist/index.js +2 -13
  22. package/dist/{adapter/inmemory → inmemory}/inMemory.db.d.ts +7 -5
  23. package/dist/{adapter/inmemory → inmemory}/inMemory.db.js +8 -2
  24. package/dist/{adapter/inmemory → inmemory}/inMemoryKeyValueDB.d.ts +3 -3
  25. package/dist/{adapter/inmemory → inmemory}/inMemoryKeyValueDB.js +1 -1
  26. package/dist/inmemory/index.d.ts +3 -0
  27. package/dist/inmemory/index.js +3 -0
  28. package/dist/inmemory/queryInMemory.d.ts +3 -0
  29. package/dist/{adapter/inmemory → inmemory}/queryInMemory.js +1 -1
  30. package/dist/kv/commonKeyValueDB.d.ts +1 -1
  31. package/dist/kv/commonKeyValueDao.d.ts +2 -1
  32. package/dist/kv/commonKeyValueDao.js +2 -1
  33. package/dist/kv/commonKeyValueDaoMemoCache.d.ts +3 -2
  34. package/dist/kv/commonKeyValueDaoMemoCache.js +2 -1
  35. package/dist/kv/index.d.ts +3 -0
  36. package/dist/kv/index.js +3 -0
  37. package/dist/model.util.d.ts +1 -1
  38. package/dist/model.util.js +1 -1
  39. package/dist/pipeline/dbPipelineBackup.d.ts +3 -3
  40. package/dist/pipeline/dbPipelineBackup.js +4 -1
  41. package/dist/pipeline/dbPipelineCopy.d.ts +3 -3
  42. package/dist/pipeline/dbPipelineCopy.js +4 -1
  43. package/dist/pipeline/dbPipelineRestore.d.ts +3 -3
  44. package/dist/pipeline/dbPipelineRestore.js +6 -1
  45. package/dist/pipeline/index.d.ts +3 -0
  46. package/dist/pipeline/index.js +3 -0
  47. package/dist/query/dbQuery.d.ts +1 -1
  48. package/dist/query/dbQuery.js +2 -1
  49. package/dist/testing/commonDBTest.d.ts +1 -1
  50. package/dist/testing/commonDBTest.js +5 -2
  51. package/dist/testing/commonDaoTest.d.ts +1 -1
  52. package/dist/testing/commonDaoTest.js +3 -1
  53. package/dist/testing/test.model.d.ts +2 -1
  54. package/dist/testing/test.model.js +2 -1
  55. package/dist/timeseries/timeSeries.model.d.ts +1 -1
  56. package/dist/transaction/dbTransaction.util.d.ts +2 -2
  57. package/package.json +8 -4
  58. package/src/adapter/cachedb/cache.db.model.ts +3 -2
  59. package/src/adapter/cachedb/cache.db.ts +5 -9
  60. package/src/adapter/file/file.db.model.ts +2 -1
  61. package/src/adapter/file/file.db.ts +13 -15
  62. package/src/adapter/file/inMemory.persistence.plugin.ts +1 -1
  63. package/src/adapter/file/localFile.persistence.plugin.ts +2 -2
  64. package/src/adapter/file/noop.persistence.plugin.ts +1 -1
  65. package/src/commondao/common.dao.model.ts +15 -11
  66. package/src/commondao/common.dao.ts +22 -32
  67. package/src/commondao/index.ts +2 -0
  68. package/src/{base.common.db.ts → commondb/base.common.db.ts} +7 -11
  69. package/src/{common.db.ts → commondb/common.db.ts} +4 -8
  70. package/src/db.model.ts +2 -2
  71. package/src/index.ts +2 -13
  72. package/src/{adapter/inmemory → inmemory}/inMemory.db.ts +19 -22
  73. package/src/{adapter/inmemory → inmemory}/inMemoryKeyValueDB.ts +4 -8
  74. package/src/inmemory/index.ts +3 -0
  75. package/src/{adapter/inmemory → inmemory}/queryInMemory.ts +3 -3
  76. package/src/kv/commonKeyValueDB.ts +1 -1
  77. package/src/kv/commonKeyValueDao.ts +4 -2
  78. package/src/kv/commonKeyValueDaoMemoCache.ts +4 -2
  79. package/src/kv/index.ts +3 -0
  80. package/src/model.util.ts +2 -2
  81. package/src/pipeline/dbPipelineBackup.ts +6 -3
  82. package/src/pipeline/dbPipelineCopy.ts +6 -3
  83. package/src/pipeline/dbPipelineRestore.ts +9 -15
  84. package/src/pipeline/index.ts +3 -0
  85. package/src/query/dbQuery.ts +3 -2
  86. package/src/testing/commonDBTest.ts +6 -3
  87. package/src/testing/commonDaoTest.ts +4 -2
  88. package/src/testing/keyValueDBTest.ts +1 -1
  89. package/src/testing/test.model.ts +4 -2
  90. package/src/timeseries/commonTimeSeriesDao.ts +1 -1
  91. package/src/timeseries/timeSeries.model.ts +1 -1
  92. package/src/transaction/dbTransaction.util.ts +2 -2
  93. package/dist/adapter/inmemory/queryInMemory.d.ts +0 -3
  94. /package/dist/{common.db.js → commondb/common.db.js} +0 -0
@@ -1,7 +1,8 @@
1
- import type { JsonSchemaObject, JsonSchemaRootObject, ObjectWithId } from '@naturalcycles/js-lib';
1
+ import type { JsonSchemaObject, JsonSchemaRootObject } from '@naturalcycles/js-lib/json-schema';
2
+ import type { ObjectWithId } from '@naturalcycles/js-lib/types';
2
3
  import type { ReadableTyped } from '@naturalcycles/nodejs-lib/stream';
3
- import { BaseCommonDB } from '../../base.common.db.js';
4
- import type { CommonDB, CommonDBSupport } from '../../common.db.js';
4
+ import { BaseCommonDB } from '../../commondb/base.common.db.js';
5
+ import type { CommonDB, CommonDBSupport } from '../../commondb/common.db.js';
5
6
  import type { RunQueryResult } from '../../db.model.js';
6
7
  import type { DBQuery } from '../../query/dbQuery.js';
7
8
  import type { CacheDBCfg, CacheDBCreateOptions, CacheDBOptions, CacheDBSaveOptions, CacheDBStreamOptions } from './cache.db.model.js';
@@ -1,7 +1,7 @@
1
1
  import { Readable } from 'node:stream';
2
2
  import { _isTruthy } from '@naturalcycles/js-lib';
3
- import { BaseCommonDB } from '../../base.common.db.js';
4
- import { commonDBFullSupport } from '../../common.db.js';
3
+ import { BaseCommonDB } from '../../commondb/base.common.db.js';
4
+ import { commonDBFullSupport } from '../../commondb/common.db.js';
5
5
  /**
6
6
  * CommonDB implementation that proxies requests to downstream CommonDB
7
7
  * and does in-memory caching.
@@ -1,5 +1,6 @@
1
- import type { CommonLogger, ObjectWithId } from '@naturalcycles/js-lib';
2
- import type { CommonDB } from '../../common.db.js';
1
+ import type { CommonLogger } from '@naturalcycles/js-lib/log';
2
+ import type { ObjectWithId } from '@naturalcycles/js-lib/types';
3
+ import type { CommonDB } from '../../commondb/common.db.js';
3
4
  import type { CommonDBCreateOptions, CommonDBOptions, CommonDBSaveOptions, CommonDBStreamOptions } from '../../db.model.js';
4
5
  export interface CacheDBCfg {
5
6
  name: string;
@@ -1,7 +1,8 @@
1
- import type { JsonSchemaRootObject, ObjectWithId } from '@naturalcycles/js-lib';
1
+ import type { JsonSchemaRootObject } from '@naturalcycles/js-lib/json-schema';
2
+ import { type ObjectWithId } from '@naturalcycles/js-lib/types';
2
3
  import type { ReadableTyped } from '@naturalcycles/nodejs-lib/stream';
3
- import { BaseCommonDB } from '../../base.common.db.js';
4
- import type { CommonDB, CommonDBSupport } from '../../common.db.js';
4
+ import { BaseCommonDB } from '../../commondb/base.common.db.js';
5
+ import type { CommonDB, CommonDBSupport } from '../../commondb/common.db.js';
5
6
  import type { CommonDBOptions, CommonDBSaveOptions, CommonDBStreamOptions, DBSaveBatchOperation, RunQueryResult } from '../../db.model.js';
6
7
  import type { DBQuery } from '../../query/dbQuery.js';
7
8
  import type { FileDBCfg } from './file.db.model.js';
@@ -1,9 +1,14 @@
1
- import { _assert, _by, _deepEquals, _filterUndefinedValues, _since, _sortBy, _sortObjectDeep, _stringMapValues, generateJsonSchemaFromData, localTime, } from '@naturalcycles/js-lib';
1
+ import { _by, _sortBy } from '@naturalcycles/js-lib';
2
+ import { _since, localTime } from '@naturalcycles/js-lib/datetime';
3
+ import { _assert } from '@naturalcycles/js-lib/error';
4
+ import { generateJsonSchemaFromData } from '@naturalcycles/js-lib/json-schema';
5
+ import { _deepEquals, _filterUndefinedValues, _sortObjectDeep } from '@naturalcycles/js-lib/object';
6
+ import { _stringMapValues, } from '@naturalcycles/js-lib/types';
2
7
  import { dimGrey } from '@naturalcycles/nodejs-lib/colors';
3
8
  import { readableCreate } from '@naturalcycles/nodejs-lib/stream';
4
- import { BaseCommonDB } from '../../base.common.db.js';
5
- import { commonDBFullSupport } from '../../common.db.js';
6
- import { queryInMemory } from '../inmemory/queryInMemory.js';
9
+ import { BaseCommonDB } from '../../commondb/base.common.db.js';
10
+ import { commonDBFullSupport } from '../../commondb/common.db.js';
11
+ import { queryInMemory } from '../../inmemory/queryInMemory.js';
7
12
  /**
8
13
  * Provides barebone implementation for "whole file" based CommonDB.
9
14
  * "whole file" means that the persistence layer doesn't allow any querying,
@@ -1,4 +1,5 @@
1
- import type { CommonLogger, ObjectWithId } from '@naturalcycles/js-lib';
1
+ import type { CommonLogger } from '@naturalcycles/js-lib/log';
2
+ import type { ObjectWithId } from '@naturalcycles/js-lib/types';
2
3
  import type { DBSaveBatchOperation } from '../../db.model.js';
3
4
  import type { DBQueryOrder } from '../../query/dbQuery.js';
4
5
  export interface FileDBPersistencePlugin {
@@ -1,4 +1,4 @@
1
- import type { ObjectWithId, StringMap } from '@naturalcycles/js-lib';
1
+ import type { ObjectWithId, StringMap } from '@naturalcycles/js-lib/types';
2
2
  import type { DBSaveBatchOperation } from '../../db.model.js';
3
3
  import type { FileDBPersistencePlugin } from './file.db.model.js';
4
4
  /**
@@ -1,4 +1,4 @@
1
- import type { ObjectWithId } from '@naturalcycles/js-lib';
1
+ import type { ObjectWithId } from '@naturalcycles/js-lib/types';
2
2
  import type { DBSaveBatchOperation } from '../../db.model.js';
3
3
  import type { FileDBPersistencePlugin } from './file.db.model.js';
4
4
  export interface LocalFilePersistencePluginCfg {
@@ -1,5 +1,5 @@
1
1
  import { Readable } from 'node:stream';
2
- import { pMap } from '@naturalcycles/js-lib';
2
+ import { pMap } from '@naturalcycles/js-lib/promise';
3
3
  import { fs2 } from '@naturalcycles/nodejs-lib/fs2';
4
4
  import { _pipeline, createReadStreamAsNDJSON, createWriteStreamAsNDJSON, } from '@naturalcycles/nodejs-lib/stream';
5
5
  /**
@@ -1,4 +1,4 @@
1
- import type { ObjectWithId } from '@naturalcycles/js-lib';
1
+ import type { ObjectWithId } from '@naturalcycles/js-lib/types';
2
2
  import type { DBSaveBatchOperation } from '../../db.model.js';
3
3
  import type { FileDBPersistencePlugin } from './file.db.model.js';
4
4
  export declare class NoopPersistencePlugin implements FileDBPersistencePlugin {
@@ -1,5 +1,7 @@
1
1
  import type { Transform } from 'node:stream';
2
- import type { AsyncIndexedMapper, BaseDBEntity, CommonLogger, JsonSchemaObject, JsonSchemaRootObject, StringMap, UnixTimestampMillis, Unsaved } from '@naturalcycles/js-lib';
2
+ import type { JsonSchemaObject, JsonSchemaRootObject } from '@naturalcycles/js-lib/json-schema';
3
+ import type { CommonLogger } from '@naturalcycles/js-lib/log';
4
+ import type { AsyncIndexedMapper, BaseDBEntity, StringMap, UnixTimestampMillis, Unsaved } from '@naturalcycles/js-lib/types';
3
5
  import { ZodType } from '@naturalcycles/js-lib/zod';
4
6
  import { AjvSchema } from '@naturalcycles/nodejs-lib/ajv';
5
7
  import { type ObjectSchema } from '@naturalcycles/nodejs-lib/joi';
@@ -1,4 +1,10 @@
1
- import { _assert, _deepCopy, _deepJsonEquals, _filterUndefinedValues, _isTruthy, _objectAssignExact, _passthroughPredicate, _since, _truncate, _typeCast, _uniqBy, AppError, ErrorMode, localTime, pMap, SKIP, } from '@naturalcycles/js-lib';
1
+ import { _isTruthy, _uniqBy } from '@naturalcycles/js-lib';
2
+ import { _since, localTime } from '@naturalcycles/js-lib/datetime';
3
+ import { _assert, AppError, ErrorMode } from '@naturalcycles/js-lib/error';
4
+ import { _deepCopy, _deepJsonEquals, _filterUndefinedValues, _objectAssignExact, } from '@naturalcycles/js-lib/object';
5
+ import { pMap } from '@naturalcycles/js-lib/promise';
6
+ import { _truncate } from '@naturalcycles/js-lib/string';
7
+ import { _passthroughPredicate, _typeCast, SKIP } from '@naturalcycles/js-lib/types';
2
8
  import { ZodType, zSafeValidate } from '@naturalcycles/js-lib/zod';
3
9
  import { stringId } from '@naturalcycles/nodejs-lib';
4
10
  import { AjvSchema } from '@naturalcycles/nodejs-lib/ajv';
@@ -956,7 +962,14 @@ export class CommonDao {
956
962
  const objectName = table;
957
963
  let error;
958
964
  let convertedValue;
959
- if (schema instanceof ZodType) {
965
+ if (this.cfg.validateBM) {
966
+ const [err, value] = this.cfg.validateBM(obj, {
967
+ itemName: table,
968
+ });
969
+ error = err;
970
+ convertedValue = value;
971
+ }
972
+ else if (schema instanceof ZodType) {
960
973
  // Zod schema
961
974
  const vr = zSafeValidate(obj, schema);
962
975
  error = vr.error;
@@ -971,14 +984,7 @@ export class CommonDao {
971
984
  }
972
985
  else {
973
986
  // Joi
974
- const start = localTime.nowUnixMillis();
975
987
  const vr = getValidationResult(obj, schema, objectName);
976
- const tookMillis = localTime.nowUnixMillis() - start;
977
- this.cfg.onValidationTime?.({
978
- tookMillis,
979
- table,
980
- obj,
981
- });
982
988
  error = vr.error;
983
989
  convertedValue = vr.value;
984
990
  }
@@ -1,9 +1,12 @@
1
- import type { BaseDBEntity, CommonLogger, ErrorMode, NumberOfMilliseconds, Promisable, UnixTimestamp } from '@naturalcycles/js-lib';
1
+ import type { ValidationFunction } from '@naturalcycles/js-lib';
2
+ import type { ErrorMode } from '@naturalcycles/js-lib/error';
3
+ import type { CommonLogger } from '@naturalcycles/js-lib/log';
4
+ import type { BaseDBEntity, NumberOfMilliseconds, Promisable, UnixTimestamp } from '@naturalcycles/js-lib/types';
2
5
  import type { ZodType, ZodValidationError } from '@naturalcycles/js-lib/zod';
3
6
  import type { AjvSchema, AjvValidationError } from '@naturalcycles/nodejs-lib/ajv';
4
7
  import type { JoiValidationError, ObjectSchema } from '@naturalcycles/nodejs-lib/joi';
5
8
  import type { TransformLogProgressOptions, TransformMapOptions } from '@naturalcycles/nodejs-lib/stream';
6
- import type { CommonDB } from '../common.db.js';
9
+ import type { CommonDB } from '../commondb/common.db.js';
7
10
  import type { CommonDBCreateOptions, CommonDBOptions, CommonDBSaveOptions } from '../db.model.js';
8
11
  export interface CommonDaoHooks<BM extends BaseDBEntity, DBM extends BaseDBEntity, ID = BM['id']> {
9
12
  /**
@@ -103,6 +106,15 @@ export interface CommonDaoCfg<BM extends BaseDBEntity, DBM extends BaseDBEntity
103
106
  * Joi, AjvSchema or ZodSchema is supported.
104
107
  */
105
108
  bmSchema?: ObjectSchema<BM> | AjvSchema<BM> | ZodType<BM>;
109
+ /**
110
+ * Experimental alternative to bmSchema.
111
+ * "Bring your own validation function".
112
+ * It removes the knowledge from CommonDao about the validation library used
113
+ * and abstracts it away.
114
+ *
115
+ * @experimental
116
+ */
117
+ validateBM?: ValidationFunction<BM, any>;
106
118
  excludeFromIndexes?: (keyof DBM)[];
107
119
  /**
108
120
  * Defaults to true.
@@ -114,12 +126,6 @@ export interface CommonDaoCfg<BM extends BaseDBEntity, DBM extends BaseDBEntity
114
126
  * If set to false - save (write) operations will skip validation (and conversion).
115
127
  */
116
128
  validateOnSave?: boolean;
117
- /**
118
- * The hook allows to get a callback, to instrument "validation time".
119
- *
120
- * @experimental
121
- */
122
- onValidationTime?: (data: OnValidationTimeData) => void;
123
129
  /**
124
130
  * Defaults to false.
125
131
  * Setting it to true will set saveMethod to `insert` for save/saveBatch, which will
@@ -0,0 +1,2 @@
1
+ export * from './common.dao.js';
2
+ export * from './common.dao.model.js';
@@ -0,0 +1,2 @@
1
+ export * from './common.dao.js';
2
+ export * from './common.dao.model.js';
@@ -1,9 +1,10 @@
1
- import type { JsonSchemaObject, JsonSchemaRootObject, ObjectWithId, StringMap } from '@naturalcycles/js-lib';
1
+ import type { JsonSchemaObject, JsonSchemaRootObject } from '@naturalcycles/js-lib/json-schema';
2
+ import type { ObjectWithId, StringMap } from '@naturalcycles/js-lib/types';
2
3
  import type { ReadableTyped } from '@naturalcycles/nodejs-lib/stream';
4
+ import type { CommonDBOptions, CommonDBSaveOptions, CommonDBTransactionOptions, DBTransaction, DBTransactionFn, RunQueryResult } from '../db.model.js';
5
+ import type { DBQuery } from '../query/dbQuery.js';
3
6
  import type { CommonDB, CommonDBSupport } from './common.db.js';
4
7
  import { CommonDBType } from './common.db.js';
5
- import type { CommonDBOptions, CommonDBSaveOptions, CommonDBTransactionOptions, DBTransaction, DBTransactionFn, RunQueryResult } from './db.model.js';
6
- import type { DBQuery } from './query/dbQuery.js';
7
8
  /**
8
9
  * No-op implementation of CommonDB interface.
9
10
  * To be extended by actual implementations.
@@ -1,5 +1,5 @@
1
+ import { FakeDBTransaction } from '../transaction/dbTransaction.util.js';
1
2
  import { CommonDBType } from './common.db.js';
2
- import { FakeDBTransaction } from './transaction/dbTransaction.util.js';
3
3
  /**
4
4
  * No-op implementation of CommonDB interface.
5
5
  * To be extended by actual implementations.
@@ -1,7 +1,8 @@
1
- import type { JsonSchemaObject, JsonSchemaRootObject, ObjectWithId, StringMap } from '@naturalcycles/js-lib';
1
+ import type { JsonSchemaObject, JsonSchemaRootObject } from '@naturalcycles/js-lib/json-schema';
2
+ import type { ObjectWithId, StringMap } from '@naturalcycles/js-lib/types';
2
3
  import type { ReadableTyped } from '@naturalcycles/nodejs-lib/stream';
3
- import type { CommonDBCreateOptions, CommonDBOptions, CommonDBReadOptions, CommonDBSaveOptions, CommonDBStreamOptions, CommonDBTransactionOptions, DBTransaction, DBTransactionFn, RunQueryResult } from './db.model.js';
4
- import type { DBQuery } from './query/dbQuery.js';
4
+ import type { CommonDBCreateOptions, CommonDBOptions, CommonDBReadOptions, CommonDBSaveOptions, CommonDBStreamOptions, CommonDBTransactionOptions, DBTransaction, DBTransactionFn, RunQueryResult } from '../db.model.js';
5
+ import type { DBQuery } from '../query/dbQuery.js';
5
6
  export declare enum CommonDBType {
6
7
  'document' = "document",
7
8
  'relational' = "relational"
@@ -1,5 +1,5 @@
1
- import type { ObjectWithId, UnixTimestamp } from '@naturalcycles/js-lib';
2
- import type { CommonDB } from './common.db.js';
1
+ import type { ObjectWithId, UnixTimestamp } from '@naturalcycles/js-lib/types';
2
+ import type { CommonDB } from './commondb/common.db.js';
3
3
  /**
4
4
  * Similar to SQL INSERT, UPDATE.
5
5
  * Insert will fail if row already exists.
package/dist/index.d.ts CHANGED
@@ -1,17 +1,6 @@
1
- export * from './adapter/inmemory/inMemory.db.js';
2
- export * from './adapter/inmemory/inMemoryKeyValueDB.js';
3
- export * from './adapter/inmemory/queryInMemory.js';
4
- export * from './base.common.db.js';
5
- export * from './common.db.js';
6
- export * from './commondao/common.dao.js';
7
- export * from './commondao/common.dao.model.js';
1
+ export * from './commondb/base.common.db.js';
2
+ export * from './commondb/common.db.js';
8
3
  export * from './db.model.js';
9
- export * from './kv/commonKeyValueDao.js';
10
- export * from './kv/commonKeyValueDaoMemoCache.js';
11
- export * from './kv/commonKeyValueDB.js';
12
4
  export * from './model.util.js';
13
- export * from './pipeline/dbPipelineBackup.js';
14
- export * from './pipeline/dbPipelineCopy.js';
15
- export * from './pipeline/dbPipelineRestore.js';
16
5
  export * from './query/dbQuery.js';
17
6
  export * from './transaction/dbTransaction.util.js';
package/dist/index.js CHANGED
@@ -1,17 +1,6 @@
1
- export * from './adapter/inmemory/inMemory.db.js';
2
- export * from './adapter/inmemory/inMemoryKeyValueDB.js';
3
- export * from './adapter/inmemory/queryInMemory.js';
4
- export * from './base.common.db.js';
5
- export * from './common.db.js';
6
- export * from './commondao/common.dao.js';
7
- export * from './commondao/common.dao.model.js';
1
+ export * from './commondb/base.common.db.js';
2
+ export * from './commondb/common.db.js';
8
3
  export * from './db.model.js';
9
- export * from './kv/commonKeyValueDao.js';
10
- export * from './kv/commonKeyValueDaoMemoCache.js';
11
- export * from './kv/commonKeyValueDB.js';
12
4
  export * from './model.util.js';
13
- export * from './pipeline/dbPipelineBackup.js';
14
- export * from './pipeline/dbPipelineCopy.js';
15
- export * from './pipeline/dbPipelineRestore.js';
16
5
  export * from './query/dbQuery.js';
17
6
  export * from './transaction/dbTransaction.util.js';
@@ -1,9 +1,11 @@
1
- import type { AnyObjectWithId, CommonLogger, JsonSchemaObject, JsonSchemaRootObject, ObjectWithId, StringMap } from '@naturalcycles/js-lib';
1
+ import { type JsonSchemaObject, type JsonSchemaRootObject } from '@naturalcycles/js-lib/json-schema';
2
+ import type { CommonLogger } from '@naturalcycles/js-lib/log';
3
+ import { type AnyObjectWithId, type ObjectWithId, type StringMap } from '@naturalcycles/js-lib/types';
2
4
  import { type ReadableTyped } from '@naturalcycles/nodejs-lib/stream';
3
- import type { CommonDB, CommonDBSupport } from '../../common.db.js';
4
- import { CommonDBType } from '../../common.db.js';
5
- import type { CommonDBCreateOptions, CommonDBOptions, CommonDBSaveOptions, CommonDBTransactionOptions, DBOperation, DBTransaction, DBTransactionFn, RunQueryResult } from '../../db.model.js';
6
- import type { DBQuery } from '../../query/dbQuery.js';
5
+ import type { CommonDB, CommonDBSupport } from '../commondb/common.db.js';
6
+ import { CommonDBType } from '../commondb/common.db.js';
7
+ import type { CommonDBCreateOptions, CommonDBOptions, CommonDBSaveOptions, CommonDBTransactionOptions, DBOperation, DBTransaction, DBTransactionFn, RunQueryResult } from '../db.model.js';
8
+ import type { DBQuery } from '../query/dbQuery.js';
7
9
  export interface InMemoryDBCfg {
8
10
  /**
9
11
  * @default ''
@@ -1,9 +1,15 @@
1
1
  import { Readable } from 'node:stream';
2
- import { _assert, _by, _deepCopy, _isEmptyObject, _since, _sortObjectDeep, _stringMapEntries, _stringMapValues, generateJsonSchemaFromData, localTime, pMap, } from '@naturalcycles/js-lib';
2
+ import { _by, _isEmptyObject } from '@naturalcycles/js-lib';
3
+ import { _since, localTime } from '@naturalcycles/js-lib/datetime';
4
+ import { _assert } from '@naturalcycles/js-lib/error';
5
+ import { generateJsonSchemaFromData, } from '@naturalcycles/js-lib/json-schema';
6
+ import { _deepCopy, _sortObjectDeep } from '@naturalcycles/js-lib/object';
7
+ import { pMap } from '@naturalcycles/js-lib/promise';
8
+ import { _stringMapEntries, _stringMapValues, } from '@naturalcycles/js-lib/types';
3
9
  import { dimGrey, yellow } from '@naturalcycles/nodejs-lib/colors';
4
10
  import { fs2 } from '@naturalcycles/nodejs-lib/fs2';
5
11
  import { _pipeline, bufferReviver, createReadStreamAsNDJSON, createWriteStreamAsNDJSON, } from '@naturalcycles/nodejs-lib/stream';
6
- import { commonDBFullSupport, CommonDBType } from '../../common.db.js';
12
+ import { commonDBFullSupport, CommonDBType } from '../commondb/common.db.js';
7
13
  import { queryInMemory } from './queryInMemory.js';
8
14
  export class InMemoryDB {
9
15
  dbType = CommonDBType.document;
@@ -1,7 +1,7 @@
1
- import type { StringMap } from '@naturalcycles/js-lib';
1
+ import type { StringMap } from '@naturalcycles/js-lib/types';
2
2
  import type { ReadableTyped } from '@naturalcycles/nodejs-lib/stream';
3
- import type { CommonDBCreateOptions } from '../../db.model.js';
4
- import type { CommonKeyValueDB, IncrementTuple, KeyValueDBTuple } from '../../kv/commonKeyValueDB.js';
3
+ import type { CommonDBCreateOptions } from '../db.model.js';
4
+ import type { CommonKeyValueDB, IncrementTuple, KeyValueDBTuple } from '../kv/commonKeyValueDB.js';
5
5
  export interface InMemoryKeyValueDBCfg {
6
6
  }
7
7
  export declare class InMemoryKeyValueDB implements CommonKeyValueDB {
@@ -1,5 +1,5 @@
1
1
  import { Readable } from 'node:stream';
2
- import { commonKeyValueDBFullSupport } from '../../kv/commonKeyValueDB.js';
2
+ import { commonKeyValueDBFullSupport } from '../kv/commonKeyValueDB.js';
3
3
  export class InMemoryKeyValueDB {
4
4
  cfg;
5
5
  constructor(cfg = {}) {
@@ -0,0 +1,3 @@
1
+ export * from './inMemory.db.js';
2
+ export * from './inMemoryKeyValueDB.js';
3
+ export * from './queryInMemory.js';
@@ -0,0 +1,3 @@
1
+ export * from './inMemory.db.js';
2
+ export * from './inMemoryKeyValueDB.js';
3
+ export * from './queryInMemory.js';
@@ -0,0 +1,3 @@
1
+ import type { ObjectWithId } from '@naturalcycles/js-lib/types';
2
+ import type { DBQuery } from '../query/dbQuery.js';
3
+ export declare function queryInMemory<ROW extends ObjectWithId>(q: DBQuery<ROW>, rows?: ROW[]): ROW[];
@@ -1,4 +1,4 @@
1
- import { _get, _pick } from '@naturalcycles/js-lib';
1
+ import { _get, _pick } from '@naturalcycles/js-lib/object';
2
2
  const FILTER_FNS = {
3
3
  '==': (v, val) => v === val,
4
4
  '!=': (v, val) => v !== val,
@@ -1,4 +1,4 @@
1
- import type { Integer, UnixTimestamp } from '@naturalcycles/js-lib';
1
+ import type { Integer, UnixTimestamp } from '@naturalcycles/js-lib/types';
2
2
  import type { ReadableTyped } from '@naturalcycles/nodejs-lib/stream';
3
3
  import type { CommonDBCreateOptions } from '../db.model.js';
4
4
  /**
@@ -1,4 +1,5 @@
1
- import type { CommonLogger, KeyValueTuple } from '@naturalcycles/js-lib';
1
+ import type { CommonLogger } from '@naturalcycles/js-lib/log';
2
+ import type { KeyValueTuple } from '@naturalcycles/js-lib/types';
2
3
  import type { ReadableTyped } from '@naturalcycles/nodejs-lib/stream';
3
4
  import type { CommonDaoLogLevel } from '../commondao/common.dao.model.js';
4
5
  import type { CommonDBCreateOptions } from '../db.model.js';
@@ -1,4 +1,5 @@
1
- import { AppError, pMap } from '@naturalcycles/js-lib';
1
+ import { AppError } from '@naturalcycles/js-lib/error';
2
+ import { pMap } from '@naturalcycles/js-lib/promise';
2
3
  import { deflateString, inflateToString } from '@naturalcycles/nodejs-lib/zip';
3
4
  export const commonKeyValueDaoDeflatedJsonTransformer = {
4
5
  valueToBuffer: async (v) => await deflateString(JSON.stringify(v)),
@@ -1,5 +1,6 @@
1
- import type { AsyncMemoCache, NumberOfSeconds } from '@naturalcycles/js-lib';
2
- import { MISS } from '@naturalcycles/js-lib';
1
+ import type { AsyncMemoCache } from '@naturalcycles/js-lib/decorators';
2
+ import type { NumberOfSeconds } from '@naturalcycles/js-lib/types';
3
+ import { MISS } from '@naturalcycles/js-lib/types';
3
4
  import type { CommonKeyValueDao } from './commonKeyValueDao.js';
4
5
  export interface CommonKeyValueDaoMemoCacheCfg<VALUE> {
5
6
  dao: CommonKeyValueDao<string, VALUE>;
@@ -1,4 +1,5 @@
1
- import { localTime, MISS } from '@naturalcycles/js-lib';
1
+ import { localTime } from '@naturalcycles/js-lib/datetime';
2
+ import { MISS } from '@naturalcycles/js-lib/types';
2
3
  /**
3
4
  * AsyncMemoCache implementation, backed by CommonKeyValueDao.
4
5
  *
@@ -0,0 +1,3 @@
1
+ export * from './commonKeyValueDao.js';
2
+ export * from './commonKeyValueDaoMemoCache.js';
3
+ export * from './commonKeyValueDB.js';
@@ -0,0 +1,3 @@
1
+ export * from './commonKeyValueDao.js';
2
+ export * from './commonKeyValueDaoMemoCache.js';
3
+ export * from './commonKeyValueDB.js';
@@ -1,4 +1,4 @@
1
- import type { CreatedUpdated, CreatedUpdatedId } from '@naturalcycles/js-lib';
1
+ import type { CreatedUpdated, CreatedUpdatedId } from '@naturalcycles/js-lib/types';
2
2
  export declare function createdUpdatedFields(existingObject?: Partial<CreatedUpdated> | null): CreatedUpdated;
3
3
  export declare function createdUpdatedIdFields(existingObject?: Partial<CreatedUpdatedId> | null): CreatedUpdatedId;
4
4
  export declare function deserializeJsonField<T = any>(f?: string): T;
@@ -1,4 +1,4 @@
1
- import { localTime } from '@naturalcycles/js-lib';
1
+ import { localTime } from '@naturalcycles/js-lib/datetime';
2
2
  import { stringId } from '@naturalcycles/nodejs-lib';
3
3
  export function createdUpdatedFields(existingObject) {
4
4
  const now = localTime.nowUnix();
@@ -1,8 +1,8 @@
1
- import type { AsyncMapper, StringMap, UnixTimestamp } from '@naturalcycles/js-lib';
2
- import { ErrorMode } from '@naturalcycles/js-lib';
1
+ import { ErrorMode } from '@naturalcycles/js-lib/error';
2
+ import type { AsyncMapper, StringMap, UnixTimestamp } from '@naturalcycles/js-lib/types';
3
3
  import { type TransformLogProgressOptions, type TransformMapOptions } from '@naturalcycles/nodejs-lib/stream';
4
4
  import { NDJsonStats } from '@naturalcycles/nodejs-lib/stream';
5
- import type { CommonDB } from '../common.db.js';
5
+ import type { CommonDB } from '../commondb/common.db.js';
6
6
  import { DBQuery } from '../query/dbQuery.js';
7
7
  export interface DBPipelineBackupOptions extends TransformLogProgressOptions {
8
8
  /**
@@ -1,4 +1,7 @@
1
- import { _passthroughMapper, AppError, ErrorMode, localTime, pMap } from '@naturalcycles/js-lib';
1
+ import { localTime } from '@naturalcycles/js-lib/datetime';
2
+ import { AppError, ErrorMode } from '@naturalcycles/js-lib/error';
3
+ import { pMap } from '@naturalcycles/js-lib/promise';
4
+ import { _passthroughMapper } from '@naturalcycles/js-lib/types';
2
5
  import { boldWhite, dimWhite, grey, yellow } from '@naturalcycles/nodejs-lib/colors';
3
6
  import { fs2 } from '@naturalcycles/nodejs-lib/fs2';
4
7
  import { createWriteStreamAsNDJSON, } from '@naturalcycles/nodejs-lib/stream';
@@ -1,8 +1,8 @@
1
- import type { AsyncMapper, UnixTimestamp } from '@naturalcycles/js-lib';
2
- import { ErrorMode } from '@naturalcycles/js-lib';
1
+ import { ErrorMode } from '@naturalcycles/js-lib/error';
2
+ import type { AsyncMapper, UnixTimestamp } from '@naturalcycles/js-lib/types';
3
3
  import type { TransformLogProgressOptions, TransformMapOptions } from '@naturalcycles/nodejs-lib/stream';
4
4
  import { NDJsonStats } from '@naturalcycles/nodejs-lib/stream';
5
- import type { CommonDB } from '../common.db.js';
5
+ import type { CommonDB } from '../commondb/common.db.js';
6
6
  import type { CommonDBSaveOptions } from '../db.model.js';
7
7
  export interface DBPipelineCopyOptions extends TransformLogProgressOptions {
8
8
  dbInput: CommonDB;
@@ -1,4 +1,7 @@
1
- import { _passthroughMapper, ErrorMode, localTime, pMap } from '@naturalcycles/js-lib';
1
+ import { localTime } from '@naturalcycles/js-lib/datetime';
2
+ import { ErrorMode } from '@naturalcycles/js-lib/error';
3
+ import { pMap } from '@naturalcycles/js-lib/promise';
4
+ import { _passthroughMapper } from '@naturalcycles/js-lib/types';
2
5
  import { boldWhite, dimWhite, grey, yellow } from '@naturalcycles/nodejs-lib/colors';
3
6
  import { _pipeline, NDJsonStats, transformChunk, transformLogProgress, transformMap, transformTap, writableForEach, } from '@naturalcycles/nodejs-lib/stream';
4
7
  import { DBQuery } from '../query/dbQuery.js';
@@ -1,8 +1,8 @@
1
- import type { AsyncMapper, UnixTimestamp } from '@naturalcycles/js-lib';
2
- import { ErrorMode } from '@naturalcycles/js-lib';
1
+ import { ErrorMode } from '@naturalcycles/js-lib/error';
2
+ import type { AsyncMapper, UnixTimestamp } from '@naturalcycles/js-lib/types';
3
3
  import { type TransformLogProgressOptions, type TransformMapOptions } from '@naturalcycles/nodejs-lib/stream';
4
4
  import { NDJsonStats } from '@naturalcycles/nodejs-lib/stream';
5
- import type { CommonDB } from '../common.db.js';
5
+ import type { CommonDB } from '../commondb/common.db.js';
6
6
  import type { CommonDBSaveOptions } from '../db.model.js';
7
7
  export interface DBPipelineRestoreOptions extends TransformLogProgressOptions {
8
8
  /**
@@ -1,4 +1,9 @@
1
- import { _hb, _mapValues, _passthroughMapper, ErrorMode, localTime, pMap, } from '@naturalcycles/js-lib';
1
+ import { _hb } from '@naturalcycles/js-lib';
2
+ import { localTime } from '@naturalcycles/js-lib/datetime';
3
+ import { ErrorMode } from '@naturalcycles/js-lib/error';
4
+ import { _mapValues } from '@naturalcycles/js-lib/object';
5
+ import { pMap } from '@naturalcycles/js-lib/promise';
6
+ import { _passthroughMapper } from '@naturalcycles/js-lib/types';
2
7
  import { boldWhite, dimWhite, grey, yellow } from '@naturalcycles/nodejs-lib/colors';
3
8
  import { fs2 } from '@naturalcycles/nodejs-lib/fs2';
4
9
  import { createReadStreamAsNDJSON, } from '@naturalcycles/nodejs-lib/stream';
@@ -0,0 +1,3 @@
1
+ export * from './dbPipelineBackup.js';
2
+ export * from './dbPipelineCopy.js';
3
+ export * from './dbPipelineRestore.js';
@@ -0,0 +1,3 @@
1
+ export * from './dbPipelineBackup.js';
2
+ export * from './dbPipelineCopy.js';
3
+ export * from './dbPipelineRestore.js';
@@ -1,4 +1,4 @@
1
- import type { AsyncIndexedMapper, BaseDBEntity, ObjectWithId } from '@naturalcycles/js-lib';
1
+ import type { AsyncIndexedMapper, BaseDBEntity, ObjectWithId } from '@naturalcycles/js-lib/types';
2
2
  import type { ReadableTyped } from '@naturalcycles/nodejs-lib/stream';
3
3
  import type { CommonDao } from '../commondao/common.dao.js';
4
4
  import type { CommonDaoOptions, CommonDaoReadOptions, CommonDaoStreamDeleteOptions, CommonDaoStreamForEachOptions, CommonDaoStreamOptions } from '../commondao/common.dao.model.js';
@@ -1,4 +1,5 @@
1
- import { _objectAssign, _truncate } from '@naturalcycles/js-lib';
1
+ import { _truncate } from '@naturalcycles/js-lib/string';
2
+ import { _objectAssign } from '@naturalcycles/js-lib/types';
2
3
  export const dbQueryFilterOperatorValues = [
3
4
  '<',
4
5
  '<=',
@@ -1,4 +1,4 @@
1
- import type { CommonDB } from '../common.db.js';
1
+ import type { CommonDB } from '../commondb/common.db.js';
2
2
  /**
3
3
  * All options default to `false`.
4
4
  */
@@ -1,5 +1,8 @@
1
- import { _deepFreeze, _filterObject, _pick, _sortBy, localTime, pMap } from '@naturalcycles/js-lib';
2
- import { CommonDBType } from '../common.db.js';
1
+ import { _sortBy } from '@naturalcycles/js-lib';
2
+ import { localTime } from '@naturalcycles/js-lib/datetime';
3
+ import { _deepFreeze, _filterObject, _pick } from '@naturalcycles/js-lib/object';
4
+ import { pMap } from '@naturalcycles/js-lib/promise';
5
+ import { CommonDBType } from '../commondb/common.db.js';
3
6
  import { DBQuery } from '../query/dbQuery.js';
4
7
  import { createTestItemDBM, createTestItemsDBM, TEST_TABLE, testItemBMJsonSchema, } from './test.model.js';
5
8
  export async function runCommonDBTest(db, quirks = {}) {
@@ -1,3 +1,3 @@
1
- import type { CommonDB } from '../common.db.js';
1
+ import type { CommonDB } from '../commondb/common.db.js';
2
2
  import type { CommonDBImplementationQuirks } from './commonDBTest.js';
3
3
  export declare function runCommonDaoTest(db: CommonDB, quirks?: CommonDBImplementationQuirks): Promise<void>;
@@ -1,5 +1,7 @@
1
1
  import { Readable } from 'node:stream';
2
- import { _deepCopy, _filterObject, _omit, _pick, _sortBy, localTime } from '@naturalcycles/js-lib';
2
+ import { _sortBy } from '@naturalcycles/js-lib';
3
+ import { localTime } from '@naturalcycles/js-lib/datetime';
4
+ import { _deepCopy, _filterObject, _omit, _pick } from '@naturalcycles/js-lib/object';
3
5
  import { _pipeline } from '@naturalcycles/nodejs-lib/stream';
4
6
  import { CommonDao } from '../commondao/common.dao.js';
5
7
  import { CommonDaoLogLevel } from '../commondao/common.dao.model.js';
@@ -1,4 +1,5 @@
1
- import type { BaseDBEntity, JsonSchemaObject } from '@naturalcycles/js-lib';
1
+ import type { JsonSchemaObject } from '@naturalcycles/js-lib/json-schema';
2
+ import type { BaseDBEntity } from '@naturalcycles/js-lib/types';
2
3
  import { type ObjectSchema } from '@naturalcycles/nodejs-lib/joi';
3
4
  export declare const TEST_TABLE = "TEST_TABLE";
4
5
  export interface TestItemBM extends BaseDBEntity {
@@ -1,4 +1,5 @@
1
- import { _range, jsonSchema } from '@naturalcycles/js-lib';
1
+ import { _range } from '@naturalcycles/js-lib';
2
+ import { jsonSchema } from '@naturalcycles/js-lib/json-schema';
2
3
  import { baseDBEntitySchema, binarySchema, booleanSchema, numberSchema, objectSchema, stringSchema, } from '@naturalcycles/nodejs-lib/joi';
3
4
  const MOCK_TS_2018_06_21 = 1529539200;
4
5
  export const TEST_TABLE = 'TEST_TABLE';