@flusys/nestjs-shared 7.1.0 → 8.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (338) hide show
  1. package/classes/api-controller.class.d.ts +4 -4
  2. package/classes/api-service.class.d.ts +7 -7
  3. package/classes/disabled-event-bus.class.d.ts +1 -1
  4. package/classes/domain-event.publisher.d.ts +1 -1
  5. package/classes/event-bus.registry.d.ts +1 -1
  6. package/classes/event-transports/event-transport.registry.d.ts +1 -1
  7. package/classes/event-transports/index.d.ts +2 -2
  8. package/classes/event-transports/kafka-transport.optional.d.ts +1 -1
  9. package/classes/event-transports/memory-transport.d.ts +1 -1
  10. package/classes/event-transports/rabbitmq-transport.optional.d.ts +1 -1
  11. package/classes/hybrid-event-bus.class.d.ts +1 -1
  12. package/classes/index.d.ts +11 -11
  13. package/constants/index.d.ts +2 -2
  14. package/decorators/api-response.decorator.d.ts +1 -1
  15. package/decorators/current-user.decorator.d.ts +1 -1
  16. package/decorators/index.d.ts +6 -6
  17. package/decorators/require-permission.decorator.d.ts +1 -1
  18. package/dtos/filter-and-pagination.dto.d.ts +1 -1
  19. package/dtos/index.d.ts +6 -6
  20. package/entities/index.d.ts +3 -3
  21. package/enums/index.d.ts +3 -3
  22. package/exceptions/index.d.ts +2 -2
  23. package/fesm/470.js +2713 -0
  24. package/fesm/509.js +793 -0
  25. package/fesm/667.js +606 -0
  26. package/fesm/67.js +808 -0
  27. package/fesm/720.js +914 -0
  28. package/{cjs/classes/event-transports/rabbitmq-transport.optional.js → fesm/chunks/123.js} +78 -55
  29. package/fesm/{classes/event-transports/kafka-transport.optional.js → chunks/37.js} +74 -41
  30. package/fesm/classes/index.js +62 -12
  31. package/fesm/constants/index.js +445 -17
  32. package/fesm/decorators/index.js +341 -6
  33. package/fesm/dtos/index.js +23 -6
  34. package/fesm/entities/index.js +336 -3
  35. package/fesm/enums/index.js +57 -3
  36. package/fesm/exceptions/index.js +280 -2
  37. package/fesm/guards/index.js +1003 -3
  38. package/fesm/index.js +1524 -14
  39. package/fesm/interceptors/index.js +924 -5
  40. package/fesm/interfaces/index.js +57 -11
  41. package/fesm/middlewares/index.js +33 -1
  42. package/fesm/modules/index.js +432 -9
  43. package/fesm/runtime.js +134 -0
  44. package/fesm/utils/index.js +1045 -8
  45. package/filters/global-exception.filter.d.ts +1 -1
  46. package/filters/index.d.ts +1 -1
  47. package/guards/index.d.ts +3 -3
  48. package/guards/jwt-auth.guard.d.ts +1 -1
  49. package/guards/optional-jwt-auth.guard.d.ts +1 -1
  50. package/guards/permission.guard.d.ts +2 -2
  51. package/index.d.ts +14 -14
  52. package/interceptors/delete-empty-id-from-body.interceptor.d.ts +1 -1
  53. package/interceptors/idempotency.interceptor.d.ts +2 -2
  54. package/interceptors/index.d.ts +5 -5
  55. package/interceptors/response-meta.interceptor.d.ts +1 -1
  56. package/interceptors/set-user-field-on-body.interceptor.d.ts +1 -1
  57. package/interceptors/slug.interceptor.d.ts +2 -2
  58. package/interfaces/ai-assistant-adapter.interface.d.ts +1 -1
  59. package/interfaces/api.interface.d.ts +2 -2
  60. package/interfaces/datasource.interface.d.ts +1 -1
  61. package/interfaces/event-manager-adapter.interface.d.ts +2 -2
  62. package/interfaces/index.d.ts +11 -11
  63. package/interfaces/module-config.interface.d.ts +1 -1
  64. package/interfaces/notification-adapter.interface.d.ts +1 -1
  65. package/middlewares/index.d.ts +1 -1
  66. package/middlewares/logger.middleware.d.ts +2 -2
  67. package/modules/cache/cache.module.d.ts +1 -1
  68. package/modules/datasource/index.d.ts +1 -1
  69. package/modules/datasource/multi-tenant-datasource.service.d.ts +4 -4
  70. package/modules/event-bus/event-bus.explorer.d.ts +2 -2
  71. package/modules/event-bus/event-bus.module.d.ts +2 -2
  72. package/modules/event-bus/module-events.provider.d.ts +1 -1
  73. package/modules/index.d.ts +9 -9
  74. package/modules/shared-permission-cache/shared-permission-cache.service.d.ts +3 -3
  75. package/modules/utils/utils.service.d.ts +1 -1
  76. package/package.json +30 -44
  77. package/utils/index.d.ts +8 -8
  78. package/utils/permission-cache-key.util.d.ts +1 -1
  79. package/utils/query-helpers.util.d.ts +2 -2
  80. package/utils/request.util.d.ts +1 -1
  81. package/cjs/classes/api-controller.class.js +0 -728
  82. package/cjs/classes/api-controller.class.spec.js +0 -684
  83. package/cjs/classes/api-service.class.js +0 -631
  84. package/cjs/classes/api-service.class.spec.js +0 -1137
  85. package/cjs/classes/disabled-event-bus.class.js +0 -15
  86. package/cjs/classes/disabled-event-bus.class.spec.js +0 -40
  87. package/cjs/classes/domain-event.publisher.js +0 -76
  88. package/cjs/classes/domain-event.publisher.spec.js +0 -234
  89. package/cjs/classes/event-bus.registry.js +0 -68
  90. package/cjs/classes/event-bus.registry.spec.js +0 -141
  91. package/cjs/classes/event-transports/event-transport.registry.js +0 -41
  92. package/cjs/classes/event-transports/event-transport.registry.spec.js +0 -31
  93. package/cjs/classes/event-transports/index.js +0 -23
  94. package/cjs/classes/event-transports/kafka-transport.optional.js +0 -151
  95. package/cjs/classes/event-transports/kafka-transport.optional.spec.js +0 -198
  96. package/cjs/classes/event-transports/memory-transport.js +0 -53
  97. package/cjs/classes/event-transports/memory-transport.spec.js +0 -57
  98. package/cjs/classes/event-transports/rabbitmq-transport.optional.spec.js +0 -255
  99. package/cjs/classes/handle-custome-db.js +0 -37
  100. package/cjs/classes/handle-custome-db.spec.js +0 -82
  101. package/cjs/classes/hybrid-cache.class.js +0 -96
  102. package/cjs/classes/hybrid-cache.class.spec.js +0 -168
  103. package/cjs/classes/hybrid-event-bus.class.js +0 -281
  104. package/cjs/classes/hybrid-event-bus.class.spec.js +0 -218
  105. package/cjs/classes/index.js +0 -28
  106. package/cjs/classes/winston.logger.class.js +0 -274
  107. package/cjs/classes/winston.logger.class.spec.js +0 -330
  108. package/cjs/constants/index.js +0 -88
  109. package/cjs/constants/message-keys.js +0 -68
  110. package/cjs/constants/permissions.js +0 -307
  111. package/cjs/decorators/api-response.decorator.js +0 -52
  112. package/cjs/decorators/api-response.decorator.spec.js +0 -126
  113. package/cjs/decorators/current-user.decorator.js +0 -16
  114. package/cjs/decorators/current-user.decorator.spec.js +0 -74
  115. package/cjs/decorators/index.js +0 -23
  116. package/cjs/decorators/log-action.decorator.js +0 -149
  117. package/cjs/decorators/log-action.decorator.spec.js +0 -353
  118. package/cjs/decorators/on-domain-event.decorator.js +0 -13
  119. package/cjs/decorators/on-domain-event.decorator.spec.js +0 -50
  120. package/cjs/decorators/public.decorator.js +0 -13
  121. package/cjs/decorators/public.decorator.spec.js +0 -50
  122. package/cjs/decorators/require-permission.decorator.js +0 -32
  123. package/cjs/decorators/require-permission.decorator.spec.js +0 -147
  124. package/cjs/dtos/delete.dto.js +0 -92
  125. package/cjs/dtos/filter-and-pagination.dto.js +0 -164
  126. package/cjs/dtos/get-by-ids.dto.js +0 -65
  127. package/cjs/dtos/identity-response.dto.js +0 -108
  128. package/cjs/dtos/index.js +0 -23
  129. package/cjs/dtos/pagination.dto.js +0 -67
  130. package/cjs/dtos/response-payload.dto.js +0 -369
  131. package/cjs/entities/identity.js +0 -100
  132. package/cjs/entities/index.js +0 -20
  133. package/cjs/entities/raw-type.js +0 -4
  134. package/cjs/entities/user-root.js +0 -189
  135. package/cjs/enums/index.js +0 -20
  136. package/cjs/enums/notification-type.enum.js +0 -17
  137. package/cjs/enums/participant-status.enum.js +0 -17
  138. package/cjs/enums/recurrence-type.enum.js +0 -18
  139. package/cjs/exceptions/base-app.exception.js +0 -151
  140. package/cjs/exceptions/base-app.exception.spec.js +0 -157
  141. package/cjs/exceptions/index.js +0 -19
  142. package/cjs/exceptions/permission.exception.js +0 -56
  143. package/cjs/exceptions/permission.exception.spec.js +0 -82
  144. package/cjs/filters/global-exception.filter.js +0 -279
  145. package/cjs/filters/global-exception.filter.spec.js +0 -440
  146. package/cjs/filters/index.js +0 -18
  147. package/cjs/guards/index.js +0 -20
  148. package/cjs/guards/jwt-auth.guard.js +0 -75
  149. package/cjs/guards/jwt-auth.guard.spec.js +0 -75
  150. package/cjs/guards/optional-jwt-auth.guard.js +0 -67
  151. package/cjs/guards/optional-jwt-auth.guard.spec.js +0 -55
  152. package/cjs/guards/permission.guard.js +0 -179
  153. package/cjs/guards/permission.guard.spec.js +0 -373
  154. package/cjs/index.js +0 -31
  155. package/cjs/interceptors/delete-empty-id-from-body.interceptor.js +0 -40
  156. package/cjs/interceptors/delete-empty-id-from-body.interceptor.spec.js +0 -107
  157. package/cjs/interceptors/idempotency.interceptor.js +0 -96
  158. package/cjs/interceptors/idempotency.interceptor.spec.js +0 -116
  159. package/cjs/interceptors/index.js +0 -22
  160. package/cjs/interceptors/response-meta.interceptor.js +0 -47
  161. package/cjs/interceptors/response-meta.interceptor.spec.js +0 -89
  162. package/cjs/interceptors/set-user-field-on-body.interceptor.js +0 -60
  163. package/cjs/interceptors/set-user-field-on-body.interceptor.spec.js +0 -128
  164. package/cjs/interceptors/slug.interceptor.js +0 -75
  165. package/cjs/interceptors/slug.interceptor.spec.js +0 -110
  166. package/cjs/interfaces/ai-assistant-adapter.interface.js +0 -24
  167. package/cjs/interfaces/api.interface.js +0 -4
  168. package/cjs/interfaces/datasource.interface.js +0 -4
  169. package/cjs/interfaces/event-bus.interface.js +0 -4
  170. package/cjs/interfaces/event-manager-adapter.interface.js +0 -11
  171. package/cjs/interfaces/identity.interface.js +0 -4
  172. package/cjs/interfaces/index.js +0 -28
  173. package/cjs/interfaces/logged-user-info.interface.js +0 -6
  174. package/cjs/interfaces/module-config.interface.js +0 -4
  175. package/cjs/interfaces/notification-adapter.interface.js +0 -11
  176. package/cjs/interfaces/permission-sync-adapter.interface.js +0 -11
  177. package/cjs/interfaces/permission.interface.js +0 -4
  178. package/cjs/middlewares/index.js +0 -18
  179. package/cjs/middlewares/logger.middleware.js +0 -264
  180. package/cjs/middlewares/logger.middleware.spec.js +0 -462
  181. package/cjs/modules/cache/cache.module.js +0 -39
  182. package/cjs/modules/cache/cache.module.spec.js +0 -48
  183. package/cjs/modules/datasource/index.js +0 -18
  184. package/cjs/modules/datasource/multi-tenant-datasource.service.js +0 -222
  185. package/cjs/modules/datasource/multi-tenant-datasource.service.spec.js +0 -381
  186. package/cjs/modules/event-bus/event-bus.explorer.js +0 -124
  187. package/cjs/modules/event-bus/event-bus.explorer.spec.js +0 -189
  188. package/cjs/modules/event-bus/event-bus.integration.spec.js +0 -253
  189. package/cjs/modules/event-bus/event-bus.module.js +0 -94
  190. package/cjs/modules/event-bus/event-bus.module.spec.js +0 -149
  191. package/cjs/modules/event-bus/module-events.provider.js +0 -39
  192. package/cjs/modules/event-bus/module-events.provider.spec.js +0 -56
  193. package/cjs/modules/index.js +0 -26
  194. package/cjs/modules/shared-permission-cache/shared-permission-cache.module.js +0 -32
  195. package/cjs/modules/shared-permission-cache/shared-permission-cache.service.js +0 -101
  196. package/cjs/modules/shared-permission-cache/shared-permission-cache.service.spec.js +0 -165
  197. package/cjs/modules/utils/utils.module.js +0 -32
  198. package/cjs/modules/utils/utils.service.js +0 -76
  199. package/cjs/modules/utils/utils.service.spec.js +0 -169
  200. package/cjs/utils/date-time.util.js +0 -94
  201. package/cjs/utils/date-time.util.spec.js +0 -84
  202. package/cjs/utils/event-pattern.util.js +0 -103
  203. package/cjs/utils/event-pattern.util.spec.js +0 -251
  204. package/cjs/utils/html-sanitizer.util.js +0 -64
  205. package/cjs/utils/html-sanitizer.util.spec.js +0 -76
  206. package/cjs/utils/index.js +0 -25
  207. package/cjs/utils/optional-module.util.js +0 -35
  208. package/cjs/utils/optional-module.util.spec.js +0 -14
  209. package/cjs/utils/permission-cache-key.util.js +0 -31
  210. package/cjs/utils/permission-cache-key.util.spec.js +0 -88
  211. package/cjs/utils/query-helpers.util.js +0 -60
  212. package/cjs/utils/query-helpers.util.spec.js +0 -209
  213. package/cjs/utils/request.util.js +0 -96
  214. package/cjs/utils/request.util.spec.js +0 -249
  215. package/cjs/utils/string.util.js +0 -63
  216. package/cjs/utils/string.util.spec.js +0 -63
  217. package/fesm/classes/api-controller.class.js +0 -718
  218. package/fesm/classes/api-controller.class.spec.js +0 -680
  219. package/fesm/classes/api-service.class.js +0 -621
  220. package/fesm/classes/api-service.class.spec.js +0 -1133
  221. package/fesm/classes/disabled-event-bus.class.js +0 -11
  222. package/fesm/classes/disabled-event-bus.class.spec.js +0 -36
  223. package/fesm/classes/domain-event.publisher.js +0 -63
  224. package/fesm/classes/domain-event.publisher.spec.js +0 -230
  225. package/fesm/classes/event-bus.registry.js +0 -64
  226. package/fesm/classes/event-bus.registry.spec.js +0 -137
  227. package/fesm/classes/event-transports/event-transport.registry.js +0 -35
  228. package/fesm/classes/event-transports/event-transport.registry.spec.js +0 -27
  229. package/fesm/classes/event-transports/index.js +0 -6
  230. package/fesm/classes/event-transports/kafka-transport.optional.spec.js +0 -194
  231. package/fesm/classes/event-transports/memory-transport.js +0 -49
  232. package/fesm/classes/event-transports/memory-transport.spec.js +0 -53
  233. package/fesm/classes/event-transports/rabbitmq-transport.optional.js +0 -174
  234. package/fesm/classes/event-transports/rabbitmq-transport.optional.spec.js +0 -251
  235. package/fesm/classes/handle-custome-db.js +0 -19
  236. package/fesm/classes/handle-custome-db.spec.js +0 -78
  237. package/fesm/classes/hybrid-cache.class.js +0 -81
  238. package/fesm/classes/hybrid-cache.class.spec.js +0 -164
  239. package/fesm/classes/hybrid-event-bus.class.js +0 -237
  240. package/fesm/classes/hybrid-event-bus.class.spec.js +0 -214
  241. package/fesm/classes/winston.logger.class.js +0 -228
  242. package/fesm/classes/winston.logger.class.spec.js +0 -327
  243. package/fesm/constants/message-keys.js +0 -49
  244. package/fesm/constants/permissions.js +0 -215
  245. package/fesm/decorators/api-response.decorator.js +0 -42
  246. package/fesm/decorators/api-response.decorator.spec.js +0 -122
  247. package/fesm/decorators/current-user.decorator.js +0 -18
  248. package/fesm/decorators/current-user.decorator.spec.js +0 -73
  249. package/fesm/decorators/log-action.decorator.js +0 -139
  250. package/fesm/decorators/log-action.decorator.spec.js +0 -349
  251. package/fesm/decorators/on-domain-event.decorator.js +0 -10
  252. package/fesm/decorators/on-domain-event.decorator.spec.js +0 -46
  253. package/fesm/decorators/public.decorator.js +0 -20
  254. package/fesm/decorators/public.decorator.spec.js +0 -46
  255. package/fesm/decorators/require-permission.decorator.js +0 -27
  256. package/fesm/decorators/require-permission.decorator.spec.js +0 -143
  257. package/fesm/dtos/delete.dto.js +0 -82
  258. package/fesm/dtos/filter-and-pagination.dto.js +0 -148
  259. package/fesm/dtos/get-by-ids.dto.js +0 -55
  260. package/fesm/dtos/identity-response.dto.js +0 -98
  261. package/fesm/dtos/pagination.dto.js +0 -57
  262. package/fesm/dtos/response-payload.dto.js +0 -336
  263. package/fesm/entities/identity.js +0 -90
  264. package/fesm/entities/raw-type.js +0 -1
  265. package/fesm/entities/user-root.js +0 -179
  266. package/fesm/enums/notification-type.enum.js +0 -7
  267. package/fesm/enums/participant-status.enum.js +0 -7
  268. package/fesm/enums/recurrence-type.enum.js +0 -8
  269. package/fesm/exceptions/base-app.exception.js +0 -115
  270. package/fesm/exceptions/base-app.exception.spec.js +0 -153
  271. package/fesm/exceptions/permission.exception.js +0 -35
  272. package/fesm/exceptions/permission.exception.spec.js +0 -78
  273. package/fesm/filters/global-exception.filter.js +0 -269
  274. package/fesm/filters/global-exception.filter.spec.js +0 -436
  275. package/fesm/filters/index.js +0 -1
  276. package/fesm/guards/jwt-auth.guard.js +0 -65
  277. package/fesm/guards/jwt-auth.guard.spec.js +0 -71
  278. package/fesm/guards/optional-jwt-auth.guard.js +0 -57
  279. package/fesm/guards/optional-jwt-auth.guard.spec.js +0 -51
  280. package/fesm/guards/permission.guard.js +0 -169
  281. package/fesm/guards/permission.guard.spec.js +0 -369
  282. package/fesm/interceptors/delete-empty-id-from-body.interceptor.js +0 -30
  283. package/fesm/interceptors/delete-empty-id-from-body.interceptor.spec.js +0 -103
  284. package/fesm/interceptors/idempotency.interceptor.js +0 -86
  285. package/fesm/interceptors/idempotency.interceptor.spec.js +0 -112
  286. package/fesm/interceptors/response-meta.interceptor.js +0 -37
  287. package/fesm/interceptors/response-meta.interceptor.spec.js +0 -85
  288. package/fesm/interceptors/set-user-field-on-body.interceptor.js +0 -39
  289. package/fesm/interceptors/set-user-field-on-body.interceptor.spec.js +0 -124
  290. package/fesm/interceptors/slug.interceptor.js +0 -65
  291. package/fesm/interceptors/slug.interceptor.spec.js +0 -106
  292. package/fesm/interfaces/ai-assistant-adapter.interface.js +0 -3
  293. package/fesm/interfaces/api.interface.js +0 -1
  294. package/fesm/interfaces/datasource.interface.js +0 -1
  295. package/fesm/interfaces/event-bus.interface.js +0 -1
  296. package/fesm/interfaces/event-manager-adapter.interface.js +0 -1
  297. package/fesm/interfaces/identity.interface.js +0 -1
  298. package/fesm/interfaces/logged-user-info.interface.js +0 -3
  299. package/fesm/interfaces/module-config.interface.js +0 -5
  300. package/fesm/interfaces/notification-adapter.interface.js +0 -1
  301. package/fesm/interfaces/permission-sync-adapter.interface.js +0 -1
  302. package/fesm/interfaces/permission.interface.js +0 -1
  303. package/fesm/middlewares/logger.middleware.js +0 -235
  304. package/fesm/middlewares/logger.middleware.spec.js +0 -459
  305. package/fesm/modules/cache/cache.module.js +0 -29
  306. package/fesm/modules/cache/cache.module.spec.js +0 -44
  307. package/fesm/modules/datasource/index.js +0 -1
  308. package/fesm/modules/datasource/multi-tenant-datasource.service.js +0 -212
  309. package/fesm/modules/datasource/multi-tenant-datasource.service.spec.js +0 -377
  310. package/fesm/modules/event-bus/event-bus.explorer.js +0 -114
  311. package/fesm/modules/event-bus/event-bus.explorer.spec.js +0 -185
  312. package/fesm/modules/event-bus/event-bus.integration.spec.js +0 -249
  313. package/fesm/modules/event-bus/event-bus.module.js +0 -84
  314. package/fesm/modules/event-bus/event-bus.module.spec.js +0 -145
  315. package/fesm/modules/event-bus/module-events.provider.js +0 -26
  316. package/fesm/modules/event-bus/module-events.provider.spec.js +0 -52
  317. package/fesm/modules/shared-permission-cache/shared-permission-cache.module.js +0 -22
  318. package/fesm/modules/shared-permission-cache/shared-permission-cache.service.js +0 -91
  319. package/fesm/modules/shared-permission-cache/shared-permission-cache.service.spec.js +0 -161
  320. package/fesm/modules/utils/utils.module.js +0 -22
  321. package/fesm/modules/utils/utils.service.js +0 -66
  322. package/fesm/modules/utils/utils.service.spec.js +0 -165
  323. package/fesm/utils/date-time.util.js +0 -70
  324. package/fesm/utils/date-time.util.spec.js +0 -80
  325. package/fesm/utils/event-pattern.util.js +0 -91
  326. package/fesm/utils/event-pattern.util.spec.js +0 -247
  327. package/fesm/utils/html-sanitizer.util.js +0 -69
  328. package/fesm/utils/html-sanitizer.util.spec.js +0 -72
  329. package/fesm/utils/optional-module.util.js +0 -25
  330. package/fesm/utils/optional-module.util.spec.js +0 -10
  331. package/fesm/utils/permission-cache-key.util.js +0 -10
  332. package/fesm/utils/permission-cache-key.util.spec.js +0 -84
  333. package/fesm/utils/query-helpers.util.js +0 -85
  334. package/fesm/utils/query-helpers.util.spec.js +0 -205
  335. package/fesm/utils/request.util.js +0 -81
  336. package/fesm/utils/request.util.spec.js +0 -245
  337. package/fesm/utils/string.util.js +0 -71
  338. package/fesm/utils/string.util.spec.js +0 -59
@@ -1,3 +1,1003 @@
1
- export * from './jwt-auth.guard';
2
- export * from './optional-jwt-auth.guard';
3
- export * from './permission.guard';
1
+ import * as __rspack_external__flusys_nestjs_core_config_197fa0a9 from "@flusys/nestjs-core/config";
2
+ import * as __rspack_external__nestjs_common_a04939da from "@nestjs/common";
3
+ import * as __rspack_external__nestjs_core_d7b00a1a from "@nestjs/core";
4
+ import * as __rspack_external__nestjs_passport_18907953 from "@nestjs/passport";
5
+ import * as __rspack_external__keyv_redis_139d03ca from "@keyv/redis";
6
+ import * as __rspack_external_cacheable from "cacheable";
7
+ import * as __rspack_external_keyv from "keyv";
8
+ export const __rspack_esm_id = 333;
9
+ export const __rspack_esm_ids = [333];
10
+ export const __webpack_modules__ = {
11
+ 375(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
12
+
13
+ // EXPORTS
14
+ __webpack_require__.d(__webpack_exports__, {
15
+ l: () => (/* binding */ HybridCache)
16
+ });
17
+
18
+ // EXTERNAL MODULE: external "@flusys/nestjs-core/config"
19
+ var config_ = __webpack_require__(307);
20
+ ;// CONCATENATED MODULE: external "@keyv/redis"
21
+
22
+ ;// CONCATENATED MODULE: external "cacheable"
23
+
24
+ ;// CONCATENATED MODULE: external "keyv"
25
+
26
+ ;// CONCATENATED MODULE: ./projects/nestjs-shared/src/classes/hybrid-cache.class.ts
27
+
28
+
29
+
30
+
31
+ class HybridCache {
32
+ memory;
33
+ redis;
34
+ constructor(memoryTtl = 60 * 1000, memorySize = 5000){
35
+ // Default to 'memory' if not specified
36
+ const useCacheLabel = config_.envConfig.tryGetValue('USE_CACHE_LABEL', false) || 'memory';
37
+ if (useCacheLabel === 'memory' || useCacheLabel === 'hybrid') {
38
+ this.memory = new __rspack_external_keyv["default"]({
39
+ store: new __rspack_external_cacheable.CacheableMemory({
40
+ ttl: memoryTtl,
41
+ lruSize: memorySize
42
+ })
43
+ });
44
+ }
45
+ if (useCacheLabel === 'redis' || useCacheLabel === 'hybrid') {
46
+ this.redis = new __rspack_external_keyv["default"]({
47
+ store: new __rspack_external__keyv_redis_139d03ca["default"](config_.envConfig.getRedisUrl())
48
+ });
49
+ }
50
+ }
51
+ async get(key) {
52
+ // Prefer memory first if available
53
+ if (this.memory) {
54
+ const value = await this.memory.get(key);
55
+ if (value !== undefined) return value;
56
+ }
57
+ // Fallback to redis
58
+ if (this.redis) {
59
+ const value = await this.redis.get(key);
60
+ if (value !== undefined && this.memory) {
61
+ // backfill L1 memory cache
62
+ await this.memory.set(key, value);
63
+ }
64
+ return value;
65
+ }
66
+ return undefined;
67
+ }
68
+ async set(key, value, ttl) {
69
+ if (this.memory) {
70
+ await this.memory.set(key, value, ttl);
71
+ }
72
+ if (this.redis) {
73
+ await this.redis.set(key, value, ttl);
74
+ }
75
+ }
76
+ async del(key) {
77
+ if (this.memory) {
78
+ await this.memory.delete(key);
79
+ }
80
+ if (this.redis) {
81
+ await this.redis.delete(key);
82
+ }
83
+ }
84
+ async reset() {
85
+ if (this.memory) {
86
+ await this.memory.clear();
87
+ }
88
+ }
89
+ async resetL2() {
90
+ if (this.redis) {
91
+ await this.redis.clear();
92
+ }
93
+ }
94
+ }
95
+
96
+
97
+ },
98
+ 43(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
99
+ /* import */ var _permissions_js__rspack_import_0 = __webpack_require__(975);
100
+ /* import */ var _message_keys_js__rspack_import_1 = __webpack_require__(389);
101
+ // Metadata keys
102
+ const IS_PUBLIC_KEY = 'isPublic';
103
+ const PERMISSIONS_KEY = 'permissions';
104
+ const DOMAIN_EVENT_HANDLER_KEY = 'domainEventHandler';
105
+ // Injection tokens
106
+ const CACHE_INSTANCE = 'CACHE_INSTANCE';
107
+ const PERMISSION_GUARD_CONFIG = 'PERMISSION_GUARD_CONFIG';
108
+ const EVENT_BUS_INSTANCE = 'EVENT_BUS_INSTANCE';
109
+ const EVENT_BUS_MODULE_OPTIONS = 'EVENT_BUS_MODULE_OPTIONS';
110
+ // Header names
111
+ const IDEMPOTENCY_KEY_HEADER = 'x-idempotency-key';
112
+ const REQUEST_ID_HEADER = 'x-request-id';
113
+ const CLIENT_TYPE_HEADER = 'x-client-type';
114
+ // Cache key prefixes
115
+ const PERMISSIONS_CACHE_PREFIX = 'my-permissions';
116
+ const IDEMPOTENCY_CACHE_PREFIX = 'idempotency';
117
+ // Event bus defaults
118
+ const DEFAULT_EVENT_EXCHANGE = 'flusys.events';
119
+ const DEFAULT_EVENT_TOPIC = 'flusys.domain-events';
120
+ const DEFAULT_EVENT_SERVICE_NAME = 'flusys';
121
+ // Permission codes
122
+
123
+ // Message keys for localization
124
+
125
+
126
+ __webpack_require__.d(__webpack_exports__, {
127
+ BC: () => (/* reexport safe */ _permissions_js__rspack_import_0.BC),
128
+ Bz: () => (/* reexport safe */ _permissions_js__rspack_import_0.Bz),
129
+ Em: () => (/* reexport safe */ _permissions_js__rspack_import_0.Em),
130
+ GT: () => (/* reexport safe */ _permissions_js__rspack_import_0.GT),
131
+ Jj: () => (/* reexport safe */ _permissions_js__rspack_import_0.Jj),
132
+ N3: () => (/* reexport safe */ _permissions_js__rspack_import_0.N3),
133
+ ON: () => (/* reexport safe */ _permissions_js__rspack_import_0.ON),
134
+ P0: () => (/* reexport safe */ _permissions_js__rspack_import_0.P0),
135
+ Q5: () => (/* reexport safe */ _permissions_js__rspack_import_0.Q5),
136
+ S6: () => (/* reexport safe */ _permissions_js__rspack_import_0.S6),
137
+ T: () => (/* reexport safe */ _permissions_js__rspack_import_0.T),
138
+ UB: () => (/* reexport safe */ _permissions_js__rspack_import_0.UB),
139
+ UG: () => (/* reexport safe */ _permissions_js__rspack_import_0.UG),
140
+ UU: () => (/* reexport safe */ _message_keys_js__rspack_import_1.UU),
141
+ Ub: () => (/* reexport safe */ _permissions_js__rspack_import_0.Ub),
142
+ V0: () => (/* reexport safe */ _permissions_js__rspack_import_0.V0),
143
+ Wc: () => (/* reexport safe */ _permissions_js__rspack_import_0.Wc),
144
+ Y3: () => (/* reexport safe */ _permissions_js__rspack_import_0.Y3),
145
+ Y7: () => (/* reexport safe */ _permissions_js__rspack_import_0.Y7),
146
+ _X: () => (/* reexport safe */ _permissions_js__rspack_import_0._X),
147
+ aO: () => (/* reexport safe */ _permissions_js__rspack_import_0.aO),
148
+ fS: () => (/* reexport safe */ _permissions_js__rspack_import_0.fS),
149
+ hg: () => (/* reexport safe */ _message_keys_js__rspack_import_1.hg),
150
+ l3: () => (/* reexport safe */ _permissions_js__rspack_import_0.l3),
151
+ mK: () => (/* reexport safe */ _message_keys_js__rspack_import_1.mK),
152
+ mV: () => (/* reexport safe */ _permissions_js__rspack_import_0.mV),
153
+ rH: () => (/* reexport safe */ _permissions_js__rspack_import_0.rH),
154
+ t$: () => (/* reexport safe */ _permissions_js__rspack_import_0.t$),
155
+ w7: () => (/* reexport safe */ _permissions_js__rspack_import_0.w7),
156
+ wA: () => (/* reexport safe */ _permissions_js__rspack_import_0.wA),
157
+ wM: () => (/* reexport safe */ _permissions_js__rspack_import_0.wM),
158
+ z$: () => (/* reexport safe */ _permissions_js__rspack_import_0.z$),
159
+ zd: () => (/* reexport safe */ _permissions_js__rspack_import_0.zd)
160
+ }, {
161
+ Hq: DEFAULT_EVENT_EXCHANGE,
162
+ Lw: PERMISSION_GUARD_CONFIG,
163
+ N7: PERMISSIONS_KEY,
164
+ PT: DOMAIN_EVENT_HANDLER_KEY,
165
+ Qj: EVENT_BUS_INSTANCE,
166
+ SL: EVENT_BUS_MODULE_OPTIONS,
167
+ fG: PERMISSIONS_CACHE_PREFIX,
168
+ iH: IDEMPOTENCY_KEY_HEADER,
169
+ jA: IS_PUBLIC_KEY,
170
+ kC: REQUEST_ID_HEADER,
171
+ mg: IDEMPOTENCY_CACHE_PREFIX,
172
+ nx: DEFAULT_EVENT_TOPIC,
173
+ xw: CLIENT_TYPE_HEADER,
174
+ zl: CACHE_INSTANCE
175
+ });
176
+
177
+
178
+ },
179
+ 389(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
180
+ // ==================== AUTH (Shared across guards/interceptors) ====================
181
+ // These are duplicated in nestjs-auth but needed here to avoid circular dependencies
182
+ const AUTH_MESSAGES = {
183
+ TOKEN_REQUIRED: 'auth.token.required',
184
+ TOKEN_INVALID: 'auth.token.invalid',
185
+ ENTITY_BELOG_ANOTHER_COMPANY: 'entity.belongs.another.company',
186
+ COMPANY_NO_ACCESS: 'auth.company.no.access'
187
+ };
188
+ // ==================== ERROR (HTTP Exceptions) ====================
189
+ const ERROR_MESSAGES = {
190
+ NOT_FOUND: 'error.not.found',
191
+ VALIDATION: 'error.validation',
192
+ UNAUTHORIZED: 'error.unauthorized',
193
+ FORBIDDEN: 'error.forbidden',
194
+ CONFLICT: 'error.conflict',
195
+ DB_FOREIGN_KEY: 'error.db.foreign.key',
196
+ DB_NOT_NULL: 'error.db.not.null',
197
+ DB_INVALID_INPUT: 'error.db.invalid.input',
198
+ DB_VALUE_TOO_LONG: 'error.db.value.too.long',
199
+ DB_CHECK_CONSTRAINT: 'error.db.check.constraint',
200
+ DB_DEADLOCK: 'error.db.deadlock',
201
+ INTERNAL: 'error.internal',
202
+ SERVICE_UNAVAILABLE: 'error.service.unavailable',
203
+ UNKNOWN: 'error.unknown',
204
+ HTTP: 'error.http',
205
+ GENERIC: 'error.generic',
206
+ PERMISSION_SYSTEM_UNAVAILABLE: 'error.permission.system.unavailable',
207
+ INSUFFICIENT_PERMISSIONS: 'error.insufficient.permissions',
208
+ INSUFFICIENT_PERMISSIONS_OR: 'error.insufficient.permissions.or',
209
+ NO_PERMISSIONS_FOUND: 'error.no.permissions.found',
210
+ ENDPOINT_DISABLED: 'error.endpoint.disabled'
211
+ };
212
+ // ==================== SYSTEM (Infrastructure) ====================
213
+ const SYSTEM_MESSAGES = {
214
+ REPOSITORY_NOT_AVAILABLE: 'system.repository.not.available',
215
+ DATASOURCE_NOT_AVAILABLE: 'system.datasource.not.available',
216
+ DATABASE_CONFIG_NOT_AVAILABLE: 'system.database.config.not.available',
217
+ SERVICE_NOT_AVAILABLE: 'system.service.not.available',
218
+ CONFIG_REQUIRED: 'system.config.required',
219
+ INTERNAL_ERROR: 'system.internal.error',
220
+ DUPLICATE_REQUEST: 'system.duplicate.request',
221
+ INVALID_TENANT_ID: 'system.invalid.tenant.id',
222
+ TENANT_NOT_FOUND: 'system.tenant.not.found',
223
+ TENANT_HEADER_REQUIRED: 'system.tenant.header.required',
224
+ MISSING_PARAMETER: 'system.missing.parameter',
225
+ SDK_NOT_INSTALLED: 'system.sdk.not.installed',
226
+ PATH_TRAVERSAL_DETECTED: 'system.path.traversal.detected',
227
+ INVALID_FILE_KEY: 'system.invalid.file.key'
228
+ };
229
+
230
+ __webpack_require__.d(__webpack_exports__, {
231
+ }, {
232
+ UU: ERROR_MESSAGES,
233
+ hg: SYSTEM_MESSAGES,
234
+ mK: AUTH_MESSAGES
235
+ });
236
+
237
+
238
+ },
239
+ 975(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
240
+ // ==================== AUTH MODULE ====================
241
+ const USER_PERMISSIONS = {
242
+ CREATE: 'user.create',
243
+ READ: 'user.read',
244
+ UPDATE: 'user.update',
245
+ DELETE: 'user.delete',
246
+ LOOKUP: 'user.lookup'
247
+ };
248
+ const COMPANY_PERMISSIONS = {
249
+ CREATE: 'company.create',
250
+ READ: 'company.read',
251
+ UPDATE: 'company.update',
252
+ DELETE: 'company.delete'
253
+ };
254
+ const BRANCH_PERMISSIONS = {
255
+ CREATE: 'branch.create',
256
+ READ: 'branch.read',
257
+ UPDATE: 'branch.update',
258
+ DELETE: 'branch.delete'
259
+ };
260
+ const SOCIAL_AUTH_CONFIG_PERMISSIONS = {
261
+ CREATE: 'social-config.create',
262
+ READ: 'social-config.read',
263
+ UPDATE: 'social-config.update',
264
+ DELETE: 'social-config.delete'
265
+ };
266
+ // ==================== IAM MODULE ====================
267
+ const ACTION_PERMISSIONS = {
268
+ CREATE: 'action.create',
269
+ READ: 'action.read',
270
+ UPDATE: 'action.update',
271
+ DELETE: 'action.delete'
272
+ };
273
+ const ROLE_PERMISSIONS = {
274
+ CREATE: 'role.create',
275
+ READ: 'role.read',
276
+ UPDATE: 'role.update',
277
+ DELETE: 'role.delete'
278
+ };
279
+ const ROLE_ACTION_PERMISSIONS = {
280
+ READ: 'role-action.read',
281
+ ASSIGN: 'role-action.assign'
282
+ };
283
+ const USER_ROLE_PERMISSIONS = {
284
+ READ: 'user-role.read',
285
+ ASSIGN: 'user-role.assign'
286
+ };
287
+ const USER_ACTION_PERMISSIONS = {
288
+ READ: 'user-action.read',
289
+ ASSIGN: 'user-action.assign'
290
+ };
291
+ const COMPANY_ACTION_PERMISSIONS = {
292
+ READ: 'company-action.read',
293
+ ASSIGN: 'company-action.assign'
294
+ };
295
+ // ==================== STORAGE MODULE ====================
296
+ const FILE_PERMISSIONS = {
297
+ CREATE: 'file.create',
298
+ READ: 'file.read',
299
+ UPDATE: 'file.update',
300
+ DELETE: 'file.delete',
301
+ VIEW_PRIVATE_ACTION: 'file.view.private'
302
+ };
303
+ const FOLDER_PERMISSIONS = {
304
+ CREATE: 'folder.create',
305
+ READ: 'folder.read',
306
+ UPDATE: 'folder.update',
307
+ DELETE: 'folder.delete'
308
+ };
309
+ const STORAGE_CONFIG_PERMISSIONS = {
310
+ CREATE: 'storage-config.create',
311
+ READ: 'storage-config.read',
312
+ UPDATE: 'storage-config.update',
313
+ DELETE: 'storage-config.delete'
314
+ };
315
+ const UPLOAD_CONFIG_PERMISSIONS = {
316
+ DELETE: 'upload-config.delete'
317
+ };
318
+ // ==================== EMAIL MODULE ====================
319
+ const EMAIL_CONFIG_PERMISSIONS = {
320
+ CREATE: 'email-config.create',
321
+ READ: 'email-config.read',
322
+ UPDATE: 'email-config.update',
323
+ DELETE: 'email-config.delete'
324
+ };
325
+ const EMAIL_TEMPLATE_PERMISSIONS = {
326
+ CREATE: 'email-template.create',
327
+ READ: 'email-template.read',
328
+ UPDATE: 'email-template.update',
329
+ DELETE: 'email-template.delete'
330
+ };
331
+ // ==================== FORM BUILDER MODULE ====================
332
+ const FORM_PERMISSIONS = {
333
+ CREATE: 'form.create',
334
+ READ: 'form.read',
335
+ UPDATE: 'form.update',
336
+ DELETE: 'form.delete'
337
+ };
338
+ const FORM_RESULT_PERMISSIONS = {
339
+ CREATE: 'form-result.create',
340
+ READ: 'form-result.read',
341
+ UPDATE: 'form-result.update',
342
+ DELETE: 'form-result.delete'
343
+ };
344
+ // ==================== EVENT MANAGER MODULE ====================
345
+ const EVENT_PERMISSIONS = {
346
+ CREATE: 'event.create',
347
+ READ: 'event.read',
348
+ UPDATE: 'event.update',
349
+ DELETE: 'event.delete'
350
+ };
351
+ // ==================== NOTIFICATION MODULE ====================
352
+ const NOTIFICATION_PERMISSIONS = {
353
+ CREATE: 'notification.create',
354
+ READ: 'notification.read',
355
+ UPDATE: 'notification.update',
356
+ DELETE: 'notification.delete'
357
+ };
358
+ // ==================== LOCALIZATION MODULE ====================
359
+ const LANGUAGE_PERMISSIONS = {
360
+ CREATE: 'language.create',
361
+ READ: 'language.read',
362
+ UPDATE: 'language.update',
363
+ DELETE: 'language.delete'
364
+ };
365
+ const TRANSLATION_KEY_PERMISSIONS = {
366
+ CREATE: 'translation-key.create',
367
+ READ: 'translation-key.read',
368
+ UPDATE: 'translation-key.update',
369
+ DELETE: 'translation-key.delete'
370
+ };
371
+ const TRANSLATION_PERMISSIONS = {
372
+ CREATE: 'translation.create',
373
+ READ: 'translation.read',
374
+ UPDATE: 'translation.update',
375
+ DELETE: 'translation.delete'
376
+ };
377
+ // ==================== TASK MANAGER MODULE ====================
378
+ const TASK_BOARD_PERMISSIONS = {
379
+ CREATE: 'task-board.create',
380
+ READ: 'task-board.read',
381
+ UPDATE: 'task-board.update',
382
+ DELETE: 'task-board.delete',
383
+ MANAGE_MEMBERS: 'task-board.manage-members'
384
+ };
385
+ const TASK_LIST_PERMISSIONS = {
386
+ CREATE: 'task-list.create',
387
+ READ: 'task-list.read',
388
+ UPDATE: 'task-list.update',
389
+ DELETE: 'task-list.delete'
390
+ };
391
+ const TASK_PERMISSIONS = {
392
+ CREATE: 'task.create',
393
+ READ: 'task.read',
394
+ UPDATE: 'task.update',
395
+ DELETE: 'task.delete',
396
+ MOVE: 'task.move',
397
+ ASSIGN: 'task.assign'
398
+ };
399
+ const TASK_LABEL_PERMISSIONS = {
400
+ CREATE: 'task-label.create',
401
+ READ: 'task-label.read',
402
+ UPDATE: 'task-label.update',
403
+ DELETE: 'task-label.delete'
404
+ };
405
+ const TASK_COMMENT_PERMISSIONS = {
406
+ CREATE: 'task-comment.create',
407
+ READ: 'task-comment.read',
408
+ DELETE: 'task-comment.delete'
409
+ };
410
+ // ==================== AI ASSISTANT MODULE ====================
411
+ const AI_ASSISTANT_PERMISSIONS = {
412
+ VIEW_ALL_HISTORY: 'ai-assistant.view-all-history'
413
+ };
414
+ // ==================== AGGREGATED EXPORTS ====================
415
+ const PERMISSIONS = {
416
+ // Auth
417
+ USER: USER_PERMISSIONS,
418
+ COMPANY: COMPANY_PERMISSIONS,
419
+ BRANCH: BRANCH_PERMISSIONS,
420
+ SOCIAL_AUTH_CONFIG: SOCIAL_AUTH_CONFIG_PERMISSIONS,
421
+ // IAM
422
+ ACTION: ACTION_PERMISSIONS,
423
+ ROLE: ROLE_PERMISSIONS,
424
+ ROLE_ACTION: ROLE_ACTION_PERMISSIONS,
425
+ USER_ROLE: USER_ROLE_PERMISSIONS,
426
+ USER_ACTION: USER_ACTION_PERMISSIONS,
427
+ COMPANY_ACTION: COMPANY_ACTION_PERMISSIONS,
428
+ // Storage
429
+ FILE: FILE_PERMISSIONS,
430
+ FOLDER: FOLDER_PERMISSIONS,
431
+ STORAGE_CONFIG: STORAGE_CONFIG_PERMISSIONS,
432
+ // Email
433
+ EMAIL_CONFIG: EMAIL_CONFIG_PERMISSIONS,
434
+ EMAIL_TEMPLATE: EMAIL_TEMPLATE_PERMISSIONS,
435
+ // Form Builder
436
+ FORM: FORM_PERMISSIONS,
437
+ FORM_RESULT: FORM_RESULT_PERMISSIONS,
438
+ // Event Manager
439
+ EVENT: EVENT_PERMISSIONS,
440
+ // Notification
441
+ NOTIFICATION: NOTIFICATION_PERMISSIONS,
442
+ // Localization
443
+ LANGUAGE: LANGUAGE_PERMISSIONS,
444
+ TRANSLATION_KEY: TRANSLATION_KEY_PERMISSIONS,
445
+ TRANSLATION: TRANSLATION_PERMISSIONS,
446
+ // Task Manager
447
+ TASK_BOARD: TASK_BOARD_PERMISSIONS,
448
+ TASK_LIST: TASK_LIST_PERMISSIONS,
449
+ TASK: TASK_PERMISSIONS,
450
+ TASK_LABEL: TASK_LABEL_PERMISSIONS,
451
+ TASK_COMMENT: TASK_COMMENT_PERMISSIONS,
452
+ // AI Assistant
453
+ AI_ASSISTANT: AI_ASSISTANT_PERMISSIONS
454
+ };
455
+
456
+ __webpack_require__.d(__webpack_exports__, {
457
+ }, {
458
+ BC: USER_PERMISSIONS,
459
+ Bz: AI_ASSISTANT_PERMISSIONS,
460
+ Em: STORAGE_CONFIG_PERMISSIONS,
461
+ GT: FORM_RESULT_PERMISSIONS,
462
+ Jj: PERMISSIONS,
463
+ N3: TRANSLATION_KEY_PERMISSIONS,
464
+ ON: TASK_LIST_PERMISSIONS,
465
+ P0: ROLE_ACTION_PERMISSIONS,
466
+ Q5: LANGUAGE_PERMISSIONS,
467
+ S6: FILE_PERMISSIONS,
468
+ T: TASK_PERMISSIONS,
469
+ UB: UPLOAD_CONFIG_PERMISSIONS,
470
+ UG: TASK_LABEL_PERMISSIONS,
471
+ Ub: EVENT_PERMISSIONS,
472
+ V0: EMAIL_CONFIG_PERMISSIONS,
473
+ Wc: FORM_PERMISSIONS,
474
+ Y3: TASK_BOARD_PERMISSIONS,
475
+ Y7: ACTION_PERMISSIONS,
476
+ _X: USER_ACTION_PERMISSIONS,
477
+ aO: COMPANY_ACTION_PERMISSIONS,
478
+ fS: TRANSLATION_PERMISSIONS,
479
+ l3: SOCIAL_AUTH_CONFIG_PERMISSIONS,
480
+ mV: ROLE_PERMISSIONS,
481
+ rH: NOTIFICATION_PERMISSIONS,
482
+ t$: COMPANY_PERMISSIONS,
483
+ w7: USER_ROLE_PERMISSIONS,
484
+ wA: BRANCH_PERMISSIONS,
485
+ wM: FOLDER_PERMISSIONS,
486
+ z$: EMAIL_TEMPLATE_PERMISSIONS,
487
+ zd: TASK_COMMENT_PERMISSIONS
488
+ });
489
+
490
+
491
+ },
492
+ 374(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
493
+ /* import */ var _nestjs_common__rspack_import_0 = __webpack_require__(157);
494
+ /* import */ var _constants_message_keys_js__rspack_import_1 = __webpack_require__(389);
495
+
496
+
497
+ class PermissionSystemUnavailableException extends _nestjs_common__rspack_import_0.InternalServerErrorException {
498
+ constructor(){
499
+ super({
500
+ success: false,
501
+ message: 'Permission system temporarily unavailable',
502
+ messageKey: _constants_message_keys_js__rspack_import_1/* .ERROR_MESSAGES.PERMISSION_SYSTEM_UNAVAILABLE */.UU.PERMISSION_SYSTEM_UNAVAILABLE
503
+ });
504
+ }
505
+ }
506
+ class InsufficientPermissionsException extends _nestjs_common__rspack_import_0.ForbiddenException {
507
+ constructor(missingPermissions, operator = 'AND'){
508
+ const messageKey = operator === 'OR' ? _constants_message_keys_js__rspack_import_1/* .ERROR_MESSAGES.INSUFFICIENT_PERMISSIONS_OR */.UU.INSUFFICIENT_PERMISSIONS_OR : _constants_message_keys_js__rspack_import_1/* .ERROR_MESSAGES.INSUFFICIENT_PERMISSIONS */.UU.INSUFFICIENT_PERMISSIONS;
509
+ super({
510
+ success: false,
511
+ message: 'Insufficient permissions',
512
+ messageKey,
513
+ messageVariables: {
514
+ permissions: missingPermissions.join(', ')
515
+ },
516
+ missingPermissions,
517
+ operator
518
+ });
519
+ }
520
+ }
521
+ class NoPermissionsFoundException extends _nestjs_common__rspack_import_0.ForbiddenException {
522
+ constructor(){
523
+ super({
524
+ success: false,
525
+ message: 'No permissions found',
526
+ messageKey: _constants_message_keys_js__rspack_import_1/* .ERROR_MESSAGES.NO_PERMISSIONS_FOUND */.UU.NO_PERMISSIONS_FOUND
527
+ });
528
+ }
529
+ }
530
+
531
+ __webpack_require__.d(__webpack_exports__, {
532
+ GS: () => (PermissionSystemUnavailableException),
533
+ d$: () => (NoPermissionsFoundException),
534
+ z8: () => (InsufficientPermissionsException)
535
+ });
536
+
537
+
538
+ },
539
+ 510(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
540
+
541
+ // EXPORTS
542
+ __webpack_require__.d(__webpack_exports__, {
543
+ TD: () => (/* reexport */ JwtAuthGuard),
544
+ Zb: () => (/* reexport */ OptionalJwtGuard),
545
+ LQ: () => (/* reexport */ PermissionGuard)
546
+ });
547
+
548
+ // EXTERNAL MODULE: ./projects/nestjs-shared/src/constants/index.ts
549
+ var constants = __webpack_require__(43);
550
+ // EXTERNAL MODULE: ./projects/nestjs-shared/src/constants/message-keys.ts
551
+ var message_keys = __webpack_require__(389);
552
+ // EXTERNAL MODULE: external "@nestjs/common"
553
+ var common_ = __webpack_require__(157);
554
+ // EXTERNAL MODULE: external "@nestjs/core"
555
+ var core_ = __webpack_require__(75);
556
+ ;// CONCATENATED MODULE: external "@nestjs/passport"
557
+
558
+ ;// CONCATENATED MODULE: ./projects/nestjs-shared/src/guards/jwt-auth.guard.ts
559
+ function _ts_decorate(decorators, target, key, desc) {
560
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
561
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
562
+ r = Reflect.decorate(decorators, target, key, desc);
563
+ } else {
564
+ for(var i = decorators.length - 1; i >= 0; i--){
565
+ if (d = decorators[i]) {
566
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
567
+ }
568
+ }
569
+ }
570
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
571
+ }
572
+ function _ts_metadata(metadataKey, metadataValue) {
573
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
574
+ return Reflect.metadata(metadataKey, metadataValue);
575
+ }
576
+ }
577
+ function _ts_param(paramIndex, decorator) {
578
+ return function(target, key) {
579
+ decorator(target, key, paramIndex);
580
+ };
581
+ }
582
+
583
+
584
+
585
+
586
+ class JwtAuthGuard extends (0,__rspack_external__nestjs_passport_18907953.AuthGuard)('jwt') {
587
+ reflector;
588
+ // NOTE: @Inject(Reflector) required for bundled code - external classes need explicit injection
589
+ constructor(reflector){
590
+ super(), this.reflector = reflector;
591
+ }
592
+ canActivate(context) {
593
+ // Check if route is marked as public
594
+ const isPublic = this.reflector.getAllAndOverride(constants/* .IS_PUBLIC_KEY */.jA, [
595
+ context.getHandler(),
596
+ context.getClass()
597
+ ]);
598
+ if (isPublic) {
599
+ return true;
600
+ }
601
+ return super.canActivate(context);
602
+ }
603
+ handleRequest(err, user) {
604
+ if (err || !user) {
605
+ throw err || new common_.UnauthorizedException({
606
+ message: 'Invalid or expired token',
607
+ messageKey: message_keys/* .AUTH_MESSAGES.TOKEN_INVALID */.mK.TOKEN_INVALID
608
+ });
609
+ }
610
+ return user;
611
+ }
612
+ }
613
+ JwtAuthGuard = _ts_decorate([
614
+ (0,common_.Injectable)(),
615
+ _ts_param(0, (0,common_.Inject)(core_.Reflector)),
616
+ _ts_metadata("design:type", Function),
617
+ _ts_metadata("design:paramtypes", [
618
+ typeof core_.Reflector === "undefined" ? Object : core_.Reflector
619
+ ])
620
+ ], JwtAuthGuard);
621
+
622
+ ;// CONCATENATED MODULE: ./projects/nestjs-shared/src/guards/optional-jwt-auth.guard.ts
623
+ function optional_jwt_auth_guard_ts_decorate(decorators, target, key, desc) {
624
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
625
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
626
+ r = Reflect.decorate(decorators, target, key, desc);
627
+ } else {
628
+ for(var i = decorators.length - 1; i >= 0; i--){
629
+ if (d = decorators[i]) {
630
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
631
+ }
632
+ }
633
+ }
634
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
635
+ }
636
+ function optional_jwt_auth_guard_ts_metadata(metadataKey, metadataValue) {
637
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
638
+ return Reflect.metadata(metadataKey, metadataValue);
639
+ }
640
+ }
641
+ function optional_jwt_auth_guard_ts_param(paramIndex, decorator) {
642
+ return function(target, key) {
643
+ decorator(target, key, paramIndex);
644
+ };
645
+ }
646
+
647
+
648
+
649
+
650
+ class OptionalJwtGuard extends (0,__rspack_external__nestjs_passport_18907953.AuthGuard)('jwt') {
651
+ reflector;
652
+ constructor(reflector){
653
+ super(), this.reflector = reflector;
654
+ }
655
+ canActivate(context) {
656
+ const isPublic = this.reflector.getAllAndOverride(constants/* .IS_PUBLIC_KEY */.jA, [
657
+ context.getHandler(),
658
+ context.getClass()
659
+ ]);
660
+ if (isPublic) {
661
+ return true;
662
+ }
663
+ return super.canActivate(context);
664
+ }
665
+ handleRequest(_err, user) {
666
+ return user || undefined;
667
+ }
668
+ }
669
+ OptionalJwtGuard = optional_jwt_auth_guard_ts_decorate([
670
+ (0,common_.Injectable)(),
671
+ optional_jwt_auth_guard_ts_param(0, (0,common_.Inject)(core_.Reflector)),
672
+ optional_jwt_auth_guard_ts_metadata("design:type", Function),
673
+ optional_jwt_auth_guard_ts_metadata("design:paramtypes", [
674
+ typeof core_.Reflector === "undefined" ? Object : core_.Reflector
675
+ ])
676
+ ], OptionalJwtGuard);
677
+
678
+ // EXTERNAL MODULE: ./projects/nestjs-shared/src/exceptions/permission.exception.ts
679
+ var permission_exception = __webpack_require__(374);
680
+ // EXTERNAL MODULE: ./projects/nestjs-shared/src/modules/shared-permission-cache/shared-permission-cache.service.ts
681
+ var shared_permission_cache_service = __webpack_require__(657);
682
+ ;// CONCATENATED MODULE: ./projects/nestjs-shared/src/guards/permission.guard.ts
683
+ function permission_guard_ts_decorate(decorators, target, key, desc) {
684
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
685
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
686
+ r = Reflect.decorate(decorators, target, key, desc);
687
+ } else {
688
+ for(var i = decorators.length - 1; i >= 0; i--){
689
+ if (d = decorators[i]) {
690
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
691
+ }
692
+ }
693
+ }
694
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
695
+ }
696
+ function permission_guard_ts_metadata(metadataKey, metadataValue) {
697
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
698
+ return Reflect.metadata(metadataKey, metadataValue);
699
+ }
700
+ }
701
+ function permission_guard_ts_param(paramIndex, decorator) {
702
+ return function(target, key) {
703
+ decorator(target, key, paramIndex);
704
+ };
705
+ }
706
+
707
+
708
+
709
+
710
+
711
+ class PermissionGuard {
712
+ reflector;
713
+ permissionCacheService;
714
+ constructor(reflector, permissionCacheService){
715
+ this.reflector = reflector;
716
+ this.permissionCacheService = permissionCacheService;
717
+ }
718
+ async canActivate(context) {
719
+ const isPublic = this.reflector.getAllAndOverride(constants/* .IS_PUBLIC_KEY */.jA, [
720
+ context.getHandler(),
721
+ context.getClass()
722
+ ]);
723
+ if (isPublic) return true;
724
+ const permissionConfig = this.reflector.getAllAndOverride(constants/* .PERMISSIONS_KEY */.N7, [
725
+ context.getHandler(),
726
+ context.getClass()
727
+ ]);
728
+ if (!permissionConfig) return true;
729
+ const request = context.switchToHttp().getRequest();
730
+ const user = request.user;
731
+ if (!user) throw new common_.UnauthorizedException({
732
+ message: 'Authentication required',
733
+ messageKey: message_keys/* .AUTH_MESSAGES.TOKEN_REQUIRED */.mK.TOKEN_REQUIRED
734
+ });
735
+ if (!this.permissionCacheService?.isCacheConfigured()) {
736
+ throw new permission_exception/* .PermissionSystemUnavailableException */.GS();
737
+ }
738
+ const permissionService = this.permissionCacheService;
739
+ const userPermissions = await permissionService.getPermissions({
740
+ userId: user.id,
741
+ companyId: user.companyId,
742
+ branchId: user.branchId
743
+ });
744
+ if (!userPermissions || userPermissions.length === 0) {
745
+ throw new permission_exception/* .NoPermissionsFoundException */.d$();
746
+ }
747
+ const logicNode = this.normalizeToLogicNode(permissionConfig);
748
+ if (!logicNode) return true;
749
+ const result = this.evaluateLogicNode(logicNode, userPermissions, permissionService);
750
+ if (!result.passed) {
751
+ throw new permission_exception/* .InsufficientPermissionsException */.z8(result.missingPermissions, result.operator);
752
+ }
753
+ return true;
754
+ }
755
+ normalizeToLogicNode(config) {
756
+ // string - single permission
757
+ if (typeof config === 'string') {
758
+ return config ? {
759
+ type: 'action',
760
+ actionId: config
761
+ } : null;
762
+ }
763
+ // string[] - treat as AND of multiple permissions
764
+ if (Array.isArray(config)) {
765
+ if (config.length === 0) return null;
766
+ if (config.length === 1) return {
767
+ type: 'action',
768
+ actionId: config[0]
769
+ };
770
+ return {
771
+ type: 'group',
772
+ operator: 'AND',
773
+ children: config.map((p)=>({
774
+ type: 'action',
775
+ actionId: p
776
+ }))
777
+ };
778
+ }
779
+ // SimplePermissionConfig - { permissions: string[], operator: 'AND'|'OR' }
780
+ if ('permissions' in config && Array.isArray(config.permissions)) {
781
+ const simple = config;
782
+ if (simple.permissions.length === 0) return null;
783
+ if (simple.permissions.length === 1) return {
784
+ type: 'action',
785
+ actionId: simple.permissions[0]
786
+ };
787
+ return {
788
+ type: 'group',
789
+ operator: simple.operator || 'AND',
790
+ children: simple.permissions.map((p)=>({
791
+ type: 'action',
792
+ actionId: p
793
+ }))
794
+ };
795
+ }
796
+ // ILogicNode
797
+ return config;
798
+ }
799
+ evaluateLogicNode(node, userPermissions, permissionService) {
800
+ if (node.type === 'action') {
801
+ const passed = permissionService.matchPermission(userPermissions, node.actionId);
802
+ return {
803
+ passed,
804
+ missingPermissions: passed ? [] : [
805
+ node.actionId
806
+ ],
807
+ operator: 'AND'
808
+ };
809
+ }
810
+ // Group node
811
+ const { operator, children } = node;
812
+ // SECURITY: Fail-closed - deny access when no children configured
813
+ if (!children || children.length === 0) {
814
+ return {
815
+ passed: false,
816
+ missingPermissions: [],
817
+ operator
818
+ };
819
+ }
820
+ const results = [];
821
+ const missingPermissions = [];
822
+ for (const child of children){
823
+ const childResult = this.evaluateLogicNode(child, userPermissions, permissionService);
824
+ results.push(childResult.passed);
825
+ if (!childResult.passed) {
826
+ missingPermissions.push(...childResult.missingPermissions);
827
+ }
828
+ }
829
+ const passed = operator === 'OR' ? results.some((r)=>r) : results.every((r)=>r);
830
+ return {
831
+ passed,
832
+ missingPermissions: passed ? [] : missingPermissions,
833
+ operator
834
+ };
835
+ }
836
+ }
837
+ PermissionGuard = permission_guard_ts_decorate([
838
+ (0,common_.Injectable)(),
839
+ permission_guard_ts_param(0, (0,common_.Inject)(core_.Reflector)),
840
+ permission_guard_ts_param(1, (0,common_.Optional)()),
841
+ permission_guard_ts_param(1, (0,common_.Inject)(shared_permission_cache_service/* .SharedPermissionCacheService */.U)),
842
+ permission_guard_ts_metadata("design:type", Function),
843
+ permission_guard_ts_metadata("design:paramtypes", [
844
+ typeof core_.Reflector === "undefined" ? Object : core_.Reflector,
845
+ typeof shared_permission_cache_service/* .SharedPermissionCacheService */.U === "undefined" ? Object : shared_permission_cache_service/* .SharedPermissionCacheService */.U
846
+ ])
847
+ ], PermissionGuard);
848
+
849
+ ;// CONCATENATED MODULE: ./projects/nestjs-shared/src/guards/index.ts
850
+
851
+
852
+
853
+
854
+
855
+ },
856
+ 657(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
857
+ /* import */ var _nestjs_common__rspack_import_0 = __webpack_require__(157);
858
+ /* import */ var _classes_hybrid_cache_class_js__rspack_import_1 = __webpack_require__(375);
859
+ /* import */ var _constants_index_js__rspack_import_3 = __webpack_require__(43);
860
+ /* import */ var _utils_permission_cache_key_util_js__rspack_import_2 = __webpack_require__(199);
861
+ function _ts_decorate(decorators, target, key, desc) {
862
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
863
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
864
+ r = Reflect.decorate(decorators, target, key, desc);
865
+ } else {
866
+ for(var i = decorators.length - 1; i >= 0; i--){
867
+ if (d = decorators[i]) {
868
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
869
+ }
870
+ }
871
+ }
872
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
873
+ }
874
+ function _ts_metadata(metadataKey, metadataValue) {
875
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
876
+ return Reflect.metadata(metadataKey, metadataValue);
877
+ }
878
+ }
879
+ function _ts_param(paramIndex, decorator) {
880
+ return function(target, key) {
881
+ decorator(target, key, paramIndex);
882
+ };
883
+ }
884
+
885
+
886
+
887
+
888
+ class SharedPermissionCacheService {
889
+ cache;
890
+ config;
891
+ constructor(cache, config){
892
+ this.cache = cache;
893
+ this.config = {
894
+ enableCompanyFeature: false,
895
+ userPermissionKeyFormat: _utils_permission_cache_key_util_js__rspack_import_2/* .DEFAULT_USER_PERMISSION_KEY_FORMAT */.q6,
896
+ companyPermissionKeyFormat: _utils_permission_cache_key_util_js__rspack_import_2/* .DEFAULT_COMPANY_PERMISSION_KEY_FORMAT */.s8,
897
+ ...config
898
+ };
899
+ }
900
+ /** Read the cached permission codes for a user; empty array when cache is unavailable or unset */ async getPermissions(options) {
901
+ if (!this.cache) return [];
902
+ const cacheKey = (0,_utils_permission_cache_key_util_js__rspack_import_2/* .buildPermissionCacheKey */.nt)(options, this.config);
903
+ const cached = await this.cache.get(cacheKey);
904
+ if (!cached) return [];
905
+ return Array.isArray(cached) ? cached : cached.backendCodes || [];
906
+ }
907
+ /** Overwrite the cached permission codes for a user with a fixed list */ async setPermissions(options, permissions, ttl) {
908
+ if (!this.cache) return;
909
+ const cacheKey = (0,_utils_permission_cache_key_util_js__rspack_import_2/* .buildPermissionCacheKey */.nt)(options, this.config);
910
+ await this.cache.set(cacheKey, permissions, ttl);
911
+ }
912
+ /** Clear the cached permission codes for a user */ async clearPermissions(options) {
913
+ if (!this.cache) return;
914
+ const cacheKey = (0,_utils_permission_cache_key_util_js__rspack_import_2/* .buildPermissionCacheKey */.nt)(options, this.config);
915
+ await this.cache.del(cacheKey);
916
+ }
917
+ /** Check a single permission against the cached list, honoring `*` and `prefix.*` wildcards */ async hasPermission(options, requiredPermission) {
918
+ const permissions = await this.getPermissions(options);
919
+ return this.matchPermission(permissions, requiredPermission);
920
+ }
921
+ /** Whether a cache instance is wired up; false means permission checks can't be served at all */ isCacheConfigured() {
922
+ return !!this.cache;
923
+ }
924
+ /** Match an already-fetched permission list against a required permission, honoring `*` and `prefix.*` wildcards */ matchPermission(userPermissions, requiredPermission) {
925
+ if (userPermissions.includes(requiredPermission)) return true;
926
+ for (const permission of userPermissions){
927
+ if (permission === '*') return true;
928
+ if (permission.endsWith('.*') && requiredPermission.startsWith(permission.slice(0, -1))) {
929
+ return true;
930
+ }
931
+ }
932
+ return false;
933
+ }
934
+ }
935
+ SharedPermissionCacheService = _ts_decorate([
936
+ (0,_nestjs_common__rspack_import_0.Injectable)(),
937
+ _ts_param(0, (0,_nestjs_common__rspack_import_0.Optional)()),
938
+ _ts_param(0, (0,_nestjs_common__rspack_import_0.Inject)(_constants_index_js__rspack_import_3/* .CACHE_INSTANCE */.zl)),
939
+ _ts_param(1, (0,_nestjs_common__rspack_import_0.Optional)()),
940
+ _ts_param(1, (0,_nestjs_common__rspack_import_0.Inject)(_constants_index_js__rspack_import_3/* .PERMISSION_GUARD_CONFIG */.Lw)),
941
+ _ts_metadata("design:type", Function),
942
+ _ts_metadata("design:paramtypes", [
943
+ typeof _classes_hybrid_cache_class_js__rspack_import_1/* .HybridCache */.l === "undefined" ? Object : _classes_hybrid_cache_class_js__rspack_import_1/* .HybridCache */.l,
944
+ typeof PermissionGuardConfig === "undefined" ? Object : PermissionGuardConfig
945
+ ])
946
+ ], SharedPermissionCacheService);
947
+
948
+ __webpack_require__.d(__webpack_exports__, {
949
+ U: () => (SharedPermissionCacheService)
950
+ });
951
+
952
+
953
+ },
954
+ 199(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
955
+ /* import */ var _constants_index_js__rspack_import_0 = __webpack_require__(43);
956
+
957
+ const DEFAULT_USER_PERMISSION_KEY_FORMAT = `${_constants_index_js__rspack_import_0/* .PERMISSIONS_CACHE_PREFIX */.fG}:user:{userId}`;
958
+ const DEFAULT_COMPANY_PERMISSION_KEY_FORMAT = `${_constants_index_js__rspack_import_0/* .PERMISSIONS_CACHE_PREFIX */.fG}:company:{companyId}:branch:{branchId}:user:{userId}`;
959
+ /** Single source of truth for permission cache keys, shared by the guard (reader) and cache service (writer) so a config override can't desync them; company scope requires enableCompanyFeature, not just a companyId */ function buildPermissionCacheKey(options, config) {
960
+ const isCompanyScope = Boolean(config?.enableCompanyFeature && options.companyId);
961
+ if (isCompanyScope) {
962
+ return (config?.companyPermissionKeyFormat || DEFAULT_COMPANY_PERMISSION_KEY_FORMAT).replace('{userId}', options.userId).replace('{companyId}', options.companyId).replace('{branchId}', options.branchId || 'null');
963
+ }
964
+ return (config?.userPermissionKeyFormat || DEFAULT_USER_PERMISSION_KEY_FORMAT).replace('{userId}', options.userId);
965
+ }
966
+
967
+ __webpack_require__.d(__webpack_exports__, {
968
+ nt: () => (buildPermissionCacheKey)
969
+ }, {
970
+ q6: DEFAULT_USER_PERMISSION_KEY_FORMAT,
971
+ s8: DEFAULT_COMPANY_PERMISSION_KEY_FORMAT
972
+ });
973
+
974
+
975
+ },
976
+ 307(module) {
977
+
978
+ module.exports = __rspack_external__flusys_nestjs_core_config_197fa0a9;
979
+
980
+
981
+ },
982
+ 157(module) {
983
+
984
+ module.exports = __rspack_external__nestjs_common_a04939da;
985
+
986
+
987
+ },
988
+ 75(module) {
989
+
990
+ module.exports = __rspack_external__nestjs_core_d7b00a1a;
991
+
992
+
993
+ },
994
+
995
+ };
996
+ import { __webpack_require__ } from '../runtime.js';
997
+ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
998
+ import * as __rspack_chunk_1 from './index.js';
999
+ __webpack_require__.C(__rspack_chunk_1);
1000
+ var __webpack_exports__ = __webpack_exec__(510);var __webpack_exports__JwtAuthGuard = __webpack_exports__.TD;
1001
+ var __webpack_exports__OptionalJwtGuard = __webpack_exports__.Zb;
1002
+ var __webpack_exports__PermissionGuard = __webpack_exports__.LQ;
1003
+ export { __webpack_exports__JwtAuthGuard as JwtAuthGuard, __webpack_exports__OptionalJwtGuard as OptionalJwtGuard, __webpack_exports__PermissionGuard as PermissionGuard };