@flusys/nestjs-shared 7.0.2 → 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 (339) 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/constants/permissions.d.ts +12 -0
  15. package/decorators/api-response.decorator.d.ts +1 -1
  16. package/decorators/current-user.decorator.d.ts +1 -1
  17. package/decorators/index.d.ts +6 -6
  18. package/decorators/require-permission.decorator.d.ts +1 -1
  19. package/dtos/filter-and-pagination.dto.d.ts +1 -1
  20. package/dtos/index.d.ts +6 -6
  21. package/entities/index.d.ts +3 -3
  22. package/enums/index.d.ts +3 -3
  23. package/exceptions/index.d.ts +2 -2
  24. package/fesm/470.js +2713 -0
  25. package/fesm/509.js +793 -0
  26. package/fesm/667.js +606 -0
  27. package/fesm/67.js +808 -0
  28. package/fesm/720.js +914 -0
  29. package/{cjs/classes/event-transports/rabbitmq-transport.optional.js → fesm/chunks/123.js} +78 -55
  30. package/fesm/{classes/event-transports/kafka-transport.optional.js → chunks/37.js} +74 -41
  31. package/fesm/classes/index.js +62 -12
  32. package/fesm/constants/index.js +445 -17
  33. package/fesm/decorators/index.js +341 -6
  34. package/fesm/dtos/index.js +23 -6
  35. package/fesm/entities/index.js +336 -3
  36. package/fesm/enums/index.js +57 -3
  37. package/fesm/exceptions/index.js +280 -2
  38. package/fesm/guards/index.js +1003 -3
  39. package/fesm/index.js +1524 -14
  40. package/fesm/interceptors/index.js +924 -5
  41. package/fesm/interfaces/index.js +57 -11
  42. package/fesm/middlewares/index.js +33 -1
  43. package/fesm/modules/index.js +432 -9
  44. package/fesm/runtime.js +134 -0
  45. package/fesm/utils/index.js +1045 -8
  46. package/filters/global-exception.filter.d.ts +1 -1
  47. package/filters/index.d.ts +1 -1
  48. package/guards/index.d.ts +3 -3
  49. package/guards/jwt-auth.guard.d.ts +1 -1
  50. package/guards/optional-jwt-auth.guard.d.ts +1 -1
  51. package/guards/permission.guard.d.ts +2 -2
  52. package/index.d.ts +14 -14
  53. package/interceptors/delete-empty-id-from-body.interceptor.d.ts +1 -1
  54. package/interceptors/idempotency.interceptor.d.ts +2 -2
  55. package/interceptors/index.d.ts +5 -5
  56. package/interceptors/response-meta.interceptor.d.ts +1 -1
  57. package/interceptors/set-user-field-on-body.interceptor.d.ts +1 -1
  58. package/interceptors/slug.interceptor.d.ts +2 -2
  59. package/interfaces/ai-assistant-adapter.interface.d.ts +1 -1
  60. package/interfaces/api.interface.d.ts +2 -2
  61. package/interfaces/datasource.interface.d.ts +1 -1
  62. package/interfaces/event-manager-adapter.interface.d.ts +2 -2
  63. package/interfaces/index.d.ts +11 -11
  64. package/interfaces/module-config.interface.d.ts +1 -1
  65. package/interfaces/notification-adapter.interface.d.ts +1 -1
  66. package/middlewares/index.d.ts +1 -1
  67. package/middlewares/logger.middleware.d.ts +2 -2
  68. package/modules/cache/cache.module.d.ts +1 -1
  69. package/modules/datasource/index.d.ts +1 -1
  70. package/modules/datasource/multi-tenant-datasource.service.d.ts +4 -4
  71. package/modules/event-bus/event-bus.explorer.d.ts +2 -2
  72. package/modules/event-bus/event-bus.module.d.ts +2 -2
  73. package/modules/event-bus/module-events.provider.d.ts +1 -1
  74. package/modules/index.d.ts +9 -9
  75. package/modules/shared-permission-cache/shared-permission-cache.service.d.ts +3 -3
  76. package/modules/utils/utils.service.d.ts +1 -1
  77. package/package.json +30 -44
  78. package/utils/index.d.ts +8 -8
  79. package/utils/permission-cache-key.util.d.ts +1 -1
  80. package/utils/query-helpers.util.d.ts +2 -2
  81. package/utils/request.util.d.ts +1 -1
  82. package/cjs/classes/api-controller.class.js +0 -728
  83. package/cjs/classes/api-controller.class.spec.js +0 -684
  84. package/cjs/classes/api-service.class.js +0 -631
  85. package/cjs/classes/api-service.class.spec.js +0 -1137
  86. package/cjs/classes/disabled-event-bus.class.js +0 -15
  87. package/cjs/classes/disabled-event-bus.class.spec.js +0 -40
  88. package/cjs/classes/domain-event.publisher.js +0 -76
  89. package/cjs/classes/domain-event.publisher.spec.js +0 -234
  90. package/cjs/classes/event-bus.registry.js +0 -68
  91. package/cjs/classes/event-bus.registry.spec.js +0 -141
  92. package/cjs/classes/event-transports/event-transport.registry.js +0 -41
  93. package/cjs/classes/event-transports/event-transport.registry.spec.js +0 -31
  94. package/cjs/classes/event-transports/index.js +0 -23
  95. package/cjs/classes/event-transports/kafka-transport.optional.js +0 -151
  96. package/cjs/classes/event-transports/kafka-transport.optional.spec.js +0 -198
  97. package/cjs/classes/event-transports/memory-transport.js +0 -53
  98. package/cjs/classes/event-transports/memory-transport.spec.js +0 -57
  99. package/cjs/classes/event-transports/rabbitmq-transport.optional.spec.js +0 -255
  100. package/cjs/classes/handle-custome-db.js +0 -37
  101. package/cjs/classes/handle-custome-db.spec.js +0 -82
  102. package/cjs/classes/hybrid-cache.class.js +0 -96
  103. package/cjs/classes/hybrid-cache.class.spec.js +0 -168
  104. package/cjs/classes/hybrid-event-bus.class.js +0 -281
  105. package/cjs/classes/hybrid-event-bus.class.spec.js +0 -218
  106. package/cjs/classes/index.js +0 -28
  107. package/cjs/classes/winston.logger.class.js +0 -274
  108. package/cjs/classes/winston.logger.class.spec.js +0 -330
  109. package/cjs/constants/index.js +0 -88
  110. package/cjs/constants/message-keys.js +0 -68
  111. package/cjs/constants/permissions.js +0 -297
  112. package/cjs/decorators/api-response.decorator.js +0 -52
  113. package/cjs/decorators/api-response.decorator.spec.js +0 -126
  114. package/cjs/decorators/current-user.decorator.js +0 -16
  115. package/cjs/decorators/current-user.decorator.spec.js +0 -74
  116. package/cjs/decorators/index.js +0 -23
  117. package/cjs/decorators/log-action.decorator.js +0 -149
  118. package/cjs/decorators/log-action.decorator.spec.js +0 -353
  119. package/cjs/decorators/on-domain-event.decorator.js +0 -13
  120. package/cjs/decorators/on-domain-event.decorator.spec.js +0 -50
  121. package/cjs/decorators/public.decorator.js +0 -13
  122. package/cjs/decorators/public.decorator.spec.js +0 -50
  123. package/cjs/decorators/require-permission.decorator.js +0 -32
  124. package/cjs/decorators/require-permission.decorator.spec.js +0 -147
  125. package/cjs/dtos/delete.dto.js +0 -92
  126. package/cjs/dtos/filter-and-pagination.dto.js +0 -164
  127. package/cjs/dtos/get-by-ids.dto.js +0 -65
  128. package/cjs/dtos/identity-response.dto.js +0 -108
  129. package/cjs/dtos/index.js +0 -23
  130. package/cjs/dtos/pagination.dto.js +0 -67
  131. package/cjs/dtos/response-payload.dto.js +0 -369
  132. package/cjs/entities/identity.js +0 -100
  133. package/cjs/entities/index.js +0 -20
  134. package/cjs/entities/raw-type.js +0 -4
  135. package/cjs/entities/user-root.js +0 -189
  136. package/cjs/enums/index.js +0 -20
  137. package/cjs/enums/notification-type.enum.js +0 -17
  138. package/cjs/enums/participant-status.enum.js +0 -17
  139. package/cjs/enums/recurrence-type.enum.js +0 -18
  140. package/cjs/exceptions/base-app.exception.js +0 -151
  141. package/cjs/exceptions/base-app.exception.spec.js +0 -157
  142. package/cjs/exceptions/index.js +0 -19
  143. package/cjs/exceptions/permission.exception.js +0 -56
  144. package/cjs/exceptions/permission.exception.spec.js +0 -82
  145. package/cjs/filters/global-exception.filter.js +0 -279
  146. package/cjs/filters/global-exception.filter.spec.js +0 -440
  147. package/cjs/filters/index.js +0 -18
  148. package/cjs/guards/index.js +0 -20
  149. package/cjs/guards/jwt-auth.guard.js +0 -75
  150. package/cjs/guards/jwt-auth.guard.spec.js +0 -75
  151. package/cjs/guards/optional-jwt-auth.guard.js +0 -67
  152. package/cjs/guards/optional-jwt-auth.guard.spec.js +0 -55
  153. package/cjs/guards/permission.guard.js +0 -179
  154. package/cjs/guards/permission.guard.spec.js +0 -373
  155. package/cjs/index.js +0 -31
  156. package/cjs/interceptors/delete-empty-id-from-body.interceptor.js +0 -40
  157. package/cjs/interceptors/delete-empty-id-from-body.interceptor.spec.js +0 -107
  158. package/cjs/interceptors/idempotency.interceptor.js +0 -96
  159. package/cjs/interceptors/idempotency.interceptor.spec.js +0 -116
  160. package/cjs/interceptors/index.js +0 -22
  161. package/cjs/interceptors/response-meta.interceptor.js +0 -47
  162. package/cjs/interceptors/response-meta.interceptor.spec.js +0 -89
  163. package/cjs/interceptors/set-user-field-on-body.interceptor.js +0 -60
  164. package/cjs/interceptors/set-user-field-on-body.interceptor.spec.js +0 -128
  165. package/cjs/interceptors/slug.interceptor.js +0 -75
  166. package/cjs/interceptors/slug.interceptor.spec.js +0 -110
  167. package/cjs/interfaces/ai-assistant-adapter.interface.js +0 -24
  168. package/cjs/interfaces/api.interface.js +0 -4
  169. package/cjs/interfaces/datasource.interface.js +0 -4
  170. package/cjs/interfaces/event-bus.interface.js +0 -4
  171. package/cjs/interfaces/event-manager-adapter.interface.js +0 -11
  172. package/cjs/interfaces/identity.interface.js +0 -4
  173. package/cjs/interfaces/index.js +0 -28
  174. package/cjs/interfaces/logged-user-info.interface.js +0 -6
  175. package/cjs/interfaces/module-config.interface.js +0 -4
  176. package/cjs/interfaces/notification-adapter.interface.js +0 -11
  177. package/cjs/interfaces/permission-sync-adapter.interface.js +0 -11
  178. package/cjs/interfaces/permission.interface.js +0 -4
  179. package/cjs/middlewares/index.js +0 -18
  180. package/cjs/middlewares/logger.middleware.js +0 -264
  181. package/cjs/middlewares/logger.middleware.spec.js +0 -462
  182. package/cjs/modules/cache/cache.module.js +0 -39
  183. package/cjs/modules/cache/cache.module.spec.js +0 -48
  184. package/cjs/modules/datasource/index.js +0 -18
  185. package/cjs/modules/datasource/multi-tenant-datasource.service.js +0 -222
  186. package/cjs/modules/datasource/multi-tenant-datasource.service.spec.js +0 -381
  187. package/cjs/modules/event-bus/event-bus.explorer.js +0 -124
  188. package/cjs/modules/event-bus/event-bus.explorer.spec.js +0 -189
  189. package/cjs/modules/event-bus/event-bus.integration.spec.js +0 -253
  190. package/cjs/modules/event-bus/event-bus.module.js +0 -94
  191. package/cjs/modules/event-bus/event-bus.module.spec.js +0 -149
  192. package/cjs/modules/event-bus/module-events.provider.js +0 -39
  193. package/cjs/modules/event-bus/module-events.provider.spec.js +0 -56
  194. package/cjs/modules/index.js +0 -26
  195. package/cjs/modules/shared-permission-cache/shared-permission-cache.module.js +0 -32
  196. package/cjs/modules/shared-permission-cache/shared-permission-cache.service.js +0 -101
  197. package/cjs/modules/shared-permission-cache/shared-permission-cache.service.spec.js +0 -165
  198. package/cjs/modules/utils/utils.module.js +0 -32
  199. package/cjs/modules/utils/utils.service.js +0 -76
  200. package/cjs/modules/utils/utils.service.spec.js +0 -169
  201. package/cjs/utils/date-time.util.js +0 -94
  202. package/cjs/utils/date-time.util.spec.js +0 -84
  203. package/cjs/utils/event-pattern.util.js +0 -103
  204. package/cjs/utils/event-pattern.util.spec.js +0 -251
  205. package/cjs/utils/html-sanitizer.util.js +0 -64
  206. package/cjs/utils/html-sanitizer.util.spec.js +0 -76
  207. package/cjs/utils/index.js +0 -25
  208. package/cjs/utils/optional-module.util.js +0 -35
  209. package/cjs/utils/optional-module.util.spec.js +0 -14
  210. package/cjs/utils/permission-cache-key.util.js +0 -31
  211. package/cjs/utils/permission-cache-key.util.spec.js +0 -88
  212. package/cjs/utils/query-helpers.util.js +0 -60
  213. package/cjs/utils/query-helpers.util.spec.js +0 -209
  214. package/cjs/utils/request.util.js +0 -96
  215. package/cjs/utils/request.util.spec.js +0 -249
  216. package/cjs/utils/string.util.js +0 -63
  217. package/cjs/utils/string.util.spec.js +0 -63
  218. package/fesm/classes/api-controller.class.js +0 -718
  219. package/fesm/classes/api-controller.class.spec.js +0 -680
  220. package/fesm/classes/api-service.class.js +0 -621
  221. package/fesm/classes/api-service.class.spec.js +0 -1133
  222. package/fesm/classes/disabled-event-bus.class.js +0 -11
  223. package/fesm/classes/disabled-event-bus.class.spec.js +0 -36
  224. package/fesm/classes/domain-event.publisher.js +0 -63
  225. package/fesm/classes/domain-event.publisher.spec.js +0 -230
  226. package/fesm/classes/event-bus.registry.js +0 -64
  227. package/fesm/classes/event-bus.registry.spec.js +0 -137
  228. package/fesm/classes/event-transports/event-transport.registry.js +0 -35
  229. package/fesm/classes/event-transports/event-transport.registry.spec.js +0 -27
  230. package/fesm/classes/event-transports/index.js +0 -6
  231. package/fesm/classes/event-transports/kafka-transport.optional.spec.js +0 -194
  232. package/fesm/classes/event-transports/memory-transport.js +0 -49
  233. package/fesm/classes/event-transports/memory-transport.spec.js +0 -53
  234. package/fesm/classes/event-transports/rabbitmq-transport.optional.js +0 -174
  235. package/fesm/classes/event-transports/rabbitmq-transport.optional.spec.js +0 -251
  236. package/fesm/classes/handle-custome-db.js +0 -19
  237. package/fesm/classes/handle-custome-db.spec.js +0 -78
  238. package/fesm/classes/hybrid-cache.class.js +0 -81
  239. package/fesm/classes/hybrid-cache.class.spec.js +0 -164
  240. package/fesm/classes/hybrid-event-bus.class.js +0 -237
  241. package/fesm/classes/hybrid-event-bus.class.spec.js +0 -214
  242. package/fesm/classes/winston.logger.class.js +0 -228
  243. package/fesm/classes/winston.logger.class.spec.js +0 -327
  244. package/fesm/constants/message-keys.js +0 -49
  245. package/fesm/constants/permissions.js +0 -208
  246. package/fesm/decorators/api-response.decorator.js +0 -42
  247. package/fesm/decorators/api-response.decorator.spec.js +0 -122
  248. package/fesm/decorators/current-user.decorator.js +0 -18
  249. package/fesm/decorators/current-user.decorator.spec.js +0 -73
  250. package/fesm/decorators/log-action.decorator.js +0 -139
  251. package/fesm/decorators/log-action.decorator.spec.js +0 -349
  252. package/fesm/decorators/on-domain-event.decorator.js +0 -10
  253. package/fesm/decorators/on-domain-event.decorator.spec.js +0 -46
  254. package/fesm/decorators/public.decorator.js +0 -20
  255. package/fesm/decorators/public.decorator.spec.js +0 -46
  256. package/fesm/decorators/require-permission.decorator.js +0 -27
  257. package/fesm/decorators/require-permission.decorator.spec.js +0 -143
  258. package/fesm/dtos/delete.dto.js +0 -82
  259. package/fesm/dtos/filter-and-pagination.dto.js +0 -148
  260. package/fesm/dtos/get-by-ids.dto.js +0 -55
  261. package/fesm/dtos/identity-response.dto.js +0 -98
  262. package/fesm/dtos/pagination.dto.js +0 -57
  263. package/fesm/dtos/response-payload.dto.js +0 -336
  264. package/fesm/entities/identity.js +0 -90
  265. package/fesm/entities/raw-type.js +0 -1
  266. package/fesm/entities/user-root.js +0 -179
  267. package/fesm/enums/notification-type.enum.js +0 -7
  268. package/fesm/enums/participant-status.enum.js +0 -7
  269. package/fesm/enums/recurrence-type.enum.js +0 -8
  270. package/fesm/exceptions/base-app.exception.js +0 -115
  271. package/fesm/exceptions/base-app.exception.spec.js +0 -153
  272. package/fesm/exceptions/permission.exception.js +0 -35
  273. package/fesm/exceptions/permission.exception.spec.js +0 -78
  274. package/fesm/filters/global-exception.filter.js +0 -269
  275. package/fesm/filters/global-exception.filter.spec.js +0 -436
  276. package/fesm/filters/index.js +0 -1
  277. package/fesm/guards/jwt-auth.guard.js +0 -65
  278. package/fesm/guards/jwt-auth.guard.spec.js +0 -71
  279. package/fesm/guards/optional-jwt-auth.guard.js +0 -57
  280. package/fesm/guards/optional-jwt-auth.guard.spec.js +0 -51
  281. package/fesm/guards/permission.guard.js +0 -169
  282. package/fesm/guards/permission.guard.spec.js +0 -369
  283. package/fesm/interceptors/delete-empty-id-from-body.interceptor.js +0 -30
  284. package/fesm/interceptors/delete-empty-id-from-body.interceptor.spec.js +0 -103
  285. package/fesm/interceptors/idempotency.interceptor.js +0 -86
  286. package/fesm/interceptors/idempotency.interceptor.spec.js +0 -112
  287. package/fesm/interceptors/response-meta.interceptor.js +0 -37
  288. package/fesm/interceptors/response-meta.interceptor.spec.js +0 -85
  289. package/fesm/interceptors/set-user-field-on-body.interceptor.js +0 -39
  290. package/fesm/interceptors/set-user-field-on-body.interceptor.spec.js +0 -124
  291. package/fesm/interceptors/slug.interceptor.js +0 -65
  292. package/fesm/interceptors/slug.interceptor.spec.js +0 -106
  293. package/fesm/interfaces/ai-assistant-adapter.interface.js +0 -3
  294. package/fesm/interfaces/api.interface.js +0 -1
  295. package/fesm/interfaces/datasource.interface.js +0 -1
  296. package/fesm/interfaces/event-bus.interface.js +0 -1
  297. package/fesm/interfaces/event-manager-adapter.interface.js +0 -1
  298. package/fesm/interfaces/identity.interface.js +0 -1
  299. package/fesm/interfaces/logged-user-info.interface.js +0 -3
  300. package/fesm/interfaces/module-config.interface.js +0 -5
  301. package/fesm/interfaces/notification-adapter.interface.js +0 -1
  302. package/fesm/interfaces/permission-sync-adapter.interface.js +0 -1
  303. package/fesm/interfaces/permission.interface.js +0 -1
  304. package/fesm/middlewares/logger.middleware.js +0 -235
  305. package/fesm/middlewares/logger.middleware.spec.js +0 -459
  306. package/fesm/modules/cache/cache.module.js +0 -29
  307. package/fesm/modules/cache/cache.module.spec.js +0 -44
  308. package/fesm/modules/datasource/index.js +0 -1
  309. package/fesm/modules/datasource/multi-tenant-datasource.service.js +0 -212
  310. package/fesm/modules/datasource/multi-tenant-datasource.service.spec.js +0 -377
  311. package/fesm/modules/event-bus/event-bus.explorer.js +0 -114
  312. package/fesm/modules/event-bus/event-bus.explorer.spec.js +0 -185
  313. package/fesm/modules/event-bus/event-bus.integration.spec.js +0 -249
  314. package/fesm/modules/event-bus/event-bus.module.js +0 -84
  315. package/fesm/modules/event-bus/event-bus.module.spec.js +0 -145
  316. package/fesm/modules/event-bus/module-events.provider.js +0 -26
  317. package/fesm/modules/event-bus/module-events.provider.spec.js +0 -52
  318. package/fesm/modules/shared-permission-cache/shared-permission-cache.module.js +0 -22
  319. package/fesm/modules/shared-permission-cache/shared-permission-cache.service.js +0 -91
  320. package/fesm/modules/shared-permission-cache/shared-permission-cache.service.spec.js +0 -161
  321. package/fesm/modules/utils/utils.module.js +0 -22
  322. package/fesm/modules/utils/utils.service.js +0 -66
  323. package/fesm/modules/utils/utils.service.spec.js +0 -165
  324. package/fesm/utils/date-time.util.js +0 -70
  325. package/fesm/utils/date-time.util.spec.js +0 -80
  326. package/fesm/utils/event-pattern.util.js +0 -91
  327. package/fesm/utils/event-pattern.util.spec.js +0 -247
  328. package/fesm/utils/html-sanitizer.util.js +0 -69
  329. package/fesm/utils/html-sanitizer.util.spec.js +0 -72
  330. package/fesm/utils/optional-module.util.js +0 -25
  331. package/fesm/utils/optional-module.util.spec.js +0 -10
  332. package/fesm/utils/permission-cache-key.util.js +0 -10
  333. package/fesm/utils/permission-cache-key.util.spec.js +0 -84
  334. package/fesm/utils/query-helpers.util.js +0 -85
  335. package/fesm/utils/query-helpers.util.spec.js +0 -205
  336. package/fesm/utils/request.util.js +0 -81
  337. package/fesm/utils/request.util.spec.js +0 -245
  338. package/fesm/utils/string.util.js +0 -71
  339. 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 };