@unchainedshop/mongodb 3.0.2 → 3.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/check-id.d.ts +5 -0
- package/lib/check-id.d.ts.map +1 -0
- package/lib/check-id.js +6 -0
- package/lib/check-id.js.map +1 -0
- package/lib/email-regex-operator.d.ts.map +1 -1
- package/lib/email-regex-operator.js +2 -5
- package/lib/email-regex-operator.js.map +1 -1
- package/lib/generate-db-mutations.d.ts +11 -0
- package/lib/generate-db-mutations.d.ts.map +1 -0
- package/lib/generate-db-mutations.js +73 -0
- package/lib/generate-db-mutations.js.map +1 -0
- package/package.json +3 -3
- package/lib/email-regex-operator copy.d.ts +0 -4
- package/lib/email-regex-operator copy.d.ts.map +0 -1
- package/lib/email-regex-operator copy.js +0 -11
- package/lib/email-regex-operator copy.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-id.d.ts","sourceRoot":"","sources":["../src/check-id.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UACX,MAAM,UAET;IACE,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B,GACD,SAAS,KACZ,IAIF,CAAC"}
|
package/lib/check-id.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-id.js","sourceRoot":"","sources":["../src/check-id.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,KAAa,EACb,KAKa,EACP,EAAE;IACR,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,KAAK,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;IAC3C,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email-regex-operator.d.ts","sourceRoot":"","sources":["../src/email-regex-operator.ts"],"names":[],"mappings":"AAAA,wBAAgB,kBAAkB,CAAC,MAAM,KAAA;;
|
|
1
|
+
{"version":3,"file":"email-regex-operator.d.ts","sourceRoot":"","sources":["../src/email-regex-operator.ts"],"names":[],"mappings":"AAAA,wBAAgB,kBAAkB,CAAC,MAAM,KAAA;;EAMxC"}
|
|
@@ -2,10 +2,7 @@ export function emailRegexOperator(string) {
|
|
|
2
2
|
if (typeof string !== 'string') {
|
|
3
3
|
throw new TypeError('Expected a string');
|
|
4
4
|
}
|
|
5
|
-
const escappedEmail = string
|
|
6
|
-
|
|
7
|
-
.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&')
|
|
8
|
-
.replace(/-/g, '\\x2d');
|
|
9
|
-
return { $regex: new RegExp(`^${escappedEmail}$$`, 'i') };
|
|
5
|
+
const escappedEmail = string.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&').replace(/-/g, '\\x2d');
|
|
6
|
+
return { $regex: new RegExp(`${escappedEmail}$`, 'i') };
|
|
10
7
|
}
|
|
11
8
|
//# sourceMappingURL=email-regex-operator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email-regex-operator.js","sourceRoot":"","sources":["../src/email-regex-operator.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,kBAAkB,CAAC,MAAM;IACvC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,SAAS,CAAC,mBAAmB,CAAC,CAAC;IAC3C,CAAC;IACD,MAAM,aAAa,GAAG,MAAM
|
|
1
|
+
{"version":3,"file":"email-regex-operator.js","sourceRoot":"","sources":["../src/email-regex-operator.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,kBAAkB,CAAC,MAAM;IACvC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,SAAS,CAAC,mBAAmB,CAAC,CAAC;IAC3C,CAAC;IACD,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3F,OAAO,EAAE,MAAM,EAAE,IAAI,MAAM,CAAC,GAAG,aAAa,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;AAC1D,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import SimpleSchema from 'simpl-schema';
|
|
2
|
+
import { TimestampFields } from '@unchainedshop/types/common.js';
|
|
3
|
+
import { ModuleCreateMutation, ModuleMutations } from '@unchainedshop/types/core.js';
|
|
4
|
+
import { Collection } from 'mongodb';
|
|
5
|
+
export declare const generateDbMutations: <T extends TimestampFields & {
|
|
6
|
+
_id?: string;
|
|
7
|
+
}>(collection: Collection<T>, schema: SimpleSchema, options?: {
|
|
8
|
+
hasCreateOnly?: boolean;
|
|
9
|
+
permanentlyDeleteByDefault?: boolean;
|
|
10
|
+
}) => ModuleMutations<T> | ModuleCreateMutation<T>;
|
|
11
|
+
//# sourceMappingURL=generate-db-mutations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-db-mutations.d.ts","sourceRoot":"","sources":["../src/generate-db-mutations.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACrF,OAAO,EAAE,UAAU,EAAgB,MAAM,SAAS,CAAC;AAKnD,eAAO,MAAM,mBAAmB,GAAI,CAAC,SAAS,eAAe,GAAG;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,cAClE,UAAU,CAAC,CAAC,CAAC,UACjB,YAAY,YACV;IACR,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC,KACA,eAAe,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,CA6E7C,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { checkId } from './check-id.js';
|
|
2
|
+
import { generateDbObjectId } from './generate-db-object-id.js';
|
|
3
|
+
import { generateDbFilterById } from './generate-db-filter-by-id.js';
|
|
4
|
+
export const generateDbMutations = (collection, schema, options) => {
|
|
5
|
+
if (!collection)
|
|
6
|
+
throw new Error('Collection is missing');
|
|
7
|
+
if (!schema)
|
|
8
|
+
throw new Error('Schema is missing');
|
|
9
|
+
const { hasCreateOnly, permanentlyDeleteByDefault } = options || {
|
|
10
|
+
hasCreateOnly: false,
|
|
11
|
+
permanentlyDeleteByDefault: false,
|
|
12
|
+
};
|
|
13
|
+
const deletePermanently = async (_id) => {
|
|
14
|
+
checkId(_id);
|
|
15
|
+
const filter = generateDbFilterById(_id);
|
|
16
|
+
const result = await collection.deleteOne(filter);
|
|
17
|
+
return result.deletedCount;
|
|
18
|
+
};
|
|
19
|
+
return {
|
|
20
|
+
create: async (doc) => {
|
|
21
|
+
const values = schema.clean(doc);
|
|
22
|
+
values.created = new Date();
|
|
23
|
+
schema.validate(values);
|
|
24
|
+
values._id = doc._id || generateDbObjectId();
|
|
25
|
+
const result = await collection.insertOne(values);
|
|
26
|
+
return result.insertedId;
|
|
27
|
+
},
|
|
28
|
+
update: hasCreateOnly
|
|
29
|
+
? undefined
|
|
30
|
+
: async (_id, doc) => {
|
|
31
|
+
checkId(_id);
|
|
32
|
+
let modifier;
|
|
33
|
+
if (doc?.$set) {
|
|
34
|
+
const values = schema.clean(doc, { isModifier: true });
|
|
35
|
+
modifier = {
|
|
36
|
+
...values,
|
|
37
|
+
$set: {
|
|
38
|
+
...(values.$set || {}),
|
|
39
|
+
updated: new Date(),
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
const values = schema.clean(doc);
|
|
45
|
+
modifier = {
|
|
46
|
+
$set: {
|
|
47
|
+
...values,
|
|
48
|
+
updated: new Date(),
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
schema.validate(modifier, { modifier: true });
|
|
53
|
+
const filter = generateDbFilterById(_id, { deleted: null });
|
|
54
|
+
await collection.updateOne(filter, modifier);
|
|
55
|
+
return _id;
|
|
56
|
+
},
|
|
57
|
+
deletePermanently: hasCreateOnly ? undefined : deletePermanently,
|
|
58
|
+
delete: hasCreateOnly
|
|
59
|
+
? undefined
|
|
60
|
+
: async (_id) => {
|
|
61
|
+
if (permanentlyDeleteByDefault) {
|
|
62
|
+
return deletePermanently(_id);
|
|
63
|
+
}
|
|
64
|
+
checkId(_id);
|
|
65
|
+
const filter = generateDbFilterById(_id, { deleted: null });
|
|
66
|
+
const modifier = { $set: { deleted: new Date() } };
|
|
67
|
+
const values = schema.clean(modifier, { isModifier: true });
|
|
68
|
+
const result = await collection.updateOne(filter, values);
|
|
69
|
+
return result.modifiedCount;
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
//# sourceMappingURL=generate-db-mutations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-db-mutations.js","sourceRoot":"","sources":["../src/generate-db-mutations.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unchainedshop/mongodb",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.1.1",
|
|
4
4
|
"description": "MongoDB provider for unchained platform",
|
|
5
5
|
"main": "lib/mongodb-index.js",
|
|
6
6
|
"types": "lib/mongodb-index.d.ts",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
},
|
|
32
32
|
"homepage": "https://github.com/unchainedshop/unchained#readme",
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@unchainedshop/utils": "^3.
|
|
34
|
+
"@unchainedshop/utils": "^3.1.0"
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|
|
37
37
|
"@mongodb-js/zstd": ">= 2.0 < 3",
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
}
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
|
-
"@types/node": "^22.
|
|
53
|
+
"@types/node": "^22.13.4",
|
|
54
54
|
"jest": "^29.7.0",
|
|
55
55
|
"typescript": "^5.7.3"
|
|
56
56
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"email-regex-operator copy.d.ts","sourceRoot":"","sources":["../src/email-regex-operator copy.ts"],"names":[],"mappings":"AAAA,wBAAgB,kBAAkB,CAAC,MAAM,KAAA;;EASxC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export function emailRegexOperator(string) {
|
|
2
|
-
if (typeof string !== 'string') {
|
|
3
|
-
throw new TypeError('Expected a string');
|
|
4
|
-
}
|
|
5
|
-
const escappedEmail = string
|
|
6
|
-
.trim()
|
|
7
|
-
.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&')
|
|
8
|
-
.replace(/-/g, '\\x2d');
|
|
9
|
-
return { $regex: new RegExp(`^${escappedEmail}$$`, 'i') };
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=email-regex-operator%20copy.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"email-regex-operator copy.js","sourceRoot":"","sources":["../src/email-regex-operator copy.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,kBAAkB,CAAC,MAAM;IACvC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,SAAS,CAAC,mBAAmB,CAAC,CAAC;IAC3C,CAAC;IACD,MAAM,aAAa,GAAG,MAAM;SACzB,IAAI,EAAE;SACN,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC;SACtC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1B,OAAO,EAAE,MAAM,EAAE,IAAI,MAAM,CAAC,IAAI,aAAa,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;AAC5D,CAAC"}
|