@liminalfunctions/framework 1.0.67 → 1.0.69
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/dist/F_Collection.d.ts +2 -0
- package/dist/F_Collection.js +5 -0
- package/dist/F_Collection.js.map +1 -1
- package/dist/F_Compile.js +19 -0
- package/dist/F_Compile.js.map +1 -1
- package/dist/code_generation/templates/utils.ts.mustache +1 -0
- package/dist/utils/complex_query_validator_from_zod.d.ts +20 -0
- package/dist/utils/complex_query_validator_from_zod.js +223 -0
- package/dist/utils/complex_query_validator_from_zod.js.map +1 -0
- package/dist/utils/query_object_to_mongodb_query.d.ts +8 -1
- package/dist/utils/query_object_to_mongodb_query.js +12 -2
- package/dist/utils/query_object_to_mongodb_query.js.map +1 -1
- package/dist/utils/query_validator_from_zod.js +7 -1
- package/dist/utils/query_validator_from_zod.js.map +1 -1
- package/dist/utils/zod_loop_seperator.js +4 -0
- package/dist/utils/zod_loop_seperator.js.map +1 -1
- package/package.json +4 -3
- package/src/F_Collection.ts +5 -0
- package/src/F_Compile.ts +18 -0
- package/src/code_generation/templates/utils.ts.mustache +1 -0
- package/src/utils/complex_query_validator_from_zod.ts +252 -0
- package/src/utils/query_object_to_mongodb_query.ts +11 -3
- package/src/utils/query_validator_from_zod.ts +8 -1
- package/src/utils/zod_loop_seperator.ts +5 -0
- package/test/0_3_query_validator_to_mongodb_query.test.ts +18 -0
- package/test/0_4_query_validator_to_advanced_query.test.ts +402 -0
- package/test/1_0_basic_server.test.ts +30 -0
- package/test/1_4_advanced_queries.test.ts +400 -0
- package/test/2_0_client_library_basic_type_generation.test.ts +2 -2
- package/test/2_0_client_library_query_type_generation.test.ts +12 -0
- package/test/tmp/dist/types/brief_news_category_query.d.ts +3 -0
- package/test/tmp/dist/types/client_query.d.ts +2 -0
- package/test/tmp/dist/types/institution_query.d.ts +2 -0
- package/test/tmp/dist/types/project_query.d.ts +2 -0
- package/test/tmp/dist/utils/utils.js +4 -0
- package/test/tmp/dist/utils/utils.js.map +1 -1
- package/test/tmp/package-lock.json +3 -3
- package/test/tmp/src/types/brief_news_category_query.ts +3 -0
- package/test/tmp/src/types/client_query.ts +2 -0
- package/test/tmp/src/types/institution_query.ts +2 -0
- package/test/tmp/src/types/project_query.ts +2 -0
- package/test/tmp/src/utils/utils.ts +1 -0
- /package/test/{0_4_cache.test.ts → 0_5_cache.test.ts} +0 -0
- /package/test/{0_5_malicious_keys.test.ts → 0_6_malicious_keys.test.ts} +0 -0
- /package/test/{0_6_array_children.test.ts → 0_7_array_children.test.ts} +0 -0
package/dist/F_Collection.d.ts
CHANGED
|
@@ -18,6 +18,8 @@ export declare class F_Collection<Collection_ID extends string, ZodSchema extend
|
|
|
18
18
|
mongoose_model: Model<z.infer<ZodSchema>>;
|
|
19
19
|
query_validator_server: z.ZodType;
|
|
20
20
|
query_validator_client: z.ZodType;
|
|
21
|
+
advanced_query_validator_server: z.ZodType;
|
|
22
|
+
advanced_query_validator_client: z.ZodType;
|
|
21
23
|
put_validator: ReturnType<ZodSchema['partial']>;
|
|
22
24
|
post_validator: ZodPartial_Return_Type<ZodSchema['partial']>;
|
|
23
25
|
is_compiled: boolean;
|
package/dist/F_Collection.js
CHANGED
|
@@ -2,6 +2,7 @@ import { mongoose_from_zod, schema_from_zod } from "./utils/mongoose_from_zod.js
|
|
|
2
2
|
import mongoose from "mongoose";
|
|
3
3
|
import { query_validator_from_zod } from "./utils/query_validator_from_zod.js";
|
|
4
4
|
import { array_children_from_zod } from "./utils/array_children_from_zod.js";
|
|
5
|
+
import { complex_query_validator_from_zod } from "./utils/complex_query_validator_from_zod.js";
|
|
5
6
|
export class F_Collection {
|
|
6
7
|
collection_id;
|
|
7
8
|
collection_name_plural;
|
|
@@ -10,6 +11,8 @@ export class F_Collection {
|
|
|
10
11
|
mongoose_model;
|
|
11
12
|
query_validator_server;
|
|
12
13
|
query_validator_client;
|
|
14
|
+
advanced_query_validator_server;
|
|
15
|
+
advanced_query_validator_client;
|
|
13
16
|
put_validator;
|
|
14
17
|
post_validator;
|
|
15
18
|
is_compiled;
|
|
@@ -30,6 +33,8 @@ export class F_Collection {
|
|
|
30
33
|
this.mongoose_model = mongoose_from_zod(collection_name, validator, database);
|
|
31
34
|
this.query_validator_server = query_validator_from_zod(validator, 'server');
|
|
32
35
|
this.query_validator_client = query_validator_from_zod(validator, 'client');
|
|
36
|
+
this.advanced_query_validator_server = complex_query_validator_from_zod(validator, 'server').optional();
|
|
37
|
+
this.advanced_query_validator_client = complex_query_validator_from_zod(validator, 'client').optional();
|
|
33
38
|
if (!Object.hasOwn(this.validator._zod.def.shape, '_id')) {
|
|
34
39
|
throw new Error(`_id is a required field, because each collection is a mongoDB object.`);
|
|
35
40
|
}
|
package/dist/F_Collection.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"F_Collection.js","sourceRoot":"","sources":["../src/F_Collection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAClF,OAAO,QAAyC,MAAM,UAAU,CAAC;AAEjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"F_Collection.js","sourceRoot":"","sources":["../src/F_Collection.ts"],"names":[],"mappings":"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"}
|
package/dist/F_Compile.js
CHANGED
|
@@ -84,6 +84,7 @@ export function compile(app, collection, api_prefix, collection_registry) {
|
|
|
84
84
|
validated_query_args = collection.query_validator_server.parse(convert_null(req.query));
|
|
85
85
|
}
|
|
86
86
|
catch (err) {
|
|
87
|
+
console.log(err.issues);
|
|
87
88
|
if (err instanceof z.ZodError) {
|
|
88
89
|
res.status(400);
|
|
89
90
|
res.json({ error: err.issues });
|
|
@@ -106,6 +107,24 @@ export function compile(app, collection, api_prefix, collection_registry) {
|
|
|
106
107
|
res.json({ error: `You do not have permission to fetch documents from ${collection.collection_id}.` });
|
|
107
108
|
return;
|
|
108
109
|
}
|
|
110
|
+
if (validated_query_args.advanced_query) {
|
|
111
|
+
let parsed_advanced_query;
|
|
112
|
+
try {
|
|
113
|
+
parsed_advanced_query = JSON.parse(validated_query_args.advanced_query);
|
|
114
|
+
}
|
|
115
|
+
catch (err) {
|
|
116
|
+
res.status(400);
|
|
117
|
+
res.json({ error: `The advanced_query field was not in JSON format` });
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
let { data: advanced_query, error: parsed_advanced_query_error, success: parsed_advanced_query_success } = collection.advanced_query_validator_server.safeParse(parsed_advanced_query);
|
|
121
|
+
if (!parsed_advanced_query_success) {
|
|
122
|
+
res.status(400);
|
|
123
|
+
res.json({ error: parsed_advanced_query_error.issues });
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
find = { $and: [find, advanced_query] };
|
|
127
|
+
}
|
|
109
128
|
let documents;
|
|
110
129
|
try {
|
|
111
130
|
let query = collection.mongoose_model.find(find, undefined, { 'lean': true });
|
package/dist/F_Compile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"F_Compile.js","sourceRoot":"","sources":["../src/F_Compile.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"F_Compile.js","sourceRoot":"","sources":["../src/F_Compile.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
export function encode_search_params(params: {[key: string]: string | number | boolean | string[] | Date}): {[key: string]: string | number | boolean }{
|
|
4
4
|
let retval: {[key: string]: string | number | boolean } = {}
|
|
5
5
|
for(let [key, value] of Object.entries(params)){
|
|
6
|
+
if(key === 'advanced_query') { retval[key] = JSON.stringify(value); continue; }
|
|
6
7
|
if(Array.isArray(value)){
|
|
7
8
|
retval[key] = value.join(',')
|
|
8
9
|
} else if(value instanceof Date){
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { z } from "zod/v4";
|
|
2
|
+
type Mode = 'client' | 'server';
|
|
3
|
+
export declare function complex_query_validator_from_zod(zod_definition: z.ZodObject, mode?: Mode): z.ZodUnion<readonly [z.ZodObject<{
|
|
4
|
+
$and: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<any, z.core.$strip>, z.ZodObject<{
|
|
5
|
+
$or: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<any, z.core.$strip>, z.ZodObject<any, z.core.$strip>, z.ZodObject<{
|
|
6
|
+
[x: string]: any;
|
|
7
|
+
}, z.core.$strip>]>>;
|
|
8
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
9
|
+
[x: string]: any;
|
|
10
|
+
}, z.core.$strip>]>>;
|
|
11
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
12
|
+
$or: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
13
|
+
$and: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<any, z.core.$strip>, z.ZodObject<any, z.core.$strip>, z.ZodObject<{
|
|
14
|
+
[x: string]: any;
|
|
15
|
+
}, z.core.$strip>]>>;
|
|
16
|
+
}, z.core.$strip>, z.ZodObject<any, z.core.$strip>, z.ZodObject<{
|
|
17
|
+
[x: string]: any;
|
|
18
|
+
}, z.core.$strip>]>>;
|
|
19
|
+
}, z.core.$strip>]>;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
import { z } from "zod/v4";
|
|
2
|
+
import { z_mongodb_id } from "./mongoose_from_zod.js";
|
|
3
|
+
import { find_loops } from './zod_loop_seperator.js';
|
|
4
|
+
export function complex_query_validator_from_zod(zod_definition, mode = 'server') {
|
|
5
|
+
let loops = find_loops(zod_definition);
|
|
6
|
+
let object_filter = {};
|
|
7
|
+
let object_filters = parse_object(zod_definition._zod.def, '', loops, mode);
|
|
8
|
+
for (let filter of object_filters) {
|
|
9
|
+
object_filter[filter.path.slice(1)] = filter.filter;
|
|
10
|
+
}
|
|
11
|
+
let compiled_object_filter = z.object(object_filter);
|
|
12
|
+
let and = z.object({
|
|
13
|
+
get $and() { return z.array(z.union([and, or, compiled_object_filter])); },
|
|
14
|
+
});
|
|
15
|
+
let or = z.object({
|
|
16
|
+
get $or() { return z.array(z.union([and, or, compiled_object_filter])); },
|
|
17
|
+
});
|
|
18
|
+
return z.union([and, or]);
|
|
19
|
+
}
|
|
20
|
+
function parse_any(zod_definition, prefix, loop_detector, mode = 'server') {
|
|
21
|
+
switch (zod_definition._zod.def.type) {
|
|
22
|
+
case "enum":
|
|
23
|
+
return parse_enum(zod_definition._zod.def, prefix, mode);
|
|
24
|
+
case "string":
|
|
25
|
+
return parse_string(prefix, mode);
|
|
26
|
+
case "number":
|
|
27
|
+
case "int":
|
|
28
|
+
return parse_number(prefix, mode);
|
|
29
|
+
case "object":
|
|
30
|
+
return parse_object(zod_definition._zod.def, prefix, loop_detector, mode);
|
|
31
|
+
case "boolean":
|
|
32
|
+
return parse_boolean(prefix, mode);
|
|
33
|
+
case "date":
|
|
34
|
+
return parse_date(prefix, mode);
|
|
35
|
+
case "array":
|
|
36
|
+
return parse_array(zod_definition._zod.def, prefix, loop_detector, mode);
|
|
37
|
+
case "union":
|
|
38
|
+
return parse_union(zod_definition._zod.def, prefix, mode);
|
|
39
|
+
case "custom":
|
|
40
|
+
if (!zod_definition.meta()) {
|
|
41
|
+
throw new Error(`could not find custom parser in the magic value dictionary`);
|
|
42
|
+
}
|
|
43
|
+
let { framework_override_type } = zod_definition.meta();
|
|
44
|
+
if (framework_override_type === 'mongodb_id') {
|
|
45
|
+
return parse_mongodb_id(prefix, mode);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
throw new Error(`could not find custom parser for ${framework_override_type} in the magic value dictionary`);
|
|
49
|
+
}
|
|
50
|
+
case "default":
|
|
51
|
+
return parse_any(zod_definition._zod.def.innerType, prefix, loop_detector, mode);
|
|
52
|
+
default:
|
|
53
|
+
return [];
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
function parse_array(def, prefix, loop_detector, mode) {
|
|
57
|
+
let simple_children = ['enum', 'string', 'number', 'int', 'boolean'];
|
|
58
|
+
if (simple_children.includes(def.element._zod.def.type)) {
|
|
59
|
+
return parse_any(def.element, prefix, loop_detector, mode).filter(ele => ele.path == prefix);
|
|
60
|
+
}
|
|
61
|
+
else if (def.element._zod.def.type === 'custom') {
|
|
62
|
+
if (!def.element.meta()) {
|
|
63
|
+
return [];
|
|
64
|
+
}
|
|
65
|
+
let { framework_override_type } = def.element.meta();
|
|
66
|
+
if (framework_override_type === 'mongodb_id') {
|
|
67
|
+
return parse_mongodb_id(prefix, mode).filter(ele => ele.path == prefix);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return [];
|
|
71
|
+
}
|
|
72
|
+
function parse_object(def, prefix, loop_detector, mode) {
|
|
73
|
+
if (loop_detector.has(def)) {
|
|
74
|
+
return [];
|
|
75
|
+
}
|
|
76
|
+
let retval = [];
|
|
77
|
+
for (let [key, value] of Object.entries(def.shape)) {
|
|
78
|
+
let filters = parse_any(value, `${prefix}.${key}`, loop_detector, mode);
|
|
79
|
+
retval.push(...filters);
|
|
80
|
+
}
|
|
81
|
+
return retval;
|
|
82
|
+
}
|
|
83
|
+
function parse_union(def, prefix, mode) {
|
|
84
|
+
let simple_children = ['enum', 'string', 'number', 'int', 'boolean'];
|
|
85
|
+
let filter_queue = def.options.slice().filter(ele => simple_children.includes(ele._zod.def.type));
|
|
86
|
+
if (filter_queue.length === 0) {
|
|
87
|
+
return [];
|
|
88
|
+
}
|
|
89
|
+
let root = filter_queue.shift();
|
|
90
|
+
for (let filter of filter_queue) {
|
|
91
|
+
root = root.or(filter);
|
|
92
|
+
}
|
|
93
|
+
return [
|
|
94
|
+
{
|
|
95
|
+
path: prefix,
|
|
96
|
+
filter: root,
|
|
97
|
+
sortable: true,
|
|
98
|
+
}
|
|
99
|
+
];
|
|
100
|
+
}
|
|
101
|
+
function parse_string(prefix, mode) {
|
|
102
|
+
return [
|
|
103
|
+
{
|
|
104
|
+
path: prefix,
|
|
105
|
+
filter: z.union([
|
|
106
|
+
z.object({
|
|
107
|
+
$eq: z.string()
|
|
108
|
+
}),
|
|
109
|
+
z.object({
|
|
110
|
+
$in: z.array(z.string())
|
|
111
|
+
}),
|
|
112
|
+
z.object({
|
|
113
|
+
$nin: z.array(z.string())
|
|
114
|
+
}),
|
|
115
|
+
]).optional(),
|
|
116
|
+
sortable: true,
|
|
117
|
+
},
|
|
118
|
+
];
|
|
119
|
+
}
|
|
120
|
+
function parse_enum(definition, prefix, mode) {
|
|
121
|
+
return [
|
|
122
|
+
{
|
|
123
|
+
path: prefix,
|
|
124
|
+
filter: z.union([
|
|
125
|
+
z.object({
|
|
126
|
+
$eq: z.enum(definition.entries)
|
|
127
|
+
}),
|
|
128
|
+
z.object({
|
|
129
|
+
$in: z.array(z.enum(definition.entries))
|
|
130
|
+
}),
|
|
131
|
+
]).optional(),
|
|
132
|
+
sortable: true,
|
|
133
|
+
}
|
|
134
|
+
];
|
|
135
|
+
}
|
|
136
|
+
function parse_boolean(prefix, mode) {
|
|
137
|
+
return [{
|
|
138
|
+
path: prefix,
|
|
139
|
+
filter: z.object({
|
|
140
|
+
$eq: z.boolean()
|
|
141
|
+
}).optional(),
|
|
142
|
+
sortable: true,
|
|
143
|
+
}];
|
|
144
|
+
}
|
|
145
|
+
function parse_number(prefix, mode) {
|
|
146
|
+
return [{
|
|
147
|
+
path: prefix,
|
|
148
|
+
filter: z.union([
|
|
149
|
+
z.object({
|
|
150
|
+
$eq: z.number()
|
|
151
|
+
}),
|
|
152
|
+
z.object({
|
|
153
|
+
$gt: z.number()
|
|
154
|
+
}),
|
|
155
|
+
z.object({
|
|
156
|
+
$lt: z.number()
|
|
157
|
+
}),
|
|
158
|
+
z.object({
|
|
159
|
+
$gte: z.number()
|
|
160
|
+
}),
|
|
161
|
+
z.object({
|
|
162
|
+
$lte: z.number()
|
|
163
|
+
}),
|
|
164
|
+
]).optional(),
|
|
165
|
+
sortable: true,
|
|
166
|
+
}];
|
|
167
|
+
}
|
|
168
|
+
function parse_date(prefix, mode) {
|
|
169
|
+
let date_parser = mode === 'client' ? z.date() : z.coerce.date();
|
|
170
|
+
return [{
|
|
171
|
+
path: prefix,
|
|
172
|
+
filter: z.union([
|
|
173
|
+
z.object({
|
|
174
|
+
$eq: date_parser
|
|
175
|
+
}),
|
|
176
|
+
z.object({
|
|
177
|
+
$gt: date_parser
|
|
178
|
+
}),
|
|
179
|
+
z.object({
|
|
180
|
+
$lt: date_parser
|
|
181
|
+
}),
|
|
182
|
+
z.object({
|
|
183
|
+
$gte: date_parser
|
|
184
|
+
}),
|
|
185
|
+
z.object({
|
|
186
|
+
$lte: date_parser
|
|
187
|
+
}),
|
|
188
|
+
]).optional(),
|
|
189
|
+
sortable: true,
|
|
190
|
+
}];
|
|
191
|
+
}
|
|
192
|
+
function parse_mongodb_id(prefix, mode) {
|
|
193
|
+
return [
|
|
194
|
+
{
|
|
195
|
+
path: prefix,
|
|
196
|
+
filter: z.union([
|
|
197
|
+
z.object({
|
|
198
|
+
$eq: z_mongodb_id
|
|
199
|
+
}),
|
|
200
|
+
z.object({
|
|
201
|
+
$gt: z_mongodb_id
|
|
202
|
+
}),
|
|
203
|
+
z.object({
|
|
204
|
+
$lt: z_mongodb_id
|
|
205
|
+
}),
|
|
206
|
+
z.object({
|
|
207
|
+
$gte: z_mongodb_id
|
|
208
|
+
}),
|
|
209
|
+
z.object({
|
|
210
|
+
$lte: z_mongodb_id
|
|
211
|
+
}),
|
|
212
|
+
z.object({
|
|
213
|
+
$in: z.array(z_mongodb_id)
|
|
214
|
+
}),
|
|
215
|
+
z.object({
|
|
216
|
+
$nin: z.array(z_mongodb_id)
|
|
217
|
+
}),
|
|
218
|
+
]).optional(),
|
|
219
|
+
sortable: true,
|
|
220
|
+
}
|
|
221
|
+
];
|
|
222
|
+
}
|
|
223
|
+
//# sourceMappingURL=complex_query_validator_from_zod.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"complex_query_validator_from_zod.js","sourceRoot":"","sources":["../../src/utils/complex_query_validator_from_zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE1B,OAAO,EAAE,YAAY,EAAgD,MAAM,wBAAwB,CAAC;AACpG,OAAO,EAAE,UAAU,EAAmB,MAAM,yBAAyB,CAAA;AASrE,MAAM,UAAU,gCAAgC,CAAC,cAA2B,EAAE,OAAa,QAAQ;IAC/F,IAAI,KAAK,GAAG,UAAU,CAAC,cAA2B,CAAC,CAAC;IAEpD,IAAI,aAAa,GAAG,EAAoB,CAAC;IACzC,IAAI,cAAc,GAAG,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC5E,KAAI,IAAI,MAAM,IAAI,cAAc,EAAC,CAAC;QAC9B,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IACxD,CAAC;IACD,IAAI,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;IAEpD,IAAI,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC;QACf,IAAI,IAAI,KAAI,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAC5E,CAAC,CAAC;IACH,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;QACd,IAAI,GAAG,KAAI,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAC3E,CAAC,CAAC;IAEH,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,SAAS,CAAC,cAA4B,EAAE,MAAc,EAAE,aAAwC,EAAE,OAAa,QAAQ;IAC5H,QAAQ,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACnC,KAAK,MAAM;YACP,OAAO,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,GAAyB,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACnF,KAAK,QAAQ;YACT,OAAO,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACtC,KAAK,QAAQ,CAAC;QACd,KAAK,KAAK;YACN,OAAO,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACtC,KAAK,QAAQ;YACT,OAAO,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,GAA2B,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QACtG,KAAK,SAAS;YACV,OAAO,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACvC,KAAK,MAAM;YACP,OAAO,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACpC,KAAK,OAAO;YACR,OAAO,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,GAA0B,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,CAAA;QACnG,KAAK,OAAO;YACR,OAAO,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,GAA0B,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;QACpF,KAAK,QAAQ;YACT,IAAG,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAA;YACjF,CAAC;YACD,IAAI,EAAE,uBAAuB,EAAE,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC;YAExD,IAAG,uBAAuB,KAAK,YAAY,EAAC,CAAC;gBACzC,OAAO,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,KAAK,CAAC,oCAAoC,uBAAuB,gCAAgC,CAAC,CAAA;YAChH,CAAC;QACL,KAAK,SAAS;YAEV,OAAO,SAAS,CAAE,cAAc,CAAC,IAAI,CAAC,GAA6B,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,CAAA;QAC/G;YACI,OAAO,EAAE,CAAA;IACjB,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAAC,GAAwB,EAAE,MAAc,EAAE,aAAwC,EAAE,IAAU;IAC/G,IAAI,eAAe,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;IACpE,IAAG,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAErD,OAAO,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC;IACjG,CAAC;SAAM,IAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAC,CAAC;QAE9C,IAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC;QACd,CAAC;QAED,IAAI,EAAE,uBAAuB,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAErD,IAAG,uBAAuB,KAAK,YAAY,EAAC,CAAC;YACzC,OAAO,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC;QAC5E,CAAC;IACL,CAAC;IAED,OAAO,EAAE,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAC,GAAyB,EAAE,MAAc,EAAE,aAAwC,EAAE,IAAU;IACjH,IAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACd,CAAC;IAED,IAAI,MAAM,GAAG,EAAkB,CAAC;IAChC,KAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAC,CAAC;QAE/C,IAAI,OAAO,GAAG,SAAS,CAAC,KAAK,EAAE,GAAG,MAAM,IAAI,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QACxE,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,WAAW,CAAC,GAAwB,EAAE,MAAc,EAAE,IAAU;IACrE,IAAI,eAAe,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;IACpE,IAAI,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAClG,IAAG,YAAY,CAAC,MAAM,KAAK,CAAC,EAAC,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;IAC3C,IAAI,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC;IAChC,KAAI,IAAI,MAAM,IAAK,YAAY,EAAC,CAAC;QAE7B,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO;QACH;YACI,IAAI,EAAE,MAAM;YAEZ,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,IAAI;SACjB;KACJ,CAAC;AACN,CAAC;AAED,SAAS,YAAY,CAAC,MAAc,EAAE,IAAU;IAC5C,OAAO;QACC;YACI,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC;gBACZ,CAAC,CAAC,MAAM,CAAC;oBACL,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;iBAClB,CAAC;gBACF,CAAC,CAAC,MAAM,CAAC;oBACL,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBAC3B,CAAC;gBACF,CAAC,CAAC,MAAM,CAAC;oBACL,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBAC5B,CAAC;aACL,CAAC,CAAC,QAAQ,EAAE;YACb,QAAQ,EAAE,IAAI;SACjB;KACJ,CAAC;AACV,CAAC;AAED,SAAS,UAAU,CAAC,UAA8B,EAAE,MAAc,EAAE,IAAU;IAC1E,OAAO;QACH;YACI,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC;gBACZ,CAAC,CAAC,MAAM,CAAC;oBACL,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;iBAClC,CAAC;gBACF,CAAC,CAAC,MAAM,CAAC;oBACL,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;iBAC3C,CAAC;aACL,CAAC,CAAC,QAAQ,EAAE;YACb,QAAQ,EAAE,IAAI;SACjB;KACJ,CAAC;AACN,CAAC;AAED,SAAS,aAAa,CAAC,MAAc,EAAE,IAAU;IAC7C,OAAO,CAAC;YACJ,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;gBACb,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE;aACnB,CAAC,CAAC,QAAQ,EAAE;YACb,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;AACP,CAAC;AAED,SAAS,YAAY,CAAC,MAAc,EAAE,IAAU;IAC5C,OAAO,CAAC;YACJ,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC;gBACZ,CAAC,CAAC,MAAM,CAAC;oBACL,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;iBAClB,CAAC;gBACF,CAAC,CAAC,MAAM,CAAC;oBACL,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;iBAClB,CAAC;gBACF,CAAC,CAAC,MAAM,CAAC;oBACL,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;iBAClB,CAAC;gBACF,CAAC,CAAC,MAAM,CAAC;oBACL,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;iBACnB,CAAC;gBACF,CAAC,CAAC,MAAM,CAAC;oBACL,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;iBACnB,CAAC;aACL,CAAC,CAAC,QAAQ,EAAE;YACb,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;AACP,CAAC;AAED,SAAS,UAAU,CAAC,MAAc,EAAE,IAAU;IAC1C,IAAI,WAAW,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACjE,OAAO,CAAC;YACJ,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC;gBACZ,CAAC,CAAC,MAAM,CAAC;oBACL,GAAG,EAAE,WAAW;iBACnB,CAAC;gBACF,CAAC,CAAC,MAAM,CAAC;oBACL,GAAG,EAAE,WAAW;iBACnB,CAAC;gBACF,CAAC,CAAC,MAAM,CAAC;oBACL,GAAG,EAAE,WAAW;iBACnB,CAAC;gBACF,CAAC,CAAC,MAAM,CAAC;oBACL,IAAI,EAAE,WAAW;iBACpB,CAAC;gBACF,CAAC,CAAC,MAAM,CAAC;oBACL,IAAI,EAAE,WAAW;iBACpB,CAAC;aACL,CAAC,CAAC,QAAQ,EAAE;YACb,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;AACP,CAAC;AAGD,SAAS,gBAAgB,CAAC,MAAc,EAAE,IAAU;IAChD,OAAO;QACH;YACI,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC;gBACZ,CAAC,CAAC,MAAM,CAAC;oBACL,GAAG,EAAE,YAAY;iBACpB,CAAC;gBACF,CAAC,CAAC,MAAM,CAAC;oBACL,GAAG,EAAE,YAAY;iBACpB,CAAC;gBACF,CAAC,CAAC,MAAM,CAAC;oBACL,GAAG,EAAE,YAAY;iBACpB,CAAC;gBACF,CAAC,CAAC,MAAM,CAAC;oBACL,IAAI,EAAE,YAAY;iBACrB,CAAC;gBACF,CAAC,CAAC,MAAM,CAAC;oBACL,IAAI,EAAE,YAAY;iBACrB,CAAC;gBACF,CAAC,CAAC,MAAM,CAAC;oBACL,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;iBAC7B,CAAC;gBACF,CAAC,CAAC,MAAM,CAAC;oBACL,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;iBAC9B,CAAC;aACL,CAAC,CAAC,QAAQ,EAAE;YACb,QAAQ,EAAE,IAAI;SACjB;KACJ,CAAC;AACN,CAAC"}
|
|
@@ -5,13 +5,20 @@ export declare let complex_query_map: {
|
|
|
5
5
|
_gte: string;
|
|
6
6
|
_lte: string;
|
|
7
7
|
_in: string;
|
|
8
|
+
_search: (val: string) => {
|
|
9
|
+
$regex: RegExp;
|
|
10
|
+
$options: string;
|
|
11
|
+
};
|
|
8
12
|
};
|
|
9
13
|
export declare let query_meta_map: {
|
|
10
14
|
limit: boolean;
|
|
11
15
|
cursor: boolean;
|
|
12
16
|
sort: boolean;
|
|
13
17
|
sort_order: boolean;
|
|
18
|
+
advanced_query: boolean;
|
|
14
19
|
};
|
|
15
20
|
export declare function convert_null(query_object: any): any;
|
|
16
|
-
export declare function query_object_to_mongodb_query(query_object:
|
|
21
|
+
export declare function query_object_to_mongodb_query(query_object: {
|
|
22
|
+
[key: string]: string | null;
|
|
23
|
+
}): any;
|
|
17
24
|
export declare function query_object_to_mongodb_limits(query: QueryWithHelpers<any, any>, query_object: any, max_limit?: number): import("mongoose").Query<any, any, {}, any, "find", Record<string, never>>;
|
|
@@ -1,15 +1,20 @@
|
|
|
1
|
+
import escapeStringRegexp from 'escape-string-regexp';
|
|
1
2
|
export let complex_query_map = {
|
|
2
3
|
'_gt': '$gt',
|
|
3
4
|
'_lt': '$lt',
|
|
4
5
|
'_gte': '$gte',
|
|
5
6
|
'_lte': '$lte',
|
|
6
|
-
'_in': '$in'
|
|
7
|
+
'_in': '$in',
|
|
8
|
+
'_search': (val) => {
|
|
9
|
+
return { $regex: new RegExp(escapeStringRegexp(val)), $options: 'i' };
|
|
10
|
+
}
|
|
7
11
|
};
|
|
8
12
|
export let query_meta_map = {
|
|
9
13
|
'limit': true,
|
|
10
14
|
'cursor': true,
|
|
11
15
|
'sort': true,
|
|
12
16
|
'sort_order': true,
|
|
17
|
+
'advanced_query': true,
|
|
13
18
|
};
|
|
14
19
|
export function convert_null(query_object) {
|
|
15
20
|
for (let [key, value] of Object.entries(query_object)) {
|
|
@@ -31,7 +36,12 @@ export function query_object_to_mongodb_query(query_object) {
|
|
|
31
36
|
if (!retval[modified_key]) {
|
|
32
37
|
retval[modified_key] = {};
|
|
33
38
|
}
|
|
34
|
-
|
|
39
|
+
if (typeof complex_query_map[complex_suffix] === 'string') {
|
|
40
|
+
retval[modified_key][complex_query_map[complex_suffix]] = value;
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
retval[modified_key] = complex_query_map[complex_suffix](value);
|
|
44
|
+
}
|
|
35
45
|
}
|
|
36
46
|
else {
|
|
37
47
|
retval[key] = value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query_object_to_mongodb_query.js","sourceRoot":"","sources":["../../src/utils/query_object_to_mongodb_query.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"query_object_to_mongodb_query.js","sourceRoot":"","sources":["../../src/utils/query_object_to_mongodb_query.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,8 @@ export function query_validator_from_zod(zod_definition, mode = 'server') {
|
|
|
6
6
|
let retval = {
|
|
7
7
|
limit: z.coerce.number().int().optional(),
|
|
8
8
|
cursor: z_mongodb_id_optional,
|
|
9
|
-
sort_order: z.enum(['ascending', 'descending']).optional()
|
|
9
|
+
sort_order: z.enum(['ascending', 'descending']).optional(),
|
|
10
|
+
advanced_query: z.string().optional(),
|
|
10
11
|
};
|
|
11
12
|
let object_filters = parse_object(zod_definition._zod.def, '', loops, mode);
|
|
12
13
|
for (let filter of object_filters) {
|
|
@@ -114,6 +115,11 @@ function parse_string(prefix, mode) {
|
|
|
114
115
|
filter: z.string().optional(),
|
|
115
116
|
sortable: false,
|
|
116
117
|
},
|
|
118
|
+
{
|
|
119
|
+
path: prefix + '_search',
|
|
120
|
+
filter: z.string().optional(),
|
|
121
|
+
sortable: false,
|
|
122
|
+
},
|
|
117
123
|
{
|
|
118
124
|
path: prefix + '_in',
|
|
119
125
|
filter: array_parser.optional(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query_validator_from_zod.js","sourceRoot":"","sources":["../../src/utils/query_validator_from_zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE1B,OAAO,EAAgB,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpG,OAAO,EAAE,UAAU,EAAmB,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"query_validator_from_zod.js","sourceRoot":"","sources":["../../src/utils/query_validator_from_zod.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,10 @@ function discover_loops(zod_definition, validator_groups = new Map()) {
|
|
|
15
15
|
console.error('ISSUE');
|
|
16
16
|
console.error(zod_definition);
|
|
17
17
|
}
|
|
18
|
+
if (!zod_definition._zod) {
|
|
19
|
+
console.error('ISSUE 2');
|
|
20
|
+
console.error(zod_definition);
|
|
21
|
+
}
|
|
18
22
|
switch (zod_definition._zod.def.type) {
|
|
19
23
|
case "object":
|
|
20
24
|
parse_object(zod_definition, validator_groups);
|