@lenne.tech/nest-server 11.43.2 → 12.0.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.
Files changed (1404) hide show
  1. package/.claude/rules/architecture.md +82 -0
  2. package/.claude/rules/module-deprecation.md +3 -2
  3. package/.claude/rules/package-management.md +26 -15
  4. package/.claude/rules/role-system.md +17 -0
  5. package/.claude/rules/testing.md +24 -15
  6. package/CLAUDE.md +29 -4
  7. package/FRAMEWORK-API.md +215 -215
  8. package/bin/migrate.js +18 -17
  9. package/bin/package.json +3 -0
  10. package/dist/config.env.d.ts +1 -1
  11. package/dist/config.env.js +34 -43
  12. package/dist/config.env.js.map +1 -1
  13. package/dist/core/common/args/filter.args.d.ts +2 -2
  14. package/dist/core/common/args/filter.args.js +13 -16
  15. package/dist/core/common/args/filter.args.js.map +1 -1
  16. package/dist/core/common/args/pagination.args.d.ts +2 -2
  17. package/dist/core/common/args/pagination.args.js +20 -23
  18. package/dist/core/common/args/pagination.args.js.map +1 -1
  19. package/dist/core/common/decorators/api-methods.decorator.js +3 -7
  20. package/dist/core/common/decorators/api-methods.decorator.js.map +1 -1
  21. package/dist/core/common/decorators/common-error.decorator.js +6 -10
  22. package/dist/core/common/decorators/common-error.decorator.js.map +1 -1
  23. package/dist/core/common/decorators/current-user.decorator.js +3 -6
  24. package/dist/core/common/decorators/current-user.decorator.js.map +1 -1
  25. package/dist/core/common/decorators/graphql-populate.decorator.d.ts +1 -1
  26. package/dist/core/common/decorators/graphql-populate.decorator.js +3 -6
  27. package/dist/core/common/decorators/graphql-populate.decorator.js.map +1 -1
  28. package/dist/core/common/decorators/graphql-service-options.decorator.d.ts +1 -1
  29. package/dist/core/common/decorators/graphql-service-options.decorator.js +7 -10
  30. package/dist/core/common/decorators/graphql-service-options.decorator.js.map +1 -1
  31. package/dist/core/common/decorators/graphql-user.decorator.js +4 -7
  32. package/dist/core/common/decorators/graphql-user.decorator.js.map +1 -1
  33. package/dist/core/common/decorators/nested-type.registry.js +3 -7
  34. package/dist/core/common/decorators/nested-type.registry.js.map +1 -1
  35. package/dist/core/common/decorators/response-model.decorator.d.ts +1 -1
  36. package/dist/core/common/decorators/response-model.decorator.js +3 -7
  37. package/dist/core/common/decorators/response-model.decorator.js.map +1 -1
  38. package/dist/core/common/decorators/rest-service-options.decorator.js +4 -7
  39. package/dist/core/common/decorators/rest-service-options.decorator.js.map +1 -1
  40. package/dist/core/common/decorators/rest-user.decorator.js +2 -5
  41. package/dist/core/common/decorators/rest-user.decorator.js.map +1 -1
  42. package/dist/core/common/decorators/restricted.decorator.d.ts +3 -3
  43. package/dist/core/common/decorators/restricted.decorator.js +42 -52
  44. package/dist/core/common/decorators/restricted.decorator.js.map +1 -1
  45. package/dist/core/common/decorators/restrictions-checked.marker.js +8 -14
  46. package/dist/core/common/decorators/restrictions-checked.marker.js.map +1 -1
  47. package/dist/core/common/decorators/roles.decorator.js +2 -6
  48. package/dist/core/common/decorators/roles.decorator.js.map +1 -1
  49. package/dist/core/common/decorators/translatable.decorator.js +4 -9
  50. package/dist/core/common/decorators/translatable.decorator.js.map +1 -1
  51. package/dist/core/common/decorators/unified-field.decorator.d.ts +4 -4
  52. package/dist/core/common/decorators/unified-field.decorator.js +56 -64
  53. package/dist/core/common/decorators/unified-field.decorator.js.map +1 -1
  54. package/dist/core/common/enums/comparison-operator.enum.js +4 -7
  55. package/dist/core/common/enums/comparison-operator.enum.js.map +1 -1
  56. package/dist/core/common/enums/logical-operator.enum.js +4 -7
  57. package/dist/core/common/enums/logical-operator.enum.js.map +1 -1
  58. package/dist/core/common/enums/process-type.enum.js +2 -5
  59. package/dist/core/common/enums/process-type.enum.js.map +1 -1
  60. package/dist/core/common/enums/role.enum.js +14 -22
  61. package/dist/core/common/enums/role.enum.js.map +1 -1
  62. package/dist/core/common/enums/sort-order.emum.js +4 -7
  63. package/dist/core/common/enums/sort-order.emum.js.map +1 -1
  64. package/dist/core/common/exceptions/access-denied.exception.js +5 -8
  65. package/dist/core/common/exceptions/access-denied.exception.js.map +1 -1
  66. package/dist/core/common/filters/http-exception-log.filter.js +7 -9
  67. package/dist/core/common/filters/http-exception-log.filter.js.map +1 -1
  68. package/dist/core/common/filters/mongoose-cast-error.filter.js +16 -23
  69. package/dist/core/common/filters/mongoose-cast-error.filter.js.map +1 -1
  70. package/dist/core/common/helpers/clone.helper.js +6 -10
  71. package/dist/core/common/helpers/clone.helper.js.map +1 -1
  72. package/dist/core/common/helpers/common.helper.js +2 -6
  73. package/dist/core/common/helpers/common.helper.js.map +1 -1
  74. package/dist/core/common/helpers/config.helper.d.ts +1 -0
  75. package/dist/core/common/helpers/config.helper.js +35 -40
  76. package/dist/core/common/helpers/config.helper.js.map +1 -1
  77. package/dist/core/common/helpers/content-disposition.helper.js +1 -4
  78. package/dist/core/common/helpers/content-disposition.helper.js.map +1 -1
  79. package/dist/core/common/helpers/context.helper.js +4 -8
  80. package/dist/core/common/helpers/context.helper.js.map +1 -1
  81. package/dist/core/common/helpers/cookies.helper.d.ts +1 -1
  82. package/dist/core/common/helpers/cookies.helper.js +20 -37
  83. package/dist/core/common/helpers/cookies.helper.js.map +1 -1
  84. package/dist/core/common/helpers/db.helper.d.ts +5 -5
  85. package/dist/core/common/helpers/db.helper.js +32 -52
  86. package/dist/core/common/helpers/db.helper.js.map +1 -1
  87. package/dist/core/common/helpers/decorator.helper.js +9 -13
  88. package/dist/core/common/helpers/decorator.helper.js.map +1 -1
  89. package/dist/core/common/helpers/execution-context-request.helper.js +1 -4
  90. package/dist/core/common/helpers/execution-context-request.helper.js.map +1 -1
  91. package/dist/core/common/helpers/file.helper.d.ts +1 -1
  92. package/dist/core/common/helpers/file.helper.js +24 -32
  93. package/dist/core/common/helpers/file.helper.js.map +1 -1
  94. package/dist/core/common/helpers/filter.helper.d.ts +2 -2
  95. package/dist/core/common/helpers/filter.helper.js +35 -44
  96. package/dist/core/common/helpers/filter.helper.js.map +1 -1
  97. package/dist/core/common/helpers/graceful-shutdown.helper.js +5 -8
  98. package/dist/core/common/helpers/graceful-shutdown.helper.js.map +1 -1
  99. package/dist/core/common/helpers/graphql-ws-connection.helper.d.ts +3 -1
  100. package/dist/core/common/helpers/graphql-ws-connection.helper.js +25 -32
  101. package/dist/core/common/helpers/graphql-ws-connection.helper.js.map +1 -1
  102. package/dist/core/common/helpers/graphql-ws-context.helper.d.ts +2 -2
  103. package/dist/core/common/helpers/graphql-ws-context.helper.js +25 -33
  104. package/dist/core/common/helpers/graphql-ws-context.helper.js.map +1 -1
  105. package/dist/core/common/helpers/graphql.helper.js +14 -29
  106. package/dist/core/common/helpers/graphql.helper.js.map +1 -1
  107. package/dist/core/common/helpers/gridfs.helper.js +3 -7
  108. package/dist/core/common/helpers/gridfs.helper.js.map +1 -1
  109. package/dist/core/common/helpers/id.helper.d.ts +1 -1
  110. package/dist/core/common/helpers/id.helper.js +9 -15
  111. package/dist/core/common/helpers/id.helper.js.map +1 -1
  112. package/dist/core/common/helpers/input.helper.d.ts +3 -3
  113. package/dist/core/common/helpers/input.helper.js +68 -110
  114. package/dist/core/common/helpers/input.helper.js.map +1 -1
  115. package/dist/core/common/helpers/interceptor.helper.d.ts +1 -1
  116. package/dist/core/common/helpers/interceptor.helper.js +7 -11
  117. package/dist/core/common/helpers/interceptor.helper.js.map +1 -1
  118. package/dist/core/common/helpers/logging.helper.js +7 -16
  119. package/dist/core/common/helpers/logging.helper.js.map +1 -1
  120. package/dist/core/common/helpers/meta.helper.js +14 -20
  121. package/dist/core/common/helpers/meta.helper.js.map +1 -1
  122. package/dist/core/common/helpers/model.helper.js +20 -31
  123. package/dist/core/common/helpers/model.helper.js.map +1 -1
  124. package/dist/core/common/helpers/module-location.helper.d.ts +1 -0
  125. package/dist/core/common/helpers/module-location.helper.js +20 -0
  126. package/dist/core/common/helpers/module-location.helper.js.map +1 -0
  127. package/dist/core/common/helpers/outbound-url.helper.js +24 -33
  128. package/dist/core/common/helpers/outbound-url.helper.js.map +1 -1
  129. package/dist/core/common/helpers/process-diagnostics.helper.js +6 -10
  130. package/dist/core/common/helpers/process-diagnostics.helper.js.map +1 -1
  131. package/dist/core/common/helpers/project-name.helper.js +4 -8
  132. package/dist/core/common/helpers/project-name.helper.js.map +1 -1
  133. package/dist/core/common/helpers/register-enum.helper.js +11 -16
  134. package/dist/core/common/helpers/register-enum.helper.js.map +1 -1
  135. package/dist/core/common/helpers/scim.helper.js +1 -4
  136. package/dist/core/common/helpers/scim.helper.js.map +1 -1
  137. package/dist/core/common/helpers/service.helper.d.ts +3 -3
  138. package/dist/core/common/helpers/service.helper.js +29 -36
  139. package/dist/core/common/helpers/service.helper.js.map +1 -1
  140. package/dist/core/common/helpers/swagger.helper.d.ts +2 -2
  141. package/dist/core/common/helpers/swagger.helper.js +116 -86
  142. package/dist/core/common/helpers/swagger.helper.js.map +1 -1
  143. package/dist/core/common/helpers/table.helper.js +1 -4
  144. package/dist/core/common/helpers/table.helper.js.map +1 -1
  145. package/dist/core/common/helpers/validation-message.helper.js +2 -6
  146. package/dist/core/common/helpers/validation-message.helper.js.map +1 -1
  147. package/dist/core/common/inputs/combined-filter.input.d.ts +1 -1
  148. package/dist/core/common/inputs/combined-filter.input.js +1 -5
  149. package/dist/core/common/inputs/combined-filter.input.js.map +1 -1
  150. package/dist/core/common/inputs/core-input.input.d.ts +1 -1
  151. package/dist/core/common/inputs/core-input.input.js +4 -8
  152. package/dist/core/common/inputs/core-input.input.js.map +1 -1
  153. package/dist/core/common/inputs/filter.input.d.ts +3 -3
  154. package/dist/core/common/inputs/filter.input.js +31 -34
  155. package/dist/core/common/inputs/filter.input.js.map +1 -1
  156. package/dist/core/common/inputs/single-filter.input.d.ts +2 -2
  157. package/dist/core/common/inputs/single-filter.input.js +28 -31
  158. package/dist/core/common/inputs/single-filter.input.js.map +1 -1
  159. package/dist/core/common/inputs/sort.input.d.ts +2 -2
  160. package/dist/core/common/inputs/sort.input.js +16 -19
  161. package/dist/core/common/inputs/sort.input.js.map +1 -1
  162. package/dist/core/common/interceptors/check-response.interceptor.d.ts +1 -1
  163. package/dist/core/common/interceptors/check-response.interceptor.js +12 -15
  164. package/dist/core/common/interceptors/check-response.interceptor.js.map +1 -1
  165. package/dist/core/common/interceptors/check-security.interceptor.d.ts +1 -1
  166. package/dist/core/common/interceptors/check-security.interceptor.js +16 -19
  167. package/dist/core/common/interceptors/check-security.interceptor.js.map +1 -1
  168. package/dist/core/common/interceptors/response-model.interceptor.d.ts +1 -1
  169. package/dist/core/common/interceptors/response-model.interceptor.js +16 -19
  170. package/dist/core/common/interceptors/response-model.interceptor.js.map +1 -1
  171. package/dist/core/common/interceptors/translate-response.interceptor.js +12 -15
  172. package/dist/core/common/interceptors/translate-response.interceptor.js.map +1 -1
  173. package/dist/core/common/interfaces/core-persistence-model.interface.d.ts +1 -1
  174. package/dist/core/common/interfaces/core-persistence-model.interface.js +1 -2
  175. package/dist/core/common/interfaces/cron-job-config-with-time-zone.interface.d.ts +1 -1
  176. package/dist/core/common/interfaces/cron-job-config-with-time-zone.interface.js +1 -2
  177. package/dist/core/common/interfaces/cron-job-config-with-utc-offset.interface.d.ts +1 -1
  178. package/dist/core/common/interfaces/cron-job-config-with-utc-offset.interface.js +1 -2
  179. package/dist/core/common/interfaces/cron-job-config.interface.js +1 -2
  180. package/dist/core/common/interfaces/mailjet-options.interface.js +1 -2
  181. package/dist/core/common/interfaces/prepare-input-options.interface.js +1 -2
  182. package/dist/core/common/interfaces/prepare-output-options.interface.js +1 -2
  183. package/dist/core/common/interfaces/resolve-selector.interface.js +1 -2
  184. package/dist/core/common/interfaces/scim-array-filter-node.interface.d.ts +1 -1
  185. package/dist/core/common/interfaces/scim-array-filter-node.interface.js +1 -2
  186. package/dist/core/common/interfaces/scim-condition-node.interface.d.ts +1 -1
  187. package/dist/core/common/interfaces/scim-condition-node.interface.js +1 -2
  188. package/dist/core/common/interfaces/scim-logical-node.interface.d.ts +2 -2
  189. package/dist/core/common/interfaces/scim-logical-node.interface.js +1 -2
  190. package/dist/core/common/interfaces/server-options.interface.d.ts +8 -9
  191. package/dist/core/common/interfaces/server-options.interface.js +1 -2
  192. package/dist/core/common/interfaces/service-options.interface.d.ts +3 -3
  193. package/dist/core/common/interfaces/service-options.interface.js +1 -2
  194. package/dist/core/common/interfaces/swagger-setup-options.interface.js +1 -2
  195. package/dist/core/common/middleware/request-context.middleware.js +6 -9
  196. package/dist/core/common/middleware/request-context.middleware.js.map +1 -1
  197. package/dist/core/common/middlewares/security-headers.middleware.d.ts +2 -2
  198. package/dist/core/common/middlewares/security-headers.middleware.js +6 -9
  199. package/dist/core/common/middlewares/security-headers.middleware.js.map +1 -1
  200. package/dist/core/common/middlewares/to-lower-case.middleware.js +1 -5
  201. package/dist/core/common/middlewares/to-lower-case.middleware.js.map +1 -1
  202. package/dist/core/common/models/core-model.model.js +3 -7
  203. package/dist/core/common/models/core-model.model.js.map +1 -1
  204. package/dist/core/common/models/core-persistence.model.d.ts +1 -1
  205. package/dist/core/common/models/core-persistence.model.js +27 -30
  206. package/dist/core/common/models/core-persistence.model.js.map +1 -1
  207. package/dist/core/common/models/pagination-info.model.js +11 -14
  208. package/dist/core/common/models/pagination-info.model.js.map +1 -1
  209. package/dist/core/common/pipes/check-input.pipe.js +10 -13
  210. package/dist/core/common/pipes/check-input.pipe.js.map +1 -1
  211. package/dist/core/common/pipes/map-and-validate.pipe.js +63 -66
  212. package/dist/core/common/pipes/map-and-validate.pipe.js.map +1 -1
  213. package/dist/core/common/plugins/complexity.plugin.d.ts +1 -1
  214. package/dist/core/common/plugins/complexity.plugin.js +13 -16
  215. package/dist/core/common/plugins/complexity.plugin.js.map +1 -1
  216. package/dist/core/common/plugins/mongoose-audit-fields.plugin.js +7 -10
  217. package/dist/core/common/plugins/mongoose-audit-fields.plugin.js.map +1 -1
  218. package/dist/core/common/plugins/mongoose-id.plugin.js +1 -4
  219. package/dist/core/common/plugins/mongoose-id.plugin.js.map +1 -1
  220. package/dist/core/common/plugins/mongoose-password.plugin.js +10 -16
  221. package/dist/core/common/plugins/mongoose-password.plugin.js.map +1 -1
  222. package/dist/core/common/plugins/mongoose-role-guard.plugin.js +14 -17
  223. package/dist/core/common/plugins/mongoose-role-guard.plugin.js.map +1 -1
  224. package/dist/core/common/plugins/mongoose-system-role.plugin.js +6 -9
  225. package/dist/core/common/plugins/mongoose-system-role.plugin.js.map +1 -1
  226. package/dist/core/common/plugins/mongoose-tenant.plugin.js +15 -18
  227. package/dist/core/common/plugins/mongoose-tenant.plugin.js.map +1 -1
  228. package/dist/core/common/scalars/any.scalar.js +14 -17
  229. package/dist/core/common/scalars/any.scalar.js.map +1 -1
  230. package/dist/core/common/scalars/date-timestamp.scalar.js +7 -10
  231. package/dist/core/common/scalars/date-timestamp.scalar.js.map +1 -1
  232. package/dist/core/common/scalars/date.scalar.js +7 -10
  233. package/dist/core/common/scalars/date.scalar.js.map +1 -1
  234. package/dist/core/common/scalars/json.scalar.js +14 -17
  235. package/dist/core/common/scalars/json.scalar.js.map +1 -1
  236. package/dist/core/common/scalars/upload.scalar.d.ts +2 -0
  237. package/dist/core/common/scalars/upload.scalar.js +3 -0
  238. package/dist/core/common/scalars/upload.scalar.js.map +1 -0
  239. package/dist/core/common/services/brevo.service.d.ts +7 -3
  240. package/dist/core/common/services/brevo.service.js +11 -13
  241. package/dist/core/common/services/brevo.service.js.map +1 -1
  242. package/dist/core/common/services/config.service.d.ts +1 -1
  243. package/dist/core/common/services/config.service.js +18 -23
  244. package/dist/core/common/services/config.service.js.map +1 -1
  245. package/dist/core/common/services/core-body-parser.initializer.d.ts +1 -1
  246. package/dist/core/common/services/core-body-parser.initializer.js +17 -21
  247. package/dist/core/common/services/core-body-parser.initializer.js.map +1 -1
  248. package/dist/core/common/services/core-cron-jobs.initializer.d.ts +2 -2
  249. package/dist/core/common/services/core-cron-jobs.initializer.js +12 -17
  250. package/dist/core/common/services/core-cron-jobs.initializer.js.map +1 -1
  251. package/dist/core/common/services/core-cron-jobs.registry.d.ts +1 -1
  252. package/dist/core/common/services/core-cron-jobs.registry.js +2 -6
  253. package/dist/core/common/services/core-cron-jobs.registry.js.map +1 -1
  254. package/dist/core/common/services/core-cron-jobs.service.d.ts +4 -4
  255. package/dist/core/common/services/core-cron-jobs.service.js +37 -35
  256. package/dist/core/common/services/core-cron-jobs.service.js.map +1 -1
  257. package/dist/core/common/services/core-redis-pubsub.d.ts +1 -1
  258. package/dist/core/common/services/core-redis-pubsub.js +4 -8
  259. package/dist/core/common/services/core-redis-pubsub.js.map +1 -1
  260. package/dist/core/common/services/core-redis.service.d.ts +2 -2
  261. package/dist/core/common/services/core-redis.service.js +11 -14
  262. package/dist/core/common/services/core-redis.service.js.map +1 -1
  263. package/dist/core/common/services/core-s3.service.d.ts +2 -2
  264. package/dist/core/common/services/core-s3.service.js +21 -17
  265. package/dist/core/common/services/core-s3.service.js.map +1 -1
  266. package/dist/core/common/services/core-tenant-context.registry.d.ts +5 -1
  267. package/dist/core/common/services/core-tenant-context.registry.js +2 -6
  268. package/dist/core/common/services/core-tenant-context.registry.js.map +1 -1
  269. package/dist/core/common/services/core-trust-proxy.initializer.d.ts +1 -1
  270. package/dist/core/common/services/core-trust-proxy.initializer.js +11 -14
  271. package/dist/core/common/services/core-trust-proxy.initializer.js.map +1 -1
  272. package/dist/core/common/services/crud.service.d.ts +6 -6
  273. package/dist/core/common/services/crud.service.js +35 -39
  274. package/dist/core/common/services/crud.service.js.map +1 -1
  275. package/dist/core/common/services/email.service.d.ts +5 -5
  276. package/dist/core/common/services/email.service.js +27 -30
  277. package/dist/core/common/services/email.service.js.map +1 -1
  278. package/dist/core/common/services/mailjet.service.d.ts +1 -1
  279. package/dist/core/common/services/mailjet.service.js +9 -11
  280. package/dist/core/common/services/mailjet.service.js.map +1 -1
  281. package/dist/core/common/services/model-doc.service.d.ts +1 -1
  282. package/dist/core/common/services/model-doc.service.js +9 -13
  283. package/dist/core/common/services/model-doc.service.js.map +1 -1
  284. package/dist/core/common/services/model-registry.service.d.ts +1 -1
  285. package/dist/core/common/services/model-registry.service.js +1 -5
  286. package/dist/core/common/services/model-registry.service.js.map +1 -1
  287. package/dist/core/common/services/module.service.d.ts +5 -5
  288. package/dist/core/common/services/module.service.js +25 -29
  289. package/dist/core/common/services/module.service.js.map +1 -1
  290. package/dist/core/common/services/rate-limit-store.d.ts +1 -1
  291. package/dist/core/common/services/rate-limit-store.js +9 -15
  292. package/dist/core/common/services/rate-limit-store.js.map +1 -1
  293. package/dist/core/common/services/request-context.service.js +3 -7
  294. package/dist/core/common/services/request-context.service.js.map +1 -1
  295. package/dist/core/common/services/template.service.d.ts +1 -1
  296. package/dist/core/common/services/template.service.js +12 -15
  297. package/dist/core/common/services/template.service.js.map +1 -1
  298. package/dist/core/common/types/array-element.type.js +1 -2
  299. package/dist/core/common/types/core-model-constructor.type.d.ts +1 -1
  300. package/dist/core/common/types/core-model-constructor.type.js +1 -2
  301. package/dist/core/common/types/falsy.type.js +1 -2
  302. package/dist/core/common/types/field-selection.type.d.ts +1 -1
  303. package/dist/core/common/types/field-selection.type.js +1 -2
  304. package/dist/core/common/types/id.type.js +1 -2
  305. package/dist/core/common/types/ids.type.d.ts +1 -1
  306. package/dist/core/common/types/ids.type.js +1 -2
  307. package/dist/core/common/types/is-one-of.type.js +1 -2
  308. package/dist/core/common/types/maybe-promise.type.js +1 -2
  309. package/dist/core/common/types/plain-input.type.js +1 -2
  310. package/dist/core/common/types/plain-object-deep.type.js +1 -2
  311. package/dist/core/common/types/plain-object.type.js +1 -2
  312. package/dist/core/common/types/populate-config.type.js +1 -2
  313. package/dist/core/common/types/remove-methods.type.js +1 -2
  314. package/dist/core/common/types/require-only-one.type.js +1 -2
  315. package/dist/core/common/types/required-at-least-one.type.js +1 -2
  316. package/dist/core/common/types/scim-comparator.type.js +1 -2
  317. package/dist/core/common/types/scim-logical-operator.type.js +1 -2
  318. package/dist/core/common/types/scim-node.type.d.ts +3 -3
  319. package/dist/core/common/types/scim-node.type.js +1 -2
  320. package/dist/core/common/types/string-or-object-id.type.js +1 -2
  321. package/dist/core/common/types/wrapper.type.js +1 -2
  322. package/dist/core/modules/ai/core-ai-mcp-oauth.initializer.d.ts +1 -1
  323. package/dist/core/modules/ai/core-ai-mcp-oauth.initializer.js +39 -42
  324. package/dist/core/modules/ai/core-ai-mcp-oauth.initializer.js.map +1 -1
  325. package/dist/core/modules/ai/core-ai-mcp.controller.d.ts +9 -4
  326. package/dist/core/modules/ai/core-ai-mcp.controller.js +69 -49
  327. package/dist/core/modules/ai/core-ai-mcp.controller.js.map +1 -1
  328. package/dist/core/modules/ai/core-ai.constants.js +22 -25
  329. package/dist/core/modules/ai/core-ai.constants.js.map +1 -1
  330. package/dist/core/modules/ai/core-ai.controller.d.ts +38 -38
  331. package/dist/core/modules/ai/core-ai.controller.js +223 -226
  332. package/dist/core/modules/ai/core-ai.controller.js.map +1 -1
  333. package/dist/core/modules/ai/core-ai.module.d.ts +19 -19
  334. package/dist/core/modules/ai/core-ai.module.js +136 -139
  335. package/dist/core/modules/ai/core-ai.module.js.map +1 -1
  336. package/dist/core/modules/ai/core-ai.resolver.d.ts +36 -36
  337. package/dist/core/modules/ai/core-ai.resolver.js +236 -239
  338. package/dist/core/modules/ai/core-ai.resolver.js.map +1 -1
  339. package/dist/core/modules/ai/helpers/ai-mcp-oauth-consent.helper.js +11 -17
  340. package/dist/core/modules/ai/helpers/ai-mcp-oauth-consent.helper.js.map +1 -1
  341. package/dist/core/modules/ai/helpers/ai-mcp-oauth.helper.d.ts +2 -2
  342. package/dist/core/modules/ai/helpers/ai-mcp-oauth.helper.js +13 -17
  343. package/dist/core/modules/ai/helpers/ai-mcp-oauth.helper.js.map +1 -1
  344. package/dist/core/modules/ai/helpers/ai-mcp-oauth.registry.js +2 -6
  345. package/dist/core/modules/ai/helpers/ai-mcp-oauth.registry.js.map +1 -1
  346. package/dist/core/modules/ai/hooks/ai-hook.base.d.ts +2 -2
  347. package/dist/core/modules/ai/hooks/ai-hook.base.js +7 -10
  348. package/dist/core/modules/ai/hooks/ai-hook.base.js.map +1 -1
  349. package/dist/core/modules/ai/hooks/ai-hook.registry.d.ts +3 -3
  350. package/dist/core/modules/ai/hooks/ai-hook.registry.js +5 -8
  351. package/dist/core/modules/ai/hooks/ai-hook.registry.js.map +1 -1
  352. package/dist/core/modules/ai/index.d.ts +71 -71
  353. package/dist/core/modules/ai/index.js +71 -87
  354. package/dist/core/modules/ai/index.js.map +1 -1
  355. package/dist/core/modules/ai/inputs/core-ai-budget-limit-create.input.d.ts +1 -1
  356. package/dist/core/modules/ai/inputs/core-ai-budget-limit-create.input.js +16 -19
  357. package/dist/core/modules/ai/inputs/core-ai-budget-limit-create.input.js.map +1 -1
  358. package/dist/core/modules/ai/inputs/core-ai-budget-limit.input.js +21 -24
  359. package/dist/core/modules/ai/inputs/core-ai-budget-limit.input.js.map +1 -1
  360. package/dist/core/modules/ai/inputs/core-ai-connection-create.input.d.ts +1 -1
  361. package/dist/core/modules/ai/inputs/core-ai-connection-create.input.js +16 -19
  362. package/dist/core/modules/ai/inputs/core-ai-connection-create.input.js.map +1 -1
  363. package/dist/core/modules/ai/inputs/core-ai-connection-preference.input.js +18 -21
  364. package/dist/core/modules/ai/inputs/core-ai-connection-preference.input.js.map +1 -1
  365. package/dist/core/modules/ai/inputs/core-ai-connection.input.js +52 -55
  366. package/dist/core/modules/ai/inputs/core-ai-connection.input.js.map +1 -1
  367. package/dist/core/modules/ai/inputs/core-ai-conversation-create.input.d.ts +1 -1
  368. package/dist/core/modules/ai/inputs/core-ai-conversation-create.input.js +9 -12
  369. package/dist/core/modules/ai/inputs/core-ai-conversation-create.input.js.map +1 -1
  370. package/dist/core/modules/ai/inputs/core-ai-conversation.input.js +12 -15
  371. package/dist/core/modules/ai/inputs/core-ai-conversation.input.js.map +1 -1
  372. package/dist/core/modules/ai/inputs/core-ai-prompt-create.input.d.ts +1 -1
  373. package/dist/core/modules/ai/inputs/core-ai-prompt-create.input.js +20 -23
  374. package/dist/core/modules/ai/inputs/core-ai-prompt-create.input.js.map +1 -1
  375. package/dist/core/modules/ai/inputs/core-ai-prompt-hint-create.input.d.ts +1 -1
  376. package/dist/core/modules/ai/inputs/core-ai-prompt-hint-create.input.js +14 -17
  377. package/dist/core/modules/ai/inputs/core-ai-prompt-hint-create.input.js.map +1 -1
  378. package/dist/core/modules/ai/inputs/core-ai-prompt-hint.input.js +18 -21
  379. package/dist/core/modules/ai/inputs/core-ai-prompt-hint.input.js.map +1 -1
  380. package/dist/core/modules/ai/inputs/core-ai-prompt-update.input.d.ts +1 -1
  381. package/dist/core/modules/ai/inputs/core-ai-prompt-update.input.js +19 -22
  382. package/dist/core/modules/ai/inputs/core-ai-prompt-update.input.js.map +1 -1
  383. package/dist/core/modules/ai/inputs/core-ai-prompt.input.js +37 -40
  384. package/dist/core/modules/ai/inputs/core-ai-prompt.input.js.map +1 -1
  385. package/dist/core/modules/ai/inputs/core-ai-slot-create.input.d.ts +1 -1
  386. package/dist/core/modules/ai/inputs/core-ai-slot-create.input.js +14 -17
  387. package/dist/core/modules/ai/inputs/core-ai-slot-create.input.js.map +1 -1
  388. package/dist/core/modules/ai/inputs/core-ai-slot-update.input.js +24 -27
  389. package/dist/core/modules/ai/inputs/core-ai-slot-update.input.js.map +1 -1
  390. package/dist/core/modules/ai/interfaces/ai-hook.interface.d.ts +3 -3
  391. package/dist/core/modules/ai/interfaces/ai-hook.interface.js +1 -2
  392. package/dist/core/modules/ai/interfaces/ai-interaction-record.interface.js +1 -2
  393. package/dist/core/modules/ai/interfaces/ai-placeholder.interface.d.ts +1 -1
  394. package/dist/core/modules/ai/interfaces/ai-placeholder.interface.js +1 -2
  395. package/dist/core/modules/ai/interfaces/ai-tool.interface.d.ts +2 -2
  396. package/dist/core/modules/ai/interfaces/ai-tool.interface.js +1 -2
  397. package/dist/core/modules/ai/interfaces/llm-provider.interface.js +1 -2
  398. package/dist/core/modules/ai/interfaces/resolved-ai-connection.interface.js +1 -2
  399. package/dist/core/modules/ai/models/core-ai-action.model.js +12 -15
  400. package/dist/core/modules/ai/models/core-ai-action.model.js.map +1 -1
  401. package/dist/core/modules/ai/models/core-ai-available-connection.model.js +13 -16
  402. package/dist/core/modules/ai/models/core-ai-available-connection.model.js.map +1 -1
  403. package/dist/core/modules/ai/models/core-ai-budget-limit.model.d.ts +1 -1
  404. package/dist/core/modules/ai/models/core-ai-budget-limit.model.js +24 -27
  405. package/dist/core/modules/ai/models/core-ai-budget-limit.model.js.map +1 -1
  406. package/dist/core/modules/ai/models/core-ai-connection-preference.model.d.ts +1 -1
  407. package/dist/core/modules/ai/models/core-ai-connection-preference.model.js +22 -25
  408. package/dist/core/modules/ai/models/core-ai-connection-preference.model.js.map +1 -1
  409. package/dist/core/modules/ai/models/core-ai-connection.model.d.ts +1 -1
  410. package/dist/core/modules/ai/models/core-ai-connection.model.js +56 -59
  411. package/dist/core/modules/ai/models/core-ai-connection.model.js.map +1 -1
  412. package/dist/core/modules/ai/models/core-ai-conversation.model.d.ts +2 -2
  413. package/dist/core/modules/ai/models/core-ai-conversation.model.js +31 -34
  414. package/dist/core/modules/ai/models/core-ai-conversation.model.js.map +1 -1
  415. package/dist/core/modules/ai/models/core-ai-interaction.model.d.ts +1 -1
  416. package/dist/core/modules/ai/models/core-ai-interaction.model.js +39 -42
  417. package/dist/core/modules/ai/models/core-ai-interaction.model.js.map +1 -1
  418. package/dist/core/modules/ai/models/core-ai-message.model.js +10 -13
  419. package/dist/core/modules/ai/models/core-ai-message.model.js.map +1 -1
  420. package/dist/core/modules/ai/models/core-ai-mode.model.d.ts +1 -1
  421. package/dist/core/modules/ai/models/core-ai-mode.model.js +27 -30
  422. package/dist/core/modules/ai/models/core-ai-mode.model.js.map +1 -1
  423. package/dist/core/modules/ai/models/core-ai-prompt-hint.model.d.ts +1 -1
  424. package/dist/core/modules/ai/models/core-ai-prompt-hint.model.js +26 -29
  425. package/dist/core/modules/ai/models/core-ai-prompt-hint.model.js.map +1 -1
  426. package/dist/core/modules/ai/models/core-ai-prompt.model.d.ts +1 -1
  427. package/dist/core/modules/ai/models/core-ai-prompt.model.js +29 -32
  428. package/dist/core/modules/ai/models/core-ai-prompt.model.js.map +1 -1
  429. package/dist/core/modules/ai/models/core-ai-response.model.d.ts +3 -3
  430. package/dist/core/modules/ai/models/core-ai-response.model.js +28 -31
  431. package/dist/core/modules/ai/models/core-ai-response.model.js.map +1 -1
  432. package/dist/core/modules/ai/models/core-ai-slot.model.d.ts +1 -1
  433. package/dist/core/modules/ai/models/core-ai-slot.model.js +32 -35
  434. package/dist/core/modules/ai/models/core-ai-slot.model.js.map +1 -1
  435. package/dist/core/modules/ai/models/core-ai-tool-grant.model.d.ts +1 -1
  436. package/dist/core/modules/ai/models/core-ai-tool-grant.model.js +26 -29
  437. package/dist/core/modules/ai/models/core-ai-tool-grant.model.js.map +1 -1
  438. package/dist/core/modules/ai/models/core-ai-tool-policy.model.d.ts +1 -1
  439. package/dist/core/modules/ai/models/core-ai-tool-policy.model.js +36 -39
  440. package/dist/core/modules/ai/models/core-ai-tool-policy.model.js.map +1 -1
  441. package/dist/core/modules/ai/models/core-ai-usage-info.model.js +33 -36
  442. package/dist/core/modules/ai/models/core-ai-usage-info.model.js.map +1 -1
  443. package/dist/core/modules/ai/models/core-ai-usage.model.js +10 -13
  444. package/dist/core/modules/ai/models/core-ai-usage.model.js.map +1 -1
  445. package/dist/core/modules/ai/providers/claude-cli.provider.d.ts +2 -2
  446. package/dist/core/modules/ai/providers/claude-cli.provider.js +14 -18
  447. package/dist/core/modules/ai/providers/claude-cli.provider.js.map +1 -1
  448. package/dist/core/modules/ai/providers/llm-provider.factory.d.ts +2 -2
  449. package/dist/core/modules/ai/providers/llm-provider.factory.js +7 -10
  450. package/dist/core/modules/ai/providers/llm-provider.factory.js.map +1 -1
  451. package/dist/core/modules/ai/providers/openai-compatible.provider.d.ts +2 -2
  452. package/dist/core/modules/ai/providers/openai-compatible.provider.js +12 -16
  453. package/dist/core/modules/ai/providers/openai-compatible.provider.js.map +1 -1
  454. package/dist/core/modules/ai/services/ai-crypto.service.js +15 -18
  455. package/dist/core/modules/ai/services/ai-crypto.service.js.map +1 -1
  456. package/dist/core/modules/ai/services/core-ai-budget.service.d.ts +8 -8
  457. package/dist/core/modules/ai/services/core-ai-budget.service.js +22 -28
  458. package/dist/core/modules/ai/services/core-ai-budget.service.js.map +1 -1
  459. package/dist/core/modules/ai/services/core-ai-connection-preference.service.d.ts +5 -5
  460. package/dist/core/modules/ai/services/core-ai-connection-preference.service.js +14 -19
  461. package/dist/core/modules/ai/services/core-ai-connection-preference.service.js.map +1 -1
  462. package/dist/core/modules/ai/services/core-ai-connection-resolver.service.d.ts +5 -5
  463. package/dist/core/modules/ai/services/core-ai-connection-resolver.service.js +17 -20
  464. package/dist/core/modules/ai/services/core-ai-connection-resolver.service.js.map +1 -1
  465. package/dist/core/modules/ai/services/core-ai-connection.service.d.ts +11 -11
  466. package/dist/core/modules/ai/services/core-ai-connection.service.js +27 -32
  467. package/dist/core/modules/ai/services/core-ai-connection.service.js.map +1 -1
  468. package/dist/core/modules/ai/services/core-ai-conversation.service.d.ts +8 -8
  469. package/dist/core/modules/ai/services/core-ai-conversation.service.js +18 -23
  470. package/dist/core/modules/ai/services/core-ai-conversation.service.js.map +1 -1
  471. package/dist/core/modules/ai/services/core-ai-interaction.service.d.ts +5 -5
  472. package/dist/core/modules/ai/services/core-ai-interaction.service.js +13 -18
  473. package/dist/core/modules/ai/services/core-ai-interaction.service.js.map +1 -1
  474. package/dist/core/modules/ai/services/core-ai-mcp-client.service.d.ts +3 -3
  475. package/dist/core/modules/ai/services/core-ai-mcp-client.service.js +9 -12
  476. package/dist/core/modules/ai/services/core-ai-mcp-client.service.js.map +1 -1
  477. package/dist/core/modules/ai/services/core-ai-mcp-oauth.service.d.ts +28 -4
  478. package/dist/core/modules/ai/services/core-ai-mcp-oauth.service.js +44 -48
  479. package/dist/core/modules/ai/services/core-ai-mcp-oauth.service.js.map +1 -1
  480. package/dist/core/modules/ai/services/core-ai-mcp.service.d.ts +1 -1
  481. package/dist/core/modules/ai/services/core-ai-mcp.service.js +9 -12
  482. package/dist/core/modules/ai/services/core-ai-mcp.service.js.map +1 -1
  483. package/dist/core/modules/ai/services/core-ai-mode.service.d.ts +4 -4
  484. package/dist/core/modules/ai/services/core-ai-mode.service.js +14 -19
  485. package/dist/core/modules/ai/services/core-ai-mode.service.js.map +1 -1
  486. package/dist/core/modules/ai/services/core-ai-placeholder.registry.d.ts +2 -2
  487. package/dist/core/modules/ai/services/core-ai-placeholder.registry.js +9 -12
  488. package/dist/core/modules/ai/services/core-ai-placeholder.registry.js.map +1 -1
  489. package/dist/core/modules/ai/services/core-ai-prompt-builder.service.d.ts +5 -5
  490. package/dist/core/modules/ai/services/core-ai-prompt-builder.service.js +20 -23
  491. package/dist/core/modules/ai/services/core-ai-prompt-builder.service.js.map +1 -1
  492. package/dist/core/modules/ai/services/core-ai-prompt-hint.service.d.ts +6 -6
  493. package/dist/core/modules/ai/services/core-ai-prompt-hint.service.js +16 -21
  494. package/dist/core/modules/ai/services/core-ai-prompt-hint.service.js.map +1 -1
  495. package/dist/core/modules/ai/services/core-ai-prompt.service.d.ts +7 -7
  496. package/dist/core/modules/ai/services/core-ai-prompt.service.js +26 -31
  497. package/dist/core/modules/ai/services/core-ai-prompt.service.js.map +1 -1
  498. package/dist/core/modules/ai/services/core-ai-slot.service.d.ts +7 -7
  499. package/dist/core/modules/ai/services/core-ai-slot.service.js +25 -31
  500. package/dist/core/modules/ai/services/core-ai-slot.service.js.map +1 -1
  501. package/dist/core/modules/ai/services/core-ai-tool-grant.service.d.ts +4 -4
  502. package/dist/core/modules/ai/services/core-ai-tool-grant.service.js +14 -19
  503. package/dist/core/modules/ai/services/core-ai-tool-grant.service.js.map +1 -1
  504. package/dist/core/modules/ai/services/core-ai-tool-policy.service.d.ts +4 -4
  505. package/dist/core/modules/ai/services/core-ai-tool-policy.service.js +14 -19
  506. package/dist/core/modules/ai/services/core-ai-tool-policy.service.js.map +1 -1
  507. package/dist/core/modules/ai/services/core-ai.service.d.ts +27 -27
  508. package/dist/core/modules/ai/services/core-ai.service.js +82 -85
  509. package/dist/core/modules/ai/services/core-ai.service.js.map +1 -1
  510. package/dist/core/modules/ai/tools/ai-tool.base.d.ts +3 -3
  511. package/dist/core/modules/ai/tools/ai-tool.base.js +7 -10
  512. package/dist/core/modules/ai/tools/ai-tool.base.js.map +1 -1
  513. package/dist/core/modules/ai/tools/ai-tool.registry.d.ts +1 -1
  514. package/dist/core/modules/ai/tools/ai-tool.registry.js +25 -28
  515. package/dist/core/modules/ai/tools/ai-tool.registry.js.map +1 -1
  516. package/dist/core/modules/ai/tools/ask-user-question.tool.d.ts +4 -4
  517. package/dist/core/modules/ai/tools/ask-user-question.tool.js +12 -15
  518. package/dist/core/modules/ai/tools/ask-user-question.tool.js.map +1 -1
  519. package/dist/core/modules/ai/tools/search-tools.tool.d.ts +4 -4
  520. package/dist/core/modules/ai/tools/search-tools.tool.js +10 -13
  521. package/dist/core/modules/ai/tools/search-tools.tool.js.map +1 -1
  522. package/dist/core/modules/api-token/core-api-token.constants.js +4 -7
  523. package/dist/core/modules/api-token/core-api-token.constants.js.map +1 -1
  524. package/dist/core/modules/api-token/core-api-token.decorators.js +3 -7
  525. package/dist/core/modules/api-token/core-api-token.decorators.js.map +1 -1
  526. package/dist/core/modules/api-token/core-api-token.helpers.d.ts +2 -2
  527. package/dist/core/modules/api-token/core-api-token.helpers.js +79 -109
  528. package/dist/core/modules/api-token/core-api-token.helpers.js.map +1 -1
  529. package/dist/core/modules/api-token/core-api-token.middleware.d.ts +1 -1
  530. package/dist/core/modules/api-token/core-api-token.middleware.js +15 -18
  531. package/dist/core/modules/api-token/core-api-token.middleware.js.map +1 -1
  532. package/dist/core/modules/api-token/core-api-token.model.d.ts +2 -2
  533. package/dist/core/modules/api-token/core-api-token.model.js +59 -62
  534. package/dist/core/modules/api-token/core-api-token.model.js.map +1 -1
  535. package/dist/core/modules/api-token/core-api-token.module.d.ts +2 -2
  536. package/dist/core/modules/api-token/core-api-token.module.js +15 -18
  537. package/dist/core/modules/api-token/core-api-token.module.js.map +1 -1
  538. package/dist/core/modules/api-token/core-api-token.registry.js +2 -6
  539. package/dist/core/modules/api-token/core-api-token.registry.js.map +1 -1
  540. package/dist/core/modules/api-token/core-api-token.service.d.ts +8 -8
  541. package/dist/core/modules/api-token/core-api-token.service.js +103 -108
  542. package/dist/core/modules/api-token/core-api-token.service.js.map +1 -1
  543. package/dist/core/modules/auth/auth-guard-strategy.enum.js +2 -5
  544. package/dist/core/modules/auth/auth-guard-strategy.enum.js.map +1 -1
  545. package/dist/core/modules/auth/core-auth.controller.d.ts +7 -7
  546. package/dist/core/modules/auth/core-auth.controller.js +71 -74
  547. package/dist/core/modules/auth/core-auth.controller.js.map +1 -1
  548. package/dist/core/modules/auth/core-auth.model.d.ts +2 -2
  549. package/dist/core/modules/auth/core-auth.model.js +19 -22
  550. package/dist/core/modules/auth/core-auth.model.js.map +1 -1
  551. package/dist/core/modules/auth/core-auth.module.d.ts +4 -4
  552. package/dist/core/modules/auth/core-auth.module.js +45 -48
  553. package/dist/core/modules/auth/core-auth.module.js.map +1 -1
  554. package/dist/core/modules/auth/core-auth.resolver.d.ts +7 -7
  555. package/dist/core/modules/auth/core-auth.resolver.js +54 -57
  556. package/dist/core/modules/auth/core-auth.resolver.js.map +1 -1
  557. package/dist/core/modules/auth/core-legacy-auth-deprecation.initializer.d.ts +2 -2
  558. package/dist/core/modules/auth/core-legacy-auth-deprecation.initializer.js +18 -16
  559. package/dist/core/modules/auth/core-legacy-auth-deprecation.initializer.js.map +1 -1
  560. package/dist/core/modules/auth/exceptions/expired-refresh-token.exception.js +2 -6
  561. package/dist/core/modules/auth/exceptions/expired-refresh-token.exception.js.map +1 -1
  562. package/dist/core/modules/auth/exceptions/expired-token.exception.js +2 -6
  563. package/dist/core/modules/auth/exceptions/expired-token.exception.js.map +1 -1
  564. package/dist/core/modules/auth/exceptions/invalid-token.exception.js +2 -6
  565. package/dist/core/modules/auth/exceptions/invalid-token.exception.js.map +1 -1
  566. package/dist/core/modules/auth/exceptions/legacy-auth-disabled.exception.js +2 -6
  567. package/dist/core/modules/auth/exceptions/legacy-auth-disabled.exception.js.map +1 -1
  568. package/dist/core/modules/auth/guards/auth.guard.d.ts +1 -1
  569. package/dist/core/modules/auth/guards/auth.guard.js +56 -46
  570. package/dist/core/modules/auth/guards/auth.guard.js.map +1 -1
  571. package/dist/core/modules/auth/guards/legacy-auth-rate-limit.guard.d.ts +1 -1
  572. package/dist/core/modules/auth/guards/legacy-auth-rate-limit.guard.js +11 -14
  573. package/dist/core/modules/auth/guards/legacy-auth-rate-limit.guard.js.map +1 -1
  574. package/dist/core/modules/auth/guards/refresh-token.guard.d.ts +1 -1
  575. package/dist/core/modules/auth/guards/refresh-token.guard.js +6 -9
  576. package/dist/core/modules/auth/guards/refresh-token.guard.js.map +1 -1
  577. package/dist/core/modules/auth/guards/roles-guard-registry.js +3 -7
  578. package/dist/core/modules/auth/guards/roles-guard-registry.js.map +1 -1
  579. package/dist/core/modules/auth/guards/roles.guard.d.ts +2 -2
  580. package/dist/core/modules/auth/guards/roles.guard.js +52 -55
  581. package/dist/core/modules/auth/guards/roles.guard.js.map +1 -1
  582. package/dist/core/modules/auth/helpers/legacy-endpoints.helper.d.ts +1 -1
  583. package/dist/core/modules/auth/helpers/legacy-endpoints.helper.js +1 -4
  584. package/dist/core/modules/auth/helpers/legacy-endpoints.helper.js.map +1 -1
  585. package/dist/core/modules/auth/inputs/core-auth-sign-in.input.d.ts +1 -1
  586. package/dist/core/modules/auth/inputs/core-auth-sign-in.input.js +23 -26
  587. package/dist/core/modules/auth/inputs/core-auth-sign-in.input.js.map +1 -1
  588. package/dist/core/modules/auth/inputs/core-auth-sign-up.input.d.ts +1 -1
  589. package/dist/core/modules/auth/inputs/core-auth-sign-up.input.js +9 -12
  590. package/dist/core/modules/auth/inputs/core-auth-sign-up.input.js.map +1 -1
  591. package/dist/core/modules/auth/interfaces/auth-provider.interface.d.ts +1 -1
  592. package/dist/core/modules/auth/interfaces/auth-provider.interface.js +1 -4
  593. package/dist/core/modules/auth/interfaces/auth-provider.interface.js.map +1 -1
  594. package/dist/core/modules/auth/interfaces/core-auth-user.interface.d.ts +1 -1
  595. package/dist/core/modules/auth/interfaces/core-auth-user.interface.js +1 -2
  596. package/dist/core/modules/auth/interfaces/core-token-data.interface.js +1 -2
  597. package/dist/core/modules/auth/interfaces/jwt-payload.interface.js +1 -2
  598. package/dist/core/modules/auth/services/core-auth-user.service.d.ts +2 -2
  599. package/dist/core/modules/auth/services/core-auth-user.service.js +1 -5
  600. package/dist/core/modules/auth/services/core-auth-user.service.js.map +1 -1
  601. package/dist/core/modules/auth/services/core-auth.service.d.ts +10 -10
  602. package/dist/core/modules/auth/services/core-auth.service.js +50 -53
  603. package/dist/core/modules/auth/services/core-auth.service.js.map +1 -1
  604. package/dist/core/modules/auth/services/legacy-auth-rate-limiter.service.d.ts +3 -3
  605. package/dist/core/modules/auth/services/legacy-auth-rate-limiter.service.js +15 -18
  606. package/dist/core/modules/auth/services/legacy-auth-rate-limiter.service.js.map +1 -1
  607. package/dist/core/modules/auth/strategies/jwt-refresh.strategy.d.ts +2 -2
  608. package/dist/core/modules/auth/strategies/jwt-refresh.strategy.js +15 -18
  609. package/dist/core/modules/auth/strategies/jwt-refresh.strategy.js.map +1 -1
  610. package/dist/core/modules/auth/strategies/jwt.strategy.d.ts +3 -3
  611. package/dist/core/modules/auth/strategies/jwt.strategy.js +15 -18
  612. package/dist/core/modules/auth/strategies/jwt.strategy.js.map +1 -1
  613. package/dist/core/modules/auth/tokens.decorator.d.ts +1 -1
  614. package/dist/core/modules/auth/tokens.decorator.js +4 -7
  615. package/dist/core/modules/auth/tokens.decorator.js.map +1 -1
  616. package/dist/core/modules/better-auth/better-auth-cookie-prefix.helper.js +3 -8
  617. package/dist/core/modules/better-auth/better-auth-cookie-prefix.helper.js.map +1 -1
  618. package/dist/core/modules/better-auth/better-auth-roles.guard.js +30 -33
  619. package/dist/core/modules/better-auth/better-auth-roles.guard.js.map +1 -1
  620. package/dist/core/modules/better-auth/better-auth-token.service.d.ts +3 -3
  621. package/dist/core/modules/better-auth/better-auth-token.service.js +16 -20
  622. package/dist/core/modules/better-auth/better-auth-token.service.js.map +1 -1
  623. package/dist/core/modules/better-auth/better-auth.config.d.ts +3 -2
  624. package/dist/core/modules/better-auth/better-auth.config.js +84 -58
  625. package/dist/core/modules/better-auth/better-auth.config.js.map +1 -1
  626. package/dist/core/modules/better-auth/better-auth.resolver.d.ts +7 -7
  627. package/dist/core/modules/better-auth/better-auth.resolver.js +69 -72
  628. package/dist/core/modules/better-auth/better-auth.resolver.js.map +1 -1
  629. package/dist/core/modules/better-auth/better-auth.types.d.ts +1 -1
  630. package/dist/core/modules/better-auth/better-auth.types.js +5 -12
  631. package/dist/core/modules/better-auth/better-auth.types.js.map +1 -1
  632. package/dist/core/modules/better-auth/core-better-auth-account-issuer.helper.js +3 -7
  633. package/dist/core/modules/better-auth/core-better-auth-account-issuer.helper.js.map +1 -1
  634. package/dist/core/modules/better-auth/core-better-auth-api.middleware.d.ts +10 -3
  635. package/dist/core/modules/better-auth/core-better-auth-api.middleware.js +73 -39
  636. package/dist/core/modules/better-auth/core-better-auth-api.middleware.js.map +1 -1
  637. package/dist/core/modules/better-auth/core-better-auth-auth.model.d.ts +1 -1
  638. package/dist/core/modules/better-auth/core-better-auth-auth.model.js +17 -20
  639. package/dist/core/modules/better-auth/core-better-auth-auth.model.js.map +1 -1
  640. package/dist/core/modules/better-auth/core-better-auth-challenge.service.d.ts +2 -2
  641. package/dist/core/modules/better-auth/core-better-auth-challenge.service.js +12 -17
  642. package/dist/core/modules/better-auth/core-better-auth-challenge.service.js.map +1 -1
  643. package/dist/core/modules/better-auth/core-better-auth-cookie.helper.js +15 -20
  644. package/dist/core/modules/better-auth/core-better-auth-cookie.helper.js.map +1 -1
  645. package/dist/core/modules/better-auth/core-better-auth-email-verification.service.d.ts +8 -8
  646. package/dist/core/modules/better-auth/core-better-auth-email-verification.service.js +39 -37
  647. package/dist/core/modules/better-auth/core-better-auth-email-verification.service.js.map +1 -1
  648. package/dist/core/modules/better-auth/core-better-auth-error-codes.helper.js +13 -17
  649. package/dist/core/modules/better-auth/core-better-auth-error-codes.helper.js.map +1 -1
  650. package/dist/core/modules/better-auth/core-better-auth-migration-status.model.js +12 -15
  651. package/dist/core/modules/better-auth/core-better-auth-migration-status.model.js.map +1 -1
  652. package/dist/core/modules/better-auth/core-better-auth-models.js +62 -65
  653. package/dist/core/modules/better-auth/core-better-auth-models.js.map +1 -1
  654. package/dist/core/modules/better-auth/core-better-auth-openapi.helper.d.ts +1 -1
  655. package/dist/core/modules/better-auth/core-better-auth-openapi.helper.js +15 -25
  656. package/dist/core/modules/better-auth/core-better-auth-openapi.helper.js.map +1 -1
  657. package/dist/core/modules/better-auth/core-better-auth-password-reset.registry.js +4 -8
  658. package/dist/core/modules/better-auth/core-better-auth-password-reset.registry.js.map +1 -1
  659. package/dist/core/modules/better-auth/core-better-auth-rate-limit.middleware.d.ts +2 -2
  660. package/dist/core/modules/better-auth/core-better-auth-rate-limit.middleware.js +11 -14
  661. package/dist/core/modules/better-auth/core-better-auth-rate-limit.middleware.js.map +1 -1
  662. package/dist/core/modules/better-auth/core-better-auth-rate-limiter.service.d.ts +3 -3
  663. package/dist/core/modules/better-auth/core-better-auth-rate-limiter.service.js +13 -16
  664. package/dist/core/modules/better-auth/core-better-auth-rate-limiter.service.js.map +1 -1
  665. package/dist/core/modules/better-auth/core-better-auth-signup-validator.service.d.ts +2 -2
  666. package/dist/core/modules/better-auth/core-better-auth-signup-validator.service.js +10 -13
  667. package/dist/core/modules/better-auth/core-better-auth-signup-validator.service.js.map +1 -1
  668. package/dist/core/modules/better-auth/core-better-auth-token.helper.js +9 -19
  669. package/dist/core/modules/better-auth/core-better-auth-token.helper.js.map +1 -1
  670. package/dist/core/modules/better-auth/core-better-auth-user.mapper.d.ts +1 -1
  671. package/dist/core/modules/better-auth/core-better-auth-user.mapper.js +42 -37
  672. package/dist/core/modules/better-auth/core-better-auth-user.mapper.js.map +1 -1
  673. package/dist/core/modules/better-auth/core-better-auth-web.helper.js +23 -34
  674. package/dist/core/modules/better-auth/core-better-auth-web.helper.js.map +1 -1
  675. package/dist/core/modules/better-auth/core-better-auth.constants.js +8 -11
  676. package/dist/core/modules/better-auth/core-better-auth.constants.js.map +1 -1
  677. package/dist/core/modules/better-auth/core-better-auth.controller.d.ts +7 -7
  678. package/dist/core/modules/better-auth/core-better-auth.controller.js +151 -157
  679. package/dist/core/modules/better-auth/core-better-auth.controller.js.map +1 -1
  680. package/dist/core/modules/better-auth/core-better-auth.middleware.d.ts +2 -2
  681. package/dist/core/modules/better-auth/core-better-auth.middleware.js +17 -20
  682. package/dist/core/modules/better-auth/core-better-auth.middleware.js.map +1 -1
  683. package/dist/core/modules/better-auth/core-better-auth.module.d.ts +10 -10
  684. package/dist/core/modules/better-auth/core-better-auth.module.js +146 -150
  685. package/dist/core/modules/better-auth/core-better-auth.module.js.map +1 -1
  686. package/dist/core/modules/better-auth/core-better-auth.registry.d.ts +5 -1
  687. package/dist/core/modules/better-auth/core-better-auth.registry.js +18 -8
  688. package/dist/core/modules/better-auth/core-better-auth.registry.js.map +1 -1
  689. package/dist/core/modules/better-auth/core-better-auth.resolver.d.ts +7 -7
  690. package/dist/core/modules/better-auth/core-better-auth.resolver.js +127 -128
  691. package/dist/core/modules/better-auth/core-better-auth.resolver.js.map +1 -1
  692. package/dist/core/modules/better-auth/core-better-auth.service.d.ts +7 -7
  693. package/dist/core/modules/better-auth/core-better-auth.service.js +67 -73
  694. package/dist/core/modules/better-auth/core-better-auth.service.js.map +1 -1
  695. package/dist/core/modules/better-auth/index.d.ts +24 -24
  696. package/dist/core/modules/better-auth/index.js +24 -40
  697. package/dist/core/modules/better-auth/index.js.map +1 -1
  698. package/dist/core/modules/error-code/core-error-code.controller.d.ts +2 -2
  699. package/dist/core/modules/error-code/core-error-code.controller.js +12 -15
  700. package/dist/core/modules/error-code/core-error-code.controller.js.map +1 -1
  701. package/dist/core/modules/error-code/core-error-code.service.d.ts +2 -2
  702. package/dist/core/modules/error-code/core-error-code.service.js +6 -9
  703. package/dist/core/modules/error-code/core-error-code.service.js.map +1 -1
  704. package/dist/core/modules/error-code/error-code.module.d.ts +1 -1
  705. package/dist/core/modules/error-code/error-code.module.js +16 -19
  706. package/dist/core/modules/error-code/error-code.module.js.map +1 -1
  707. package/dist/core/modules/error-code/error-codes.js +6 -11
  708. package/dist/core/modules/error-code/error-codes.js.map +1 -1
  709. package/dist/core/modules/error-code/index.d.ts +5 -5
  710. package/dist/core/modules/error-code/index.js +5 -21
  711. package/dist/core/modules/error-code/index.js.map +1 -1
  712. package/dist/core/modules/error-code/interfaces/error-code.interfaces.d.ts +2 -2
  713. package/dist/core/modules/error-code/interfaces/error-code.interfaces.js +1 -2
  714. package/dist/core/modules/file/core-file-access-audit.initializer.d.ts +1 -1
  715. package/dist/core/modules/file/core-file-access-audit.initializer.js +20 -23
  716. package/dist/core/modules/file/core-file-access-audit.initializer.js.map +1 -1
  717. package/dist/core/modules/file/core-file-info.model.d.ts +1 -1
  718. package/dist/core/modules/file/core-file-info.model.js +25 -28
  719. package/dist/core/modules/file/core-file-info.model.js.map +1 -1
  720. package/dist/core/modules/file/core-file.controller.d.ts +3 -3
  721. package/dist/core/modules/file/core-file.controller.js +35 -39
  722. package/dist/core/modules/file/core-file.controller.js.map +1 -1
  723. package/dist/core/modules/file/core-file.resolver.d.ts +2 -2
  724. package/dist/core/modules/file/core-file.resolver.js +30 -33
  725. package/dist/core/modules/file/core-file.resolver.js.map +1 -1
  726. package/dist/core/modules/file/core-file.service.d.ts +11 -11
  727. package/dist/core/modules/file/core-file.service.js +85 -89
  728. package/dist/core/modules/file/core-file.service.js.map +1 -1
  729. package/dist/core/modules/file/file-access.helper.js +5 -10
  730. package/dist/core/modules/file/file-access.helper.js.map +1 -1
  731. package/dist/core/modules/file/file-metadata.helper.js +6 -12
  732. package/dist/core/modules/file/file-metadata.helper.js.map +1 -1
  733. package/dist/core/modules/file/file-roles.config.d.ts +1 -1
  734. package/dist/core/modules/file/file-roles.config.js +19 -27
  735. package/dist/core/modules/file/file-roles.config.js.map +1 -1
  736. package/dist/core/modules/file/file-roles.helper.d.ts +3 -3
  737. package/dist/core/modules/file/file-roles.helper.js +11 -21
  738. package/dist/core/modules/file/file-roles.helper.js.map +1 -1
  739. package/dist/core/modules/file/file-storage.helper.d.ts +1 -1
  740. package/dist/core/modules/file/file-storage.helper.js +10 -18
  741. package/dist/core/modules/file/file-storage.helper.js.map +1 -1
  742. package/dist/core/modules/file/filesystem-file.helper.d.ts +1 -1
  743. package/dist/core/modules/file/filesystem-file.helper.js +26 -30
  744. package/dist/core/modules/file/filesystem-file.helper.js.map +1 -1
  745. package/dist/core/modules/file/interfaces/file-service-options.interface.js +1 -2
  746. package/dist/core/modules/file/interfaces/file-upload.interface.d.ts +1 -1
  747. package/dist/core/modules/file/interfaces/file-upload.interface.js +1 -2
  748. package/dist/core/modules/file/s3-file.helper.d.ts +2 -2
  749. package/dist/core/modules/file/s3-file.helper.js +14 -20
  750. package/dist/core/modules/file/s3-file.helper.js.map +1 -1
  751. package/dist/core/modules/health-check/core-health-check-result.model.d.ts +2 -2
  752. package/dist/core/modules/health-check/core-health-check-result.model.js +25 -28
  753. package/dist/core/modules/health-check/core-health-check-result.model.js.map +1 -1
  754. package/dist/core/modules/health-check/core-health-check.controller.d.ts +1 -1
  755. package/dist/core/modules/health-check/core-health-check.controller.js +11 -14
  756. package/dist/core/modules/health-check/core-health-check.controller.js.map +1 -1
  757. package/dist/core/modules/health-check/core-health-check.module.js +11 -14
  758. package/dist/core/modules/health-check/core-health-check.module.js.map +1 -1
  759. package/dist/core/modules/health-check/core-health-check.resolver.d.ts +1 -1
  760. package/dist/core/modules/health-check/core-health-check.resolver.js +12 -15
  761. package/dist/core/modules/health-check/core-health-check.resolver.js.map +1 -1
  762. package/dist/core/modules/health-check/core-health-check.service.d.ts +1 -1
  763. package/dist/core/modules/health-check/core-health-check.service.js +18 -17
  764. package/dist/core/modules/health-check/core-health-check.service.js.map +1 -1
  765. package/dist/core/modules/hub/core-hub-actions.controller.d.ts +1 -1
  766. package/dist/core/modules/hub/core-hub-actions.controller.js +36 -39
  767. package/dist/core/modules/hub/core-hub-actions.controller.js.map +1 -1
  768. package/dist/core/modules/hub/core-hub-html.service.d.ts +1 -1
  769. package/dist/core/modules/hub/core-hub-html.service.js +15 -18
  770. package/dist/core/modules/hub/core-hub-html.service.js.map +1 -1
  771. package/dist/core/modules/hub/core-hub.controller.d.ts +11 -11
  772. package/dist/core/modules/hub/core-hub.controller.js +100 -103
  773. package/dist/core/modules/hub/core-hub.controller.js.map +1 -1
  774. package/dist/core/modules/hub/core-hub.module.d.ts +2 -2
  775. package/dist/core/modules/hub/core-hub.module.js +53 -56
  776. package/dist/core/modules/hub/core-hub.module.js.map +1 -1
  777. package/dist/core/modules/hub/core-hub.service.d.ts +5 -5
  778. package/dist/core/modules/hub/core-hub.service.js +20 -25
  779. package/dist/core/modules/hub/core-hub.service.js.map +1 -1
  780. package/dist/core/modules/hub/helpers/hub-client-js.helper.js +1 -4
  781. package/dist/core/modules/hub/helpers/hub-client-js.helper.js.map +1 -1
  782. package/dist/core/modules/hub/helpers/hub-command-shape.helper.js +1 -4
  783. package/dist/core/modules/hub/helpers/hub-command-shape.helper.js.map +1 -1
  784. package/dist/core/modules/hub/helpers/hub-mask.helper.js +1 -4
  785. package/dist/core/modules/hub/helpers/hub-mask.helper.js.map +1 -1
  786. package/dist/core/modules/hub/helpers/hub-mermaid.helper.js +1 -4
  787. package/dist/core/modules/hub/helpers/hub-mermaid.helper.js.map +1 -1
  788. package/dist/core/modules/hub/helpers/hub-shell.helper.js +10 -19
  789. package/dist/core/modules/hub/helpers/hub-shell.helper.js.map +1 -1
  790. package/dist/core/modules/hub/hub-action-messages.js +1 -4
  791. package/dist/core/modules/hub/hub-action-messages.js.map +1 -1
  792. package/dist/core/modules/hub/hub-buffer.d.ts +2 -2
  793. package/dist/core/modules/hub/hub-buffer.js +3 -7
  794. package/dist/core/modules/hub/hub-buffer.js.map +1 -1
  795. package/dist/core/modules/hub/hub-config.helper.d.ts +1 -1
  796. package/dist/core/modules/hub/hub-config.helper.js +23 -29
  797. package/dist/core/modules/hub/hub-config.helper.js.map +1 -1
  798. package/dist/core/modules/hub/hub-nav.js +4 -8
  799. package/dist/core/modules/hub/hub-nav.js.map +1 -1
  800. package/dist/core/modules/hub/hub-ring-buffer.js +1 -5
  801. package/dist/core/modules/hub/hub-ring-buffer.js.map +1 -1
  802. package/dist/core/modules/hub/hub.constants.js +18 -21
  803. package/dist/core/modules/hub/hub.constants.js.map +1 -1
  804. package/dist/core/modules/hub/index.d.ts +25 -25
  805. package/dist/core/modules/hub/index.js +25 -41
  806. package/dist/core/modules/hub/index.js.map +1 -1
  807. package/dist/core/modules/hub/interfaces/hub-config.interface.js +1 -2
  808. package/dist/core/modules/hub/interfaces/hub-panels.interface.js +1 -2
  809. package/dist/core/modules/hub/middleware/hub-trace.middleware.d.ts +1 -1
  810. package/dist/core/modules/hub/middleware/hub-trace.middleware.js +6 -9
  811. package/dist/core/modules/hub/middleware/hub-trace.middleware.js.map +1 -1
  812. package/dist/core/modules/hub/services/core-hub-actions.service.d.ts +10 -10
  813. package/dist/core/modules/hub/services/core-hub-actions.service.js +30 -33
  814. package/dist/core/modules/hub/services/core-hub-actions.service.js.map +1 -1
  815. package/dist/core/modules/hub/services/core-hub-db.service.d.ts +5 -5
  816. package/dist/core/modules/hub/services/core-hub-db.service.js +35 -39
  817. package/dist/core/modules/hub/services/core-hub-db.service.js.map +1 -1
  818. package/dist/core/modules/hub/services/core-hub-email.service.d.ts +4 -4
  819. package/dist/core/modules/hub/services/core-hub-email.service.js +20 -22
  820. package/dist/core/modules/hub/services/core-hub-email.service.js.map +1 -1
  821. package/dist/core/modules/hub/services/core-hub-mailbox.service.d.ts +4 -4
  822. package/dist/core/modules/hub/services/core-hub-mailbox.service.js +13 -16
  823. package/dist/core/modules/hub/services/core-hub-mailbox.service.js.map +1 -1
  824. package/dist/core/modules/hub/services/core-hub-migrations.service.d.ts +5 -5
  825. package/dist/core/modules/hub/services/core-hub-migrations.service.js +25 -30
  826. package/dist/core/modules/hub/services/core-hub-migrations.service.js.map +1 -1
  827. package/dist/core/modules/hub/services/core-hub-sources.service.d.ts +1 -1
  828. package/dist/core/modules/hub/services/core-hub-sources.service.js +26 -27
  829. package/dist/core/modules/hub/services/core-hub-sources.service.js.map +1 -1
  830. package/dist/core/modules/hub/services/hub-log-buffer.service.d.ts +3 -3
  831. package/dist/core/modules/hub/services/hub-log-buffer.service.js +20 -23
  832. package/dist/core/modules/hub/services/hub-log-buffer.service.js.map +1 -1
  833. package/dist/core/modules/hub/services/hub-query-profiler.service.d.ts +4 -4
  834. package/dist/core/modules/hub/services/hub-query-profiler.service.js +20 -25
  835. package/dist/core/modules/hub/services/hub-query-profiler.service.js.map +1 -1
  836. package/dist/core/modules/hub/services/hub-trace-buffer.service.d.ts +3 -3
  837. package/dist/core/modules/hub/services/hub-trace-buffer.service.js +11 -14
  838. package/dist/core/modules/hub/services/hub-trace-buffer.service.js.map +1 -1
  839. package/dist/core/modules/migrate/cli/migrate-cli.d.ts +4 -1
  840. package/dist/core/modules/migrate/cli/migrate-cli.js +38 -18
  841. package/dist/core/modules/migrate/cli/migrate-cli.js.map +1 -1
  842. package/dist/core/modules/migrate/helpers/migration.helper.d.ts +1 -11
  843. package/dist/core/modules/migrate/helpers/migration.helper.js +14 -108
  844. package/dist/core/modules/migrate/helpers/migration.helper.js.map +1 -1
  845. package/dist/core/modules/migrate/helpers/package.json +3 -0
  846. package/dist/core/modules/migrate/helpers/ts-compiler-hooks.d.mts +2 -0
  847. package/dist/core/modules/migrate/helpers/ts-compiler-hooks.mjs +73 -0
  848. package/dist/core/modules/migrate/helpers/ts-compiler-hooks.mjs.map +1 -0
  849. package/dist/core/modules/migrate/helpers/ts-compiler.cjs +96 -0
  850. package/dist/core/modules/migrate/helpers/ts-compiler.cjs.map +1 -0
  851. package/dist/core/modules/migrate/helpers/ts-compiler.d.cts +32 -0
  852. package/dist/core/modules/migrate/helpers/ts-compiler.d.ts +1 -1
  853. package/dist/core/modules/migrate/helpers/ts-compiler.js +2 -2
  854. package/dist/core/modules/migrate/helpers/ts-compiler.js.map +1 -1
  855. package/dist/core/modules/migrate/index.d.ts +4 -4
  856. package/dist/core/modules/migrate/index.js +4 -20
  857. package/dist/core/modules/migrate/index.js.map +1 -1
  858. package/dist/core/modules/migrate/migration-runner.d.ts +1 -1
  859. package/dist/core/modules/migrate/migration-runner.js +13 -19
  860. package/dist/core/modules/migrate/migration-runner.js.map +1 -1
  861. package/dist/core/modules/migrate/migration.helper.d.ts +11 -0
  862. package/dist/core/modules/migrate/migration.helper.js +116 -0
  863. package/dist/core/modules/migrate/migration.helper.js.map +1 -0
  864. package/dist/core/modules/migrate/mongo-state-store.js +13 -20
  865. package/dist/core/modules/migrate/mongo-state-store.js.map +1 -1
  866. package/dist/core/modules/migrate/templates/migration-project.template.ts +29 -12
  867. package/dist/core/modules/permissions/core-permissions.controller.d.ts +2 -2
  868. package/dist/core/modules/permissions/core-permissions.controller.js +13 -16
  869. package/dist/core/modules/permissions/core-permissions.controller.js.map +1 -1
  870. package/dist/core/modules/permissions/core-permissions.module.d.ts +1 -1
  871. package/dist/core/modules/permissions/core-permissions.module.js +14 -17
  872. package/dist/core/modules/permissions/core-permissions.module.js.map +1 -1
  873. package/dist/core/modules/permissions/core-permissions.service.d.ts +1 -1
  874. package/dist/core/modules/permissions/core-permissions.service.js +17 -20
  875. package/dist/core/modules/permissions/core-permissions.service.js.map +1 -1
  876. package/dist/core/modules/permissions/interfaces/permissions.interface.js +1 -2
  877. package/dist/core/modules/permissions/permissions-scanner.d.ts +1 -1
  878. package/dist/core/modules/permissions/permissions-scanner.js +62 -84
  879. package/dist/core/modules/permissions/permissions-scanner.js.map +1 -1
  880. package/dist/core/modules/system-setup/core-system-setup.controller.d.ts +1 -1
  881. package/dist/core/modules/system-setup/core-system-setup.controller.js +34 -38
  882. package/dist/core/modules/system-setup/core-system-setup.controller.js.map +1 -1
  883. package/dist/core/modules/system-setup/core-system-setup.module.js +8 -11
  884. package/dist/core/modules/system-setup/core-system-setup.module.js.map +1 -1
  885. package/dist/core/modules/system-setup/core-system-setup.service.d.ts +4 -4
  886. package/dist/core/modules/system-setup/core-system-setup.service.js +26 -31
  887. package/dist/core/modules/system-setup/core-system-setup.service.js.map +1 -1
  888. package/dist/core/modules/tenant/core-role-scope.registry.js +12 -16
  889. package/dist/core/modules/tenant/core-role-scope.registry.js.map +1 -1
  890. package/dist/core/modules/tenant/core-tenant-guard.registry.js +2 -6
  891. package/dist/core/modules/tenant/core-tenant-guard.registry.js.map +1 -1
  892. package/dist/core/modules/tenant/core-tenant-member.model.d.ts +2 -2
  893. package/dist/core/modules/tenant/core-tenant-member.model.js +34 -37
  894. package/dist/core/modules/tenant/core-tenant-member.model.js.map +1 -1
  895. package/dist/core/modules/tenant/core-tenant-role.helper.js +13 -17
  896. package/dist/core/modules/tenant/core-tenant-role.helper.js.map +1 -1
  897. package/dist/core/modules/tenant/core-tenant.decorators.js +6 -10
  898. package/dist/core/modules/tenant/core-tenant.decorators.js.map +1 -1
  899. package/dist/core/modules/tenant/core-tenant.enums.js +6 -10
  900. package/dist/core/modules/tenant/core-tenant.enums.js.map +1 -1
  901. package/dist/core/modules/tenant/core-tenant.guard.d.ts +8 -3
  902. package/dist/core/modules/tenant/core-tenant.guard.js +105 -102
  903. package/dist/core/modules/tenant/core-tenant.guard.js.map +1 -1
  904. package/dist/core/modules/tenant/core-tenant.helpers.d.ts +2 -2
  905. package/dist/core/modules/tenant/core-tenant.helpers.js +33 -53
  906. package/dist/core/modules/tenant/core-tenant.helpers.js.map +1 -1
  907. package/dist/core/modules/tenant/core-tenant.module.d.ts +2 -2
  908. package/dist/core/modules/tenant/core-tenant.module.js +31 -34
  909. package/dist/core/modules/tenant/core-tenant.module.js.map +1 -1
  910. package/dist/core/modules/tenant/core-tenant.service.d.ts +2 -2
  911. package/dist/core/modules/tenant/core-tenant.service.js +49 -53
  912. package/dist/core/modules/tenant/core-tenant.service.js.map +1 -1
  913. package/dist/core/modules/tus/core-tus.controller.d.ts +2 -2
  914. package/dist/core/modules/tus/core-tus.controller.js +31 -34
  915. package/dist/core/modules/tus/core-tus.controller.js.map +1 -1
  916. package/dist/core/modules/tus/core-tus.service.d.ts +5 -5
  917. package/dist/core/modules/tus/core-tus.service.js +58 -61
  918. package/dist/core/modules/tus/core-tus.service.js.map +1 -1
  919. package/dist/core/modules/tus/index.d.ts +5 -5
  920. package/dist/core/modules/tus/index.js +5 -21
  921. package/dist/core/modules/tus/index.js.map +1 -1
  922. package/dist/core/modules/tus/interfaces/tus-config.interface.d.ts +2 -2
  923. package/dist/core/modules/tus/interfaces/tus-config.interface.js +10 -15
  924. package/dist/core/modules/tus/interfaces/tus-config.interface.js.map +1 -1
  925. package/dist/core/modules/tus/tus-redis-locker.d.ts +1 -1
  926. package/dist/core/modules/tus/tus-redis-locker.js +6 -11
  927. package/dist/core/modules/tus/tus-redis-locker.js.map +1 -1
  928. package/dist/core/modules/tus/tus.constants.js +4 -7
  929. package/dist/core/modules/tus/tus.constants.js.map +1 -1
  930. package/dist/core/modules/tus/tus.module.d.ts +4 -4
  931. package/dist/core/modules/tus/tus.module.js +39 -43
  932. package/dist/core/modules/tus/tus.module.js.map +1 -1
  933. package/dist/core/modules/user/core-user.model.d.ts +2 -2
  934. package/dist/core/modules/user/core-user.model.js +50 -53
  935. package/dist/core/modules/user/core-user.model.js.map +1 -1
  936. package/dist/core/modules/user/core-user.service.d.ts +9 -9
  937. package/dist/core/modules/user/core-user.service.js +53 -57
  938. package/dist/core/modules/user/core-user.service.js.map +1 -1
  939. package/dist/core/modules/user/inputs/core-user-create.input.d.ts +1 -1
  940. package/dist/core/modules/user/inputs/core-user-create.input.js +14 -17
  941. package/dist/core/modules/user/inputs/core-user-create.input.js.map +1 -1
  942. package/dist/core/modules/user/inputs/core-user.input.d.ts +1 -1
  943. package/dist/core/modules/user/inputs/core-user.input.js +28 -31
  944. package/dist/core/modules/user/inputs/core-user.input.js.map +1 -1
  945. package/dist/core/modules/user/interfaces/core-user-service-options.interface.d.ts +1 -1
  946. package/dist/core/modules/user/interfaces/core-user-service-options.interface.js +1 -2
  947. package/dist/core.module.d.ts +1 -1
  948. package/dist/core.module.js +144 -219
  949. package/dist/core.module.js.map +1 -1
  950. package/dist/index.d.ts +204 -203
  951. package/dist/index.js +204 -219
  952. package/dist/index.js.map +1 -1
  953. package/dist/main.js +40 -42
  954. package/dist/main.js.map +1 -1
  955. package/dist/server/common/models/persistence.model.d.ts +1 -1
  956. package/dist/server/common/models/persistence.model.js +21 -24
  957. package/dist/server/common/models/persistence.model.js.map +1 -1
  958. package/dist/server/common/services/cron-jobs.service.d.ts +5 -3
  959. package/dist/server/common/services/cron-jobs.service.js +14 -18
  960. package/dist/server/common/services/cron-jobs.service.js.map +1 -1
  961. package/dist/server/modules/ai/ai-tools.module.d.ts +1 -1
  962. package/dist/server/modules/ai/ai-tools.module.js +15 -18
  963. package/dist/server/modules/ai/ai-tools.module.js.map +1 -1
  964. package/dist/server/modules/ai/tools/delete-user.tool.d.ts +5 -5
  965. package/dist/server/modules/ai/tools/delete-user.tool.js +13 -16
  966. package/dist/server/modules/ai/tools/delete-user.tool.js.map +1 -1
  967. package/dist/server/modules/ai/tools/find-users.tool.d.ts +6 -6
  968. package/dist/server/modules/ai/tools/find-users.tool.js +12 -15
  969. package/dist/server/modules/ai/tools/find-users.tool.js.map +1 -1
  970. package/dist/server/modules/ai/tools/get-user.tool.d.ts +6 -6
  971. package/dist/server/modules/ai/tools/get-user.tool.js +13 -16
  972. package/dist/server/modules/ai/tools/get-user.tool.js.map +1 -1
  973. package/dist/server/modules/ai/tools/update-user-job-title.tool.d.ts +6 -6
  974. package/dist/server/modules/ai/tools/update-user-job-title.tool.js +16 -19
  975. package/dist/server/modules/ai/tools/update-user-job-title.tool.js.map +1 -1
  976. package/dist/server/modules/auth/auth.controller.d.ts +3 -3
  977. package/dist/server/modules/auth/auth.controller.js +13 -16
  978. package/dist/server/modules/auth/auth.controller.js.map +1 -1
  979. package/dist/server/modules/auth/auth.model.d.ts +2 -2
  980. package/dist/server/modules/auth/auth.model.js +17 -20
  981. package/dist/server/modules/auth/auth.model.js.map +1 -1
  982. package/dist/server/modules/auth/auth.module.js +15 -18
  983. package/dist/server/modules/auth/auth.module.js.map +1 -1
  984. package/dist/server/modules/auth/auth.resolver.d.ts +7 -7
  985. package/dist/server/modules/auth/auth.resolver.js +30 -33
  986. package/dist/server/modules/auth/auth.resolver.js.map +1 -1
  987. package/dist/server/modules/auth/auth.service.d.ts +8 -8
  988. package/dist/server/modules/auth/auth.service.js +17 -20
  989. package/dist/server/modules/auth/auth.service.js.map +1 -1
  990. package/dist/server/modules/auth/inputs/auth-sign-in.input.d.ts +1 -1
  991. package/dist/server/modules/auth/inputs/auth-sign-in.input.js +9 -12
  992. package/dist/server/modules/auth/inputs/auth-sign-in.input.js.map +1 -1
  993. package/dist/server/modules/auth/inputs/auth-sign-up.input.d.ts +1 -1
  994. package/dist/server/modules/auth/inputs/auth-sign-up.input.js +14 -17
  995. package/dist/server/modules/auth/inputs/auth-sign-up.input.js.map +1 -1
  996. package/dist/server/modules/better-auth/better-auth.controller.d.ts +6 -6
  997. package/dist/server/modules/better-auth/better-auth.controller.js +21 -24
  998. package/dist/server/modules/better-auth/better-auth.controller.js.map +1 -1
  999. package/dist/server/modules/better-auth/better-auth.module.d.ts +1 -1
  1000. package/dist/server/modules/better-auth/better-auth.module.js +11 -14
  1001. package/dist/server/modules/better-auth/better-auth.module.js.map +1 -1
  1002. package/dist/server/modules/better-auth/better-auth.resolver.d.ts +8 -8
  1003. package/dist/server/modules/better-auth/better-auth.resolver.js +75 -78
  1004. package/dist/server/modules/better-auth/better-auth.resolver.js.map +1 -1
  1005. package/dist/server/modules/error-code/error-code.controller.d.ts +2 -2
  1006. package/dist/server/modules/error-code/error-code.controller.js +14 -17
  1007. package/dist/server/modules/error-code/error-code.controller.js.map +1 -1
  1008. package/dist/server/modules/error-code/error-code.service.d.ts +1 -1
  1009. package/dist/server/modules/error-code/error-code.service.js +8 -11
  1010. package/dist/server/modules/error-code/error-code.service.js.map +1 -1
  1011. package/dist/server/modules/error-code/error-codes.js +3 -6
  1012. package/dist/server/modules/error-code/error-codes.js.map +1 -1
  1013. package/dist/server/modules/error-code/index.d.ts +3 -3
  1014. package/dist/server/modules/error-code/index.js +3 -19
  1015. package/dist/server/modules/error-code/index.js.map +1 -1
  1016. package/dist/server/modules/file/file-info.model.d.ts +1 -1
  1017. package/dist/server/modules/file/file-info.model.js +12 -15
  1018. package/dist/server/modules/file/file-info.model.js.map +1 -1
  1019. package/dist/server/modules/file/file.controller.d.ts +4 -4
  1020. package/dist/server/modules/file/file.controller.js +26 -29
  1021. package/dist/server/modules/file/file.controller.js.map +1 -1
  1022. package/dist/server/modules/file/file.module.js +16 -19
  1023. package/dist/server/modules/file/file.module.js.map +1 -1
  1024. package/dist/server/modules/file/file.resolver.d.ts +5 -5
  1025. package/dist/server/modules/file/file.resolver.js +23 -26
  1026. package/dist/server/modules/file/file.resolver.js.map +1 -1
  1027. package/dist/server/modules/file/file.service.d.ts +6 -6
  1028. package/dist/server/modules/file/file.service.js +15 -20
  1029. package/dist/server/modules/file/file.service.js.map +1 -1
  1030. package/dist/server/modules/file/multer-config.service.js +6 -9
  1031. package/dist/server/modules/file/multer-config.service.js.map +1 -1
  1032. package/dist/server/modules/user/avatar.controller.d.ts +3 -3
  1033. package/dist/server/modules/user/avatar.controller.js +25 -29
  1034. package/dist/server/modules/user/avatar.controller.js.map +1 -1
  1035. package/dist/server/modules/user/inputs/user-create.input.d.ts +1 -1
  1036. package/dist/server/modules/user/inputs/user-create.input.js +12 -15
  1037. package/dist/server/modules/user/inputs/user-create.input.js.map +1 -1
  1038. package/dist/server/modules/user/inputs/user.input.d.ts +1 -1
  1039. package/dist/server/modules/user/inputs/user.input.js +12 -15
  1040. package/dist/server/modules/user/inputs/user.input.js.map +1 -1
  1041. package/dist/server/modules/user/outputs/find-and-count-users-result.output.d.ts +2 -2
  1042. package/dist/server/modules/user/outputs/find-and-count-users-result.output.js +16 -19
  1043. package/dist/server/modules/user/outputs/find-and-count-users-result.output.js.map +1 -1
  1044. package/dist/server/modules/user/user.controller.d.ts +5 -5
  1045. package/dist/server/modules/user/user.controller.js +100 -103
  1046. package/dist/server/modules/user/user.controller.js.map +1 -1
  1047. package/dist/server/modules/user/user.model.d.ts +3 -3
  1048. package/dist/server/modules/user/user.model.js +36 -39
  1049. package/dist/server/modules/user/user.model.js.map +1 -1
  1050. package/dist/server/modules/user/user.module.js +24 -27
  1051. package/dist/server/modules/user/user.module.js.map +1 -1
  1052. package/dist/server/modules/user/user.resolver.d.ts +8 -8
  1053. package/dist/server/modules/user/user.resolver.js +70 -73
  1054. package/dist/server/modules/user/user.resolver.js.map +1 -1
  1055. package/dist/server/modules/user/user.service.d.ts +9 -9
  1056. package/dist/server/modules/user/user.service.js +26 -29
  1057. package/dist/server/modules/user/user.service.js.map +1 -1
  1058. package/dist/server/server.controller.d.ts +1 -1
  1059. package/dist/server/server.controller.js +12 -15
  1060. package/dist/server/server.controller.js.map +1 -1
  1061. package/dist/server/server.module.js +33 -36
  1062. package/dist/server/server.module.js.map +1 -1
  1063. package/dist/test/test.helper.js +17 -21
  1064. package/dist/test/test.helper.js.map +1 -1
  1065. package/docs/REQUEST-LIFECYCLE.md +12 -2
  1066. package/docs/security-overrides.md +50 -29
  1067. package/migration-guides/11.43.2-to-11.43.3.md +80 -0
  1068. package/migration-guides/11.43.x-to-12.0.x.md +828 -0
  1069. package/package.json +68 -68
  1070. package/src/config.env.ts +32 -30
  1071. package/src/core/common/args/filter.args.ts +3 -3
  1072. package/src/core/common/args/pagination.args.ts +4 -4
  1073. package/src/core/common/decorators/current-user.decorator.ts +1 -1
  1074. package/src/core/common/decorators/graphql-populate.decorator.ts +1 -1
  1075. package/src/core/common/decorators/graphql-service-options.decorator.ts +2 -2
  1076. package/src/core/common/decorators/response-model.decorator.ts +1 -1
  1077. package/src/core/common/decorators/rest-service-options.decorator.ts +2 -2
  1078. package/src/core/common/decorators/restricted.decorator.ts +11 -11
  1079. package/src/core/common/decorators/unified-field.decorator.ts +12 -7
  1080. package/src/core/common/exceptions/access-denied.exception.ts +1 -1
  1081. package/src/core/common/filters/http-exception-log.filter.ts +16 -2
  1082. package/src/core/common/filters/mongoose-cast-error.filter.ts +1 -1
  1083. package/src/core/common/helpers/clone.helper.ts +2 -2
  1084. package/src/core/common/helpers/config.helper.ts +47 -29
  1085. package/src/core/common/helpers/cookies.helper.ts +1 -1
  1086. package/src/core/common/helpers/db.helper.ts +8 -8
  1087. package/src/core/common/helpers/decorator.helper.ts +2 -2
  1088. package/src/core/common/helpers/execution-context-request.helper.ts +2 -2
  1089. package/src/core/common/helpers/file.helper.ts +1 -1
  1090. package/src/core/common/helpers/filter.helper.ts +9 -9
  1091. package/src/core/common/helpers/graceful-shutdown.helper.ts +1 -1
  1092. package/src/core/common/helpers/graphql-ws-connection.helper.ts +31 -6
  1093. package/src/core/common/helpers/graphql-ws-context.helper.ts +10 -11
  1094. package/src/core/common/helpers/graphql.helper.ts +1 -1
  1095. package/src/core/common/helpers/id.helper.ts +2 -2
  1096. package/src/core/common/helpers/input.helper.ts +11 -11
  1097. package/src/core/common/helpers/interceptor.helper.ts +6 -9
  1098. package/src/core/common/helpers/model.helper.ts +1 -1
  1099. package/src/core/common/helpers/module-location.helper.ts +33 -0
  1100. package/src/core/common/helpers/outbound-url.helper.ts +2 -2
  1101. package/src/core/common/helpers/process-diagnostics.helper.ts +1 -1
  1102. package/src/core/common/helpers/register-enum.helper.ts +1 -1
  1103. package/src/core/common/helpers/scim.helper.ts +3 -3
  1104. package/src/core/common/helpers/service.helper.ts +11 -11
  1105. package/src/core/common/helpers/swagger.helper.ts +94 -35
  1106. package/src/core/common/inputs/combined-filter.input.ts +1 -1
  1107. package/src/core/common/inputs/core-input.input.ts +2 -2
  1108. package/src/core/common/inputs/filter.input.ts +7 -7
  1109. package/src/core/common/inputs/single-filter.input.ts +6 -6
  1110. package/src/core/common/inputs/sort.input.ts +5 -5
  1111. package/src/core/common/interceptors/check-response.interceptor.ts +3 -3
  1112. package/src/core/common/interceptors/check-security.interceptor.ts +5 -5
  1113. package/src/core/common/interceptors/response-model.interceptor.ts +5 -5
  1114. package/src/core/common/interceptors/translate-response.interceptor.ts +1 -1
  1115. package/src/core/common/interfaces/core-persistence-model.interface.ts +1 -1
  1116. package/src/core/common/interfaces/cron-job-config-with-time-zone.interface.ts +1 -1
  1117. package/src/core/common/interfaces/cron-job-config-with-utc-offset.interface.ts +1 -1
  1118. package/src/core/common/interfaces/scim-array-filter-node.interface.ts +1 -1
  1119. package/src/core/common/interfaces/scim-condition-node.interface.ts +1 -1
  1120. package/src/core/common/interfaces/scim-logical-node.interface.ts +2 -2
  1121. package/src/core/common/interfaces/server-options.interface.ts +17 -13
  1122. package/src/core/common/interfaces/service-options.interface.ts +3 -3
  1123. package/src/core/common/middleware/request-context.middleware.ts +1 -1
  1124. package/src/core/common/middlewares/security-headers.middleware.ts +2 -2
  1125. package/src/core/common/models/core-model.model.ts +1 -1
  1126. package/src/core/common/models/core-persistence.model.ts +5 -5
  1127. package/src/core/common/models/pagination-info.model.ts +1 -1
  1128. package/src/core/common/pipes/check-input.pipe.ts +2 -2
  1129. package/src/core/common/pipes/map-and-validate.pipe.ts +6 -6
  1130. package/src/core/common/plugins/complexity.plugin.ts +1 -1
  1131. package/src/core/common/plugins/mongoose-audit-fields.plugin.ts +1 -1
  1132. package/src/core/common/plugins/mongoose-password.plugin.ts +2 -2
  1133. package/src/core/common/plugins/mongoose-role-guard.plugin.ts +3 -3
  1134. package/src/core/common/plugins/mongoose-system-role.plugin.ts +1 -1
  1135. package/src/core/common/plugins/mongoose-tenant.plugin.ts +2 -2
  1136. package/src/core/common/scalars/date-timestamp.scalar.ts +1 -1
  1137. package/src/core/common/scalars/date.scalar.ts +1 -1
  1138. package/src/core/common/scalars/upload.scalar.ts +23 -0
  1139. package/src/core/common/services/brevo.service.ts +32 -6
  1140. package/src/core/common/services/config.service.ts +13 -9
  1141. package/src/core/common/services/core-body-parser.initializer.ts +3 -3
  1142. package/src/core/common/services/core-cron-jobs.initializer.ts +3 -3
  1143. package/src/core/common/services/core-cron-jobs.registry.ts +1 -1
  1144. package/src/core/common/services/core-cron-jobs.service.ts +45 -30
  1145. package/src/core/common/services/core-redis-pubsub.ts +1 -1
  1146. package/src/core/common/services/core-redis.service.ts +3 -3
  1147. package/src/core/common/services/core-s3.service.ts +17 -3
  1148. package/src/core/common/services/core-tenant-context.registry.ts +13 -1
  1149. package/src/core/common/services/core-trust-proxy.initializer.ts +2 -2
  1150. package/src/core/common/services/crud.service.ts +10 -10
  1151. package/src/core/common/services/email.service.ts +13 -12
  1152. package/src/core/common/services/mailjet.service.ts +10 -2
  1153. package/src/core/common/services/model-doc.service.ts +3 -3
  1154. package/src/core/common/services/model-registry.service.ts +1 -1
  1155. package/src/core/common/services/module.service.ts +12 -12
  1156. package/src/core/common/services/rate-limit-store.ts +6 -3
  1157. package/src/core/common/services/template.service.ts +3 -3
  1158. package/src/core/common/types/core-model-constructor.type.ts +1 -1
  1159. package/src/core/common/types/field-selection.type.ts +1 -1
  1160. package/src/core/common/types/ids.type.ts +1 -1
  1161. package/src/core/common/types/plain-input.type.ts +3 -0
  1162. package/src/core/common/types/scim-node.type.ts +3 -3
  1163. package/src/core/common/types/wrapper.type.ts +14 -1
  1164. package/src/core/modules/ai/README.md +6 -0
  1165. package/src/core/modules/ai/core-ai-mcp-oauth.initializer.ts +6 -6
  1166. package/src/core/modules/ai/core-ai-mcp.controller.ts +76 -17
  1167. package/src/core/modules/ai/core-ai.controller.ts +42 -42
  1168. package/src/core/modules/ai/core-ai.module.ts +46 -39
  1169. package/src/core/modules/ai/core-ai.resolver.ts +40 -40
  1170. package/src/core/modules/ai/helpers/ai-mcp-oauth.helper.ts +4 -4
  1171. package/src/core/modules/ai/hooks/ai-hook.base.ts +2 -2
  1172. package/src/core/modules/ai/hooks/ai-hook.registry.ts +3 -3
  1173. package/src/core/modules/ai/index.ts +71 -71
  1174. package/src/core/modules/ai/inputs/core-ai-budget-limit-create.input.ts +4 -4
  1175. package/src/core/modules/ai/inputs/core-ai-budget-limit.input.ts +3 -3
  1176. package/src/core/modules/ai/inputs/core-ai-connection-create.input.ts +4 -4
  1177. package/src/core/modules/ai/inputs/core-ai-connection-preference.input.ts +3 -3
  1178. package/src/core/modules/ai/inputs/core-ai-connection.input.ts +3 -3
  1179. package/src/core/modules/ai/inputs/core-ai-conversation-create.input.ts +3 -3
  1180. package/src/core/modules/ai/inputs/core-ai-conversation.input.ts +3 -3
  1181. package/src/core/modules/ai/inputs/core-ai-prompt-create.input.ts +4 -4
  1182. package/src/core/modules/ai/inputs/core-ai-prompt-hint-create.input.ts +4 -4
  1183. package/src/core/modules/ai/inputs/core-ai-prompt-hint.input.ts +3 -3
  1184. package/src/core/modules/ai/inputs/core-ai-prompt-update.input.ts +4 -4
  1185. package/src/core/modules/ai/inputs/core-ai-prompt.input.ts +4 -4
  1186. package/src/core/modules/ai/inputs/core-ai-slot-create.input.ts +4 -4
  1187. package/src/core/modules/ai/inputs/core-ai-slot-update.input.ts +3 -3
  1188. package/src/core/modules/ai/interfaces/ai-hook.interface.ts +3 -3
  1189. package/src/core/modules/ai/interfaces/ai-placeholder.interface.ts +1 -1
  1190. package/src/core/modules/ai/interfaces/ai-tool.interface.ts +2 -2
  1191. package/src/core/modules/ai/models/core-ai-action.model.ts +3 -3
  1192. package/src/core/modules/ai/models/core-ai-available-connection.model.ts +2 -2
  1193. package/src/core/modules/ai/models/core-ai-budget-limit.model.ts +4 -4
  1194. package/src/core/modules/ai/models/core-ai-connection-preference.model.ts +4 -4
  1195. package/src/core/modules/ai/models/core-ai-connection.model.ts +4 -4
  1196. package/src/core/modules/ai/models/core-ai-conversation.model.ts +6 -6
  1197. package/src/core/modules/ai/models/core-ai-interaction.model.ts +5 -5
  1198. package/src/core/modules/ai/models/core-ai-message.model.ts +2 -2
  1199. package/src/core/modules/ai/models/core-ai-mode.model.ts +4 -4
  1200. package/src/core/modules/ai/models/core-ai-prompt-hint.model.ts +4 -4
  1201. package/src/core/modules/ai/models/core-ai-prompt.model.ts +4 -4
  1202. package/src/core/modules/ai/models/core-ai-response.model.ts +6 -6
  1203. package/src/core/modules/ai/models/core-ai-slot.model.ts +4 -4
  1204. package/src/core/modules/ai/models/core-ai-tool-grant.model.ts +4 -4
  1205. package/src/core/modules/ai/models/core-ai-tool-policy.model.ts +5 -5
  1206. package/src/core/modules/ai/models/core-ai-usage-info.model.ts +2 -2
  1207. package/src/core/modules/ai/models/core-ai-usage.model.ts +2 -2
  1208. package/src/core/modules/ai/providers/claude-cli.provider.ts +4 -4
  1209. package/src/core/modules/ai/providers/llm-provider.factory.ts +3 -3
  1210. package/src/core/modules/ai/providers/openai-compatible.provider.ts +4 -4
  1211. package/src/core/modules/ai/services/ai-crypto.service.ts +2 -2
  1212. package/src/core/modules/ai/services/core-ai-budget.service.ts +11 -11
  1213. package/src/core/modules/ai/services/core-ai-connection-preference.service.ts +11 -7
  1214. package/src/core/modules/ai/services/core-ai-connection-resolver.service.ts +6 -6
  1215. package/src/core/modules/ai/services/core-ai-connection.service.ts +14 -14
  1216. package/src/core/modules/ai/services/core-ai-conversation.service.ts +10 -10
  1217. package/src/core/modules/ai/services/core-ai-interaction.service.ts +6 -6
  1218. package/src/core/modules/ai/services/core-ai-mcp-client.service.ts +3 -3
  1219. package/src/core/modules/ai/services/core-ai-mcp-oauth.service.ts +45 -9
  1220. package/src/core/modules/ai/services/core-ai-mcp.service.ts +2 -2
  1221. package/src/core/modules/ai/services/core-ai-mode.service.ts +5 -5
  1222. package/src/core/modules/ai/services/core-ai-placeholder.registry.ts +3 -3
  1223. package/src/core/modules/ai/services/core-ai-prompt-builder.service.ts +6 -6
  1224. package/src/core/modules/ai/services/core-ai-prompt-hint.service.ts +8 -8
  1225. package/src/core/modules/ai/services/core-ai-prompt.service.ts +9 -9
  1226. package/src/core/modules/ai/services/core-ai-slot.service.ts +10 -10
  1227. package/src/core/modules/ai/services/core-ai-tool-grant.service.ts +5 -5
  1228. package/src/core/modules/ai/services/core-ai-tool-policy.service.ts +5 -5
  1229. package/src/core/modules/ai/services/core-ai.service.ts +37 -33
  1230. package/src/core/modules/ai/tools/ai-tool.base.ts +3 -3
  1231. package/src/core/modules/ai/tools/ai-tool.registry.ts +5 -5
  1232. package/src/core/modules/ai/tools/ask-user-question.tool.ts +4 -4
  1233. package/src/core/modules/ai/tools/search-tools.tool.ts +4 -4
  1234. package/src/core/modules/api-token/core-api-token.decorators.ts +1 -1
  1235. package/src/core/modules/api-token/core-api-token.helpers.ts +8 -8
  1236. package/src/core/modules/api-token/core-api-token.middleware.ts +3 -3
  1237. package/src/core/modules/api-token/core-api-token.model.ts +10 -10
  1238. package/src/core/modules/api-token/core-api-token.module.ts +4 -4
  1239. package/src/core/modules/api-token/core-api-token.service.ts +13 -13
  1240. package/src/core/modules/auth/core-auth.controller.ts +19 -19
  1241. package/src/core/modules/auth/core-auth.model.ts +5 -5
  1242. package/src/core/modules/auth/core-auth.module.ts +12 -12
  1243. package/src/core/modules/auth/core-auth.resolver.ts +19 -19
  1244. package/src/core/modules/auth/core-legacy-auth-deprecation.initializer.ts +17 -3
  1245. package/src/core/modules/auth/guards/auth.guard.ts +40 -12
  1246. package/src/core/modules/auth/guards/legacy-auth-rate-limit.guard.ts +1 -1
  1247. package/src/core/modules/auth/guards/refresh-token.guard.ts +1 -1
  1248. package/src/core/modules/auth/guards/roles.guard.ts +13 -13
  1249. package/src/core/modules/auth/helpers/legacy-endpoints.helper.ts +1 -1
  1250. package/src/core/modules/auth/inputs/core-auth-sign-in.input.ts +4 -4
  1251. package/src/core/modules/auth/inputs/core-auth-sign-up.input.ts +3 -3
  1252. package/src/core/modules/auth/interfaces/auth-provider.interface.ts +1 -1
  1253. package/src/core/modules/auth/interfaces/core-auth-user.interface.ts +1 -1
  1254. package/src/core/modules/auth/services/core-auth-user.service.ts +2 -2
  1255. package/src/core/modules/auth/services/core-auth.service.ts +14 -14
  1256. package/src/core/modules/auth/services/legacy-auth-rate-limiter.service.ts +4 -4
  1257. package/src/core/modules/auth/strategies/jwt-refresh.strategy.ts +3 -3
  1258. package/src/core/modules/auth/strategies/jwt.strategy.ts +4 -4
  1259. package/src/core/modules/auth/tokens.decorator.ts +1 -1
  1260. package/src/core/modules/better-auth/better-auth-roles.guard.ts +10 -10
  1261. package/src/core/modules/better-auth/better-auth-token.service.ts +3 -3
  1262. package/src/core/modules/better-auth/better-auth.config.ts +79 -14
  1263. package/src/core/modules/better-auth/better-auth.resolver.ts +9 -9
  1264. package/src/core/modules/better-auth/better-auth.types.ts +1 -1
  1265. package/src/core/modules/better-auth/core-better-auth-api.middleware.ts +84 -12
  1266. package/src/core/modules/better-auth/core-better-auth-auth.model.ts +3 -3
  1267. package/src/core/modules/better-auth/core-better-auth-challenge.service.ts +3 -3
  1268. package/src/core/modules/better-auth/core-better-auth-cookie.helper.ts +4 -4
  1269. package/src/core/modules/better-auth/core-better-auth-email-verification.service.ts +21 -11
  1270. package/src/core/modules/better-auth/core-better-auth-error-codes.helper.ts +1 -1
  1271. package/src/core/modules/better-auth/core-better-auth-models.ts +2 -2
  1272. package/src/core/modules/better-auth/core-better-auth-openapi.helper.ts +1 -1
  1273. package/src/core/modules/better-auth/core-better-auth-rate-limit.middleware.ts +2 -2
  1274. package/src/core/modules/better-auth/core-better-auth-rate-limiter.service.ts +3 -3
  1275. package/src/core/modules/better-auth/core-better-auth-signup-validator.service.ts +3 -3
  1276. package/src/core/modules/better-auth/core-better-auth-user.mapper.ts +25 -5
  1277. package/src/core/modules/better-auth/core-better-auth-web.helper.ts +2 -2
  1278. package/src/core/modules/better-auth/core-better-auth.controller.ts +20 -17
  1279. package/src/core/modules/better-auth/core-better-auth.middleware.ts +5 -5
  1280. package/src/core/modules/better-auth/core-better-auth.module.ts +29 -27
  1281. package/src/core/modules/better-auth/core-better-auth.registry.ts +35 -1
  1282. package/src/core/modules/better-auth/core-better-auth.resolver.ts +16 -13
  1283. package/src/core/modules/better-auth/core-better-auth.service.ts +17 -17
  1284. package/src/core/modules/better-auth/index.ts +24 -24
  1285. package/src/core/modules/error-code/core-error-code.controller.ts +4 -4
  1286. package/src/core/modules/error-code/core-error-code.service.ts +2 -2
  1287. package/src/core/modules/error-code/error-code.module.ts +3 -3
  1288. package/src/core/modules/error-code/index.ts +5 -5
  1289. package/src/core/modules/error-code/interfaces/error-code.interfaces.ts +2 -2
  1290. package/src/core/modules/file/core-file-access-audit.initializer.ts +5 -5
  1291. package/src/core/modules/file/core-file-info.model.ts +4 -4
  1292. package/src/core/modules/file/core-file.controller.ts +8 -8
  1293. package/src/core/modules/file/core-file.resolver.ts +8 -9
  1294. package/src/core/modules/file/core-file.service.ts +20 -20
  1295. package/src/core/modules/file/file-access.helper.ts +1 -1
  1296. package/src/core/modules/file/file-roles.config.ts +2 -2
  1297. package/src/core/modules/file/file-roles.helper.ts +6 -6
  1298. package/src/core/modules/file/file-storage.helper.ts +1 -1
  1299. package/src/core/modules/file/filesystem-file.helper.ts +2 -2
  1300. package/src/core/modules/file/interfaces/file-upload.interface.ts +1 -1
  1301. package/src/core/modules/file/s3-file.helper.ts +2 -2
  1302. package/src/core/modules/health-check/core-health-check-result.model.ts +5 -5
  1303. package/src/core/modules/health-check/core-health-check.controller.ts +3 -3
  1304. package/src/core/modules/health-check/core-health-check.module.ts +3 -3
  1305. package/src/core/modules/health-check/core-health-check.resolver.ts +4 -4
  1306. package/src/core/modules/health-check/core-health-check.service.ts +18 -9
  1307. package/src/core/modules/hub/core-hub-actions.controller.ts +2 -2
  1308. package/src/core/modules/hub/core-hub-html.service.ts +4 -4
  1309. package/src/core/modules/hub/core-hub.controller.ts +17 -17
  1310. package/src/core/modules/hub/core-hub.module.ts +17 -17
  1311. package/src/core/modules/hub/core-hub.service.ts +9 -9
  1312. package/src/core/modules/hub/hub-buffer.ts +2 -2
  1313. package/src/core/modules/hub/hub-config.helper.ts +4 -4
  1314. package/src/core/modules/hub/index.ts +25 -25
  1315. package/src/core/modules/hub/middleware/hub-trace.middleware.ts +1 -1
  1316. package/src/core/modules/hub/services/core-hub-actions.service.ts +12 -12
  1317. package/src/core/modules/hub/services/core-hub-db.service.ts +11 -11
  1318. package/src/core/modules/hub/services/core-hub-email.service.ts +7 -6
  1319. package/src/core/modules/hub/services/core-hub-mailbox.service.ts +6 -6
  1320. package/src/core/modules/hub/services/core-hub-migrations.service.ts +8 -8
  1321. package/src/core/modules/hub/services/core-hub-sources.service.ts +12 -6
  1322. package/src/core/modules/hub/services/hub-log-buffer.service.ts +6 -6
  1323. package/src/core/modules/hub/services/hub-query-profiler.service.ts +8 -8
  1324. package/src/core/modules/hub/services/hub-trace-buffer.service.ts +5 -5
  1325. package/src/core/modules/migrate/MIGRATION_FROM_NODEPIT.md +1 -1
  1326. package/src/core/modules/migrate/README.md +32 -8
  1327. package/src/core/modules/migrate/cli/migrate-cli.ts +71 -7
  1328. package/src/core/modules/migrate/helpers/migration.helper.ts +7 -284
  1329. package/src/core/modules/migrate/helpers/package.json +3 -0
  1330. package/src/core/modules/migrate/helpers/ts-compiler-hooks.mjs +90 -0
  1331. package/src/core/modules/migrate/helpers/ts-compiler.cjs +183 -0
  1332. package/src/core/modules/migrate/helpers/ts-compiler.js +7 -10
  1333. package/src/core/modules/migrate/index.ts +4 -4
  1334. package/src/core/modules/migrate/migration-runner.ts +9 -10
  1335. package/src/core/modules/migrate/migration.helper.ts +310 -0
  1336. package/src/core/modules/migrate/templates/migration-project.template.ts +29 -12
  1337. package/src/core/modules/permissions/core-permissions.controller.ts +2 -2
  1338. package/src/core/modules/permissions/core-permissions.module.ts +4 -4
  1339. package/src/core/modules/permissions/core-permissions.service.ts +2 -2
  1340. package/src/core/modules/permissions/permissions-scanner.ts +1 -1
  1341. package/src/core/modules/system-setup/core-system-setup.controller.ts +3 -3
  1342. package/src/core/modules/system-setup/core-system-setup.module.ts +2 -2
  1343. package/src/core/modules/system-setup/core-system-setup.service.ts +6 -6
  1344. package/src/core/modules/tenant/core-role-scope.registry.ts +3 -3
  1345. package/src/core/modules/tenant/core-tenant-member.model.ts +8 -8
  1346. package/src/core/modules/tenant/core-tenant-role.helper.ts +4 -4
  1347. package/src/core/modules/tenant/core-tenant.decorators.ts +1 -1
  1348. package/src/core/modules/tenant/core-tenant.guard.ts +73 -43
  1349. package/src/core/modules/tenant/core-tenant.helpers.ts +6 -6
  1350. package/src/core/modules/tenant/core-tenant.module.ts +7 -7
  1351. package/src/core/modules/tenant/core-tenant.service.ts +6 -6
  1352. package/src/core/modules/tus/core-tus.controller.ts +6 -6
  1353. package/src/core/modules/tus/core-tus.service.ts +14 -14
  1354. package/src/core/modules/tus/index.ts +5 -5
  1355. package/src/core/modules/tus/interfaces/tus-config.interface.ts +5 -5
  1356. package/src/core/modules/tus/tus-redis-locker.ts +1 -1
  1357. package/src/core/modules/tus/tus.module.ts +10 -10
  1358. package/src/core/modules/user/core-user.model.ts +5 -5
  1359. package/src/core/modules/user/core-user.service.ts +19 -19
  1360. package/src/core/modules/user/inputs/core-user-create.input.ts +4 -4
  1361. package/src/core/modules/user/inputs/core-user.input.ts +5 -5
  1362. package/src/core/modules/user/interfaces/core-user-service-options.interface.ts +1 -1
  1363. package/src/core.module.ts +63 -158
  1364. package/src/index.ts +204 -203
  1365. package/src/main.ts +19 -16
  1366. package/src/server/common/models/persistence.model.ts +6 -6
  1367. package/src/server/common/services/cron-jobs.service.ts +7 -8
  1368. package/src/server/modules/ai/ai-tools.module.ts +7 -7
  1369. package/src/server/modules/ai/tools/delete-user.tool.ts +5 -5
  1370. package/src/server/modules/ai/tools/find-users.tool.ts +5 -5
  1371. package/src/server/modules/ai/tools/get-user.tool.ts +5 -5
  1372. package/src/server/modules/ai/tools/update-user-job-title.tool.ts +6 -6
  1373. package/src/server/modules/auth/auth.controller.ts +5 -5
  1374. package/src/server/modules/auth/auth.model.ts +6 -6
  1375. package/src/server/modules/auth/auth.module.ts +7 -7
  1376. package/src/server/modules/auth/auth.resolver.ts +10 -10
  1377. package/src/server/modules/auth/auth.service.ts +8 -8
  1378. package/src/server/modules/auth/inputs/auth-sign-in.input.ts +3 -3
  1379. package/src/server/modules/auth/inputs/auth-sign-up.input.ts +4 -4
  1380. package/src/server/modules/better-auth/better-auth.controller.ts +8 -8
  1381. package/src/server/modules/better-auth/better-auth.module.ts +4 -4
  1382. package/src/server/modules/better-auth/better-auth.resolver.ts +10 -10
  1383. package/src/server/modules/error-code/error-code.controller.ts +5 -5
  1384. package/src/server/modules/error-code/error-code.service.ts +2 -2
  1385. package/src/server/modules/error-code/error-codes.ts +1 -1
  1386. package/src/server/modules/error-code/index.ts +3 -3
  1387. package/src/server/modules/file/file-info.model.ts +3 -3
  1388. package/src/server/modules/file/file.controller.ts +5 -5
  1389. package/src/server/modules/file/file.module.ts +5 -5
  1390. package/src/server/modules/file/file.resolver.ts +6 -7
  1391. package/src/server/modules/file/file.service.ts +7 -7
  1392. package/src/server/modules/user/avatar.controller.ts +9 -10
  1393. package/src/server/modules/user/inputs/user-create.input.ts +4 -4
  1394. package/src/server/modules/user/inputs/user.input.ts +4 -4
  1395. package/src/server/modules/user/outputs/find-and-count-users-result.output.ts +5 -5
  1396. package/src/server/modules/user/user.controller.ts +10 -10
  1397. package/src/server/modules/user/user.model.ts +7 -7
  1398. package/src/server/modules/user/user.module.ts +9 -9
  1399. package/src/server/modules/user/user.resolver.ts +11 -11
  1400. package/src/server/modules/user/user.service.ts +10 -10
  1401. package/src/server/server.controller.ts +1 -1
  1402. package/src/server/server.module.ts +16 -16
  1403. package/src/test/test.helper.ts +5 -5
  1404. package/dist/tsconfig.build.tsbuildinfo +0 -1
@@ -76,6 +76,88 @@ consumer follows. See `.claude/rules/configurable-features.md` for the full opti
76
76
  - `CheckResponseInterceptor` - Filters restricted fields
77
77
  - `CheckSecurityInterceptor` - Processes `securityCheck()` methods
78
78
 
79
+ ## Module Format: an ESM package whose source is valid as CommonJS AND ESM (12.0.0+)
80
+
81
+ All NestJS 12 packages are ESM-only, and so is this one since 12.0.0: `package.json` declares `"type": "module"`,
82
+ `dist/` is one ESM build. A CommonJS project loads it through Node's `require(esm)` (Node 20.19+ / 22.12+;
83
+ `engines.node` is `>= 22.15`) exactly as it loads every `@nestjs/*` package — verified against the unchanged
84
+ nest-server-starter (type check, all tests, build, `migrate:list`, production start). `tsconfig.json` uses `module` /
85
+ `moduleResolution: nodenext`, so `tsc` resolves exactly like Node, `exports` maps included, plus `isolatedModules`
86
+ (NestJS 12's default; SWC compiles one file at a time anyway).
87
+
88
+ **`require()` of the package must keep working, so the package must never contain top-level `await`** —
89
+ `require(esm)` refuses a graph with it (`ERR_REQUIRE_ASYNC_MODULE`), and every CommonJS project would stop loading.
90
+
91
+ **Two contracts stay CommonJS, through a directory-level `package.json` with `"type": "commonjs"`:**
92
+ `src/core/modules/migrate/helpers/` (the TypeScript loader `ts-compiler.js`, whose path and function export every
93
+ project's `--compiler ts:…` and `node -r …` name) and `bin/` (`bin/migrate.js`, the `migrate` binary). Both
94
+ `package.json` files reach `dist/` and vendor projects like any other file, so the contracts hold in CommonJS and ESM
95
+ projects alike.
96
+
97
+ **No CommonJS module may sit inside the core's ES module graph and load other core modules.** Found the hard way:
98
+ with `migration.helper.ts` compiled as CommonJS in `helpers/` and imported by the barrel, `require('@lenne.tech/nest-server')`
99
+ returned the helper's exports instead of the barrel's — Node mixed up the module objects while a CommonJS module
100
+ required ES modules of the graph it was being loaded for. The helper therefore lives in `migrate/migration.helper.ts`
101
+ (ESM like the rest); `helpers/migration.helper.ts` is a CommonJS forwarder for the path existing
102
+ `migrations-utils/migrate.js` files require, and nothing in the core imports it.
103
+
104
+ **Enforced in three places, because vitest sees none of it** (it imports sources through its own module runner):
105
+ `tests/unit/module-format-invariants.spec.ts` refuses a runtime import from a CommonJS directory into the graph and any
106
+ top-level `await` (mutation `barrel-imports-cjs-forwarder`); `tests/unit/package-format-contracts.spec.ts` loads
107
+ `bin/migrate.js`, the loader and the forwarder in place, in a child process, and checks that every CommonJS `.js` file
108
+ sits in a CommonJS scope and that nest-cli copies the nested manifests into `dist/` (mutations
109
+ `bin-manifest-type-module`, `nest-cli-assets-drop-json`, `migration-helper-forwarder-emptied`); and
110
+ `pnpm run check:manifest` (after the build in `check`) does the same against the PACKED package, plus `require()` vs
111
+ `import()` of `dist/index.js` in two fresh processes — the export lists must match.
112
+
113
+ The **source** of `src/core/` must additionally be valid as **ESM**, because a vendor-mode project may be an ESM
114
+ project (`"type": "module"`, what `nest new` generates since NestJS 12) and then compiles and runs the vendored core as
115
+ ESM. Rules for code in `src/core/`, `src/index.ts`, `src/core.module.ts` and `src/test/`:
116
+
117
+ | Rule | Why |
118
+ |------|-----|
119
+ | Relative specifiers name the emitted file: `./x.js`, `./dir/index.js` — never `./x` or `./dir` | ESM resolves no extension and no directory. `tsc` under `nodenext` keeps the specifier as written; the SWC loader and vitest map `.js` to `.ts` in a source run |
120
+ | No `require()`, `__dirname` / `__filename`, `import x = require()`, `export =` (CommonJS only) and no `import.meta` (ESM only). Use static imports, `createRequire(join(process.cwd(), 'package.json'))` to load a PROJECT file, `callerDirectory()` (`common/helpers/module-location.helper.ts`) for "the directory of this file" | each of them fails in the other module system — inside a function only when it runs. Enforced by `tests/unit/module-format-invariants.spec.ts` (mutation `core-uses-dirname`), because `check:esm` sees only what fails while a module LOADS |
121
+ | A CommonJS package without `__esModule` is a DEFAULT import (`import _ from 'lodash'`), one WITH it (graphql) a named or namespace import. Never a named import Node cannot see (`import { cloneDeep } from 'lodash'`, mongoose's `Connection` as a value) | ESM gets a CommonJS module's names from `cjs-module-lexer`, which misses lodash's and mongoose's. Under CommonJS the same line works, so only `pnpm run check:esm` notices |
122
+ | `import type` for types — also in decorated signatures; `export type` for re-exported types | `isolatedModules` (TS1272 / TS1205): a value import of a type links under CommonJS and fails under ESM |
123
+ | A cycle that forces laziness is broken with an import-free leaf, never with a lazy `require()` | `core-better-auth.registry.ts` → `isBetterAuthHandlerClass()` is how the tenant guard recognises the IAM handlers |
124
+ | No deep imports into `@nestjs/*` packages whose `exports` map lists only the root (`jwt`, `mongoose`, `passport`, `schedule`, `swagger`, `terminus`) | `ERR_PACKAGE_PATH_NOT_EXPORTED` at runtime, `TS2307` at compile time. `@nestjs/common`, `core`, `platform-express` and `graphql` export `./*`, so their subpaths still resolve |
125
+ | No relative dynamic `import()` at all | under `nodenext` a dynamic `import()` in CommonJS output stays a NATIVE `import()` and follows ESM resolution, while a source run in a CommonJS project turns it into `require()`. vitest accepts both, so only `tests/unit/module-format-invariants.spec.ts` sees it — the 12.0.0 migration runner shipped `await import('./helpers/migration.helper.js')` with every suite green |
126
+ | A dual package (separate CJS and ESM builds — `@aws-sdk/*`, `@modelcontextprotocol/sdk`, `@getbrevo/brevo`, `bullmq`) is either lazy everywhere or static everywhere | a native `import()` loads the ESM build, a static import the CJS build — two module instances, and an `instanceof` across them fails. Take its types from the import EXPRESSION (`const load = () => import('x'); type X = Awaited<ReturnType<typeof load>>`), never from an `import type`: TypeScript types an `import()` the way it is emitted (ESM under `nodenext`, CJS under `module: commonjs`), while any fixed `import type` matches only one of the two (TS2322 in the other). And keep such a derived CLASS type out of public/protected signatures — under `module: commonjs` with declarations it cannot be named (TS2883); give the extension point a structural interface instead (`IBrevoSdkClient`) |
127
+ | Write code that compiles under BOTH `nodenext` and `module: commonjs` | vendor consumers compile `src/core/` with their own tsconfig. Under TypeScript 6, `module: commonjs` without `moduleResolution` resolves as `bundler` and keeps the `require()` emit for `import()`. Enforced by `pnpm run typecheck:vendor` (`scripts/check-vendor-declarations.mjs` + `tsconfig.vendor-commonjs.json`, part of `check`): it compiles under `module: commonjs`, emits the declarations and fails on `typeof import("<package>")` or `import("<pkg>/…/dist/…")` in them — references that resolve in this repo's HOISTED `node_modules` and break in a consumer's isolated pnpm layout (TS2883). The nodenext build alone passed three 12.0.0 errors that only a vendor project saw |
128
+
129
+ **`pnpm run check:esm`** (`scripts/check-esm-core.mjs`, part of `check`) is the proof of the ESM half: it copies what a
130
+ vendor project receives into a temporary `"type": "module"` package, compiles it with `nodenext` and imports EVERY
131
+ module plus the barrel in one process. It catches what no other step can — a named import Node cannot see, a type
132
+ imported as a value, a missing extension — and reports each distinct cause once.
133
+
134
+ **The TypeScript loader is three files.** `helpers/ts-compiler.cjs` is the implementation, `ts-compiler-hooks.mjs` the
135
+ ESM hooks it registers through `module.register()` (resolve `.js` → `.ts`, compile ESM-scoped `.ts` with SWC — import
136
+ attributes kept — and hand CommonJS-scoped files back), and `ts-compiler.js` the established entry path, a one-line
137
+ CommonJS shim that `helpers/package.json` keeps CommonJS in every project. The SWC build (`check:swc-tdz`) does not
138
+ emit `.cjs` / `.mjs` sources; its guard places them like `tsc` does. That guard also pins the SWC build to CommonJS
139
+ (`tsconfig.swc-tdz.json`), because it checks what a CommonJS project runs under `nest start -b swc`; `@nestjs/cli` would
140
+ otherwise emit ES modules for this `"type": "module"` package.
141
+
142
+ **The build `target` stays `es2022`**, although NestJS 12's template uses `ES2023`: a vendor project compiles the core
143
+ with its own lib, and the starter's is es2022 — see `tests/unit/toolchain-contract.spec.ts`. ES2023 changes no emitted
144
+ syntax on Node 22, only which APIs the type-checker allows.
145
+
146
+ **Type-aware lint.** `pnpm run lint` runs `oxlint --type-aware` (needs `oxlint-tsgolint`) with
147
+ `typescript/no-floating-promises` as an error, as NestJS 12's template does: an un-awaited promise's rejection is
148
+ unhandled, and Node ends the process on that by default. Mark a deliberate fire-and-forget with `void` and say why it
149
+ cannot reject. The other type-aware rules the categories would turn on are switched off in `.oxlintrc.json`, each
150
+ with the reason; `tests/unit/lint-type-aware.spec.ts` pins the flag, the backend and the rule, because without either
151
+ half oxlint skips the rule silently.
152
+
153
+ The SWC build (`nest start -b swc`, `check:swc-tdz`), the SWC source loader and vitest transform `import()`
154
+ themselves; none of them is affected by the tsconfig's `module` setting. `tsconfig.tests.json` uses
155
+ `module: preserve` + `moduleResolution: bundler` because that is how vitest resolves the specs. **Both vitest configs
156
+ set `resolve.extensions` in Node's order** (`.js` before `.mjs`): graphql declares an extensionless `main` next to an
157
+ `index.mjs`, Vite probes `.mjs` first, and an `import` of graphql then loaded a second, ESM copy — every subscription
158
+ closed with 4500 ("Cannot use GraphQLSchema from another module or realm"). Pinned by
159
+ `tests/unit/vitest-node-resolution.spec.ts`. Background: `migration-guides/11.43.x-to-12.0.x.md` §2–§3 and §17.
160
+
79
161
  ## DI Token Placement (SWC-Safe)
80
162
 
81
163
  **Rule: DI tokens belong in an import-free leaf file (`*.constants.ts` / `*.enums.ts`) — never in `*.module.ts` or `*.service.ts`.**
@@ -4,7 +4,7 @@ This document describes the deprecation strategy for Legacy Auth and the migrati
4
4
 
5
5
  ## Authentication System Roadmap
6
6
 
7
- ### v11.x (Current - Backward Compatible)
7
+ ### v11.x – v12.x (Current - Backward Compatible)
8
8
 
9
9
  - **Legacy Auth** (CoreAuthService) is available for backwards compatibility
10
10
  - **BetterAuth** (IAM) can run standalone or alongside Legacy Auth
@@ -228,7 +228,8 @@ both Legacy Auth and BetterAuth transparently.
228
228
  | Version | Status | Changes |
229
229
  |---------|--------|---------|
230
230
  | v11.6.x | Released | BetterAuth introduced |
231
- | v11.7.x | Current | Legacy endpoint controls, IAuthProvider, migration status |
231
+ | v11.7.x | Released | Legacy endpoint controls, IAuthProvider, migration status |
232
+ | v12.0.x | Current | NestJS 12 — Legacy Auth unchanged, still available alongside IAM |
232
233
  | Future | Planned | BetterAuth default, simplified API, Legacy optional |
233
234
 
234
235
  ## Related Documentation
@@ -169,11 +169,18 @@ Two ordering rules, both enforced by the contract test:
169
169
  Package overrides live in the `overrides:` section of **`pnpm-workspace.yaml`** (they moved out of `package.json`'s `pnpm.overrides` in the pnpm 11 upgrade). They force transitive dependencies to a security-patched version.
170
170
 
171
171
  **Keep the set minimal.** On the pnpm 11 upgrade the list was pruned from 36 to the 9 then still
172
- load-bearing (it has since grown back to 20, mostly as new advisories landed) — an override is only necessary if removing it lets the package resolve back INTO its vulnerable range (verify with a with/without lockfile diff; `pnpm audit` is the arbiter). Each surviving entry carries its CVE rationale as a comment. Remove an entry once its parent dependency ships a fixed version.
173
-
174
- **The one exception is a peer conflict nobody downstream can fix.** `'@nestjs/cli>webpack'` (added
175
- 2026-10-20) carries no advisory: @nestjs/cli exact-pins a webpack that a newer transitive
176
- `schema-utils` refuses as a peer, so every fresh resolve fails `pnpm peers check`. Such an entry
172
+ load-bearing (it has since grown back to as many as 20, mostly as new advisories landed). On
173
+ 2026-10-24 (nest-server 12.0.0) two fresh resolves showed that 16 of the remaining 18 changed nothing,
174
+ and they were removed: **two entries remain** (`@graphql-tools/utils`, `multer`), both on an upstream
175
+ EXACT pin with an open advisory. An override is only necessary if removing it lets the package resolve
176
+ back INTO its vulnerable range (verify with a with/without lockfile diff; `pnpm audit` is the arbiter).
177
+ "Cheap insurance against a parent re-pinning downwards" is not a reason to keep one: `pnpm audit` and
178
+ `check:overrides` run on every `check` and report such a regression the day it happens. Each surviving entry carries its CVE rationale as a comment. Remove an entry once its parent dependency ships a fixed version.
179
+
180
+ **The one exception is a peer conflict nobody downstream can fix.** `'@nestjs/cli>webpack'`
181
+ (2026-10-20 until the move to @nestjs/cli 12 in nest-server 12.0.0, where webpack became an optional
182
+ peer) carried no advisory: @nestjs/cli 11 exact-pinned a webpack that a newer transitive
183
+ `schema-utils` refused as a peer, so every fresh resolve failed `pnpm peers check`. Such an entry
177
184
  is parent-scoped (`parent>child`), so only the stale pin moves, and it states the release that
178
185
  lets it go. For such an entry `pnpm peers check` is the arbiter, not `pnpm audit`.
179
186
 
@@ -256,9 +263,9 @@ from a casual read.
256
263
 
257
264
  **How to spot both — and the check that does NOT work.** "The same package appears twice under
258
265
  `overrides:`" is the obvious heuristic and it is wrong: several packages legitimately need one entry
259
- per major, because different majors coexist in the tree. This repo has three `brace-expansion`
260
- entries (1.x, 2.x, 5.x) and two for `js-yaml` (4.x, 5.x), all correct. Flagging those trains the
261
- reader to ignore the check.
266
+ per major, because different majors coexist in the tree. This repo carried three `brace-expansion`
267
+ entries (1.x, 2.x, 5.x) and two for `js-yaml` (4.x, 5.x) until 12.0.0, all correct. Flagging those
268
+ trains the reader to ignore the check.
262
269
 
263
270
  The reliable tells are narrower:
264
271
 
@@ -401,12 +408,16 @@ plus one for the opposite failure, a guard that rejects a declaration which is s
401
408
  matters just as much: a check that cries wolf on correct entries is a check that gets switched off,
402
409
  which is how the hole this feature closes came about in the first place.
403
410
 
404
- **Current entry (since 2026-10-11):** `GHSA-vfj7-8cjw-p6xm` (braces, via nodemon / npm-watch), a
405
- dev-tooling-only path of an advisory with no patched release at all; the justification sits next to
406
- the entry in `pnpm-workspace.yaml`. **Do not copy it into nest-server-starter without thinking it
407
- through:** since lt CLI 1.42.0 the starter's `auditConfig` is hoisted as a union into every
408
- generated project, so an entry there hides the advisory in every customer workspace — including
409
- production paths this repository does not have.
411
+ **No current entry (since 2026-10-24).** `GHSA-vfj7-8cjw-p6xm` (braces, via nodemon / npm-watch) was
412
+ listed from 2026-10-11 to 2026-10-24: a dev-tooling-only path of an advisory with no patched release
413
+ at all. GitHub withdrew the advisory on 2026-10-23, and `check:overrides` reported the entry as
414
+ obsolete on the next run — the guard doing exactly its job, since a withdrawal changes nothing in
415
+ this repository and `pnpm audit` simply stops mentioning it. The entry and its scope guard in
416
+ `tests/unit/audit-suppression-scope.spec.ts` left together; the history is in git (the comment
417
+ block above `ignoreGhsas` in `pnpm-workspace.yaml` before 12.0.0). **Before adding an entry, and before copying one into
418
+ nest-server-starter:** since lt CLI 1.42.0 the starter's `auditConfig` is hoisted as a union into
419
+ every generated project, so an entry there hides the advisory in every customer workspace —
420
+ including production paths this repository does not have.
410
421
 
411
422
  **An entry whose package has left the declared range goes, even when the new version is no fix.**
412
423
  `GHSA-ch52-4w7c-c8xp` (http-cache-semantics `<= 4.2.0`) was listed from 2026-10-03 to 2026-10-11.
@@ -414,7 +425,7 @@ production paths this repository does not have.
414
425
  as "up to the newest release" and never followed. On 4.3.0 the suppression hid nothing and would
415
426
  have swallowed a range extension unseen; without it, an extension turns `pnpm audit` red, and that
416
427
  is the moment to re-argue the case. Do not record such a lift as the advisory being fixed. Write
417
- down that the version is merely outside the range, as `pnpm-workspace.yaml` does.
428
+ down that the version is merely outside the range.
418
429
 
419
430
  ### Safe Override Workflow
420
431
 
@@ -429,6 +429,14 @@ Three mechanisms keep those paths inside the user's rights:
429
429
  | AI tools (chat and `/ai/mcp`) | `AiToolRegistry.userCanAccess()` resolves tool roles like the guard under multi-tenancy (global vs membership role, `adminBypass` honoured), with the user as of the CURRENT request — an MCP session refreshes it on every request |
430
430
  | Data | `mongooseTenantPlugin` via `RequestContext` — tools run inside the HTTP request, so the validated tenant scopes them |
431
431
 
432
+ **A route that authenticates its caller itself (11.43.3).** `@Roles(S_EVERYONE)` routes that resolve
433
+ their own credential — `/ai/mcp` with an MCP OAuth access token — run AFTER the guards saw no user, so
434
+ nothing turned the tenant header into a context and `RequestContext.currentUser` stayed empty (read as
435
+ system work by the Mongoose plugins). `CoreAiMcpController.scopeLateResolvedUser()` now sets `req.user`
436
+ and asks `CoreTenantGuard.resolveMembershipContext()` (via `core-tenant-context.registry.ts`), the
437
+ guard's own `S_EVERYONE` decision. When you add such a route, do the same — never take the header's
438
+ tenant at face value (mutations `mcp-oauth-user-tenant-unscoped`, `mcp-oauth-tenant-from-header`).
439
+
432
440
  **System work vs. an anonymous request.** Both have no current user. `assertTenantRole()` exempts
433
441
  system work (cron, migration, seed) and refuses the anonymous caller of a public route with 401 — told
434
442
  apart by `RequestContext.fromRequest`, which `RequestContextMiddleware` and the GraphQL WebSocket
@@ -476,6 +484,15 @@ socket therefore ends with its token: at expiry or at the next token refresh.
476
484
  **A guard that asks "is this request allowed?" once is not enough for a connection that outlives the
477
485
  answer.** When you add a long-lived channel (SSE, a WebSocket of your own), register it the same way.
478
486
 
487
+ **Refusing the handshake itself (12.0.0).** `onConnect` refuses a missing or non-authenticating credential with
488
+ `return refuseWsHandshake(extra.socket, reason)` — close code **4401**, which the graphql-ws client does not retry.
489
+ Never by throwing: graphql-ws's ws adapter answers a throw with 4500 and logs "Internal error occurred during
490
+ message handling. Please check your implementation." (until 12.0.0 that happened for every expired token). Never
491
+ by a bare `false`: that closes with 4403, which the client RETRIES — with the same refused credential. 4403 stays
492
+ reserved for a socket whose rights changed while it was open (above). Pinned by
493
+ `tests/subscription-session-iam.e2e-spec.ts` / `tests/subscription-session-legacy.e2e-spec.ts` (mutations
494
+ `iam-ws-handshake-refusal-throws`, `legacy-ws-handshake-refusal-throws`).
495
+
479
496
  ## Role Check Implementation
480
497
 
481
498
  The role system is evaluated in:
@@ -6,8 +6,8 @@
6
6
 
7
7
  | Runner | Config | Test files | Needs MongoDB |
8
8
  |--------|--------|-----------|:-------------:|
9
- | Unit | `vitest.config.ts` | `tests/unit/**/*.spec.ts` | No |
10
- | E2E | `vitest-e2e.config.ts` | `tests/**/*.e2e-spec.ts`, `tests/stories/**/*.story.test.ts` | Yes |
9
+ | Unit | `vitest.config.mts` | `tests/unit/**/*.spec.ts` | No |
10
+ | E2E | `vitest-e2e.config.mts` | `tests/**/*.e2e-spec.ts`, `tests/stories/**/*.story.test.ts` | Yes |
11
11
 
12
12
  **Test files NEVER live in `src/`.** Not a style preference — `src/` is this framework's shipping
13
13
  artifact: `package.json` → `files` ships all of `src` recursively into the npm tarball, and
@@ -93,7 +93,7 @@ pnpm run test:cov
93
93
  pnpm run test:ci
94
94
 
95
95
  # Debug open handles
96
- npx vitest run --config vitest-e2e.config.ts --reporter=hanging-process
96
+ npx vitest run --config vitest-e2e.config.mts --reporter=hanging-process
97
97
 
98
98
  # Clean up leftover test artifacts (.txt, .bin files from failed file upload tests)
99
99
  pnpm run test:cleanup
@@ -105,6 +105,11 @@ pnpm run test:cleanup
105
105
  `NODE_ENV`; vitest defaults it to `test`, and `getEnvironmentConfig()` falls back to `config.local`.
106
106
  - Both runners load `tests/setup.ts` via `setupFiles` (Nest Logger restricted to `error`/`fatal`,
107
107
  `@UnifiedField` deprecation warnings filtered).
108
+ - Both runners set `resolve.extensions` in **Node's order** (`.js` before `.mjs`). graphql has an extensionless
109
+ `main` next to an `index.mjs`; with Vite's default order an `import` of graphql loaded a second, ESM copy, and every
110
+ GraphQL subscription closed with 4500 ("Cannot use GraphQLSchema from another module or realm"). Pinned by
111
+ `tests/unit/vitest-node-resolution.spec.ts` (mutation `vitest-resolves-graphql-esm-build`). Consumer projects need
112
+ the same line — migration guide 12.0.x §17.
108
113
  - Database (E2E only): **one unique database per run** (`nest-server-e2e-run-<ts>-p<pid>`), created by `tests/global-setup.ts` so concurrent runs cannot interfere with each other. Specs needing an extra DB derive it via `deriveTestDbUri('<suffix>')` — never a hardcoded/`Date.now()` name (escapes the cleanup scheme).
109
114
  - DB lifecycle (`tests/db-lifecycle.reporter.ts`): run passes → DB dropped immediately + stale run DBs from crashed/failed runs collected; run fails → DB kept for debugging. Additionally `tests/global-setup.ts` runs a **startup sweep** (shared `isStaleTestDb()` predicate, dead-PID/age guarded) — leftovers are removed when the NEXT run starts, which survives SIGKILL (check watchdog) and `--reporter` CLI overrides. An externally set `MONGODB_URI` (CI) opts out of the scheme.
110
115
  - The drop guard (`SAFE_TEST_DB_PATTERN` + `NON_DISPOSABLE_DB_PATTERN`): nothing in the scheme drops
@@ -141,7 +146,7 @@ pnpm run test:cleanup
141
146
  Pinned by `tests/unit/db-lifecycle-guard.spec.ts` (registered mutation
142
147
  `safe-test-db-pattern-unanchored`; reverting the anchoring turns 13 cases red). **The refusal list
143
148
  in that spec IS the specification** — extend it rather than loosening the pattern.
144
- - Run governor (`tests/e2e-run-slots.ts`): machine-wide slot dir (`<tmpdir>/lt-e2e-run-slots`) caps concurrent e2e runs across ALL lt projects/sessions (default 2 on ≥8 cores). Further runs wait, logging `[e2e-governor] waiting…` every 15s (keeps the check watchdog fed — a queued run is NOT hung). The e2e config counts foreign slots at load time and drops to low-resource mode (reduced forks, raised timeouts) when another run is active — deterministic, unlike the lagging 1-min load average (kept as second signal). On a GitHub-hosted runner (`RUNNER_ENVIRONMENT=github-hosted`) the load signal alone raises the timeouts but does NOT cap the workers: such a runner runs one job per VM, and at config time the load is the job's own `vitest:unit` from a second earlier (0.84–0.92/core on every runner build). Measured there, the cap took the e2e step from 133 s to 198 s mean (+25 % normalised for runner speed). Keyed on `RUNNER_ENVIRONMENT`, not `CI`: a shared GitLab runner sets `CI`, carries real contention (2.6–5.0/core measured in a consuming project) and keeps the cap. The cap is `maxWorkers`; the `poolOptions.forks.maxForks` it replaced was removed in Vitest 4 and silently ignored. Knobs: `LT_E2E_MAX_RUNS` (0 disables), `LT_E2E_SLOT_DIR`, `LT_E2E_SLOT_TIMEOUT` (fail-open). A slot is reclaimed when its PID is dead OR it is older than six hours — liveness alone made a slot immortal once its PID was recycled. The slot directory is shared machine-wide (on a multi-user Linux host `/tmp`), so it is created 0700 and the slot file is written without following a planted symlink (unlink + `wx`, 0600). A slot that cannot be written does not abort the suite: the run proceeds ungoverned, because the governor is a throughput measure, not a correctness one. Pinned by `tests/unit/e2e-run-slots.spec.ts` (mutations `e2e-slot-*`).
149
+ - Run governor (`tests/e2e-run-slots.mts`): machine-wide slot dir (`<tmpdir>/lt-e2e-run-slots`) caps concurrent e2e runs across ALL lt projects/sessions (default 2 on ≥8 cores). Further runs wait, logging `[e2e-governor] waiting…` every 15s (keeps the check watchdog fed — a queued run is NOT hung). The e2e config counts foreign slots at load time and drops to low-resource mode (reduced forks, raised timeouts) when another run is active — deterministic, unlike the lagging 1-min load average (kept as second signal). On a GitHub-hosted runner (`RUNNER_ENVIRONMENT=github-hosted`) the load signal alone raises the timeouts but does NOT cap the workers: such a runner runs one job per VM, and at config time the load is the job's own `vitest:unit` from a second earlier (0.84–0.92/core on every runner build). Measured there, the cap took the e2e step from 133 s to 198 s mean (+25 % normalised for runner speed). Keyed on `RUNNER_ENVIRONMENT`, not `CI`: a shared GitLab runner sets `CI`, carries real contention (2.6–5.0/core measured in a consuming project) and keeps the cap. The cap is `maxWorkers`; the `poolOptions.forks.maxForks` it replaced was removed in Vitest 4 and silently ignored. Knobs: `LT_E2E_MAX_RUNS` (0 disables), `LT_E2E_SLOT_DIR`, `LT_E2E_SLOT_TIMEOUT` (fail-open). A slot is reclaimed when its PID is dead OR it is older than six hours — liveness alone made a slot immortal once its PID was recycled. The slot directory is shared machine-wide (on a multi-user Linux host `/tmp`), so it is created 0700 and the slot file is written without following a planted symlink (unlink + `wx`, 0600). A slot that cannot be written does not abort the suite: the run proceeds ungoverned, because the governor is a throughput measure, not a correctness one. Pinned by `tests/unit/e2e-run-slots.spec.ts` (mutations `e2e-slot-*`).
145
150
  - `retry: 2` (e2e) is deliberate — with `retry: 5`, one spec file with broken app/socket state ground through 6 attempts × 30s timeout × 22 tests ≈ an hour at 0% CPU (looked like a deadlock; the check watchdog killed it). Never raise retry to paper over contention.
146
151
  - Infrastructure containers (E2E only, the **seven** specs listed under "Infrastructure containers"
147
152
  above) round-trip against a REAL Redis and/or a REAL S3-compatible store.
@@ -268,7 +273,7 @@ pnpm run check:mutations -- --id=<id> # one mutation
268
273
  pnpm run check:mutations -- --list # the registry, without running anything
269
274
  pnpm run check:mutations -- --allow-dirty # when the fix and its evidence share a working tree
270
275
  pnpm run check:mutations -- --jobs=4 # N mutations at a time (default: 2, or 4 on >=12 cores)
271
- pnpm run check:mutations -- --no-infra # only the 165 that need no MongoDB
276
+ pnpm run check:mutations -- --no-infra # only the 185 that need no MongoDB
272
277
  pnpm run check:mutations -- --since=<ref> # only mutations touching files changed since <ref>
273
278
  ```
274
279
 
@@ -287,7 +292,7 @@ when the registry, a vitest config or a setup file changed, since those can move
287
292
  commit, and in CI alongside the publish without blocking it. The price of caching is a cache that
288
293
  has to model each spec's full dependency closure correctly, and getting that wrong produces a stale
289
294
  PASS for a test that has since gone vacuous — exactly what the gate is there to prevent. Bad trade
290
- at 246 mutations.
295
+ at 274 mutations.
291
296
 
292
297
  **Decided 2026-10-03 (repo owner): keep the full run.** Measured at 128 mutations, the CI job for
293
298
  11.41.6 took **14 minutes**. The trigger to revisit is that wall time, not the mutation count —
@@ -332,9 +337,9 @@ exactly the environment where the answer matters.
332
337
 
333
338
  ### The cost is vitest's cold start, not the tests
334
339
 
335
- Worth knowing before optimising the wrong thing: the specs behind all 81 e2e mutations add up to
340
+ Worth knowing before optimising the wrong thing: the specs behind all 89 e2e mutations add up to
336
341
  **~40 seconds**. The step takes ~740s. The remaining ~700s is paying vitest's startup — process
337
- spawn, transform, module graph, mongod connect, DB create and drop — once per mutation, 246 times.
342
+ spawn, transform, module graph, mongod connect, DB create and drop — once per mutation, 274 times.
338
343
  That work is largely single-threaded I/O and barely scales with cores: the full registry measures
339
344
  **744s on a 12-core laptop and 777s on a 4-vCPU CI runner**.
340
345
 
@@ -507,9 +512,9 @@ The writes that actually fed the RPC:
507
512
 
508
513
  | Source | Call |
509
514
  |--------|------|
510
- | `common/helpers/config.helper.ts` | `console.info` — "Configured for: …", "No local config.json found!" |
511
- | `common/services/config.service.ts` | `console.warn` from `mergeConfig` |
512
- | `common/services/rate-limit-store.ts` | `console.warn` from `InMemoryRateLimitStore.hit` |
515
+ | `common/helpers/config.helper.ts` | `console.info` — "Configured for: …" (filtered in `tests/setup.ts` since 12.0.0), the local-config notice |
516
+ | `common/services/config.service.ts` | `console.warn` from `mergeConfig` — since 12.0.0 only when `warn: true` is passed (the constructor used to default to it and dumped the whole config) |
517
+ | `common/services/rate-limit-store.ts` | `console.warn` from `InMemoryRateLimitStore.hit` — a Nest `Logger` since 12.0.0, so no longer an RPC source |
513
518
  | `modules/hub/hub-buffer.ts` | `console.debug` from `readShared` |
514
519
  | `modules/better-auth/…-email-verification.service.ts` | `console.log` from `logAuthUrlForDevelopment` |
515
520
 
@@ -583,9 +588,10 @@ configuration that actually exists** — `grep` for the key in `config.env.ts` b
583
588
 
584
589
  ## Known coverage gap: no load-test baseline for the auth endpoints
585
590
 
586
- There is no `tests/k6/` in this repository — no config, no endpoint scripts, no baselines. That is
587
- recorded here rather than quietly absent, because one specific question is unanswered and a reader
588
- should not have to infer it from silence:
591
+ `tests/k6/` holds a health-check load script and a memory soak test (`memory-test.sh`), but nothing
592
+ for the auth endpoints — no endpoint scripts, no baselines for them. That is recorded here rather than
593
+ quietly absent, because one specific question is unanswered and a reader should not have to infer it
594
+ from silence:
589
595
 
590
596
  > Under concurrent password-reset load, at what request rate does the added key-derivation work
591
597
  > saturate the libuv threadpool?
@@ -622,7 +628,7 @@ environment that breaks it is the one nobody runs tests in by hand.
622
628
  **Before a release, run the unit suite the way a runner sees it:**
623
629
 
624
630
  ```bash
625
- CI=true npx vitest run --config vitest.config.ts --reporter=dot
631
+ CI=true npx vitest run --config vitest.config.mts --reporter=dot
626
632
  ```
627
633
 
628
634
  Deliberately NOT wired into `check`. It would run all 2381 unit tests a second time — about 40s on
@@ -731,6 +737,9 @@ catches the *failure*, never the *disarming* of the safety property.
731
737
  | Internal calls forward the caller's `ServiceOptions` | `tests/unit/service-options-forwarding.spec.ts` |
732
738
  | The parity matrix is complete and honest | `tests/unit/file-storage-parity-matrix.spec.ts` |
733
739
  | Regression tests carry re-runnable evidence | `tests/unit/regression-evidence.spec.ts` |
740
+ | The core is valid as CommonJS AND ESM (no `require()`, `__dirname`, `import x = require()`, `import.meta`, relative dynamic `import()`) | `tests/unit/module-format-invariants.spec.ts`; `pnpm run check:esm` proves the loading half |
741
+ | The ESM package stays loadable by `require()` (no import from a CommonJS directory into the graph, no top-level `await`) and its CommonJS islands (`bin/`, `migrate/helpers/`) load in place | `tests/unit/module-format-invariants.spec.ts`, `tests/unit/package-format-contracts.spec.ts`; `pnpm run check:manifest` repeats it against the packed build |
742
+ | Type-aware lint is armed (flag, `oxlint-tsgolint`, `no-floating-promises: error`) | `tests/unit/lint-type-aware.spec.ts` |
734
743
 
735
744
  `service-options-forwarding` is 11.33.1 generalised: inside `src/core/`, a method that HAS the
736
745
  caller's context must pass it to every internal call that accepts one. Passing a local derived from
package/CLAUDE.md CHANGED
@@ -71,6 +71,20 @@ compatible with either downstream layout:
71
71
  repo's. The `src/server/` here is a framework-testing example, not
72
72
  a shipping component.
73
73
 
74
+ - **ESM package (`"type": "module"`), source valid as CommonJS AND ESM
75
+ (12.0.0+).** CommonJS projects load the package through
76
+ `require(esm)` like every `@nestjs/*` package — so no top-level
77
+ `await` anywhere in it. `helpers/` (the TypeScript loader) and `bin/`
78
+ stay CommonJS through a directory `package.json`. A vendor-mode
79
+ project compiles the core with its own format. So in `src/core/`: relative imports end in `.js` / `/index.js`,
80
+ no `require()` / `__dirname` / `import x = require()` / `import.meta`
81
+ (use `createRequire()` for project files, `callerDirectory()` for
82
+ "this file's directory"), `import type` for types (`isolatedModules`),
83
+ no deep imports into `@nestjs/*` root-only packages, no relative
84
+ dynamic `import()`, and a dual package is lazy everywhere or static
85
+ everywhere. `pnpm run check:esm` proves it. See
86
+ `.claude/rules/architecture.md` → "Module Format".
87
+
74
88
  - **Keep top-level `src/index.ts` and `src/core.module.ts` consistent**
75
89
  with the core directory structure. The flatten-fix strips `./core/`
76
90
  from specifiers in these two files, so if you add re-exports there,
@@ -117,7 +131,7 @@ the update-agent contract.
117
131
  ```bash
118
132
  # Building & Running
119
133
  pnpm run build # Build (outputs to dist/)
120
- pnpm start # Start in local mode
134
+ pnpm start # Start in local mode (nodemon + SWC source loader — no type-check, `build` does that)
121
135
  pnpm run start:dev # Development mode with watch
122
136
 
123
137
  # Testing (ALWAYS run before completing changes)
@@ -125,11 +139,11 @@ pnpm test # Unit + E2E tests (Vitest); E2E half needs MongoDB
125
139
  pnpm run vitest:unit # Unit tests only (fast, no MongoDB)
126
140
  pnpm run test:e2e # E2E tests only
127
141
  pnpm run test:cov # Both suites with coverage (coverage/unit + coverage/e2e)
128
- npx vitest run --config vitest-e2e.config.ts --reporter=hanging-process # Debug open handles
142
+ npx vitest run --config vitest-e2e.config.mts --reporter=hanging-process # Debug open handles
129
143
  pnpm run test:cleanup # Remove leftover test artifacts (.txt, .bin, .png) — Node, runs on Windows too
130
144
 
131
145
  # Linting & Formatting
132
- pnpm run lint # oxlint check
146
+ pnpm run lint # oxlint --type-aware (no-floating-promises is an error, as in NestJS 12's template)
133
147
  pnpm run lint:fix # Auto-fix
134
148
  pnpm run format # oxfmt format
135
149
 
@@ -145,6 +159,15 @@ pnpm run check:overrides # Cross-checks every pnpm override and every auditConfi
145
159
  # See .claude/rules/package-management.md → "Overrides AGE"
146
160
  pnpm peers check # pnpm 11 builtin: unmet/missing peer dependencies, read from the lockfile
147
161
 
162
+ pnpm run typecheck:vendor # src/ under `module: commonjs`, declarations EMITTED and scanned — how a
163
+ # vendor-mode project compiles the core. Fails on type errors and on
164
+ # declarations naming a type via `typeof import()` or a package's /dist/ path
165
+ # (break in a consumer's isolated pnpm layout). The nodenext build sees
166
+ # neither; see .claude/rules/architecture.md → "Module Format"
167
+ pnpm run check:esm # Compiles what a vendor project receives as a "type": "module" package and
168
+ # imports EVERY module — the proof that the core runs as ESM. Catches a
169
+ # named import Node cannot see in a CJS package, a type imported as a value,
170
+ # a missing `.js`; see .claude/rules/architecture.md → "Module Format"
148
171
  pnpm run check:swc-tdz # SWC→CJS build, loads EVERY module as its own entry point.
149
172
  # The only step that catches a temporal-dead-zone crash from an
150
173
  # import cycle — tsc, vitest and oxlint are all blind to it.
@@ -236,7 +259,9 @@ boundary under `adminBypass: false`. User-entered URLs (webhooks, export targets
236
259
  Since 11.42.3 an **open GraphQL WebSocket** is re-checked, not trusted for its lifetime: at once on an
237
260
  invalidation (tenant guard, role change, password reset, sign-out), otherwise every
238
261
  `graphQl.subscriptionRevalidationMs` (30 s); changed rights close it with 4403 and the client
239
- reconnects. A custom `onConnect` must call `registerWsConnection()` to keep that.
262
+ reconnects. A custom `onConnect` must call `registerWsConnection()` to keep that, and refuses a credential
263
+ with `return refuseWsHandshake(extra.socket, reason)` (4401) — never by throwing (graphql-ws: 4500 + an
264
+ "internal error" log line) or a bare `false` (4403, which the client retries) (12.0.0).
240
265
 
241
266
  See `.claude/rules/role-system.md` for complete documentation.
242
267