@rytass/bpm-core-nestjs-module 0.1.3 → 0.1.4

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 (609) hide show
  1. package/LICENSE +21 -0
  2. package/package.json +3 -3
  3. package/src/index.js +18 -0
  4. package/src/index.js.map +1 -0
  5. package/src/lib/attachment/attachment-options.d.ts +44 -0
  6. package/src/lib/attachment/attachment-options.js +62 -0
  7. package/src/lib/attachment/attachment-options.js.map +1 -0
  8. package/src/lib/attachment/attachment-storage.provider.d.ts +4 -0
  9. package/src/lib/attachment/attachment-storage.provider.js +35 -0
  10. package/src/lib/attachment/attachment-storage.provider.js.map +1 -0
  11. package/src/lib/attachment/{attachment-storage.token.ts → attachment-storage.token.d.ts} +1 -3
  12. package/src/lib/attachment/attachment-storage.token.js +5 -0
  13. package/src/lib/attachment/attachment-storage.token.js.map +1 -0
  14. package/src/lib/attachment/attachment.controller.d.ts +8 -0
  15. package/src/lib/attachment/attachment.controller.js +38 -0
  16. package/src/lib/attachment/attachment.controller.js.map +1 -0
  17. package/src/lib/attachment/attachment.entity.d.ts +14 -0
  18. package/src/lib/attachment/attachment.entity.js +74 -0
  19. package/src/lib/attachment/attachment.entity.js.map +1 -0
  20. package/src/lib/attachment/attachment.module.d.ts +27 -0
  21. package/src/lib/attachment/attachment.module.js +103 -0
  22. package/src/lib/attachment/attachment.module.js.map +1 -0
  23. package/src/lib/attachment/attachment.mutations.d.ts +8 -0
  24. package/src/lib/attachment/attachment.mutations.js +35 -0
  25. package/src/lib/attachment/attachment.mutations.js.map +1 -0
  26. package/src/lib/attachment/attachment.queries.d.ts +9 -0
  27. package/src/lib/attachment/attachment.queries.js +78 -0
  28. package/src/lib/attachment/attachment.queries.js.map +1 -0
  29. package/src/lib/attachment/attachment.service.d.ts +49 -0
  30. package/src/lib/attachment/attachment.service.js +276 -0
  31. package/src/lib/attachment/attachment.service.js.map +1 -0
  32. package/src/lib/attachment/dto/upload-attachment.input.d.ts +11 -0
  33. package/src/lib/attachment/dto/upload-attachment.input.js +68 -0
  34. package/src/lib/attachment/dto/upload-attachment.input.js.map +1 -0
  35. package/src/lib/attachment/index.js +9 -0
  36. package/src/lib/attachment/index.js.map +1 -0
  37. package/src/lib/bpm/bpm-root.module.d.ts +155 -0
  38. package/src/lib/bpm/bpm-root.module.js +170 -0
  39. package/src/lib/bpm/bpm-root.module.js.map +1 -0
  40. package/src/lib/bpm/index.js +5 -0
  41. package/src/lib/bpm/index.js.map +1 -0
  42. package/src/lib/bpm-auth/bpm-auth-context.d.ts +24 -0
  43. package/src/lib/bpm-auth/bpm-auth-context.extractor.d.ts +4 -0
  44. package/src/lib/bpm-auth/bpm-auth-context.extractor.js +69 -0
  45. package/src/lib/bpm-auth/bpm-auth-context.extractor.js.map +1 -0
  46. package/src/lib/bpm-auth/bpm-auth-context.js +15 -0
  47. package/src/lib/bpm-auth/bpm-auth-context.js.map +1 -0
  48. package/src/lib/bpm-auth/bpm-auth.authorization.d.ts +12 -0
  49. package/src/lib/bpm-auth/bpm-auth.authorization.js +67 -0
  50. package/src/lib/bpm-auth/bpm-auth.authorization.js.map +1 -0
  51. package/src/lib/bpm-auth/bpm-auth.decorators.d.ts +3 -0
  52. package/src/lib/bpm-auth/bpm-auth.decorators.js +11 -0
  53. package/src/lib/bpm-auth/bpm-auth.decorators.js.map +1 -0
  54. package/src/lib/bpm-auth/bpm-auth.guard.d.ts +7 -0
  55. package/src/lib/bpm-auth/bpm-auth.guard.js +24 -0
  56. package/src/lib/bpm-auth/bpm-auth.guard.js.map +1 -0
  57. package/src/lib/bpm-auth/bpm-auth.module.d.ts +6 -0
  58. package/src/lib/bpm-auth/bpm-auth.module.js +69 -0
  59. package/src/lib/bpm-auth/bpm-auth.module.js.map +1 -0
  60. package/src/lib/bpm-auth/bpm-auth.options.d.ts +11 -0
  61. package/src/lib/bpm-auth/bpm-auth.options.js +3 -0
  62. package/src/lib/bpm-auth/bpm-auth.options.js.map +1 -0
  63. package/src/lib/bpm-auth/configurable-bpm-auth-context.accessor.d.ts +10 -0
  64. package/src/lib/bpm-auth/configurable-bpm-auth-context.accessor.js +40 -0
  65. package/src/lib/bpm-auth/configurable-bpm-auth-context.accessor.js.map +1 -0
  66. package/src/lib/bpm-auth/index.js +10 -0
  67. package/src/lib/bpm-auth/index.js.map +1 -0
  68. package/src/lib/common/filters/all-exceptions.filter.d.ts +25 -0
  69. package/src/lib/common/filters/all-exceptions.filter.js +93 -0
  70. package/src/lib/common/filters/all-exceptions.filter.js.map +1 -0
  71. package/src/lib/common/index.js +5 -0
  72. package/src/lib/common/index.js.map +1 -0
  73. package/src/lib/common/iso-duration.d.ts +1 -0
  74. package/src/lib/common/iso-duration.js +27 -0
  75. package/src/lib/common/iso-duration.js.map +1 -0
  76. package/src/lib/condition/condition.module.d.ts +2 -0
  77. package/src/lib/condition/condition.module.js +16 -0
  78. package/src/lib/condition/condition.module.js.map +1 -0
  79. package/src/lib/condition/condition.service.d.ts +16 -0
  80. package/src/lib/condition/condition.service.js +82 -0
  81. package/src/lib/condition/condition.service.js.map +1 -0
  82. package/src/lib/condition/index.js +6 -0
  83. package/src/lib/condition/index.js.map +1 -0
  84. package/src/lib/database/data-source.d.ts +4 -0
  85. package/src/lib/database/data-source.js +7 -0
  86. package/src/lib/database/data-source.js.map +1 -0
  87. package/src/lib/database/index.js +6 -0
  88. package/src/lib/database/index.js.map +1 -0
  89. package/src/lib/database/migration-runner.d.ts +1 -0
  90. package/src/lib/database/migration-runner.js +23 -0
  91. package/src/lib/database/migration-runner.js.map +1 -0
  92. package/src/lib/database/typeorm.config.d.ts +14 -0
  93. package/src/lib/database/typeorm.config.js +135 -0
  94. package/src/lib/database/typeorm.config.js.map +1 -0
  95. package/src/lib/delegation/delegation-rule.entity.d.ts +19 -0
  96. package/src/lib/delegation/delegation-rule.entity.js +99 -0
  97. package/src/lib/delegation/delegation-rule.entity.js.map +1 -0
  98. package/src/lib/delegation/delegation.enums.d.ts +10 -0
  99. package/src/lib/delegation/delegation.enums.js +23 -0
  100. package/src/lib/delegation/delegation.enums.js.map +1 -0
  101. package/src/lib/delegation/delegation.module.d.ts +2 -0
  102. package/src/lib/delegation/delegation.module.js +22 -0
  103. package/src/lib/delegation/delegation.module.js.map +1 -0
  104. package/src/lib/delegation/delegation.mutations.d.ts +11 -0
  105. package/src/lib/delegation/delegation.mutations.js +87 -0
  106. package/src/lib/delegation/delegation.mutations.js.map +1 -0
  107. package/src/lib/delegation/delegation.queries.d.ts +10 -0
  108. package/src/lib/delegation/delegation.queries.js +91 -0
  109. package/src/lib/delegation/delegation.queries.js.map +1 -0
  110. package/src/lib/delegation/delegation.service.d.ts +56 -0
  111. package/src/lib/delegation/delegation.service.js +268 -0
  112. package/src/lib/delegation/delegation.service.js.map +1 -0
  113. package/src/lib/delegation/dto/delegation-rule.input.d.ts +24 -0
  114. package/src/lib/delegation/dto/delegation-rule.input.js +143 -0
  115. package/src/lib/delegation/dto/delegation-rule.input.js.map +1 -0
  116. package/src/lib/delegation/index.js +9 -0
  117. package/src/lib/delegation/index.js.map +1 -0
  118. package/src/lib/form/dto/form-definition.input.d.ts +21 -0
  119. package/src/lib/form/dto/form-definition.input.js +103 -0
  120. package/src/lib/form/dto/form-definition.input.js.map +1 -0
  121. package/src/lib/form/form-definition-version.entity.d.ts +17 -0
  122. package/src/lib/form/form-definition-version.entity.js +84 -0
  123. package/src/lib/form/form-definition-version.entity.js.map +1 -0
  124. package/src/lib/form/form-definition.entity.d.ts +13 -0
  125. package/src/lib/form/form-definition.entity.js +66 -0
  126. package/src/lib/form/form-definition.entity.js.map +1 -0
  127. package/src/lib/form/form-schema-lint.object.d.ts +4 -0
  128. package/src/lib/form/form-schema-lint.object.js +20 -0
  129. package/src/lib/form/form-schema-lint.object.js.map +1 -0
  130. package/src/lib/form/form-schema.validator.d.ts +13 -0
  131. package/src/lib/form/form-schema.validator.js +354 -0
  132. package/src/lib/form/form-schema.validator.js.map +1 -0
  133. package/src/lib/form/form.enums.d.ts +9 -0
  134. package/src/lib/form/form.enums.js +22 -0
  135. package/src/lib/form/form.enums.js.map +1 -0
  136. package/src/lib/form/form.module.d.ts +2 -0
  137. package/src/lib/form/form.module.js +27 -0
  138. package/src/lib/form/form.module.js.map +1 -0
  139. package/src/lib/form/form.mutations.d.ts +14 -0
  140. package/src/lib/form/form.mutations.js +88 -0
  141. package/src/lib/form/form.mutations.js.map +1 -0
  142. package/src/lib/form/form.queries.d.ts +16 -0
  143. package/src/lib/form/form.queries.js +96 -0
  144. package/src/lib/form/form.queries.js.map +1 -0
  145. package/src/lib/form/form.service.d.ts +35 -0
  146. package/src/lib/form/form.service.js +297 -0
  147. package/src/lib/form/form.service.js.map +1 -0
  148. package/src/lib/form/index.js +12 -0
  149. package/src/lib/form/index.js.map +1 -0
  150. package/src/lib/identity/identity-options.d.ts +13 -0
  151. package/src/lib/identity/identity-options.js +20 -0
  152. package/src/lib/identity/identity-options.js.map +1 -0
  153. package/src/lib/identity/identity.module.d.ts +17 -0
  154. package/src/lib/identity/identity.module.js +65 -0
  155. package/src/lib/identity/identity.module.js.map +1 -0
  156. package/src/lib/identity/identity.queries.d.ts +12 -0
  157. package/src/lib/identity/identity.queries.js +79 -0
  158. package/src/lib/identity/identity.queries.js.map +1 -0
  159. package/src/lib/identity/identity.service.d.ts +22 -0
  160. package/src/lib/identity/identity.service.js +141 -0
  161. package/src/lib/identity/identity.service.js.map +1 -0
  162. package/src/lib/identity/index.js +7 -0
  163. package/src/lib/identity/index.js.map +1 -0
  164. package/src/lib/identity/member-base.adapter.d.ts +95 -0
  165. package/src/lib/identity/member-base.adapter.js +137 -0
  166. package/src/lib/identity/member-base.adapter.js.map +1 -0
  167. package/src/lib/identity/member-metadata-cache.entity.d.ts +8 -0
  168. package/src/lib/identity/member-metadata-cache.entity.js +39 -0
  169. package/src/lib/identity/member-metadata-cache.entity.js.map +1 -0
  170. package/src/lib/identity/member-profile.object.d.ts +8 -0
  171. package/src/lib/identity/member-profile.object.js +37 -0
  172. package/src/lib/identity/member-profile.object.js.map +1 -0
  173. package/src/lib/identity/{member-resolver.interface.ts → member-resolver.interface.d.ts} +5 -11
  174. package/src/lib/identity/member-resolver.interface.js +19 -0
  175. package/src/lib/identity/member-resolver.interface.js.map +1 -0
  176. package/src/lib/migrations/0000000000001-enable-postgres-extensions.d.ts +6 -0
  177. package/src/lib/migrations/0000000000001-enable-postgres-extensions.js +17 -0
  178. package/src/lib/migrations/0000000000001-enable-postgres-extensions.js.map +1 -0
  179. package/src/lib/migrations/0000000001000-identity-organization-foundation.d.ts +6 -0
  180. package/src/lib/migrations/{0000000001000-identity-organization-foundation.ts → 0000000001000-identity-organization-foundation.js} +29 -38
  181. package/src/lib/migrations/0000000001000-identity-organization-foundation.js.map +1 -0
  182. package/src/lib/migrations/0000000002000-form-builder-foundation.d.ts +6 -0
  183. package/src/lib/migrations/{0000000002000-form-builder-foundation.ts → 0000000002000-form-builder-foundation.js} +21 -22
  184. package/src/lib/migrations/0000000002000-form-builder-foundation.js.map +1 -0
  185. package/src/lib/migrations/0000000003000-approval-template-foundation.d.ts +6 -0
  186. package/src/lib/migrations/{0000000003000-approval-template-foundation.ts → 0000000003000-approval-template-foundation.js} +21 -24
  187. package/src/lib/migrations/0000000003000-approval-template-foundation.js.map +1 -0
  188. package/src/lib/migrations/0000000004000-workflow-engine-foundation.d.ts +6 -0
  189. package/src/lib/migrations/{0000000004000-workflow-engine-foundation.ts → 0000000004000-workflow-engine-foundation.js} +34 -46
  190. package/src/lib/migrations/0000000004000-workflow-engine-foundation.js.map +1 -0
  191. package/src/lib/migrations/0000000005000-delegation-rules.d.ts +6 -0
  192. package/src/lib/migrations/{0000000005000-delegation-rules.ts → 0000000005000-delegation-rules.js} +19 -20
  193. package/src/lib/migrations/0000000005000-delegation-rules.js.map +1 -0
  194. package/src/lib/migrations/0000000006000-notifications-sla.d.ts +6 -0
  195. package/src/lib/migrations/{0000000006000-notifications-sla.ts → 0000000006000-notifications-sla.js} +23 -26
  196. package/src/lib/migrations/0000000006000-notifications-sla.js.map +1 -0
  197. package/src/lib/migrations/0000000007000-signatures-attachments.d.ts +6 -0
  198. package/src/lib/migrations/{0000000007000-signatures-attachments.ts → 0000000007000-signatures-attachments.js} +27 -28
  199. package/src/lib/migrations/0000000007000-signatures-attachments.js.map +1 -0
  200. package/src/lib/migrations/0000000008000-approval-template-categories.d.ts +6 -0
  201. package/src/lib/migrations/{0000000008000-approval-template-categories.ts → 0000000008000-approval-template-categories.js} +25 -28
  202. package/src/lib/migrations/0000000008000-approval-template-categories.js.map +1 -0
  203. package/src/lib/migrations/0000000009000-task-candidates.d.ts +6 -0
  204. package/src/lib/migrations/{0000000009000-task-candidates.ts → 0000000009000-task-candidates.js} +23 -26
  205. package/src/lib/migrations/0000000009000-task-candidates.js.map +1 -0
  206. package/src/lib/migrations/0000000010000-notification-delivery-state.d.ts +6 -0
  207. package/src/lib/migrations/{0000000010000-notification-delivery-state.ts → 0000000010000-notification-delivery-state.js} +17 -16
  208. package/src/lib/migrations/0000000010000-notification-delivery-state.js.map +1 -0
  209. package/src/lib/migrations/0000000011000-remove-attachment-encryption-key.d.ts +6 -0
  210. package/src/lib/migrations/0000000011000-remove-attachment-encryption-key.js +22 -0
  211. package/src/lib/migrations/0000000011000-remove-attachment-encryption-key.js.map +1 -0
  212. package/src/lib/migrations/0000000012000-notification-sla-idempotency.d.ts +6 -0
  213. package/src/lib/migrations/0000000012000-notification-sla-idempotency.js +21 -0
  214. package/src/lib/migrations/0000000012000-notification-sla-idempotency.js.map +1 -0
  215. package/src/lib/migrations/0000000013000-workflow-query-indexes.d.ts +6 -0
  216. package/src/lib/migrations/0000000013000-workflow-query-indexes.js +80 -0
  217. package/src/lib/migrations/0000000013000-workflow-query-indexes.js.map +1 -0
  218. package/src/lib/migrations/index.d.ts +16 -0
  219. package/src/lib/migrations/index.js +49 -0
  220. package/src/lib/migrations/index.js.map +1 -0
  221. package/src/lib/notification/dto/notification-preference.input.d.ts +9 -0
  222. package/src/lib/notification/dto/notification-preference.input.js +53 -0
  223. package/src/lib/notification/dto/notification-preference.input.js.map +1 -0
  224. package/src/lib/notification/index.js +11 -0
  225. package/src/lib/notification/index.js.map +1 -0
  226. package/src/lib/notification/notification-delivery-scheduler.service.d.ts +13 -0
  227. package/src/lib/notification/notification-delivery-scheduler.service.js +53 -0
  228. package/src/lib/notification/notification-delivery-scheduler.service.js.map +1 -0
  229. package/src/lib/notification/notification-delivery.service.d.ts +23 -0
  230. package/src/lib/notification/notification-delivery.service.js +245 -0
  231. package/src/lib/notification/notification-delivery.service.js.map +1 -0
  232. package/src/lib/notification/notification-dispatcher.token.d.ts +7 -0
  233. package/src/lib/notification/notification-dispatcher.token.js +5 -0
  234. package/src/lib/notification/notification-dispatcher.token.js.map +1 -0
  235. package/src/lib/notification/notification-options.d.ts +215 -0
  236. package/src/lib/notification/notification-options.js +128 -0
  237. package/src/lib/notification/notification-options.js.map +1 -0
  238. package/src/lib/notification/notification-options.module.d.ts +23 -0
  239. package/src/lib/notification/notification-options.module.js +41 -0
  240. package/src/lib/notification/notification-options.module.js.map +1 -0
  241. package/src/lib/notification/notification-preference.entity.d.ts +10 -0
  242. package/src/lib/notification/notification-preference.entity.js +50 -0
  243. package/src/lib/notification/notification-preference.entity.js.map +1 -0
  244. package/src/lib/notification/notification-sla-scheduler.service.d.ts +13 -0
  245. package/src/lib/notification/notification-sla-scheduler.service.js +51 -0
  246. package/src/lib/notification/notification-sla-scheduler.service.js.map +1 -0
  247. package/src/lib/notification/notification-template.d.ts +13 -0
  248. package/src/lib/notification/notification-template.js +61 -0
  249. package/src/lib/notification/notification-template.js.map +1 -0
  250. package/src/lib/notification/notification.entity.d.ts +23 -0
  251. package/src/lib/notification/notification.entity.js +122 -0
  252. package/src/lib/notification/notification.entity.js.map +1 -0
  253. package/src/lib/notification/notification.enums.d.ts +24 -0
  254. package/src/lib/notification/notification.enums.js +45 -0
  255. package/src/lib/notification/notification.enums.js.map +1 -0
  256. package/src/lib/notification/notification.module.d.ts +2 -0
  257. package/src/lib/notification/notification.module.js +45 -0
  258. package/src/lib/notification/notification.module.js.map +1 -0
  259. package/src/lib/notification/notification.mutations.d.ts +11 -0
  260. package/src/lib/notification/notification.mutations.js +64 -0
  261. package/src/lib/notification/notification.mutations.js.map +1 -0
  262. package/src/lib/notification/notification.queries.d.ts +11 -0
  263. package/src/lib/notification/notification.queries.js +77 -0
  264. package/src/lib/notification/notification.queries.js.map +1 -0
  265. package/src/lib/notification/notification.service.d.ts +81 -0
  266. package/src/lib/notification/notification.service.js +621 -0
  267. package/src/lib/notification/notification.service.js.map +1 -0
  268. package/src/lib/organization/dto/manager-resolution.input.d.ts +18 -0
  269. package/src/lib/organization/dto/manager-resolution.input.js +107 -0
  270. package/src/lib/organization/dto/manager-resolution.input.js.map +1 -0
  271. package/src/lib/organization/dto/membership.input.d.ts +16 -0
  272. package/src/lib/organization/dto/membership.input.js +99 -0
  273. package/src/lib/organization/dto/membership.input.js.map +1 -0
  274. package/src/lib/organization/dto/org-unit.input.d.ts +24 -0
  275. package/src/lib/organization/dto/org-unit.input.js +119 -0
  276. package/src/lib/organization/dto/org-unit.input.js.map +1 -0
  277. package/src/lib/organization/dto/position.input.d.ts +13 -0
  278. package/src/lib/organization/dto/position.input.js +70 -0
  279. package/src/lib/organization/dto/position.input.js.map +1 -0
  280. package/src/lib/organization/index.js +16 -0
  281. package/src/lib/organization/index.js.map +1 -0
  282. package/src/lib/organization/json-metadata.d.ts +1 -0
  283. package/src/lib/organization/json-metadata.js +14 -0
  284. package/src/lib/organization/json-metadata.js.map +1 -0
  285. package/src/lib/organization/manager-resolution.entity.d.ts +11 -0
  286. package/src/lib/organization/manager-resolution.entity.js +55 -0
  287. package/src/lib/organization/manager-resolution.entity.js.map +1 -0
  288. package/src/lib/organization/membership.entity.d.ts +11 -0
  289. package/src/lib/organization/membership.entity.js +60 -0
  290. package/src/lib/organization/membership.entity.js.map +1 -0
  291. package/src/lib/organization/org-unit-tree-commit-result.object.d.ts +4 -0
  292. package/src/lib/organization/org-unit-tree-commit-result.object.js +17 -0
  293. package/src/lib/organization/org-unit-tree-commit-result.object.js.map +1 -0
  294. package/src/lib/organization/org-unit.entity.d.ts +13 -0
  295. package/src/lib/organization/org-unit.entity.js +64 -0
  296. package/src/lib/organization/org-unit.entity.js.map +1 -0
  297. package/src/lib/organization/organization-summary.object.d.ts +6 -0
  298. package/src/lib/organization/organization-summary.object.js +28 -0
  299. package/src/lib/organization/organization-summary.object.js.map +1 -0
  300. package/src/lib/organization/organization.enums.d.ts +11 -0
  301. package/src/lib/organization/organization.enums.js +22 -0
  302. package/src/lib/organization/organization.enums.js.map +1 -0
  303. package/src/lib/organization/organization.module.d.ts +2 -0
  304. package/src/lib/organization/organization.module.js +35 -0
  305. package/src/lib/organization/organization.module.js.map +1 -0
  306. package/src/lib/organization/organization.mutations.d.ts +26 -0
  307. package/src/lib/organization/organization.mutations.js +148 -0
  308. package/src/lib/organization/organization.mutations.js.map +1 -0
  309. package/src/lib/organization/organization.queries.d.ts +23 -0
  310. package/src/lib/organization/organization.queries.js +202 -0
  311. package/src/lib/organization/organization.queries.js.map +1 -0
  312. package/src/lib/organization/organization.service.d.ts +102 -0
  313. package/src/lib/organization/organization.service.js +751 -0
  314. package/src/lib/organization/organization.service.js.map +1 -0
  315. package/src/lib/organization/position.entity.d.ts +9 -0
  316. package/src/lib/organization/position.entity.js +48 -0
  317. package/src/lib/organization/position.entity.js.map +1 -0
  318. package/src/lib/organization/resolved-manager.object.d.ts +4 -0
  319. package/src/lib/organization/resolved-manager.object.js +20 -0
  320. package/src/lib/organization/resolved-manager.object.js.map +1 -0
  321. package/src/lib/signature/index.js +8 -0
  322. package/src/lib/signature/index.js.map +1 -0
  323. package/src/lib/signature/signature-options.d.ts +33 -0
  324. package/src/lib/signature/signature-options.js +51 -0
  325. package/src/lib/signature/signature-options.js.map +1 -0
  326. package/src/lib/signature/signature-verification.object.d.ts +6 -0
  327. package/src/lib/signature/signature-verification.object.js +28 -0
  328. package/src/lib/signature/signature-verification.object.js.map +1 -0
  329. package/src/lib/signature/signature.entity.d.ts +16 -0
  330. package/src/lib/signature/signature.entity.js +88 -0
  331. package/src/lib/signature/signature.entity.js.map +1 -0
  332. package/src/lib/signature/signature.module.d.ts +11 -0
  333. package/src/lib/signature/signature.module.js +60 -0
  334. package/src/lib/signature/signature.module.js.map +1 -0
  335. package/src/lib/signature/signature.queries.d.ts +11 -0
  336. package/src/lib/signature/signature.queries.js +46 -0
  337. package/src/lib/signature/signature.queries.js.map +1 -0
  338. package/src/lib/signature/signature.service.d.ts +25 -0
  339. package/src/lib/signature/signature.service.js +124 -0
  340. package/src/lib/signature/signature.service.js.map +1 -0
  341. package/src/lib/template/approval-template-category.entity.d.ts +9 -0
  342. package/src/lib/template/approval-template-category.entity.js +49 -0
  343. package/src/lib/template/approval-template-category.entity.js.map +1 -0
  344. package/src/lib/template/approval-template-version.entity.d.ts +21 -0
  345. package/src/lib/template/approval-template-version.entity.js +106 -0
  346. package/src/lib/template/approval-template-version.entity.js.map +1 -0
  347. package/src/lib/template/approval-template.entity.d.ts +14 -0
  348. package/src/lib/template/approval-template.entity.js +74 -0
  349. package/src/lib/template/approval-template.entity.js.map +1 -0
  350. package/src/lib/template/dto/approval-template.input.d.ts +36 -0
  351. package/src/lib/template/dto/approval-template.input.js +187 -0
  352. package/src/lib/template/dto/approval-template.input.js.map +1 -0
  353. package/src/lib/template/index.js +12 -0
  354. package/src/lib/template/index.js.map +1 -0
  355. package/src/lib/template/template.enums.d.ts +14 -0
  356. package/src/lib/template/template.enums.js +31 -0
  357. package/src/lib/template/template.enums.js.map +1 -0
  358. package/src/lib/template/template.module.d.ts +2 -0
  359. package/src/lib/template/template.module.js +33 -0
  360. package/src/lib/template/template.module.js.map +1 -0
  361. package/src/lib/template/template.mutations.d.ts +20 -0
  362. package/src/lib/template/template.mutations.js +139 -0
  363. package/src/lib/template/template.mutations.js.map +1 -0
  364. package/src/lib/template/template.queries.d.ts +16 -0
  365. package/src/lib/template/template.queries.js +133 -0
  366. package/src/lib/template/template.queries.js.map +1 -0
  367. package/src/lib/template/template.service.d.ts +64 -0
  368. package/src/lib/template/template.service.js +521 -0
  369. package/src/lib/template/template.service.js.map +1 -0
  370. package/src/lib/template/workflow-definition.validator.d.ts +9 -0
  371. package/src/lib/template/workflow-definition.validator.js +362 -0
  372. package/src/lib/template/workflow-definition.validator.js.map +1 -0
  373. package/src/lib/testing/cel-js.jest.d.ts +15 -0
  374. package/src/lib/testing/cel-js.jest.js +27 -0
  375. package/src/lib/testing/cel-js.jest.js.map +1 -0
  376. package/src/lib/workflow-engine/activity-log.entity.d.ts +12 -0
  377. package/src/lib/workflow-engine/activity-log.entity.js +62 -0
  378. package/src/lib/workflow-engine/activity-log.entity.js.map +1 -0
  379. package/src/lib/workflow-engine/approval-instance-page-info.object.d.ts +8 -0
  380. package/src/lib/workflow-engine/approval-instance-page-info.object.js +36 -0
  381. package/src/lib/workflow-engine/approval-instance-page-info.object.js.map +1 -0
  382. package/src/lib/workflow-engine/approval-instance.entity.d.ts +22 -0
  383. package/src/lib/workflow-engine/approval-instance.entity.js +113 -0
  384. package/src/lib/workflow-engine/approval-instance.entity.js.map +1 -0
  385. package/src/lib/workflow-engine/dto/cancel-approval-instance.input.d.ts +5 -0
  386. package/src/lib/workflow-engine/dto/cancel-approval-instance.input.js +29 -0
  387. package/src/lib/workflow-engine/dto/cancel-approval-instance.input.js.map +1 -0
  388. package/src/lib/workflow-engine/dto/decide-task.input.d.ts +9 -0
  389. package/src/lib/workflow-engine/dto/decide-task.input.js +47 -0
  390. package/src/lib/workflow-engine/dto/decide-task.input.js.map +1 -0
  391. package/src/lib/workflow-engine/dto/dry-run-approval-workflow.input.d.ts +6 -0
  392. package/src/lib/workflow-engine/dto/dry-run-approval-workflow.input.js +34 -0
  393. package/src/lib/workflow-engine/dto/dry-run-approval-workflow.input.js.map +1 -0
  394. package/src/lib/workflow-engine/dto/resubmit-approval-instance.input.d.ts +6 -0
  395. package/src/lib/workflow-engine/dto/resubmit-approval-instance.input.js +34 -0
  396. package/src/lib/workflow-engine/dto/resubmit-approval-instance.input.js.map +1 -0
  397. package/src/lib/workflow-engine/dto/submit-approval-instance.input.d.ts +7 -0
  398. package/src/lib/workflow-engine/dto/submit-approval-instance.input.js +40 -0
  399. package/src/lib/workflow-engine/dto/submit-approval-instance.input.js.map +1 -0
  400. package/src/lib/workflow-engine/index.js +24 -0
  401. package/src/lib/workflow-engine/index.js.map +1 -0
  402. package/src/lib/workflow-engine/task-candidate.entity.d.ts +14 -0
  403. package/src/lib/workflow-engine/task-candidate.entity.js +72 -0
  404. package/src/lib/workflow-engine/task-candidate.entity.js.map +1 -0
  405. package/src/lib/workflow-engine/task-decision.entity.d.ts +12 -0
  406. package/src/lib/workflow-engine/task-decision.entity.js +60 -0
  407. package/src/lib/workflow-engine/task-decision.entity.js.map +1 -0
  408. package/src/lib/workflow-engine/task.entity.d.ts +20 -0
  409. package/src/lib/workflow-engine/task.entity.js +109 -0
  410. package/src/lib/workflow-engine/task.entity.js.map +1 -0
  411. package/src/lib/workflow-engine/workflow-condition-evaluator.d.ts +5 -0
  412. package/src/lib/workflow-engine/workflow-condition-evaluator.js +107 -0
  413. package/src/lib/workflow-engine/workflow-condition-evaluator.js.map +1 -0
  414. package/src/lib/workflow-engine/workflow-dashboard-summary.object.d.ts +8 -0
  415. package/src/lib/workflow-engine/workflow-dashboard-summary.object.js +36 -0
  416. package/src/lib/workflow-engine/workflow-dashboard-summary.object.js.map +1 -0
  417. package/src/lib/workflow-engine/workflow-dry-run.object.d.ts +21 -0
  418. package/src/lib/workflow-engine/workflow-dry-run.object.js +86 -0
  419. package/src/lib/workflow-engine/workflow-dry-run.object.js.map +1 -0
  420. package/src/lib/workflow-engine/workflow-engine.enums.d.ts +58 -0
  421. package/src/lib/workflow-engine/workflow-engine.enums.js +95 -0
  422. package/src/lib/workflow-engine/workflow-engine.enums.js.map +1 -0
  423. package/src/lib/workflow-engine/workflow-engine.module.d.ts +9 -0
  424. package/src/lib/workflow-engine/workflow-engine.module.js +76 -0
  425. package/src/lib/workflow-engine/workflow-engine.module.js.map +1 -0
  426. package/src/lib/workflow-engine/workflow-engine.mutations.d.ts +19 -0
  427. package/src/lib/workflow-engine/workflow-engine.mutations.js +106 -0
  428. package/src/lib/workflow-engine/workflow-engine.mutations.js.map +1 -0
  429. package/src/lib/workflow-engine/workflow-engine.queries.d.ts +29 -0
  430. package/src/lib/workflow-engine/workflow-engine.queries.js +225 -0
  431. package/src/lib/workflow-engine/workflow-engine.queries.js.map +1 -0
  432. package/src/lib/workflow-engine/workflow-engine.service.d.ts +145 -0
  433. package/src/lib/workflow-engine/workflow-engine.service.js +2785 -0
  434. package/src/lib/workflow-engine/workflow-engine.service.js.map +1 -0
  435. package/src/lib/workflow-engine/{workflow-engine.tokens.ts → workflow-engine.tokens.d.ts} +3 -9
  436. package/src/lib/workflow-engine/workflow-engine.tokens.js +5 -0
  437. package/src/lib/workflow-engine/workflow-engine.tokens.js.map +1 -0
  438. package/src/lib/workflow-engine/workflow-service-task-dispatcher.token.d.ts +18 -0
  439. package/src/lib/workflow-engine/workflow-service-task-dispatcher.token.js +39 -0
  440. package/src/lib/workflow-engine/workflow-service-task-dispatcher.token.js.map +1 -0
  441. package/src/lib/workflow-engine/workflow-token.entity.d.ts +10 -0
  442. package/src/lib/workflow-engine/workflow-token.entity.js +50 -0
  443. package/src/lib/workflow-engine/workflow-token.entity.js.map +1 -0
  444. package/eslint.config.mjs +0 -20
  445. package/jest.config.cts +0 -15
  446. package/project.json +0 -58
  447. package/src/lib/attachment/attachment-options.spec.ts +0 -45
  448. package/src/lib/attachment/attachment-options.ts +0 -130
  449. package/src/lib/attachment/attachment-storage.provider.spec.ts +0 -79
  450. package/src/lib/attachment/attachment-storage.provider.ts +0 -60
  451. package/src/lib/attachment/attachment.controller.ts +0 -39
  452. package/src/lib/attachment/attachment.entity.ts +0 -59
  453. package/src/lib/attachment/attachment.module.ts +0 -149
  454. package/src/lib/attachment/attachment.mutations.ts +0 -22
  455. package/src/lib/attachment/attachment.queries.ts +0 -65
  456. package/src/lib/attachment/attachment.service.spec.ts +0 -319
  457. package/src/lib/attachment/attachment.service.ts +0 -477
  458. package/src/lib/attachment/dto/upload-attachment.input.ts +0 -60
  459. package/src/lib/bpm/bpm-root.module.spec.ts +0 -138
  460. package/src/lib/bpm/bpm-root.module.ts +0 -320
  461. package/src/lib/bpm-auth/bpm-auth-context.extractor.ts +0 -106
  462. package/src/lib/bpm-auth/bpm-auth-context.ts +0 -40
  463. package/src/lib/bpm-auth/bpm-auth.authorization.ts +0 -80
  464. package/src/lib/bpm-auth/bpm-auth.decorators.ts +0 -19
  465. package/src/lib/bpm-auth/bpm-auth.guard.ts +0 -31
  466. package/src/lib/bpm-auth/bpm-auth.module.spec.ts +0 -106
  467. package/src/lib/bpm-auth/bpm-auth.module.ts +0 -69
  468. package/src/lib/bpm-auth/bpm-auth.options.ts +0 -21
  469. package/src/lib/bpm-auth/configurable-bpm-auth-context.accessor.ts +0 -55
  470. package/src/lib/common/filters/all-exceptions.filter.ts +0 -138
  471. package/src/lib/common/iso-duration.ts +0 -31
  472. package/src/lib/condition/condition.module.ts +0 -8
  473. package/src/lib/condition/condition.service.spec.ts +0 -50
  474. package/src/lib/condition/condition.service.ts +0 -141
  475. package/src/lib/database/data-source.ts +0 -7
  476. package/src/lib/database/migration-runner.ts +0 -24
  477. package/src/lib/database/typeorm.config.ts +0 -217
  478. package/src/lib/delegation/delegation-rule.entity.ts +0 -84
  479. package/src/lib/delegation/delegation.enums.ts +0 -21
  480. package/src/lib/delegation/delegation.module.ts +0 -14
  481. package/src/lib/delegation/delegation.mutations.ts +0 -92
  482. package/src/lib/delegation/delegation.queries.ts +0 -111
  483. package/src/lib/delegation/delegation.service.spec.ts +0 -295
  484. package/src/lib/delegation/delegation.service.ts +0 -482
  485. package/src/lib/delegation/dto/delegation-rule.input.ts +0 -125
  486. package/src/lib/form/dto/form-definition.input.ts +0 -73
  487. package/src/lib/form/form-definition-version.entity.ts +0 -66
  488. package/src/lib/form/form-definition.entity.ts +0 -54
  489. package/src/lib/form/form-schema-lint.object.ts +0 -10
  490. package/src/lib/form/form-schema.validator.spec.ts +0 -180
  491. package/src/lib/form/form-schema.validator.ts +0 -538
  492. package/src/lib/form/form.enums.ts +0 -20
  493. package/src/lib/form/form.module.ts +0 -19
  494. package/src/lib/form/form.mutations.ts +0 -68
  495. package/src/lib/form/form.queries.ts +0 -72
  496. package/src/lib/form/form.service.spec.ts +0 -144
  497. package/src/lib/form/form.service.ts +0 -490
  498. package/src/lib/identity/identity-options.ts +0 -41
  499. package/src/lib/identity/identity.module.ts +0 -96
  500. package/src/lib/identity/identity.queries.ts +0 -61
  501. package/src/lib/identity/identity.service.spec.ts +0 -105
  502. package/src/lib/identity/identity.service.ts +0 -200
  503. package/src/lib/identity/member-base.adapter.spec.ts +0 -77
  504. package/src/lib/identity/member-base.adapter.ts +0 -244
  505. package/src/lib/identity/member-metadata-cache.entity.ts +0 -27
  506. package/src/lib/identity/member-profile.object.ts +0 -28
  507. package/src/lib/migrations/0000000000001-enable-postgres-extensions.ts +0 -14
  508. package/src/lib/migrations/0000000011000-remove-attachment-encryption-key.ts +0 -19
  509. package/src/lib/migrations/0000000012000-notification-sla-idempotency.ts +0 -22
  510. package/src/lib/migrations/0000000013000-workflow-query-indexes.ts +0 -113
  511. package/src/lib/migrations/index.ts +0 -47
  512. package/src/lib/notification/dto/notification-preference.input.ts +0 -46
  513. package/src/lib/notification/notification-delivery-scheduler.service.ts +0 -69
  514. package/src/lib/notification/notification-delivery.service.spec.ts +0 -315
  515. package/src/lib/notification/notification-delivery.service.ts +0 -339
  516. package/src/lib/notification/notification-dispatcher.token.ts +0 -13
  517. package/src/lib/notification/notification-options.module.ts +0 -67
  518. package/src/lib/notification/notification-options.spec.ts +0 -93
  519. package/src/lib/notification/notification-options.ts +0 -452
  520. package/src/lib/notification/notification-preference.entity.ts +0 -35
  521. package/src/lib/notification/notification-sla-scheduler.service.ts +0 -66
  522. package/src/lib/notification/notification-template.spec.ts +0 -33
  523. package/src/lib/notification/notification-template.ts +0 -97
  524. package/src/lib/notification/notification.entity.ts +0 -102
  525. package/src/lib/notification/notification.enums.ts +0 -45
  526. package/src/lib/notification/notification.module.ts +0 -37
  527. package/src/lib/notification/notification.mutations.ts +0 -47
  528. package/src/lib/notification/notification.queries.ts +0 -64
  529. package/src/lib/notification/notification.service.spec.ts +0 -412
  530. package/src/lib/notification/notification.service.ts +0 -974
  531. package/src/lib/organization/dto/manager-resolution.input.ts +0 -91
  532. package/src/lib/organization/dto/membership.input.ts +0 -77
  533. package/src/lib/organization/dto/org-unit.input.ts +0 -96
  534. package/src/lib/organization/dto/position.input.ts +0 -50
  535. package/src/lib/organization/json-metadata.ts +0 -15
  536. package/src/lib/organization/manager-resolution.entity.ts +0 -44
  537. package/src/lib/organization/membership.entity.ts +0 -50
  538. package/src/lib/organization/org-unit-tree-commit-result.object.ts +0 -8
  539. package/src/lib/organization/org-unit.entity.ts +0 -53
  540. package/src/lib/organization/organization-summary.object.ts +0 -16
  541. package/src/lib/organization/organization.enums.ts +0 -19
  542. package/src/lib/organization/organization.module.ts +0 -27
  543. package/src/lib/organization/organization.mutations.ts +0 -115
  544. package/src/lib/organization/organization.queries.ts +0 -188
  545. package/src/lib/organization/organization.service.spec.ts +0 -760
  546. package/src/lib/organization/organization.service.ts +0 -1216
  547. package/src/lib/organization/position.entity.ts +0 -39
  548. package/src/lib/organization/resolved-manager.object.ts +0 -10
  549. package/src/lib/signature/signature-options.spec.ts +0 -60
  550. package/src/lib/signature/signature-options.ts +0 -120
  551. package/src/lib/signature/signature-verification.object.ts +0 -16
  552. package/src/lib/signature/signature.entity.ts +0 -62
  553. package/src/lib/signature/signature.module.ts +0 -80
  554. package/src/lib/signature/signature.queries.ts +0 -37
  555. package/src/lib/signature/signature.service.spec.ts +0 -134
  556. package/src/lib/signature/signature.service.ts +0 -205
  557. package/src/lib/template/approval-template-category.entity.ts +0 -40
  558. package/src/lib/template/approval-template-version.entity.ts +0 -82
  559. package/src/lib/template/approval-template.entity.ts +0 -64
  560. package/src/lib/template/dto/approval-template.input.ts +0 -147
  561. package/src/lib/template/template.enums.ts +0 -30
  562. package/src/lib/template/template.module.ts +0 -25
  563. package/src/lib/template/template.mutations.ts +0 -106
  564. package/src/lib/template/template.queries.ts +0 -119
  565. package/src/lib/template/template.service.spec.ts +0 -476
  566. package/src/lib/template/template.service.ts +0 -820
  567. package/src/lib/template/workflow-definition.validator.spec.ts +0 -595
  568. package/src/lib/template/workflow-definition.validator.ts +0 -539
  569. package/src/lib/testing/cel-js.jest.ts +0 -46
  570. package/src/lib/workflow-engine/activity-log.entity.ts +0 -48
  571. package/src/lib/workflow-engine/approval-instance-page-info.object.ts +0 -22
  572. package/src/lib/workflow-engine/approval-instance.entity.ts +0 -86
  573. package/src/lib/workflow-engine/dto/cancel-approval-instance.input.ts +0 -18
  574. package/src/lib/workflow-engine/dto/decide-task.input.ts +0 -33
  575. package/src/lib/workflow-engine/dto/dry-run-approval-workflow.input.ts +0 -22
  576. package/src/lib/workflow-engine/dto/resubmit-approval-instance.input.ts +0 -22
  577. package/src/lib/workflow-engine/dto/submit-approval-instance.input.ts +0 -27
  578. package/src/lib/workflow-engine/task-candidate.entity.ts +0 -56
  579. package/src/lib/workflow-engine/task-decision.entity.ts +0 -43
  580. package/src/lib/workflow-engine/task.entity.ts +0 -85
  581. package/src/lib/workflow-engine/workflow-condition-evaluator.ts +0 -168
  582. package/src/lib/workflow-engine/workflow-dashboard-summary.object.ts +0 -22
  583. package/src/lib/workflow-engine/workflow-dry-run.object.ts +0 -58
  584. package/src/lib/workflow-engine/workflow-engine.enums.ts +0 -99
  585. package/src/lib/workflow-engine/workflow-engine.module.ts +0 -75
  586. package/src/lib/workflow-engine/workflow-engine.mutations.ts +0 -85
  587. package/src/lib/workflow-engine/workflow-engine.queries.ts +0 -229
  588. package/src/lib/workflow-engine/workflow-engine.service.spec.ts +0 -2689
  589. package/src/lib/workflow-engine/workflow-engine.service.ts +0 -4707
  590. package/src/lib/workflow-engine/workflow-service-task-dispatcher.token.ts +0 -69
  591. package/src/lib/workflow-engine/workflow-token.entity.ts +0 -40
  592. package/tsconfig.json +0 -24
  593. package/tsconfig.lib.json +0 -16
  594. package/tsconfig.spec.json +0 -16
  595. /package/src/{index.ts → index.d.ts} +0 -0
  596. /package/src/lib/attachment/{index.ts → index.d.ts} +0 -0
  597. /package/src/lib/bpm/{index.ts → index.d.ts} +0 -0
  598. /package/src/lib/bpm-auth/{index.ts → index.d.ts} +0 -0
  599. /package/src/lib/common/{index.ts → index.d.ts} +0 -0
  600. /package/src/lib/condition/{index.ts → index.d.ts} +0 -0
  601. /package/src/lib/database/{index.ts → index.d.ts} +0 -0
  602. /package/src/lib/delegation/{index.ts → index.d.ts} +0 -0
  603. /package/src/lib/form/{index.ts → index.d.ts} +0 -0
  604. /package/src/lib/identity/{index.ts → index.d.ts} +0 -0
  605. /package/src/lib/notification/{index.ts → index.d.ts} +0 -0
  606. /package/src/lib/organization/{index.ts → index.d.ts} +0 -0
  607. /package/src/lib/signature/{index.ts → index.d.ts} +0 -0
  608. /package/src/lib/template/{index.ts → index.d.ts} +0 -0
  609. /package/src/lib/workflow-engine/{index.ts → index.d.ts} +0 -0
@@ -1,244 +0,0 @@
1
- import { InjectionToken, Provider } from '@nestjs/common';
2
- import { MemberMetadata } from '@rytass/bpm-core-shared';
3
- import { BPMAuthContext } from '../bpm-auth';
4
- import { BPMMemberResolver } from './member-resolver.interface';
5
-
6
- /**
7
- * Structural contract a host identity backend should implement (or a thin
8
- * adapter wrap) so BPM can be plugged into any `member-base`-style
9
- * directory without coupling `@rytass/bpm-core-nestjs-module` to a
10
- * specific identity package.
11
- *
12
- * `TMember` is the host's own member shape; the adapter walks it through
13
- * {@link BPMMemberBaseAdapterOptions} field readers.
14
- */
15
- export interface BPMMemberBaseDirectory<TMember> {
16
- readonly resolveMember: (memberId: string) => Promise<TMember | null>;
17
- readonly resolveMembers?: (
18
- memberIds: readonly string[],
19
- ) => Promise<readonly TMember[]>;
20
- readonly searchMembers?: (searchText: string) => Promise<readonly TMember[]>;
21
- }
22
-
23
- /**
24
- * Per-host field readers that tell the adapter how to extract canonical
25
- * BPM fields out of the host's `TMember`. Each reader is optional;
26
- * sensible defaults are inferred when the host uses common conventions
27
- * (`memberId` / `id` / `sub` for the member id, `email` for the email,
28
- * `name` / `displayName` for the name, etc.).
29
- *
30
- * Provide `readPermissions` and `readRoles` if you want BPM's
31
- * `BPMAdminGuard` / `BPMDesignerGuard` to receive the host's RBAC
32
- * strings; otherwise the resolved `BPMAuthContext` will carry empty
33
- * arrays.
34
- */
35
- export interface BPMMemberBaseAdapterOptions<TMember> {
36
- readonly readCustomFields?: (
37
- member: TMember,
38
- ) => Readonly<Record<string, unknown>>;
39
- readonly readEmail?: (member: TMember) => string | null;
40
- readonly readMemberId?: (member: TMember) => string | null;
41
- readonly readName?: (member: TMember) => string | null;
42
- readonly readPermissions?: (member: TMember) => readonly string[];
43
- readonly readRoles?: (member: TMember) => readonly string[];
44
- }
45
-
46
- export interface BPMMemberBaseResolverProviderOptions<TMember> {
47
- readonly adapterOptions?: BPMMemberBaseAdapterOptions<TMember>;
48
- readonly directoryToken: InjectionToken<BPMMemberBaseDirectory<TMember>>;
49
- readonly provide: InjectionToken<BPMMemberResolver>;
50
- }
51
-
52
- export class BPMMemberBaseResolverAdapter<TMember>
53
- implements BPMMemberResolver
54
- {
55
- constructor(
56
- private readonly directory: BPMMemberBaseDirectory<TMember>,
57
- private readonly options: BPMMemberBaseAdapterOptions<TMember> = {},
58
- ) {}
59
-
60
- async resolve(memberId: string): Promise<MemberMetadata> {
61
- const member = await this.directory.resolveMember(memberId);
62
-
63
- if (!member) {
64
- throw new Error(`member-base member ${memberId} was not found`);
65
- }
66
-
67
- return readMemberMetadataFromMemberBaseMember(member, this.options);
68
- }
69
-
70
- async resolveMany(
71
- memberIds: readonly string[],
72
- ): Promise<ReadonlyMap<string, MemberMetadata>> {
73
- const members = this.directory.resolveMembers
74
- ? await this.directory.resolveMembers(memberIds)
75
- : await Promise.all(
76
- memberIds.map((memberId): Promise<TMember | null> =>
77
- this.directory.resolveMember(memberId),
78
- ),
79
- );
80
-
81
- return members
82
- .filter((member): member is TMember => Boolean(member))
83
- .map((member): MemberMetadata =>
84
- readMemberMetadataFromMemberBaseMember(member, this.options),
85
- )
86
- .reduce<ReadonlyMap<string, MemberMetadata>>(
87
- (metadataByMemberId, metadata): ReadonlyMap<string, MemberMetadata> =>
88
- new Map(metadataByMemberId).set(metadata.memberId, metadata),
89
- new Map(),
90
- );
91
- }
92
-
93
- async search(searchText: string): Promise<readonly MemberMetadata[]> {
94
- if (!this.directory.searchMembers) {
95
- return [];
96
- }
97
-
98
- return (await this.directory.searchMembers(searchText)).map(
99
- (member): MemberMetadata =>
100
- readMemberMetadataFromMemberBaseMember(member, this.options),
101
- );
102
- }
103
- }
104
-
105
- /**
106
- * Helper for hosts that already hold an authenticated `TMember` (for
107
- * example from `@rytass/member-base-nestjs-module`) and want to project it
108
- * into a {@link BPMAuthContext} without writing the boilerplate by hand.
109
- *
110
- * Returns `null` when the input is nullish or when the member is missing
111
- * an id — never throws. Pair this with `BPMRootModuleOptions.authContextFactory`
112
- * so BPM resolvers receive the projected context on every request.
113
- *
114
- * @example
115
- * ```ts
116
- * const bpmAuth = createBPMAuthContextFromMemberBaseMember(memberBaseUser, {
117
- * readRoles: (m) => m.roles,
118
- * readPermissions: (m) => m.permissions,
119
- * readCustomFields: (m) => ({ tenantId: m.tenantId }),
120
- * });
121
- * ```
122
- */
123
- export function createBPMAuthContextFromMemberBaseMember<TMember>(
124
- member: TMember | null | undefined,
125
- options: BPMMemberBaseAdapterOptions<TMember> = {},
126
- ): BPMAuthContext | null {
127
- if (!member) {
128
- return null;
129
- }
130
-
131
- const memberId = readMemberId(member, options);
132
-
133
- return memberId
134
- ? {
135
- memberId,
136
- metadata: options.readCustomFields?.(member) ?? {},
137
- permissions: options.readPermissions?.(member) ?? [],
138
- roles: options.readRoles?.(member) ?? [],
139
- }
140
- : null;
141
- }
142
-
143
- /**
144
- * Builds a Nest `Provider` that adapts a host-provided
145
- * {@link BPMMemberBaseDirectory} into a {@link BPMMemberResolver}, then
146
- * registers it under the host-chosen injection token (typically
147
- * {@link BPM_MEMBER_RESOLVER}).
148
- *
149
- * Pass the result inside `BPMRootModuleOptions.memberResolverProvider`.
150
- *
151
- * @example
152
- * ```ts
153
- * BPMRootModule.forRoot({
154
- * memberResolverProvider: createBPMMemberBaseResolverProvider({
155
- * provide: BPM_MEMBER_RESOLVER,
156
- * directoryToken: HOST_MEMBER_DIRECTORY,
157
- * adapterOptions: {
158
- * readEmail: (m) => m.email,
159
- * readName: (m) => m.name,
160
- * },
161
- * }),
162
- * // ...
163
- * });
164
- * ```
165
- */
166
- export function createBPMMemberBaseResolverProvider<TMember>({
167
- adapterOptions,
168
- directoryToken,
169
- provide,
170
- }: BPMMemberBaseResolverProviderOptions<TMember>): Provider<BPMMemberResolver> {
171
- return {
172
- inject: [directoryToken],
173
- provide,
174
- useFactory: (
175
- directory: BPMMemberBaseDirectory<TMember>,
176
- ): BPMMemberResolver =>
177
- new BPMMemberBaseResolverAdapter(directory, adapterOptions),
178
- };
179
- }
180
-
181
- export function readMemberMetadataFromMemberBaseMember<TMember>(
182
- member: TMember,
183
- options: BPMMemberBaseAdapterOptions<TMember> = {},
184
- ): MemberMetadata {
185
- const memberId = readMemberId(member, options);
186
-
187
- if (!memberId) {
188
- throw new Error('member-base member id is required for BPM integration');
189
- }
190
-
191
- return {
192
- customFields: options.readCustomFields?.(member) ?? {},
193
- email: readMemberEmail(member, options) ?? '',
194
- memberId,
195
- name: readMemberName(member, options) ?? memberId,
196
- };
197
- }
198
-
199
- function readMemberId<TMember>(
200
- member: TMember,
201
- options: BPMMemberBaseAdapterOptions<TMember>,
202
- ): string | null {
203
- return (
204
- normalizeText(options.readMemberId?.(member)) ??
205
- readStringProperty(member, 'memberId') ??
206
- readStringProperty(member, 'id') ??
207
- readStringProperty(member, 'sub')
208
- );
209
- }
210
-
211
- function readMemberEmail<TMember>(
212
- member: TMember,
213
- options: BPMMemberBaseAdapterOptions<TMember>,
214
- ): string | null {
215
- return normalizeText(options.readEmail?.(member)) ?? readStringProperty(member, 'email');
216
- }
217
-
218
- function readMemberName<TMember>(
219
- member: TMember,
220
- options: BPMMemberBaseAdapterOptions<TMember>,
221
- ): string | null {
222
- return (
223
- normalizeText(options.readName?.(member)) ??
224
- readStringProperty(member, 'name') ??
225
- readStringProperty(member, 'displayName') ??
226
- readMemberEmail(member, options)
227
- );
228
- }
229
-
230
- function readStringProperty(value: unknown, key: string): string | null {
231
- if (!isRecord(value)) {
232
- return null;
233
- }
234
-
235
- return normalizeText(value[key]);
236
- }
237
-
238
- function normalizeText(value: unknown): string | null {
239
- return typeof value === 'string' && value.trim() ? value.trim() : null;
240
- }
241
-
242
- function isRecord(value: unknown): value is Readonly<Record<string, unknown>> {
243
- return typeof value === 'object' && value !== null;
244
- }
@@ -1,27 +0,0 @@
1
- import { Field, ID, ObjectType } from '@nestjs/graphql';
2
- import { Column, Entity, PrimaryGeneratedColumn, Unique } from 'typeorm';
3
- import { MemberMetadata } from '@rytass/bpm-core-shared';
4
-
5
- @Entity('member_metadata_cache')
6
- @Unique(['memberId'])
7
- @ObjectType('MemberMetadataCache')
8
- export class MemberMetadataCacheEntity {
9
- @PrimaryGeneratedColumn('uuid')
10
- @Field(() => ID)
11
- id!: string;
12
-
13
- @Column('text', { name: 'member_id' })
14
- @Field()
15
- memberId!: string;
16
-
17
- @Column('jsonb')
18
- metadata!: MemberMetadata;
19
-
20
- @Column('timestamptz', { name: 'fetched_at' })
21
- @Field()
22
- fetchedAt!: Date;
23
-
24
- @Column('timestamptz', { name: 'expires_at' })
25
- @Field()
26
- expiresAt!: Date;
27
- }
@@ -1,28 +0,0 @@
1
- import { Field, ID, ObjectType } from '@nestjs/graphql';
2
- import { MemberMetadata } from '@rytass/bpm-core-shared';
3
-
4
- @ObjectType('MemberProfile')
5
- export class MemberProfileObject {
6
- @Field(() => ID)
7
- memberId!: string;
8
-
9
- @Field()
10
- name!: string;
11
-
12
- @Field()
13
- email!: string;
14
-
15
- @Field()
16
- customFieldsJson!: string;
17
- }
18
-
19
- export function toMemberProfileObject(
20
- metadata: MemberMetadata,
21
- ): MemberProfileObject {
22
- return {
23
- customFieldsJson: JSON.stringify(metadata.customFields),
24
- email: metadata.email,
25
- memberId: metadata.memberId,
26
- name: metadata.name,
27
- };
28
- }
@@ -1,14 +0,0 @@
1
- import { MigrationInterface, QueryRunner } from 'typeorm';
2
-
3
- export class EnablePostgresExtensions0000000000001 implements MigrationInterface {
4
- readonly name = 'EnablePostgresExtensions0000000000001';
5
-
6
- async up(queryRunner: QueryRunner): Promise<void> {
7
- await queryRunner.query('CREATE EXTENSION IF NOT EXISTS "uuid-ossp"');
8
- await queryRunner.query('CREATE EXTENSION IF NOT EXISTS "ltree"');
9
- }
10
-
11
- async down(queryRunner: QueryRunner): Promise<void> {
12
- await queryRunner.query('DROP EXTENSION IF EXISTS "ltree"');
13
- }
14
- }
@@ -1,19 +0,0 @@
1
- import { MigrationInterface, QueryRunner } from 'typeorm';
2
-
3
- export class RemoveAttachmentEncryptionKey0000000011000 implements MigrationInterface {
4
- name = 'RemoveAttachmentEncryptionKey0000000011000';
5
-
6
- async up(queryRunner: QueryRunner): Promise<void> {
7
- await queryRunner.query(`
8
- ALTER TABLE "attachments"
9
- DROP COLUMN IF EXISTS "encryption_key_id"
10
- `);
11
- }
12
-
13
- async down(queryRunner: QueryRunner): Promise<void> {
14
- await queryRunner.query(`
15
- ALTER TABLE "attachments"
16
- ADD COLUMN IF NOT EXISTS "encryption_key_id" text NULL
17
- `);
18
- }
19
- }
@@ -1,22 +0,0 @@
1
- import { MigrationInterface, QueryRunner } from 'typeorm';
2
-
3
- export class NotificationSlaIdempotency0000000012000
4
- implements MigrationInterface
5
- {
6
- name = 'NotificationSlaIdempotency0000000012000';
7
-
8
- async up(queryRunner: QueryRunner): Promise<void> {
9
- await queryRunner.query(`
10
- CREATE UNIQUE INDEX IF NOT EXISTS "UQ_notifications_sla_once"
11
- ON "notifications" ("task_id", "recipient_member_id", "type", "channel")
12
- WHERE "task_id" IS NOT NULL
13
- AND "type" IN ('SLA_WARNING', 'SLA_OVERDUE')
14
- `);
15
- }
16
-
17
- async down(queryRunner: QueryRunner): Promise<void> {
18
- await queryRunner.query(
19
- 'DROP INDEX IF EXISTS "UQ_notifications_sla_once"',
20
- );
21
- }
22
- }
@@ -1,113 +0,0 @@
1
- import { MigrationInterface, QueryRunner } from 'typeorm';
2
-
3
- export class WorkflowQueryIndexes0000000013000 implements MigrationInterface {
4
- readonly name = 'WorkflowQueryIndexes0000000013000';
5
-
6
- async up(queryRunner: QueryRunner): Promise<void> {
7
- await queryRunner.query('CREATE EXTENSION IF NOT EXISTS "pg_trgm"');
8
-
9
- await queryRunner.query(`
10
- CREATE INDEX IF NOT EXISTS "IDX_approval_instances_created_desc"
11
- ON "approval_instances" ("created_at" DESC)
12
- `);
13
-
14
- await queryRunner.query(`
15
- CREATE INDEX IF NOT EXISTS "IDX_approval_instances_state_created_desc"
16
- ON "approval_instances" ("state", "created_at" DESC)
17
- `);
18
-
19
- await queryRunner.query(`
20
- CREATE INDEX IF NOT EXISTS "IDX_approval_instances_template_created_desc"
21
- ON "approval_instances" ("template_id", "created_at" DESC)
22
- `);
23
-
24
- await queryRunner.query(`
25
- CREATE INDEX IF NOT EXISTS "IDX_approval_instances_initiator_created_desc"
26
- ON "approval_instances" ("initiator_member_id", "created_at" DESC)
27
- `);
28
-
29
- await queryRunner.query(`
30
- CREATE INDEX IF NOT EXISTS "IDX_approval_instances_title_trgm"
31
- ON "approval_instances"
32
- USING gin (lower("title") gin_trgm_ops)
33
- `);
34
-
35
- await queryRunner.query(`
36
- CREATE INDEX IF NOT EXISTS "IDX_approval_instances_initiator_trgm"
37
- ON "approval_instances"
38
- USING gin (lower("initiator_member_id") gin_trgm_ops)
39
- `);
40
-
41
- await queryRunner.query(`
42
- CREATE INDEX IF NOT EXISTS "IDX_tasks_instance_assignee_read"
43
- ON "tasks" ("instance_id", "assignee_member_id")
44
- WHERE "assignee_member_id" IS NOT NULL
45
- `);
46
-
47
- await queryRunner.query(`
48
- CREATE INDEX IF NOT EXISTS "IDX_tasks_instance_original_assignee_read"
49
- ON "tasks" ("instance_id", "original_assignee_member_id")
50
- WHERE "original_assignee_member_id" IS NOT NULL
51
- `);
52
-
53
- await queryRunner.query(`
54
- CREATE INDEX IF NOT EXISTS "IDX_task_candidates_member_task"
55
- ON "task_candidates" ("member_id", "task_id")
56
- `);
57
-
58
- await queryRunner.query(`
59
- CREATE INDEX IF NOT EXISTS "IDX_task_candidates_original_member_task"
60
- ON "task_candidates" ("original_member_id", "task_id")
61
- `);
62
-
63
- await queryRunner.query(`
64
- CREATE INDEX IF NOT EXISTS "IDX_task_decisions_decider_task"
65
- ON "task_decisions" ("decided_by_member_id", "task_id")
66
- `);
67
-
68
- await queryRunner.query(`
69
- CREATE INDEX IF NOT EXISTS "IDX_notifications_recipient_instance"
70
- ON "notifications" ("recipient_member_id", "instance_id")
71
- WHERE "instance_id" IS NOT NULL
72
- `);
73
- }
74
-
75
- async down(queryRunner: QueryRunner): Promise<void> {
76
- await queryRunner.query(
77
- 'DROP INDEX IF EXISTS "IDX_notifications_recipient_instance"',
78
- );
79
- await queryRunner.query(
80
- 'DROP INDEX IF EXISTS "IDX_task_decisions_decider_task"',
81
- );
82
- await queryRunner.query(
83
- 'DROP INDEX IF EXISTS "IDX_task_candidates_original_member_task"',
84
- );
85
- await queryRunner.query(
86
- 'DROP INDEX IF EXISTS "IDX_task_candidates_member_task"',
87
- );
88
- await queryRunner.query(
89
- 'DROP INDEX IF EXISTS "IDX_tasks_instance_original_assignee_read"',
90
- );
91
- await queryRunner.query(
92
- 'DROP INDEX IF EXISTS "IDX_tasks_instance_assignee_read"',
93
- );
94
- await queryRunner.query(
95
- 'DROP INDEX IF EXISTS "IDX_approval_instances_initiator_trgm"',
96
- );
97
- await queryRunner.query(
98
- 'DROP INDEX IF EXISTS "IDX_approval_instances_title_trgm"',
99
- );
100
- await queryRunner.query(
101
- 'DROP INDEX IF EXISTS "IDX_approval_instances_initiator_created_desc"',
102
- );
103
- await queryRunner.query(
104
- 'DROP INDEX IF EXISTS "IDX_approval_instances_template_created_desc"',
105
- );
106
- await queryRunner.query(
107
- 'DROP INDEX IF EXISTS "IDX_approval_instances_state_created_desc"',
108
- );
109
- await queryRunner.query(
110
- 'DROP INDEX IF EXISTS "IDX_approval_instances_created_desc"',
111
- );
112
- }
113
- }
@@ -1,47 +0,0 @@
1
- import { MigrationInterface } from 'typeorm';
2
- import { EnablePostgresExtensions0000000000001 } from './0000000000001-enable-postgres-extensions';
3
- import { IdentityOrganizationFoundation0000000001000 } from './0000000001000-identity-organization-foundation';
4
- import { FormBuilderFoundation0000000002000 } from './0000000002000-form-builder-foundation';
5
- import { ApprovalTemplateFoundation0000000003000 } from './0000000003000-approval-template-foundation';
6
- import { WorkflowEngineFoundation0000000004000 } from './0000000004000-workflow-engine-foundation';
7
- import { DelegationRules0000000005000 } from './0000000005000-delegation-rules';
8
- import { NotificationsSla0000000006000 } from './0000000006000-notifications-sla';
9
- import { SignaturesAttachments0000000007000 } from './0000000007000-signatures-attachments';
10
- import { ApprovalTemplateCategories0000000008000 } from './0000000008000-approval-template-categories';
11
- import { TaskCandidates0000000009000 } from './0000000009000-task-candidates';
12
- import { NotificationDeliveryState0000000010000 } from './0000000010000-notification-delivery-state';
13
- import { RemoveAttachmentEncryptionKey0000000011000 } from './0000000011000-remove-attachment-encryption-key';
14
- import { NotificationSlaIdempotency0000000012000 } from './0000000012000-notification-sla-idempotency';
15
- import { WorkflowQueryIndexes0000000013000 } from './0000000013000-workflow-query-indexes';
16
-
17
- export const BPM_CORE_MIGRATIONS: readonly (new () => MigrationInterface)[] = [
18
- EnablePostgresExtensions0000000000001,
19
- IdentityOrganizationFoundation0000000001000,
20
- FormBuilderFoundation0000000002000,
21
- ApprovalTemplateFoundation0000000003000,
22
- WorkflowEngineFoundation0000000004000,
23
- DelegationRules0000000005000,
24
- NotificationsSla0000000006000,
25
- SignaturesAttachments0000000007000,
26
- ApprovalTemplateCategories0000000008000,
27
- TaskCandidates0000000009000,
28
- NotificationDeliveryState0000000010000,
29
- RemoveAttachmentEncryptionKey0000000011000,
30
- NotificationSlaIdempotency0000000012000,
31
- WorkflowQueryIndexes0000000013000,
32
- ];
33
-
34
- export * from './0000000000001-enable-postgres-extensions';
35
- export * from './0000000001000-identity-organization-foundation';
36
- export * from './0000000002000-form-builder-foundation';
37
- export * from './0000000003000-approval-template-foundation';
38
- export * from './0000000004000-workflow-engine-foundation';
39
- export * from './0000000005000-delegation-rules';
40
- export * from './0000000006000-notifications-sla';
41
- export * from './0000000007000-signatures-attachments';
42
- export * from './0000000008000-approval-template-categories';
43
- export * from './0000000009000-task-candidates';
44
- export * from './0000000010000-notification-delivery-state';
45
- export * from './0000000011000-remove-attachment-encryption-key';
46
- export * from './0000000012000-notification-sla-idempotency';
47
- export * from './0000000013000-workflow-query-indexes';
@@ -1,46 +0,0 @@
1
- import { Field, InputType } from '@nestjs/graphql';
2
- import {
3
- IsBoolean,
4
- IsIn,
5
- IsOptional,
6
- IsString,
7
- Matches,
8
- } from 'class-validator';
9
- import { NotificationDigestModeEnum } from '../notification.enums';
10
-
11
- const TIME_ONLY_PATTERN = /^([01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?$/;
12
-
13
- @InputType()
14
- export class UpdateNotificationPreferenceInput {
15
- @Field()
16
- @IsString()
17
- memberId!: string;
18
-
19
- @Field()
20
- @IsBoolean()
21
- inAppEnabled!: boolean;
22
-
23
- @Field()
24
- @IsBoolean()
25
- emailEnabled!: boolean;
26
-
27
- @Field(() => NotificationDigestModeEnum)
28
- @IsIn(Object.values(NotificationDigestModeEnum))
29
- emailDigestMode!: NotificationDigestModeEnum;
30
-
31
- @Field(() => String, { nullable: true })
32
- @IsOptional()
33
- @IsString()
34
- @Matches(TIME_ONLY_PATTERN, {
35
- message: 'quietHoursStart must use HH:mm or HH:mm:ss format',
36
- })
37
- quietHoursStart!: string | null;
38
-
39
- @Field(() => String, { nullable: true })
40
- @IsOptional()
41
- @IsString()
42
- @Matches(TIME_ONLY_PATTERN, {
43
- message: 'quietHoursEnd must use HH:mm or HH:mm:ss format',
44
- })
45
- quietHoursEnd!: string | null;
46
- }
@@ -1,69 +0,0 @@
1
- import {
2
- Inject,
3
- Injectable,
4
- Logger,
5
- OnApplicationBootstrap,
6
- OnApplicationShutdown,
7
- Optional,
8
- } from '@nestjs/common';
9
- import { NotificationDeliveryService } from './notification-delivery.service';
10
- import {
11
- BPM_NOTIFICATION_OPTIONS,
12
- BPMResolvedNotificationOptions,
13
- DEFAULT_BPM_NOTIFICATION_OPTIONS,
14
- } from './notification-options';
15
-
16
- @Injectable()
17
- export class NotificationDeliverySchedulerService
18
- implements OnApplicationBootstrap, OnApplicationShutdown
19
- {
20
- private readonly logger = new Logger(
21
- NotificationDeliverySchedulerService.name,
22
- );
23
- private timer: NodeJS.Timeout | null = null;
24
-
25
- constructor(
26
- private readonly deliveryService: NotificationDeliveryService,
27
- @Optional()
28
- @Inject(BPM_NOTIFICATION_OPTIONS)
29
- private readonly notificationOptions: BPMResolvedNotificationOptions = DEFAULT_BPM_NOTIFICATION_OPTIONS,
30
- ) {}
31
-
32
- onApplicationBootstrap(): void {
33
- if (
34
- process.env.NODE_ENV === 'test' ||
35
- !this.notificationOptions.deliverySchedulerEnabled
36
- ) {
37
- return;
38
- }
39
-
40
- this.timer = setInterval((): void => {
41
- void this.scanPendingDeliveries();
42
- }, this.notificationOptions.deliveryScanIntervalMs);
43
- this.timer.unref();
44
- }
45
-
46
- onApplicationShutdown(): void {
47
- if (this.timer) {
48
- clearInterval(this.timer);
49
- this.timer = null;
50
- }
51
- }
52
-
53
- private async scanPendingDeliveries(): Promise<void> {
54
- try {
55
- const deliveredCount =
56
- await this.deliveryService.deliverPendingNotifications({
57
- options: this.notificationOptions,
58
- });
59
-
60
- if (deliveredCount) {
61
- this.logger.log(`Delivered ${deliveredCount} pending notifications`);
62
- }
63
- } catch (error: unknown) {
64
- this.logger.error(
65
- error instanceof Error ? error.message : 'Delivery scan failed',
66
- );
67
- }
68
- }
69
- }