@sprucelabs/data-stores 26.4.89 → 27.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/.spruce/errors/dataStores/databaseNotConnected.schema.js +5 -5
- package/build/.spruce/errors/dataStores/duplicateKey.schema.js +1 -1
- package/build/.spruce/errors/dataStores/duplicateRecord.schema.js +9 -9
- package/build/.spruce/errors/dataStores/failedToLoadStore.schema.js +3 -3
- package/build/.spruce/errors/dataStores/failedToLoadStores.schema.js +5 -3
- package/build/.spruce/errors/dataStores/indexExists.schema.js +5 -5
- package/build/.spruce/errors/dataStores/indexNotFound.schema.js +5 -5
- package/build/.spruce/errors/dataStores/invalidConnectionStringScheme.schema.js +3 -3
- package/build/.spruce/errors/dataStores/invalidDatabaseName.schema.js +3 -3
- package/build/.spruce/errors/dataStores/invalidDbConnectionString.schema.js +1 -1
- package/build/.spruce/errors/dataStores/invalidFakeQueryResponse.schema.js +5 -5
- package/build/.spruce/errors/dataStores/invalidStore.schema copy.js +5 -5
- package/build/.spruce/errors/dataStores/invalidStore.schema.js +1 -1
- package/build/.spruce/errors/dataStores/invalidStoreName.schema.js +5 -5
- package/build/.spruce/errors/dataStores/mongoIdMappingError.schema.js +1 -1
- package/build/.spruce/errors/dataStores/notImplemented.schema.js +1 -1
- package/build/.spruce/errors/dataStores/queryNotFaked.schema.js +5 -5
- package/build/.spruce/errors/dataStores/record-not-found-query.schema.js +1 -1
- package/build/.spruce/errors/dataStores/recordNotFound.schema.js +5 -5
- package/build/.spruce/errors/dataStores/scrambleNotConfigured.schema.js +1 -1
- package/build/.spruce/errors/dataStores/unableToConnectToDb.schema.js +1 -1
- package/build/.spruce/errors/dataStores/unknownDatabaseError.schema.js +3 -3
- package/build/.spruce/errors/dataStores/unknownError.schema.js +1 -1
- package/build/.spruce/errors/dataStores/unknownStoreError.schema.js +5 -5
- package/build/.spruce/errors/errors.types.d.ts +53 -56
- package/build/.spruce/errors/errors.types.js +0 -2
- package/build/.spruce/errors/options.types.d.ts +2 -2
- package/build/.spruce/schemas/fields/fields.types.d.ts +1 -1
- package/build/cursors/BatchArrayCursor.d.ts +2 -2
- package/build/databases/MongoDatabase.js +3 -1
- package/build/databases/NeDbDatabase.js +9 -3
- package/build/databases/mongo.types.d.ts +89 -135
- package/build/databases/mongo.types.js +0 -1
- package/build/errors/SpruceError.d.ts +1 -1
- package/build/errors/SpruceError.js +6 -2
- package/build/errors/failedToLoadStores.builder.js +1 -1
- package/build/errors/mongoIdMappingError.builder.js +0 -2
- package/build/errors/scrambleNotConfigured.builder.js +0 -2
- package/build/esm/.spruce/errors/errors.types.d.ts +53 -56
- package/build/esm/.spruce/errors/errors.types.js +0 -2
- package/build/esm/.spruce/errors/options.types.d.ts +2 -2
- package/build/esm/cursors/BatchArrayCursor.d.ts +2 -2
- package/build/esm/databases/MongoDatabase.js +3 -1
- package/build/esm/databases/NeDbDatabase.js +9 -3
- package/build/esm/databases/mongo.types.d.ts +89 -135
- package/build/esm/databases/mongo.types.js +0 -1
- package/build/esm/errors/SpruceError.d.ts +1 -1
- package/build/esm/errors/SpruceError.js +6 -2
- package/build/esm/errors/failedToLoadStores.builder.js +1 -1
- package/build/esm/errors/mongoIdMappingError.builder.js +0 -2
- package/build/esm/errors/scrambleNotConfigured.builder.js +0 -2
- package/build/esm/loaders/StoreLoader.d.ts +1 -1
- package/build/esm/plugins/DatabaseFieldMapperPlugin.js +3 -1
- package/build/esm/stores/AbstractStore.js +4 -2
- package/build/esm/tests/AbstractDatabaseTest.js +3 -1
- package/build/esm/tests/databaseAssertUtil.js +66 -20
- package/build/esm/types/query.types.d.ts +4 -4
- package/build/esm/types/query.types.js +0 -1
- package/build/loaders/StoreLoader.d.ts +1 -1
- package/build/plugins/DatabaseFieldMapperPlugin.js +3 -1
- package/build/stores/AbstractStore.js +4 -2
- package/build/tests/AbstractDatabaseTest.js +3 -1
- package/build/tests/databaseAssertUtil.js +66 -20
- package/build/types/query.types.d.ts +4 -4
- package/build/types/query.types.js +0 -1
- package/package.json +20 -32
@@ -8,7 +8,7 @@ import { AggregationCursor, Code } from 'mongodb';
|
|
8
8
|
import { ClientSession, MongoClient, MongoError, ReadPreference } from 'mongodb';
|
9
9
|
type Cursor<A = any> = A extends true ? any : any;
|
10
10
|
type CommandCursor = any;
|
11
|
-
type FlattenIfArray<T> = T extends
|
11
|
+
type FlattenIfArray<T> = T extends readonly (infer R)[] ? R : T;
|
12
12
|
export type WithoutProjection<T> = T & {
|
13
13
|
fields?: undefined;
|
14
14
|
projection?: undefined;
|
@@ -103,9 +103,7 @@ export interface MongoClientCommonOption {
|
|
103
103
|
* @param result The result object if the command was executed successfully.
|
104
104
|
* @see https://mongodb.github.io/node-mongodb-native/3.6/api/Admin.html#~resultCallback
|
105
105
|
*/
|
106
|
-
export
|
107
|
-
(error: MongoError, result: T): void;
|
108
|
-
}
|
106
|
+
export type MongoCallback<T> = (error: MongoError, result: T) => void;
|
109
107
|
/**
|
110
108
|
* A user provided function to be run within a transaction
|
111
109
|
*
|
@@ -127,7 +125,7 @@ export interface MongoClientOptions extends DbCreateOptions, ServerOptions, Mong
|
|
127
125
|
/**
|
128
126
|
* Custom logger object
|
129
127
|
*/
|
130
|
-
logger?: object |
|
128
|
+
logger?: object | Log | undefined;
|
131
129
|
/**
|
132
130
|
* Validate MongoClient passed in options for correctness
|
133
131
|
* @default false
|
@@ -171,7 +169,7 @@ export interface MongoClientOptions extends DbCreateOptions, ServerOptions, Mong
|
|
171
169
|
/** Type of compression to use */
|
172
170
|
compression?: {
|
173
171
|
/** The selected compressors in preference order */
|
174
|
-
compressors?:
|
172
|
+
compressors?: ('snappy' | 'zlib')[] | undefined;
|
175
173
|
} | undefined;
|
176
174
|
/**
|
177
175
|
* Enable directConnection
|
@@ -328,11 +326,11 @@ export interface SSLOptions {
|
|
328
326
|
/**
|
329
327
|
* Array of valid certificates either as Buffers or Strings
|
330
328
|
*/
|
331
|
-
sslCA?:
|
329
|
+
sslCA?: readonly (Buffer | string)[] | undefined;
|
332
330
|
/**
|
333
331
|
* SSL Certificate revocation list binary buffer
|
334
332
|
*/
|
335
|
-
sslCRL?:
|
333
|
+
sslCRL?: readonly (Buffer | string)[] | undefined;
|
336
334
|
/**
|
337
335
|
* SSL Certificate binary buffer
|
338
336
|
*/
|
@@ -411,10 +409,10 @@ export interface HighAvailabilityOptions {
|
|
411
409
|
*/
|
412
410
|
readPreferenceTags?: ReadPreferenceTags | undefined;
|
413
411
|
}
|
414
|
-
export type ReadPreferenceTags =
|
412
|
+
export type ReadPreferenceTags = readonly Record<string, string>[];
|
415
413
|
export type ReadPreferenceMode = 'primary' | 'primaryPreferred' | 'secondary' | 'secondaryPreferred' | 'nearest';
|
416
414
|
export type ReadPreferenceOrMode = ReadPreference | ReadPreferenceMode;
|
417
|
-
export
|
415
|
+
export interface ReadPreferenceOptions {
|
418
416
|
/** Server mode in which the same query is dispatched in parallel to multiple replica set members. */
|
419
417
|
hedge?: {
|
420
418
|
/** Explicitly enable or disable hedged reads. */
|
@@ -424,7 +422,7 @@ export type ReadPreferenceOptions = {
|
|
424
422
|
* Max secondary read staleness in seconds, Minimum value is 90 seconds.
|
425
423
|
*/
|
426
424
|
maxStalenessSeconds?: number | undefined;
|
427
|
-
}
|
425
|
+
}
|
428
426
|
/**
|
429
427
|
* Optional settings for creating a new Db instance
|
430
428
|
*
|
@@ -984,9 +982,7 @@ export type WithId<TSchema> = EnhancedOmit<TSchema, '_id'> & {
|
|
984
982
|
*
|
985
983
|
* @see https://mongodb.github.io/node-mongodb-native/3.6/api/Collection.html
|
986
984
|
*/
|
987
|
-
export interface Collection<TSchema extends {
|
988
|
-
[key: string]: any;
|
989
|
-
} = DefaultSchema> {
|
985
|
+
export interface Collection<TSchema extends Record<string, any> = DefaultSchema> {
|
990
986
|
/**
|
991
987
|
* Get the collection name.
|
992
988
|
*/
|
@@ -1029,9 +1025,9 @@ export interface Collection<TSchema extends {
|
|
1029
1025
|
* @param callback The command result callback
|
1030
1026
|
* @see https://mongodb.github.io/node-mongodb-native/3.6/api/Collection.html#bulkWrite
|
1031
1027
|
*/
|
1032
|
-
bulkWrite(operations:
|
1033
|
-
bulkWrite(operations:
|
1034
|
-
bulkWrite(operations:
|
1028
|
+
bulkWrite(operations: BulkWriteOperation<TSchema>[], callback: MongoCallback<BulkWriteOpResultObject>): void;
|
1029
|
+
bulkWrite(operations: BulkWriteOperation<TSchema>[], options?: CollectionBulkWriteOptions): Promise<BulkWriteOpResultObject>;
|
1030
|
+
bulkWrite(operations: BulkWriteOperation<TSchema>[], options: CollectionBulkWriteOptions, callback: MongoCallback<BulkWriteOpResultObject>): void;
|
1035
1031
|
/**
|
1036
1032
|
* An estimated count of matching documents in the db to a query.
|
1037
1033
|
*
|
@@ -1129,10 +1125,10 @@ export interface Collection<TSchema extends {
|
|
1129
1125
|
* @returns Promise if no callback is passed
|
1130
1126
|
* @see https://mongodb.github.io/node-mongodb-native/3.6/api/Collection.html#distinct
|
1131
1127
|
*/
|
1132
|
-
distinct<Key extends keyof WithId<TSchema>>(key: Key, callback: MongoCallback<
|
1133
|
-
distinct<Key extends keyof WithId<TSchema>>(key: Key, query: FilterQuery<TSchema>, callback: MongoCallback<
|
1134
|
-
distinct<Key extends keyof WithId<TSchema>>(key: Key, query?: FilterQuery<TSchema>, options?: MongoDistinctPreferences): Promise<
|
1135
|
-
distinct<Key extends keyof WithId<TSchema>>(key: Key, query: FilterQuery<TSchema>, options: MongoDistinctPreferences, callback: MongoCallback<
|
1128
|
+
distinct<Key extends keyof WithId<TSchema>>(key: Key, callback: MongoCallback<FlattenIfArray<WithId<Required<TSchema>>[Key]>[]>): void;
|
1129
|
+
distinct<Key extends keyof WithId<TSchema>>(key: Key, query: FilterQuery<TSchema>, callback: MongoCallback<FlattenIfArray<WithId<Required<TSchema>>[Key]>[]>): void;
|
1130
|
+
distinct<Key extends keyof WithId<TSchema>>(key: Key, query?: FilterQuery<TSchema>, options?: MongoDistinctPreferences): Promise<FlattenIfArray<WithId<Required<TSchema>>[Key]>[]>;
|
1131
|
+
distinct<Key extends keyof WithId<TSchema>>(key: Key, query: FilterQuery<TSchema>, options: MongoDistinctPreferences, callback: MongoCallback<FlattenIfArray<WithId<Required<TSchema>>[Key]>[]>): void;
|
1136
1132
|
distinct(key: string, callback: MongoCallback<any[]>): void;
|
1137
1133
|
distinct(key: string, query: FilterQuery<TSchema>, callback: MongoCallback<any[]>): void;
|
1138
1134
|
distinct(key: string, query?: FilterQuery<TSchema>, options?: MongoDistinctPreferences): Promise<any[]>;
|
@@ -1385,9 +1381,9 @@ export interface Collection<TSchema extends {
|
|
1385
1381
|
* @returns Promise if no callback is passed
|
1386
1382
|
* @see https://mongodb.github.io/node-mongodb-native/3.6/api/Collection.html#insertMany
|
1387
1383
|
*/
|
1388
|
-
insertMany(docs:
|
1389
|
-
insertMany(docs:
|
1390
|
-
insertMany(docs:
|
1384
|
+
insertMany(docs: OptionalId<TSchema>[], callback: MongoCallback<InsertWriteOpResult<WithId<TSchema>>>): void;
|
1385
|
+
insertMany(docs: OptionalId<TSchema>[], options?: CollectionInsertManyOptions): Promise<InsertWriteOpResult<WithId<TSchema>>>;
|
1386
|
+
insertMany(docs: OptionalId<TSchema>[], options: CollectionInsertManyOptions, callback: MongoCallback<InsertWriteOpResult<WithId<TSchema>>>): void;
|
1391
1387
|
/**
|
1392
1388
|
* Inserts a single document into MongoDB. If documents passed in do not contain the **_id** field,
|
1393
1389
|
* one will be added to each of the documents missing it by the driver, mutating the document. This behavior
|
@@ -1465,9 +1461,9 @@ export interface Collection<TSchema extends {
|
|
1465
1461
|
* @returns Promise if no callback is passed
|
1466
1462
|
* @see https://mongodb.github.io/node-mongodb-native/3.6/api/Collection.html#parallelCollectionScan
|
1467
1463
|
*/
|
1468
|
-
parallelCollectionScan(callback: MongoCallback<
|
1469
|
-
parallelCollectionScan(options?: ParallelCollectionScanOptions): Promise<
|
1470
|
-
parallelCollectionScan(options: ParallelCollectionScanOptions, callback: MongoCallback<
|
1464
|
+
parallelCollectionScan(callback: MongoCallback<Cursor<any>[]>): void;
|
1465
|
+
parallelCollectionScan(options?: ParallelCollectionScanOptions): Promise<Cursor<any>[]>;
|
1466
|
+
parallelCollectionScan(options: ParallelCollectionScanOptions, callback: MongoCallback<Cursor<any>[]>): void;
|
1471
1467
|
/**
|
1472
1468
|
* Reindex all indexes on the collection
|
1473
1469
|
* Warning: reIndex is a blocking operation (indexes are rebuilt in the foreground) and will be slow for large collections.
|
@@ -1623,15 +1619,13 @@ type AcceptedFields<TSchema, FieldType, AssignableType> = {
|
|
1623
1619
|
type NotAcceptedFields<TSchema, FieldType> = {
|
1624
1620
|
readonly [key in KeysOfOtherType<TSchema, FieldType>]?: never;
|
1625
1621
|
};
|
1626
|
-
type DotAndArrayNotation<AssignableType> =
|
1627
|
-
readonly [key: string]: AssignableType;
|
1628
|
-
};
|
1622
|
+
type DotAndArrayNotation<AssignableType> = Readonly<Record<string, AssignableType>>;
|
1629
1623
|
type ReadonlyPartial<TSchema> = {
|
1630
1624
|
readonly [key in keyof TSchema]?: TSchema[key];
|
1631
1625
|
};
|
1632
1626
|
export type OnlyFieldsOfType<TSchema, FieldType = any, AssignableType = FieldType> = AcceptedFields<TSchema, FieldType, AssignableType> & NotAcceptedFields<TSchema, FieldType> & DotAndArrayNotation<AssignableType>;
|
1633
1627
|
export type MatchKeysAndValues<TSchema> = ReadonlyPartial<TSchema> & DotAndArrayNotation<any>;
|
1634
|
-
type Unpacked<Type> = Type extends
|
1628
|
+
type Unpacked<Type> = Type extends readonly (infer Element)[] ? Element : Type;
|
1635
1629
|
type UpdateOptionalId<T> = T extends {
|
1636
1630
|
_id?: any;
|
1637
1631
|
} ? OptionalId<T> : T;
|
@@ -1649,41 +1643,31 @@ export type MetaProjectionOperators = MetaSortOperators
|
|
1649
1643
|
| 'searchHighlights';
|
1650
1644
|
export type SchemaMember<T, V> = {
|
1651
1645
|
[P in keyof T]?: V;
|
1652
|
-
} |
|
1653
|
-
[key: string]: V;
|
1654
|
-
};
|
1646
|
+
} | Record<string, V>;
|
1655
1647
|
export type SortOptionObject<T> = SchemaMember<T, number | {
|
1656
1648
|
$meta?: MetaSortOperators | undefined;
|
1657
1649
|
}>;
|
1658
|
-
export
|
1650
|
+
export interface AddToSetOperators<Type> {
|
1659
1651
|
$each: Type;
|
1660
|
-
}
|
1661
|
-
export
|
1652
|
+
}
|
1653
|
+
export interface ArrayOperator<Type> {
|
1662
1654
|
$each: Type;
|
1663
1655
|
$slice?: number | undefined;
|
1664
1656
|
$position?: number | undefined;
|
1665
1657
|
$sort?: SortValues | Record<string, SortValues> | undefined;
|
1666
|
-
}
|
1658
|
+
}
|
1667
1659
|
export type SetFields<TSchema> = ({
|
1668
|
-
readonly [key in KeysOfAType<TSchema,
|
1669
|
-
} & NotAcceptedFields<TSchema,
|
1670
|
-
readonly [key: string]: AddToSetOperators<any> | any;
|
1671
|
-
};
|
1660
|
+
readonly [key in KeysOfAType<TSchema, readonly any[] | undefined>]?: UpdateOptionalId<Unpacked<TSchema[key]>> | AddToSetOperators<UpdateOptionalId<Unpacked<TSchema[key]>>[]>;
|
1661
|
+
} & NotAcceptedFields<TSchema, readonly any[] | undefined>) & Readonly<Record<string, AddToSetOperators<any> | any>>;
|
1672
1662
|
export type PushOperator<TSchema> = ({
|
1673
|
-
readonly [key in KeysOfAType<TSchema,
|
1674
|
-
} & NotAcceptedFields<TSchema,
|
1675
|
-
readonly [key: string]: ArrayOperator<any> | any;
|
1676
|
-
};
|
1663
|
+
readonly [key in KeysOfAType<TSchema, readonly any[]>]?: Unpacked<TSchema[key]> | ArrayOperator<Unpacked<TSchema[key]>[]>;
|
1664
|
+
} & NotAcceptedFields<TSchema, readonly any[]>) & Readonly<Record<string, ArrayOperator<any> | any>>;
|
1677
1665
|
export type PullOperator<TSchema> = ({
|
1678
|
-
readonly [key in KeysOfAType<TSchema,
|
1679
|
-
} & NotAcceptedFields<TSchema,
|
1680
|
-
readonly [key: string]: QuerySelector<any> | any;
|
1681
|
-
};
|
1666
|
+
readonly [key in KeysOfAType<TSchema, readonly any[]>]?: Partial<Unpacked<TSchema[key]>> | ObjectQuerySelector<Unpacked<TSchema[key]>>;
|
1667
|
+
} & NotAcceptedFields<TSchema, readonly any[]>) & Readonly<Record<string, QuerySelector<any> | any>>;
|
1682
1668
|
export type PullAllOperator<TSchema> = ({
|
1683
|
-
readonly [key in KeysOfAType<TSchema,
|
1684
|
-
} & NotAcceptedFields<TSchema,
|
1685
|
-
readonly [key: string]: any[];
|
1686
|
-
};
|
1669
|
+
readonly [key in KeysOfAType<TSchema, readonly any[]>]?: TSchema[key];
|
1670
|
+
} & NotAcceptedFields<TSchema, readonly any[]>) & Readonly<Record<string, any[]>>;
|
1687
1671
|
/**
|
1688
1672
|
* Modifiers to use in update operations
|
1689
1673
|
* @see https://docs.mongodb.com/v3.6/reference/operator/update
|
@@ -1709,7 +1693,7 @@ export type PullAllOperator<TSchema> = ({
|
|
1709
1693
|
* @see https://docs.mongodb.com/v3.6/reference/operator/update-bitwise/
|
1710
1694
|
*
|
1711
1695
|
*/
|
1712
|
-
export
|
1696
|
+
export interface UpdateQuery<TSchema> {
|
1713
1697
|
$currentDate?: OnlyFieldsOfType<TSchema, Date | Timestamp, true | {
|
1714
1698
|
$type: 'date' | 'timestamp';
|
1715
1699
|
}> | undefined;
|
@@ -1717,23 +1701,19 @@ export type UpdateQuery<TSchema> = {
|
|
1717
1701
|
$min?: MatchKeysAndValues<TSchema> | undefined;
|
1718
1702
|
$max?: MatchKeysAndValues<TSchema> | undefined;
|
1719
1703
|
$mul?: OnlyFieldsOfType<TSchema, NumericTypes | undefined> | undefined;
|
1720
|
-
$rename?:
|
1721
|
-
[key: string]: string;
|
1722
|
-
} | undefined;
|
1704
|
+
$rename?: Record<string, string> | undefined;
|
1723
1705
|
$set?: MatchKeysAndValues<TSchema> | undefined;
|
1724
1706
|
$setOnInsert?: MatchKeysAndValues<TSchema> | undefined;
|
1725
1707
|
$unset?: OnlyFieldsOfType<TSchema, any, '' | 1 | true> | undefined;
|
1726
1708
|
$addToSet?: SetFields<TSchema> | undefined;
|
1727
|
-
$pop?: OnlyFieldsOfType<TSchema,
|
1709
|
+
$pop?: OnlyFieldsOfType<TSchema, readonly any[], 1 | -1> | undefined;
|
1728
1710
|
$pull?: PullOperator<TSchema> | undefined;
|
1729
1711
|
$push?: PushOperator<TSchema> | undefined;
|
1730
1712
|
$pullAll?: PullAllOperator<TSchema> | undefined;
|
1731
|
-
$bit?: {
|
1732
|
-
[key
|
1733
|
-
|
1734
|
-
|
1735
|
-
} | undefined;
|
1736
|
-
};
|
1713
|
+
$bit?: Record<string, {
|
1714
|
+
[key in 'and' | 'or' | 'xor']?: number;
|
1715
|
+
}> | undefined;
|
1716
|
+
}
|
1737
1717
|
/**
|
1738
1718
|
* Available BSON types
|
1739
1719
|
*
|
@@ -1769,7 +1749,7 @@ type BSONTypeAlias = 'number' | 'double' | 'string' | 'object' | 'array' | 'binD
|
|
1769
1749
|
/** @see https://docs.mongodb.com/v3.6/reference/operator/query-bitwise */
|
1770
1750
|
type BitwiseQuery = number /** <numeric bitmask> */ | Binary /** <BinData bitmask> */ | number[]; /** [ <position1>, <position2>, ... ] */
|
1771
1751
|
type RegExpForString<T> = T extends string ? RegExp | T : T;
|
1772
|
-
type MongoAltQuery<T> = T extends
|
1752
|
+
type MongoAltQuery<T> = T extends readonly (infer U)[] ? T | RegExpForString<U> : RegExpForString<T>;
|
1773
1753
|
/**
|
1774
1754
|
* Available query selector types
|
1775
1755
|
*
|
@@ -1820,7 +1800,7 @@ type MongoAltQuery<T> = T extends ReadonlyArray<infer U> ? T | RegExpForString<U
|
|
1820
1800
|
*
|
1821
1801
|
* @see https://docs.mongodb.com/v3.6/reference/operator/query/#query-selectors
|
1822
1802
|
*/
|
1823
|
-
export
|
1803
|
+
export interface QuerySelector<T> {
|
1824
1804
|
$eq?: T | undefined;
|
1825
1805
|
$gt?: T | undefined;
|
1826
1806
|
$gte?: T | undefined;
|
@@ -1848,21 +1828,21 @@ export type QuerySelector<T> = {
|
|
1848
1828
|
$near?: object | undefined;
|
1849
1829
|
$nearSphere?: object | undefined;
|
1850
1830
|
$maxDistance?: number | undefined;
|
1851
|
-
$all?: T extends
|
1852
|
-
$elemMatch?: T extends
|
1853
|
-
$size?: T extends
|
1831
|
+
$all?: T extends readonly (infer U)[] ? U[] : never | undefined;
|
1832
|
+
$elemMatch?: T extends readonly (infer U)[] ? U : never | undefined;
|
1833
|
+
$size?: T extends readonly (infer U)[] ? U : never | undefined;
|
1854
1834
|
$bitsAllClear?: BitwiseQuery | undefined;
|
1855
1835
|
$bitsAllSet?: BitwiseQuery | undefined;
|
1856
1836
|
$bitsAnyClear?: BitwiseQuery | undefined;
|
1857
1837
|
$bitsAnySet?: BitwiseQuery | undefined;
|
1858
|
-
}
|
1859
|
-
export
|
1838
|
+
}
|
1839
|
+
export interface RootQuerySelector<T> {
|
1860
1840
|
/** @see https://docs.mongodb.com/v3.6/reference/operator/query/and/#op._S_and */
|
1861
|
-
$and?:
|
1841
|
+
$and?: FilterQuery<T>[] | undefined;
|
1862
1842
|
/** @see https://docs.mongodb.com/v3.6/reference/operator/query/nor/#op._S_nor */
|
1863
|
-
$nor?:
|
1843
|
+
$nor?: FilterQuery<T>[] | undefined;
|
1864
1844
|
/** @see https://docs.mongodb.com/v3.6/reference/operator/query/or/#op._S_or */
|
1865
|
-
$or?:
|
1845
|
+
$or?: FilterQuery<T>[] | undefined;
|
1866
1846
|
/** @see https://docs.mongodb.com/v3.6/reference/operator/query/text */
|
1867
1847
|
$text?: {
|
1868
1848
|
$search: string;
|
@@ -1875,7 +1855,7 @@ export type RootQuerySelector<T> = {
|
|
1875
1855
|
/** @see https://docs.mongodb.com/v3.6/reference/operator/query/comment/#op._S_comment */
|
1876
1856
|
$comment?: string | undefined;
|
1877
1857
|
[key: string]: any;
|
1878
|
-
}
|
1858
|
+
}
|
1879
1859
|
export type ObjectQuerySelector<T> = T extends object ? {
|
1880
1860
|
[key in keyof T]?: QuerySelector<T[key]>;
|
1881
1861
|
} : QuerySelector<T>;
|
@@ -1884,12 +1864,12 @@ export type FilterQuery<T> = {
|
|
1884
1864
|
[P in keyof T]?: Condition<T[P]>;
|
1885
1865
|
} & RootQuerySelector<T>;
|
1886
1866
|
/** @see https://docs.mongodb.com/v3.6/reference/method/db.collection.bulkWrite/#insertone */
|
1887
|
-
export
|
1867
|
+
export interface BulkWriteInsertOneOperation<TSchema> {
|
1888
1868
|
insertOne: {
|
1889
1869
|
/** @ts-ignore */
|
1890
1870
|
document: OptionalId<TSchema>;
|
1891
1871
|
};
|
1892
|
-
}
|
1872
|
+
}
|
1893
1873
|
/**
|
1894
1874
|
* Options for the updateOne and updateMany operations
|
1895
1875
|
*
|
@@ -1902,19 +1882,19 @@ export type BulkWriteInsertOneOperation<TSchema> = {
|
|
1902
1882
|
* For more details see {@link https://docs.mongodb.com/v3.6/reference/method/db.collection.update/#upsert-behavior upsert behavior}
|
1903
1883
|
* @see https://docs.mongodb.com/v3.6/reference/method/db.collection.bulkWrite/#updateone-and-updatemany
|
1904
1884
|
*/
|
1905
|
-
export
|
1885
|
+
export interface BulkWriteUpdateOperation<TSchema> {
|
1906
1886
|
arrayFilters?: object[] | undefined;
|
1907
1887
|
collation?: object | undefined;
|
1908
1888
|
filter: FilterQuery<TSchema>;
|
1909
1889
|
update: UpdateQuery<TSchema>;
|
1910
1890
|
upsert?: boolean | undefined;
|
1911
|
-
}
|
1912
|
-
export
|
1891
|
+
}
|
1892
|
+
export interface BulkWriteUpdateOneOperation<TSchema> {
|
1913
1893
|
updateOne: BulkWriteUpdateOperation<TSchema>;
|
1914
|
-
}
|
1915
|
-
export
|
1894
|
+
}
|
1895
|
+
export interface BulkWriteUpdateManyOperation<TSchema> {
|
1916
1896
|
updateMany: BulkWriteUpdateOperation<TSchema>;
|
1917
|
-
}
|
1897
|
+
}
|
1918
1898
|
/**
|
1919
1899
|
* Options for the replaceOne operation
|
1920
1900
|
*
|
@@ -1927,14 +1907,14 @@ export type BulkWriteUpdateManyOperation<TSchema> = {
|
|
1927
1907
|
* For more details see {@link https://docs.mongodb.com/v3.6/reference/method/db.collection.update/#upsert-behavior upsert behavior}
|
1928
1908
|
* @see https://docs.mongodb.com/v3.6/reference/method/db.collection.bulkWrite/#replaceone
|
1929
1909
|
*/
|
1930
|
-
export
|
1910
|
+
export interface BulkWriteReplaceOneOperation<TSchema> {
|
1931
1911
|
replaceOne: {
|
1932
1912
|
collation?: object | undefined;
|
1933
1913
|
filter: FilterQuery<TSchema>;
|
1934
1914
|
replacement: TSchema;
|
1935
1915
|
upsert?: boolean | undefined;
|
1936
1916
|
};
|
1937
|
-
}
|
1917
|
+
}
|
1938
1918
|
/**
|
1939
1919
|
* Options for the deleteOne and deleteMany operations
|
1940
1920
|
*
|
@@ -1942,16 +1922,16 @@ export type BulkWriteReplaceOneOperation<TSchema> = {
|
|
1942
1922
|
* @param filter Specifies deletion criteria using {@link https://docs.mongodb.com/v3.6/reference/operator/ query operators}.
|
1943
1923
|
* @see https://docs.mongodb.com/v3.6/reference/method/db.collection.bulkWrite/#deleteone-and-deletemany
|
1944
1924
|
*/
|
1945
|
-
export
|
1925
|
+
export interface BulkWriteDeleteOperation<TSchema> {
|
1946
1926
|
collation?: object | undefined;
|
1947
1927
|
filter: FilterQuery<TSchema>;
|
1948
|
-
}
|
1949
|
-
export
|
1928
|
+
}
|
1929
|
+
export interface BulkWriteDeleteOneOperation<TSchema> {
|
1950
1930
|
deleteOne: BulkWriteDeleteOperation<TSchema>;
|
1951
|
-
}
|
1952
|
-
export
|
1931
|
+
}
|
1932
|
+
export interface BulkWriteDeleteManyOperation<TSchema> {
|
1953
1933
|
deleteMany: BulkWriteDeleteOperation<TSchema>;
|
1954
|
-
}
|
1934
|
+
}
|
1955
1935
|
/**
|
1956
1936
|
* Possible operations with the Collection.bulkWrite method
|
1957
1937
|
*
|
@@ -2264,12 +2244,8 @@ export interface BulkWriteOpResultObject {
|
|
2264
2244
|
modifiedCount?: number | undefined;
|
2265
2245
|
deletedCount?: number | undefined;
|
2266
2246
|
upsertedCount?: number | undefined;
|
2267
|
-
insertedIds?:
|
2268
|
-
|
2269
|
-
} | undefined;
|
2270
|
-
upsertedIds?: {
|
2271
|
-
[index: number]: any;
|
2272
|
-
} | undefined;
|
2247
|
+
insertedIds?: Record<number, any> | undefined;
|
2248
|
+
upsertedIds?: Record<number, any> | undefined;
|
2273
2249
|
result?: any;
|
2274
2250
|
}
|
2275
2251
|
/**
|
@@ -2686,7 +2662,7 @@ export interface UnorderedBulkOperation {
|
|
2686
2662
|
*/
|
2687
2663
|
export interface FindOneOptions<T> {
|
2688
2664
|
limit?: number | undefined;
|
2689
|
-
sort?:
|
2665
|
+
sort?: [string, number][] | SortOptionObject<T> | undefined;
|
2690
2666
|
projection?: SchemaMember<T, ProjectionOperators | number | boolean | any> | undefined;
|
2691
2667
|
/**
|
2692
2668
|
* @deprecated Use options.projection instead
|
@@ -2747,9 +2723,7 @@ export interface InsertWriteOpResult<TSchema extends {
|
|
2747
2723
|
}> {
|
2748
2724
|
insertedCount: number;
|
2749
2725
|
ops: TSchema[];
|
2750
|
-
insertedIds:
|
2751
|
-
[key: number]: TSchema['_id'];
|
2752
|
-
};
|
2726
|
+
insertedIds: Record<number, TSchema['_id']>;
|
2753
2727
|
connection: any;
|
2754
2728
|
result: {
|
2755
2729
|
ok: number;
|
@@ -2894,18 +2868,14 @@ export interface CursorCommentOptions {
|
|
2894
2868
|
* @param doc An emitted document for the iterator
|
2895
2869
|
* @see https://mongodb.github.io/node-mongodb-native/3.6/api/Cursor.html#~iteratorCallback
|
2896
2870
|
*/
|
2897
|
-
export
|
2898
|
-
(doc: T): void;
|
2899
|
-
}
|
2871
|
+
export type IteratorCallback<T> = (doc: T) => void;
|
2900
2872
|
/**
|
2901
2873
|
* The callback error format for the forEach iterator method
|
2902
2874
|
*
|
2903
2875
|
* @param error An error instance representing the error during the execution.
|
2904
2876
|
* @see https://mongodb.github.io/node-mongodb-native/3.6/api/Cursor.html#~endCallback
|
2905
2877
|
*/
|
2906
|
-
export
|
2907
|
-
(error: MongoError): void;
|
2908
|
-
}
|
2878
|
+
export type EndCallback = (error: MongoError) => void;
|
2909
2879
|
/**
|
2910
2880
|
* Returning object for the AggregationCursor result callback
|
2911
2881
|
*
|
@@ -2992,9 +2962,7 @@ export interface GridFSBucketWriteStreamOptions extends WriteConcern {
|
|
2992
2962
|
disableMD5?: boolean | undefined;
|
2993
2963
|
}
|
2994
2964
|
export type ChangeEventTypes = 'insert' | 'delete' | 'replace' | 'update' | 'drop' | 'rename' | 'dropDatabase' | 'invalidate';
|
2995
|
-
export interface ChangeEventBase<TSchema extends {
|
2996
|
-
[key: string]: any;
|
2997
|
-
} = DefaultSchema> {
|
2965
|
+
export interface ChangeEventBase<TSchema extends Record<string, any> = DefaultSchema> {
|
2998
2966
|
_id: ResumeToken;
|
2999
2967
|
/**
|
3000
2968
|
* We leave this off the base type so that we can differentiate
|
@@ -3011,21 +2979,15 @@ export interface ChangeEventBase<TSchema extends {
|
|
3011
2979
|
uid: any;
|
3012
2980
|
} | undefined;
|
3013
2981
|
}
|
3014
|
-
export interface ChangeEventCR<TSchema extends {
|
3015
|
-
[key: string]: any;
|
3016
|
-
} = DefaultSchema> extends ChangeEventBase<TSchema> {
|
2982
|
+
export interface ChangeEventCR<TSchema extends Record<string, any> = DefaultSchema> extends ChangeEventBase<TSchema> {
|
3017
2983
|
operationType: 'insert' | 'replace';
|
3018
2984
|
fullDocument?: TSchema | undefined;
|
3019
2985
|
documentKey: {
|
3020
2986
|
_id: ExtractIdType<TSchema>;
|
3021
2987
|
};
|
3022
2988
|
}
|
3023
|
-
type FieldUpdates<TSchema> = Partial<TSchema> &
|
3024
|
-
|
3025
|
-
};
|
3026
|
-
export interface ChangeEventUpdate<TSchema extends {
|
3027
|
-
[key: string]: any;
|
3028
|
-
} = DefaultSchema> extends ChangeEventBase<TSchema> {
|
2989
|
+
type FieldUpdates<TSchema> = Partial<TSchema> & Record<string, any>;
|
2990
|
+
export interface ChangeEventUpdate<TSchema extends Record<string, any> = DefaultSchema> extends ChangeEventBase<TSchema> {
|
3029
2991
|
operationType: 'update';
|
3030
2992
|
updateDescription: {
|
3031
2993
|
/**
|
@@ -3033,38 +2995,30 @@ export interface ChangeEventUpdate<TSchema extends {
|
|
3033
2995
|
* the keys will be paths, e.g. 'question.answer.0.text': 'new text'
|
3034
2996
|
*/
|
3035
2997
|
updatedFields: FieldUpdates<TSchema>;
|
3036
|
-
removedFields:
|
2998
|
+
removedFields: (keyof TSchema | string)[];
|
3037
2999
|
};
|
3038
3000
|
fullDocument?: TSchema | undefined;
|
3039
3001
|
documentKey: {
|
3040
3002
|
_id: ExtractIdType<TSchema>;
|
3041
3003
|
};
|
3042
3004
|
}
|
3043
|
-
export interface ChangeEventDelete<TSchema extends {
|
3044
|
-
[key: string]: any;
|
3045
|
-
} = DefaultSchema> extends ChangeEventBase<TSchema> {
|
3005
|
+
export interface ChangeEventDelete<TSchema extends Record<string, any> = DefaultSchema> extends ChangeEventBase<TSchema> {
|
3046
3006
|
operationType: 'delete';
|
3047
3007
|
documentKey: {
|
3048
3008
|
_id: ExtractIdType<TSchema>;
|
3049
3009
|
};
|
3050
3010
|
}
|
3051
|
-
export interface ChangeEventRename<TSchema extends {
|
3052
|
-
[key: string]: any;
|
3053
|
-
} = DefaultSchema> extends ChangeEventBase<TSchema> {
|
3011
|
+
export interface ChangeEventRename<TSchema extends Record<string, any> = DefaultSchema> extends ChangeEventBase<TSchema> {
|
3054
3012
|
operationType: 'rename';
|
3055
3013
|
to: {
|
3056
3014
|
db: string;
|
3057
3015
|
coll: string;
|
3058
3016
|
};
|
3059
3017
|
}
|
3060
|
-
export interface ChangeEventOther<TSchema extends {
|
3061
|
-
[key: string]: any;
|
3062
|
-
} = DefaultSchema> extends ChangeEventBase<TSchema> {
|
3018
|
+
export interface ChangeEventOther<TSchema extends Record<string, any> = DefaultSchema> extends ChangeEventBase<TSchema> {
|
3063
3019
|
operationType: 'drop' | 'dropDatabase';
|
3064
3020
|
}
|
3065
|
-
export interface ChangeEventInvalidate<TSchema extends {
|
3066
|
-
[key: string]: any;
|
3067
|
-
} = DefaultSchema> {
|
3021
|
+
export interface ChangeEventInvalidate<TSchema extends Record<string, any> = DefaultSchema> {
|
3068
3022
|
_id: ResumeToken;
|
3069
3023
|
operationType: 'invalidate';
|
3070
3024
|
clusterTime: Timestamp;
|
@@ -3097,9 +3051,9 @@ export interface LoggerOptions {
|
|
3097
3051
|
/**
|
3098
3052
|
* Override default global log level.
|
3099
3053
|
*/
|
3100
|
-
logger?:
|
3054
|
+
logger?: Log | undefined;
|
3101
3055
|
}
|
3102
|
-
export type
|
3056
|
+
export type Log = (message?: string, state?: LoggerState) => void;
|
3103
3057
|
export interface LoggerState {
|
3104
3058
|
type: string;
|
3105
3059
|
message: string;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import AbstractSpruceError from '@sprucelabs/error';
|
2
|
-
import ErrorOptions from
|
2
|
+
import ErrorOptions from './../.spruce/errors/options.types';
|
3
3
|
export default class SpruceError extends AbstractSpruceError<ErrorOptions> {
|
4
4
|
friendlyMessage(): string;
|
5
5
|
}
|
@@ -54,13 +54,17 @@ class SpruceError extends error_1.default {
|
|
54
54
|
case 'FAILED_TO_LOAD_STORE':
|
55
55
|
message = `Dang it, I couldn't load your ${options.name} store!`;
|
56
56
|
if (options.originalError) {
|
57
|
-
message +=
|
57
|
+
message +=
|
58
|
+
'\n\nOriginal error:\n\n' +
|
59
|
+
options.originalError.message;
|
58
60
|
}
|
59
61
|
break;
|
60
62
|
case 'INVALID_DB_CONNECTION_STRING':
|
61
63
|
message = 'The database connection string you sent is no good!';
|
62
64
|
if (options.originalError) {
|
63
|
-
message +=
|
65
|
+
message +=
|
66
|
+
'\n\nOriginal error:\n\n' +
|
67
|
+
options.originalError.message;
|
64
68
|
}
|
65
69
|
break;
|
66
70
|
case 'UNKNOWN_DATABASE_ERROR':
|
@@ -6,7 +6,7 @@ exports.default = (0, schema_1.buildErrorSchema)({
|
|
6
6
|
name: 'failed to load stores',
|
7
7
|
importsWhenLocal: [
|
8
8
|
"import AbstractSpruceError from '@sprucelabs/error'",
|
9
|
-
"import { FailedToLoadStoreErrorOptions } from
|
9
|
+
"import { FailedToLoadStoreErrorOptions } from '#spruce/errors/options.types'",
|
10
10
|
],
|
11
11
|
fields: {
|
12
12
|
errors: {
|
@@ -1,7 +1,5 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
/* eslint-disable no-unused-vars */
|
4
|
-
/* eslint-disable @typescript-eslint/no-unused-vars */
|
5
3
|
const schema_1 = require("@sprucelabs/schema");
|
6
4
|
//@ts-ignore
|
7
5
|
exports.default = (0, schema_1.buildErrorSchema)({
|
@@ -1,7 +1,5 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
/* eslint-disable @typescript-eslint/no-unused-vars */
|
4
|
-
/* eslint-disable no-unused-vars */
|
5
3
|
const schema_1 = require("@sprucelabs/schema");
|
6
4
|
//@ts-ignore
|
7
5
|
exports.default = (0, schema_1.buildErrorSchema)({
|