@ahrowe/mongo 0.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/README.md +184 -0
- package/dist/batchify.d.ts +36 -0
- package/dist/batchify.d.ts.map +1 -0
- package/dist/batchify.js +57 -0
- package/dist/batchify.js.map +1 -0
- package/dist/db.d.ts +356 -0
- package/dist/db.d.ts.map +1 -0
- package/dist/db.js +390 -0
- package/dist/db.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/outboxRelay.d.ts +34 -0
- package/dist/outboxRelay.d.ts.map +1 -0
- package/dist/outboxRelay.js +152 -0
- package/dist/outboxRelay.js.map +1 -0
- package/dist/types/outbox.d.ts +37 -0
- package/dist/types/outbox.d.ts.map +1 -0
- package/dist/types/outbox.js +22 -0
- package/dist/types/outbox.js.map +1 -0
- package/docs/CLAUDE.md +250 -0
- package/package.json +61 -0
package/dist/db.d.ts
ADDED
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
import { ClientSession, UpdateFilter, FindOptions, Filter, UpdateOptions, FindOneAndUpdateOptions, FindOneAndDeleteOptions, BulkWriteOptions, AggregateOptions, ClientSessionOptions, type Document, Collection as MongoCollection } from 'mongodb';
|
|
2
|
+
import { EventEmitter } from 'node:events';
|
|
3
|
+
import { type OutboxRow } from './types/outbox.js';
|
|
4
|
+
type ContextProvider = () => unknown;
|
|
5
|
+
export declare const setOutboxContextProvider: (fn: ContextProvider) => void;
|
|
6
|
+
export declare const getServiceBus: (collectionName: string) => EventEmitter | undefined;
|
|
7
|
+
export declare const getRegisteredCollections: () => string[];
|
|
8
|
+
/** Raw outbox collection — used by the relay to claim/mark rows WITHOUT emitting. */
|
|
9
|
+
export declare const getOutboxCollection: () => MongoCollection<OutboxRow>;
|
|
10
|
+
interface ServiceOptions {
|
|
11
|
+
addCreatedOnField?: boolean;
|
|
12
|
+
addUpdatedOnField?: boolean;
|
|
13
|
+
/** Ceiling for findCursor's `limit` option. No cap by default. Overridable per-call. */
|
|
14
|
+
maxLimit?: number;
|
|
15
|
+
/** Ceiling for updateMany/removeMany's reliable-path matched-document count. No cap by default. Overridable per-call. */
|
|
16
|
+
maxBatchSize?: number;
|
|
17
|
+
/**
|
|
18
|
+
* Whether mutations on this collection write transactional-outbox events (default `true`).
|
|
19
|
+
* Set `false` for infra collections that are themselves logs/counters — they have no audit
|
|
20
|
+
* listeners and would only churn the outbox.
|
|
21
|
+
*/
|
|
22
|
+
emitOutboxEvents?: boolean;
|
|
23
|
+
}
|
|
24
|
+
interface FindOptionsWithReadPref extends FindOptions {
|
|
25
|
+
preferReadFromSecondary?: boolean;
|
|
26
|
+
/** Per-call override of the service's `maxLimit` ceiling. */
|
|
27
|
+
maxLimit?: number;
|
|
28
|
+
}
|
|
29
|
+
type WithEntityFields = {
|
|
30
|
+
_id: string;
|
|
31
|
+
createdOn?: Date;
|
|
32
|
+
updatedOn?: Date;
|
|
33
|
+
};
|
|
34
|
+
declare const generateService: <T extends WithEntityFields>(collectionName: string, validate?: ((entity: T) => {
|
|
35
|
+
error?: unknown;
|
|
36
|
+
}) | null, { addCreatedOnField, addUpdatedOnField, maxLimit: serviceMaxLimit, maxBatchSize: serviceMaxBatchSize, emitOutboxEvents, }?: ServiceOptions) => {
|
|
37
|
+
find: (query: Filter<T>, options?: FindOptions) => Promise<import("mongodb").WithId<T>[]>;
|
|
38
|
+
findCursor: (query: Filter<T>, options?: FindOptionsWithReadPref) => import("mongodb").FindCursor<import("mongodb").WithId<T>>;
|
|
39
|
+
findOne: (query: Filter<T>, options?: FindOptions) => Promise<import("mongodb").WithId<T>>;
|
|
40
|
+
updateOne: (query: Filter<T>, updateBody: UpdateFilter<T>, options?: Omit<FindOneAndUpdateOptions, "upsert"> & {
|
|
41
|
+
returnOriginal?: boolean;
|
|
42
|
+
skipValidation?: boolean;
|
|
43
|
+
meta?: Record<string, unknown>;
|
|
44
|
+
}) => Promise<T | null>;
|
|
45
|
+
updateMany: (query: Filter<T>, updateBody: UpdateFilter<T> | UpdateFilter<T>[], options?: Omit<UpdateOptions, "upsert"> & {
|
|
46
|
+
skipValidation?: boolean;
|
|
47
|
+
meta?: Record<string, unknown>;
|
|
48
|
+
maxBatchSize?: number;
|
|
49
|
+
}) => Promise<{
|
|
50
|
+
nModified: number;
|
|
51
|
+
acknowledged: boolean;
|
|
52
|
+
matchedCount: number;
|
|
53
|
+
modifiedCount: number;
|
|
54
|
+
upsertedCount: number;
|
|
55
|
+
upsertedId: import("mongodb").InferIdType<T> | null;
|
|
56
|
+
}>;
|
|
57
|
+
removeOne: (query: Filter<T>, options?: FindOneAndDeleteOptions & {
|
|
58
|
+
meta?: Record<string, unknown>;
|
|
59
|
+
}) => Promise<import("mongodb").WithId<T> | null>;
|
|
60
|
+
removeMany: (query: Filter<T>, options?: any) => Promise<{
|
|
61
|
+
results: import("mongodb").WithId<T>[] | undefined;
|
|
62
|
+
acknowledged: boolean;
|
|
63
|
+
deletedCount: number;
|
|
64
|
+
} | {
|
|
65
|
+
acknowledged: boolean;
|
|
66
|
+
deletedCount: number;
|
|
67
|
+
results: T[] | undefined;
|
|
68
|
+
}>;
|
|
69
|
+
insert: {
|
|
70
|
+
(entitiesToCreate: Omit<T, "_id"> & {
|
|
71
|
+
_id?: string;
|
|
72
|
+
}, options?: any): Promise<T>;
|
|
73
|
+
(entitiesToCreate: (Omit<T, "_id"> & {
|
|
74
|
+
_id?: string;
|
|
75
|
+
})[], options?: any): Promise<T[]>;
|
|
76
|
+
};
|
|
77
|
+
count: (query: Filter<T>, options?: {
|
|
78
|
+
preferReadFromSecondary?: boolean;
|
|
79
|
+
}) => Promise<number>;
|
|
80
|
+
exists: (query: Filter<T>) => Promise<boolean>;
|
|
81
|
+
aggregate: <T_1 extends Document>(pipeline?: object[], options?: AggregateOptions & {
|
|
82
|
+
preferReadFromSecondary?: boolean;
|
|
83
|
+
}) => Promise<T_1[]>;
|
|
84
|
+
generateId: () => string;
|
|
85
|
+
distinct: (field: keyof T, query: Filter<T>, options?: any) => Promise<any[]>;
|
|
86
|
+
name: string;
|
|
87
|
+
createIndex: (fields: Partial<Record<(T extends object ? { [K in keyof T]: K extends string ? T[K] extends object ? K | `${K}.${T[K] extends infer T_1 ? T_1 extends T[K] ? T_1 extends object ? { [K_2 in keyof T_1]: K_2 extends string ? T_1[K_2] extends object ? K_2 | `${K_2}.${T_1[K_2] extends infer T_2 ? T_2 extends T_1[K_2] ? T_2 extends object ? { [K_3 in keyof T_2]: K_3 extends string ? T_2[K_3] extends object ? K_3 | `${K_3}.${T_2[K_3] extends infer T_3 ? T_3 extends T_2[K_3] ? T_3 extends object ? { [K_4 in keyof T_3]: K_4 extends string ? T_3[K_4] extends object ? K_4 | `${K_4}.${T_3[K_4] extends infer T_4 ? T_4 extends T_3[K_4] ? T_4 extends object ? { [K_5 in keyof T_4]: K_5 extends string ? T_4[K_5] extends object ? K_5 | `${K_5}.${T_4[K_5] extends infer T_5 ? T_5 extends T_4[K_5] ? T_5 extends object ? { [K_6 in keyof T_5]: K_6 extends string ? T_5[K_6] extends object ? K_6 | `${K_6}.${T_5[K_6] extends infer T_6 ? T_6 extends T_5[K_6] ? T_6 extends object ? { [K_7 in keyof T_6]: K_7 extends string ? T_6[K_7] extends object ? K_7 | `${K_7}.${T_6[K_7] extends infer T_7 ? T_7 extends T_6[K_7] ? T_7 extends object ? { [K_8 in keyof T_7]: K_8 extends string ? T_7[K_8] extends object ? K_8 | `${K_8}.${T_7[K_8] extends infer T_8 ? T_8 extends T_7[K_8] ? T_8 extends object ? { [K_9 in keyof T_8]: K_9 extends string ? T_8[K_9] extends object ? K_9 | `${K_9}.${T_8[K_9] extends infer T_9 ? T_9 extends T_8[K_9] ? T_9 extends object ? { [K_10 in keyof T_9]: K_10 extends string ? T_9[K_10] extends object ? K_10 | `${K_10}.${T_9[K_10] extends infer T_10 ? T_10 extends T_9[K_10] ? T_10 extends object ? { [K_11 in keyof T_10]: K_11 extends string ? T_10[K_11] extends object ? K_11 | `${K_11}.${/*elided*/ any}` : K_11 : never; }[keyof T_10] : never : never : never}` : K_10 : never; }[keyof T_9] : never : never : never}` : K_9 : never; }[keyof T_8] : never : never : never}` : K_8 : never; }[keyof T_7] : never : never : never}` : K_7 : never; }[keyof T_6] : never : never : never}` : K_6 : never; }[keyof T_5] : never : never : never}` : K_5 : never; }[keyof T_4] : never : never : never}` : K_4 : never; }[keyof T_3] : never : never : never}` : K_3 : never; }[keyof T_2] : never : never : never}` : K_2 : never; }[keyof T_1] : never : never : never}` : K : never; }[keyof T] : never) | keyof T, 1 | -1>>, options?: any) => Promise<string>;
|
|
88
|
+
on: (eventName: string, callback: (...args: any[]) => void) => EventEmitter<[never]>;
|
|
89
|
+
onPropertiesUpdated: (properties: Array<string | ReadonlyArray<string>>, callback: (...args: any[]) => void) => EventEmitter<[never]>;
|
|
90
|
+
eventBus: EventEmitter<[never]>;
|
|
91
|
+
bulkWrite: (operations: any[], options?: BulkWriteOptions & {
|
|
92
|
+
allowBulkwrite?: boolean;
|
|
93
|
+
}) => Promise<import("mongodb").BulkWriteResult>;
|
|
94
|
+
};
|
|
95
|
+
declare const createService: <T extends WithEntityFields>(collectionName: string, validate?: ((entity: T) => {
|
|
96
|
+
error?: unknown;
|
|
97
|
+
}) | null, options?: ServiceOptions) => {
|
|
98
|
+
find: (query: Filter<T>, options?: FindOptions) => Promise<import("mongodb").WithId<T>[]>;
|
|
99
|
+
findCursor: (query: Filter<T>, options?: FindOptionsWithReadPref) => import("mongodb").FindCursor<import("mongodb").WithId<T>>;
|
|
100
|
+
findOne: (query: Filter<T>, options?: FindOptions) => Promise<import("mongodb").WithId<T>>;
|
|
101
|
+
updateOne: (query: Filter<T>, updateBody: UpdateFilter<T>, options?: Omit<FindOneAndUpdateOptions, "upsert"> & {
|
|
102
|
+
returnOriginal?: boolean;
|
|
103
|
+
skipValidation?: boolean;
|
|
104
|
+
meta?: Record<string, unknown>;
|
|
105
|
+
}) => Promise<T | null>;
|
|
106
|
+
updateMany: (query: Filter<T>, updateBody: UpdateFilter<T> | UpdateFilter<T>[], options?: Omit<UpdateOptions, "upsert"> & {
|
|
107
|
+
skipValidation?: boolean;
|
|
108
|
+
meta?: Record<string, unknown>;
|
|
109
|
+
maxBatchSize?: number;
|
|
110
|
+
}) => Promise<{
|
|
111
|
+
nModified: number;
|
|
112
|
+
acknowledged: boolean;
|
|
113
|
+
matchedCount: number;
|
|
114
|
+
modifiedCount: number;
|
|
115
|
+
upsertedCount: number;
|
|
116
|
+
upsertedId: import("mongodb").InferIdType<T> | null;
|
|
117
|
+
}>;
|
|
118
|
+
removeOne: (query: Filter<T>, options?: FindOneAndDeleteOptions & {
|
|
119
|
+
meta?: Record<string, unknown>;
|
|
120
|
+
}) => Promise<import("mongodb").WithId<T> | null>;
|
|
121
|
+
removeMany: (query: Filter<T>, options?: any) => Promise<{
|
|
122
|
+
results: import("mongodb").WithId<T>[] | undefined;
|
|
123
|
+
acknowledged: boolean;
|
|
124
|
+
deletedCount: number;
|
|
125
|
+
} | {
|
|
126
|
+
acknowledged: boolean;
|
|
127
|
+
deletedCount: number;
|
|
128
|
+
results: T[] | undefined;
|
|
129
|
+
}>;
|
|
130
|
+
insert: {
|
|
131
|
+
(entitiesToCreate: Omit<T, "_id"> & {
|
|
132
|
+
_id?: string;
|
|
133
|
+
}, options?: any): Promise<T>;
|
|
134
|
+
(entitiesToCreate: (Omit<T, "_id"> & {
|
|
135
|
+
_id?: string;
|
|
136
|
+
})[], options?: any): Promise<T[]>;
|
|
137
|
+
};
|
|
138
|
+
count: (query: Filter<T>, options?: {
|
|
139
|
+
preferReadFromSecondary?: boolean;
|
|
140
|
+
}) => Promise<number>;
|
|
141
|
+
exists: (query: Filter<T>) => Promise<boolean>;
|
|
142
|
+
aggregate: <T_1 extends Document>(pipeline?: object[], options?: AggregateOptions & {
|
|
143
|
+
preferReadFromSecondary?: boolean;
|
|
144
|
+
}) => Promise<T_1[]>;
|
|
145
|
+
generateId: () => string;
|
|
146
|
+
distinct: (field: keyof T, query: Filter<T>, options?: any) => Promise<any[]>;
|
|
147
|
+
name: string;
|
|
148
|
+
createIndex: (fields: Partial<Record<keyof T | (T extends object ? { [K in keyof T]: K extends string ? T[K] extends object ? K | `${K}.${T[K] extends infer T_1 ? T_1 extends T[K] ? T_1 extends object ? { [K_2 in keyof T_1]: K_2 extends string ? T_1[K_2] extends object ? K_2 | `${K_2}.${T_1[K_2] extends infer T_2 ? T_2 extends T_1[K_2] ? T_2 extends object ? { [K_3 in keyof T_2]: K_3 extends string ? T_2[K_3] extends object ? K_3 | `${K_3}.${T_2[K_3] extends infer T_3 ? T_3 extends T_2[K_3] ? T_3 extends object ? { [K_4 in keyof T_3]: K_4 extends string ? T_3[K_4] extends object ? K_4 | `${K_4}.${T_3[K_4] extends infer T_4 ? T_4 extends T_3[K_4] ? T_4 extends object ? { [K_5 in keyof T_4]: K_5 extends string ? T_4[K_5] extends object ? K_5 | `${K_5}.${T_4[K_5] extends infer T_5 ? T_5 extends T_4[K_5] ? T_5 extends object ? { [K_6 in keyof T_5]: K_6 extends string ? T_5[K_6] extends object ? K_6 | `${K_6}.${T_5[K_6] extends infer T_6 ? T_6 extends T_5[K_6] ? T_6 extends object ? { [K_7 in keyof T_6]: K_7 extends string ? T_6[K_7] extends object ? K_7 | `${K_7}.${T_6[K_7] extends infer T_7 ? T_7 extends T_6[K_7] ? T_7 extends object ? { [K_8 in keyof T_7]: K_8 extends string ? T_7[K_8] extends object ? K_8 | `${K_8}.${T_7[K_8] extends infer T_8 ? T_8 extends T_7[K_8] ? T_8 extends object ? { [K_9 in keyof T_8]: K_9 extends string ? T_8[K_9] extends object ? K_9 | `${K_9}.${T_8[K_9] extends infer T_9 ? T_9 extends T_8[K_9] ? T_9 extends object ? { [K_10 in keyof T_9]: K_10 extends string ? T_9[K_10] extends object ? K_10 | `${K_10}.${T_9[K_10] extends infer T_10 ? T_10 extends T_9[K_10] ? T_10 extends object ? { [K_11 in keyof T_10]: K_11 extends string ? T_10[K_11] extends object ? K_11 | `${K_11}.${/*elided*/ any}` : K_11 : never; }[keyof T_10] : never : never : never}` : K_10 : never; }[keyof T_9] : never : never : never}` : K_9 : never; }[keyof T_8] : never : never : never}` : K_8 : never; }[keyof T_7] : never : never : never}` : K_7 : never; }[keyof T_6] : never : never : never}` : K_6 : never; }[keyof T_5] : never : never : never}` : K_5 : never; }[keyof T_4] : never : never : never}` : K_4 : never; }[keyof T_3] : never : never : never}` : K_3 : never; }[keyof T_2] : never : never : never}` : K_2 : never; }[keyof T_1] : never : never : never}` : K : never; }[keyof T] : never), 1 | -1>>, options?: any) => Promise<string>;
|
|
149
|
+
on: (eventName: string, callback: (...args: any[]) => void) => EventEmitter<[never]>;
|
|
150
|
+
onPropertiesUpdated: (properties: Array<string | ReadonlyArray<string>>, callback: (...args: any[]) => void) => EventEmitter<[never]>;
|
|
151
|
+
eventBus: EventEmitter<[never]>;
|
|
152
|
+
bulkWrite: (operations: any[], options?: BulkWriteOptions & {
|
|
153
|
+
allowBulkwrite?: boolean;
|
|
154
|
+
}) => Promise<import("mongodb").BulkWriteResult>;
|
|
155
|
+
};
|
|
156
|
+
declare const connect: (connectionString: string, databaseName?: string) => {
|
|
157
|
+
createService: <T extends WithEntityFields>(collectionName: string, validate?: ((entity: T) => {
|
|
158
|
+
error?: unknown;
|
|
159
|
+
}) | null, options?: ServiceOptions) => {
|
|
160
|
+
find: (query: Filter<T>, options?: FindOptions) => Promise<import("mongodb").WithId<T>[]>;
|
|
161
|
+
findCursor: (query: Filter<T>, options?: FindOptionsWithReadPref) => import("mongodb").FindCursor<import("mongodb").WithId<T>>;
|
|
162
|
+
findOne: (query: Filter<T>, options?: FindOptions) => Promise<import("mongodb").WithId<T>>;
|
|
163
|
+
updateOne: (query: Filter<T>, updateBody: UpdateFilter<T>, options?: Omit<FindOneAndUpdateOptions, "upsert"> & {
|
|
164
|
+
returnOriginal?: boolean;
|
|
165
|
+
skipValidation?: boolean;
|
|
166
|
+
meta?: Record<string, unknown>;
|
|
167
|
+
}) => Promise<T | null>;
|
|
168
|
+
updateMany: (query: Filter<T>, updateBody: UpdateFilter<T> | UpdateFilter<T>[], options?: Omit<UpdateOptions, "upsert"> & {
|
|
169
|
+
skipValidation?: boolean;
|
|
170
|
+
meta?: Record<string, unknown>;
|
|
171
|
+
maxBatchSize?: number;
|
|
172
|
+
}) => Promise<{
|
|
173
|
+
nModified: number;
|
|
174
|
+
acknowledged: boolean;
|
|
175
|
+
matchedCount: number;
|
|
176
|
+
modifiedCount: number;
|
|
177
|
+
upsertedCount: number;
|
|
178
|
+
upsertedId: import("mongodb").InferIdType<T> | null;
|
|
179
|
+
}>;
|
|
180
|
+
removeOne: (query: Filter<T>, options?: FindOneAndDeleteOptions & {
|
|
181
|
+
meta?: Record<string, unknown>;
|
|
182
|
+
}) => Promise<import("mongodb").WithId<T> | null>;
|
|
183
|
+
removeMany: (query: Filter<T>, options?: any) => Promise<{
|
|
184
|
+
results: import("mongodb").WithId<T>[] | undefined;
|
|
185
|
+
acknowledged: boolean;
|
|
186
|
+
deletedCount: number;
|
|
187
|
+
} | {
|
|
188
|
+
acknowledged: boolean;
|
|
189
|
+
deletedCount: number;
|
|
190
|
+
results: T[] | undefined;
|
|
191
|
+
}>;
|
|
192
|
+
insert: {
|
|
193
|
+
(entitiesToCreate: Omit<T, "_id"> & {
|
|
194
|
+
_id?: string;
|
|
195
|
+
}, options?: any): Promise<T>;
|
|
196
|
+
(entitiesToCreate: (Omit<T, "_id"> & {
|
|
197
|
+
_id?: string;
|
|
198
|
+
})[], options?: any): Promise<T[]>;
|
|
199
|
+
};
|
|
200
|
+
count: (query: Filter<T>, options?: {
|
|
201
|
+
preferReadFromSecondary?: boolean;
|
|
202
|
+
}) => Promise<number>;
|
|
203
|
+
exists: (query: Filter<T>) => Promise<boolean>;
|
|
204
|
+
aggregate: <T_1 extends Document>(pipeline?: object[], options?: AggregateOptions & {
|
|
205
|
+
preferReadFromSecondary?: boolean;
|
|
206
|
+
}) => Promise<T_1[]>;
|
|
207
|
+
generateId: () => string;
|
|
208
|
+
distinct: (field: keyof T, query: Filter<T>, options?: any) => Promise<any[]>;
|
|
209
|
+
name: string;
|
|
210
|
+
createIndex: (fields: Partial<Record<keyof T | (T extends object ? { [K in keyof T]: K extends string ? T[K] extends object ? K | `${K}.${T[K] extends infer T_1 ? T_1 extends T[K] ? T_1 extends object ? { [K_2 in keyof T_1]: K_2 extends string ? T_1[K_2] extends object ? K_2 | `${K_2}.${T_1[K_2] extends infer T_2 ? T_2 extends T_1[K_2] ? T_2 extends object ? { [K_3 in keyof T_2]: K_3 extends string ? T_2[K_3] extends object ? K_3 | `${K_3}.${T_2[K_3] extends infer T_3 ? T_3 extends T_2[K_3] ? T_3 extends object ? { [K_4 in keyof T_3]: K_4 extends string ? T_3[K_4] extends object ? K_4 | `${K_4}.${T_3[K_4] extends infer T_4 ? T_4 extends T_3[K_4] ? T_4 extends object ? { [K_5 in keyof T_4]: K_5 extends string ? T_4[K_5] extends object ? K_5 | `${K_5}.${T_4[K_5] extends infer T_5 ? T_5 extends T_4[K_5] ? T_5 extends object ? { [K_6 in keyof T_5]: K_6 extends string ? T_5[K_6] extends object ? K_6 | `${K_6}.${T_5[K_6] extends infer T_6 ? T_6 extends T_5[K_6] ? T_6 extends object ? { [K_7 in keyof T_6]: K_7 extends string ? T_6[K_7] extends object ? K_7 | `${K_7}.${T_6[K_7] extends infer T_7 ? T_7 extends T_6[K_7] ? T_7 extends object ? { [K_8 in keyof T_7]: K_8 extends string ? T_7[K_8] extends object ? K_8 | `${K_8}.${T_7[K_8] extends infer T_8 ? T_8 extends T_7[K_8] ? T_8 extends object ? { [K_9 in keyof T_8]: K_9 extends string ? T_8[K_9] extends object ? K_9 | `${K_9}.${T_8[K_9] extends infer T_9 ? T_9 extends T_8[K_9] ? T_9 extends object ? { [K_10 in keyof T_9]: K_10 extends string ? T_9[K_10] extends object ? K_10 | `${K_10}.${T_9[K_10] extends infer T_10 ? T_10 extends T_9[K_10] ? T_10 extends object ? { [K_11 in keyof T_10]: K_11 extends string ? T_10[K_11] extends object ? K_11 | `${K_11}.${/*elided*/ any}` : K_11 : never; }[keyof T_10] : never : never : never}` : K_10 : never; }[keyof T_9] : never : never : never}` : K_9 : never; }[keyof T_8] : never : never : never}` : K_8 : never; }[keyof T_7] : never : never : never}` : K_7 : never; }[keyof T_6] : never : never : never}` : K_6 : never; }[keyof T_5] : never : never : never}` : K_5 : never; }[keyof T_4] : never : never : never}` : K_4 : never; }[keyof T_3] : never : never : never}` : K_3 : never; }[keyof T_2] : never : never : never}` : K_2 : never; }[keyof T_1] : never : never : never}` : K : never; }[keyof T] : never), 1 | -1>>, options?: any) => Promise<string>;
|
|
211
|
+
on: (eventName: string, callback: (...args: any[]) => void) => EventEmitter<[never]>;
|
|
212
|
+
onPropertiesUpdated: (properties: Array<string | ReadonlyArray<string>>, callback: (...args: any[]) => void) => EventEmitter<[never]>;
|
|
213
|
+
eventBus: EventEmitter<[never]>;
|
|
214
|
+
bulkWrite: (operations: any[], options?: BulkWriteOptions & {
|
|
215
|
+
allowBulkwrite?: boolean;
|
|
216
|
+
}) => Promise<import("mongodb").BulkWriteResult>;
|
|
217
|
+
};
|
|
218
|
+
on: (eventName: string, callback: (...args: any[]) => void) => EventEmitter<[never]>;
|
|
219
|
+
};
|
|
220
|
+
export declare const disconnect: () => Promise<void>;
|
|
221
|
+
export type DbService<T extends WithEntityFields> = ReturnType<typeof generateService<T>>;
|
|
222
|
+
export { connect, createService };
|
|
223
|
+
export declare const withSession: <R>(callback: (session: ClientSession) => Promise<R>) => Promise<R>;
|
|
224
|
+
export declare const startSession: (options?: ClientSessionOptions) => Promise<ClientSession>;
|
|
225
|
+
declare const _default: {
|
|
226
|
+
connect: (connectionString: string, databaseName?: string) => {
|
|
227
|
+
createService: <T extends WithEntityFields>(collectionName: string, validate?: ((entity: T) => {
|
|
228
|
+
error?: unknown;
|
|
229
|
+
}) | null, options?: ServiceOptions) => {
|
|
230
|
+
find: (query: Filter<T>, options?: FindOptions) => Promise<import("mongodb").WithId<T>[]>;
|
|
231
|
+
findCursor: (query: Filter<T>, options?: FindOptionsWithReadPref) => import("mongodb").FindCursor<import("mongodb").WithId<T>>;
|
|
232
|
+
findOne: (query: Filter<T>, options?: FindOptions) => Promise<import("mongodb").WithId<T>>;
|
|
233
|
+
updateOne: (query: Filter<T>, updateBody: UpdateFilter<T>, options?: Omit<FindOneAndUpdateOptions, "upsert"> & {
|
|
234
|
+
returnOriginal?: boolean;
|
|
235
|
+
skipValidation?: boolean;
|
|
236
|
+
meta?: Record<string, unknown>;
|
|
237
|
+
}) => Promise<T | null>;
|
|
238
|
+
updateMany: (query: Filter<T>, updateBody: UpdateFilter<T> | UpdateFilter<T>[], options?: Omit<UpdateOptions, "upsert"> & {
|
|
239
|
+
skipValidation?: boolean;
|
|
240
|
+
meta?: Record<string, unknown>;
|
|
241
|
+
maxBatchSize?: number;
|
|
242
|
+
}) => Promise<{
|
|
243
|
+
nModified: number;
|
|
244
|
+
acknowledged: boolean;
|
|
245
|
+
matchedCount: number;
|
|
246
|
+
modifiedCount: number;
|
|
247
|
+
upsertedCount: number;
|
|
248
|
+
upsertedId: import("mongodb").InferIdType<T> | null;
|
|
249
|
+
}>;
|
|
250
|
+
removeOne: (query: Filter<T>, options?: FindOneAndDeleteOptions & {
|
|
251
|
+
meta?: Record<string, unknown>;
|
|
252
|
+
}) => Promise<import("mongodb").WithId<T> | null>;
|
|
253
|
+
removeMany: (query: Filter<T>, options?: any) => Promise<{
|
|
254
|
+
results: import("mongodb").WithId<T>[] | undefined;
|
|
255
|
+
acknowledged: boolean;
|
|
256
|
+
deletedCount: number;
|
|
257
|
+
} | {
|
|
258
|
+
acknowledged: boolean;
|
|
259
|
+
deletedCount: number;
|
|
260
|
+
results: T[] | undefined;
|
|
261
|
+
}>;
|
|
262
|
+
insert: {
|
|
263
|
+
(entitiesToCreate: Omit<T, "_id"> & {
|
|
264
|
+
_id?: string;
|
|
265
|
+
}, options?: any): Promise<T>;
|
|
266
|
+
(entitiesToCreate: (Omit<T, "_id"> & {
|
|
267
|
+
_id?: string;
|
|
268
|
+
})[], options?: any): Promise<T[]>;
|
|
269
|
+
};
|
|
270
|
+
count: (query: Filter<T>, options?: {
|
|
271
|
+
preferReadFromSecondary?: boolean;
|
|
272
|
+
}) => Promise<number>;
|
|
273
|
+
exists: (query: Filter<T>) => Promise<boolean>;
|
|
274
|
+
aggregate: <T_1 extends Document>(pipeline?: object[], options?: AggregateOptions & {
|
|
275
|
+
preferReadFromSecondary?: boolean;
|
|
276
|
+
}) => Promise<T_1[]>;
|
|
277
|
+
generateId: () => string;
|
|
278
|
+
distinct: (field: keyof T, query: Filter<T>, options?: any) => Promise<any[]>;
|
|
279
|
+
name: string;
|
|
280
|
+
createIndex: (fields: Partial<Record<keyof T | (T extends object ? { [K in keyof T]: K extends string ? T[K] extends object ? K | `${K}.${T[K] extends infer T_1 ? T_1 extends T[K] ? T_1 extends object ? { [K_2 in keyof T_1]: K_2 extends string ? T_1[K_2] extends object ? K_2 | `${K_2}.${T_1[K_2] extends infer T_2 ? T_2 extends T_1[K_2] ? T_2 extends object ? { [K_3 in keyof T_2]: K_3 extends string ? T_2[K_3] extends object ? K_3 | `${K_3}.${T_2[K_3] extends infer T_3 ? T_3 extends T_2[K_3] ? T_3 extends object ? { [K_4 in keyof T_3]: K_4 extends string ? T_3[K_4] extends object ? K_4 | `${K_4}.${T_3[K_4] extends infer T_4 ? T_4 extends T_3[K_4] ? T_4 extends object ? { [K_5 in keyof T_4]: K_5 extends string ? T_4[K_5] extends object ? K_5 | `${K_5}.${T_4[K_5] extends infer T_5 ? T_5 extends T_4[K_5] ? T_5 extends object ? { [K_6 in keyof T_5]: K_6 extends string ? T_5[K_6] extends object ? K_6 | `${K_6}.${T_5[K_6] extends infer T_6 ? T_6 extends T_5[K_6] ? T_6 extends object ? { [K_7 in keyof T_6]: K_7 extends string ? T_6[K_7] extends object ? K_7 | `${K_7}.${T_6[K_7] extends infer T_7 ? T_7 extends T_6[K_7] ? T_7 extends object ? { [K_8 in keyof T_7]: K_8 extends string ? T_7[K_8] extends object ? K_8 | `${K_8}.${T_7[K_8] extends infer T_8 ? T_8 extends T_7[K_8] ? T_8 extends object ? { [K_9 in keyof T_8]: K_9 extends string ? T_8[K_9] extends object ? K_9 | `${K_9}.${T_8[K_9] extends infer T_9 ? T_9 extends T_8[K_9] ? T_9 extends object ? { [K_10 in keyof T_9]: K_10 extends string ? T_9[K_10] extends object ? K_10 | `${K_10}.${T_9[K_10] extends infer T_10 ? T_10 extends T_9[K_10] ? T_10 extends object ? { [K_11 in keyof T_10]: K_11 extends string ? T_10[K_11] extends object ? K_11 | `${K_11}.${/*elided*/ any}` : K_11 : never; }[keyof T_10] : never : never : never}` : K_10 : never; }[keyof T_9] : never : never : never}` : K_9 : never; }[keyof T_8] : never : never : never}` : K_8 : never; }[keyof T_7] : never : never : never}` : K_7 : never; }[keyof T_6] : never : never : never}` : K_6 : never; }[keyof T_5] : never : never : never}` : K_5 : never; }[keyof T_4] : never : never : never}` : K_4 : never; }[keyof T_3] : never : never : never}` : K_3 : never; }[keyof T_2] : never : never : never}` : K_2 : never; }[keyof T_1] : never : never : never}` : K : never; }[keyof T] : never), 1 | -1>>, options?: any) => Promise<string>;
|
|
281
|
+
on: (eventName: string, callback: (...args: any[]) => void) => EventEmitter<[never]>;
|
|
282
|
+
onPropertiesUpdated: (properties: Array<string | ReadonlyArray<string>>, callback: (...args: any[]) => void) => EventEmitter<[never]>;
|
|
283
|
+
eventBus: EventEmitter<[never]>;
|
|
284
|
+
bulkWrite: (operations: any[], options?: BulkWriteOptions & {
|
|
285
|
+
allowBulkwrite?: boolean;
|
|
286
|
+
}) => Promise<import("mongodb").BulkWriteResult>;
|
|
287
|
+
};
|
|
288
|
+
on: (eventName: string, callback: (...args: any[]) => void) => EventEmitter<[never]>;
|
|
289
|
+
};
|
|
290
|
+
createService: <T extends WithEntityFields>(collectionName: string, validate?: ((entity: T) => {
|
|
291
|
+
error?: unknown;
|
|
292
|
+
}) | null, options?: ServiceOptions) => {
|
|
293
|
+
find: (query: Filter<T>, options?: FindOptions) => Promise<import("mongodb").WithId<T>[]>;
|
|
294
|
+
findCursor: (query: Filter<T>, options?: FindOptionsWithReadPref) => import("mongodb").FindCursor<import("mongodb").WithId<T>>;
|
|
295
|
+
findOne: (query: Filter<T>, options?: FindOptions) => Promise<import("mongodb").WithId<T>>;
|
|
296
|
+
updateOne: (query: Filter<T>, updateBody: UpdateFilter<T>, options?: Omit<FindOneAndUpdateOptions, "upsert"> & {
|
|
297
|
+
returnOriginal?: boolean;
|
|
298
|
+
skipValidation?: boolean;
|
|
299
|
+
meta?: Record<string, unknown>;
|
|
300
|
+
}) => Promise<T | null>;
|
|
301
|
+
updateMany: (query: Filter<T>, updateBody: UpdateFilter<T> | UpdateFilter<T>[], options?: Omit<UpdateOptions, "upsert"> & {
|
|
302
|
+
skipValidation?: boolean;
|
|
303
|
+
meta?: Record<string, unknown>;
|
|
304
|
+
maxBatchSize?: number;
|
|
305
|
+
}) => Promise<{
|
|
306
|
+
nModified: number;
|
|
307
|
+
acknowledged: boolean;
|
|
308
|
+
matchedCount: number;
|
|
309
|
+
modifiedCount: number;
|
|
310
|
+
upsertedCount: number;
|
|
311
|
+
upsertedId: import("mongodb").InferIdType<T> | null;
|
|
312
|
+
}>;
|
|
313
|
+
removeOne: (query: Filter<T>, options?: FindOneAndDeleteOptions & {
|
|
314
|
+
meta?: Record<string, unknown>;
|
|
315
|
+
}) => Promise<import("mongodb").WithId<T> | null>;
|
|
316
|
+
removeMany: (query: Filter<T>, options?: any) => Promise<{
|
|
317
|
+
results: import("mongodb").WithId<T>[] | undefined;
|
|
318
|
+
acknowledged: boolean;
|
|
319
|
+
deletedCount: number;
|
|
320
|
+
} | {
|
|
321
|
+
acknowledged: boolean;
|
|
322
|
+
deletedCount: number;
|
|
323
|
+
results: T[] | undefined;
|
|
324
|
+
}>;
|
|
325
|
+
insert: {
|
|
326
|
+
(entitiesToCreate: Omit<T, "_id"> & {
|
|
327
|
+
_id?: string;
|
|
328
|
+
}, options?: any): Promise<T>;
|
|
329
|
+
(entitiesToCreate: (Omit<T, "_id"> & {
|
|
330
|
+
_id?: string;
|
|
331
|
+
})[], options?: any): Promise<T[]>;
|
|
332
|
+
};
|
|
333
|
+
count: (query: Filter<T>, options?: {
|
|
334
|
+
preferReadFromSecondary?: boolean;
|
|
335
|
+
}) => Promise<number>;
|
|
336
|
+
exists: (query: Filter<T>) => Promise<boolean>;
|
|
337
|
+
aggregate: <T_1 extends Document>(pipeline?: object[], options?: AggregateOptions & {
|
|
338
|
+
preferReadFromSecondary?: boolean;
|
|
339
|
+
}) => Promise<T_1[]>;
|
|
340
|
+
generateId: () => string;
|
|
341
|
+
distinct: (field: keyof T, query: Filter<T>, options?: any) => Promise<any[]>;
|
|
342
|
+
name: string;
|
|
343
|
+
createIndex: (fields: Partial<Record<keyof T | (T extends object ? { [K in keyof T]: K extends string ? T[K] extends object ? K | `${K}.${T[K] extends infer T_1 ? T_1 extends T[K] ? T_1 extends object ? { [K_2 in keyof T_1]: K_2 extends string ? T_1[K_2] extends object ? K_2 | `${K_2}.${T_1[K_2] extends infer T_2 ? T_2 extends T_1[K_2] ? T_2 extends object ? { [K_3 in keyof T_2]: K_3 extends string ? T_2[K_3] extends object ? K_3 | `${K_3}.${T_2[K_3] extends infer T_3 ? T_3 extends T_2[K_3] ? T_3 extends object ? { [K_4 in keyof T_3]: K_4 extends string ? T_3[K_4] extends object ? K_4 | `${K_4}.${T_3[K_4] extends infer T_4 ? T_4 extends T_3[K_4] ? T_4 extends object ? { [K_5 in keyof T_4]: K_5 extends string ? T_4[K_5] extends object ? K_5 | `${K_5}.${T_4[K_5] extends infer T_5 ? T_5 extends T_4[K_5] ? T_5 extends object ? { [K_6 in keyof T_5]: K_6 extends string ? T_5[K_6] extends object ? K_6 | `${K_6}.${T_5[K_6] extends infer T_6 ? T_6 extends T_5[K_6] ? T_6 extends object ? { [K_7 in keyof T_6]: K_7 extends string ? T_6[K_7] extends object ? K_7 | `${K_7}.${T_6[K_7] extends infer T_7 ? T_7 extends T_6[K_7] ? T_7 extends object ? { [K_8 in keyof T_7]: K_8 extends string ? T_7[K_8] extends object ? K_8 | `${K_8}.${T_7[K_8] extends infer T_8 ? T_8 extends T_7[K_8] ? T_8 extends object ? { [K_9 in keyof T_8]: K_9 extends string ? T_8[K_9] extends object ? K_9 | `${K_9}.${T_8[K_9] extends infer T_9 ? T_9 extends T_8[K_9] ? T_9 extends object ? { [K_10 in keyof T_9]: K_10 extends string ? T_9[K_10] extends object ? K_10 | `${K_10}.${T_9[K_10] extends infer T_10 ? T_10 extends T_9[K_10] ? T_10 extends object ? { [K_11 in keyof T_10]: K_11 extends string ? T_10[K_11] extends object ? K_11 | `${K_11}.${/*elided*/ any}` : K_11 : never; }[keyof T_10] : never : never : never}` : K_10 : never; }[keyof T_9] : never : never : never}` : K_9 : never; }[keyof T_8] : never : never : never}` : K_8 : never; }[keyof T_7] : never : never : never}` : K_7 : never; }[keyof T_6] : never : never : never}` : K_6 : never; }[keyof T_5] : never : never : never}` : K_5 : never; }[keyof T_4] : never : never : never}` : K_4 : never; }[keyof T_3] : never : never : never}` : K_3 : never; }[keyof T_2] : never : never : never}` : K_2 : never; }[keyof T_1] : never : never : never}` : K : never; }[keyof T] : never), 1 | -1>>, options?: any) => Promise<string>;
|
|
344
|
+
on: (eventName: string, callback: (...args: any[]) => void) => EventEmitter<[never]>;
|
|
345
|
+
onPropertiesUpdated: (properties: Array<string | ReadonlyArray<string>>, callback: (...args: any[]) => void) => EventEmitter<[never]>;
|
|
346
|
+
eventBus: EventEmitter<[never]>;
|
|
347
|
+
bulkWrite: (operations: any[], options?: BulkWriteOptions & {
|
|
348
|
+
allowBulkwrite?: boolean;
|
|
349
|
+
}) => Promise<import("mongodb").BulkWriteResult>;
|
|
350
|
+
};
|
|
351
|
+
withSession: <R>(callback: (session: ClientSession) => Promise<R>) => Promise<R>;
|
|
352
|
+
startSession: (options?: ClientSessionOptions) => Promise<ClientSession>;
|
|
353
|
+
disconnect: () => Promise<void>;
|
|
354
|
+
};
|
|
355
|
+
export default _default;
|
|
356
|
+
//# sourceMappingURL=db.d.ts.map
|
package/dist/db.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
|