equipped 5.0.5 → 5.0.7
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/CHANGELOG.md +9 -0
- package/dist/cjs/index.cjs +7 -0
- package/package.json +132 -29
- package/lib/cache/base.d.ts +0 -6
- package/lib/cache/base.js +0 -3
- package/lib/cache/base.js.map +0 -1
- package/lib/cache/index.d.ts +0 -3
- package/lib/cache/index.js +0 -4
- package/lib/cache/index.js.map +0 -1
- package/lib/cache/pipes.d.ts +0 -17
- package/lib/cache/pipes.js +0 -10
- package/lib/cache/pipes.js.map +0 -1
- package/lib/cache/types/redis.d.ts +0 -11
- package/lib/cache/types/redis.js +0 -54
- package/lib/cache/types/redis.js.map +0 -1
- package/lib/dbs/base/_instance.d.ts +0 -20
- package/lib/dbs/base/_instance.js +0 -52
- package/lib/dbs/base/_instance.js.map +0 -1
- package/lib/dbs/base/core.d.ts +0 -113
- package/lib/dbs/base/core.js +0 -2
- package/lib/dbs/base/core.js.map +0 -1
- package/lib/dbs/base/types.d.ts +0 -8
- package/lib/dbs/base/types.js +0 -2
- package/lib/dbs/base/types.js.map +0 -1
- package/lib/dbs/index.d.ts +0 -6
- package/lib/dbs/index.js +0 -7
- package/lib/dbs/index.js.map +0 -1
- package/lib/dbs/mongo/api.d.ts +0 -9
- package/lib/dbs/mongo/api.js +0 -149
- package/lib/dbs/mongo/api.js.map +0 -1
- package/lib/dbs/mongo/changes.d.ts +0 -11
- package/lib/dbs/mongo/changes.js +0 -80
- package/lib/dbs/mongo/changes.js.map +0 -1
- package/lib/dbs/mongo/index.d.ts +0 -21
- package/lib/dbs/mongo/index.js +0 -59
- package/lib/dbs/mongo/index.js.map +0 -1
- package/lib/dbs/mongo/query.d.ts +0 -6
- package/lib/dbs/mongo/query.js +0 -72
- package/lib/dbs/mongo/query.js.map +0 -1
- package/lib/dbs/pipes.d.ts +0 -126
- package/lib/dbs/pipes.js +0 -74
- package/lib/dbs/pipes.js.map +0 -1
- package/lib/errors/equippedError.d.ts +0 -6
- package/lib/errors/equippedError.js +0 -12
- package/lib/errors/equippedError.js.map +0 -1
- package/lib/errors/index.d.ts +0 -9
- package/lib/errors/index.js +0 -10
- package/lib/errors/index.js.map +0 -1
- package/lib/errors/requestError.d.ts +0 -14
- package/lib/errors/requestError.js +0 -11
- package/lib/errors/requestError.js.map +0 -1
- package/lib/errors/types/authorizationExpired.d.ts +0 -5
- package/lib/errors/types/authorizationExpired.js +0 -9
- package/lib/errors/types/authorizationExpired.js.map +0 -1
- package/lib/errors/types/badRequestError.d.ts +0 -5
- package/lib/errors/types/badRequestError.js +0 -9
- package/lib/errors/types/badRequestError.js.map +0 -1
- package/lib/errors/types/notAuthenticatedError.d.ts +0 -5
- package/lib/errors/types/notAuthenticatedError.js +0 -9
- package/lib/errors/types/notAuthenticatedError.js.map +0 -1
- package/lib/errors/types/notAuthorizedError.d.ts +0 -5
- package/lib/errors/types/notAuthorizedError.js +0 -9
- package/lib/errors/types/notAuthorizedError.js.map +0 -1
- package/lib/errors/types/notFoundError.d.ts +0 -5
- package/lib/errors/types/notFoundError.js +0 -9
- package/lib/errors/types/notFoundError.js.map +0 -1
- package/lib/errors/types/refreshTokenMisusedError.d.ts +0 -5
- package/lib/errors/types/refreshTokenMisusedError.js +0 -9
- package/lib/errors/types/refreshTokenMisusedError.js.map +0 -1
- package/lib/errors/types/validationError.d.ts +0 -10
- package/lib/errors/types/validationError.js +0 -9
- package/lib/errors/types/validationError.js.map +0 -1
- package/lib/events/base.d.ts +0 -14
- package/lib/events/base.js +0 -6
- package/lib/events/base.js.map +0 -1
- package/lib/events/index.d.ts +0 -4
- package/lib/events/index.js +0 -5
- package/lib/events/index.js.map +0 -1
- package/lib/events/pipes.d.ts +0 -31
- package/lib/events/pipes.js +0 -17
- package/lib/events/pipes.js.map +0 -1
- package/lib/events/types/kafka.d.ts +0 -9
- package/lib/events/types/kafka.js +0 -81
- package/lib/events/types/kafka.js.map +0 -1
- package/lib/events/types/rabbitmq.d.ts +0 -9
- package/lib/events/types/rabbitmq.js +0 -51
- package/lib/events/types/rabbitmq.js.map +0 -1
- package/lib/index.d.ts +0 -1
- package/lib/index.js +0 -2
- package/lib/index.js.map +0 -1
- package/lib/instance/hooks.d.ts +0 -7
- package/lib/instance/hooks.js +0 -26
- package/lib/instance/hooks.js.map +0 -1
- package/lib/instance/index.d.ts +0 -131
- package/lib/instance/index.js +0 -78
- package/lib/instance/index.js.map +0 -1
- package/lib/instance/settings.d.ts +0 -239
- package/lib/instance/settings.js +0 -121
- package/lib/instance/settings.js.map +0 -1
- package/lib/jobs/index.d.ts +0 -2
- package/lib/jobs/index.js +0 -3
- package/lib/jobs/index.js.map +0 -1
- package/lib/jobs/pipes.d.ts +0 -23
- package/lib/jobs/pipes.js +0 -7
- package/lib/jobs/pipes.js.map +0 -1
- package/lib/jobs/types/redis.d.ts +0 -28
- package/lib/jobs/types/redis.js +0 -88
- package/lib/jobs/types/redis.js.map +0 -1
- package/lib/server/impls/base.d.ts +0 -37
- package/lib/server/impls/base.js +0 -205
- package/lib/server/impls/base.js.map +0 -1
- package/lib/server/impls/express.d.ts +0 -7
- package/lib/server/impls/express.js +0 -111
- package/lib/server/impls/express.js.map +0 -1
- package/lib/server/impls/fastify.d.ts +0 -6
- package/lib/server/impls/fastify.js +0 -125
- package/lib/server/impls/fastify.js.map +0 -1
- package/lib/server/index.d.ts +0 -10
- package/lib/server/index.js +0 -10
- package/lib/server/index.js.map +0 -1
- package/lib/server/middlewares/index.d.ts +0 -1
- package/lib/server/middlewares/index.js +0 -2
- package/lib/server/middlewares/index.js.map +0 -1
- package/lib/server/middlewares/parseAuthUser.d.ts +0 -4
- package/lib/server/middlewares/parseAuthUser.js +0 -21
- package/lib/server/middlewares/parseAuthUser.js.map +0 -1
- package/lib/server/middlewares/requireAuthUser.d.ts +0 -16
- package/lib/server/middlewares/requireAuthUser.js +0 -57
- package/lib/server/middlewares/requireAuthUser.js.map +0 -1
- package/lib/server/openapi.d.ts +0 -33
- package/lib/server/openapi.js +0 -202
- package/lib/server/openapi.js.map +0 -1
- package/lib/server/pipes.d.ts +0 -74
- package/lib/server/pipes.js +0 -34
- package/lib/server/pipes.js.map +0 -1
- package/lib/server/requests-auth/apiKeys.d.ts +0 -4
- package/lib/server/requests-auth/apiKeys.js +0 -3
- package/lib/server/requests-auth/apiKeys.js.map +0 -1
- package/lib/server/requests-auth/index.d.ts +0 -2
- package/lib/server/requests-auth/index.js +0 -3
- package/lib/server/requests-auth/index.js.map +0 -1
- package/lib/server/requests-auth/tokens.d.ts +0 -44
- package/lib/server/requests-auth/tokens.js +0 -101
- package/lib/server/requests-auth/tokens.js.map +0 -1
- package/lib/server/requests.d.ts +0 -80
- package/lib/server/requests.js +0 -56
- package/lib/server/requests.js.map +0 -1
- package/lib/server/routes.d.ts +0 -14
- package/lib/server/routes.js +0 -70
- package/lib/server/routes.js.map +0 -1
- package/lib/server/sockets.d.ts +0 -25
- package/lib/server/sockets.js +0 -127
- package/lib/server/sockets.js.map +0 -1
- package/lib/server/types.d.ts +0 -109
- package/lib/server/types.js +0 -26
- package/lib/server/types.js.map +0 -1
- package/lib/types/index.d.ts +0 -3
- package/lib/types/index.js +0 -3
- package/lib/types/index.js.map +0 -1
- package/lib/types/overrides.d.ts +0 -23
- package/lib/types/overrides.js +0 -2
- package/lib/types/overrides.js.map +0 -1
- package/lib/utilities/authProviders.d.ts +0 -28
- package/lib/utilities/authProviders.js +0 -60
- package/lib/utilities/authProviders.js.map +0 -1
- package/lib/utilities/hash.d.ts +0 -2
- package/lib/utilities/hash.js +0 -15
- package/lib/utilities/hash.js.map +0 -1
- package/lib/utilities/index.d.ts +0 -6
- package/lib/utilities/index.js +0 -7
- package/lib/utilities/index.js.map +0 -1
- package/lib/utilities/json.d.ts +0 -2
- package/lib/utilities/json.js +0 -14
- package/lib/utilities/json.js.map +0 -1
- package/lib/utilities/media.d.ts +0 -1
- package/lib/utilities/media.js +0 -11
- package/lib/utilities/media.js.map +0 -1
- package/lib/utilities/random.d.ts +0 -2
- package/lib/utilities/random.js +0 -8
- package/lib/utilities/random.js.map +0 -1
- package/lib/utilities/retry.d.ts +0 -7
- package/lib/utilities/retry.js +0 -12
- package/lib/utilities/retry.js.map +0 -1
- package/lib/validations/index.d.ts +0 -6
- package/lib/validations/index.js +0 -21
- package/lib/validations/index.js.map +0 -1
- package/lib/validations/valleyed.d.ts +0 -54
- package/lib/validations/valleyed.js +0 -32
- package/lib/validations/valleyed.js.map +0 -1
package/lib/dbs/mongo/api.js
DELETED
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
import { ObjectId } from 'mongodb';
|
|
2
|
-
import { parseMongodbQueryParams } from './query';
|
|
3
|
-
import { EquippedError } from '../../errors';
|
|
4
|
-
const idKey = '_id';
|
|
5
|
-
export function getTable(config, collection) {
|
|
6
|
-
async function transform(doc) {
|
|
7
|
-
const docs = Array.isArray(doc) ? doc : [doc];
|
|
8
|
-
const mapped = docs.map((d) => config.mapper(d));
|
|
9
|
-
return Array.isArray(doc) ? mapped : mapped[0];
|
|
10
|
-
}
|
|
11
|
-
function prepInsertValue(value, id, now, skipUpdate) {
|
|
12
|
-
const base = {
|
|
13
|
-
[idKey]: id,
|
|
14
|
-
...(config.options?.skipAudit
|
|
15
|
-
? {}
|
|
16
|
-
: {
|
|
17
|
-
createdAt: now.getTime(),
|
|
18
|
-
...(skipUpdate ? {} : { updatedAt: now.getTime() }),
|
|
19
|
-
}),
|
|
20
|
-
};
|
|
21
|
-
return {
|
|
22
|
-
...value,
|
|
23
|
-
...base,
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
function prepUpdateValue(value, now) {
|
|
27
|
-
return {
|
|
28
|
-
...value,
|
|
29
|
-
$set: {
|
|
30
|
-
...value.$set,
|
|
31
|
-
...(Object.keys(value).length > 0 && !config.options?.skipAudit
|
|
32
|
-
? {
|
|
33
|
-
updatedAt: now.getTime(),
|
|
34
|
-
}
|
|
35
|
-
: {}),
|
|
36
|
-
},
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
const table = {
|
|
40
|
-
config,
|
|
41
|
-
extras: { collection },
|
|
42
|
-
query: async (params) => {
|
|
43
|
-
const results = await parseMongodbQueryParams(collection, params);
|
|
44
|
-
return {
|
|
45
|
-
...results,
|
|
46
|
-
results: (await transform(results.results)),
|
|
47
|
-
};
|
|
48
|
-
},
|
|
49
|
-
findMany: async (filter, options = {}) => {
|
|
50
|
-
const sortArray = Array.isArray(options.sort) ? options.sort : options.sort ? [options.sort] : [];
|
|
51
|
-
const sort = sortArray.map((p) => [p.field, p.desc ? 'desc' : 'asc']);
|
|
52
|
-
const docs = await collection
|
|
53
|
-
.find(filter, {
|
|
54
|
-
session: options.session,
|
|
55
|
-
limit: options.limit,
|
|
56
|
-
sort,
|
|
57
|
-
})
|
|
58
|
-
.toArray();
|
|
59
|
-
return transform(docs);
|
|
60
|
-
},
|
|
61
|
-
findOne: async (filter, options = {}) => {
|
|
62
|
-
const result = await table.findMany(filter, { ...options, limit: 1 });
|
|
63
|
-
return result.at(0) ?? null;
|
|
64
|
-
},
|
|
65
|
-
findById: async (id, options = {}) => {
|
|
66
|
-
const result = await table.findOne({ [idKey]: id }, options);
|
|
67
|
-
return result;
|
|
68
|
-
},
|
|
69
|
-
insertMany: async (values, options = {}) => {
|
|
70
|
-
const now = options.getTime?.() ?? new Date();
|
|
71
|
-
const payload = values.map((value, i) => prepInsertValue(value, options.makeId?.(i) ?? new ObjectId().toString(), now));
|
|
72
|
-
await collection.insertMany(payload, { session: options.session });
|
|
73
|
-
const insertedData = await Promise.all(payload.map(async (data) => await table.findById(data[idKey], options)));
|
|
74
|
-
return insertedData.filter((value) => !!value);
|
|
75
|
-
},
|
|
76
|
-
insertOne: async (values, options = {}) => {
|
|
77
|
-
const result = await table.insertMany([values], options);
|
|
78
|
-
return result[0];
|
|
79
|
-
},
|
|
80
|
-
updateMany: async (filter, values, options = {}) => {
|
|
81
|
-
const now = options.getTime?.() ?? new Date();
|
|
82
|
-
await collection.updateMany(filter, prepUpdateValue(values, now), { session: options.session });
|
|
83
|
-
return table.findMany(filter, options);
|
|
84
|
-
},
|
|
85
|
-
updateOne: async (filter, values, options = {}) => {
|
|
86
|
-
const now = options.getTime?.() ?? new Date();
|
|
87
|
-
const doc = await collection.findOneAndUpdate(filter, prepUpdateValue(values, now), {
|
|
88
|
-
returnDocument: 'after',
|
|
89
|
-
session: options.session,
|
|
90
|
-
});
|
|
91
|
-
return doc ? transform(doc) : null;
|
|
92
|
-
},
|
|
93
|
-
updateById: async (id, values, options = {}) => {
|
|
94
|
-
const result = await table.updateOne({ [idKey]: id }, values, options);
|
|
95
|
-
return result;
|
|
96
|
-
},
|
|
97
|
-
upsertOne: async (filter, values, options = {}) => {
|
|
98
|
-
const now = options.getTime?.() ?? new Date();
|
|
99
|
-
const doc = await collection.findOneAndUpdate(filter, {
|
|
100
|
-
...prepUpdateValue('update' in values ? values.update : {}, now),
|
|
101
|
-
$setOnInsert: prepInsertValue(values.insert, options.makeId?.() ?? new ObjectId().toString(), now, true),
|
|
102
|
-
}, { returnDocument: 'after', session: options.session, upsert: true });
|
|
103
|
-
return transform(doc);
|
|
104
|
-
},
|
|
105
|
-
deleteMany: async (filter, options = {}) => {
|
|
106
|
-
const docs = await table.findMany(filter, options);
|
|
107
|
-
await collection.deleteMany(filter, { session: options.session });
|
|
108
|
-
return docs;
|
|
109
|
-
},
|
|
110
|
-
deleteOne: async (filter, options) => {
|
|
111
|
-
const doc = await collection.findOneAndDelete(filter, { session: options?.session });
|
|
112
|
-
return doc ? transform(doc) : null;
|
|
113
|
-
},
|
|
114
|
-
deleteById: async (id, options) => {
|
|
115
|
-
const result = await table.deleteOne({ [idKey]: id }, options);
|
|
116
|
-
return result;
|
|
117
|
-
},
|
|
118
|
-
bulkWrite: async (operations, options = {}) => {
|
|
119
|
-
const bulk = collection.initializeUnorderedBulkOp({ session: options.session });
|
|
120
|
-
const now = options.getTime?.() ?? new Date();
|
|
121
|
-
operations.forEach((operation, i) => {
|
|
122
|
-
switch (operation.op) {
|
|
123
|
-
case 'insert':
|
|
124
|
-
bulk.insert(prepInsertValue(operation.value, operation.makeId?.(i) ?? new ObjectId().toString(), now));
|
|
125
|
-
break;
|
|
126
|
-
case 'delete':
|
|
127
|
-
bulk.find(operation.filter).delete();
|
|
128
|
-
break;
|
|
129
|
-
case 'update':
|
|
130
|
-
bulk.find(operation.filter).update(prepUpdateValue(operation.value, now));
|
|
131
|
-
break;
|
|
132
|
-
case 'upsert':
|
|
133
|
-
bulk.find(operation.filter)
|
|
134
|
-
.upsert()
|
|
135
|
-
.update({
|
|
136
|
-
...prepUpdateValue('update' in operation ? operation.update : {}, now),
|
|
137
|
-
$setOnInsert: prepInsertValue(operation.insert, operation.makeId?.(i) ?? new ObjectId().toString(), now, true),
|
|
138
|
-
});
|
|
139
|
-
break;
|
|
140
|
-
default:
|
|
141
|
-
throw new EquippedError(`Unknown bulkWrite operation`, { operation });
|
|
142
|
-
}
|
|
143
|
-
});
|
|
144
|
-
await bulk.execute({ session: options.session });
|
|
145
|
-
},
|
|
146
|
-
};
|
|
147
|
-
return table;
|
|
148
|
-
}
|
|
149
|
-
//# sourceMappingURL=api.js.map
|
package/lib/dbs/mongo/api.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/dbs/mongo/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,QAAQ,EAAmD,MAAM,SAAS,CAAA;AAG/F,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAG5C,MAAM,KAAK,GAAG,KAAK,CAAA;AAGnB,MAAM,UAAU,QAAQ,CACvB,MAAkC,EAClC,UAA6B;IAO7B,KAAK,UAAU,SAAS,CAAC,GAAc;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAU,CAAC,CAAC,CAAA;QACzD,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAC/C,CAAC;IAED,SAAS,eAAe,CAAC,KAA8B,EAAE,EAAU,EAAE,GAAS,EAAE,UAAoB;QACnG,MAAM,IAAI,GAAuB;YAChC,CAAC,KAAK,CAAC,EAAE,EAAE;YACX,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS;gBAC5B,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC;oBACA,SAAS,EAAE,GAAG,CAAC,OAAO,EAAE;oBACxB,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;iBACnD,CAAC;SACJ,CAAA;QACD,OAAO;YACN,GAAG,KAAK;YACR,GAAG,IAAI;SACuC,CAAA;IAChD,CAAC;IAED,SAAS,eAAe,CAAC,KAA8B,EAAE,GAAS;QACjE,OAAO;YACN,GAAG,KAAK;YACR,IAAI,EAAE;gBACL,GAAG,KAAK,CAAC,IAAI;gBACb,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS;oBAC9D,CAAC,CAAC;wBACA,SAAS,EAAE,GAAG,CAAC,OAAO,EAAE;qBACxB;oBACF,CAAC,CAAC,EAAE,CAAC;aACN;SACD,CAAA;IACF,CAAC;IAED,MAAM,KAAK,GAAyE;QACnF,MAAM;QACN,MAAM,EAAE,EAAE,UAAU,EAAE;QAEtB,KAAK,EAAE,KAAK,EAAE,MAAmB,EAAE,EAAE;YACpC,MAAM,OAAO,GAAG,MAAM,uBAAuB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;YACjE,OAAO;gBACN,GAAG,OAAO;gBACV,OAAO,EAAE,CAAC,MAAM,SAAS,CAAC,OAAO,CAAC,OAAc,CAAC,CAAQ;aACzD,CAAA;QACF,CAAC;QAED,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE;YACxC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YACjG,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAA4B,CAAC,CAAA;YAChG,MAAM,IAAI,GAAG,MAAM,UAAU;iBAC3B,IAAI,CAAC,MAAM,EAAE;gBACb,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,IAAI;aACJ,CAAC;iBACD,OAAO,EAAE,CAAA;YACX,OAAO,SAAS,CAAC,IAAI,CAAC,CAAA;QACvB,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE;YACvC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;YACrE,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;QAC5B,CAAC;QAED,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE;YACpC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAwB,EAAE,OAAO,CAAC,CAAA;YAClF,OAAO,MAAM,CAAA;QACd,CAAC;QAED,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE;YAC1C,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,CAAA;YAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC,CAAA;YACvH,MAAM,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;YAElE,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;YACtH,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QAC/C,CAAC;QAED,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE;YACzC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAA;YACxD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE;YAClD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,CAAA;YAC7C,MAAM,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;YAC/F,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACvC,CAAC;QAED,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE;YACjD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,CAAA;YAC7C,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;gBACnF,cAAc,EAAE,OAAO;gBACvB,OAAO,EAAE,OAAO,CAAC,OAAO;aACxB,CAAC,CAAA;YACF,OAAO,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QACnC,CAAC;QAED,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE;YAC9C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAwB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;YAC5F,OAAO,MAAM,CAAA;QACd,CAAC;QAED,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE;YACjD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,CAAA;YAE7C,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAC5C,MAAM,EACN;gBACC,GAAG,eAAe,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC;gBAEhE,YAAY,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,IAAI,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC;aACxG,EACD,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CACnE,CAAA;YAED,OAAO,SAAS,CAAC,GAAG,CAAC,CAAA;QACtB,CAAC;QAED,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE;YAC1C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;YAClD,MAAM,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;YACjE,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;YACpC,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;YACpF,OAAO,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QACnC,CAAC;QAED,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE;YACjC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAwB,EAAE,OAAO,CAAC,CAAA;YACpF,OAAO,MAAM,CAAA;QACd,CAAC;QAED,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE;YAC7C,MAAM,IAAI,GAAG,UAAU,CAAC,yBAAyB,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;YAC/E,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,CAAA;YAC7C,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;gBACnC,QAAQ,SAAS,CAAC,EAAE,EAAE,CAAC;oBACtB,KAAK,QAAQ;wBACZ,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC,CAAA;wBACtG,MAAK;oBACN,KAAK,QAAQ;wBACZ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAA;wBACpC,MAAK;oBACN,KAAK,QAAQ;wBACZ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAA;wBACzE,MAAK;oBACN,KAAK,QAAQ;wBACZ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;6BACzB,MAAM,EAAE;6BACR,MAAM,CAAC;4BACP,GAAG,eAAe,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC;4BACtE,YAAY,EAAE,eAAe,CAC5B,SAAS,CAAC,MAAa,EACvB,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAClD,GAAG,EACH,IAAI,CACJ;yBACD,CAAC,CAAA;wBACH,MAAK;oBACN;wBACC,MAAM,IAAI,aAAa,CAAC,6BAA6B,EAAE,EAAE,SAAS,EAAE,CAAC,CAAA;gBACvE,CAAC;YACF,CAAC,CAAC,CAAA;YACF,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;QACjD,CAAC;KACD,CAAA;IAED,OAAO,KAAK,CAAA;AACb,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { MongoClient } from 'mongodb';
|
|
2
|
-
import { DbChange } from '../base/_instance';
|
|
3
|
-
import * as core from '../base/core';
|
|
4
|
-
import { DbChangeConfig } from '../base/types';
|
|
5
|
-
import { MongoDbConfig } from '../pipes';
|
|
6
|
-
export declare class MongoDbChange<Model extends core.Model<{
|
|
7
|
-
_id: string;
|
|
8
|
-
}>, Entity extends core.Entity> extends DbChange<Model, Entity> {
|
|
9
|
-
#private;
|
|
10
|
-
constructor(config: MongoDbConfig, change: DbChangeConfig, client: MongoClient, dbName: string, colName: string, callbacks: core.DbChangeCallbacks<Model, Entity>, mapper: (model: Model) => Entity);
|
|
11
|
-
}
|
package/lib/dbs/mongo/changes.js
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { ObjectId } from 'mongodb';
|
|
2
|
-
import { EquippedError } from '../../errors';
|
|
3
|
-
import { Instance } from '../../instance';
|
|
4
|
-
import { retry } from '../../utilities';
|
|
5
|
-
import { differ } from '../../validations';
|
|
6
|
-
import { DbChange, TopicPrefix } from '../base/_instance';
|
|
7
|
-
export class MongoDbChange extends DbChange {
|
|
8
|
-
#started = false;
|
|
9
|
-
constructor(config, change, client, dbName, colName, callbacks, mapper) {
|
|
10
|
-
super(change, callbacks, mapper);
|
|
11
|
-
const hydrate = (data) => data._id
|
|
12
|
-
? {
|
|
13
|
-
...data,
|
|
14
|
-
_id: makeId(data._id['$oid'] ?? data._id),
|
|
15
|
-
}
|
|
16
|
-
: undefined;
|
|
17
|
-
const dbColName = `${dbName}.${colName}`;
|
|
18
|
-
const topic = `${TopicPrefix}.${dbColName}`;
|
|
19
|
-
const hexId = '5f5f65717569707065645f5f';
|
|
20
|
-
const TestId = makeId(hexId);
|
|
21
|
-
const condition = { _id: TestId };
|
|
22
|
-
change.eventBus.createSubscriber(topic, async (data) => {
|
|
23
|
-
const op = data.op;
|
|
24
|
-
let before = JSON.parse(data.before ?? 'null');
|
|
25
|
-
let after = JSON.parse(data.after ?? 'null');
|
|
26
|
-
if (before)
|
|
27
|
-
before = hydrate(before);
|
|
28
|
-
if (after)
|
|
29
|
-
after = hydrate(after);
|
|
30
|
-
if (before?.__id === TestId || after?.__id === TestId)
|
|
31
|
-
return;
|
|
32
|
-
if (op === 'c' && this.callbacks.created && after)
|
|
33
|
-
await this.callbacks.created({
|
|
34
|
-
before: null,
|
|
35
|
-
after: this.mapper(after),
|
|
36
|
-
});
|
|
37
|
-
else if (op === 'u' && this.callbacks.updated && before && after)
|
|
38
|
-
await this.callbacks.updated({
|
|
39
|
-
before: this.mapper(before),
|
|
40
|
-
after: this.mapper(after),
|
|
41
|
-
changes: differ.from(differ.diff(before, after)),
|
|
42
|
-
});
|
|
43
|
-
else if (op === 'd' && this.callbacks.deleted && before)
|
|
44
|
-
await this.callbacks.deleted({
|
|
45
|
-
before: this.mapper(before),
|
|
46
|
-
after: null,
|
|
47
|
-
});
|
|
48
|
-
}, { skipScope: true });
|
|
49
|
-
Instance.on('start', async () => {
|
|
50
|
-
if (this.#started)
|
|
51
|
-
return;
|
|
52
|
-
this.#started = true;
|
|
53
|
-
const collection = client.db(dbName).collection(colName);
|
|
54
|
-
await retry(async () => {
|
|
55
|
-
const started = await this.configureConnector(topic, {
|
|
56
|
-
'connector.class': 'io.debezium.connector.mongodb.MongoDbConnector',
|
|
57
|
-
'capture.mode': 'change_streams_update_full_with_pre_image',
|
|
58
|
-
'mongodb.connection.string': config.uri,
|
|
59
|
-
'collection.include.list': dbColName,
|
|
60
|
-
'snapshot.mode': 'when_needed',
|
|
61
|
-
});
|
|
62
|
-
if (started)
|
|
63
|
-
return { done: true, value: true };
|
|
64
|
-
await collection.findOneAndUpdate(condition, { $set: { colName } }, { upsert: true });
|
|
65
|
-
await collection.findOneAndDelete(condition);
|
|
66
|
-
Instance.get().log.warn(`Waiting for db changes for ${dbColName} to start...`);
|
|
67
|
-
return { done: false };
|
|
68
|
-
}, 6, 10_000).catch((err) => Instance.crash(new EquippedError(`Failed to start db changes`, { dbColName }, err)));
|
|
69
|
-
}, 10);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
const makeId = (id) => {
|
|
73
|
-
try {
|
|
74
|
-
return new ObjectId(id);
|
|
75
|
-
}
|
|
76
|
-
catch {
|
|
77
|
-
return id;
|
|
78
|
-
}
|
|
79
|
-
};
|
|
80
|
-
//# sourceMappingURL=changes.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"changes.js","sourceRoot":"","sources":["../../../src/dbs/mongo/changes.ts"],"names":[],"mappings":"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"}
|
package/lib/dbs/mongo/index.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { ClientSession, ObjectId } from 'mongodb';
|
|
2
|
-
import { MongoDbConfig } from '../pipes';
|
|
3
|
-
import { Db } from '../base/_instance';
|
|
4
|
-
import * as core from '../base/core';
|
|
5
|
-
import { DbConfig } from '../base/types';
|
|
6
|
-
export declare class MongoDb extends Db<{
|
|
7
|
-
_id: string;
|
|
8
|
-
}> {
|
|
9
|
-
#private;
|
|
10
|
-
private mongoConfig;
|
|
11
|
-
constructor(mongoConfig: MongoDbConfig, dbConfig: DbConfig);
|
|
12
|
-
session<T>(callback: (session: ClientSession) => Promise<T>): Promise<T>;
|
|
13
|
-
id(): ObjectId;
|
|
14
|
-
use<Model extends core.Model<{
|
|
15
|
-
_id: string;
|
|
16
|
-
}>, Entity extends core.Entity>(config: core.Config<Model, Entity>): core.Table<{
|
|
17
|
-
_id: string;
|
|
18
|
-
}, Model, Entity, {
|
|
19
|
-
collection: import("mongodb").Collection<Model>;
|
|
20
|
-
}>;
|
|
21
|
-
}
|
package/lib/dbs/mongo/index.js
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { MongoClient, ObjectId } from 'mongodb';
|
|
2
|
-
import { getTable } from './api';
|
|
3
|
-
import { MongoDbChange } from './changes';
|
|
4
|
-
import { EquippedError } from '../../errors';
|
|
5
|
-
import { Instance } from '../../instance';
|
|
6
|
-
import { Db } from '../base/_instance';
|
|
7
|
-
export class MongoDb extends Db {
|
|
8
|
-
mongoConfig;
|
|
9
|
-
#client;
|
|
10
|
-
#cols = [];
|
|
11
|
-
constructor(mongoConfig, dbConfig) {
|
|
12
|
-
super(dbConfig);
|
|
13
|
-
this.mongoConfig = mongoConfig;
|
|
14
|
-
this.#client = new MongoClient(mongoConfig.uri);
|
|
15
|
-
Instance.on('start', async () => {
|
|
16
|
-
await this.#client.connect();
|
|
17
|
-
const grouped = this.#cols.reduce((acc, cur) => {
|
|
18
|
-
if (!acc[cur.db])
|
|
19
|
-
acc[cur.db] = [];
|
|
20
|
-
acc[cur.db].push(cur.col);
|
|
21
|
-
return acc;
|
|
22
|
-
}, {});
|
|
23
|
-
const options = {
|
|
24
|
-
changeStreamPreAndPostImages: { enabled: true },
|
|
25
|
-
};
|
|
26
|
-
await Promise.all(Object.entries(grouped).map(async ([dbName, colNames]) => {
|
|
27
|
-
const db = this.#client.db(dbName);
|
|
28
|
-
const collections = await db.listCollections().toArray();
|
|
29
|
-
return colNames.map(async (colName) => {
|
|
30
|
-
const existing = collections.find((collection) => collection.name === colName);
|
|
31
|
-
if (existing) {
|
|
32
|
-
if (existing.options?.changeStreamPreAndPostImages?.enabled !== options.changeStreamPreAndPostImages.enabled)
|
|
33
|
-
await db.command({ collMod: colName, ...options });
|
|
34
|
-
}
|
|
35
|
-
else
|
|
36
|
-
await db.createCollection(colName, options);
|
|
37
|
-
});
|
|
38
|
-
}));
|
|
39
|
-
}, 3);
|
|
40
|
-
Instance.on('close', async () => this.#client.close(), 1);
|
|
41
|
-
}
|
|
42
|
-
async session(callback) {
|
|
43
|
-
return this.#client.withSession(callback);
|
|
44
|
-
}
|
|
45
|
-
id() {
|
|
46
|
-
return new ObjectId();
|
|
47
|
-
}
|
|
48
|
-
use(config) {
|
|
49
|
-
if (config.change) {
|
|
50
|
-
if (!this.config.changes)
|
|
51
|
-
Instance.crash(new EquippedError('Db changes are not enabled in the configuration.', { config }));
|
|
52
|
-
new MongoDbChange(this.mongoConfig, this.config.changes, this.#client, this.getScopedDb(config.db), config.col, config.change, config.mapper);
|
|
53
|
-
}
|
|
54
|
-
this.#cols.push({ db: this.getScopedDb(config.db), col: config.col });
|
|
55
|
-
const collection = this.#client.db(this.getScopedDb(config.db)).collection(config.col);
|
|
56
|
-
return getTable(config, collection);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dbs/mongo/index.ts"],"names":[],"mappings":"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"}
|
package/lib/dbs/mongo/query.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { Collection } from 'mongodb';
|
|
2
|
-
import * as core from '../base/core';
|
|
3
|
-
import { type QueryParams, type QueryResults } from '../pipes';
|
|
4
|
-
export declare const parseMongodbQueryParams: <Model extends core.Model<{
|
|
5
|
-
_id: string;
|
|
6
|
-
}>>(collection: Collection<Model>, params: QueryParams) => Promise<QueryResults<Model>>;
|
package/lib/dbs/mongo/query.js
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { QueryKeys } from '../pipes';
|
|
2
|
-
export const parseMongodbQueryParams = async (collection, params) => {
|
|
3
|
-
const query = [];
|
|
4
|
-
const where = buildWhereQuery(params.where, params.whereType);
|
|
5
|
-
if (where)
|
|
6
|
-
query.push(where);
|
|
7
|
-
const auth = buildWhereQuery(params.auth, params.authType);
|
|
8
|
-
if (auth)
|
|
9
|
-
query.push(auth);
|
|
10
|
-
if (params.search && params.search.fields.length > 0) {
|
|
11
|
-
const search = params.search.fields.map((field) => ({
|
|
12
|
-
[field]: {
|
|
13
|
-
$regex: new RegExp(params.search.value, 'i'),
|
|
14
|
-
},
|
|
15
|
-
}));
|
|
16
|
-
query.push({ $or: search });
|
|
17
|
-
}
|
|
18
|
-
const totalClause = {};
|
|
19
|
-
if (query.length > 0)
|
|
20
|
-
totalClause['$and'] = query;
|
|
21
|
-
const sort = params.sort.map((p) => [p.field, p.desc ? 'desc' : 'asc']);
|
|
22
|
-
const all = params.all ?? false;
|
|
23
|
-
const limit = params.limit;
|
|
24
|
-
const page = params.page;
|
|
25
|
-
const total = await collection.countDocuments(totalClause);
|
|
26
|
-
let builtQuery = collection.find(totalClause);
|
|
27
|
-
if (sort.length)
|
|
28
|
-
builtQuery = builtQuery.sort(Object.fromEntries(sort));
|
|
29
|
-
if (!all && limit) {
|
|
30
|
-
builtQuery = builtQuery.limit(limit);
|
|
31
|
-
if (page)
|
|
32
|
-
builtQuery = builtQuery.skip((page - 1) * limit);
|
|
33
|
-
}
|
|
34
|
-
const results = await builtQuery.toArray();
|
|
35
|
-
const start = 1;
|
|
36
|
-
const last = Math.ceil(total / limit) || 1;
|
|
37
|
-
const next = page >= last ? null : page + 1;
|
|
38
|
-
const previous = page <= start ? null : page - 1;
|
|
39
|
-
return {
|
|
40
|
-
pages: { start, last, next, previous, current: page },
|
|
41
|
-
docs: { limit, total, count: results.length },
|
|
42
|
-
results: results,
|
|
43
|
-
};
|
|
44
|
-
};
|
|
45
|
-
function isWhereBlock(param) {
|
|
46
|
-
return Object.values(QueryKeys).includes(param.condition);
|
|
47
|
-
}
|
|
48
|
-
const buildWhereQuery = (params, key = QueryKeys.and) => {
|
|
49
|
-
const where = (Array.isArray(params) ? params : [])
|
|
50
|
-
.map((param) => {
|
|
51
|
-
if (isWhereBlock(param))
|
|
52
|
-
return buildWhereQuery(param.value, param.condition);
|
|
53
|
-
const { field } = param;
|
|
54
|
-
const checkedField = field === 'id' ? '_id' : (field ?? '');
|
|
55
|
-
const checkedValue = param.value === undefined ? '' : param.value;
|
|
56
|
-
return {
|
|
57
|
-
field: checkedField,
|
|
58
|
-
value: checkedValue,
|
|
59
|
-
condition: param.condition,
|
|
60
|
-
isWhere: true,
|
|
61
|
-
};
|
|
62
|
-
})
|
|
63
|
-
.filter((c) => !!c)
|
|
64
|
-
.map((c) => {
|
|
65
|
-
if (c.isWhere)
|
|
66
|
-
return { [`${c.field}`]: { [`$${c.condition}`]: c.value } };
|
|
67
|
-
else
|
|
68
|
-
return c;
|
|
69
|
-
});
|
|
70
|
-
return where.length > 0 ? { [`$${key}`]: where } : null;
|
|
71
|
-
};
|
|
72
|
-
//# sourceMappingURL=query.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/dbs/mongo/query.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAoF,MAAM,UAAU,CAAA;AAEtH,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAC3C,UAA6B,EAC7B,MAAmB,EACY,EAAE;IAEjC,MAAM,KAAK,GAAyC,EAAE,CAAA;IACtD,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;IAC7D,IAAI,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5B,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC1D,IAAI,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC1B,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACnD,CAAC,KAAK,CAAC,EAAE;gBACR,MAAM,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,MAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aAC7C;SACD,CAAC,CAAC,CAAA;QACH,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAA;IAC5B,CAAC;IACD,MAAM,WAAW,GAAG,EAAE,CAAA;IACtB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,WAAW,CAAC,MAAM,CAAC,GAAG,KAAK,CAAA;IAGjD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;IAGvE,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,KAAK,CAAA;IAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;IAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;IAExB,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;IAE1D,IAAI,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAC7C,IAAI,IAAI,CAAC,MAAM;QAAE,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAA;IACvE,IAAI,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC;QACnB,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACpC,IAAI,IAAI;YAAE,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAA;IAC3D,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,CAAA;IAC1C,MAAM,KAAK,GAAG,CAAC,CAAA;IACf,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;IAC1C,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAA;IAC3C,MAAM,QAAQ,GAAG,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAA;IAEhD,OAAO;QACN,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;QACrD,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE;QAC7C,OAAO,EAAE,OAAgB;KACK,CAAA;AAChC,CAAC,CAAA;AAED,SAAS,YAAY,CAAC,KAAuB;IAC5C,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAsB,CAAC,CAAA;AACvE,CAAC;AAED,MAAM,eAAe,GAAG,CAAC,MAA0B,EAAE,MAAiB,SAAS,CAAC,GAAG,EAA8C,EAAE;IAClI,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;SACjD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACd,IAAI,YAAY,CAAC,KAAK,CAAC;YAAE,OAAO,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;QAC7E,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;QACvB,MAAM,YAAY,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;QAC3D,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAA;QACjE,OAAO;YACN,KAAK,EAAE,YAAY;YACnB,KAAK,EAAE,YAAY;YACnB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO,EAAE,IAAI;SACb,CAAA;IACF,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SAClB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACV,IAAI,CAAC,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAA;;YACrE,OAAO,CAAC,CAAA;IACd,CAAC,CAAC,CAAA;IAEH,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AACxD,CAAC,CAAA"}
|
package/lib/dbs/pipes.d.ts
DELETED
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
import { ConditionalObjectKeys, Pipe, PipeInput, PipeOutput } from 'valleyed';
|
|
2
|
-
export declare enum QueryKeys {
|
|
3
|
-
and = "and",
|
|
4
|
-
or = "or"
|
|
5
|
-
}
|
|
6
|
-
export declare enum Conditions {
|
|
7
|
-
lt = "lt",
|
|
8
|
-
lte = "lte",
|
|
9
|
-
gt = "gt",
|
|
10
|
-
gte = "gte",
|
|
11
|
-
eq = "eq",
|
|
12
|
-
ne = "ne",
|
|
13
|
-
in = "in",
|
|
14
|
-
nin = "nin",
|
|
15
|
-
exists = "exists"
|
|
16
|
-
}
|
|
17
|
-
export declare function queryParamsPipe(): Pipe<{
|
|
18
|
-
all: boolean | undefined;
|
|
19
|
-
limit: number | undefined;
|
|
20
|
-
page: number | undefined;
|
|
21
|
-
search: {
|
|
22
|
-
value: string;
|
|
23
|
-
fields: string[];
|
|
24
|
-
} | null | undefined;
|
|
25
|
-
sort: {
|
|
26
|
-
field: string;
|
|
27
|
-
desc: boolean | undefined;
|
|
28
|
-
}[] | undefined;
|
|
29
|
-
whereType: QueryKeys | undefined;
|
|
30
|
-
where: ({
|
|
31
|
-
field: string;
|
|
32
|
-
value: any;
|
|
33
|
-
condition: Conditions | undefined;
|
|
34
|
-
} | {
|
|
35
|
-
condition: QueryKeys | undefined;
|
|
36
|
-
value: {
|
|
37
|
-
field: string;
|
|
38
|
-
value: any;
|
|
39
|
-
condition: Conditions | undefined;
|
|
40
|
-
}[];
|
|
41
|
-
})[] | undefined;
|
|
42
|
-
}, {
|
|
43
|
-
auth: ({
|
|
44
|
-
field: string;
|
|
45
|
-
value: any;
|
|
46
|
-
condition: Conditions;
|
|
47
|
-
} | {
|
|
48
|
-
condition: QueryKeys;
|
|
49
|
-
value: {
|
|
50
|
-
field: string;
|
|
51
|
-
value: any;
|
|
52
|
-
condition: Conditions;
|
|
53
|
-
}[];
|
|
54
|
-
})[];
|
|
55
|
-
authType: QueryKeys;
|
|
56
|
-
all: boolean;
|
|
57
|
-
limit: number;
|
|
58
|
-
page: number;
|
|
59
|
-
search: {
|
|
60
|
-
value: string;
|
|
61
|
-
fields: string[];
|
|
62
|
-
} | null;
|
|
63
|
-
sort: {
|
|
64
|
-
field: string;
|
|
65
|
-
desc: boolean;
|
|
66
|
-
}[];
|
|
67
|
-
whereType: QueryKeys;
|
|
68
|
-
where: ({
|
|
69
|
-
field: string;
|
|
70
|
-
value: any;
|
|
71
|
-
condition: Conditions;
|
|
72
|
-
} | {
|
|
73
|
-
condition: QueryKeys;
|
|
74
|
-
value: {
|
|
75
|
-
field: string;
|
|
76
|
-
value: any;
|
|
77
|
-
condition: Conditions;
|
|
78
|
-
}[];
|
|
79
|
-
})[];
|
|
80
|
-
}, any>;
|
|
81
|
-
export declare function queryResultsPipe<T>(model: Pipe<any, T, any>): Pipe<{
|
|
82
|
-
pages: {
|
|
83
|
-
current: number;
|
|
84
|
-
start: number;
|
|
85
|
-
last: number;
|
|
86
|
-
previous: number | null;
|
|
87
|
-
next: number | null;
|
|
88
|
-
};
|
|
89
|
-
docs: {
|
|
90
|
-
limit: number;
|
|
91
|
-
total: number;
|
|
92
|
-
count: number;
|
|
93
|
-
};
|
|
94
|
-
results: any[];
|
|
95
|
-
}, {
|
|
96
|
-
pages: {
|
|
97
|
-
current: number;
|
|
98
|
-
start: number;
|
|
99
|
-
last: number;
|
|
100
|
-
previous: number | null;
|
|
101
|
-
next: number | null;
|
|
102
|
-
};
|
|
103
|
-
docs: {
|
|
104
|
-
limit: number;
|
|
105
|
-
total: number;
|
|
106
|
-
count: number;
|
|
107
|
-
};
|
|
108
|
-
results: T[];
|
|
109
|
-
}, any>;
|
|
110
|
-
export declare function wrapQueryParams(params: QueryParamsInput): QueryParams;
|
|
111
|
-
export type QueryParams = PipeOutput<ReturnType<typeof queryParamsPipe>>;
|
|
112
|
-
export type QueryParamsInput = ConditionalObjectKeys<PipeInput<ReturnType<typeof queryParamsPipe>>>;
|
|
113
|
-
export type QueryWhereClause = QueryParams['where'][number];
|
|
114
|
-
export type QueryWhere = Extract<QueryWhereClause, {
|
|
115
|
-
field: string;
|
|
116
|
-
}>;
|
|
117
|
-
export type QueryWhereBlock = Exclude<QueryWhereClause, {
|
|
118
|
-
field: string;
|
|
119
|
-
}>;
|
|
120
|
-
export type QueryResults<T> = PipeOutput<ReturnType<typeof queryResultsPipe<T>>>;
|
|
121
|
-
export declare const mongoDbConfigPipe: Pipe<{
|
|
122
|
-
uri: string;
|
|
123
|
-
}, {
|
|
124
|
-
uri: string;
|
|
125
|
-
}, any>;
|
|
126
|
-
export type MongoDbConfig = PipeOutput<typeof mongoDbConfigPipe>;
|
package/lib/dbs/pipes.js
DELETED
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { v } from 'valleyed';
|
|
2
|
-
import { Instance } from '../instance';
|
|
3
|
-
export var QueryKeys;
|
|
4
|
-
(function (QueryKeys) {
|
|
5
|
-
QueryKeys["and"] = "and";
|
|
6
|
-
QueryKeys["or"] = "or";
|
|
7
|
-
})(QueryKeys || (QueryKeys = {}));
|
|
8
|
-
export var Conditions;
|
|
9
|
-
(function (Conditions) {
|
|
10
|
-
Conditions["lt"] = "lt";
|
|
11
|
-
Conditions["lte"] = "lte";
|
|
12
|
-
Conditions["gt"] = "gt";
|
|
13
|
-
Conditions["gte"] = "gte";
|
|
14
|
-
Conditions["eq"] = "eq";
|
|
15
|
-
Conditions["ne"] = "ne";
|
|
16
|
-
Conditions["in"] = "in";
|
|
17
|
-
Conditions["nin"] = "nin";
|
|
18
|
-
Conditions["exists"] = "exists";
|
|
19
|
-
})(Conditions || (Conditions = {}));
|
|
20
|
-
const queryKeys = v.catch(v.defaults(v.in([QueryKeys.and, QueryKeys.or]), QueryKeys.and), QueryKeys.and);
|
|
21
|
-
const queryWhere = v.object({
|
|
22
|
-
field: v.string(),
|
|
23
|
-
value: v.any(),
|
|
24
|
-
condition: v.catch(v.defaults(v.in(Object.values(Conditions)), Conditions.eq), Conditions.eq),
|
|
25
|
-
});
|
|
26
|
-
const queryWhereBlock = v.object({
|
|
27
|
-
condition: queryKeys,
|
|
28
|
-
value: v.array(queryWhere),
|
|
29
|
-
});
|
|
30
|
-
const queryWhereClause = v.defaults(v.array(v.or([queryWhere, queryWhereBlock])), []);
|
|
31
|
-
export function queryParamsPipe() {
|
|
32
|
-
const pagLimit = Instance.get().settings.server?.requests.paginationDefaultLimit ?? 100;
|
|
33
|
-
return v.meta(v
|
|
34
|
-
.object({
|
|
35
|
-
all: v.defaults(v.boolean(), false),
|
|
36
|
-
limit: v.catch(v.defaults(v.number().pipe(v.lte(pagLimit)), pagLimit), pagLimit),
|
|
37
|
-
page: v.catch(v.defaults(v.number().pipe(v.gte(1)), 1), 1),
|
|
38
|
-
search: v.defaults(v.nullish(v.object({
|
|
39
|
-
value: v.string(),
|
|
40
|
-
fields: v.array(v.string()),
|
|
41
|
-
})), null),
|
|
42
|
-
sort: v.defaults(v.array(v.object({
|
|
43
|
-
field: v.string(),
|
|
44
|
-
desc: v.defaults(v.boolean(), false),
|
|
45
|
-
})), []),
|
|
46
|
-
whereType: queryKeys,
|
|
47
|
-
where: queryWhereClause,
|
|
48
|
-
})
|
|
49
|
-
.pipe((p) => ({ ...p, auth: [], authType: QueryKeys.and })), { title: 'Query Params', $refId: 'QueryParams' });
|
|
50
|
-
}
|
|
51
|
-
export function queryResultsPipe(model) {
|
|
52
|
-
return v.object({
|
|
53
|
-
pages: v.object({
|
|
54
|
-
current: v.number(),
|
|
55
|
-
start: v.number(),
|
|
56
|
-
last: v.number(),
|
|
57
|
-
previous: v.nullable(v.number()),
|
|
58
|
-
next: v.nullable(v.number()),
|
|
59
|
-
}),
|
|
60
|
-
docs: v.object({
|
|
61
|
-
limit: v.number(),
|
|
62
|
-
total: v.number(),
|
|
63
|
-
count: v.number(),
|
|
64
|
-
}),
|
|
65
|
-
results: v.array(model),
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
export function wrapQueryParams(params) {
|
|
69
|
-
return v.assert(queryParamsPipe(), params);
|
|
70
|
-
}
|
|
71
|
-
export const mongoDbConfigPipe = v.meta(v.object({
|
|
72
|
-
uri: v.string(),
|
|
73
|
-
}), { title: 'Mongodb Config', $refId: 'MongodbConfig' });
|
|
74
|
-
//# sourceMappingURL=pipes.js.map
|
package/lib/dbs/pipes.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pipes.js","sourceRoot":"","sources":["../../src/dbs/pipes.ts"],"names":[],"mappings":"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"}
|