@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.
@@ -0,0 +1,5 @@
1
+ export declare const checkId: (value: string, error?: {
2
+ message: string;
3
+ path?: string | undefined;
4
+ } | undefined) => void;
5
+ //# sourceMappingURL=check-id.d.ts.map
@@ -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"}
@@ -0,0 +1,6 @@
1
+ export const checkId = (value, error) => {
2
+ if (typeof value !== 'string') {
3
+ throw error || { message: 'Invalid id' };
4
+ }
5
+ };
6
+ //# sourceMappingURL=check-id.js.map
@@ -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;;EASxC"}
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
- .trim()
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;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"}
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.0.2",
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.0.0"
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.10.5",
53
+ "@types/node": "^22.13.4",
54
54
  "jest": "^29.7.0",
55
55
  "typescript": "^5.7.3"
56
56
  }
@@ -1,4 +0,0 @@
1
- export declare function emailRegexOperator(string: any): {
2
- $regex: RegExp;
3
- };
4
- //# sourceMappingURL=email-regex-operator%20copy.d.ts.map
@@ -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"}