@lenne.tech/nest-server 10.0.8 → 10.0.9

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.
Files changed (152) hide show
  1. package/dist/core/common/args/filter.args.js +2 -1
  2. package/dist/core/common/args/filter.args.js.map +1 -1
  3. package/dist/core/common/args/pagination.args.js +2 -1
  4. package/dist/core/common/args/pagination.args.js.map +1 -1
  5. package/dist/core/common/filters/http-exception-log.filter.js +2 -1
  6. package/dist/core/common/filters/http-exception-log.filter.js.map +1 -1
  7. package/dist/core/common/helpers/db.helper.js +6 -0
  8. package/dist/core/common/helpers/db.helper.js.map +1 -1
  9. package/dist/core/common/inputs/combined-filter.input.js +2 -1
  10. package/dist/core/common/inputs/combined-filter.input.js.map +1 -1
  11. package/dist/core/common/inputs/filter.input.js +2 -1
  12. package/dist/core/common/inputs/filter.input.js.map +1 -1
  13. package/dist/core/common/inputs/single-filter.input.js +2 -1
  14. package/dist/core/common/inputs/single-filter.input.js.map +1 -1
  15. package/dist/core/common/inputs/sort.input.js +2 -1
  16. package/dist/core/common/inputs/sort.input.js.map +1 -1
  17. package/dist/core/common/interceptors/check-response.interceptor.js +2 -1
  18. package/dist/core/common/interceptors/check-response.interceptor.js.map +1 -1
  19. package/dist/core/common/interceptors/check-security.interceptor.js +2 -1
  20. package/dist/core/common/interceptors/check-security.interceptor.js.map +1 -1
  21. package/dist/core/common/models/core-persistence.model.js +2 -1
  22. package/dist/core/common/models/core-persistence.model.js.map +1 -1
  23. package/dist/core/common/pipes/check-input.pipe.js +2 -1
  24. package/dist/core/common/pipes/check-input.pipe.js.map +1 -1
  25. package/dist/core/common/pipes/map-and-validate.pipe.js +2 -1
  26. package/dist/core/common/pipes/map-and-validate.pipe.js.map +1 -1
  27. package/dist/core/common/plugins/complexity.plugin.js +2 -1
  28. package/dist/core/common/plugins/complexity.plugin.js.map +1 -1
  29. package/dist/core/common/scalars/any.scalar.js +4 -4
  30. package/dist/core/common/scalars/any.scalar.js.map +1 -1
  31. package/dist/core/common/scalars/date-timestamp.scalar.js +2 -1
  32. package/dist/core/common/scalars/date-timestamp.scalar.js.map +1 -1
  33. package/dist/core/common/scalars/date.scalar.js +2 -1
  34. package/dist/core/common/scalars/date.scalar.js.map +1 -1
  35. package/dist/core/common/scalars/json.scalar.js +4 -4
  36. package/dist/core/common/scalars/json.scalar.js.map +1 -1
  37. package/dist/core/common/services/email.service.js +2 -1
  38. package/dist/core/common/services/email.service.js.map +1 -1
  39. package/dist/core/common/services/mailjet.service.js +2 -1
  40. package/dist/core/common/services/mailjet.service.js.map +1 -1
  41. package/dist/core/common/services/model-doc.service.js +2 -1
  42. package/dist/core/common/services/model-doc.service.js.map +1 -1
  43. package/dist/core/common/services/template.service.js +2 -1
  44. package/dist/core/common/services/template.service.js.map +1 -1
  45. package/dist/core/modules/auth/core-auth.controller.js +2 -1
  46. package/dist/core/modules/auth/core-auth.controller.js.map +1 -1
  47. package/dist/core/modules/auth/core-auth.model.js +2 -1
  48. package/dist/core/modules/auth/core-auth.model.js.map +1 -1
  49. package/dist/core/modules/auth/core-auth.module.js +2 -1
  50. package/dist/core/modules/auth/core-auth.module.js.map +1 -1
  51. package/dist/core/modules/auth/core-auth.resolver.js +2 -1
  52. package/dist/core/modules/auth/core-auth.resolver.js.map +1 -1
  53. package/dist/core/modules/auth/guards/refresh-token.guard.js +2 -1
  54. package/dist/core/modules/auth/guards/refresh-token.guard.js.map +1 -1
  55. package/dist/core/modules/auth/guards/roles.guard.js +2 -1
  56. package/dist/core/modules/auth/guards/roles.guard.js.map +1 -1
  57. package/dist/core/modules/auth/inputs/core-auth-sign-in.input.js +2 -1
  58. package/dist/core/modules/auth/inputs/core-auth-sign-in.input.js.map +1 -1
  59. package/dist/core/modules/auth/inputs/core-auth-sign-up.input.js +2 -1
  60. package/dist/core/modules/auth/inputs/core-auth-sign-up.input.js.map +1 -1
  61. package/dist/core/modules/auth/services/core-auth.service.js +15 -6
  62. package/dist/core/modules/auth/services/core-auth.service.js.map +1 -1
  63. package/dist/core/modules/auth/strategies/jwt-refresh.strategy.js +2 -1
  64. package/dist/core/modules/auth/strategies/jwt-refresh.strategy.js.map +1 -1
  65. package/dist/core/modules/auth/strategies/jwt.strategy.js +2 -1
  66. package/dist/core/modules/auth/strategies/jwt.strategy.js.map +1 -1
  67. package/dist/core/modules/auth/tokens.decorator.d.ts +1 -1
  68. package/dist/core/modules/file/core-file-info.model.js +2 -1
  69. package/dist/core/modules/file/core-file-info.model.js.map +1 -1
  70. package/dist/core/modules/file/core-file.controller.js +2 -1
  71. package/dist/core/modules/file/core-file.controller.js.map +1 -1
  72. package/dist/core/modules/file/core-file.resolver.js +2 -1
  73. package/dist/core/modules/file/core-file.resolver.js.map +1 -1
  74. package/dist/core/modules/file/core-file.service.d.ts +1 -1
  75. package/dist/core/modules/file/core-file.service.js +1 -1
  76. package/dist/core/modules/file/core-file.service.js.map +1 -1
  77. package/dist/core/modules/health-check/core-health-check-result.model.js +2 -1
  78. package/dist/core/modules/health-check/core-health-check-result.model.js.map +1 -1
  79. package/dist/core/modules/health-check/core-health-check.controller.js +2 -1
  80. package/dist/core/modules/health-check/core-health-check.controller.js.map +1 -1
  81. package/dist/core/modules/health-check/core-health-check.module.js +2 -1
  82. package/dist/core/modules/health-check/core-health-check.module.js.map +1 -1
  83. package/dist/core/modules/health-check/core-health-check.resolver.js +2 -1
  84. package/dist/core/modules/health-check/core-health-check.resolver.js.map +1 -1
  85. package/dist/core/modules/health-check/core-health-check.service.js +2 -1
  86. package/dist/core/modules/health-check/core-health-check.service.js.map +1 -1
  87. package/dist/core/modules/user/core-user.model.js +2 -1
  88. package/dist/core/modules/user/core-user.model.js.map +1 -1
  89. package/dist/core/modules/user/inputs/core-user-create.input.js +2 -1
  90. package/dist/core/modules/user/inputs/core-user-create.input.js.map +1 -1
  91. package/dist/core/modules/user/inputs/core-user.input.js +2 -1
  92. package/dist/core/modules/user/inputs/core-user.input.js.map +1 -1
  93. package/dist/core.module.js +2 -1
  94. package/dist/core.module.js.map +1 -1
  95. package/dist/server/common/models/persistence.model.js +2 -1
  96. package/dist/server/common/models/persistence.model.js.map +1 -1
  97. package/dist/server/common/services/cron-jobs.service.js +2 -1
  98. package/dist/server/common/services/cron-jobs.service.js.map +1 -1
  99. package/dist/server/modules/auth/auth.controller.js +2 -1
  100. package/dist/server/modules/auth/auth.controller.js.map +1 -1
  101. package/dist/server/modules/auth/auth.model.js +2 -1
  102. package/dist/server/modules/auth/auth.model.js.map +1 -1
  103. package/dist/server/modules/auth/auth.module.js +2 -1
  104. package/dist/server/modules/auth/auth.module.js.map +1 -1
  105. package/dist/server/modules/auth/auth.resolver.js +2 -1
  106. package/dist/server/modules/auth/auth.resolver.js.map +1 -1
  107. package/dist/server/modules/auth/auth.service.js +2 -1
  108. package/dist/server/modules/auth/auth.service.js.map +1 -1
  109. package/dist/server/modules/auth/inputs/auth-sign-in.input.js +2 -1
  110. package/dist/server/modules/auth/inputs/auth-sign-in.input.js.map +1 -1
  111. package/dist/server/modules/auth/inputs/auth-sign-up.input.js +2 -1
  112. package/dist/server/modules/auth/inputs/auth-sign-up.input.js.map +1 -1
  113. package/dist/server/modules/file/file-info.model.d.ts +5 -1
  114. package/dist/server/modules/file/file-info.model.js +2 -1
  115. package/dist/server/modules/file/file-info.model.js.map +1 -1
  116. package/dist/server/modules/file/file.controller.js +2 -1
  117. package/dist/server/modules/file/file.controller.js.map +1 -1
  118. package/dist/server/modules/file/file.module.js +2 -1
  119. package/dist/server/modules/file/file.module.js.map +1 -1
  120. package/dist/server/modules/file/file.resolver.js +2 -1
  121. package/dist/server/modules/file/file.resolver.js.map +1 -1
  122. package/dist/server/modules/file/file.service.js +2 -1
  123. package/dist/server/modules/file/file.service.js.map +1 -1
  124. package/dist/server/modules/file/multer-config.service.js +3 -2
  125. package/dist/server/modules/file/multer-config.service.js.map +1 -1
  126. package/dist/server/modules/user/avatar.controller.js +2 -1
  127. package/dist/server/modules/user/avatar.controller.js.map +1 -1
  128. package/dist/server/modules/user/inputs/user-create.input.js +2 -1
  129. package/dist/server/modules/user/inputs/user-create.input.js.map +1 -1
  130. package/dist/server/modules/user/inputs/user.input.js +2 -1
  131. package/dist/server/modules/user/inputs/user.input.js.map +1 -1
  132. package/dist/server/modules/user/outputs/find-and-count-users-result.output.js +2 -1
  133. package/dist/server/modules/user/outputs/find-and-count-users-result.output.js.map +1 -1
  134. package/dist/server/modules/user/user.model.d.ts +5 -1
  135. package/dist/server/modules/user/user.model.js +2 -1
  136. package/dist/server/modules/user/user.model.js.map +1 -1
  137. package/dist/server/modules/user/user.module.js +2 -1
  138. package/dist/server/modules/user/user.module.js.map +1 -1
  139. package/dist/server/modules/user/user.resolver.js +2 -1
  140. package/dist/server/modules/user/user.resolver.js.map +1 -1
  141. package/dist/server/modules/user/user.service.js +2 -1
  142. package/dist/server/modules/user/user.service.js.map +1 -1
  143. package/dist/server/server.controller.js +2 -1
  144. package/dist/server/server.controller.js.map +1 -1
  145. package/dist/server/server.module.js +2 -1
  146. package/dist/server/server.module.js.map +1 -1
  147. package/dist/tsconfig.build.tsbuildinfo +1 -1
  148. package/package.json +47 -44
  149. package/src/core/common/helpers/db.helper.ts +9 -0
  150. package/src/core/modules/auth/services/core-auth.service.ts +15 -8
  151. package/src/core/modules/file/core-file.service.ts +1 -1
  152. package/src/server/modules/file/multer-config.service.ts +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lenne.tech/nest-server",
3
- "version": "10.0.8",
3
+ "version": "10.0.9",
4
4
  "description": "Modern, fast, powerful Node.js web framework in TypeScript based on Nest with a GraphQL API and a connection to MongoDB (or other databases).",
5
5
  "keywords": [
6
6
  "node",
@@ -62,18 +62,20 @@
62
62
  "node": ">= 16.13.0"
63
63
  },
64
64
  "dependencies": {
65
- "@apollo/gateway": "2.5.1",
66
- "@nestjs/apollo": "12.0.7",
67
- "@nestjs/common": "10.1.3",
68
- "@nestjs/core": "10.1.3",
69
- "@nestjs/graphql": "12.0.8",
70
- "@nestjs/jwt": "10.1.0",
65
+ "@apollo/gateway": "2.5.6",
66
+ "@lenne.tech/mongoose-gridfs": "1.4.2",
67
+ "@lenne.tech/multer-gridfs-storage": "5.0.6",
68
+ "@nestjs/apollo": "12.0.9",
69
+ "@nestjs/common": "10.2.7",
70
+ "@nestjs/core": "10.2.7",
71
+ "@nestjs/graphql": "12.0.9",
72
+ "@nestjs/jwt": "10.1.1",
71
73
  "@nestjs/mongoose": "10.0.1",
72
- "@nestjs/passport": "10.0.0",
73
- "@nestjs/platform-express": "10.1.3",
74
- "@nestjs/schedule": "3.0.2",
75
- "@nestjs/terminus": "10.0.1",
76
- "apollo-server-core": "3.11.1",
74
+ "@nestjs/passport": "10.0.2",
75
+ "@nestjs/platform-express": "10.2.7",
76
+ "@nestjs/schedule": "3.0.4",
77
+ "@nestjs/terminus": "10.1.1",
78
+ "apollo-server-core": "^3.12.1",
77
79
  "apollo-server-express": "3.11.1",
78
80
  "bcrypt": "5.1.1",
79
81
  "class-transformer": "0.5.1",
@@ -81,56 +83,54 @@
81
83
  "compression": "1.7.4",
82
84
  "cookie-parser": "1.4.6",
83
85
  "ejs": "3.1.9",
84
- "graphql": "16.8.0",
86
+ "graphql": "16.8.1",
85
87
  "graphql-query-complexity": "0.12.0",
86
88
  "graphql-subscriptions": "2.0.0",
87
89
  "graphql-upload": "15.0.2",
88
- "js-sha256": "0.9.0",
90
+ "js-sha256": "0.10.1",
89
91
  "json-to-graphql-query": "2.2.5",
90
- "light-my-request": "5.10.0",
92
+ "light-my-request": "5.11.0",
91
93
  "lodash": "4.17.21",
92
- "mongodb": "4.17.0",
93
- "mongoose": "6.11.5",
94
- "mongoose-gridfs": "1.3.0",
94
+ "mongodb": "5.9.0",
95
+ "mongoose": "7.6.3",
95
96
  "multer": "1.4.5-lts.1",
96
- "multer-gridfs-storage": "5.0.2",
97
97
  "node-mailjet": "6.0.4",
98
- "nodemailer": "6.9.4",
98
+ "nodemailer": "6.9.6",
99
99
  "nodemon": "3.0.1",
100
100
  "passport": "0.6.0",
101
101
  "passport-jwt": "4.0.1",
102
102
  "reflect-metadata": "0.1.13",
103
103
  "rfdc": "1.3.0",
104
- "rimraf": "5.0.1",
104
+ "rimraf": "5.0.5",
105
105
  "rxjs": "7.8.1",
106
106
  "yuml-diagram": "1.2.0"
107
107
  },
108
108
  "devDependencies": {
109
109
  "@babel/plugin-proposal-private-methods": "7.18.6",
110
- "@compodoc/compodoc": "1.1.21",
111
- "@lenne.tech/eslint-config-ts": "0.0.9",
112
- "@nestjs/cli": "10.1.12",
110
+ "@compodoc/compodoc": "1.1.22",
111
+ "@lenne.tech/eslint-config-ts": "0.0.10",
112
+ "@nestjs/cli": "10.1.18",
113
113
  "@nestjs/schematics": "10.0.2",
114
- "@nestjs/testing": "10.1.3",
114
+ "@nestjs/testing": "10.2.7",
115
115
  "@swc/cli": "0.1.62",
116
- "@swc/core": "1.3.78",
116
+ "@swc/core": "1.3.93",
117
117
  "@swc/jest": "0.2.29",
118
- "@types/compression": "1.7.2",
119
- "@types/cookie-parser": "1.4.3",
118
+ "@types/compression": "1.7.4",
119
+ "@types/cookie-parser": "1.4.5",
120
120
  "@types/cron": "2.0.1",
121
- "@types/ejs": "3.1.2",
122
- "@types/express": "4.17.17",
123
- "@types/jest": "29.5.3",
124
- "@types/lodash": "4.14.197",
125
- "@types/multer": "1.4.7",
126
- "@types/node": "20.5.1",
127
- "@types/nodemailer": "6.4.9",
128
- "@types/passport": "1.0.12",
129
- "@types/supertest": "2.0.12",
130
- "@typescript-eslint/eslint-plugin": "6.4.0",
131
- "@typescript-eslint/parser": "6.4.0",
121
+ "@types/ejs": "3.1.4",
122
+ "@types/express": "4.17.20",
123
+ "@types/jest": "29.5.6",
124
+ "@types/lodash": "4.14.200",
125
+ "@types/multer": "1.4.9",
126
+ "@types/node": "20.8.7",
127
+ "@types/nodemailer": "6.4.13",
128
+ "@types/passport": "1.0.14",
129
+ "@types/supertest": "2.0.15",
130
+ "@typescript-eslint/eslint-plugin": "6.8.0",
131
+ "@typescript-eslint/parser": "6.8.0",
132
132
  "coffeescript": "2.7.0",
133
- "eslint": "8.47.0",
133
+ "eslint": "8.51.0",
134
134
  "eslint-config-prettier": "9.0.0",
135
135
  "eslint-plugin-unused-imports": "3.0.0",
136
136
  "find-file-up": "2.0.1",
@@ -140,23 +140,26 @@
140
140
  "grunt-contrib-watch": "1.1.0",
141
141
  "grunt-sync": "0.8.2",
142
142
  "husky": "8.0.3",
143
- "jest": "29.6.2",
143
+ "jest": "29.7.0",
144
144
  "npm-watch": "0.11.0",
145
145
  "pm2": "5.3.0",
146
- "prettier": "3.0.2",
146
+ "prettier": "3.0.3",
147
147
  "pretty-quick": "3.1.3",
148
148
  "supertest": "6.3.3",
149
149
  "ts-jest": "29.1.1",
150
- "ts-loader": "9.4.4",
150
+ "ts-loader": "9.5.0",
151
151
  "ts-morph": "19.0.0",
152
152
  "ts-node": "10.9.1",
153
153
  "tsconfig-paths": "4.2.0",
154
- "typescript": "5.1.6",
154
+ "typescript": "5.2.2",
155
155
  "yalc": "1.0.0-pre.53"
156
156
  },
157
157
  "overrides": {
158
158
  "multer-gridfs-storage": {
159
159
  "multer": "$multer"
160
+ },
161
+ "@lykmapipo/common": {
162
+ "flat": "5.0.2"
160
163
  }
161
164
  },
162
165
  "jest": {
@@ -623,11 +623,17 @@ export async function setPopulates<T = Query<any, any> | Document>(
623
623
  * Get ID of element as string
624
624
  */
625
625
  function getStringId(element: any): string {
626
+
626
627
  // Check element
627
628
  if (!element) {
628
629
  return element;
629
630
  }
630
631
 
632
+ // Buffer handling
633
+ if (element instanceof Buffer) {
634
+ return element.toString();
635
+ }
636
+
631
637
  // String handling
632
638
  if (typeof element === 'string') {
633
639
  return element;
@@ -640,6 +646,9 @@ function getStringId(element: any): string {
640
646
  }
641
647
 
642
648
  if (element.id) {
649
+ if (element.id instanceof Buffer && element.toHexString) {
650
+ return element.toHexString();
651
+ }
643
652
  return getStringId(element.id);
644
653
  } else if (element._id) {
645
654
  return getStringId(element._id);
@@ -123,16 +123,23 @@ export class CoreAuthService {
123
123
  });
124
124
 
125
125
  // Get and check user
126
- const user = await this.userService.create(input, serviceOptionsForUserService);
127
- if (!user) {
128
- throw new BadRequestException('Email address already in use');
129
- }
126
+ try {
127
+ const user = await this.userService.create(input, serviceOptionsForUserService);
128
+ if (!user) {
129
+ throw new BadRequestException('Email address already in use');
130
+ }
130
131
 
131
- // Set device ID
132
- const { deviceId, deviceDescription } = input;
132
+ // Set device ID
133
+ const { deviceId, deviceDescription } = input;
133
134
 
134
- // Return tokens and user
135
- return this.getResult(user, { deviceId, deviceDescription });
135
+ // Return tokens and user
136
+ return this.getResult(user, { deviceId, deviceDescription });
137
+ } catch (err) {
138
+ if (err?.message === 'Unprocessable Entity') {
139
+ throw new BadRequestException('Email address already in use');
140
+ }
141
+ throw err;
142
+ }
136
143
  }
137
144
 
138
145
  /**
@@ -1,7 +1,7 @@
1
1
  import { NotFoundException } from '@nestjs/common';
2
2
  import { GridFSBucket, GridFSBucketReadStream, GridFSBucketReadStreamOptions } from 'mongodb';
3
3
  import { Connection, Types } from 'mongoose';
4
- import { MongoGridFSOptions, MongooseGridFS, createBucket } from 'mongoose-gridfs';
4
+ import { MongoGridFSOptions, MongooseGridFS, createBucket } from '@lenne.tech/mongoose-gridfs';
5
5
  import { FilterArgs } from '../../common/args/filter.args';
6
6
  import { getObjectIds, getStringIds } from '../../common/helpers/db.helper';
7
7
  import { convertFilterArgsToQuery } from '../../common/helpers/filter.helper';
@@ -1,6 +1,6 @@
1
1
  import { Injectable } from '@nestjs/common';
2
2
  import { MulterModuleOptions, MulterOptionsFactory } from '@nestjs/platform-express';
3
- import { GridFsStorage } from 'multer-gridfs-storage';
3
+ import { GridFsStorage } from '@lenne.tech/multer-gridfs-storage';
4
4
  import envConfig from '../../../config.env';
5
5
 
6
6
  @Injectable()