@punks/backend-entity-manager 0.0.71 → 0.0.73

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 (328) hide show
  1. package/dist/cjs/index.js +793 -37
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/types/__test__/entity/foo.d.ts +7 -2
  4. package/dist/cjs/types/__test__/providers/typeorm/entity/foo.d.ts +14 -2
  5. package/dist/cjs/types/abstractions/actions.d.ts +21 -8
  6. package/dist/cjs/types/abstractions/adapters.d.ts +3 -2
  7. package/dist/cjs/types/abstractions/authorization.d.ts +6 -4
  8. package/dist/cjs/types/abstractions/commands.d.ts +11 -0
  9. package/dist/cjs/types/abstractions/errors.d.ts +3 -2
  10. package/dist/cjs/types/abstractions/index.d.ts +2 -1
  11. package/dist/cjs/types/abstractions/manager.d.ts +12 -9
  12. package/dist/cjs/types/abstractions/pipelines.d.ts +10 -0
  13. package/dist/cjs/types/abstractions/queries.d.ts +11 -1
  14. package/dist/cjs/types/abstractions/repository.d.ts +9 -5
  15. package/dist/cjs/types/actions/count.d.ts +8 -0
  16. package/dist/cjs/types/actions/deleteItems.d.ts +8 -0
  17. package/dist/cjs/types/actions/exists.d.ts +8 -0
  18. package/dist/cjs/types/authorization/allowAll.d.ts +1 -0
  19. package/dist/cjs/types/commands/deleteItems.d.ts +9 -0
  20. package/dist/cjs/types/concrete/index.d.ts +23 -17
  21. package/dist/cjs/types/index.d.ts +1 -0
  22. package/dist/cjs/types/integrations/repository/typeorm/queryBuilder.d.ts +4 -0
  23. package/dist/cjs/types/integrations/repository/typeorm/repository.d.ts +4 -4
  24. package/dist/cjs/types/platforms/nest/__test__/server/app/auth/auth.dto.d.ts +6 -14
  25. package/dist/cjs/types/platforms/nest/__test__/server/app/companies/company.actions.d.ts +2 -2
  26. package/dist/cjs/types/platforms/nest/__test__/server/app/divisions/division.actions.d.ts +2 -2
  27. package/dist/cjs/types/platforms/nest/__test__/server/app/organizations/organization.actions.d.ts +2 -2
  28. package/dist/cjs/types/platforms/nest/__test__/server/app/organizations/organization.controller.d.ts +5 -1
  29. package/dist/cjs/types/platforms/nest/__test__/server/app/organizations/templates/index.d.ts +2 -0
  30. package/dist/cjs/types/platforms/nest/__test__/server/app/organizations/templates/organization-register/index.d.ts +18 -0
  31. package/dist/cjs/types/platforms/nest/__test__/server/app/organizations/templates/organization-register/models.d.ts +17 -0
  32. package/dist/cjs/types/platforms/nest/__test__/server/app/roles/role.actions.d.ts +2 -2
  33. package/dist/cjs/types/platforms/nest/__test__/server/app/tenants/templates/index.d.ts +3 -0
  34. package/dist/cjs/types/platforms/nest/__test__/server/app/tenants/templates/instance-initialize/index.d.ts +11 -0
  35. package/dist/cjs/types/platforms/nest/__test__/server/app/tenants/templates/instance-initialize/models.d.ts +4 -0
  36. package/dist/cjs/types/platforms/nest/__test__/server/app/tenants/templates/tenant-initialize/index.d.ts +13 -0
  37. package/dist/cjs/types/platforms/nest/__test__/server/app/tenants/templates/tenant-initialize/models.d.ts +17 -0
  38. package/dist/cjs/types/platforms/nest/__test__/server/app/tenants/tenant.actions.d.ts +2 -2
  39. package/dist/cjs/types/platforms/nest/__test__/server/app/tenants/tenant.controller.d.ts +7 -1
  40. package/dist/cjs/types/platforms/nest/__test__/server/app/userGroupMembers/userGroupMember.actions.d.ts +2 -2
  41. package/dist/cjs/types/platforms/nest/__test__/server/app/userGroups/userGroup.actions.d.ts +2 -2
  42. package/dist/cjs/types/platforms/nest/__test__/server/app/userProfiles/userProfile.actions.d.ts +2 -2
  43. package/dist/cjs/types/platforms/nest/__test__/server/app/userRoles/userRole.actions.d.ts +2 -2
  44. package/dist/cjs/types/platforms/nest/__test__/server/app/users/user.actions.d.ts +2 -2
  45. package/dist/cjs/types/platforms/nest/__test__/server/entities/companies/company.adapter.d.ts +3 -3
  46. package/dist/cjs/types/platforms/nest/__test__/server/entities/companies/company.authentication.d.ts +1 -0
  47. package/dist/cjs/types/platforms/nest/__test__/server/entities/companies/company.manager.d.ts +2 -2
  48. package/dist/cjs/types/platforms/nest/__test__/server/entities/companies/company.models.d.ts +8 -3
  49. package/dist/cjs/types/platforms/nest/__test__/server/entities/divisions/division.adapter.d.ts +3 -3
  50. package/dist/cjs/types/platforms/nest/__test__/server/entities/divisions/division.authentication.d.ts +1 -0
  51. package/dist/cjs/types/platforms/nest/__test__/server/entities/divisions/division.manager.d.ts +2 -2
  52. package/dist/cjs/types/platforms/nest/__test__/server/entities/divisions/division.models.d.ts +8 -3
  53. package/dist/cjs/types/platforms/nest/__test__/server/entities/foo/actions.d.ts +2 -2
  54. package/dist/cjs/types/platforms/nest/__test__/server/entities/foo/authentication.d.ts +1 -0
  55. package/dist/cjs/types/platforms/nest/__test__/server/entities/foo/manager.d.ts +2 -2
  56. package/dist/cjs/types/platforms/nest/__test__/server/entities/foo/models.d.ts +13 -1
  57. package/dist/cjs/types/platforms/nest/__test__/server/entities/organizations/organization.adapter.d.ts +3 -3
  58. package/dist/cjs/types/platforms/nest/__test__/server/entities/organizations/organization.authentication.d.ts +1 -0
  59. package/dist/cjs/types/platforms/nest/__test__/server/entities/organizations/organization.manager.d.ts +2 -2
  60. package/dist/cjs/types/platforms/nest/__test__/server/entities/organizations/organization.models.d.ts +8 -3
  61. package/dist/cjs/types/platforms/nest/__test__/server/entities/roles/role.adapter.d.ts +3 -3
  62. package/dist/cjs/types/platforms/nest/__test__/server/entities/roles/role.authentication.d.ts +1 -0
  63. package/dist/cjs/types/platforms/nest/__test__/server/entities/roles/role.manager.d.ts +2 -2
  64. package/dist/cjs/types/platforms/nest/__test__/server/entities/roles/role.models.d.ts +8 -3
  65. package/dist/cjs/types/platforms/nest/__test__/server/entities/tenants/tenant.adapter.d.ts +3 -3
  66. package/dist/cjs/types/platforms/nest/__test__/server/entities/tenants/tenant.authentication.d.ts +1 -0
  67. package/dist/cjs/types/platforms/nest/__test__/server/entities/tenants/tenant.manager.d.ts +2 -2
  68. package/dist/cjs/types/platforms/nest/__test__/server/entities/tenants/tenant.models.d.ts +10 -3
  69. package/dist/cjs/types/platforms/nest/__test__/server/entities/userGroupMembers/userGroupMember.authentication.d.ts +1 -0
  70. package/dist/cjs/types/platforms/nest/__test__/server/entities/userGroupMembers/userGroupMember.manager.d.ts +2 -2
  71. package/dist/cjs/types/platforms/nest/__test__/server/entities/userGroupMembers/userGroupMember.models.d.ts +5 -0
  72. package/dist/cjs/types/platforms/nest/__test__/server/entities/userGroups/userGroup.adapter.d.ts +3 -3
  73. package/dist/cjs/types/platforms/nest/__test__/server/entities/userGroups/userGroup.authentication.d.ts +1 -0
  74. package/dist/cjs/types/platforms/nest/__test__/server/entities/userGroups/userGroup.manager.d.ts +2 -2
  75. package/dist/cjs/types/platforms/nest/__test__/server/entities/userGroups/userGroup.models.d.ts +8 -3
  76. package/dist/cjs/types/platforms/nest/__test__/server/entities/userProfiles/userProfile.adapter.d.ts +3 -3
  77. package/dist/cjs/types/platforms/nest/__test__/server/entities/userProfiles/userProfile.authentication.d.ts +1 -0
  78. package/dist/cjs/types/platforms/nest/__test__/server/entities/userProfiles/userProfile.manager.d.ts +2 -2
  79. package/dist/cjs/types/platforms/nest/__test__/server/entities/userProfiles/userProfile.models.d.ts +8 -3
  80. package/dist/cjs/types/platforms/nest/__test__/server/entities/userRoles/userRole.adapter.d.ts +3 -3
  81. package/dist/cjs/types/platforms/nest/__test__/server/entities/userRoles/userRole.authentication.d.ts +1 -0
  82. package/dist/cjs/types/platforms/nest/__test__/server/entities/userRoles/userRole.manager.d.ts +2 -2
  83. package/dist/cjs/types/platforms/nest/__test__/server/entities/userRoles/userRole.models.d.ts +8 -3
  84. package/dist/cjs/types/platforms/nest/__test__/server/entities/users/user.adapter.d.ts +3 -3
  85. package/dist/cjs/types/platforms/nest/__test__/server/entities/users/user.authentication.d.ts +1 -0
  86. package/dist/cjs/types/platforms/nest/__test__/server/entities/users/user.manager.d.ts +2 -2
  87. package/dist/cjs/types/platforms/nest/__test__/server/entities/users/user.models.d.ts +8 -3
  88. package/dist/cjs/types/platforms/nest/__test__/server/index.d.ts +1 -0
  89. package/dist/cjs/types/platforms/nest/__test__/server/infrastructure/authentication/index.d.ts +1 -1
  90. package/dist/cjs/types/platforms/nest/__test__/server/infrastructure/authentication/models/index.d.ts +9 -0
  91. package/dist/cjs/types/platforms/nest/__test__/server/infrastructure/authentication/processors/entity-auth/index.d.ts +1 -0
  92. package/dist/cjs/types/platforms/nest/__test__/server/infrastructure/authentication/providers/index.d.ts +5 -2
  93. package/dist/cjs/types/platforms/nest/__test__/server/infrastructure/authentication/providers/roles/index.d.ts +14 -0
  94. package/dist/cjs/types/platforms/nest/__test__/server/{app/auth/services/auth.userRoles.service.d.ts → infrastructure/authentication/providers/userRoles/index.d.ts} +6 -6
  95. package/dist/cjs/types/platforms/nest/__test__/server/infrastructure/authentication/providers/users/index.d.ts +23 -0
  96. package/dist/cjs/types/platforms/nest/__test__/server/infrastructure/authentication/roles/index.d.ts +14 -0
  97. package/dist/cjs/types/platforms/nest/__test__/server/infrastructure/authentication/types.d.ts +2 -1
  98. package/dist/cjs/types/platforms/nest/__test__/tests/ports.d.ts +9 -0
  99. package/dist/cjs/types/platforms/nest/authentication/entityAuthorizationMiddleware.d.ts +1 -0
  100. package/dist/cjs/types/platforms/nest/base/entityActions.d.ts +4 -3
  101. package/dist/cjs/types/platforms/nest/base/entityManager.d.ts +3 -2
  102. package/dist/cjs/types/platforms/nest/decorators/index.d.ts +1 -0
  103. package/dist/cjs/types/platforms/nest/decorators/pipelines.d.ts +4 -0
  104. package/dist/cjs/types/platforms/nest/decorators/symbols.d.ts +1 -0
  105. package/dist/cjs/types/platforms/nest/extensions/authentication/abstractions/index.d.ts +3 -2
  106. package/dist/cjs/types/platforms/nest/extensions/authentication/handlers/handlers.d.ts +3 -1
  107. package/dist/cjs/types/platforms/nest/extensions/authentication/handlers/index.d.ts +2 -0
  108. package/dist/cjs/types/platforms/nest/extensions/authentication/handlers/user-create/index.d.ts +14 -0
  109. package/dist/cjs/types/platforms/nest/extensions/authentication/handlers/user-create/types.d.ts +16 -0
  110. package/dist/cjs/types/platforms/nest/extensions/authentication/handlers/user-delete/index.d.ts +7 -0
  111. package/dist/cjs/types/platforms/nest/extensions/authentication/handlers/user-delete/types.d.ts +3 -0
  112. package/dist/cjs/types/platforms/nest/extensions/authentication/services/authentication/index.d.ts +8 -1
  113. package/dist/cjs/types/platforms/nest/index.d.ts +1 -0
  114. package/dist/cjs/types/platforms/nest/ioc/storage.d.ts +6 -0
  115. package/dist/cjs/types/platforms/nest/module.d.ts +6 -1
  116. package/dist/cjs/types/platforms/nest/pipelines/builder/concrete.d.ts +4 -0
  117. package/dist/cjs/types/platforms/nest/pipelines/builder/index.d.ts +7 -0
  118. package/dist/cjs/types/platforms/nest/pipelines/builder/types.d.ts +14 -0
  119. package/dist/cjs/types/platforms/nest/pipelines/index.d.ts +2 -0
  120. package/dist/cjs/types/platforms/nest/pipelines/providers.d.ts +3 -0
  121. package/dist/cjs/types/platforms/nest/pipelines/runner/index.d.ts +11 -0
  122. package/dist/cjs/types/platforms/nest/pipelines/template/errors.d.ts +6 -0
  123. package/dist/cjs/types/platforms/nest/pipelines/template/index.d.ts +22 -0
  124. package/dist/cjs/types/platforms/nest/pipelines/template/utils.d.ts +6 -0
  125. package/dist/cjs/types/platforms/nest/processors/initializer/index.d.ts +1 -0
  126. package/dist/cjs/types/platforms/nest/services/manager/index.d.ts +2 -2
  127. package/dist/cjs/types/platforms/nest/session/storage.d.ts +1 -1
  128. package/dist/cjs/types/providers/services.d.ts +31 -10
  129. package/dist/cjs/types/queries/count.d.ts +10 -0
  130. package/dist/cjs/types/queries/exists.d.ts +10 -0
  131. package/dist/cjs/types/symbols/ioc.d.ts +9 -0
  132. package/dist/cjs/types/templates/index.d.ts +1 -0
  133. package/dist/cjs/types/templates/pipelines/controller/index.d.ts +5 -0
  134. package/dist/cjs/types/templates/pipelines/converters/index.d.ts +5 -0
  135. package/dist/cjs/types/templates/pipelines/index.d.ts +1 -0
  136. package/dist/cjs/types/templates/pipelines/instance/index.d.ts +19 -0
  137. package/dist/{esm/types/templates/queryBuilder.d.ts → cjs/types/templates/queryBuilder/index.d.ts} +7 -3
  138. package/dist/cjs/types/testing/mocks/repository.d.ts +2 -2
  139. package/dist/cjs/types/types/index.d.ts +2 -0
  140. package/dist/cjs/types/types/objects.d.ts +4 -0
  141. package/dist/cjs/types/types/pipelines.d.ts +109 -0
  142. package/dist/esm/index.js +792 -38
  143. package/dist/esm/index.js.map +1 -1
  144. package/dist/esm/types/__test__/entity/foo.d.ts +7 -2
  145. package/dist/esm/types/__test__/providers/typeorm/entity/foo.d.ts +14 -2
  146. package/dist/esm/types/abstractions/actions.d.ts +21 -8
  147. package/dist/esm/types/abstractions/adapters.d.ts +3 -2
  148. package/dist/esm/types/abstractions/authorization.d.ts +6 -4
  149. package/dist/esm/types/abstractions/commands.d.ts +11 -0
  150. package/dist/esm/types/abstractions/errors.d.ts +3 -2
  151. package/dist/esm/types/abstractions/index.d.ts +2 -1
  152. package/dist/esm/types/abstractions/manager.d.ts +12 -9
  153. package/dist/esm/types/abstractions/pipelines.d.ts +10 -0
  154. package/dist/esm/types/abstractions/queries.d.ts +11 -1
  155. package/dist/esm/types/abstractions/repository.d.ts +9 -5
  156. package/dist/esm/types/actions/count.d.ts +8 -0
  157. package/dist/esm/types/actions/deleteItems.d.ts +8 -0
  158. package/dist/esm/types/actions/exists.d.ts +8 -0
  159. package/dist/esm/types/authorization/allowAll.d.ts +1 -0
  160. package/dist/esm/types/commands/deleteItems.d.ts +9 -0
  161. package/dist/esm/types/concrete/index.d.ts +23 -17
  162. package/dist/esm/types/index.d.ts +1 -0
  163. package/dist/esm/types/integrations/repository/typeorm/queryBuilder.d.ts +4 -0
  164. package/dist/esm/types/integrations/repository/typeorm/repository.d.ts +4 -4
  165. package/dist/esm/types/platforms/nest/__test__/server/app/auth/auth.dto.d.ts +6 -14
  166. package/dist/esm/types/platforms/nest/__test__/server/app/companies/company.actions.d.ts +2 -2
  167. package/dist/esm/types/platforms/nest/__test__/server/app/divisions/division.actions.d.ts +2 -2
  168. package/dist/esm/types/platforms/nest/__test__/server/app/organizations/organization.actions.d.ts +2 -2
  169. package/dist/esm/types/platforms/nest/__test__/server/app/organizations/organization.controller.d.ts +5 -1
  170. package/dist/esm/types/platforms/nest/__test__/server/app/organizations/templates/index.d.ts +2 -0
  171. package/dist/esm/types/platforms/nest/__test__/server/app/organizations/templates/organization-register/index.d.ts +18 -0
  172. package/dist/esm/types/platforms/nest/__test__/server/app/organizations/templates/organization-register/models.d.ts +17 -0
  173. package/dist/esm/types/platforms/nest/__test__/server/app/roles/role.actions.d.ts +2 -2
  174. package/dist/esm/types/platforms/nest/__test__/server/app/tenants/templates/index.d.ts +3 -0
  175. package/dist/esm/types/platforms/nest/__test__/server/app/tenants/templates/instance-initialize/index.d.ts +11 -0
  176. package/dist/esm/types/platforms/nest/__test__/server/app/tenants/templates/instance-initialize/models.d.ts +4 -0
  177. package/dist/esm/types/platforms/nest/__test__/server/app/tenants/templates/tenant-initialize/index.d.ts +13 -0
  178. package/dist/esm/types/platforms/nest/__test__/server/app/tenants/templates/tenant-initialize/models.d.ts +17 -0
  179. package/dist/esm/types/platforms/nest/__test__/server/app/tenants/templates/tenant-initialize/pipeline.test.d.ts +1 -0
  180. package/dist/esm/types/platforms/nest/__test__/server/app/tenants/tenant.actions.d.ts +2 -2
  181. package/dist/esm/types/platforms/nest/__test__/server/app/tenants/tenant.controller.d.ts +7 -1
  182. package/dist/esm/types/platforms/nest/__test__/server/app/userGroupMembers/userGroupMember.actions.d.ts +2 -2
  183. package/dist/esm/types/platforms/nest/__test__/server/app/userGroups/userGroup.actions.d.ts +2 -2
  184. package/dist/esm/types/platforms/nest/__test__/server/app/userProfiles/userProfile.actions.d.ts +2 -2
  185. package/dist/esm/types/platforms/nest/__test__/server/app/userRoles/userRole.actions.d.ts +2 -2
  186. package/dist/esm/types/platforms/nest/__test__/server/app/users/user.actions.d.ts +2 -2
  187. package/dist/esm/types/platforms/nest/__test__/server/entities/companies/company.adapter.d.ts +3 -3
  188. package/dist/esm/types/platforms/nest/__test__/server/entities/companies/company.authentication.d.ts +1 -0
  189. package/dist/esm/types/platforms/nest/__test__/server/entities/companies/company.manager.d.ts +2 -2
  190. package/dist/esm/types/platforms/nest/__test__/server/entities/companies/company.models.d.ts +8 -3
  191. package/dist/esm/types/platforms/nest/__test__/server/entities/divisions/division.adapter.d.ts +3 -3
  192. package/dist/esm/types/platforms/nest/__test__/server/entities/divisions/division.authentication.d.ts +1 -0
  193. package/dist/esm/types/platforms/nest/__test__/server/entities/divisions/division.manager.d.ts +2 -2
  194. package/dist/esm/types/platforms/nest/__test__/server/entities/divisions/division.models.d.ts +8 -3
  195. package/dist/esm/types/platforms/nest/__test__/server/entities/foo/actions.d.ts +2 -2
  196. package/dist/esm/types/platforms/nest/__test__/server/entities/foo/authentication.d.ts +1 -0
  197. package/dist/esm/types/platforms/nest/__test__/server/entities/foo/manager.d.ts +2 -2
  198. package/dist/esm/types/platforms/nest/__test__/server/entities/foo/models.d.ts +13 -1
  199. package/dist/esm/types/platforms/nest/__test__/server/entities/organizations/organization.adapter.d.ts +3 -3
  200. package/dist/esm/types/platforms/nest/__test__/server/entities/organizations/organization.authentication.d.ts +1 -0
  201. package/dist/esm/types/platforms/nest/__test__/server/entities/organizations/organization.manager.d.ts +2 -2
  202. package/dist/esm/types/platforms/nest/__test__/server/entities/organizations/organization.models.d.ts +8 -3
  203. package/dist/esm/types/platforms/nest/__test__/server/entities/roles/role.adapter.d.ts +3 -3
  204. package/dist/esm/types/platforms/nest/__test__/server/entities/roles/role.authentication.d.ts +1 -0
  205. package/dist/esm/types/platforms/nest/__test__/server/entities/roles/role.manager.d.ts +2 -2
  206. package/dist/esm/types/platforms/nest/__test__/server/entities/roles/role.models.d.ts +8 -3
  207. package/dist/esm/types/platforms/nest/__test__/server/entities/tenants/tenant.adapter.d.ts +3 -3
  208. package/dist/esm/types/platforms/nest/__test__/server/entities/tenants/tenant.authentication.d.ts +1 -0
  209. package/dist/esm/types/platforms/nest/__test__/server/entities/tenants/tenant.manager.d.ts +2 -2
  210. package/dist/esm/types/platforms/nest/__test__/server/entities/tenants/tenant.models.d.ts +10 -3
  211. package/dist/esm/types/platforms/nest/__test__/server/entities/userGroupMembers/userGroupMember.authentication.d.ts +1 -0
  212. package/dist/esm/types/platforms/nest/__test__/server/entities/userGroupMembers/userGroupMember.manager.d.ts +2 -2
  213. package/dist/esm/types/platforms/nest/__test__/server/entities/userGroupMembers/userGroupMember.models.d.ts +5 -0
  214. package/dist/esm/types/platforms/nest/__test__/server/entities/userGroups/userGroup.adapter.d.ts +3 -3
  215. package/dist/esm/types/platforms/nest/__test__/server/entities/userGroups/userGroup.authentication.d.ts +1 -0
  216. package/dist/esm/types/platforms/nest/__test__/server/entities/userGroups/userGroup.manager.d.ts +2 -2
  217. package/dist/esm/types/platforms/nest/__test__/server/entities/userGroups/userGroup.models.d.ts +8 -3
  218. package/dist/esm/types/platforms/nest/__test__/server/entities/userProfiles/userProfile.adapter.d.ts +3 -3
  219. package/dist/esm/types/platforms/nest/__test__/server/entities/userProfiles/userProfile.authentication.d.ts +1 -0
  220. package/dist/esm/types/platforms/nest/__test__/server/entities/userProfiles/userProfile.manager.d.ts +2 -2
  221. package/dist/esm/types/platforms/nest/__test__/server/entities/userProfiles/userProfile.models.d.ts +8 -3
  222. package/dist/esm/types/platforms/nest/__test__/server/entities/userRoles/userRole.adapter.d.ts +3 -3
  223. package/dist/esm/types/platforms/nest/__test__/server/entities/userRoles/userRole.authentication.d.ts +1 -0
  224. package/dist/esm/types/platforms/nest/__test__/server/entities/userRoles/userRole.manager.d.ts +2 -2
  225. package/dist/esm/types/platforms/nest/__test__/server/entities/userRoles/userRole.models.d.ts +8 -3
  226. package/dist/esm/types/platforms/nest/__test__/server/entities/users/user.adapter.d.ts +3 -3
  227. package/dist/esm/types/platforms/nest/__test__/server/entities/users/user.authentication.d.ts +1 -0
  228. package/dist/esm/types/platforms/nest/__test__/server/entities/users/user.manager.d.ts +2 -2
  229. package/dist/esm/types/platforms/nest/__test__/server/entities/users/user.models.d.ts +8 -3
  230. package/dist/esm/types/platforms/nest/__test__/server/index.d.ts +1 -0
  231. package/dist/esm/types/platforms/nest/__test__/server/infrastructure/authentication/index.d.ts +1 -1
  232. package/dist/esm/types/platforms/nest/__test__/server/infrastructure/authentication/models/index.d.ts +9 -0
  233. package/dist/esm/types/platforms/nest/__test__/server/infrastructure/authentication/processors/entity-auth/index.d.ts +1 -0
  234. package/dist/esm/types/platforms/nest/__test__/server/infrastructure/authentication/providers/index.d.ts +5 -2
  235. package/dist/esm/types/platforms/nest/__test__/server/infrastructure/authentication/providers/roles/index.d.ts +14 -0
  236. package/dist/esm/types/platforms/nest/__test__/server/{app/auth/services/auth.userRoles.service.d.ts → infrastructure/authentication/providers/userRoles/index.d.ts} +6 -6
  237. package/dist/esm/types/platforms/nest/__test__/server/infrastructure/authentication/providers/users/index.d.ts +23 -0
  238. package/dist/esm/types/platforms/nest/__test__/server/infrastructure/authentication/roles/index.d.ts +14 -0
  239. package/dist/esm/types/platforms/nest/__test__/server/infrastructure/authentication/types.d.ts +2 -1
  240. package/dist/esm/types/platforms/nest/__test__/tests/authentication/auth-api.test.d.ts +1 -0
  241. package/dist/esm/types/platforms/nest/__test__/tests/authentication/auth-guards.test.d.ts +1 -0
  242. package/dist/esm/types/platforms/nest/__test__/tests/authentication/auth-jwt.test.d.ts +1 -0
  243. package/dist/esm/types/platforms/nest/__test__/tests/base/crud-actions.test.d.ts +1 -0
  244. package/dist/esm/types/platforms/nest/__test__/tests/base/crud-api.test.d.ts +1 -0
  245. package/dist/esm/types/platforms/nest/__test__/tests/base/crud-operations.test.d.ts +1 -0
  246. package/dist/esm/types/platforms/nest/__test__/tests/base/seeder.test.d.ts +1 -0
  247. package/dist/esm/types/platforms/nest/__test__/tests/base/server-session.test.d.ts +1 -0
  248. package/dist/esm/types/platforms/nest/__test__/tests/pipelines/crud_pipeline_api.test.d.ts +1 -0
  249. package/dist/esm/types/platforms/nest/__test__/tests/pipelines/crud_pipeline_template.test.d.ts +1 -0
  250. package/dist/esm/types/platforms/nest/__test__/tests/pipelines/simple_pipeline.test.d.ts +1 -0
  251. package/dist/esm/types/platforms/nest/__test__/tests/ports.d.ts +9 -0
  252. package/dist/esm/types/platforms/nest/authentication/entityAuthorizationMiddleware.d.ts +1 -0
  253. package/dist/esm/types/platforms/nest/base/entityActions.d.ts +4 -3
  254. package/dist/esm/types/platforms/nest/base/entityManager.d.ts +3 -2
  255. package/dist/esm/types/platforms/nest/decorators/index.d.ts +1 -0
  256. package/dist/esm/types/platforms/nest/decorators/pipelines.d.ts +4 -0
  257. package/dist/esm/types/platforms/nest/decorators/symbols.d.ts +1 -0
  258. package/dist/esm/types/platforms/nest/extensions/authentication/abstractions/index.d.ts +3 -2
  259. package/dist/esm/types/platforms/nest/extensions/authentication/handlers/handlers.d.ts +3 -1
  260. package/dist/esm/types/platforms/nest/extensions/authentication/handlers/index.d.ts +2 -0
  261. package/dist/esm/types/platforms/nest/extensions/authentication/handlers/user-create/index.d.ts +14 -0
  262. package/dist/esm/types/platforms/nest/extensions/authentication/handlers/user-create/types.d.ts +16 -0
  263. package/dist/esm/types/platforms/nest/extensions/authentication/handlers/user-delete/index.d.ts +7 -0
  264. package/dist/esm/types/platforms/nest/extensions/authentication/handlers/user-delete/types.d.ts +3 -0
  265. package/dist/esm/types/platforms/nest/extensions/authentication/services/authentication/index.d.ts +8 -1
  266. package/dist/esm/types/platforms/nest/index.d.ts +1 -0
  267. package/dist/esm/types/platforms/nest/ioc/storage.d.ts +6 -0
  268. package/dist/esm/types/platforms/nest/module.d.ts +6 -1
  269. package/dist/esm/types/platforms/nest/pipelines/builder/concrete.d.ts +4 -0
  270. package/dist/esm/types/platforms/nest/pipelines/builder/index.d.ts +7 -0
  271. package/dist/esm/types/platforms/nest/pipelines/builder/types.d.ts +14 -0
  272. package/dist/esm/types/platforms/nest/pipelines/index.d.ts +2 -0
  273. package/dist/esm/types/platforms/nest/pipelines/providers.d.ts +3 -0
  274. package/dist/esm/types/platforms/nest/pipelines/runner/index.d.ts +11 -0
  275. package/dist/esm/types/platforms/nest/pipelines/template/errors.d.ts +6 -0
  276. package/dist/esm/types/platforms/nest/pipelines/template/index.d.ts +22 -0
  277. package/dist/esm/types/platforms/nest/pipelines/template/utils.d.ts +6 -0
  278. package/dist/esm/types/platforms/nest/processors/initializer/index.d.ts +1 -0
  279. package/dist/esm/types/platforms/nest/services/manager/index.d.ts +2 -2
  280. package/dist/esm/types/platforms/nest/session/storage.d.ts +1 -1
  281. package/dist/esm/types/providers/services.d.ts +31 -10
  282. package/dist/esm/types/queries/count.d.ts +10 -0
  283. package/dist/esm/types/queries/exists.d.ts +10 -0
  284. package/dist/esm/types/symbols/ioc.d.ts +9 -0
  285. package/dist/esm/types/templates/index.d.ts +1 -0
  286. package/dist/esm/types/templates/pipelines/controller/index.d.ts +5 -0
  287. package/dist/esm/types/templates/pipelines/converters/index.d.ts +5 -0
  288. package/dist/esm/types/templates/pipelines/index.d.ts +1 -0
  289. package/dist/esm/types/templates/pipelines/instance/index.d.ts +19 -0
  290. package/dist/{cjs/types/templates/queryBuilder.d.ts → esm/types/templates/queryBuilder/index.d.ts} +7 -3
  291. package/dist/esm/types/testing/mocks/repository.d.ts +2 -2
  292. package/dist/esm/types/types/index.d.ts +2 -0
  293. package/dist/esm/types/types/objects.d.ts +4 -0
  294. package/dist/esm/types/types/pipelines.d.ts +109 -0
  295. package/dist/index.d.ts +342 -69
  296. package/package.json +1 -1
  297. package/dist/cjs/types/platforms/nest/__test__/server/app/auth/services/auth.roles.service.d.ts +0 -12
  298. package/dist/cjs/types/platforms/nest/__test__/server/app/auth/services/auth.user.service.d.ts +0 -20
  299. package/dist/cjs/types/platforms/nest/__test__/server/app/auth/services/index.d.ts +0 -4
  300. package/dist/esm/types/platforms/nest/__test__/server/app/auth/services/auth.roles.service.d.ts +0 -12
  301. package/dist/esm/types/platforms/nest/__test__/server/app/auth/services/auth.user.service.d.ts +0 -20
  302. package/dist/esm/types/platforms/nest/__test__/server/app/auth/services/index.d.ts +0 -4
  303. /package/dist/cjs/types/__test__/base/{test-actions-plain.test.d.ts → actions-plain.test.d.ts} +0 -0
  304. /package/dist/cjs/types/__test__/base/{test-actions-with-converters.test.d.ts → actions-with-converters.test.d.ts} +0 -0
  305. /package/dist/cjs/types/__test__/base/{test-default-entity-manager.test.d.ts → default-entity-manager.test.d.ts} +0 -0
  306. /package/dist/cjs/types/__test__/providers/typeorm/{test-typeorm-actions.test.d.ts → typeorm-actions.test.d.ts} +0 -0
  307. /package/dist/cjs/types/platforms/nest/__test__/{tests/authentication/test_auth_api.test.d.ts → server/app/organizations/templates/organization-register/pipeline.test.d.ts} +0 -0
  308. /package/dist/cjs/types/platforms/nest/__test__/{tests/authentication/test_auth_guards.test.d.ts → server/app/tenants/templates/instance-initialize/pipeline.test.d.ts} +0 -0
  309. /package/dist/cjs/types/platforms/nest/__test__/{tests/authentication/test_auth_jwt.test.d.ts → server/app/tenants/templates/tenant-initialize/pipeline.test.d.ts} +0 -0
  310. /package/dist/cjs/types/platforms/nest/__test__/server/infrastructure/authentication/providers/{auth-context → context}/index.d.ts +0 -0
  311. /package/dist/cjs/types/platforms/nest/__test__/tests/{base/test_crud_actions.test.d.ts → authentication/auth-api.test.d.ts} +0 -0
  312. /package/dist/cjs/types/platforms/nest/__test__/tests/{base/test_crud_api.test.d.ts → authentication/auth-guards.test.d.ts} +0 -0
  313. /package/dist/cjs/types/platforms/nest/__test__/tests/{base/test_crud_operations.test.d.ts → authentication/auth-jwt.test.d.ts} +0 -0
  314. /package/dist/cjs/types/platforms/nest/__test__/tests/base/{test_seeder.test.d.ts → crud-actions.test.d.ts} +0 -0
  315. /package/dist/cjs/types/platforms/nest/__test__/tests/base/{test_server_session.test.d.ts → crud-api.test.d.ts} +0 -0
  316. /package/dist/{esm/types/__test__/base/test-actions-plain.test.d.ts → cjs/types/platforms/nest/__test__/tests/base/crud-operations.test.d.ts} +0 -0
  317. /package/dist/{esm/types/__test__/base/test-actions-with-converters.test.d.ts → cjs/types/platforms/nest/__test__/tests/base/seeder.test.d.ts} +0 -0
  318. /package/dist/{esm/types/__test__/base/test-default-entity-manager.test.d.ts → cjs/types/platforms/nest/__test__/tests/base/server-session.test.d.ts} +0 -0
  319. /package/dist/{esm/types/__test__/providers/typeorm/test-typeorm-actions.test.d.ts → cjs/types/platforms/nest/__test__/tests/pipelines/crud_pipeline_api.test.d.ts} +0 -0
  320. /package/dist/{esm/types/platforms/nest/__test__/tests/authentication/test_auth_api.test.d.ts → cjs/types/platforms/nest/__test__/tests/pipelines/crud_pipeline_template.test.d.ts} +0 -0
  321. /package/dist/{esm/types/platforms/nest/__test__/tests/authentication/test_auth_guards.test.d.ts → cjs/types/platforms/nest/__test__/tests/pipelines/simple_pipeline.test.d.ts} +0 -0
  322. /package/dist/esm/types/{platforms/nest/__test__/tests/authentication/test_auth_jwt.test.d.ts → __test__/base/actions-plain.test.d.ts} +0 -0
  323. /package/dist/esm/types/{platforms/nest/__test__/tests/base/test_crud_actions.test.d.ts → __test__/base/actions-with-converters.test.d.ts} +0 -0
  324. /package/dist/esm/types/{platforms/nest/__test__/tests/base/test_crud_api.test.d.ts → __test__/base/default-entity-manager.test.d.ts} +0 -0
  325. /package/dist/esm/types/{platforms/nest/__test__/tests/base/test_crud_operations.test.d.ts → __test__/providers/typeorm/typeorm-actions.test.d.ts} +0 -0
  326. /package/dist/esm/types/platforms/nest/__test__/{tests/base/test_seeder.test.d.ts → server/app/organizations/templates/organization-register/pipeline.test.d.ts} +0 -0
  327. /package/dist/esm/types/platforms/nest/__test__/{tests/base/test_server_session.test.d.ts → server/app/tenants/templates/instance-initialize/pipeline.test.d.ts} +0 -0
  328. /package/dist/esm/types/platforms/nest/__test__/server/infrastructure/authentication/providers/{auth-context → context}/index.d.ts +0 -0
@@ -0,0 +1,22 @@
1
+ import { PipelineDefinition, PipelineResult } from "../../../../types";
2
+ import { IPipelineTemplateBuilder } from "../builder/types";
3
+ import { PipelineUtils } from "./utils";
4
+ import { PipelineTemplateProps } from "../../decorators";
5
+ export declare abstract class NestPipelineTemplate<TPipelineInput, TPipelineOutput, TContext> {
6
+ private readonly logger;
7
+ protected readonly utils: PipelineUtils<TPipelineInput, TPipelineOutput, TContext>;
8
+ private cachedDefinition;
9
+ protected abstract buildTemplate(builder: IPipelineTemplateBuilder<TPipelineInput, TContext>): PipelineDefinition<TPipelineInput, TPipelineOutput, TContext>;
10
+ protected isAuthorized(context: TContext): boolean;
11
+ invoke(input: TPipelineInput): Promise<TPipelineOutput>;
12
+ execute(data: {
13
+ input: TPipelineInput;
14
+ context: TContext;
15
+ }): Promise<PipelineResult<TPipelineInput, TPipelineOutput>>;
16
+ private getDefinition;
17
+ private buildDefinition;
18
+ private getContext;
19
+ private get controller();
20
+ private get registry();
21
+ protected get metadata(): PipelineTemplateProps;
22
+ }
@@ -0,0 +1,6 @@
1
+ import { PipelineCompletedStepState } from "../../../../types";
2
+ export declare class PipelineUtils<TPipelineInput, TPipelineOutput, TContext> {
3
+ getStep: (step: PipelineCompletedStepState<TPipelineInput, TContext, unknown, unknown>, index: number) => PipelineCompletedStepState<TPipelineInput, TContext, unknown, unknown>;
4
+ getStepInput: <TStepInput>(step: PipelineCompletedStepState<TPipelineInput, TContext, unknown, unknown>, index: number) => TStepInput;
5
+ getStepOutput: <TStepOutput>(step: PipelineCompletedStepState<TPipelineInput, TContext, unknown, unknown>, index: number) => TStepOutput;
6
+ }
@@ -22,6 +22,7 @@ export declare class EntityManagerInitializer {
22
22
  private registerEventTrackingProviders;
23
23
  private registerEmailProviders;
24
24
  private registerEmailTemplates;
25
+ private registerPipelinesServices;
25
26
  private initializeProviders;
26
27
  private discoverRepositories;
27
28
  private discoverQueryBuilders;
@@ -3,7 +3,7 @@ import { IEntityManager } from "../../../../abstractions";
3
3
  export declare class EntityManagerService {
4
4
  private readonly registry;
5
5
  constructor(registry: EntityManagerRegistry);
6
- getManager<TEntity>(entityName: string): IEntityManager<TEntity, unknown, unknown, unknown, any, any, unknown, any>;
7
- getActions<TEntity>(entityName: string): import("../../../../abstractions").IEntityActions<TEntity, unknown, unknown, unknown, unknown, unknown, any, any, unknown, any>;
6
+ getManager<TEntity>(entityName: string): IEntityManager<TEntity, unknown, unknown, unknown, any, any, any, unknown, any>;
7
+ getActions<TEntity>(entityName: string): import("../../../../abstractions").IEntityActions<TEntity, unknown, unknown, unknown, unknown, unknown, any, any, any, unknown, any>;
8
8
  getRepository<TEntity>(entityName: string): import("../../../../abstractions").IEntityRepository<TEntity, unknown, unknown, unknown, unknown, unknown>;
9
9
  }
@@ -3,4 +3,4 @@
3
3
  import { AsyncLocalStorage } from "async_hooks";
4
4
  import { Request, Response } from "express";
5
5
  import { AppSession } from "./session";
6
- export declare const asyncLocalStorage: AsyncLocalStorage<AppSession<Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>, Response<any, Record<string, any>>>>;
6
+ export declare const sessionStorage: AsyncLocalStorage<AppSession<Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>, Response<any, Record<string, any>>>>;
@@ -1,17 +1,18 @@
1
1
  import { IAuthenticationContext, IAuthenticationContextProvider, IEmailProvider, IEmailTemplatesCollection, IEventLog, IEventsTracker } from "../abstractions";
2
- import { IEntitiesSearchAction, IEntityActions, IEntityCreateAction, IEntityDeleteAction, IEntityGetAction, IEntityUpdateAction, IEntityUpsertAction } from "../abstractions/actions";
2
+ import { IEntitiesCountAction, IEntitiesDeleteAction, IEntitiesSearchAction, IEntityActions, IEntityCreateAction, IEntityDeleteAction, IEntityExistsAction, IEntityGetAction, IEntityUpdateAction, IEntityUpsertAction } from "../abstractions/actions";
3
3
  import { IEntityAdapter } from "../abstractions/adapters";
4
4
  import { IEntityAuthorizationMiddleware } from "../abstractions/authorization";
5
- import { IEntityCreateCommand, IEntityDeleteCommand, IEntityUpdateCommand, IEntityUpsertCommand } from "../abstractions/commands";
5
+ import { IEntitiesDeleteCommand, IEntitiesDeleteParameters, IEntityCreateCommand, IEntityDeleteCommand, IEntityUpdateCommand, IEntityUpsertCommand } from "../abstractions/commands";
6
6
  import { SortingType } from "../abstractions/common";
7
7
  import { IConnectorsConfiguration, IEntityConnectorDeleteManager, IEntityConnectorSyncManager } from "../abstractions/connectors";
8
8
  import { IEntityConverter } from "../abstractions/converters";
9
9
  import { IEntityEventsManager, IEventEmitter } from "../abstractions/events";
10
10
  import { IEntityManager } from "../abstractions/manager";
11
- import { IEntitiesQueryBuilder, IEntitiesSearchQuery, IEntityFacets, IEntityGetQuery } from "../abstractions/queries";
11
+ import { IPipelinesController } from "../abstractions/pipelines";
12
+ import { IEntitiesCountQuery, IEntitiesQueryBuilder, IEntitiesSearchQuery, IEntityExistsQuery, IEntityFacets, IEntityGetQuery } from "../abstractions/queries";
12
13
  import { IEntityReplicaDeleteManager, IEntityReplicaSyncManager, IReplicasConfiguration } from "../abstractions/replication";
13
14
  import { IEntityRepository } from "../abstractions/repository";
14
- import { IEntitySearchParameters } from "../abstractions/searchParameters";
15
+ import { IEntitySearchParameters, ISearchFilters } from "../abstractions/searchParameters";
15
16
  import { ServiceLocator } from "../ioc";
16
17
  export declare class EntityServiceLocator<TEntity, TEntityId> {
17
18
  private readonly services;
@@ -19,8 +20,8 @@ export declare class EntityServiceLocator<TEntity, TEntityId> {
19
20
  constructor(services: EntitiesServiceLocator, entityName: string);
20
21
  getRootServices(): EntitiesServiceLocator;
21
22
  resolveAuthenticationContextProvider<TAuthenticationContextProvider extends IAuthenticationContextProvider<TUserContext>, TUserContext>(): TAuthenticationContextProvider;
22
- resolveEntityManager(): IEntityManager<TEntity, unknown, unknown, unknown, any, any, unknown, any>;
23
- resolveEntityActions(): IEntityActions<TEntity, TEntityId, unknown, unknown, unknown, unknown, any, any, unknown, any>;
23
+ resolveEntityManager(): IEntityManager<TEntity, unknown, unknown, unknown, any, any, any, unknown, any>;
24
+ resolveEntityActions(): IEntityActions<TEntity, TEntityId, unknown, unknown, unknown, unknown, any, any, any, unknown, any>;
24
25
  resolveRepository<TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>(): IEntityRepository<TEntity, TEntityId, TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>;
25
26
  resolveEventsManager(): IEntityEventsManager<TEntity, TEntityId>;
26
27
  resolveReplicaSyncManager(): IEntityReplicaSyncManager<TEntity>;
@@ -33,17 +34,23 @@ export declare class EntityServiceLocator<TEntity, TEntityId> {
33
34
  resolveAdapter<TEntityCreateData, TEntityUpdateData>(): IEntityAdapter<TEntity, TEntityCreateData, TEntityUpdateData> | undefined;
34
35
  resolveAuthorizationMiddleware<TAuthenticationContext extends IAuthenticationContext<TUserContext>, TUserContext>(): IEntityAuthorizationMiddleware<TEntity, TAuthenticationContext, TUserContext> | undefined;
35
36
  resolveGetQuery<TEntityId>(): IEntityGetQuery<TEntity, TEntityId>;
37
+ resolveExistsQuery<TEntityFilters extends ISearchFilters>(): IEntityExistsQuery<TEntity, TEntityFilters>;
38
+ resolveCountQuery<TEntityFilters extends ISearchFilters>(): IEntitiesCountQuery<TEntity, TEntityFilters>;
36
39
  resolveSearchQuery<TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets extends IEntityFacets>(): IEntitiesSearchQuery<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>;
37
40
  resolveCreateCommand<TEntityCreateData>(): IEntityCreateCommand<TEntity, TEntityCreateData>;
38
41
  resolveUpdateCommand<TEntityUpdateData>(): IEntityUpdateCommand<TEntity, TEntityId, TEntityUpdateData>;
39
42
  resolveUpsertCommand<TEntityUpdateData>(): IEntityUpsertCommand<TEntity, TEntityId, TEntityUpdateData>;
40
43
  resolveDeleteCommand<TEntityId>(): IEntityDeleteCommand<TEntity, TEntityId>;
44
+ resolveDeleteItemsCommand<TEntitiesDeleteParameters extends IEntitiesDeleteParameters<TSorting>, TSorting>(): IEntitiesDeleteCommand<TEntity, TEntitiesDeleteParameters, TSorting>;
41
45
  resolveGetAction<TEntityId, TEntityDto>(): IEntityGetAction<TEntity, TEntityId, TEntityDto>;
46
+ resolveExistsAction<TEntityFilters extends ISearchFilters>(): IEntityExistsAction<TEntity, TEntityFilters>;
47
+ resolveCountAction<TEntityFilters extends ISearchFilters>(): IEntitiesCountAction<TEntity, TEntityFilters>;
42
48
  resolveSearchAction<TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TEntityListItemDto, TSorting extends SortingType, TCursor, TFacets extends IEntityFacets>(): IEntitiesSearchAction<TEntity, TEntitySearchParameters, TEntityListItemDto, TSorting, TCursor, TFacets>;
43
49
  resolveCreateAction<TEntityCreateData, TEntityDto>(): IEntityCreateAction<TEntity, TEntityCreateData, TEntityDto>;
44
50
  resolveUpdateAction<TEntityUpdateData, TEntityDto>(): IEntityUpdateAction<TEntity, TEntityId, TEntityUpdateData, TEntityDto>;
45
51
  resolveUpsertAction<TEntityUpdateData, TEntityDto>(): IEntityUpsertAction<TEntity, TEntityId, TEntityUpdateData, TEntityDto>;
46
52
  resolveDeleteAction(): IEntityDeleteAction<TEntity, TEntityId>;
53
+ resolveDeleteItemsAction<TEntitiesDeleteParameters extends IEntitiesDeleteParameters<TSorting>, TSorting>(): IEntitiesDeleteAction<TEntity, TEntitiesDeleteParameters, TSorting>;
47
54
  resolveQueryBuilder<TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets extends IEntityFacets, TUserContext>(): IEntitiesQueryBuilder<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets, TUserContext>;
48
55
  getEntityName(): string;
49
56
  }
@@ -59,12 +66,14 @@ export declare class EntitiesServiceLocator {
59
66
  registerEventsTracker<TEventsTracker extends IEventsTracker<TEventLog>, TEventLog extends IEventLog<unknown>>(instance: TEventsTracker): void;
60
67
  resolveEmailTemplatesCollection(): IEmailTemplatesCollection;
61
68
  registerEmailTemplatesCollection(instance: IEmailTemplatesCollection): void;
69
+ resolvePipelinesController(): IPipelinesController;
70
+ registerPipelinesController(instance: IPipelinesController): void;
62
71
  resolveAuthenticationContextProvider<TAuthenticationContextProvider extends IAuthenticationContextProvider<TUserContext>, TUserContext>(): TAuthenticationContextProvider;
63
72
  registerAuthenticationContextProvider<TAuthenticationContextProvider extends IAuthenticationContextProvider<TUserContext>, TUserContext>(instance: TAuthenticationContextProvider): void;
64
- resolveEntityManager<TEntity>(entityName: string): IEntityManager<TEntity, unknown, unknown, unknown, any, any, unknown, any>;
65
- registerEntityManager<TEntity>(entityName: string, instance: IEntityManager<TEntity, unknown, unknown, unknown, any, any, unknown, any>): void;
66
- resolveEntityActions<TEntity>(entityName: string): IEntityActions<TEntity, unknown, unknown, unknown, unknown, unknown, any, any, unknown, any>;
67
- registerEntityActions<TEntity>(entityName: string, instance: IEntityActions<TEntity, unknown, unknown, unknown, unknown, unknown, any, any, unknown, any>): void;
73
+ resolveEntityManager<TEntity>(entityName: string): IEntityManager<TEntity, unknown, unknown, unknown, any, any, any, unknown, any>;
74
+ registerEntityManager<TEntity>(entityName: string, instance: IEntityManager<TEntity, unknown, unknown, unknown, any, any, any, unknown, any>): void;
75
+ resolveEntityActions<TEntity>(entityName: string): IEntityActions<TEntity, unknown, unknown, unknown, unknown, unknown, any, any, any, unknown, any>;
76
+ registerEntityActions<TEntity>(entityName: string, instance: IEntityActions<TEntity, unknown, unknown, unknown, unknown, unknown, any, any, any, unknown, any>): void;
68
77
  resolveRepository<TEntity, TEntityId, TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>(entityName: string): IEntityRepository<TEntity, TEntityId, TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>;
69
78
  registerRepository<TEntity, TEntityId, TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>(entityName: string, instance: IEntityRepository<TEntity, TEntityId, TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>): void;
70
79
  resolveEventsManager<TEntity, TEntityId>(entityName: string): IEntityEventsManager<TEntity, TEntityId>;
@@ -91,16 +100,26 @@ export declare class EntitiesServiceLocator {
91
100
  registerGetQuery<TEntity, TEntityId>(entityName: string, instance: IEntityGetQuery<TEntity, TEntityId>): void;
92
101
  resolveSearchQuery<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets extends IEntityFacets>(entityName: string): IEntitiesSearchQuery<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>;
93
102
  registerSearchQuery<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets extends IEntityFacets>(entityName: string, instance: IEntitiesSearchQuery<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>): void;
103
+ resolveExistsQuery<TEntity, TEntityFilters extends ISearchFilters>(entityName: string): IEntityExistsQuery<TEntity, TEntityFilters>;
104
+ registerExistsQuery<TEntity, TEntityFilters extends ISearchFilters>(entityName: string, instance: IEntityExistsQuery<TEntity, TEntityFilters>): void;
105
+ resolveCountQuery<TEntity, TEntityFilters extends ISearchFilters>(entityName: string): IEntitiesCountQuery<TEntity, TEntityFilters>;
106
+ registerCountQuery<TEntity, TEntityFilters extends ISearchFilters>(entityName: string, instance: IEntitiesCountQuery<TEntity, TEntityFilters>): void;
94
107
  resolveCreateCommand<TEntity, TEntityCreateData>(entityName: string): IEntityCreateCommand<TEntity, TEntityCreateData>;
95
108
  registerCreateCommand<TEntity, TEntityCreateData>(entityName: string, instance: IEntityCreateCommand<TEntity, TEntityCreateData>): void;
96
109
  resolveUpdateCommand<TEntity, TEntityId, TEntityUpdateData>(entityName: string): IEntityUpdateCommand<TEntity, TEntityId, TEntityUpdateData>;
97
110
  registerUpdateCommand<TEntity, TEntityId, TEntityUpdateData>(entityName: string, instance: IEntityUpdateCommand<TEntity, TEntityId, TEntityUpdateData>): void;
98
111
  resolveUpsertCommand<TEntity, TEntityId, TEntityUpdateData>(entityName: string): IEntityUpsertCommand<TEntity, TEntityId, TEntityUpdateData>;
99
112
  registerUpsertCommand<TEntity, TEntityId, TEntityUpdateData>(entityName: string, instance: IEntityUpsertCommand<TEntity, TEntityId, TEntityUpdateData>): void;
113
+ resolveDeleteItemsCommand<TEntity, TEntitiesDeleteParameters extends IEntitiesDeleteParameters<TSorting>, TSorting>(entityName: string): IEntitiesDeleteCommand<TEntity, TEntitiesDeleteParameters, TSorting>;
114
+ registerDeleteItemsCommand<TEntity, TEntitiesDeleteParameters extends IEntitiesDeleteParameters<TSorting>, TSorting>(entityName: string, instance: IEntitiesDeleteCommand<TEntity, TEntitiesDeleteParameters, TSorting>): void;
100
115
  resolveDeleteCommand<TEntity, TEntityId>(entityName: string): IEntityDeleteCommand<TEntity, TEntityId>;
101
116
  registerDeleteCommand<TEntity, TEntityId>(entityName: string, instance: IEntityDeleteCommand<TEntity, TEntityId>): void;
102
117
  resolveGetAction<TEntity, TEntityId, TEntityDto>(entityName: string): IEntityGetAction<TEntity, TEntityId, TEntityDto>;
103
118
  registerGetAction<TEntity, TEntityId, TEntityDto>(entityName: string, instance: IEntityGetAction<TEntity, TEntityId, TEntityDto>): void;
119
+ resolveExistsAction<TEntity, TEntityFilters extends ISearchFilters>(entityName: string): IEntityExistsAction<TEntity, TEntityFilters>;
120
+ registerExistsAction<TEntity, TEntityFilters extends ISearchFilters>(entityName: string, instance: IEntityExistsAction<TEntity, TEntityFilters>): void;
121
+ resolveCountAction<TEntity, TEntityFilters extends ISearchFilters>(entityName: string): IEntitiesCountAction<TEntity, TEntityFilters>;
122
+ registerCountAction<TEntity, TEntityFilters extends ISearchFilters>(entityName: string, instance: IEntitiesCountAction<TEntity, TEntityFilters>): void;
104
123
  resolveSearchAction<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TEntityListItemDto, TSorting extends SortingType, TCursor, TFacets extends IEntityFacets>(entityName: string): IEntitiesSearchAction<TEntity, TEntitySearchParameters, TEntityListItemDto, TSorting, TCursor, TFacets>;
105
124
  registerSearchAction<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TEntityListItemDto, TSorting extends SortingType, TCursor, TFacets extends IEntityFacets>(entityName: string, instance: IEntitiesSearchAction<TEntity, TEntitySearchParameters, TEntityListItemDto, TSorting, TCursor, TFacets>): void;
106
125
  resolveCreateAction<TEntity, TEntityCreateData, TEntityDto>(entityName: string): IEntityCreateAction<TEntity, TEntityCreateData, TEntityDto>;
@@ -111,6 +130,8 @@ export declare class EntitiesServiceLocator {
111
130
  registerUpsertAction<TEntity, TEntityId, TEntityUpdateData, TEntityDto>(entityName: string, instance: IEntityUpsertAction<TEntity, TEntityId, TEntityUpdateData, TEntityDto>): void;
112
131
  resolveDeleteAction<TEntity, TEntityId>(entityName: string): IEntityDeleteAction<TEntity, TEntityId>;
113
132
  registerDeleteAction<TEntity, TEntityId>(entityName: string, instance: IEntityDeleteAction<TEntity, TEntityId>): void;
133
+ resolveDeleteItemsAction<TEntity, TEntitiesDeleteParameters extends IEntitiesDeleteParameters<TSorting>, TSorting>(entityName: string): IEntitiesDeleteAction<TEntity, TEntitiesDeleteParameters, TSorting>;
134
+ registerDeleteItemsAction<TEntity, TEntitiesDeleteParameters extends IEntitiesDeleteParameters<TSorting>, TSorting>(entityName: string, instance: IEntitiesDeleteAction<TEntity, TEntitiesDeleteParameters, TSorting>): void;
114
135
  resolveQueryBuilder<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets extends IEntityFacets, TUserContext>(entityName: string): IEntitiesQueryBuilder<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets, TUserContext>;
115
136
  registerQueryBuilder<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets extends IEntityFacets, TUserContext>(entityName: string, instance: IEntitiesQueryBuilder<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets, TUserContext>): void;
116
137
  }
@@ -0,0 +1,10 @@
1
+ import { ISearchFilters } from "../abstractions";
2
+ import { IEntitiesCountQuery } from "../abstractions/queries";
3
+ import { EntityServiceLocator } from "../providers/services";
4
+ export declare class EntitiesCountQuery<TEntity, TEntityFilters extends ISearchFilters, TUserContext> implements IEntitiesCountQuery<TEntity, TEntityFilters> {
5
+ private readonly services;
6
+ constructor(services: EntityServiceLocator<TEntity, unknown>);
7
+ execute(filters: TEntityFilters): Promise<number>;
8
+ private getContext;
9
+ private authorizeSearch;
10
+ }
@@ -0,0 +1,10 @@
1
+ import { ISearchFilters } from "../abstractions";
2
+ import { IEntityExistsQuery } from "../abstractions/queries";
3
+ import { EntityServiceLocator } from "../providers/services";
4
+ export declare class EntityExistsQuery<TEntity, TEntityFilters extends ISearchFilters, TUserContext> implements IEntityExistsQuery<TEntity, TEntityFilters> {
5
+ private readonly services;
6
+ constructor(services: EntityServiceLocator<TEntity, unknown>);
7
+ execute(filters: TEntityFilters): Promise<boolean>;
8
+ private getContext;
9
+ private authorizeSearch;
10
+ }
@@ -1,6 +1,9 @@
1
1
  export declare const EntityServices: {
2
2
  Actions: {
3
3
  IEntityGetAction: string;
4
+ IEntityExistsAction: string;
5
+ IEntitiesCountAction: string;
6
+ IEntitiesDeleteAction: string;
4
7
  IEntitiesSearchAction: string;
5
8
  IEntityCreateAction: string;
6
9
  IEntityUpdateAction: string;
@@ -17,6 +20,7 @@ export declare const EntityServices: {
17
20
  IEntityUpsertCommand: string;
18
21
  IEntityMergeCommand: string;
19
22
  IEntityDeleteCommand: string;
23
+ IEntitiesDeleteCommand: string;
20
24
  };
21
25
  Converters: {
22
26
  IEntityAdapter: string;
@@ -31,6 +35,8 @@ export declare const EntityServices: {
31
35
  IEntityEventsManager: string;
32
36
  };
33
37
  Queries: {
38
+ IEntityCountQuery: string;
39
+ IEntityExistsQuery: string;
34
40
  IEntityGetQuery: string;
35
41
  IEntitiesSearchQuery: string;
36
42
  IEntitiesQueryBuilder: string;
@@ -60,4 +66,7 @@ export declare const GlobalServices: {
60
66
  IEmailProvider: string;
61
67
  IEmailTemplatesCollection: string;
62
68
  };
69
+ Pipelines: {
70
+ IPipelineController: string;
71
+ };
63
72
  };
@@ -1 +1,2 @@
1
+ export * from "./pipelines";
1
2
  export { QueryBuilderBase } from "./queryBuilder";
@@ -0,0 +1,5 @@
1
+ import { IPipelineInstance, IPipelinesController } from "../../../abstractions/pipelines";
2
+ import { PipelineDefinition } from "../../../types";
3
+ export declare class PipelineController implements IPipelinesController {
4
+ createInstance<TInput, TOutput, TContext>(definition: PipelineDefinition<TInput, TOutput, TContext>, input: TInput, context: TContext): Promise<IPipelineInstance<TInput, TOutput, TContext>>;
5
+ }
@@ -0,0 +1,5 @@
1
+ import { PipelineErrorType, PipelineOperationError, PipelineOperationResult, PipelineStepErrorType, PipelineStepResult } from "../../../types";
2
+ export declare const toPipelineOperationError: (error: Error) => PipelineOperationError;
3
+ export declare const getStepOutput: <TStepInput, TStepOutput>(result: PipelineStepResult<TStepInput, TStepOutput>) => TStepOutput | undefined;
4
+ export declare const getOperationOutput: <TStepInput, TStepOutput>(result: PipelineOperationResult<TStepInput, TStepOutput>) => TStepOutput | undefined;
5
+ export declare const mapPipelineErrorType: (stepError: PipelineStepErrorType) => PipelineErrorType;
@@ -0,0 +1 @@
1
+ export { PipelineController } from "./controller";
@@ -0,0 +1,19 @@
1
+ import { IPipelineInstance } from "../../../abstractions/pipelines";
2
+ import { PipelineDefinition, PipelineResult } from "../../../types";
3
+ export declare class PipelineInstance<TPipelineInput, TPipelineOutput, TContext> implements IPipelineInstance<TPipelineInput, TPipelineOutput, TContext> {
4
+ private readonly definition;
5
+ private readonly input;
6
+ private readonly context;
7
+ private status;
8
+ constructor(definition: PipelineDefinition<TPipelineInput, TPipelineOutput, TContext>, input: TPipelineInput, context: TContext);
9
+ execute(): Promise<PipelineResult<TPipelineInput, TPipelineOutput>>;
10
+ private buildInitialStepState;
11
+ private buildNextStepState;
12
+ private rollbackSteps;
13
+ private rollbackStep;
14
+ private validateStepPrecondition;
15
+ private executeStep;
16
+ private executeOperation;
17
+ private rollbackOperations;
18
+ private rollbackOperation;
19
+ }
@@ -1,7 +1,11 @@
1
- import { IAuthenticationContext, IEntitiesQueryBuilder, IEntityFacets, IEntitySearchParameters, ISearchRequestPaging } from "../abstractions";
2
- import { SortingType } from "../abstractions/common";
3
- import { IEntitiesSearchResults, IEntitiesSearchResultsPaging } from "../models";
1
+ import { IAuthenticationContext, IEntitiesQueryBuilder, IEntityFacets, IEntitySearchParameters, ISearchRequestPaging } from "../../abstractions";
2
+ import { SortingType } from "../../abstractions/common";
3
+ import { IEntitiesDeleteResult } from "../../abstractions/repository";
4
+ import { IEntitiesSearchResults, IEntitiesSearchResultsPaging } from "../../models";
4
5
  export declare abstract class QueryBuilderBase<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets extends IEntityFacets, TUserContext> implements IEntitiesQueryBuilder<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets, TUserContext> {
6
+ abstract exists(filters: NonNullable<TEntitySearchParameters["filters"]>, context?: IAuthenticationContext<TUserContext> | undefined): Promise<boolean>;
7
+ abstract count(filters: NonNullable<TEntitySearchParameters["filters"]>, context?: IAuthenticationContext<TUserContext> | undefined): Promise<number>;
8
+ abstract delete(filters: NonNullable<TEntitySearchParameters["filters"]>, context?: IAuthenticationContext<TUserContext> | undefined): Promise<IEntitiesDeleteResult>;
5
9
  abstract search(request: TEntitySearchParameters, context?: IAuthenticationContext<TUserContext>): Promise<IEntitiesSearchResults<TEntitySearchParameters, TEntity, TSorting, TCursor, TFacets>>;
6
10
  protected getIndexBasedPagingResult({ paging, totResults, currentPageResults, }: {
7
11
  paging?: ISearchRequestPaging<number>;
@@ -1,5 +1,5 @@
1
1
  import { FilterExpression } from "../../abstractions/filters";
2
- import { IEntityRepository } from "../../abstractions/repository";
2
+ import { IEntitiesDeleteResult, IEntityRepository } from "../../abstractions/repository";
3
3
  export declare class InMemoryRepository<TEntity> implements IEntityRepository<TEntity, string, FilterExpression<TEntity>, FilterExpression<TEntity>, FilterExpression<TEntity>, FilterExpression<TEntity>> {
4
4
  private entities;
5
5
  exists(id: string): Promise<boolean>;
@@ -11,7 +11,7 @@ export declare class InMemoryRepository<TEntity> implements IEntityRepository<TE
11
11
  count(condition: FilterExpression<TEntity>): Promise<number>;
12
12
  findById(id: string[]): Promise<TEntity[]>;
13
13
  delete(id: string): Promise<void>;
14
- deleteBy(condition: FilterExpression<TEntity>): Promise<void>;
14
+ deleteBy(condition: FilterExpression<TEntity>): Promise<IEntitiesDeleteResult>;
15
15
  create(entity: TEntity): Promise<TEntity>;
16
16
  update(id: string, entity: Partial<TEntity>): Promise<TEntity>;
17
17
  updateBy(entity: Partial<TEntity>, condition: FilterExpression<TEntity>): Promise<TEntity[]>;
@@ -0,0 +1,2 @@
1
+ export * from "./objects";
2
+ export * from "./pipelines";
@@ -0,0 +1,4 @@
1
+ export type DeepPartial<T> = {
2
+ [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
3
+ };
4
+ export type NonNullable<T> = T;
@@ -0,0 +1,109 @@
1
+ export type PipelineStepState<TPipelineInput, TContext, TStepInput> = {
2
+ context: TContext;
3
+ stepInput: TStepInput;
4
+ pipelineInput: TPipelineInput;
5
+ previousStep?: PipelineCompletedStepState<TPipelineInput, TContext, any, TStepInput>;
6
+ };
7
+ export type PipelineCompletedStepState<TPipelineInput, TContext, TStepInput, TStepOutput> = PipelineStepState<TPipelineInput, TContext, TStepInput> & {
8
+ stepOutput?: TStepOutput;
9
+ };
10
+ export type PipelineCurrentStepState<TPipelineInput, TContext, TStepInput> = PipelineStepState<TPipelineInput, TContext, TStepInput> & {};
11
+ export type OperationDefinition<TOperationInput, TOperationOutput, TCurrentStepInput, TPipelineInput, TContext> = {
12
+ name: string;
13
+ action: (input: TOperationInput, state: PipelineCurrentStepState<TPipelineInput, TContext, TCurrentStepInput>) => Promise<TOperationOutput> | TOperationOutput;
14
+ precondition?: (input: TOperationInput, state: PipelineCurrentStepState<TPipelineInput, TContext, TCurrentStepInput>) => Promise<boolean> | boolean;
15
+ };
16
+ export type RollbackOperationDefinition<TOperationInput, TOperationOutput, TCurrentStepInput, TPipelineInput, TContext> = {
17
+ name: string;
18
+ action: (input: TOperationInput, output: TOperationOutput, state: PipelineCurrentStepState<TPipelineInput, TContext, TCurrentStepInput>) => Promise<void> | void;
19
+ };
20
+ export type PipelineStepOperation<TOperationInput, TOperationOutput, TCurrentStepInput, TPipelineInput, TContext> = {
21
+ name: string;
22
+ operation: OperationDefinition<TOperationInput, TOperationOutput, TCurrentStepInput, TPipelineInput, TContext>;
23
+ rollbackOperations?: RollbackOperationDefinition<TOperationInput, TOperationOutput, TCurrentStepInput, TPipelineInput, TContext>[];
24
+ };
25
+ export type PipelineStep<TStepInput, TStepOutput, TPipelineInput, TContext> = {
26
+ name: string;
27
+ operations: PipelineStepOperation<TStepInput, TStepOutput, TStepInput, TPipelineInput, TContext>[];
28
+ outputsReducer?: (results: unknown[]) => TStepOutput;
29
+ };
30
+ export type PipelineDefinition<TPipelineInput, TPipelineOutput, TContext> = {
31
+ steps: PipelineStep<unknown, unknown, TPipelineInput, TContext>[];
32
+ };
33
+ export type PipelineOperationError = {
34
+ message: string;
35
+ exception?: Error;
36
+ };
37
+ export type PipelineOperationResult<TOperationInput, TOperationOutput> = {
38
+ input: TOperationInput;
39
+ } & ({
40
+ type: "success";
41
+ output: TOperationOutput;
42
+ } | {
43
+ type: "preconditionFailed";
44
+ } | {
45
+ type: "error" | "rollbackCompleted";
46
+ error: PipelineOperationError;
47
+ } | {
48
+ type: "rollbackFailed";
49
+ rollbackError: PipelineOperationError;
50
+ error: PipelineOperationError;
51
+ });
52
+ export type PipelineOperationResultType = PipelineOperationResult<unknown, unknown>["type"];
53
+ export type PipelineOperationRollbackResult = {
54
+ type: "success" | "skipped";
55
+ } | {
56
+ type: "error";
57
+ error: PipelineOperationError;
58
+ };
59
+ export type PipelineOperationRollbackResultType = PipelineOperationRollbackResult["type"];
60
+ export declare enum PipelineStepErrorType {
61
+ FailedPrecondition = "failedPrecondition",
62
+ OperationError = "operationError",
63
+ RollbackError = "rollbackError",
64
+ GenericError = "genericError"
65
+ }
66
+ export type PipelineStepResult<TStepInput, TStepOutput> = {
67
+ input: TStepInput;
68
+ operationResults: PipelineOperationResult<unknown, unknown>[];
69
+ } & ({
70
+ type: "success";
71
+ output: TStepOutput;
72
+ } | {
73
+ type: "error";
74
+ errorType: PipelineStepErrorType;
75
+ });
76
+ export type PipelineStepResultType = PipelineStepResult<unknown, unknown>["type"];
77
+ export type PipelineStepRollbackResult = {} & ({
78
+ type: "success";
79
+ } | {
80
+ type: "error";
81
+ });
82
+ export type PipelineStepRollbackResultType = PipelineStepRollbackResult["type"];
83
+ export declare enum PipelineErrorType {
84
+ FailedPrecondition = "failedPrecondition",
85
+ OperationError = "operationError",
86
+ RollbackError = "rollbackError",
87
+ Unauthorized = "unauthorized",
88
+ GenericError = "genericError"
89
+ }
90
+ export type PipelineResult<TPipelineInput, TPipelineOutput> = {
91
+ stepResults: PipelineStepResult<unknown, unknown>[];
92
+ input: TPipelineInput;
93
+ } & ({
94
+ type: "success";
95
+ output: TPipelineOutput;
96
+ } | {
97
+ type: "error";
98
+ errorType: PipelineErrorType;
99
+ exception?: Error;
100
+ output?: TPipelineOutput;
101
+ });
102
+ export type PipelineResultType = PipelineResult<unknown, unknown>["type"];
103
+ export declare enum PipelineStatus {
104
+ Initializing = "initializing",
105
+ Running = "running",
106
+ RollbackInProgress = "rollbackInProgress",
107
+ Completed = "completed",
108
+ Failed = "failed"
109
+ }