@minimaltech/node-infra 0.5.9-22 → 0.5.9-23

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 (560) hide show
  1. package/dist/base/applications/base.application.js +41 -28
  2. package/dist/base/applications/base.application.js.map +1 -0
  3. package/dist/base/applications/default.application.js +9 -2
  4. package/dist/base/applications/default.application.js.map +1 -0
  5. package/dist/base/applications/index.js +1 -0
  6. package/dist/base/applications/index.js.map +1 -0
  7. package/dist/base/base.component.js +3 -2
  8. package/dist/base/base.component.js.map +1 -0
  9. package/dist/base/base.helper.js +4 -4
  10. package/dist/base/base.helper.js.map +1 -0
  11. package/dist/base/base.provider.js +3 -2
  12. package/dist/base/base.provider.js.map +1 -0
  13. package/dist/base/base.sequence.js +27 -17
  14. package/dist/base/base.sequence.js.map +1 -0
  15. package/dist/base/controllers/common.js +10 -8
  16. package/dist/base/controllers/common.js.map +1 -0
  17. package/dist/base/controllers/crud.controller.js +68 -55
  18. package/dist/base/controllers/crud.controller.js.map +1 -0
  19. package/dist/base/controllers/express-request-handler.js +1 -2
  20. package/dist/base/controllers/express-request-handler.js.map +1 -0
  21. package/dist/base/controllers/index.js +1 -0
  22. package/dist/base/controllers/index.js.map +1 -0
  23. package/dist/base/controllers/kv.controller.js +19 -7
  24. package/dist/base/controllers/kv.controller.js.map +1 -0
  25. package/dist/base/controllers/relational.controller.d.ts +3 -1
  26. package/dist/base/controllers/relational.controller.js +58 -40
  27. package/dist/base/controllers/relational.controller.js.map +1 -0
  28. package/dist/base/controllers/service-crud.controller.js +47 -46
  29. package/dist/base/controllers/service-crud.controller.js.map +1 -0
  30. package/dist/base/datasources/base.datasource.js +1 -1
  31. package/dist/base/datasources/base.datasource.js.map +1 -0
  32. package/dist/base/datasources/index.js +1 -0
  33. package/dist/base/datasources/index.js.map +1 -0
  34. package/dist/base/datasources/types.js +1 -0
  35. package/dist/base/datasources/types.js.map +1 -0
  36. package/dist/base/index.js +1 -0
  37. package/dist/base/index.js.map +1 -0
  38. package/dist/base/loopback/@lb/auth/index.js +1 -0
  39. package/dist/base/loopback/@lb/auth/index.js.map +1 -0
  40. package/dist/base/loopback/@lb/core/index.js +2 -0
  41. package/dist/base/loopback/@lb/core/index.js.map +1 -0
  42. package/dist/base/loopback/@lb/repository/index.js +2 -0
  43. package/dist/base/loopback/@lb/repository/index.js.map +1 -0
  44. package/dist/base/loopback/@lb/rest/index.js +1 -0
  45. package/dist/base/loopback/@lb/rest/index.js.map +1 -0
  46. package/dist/base/loopback/authentication/index.js +3 -0
  47. package/dist/base/loopback/authentication/index.js.map +1 -0
  48. package/dist/base/loopback/authorization/index.js +1 -0
  49. package/dist/base/loopback/authorization/index.js.map +1 -0
  50. package/dist/base/loopback/boot/index.js +1 -0
  51. package/dist/base/loopback/boot/index.js.map +1 -0
  52. package/dist/base/loopback/core/index.js +1 -0
  53. package/dist/base/loopback/core/index.js.map +1 -0
  54. package/dist/base/loopback/filter/index.js +3 -0
  55. package/dist/base/loopback/filter/index.js.map +1 -0
  56. package/dist/base/loopback/health-check/index.js +1 -0
  57. package/dist/base/loopback/health-check/index.js.map +1 -0
  58. package/dist/base/loopback/http-server/index.js +3 -0
  59. package/dist/base/loopback/http-server/index.js.map +1 -0
  60. package/dist/base/loopback/metadata/index.js +1 -0
  61. package/dist/base/loopback/metadata/index.js.map +1 -0
  62. package/dist/base/loopback/repository/index.js +1 -0
  63. package/dist/base/loopback/repository/index.js.map +1 -0
  64. package/dist/base/loopback/rest/index.js +1 -0
  65. package/dist/base/loopback/rest/index.js.map +1 -0
  66. package/dist/base/loopback/security/index.js +1 -0
  67. package/dist/base/loopback/security/index.js.map +1 -0
  68. package/dist/base/loopback/service-proxy/index.js +1 -0
  69. package/dist/base/loopback/service-proxy/index.js.map +1 -0
  70. package/dist/base/models/base.model.d.ts +7 -0
  71. package/dist/base/models/base.model.js +24 -5
  72. package/dist/base/models/base.model.js.map +1 -0
  73. package/dist/base/models/index.js +1 -0
  74. package/dist/base/models/index.js.map +1 -0
  75. package/dist/base/repositories/base.repository.d.ts +3 -0
  76. package/dist/base/repositories/base.repository.js +25 -5
  77. package/dist/base/repositories/base.repository.js.map +1 -0
  78. package/dist/base/repositories/index.js +1 -0
  79. package/dist/base/repositories/index.js.map +1 -0
  80. package/dist/base/repositories/relations/has-many-polymorphic/decorator.d.ts +8 -0
  81. package/dist/base/repositories/relations/has-many-polymorphic/decorator.js +11 -11
  82. package/dist/base/repositories/relations/has-many-polymorphic/decorator.js.map +1 -0
  83. package/dist/base/repositories/relations/has-many-polymorphic/factory.d.ts +9 -0
  84. package/dist/base/repositories/relations/has-many-polymorphic/factory.js +31 -12
  85. package/dist/base/repositories/relations/has-many-polymorphic/factory.js.map +1 -0
  86. package/dist/base/repositories/relations/has-many-polymorphic/index.js +1 -0
  87. package/dist/base/repositories/relations/has-many-polymorphic/index.js.map +1 -0
  88. package/dist/base/repositories/relations/has-many-polymorphic/types.js +1 -0
  89. package/dist/base/repositories/relations/has-many-polymorphic/types.js.map +1 -0
  90. package/dist/base/repositories/relations/index.js +1 -0
  91. package/dist/base/repositories/relations/index.js.map +1 -0
  92. package/dist/base/repositories/searchable-tz-crud.repository.js +161 -129
  93. package/dist/base/repositories/searchable-tz-crud.repository.js.map +1 -0
  94. package/dist/base/repositories/tz-crud.repository.js +59 -23
  95. package/dist/base/repositories/tz-crud.repository.js.map +1 -0
  96. package/dist/base/services/base-crud.service.js +10 -6
  97. package/dist/base/services/base-crud.service.js.map +1 -0
  98. package/dist/base/services/base.service.js +3 -2
  99. package/dist/base/services/base.service.js.map +1 -0
  100. package/dist/base/services/index.js +1 -0
  101. package/dist/base/services/index.js.map +1 -0
  102. package/dist/common/constants.js +90 -81
  103. package/dist/common/constants.js.map +1 -0
  104. package/dist/common/environments.js +26 -25
  105. package/dist/common/environments.js.map +1 -0
  106. package/dist/common/index.js +1 -0
  107. package/dist/common/index.js.map +1 -0
  108. package/dist/common/keys.js +3 -2
  109. package/dist/common/keys.js.map +1 -0
  110. package/dist/common/statuses.js +32 -28
  111. package/dist/common/statuses.js.map +1 -0
  112. package/dist/common/types.d.ts +3 -0
  113. package/dist/common/types.js +1 -0
  114. package/dist/common/types.js.map +1 -0
  115. package/dist/components/authenticate/common/constants.js +14 -11
  116. package/dist/components/authenticate/common/constants.js.map +1 -0
  117. package/dist/components/authenticate/common/index.js +1 -0
  118. package/dist/components/authenticate/common/index.js.map +1 -0
  119. package/dist/components/authenticate/common/keys.js +8 -7
  120. package/dist/components/authenticate/common/keys.js.map +1 -0
  121. package/dist/components/authenticate/common/types.js +4 -11
  122. package/dist/components/authenticate/common/types.js.map +1 -0
  123. package/dist/components/authenticate/component.js +29 -20
  124. package/dist/components/authenticate/component.js.map +1 -0
  125. package/dist/components/authenticate/controllers/auth.controller.js +12 -13
  126. package/dist/components/authenticate/controllers/auth.controller.js.map +1 -0
  127. package/dist/components/authenticate/controllers/index.js +1 -0
  128. package/dist/components/authenticate/controllers/index.js.map +1 -0
  129. package/dist/components/authenticate/controllers/oauth2.controller.js +21 -18
  130. package/dist/components/authenticate/controllers/oauth2.controller.js.map +1 -0
  131. package/dist/components/authenticate/index.js +1 -0
  132. package/dist/components/authenticate/index.js.map +1 -0
  133. package/dist/components/authenticate/middleware.js +36 -25
  134. package/dist/components/authenticate/middleware.js.map +1 -0
  135. package/dist/components/authenticate/models/index.js +1 -0
  136. package/dist/components/authenticate/models/index.js.map +1 -0
  137. package/dist/components/authenticate/models/oauth2-client.model.js +4 -8
  138. package/dist/components/authenticate/models/oauth2-client.model.js.map +1 -0
  139. package/dist/components/authenticate/models/oauth2-scope.model.js +1 -4
  140. package/dist/components/authenticate/models/oauth2-scope.model.js.map +1 -0
  141. package/dist/components/authenticate/models/oauth2-token.model.js +1 -7
  142. package/dist/components/authenticate/models/oauth2-token.model.js.map +1 -0
  143. package/dist/components/authenticate/oauth2-handlers/authorization-code.handler.js +6 -4
  144. package/dist/components/authenticate/oauth2-handlers/authorization-code.handler.js.map +1 -0
  145. package/dist/components/authenticate/oauth2-handlers/base.js +111 -95
  146. package/dist/components/authenticate/oauth2-handlers/base.js.map +1 -0
  147. package/dist/components/authenticate/oauth2-handlers/client-credential.handler.js +4 -2
  148. package/dist/components/authenticate/oauth2-handlers/client-credential.handler.js.map +1 -0
  149. package/dist/components/authenticate/oauth2-handlers/index.js +1 -0
  150. package/dist/components/authenticate/oauth2-handlers/index.js.map +1 -0
  151. package/dist/components/authenticate/oauth2-handlers/oauth2.js +3 -3
  152. package/dist/components/authenticate/oauth2-handlers/oauth2.js.map +1 -0
  153. package/dist/components/authenticate/oauth2-handlers/password.handler.js +1 -0
  154. package/dist/components/authenticate/oauth2-handlers/password.handler.js.map +1 -0
  155. package/dist/components/authenticate/repositories/index.js +1 -0
  156. package/dist/components/authenticate/repositories/index.js.map +1 -0
  157. package/dist/components/authenticate/repositories/oauth2.repository.js +1 -2
  158. package/dist/components/authenticate/repositories/oauth2.repository.js.map +1 -0
  159. package/dist/components/authenticate/services/basic-token.service.js +30 -18
  160. package/dist/components/authenticate/services/basic-token.service.js.map +1 -0
  161. package/dist/components/authenticate/services/basic.strategy.js +18 -7
  162. package/dist/components/authenticate/services/basic.strategy.js.map +1 -0
  163. package/dist/components/authenticate/services/index.js +1 -0
  164. package/dist/components/authenticate/services/index.js.map +1 -0
  165. package/dist/components/authenticate/services/jwt-token.service.js +41 -27
  166. package/dist/components/authenticate/services/jwt-token.service.js.map +1 -0
  167. package/dist/components/authenticate/services/jwt.strategy.js +2 -2
  168. package/dist/components/authenticate/services/jwt.strategy.js.map +1 -0
  169. package/dist/components/authenticate/services/oauth2.service.js +111 -98
  170. package/dist/components/authenticate/services/oauth2.service.js.map +1 -0
  171. package/dist/components/authenticate/services/oauth2.strategy.js +32 -19
  172. package/dist/components/authenticate/services/oauth2.strategy.js.map +1 -0
  173. package/dist/components/authorize/adapters/adapter-builder.js +1 -1
  174. package/dist/components/authorize/adapters/adapter-builder.js.map +1 -0
  175. package/dist/components/authorize/adapters/base.adapter.js +10 -2
  176. package/dist/components/authorize/adapters/base.adapter.js.map +1 -0
  177. package/dist/components/authorize/adapters/casbin-postgres-adapter.helper.js +56 -37
  178. package/dist/components/authorize/adapters/casbin-postgres-adapter.helper.js.map +1 -0
  179. package/dist/components/authorize/adapters/casbin-redis-adapter.helper.js +2 -0
  180. package/dist/components/authorize/adapters/casbin-redis-adapter.helper.js.map +1 -0
  181. package/dist/components/authorize/adapters/index.js +1 -0
  182. package/dist/components/authorize/adapters/index.js.map +1 -0
  183. package/dist/components/authorize/common/constants.js +13 -10
  184. package/dist/components/authorize/common/constants.js.map +1 -0
  185. package/dist/components/authorize/common/index.js +1 -0
  186. package/dist/components/authorize/common/index.js.map +1 -0
  187. package/dist/components/authorize/common/keys.js +16 -15
  188. package/dist/components/authorize/common/keys.js.map +1 -0
  189. package/dist/components/authorize/common/types.js +3 -2
  190. package/dist/components/authorize/common/types.js.map +1 -0
  191. package/dist/components/authorize/component.js +60 -44
  192. package/dist/components/authorize/component.js.map +1 -0
  193. package/dist/components/authorize/decorators/index.d.ts +11 -0
  194. package/dist/components/authorize/decorators/index.js +15 -1
  195. package/dist/components/authorize/decorators/index.js.map +1 -0
  196. package/dist/components/authorize/index.js +1 -0
  197. package/dist/components/authorize/index.js.map +1 -0
  198. package/dist/components/authorize/interceptor.js +81 -76
  199. package/dist/components/authorize/interceptor.js.map +1 -0
  200. package/dist/components/authorize/migrations/0000-create-view-policy.js +15 -3
  201. package/dist/components/authorize/migrations/0000-create-view-policy.js.map +1 -0
  202. package/dist/components/authorize/migrations/index.js +1 -0
  203. package/dist/components/authorize/migrations/index.js.map +1 -0
  204. package/dist/components/authorize/models/defs.js +6 -24
  205. package/dist/components/authorize/models/defs.js.map +1 -0
  206. package/dist/components/authorize/models/index.js +1 -0
  207. package/dist/components/authorize/models/index.js.map +1 -0
  208. package/dist/components/authorize/models/permission-mapping.model.js +1 -0
  209. package/dist/components/authorize/models/permission-mapping.model.js.map +1 -0
  210. package/dist/components/authorize/models/permission.model.js +1 -0
  211. package/dist/components/authorize/models/permission.model.js.map +1 -0
  212. package/dist/components/authorize/models/role.model.js +2 -1
  213. package/dist/components/authorize/models/role.model.js.map +1 -0
  214. package/dist/components/authorize/models/user-role.model.js +2 -0
  215. package/dist/components/authorize/models/user-role.model.js.map +1 -0
  216. package/dist/components/authorize/models/view-authorize-policy.model.js +2 -4
  217. package/dist/components/authorize/models/view-authorize-policy.model.js.map +1 -0
  218. package/dist/components/authorize/provider.js +97 -81
  219. package/dist/components/authorize/provider.js.map +1 -0
  220. package/dist/components/authorize/repositories/authorize.repository.js +7 -3
  221. package/dist/components/authorize/repositories/authorize.repository.js.map +1 -0
  222. package/dist/components/authorize/repositories/index.js +1 -0
  223. package/dist/components/authorize/repositories/index.js.map +1 -0
  224. package/dist/components/authorize/services/enforcer.service.js +28 -20
  225. package/dist/components/authorize/services/enforcer.service.js.map +1 -0
  226. package/dist/components/authorize/services/generator.service.d.ts +20 -0
  227. package/dist/components/authorize/services/generator.service.js +97 -62
  228. package/dist/components/authorize/services/generator.service.js.map +1 -0
  229. package/dist/components/authorize/services/index.js +1 -0
  230. package/dist/components/authorize/services/index.js.map +1 -0
  231. package/dist/components/crash-report/common/constants.js +1 -0
  232. package/dist/components/crash-report/common/constants.js.map +1 -0
  233. package/dist/components/crash-report/common/index.js +1 -0
  234. package/dist/components/crash-report/common/index.js.map +1 -0
  235. package/dist/components/crash-report/common/keys.js +11 -8
  236. package/dist/components/crash-report/common/keys.js.map +1 -0
  237. package/dist/components/crash-report/common/types.js +1 -0
  238. package/dist/components/crash-report/common/types.js.map +1 -0
  239. package/dist/components/crash-report/component.js +45 -31
  240. package/dist/components/crash-report/component.js.map +1 -0
  241. package/dist/components/crash-report/index.js +1 -0
  242. package/dist/components/crash-report/index.js.map +1 -0
  243. package/dist/components/crash-report/providers/index.js +1 -0
  244. package/dist/components/crash-report/providers/index.js.map +1 -0
  245. package/dist/components/crash-report/providers/provider.js +1 -1
  246. package/dist/components/crash-report/providers/provider.js.map +1 -0
  247. package/dist/components/crash-report/providers/third-parties/base.js +3 -2
  248. package/dist/components/crash-report/providers/third-parties/base.js.map +1 -0
  249. package/dist/components/crash-report/providers/third-parties/index.js +1 -0
  250. package/dist/components/crash-report/providers/third-parties/index.js.map +1 -0
  251. package/dist/components/crash-report/services/index.js +1 -0
  252. package/dist/components/crash-report/services/index.js.map +1 -0
  253. package/dist/components/crash-report/services/mt-crash-report.service.js +6 -5
  254. package/dist/components/crash-report/services/mt-crash-report.service.js.map +1 -0
  255. package/dist/components/grpc/common/constants.js +1 -0
  256. package/dist/components/grpc/common/constants.js.map +1 -0
  257. package/dist/components/grpc/common/index.js +1 -0
  258. package/dist/components/grpc/common/index.js.map +1 -0
  259. package/dist/components/grpc/common/keys.js +5 -4
  260. package/dist/components/grpc/common/keys.js.map +1 -0
  261. package/dist/components/grpc/common/types.js +1 -0
  262. package/dist/components/grpc/common/types.js.map +1 -0
  263. package/dist/components/grpc/components/index.js +1 -0
  264. package/dist/components/grpc/components/index.js.map +1 -0
  265. package/dist/components/grpc/components/server.component.js +9 -8
  266. package/dist/components/grpc/components/server.component.js.map +1 -0
  267. package/dist/components/grpc/controllers/base.js +1 -1
  268. package/dist/components/grpc/controllers/base.js.map +1 -0
  269. package/dist/components/grpc/controllers/index.js +1 -0
  270. package/dist/components/grpc/controllers/index.js.map +1 -0
  271. package/dist/components/grpc/decorators/index.js +1 -0
  272. package/dist/components/grpc/decorators/index.js.map +1 -0
  273. package/dist/components/grpc/helpers/grpc-client.js +4 -9
  274. package/dist/components/grpc/helpers/grpc-client.js.map +1 -0
  275. package/dist/components/grpc/helpers/grpc-server.js +18 -14
  276. package/dist/components/grpc/helpers/grpc-server.js.map +1 -0
  277. package/dist/components/grpc/helpers/index.js +1 -0
  278. package/dist/components/grpc/helpers/index.js.map +1 -0
  279. package/dist/components/grpc/index.js +1 -0
  280. package/dist/components/grpc/index.js.map +1 -0
  281. package/dist/components/grpc/persistents/grpc.connector.js +3 -8
  282. package/dist/components/grpc/persistents/grpc.connector.js.map +1 -0
  283. package/dist/components/grpc/persistents/grpc.datasource.js +4 -2
  284. package/dist/components/grpc/persistents/grpc.datasource.js.map +1 -0
  285. package/dist/components/grpc/persistents/grpc.repository.js +3 -3
  286. package/dist/components/grpc/persistents/grpc.repository.js.map +1 -0
  287. package/dist/components/grpc/persistents/index.js +1 -0
  288. package/dist/components/grpc/persistents/index.js.map +1 -0
  289. package/dist/components/health-check/component.js +1 -1
  290. package/dist/components/health-check/component.js.map +1 -0
  291. package/dist/components/health-check/index.js +1 -0
  292. package/dist/components/health-check/index.js.map +1 -0
  293. package/dist/components/index.js +1 -0
  294. package/dist/components/index.js.map +1 -0
  295. package/dist/components/migration/common/index.js +1 -0
  296. package/dist/components/migration/common/index.js.map +1 -0
  297. package/dist/components/migration/common/keys.js +4 -3
  298. package/dist/components/migration/common/keys.js.map +1 -0
  299. package/dist/components/migration/common/types.js +1 -0
  300. package/dist/components/migration/common/types.js.map +1 -0
  301. package/dist/components/migration/component.js +9 -5
  302. package/dist/components/migration/component.js.map +1 -0
  303. package/dist/components/migration/index.js +1 -0
  304. package/dist/components/migration/index.js.map +1 -0
  305. package/dist/components/migration/models/index.js +1 -0
  306. package/dist/components/migration/models/index.js.map +1 -0
  307. package/dist/components/migration/models/migration.model.js +1 -2
  308. package/dist/components/migration/models/migration.model.js.map +1 -0
  309. package/dist/components/migration/repositories/index.js +1 -0
  310. package/dist/components/migration/repositories/index.js.map +1 -0
  311. package/dist/components/migration/repositories/migration.repository.js +1 -0
  312. package/dist/components/migration/repositories/migration.repository.js.map +1 -0
  313. package/dist/components/socket-io/common/constants.js +11 -10
  314. package/dist/components/socket-io/common/constants.js.map +1 -0
  315. package/dist/components/socket-io/common/index.js +1 -0
  316. package/dist/components/socket-io/common/index.js.map +1 -0
  317. package/dist/components/socket-io/common/keys.js +7 -6
  318. package/dist/components/socket-io/common/keys.js.map +1 -0
  319. package/dist/components/socket-io/component.js +9 -9
  320. package/dist/components/socket-io/component.js.map +1 -0
  321. package/dist/components/socket-io/helpers/index.js +1 -0
  322. package/dist/components/socket-io/helpers/index.js.map +1 -0
  323. package/dist/components/socket-io/helpers/socket-io-client.helper.js +12 -7
  324. package/dist/components/socket-io/helpers/socket-io-client.helper.js.map +1 -0
  325. package/dist/components/socket-io/helpers/socket-io-server.helper.js +42 -26
  326. package/dist/components/socket-io/helpers/socket-io-server.helper.js.map +1 -0
  327. package/dist/components/socket-io/index.js +1 -0
  328. package/dist/components/socket-io/index.js.map +1 -0
  329. package/dist/components/static-asset/common/index.js +1 -0
  330. package/dist/components/static-asset/common/index.js.map +1 -0
  331. package/dist/components/static-asset/common/keys.js +5 -4
  332. package/dist/components/static-asset/common/keys.js.map +1 -0
  333. package/dist/components/static-asset/component.js +9 -9
  334. package/dist/components/static-asset/component.js.map +1 -0
  335. package/dist/components/static-asset/controllers/asset.controller.d.ts +8 -0
  336. package/dist/components/static-asset/controllers/asset.controller.js +94 -71
  337. package/dist/components/static-asset/controllers/asset.controller.js.map +1 -0
  338. package/dist/components/static-asset/controllers/index.js +1 -0
  339. package/dist/components/static-asset/controllers/index.js.map +1 -0
  340. package/dist/components/static-asset/controllers/resource.controller.js +10 -8
  341. package/dist/components/static-asset/controllers/resource.controller.js.map +1 -0
  342. package/dist/components/static-asset/index.js +1 -0
  343. package/dist/components/static-asset/index.js.map +1 -0
  344. package/dist/datasources/index.js +1 -0
  345. package/dist/datasources/index.js.map +1 -0
  346. package/dist/datasources/memory/datasource.js +4 -3
  347. package/dist/datasources/memory/datasource.js.map +1 -0
  348. package/dist/datasources/memory/index.js +1 -0
  349. package/dist/datasources/memory/index.js.map +1 -0
  350. package/dist/datasources/postgres/datasource.js +11 -10
  351. package/dist/datasources/postgres/datasource.js.map +1 -0
  352. package/dist/datasources/postgres/index.js +1 -0
  353. package/dist/datasources/postgres/index.js.map +1 -0
  354. package/dist/datasources/postgres/types.js +1 -0
  355. package/dist/datasources/postgres/types.js.map +1 -0
  356. package/dist/datasources/redis/connector.js +8 -18
  357. package/dist/datasources/redis/connector.js.map +1 -0
  358. package/dist/datasources/redis/datasource.js +8 -7
  359. package/dist/datasources/redis/datasource.js.map +1 -0
  360. package/dist/datasources/redis/index.js +1 -0
  361. package/dist/datasources/redis/index.js.map +1 -0
  362. package/dist/datasources/redis/types.js +1 -0
  363. package/dist/datasources/redis/types.js.map +1 -0
  364. package/dist/helpers/application-environment.helper.js +4 -3
  365. package/dist/helpers/application-environment.helper.js.map +1 -0
  366. package/dist/helpers/cron.helper.js +15 -9
  367. package/dist/helpers/cron.helper.js.map +1 -0
  368. package/dist/helpers/crypto/algorithms/aes.algorithm.js +8 -8
  369. package/dist/helpers/crypto/algorithms/aes.algorithm.js.map +1 -0
  370. package/dist/helpers/crypto/algorithms/base.algorithm.js +5 -3
  371. package/dist/helpers/crypto/algorithms/base.algorithm.js.map +1 -0
  372. package/dist/helpers/crypto/algorithms/index.js +1 -0
  373. package/dist/helpers/crypto/algorithms/index.js.map +1 -0
  374. package/dist/helpers/crypto/algorithms/rsa.algorithm.js +6 -4
  375. package/dist/helpers/crypto/algorithms/rsa.algorithm.js.map +1 -0
  376. package/dist/helpers/crypto/common/constants.js +1 -0
  377. package/dist/helpers/crypto/common/constants.js.map +1 -0
  378. package/dist/helpers/crypto/common/index.js +1 -0
  379. package/dist/helpers/crypto/common/index.js.map +1 -0
  380. package/dist/helpers/crypto/common/types.js +1 -0
  381. package/dist/helpers/crypto/common/types.js.map +1 -0
  382. package/dist/helpers/crypto/index.js +1 -0
  383. package/dist/helpers/crypto/index.js.map +1 -0
  384. package/dist/helpers/database/index.js +1 -0
  385. package/dist/helpers/database/index.js.map +1 -0
  386. package/dist/helpers/database/query-builder.helper.js +6 -2
  387. package/dist/helpers/database/query-builder.helper.js.map +1 -0
  388. package/dist/helpers/index.js +1 -0
  389. package/dist/helpers/index.js.map +1 -0
  390. package/dist/helpers/logger/application-logger.js +18 -7
  391. package/dist/helpers/logger/application-logger.js.map +1 -0
  392. package/dist/helpers/logger/common/index.js +1 -0
  393. package/dist/helpers/logger/common/index.js.map +1 -0
  394. package/dist/helpers/logger/common/types.js +23 -20
  395. package/dist/helpers/logger/common/types.js.map +1 -0
  396. package/dist/helpers/logger/default-logger.js +13 -2
  397. package/dist/helpers/logger/default-logger.js.map +1 -0
  398. package/dist/helpers/logger/factory.js +2 -1
  399. package/dist/helpers/logger/factory.js.map +1 -0
  400. package/dist/helpers/logger/index.js +1 -0
  401. package/dist/helpers/logger/index.js.map +1 -0
  402. package/dist/helpers/logger/transports/dgram.transport.js +26 -16
  403. package/dist/helpers/logger/transports/dgram.transport.js.map +1 -0
  404. package/dist/helpers/logger/transports/index.js +1 -0
  405. package/dist/helpers/logger/transports/index.js.map +1 -0
  406. package/dist/helpers/network/http-request/base-network-request.helper.js +35 -36
  407. package/dist/helpers/network/http-request/base-network-request.helper.js.map +1 -0
  408. package/dist/helpers/network/http-request/fetcher/axios-fetcher.js +23 -10
  409. package/dist/helpers/network/http-request/fetcher/axios-fetcher.js.map +1 -0
  410. package/dist/helpers/network/http-request/fetcher/base-fetcher.js +37 -13
  411. package/dist/helpers/network/http-request/fetcher/base-fetcher.js.map +1 -0
  412. package/dist/helpers/network/http-request/fetcher/index.js +1 -0
  413. package/dist/helpers/network/http-request/fetcher/index.js.map +1 -0
  414. package/dist/helpers/network/http-request/fetcher/node-fetcher.js +60 -37
  415. package/dist/helpers/network/http-request/fetcher/node-fetcher.js.map +1 -0
  416. package/dist/helpers/network/http-request/index.js +1 -0
  417. package/dist/helpers/network/http-request/index.js.map +1 -0
  418. package/dist/helpers/network/http-request/types.js +1 -0
  419. package/dist/helpers/network/http-request/types.js.map +1 -0
  420. package/dist/helpers/network/index.js +1 -0
  421. package/dist/helpers/network/index.js.map +1 -0
  422. package/dist/helpers/network/tcp-socket/base-tcp-client.helper.js +28 -30
  423. package/dist/helpers/network/tcp-socket/base-tcp-client.helper.js.map +1 -0
  424. package/dist/helpers/network/tcp-socket/base-tcp-server.helper.js +20 -21
  425. package/dist/helpers/network/tcp-socket/base-tcp-server.helper.js.map +1 -0
  426. package/dist/helpers/network/tcp-socket/index.js +1 -0
  427. package/dist/helpers/network/tcp-socket/index.js.map +1 -0
  428. package/dist/helpers/network/tcp-socket/network-tcp-client.helper.js +2 -5
  429. package/dist/helpers/network/tcp-socket/network-tcp-client.helper.js.map +1 -0
  430. package/dist/helpers/network/tcp-socket/network-tcp-server.helper.js +2 -5
  431. package/dist/helpers/network/tcp-socket/network-tcp-server.helper.js.map +1 -0
  432. package/dist/helpers/network/tcp-socket/network-tls-tcp-client.helper.js +2 -5
  433. package/dist/helpers/network/tcp-socket/network-tls-tcp-client.helper.js.map +1 -0
  434. package/dist/helpers/network/tcp-socket/network-tls-tcp-server.helper.js +2 -5
  435. package/dist/helpers/network/tcp-socket/network-tls-tcp-server.helper.js.map +1 -0
  436. package/dist/helpers/network/udp-socket/index.js +1 -0
  437. package/dist/helpers/network/udp-socket/index.js.map +1 -0
  438. package/dist/helpers/network/udp-socket/network-udp-client.helper.js +19 -21
  439. package/dist/helpers/network/udp-socket/network-udp-client.helper.js.map +1 -0
  440. package/dist/helpers/queue/bullmq.helper.js +23 -21
  441. package/dist/helpers/queue/bullmq.helper.js.map +1 -0
  442. package/dist/helpers/queue/index.js +1 -0
  443. package/dist/helpers/queue/index.js.map +1 -0
  444. package/dist/helpers/queue/mqtt.helper.js +18 -15
  445. package/dist/helpers/queue/mqtt.helper.js.map +1 -0
  446. package/dist/helpers/queue/queue.helper.js +146 -74
  447. package/dist/helpers/queue/queue.helper.js.map +1 -0
  448. package/dist/helpers/redis/default.helper.js +163 -117
  449. package/dist/helpers/redis/default.helper.js.map +1 -0
  450. package/dist/helpers/redis/index.js +1 -0
  451. package/dist/helpers/redis/index.js.map +1 -0
  452. package/dist/helpers/redis/redis-cluster.helper.js +3 -7
  453. package/dist/helpers/redis/redis-cluster.helper.js.map +1 -0
  454. package/dist/helpers/redis/redis.helper.js +6 -8
  455. package/dist/helpers/redis/redis.helper.js.map +1 -0
  456. package/dist/helpers/redis/types.js +1 -0
  457. package/dist/helpers/redis/types.js.map +1 -0
  458. package/dist/helpers/storage/di-container.helper.js +1 -2
  459. package/dist/helpers/storage/di-container.helper.js.map +1 -0
  460. package/dist/helpers/storage/index.js +1 -0
  461. package/dist/helpers/storage/index.js.map +1 -0
  462. package/dist/helpers/storage/minio.helper.js +129 -88
  463. package/dist/helpers/storage/minio.helper.js.map +1 -0
  464. package/dist/helpers/testing/common.js +4 -3
  465. package/dist/helpers/testing/common.js.map +1 -0
  466. package/dist/helpers/testing/describe.js +22 -14
  467. package/dist/helpers/testing/describe.js.map +1 -0
  468. package/dist/helpers/testing/index.js +1 -0
  469. package/dist/helpers/testing/index.js.map +1 -0
  470. package/dist/helpers/testing/test-case.js +1 -5
  471. package/dist/helpers/testing/test-case.js.map +1 -0
  472. package/dist/helpers/testing/test-handler.js +31 -23
  473. package/dist/helpers/testing/test-handler.js.map +1 -0
  474. package/dist/helpers/testing/test-plan/base.js +7 -9
  475. package/dist/helpers/testing/test-plan/base.js.map +1 -0
  476. package/dist/helpers/testing/test-plan/default.js +1 -0
  477. package/dist/helpers/testing/test-plan/default.js.map +1 -0
  478. package/dist/helpers/testing/test-plan/index.js +1 -0
  479. package/dist/helpers/testing/test-plan/index.js.map +1 -0
  480. package/dist/helpers/testing/types.js +1 -0
  481. package/dist/helpers/testing/types.js.map +1 -0
  482. package/dist/helpers/worker-thread/base.js +21 -10
  483. package/dist/helpers/worker-thread/base.js.map +1 -0
  484. package/dist/helpers/worker-thread/index.js +1 -0
  485. package/dist/helpers/worker-thread/index.js.map +1 -0
  486. package/dist/helpers/worker-thread/types.js +1 -0
  487. package/dist/helpers/worker-thread/types.js.map +1 -0
  488. package/dist/helpers/worker-thread/worker-bus.js +13 -11
  489. package/dist/helpers/worker-thread/worker-bus.js.map +1 -0
  490. package/dist/helpers/worker-thread/worker-pool.js +26 -17
  491. package/dist/helpers/worker-thread/worker-pool.js.map +1 -0
  492. package/dist/index.js +1 -0
  493. package/dist/index.js.map +1 -0
  494. package/dist/interceptors/content-range.interceptor.js +133 -115
  495. package/dist/interceptors/content-range.interceptor.js.map +1 -0
  496. package/dist/interceptors/index.js +1 -0
  497. package/dist/interceptors/index.js.map +1 -0
  498. package/dist/middlewares/index.js +1 -0
  499. package/dist/middlewares/index.js.map +1 -0
  500. package/dist/middlewares/request-body-parser.middleware.js +17 -4
  501. package/dist/middlewares/request-body-parser.middleware.js.map +1 -0
  502. package/dist/middlewares/request-spy.middleware.js +6 -4
  503. package/dist/middlewares/request-spy.middleware.js.map +1 -0
  504. package/dist/migrations/base-path.js +1 -0
  505. package/dist/migrations/base-path.js.map +1 -0
  506. package/dist/migrations/handler.js +23 -13
  507. package/dist/migrations/handler.js.map +1 -0
  508. package/dist/migrations/index.js +1 -0
  509. package/dist/migrations/index.js.map +1 -0
  510. package/dist/mixins/data-type.mixin.js +1 -5
  511. package/dist/mixins/data-type.mixin.js.map +1 -0
  512. package/dist/mixins/deprecated/user-audit.mixin.d.ts +3 -0
  513. package/dist/mixins/deprecated/user-audit.mixin.js +6 -2
  514. package/dist/mixins/deprecated/user-audit.mixin.js.map +1 -0
  515. package/dist/mixins/duplicatable.mixin.js +1 -1
  516. package/dist/mixins/duplicatable.mixin.js.map +1 -0
  517. package/dist/mixins/index.js +1 -0
  518. package/dist/mixins/index.js.map +1 -0
  519. package/dist/mixins/object-search.mixin.js +1 -1
  520. package/dist/mixins/object-search.mixin.js.map +1 -0
  521. package/dist/mixins/principal.mixin.js +1 -2
  522. package/dist/mixins/principal.mixin.js.map +1 -0
  523. package/dist/mixins/soft-delete.mixin.js +1 -1
  524. package/dist/mixins/soft-delete.mixin.js.map +1 -0
  525. package/dist/mixins/soft-persistent.mixin.js +1 -1
  526. package/dist/mixins/soft-persistent.mixin.js.map +1 -0
  527. package/dist/mixins/text-search.mixin.js +1 -1
  528. package/dist/mixins/text-search.mixin.js.map +1 -0
  529. package/dist/mixins/tz.mixin.js +1 -2
  530. package/dist/mixins/tz.mixin.js.map +1 -0
  531. package/dist/mixins/user-audit.mixin.js +4 -5
  532. package/dist/mixins/user-audit.mixin.js.map +1 -0
  533. package/dist/mixins/vector.mixin.js +7 -9
  534. package/dist/mixins/vector.mixin.js.map +1 -0
  535. package/dist/tsconfig.base.json +4 -11
  536. package/dist/utilities/crypto.utility.js +1 -0
  537. package/dist/utilities/crypto.utility.js.map +1 -0
  538. package/dist/utilities/date.utility.js +24 -5
  539. package/dist/utilities/date.utility.js.map +1 -0
  540. package/dist/utilities/error.utility.js +1 -2
  541. package/dist/utilities/error.utility.js.map +1 -0
  542. package/dist/utilities/index.js +1 -0
  543. package/dist/utilities/index.js.map +1 -0
  544. package/dist/utilities/model.utility.js +7 -2
  545. package/dist/utilities/model.utility.js.map +1 -0
  546. package/dist/utilities/parse.utility.d.ts +16 -0
  547. package/dist/utilities/parse.utility.js +42 -6
  548. package/dist/utilities/parse.utility.js.map +1 -0
  549. package/dist/utilities/performance.utility.js +3 -1
  550. package/dist/utilities/performance.utility.js.map +1 -0
  551. package/dist/utilities/promise.utility.d.ts +17 -0
  552. package/dist/utilities/promise.utility.js +32 -5
  553. package/dist/utilities/promise.utility.js.map +1 -0
  554. package/dist/utilities/query.utility.js +17 -8
  555. package/dist/utilities/query.utility.js.map +1 -0
  556. package/dist/utilities/request.utility.js +9 -2
  557. package/dist/utilities/request.utility.js.map +1 -0
  558. package/dist/utilities/url.utility.js +1 -0
  559. package/dist/utilities/url.utility.js.map +1 -0
  560. package/package.json +8 -10
@@ -11,6 +11,15 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
13
  };
14
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
15
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16
+ return new (P || (P = Promise))(function (resolve, reject) {
17
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
20
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
21
+ });
22
+ };
14
23
  var __importDefault = (this && this.__importDefault) || function (mod) {
15
24
  return (mod && mod.__esModule) ? mod : { "default": mod };
16
25
  };
@@ -26,10 +35,6 @@ const isEmpty_1 = __importDefault(require("lodash/isEmpty"));
26
35
  const common_1 = require("./common");
27
36
  const services_1 = require("./services");
28
37
  let AuthorizeProvider = AuthorizeProvider_1 = class AuthorizeProvider {
29
- enforcerService;
30
- alwaysAllowRoles;
31
- normalizePayloadFn;
32
- logger;
33
38
  constructor(enforcerService, alwaysAllowRoles, normalizePayloadFn) {
34
39
  this.enforcerService = enforcerService;
35
40
  this.alwaysAllowRoles = alwaysAllowRoles;
@@ -39,97 +44,107 @@ let AuthorizeProvider = AuthorizeProvider_1 = class AuthorizeProvider {
39
44
  value() {
40
45
  return this.authorize.bind(this);
41
46
  }
47
+ // -------------------------------------------------------------------------------------------------------------------
42
48
  normalizeEnforcePayload(opts) {
49
+ var _a, _b, _c;
43
50
  const { subject, object, scope } = opts;
44
51
  return {
45
- subject: subject?.toLowerCase() || '',
46
- object: scope?.toLowerCase() ??
47
- (object?.toLowerCase() || '')?.replace(/controller/g, '')?.replace(/.prototype/g, ''),
52
+ subject: (subject === null || subject === void 0 ? void 0 : subject.toLowerCase()) || '',
53
+ object: (_a = scope === null || scope === void 0 ? void 0 : scope.toLowerCase()) !== null && _a !== void 0 ? _a : (_c = (_b = ((object === null || object === void 0 ? void 0 : object.toLowerCase()) || '')) === null || _b === void 0 ? void 0 : _b.replace(/controller/g, '')) === null || _c === void 0 ? void 0 : _c.replace(/.prototype/g, ''),
48
54
  action: common_1.EnforcerDefinitions.ACTION_EXECUTE,
49
55
  };
50
56
  }
51
- async authorizePermission(userId, object, scopes) {
52
- let isSingleAuthRs = false;
53
- let isScopeAuthRs = true;
54
- const enforcer = await this.enforcerService.getTypeEnforcer(userId);
55
- if (!enforcer) {
56
- this.logger.debug('[authorizePermission] Skip authorization for NULL enforcer!');
57
- return false;
58
- }
59
- const subject = `${common_1.EnforcerDefinitions.PREFIX_USER}_${userId}`;
60
- for (const scope of scopes ?? []) {
61
- const enforcePayload = this.normalizePayloadFn?.({ subject, object, scope }) ??
62
- this.normalizeEnforcePayload({ subject, object, scope });
63
- isScopeAuthRs = await enforcer.enforce(enforcePayload.subject, enforcePayload.object, enforcePayload.action);
64
- this.logger.debug('[authorizePermission] Payload: %j | scopeAuthRs: %s', enforcePayload, isScopeAuthRs);
57
+ // -------------------------------------------------------------------------------------------------------------------
58
+ authorizePermission(userId, object, scopes) {
59
+ return __awaiter(this, void 0, void 0, function* () {
60
+ var _a, _b, _c, _d;
61
+ let isSingleAuthRs = false;
62
+ let isScopeAuthRs = true;
63
+ const enforcer = yield this.enforcerService.getTypeEnforcer(userId);
64
+ if (!enforcer) {
65
+ this.logger.debug('[authorizePermission] Skip authorization for NULL enforcer!');
66
+ return false;
67
+ }
68
+ const subject = `${common_1.EnforcerDefinitions.PREFIX_USER}_${userId}`;
69
+ for (const scope of scopes !== null && scopes !== void 0 ? scopes : []) {
70
+ const enforcePayload = (_b = (_a = this.normalizePayloadFn) === null || _a === void 0 ? void 0 : _a.call(this, { subject, object, scope })) !== null && _b !== void 0 ? _b : this.normalizeEnforcePayload({ subject, object, scope });
71
+ isScopeAuthRs = yield enforcer.enforce(enforcePayload.subject, enforcePayload.object, enforcePayload.action);
72
+ this.logger.debug('[authorizePermission] Payload: %j | scopeAuthRs: %s', enforcePayload, isScopeAuthRs);
73
+ if (!isScopeAuthRs) {
74
+ this.logger.debug('[authorizePermission] Permission denied | Payload: %j', enforcePayload);
75
+ break;
76
+ }
77
+ }
65
78
  if (!isScopeAuthRs) {
66
- this.logger.debug('[authorizePermission] Permission denied | Payload: %j', enforcePayload);
67
- break;
79
+ return isScopeAuthRs;
68
80
  }
69
- }
70
- if (!isScopeAuthRs) {
71
- return isScopeAuthRs;
72
- }
73
- if (object) {
74
- const enforcePayload = this.normalizePayloadFn?.({ subject, object }) ??
75
- this.normalizeEnforcePayload({ subject, object });
76
- isSingleAuthRs = await enforcer.enforce(enforcePayload.subject, enforcePayload.object, enforcePayload.action);
77
- this.logger.debug('[authorizePermission] Payload: %j | singleAuthRs: %s', enforcePayload, isSingleAuthRs);
78
- }
79
- return isScopeAuthRs && isSingleAuthRs;
81
+ if (object) {
82
+ const enforcePayload = (_d = (_c = this.normalizePayloadFn) === null || _c === void 0 ? void 0 : _c.call(this, { subject, object })) !== null && _d !== void 0 ? _d : this.normalizeEnforcePayload({ subject, object });
83
+ isSingleAuthRs = yield enforcer.enforce(enforcePayload.subject, enforcePayload.object, enforcePayload.action);
84
+ this.logger.debug('[authorizePermission] Payload: %j | singleAuthRs: %s', enforcePayload, isSingleAuthRs);
85
+ }
86
+ return isScopeAuthRs && isSingleAuthRs;
87
+ });
80
88
  }
81
- async authorize(context, metadata) {
82
- const t = new Date().getTime();
83
- if (context?.principals.length <= 0) {
84
- return authorization_1.AuthorizationDecision.DENY;
85
- }
86
- const { userId, roles: encodedRoles } = context.principals[0];
87
- const roleIds = [];
88
- const roleIdentifiers = [];
89
- const roles = [];
90
- for (const encodedRole of encodedRoles) {
91
- if (!encodedRole || (0, isEmpty_1.default)(encodedRole)) {
92
- continue;
89
+ // -------------------------------------------------------------------------------------------------------------------
90
+ authorize(context, metadata) {
91
+ return __awaiter(this, void 0, void 0, function* () {
92
+ var _a, _b;
93
+ const t = new Date().getTime();
94
+ if ((context === null || context === void 0 ? void 0 : context.principals.length) <= 0) {
95
+ return authorization_1.AuthorizationDecision.DENY;
93
96
  }
94
- const { id, identifier } = encodedRole;
95
- roleIds.push((0, utilities_1.int)(id));
96
- roleIdentifiers.push(identifier);
97
- roles.push({ id, identifier });
98
- }
99
- if (!userId || !roles?.length) {
100
- return authorization_1.AuthorizationDecision.DENY;
101
- }
102
- const { resource, allowedRoles = [], scopes, voters } = metadata;
103
- const requestResource = resource ?? context.resource;
104
- if ((0, intersection_1.default)(this.alwaysAllowRoles, roleIdentifiers)?.length > 0 ||
105
- (0, intersection_1.default)(allowedRoles, roleIdentifiers)?.length > 0) {
106
- return authorization_1.AuthorizationDecision.ALLOW;
107
- }
108
- if (voters && voters?.length > 0) {
109
- const voterRs = await Promise.all(voters?.map(el => {
110
- switch (typeof el) {
111
- case 'function': {
112
- return el?.(context, metadata);
113
- }
114
- default: {
115
- throw (0, utilities_1.getError)({
116
- message: '[authorize][voter] voter implementation must be function type!',
117
- });
118
- }
97
+ const { userId, roles: encodedRoles } = context.principals[0];
98
+ const roleIds = [];
99
+ const roleIdentifiers = [];
100
+ const roles = [];
101
+ for (const encodedRole of encodedRoles) {
102
+ if (!encodedRole || (0, isEmpty_1.default)(encodedRole)) {
103
+ continue;
119
104
  }
120
- }));
121
- const voterSet = new Set(voterRs);
122
- if (voterSet.size === 1 && voterSet.has(authorization_1.AuthorizationDecision.ALLOW)) {
123
- return authorization_1.AuthorizationDecision.ALLOW;
105
+ const { id, identifier } = encodedRole;
106
+ roleIds.push((0, utilities_1.int)(id));
107
+ roleIdentifiers.push(identifier);
108
+ roles.push({ id, identifier });
124
109
  }
125
- if (voterSet.has(authorization_1.AuthorizationDecision.DENY)) {
110
+ // DENY all unknown user and unknow roles
111
+ if (!userId || !(roles === null || roles === void 0 ? void 0 : roles.length)) {
126
112
  return authorization_1.AuthorizationDecision.DENY;
127
113
  }
128
- }
129
- const isAuthorized = await this.authorizePermission(userId, requestResource, scopes);
130
- const rs = isAuthorized ? authorization_1.AuthorizationDecision.ALLOW : authorization_1.AuthorizationDecision.DENY;
131
- this.logger.debug('[authorize] Authorizing... | Resource: %s | allowedRoles: %j | scopes: %j | Took: %d(ms)', requestResource, allowedRoles, scopes, new Date().getTime() - t);
132
- return rs;
114
+ const { resource, allowedRoles = [], scopes, voters } = metadata;
115
+ const requestResource = resource !== null && resource !== void 0 ? resource : context.resource;
116
+ // Verify static roles
117
+ if (((_a = (0, intersection_1.default)(this.alwaysAllowRoles, roleIdentifiers)) === null || _a === void 0 ? void 0 : _a.length) > 0 ||
118
+ ((_b = (0, intersection_1.default)(allowedRoles, roleIdentifiers)) === null || _b === void 0 ? void 0 : _b.length) > 0) {
119
+ return authorization_1.AuthorizationDecision.ALLOW;
120
+ }
121
+ if (voters && (voters === null || voters === void 0 ? void 0 : voters.length) > 0) {
122
+ const voterRs = yield Promise.all(voters === null || voters === void 0 ? void 0 : voters.map(el => {
123
+ switch (typeof el) {
124
+ case 'function': {
125
+ return el === null || el === void 0 ? void 0 : el(context, metadata);
126
+ }
127
+ default: {
128
+ throw (0, utilities_1.getError)({
129
+ message: '[authorize][voter] voter implementation must be function type!',
130
+ });
131
+ }
132
+ }
133
+ }));
134
+ const voterSet = new Set(voterRs);
135
+ if (voterSet.size === 1 && voterSet.has(authorization_1.AuthorizationDecision.ALLOW)) {
136
+ return authorization_1.AuthorizationDecision.ALLOW;
137
+ }
138
+ if (voterSet.has(authorization_1.AuthorizationDecision.DENY)) {
139
+ return authorization_1.AuthorizationDecision.DENY;
140
+ }
141
+ }
142
+ // Authorize by role and user permissions
143
+ const isAuthorized = yield this.authorizePermission(userId, requestResource, scopes);
144
+ const rs = isAuthorized ? authorization_1.AuthorizationDecision.ALLOW : authorization_1.AuthorizationDecision.DENY;
145
+ this.logger.debug('[authorize] Authorizing... | Resource: %s | allowedRoles: %j | scopes: %j | Took: %d(ms)', requestResource, allowedRoles, scopes, new Date().getTime() - t);
146
+ return rs;
147
+ });
133
148
  }
134
149
  };
135
150
  exports.AuthorizeProvider = AuthorizeProvider;
@@ -139,3 +154,4 @@ exports.AuthorizeProvider = AuthorizeProvider = AuthorizeProvider_1 = __decorate
139
154
  __param(2, (0, core_1.inject)(common_1.AuthorizerKeys.NORMALIZE_PAYLOAD_FN)),
140
155
  __metadata("design:paramtypes", [services_1.EnforcerService, Array, Function])
141
156
  ], AuthorizeProvider);
157
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/components/authorize/provider.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,7 @@ const repository_1 = require("@loopback/repository");
24
24
  const models_1 = require("../models");
25
25
  const isEmpty_1 = __importDefault(require("lodash/isEmpty"));
26
26
  const DS_AUTHORIZE = process.env.APP_ENV_APPLICATION_DS_AUTHORIZE;
27
+ // ----------------------------------------------------------------------------
27
28
  class AbstractAuthorizeRepository extends repositories_1.TzCrudRepository {
28
29
  constructor(entityClass, dataSource) {
29
30
  if (!DS_AUTHORIZE || (0, isEmpty_1.default)(DS_AUTHORIZE)) {
@@ -36,10 +37,8 @@ class AbstractAuthorizeRepository extends repositories_1.TzCrudRepository {
36
37
  }
37
38
  }
38
39
  exports.AbstractAuthorizeRepository = AbstractAuthorizeRepository;
40
+ // ----------------------------------------------------------------------------
39
41
  let RoleRepository = class RoleRepository extends AbstractAuthorizeRepository {
40
- permissionRepositoryGetter;
41
- permissionMappingRepositoryGetter;
42
- permissions;
43
42
  constructor(dataSource, permissionRepositoryGetter, permissionMappingRepositoryGetter) {
44
43
  super(models_1.Role, dataSource);
45
44
  this.permissionRepositoryGetter = permissionRepositoryGetter;
@@ -56,6 +55,7 @@ exports.RoleRepository = RoleRepository = __decorate([
56
55
  __param(2, repository_1.repository.getter('PermissionMappingRepository')),
57
56
  __metadata("design:paramtypes", [datasources_1.BaseDataSource, Function, Function])
58
57
  ], RoleRepository);
58
+ // ----------------------------------------------------------------------------
59
59
  let PermissionRepository = class PermissionRepository extends AbstractAuthorizeRepository {
60
60
  constructor(dataSource) {
61
61
  super(models_1.Permission, dataSource);
@@ -67,6 +67,7 @@ exports.PermissionRepository = PermissionRepository = __decorate([
67
67
  __param(0, (0, core_1.inject)(`datasources.${DS_AUTHORIZE}`)),
68
68
  __metadata("design:paramtypes", [datasources_1.BaseDataSource])
69
69
  ], PermissionRepository);
70
+ // ----------------------------------------------------------------------------
70
71
  let PermissionMappingRepository = class PermissionMappingRepository extends AbstractAuthorizeRepository {
71
72
  constructor(dataSource) {
72
73
  super(models_1.PermissionMapping, dataSource);
@@ -78,6 +79,7 @@ exports.PermissionMappingRepository = PermissionMappingRepository = __decorate([
78
79
  __param(0, (0, core_1.inject)(`datasources.${DS_AUTHORIZE}`)),
79
80
  __metadata("design:paramtypes", [datasources_1.BaseDataSource])
80
81
  ], PermissionMappingRepository);
82
+ // ----------------------------------------------------------------------------
81
83
  let UserRoleRepository = class UserRoleRepository extends AbstractAuthorizeRepository {
82
84
  constructor(dataSource) {
83
85
  super(models_1.UserRole, dataSource);
@@ -89,6 +91,7 @@ exports.UserRoleRepository = UserRoleRepository = __decorate([
89
91
  __param(0, (0, core_1.inject)(`datasources.${DS_AUTHORIZE}`)),
90
92
  __metadata("design:paramtypes", [datasources_1.BaseDataSource])
91
93
  ], UserRoleRepository);
94
+ // ----------------------------------------------------------------------------
92
95
  let ViewAuthorizePolicyRepository = class ViewAuthorizePolicyRepository extends repositories_1.ViewRepository {
93
96
  constructor(dataSource) {
94
97
  super(models_1.ViewAuthorizePolicy, dataSource);
@@ -99,3 +102,4 @@ exports.ViewAuthorizePolicyRepository = ViewAuthorizePolicyRepository = __decora
99
102
  __param(0, (0, core_1.inject)(`datasources.${DS_AUTHORIZE}`)),
100
103
  __metadata("design:paramtypes", [datasources_1.BaseDataSource])
101
104
  ], ViewAuthorizePolicyRepository);
105
+ //# sourceMappingURL=authorize.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorize.repository.js","sourceRoot":"","sources":["../../../../src/components/authorize/repositories/authorize.repository.ts"],"names":[],"mappings":"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"}
@@ -15,3 +15,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./authorize.repository"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/authorize/repositories/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAuC"}
@@ -11,6 +11,15 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
13
  };
14
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
15
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16
+ return new (P || (P = Promise))(function (resolve, reject) {
17
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
20
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
21
+ });
22
+ };
14
23
  var __importDefault = (this && this.__importDefault) || function (mod) {
15
24
  return (mod && mod.__esModule) ? mod : { "default": mod };
16
25
  };
@@ -27,10 +36,6 @@ const node_fs_1 = __importDefault(require("node:fs"));
27
36
  const adapters_1 = require("../adapters");
28
37
  const common_1 = require("../common");
29
38
  let EnforcerService = EnforcerService_1 = class EnforcerService {
30
- options;
31
- dataSource;
32
- logger;
33
- enforcer;
34
39
  constructor(options, dataSource) {
35
40
  this.options = options;
36
41
  this.dataSource = dataSource;
@@ -58,28 +63,30 @@ let EnforcerService = EnforcerService_1 = class EnforcerService {
58
63
  });
59
64
  }
60
65
  this.logger.info('[getEnforcer] Creating new Enforcer with configure path: %s | dataSource: %s', confPath, this.dataSource.name);
61
- const casbinAdapter = adapter ??
62
- adapters_1.CasbinAdapterBuilder.getInstance().build({
63
- type: adapterType,
64
- dataSource: this.dataSource,
65
- });
66
+ const casbinAdapter = adapter !== null && adapter !== void 0 ? adapter : adapters_1.CasbinAdapterBuilder.getInstance().build({
67
+ type: adapterType,
68
+ dataSource: this.dataSource,
69
+ });
66
70
  if (useCache) {
67
71
  return (0, casbin_1.newCachedEnforcer)(confPath, casbinAdapter);
68
72
  }
69
73
  this.logger.debug('[getEnforcer] Created new enforcer | Configure path: %s', confPath);
70
74
  return (0, casbin_1.newEnforcer)(confPath, casbinAdapter);
71
75
  }
72
- async getTypeEnforcer(id) {
73
- const enforcer = await this.getEnforcer();
74
- if (!enforcer) {
75
- return null;
76
- }
77
- const filterValue = {
78
- principalType: 'User',
79
- principalValue: id,
80
- };
81
- await enforcer.loadFilteredPolicy(filterValue);
82
- return enforcer;
76
+ // -----------------------------------------------------------------------------------------
77
+ getTypeEnforcer(id) {
78
+ return __awaiter(this, void 0, void 0, function* () {
79
+ const enforcer = yield this.getEnforcer();
80
+ if (!enforcer) {
81
+ return null;
82
+ }
83
+ const filterValue = {
84
+ principalType: 'User',
85
+ principalValue: id,
86
+ };
87
+ yield enforcer.loadFilteredPolicy(filterValue);
88
+ return enforcer;
89
+ });
83
90
  }
84
91
  };
85
92
  exports.EnforcerService = EnforcerService;
@@ -89,3 +96,4 @@ exports.EnforcerService = EnforcerService = EnforcerService_1 = __decorate([
89
96
  __param(1, (0, core_1.inject)(common_1.AuthorizerKeys.AUTHORIZE_DATASOURCE)),
90
97
  __metadata("design:paramtypes", [Object, datasources_1.BaseDataSource])
91
98
  ], EnforcerService);
99
+ //# sourceMappingURL=enforcer.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enforcer.service.js","sourceRoot":"","sources":["../../../../src/components/authorize/services/enforcer.service.ts"],"names":[],"mappings":"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"}
@@ -43,9 +43,29 @@ export declare class GeneratePermissionService {
43
43
  permissionRepository: PermissionRepository;
44
44
  controllers: Array<Constructor<IController>>;
45
45
  }): Promise<void>;
46
+ /**
47
+ * Obtain all permission codes for a controller
48
+ *
49
+ * @returns {string[]} List of permission codes
50
+ */
46
51
  getPermissionCodes(opts: {
47
52
  controllers: Array<Constructor<IController>>;
48
53
  }): string[];
54
+ /**
55
+ * Write all permission codes for a list of controllers to a file
56
+ *
57
+ * @param outputPath - Path to write
58
+ *
59
+ * @example
60
+ * const generatePermissionService = new GeneratePermissionService();
61
+ *
62
+ * generatePermissionService.getPermissionCodesAndWriteToFile({
63
+ * controllers: [XboxController, PSController, NintendoController],
64
+ * outputPath: './src/migrations/',
65
+ * fileName: 'permissionCodes',
66
+ * fileType: 'ts',
67
+ * });
68
+ */
49
69
  getPermissionCodesAndWriteToFile(opts: {
50
70
  controllers: Array<Constructor<IController>>;
51
71
  outputPath?: string;
@@ -1,4 +1,13 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
13
  };
@@ -23,21 +32,24 @@ class GeneratePermissionService {
23
32
  }
24
33
  return methods;
25
34
  }
26
- async generateParentPermissions(opts) {
27
- const { controller, permissionRepository } = opts ?? {};
28
- const controllerName = controller.name;
29
- const permissionSubject = controllerName.replace(/Controller/g, '')?.toLowerCase();
30
- const parentPermissions = {
31
- name: `All permissions of ${permissionSubject}`,
32
- code: `${permissionSubject}.*`,
33
- subject: permissionSubject,
34
- action: common_1.EnforcerDefinitions.ACTION_EXECUTE,
35
- pType: 'p',
36
- };
37
- await permissionRepository.upsertWith({ ...parentPermissions }, { code: parentPermissions.code });
35
+ generateParentPermissions(opts) {
36
+ return __awaiter(this, void 0, void 0, function* () {
37
+ var _a;
38
+ const { controller, permissionRepository } = opts !== null && opts !== void 0 ? opts : {};
39
+ const controllerName = controller.name;
40
+ const permissionSubject = (_a = controllerName.replace(/Controller/g, '')) === null || _a === void 0 ? void 0 : _a.toLowerCase();
41
+ const parentPermissions = {
42
+ name: `All permissions of ${permissionSubject}`,
43
+ code: `${permissionSubject}.*`,
44
+ subject: permissionSubject,
45
+ action: common_1.EnforcerDefinitions.ACTION_EXECUTE,
46
+ pType: 'p',
47
+ };
48
+ yield permissionRepository.upsertWith(Object.assign({}, parentPermissions), { code: parentPermissions.code });
49
+ });
38
50
  }
39
51
  generatePermissions(opts) {
40
- const { methods, permissionSubject, parentId, allPermissionDecoratorData } = opts ?? {};
52
+ const { methods, permissionSubject, parentId, allPermissionDecoratorData } = opts !== null && opts !== void 0 ? opts : {};
41
53
  return methods.map(m => {
42
54
  return {
43
55
  name: `Permission ${m} ${permissionSubject}`,
@@ -49,12 +61,12 @@ class GeneratePermissionService {
49
61
  : common_1.EnforcerDefinitions.ACTION_WRITE,
50
62
  pType: 'p',
51
63
  parentId,
52
- details: allPermissionDecoratorData?.[m],
64
+ details: allPermissionDecoratorData === null || allPermissionDecoratorData === void 0 ? void 0 : allPermissionDecoratorData[m],
53
65
  };
54
66
  });
55
67
  }
56
68
  generatePermissionBaseInherit(opts) {
57
- const { methodsChildClass, methodsParentsClass, parentPermission, allPermissionDecoratorData } = opts ?? {};
69
+ const { methodsChildClass, methodsParentsClass, parentPermission, allPermissionDecoratorData } = opts !== null && opts !== void 0 ? opts : {};
58
70
  const defaultPermissions = [
59
71
  'count',
60
72
  'create',
@@ -89,60 +101,67 @@ class GeneratePermissionService {
89
101
  }));
90
102
  return permissionRecords;
91
103
  }
92
- async updatePermissionByChangeMethodName(permissionSubject, allPermissionDecoratorData, permissionRepository) {
93
- if (!Object.values(allPermissionDecoratorData).length) {
94
- return;
95
- }
96
- const allPermissionDecorators = Object.entries(allPermissionDecoratorData);
97
- for (const [key, value] of allPermissionDecorators) {
98
- const permissionsFound = await permissionRepository.find({
99
- where: {
100
- subject: permissionSubject,
101
- code: {
102
- neq: `${permissionSubject}.*`,
104
+ updatePermissionByChangeMethodName(permissionSubject, allPermissionDecoratorData, permissionRepository) {
105
+ return __awaiter(this, void 0, void 0, function* () {
106
+ var _a, _b;
107
+ if (!Object.values(allPermissionDecoratorData).length) {
108
+ return;
109
+ }
110
+ const allPermissionDecorators = Object.entries(allPermissionDecoratorData);
111
+ for (const [key, value] of allPermissionDecorators) {
112
+ const permissionsFound = yield permissionRepository.find({
113
+ where: {
114
+ subject: permissionSubject,
115
+ code: {
116
+ neq: `${permissionSubject}.*`,
117
+ },
103
118
  },
104
- },
105
- });
106
- for (const p of permissionsFound) {
107
- if (!p?.details?.idx || p?.details?.idx !== value.idx) {
119
+ });
120
+ for (const p of permissionsFound) {
121
+ if (!((_a = p === null || p === void 0 ? void 0 : p.details) === null || _a === void 0 ? void 0 : _a.idx) || ((_b = p === null || p === void 0 ? void 0 : p.details) === null || _b === void 0 ? void 0 : _b.idx) !== value.idx) {
122
+ continue;
123
+ }
124
+ yield permissionRepository.updateById(p.id, Object.assign(Object.assign({}, p), { code: `${permissionSubject}.${key}`, details: Object.assign({}, value) }));
125
+ }
126
+ }
127
+ });
128
+ }
129
+ startMigration(opts) {
130
+ return __awaiter(this, void 0, void 0, function* () {
131
+ var _a;
132
+ const { permissionRepository, controllers } = opts;
133
+ const permissions = [];
134
+ for (const controller of controllers) {
135
+ const permissionSubject = controller.name.replace(/Controller/g, '').toLowerCase();
136
+ const controllerPrototype = controller.prototype;
137
+ helpers_1.applicationLogger.info('[Migrate Permissions] Migration permissions for: %s', controller.name);
138
+ yield this.generateParentPermissions({ controller, permissionRepository });
139
+ const parentPermission = yield permissionRepository.findOne({
140
+ where: { subject: permissionSubject },
141
+ });
142
+ if (!parentPermission) {
108
143
  continue;
109
144
  }
110
- await permissionRepository.updateById(p.id, {
111
- ...p,
112
- code: `${permissionSubject}.${key}`,
113
- details: { ...value },
145
+ const allPermissionDecoratorData = (_a = (0, decorators_1.getDecoratorData)(controllerPrototype, decorators_1.MetadataDecoratorKeys.PERMISSION)) !== null && _a !== void 0 ? _a : {};
146
+ const permissionList = this.generatePermissionRecords({
147
+ controller,
148
+ parentPermission,
149
+ permissionRepository,
150
+ allPermissionDecoratorData,
114
151
  });
152
+ yield this.updatePermissionByChangeMethodName(permissionSubject, allPermissionDecoratorData, permissionRepository);
153
+ permissions.push(...permissionList);
115
154
  }
116
- }
117
- }
118
- async startMigration(opts) {
119
- const { permissionRepository, controllers } = opts;
120
- const permissions = [];
121
- for (const controller of controllers) {
122
- const permissionSubject = controller.name.replace(/Controller/g, '').toLowerCase();
123
- const controllerPrototype = controller.prototype;
124
- helpers_1.applicationLogger.info('[Migrate Permissions] Migration permissions for: %s', controller.name);
125
- await this.generateParentPermissions({ controller, permissionRepository });
126
- const parentPermission = await permissionRepository.findOne({
127
- where: { subject: permissionSubject },
128
- });
129
- if (!parentPermission) {
130
- continue;
155
+ for (const p of permissions) {
156
+ yield permissionRepository.upsertWith(p, { code: p.code });
131
157
  }
132
- const allPermissionDecoratorData = (0, decorators_1.getDecoratorData)(controllerPrototype, decorators_1.MetadataDecoratorKeys.PERMISSION) ?? {};
133
- const permissionList = this.generatePermissionRecords({
134
- controller,
135
- parentPermission,
136
- permissionRepository,
137
- allPermissionDecoratorData,
138
- });
139
- await this.updatePermissionByChangeMethodName(permissionSubject, allPermissionDecoratorData, permissionRepository);
140
- permissions.push(...permissionList);
141
- }
142
- for (const p of permissions) {
143
- await permissionRepository.upsertWith(p, { code: p.code });
144
- }
158
+ });
145
159
  }
160
+ /**
161
+ * Obtain all permission codes for a controller
162
+ *
163
+ * @returns {string[]} List of permission codes
164
+ */
146
165
  getPermissionCodes(opts) {
147
166
  const { controllers } = opts;
148
167
  const permissionCodes = [];
@@ -157,6 +176,21 @@ class GeneratePermissionService {
157
176
  helpers_1.applicationLogger.info('[getPermissionCodes] Permission codes: %o', permissionCodes);
158
177
  return permissionCodes;
159
178
  }
179
+ /**
180
+ * Write all permission codes for a list of controllers to a file
181
+ *
182
+ * @param outputPath - Path to write
183
+ *
184
+ * @example
185
+ * const generatePermissionService = new GeneratePermissionService();
186
+ *
187
+ * generatePermissionService.getPermissionCodesAndWriteToFile({
188
+ * controllers: [XboxController, PSController, NintendoController],
189
+ * outputPath: './src/migrations/',
190
+ * fileName: 'permissionCodes',
191
+ * fileType: 'ts',
192
+ * });
193
+ */
160
194
  getPermissionCodesAndWriteToFile(opts) {
161
195
  const { controllers, outputPath = './src/', fileName = 'permission-codes', fileType = 'ts', } = opts;
162
196
  const permissionCodes = this.getPermissionCodes({ controllers });
@@ -176,3 +210,4 @@ class GeneratePermissionService {
176
210
  }
177
211
  }
178
212
  exports.GeneratePermissionService = GeneratePermissionService;
213
+ //# sourceMappingURL=generator.service.js.map