@drax/identity-back 0.0.31 → 0.1.2

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 (156) hide show
  1. package/dist/config/IdentityConfig.js +2 -3
  2. package/dist/factory/RoleServiceFactory.js +8 -7
  3. package/dist/factory/TenantServiceFactory.js +8 -7
  4. package/dist/factory/UserApiKeyServiceFactory.js +24 -0
  5. package/dist/factory/UserServiceFactory.js +8 -7
  6. package/dist/graphql/resolvers/user-api-key.resolvers.js +89 -0
  7. package/dist/graphql/resolvers/user.resolvers.js +7 -2
  8. package/dist/graphql/types/userApiKey.graphql +33 -0
  9. package/dist/index.js +4 -2
  10. package/dist/interfaces/IUserApiKeyRepository.js +1 -0
  11. package/dist/middleware/apiKeyMiddleware.js +30 -0
  12. package/dist/middleware/rbacMiddleware.js +0 -1
  13. package/dist/models/UserApiKeyModel.js +44 -0
  14. package/dist/permissions/IdentityPermissions.js +6 -0
  15. package/dist/rbac/Rbac.js +8 -0
  16. package/dist/repository/mongo/UserApiKeyMongoRepository.js +82 -0
  17. package/dist/repository/mongo/UserMongoRepository.js +3 -3
  18. package/dist/repository/sqlite/RoleSqliteRepository.js +16 -18
  19. package/dist/repository/sqlite/TenantSqliteRepository.js +13 -11
  20. package/dist/repository/sqlite/UserApiKeySqliteRepository.js +147 -0
  21. package/dist/repository/sqlite/UserSqliteRepository.js +29 -26
  22. package/dist/routes/UserApiKeyRoutes.js +119 -0
  23. package/dist/routes/UserRoutes.js +5 -1
  24. package/dist/services/TenantService.js +42 -11
  25. package/dist/services/UserApiKeyService.js +90 -0
  26. package/dist/services/UserService.js +34 -8
  27. package/dist/setup/LoadIdentityConfigFromEnv.js +3 -3
  28. package/dist/utils/AuthUtils.js +10 -0
  29. package/dist/zod/UserApiKeyZod.js +9 -0
  30. package/package.json +7 -6
  31. package/src/config/IdentityConfig.ts +4 -3
  32. package/src/factory/RoleServiceFactory.ts +11 -11
  33. package/src/factory/TenantServiceFactory.ts +11 -11
  34. package/src/factory/UserApiKeyServiceFactory.ts +30 -0
  35. package/src/factory/UserServiceFactory.ts +8 -7
  36. package/src/graphql/resolvers/tenant.resolvers.ts +0 -1
  37. package/src/graphql/resolvers/user-api-key.resolvers.ts +94 -0
  38. package/src/graphql/resolvers/user.resolvers.ts +9 -2
  39. package/src/graphql/types/userApiKey.graphql +33 -0
  40. package/src/index.ts +10 -0
  41. package/src/interfaces/IUserApiKeyRepository.ts +8 -0
  42. package/src/middleware/apiKeyMiddleware.ts +35 -0
  43. package/src/middleware/rbacMiddleware.ts +1 -2
  44. package/src/models/UserApiKeyModel.ts +59 -0
  45. package/src/permissions/IdentityPermissions.ts +7 -0
  46. package/src/rbac/Rbac.ts +13 -2
  47. package/src/repository/mongo/UserApiKeyMongoRepository.ts +114 -0
  48. package/src/repository/mongo/UserMongoRepository.ts +3 -3
  49. package/src/repository/sqlite/RoleSqliteRepository.ts +28 -20
  50. package/src/repository/sqlite/TenantSqliteRepository.ts +25 -11
  51. package/src/repository/sqlite/UserApiKeySqliteRepository.ts +197 -0
  52. package/src/repository/sqlite/UserSqliteRepository.ts +37 -27
  53. package/src/routes/UserApiKeyRoutes.ts +128 -0
  54. package/src/routes/UserRoutes.ts +5 -1
  55. package/src/services/TenantService.ts +49 -17
  56. package/src/services/UserApiKeyService.ts +111 -0
  57. package/src/services/UserService.ts +74 -48
  58. package/src/setup/LoadIdentityConfigFromEnv.ts +5 -3
  59. package/src/utils/AuthUtils.ts +11 -0
  60. package/src/zod/UserApiKeyZod.ts +15 -0
  61. package/test/data-obj/apikey/root-mongo-user-apikey.ts +10 -0
  62. package/test/data-obj/roles/admin-mongo-role.ts +0 -3
  63. package/test/initializers/RoleMongoInitializer.ts +1 -0
  64. package/test/initializers/RoleSqliteInitializer.ts +1 -0
  65. package/test/initializers/UserMongoInitializer.ts +18 -0
  66. package/test/repository/mongo/user-apikey-mongo-repository.test.ts +73 -0
  67. package/tsconfig.tsbuildinfo +1 -1
  68. package/types/config/IdentityConfig.d.ts +2 -3
  69. package/types/config/IdentityConfig.d.ts.map +1 -1
  70. package/types/errors/BadCredentialsError.d.ts +6 -0
  71. package/types/errors/BadCredentialsError.d.ts.map +1 -0
  72. package/types/errors/UnauthorizedError.d.ts +6 -0
  73. package/types/errors/UnauthorizedError.d.ts.map +1 -0
  74. package/types/factory/RoleServiceFactory.d.ts +4 -0
  75. package/types/factory/RoleServiceFactory.d.ts.map +1 -1
  76. package/types/factory/TenantServiceFactory.d.ts +4 -0
  77. package/types/factory/TenantServiceFactory.d.ts.map +1 -1
  78. package/types/factory/UserApiKeyServiceFactory.d.ts +4 -0
  79. package/types/factory/UserApiKeyServiceFactory.d.ts.map +1 -0
  80. package/types/factory/UserServiceFactory.d.ts +4 -0
  81. package/types/factory/UserServiceFactory.d.ts.map +1 -1
  82. package/types/graphql/index.d.ts +6 -0
  83. package/types/graphql/resolvers/tenant.resolvers.d.ts.map +1 -1
  84. package/types/graphql/resolvers/user-api-key.resolvers.d.ts +37 -0
  85. package/types/graphql/resolvers/user-api-key.resolvers.d.ts.map +1 -0
  86. package/types/graphql/resolvers/user.resolvers.d.ts.map +1 -1
  87. package/types/index.d.ts +35 -0
  88. package/types/index.d.ts.map +1 -1
  89. package/types/interfaces/IRoleRepository.d.ts +9 -0
  90. package/types/interfaces/ITenantRepository.d.ts +9 -0
  91. package/types/interfaces/IUserApiKeyRepository.d.ts +7 -0
  92. package/types/interfaces/IUserApiKeyRepository.d.ts.map +1 -0
  93. package/types/interfaces/IUserRepository.d.ts +10 -0
  94. package/types/middleware/apiKeyMiddleware.d.ts +4 -0
  95. package/types/middleware/apiKeyMiddleware.d.ts.map +1 -0
  96. package/types/middleware/jwtMiddleware.d.ts +4 -0
  97. package/types/middleware/rbacMiddleware.d.ts +4 -0
  98. package/types/middleware/rbacMiddleware.d.ts.map +1 -1
  99. package/types/models/RoleModel.d.ts +16 -0
  100. package/types/models/TenantModel.d.ts +16 -0
  101. package/types/models/UserApiKeyModel.d.ts +16 -0
  102. package/types/models/UserApiKeyModel.d.ts.map +1 -0
  103. package/types/models/UserGroupModel.d.ts +16 -0
  104. package/types/models/UserModel.d.ts +16 -0
  105. package/types/permissions/IdentityPermissions.d.ts +27 -0
  106. package/types/permissions/IdentityPermissions.d.ts.map +1 -0
  107. package/types/rbac/Rbac.d.ts +15 -0
  108. package/types/rbac/Rbac.d.ts.map +1 -1
  109. package/types/repository/mongo/RoleMongoRepository.d.ts +14 -0
  110. package/types/repository/mongo/TenantMongoRepository.d.ts +14 -0
  111. package/types/repository/mongo/UserApiKeyMongoRepository.d.ts +14 -0
  112. package/types/repository/mongo/UserApiKeyMongoRepository.d.ts.map +1 -0
  113. package/types/repository/mongo/UserMongoRepository.d.ts +17 -0
  114. package/types/repository/sqlite/RoleSqliteRepository.d.ts +22 -0
  115. package/types/repository/sqlite/RoleSqliteRepository.d.ts.map +1 -1
  116. package/types/repository/sqlite/TenantSqliteRepository.d.ts +19 -0
  117. package/types/repository/sqlite/TenantSqliteRepository.d.ts.map +1 -1
  118. package/types/repository/sqlite/UserApiKeySqliteRepository.d.ts +19 -0
  119. package/types/repository/sqlite/UserApiKeySqliteRepository.d.ts.map +1 -0
  120. package/types/repository/sqlite/UserSqliteRepository.d.ts +25 -0
  121. package/types/repository/sqlite/UserSqliteRepository.d.ts.map +1 -1
  122. package/types/routes/RoleRoutes.d.ts +4 -0
  123. package/types/routes/TenantRoutes.d.ts +4 -0
  124. package/types/routes/UserApiKeyRoutes.d.ts +4 -0
  125. package/types/routes/UserApiKeyRoutes.d.ts.map +1 -0
  126. package/types/routes/UserAvatarRoutes.d.ts +4 -0
  127. package/types/routes/UserRoutes.d.ts +4 -0
  128. package/types/routes/UserRoutes.d.ts.map +1 -1
  129. package/types/services/PermissionService.d.ts +9 -0
  130. package/types/services/PermissionService.d.ts.map +1 -0
  131. package/types/services/RoleService.d.ts +16 -0
  132. package/types/services/TenantService.d.ts +16 -0
  133. package/types/services/TenantService.d.ts.map +1 -1
  134. package/types/services/UserApiKeyService.d.ts +15 -0
  135. package/types/services/UserApiKeyService.d.ts.map +1 -0
  136. package/types/services/UserService.d.ts +21 -0
  137. package/types/services/UserService.d.ts.map +1 -1
  138. package/types/setup/CreateOrUpdateRole.d.ts +5 -0
  139. package/types/setup/CreateUserIfNotExist.d.ts +5 -0
  140. package/types/setup/LoadIdentityConfigFromEnv.d.ts +4 -0
  141. package/types/setup/LoadIdentityConfigFromEnv.d.ts.map +1 -1
  142. package/types/setup/LoadPermissions.d.ts +4 -0
  143. package/types/setup/LoadPermissions.d.ts.map +1 -0
  144. package/types/setup/RecoveryUserPassword.d.ts +4 -0
  145. package/types/utils/AuthUtils.d.ts +18 -0
  146. package/types/utils/AuthUtils.d.ts.map +1 -1
  147. package/types/zod/RoleZod.d.ts +10 -0
  148. package/types/zod/RoleZod.d.ts.map +1 -0
  149. package/types/zod/TenantZod.d.ts +10 -0
  150. package/types/zod/TenantZod.d.ts.map +1 -0
  151. package/types/zod/UserApiKeyZod.d.ts +16 -0
  152. package/types/zod/UserApiKeyZod.d.ts.map +1 -0
  153. package/types/zod/UserZod.d.ts +53 -0
  154. package/types/zod/UserZod.d.ts.map +1 -0
  155. package/src/utils/DbSetupUtils.ts +0 -41
  156. package/types/utils/DbSetupUtils.d.ts.map +0 -1
@@ -0,0 +1,73 @@
1
+ import {before, after, describe, it, test} from "node:test"
2
+ import assert, {equal} from "assert";
3
+ import UserApiKeyMongoRepository from "../../../src/repository/mongo/UserApiKeyMongoRepository";
4
+ import MongoInMemory from "../../db/MongoInMemory";
5
+ import RoleMongoInitializer from "../../initializers/RoleMongoInitializer";
6
+ import UserMongoInitializer from "../../initializers/UserMongoInitializer";
7
+ import {IUserApiKey} from "../../../../identity-share/src/interfaces/IUserApiKey";
8
+ import type {IDraxPaginateResult} from "@drax/common-share";
9
+ import {mongoose, ValidationError} from "@drax/common-back";
10
+
11
+
12
+ test.describe("UserApiKeyRepositoryTest", function () {
13
+
14
+ let userApiKeyRepository = new UserApiKeyMongoRepository()
15
+ let data
16
+ let adminRole
17
+ let rootUser
18
+
19
+ before(async () => {
20
+ await MongoInMemory.connect()
21
+ adminRole = await RoleMongoInitializer.initAdminRole()
22
+ rootUser = await UserMongoInitializer.initRootUser()
23
+
24
+ //console.log("BEFORE USER", MongoInMemory.mongooseStatus, MongoInMemory.serverStatus)
25
+ return
26
+ })
27
+
28
+ after(async () => {
29
+ await MongoInMemory.DropAndClose()
30
+ //console.log("AFTER USER", MongoInMemory.status, MongoInMemory.serverStatus)
31
+ return
32
+ })
33
+
34
+ test("Create mongo user apikey successfully", async function () {
35
+ data = (await import("../../data-obj/apikey/root-mongo-user-apikey")).default
36
+ let userApiKeyCreated = await userApiKeyRepository.create(data)
37
+ equal(userApiKeyCreated.name, data.name)
38
+ })
39
+
40
+ test("Find mongo user by ID successfully", async function () {
41
+ data = (await import("../../data-obj/apikey/root-mongo-user-apikey")).default
42
+ let userApiKeyFound = await userApiKeyRepository.findById(data._id)
43
+
44
+ equal(userApiKeyFound.name, data.name)
45
+ })
46
+
47
+ test("Find mongo user by secret successfully", async function () {
48
+ data = (await import("../../data-obj/apikey/root-mongo-user-apikey")).default
49
+ console.log("Data:",data)
50
+ let userApiKeyFound = await userApiKeyRepository.findBySecret(data.secret)
51
+ console.log("userApiKeyFound",userApiKeyFound)
52
+ equal(userApiKeyFound.secret, data.secret)
53
+ })
54
+
55
+
56
+ test("Update mongo user apikey successfully.", async function () {
57
+ data = (await import("../../data-obj/apikey/root-mongo-user-apikey")).default
58
+ data.name = "AdminUpdated"
59
+ let userUpdated: IUserApiKey = await userApiKeyRepository.update(data._id, data)
60
+ equal(userUpdated.name, userUpdated.name)
61
+ })
62
+
63
+
64
+ test("Paginate mongo users successfully.", async function () {
65
+ let paginateUsersApiKey: IDraxPaginateResult<IUserApiKey> = await userApiKeyRepository.paginate({
66
+ page: 1,
67
+ limit: 5
68
+ })
69
+ equal(paginateUsersApiKey.items.length, 1)
70
+ equal(paginateUsersApiKey.total, 1)
71
+ equal(paginateUsersApiKey.page, 1)
72
+ })
73
+ })