@unchainedshop/mongodb 3.0.1 → 3.1.0

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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"initDb.d.ts","sourceRoot":"","sources":["../src/initDb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAe,MAAM,SAAS,CAAC;AAgC1C,eAAO,MAAM,OAAO,uBAQnB,CAAC;AAEF,eAAO,MAAM,MAAM,qBAGlB,CAAC;AAEF,QAAA,MAAM,MAAM,QAAa,OAAO,CAAC,EAAE,CAQlC,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"initDb.d.ts","sourceRoot":"","sources":["../src/initDb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAe,MAAM,SAAS,CAAC;AAc1C,eAAO,MAAM,OAAO,uBA0BnB,CAAC;AAEF,eAAO,MAAM,MAAM,qBAGlB,CAAC;AAEF,QAAA,MAAM,MAAM,QAAa,OAAO,CAAC,EAAE,CAQlC,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC"}
package/lib/initDb.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { MongoClient } from 'mongodb';
2
2
  let zstdEnabled = false;
3
+ let mongod;
3
4
  try {
4
5
  // eslint-disable-next-line
5
6
  // @ts-expect-error
@@ -9,25 +10,25 @@ try {
9
10
  catch {
10
11
  /* */
11
12
  }
12
- const { mkdir } = await import('node:fs/promises');
13
- const { MongoMemoryServer } = await import('mongodb-memory-server');
14
- try {
15
- await mkdir(`${process.cwd()}/.db`);
16
- }
17
- catch {
18
- /* */
19
- }
20
- const mongod = MongoMemoryServer.create({
21
- instance: {
22
- dbPath: `${process.cwd()}/.db`,
23
- storageEngine: 'wiredTiger',
24
- port: parseInt(process.env.PORT, 10) + 1,
25
- },
26
- }).catch(() => {
27
- // Drop error
28
- /* */
29
- });
30
13
  export const startDb = async () => {
14
+ const { mkdir } = await import('node:fs/promises');
15
+ const { MongoMemoryServer } = await import('mongodb-memory-server');
16
+ try {
17
+ await mkdir(`${process.cwd()}/.db`);
18
+ }
19
+ catch {
20
+ /* */
21
+ }
22
+ mongod = MongoMemoryServer.create({
23
+ instance: {
24
+ dbPath: `${process.cwd()}/.db`,
25
+ storageEngine: 'wiredTiger',
26
+ port: parseInt(process.env.PORT, 10) + 1,
27
+ },
28
+ }).catch(() => {
29
+ // Drop error
30
+ /* */
31
+ });
31
32
  const mongoInstance = await mongod;
32
33
  if (!mongoInstance) {
33
34
  throw new Error("Can't connect to MongoDB: could not start mongodb-memory-server and MONGO_URL env is not set");
package/lib/initDb.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"initDb.js","sourceRoot":"","sources":["../src/initDb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,WAAW,EAAE,MAAM,SAAS,CAAC;AAE1C,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB,IAAI,CAAC;IACH,2BAA2B;IAC3B,mBAAmB;IACnB,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACjC,WAAW,GAAG,IAAI,CAAC;AACrB,CAAC;AAAC,MAAM,CAAC;IACP,KAAK;AACP,CAAC;AAED,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAEnD,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;AACpE,IAAI,CAAC;IACH,MAAM,KAAK,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACtC,CAAC;AAAC,MAAM,CAAC;IACP,KAAK;AACP,CAAC;AACD,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC;IACtC,QAAQ,EAAE;QACR,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,MAAM;QAC9B,aAAa,EAAE,YAAY;QAC3B,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC;KACzC;CACF,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;IACZ,aAAa;IACb,KAAK;AACP,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;IAChC,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC;IACnC,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACb,8FAA8F,CAC/F,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC;AAC9C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE;IAC/B,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC;IACnC,MAAO,aAAqB,EAAE,IAAI,EAAE,CAAC;AACvC,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,KAAK,IAAiB,EAAE;IACrC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,GAAG,EAAE;QAClC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;KAC9C,CAAC,CAAC;IACH,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;IACvB,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC;IACvB,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"initDb.js","sourceRoot":"","sources":["../src/initDb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,WAAW,EAAE,MAAM,SAAS,CAAC;AAE1C,IAAI,WAAW,GAAG,KAAK,CAAC;AACxB,IAAI,MAAM,CAAC;AAEX,IAAI,CAAC;IACH,2BAA2B;IAC3B,mBAAmB;IACnB,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACjC,WAAW,GAAG,IAAI,CAAC;AACrB,CAAC;AAAC,MAAM,CAAC;IACP,KAAK;AACP,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;IAChC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACnD,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;IACpE,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,KAAK;IACP,CAAC;IACD,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC;QAChC,QAAQ,EAAE;YACR,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,MAAM;YAC9B,aAAa,EAAE,YAAY;YAC3B,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC;SACzC;KACF,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QACZ,aAAa;QACb,KAAK;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC;IACnC,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACb,8FAA8F,CAC/F,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC;AAC9C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE;IAC/B,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC;IACnC,MAAO,aAAqB,EAAE,IAAI,EAAE,CAAC;AACvC,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,KAAK,IAAiB,EAAE;IACrC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,GAAG,EAAE;QAClC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;KAC9C,CAAC,CAAC;IACH,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;IACvB,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC;IACvB,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unchainedshop/mongodb",
3
- "version": "3.0.1",
3
+ "version": "3.1.0",
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.1",
54
54
  "jest": "^29.7.0",
55
55
  "typescript": "^5.7.3"
56
56
  }
package/src/initDb.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { Db, MongoClient } from 'mongodb';
2
2
 
3
3
  let zstdEnabled = false;
4
+ let mongod;
4
5
 
5
6
  try {
6
7
  // eslint-disable-next-line
@@ -11,26 +12,25 @@ try {
11
12
  /* */
12
13
  }
13
14
 
14
- const { mkdir } = await import('node:fs/promises');
15
-
16
- const { MongoMemoryServer } = await import('mongodb-memory-server');
17
- try {
18
- await mkdir(`${process.cwd()}/.db`);
19
- } catch {
20
- /* */
21
- }
22
- const mongod = MongoMemoryServer.create({
23
- instance: {
24
- dbPath: `${process.cwd()}/.db`,
25
- storageEngine: 'wiredTiger',
26
- port: parseInt(process.env.PORT, 10) + 1,
27
- },
28
- }).catch(() => {
29
- // Drop error
30
- /* */
31
- });
32
-
33
15
  export const startDb = async () => {
16
+ const { mkdir } = await import('node:fs/promises');
17
+ const { MongoMemoryServer } = await import('mongodb-memory-server');
18
+ try {
19
+ await mkdir(`${process.cwd()}/.db`);
20
+ } catch {
21
+ /* */
22
+ }
23
+ mongod = MongoMemoryServer.create({
24
+ instance: {
25
+ dbPath: `${process.cwd()}/.db`,
26
+ storageEngine: 'wiredTiger',
27
+ port: parseInt(process.env.PORT, 10) + 1,
28
+ },
29
+ }).catch(() => {
30
+ // Drop error
31
+ /* */
32
+ });
33
+
34
34
  const mongoInstance = await mongod;
35
35
  if (!mongoInstance) {
36
36
  throw new Error(
@@ -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"}