@liminalfunctions/framework 1.0.69 → 1.0.71
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.js +1 -1
- package/dist/utils/complex_query_validator_from_zod.js +9 -0
- package/dist/utils/complex_query_validator_from_zod.js.map +1 -1
- package/package.json +1 -1
- package/src/F_Collection.ts +1 -1
- package/src/utils/complex_query_validator_from_zod.ts +7 -0
- package/test/0_4_query_validator_to_advanced_query.test.ts +1 -1
package/dist/F_Collection.js
CHANGED
|
@@ -137,7 +137,7 @@ export class F_Collection {
|
|
|
137
137
|
}
|
|
138
138
|
async perform_delete_and_side_effects(find) {
|
|
139
139
|
let deleted_document_data;
|
|
140
|
-
if (this.
|
|
140
|
+
if (this.delete_hooks.length > 0) {
|
|
141
141
|
await mongoose.connection.transaction(async (session) => {
|
|
142
142
|
let deleted_document = await this.mongoose_model.findOneAndDelete(find, { returnDocument: 'after', session: session, lean: true });
|
|
143
143
|
deleted_document_data = deleted_document;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { z } from "zod/v4";
|
|
2
2
|
import { z_mongodb_id } from "./mongoose_from_zod.js";
|
|
3
3
|
import { find_loops } from './zod_loop_seperator.js';
|
|
4
|
+
import escapeStringRegexp from "escape-string-regexp";
|
|
4
5
|
export function complex_query_validator_from_zod(zod_definition, mode = 'server') {
|
|
5
6
|
let loops = find_loops(zod_definition);
|
|
6
7
|
let object_filter = {};
|
|
@@ -112,6 +113,14 @@ function parse_string(prefix, mode) {
|
|
|
112
113
|
z.object({
|
|
113
114
|
$nin: z.array(z.string())
|
|
114
115
|
}),
|
|
116
|
+
z.object({
|
|
117
|
+
$regex: z.transform((val) => {
|
|
118
|
+
if (typeof val !== 'string') {
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
return escapeStringRegexp(val);
|
|
122
|
+
})
|
|
123
|
+
}),
|
|
115
124
|
]).optional(),
|
|
116
125
|
sortable: true,
|
|
117
126
|
},
|
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"complex_query_validator_from_zod.js","sourceRoot":"","sources":["../../src/utils/complex_query_validator_from_zod.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/F_Collection.ts
CHANGED
|
@@ -252,7 +252,7 @@ export class F_Collection<Collection_ID extends string, ZodSchema extends z.ZodO
|
|
|
252
252
|
let deleted_document_data;
|
|
253
253
|
|
|
254
254
|
// if we have any update hooks, run the update operation in a transaction
|
|
255
|
-
if(this.
|
|
255
|
+
if(this.delete_hooks.length > 0){
|
|
256
256
|
await mongoose.connection.transaction(async (session) => {
|
|
257
257
|
// update the document
|
|
258
258
|
let deleted_document = await this.mongoose_model.findOneAndDelete(find, {returnDocument: 'after', session: session, lean: true})
|
|
@@ -2,6 +2,7 @@ import { z } from "zod/v4"
|
|
|
2
2
|
import { $ZodLooseShape } from "zod/v4/core";
|
|
3
3
|
import { z_mongodb_id, z_mongodb_id_nullable, z_mongodb_id_optional } from "./mongoose_from_zod.js";
|
|
4
4
|
import { find_loops, validator_group } from './zod_loop_seperator.js'
|
|
5
|
+
import escapeStringRegexp from "escape-string-regexp";
|
|
5
6
|
|
|
6
7
|
type type_filters = {
|
|
7
8
|
path: string,
|
|
@@ -136,6 +137,12 @@ function parse_string(prefix: string, mode: Mode): type_filters {
|
|
|
136
137
|
z.object({
|
|
137
138
|
$nin: z.array(z.string())
|
|
138
139
|
}),
|
|
140
|
+
z.object({
|
|
141
|
+
$regex: z.transform((val) => {
|
|
142
|
+
if(typeof val !== 'string'){ return false; }
|
|
143
|
+
return escapeStringRegexp(val);
|
|
144
|
+
})
|
|
145
|
+
}),
|
|
139
146
|
]).optional(),
|
|
140
147
|
sortable: true,
|
|
141
148
|
},
|
|
@@ -386,7 +386,7 @@ describe('query validator to advanced query', function () {
|
|
|
386
386
|
})
|
|
387
387
|
});
|
|
388
388
|
|
|
389
|
-
it('advanced
|
|
389
|
+
it('advanced query fields should be optional', async function () {
|
|
390
390
|
let query_validator = complex_query_validator_from_zod(z.object({
|
|
391
391
|
_id: z_mongodb_id,
|
|
392
392
|
enum: z.enum(['one', 'two']),
|