@minimaltech/node-infra 0.5.10-1 → 0.5.10-10

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 (284) hide show
  1. package/dist/base/applications/base.application.js +26 -39
  2. package/dist/base/applications/base.application.js.map +1 -1
  3. package/dist/base/applications/default.application.js +1 -2
  4. package/dist/base/applications/default.application.js.map +1 -1
  5. package/dist/base/base.component.js +1 -2
  6. package/dist/base/base.component.js.map +1 -1
  7. package/dist/base/base.helper.js +2 -3
  8. package/dist/base/base.helper.js.map +1 -1
  9. package/dist/base/base.provider.js +1 -2
  10. package/dist/base/base.provider.js.map +1 -1
  11. package/dist/base/base.sequence.js +14 -25
  12. package/dist/base/base.sequence.js.map +1 -1
  13. package/dist/base/controllers/common.js +6 -6
  14. package/dist/base/controllers/common.js.map +1 -1
  15. package/dist/base/controllers/crud.controller.d.ts +1 -0
  16. package/dist/base/controllers/crud.controller.d.ts.map +1 -1
  17. package/dist/base/controllers/crud.controller.js +69 -63
  18. package/dist/base/controllers/crud.controller.js.map +1 -1
  19. package/dist/base/controllers/kv.controller.js +5 -16
  20. package/dist/base/controllers/kv.controller.js.map +1 -1
  21. package/dist/base/controllers/relational.controller.js +36 -43
  22. package/dist/base/controllers/relational.controller.js.map +1 -1
  23. package/dist/base/controllers/service-crud.controller.js +42 -35
  24. package/dist/base/controllers/service-crud.controller.js.map +1 -1
  25. package/dist/base/repositories/base.repository.d.ts +8 -0
  26. package/dist/base/repositories/base.repository.d.ts.map +1 -1
  27. package/dist/base/repositories/base.repository.js +10 -15
  28. package/dist/base/repositories/base.repository.js.map +1 -1
  29. package/dist/base/repositories/relations/has-many-polymorphic/decorator.js +11 -2
  30. package/dist/base/repositories/relations/has-many-polymorphic/decorator.js.map +1 -1
  31. package/dist/base/repositories/relations/has-many-polymorphic/factory.js +12 -17
  32. package/dist/base/repositories/relations/has-many-polymorphic/factory.js.map +1 -1
  33. package/dist/base/repositories/searchable-tz-crud.repository.js +131 -150
  34. package/dist/base/repositories/searchable-tz-crud.repository.js.map +1 -1
  35. package/dist/base/repositories/tz-crud.repository.js +23 -40
  36. package/dist/base/repositories/tz-crud.repository.js.map +1 -1
  37. package/dist/base/services/base-crud.service.js +5 -9
  38. package/dist/base/services/base-crud.service.js.map +1 -1
  39. package/dist/base/services/base.service.js +1 -2
  40. package/dist/base/services/base.service.js.map +1 -1
  41. package/dist/common/configurations.d.ts +18 -0
  42. package/dist/common/configurations.d.ts.map +1 -0
  43. package/dist/common/configurations.js +34 -0
  44. package/dist/common/configurations.js.map +1 -0
  45. package/dist/common/constants.d.ts +35 -0
  46. package/dist/common/constants.d.ts.map +1 -0
  47. package/dist/common/constants.js +52 -0
  48. package/dist/common/constants.js.map +1 -0
  49. package/dist/common/environments.js +25 -25
  50. package/dist/common/environments.js.map +1 -1
  51. package/dist/common/formatters.d.ts +13 -0
  52. package/dist/common/formatters.d.ts.map +1 -0
  53. package/dist/common/formatters.js +17 -0
  54. package/dist/common/formatters.js.map +1 -0
  55. package/dist/common/index.d.ts +6 -3
  56. package/dist/common/index.d.ts.map +1 -1
  57. package/dist/common/index.js +6 -3
  58. package/dist/common/index.js.map +1 -1
  59. package/dist/common/keys.js +2 -2
  60. package/dist/common/keys.js.map +1 -1
  61. package/dist/common/result-codes.d.ts +30 -0
  62. package/dist/common/result-codes.d.ts.map +1 -0
  63. package/dist/common/result-codes.js +37 -0
  64. package/dist/common/result-codes.js.map +1 -0
  65. package/dist/common/statuses.js +28 -31
  66. package/dist/common/statuses.js.map +1 -1
  67. package/dist/common/users.js +3 -5
  68. package/dist/common/users.js.map +1 -1
  69. package/dist/components/authenticate/common/constants.js +13 -13
  70. package/dist/components/authenticate/common/constants.js.map +1 -1
  71. package/dist/components/authenticate/common/keys.js +7 -7
  72. package/dist/components/authenticate/common/keys.js.map +1 -1
  73. package/dist/components/authenticate/common/types.d.ts +9 -1
  74. package/dist/components/authenticate/common/types.d.ts.map +1 -1
  75. package/dist/components/authenticate/common/types.js +50 -9
  76. package/dist/components/authenticate/common/types.js.map +1 -1
  77. package/dist/components/authenticate/component.d.ts.map +1 -1
  78. package/dist/components/authenticate/component.js +3 -3
  79. package/dist/components/authenticate/component.js.map +1 -1
  80. package/dist/components/authenticate/controllers/auth.controller.js +10 -7
  81. package/dist/components/authenticate/controllers/auth.controller.js.map +1 -1
  82. package/dist/components/authenticate/controllers/oauth2.controller.d.ts +5 -3
  83. package/dist/components/authenticate/controllers/oauth2.controller.d.ts.map +1 -1
  84. package/dist/components/authenticate/controllers/oauth2.controller.js +57 -25
  85. package/dist/components/authenticate/controllers/oauth2.controller.js.map +1 -1
  86. package/dist/components/authenticate/index.d.ts +1 -0
  87. package/dist/components/authenticate/index.d.ts.map +1 -1
  88. package/dist/components/authenticate/index.js +1 -0
  89. package/dist/components/authenticate/index.js.map +1 -1
  90. package/dist/components/authenticate/middleware.js +23 -35
  91. package/dist/components/authenticate/middleware.js.map +1 -1
  92. package/dist/components/authenticate/oauth2-handlers/authorization-code.handler.js +4 -5
  93. package/dist/components/authenticate/oauth2-handlers/authorization-code.handler.js.map +1 -1
  94. package/dist/components/authenticate/oauth2-handlers/base.js +93 -111
  95. package/dist/components/authenticate/oauth2-handlers/base.js.map +1 -1
  96. package/dist/components/authenticate/oauth2-handlers/client-credential.handler.js +2 -3
  97. package/dist/components/authenticate/oauth2-handlers/client-credential.handler.js.map +1 -1
  98. package/dist/components/authenticate/oauth2-handlers/oauth2.js +2 -2
  99. package/dist/components/authenticate/oauth2-handlers/oauth2.js.map +1 -1
  100. package/dist/components/authenticate/services/basic-token.service.js +18 -29
  101. package/dist/components/authenticate/services/basic-token.service.js.map +1 -1
  102. package/dist/components/authenticate/services/basic.strategy.js +5 -16
  103. package/dist/components/authenticate/services/basic.strategy.js.map +1 -1
  104. package/dist/components/authenticate/services/jwt-token.service.js +22 -34
  105. package/dist/components/authenticate/services/jwt-token.service.js.map +1 -1
  106. package/dist/components/authenticate/services/oauth2.service.d.ts +2 -1
  107. package/dist/components/authenticate/services/oauth2.service.d.ts.map +1 -1
  108. package/dist/components/authenticate/services/oauth2.service.js +100 -105
  109. package/dist/components/authenticate/services/oauth2.service.js.map +1 -1
  110. package/dist/components/authenticate/services/oauth2.strategy.js +23 -37
  111. package/dist/components/authenticate/services/oauth2.strategy.js.map +1 -1
  112. package/dist/components/authorize/adapters/casbin-postgres-adapter.helper.js +40 -52
  113. package/dist/components/authorize/adapters/casbin-postgres-adapter.helper.js.map +1 -1
  114. package/dist/components/authorize/common/constants.js +10 -12
  115. package/dist/components/authorize/common/constants.js.map +1 -1
  116. package/dist/components/authorize/common/keys.js +15 -15
  117. package/dist/components/authorize/common/keys.js.map +1 -1
  118. package/dist/components/authorize/common/types.js +2 -2
  119. package/dist/components/authorize/common/types.js.map +1 -1
  120. package/dist/components/authorize/component.js +28 -39
  121. package/dist/components/authorize/component.js.map +1 -1
  122. package/dist/components/authorize/decorators/index.js +1 -1
  123. package/dist/components/authorize/decorators/index.js.map +1 -1
  124. package/dist/components/authorize/interceptor.js +75 -80
  125. package/dist/components/authorize/interceptor.js.map +1 -1
  126. package/dist/components/authorize/migrations/0000-create-view-policy.js +3 -12
  127. package/dist/components/authorize/migrations/0000-create-view-policy.js.map +1 -1
  128. package/dist/components/authorize/provider.js +80 -93
  129. package/dist/components/authorize/provider.js.map +1 -1
  130. package/dist/components/authorize/services/enforcer.service.js +16 -26
  131. package/dist/components/authorize/services/enforcer.service.js.map +1 -1
  132. package/dist/components/authorize/services/generator.service.js +62 -76
  133. package/dist/components/authorize/services/generator.service.js.map +1 -1
  134. package/dist/components/crash-report/common/keys.js +8 -10
  135. package/dist/components/crash-report/common/keys.js.map +1 -1
  136. package/dist/components/crash-report/component.js +29 -41
  137. package/dist/components/crash-report/component.js.map +1 -1
  138. package/dist/components/crash-report/providers/third-parties/base.js +1 -2
  139. package/dist/components/crash-report/providers/third-parties/base.js.map +1 -1
  140. package/dist/components/crash-report/services/mt-crash-report.service.js +3 -4
  141. package/dist/components/crash-report/services/mt-crash-report.service.js.map +1 -1
  142. package/dist/components/grpc/common/keys.js +4 -4
  143. package/dist/components/grpc/common/keys.js.map +1 -1
  144. package/dist/components/grpc/components/server.component.js +1 -2
  145. package/dist/components/grpc/components/server.component.js.map +1 -1
  146. package/dist/components/grpc/helpers/grpc-client.js +2 -3
  147. package/dist/components/grpc/helpers/grpc-client.js.map +1 -1
  148. package/dist/components/grpc/helpers/grpc-server.js +9 -11
  149. package/dist/components/grpc/helpers/grpc-server.js.map +1 -1
  150. package/dist/components/grpc/persistents/grpc.connector.js +1 -2
  151. package/dist/components/grpc/persistents/grpc.connector.js.map +1 -1
  152. package/dist/components/grpc/persistents/grpc.datasource.js +1 -1
  153. package/dist/components/grpc/persistents/grpc.datasource.js.map +1 -1
  154. package/dist/components/grpc/persistents/grpc.repository.js +1 -2
  155. package/dist/components/grpc/persistents/grpc.repository.js.map +1 -1
  156. package/dist/components/migration/common/keys.js +3 -3
  157. package/dist/components/migration/common/keys.js.map +1 -1
  158. package/dist/components/socket-io/common/constants.js +10 -10
  159. package/dist/components/socket-io/common/constants.js.map +1 -1
  160. package/dist/components/socket-io/common/keys.js +6 -6
  161. package/dist/components/socket-io/common/keys.js.map +1 -1
  162. package/dist/components/socket-io/component.js +1 -1
  163. package/dist/components/socket-io/component.js.map +1 -1
  164. package/dist/components/socket-io/helpers/socket-io-client.helper.js +2 -4
  165. package/dist/components/socket-io/helpers/socket-io-client.helper.js.map +1 -1
  166. package/dist/components/socket-io/helpers/socket-io-server.helper.js +13 -15
  167. package/dist/components/socket-io/helpers/socket-io-server.helper.js.map +1 -1
  168. package/dist/components/static-asset/common/keys.js +4 -4
  169. package/dist/components/static-asset/common/keys.js.map +1 -1
  170. package/dist/components/static-asset/controllers/asset.controller.js +67 -84
  171. package/dist/components/static-asset/controllers/asset.controller.js.map +1 -1
  172. package/dist/components/static-asset/controllers/resource.controller.js +2 -3
  173. package/dist/components/static-asset/controllers/resource.controller.js.map +1 -1
  174. package/dist/datasources/memory/datasource.js +3 -2
  175. package/dist/datasources/memory/datasource.js.map +1 -1
  176. package/dist/datasources/postgres/datasource.js +10 -10
  177. package/dist/datasources/postgres/datasource.js.map +1 -1
  178. package/dist/datasources/redis/connector.js +13 -7
  179. package/dist/datasources/redis/connector.js.map +1 -1
  180. package/dist/datasources/redis/datasource.js +7 -7
  181. package/dist/datasources/redis/datasource.js.map +1 -1
  182. package/dist/helpers/application-environment.helper.js +1 -2
  183. package/dist/helpers/application-environment.helper.js.map +1 -1
  184. package/dist/helpers/cron.helper.js +2 -3
  185. package/dist/helpers/cron.helper.js.map +1 -1
  186. package/dist/helpers/crypto/algorithms/aes.algorithm.js +8 -7
  187. package/dist/helpers/crypto/algorithms/aes.algorithm.js.map +1 -1
  188. package/dist/helpers/crypto/algorithms/base.algorithm.js +2 -4
  189. package/dist/helpers/crypto/algorithms/base.algorithm.js.map +1 -1
  190. package/dist/helpers/crypto/algorithms/rsa.algorithm.js +4 -5
  191. package/dist/helpers/crypto/algorithms/rsa.algorithm.js.map +1 -1
  192. package/dist/helpers/logger/application-logger.js +4 -6
  193. package/dist/helpers/logger/application-logger.js.map +1 -1
  194. package/dist/helpers/logger/common/types.js +20 -22
  195. package/dist/helpers/logger/common/types.js.map +1 -1
  196. package/dist/helpers/logger/default-logger.js +2 -3
  197. package/dist/helpers/logger/default-logger.js.map +1 -1
  198. package/dist/helpers/logger/factory.js +1 -1
  199. package/dist/helpers/logger/factory.js.map +1 -1
  200. package/dist/helpers/logger/transports/dgram.transport.js +10 -25
  201. package/dist/helpers/logger/transports/dgram.transport.js.map +1 -1
  202. package/dist/helpers/network/http-request/base-network-request.helper.js +32 -29
  203. package/dist/helpers/network/http-request/base-network-request.helper.js.map +1 -1
  204. package/dist/helpers/network/http-request/fetcher/axios-fetcher.js +10 -18
  205. package/dist/helpers/network/http-request/fetcher/axios-fetcher.js.map +1 -1
  206. package/dist/helpers/network/http-request/fetcher/base-fetcher.js +10 -21
  207. package/dist/helpers/network/http-request/fetcher/base-fetcher.js.map +1 -1
  208. package/dist/helpers/network/http-request/fetcher/node-fetcher.js +36 -55
  209. package/dist/helpers/network/http-request/fetcher/node-fetcher.js.map +1 -1
  210. package/dist/helpers/network/tcp-socket/base-tcp-client.helper.js +16 -23
  211. package/dist/helpers/network/tcp-socket/base-tcp-client.helper.js.map +1 -1
  212. package/dist/helpers/network/tcp-socket/base-tcp-server.helper.js +9 -16
  213. package/dist/helpers/network/tcp-socket/base-tcp-server.helper.js.map +1 -1
  214. package/dist/helpers/network/tcp-socket/network-tcp-client.helper.js +5 -1
  215. package/dist/helpers/network/tcp-socket/network-tcp-client.helper.js.map +1 -1
  216. package/dist/helpers/network/tcp-socket/network-tcp-server.helper.js +5 -1
  217. package/dist/helpers/network/tcp-socket/network-tcp-server.helper.js.map +1 -1
  218. package/dist/helpers/network/tcp-socket/network-tls-tcp-client.helper.js +5 -1
  219. package/dist/helpers/network/tcp-socket/network-tls-tcp-client.helper.js.map +1 -1
  220. package/dist/helpers/network/tcp-socket/network-tls-tcp-server.helper.js +5 -1
  221. package/dist/helpers/network/tcp-socket/network-tls-tcp-server.helper.js.map +1 -1
  222. package/dist/helpers/network/udp-socket/network-udp-client.helper.js +11 -18
  223. package/dist/helpers/network/udp-socket/network-udp-client.helper.js.map +1 -1
  224. package/dist/helpers/queue/bullmq.helper.js +11 -18
  225. package/dist/helpers/queue/bullmq.helper.js.map +1 -1
  226. package/dist/helpers/queue/mqtt.helper.d.ts +4 -0
  227. package/dist/helpers/queue/mqtt.helper.d.ts.map +1 -1
  228. package/dist/helpers/queue/mqtt.helper.js +25 -14
  229. package/dist/helpers/queue/mqtt.helper.js.map +1 -1
  230. package/dist/helpers/queue/queue.helper.js +63 -85
  231. package/dist/helpers/queue/queue.helper.js.map +1 -1
  232. package/dist/helpers/redis/default.helper.js +115 -134
  233. package/dist/helpers/redis/default.helper.js.map +1 -1
  234. package/dist/helpers/redis/redis-cluster.helper.js +7 -2
  235. package/dist/helpers/redis/redis-cluster.helper.js.map +1 -1
  236. package/dist/helpers/redis/redis.helper.js +7 -2
  237. package/dist/helpers/redis/redis.helper.js.map +1 -1
  238. package/dist/helpers/storage/minio.helper.d.ts +1 -1
  239. package/dist/helpers/storage/minio.helper.js +87 -115
  240. package/dist/helpers/storage/minio.helper.js.map +1 -1
  241. package/dist/helpers/testing/common.js +3 -3
  242. package/dist/helpers/testing/common.js.map +1 -1
  243. package/dist/helpers/testing/describe.js +12 -21
  244. package/dist/helpers/testing/describe.js.map +1 -1
  245. package/dist/helpers/testing/test-handler.js +19 -30
  246. package/dist/helpers/testing/test-handler.js.map +1 -1
  247. package/dist/helpers/testing/test-plan/base.js +4 -6
  248. package/dist/helpers/testing/test-plan/base.js.map +1 -1
  249. package/dist/helpers/worker-thread/base.js +6 -12
  250. package/dist/helpers/worker-thread/base.js.map +1 -1
  251. package/dist/helpers/worker-thread/worker-bus.js +5 -6
  252. package/dist/helpers/worker-thread/worker-bus.js.map +1 -1
  253. package/dist/helpers/worker-thread/worker-pool.js +13 -25
  254. package/dist/helpers/worker-thread/worker-pool.js.map +1 -1
  255. package/dist/interceptors/content-range.interceptor.js +116 -128
  256. package/dist/interceptors/content-range.interceptor.js.map +1 -1
  257. package/dist/middlewares/request-body-parser.middleware.js +4 -16
  258. package/dist/middlewares/request-body-parser.middleware.js.map +1 -1
  259. package/dist/middlewares/request-spy.middleware.js +4 -5
  260. package/dist/middlewares/request-spy.middleware.js.map +1 -1
  261. package/dist/migrations/handler.js +13 -22
  262. package/dist/migrations/handler.js.map +1 -1
  263. package/dist/mixins/tz.mixin.js +7 -8
  264. package/dist/mixins/tz.mixin.js.map +1 -1
  265. package/dist/mixins/user-audit.mixin.js +1 -1
  266. package/dist/mixins/user-audit.mixin.js.map +1 -1
  267. package/dist/mixins/vector.mixin.js +5 -6
  268. package/dist/mixins/vector.mixin.js.map +1 -1
  269. package/dist/tsconfig.base.json +1 -1
  270. package/dist/utilities/date.utility.js +5 -7
  271. package/dist/utilities/date.utility.js.map +1 -1
  272. package/dist/utilities/model.utility.js +2 -4
  273. package/dist/utilities/model.utility.js.map +1 -1
  274. package/dist/utilities/parse.utility.js +6 -8
  275. package/dist/utilities/parse.utility.js.map +1 -1
  276. package/dist/utilities/performance.utility.js +1 -2
  277. package/dist/utilities/performance.utility.js.map +1 -1
  278. package/dist/utilities/promise.utility.js +5 -14
  279. package/dist/utilities/promise.utility.js.map +1 -1
  280. package/dist/utilities/query.utility.js +8 -10
  281. package/dist/utilities/query.utility.js.map +1 -1
  282. package/dist/utilities/request.utility.js +2 -3
  283. package/dist/utilities/request.utility.js.map +1 -1
  284. package/package.json +23 -25
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CasbinAdapterTypes = void 0;
4
4
  class CasbinAdapterTypes {
5
+ static { this.POSTGRES = 'casbin-postgres'; }
6
+ static { this.REDIS = 'casbin-redis'; }
5
7
  }
6
8
  exports.CasbinAdapterTypes = CasbinAdapterTypes;
7
- CasbinAdapterTypes.POSTGRES = 'casbin-postgres';
8
- CasbinAdapterTypes.REDIS = 'casbin-redis';
9
9
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/components/authorize/common/types.ts"],"names":[],"mappings":";;;AAQA,MAAa,kBAAkB;;AAA/B,gDAGC;AAFiB,2BAAQ,GAAmB,iBAAiB,CAAC;AAC7C,wBAAK,GAAmB,cAAc,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/components/authorize/common/types.ts"],"names":[],"mappings":";;;AAQA,MAAa,kBAAkB;aACb,aAAQ,GAAmB,iBAAiB,CAAC;aAC7C,UAAK,GAAmB,cAAc,CAAC;;AAFzD,gDAGC"}
@@ -11,15 +11,6 @@ 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
- };
23
14
  var __importDefault = (this && this.__importDefault) || function (mod) {
24
15
  return (mod && mod.__esModule) ? mod : { "default": mod };
25
16
  };
@@ -85,48 +76,46 @@ let AuthorizeComponent = AuthorizeComponent_1 = class AuthorizeComponent extends
85
76
  this.application.repository(repositories_1.UserRoleRepository);
86
77
  this.application.repository(repositories_1.ViewAuthorizePolicyRepository);
87
78
  }
88
- verify() {
89
- return __awaiter(this, void 0, void 0, function* () {
90
- const datasource = this.application.getSync(common_1.AuthorizerKeys.AUTHORIZE_DATASOURCE);
91
- if (!datasource) {
92
- throw (0, utilities_1.getError)({
93
- statusCode: 500,
94
- message: `[verify] Invalid binding datasource to key ${common_1.AuthorizerKeys.AUTHORIZE_DATASOURCE}`,
95
- });
96
- }
97
- const checkTableExecutions = ['Role', 'Permission', 'UserRole', 'PermissionMapping'].map(tableName => {
98
- return datasource.execute(`
79
+ async verify() {
80
+ const datasource = this.application.getSync(common_1.AuthorizerKeys.AUTHORIZE_DATASOURCE);
81
+ if (!datasource) {
82
+ throw (0, utilities_1.getError)({
83
+ statusCode: 500,
84
+ message: `[verify] Invalid binding datasource to key ${common_1.AuthorizerKeys.AUTHORIZE_DATASOURCE}`,
85
+ });
86
+ }
87
+ const checkTableExecutions = ['Role', 'Permission', 'UserRole', 'PermissionMapping'].map(tableName => {
88
+ return datasource.execute(`
99
89
  SELECT EXISTS (
100
90
  SELECT FROM information_schema.tables
101
91
  WHERE table_schema='public'
102
92
  AND table_name='${tableName}'
103
93
  ) as "isTableExisted"`);
104
- });
105
- const tableRs = yield Promise.all(checkTableExecutions);
106
- const checkTableExistRs = (0, flatten_1.default)(tableRs);
107
- for (const rs of checkTableExistRs) {
108
- if (!rs.isTableExisted) {
109
- throw (0, utilities_1.getError)({
110
- statusCode: 500,
111
- message: '[verify] Essential table IS NOT EXISTS | Please check again (Role, Permission, UserRole and PermissionMapping)',
112
- });
113
- }
94
+ });
95
+ const tableRs = await Promise.all(checkTableExecutions);
96
+ const checkTableExistRs = (0, flatten_1.default)(tableRs);
97
+ for (const rs of checkTableExistRs) {
98
+ if (!rs.isTableExisted) {
99
+ throw (0, utilities_1.getError)({
100
+ statusCode: 500,
101
+ message: '[verify] Essential table IS NOT EXISTS | Please check again (Role, Permission, UserRole and PermissionMapping)',
102
+ });
114
103
  }
115
- const checkAuthorizeViewRs = yield datasource.execute(`
104
+ }
105
+ const checkAuthorizeViewRs = await datasource.execute(`
116
106
  SELECT EXISTS (
117
107
  SELECT FROM information_schema.views
118
108
  WHERE table_schema='public'
119
109
  AND table_name='ViewAuthorizePolicy'
120
110
  ) as "isViewExisted"`);
121
- for (const rs of checkAuthorizeViewRs) {
122
- if (!rs.isViewExisted) {
123
- throw (0, utilities_1.getError)({
124
- statusCode: 500,
125
- message: '[verify] Essential view IS NOT EXISTS | Please check again (ViewAuthorizePolicy)',
126
- });
127
- }
111
+ for (const rs of checkAuthorizeViewRs) {
112
+ if (!rs.isViewExisted) {
113
+ throw (0, utilities_1.getError)({
114
+ statusCode: 500,
115
+ message: '[verify] Essential view IS NOT EXISTS | Please check again (ViewAuthorizePolicy)',
116
+ });
128
117
  }
129
- });
118
+ }
130
119
  }
131
120
  binding() {
132
121
  this.logger.info('[binding] Binding authorize component for application...');
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sourceRoot":"","sources":["../../../src/components/authorize/component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"component.js","sourceRoot":"","sources":["../../../src/components/authorize/component.ts"],"names":[],"mappings":"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"}
@@ -4,9 +4,9 @@ exports.getDecoratorData = exports.MetadataDecoratorKeys = void 0;
4
4
  exports.permission = permission;
5
5
  const metadata_1 = require("@loopback/metadata");
6
6
  class MetadataDecoratorKeys {
7
+ static { this.PERMISSION = 'metadata-key-for-permission-decorator'; }
7
8
  }
8
9
  exports.MetadataDecoratorKeys = MetadataDecoratorKeys;
9
- MetadataDecoratorKeys.PERMISSION = 'metadata-key-for-permission-decorator';
10
10
  // Read more: https://loopback.io/doc/en/lb4/Creating-decorators.html#inspect-metadata-of-a-property
11
11
  /**
12
12
  * @example
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/authorize/decorators/index.ts"],"names":[],"mappings":";;;AAsBA,gCAKC;AA3BD,iDAA+E;AAE/E,MAAa,qBAAqB;;AAAlC,sDAEC;AADiB,gCAAU,GAAG,uCAAuC,CAAC;AAOvE,oGAAoG;AACpG;;;;;;;;;;GAUG;AACH,SAAgB,UAAU,CAAC,IAA0B;IACnD,OAAO,iCAAsB,CAAC,eAAe,CAC3C,qBAAqB,CAAC,UAAU,EAChC,IAAI,CACL,CAAC;AACJ,CAAC;AAED,8IAA8I;AACvI,MAAM,gBAAgB,GAAG,CAAC,mBAA2B,EAAE,kBAA0B,EAAE,EAAE;IAC1F,OAAO,4BAAiB,CAAC,sBAAsB,CAAM,kBAAkB,EAAE,mBAAmB,CAAC,CAAC;AAChG,CAAC,CAAC;AAFW,QAAA,gBAAgB,oBAE3B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/authorize/decorators/index.ts"],"names":[],"mappings":";;;AAsBA,gCAKC;AA3BD,iDAA+E;AAE/E,MAAa,qBAAqB;aAChB,eAAU,GAAG,uCAAuC,CAAC;;AADvE,sDAEC;AAMD,oGAAoG;AACpG;;;;;;;;;;GAUG;AACH,SAAgB,UAAU,CAAC,IAA0B;IACnD,OAAO,iCAAsB,CAAC,eAAe,CAC3C,qBAAqB,CAAC,UAAU,EAChC,IAAI,CACL,CAAC;AACJ,CAAC;AAED,8IAA8I;AACvI,MAAM,gBAAgB,GAAG,CAAC,mBAA2B,EAAE,kBAA0B,EAAE,EAAE;IAC1F,OAAO,4BAAiB,CAAC,sBAAsB,CAAM,kBAAkB,EAAE,mBAAmB,CAAC,CAAC;AAChG,CAAC,CAAC;AAFW,QAAA,gBAAgB,oBAE3B"}
@@ -11,15 +11,6 @@ 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
- };
23
14
  var AuthorizateInterceptor_1;
24
15
  Object.defineProperty(exports, "__esModule", { value: true });
25
16
  exports.AuthorizateInterceptor = void 0;
@@ -27,91 +18,95 @@ const core_1 = require("@loopback/core");
27
18
  const security_1 = require("@loopback/security");
28
19
  const authorization_1 = require("@loopback/authorization");
29
20
  const helpers_1 = require("../../helpers");
30
- function loadAuthorizers(ctx) {
31
- return __awaiter(this, void 0, void 0, function* () {
32
- const authorizerFunctions = [];
33
- const bindings = ctx.findByTag(authorization_1.AuthorizationTags.AUTHORIZER);
34
- const authorizers = bindings.map(b => b.key);
35
- for (const keyOrFn of authorizers) {
36
- if (typeof keyOrFn === 'function') {
37
- authorizerFunctions.push(keyOrFn);
38
- continue;
39
- }
40
- const fn = yield ctx.get(keyOrFn);
41
- authorizerFunctions.push(fn);
21
+ async function loadAuthorizers(ctx) {
22
+ const authorizerFunctions = [];
23
+ const bindings = ctx.findByTag(authorization_1.AuthorizationTags.AUTHORIZER);
24
+ const authorizers = bindings.map(b => b.key);
25
+ for (const keyOrFn of authorizers) {
26
+ if (typeof keyOrFn === 'function') {
27
+ authorizerFunctions.push(keyOrFn);
28
+ continue;
42
29
  }
43
- return authorizerFunctions;
44
- });
30
+ const fn = await ctx.get(keyOrFn);
31
+ authorizerFunctions.push(fn);
32
+ }
33
+ return authorizerFunctions;
45
34
  }
46
35
  let AuthorizateInterceptor = AuthorizateInterceptor_1 = class AuthorizateInterceptor {
47
36
  constructor(options = {}) {
48
- this.options = Object.assign({ defaultDecision: authorization_1.AuthorizationDecision.DENY, precedence: authorization_1.AuthorizationDecision.DENY, defaultStatusCodeForDeny: 403 }, options);
37
+ this.options = {
38
+ defaultDecision: authorization_1.AuthorizationDecision.DENY,
39
+ precedence: authorization_1.AuthorizationDecision.DENY,
40
+ defaultStatusCodeForDeny: 403,
41
+ ...options,
42
+ };
49
43
  this.logger = helpers_1.LoggerFactory.getLogger([AuthorizateInterceptor_1.name]);
50
44
  }
51
45
  value() {
52
46
  return this.intercept.bind(this);
53
47
  }
54
- intercept(invocationCtx, next) {
55
- return __awaiter(this, void 0, void 0, function* () {
56
- var _a;
57
- let metadata = (0, authorization_1.getAuthorizationMetadata)(invocationCtx.target, invocationCtx.methodName);
58
- const description = invocationCtx.description;
59
- if (!metadata) {
60
- this.logger.debug('[intercept] No authorization metadata is found for %s', description);
61
- }
62
- metadata = metadata !== null && metadata !== void 0 ? metadata : this.options.defaultMetadata;
63
- if (!metadata || (metadata === null || metadata === void 0 ? void 0 : metadata.skip)) {
64
- this.logger.debug('[intercept] Authorization is skipped for %s', description);
65
- const result = yield next();
66
- return result;
67
- }
68
- this.logger.debug('[intercept] Authorization metadata for %s', description);
69
- // retrieve it from authentication module
70
- const user = yield invocationCtx.get(security_1.SecurityBindings.USER, {
71
- optional: true,
72
- });
73
- this.logger.debug('[intercept] Current user: %s', user);
74
- const authorizationCtx = {
75
- principals: user
76
- ? [
77
- Object.assign(Object.assign({}, user), { name: (_a = user.name) !== null && _a !== void 0 ? _a : user[security_1.securityId], type: 'USER' }),
78
- ]
79
- : [],
80
- roles: [],
81
- scopes: [],
82
- resource: invocationCtx.targetName,
83
- invocationContext: invocationCtx,
84
- };
85
- this.logger.debug('[intercept] Security context for %s', description);
86
- const authorizers = yield loadAuthorizers(invocationCtx);
87
- let finalDecision = this.options.defaultDecision;
88
- for (const fn of authorizers) {
89
- const decision = yield fn(authorizationCtx, metadata);
90
- this.logger.debug('[intercept] Decision: %s', decision);
91
- if (decision && decision !== authorization_1.AuthorizationDecision.ABSTAIN) {
92
- finalDecision = decision;
93
- }
94
- if (decision === authorization_1.AuthorizationDecision.DENY &&
95
- this.options.precedence === authorization_1.AuthorizationDecision.DENY) {
96
- this.logger.debug('[intercept] Access denied');
97
- const error = new authorization_1.AuthorizationError('Access denied');
98
- error.statusCode = this.options.defaultStatusCodeForDeny;
99
- throw error;
100
- }
101
- if (decision === authorization_1.AuthorizationDecision.ALLOW &&
102
- this.options.precedence === authorization_1.AuthorizationDecision.ALLOW) {
103
- this.logger.debug('[intercept] Access allowed');
104
- break;
105
- }
48
+ async intercept(invocationCtx, next) {
49
+ let metadata = (0, authorization_1.getAuthorizationMetadata)(invocationCtx.target, invocationCtx.methodName);
50
+ const description = invocationCtx.description;
51
+ if (!metadata) {
52
+ this.logger.debug('[intercept] No authorization metadata is found for %s', description);
53
+ }
54
+ metadata = metadata ?? this.options.defaultMetadata;
55
+ if (!metadata || metadata?.skip) {
56
+ this.logger.debug('[intercept] Authorization is skipped for %s', description);
57
+ const result = await next();
58
+ return result;
59
+ }
60
+ this.logger.debug('[intercept] Authorization metadata for %s', description);
61
+ // retrieve it from authentication module
62
+ const user = await invocationCtx.get(security_1.SecurityBindings.USER, {
63
+ optional: true,
64
+ });
65
+ this.logger.debug('[intercept] Current user: %s', user);
66
+ const authorizationCtx = {
67
+ principals: user
68
+ ? [
69
+ {
70
+ ...user,
71
+ name: user.name ?? user[security_1.securityId],
72
+ type: 'USER',
73
+ },
74
+ ]
75
+ : [],
76
+ roles: [],
77
+ scopes: [],
78
+ resource: invocationCtx.targetName,
79
+ invocationContext: invocationCtx,
80
+ };
81
+ this.logger.debug('[intercept] Security context for %s', description);
82
+ const authorizers = await loadAuthorizers(invocationCtx);
83
+ let finalDecision = this.options.defaultDecision;
84
+ for (const fn of authorizers) {
85
+ const decision = await fn(authorizationCtx, metadata);
86
+ this.logger.debug('[intercept] Decision: %s', decision);
87
+ if (decision && decision !== authorization_1.AuthorizationDecision.ABSTAIN) {
88
+ finalDecision = decision;
106
89
  }
107
- this.logger.debug('[intercept] Final decision: %s', finalDecision);
108
- if (finalDecision === authorization_1.AuthorizationDecision.DENY) {
90
+ if (decision === authorization_1.AuthorizationDecision.DENY &&
91
+ this.options.precedence === authorization_1.AuthorizationDecision.DENY) {
92
+ this.logger.debug('[intercept] Access denied');
109
93
  const error = new authorization_1.AuthorizationError('Access denied');
110
94
  error.statusCode = this.options.defaultStatusCodeForDeny;
111
95
  throw error;
112
96
  }
113
- return next();
114
- });
97
+ if (decision === authorization_1.AuthorizationDecision.ALLOW &&
98
+ this.options.precedence === authorization_1.AuthorizationDecision.ALLOW) {
99
+ this.logger.debug('[intercept] Access allowed');
100
+ break;
101
+ }
102
+ }
103
+ this.logger.debug('[intercept] Final decision: %s', finalDecision);
104
+ if (finalDecision === authorization_1.AuthorizationDecision.DENY) {
105
+ const error = new authorization_1.AuthorizationError('Access denied');
106
+ error.statusCode = this.options.defaultStatusCodeForDeny;
107
+ throw error;
108
+ }
109
+ return next();
115
110
  }
116
111
  };
117
112
  exports.AuthorizateInterceptor = AuthorizateInterceptor;
@@ -1 +1 @@
1
- {"version":3,"file":"interceptor.js","sourceRoot":"","sources":["../../../src/components/authorize/interceptor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interceptor.js","sourceRoot":"","sources":["../../../src/components/authorize/interceptor.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,4 @@
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
- };
11
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
12
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
4
  };
@@ -57,7 +48,7 @@ const sqls = [
57
48
  ];
58
49
  const createViewPolicy = (opts) => ({
59
50
  name: __filename.slice(__dirname.length + 1),
60
- fn: (application) => __awaiter(void 0, void 0, void 0, function* () {
51
+ fn: async (application) => {
61
52
  if (!opts.datasourceKey || (0, isEmpty_1.default)(opts.datasourceKey)) {
62
53
  throw (0, utilities_1.getError)({
63
54
  statusCode: 500,
@@ -74,10 +65,10 @@ const createViewPolicy = (opts) => ({
74
65
  }
75
66
  for (const sql of sqls) {
76
67
  helpers_1.applicationLogger.info('[creatViewPolicy] START | Execute SQL: %s', sql);
77
- yield datasource.execute(sql);
68
+ await datasource.execute(sql);
78
69
  helpers_1.applicationLogger.info('[createViewPolicy] DONE | Execute SQL: %s', sql);
79
70
  }
80
- }),
71
+ },
81
72
  });
82
73
  exports.createViewPolicy = createViewPolicy;
83
74
  //# sourceMappingURL=0000-create-view-policy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"0000-create-view-policy.js","sourceRoot":"","sources":["../../../../src/components/authorize/migrations/0000-create-view-policy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,uCAA8C;AAC9C,2CAAuC;AACvC,6DAAqC;AACrC,sCAAgD;AAEhD,MAAM,IAAI,GAAG;IACX,OAAO;IACP,4CAA4C;IAE5C,gBAAgB;IAChB,4CAA4C;IAC5C;;;;;;;;;;;;kDAYgD,4BAAmB,CAAC,WAAW;kDAC/B,4BAAmB,CAAC,WAAW;;;;;;;;;;;;uBAY1D,4BAAmB,CAAC,WAAW,iDAAiD,4BAAmB,CAAC,cAAc;;uBAElH,4BAAmB,CAAC,WAAW,iDAAiD,4BAAmB,CAAC,cAAc;;;;0DAI/E;CACzD,CAAC;AAEK,MAAM,gBAAgB,GAAG,CAAC,IAA+B,EAAE,EAAE,CAAC,CAAC;IACpE,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5C,EAAE,EAAE,CAAO,WAA4B,EAAE,EAAE;QACzC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAA,iBAAO,EAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YACvD,MAAM,IAAA,oBAAQ,EAAC;gBACb,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,gEAAgE;aAC1E,CAAC,CAAC;QACL,CAAC;QAED,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;QAC/B,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAiB,aAAa,CAAC,CAAC;QACtE,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAA,oBAAQ,EAAC;gBACb,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,sDAAsD,aAAa,wBAAwB;aACrG,CAAC,CAAC;QACL,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,2BAAiB,CAAC,IAAI,CAAC,2CAA2C,EAAE,GAAG,CAAC,CAAC;YACzE,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC9B,2BAAiB,CAAC,IAAI,CAAC,2CAA2C,EAAE,GAAG,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC,CAAA;CACF,CAAC,CAAC;AAzBU,QAAA,gBAAgB,oBAyB1B"}
1
+ {"version":3,"file":"0000-create-view-policy.js","sourceRoot":"","sources":["../../../../src/components/authorize/migrations/0000-create-view-policy.ts"],"names":[],"mappings":";;;;;;AAEA,uCAA8C;AAC9C,2CAAuC;AACvC,6DAAqC;AACrC,sCAAgD;AAEhD,MAAM,IAAI,GAAG;IACX,OAAO;IACP,4CAA4C;IAE5C,gBAAgB;IAChB,4CAA4C;IAC5C;;;;;;;;;;;;kDAYgD,4BAAmB,CAAC,WAAW;kDAC/B,4BAAmB,CAAC,WAAW;;;;;;;;;;;;uBAY1D,4BAAmB,CAAC,WAAW,iDAAiD,4BAAmB,CAAC,cAAc;;uBAElH,4BAAmB,CAAC,WAAW,iDAAiD,4BAAmB,CAAC,cAAc;;;;0DAI/E;CACzD,CAAC;AAEK,MAAM,gBAAgB,GAAG,CAAC,IAA+B,EAAE,EAAE,CAAC,CAAC;IACpE,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5C,EAAE,EAAE,KAAK,EAAE,WAA4B,EAAE,EAAE;QACzC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAA,iBAAO,EAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YACvD,MAAM,IAAA,oBAAQ,EAAC;gBACb,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,gEAAgE;aAC1E,CAAC,CAAC;QACL,CAAC;QAED,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;QAC/B,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAiB,aAAa,CAAC,CAAC;QACtE,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAA,oBAAQ,EAAC;gBACb,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,sDAAsD,aAAa,wBAAwB;aACrG,CAAC,CAAC;QACL,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,2BAAiB,CAAC,IAAI,CAAC,2CAA2C,EAAE,GAAG,CAAC,CAAC;YACzE,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC9B,2BAAiB,CAAC,IAAI,CAAC,2CAA2C,EAAE,GAAG,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAzBU,QAAA,gBAAgB,oBAyB1B"}
@@ -11,15 +11,6 @@ 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
- };
23
14
  var __importDefault = (this && this.__importDefault) || function (mod) {
24
15
  return (mod && mod.__esModule) ? mod : { "default": mod };
25
16
  };
@@ -46,105 +37,101 @@ let AuthorizeProvider = AuthorizeProvider_1 = class AuthorizeProvider {
46
37
  }
47
38
  // -------------------------------------------------------------------------------------------------------------------
48
39
  normalizeEnforcePayload(opts) {
49
- var _a, _b, _c;
50
40
  const { subject, object, scope } = opts;
51
41
  return {
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, ''),
42
+ subject: subject?.toLowerCase() || '',
43
+ object: scope?.toLowerCase() ??
44
+ (object?.toLowerCase() || '')?.replace(/controller/g, '')?.replace(/.prototype/g, ''),
54
45
  action: common_1.EnforcerDefinitions.ACTION_EXECUTE,
55
46
  };
56
47
  }
57
48
  // -------------------------------------------------------------------------------------------------------------------
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
- }
49
+ async authorizePermission(userId, object, scopes) {
50
+ let isSingleAuthRs = false;
51
+ let isScopeAuthRs = true;
52
+ const enforcer = await this.enforcerService.getTypeEnforcer(userId);
53
+ if (!enforcer) {
54
+ this.logger.debug('[authorizePermission] Skip authorization for NULL enforcer!');
55
+ return false;
56
+ }
57
+ const subject = `${common_1.EnforcerDefinitions.PREFIX_USER}_${userId}`;
58
+ for (const scope of scopes ?? []) {
59
+ const enforcePayload = this.normalizePayloadFn?.({ subject, object, scope }) ??
60
+ this.normalizeEnforcePayload({ subject, object, scope });
61
+ isScopeAuthRs = await enforcer.enforce(enforcePayload.subject, enforcePayload.object, enforcePayload.action);
62
+ this.logger.debug('[authorizePermission] Payload: %j | scopeAuthRs: %s', enforcePayload, isScopeAuthRs);
78
63
  if (!isScopeAuthRs) {
79
- return isScopeAuthRs;
64
+ this.logger.debug('[authorizePermission] Permission denied | Payload: %j', enforcePayload);
65
+ break;
80
66
  }
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
- });
67
+ }
68
+ if (!isScopeAuthRs) {
69
+ return isScopeAuthRs;
70
+ }
71
+ if (object) {
72
+ const enforcePayload = this.normalizePayloadFn?.({ subject, object }) ??
73
+ this.normalizeEnforcePayload({ subject, object });
74
+ isSingleAuthRs = await enforcer.enforce(enforcePayload.subject, enforcePayload.object, enforcePayload.action);
75
+ this.logger.debug('[authorizePermission] Payload: %j | singleAuthRs: %s', enforcePayload, isSingleAuthRs);
76
+ }
77
+ return isScopeAuthRs && isSingleAuthRs;
88
78
  }
89
79
  // -------------------------------------------------------------------------------------------------------------------
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;
80
+ async authorize(context, metadata) {
81
+ const t = new Date().getTime();
82
+ if (context?.principals.length <= 0) {
83
+ return authorization_1.AuthorizationDecision.DENY;
84
+ }
85
+ const { userId, roles: encodedRoles } = context.principals[0];
86
+ const roleIds = [];
87
+ const roleIdentifiers = [];
88
+ const roles = [];
89
+ for (const encodedRole of encodedRoles) {
90
+ if (!encodedRole || (0, isEmpty_1.default)(encodedRole)) {
91
+ continue;
96
92
  }
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;
93
+ const { id, identifier } = encodedRole;
94
+ roleIds.push((0, utilities_1.int)(id));
95
+ roleIdentifiers.push(identifier);
96
+ roles.push({ id, identifier });
97
+ }
98
+ // DENY all unknown user and unknow roles
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
+ // Verify static roles
105
+ if ((0, intersection_1.default)(this.alwaysAllowRoles, roleIdentifiers)?.length > 0 ||
106
+ (0, intersection_1.default)(allowedRoles, roleIdentifiers)?.length > 0) {
107
+ return authorization_1.AuthorizationDecision.ALLOW;
108
+ }
109
+ if (voters && voters?.length > 0) {
110
+ const voterRs = await Promise.all(voters?.map(el => {
111
+ switch (typeof el) {
112
+ case 'function': {
113
+ return el?.(context, metadata);
114
+ }
115
+ default: {
116
+ throw (0, utilities_1.getError)({
117
+ message: '[authorize][voter] voter implementation must be function type!',
118
+ });
119
+ }
104
120
  }
105
- const { id, identifier } = encodedRole;
106
- roleIds.push((0, utilities_1.int)(id));
107
- roleIdentifiers.push(identifier);
108
- roles.push({ id, identifier });
109
- }
110
- // DENY all unknown user and unknow roles
111
- if (!userId || !(roles === null || roles === void 0 ? void 0 : roles.length)) {
112
- return authorization_1.AuthorizationDecision.DENY;
113
- }
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) {
121
+ }));
122
+ const voterSet = new Set(voterRs);
123
+ if (voterSet.size === 1 && voterSet.has(authorization_1.AuthorizationDecision.ALLOW)) {
119
124
  return authorization_1.AuthorizationDecision.ALLOW;
120
125
  }
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
- }
126
+ if (voterSet.has(authorization_1.AuthorizationDecision.DENY)) {
127
+ return authorization_1.AuthorizationDecision.DENY;
141
128
  }
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
- });
129
+ }
130
+ // Authorize by role and user permissions
131
+ const isAuthorized = await this.authorizePermission(userId, requestResource, scopes);
132
+ const rs = isAuthorized ? authorization_1.AuthorizationDecision.ALLOW : authorization_1.AuthorizationDecision.DENY;
133
+ this.logger.debug('[authorize] Authorizing... | Resource: %s | allowedRoles: %j | scopes: %j | Took: %d(ms)', requestResource, allowedRoles, scopes, new Date().getTime() - t);
134
+ return rs;
148
135
  }
149
136
  };
150
137
  exports.AuthorizeProvider = AuthorizeProvider;