mormati-mongoose 0.1.24 → 0.1.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/helper/query/engine/engine.type.d.ts +22 -0
  2. package/dist/helper/query/engine/engine.type.js +3 -0
  3. package/dist/helper/query/engine/engine.type.js.map +1 -0
  4. package/dist/helper/query/engine/group/index.d.ts +92 -0
  5. package/dist/helper/query/engine/group/index.js +14 -0
  6. package/dist/helper/query/engine/group/index.js.map +1 -0
  7. package/dist/helper/query/{query.engine.d.ts → engine/index.d.ts} +1 -1
  8. package/dist/helper/query/engine/index.js +53 -0
  9. package/dist/helper/query/engine/index.js.map +1 -0
  10. package/dist/helper/query/engine/limit/index.d.ts +8 -0
  11. package/dist/helper/query/engine/limit/index.js +9 -0
  12. package/dist/helper/query/engine/limit/index.js.map +1 -0
  13. package/dist/helper/query/engine/lookup/index.d.ts +6 -0
  14. package/dist/helper/query/engine/lookup/index.js +46 -0
  15. package/dist/helper/query/engine/lookup/index.js.map +1 -0
  16. package/dist/helper/query/engine/lookup/lookup.pipe.d.ts +8 -0
  17. package/dist/helper/query/engine/lookup/lookup.pipe.js +123 -0
  18. package/dist/helper/query/engine/lookup/lookup.pipe.js.map +1 -0
  19. package/dist/helper/query/engine/match/index.d.ts +56 -0
  20. package/dist/helper/query/engine/match/index.js +77 -0
  21. package/dist/helper/query/engine/match/index.js.map +1 -0
  22. package/dist/helper/query/engine/match/match.search.d.ts +7 -0
  23. package/dist/helper/query/engine/match/match.search.js +37 -0
  24. package/dist/helper/query/engine/match/match.search.js.map +1 -0
  25. package/dist/helper/query/engine/project/index.d.ts +8 -0
  26. package/dist/helper/query/engine/project/index.js +15 -0
  27. package/dist/helper/query/engine/project/index.js.map +1 -0
  28. package/dist/helper/query/engine/skip/index.d.ts +8 -0
  29. package/dist/helper/query/engine/skip/index.js +9 -0
  30. package/dist/helper/query/engine/skip/index.js.map +1 -0
  31. package/dist/helper/query/engine/sort/index.d.ts +8 -0
  32. package/dist/helper/query/engine/sort/index.js +10 -0
  33. package/dist/helper/query/engine/sort/index.js.map +1 -0
  34. package/dist/helper/query/engine/unset/index.d.ts +8 -0
  35. package/dist/helper/query/engine/unset/index.js +10 -0
  36. package/dist/helper/query/engine/unset/index.js.map +1 -0
  37. package/dist/helper/query/engine/unwind/index.d.ts +6 -0
  38. package/dist/helper/query/engine/unwind/index.js +26 -0
  39. package/dist/helper/query/engine/unwind/index.js.map +1 -0
  40. package/dist/helper/query/index.d.ts +3 -3
  41. package/dist/helper/query/index.js +3 -5
  42. package/dist/helper/query/index.js.map +1 -1
  43. package/dist/helper/query/query.dto.d.ts +2 -3
  44. package/dist/helper/query/query.dto.js +1 -0
  45. package/dist/helper/query/query.dto.js.map +1 -1
  46. package/dist/helper/query/query.expression.d.ts +1 -0
  47. package/dist/helper/query/query.expression.js +1 -0
  48. package/dist/helper/query/query.expression.js.map +1 -1
  49. package/dist/helper/query/query.method.d.ts +2 -4
  50. package/dist/helper/query/query.method.js +7 -38
  51. package/dist/helper/query/query.method.js.map +1 -1
  52. package/dist/helper/query/{quer.type.js → query.type.js} +1 -1
  53. package/dist/helper/query/query.type.js.map +1 -0
  54. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  55. package/package.json +1 -1
  56. package/dist/helper/query/quer.type.js.map +0 -1
  57. package/dist/helper/query/query.engine.js +0 -296
  58. package/dist/helper/query/query.engine.js.map +0 -1
  59. /package/dist/helper/query/{quer.type.d.ts → query.type.d.ts} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mormati-mongoose",
3
- "version": "0.1.24",
3
+ "version": "0.1.27",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"quer.type.js","sourceRoot":"","sources":["../../../../../libs/mongoose/src/helper/query/quer.type.ts"],"names":[],"mappings":""}
@@ -1,296 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.QueryEngine = void 0;
4
- const query_expression_1 = require("./query.expression");
5
- const query_method_1 = require("./query.method");
6
- const QueryEngine = ({ ConfigSystem, CollectionRef, GroupRef }) => {
7
- const _DL = ConfigSystem.LANG_DEFAULT;
8
- const _ref = (0, query_method_1.getFlattenCollectionRef)(CollectionRef);
9
- const queryMatch = (props) => {
10
- const { condAnd = [], condByField = {}, condByQuery = [], criteria = {} } = props;
11
- const { _or } = criteria;
12
- const expr = _or == true ? query_expression_1.default.EXPR_OR : query_expression_1.default.EXPR_AND;
13
- const condByFieldQuery = Object.keys(condByField).map(e => ({ [query_expression_1.default.EXPR_EQ]: [`$${e}`, condByField[e]] }));
14
- if (condByQuery.length == 0 && condByFieldQuery.length == 0)
15
- throw "500 -> Query required";
16
- let skipFacet = false;
17
- const condAndQuery = (lang) => condAnd
18
- .filter(e => e.value != undefined)
19
- .map(e => {
20
- if (e.key == "language") {
21
- if (lang == e.value)
22
- skipFacet = true;
23
- return { [query_expression_1.default.EXPR_EQ]: [`$${e.key}`, lang ? lang : e.value] };
24
- }
25
- return { [query_expression_1.default.EXPR_EQ]: [`$${e.key}`, e.value] };
26
- });
27
- const match = (lang) => ({
28
- [query_expression_1.default.STAGE_MATCH]: {
29
- [query_expression_1.default.EXPR]: {
30
- [query_expression_1.default.EXPR_AND]: [
31
- ...condAndQuery(lang),
32
- ...(condByQuery.length > 0 ? condByQuery : [{ [expr]: condByFieldQuery }])
33
- ]
34
- }
35
- }
36
- });
37
- const defaultMatch = match(_DL);
38
- if (skipFacet)
39
- return [
40
- ...querySearch({ criteria }),
41
- defaultMatch,
42
- ];
43
- return [
44
- ...querySearch({ criteria }),
45
- {
46
- [query_expression_1.default.STAGE_FACET]: { DL: [defaultMatch], AL: [match()] },
47
- },
48
- {
49
- [query_expression_1.default.STAGE_PROJECT]: {
50
- "doc": {
51
- [query_expression_1.default.MAP.MAP]: {
52
- [query_expression_1.default.MAP.INPUT]: "$DL",
53
- [query_expression_1.default.MAP.AS]: "item_DL",
54
- [query_expression_1.default.MAP.IN]: {
55
- [query_expression_1.default.MERGEOBJECTS]: [
56
- "$$item_DL",
57
- {
58
- [query_expression_1.default.ARRAYELEMAT]: [
59
- {
60
- [query_expression_1.default.FILTER.FILTER]: {
61
- [query_expression_1.default.FILTER.INPUT]: "$AL",
62
- [query_expression_1.default.FILTER.AS]: "item_AL",
63
- [query_expression_1.default.FILTER.COND]: { [query_expression_1.default.EXPR_EQ]: ["$$item_DL._uid", "$$item_AL._uid"] }
64
- }
65
- },
66
- 0
67
- ]
68
- }
69
- ]
70
- }
71
- }
72
- }
73
- }
74
- },
75
- { [query_expression_1.default.STAGE_UNWIND]: "$doc" },
76
- { [query_expression_1.default.STAGE_REPLACEROOT.REPLACEROOT]: { [query_expression_1.default.STAGE_REPLACEROOT.NEW_ROOT]: "$doc" } }
77
- ];
78
- };
79
- const querySearch = ({ criteria }) => {
80
- const { _search } = criteria ?? {};
81
- const { _searchWord, _searchChar, _searchCharFields } = _search ?? {};
82
- if (!_searchWord && (!_searchChar || !criteria._searchCharFields?.length))
83
- return [];
84
- const searchWordQuery = !_searchWord ? [] :
85
- [{
86
- [query_expression_1.default.TEXT]: {
87
- [query_expression_1.default.SEARCH]: _searchWord
88
- },
89
- }];
90
- const searchCharQuery = (fields) => !fields ? [] :
91
- fields.map(searchField => {
92
- return {
93
- [searchField]: {
94
- "$regex": _searchChar,
95
- "$options": "i"
96
- }
97
- };
98
- });
99
- return [
100
- {
101
- [query_expression_1.default.STAGE_MATCH]: {
102
- "$or": [
103
- ...searchWordQuery,
104
- ...searchCharQuery(_searchCharFields),
105
- ]
106
- }
107
- }
108
- ];
109
- };
110
- const querySort = ({ criteria }) => (0, query_method_1.objKeyLengthCheck)(criteria?._sort) ?
111
- [{ [query_expression_1.default.STAGE_SORT]: criteria._sort }]
112
- : [];
113
- const querySkip = ({ criteria }) => criteria?._skip > 0 ?
114
- [{ [query_expression_1.default.STAGE_SKIP]: criteria._skip }]
115
- : [];
116
- const queryLimit = ({ criteria }) => criteria?._limit > 0 ?
117
- [{ [query_expression_1.default.STAGE_LIMIT]: criteria._limit }]
118
- : [];
119
- const queryLookup = ({ condAnd, criteria }) => {
120
- const { _lookup } = criteria ?? {};
121
- const lookupQuery = [];
122
- if (_lookup?.length > 0) {
123
- _lookup.map(field => {
124
- const { _lookupRef } = _ref;
125
- const lookupRef = _lookupRef[field];
126
- if (!lookupRef)
127
- return null;
128
- const { collection, localFieldPath, foreignFieldPath, as, constraint } = lookupRef;
129
- const { isReverseParent, parent, isArray, childUnwind, childUnwindPreserve, merge, sort, outerSort } = constraint ?? {};
130
- if (parent?.length > 0) {
131
- parent.map(e => lookupQuery.push({
132
- [query_expression_1.default.STAGE_UNWIND]: {
133
- "path": `$${e.unwind}`,
134
- "preserveNullAndEmptyArrays": e.unwindPreserve ?? false
135
- }
136
- }));
137
- }
138
- if ((0, query_method_1.objKeyLengthCheck)(outerSort)) {
139
- lookupQuery.push({ [query_expression_1.default.STAGE_SORT]: outerSort });
140
- }
141
- const __MAP_COND__ = isArray == "EQ" ?
142
- { [query_expression_1.default.EXPR_EQ]: [`$${foreignFieldPath}`, `$$ref`] }
143
- : isArray == "ARRAY_LT" ?
144
- { [query_expression_1.default.EXPR_IN]: [`$${foreignFieldPath}`, `$$ref`] }
145
- : isArray == "ARRAY_RT" ?
146
- { [query_expression_1.default.EXPR_IN]: [`$$ref`, `$${foreignFieldPath}`] }
147
- : isArray == "ARRAY_BO_ONE_EQ_BO" ?
148
- { [query_expression_1.default.EXPR_GT]: [{ [query_expression_1.default.EXPR_SIZE]: { [query_expression_1.default.EXPR_SET_INTERSECTION]: [`$${foreignFieldPath}`, `$$ref`] } }, 0] }
149
- : isArray == "ARRAY_BO_ALL_EQ_LT" ?
150
- { [query_expression_1.default.EXPR_EQ]: [{ [query_expression_1.default.EXPR_SIZE]: { [query_expression_1.default.EXPR_SET_INTERSECTION]: [`$${foreignFieldPath}`, `$$ref`] } }, { $size: `$${foreignFieldPath}` }] }
151
- : isArray == "ARRAY_BO_ALL_EQ_RT" ?
152
- { [query_expression_1.default.EXPR_EQ]: [{ [query_expression_1.default.EXPR_SIZE]: { [query_expression_1.default.EXPR_SET_INTERSECTION]: [`$${foreignFieldPath}`, `$$ref`] } }, { $size: '$$ref' }] }
153
- : isArray == "ARRAY_LT_WITH_CHECK" ?
154
- { [query_expression_1.default.EXPR_IN]: [`$${foreignFieldPath}`, (0, query_method_1.returnArray)(`$$ref`)] }
155
- : isArray == "ARRAY_RT_WITH_CHECK" ?
156
- { [query_expression_1.default.EXPR_IN]: [`$${foreignFieldPath}`, (0, query_method_1.returnArray)(`$${foreignFieldPath}`)] }
157
- : { [query_expression_1.default.EXPR_EQ]: [`$${foreignFieldPath}`, `$$ref`] };
158
- const matchQuery = queryMatch({
159
- condAnd: [condAnd.find(e => e.key == "language")],
160
- condByQuery: [__MAP_COND__]
161
- });
162
- const sortQuery = (0, query_method_1.objKeyLengthCheck)(sort) ?
163
- [{ [query_expression_1.default.STAGE_SORT]: sort }]
164
- : [];
165
- lookupQuery.push({
166
- [query_expression_1.default.STAGE_LOOKUP]: {
167
- from: collection,
168
- let: { ref: `$${localFieldPath}` },
169
- pipeline: [
170
- ...matchQuery,
171
- ...sortQuery,
172
- ],
173
- as: as
174
- }
175
- });
176
- if (childUnwind)
177
- lookupQuery.push({
178
- [query_expression_1.default.STAGE_UNWIND]: {
179
- "path": `$${as}`,
180
- "preserveNullAndEmptyArrays": childUnwindPreserve ?? false
181
- }
182
- });
183
- if (merge) {
184
- const { as, paths } = merge;
185
- lookupQuery.push({
186
- [query_expression_1.default.ADDFIELD]: {
187
- [as]: { [query_expression_1.default.MERGEOBJECTS]: paths }
188
- }
189
- });
190
- }
191
- if (parent?.length > 0) {
192
- const _parent = isReverseParent ? [...parent].reverse() : parent;
193
- _parent.map(e => {
194
- if (e.query) {
195
- lookupQuery.push(...e.query(GroupRef[e.groupKey]));
196
- }
197
- if (e.groupKey && e.pushKey) {
198
- if (e.groupUnwind) {
199
- lookupQuery.push({
200
- [query_expression_1.default.STAGE_UNWIND]: {
201
- "path": `$${e.groupUnwind}`,
202
- "preserveNullAndEmptyArrays": e.groupUnwindPreserve ?? false
203
- }
204
- });
205
- }
206
- lookupQuery.push({
207
- [query_expression_1.default.STAGE_GROUP]: {
208
- ...GroupRef[e.groupKey],
209
- [e.pushKey]: { [query_expression_1.default.EXPR_PUSH]: e.pushValue ?? `$${e.pushKey}` },
210
- _id: e._id ?? "$_id"
211
- }
212
- });
213
- }
214
- });
215
- }
216
- });
217
- }
218
- return lookupQuery;
219
- };
220
- const queryGraphLookup = ({ condByField, criteria }) => {
221
- const { _graphLookup } = criteria ?? {};
222
- const graphLookup = [];
223
- if (condByField?._uid && _graphLookup?.length > 0) {
224
- _graphLookup.map(field => {
225
- const { _graphLookupRef } = _ref;
226
- const graphLookupRef = _graphLookupRef[field];
227
- if (!graphLookupRef)
228
- return null;
229
- const { collection, localFieldPath, foreignFieldPath, maxDepth, as } = graphLookupRef;
230
- graphLookup.push({
231
- [query_expression_1.default.STAGE_GRAPHLOOKUP.GRAPHLOOKUP]: {
232
- [query_expression_1.default.STAGE_GRAPHLOOKUP.FROM]: collection,
233
- [query_expression_1.default.STAGE_GRAPHLOOKUP.CONNECT_FROM_FIELD]: localFieldPath,
234
- [query_expression_1.default.STAGE_GRAPHLOOKUP.CONNECT_TO_FIELD]: foreignFieldPath,
235
- [query_expression_1.default.STAGE_GRAPHLOOKUP.START_WITH]: condByField._uid,
236
- [query_expression_1.default.STAGE_GRAPHLOOKUP.MAX_DEPTH]: maxDepth ?? 9,
237
- [query_expression_1.default.STAGE_GRAPHLOOKUP.DEPTH_FIELD]: 'depth',
238
- [query_expression_1.default.STAGE_GRAPHLOOKUP.AS]: as,
239
- }
240
- });
241
- });
242
- }
243
- return graphLookup;
244
- };
245
- const queryUnwind = ({ criteria }) => (0, query_method_1.lengthCheck)(criteria?._unwind) ?
246
- criteria._unwind.map(e => ({ [query_expression_1.default.STAGE_UNWIND]: `$${e}` }))
247
- : [];
248
- const queryGroup = ({ criteria }) => {
249
- if ((0, query_method_1.objKeyLengthCheck)(criteria?._group)) {
250
- const group = { _id: "$_id", ...criteria._group };
251
- return [{ [query_expression_1.default.STAGE_GROUP]: group }];
252
- }
253
- return [];
254
- };
255
- const queryUnset = ({ criteria }) => (0, query_method_1.lengthCheck)(criteria?._unset) ?
256
- [{ [query_expression_1.default.STAGE_UNSET]: criteria._unset }]
257
- : [];
258
- const queryProject = ({ criteria }) => {
259
- if ((0, query_method_1.lengthCheck)(criteria?._project)) {
260
- const initialObj = {};
261
- const finalObj = criteria._project.reduce((a, e) => ({ ...a, [e]: 1 }), initialObj);
262
- return [{ [query_expression_1.default.STAGE_PROJECT]: finalObj }];
263
- }
264
- return [];
265
- };
266
- const queryAggregate = (props) => {
267
- const { condAnd = [], condByField = {}, condByQuery = [], criteria = {} } = props;
268
- const match = queryMatch({ condAnd, condByField, condByQuery, criteria });
269
- const skip = querySkip({ criteria });
270
- const limit = queryLimit({ criteria });
271
- const lookup = queryLookup({ condAnd, criteria });
272
- const graphLookup = queryGraphLookup({ condByField, criteria });
273
- const unwind = queryUnwind({ criteria });
274
- const group = queryGroup({ criteria });
275
- const unset = queryUnset({ criteria });
276
- const project = queryProject({ criteria });
277
- const sort = querySort({ criteria });
278
- return [].concat(match, skip, limit, lookup, graphLookup, unwind, unset, group, project, sort);
279
- };
280
- const queryUpdate = (props) => {
281
- const { condAnd = [], condByField, criteria } = props;
282
- return (0, query_method_1.removeUndefined)(condByField, {
283
- ifEmpty: "500 -> Condition required",
284
- isCallBackRequired: !criteria?._rawUpdate,
285
- callback: (_condByField) => {
286
- return queryMatch({ condAnd, condByField: _condByField, criteria })[0][query_expression_1.default.STAGE_FACET]["AL"][0][query_expression_1.default.STAGE_MATCH];
287
- }
288
- });
289
- };
290
- return {
291
- queryAggregate,
292
- queryUpdate
293
- };
294
- };
295
- exports.QueryEngine = QueryEngine;
296
- //# sourceMappingURL=query.engine.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query.engine.js","sourceRoot":"","sources":["../../../../../libs/mongoose/src/helper/query/query.engine.ts"],"names":[],"mappings":"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"}