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

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 (612) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/LICENSE +21 -0
  3. package/README.md +143 -0
  4. package/package.json +3 -3
  5. package/src/index.js +18 -0
  6. package/src/index.js.map +1 -0
  7. package/src/lib/attachment/attachment-options.d.ts +44 -0
  8. package/src/lib/attachment/attachment-options.js +62 -0
  9. package/src/lib/attachment/attachment-options.js.map +1 -0
  10. package/src/lib/attachment/attachment-storage.provider.d.ts +4 -0
  11. package/src/lib/attachment/attachment-storage.provider.js +35 -0
  12. package/src/lib/attachment/attachment-storage.provider.js.map +1 -0
  13. package/src/lib/attachment/{attachment-storage.token.ts → attachment-storage.token.d.ts} +1 -3
  14. package/src/lib/attachment/attachment-storage.token.js +5 -0
  15. package/src/lib/attachment/attachment-storage.token.js.map +1 -0
  16. package/src/lib/attachment/attachment.controller.d.ts +8 -0
  17. package/src/lib/attachment/attachment.controller.js +38 -0
  18. package/src/lib/attachment/attachment.controller.js.map +1 -0
  19. package/src/lib/attachment/attachment.entity.d.ts +14 -0
  20. package/src/lib/attachment/attachment.entity.js +74 -0
  21. package/src/lib/attachment/attachment.entity.js.map +1 -0
  22. package/src/lib/attachment/attachment.module.d.ts +27 -0
  23. package/src/lib/attachment/attachment.module.js +103 -0
  24. package/src/lib/attachment/attachment.module.js.map +1 -0
  25. package/src/lib/attachment/attachment.mutations.d.ts +8 -0
  26. package/src/lib/attachment/attachment.mutations.js +35 -0
  27. package/src/lib/attachment/attachment.mutations.js.map +1 -0
  28. package/src/lib/attachment/attachment.queries.d.ts +9 -0
  29. package/src/lib/attachment/attachment.queries.js +78 -0
  30. package/src/lib/attachment/attachment.queries.js.map +1 -0
  31. package/src/lib/attachment/attachment.service.d.ts +49 -0
  32. package/src/lib/attachment/attachment.service.js +276 -0
  33. package/src/lib/attachment/attachment.service.js.map +1 -0
  34. package/src/lib/attachment/dto/upload-attachment.input.d.ts +11 -0
  35. package/src/lib/attachment/dto/upload-attachment.input.js +68 -0
  36. package/src/lib/attachment/dto/upload-attachment.input.js.map +1 -0
  37. package/src/lib/attachment/index.js +9 -0
  38. package/src/lib/attachment/index.js.map +1 -0
  39. package/src/lib/bpm/bpm-root.module.d.ts +155 -0
  40. package/src/lib/bpm/bpm-root.module.js +170 -0
  41. package/src/lib/bpm/bpm-root.module.js.map +1 -0
  42. package/src/lib/bpm/index.js +5 -0
  43. package/src/lib/bpm/index.js.map +1 -0
  44. package/src/lib/bpm-auth/bpm-auth-context.d.ts +24 -0
  45. package/src/lib/bpm-auth/bpm-auth-context.extractor.d.ts +4 -0
  46. package/src/lib/bpm-auth/bpm-auth-context.extractor.js +69 -0
  47. package/src/lib/bpm-auth/bpm-auth-context.extractor.js.map +1 -0
  48. package/src/lib/bpm-auth/bpm-auth-context.js +15 -0
  49. package/src/lib/bpm-auth/bpm-auth-context.js.map +1 -0
  50. package/src/lib/bpm-auth/bpm-auth.authorization.d.ts +12 -0
  51. package/src/lib/bpm-auth/bpm-auth.authorization.js +67 -0
  52. package/src/lib/bpm-auth/bpm-auth.authorization.js.map +1 -0
  53. package/src/lib/bpm-auth/bpm-auth.decorators.d.ts +3 -0
  54. package/src/lib/bpm-auth/bpm-auth.decorators.js +11 -0
  55. package/src/lib/bpm-auth/bpm-auth.decorators.js.map +1 -0
  56. package/src/lib/bpm-auth/bpm-auth.guard.d.ts +7 -0
  57. package/src/lib/bpm-auth/bpm-auth.guard.js +24 -0
  58. package/src/lib/bpm-auth/bpm-auth.guard.js.map +1 -0
  59. package/src/lib/bpm-auth/bpm-auth.module.d.ts +6 -0
  60. package/src/lib/bpm-auth/bpm-auth.module.js +69 -0
  61. package/src/lib/bpm-auth/bpm-auth.module.js.map +1 -0
  62. package/src/lib/bpm-auth/bpm-auth.options.d.ts +11 -0
  63. package/src/lib/bpm-auth/bpm-auth.options.js +3 -0
  64. package/src/lib/bpm-auth/bpm-auth.options.js.map +1 -0
  65. package/src/lib/bpm-auth/configurable-bpm-auth-context.accessor.d.ts +10 -0
  66. package/src/lib/bpm-auth/configurable-bpm-auth-context.accessor.js +40 -0
  67. package/src/lib/bpm-auth/configurable-bpm-auth-context.accessor.js.map +1 -0
  68. package/src/lib/bpm-auth/index.js +10 -0
  69. package/src/lib/bpm-auth/index.js.map +1 -0
  70. package/src/lib/common/filters/all-exceptions.filter.d.ts +25 -0
  71. package/src/lib/common/filters/all-exceptions.filter.js +93 -0
  72. package/src/lib/common/filters/all-exceptions.filter.js.map +1 -0
  73. package/src/lib/common/index.js +5 -0
  74. package/src/lib/common/index.js.map +1 -0
  75. package/src/lib/common/iso-duration.d.ts +1 -0
  76. package/src/lib/common/iso-duration.js +27 -0
  77. package/src/lib/common/iso-duration.js.map +1 -0
  78. package/src/lib/condition/condition.module.d.ts +2 -0
  79. package/src/lib/condition/condition.module.js +16 -0
  80. package/src/lib/condition/condition.module.js.map +1 -0
  81. package/src/lib/condition/condition.service.d.ts +16 -0
  82. package/src/lib/condition/condition.service.js +82 -0
  83. package/src/lib/condition/condition.service.js.map +1 -0
  84. package/src/lib/condition/index.js +6 -0
  85. package/src/lib/condition/index.js.map +1 -0
  86. package/src/lib/database/data-source.d.ts +4 -0
  87. package/src/lib/database/data-source.js +7 -0
  88. package/src/lib/database/data-source.js.map +1 -0
  89. package/src/lib/database/index.js +6 -0
  90. package/src/lib/database/index.js.map +1 -0
  91. package/src/lib/database/migration-runner.d.ts +1 -0
  92. package/src/lib/database/migration-runner.js +23 -0
  93. package/src/lib/database/migration-runner.js.map +1 -0
  94. package/src/lib/database/typeorm.config.d.ts +14 -0
  95. package/src/lib/database/typeorm.config.js +135 -0
  96. package/src/lib/database/typeorm.config.js.map +1 -0
  97. package/src/lib/delegation/delegation-rule.entity.d.ts +19 -0
  98. package/src/lib/delegation/delegation-rule.entity.js +99 -0
  99. package/src/lib/delegation/delegation-rule.entity.js.map +1 -0
  100. package/src/lib/delegation/delegation.enums.d.ts +10 -0
  101. package/src/lib/delegation/delegation.enums.js +23 -0
  102. package/src/lib/delegation/delegation.enums.js.map +1 -0
  103. package/src/lib/delegation/delegation.module.d.ts +2 -0
  104. package/src/lib/delegation/delegation.module.js +22 -0
  105. package/src/lib/delegation/delegation.module.js.map +1 -0
  106. package/src/lib/delegation/delegation.mutations.d.ts +11 -0
  107. package/src/lib/delegation/delegation.mutations.js +87 -0
  108. package/src/lib/delegation/delegation.mutations.js.map +1 -0
  109. package/src/lib/delegation/delegation.queries.d.ts +10 -0
  110. package/src/lib/delegation/delegation.queries.js +91 -0
  111. package/src/lib/delegation/delegation.queries.js.map +1 -0
  112. package/src/lib/delegation/delegation.service.d.ts +56 -0
  113. package/src/lib/delegation/delegation.service.js +268 -0
  114. package/src/lib/delegation/delegation.service.js.map +1 -0
  115. package/src/lib/delegation/dto/delegation-rule.input.d.ts +24 -0
  116. package/src/lib/delegation/dto/delegation-rule.input.js +143 -0
  117. package/src/lib/delegation/dto/delegation-rule.input.js.map +1 -0
  118. package/src/lib/delegation/index.js +9 -0
  119. package/src/lib/delegation/index.js.map +1 -0
  120. package/src/lib/form/dto/form-definition.input.d.ts +21 -0
  121. package/src/lib/form/dto/form-definition.input.js +103 -0
  122. package/src/lib/form/dto/form-definition.input.js.map +1 -0
  123. package/src/lib/form/form-definition-version.entity.d.ts +17 -0
  124. package/src/lib/form/form-definition-version.entity.js +84 -0
  125. package/src/lib/form/form-definition-version.entity.js.map +1 -0
  126. package/src/lib/form/form-definition.entity.d.ts +13 -0
  127. package/src/lib/form/form-definition.entity.js +66 -0
  128. package/src/lib/form/form-definition.entity.js.map +1 -0
  129. package/src/lib/form/form-schema-lint.object.d.ts +4 -0
  130. package/src/lib/form/form-schema-lint.object.js +20 -0
  131. package/src/lib/form/form-schema-lint.object.js.map +1 -0
  132. package/src/lib/form/form-schema.validator.d.ts +13 -0
  133. package/src/lib/form/form-schema.validator.js +354 -0
  134. package/src/lib/form/form-schema.validator.js.map +1 -0
  135. package/src/lib/form/form.enums.d.ts +9 -0
  136. package/src/lib/form/form.enums.js +22 -0
  137. package/src/lib/form/form.enums.js.map +1 -0
  138. package/src/lib/form/form.module.d.ts +2 -0
  139. package/src/lib/form/form.module.js +27 -0
  140. package/src/lib/form/form.module.js.map +1 -0
  141. package/src/lib/form/form.mutations.d.ts +14 -0
  142. package/src/lib/form/form.mutations.js +88 -0
  143. package/src/lib/form/form.mutations.js.map +1 -0
  144. package/src/lib/form/form.queries.d.ts +16 -0
  145. package/src/lib/form/form.queries.js +96 -0
  146. package/src/lib/form/form.queries.js.map +1 -0
  147. package/src/lib/form/form.service.d.ts +35 -0
  148. package/src/lib/form/form.service.js +297 -0
  149. package/src/lib/form/form.service.js.map +1 -0
  150. package/src/lib/form/index.js +12 -0
  151. package/src/lib/form/index.js.map +1 -0
  152. package/src/lib/identity/identity-options.d.ts +13 -0
  153. package/src/lib/identity/identity-options.js +20 -0
  154. package/src/lib/identity/identity-options.js.map +1 -0
  155. package/src/lib/identity/identity.module.d.ts +17 -0
  156. package/src/lib/identity/identity.module.js +65 -0
  157. package/src/lib/identity/identity.module.js.map +1 -0
  158. package/src/lib/identity/identity.queries.d.ts +12 -0
  159. package/src/lib/identity/identity.queries.js +79 -0
  160. package/src/lib/identity/identity.queries.js.map +1 -0
  161. package/src/lib/identity/identity.service.d.ts +22 -0
  162. package/src/lib/identity/identity.service.js +141 -0
  163. package/src/lib/identity/identity.service.js.map +1 -0
  164. package/src/lib/identity/index.js +7 -0
  165. package/src/lib/identity/index.js.map +1 -0
  166. package/src/lib/identity/member-base.adapter.d.ts +95 -0
  167. package/src/lib/identity/member-base.adapter.js +137 -0
  168. package/src/lib/identity/member-base.adapter.js.map +1 -0
  169. package/src/lib/identity/member-metadata-cache.entity.d.ts +8 -0
  170. package/src/lib/identity/member-metadata-cache.entity.js +39 -0
  171. package/src/lib/identity/member-metadata-cache.entity.js.map +1 -0
  172. package/src/lib/identity/member-profile.object.d.ts +8 -0
  173. package/src/lib/identity/member-profile.object.js +37 -0
  174. package/src/lib/identity/member-profile.object.js.map +1 -0
  175. package/src/lib/identity/member-resolver.interface.d.ts +79 -0
  176. package/src/lib/identity/member-resolver.interface.js +19 -0
  177. package/src/lib/identity/member-resolver.interface.js.map +1 -0
  178. package/src/lib/migrations/0000000000001-enable-postgres-extensions.d.ts +6 -0
  179. package/src/lib/migrations/0000000000001-enable-postgres-extensions.js +17 -0
  180. package/src/lib/migrations/0000000000001-enable-postgres-extensions.js.map +1 -0
  181. package/src/lib/migrations/0000000001000-identity-organization-foundation.d.ts +6 -0
  182. package/src/lib/migrations/{0000000001000-identity-organization-foundation.ts → 0000000001000-identity-organization-foundation.js} +29 -38
  183. package/src/lib/migrations/0000000001000-identity-organization-foundation.js.map +1 -0
  184. package/src/lib/migrations/0000000002000-form-builder-foundation.d.ts +6 -0
  185. package/src/lib/migrations/{0000000002000-form-builder-foundation.ts → 0000000002000-form-builder-foundation.js} +21 -22
  186. package/src/lib/migrations/0000000002000-form-builder-foundation.js.map +1 -0
  187. package/src/lib/migrations/0000000003000-approval-template-foundation.d.ts +6 -0
  188. package/src/lib/migrations/{0000000003000-approval-template-foundation.ts → 0000000003000-approval-template-foundation.js} +21 -24
  189. package/src/lib/migrations/0000000003000-approval-template-foundation.js.map +1 -0
  190. package/src/lib/migrations/0000000004000-workflow-engine-foundation.d.ts +6 -0
  191. package/src/lib/migrations/{0000000004000-workflow-engine-foundation.ts → 0000000004000-workflow-engine-foundation.js} +34 -46
  192. package/src/lib/migrations/0000000004000-workflow-engine-foundation.js.map +1 -0
  193. package/src/lib/migrations/0000000005000-delegation-rules.d.ts +6 -0
  194. package/src/lib/migrations/{0000000005000-delegation-rules.ts → 0000000005000-delegation-rules.js} +19 -20
  195. package/src/lib/migrations/0000000005000-delegation-rules.js.map +1 -0
  196. package/src/lib/migrations/0000000006000-notifications-sla.d.ts +6 -0
  197. package/src/lib/migrations/{0000000006000-notifications-sla.ts → 0000000006000-notifications-sla.js} +23 -26
  198. package/src/lib/migrations/0000000006000-notifications-sla.js.map +1 -0
  199. package/src/lib/migrations/0000000007000-signatures-attachments.d.ts +6 -0
  200. package/src/lib/migrations/{0000000007000-signatures-attachments.ts → 0000000007000-signatures-attachments.js} +27 -28
  201. package/src/lib/migrations/0000000007000-signatures-attachments.js.map +1 -0
  202. package/src/lib/migrations/0000000008000-approval-template-categories.d.ts +6 -0
  203. package/src/lib/migrations/{0000000008000-approval-template-categories.ts → 0000000008000-approval-template-categories.js} +25 -28
  204. package/src/lib/migrations/0000000008000-approval-template-categories.js.map +1 -0
  205. package/src/lib/migrations/0000000009000-task-candidates.d.ts +6 -0
  206. package/src/lib/migrations/{0000000009000-task-candidates.ts → 0000000009000-task-candidates.js} +23 -26
  207. package/src/lib/migrations/0000000009000-task-candidates.js.map +1 -0
  208. package/src/lib/migrations/0000000010000-notification-delivery-state.d.ts +6 -0
  209. package/src/lib/migrations/{0000000010000-notification-delivery-state.ts → 0000000010000-notification-delivery-state.js} +17 -16
  210. package/src/lib/migrations/0000000010000-notification-delivery-state.js.map +1 -0
  211. package/src/lib/migrations/0000000011000-remove-attachment-encryption-key.d.ts +6 -0
  212. package/src/lib/migrations/0000000011000-remove-attachment-encryption-key.js +22 -0
  213. package/src/lib/migrations/0000000011000-remove-attachment-encryption-key.js.map +1 -0
  214. package/src/lib/migrations/0000000012000-notification-sla-idempotency.d.ts +6 -0
  215. package/src/lib/migrations/0000000012000-notification-sla-idempotency.js +21 -0
  216. package/src/lib/migrations/0000000012000-notification-sla-idempotency.js.map +1 -0
  217. package/src/lib/migrations/0000000013000-workflow-query-indexes.d.ts +6 -0
  218. package/src/lib/migrations/0000000013000-workflow-query-indexes.js +80 -0
  219. package/src/lib/migrations/0000000013000-workflow-query-indexes.js.map +1 -0
  220. package/src/lib/migrations/index.d.ts +16 -0
  221. package/src/lib/migrations/index.js +49 -0
  222. package/src/lib/migrations/index.js.map +1 -0
  223. package/src/lib/notification/dto/notification-preference.input.d.ts +9 -0
  224. package/src/lib/notification/dto/notification-preference.input.js +53 -0
  225. package/src/lib/notification/dto/notification-preference.input.js.map +1 -0
  226. package/src/lib/notification/index.js +11 -0
  227. package/src/lib/notification/index.js.map +1 -0
  228. package/src/lib/notification/notification-delivery-scheduler.service.d.ts +13 -0
  229. package/src/lib/notification/notification-delivery-scheduler.service.js +53 -0
  230. package/src/lib/notification/notification-delivery-scheduler.service.js.map +1 -0
  231. package/src/lib/notification/notification-delivery.service.d.ts +23 -0
  232. package/src/lib/notification/notification-delivery.service.js +245 -0
  233. package/src/lib/notification/notification-delivery.service.js.map +1 -0
  234. package/src/lib/notification/notification-dispatcher.token.d.ts +7 -0
  235. package/src/lib/notification/notification-dispatcher.token.js +5 -0
  236. package/src/lib/notification/notification-dispatcher.token.js.map +1 -0
  237. package/src/lib/notification/notification-options.d.ts +215 -0
  238. package/src/lib/notification/notification-options.js +128 -0
  239. package/src/lib/notification/notification-options.js.map +1 -0
  240. package/src/lib/notification/notification-options.module.d.ts +23 -0
  241. package/src/lib/notification/notification-options.module.js +41 -0
  242. package/src/lib/notification/notification-options.module.js.map +1 -0
  243. package/src/lib/notification/notification-preference.entity.d.ts +10 -0
  244. package/src/lib/notification/notification-preference.entity.js +50 -0
  245. package/src/lib/notification/notification-preference.entity.js.map +1 -0
  246. package/src/lib/notification/notification-sla-scheduler.service.d.ts +13 -0
  247. package/src/lib/notification/notification-sla-scheduler.service.js +51 -0
  248. package/src/lib/notification/notification-sla-scheduler.service.js.map +1 -0
  249. package/src/lib/notification/notification-template.d.ts +13 -0
  250. package/src/lib/notification/notification-template.js +61 -0
  251. package/src/lib/notification/notification-template.js.map +1 -0
  252. package/src/lib/notification/notification.entity.d.ts +23 -0
  253. package/src/lib/notification/notification.entity.js +122 -0
  254. package/src/lib/notification/notification.entity.js.map +1 -0
  255. package/src/lib/notification/notification.enums.d.ts +24 -0
  256. package/src/lib/notification/notification.enums.js +45 -0
  257. package/src/lib/notification/notification.enums.js.map +1 -0
  258. package/src/lib/notification/notification.module.d.ts +2 -0
  259. package/src/lib/notification/notification.module.js +45 -0
  260. package/src/lib/notification/notification.module.js.map +1 -0
  261. package/src/lib/notification/notification.mutations.d.ts +11 -0
  262. package/src/lib/notification/notification.mutations.js +64 -0
  263. package/src/lib/notification/notification.mutations.js.map +1 -0
  264. package/src/lib/notification/notification.queries.d.ts +11 -0
  265. package/src/lib/notification/notification.queries.js +77 -0
  266. package/src/lib/notification/notification.queries.js.map +1 -0
  267. package/src/lib/notification/notification.service.d.ts +81 -0
  268. package/src/lib/notification/notification.service.js +621 -0
  269. package/src/lib/notification/notification.service.js.map +1 -0
  270. package/src/lib/organization/dto/manager-resolution.input.d.ts +18 -0
  271. package/src/lib/organization/dto/manager-resolution.input.js +107 -0
  272. package/src/lib/organization/dto/manager-resolution.input.js.map +1 -0
  273. package/src/lib/organization/dto/membership.input.d.ts +16 -0
  274. package/src/lib/organization/dto/membership.input.js +99 -0
  275. package/src/lib/organization/dto/membership.input.js.map +1 -0
  276. package/src/lib/organization/dto/org-unit.input.d.ts +24 -0
  277. package/src/lib/organization/dto/org-unit.input.js +119 -0
  278. package/src/lib/organization/dto/org-unit.input.js.map +1 -0
  279. package/src/lib/organization/dto/position.input.d.ts +13 -0
  280. package/src/lib/organization/dto/position.input.js +70 -0
  281. package/src/lib/organization/dto/position.input.js.map +1 -0
  282. package/src/lib/organization/index.js +16 -0
  283. package/src/lib/organization/index.js.map +1 -0
  284. package/src/lib/organization/json-metadata.d.ts +1 -0
  285. package/src/lib/organization/json-metadata.js +14 -0
  286. package/src/lib/organization/json-metadata.js.map +1 -0
  287. package/src/lib/organization/manager-resolution.entity.d.ts +11 -0
  288. package/src/lib/organization/manager-resolution.entity.js +55 -0
  289. package/src/lib/organization/manager-resolution.entity.js.map +1 -0
  290. package/src/lib/organization/membership.entity.d.ts +11 -0
  291. package/src/lib/organization/membership.entity.js +60 -0
  292. package/src/lib/organization/membership.entity.js.map +1 -0
  293. package/src/lib/organization/org-unit-tree-commit-result.object.d.ts +4 -0
  294. package/src/lib/organization/org-unit-tree-commit-result.object.js +17 -0
  295. package/src/lib/organization/org-unit-tree-commit-result.object.js.map +1 -0
  296. package/src/lib/organization/org-unit.entity.d.ts +13 -0
  297. package/src/lib/organization/org-unit.entity.js +64 -0
  298. package/src/lib/organization/org-unit.entity.js.map +1 -0
  299. package/src/lib/organization/organization-summary.object.d.ts +6 -0
  300. package/src/lib/organization/organization-summary.object.js +28 -0
  301. package/src/lib/organization/organization-summary.object.js.map +1 -0
  302. package/src/lib/organization/organization.enums.d.ts +11 -0
  303. package/src/lib/organization/organization.enums.js +22 -0
  304. package/src/lib/organization/organization.enums.js.map +1 -0
  305. package/src/lib/organization/organization.module.d.ts +2 -0
  306. package/src/lib/organization/organization.module.js +35 -0
  307. package/src/lib/organization/organization.module.js.map +1 -0
  308. package/src/lib/organization/organization.mutations.d.ts +26 -0
  309. package/src/lib/organization/organization.mutations.js +148 -0
  310. package/src/lib/organization/organization.mutations.js.map +1 -0
  311. package/src/lib/organization/organization.queries.d.ts +23 -0
  312. package/src/lib/organization/organization.queries.js +202 -0
  313. package/src/lib/organization/organization.queries.js.map +1 -0
  314. package/src/lib/organization/organization.service.d.ts +102 -0
  315. package/src/lib/organization/organization.service.js +751 -0
  316. package/src/lib/organization/organization.service.js.map +1 -0
  317. package/src/lib/organization/position.entity.d.ts +9 -0
  318. package/src/lib/organization/position.entity.js +48 -0
  319. package/src/lib/organization/position.entity.js.map +1 -0
  320. package/src/lib/organization/resolved-manager.object.d.ts +4 -0
  321. package/src/lib/organization/resolved-manager.object.js +20 -0
  322. package/src/lib/organization/resolved-manager.object.js.map +1 -0
  323. package/src/lib/signature/index.js +8 -0
  324. package/src/lib/signature/index.js.map +1 -0
  325. package/src/lib/signature/signature-options.d.ts +33 -0
  326. package/src/lib/signature/signature-options.js +51 -0
  327. package/src/lib/signature/signature-options.js.map +1 -0
  328. package/src/lib/signature/signature-verification.object.d.ts +6 -0
  329. package/src/lib/signature/signature-verification.object.js +28 -0
  330. package/src/lib/signature/signature-verification.object.js.map +1 -0
  331. package/src/lib/signature/signature.entity.d.ts +16 -0
  332. package/src/lib/signature/signature.entity.js +88 -0
  333. package/src/lib/signature/signature.entity.js.map +1 -0
  334. package/src/lib/signature/signature.module.d.ts +11 -0
  335. package/src/lib/signature/signature.module.js +60 -0
  336. package/src/lib/signature/signature.module.js.map +1 -0
  337. package/src/lib/signature/signature.queries.d.ts +11 -0
  338. package/src/lib/signature/signature.queries.js +46 -0
  339. package/src/lib/signature/signature.queries.js.map +1 -0
  340. package/src/lib/signature/signature.service.d.ts +25 -0
  341. package/src/lib/signature/signature.service.js +124 -0
  342. package/src/lib/signature/signature.service.js.map +1 -0
  343. package/src/lib/template/approval-template-category.entity.d.ts +9 -0
  344. package/src/lib/template/approval-template-category.entity.js +49 -0
  345. package/src/lib/template/approval-template-category.entity.js.map +1 -0
  346. package/src/lib/template/approval-template-version.entity.d.ts +21 -0
  347. package/src/lib/template/approval-template-version.entity.js +106 -0
  348. package/src/lib/template/approval-template-version.entity.js.map +1 -0
  349. package/src/lib/template/approval-template.entity.d.ts +14 -0
  350. package/src/lib/template/approval-template.entity.js +74 -0
  351. package/src/lib/template/approval-template.entity.js.map +1 -0
  352. package/src/lib/template/dto/approval-template.input.d.ts +36 -0
  353. package/src/lib/template/dto/approval-template.input.js +187 -0
  354. package/src/lib/template/dto/approval-template.input.js.map +1 -0
  355. package/src/lib/template/index.js +12 -0
  356. package/src/lib/template/index.js.map +1 -0
  357. package/src/lib/template/template.enums.d.ts +14 -0
  358. package/src/lib/template/template.enums.js +31 -0
  359. package/src/lib/template/template.enums.js.map +1 -0
  360. package/src/lib/template/template.module.d.ts +2 -0
  361. package/src/lib/template/template.module.js +33 -0
  362. package/src/lib/template/template.module.js.map +1 -0
  363. package/src/lib/template/template.mutations.d.ts +20 -0
  364. package/src/lib/template/template.mutations.js +139 -0
  365. package/src/lib/template/template.mutations.js.map +1 -0
  366. package/src/lib/template/template.queries.d.ts +16 -0
  367. package/src/lib/template/template.queries.js +133 -0
  368. package/src/lib/template/template.queries.js.map +1 -0
  369. package/src/lib/template/template.service.d.ts +64 -0
  370. package/src/lib/template/template.service.js +521 -0
  371. package/src/lib/template/template.service.js.map +1 -0
  372. package/src/lib/template/workflow-definition.validator.d.ts +9 -0
  373. package/src/lib/template/workflow-definition.validator.js +362 -0
  374. package/src/lib/template/workflow-definition.validator.js.map +1 -0
  375. package/src/lib/testing/cel-js.jest.d.ts +15 -0
  376. package/src/lib/testing/cel-js.jest.js +27 -0
  377. package/src/lib/testing/cel-js.jest.js.map +1 -0
  378. package/src/lib/workflow-engine/activity-log.entity.d.ts +12 -0
  379. package/src/lib/workflow-engine/activity-log.entity.js +62 -0
  380. package/src/lib/workflow-engine/activity-log.entity.js.map +1 -0
  381. package/src/lib/workflow-engine/approval-instance-page-info.object.d.ts +8 -0
  382. package/src/lib/workflow-engine/approval-instance-page-info.object.js +36 -0
  383. package/src/lib/workflow-engine/approval-instance-page-info.object.js.map +1 -0
  384. package/src/lib/workflow-engine/approval-instance.entity.d.ts +22 -0
  385. package/src/lib/workflow-engine/approval-instance.entity.js +113 -0
  386. package/src/lib/workflow-engine/approval-instance.entity.js.map +1 -0
  387. package/src/lib/workflow-engine/dto/cancel-approval-instance.input.d.ts +5 -0
  388. package/src/lib/workflow-engine/dto/cancel-approval-instance.input.js +29 -0
  389. package/src/lib/workflow-engine/dto/cancel-approval-instance.input.js.map +1 -0
  390. package/src/lib/workflow-engine/dto/decide-task.input.d.ts +9 -0
  391. package/src/lib/workflow-engine/dto/decide-task.input.js +47 -0
  392. package/src/lib/workflow-engine/dto/decide-task.input.js.map +1 -0
  393. package/src/lib/workflow-engine/dto/dry-run-approval-workflow.input.d.ts +6 -0
  394. package/src/lib/workflow-engine/dto/dry-run-approval-workflow.input.js +34 -0
  395. package/src/lib/workflow-engine/dto/dry-run-approval-workflow.input.js.map +1 -0
  396. package/src/lib/workflow-engine/dto/resubmit-approval-instance.input.d.ts +6 -0
  397. package/src/lib/workflow-engine/dto/resubmit-approval-instance.input.js +34 -0
  398. package/src/lib/workflow-engine/dto/resubmit-approval-instance.input.js.map +1 -0
  399. package/src/lib/workflow-engine/dto/submit-approval-instance.input.d.ts +7 -0
  400. package/src/lib/workflow-engine/dto/submit-approval-instance.input.js +40 -0
  401. package/src/lib/workflow-engine/dto/submit-approval-instance.input.js.map +1 -0
  402. package/src/lib/workflow-engine/index.js +24 -0
  403. package/src/lib/workflow-engine/index.js.map +1 -0
  404. package/src/lib/workflow-engine/task-candidate.entity.d.ts +14 -0
  405. package/src/lib/workflow-engine/task-candidate.entity.js +72 -0
  406. package/src/lib/workflow-engine/task-candidate.entity.js.map +1 -0
  407. package/src/lib/workflow-engine/task-decision.entity.d.ts +12 -0
  408. package/src/lib/workflow-engine/task-decision.entity.js +60 -0
  409. package/src/lib/workflow-engine/task-decision.entity.js.map +1 -0
  410. package/src/lib/workflow-engine/task.entity.d.ts +20 -0
  411. package/src/lib/workflow-engine/task.entity.js +109 -0
  412. package/src/lib/workflow-engine/task.entity.js.map +1 -0
  413. package/src/lib/workflow-engine/workflow-condition-evaluator.d.ts +5 -0
  414. package/src/lib/workflow-engine/workflow-condition-evaluator.js +107 -0
  415. package/src/lib/workflow-engine/workflow-condition-evaluator.js.map +1 -0
  416. package/src/lib/workflow-engine/workflow-dashboard-summary.object.d.ts +8 -0
  417. package/src/lib/workflow-engine/workflow-dashboard-summary.object.js +36 -0
  418. package/src/lib/workflow-engine/workflow-dashboard-summary.object.js.map +1 -0
  419. package/src/lib/workflow-engine/workflow-dry-run.object.d.ts +21 -0
  420. package/src/lib/workflow-engine/workflow-dry-run.object.js +86 -0
  421. package/src/lib/workflow-engine/workflow-dry-run.object.js.map +1 -0
  422. package/src/lib/workflow-engine/workflow-engine.enums.d.ts +58 -0
  423. package/src/lib/workflow-engine/workflow-engine.enums.js +95 -0
  424. package/src/lib/workflow-engine/workflow-engine.enums.js.map +1 -0
  425. package/src/lib/workflow-engine/workflow-engine.module.d.ts +9 -0
  426. package/src/lib/workflow-engine/workflow-engine.module.js +76 -0
  427. package/src/lib/workflow-engine/workflow-engine.module.js.map +1 -0
  428. package/src/lib/workflow-engine/workflow-engine.mutations.d.ts +19 -0
  429. package/src/lib/workflow-engine/workflow-engine.mutations.js +106 -0
  430. package/src/lib/workflow-engine/workflow-engine.mutations.js.map +1 -0
  431. package/src/lib/workflow-engine/workflow-engine.queries.d.ts +29 -0
  432. package/src/lib/workflow-engine/workflow-engine.queries.js +225 -0
  433. package/src/lib/workflow-engine/workflow-engine.queries.js.map +1 -0
  434. package/src/lib/workflow-engine/workflow-engine.service.d.ts +145 -0
  435. package/src/lib/workflow-engine/workflow-engine.service.js +2785 -0
  436. package/src/lib/workflow-engine/workflow-engine.service.js.map +1 -0
  437. package/src/lib/workflow-engine/{workflow-engine.tokens.ts → workflow-engine.tokens.d.ts} +3 -9
  438. package/src/lib/workflow-engine/workflow-engine.tokens.js +5 -0
  439. package/src/lib/workflow-engine/workflow-engine.tokens.js.map +1 -0
  440. package/src/lib/workflow-engine/workflow-service-task-dispatcher.token.d.ts +18 -0
  441. package/src/lib/workflow-engine/workflow-service-task-dispatcher.token.js +39 -0
  442. package/src/lib/workflow-engine/workflow-service-task-dispatcher.token.js.map +1 -0
  443. package/src/lib/workflow-engine/workflow-token.entity.d.ts +10 -0
  444. package/src/lib/workflow-engine/workflow-token.entity.js +50 -0
  445. package/src/lib/workflow-engine/workflow-token.entity.js.map +1 -0
  446. package/eslint.config.mjs +0 -20
  447. package/jest.config.cts +0 -15
  448. package/project.json +0 -58
  449. package/src/lib/attachment/attachment-options.spec.ts +0 -45
  450. package/src/lib/attachment/attachment-options.ts +0 -130
  451. package/src/lib/attachment/attachment-storage.provider.spec.ts +0 -79
  452. package/src/lib/attachment/attachment-storage.provider.ts +0 -60
  453. package/src/lib/attachment/attachment.controller.ts +0 -39
  454. package/src/lib/attachment/attachment.entity.ts +0 -59
  455. package/src/lib/attachment/attachment.module.ts +0 -149
  456. package/src/lib/attachment/attachment.mutations.ts +0 -22
  457. package/src/lib/attachment/attachment.queries.ts +0 -65
  458. package/src/lib/attachment/attachment.service.spec.ts +0 -319
  459. package/src/lib/attachment/attachment.service.ts +0 -477
  460. package/src/lib/attachment/dto/upload-attachment.input.ts +0 -60
  461. package/src/lib/bpm/bpm-root.module.spec.ts +0 -138
  462. package/src/lib/bpm/bpm-root.module.ts +0 -320
  463. package/src/lib/bpm-auth/bpm-auth-context.extractor.ts +0 -106
  464. package/src/lib/bpm-auth/bpm-auth-context.ts +0 -40
  465. package/src/lib/bpm-auth/bpm-auth.authorization.ts +0 -80
  466. package/src/lib/bpm-auth/bpm-auth.decorators.ts +0 -19
  467. package/src/lib/bpm-auth/bpm-auth.guard.ts +0 -31
  468. package/src/lib/bpm-auth/bpm-auth.module.spec.ts +0 -106
  469. package/src/lib/bpm-auth/bpm-auth.module.ts +0 -69
  470. package/src/lib/bpm-auth/bpm-auth.options.ts +0 -21
  471. package/src/lib/bpm-auth/configurable-bpm-auth-context.accessor.ts +0 -55
  472. package/src/lib/common/filters/all-exceptions.filter.ts +0 -138
  473. package/src/lib/common/iso-duration.ts +0 -31
  474. package/src/lib/condition/condition.module.ts +0 -8
  475. package/src/lib/condition/condition.service.spec.ts +0 -50
  476. package/src/lib/condition/condition.service.ts +0 -141
  477. package/src/lib/database/data-source.ts +0 -7
  478. package/src/lib/database/migration-runner.ts +0 -24
  479. package/src/lib/database/typeorm.config.ts +0 -217
  480. package/src/lib/delegation/delegation-rule.entity.ts +0 -84
  481. package/src/lib/delegation/delegation.enums.ts +0 -21
  482. package/src/lib/delegation/delegation.module.ts +0 -14
  483. package/src/lib/delegation/delegation.mutations.ts +0 -92
  484. package/src/lib/delegation/delegation.queries.ts +0 -111
  485. package/src/lib/delegation/delegation.service.spec.ts +0 -295
  486. package/src/lib/delegation/delegation.service.ts +0 -482
  487. package/src/lib/delegation/dto/delegation-rule.input.ts +0 -125
  488. package/src/lib/form/dto/form-definition.input.ts +0 -73
  489. package/src/lib/form/form-definition-version.entity.ts +0 -66
  490. package/src/lib/form/form-definition.entity.ts +0 -54
  491. package/src/lib/form/form-schema-lint.object.ts +0 -10
  492. package/src/lib/form/form-schema.validator.spec.ts +0 -180
  493. package/src/lib/form/form-schema.validator.ts +0 -538
  494. package/src/lib/form/form.enums.ts +0 -20
  495. package/src/lib/form/form.module.ts +0 -19
  496. package/src/lib/form/form.mutations.ts +0 -68
  497. package/src/lib/form/form.queries.ts +0 -72
  498. package/src/lib/form/form.service.spec.ts +0 -144
  499. package/src/lib/form/form.service.ts +0 -490
  500. package/src/lib/identity/identity-options.ts +0 -41
  501. package/src/lib/identity/identity.module.ts +0 -96
  502. package/src/lib/identity/identity.queries.ts +0 -61
  503. package/src/lib/identity/identity.service.spec.ts +0 -105
  504. package/src/lib/identity/identity.service.ts +0 -200
  505. package/src/lib/identity/member-base.adapter.spec.ts +0 -77
  506. package/src/lib/identity/member-base.adapter.ts +0 -244
  507. package/src/lib/identity/member-metadata-cache.entity.ts +0 -27
  508. package/src/lib/identity/member-profile.object.ts +0 -28
  509. package/src/lib/identity/member-resolver.interface.ts +0 -47
  510. package/src/lib/migrations/0000000000001-enable-postgres-extensions.ts +0 -14
  511. package/src/lib/migrations/0000000011000-remove-attachment-encryption-key.ts +0 -19
  512. package/src/lib/migrations/0000000012000-notification-sla-idempotency.ts +0 -22
  513. package/src/lib/migrations/0000000013000-workflow-query-indexes.ts +0 -113
  514. package/src/lib/migrations/index.ts +0 -47
  515. package/src/lib/notification/dto/notification-preference.input.ts +0 -46
  516. package/src/lib/notification/notification-delivery-scheduler.service.ts +0 -69
  517. package/src/lib/notification/notification-delivery.service.spec.ts +0 -315
  518. package/src/lib/notification/notification-delivery.service.ts +0 -339
  519. package/src/lib/notification/notification-dispatcher.token.ts +0 -13
  520. package/src/lib/notification/notification-options.module.ts +0 -67
  521. package/src/lib/notification/notification-options.spec.ts +0 -93
  522. package/src/lib/notification/notification-options.ts +0 -452
  523. package/src/lib/notification/notification-preference.entity.ts +0 -35
  524. package/src/lib/notification/notification-sla-scheduler.service.ts +0 -66
  525. package/src/lib/notification/notification-template.spec.ts +0 -33
  526. package/src/lib/notification/notification-template.ts +0 -97
  527. package/src/lib/notification/notification.entity.ts +0 -102
  528. package/src/lib/notification/notification.enums.ts +0 -45
  529. package/src/lib/notification/notification.module.ts +0 -37
  530. package/src/lib/notification/notification.mutations.ts +0 -47
  531. package/src/lib/notification/notification.queries.ts +0 -64
  532. package/src/lib/notification/notification.service.spec.ts +0 -412
  533. package/src/lib/notification/notification.service.ts +0 -974
  534. package/src/lib/organization/dto/manager-resolution.input.ts +0 -91
  535. package/src/lib/organization/dto/membership.input.ts +0 -77
  536. package/src/lib/organization/dto/org-unit.input.ts +0 -96
  537. package/src/lib/organization/dto/position.input.ts +0 -50
  538. package/src/lib/organization/json-metadata.ts +0 -15
  539. package/src/lib/organization/manager-resolution.entity.ts +0 -44
  540. package/src/lib/organization/membership.entity.ts +0 -50
  541. package/src/lib/organization/org-unit-tree-commit-result.object.ts +0 -8
  542. package/src/lib/organization/org-unit.entity.ts +0 -53
  543. package/src/lib/organization/organization-summary.object.ts +0 -16
  544. package/src/lib/organization/organization.enums.ts +0 -19
  545. package/src/lib/organization/organization.module.ts +0 -27
  546. package/src/lib/organization/organization.mutations.ts +0 -115
  547. package/src/lib/organization/organization.queries.ts +0 -188
  548. package/src/lib/organization/organization.service.spec.ts +0 -760
  549. package/src/lib/organization/organization.service.ts +0 -1216
  550. package/src/lib/organization/position.entity.ts +0 -39
  551. package/src/lib/organization/resolved-manager.object.ts +0 -10
  552. package/src/lib/signature/signature-options.spec.ts +0 -60
  553. package/src/lib/signature/signature-options.ts +0 -120
  554. package/src/lib/signature/signature-verification.object.ts +0 -16
  555. package/src/lib/signature/signature.entity.ts +0 -62
  556. package/src/lib/signature/signature.module.ts +0 -80
  557. package/src/lib/signature/signature.queries.ts +0 -37
  558. package/src/lib/signature/signature.service.spec.ts +0 -134
  559. package/src/lib/signature/signature.service.ts +0 -205
  560. package/src/lib/template/approval-template-category.entity.ts +0 -40
  561. package/src/lib/template/approval-template-version.entity.ts +0 -82
  562. package/src/lib/template/approval-template.entity.ts +0 -64
  563. package/src/lib/template/dto/approval-template.input.ts +0 -147
  564. package/src/lib/template/template.enums.ts +0 -30
  565. package/src/lib/template/template.module.ts +0 -25
  566. package/src/lib/template/template.mutations.ts +0 -106
  567. package/src/lib/template/template.queries.ts +0 -119
  568. package/src/lib/template/template.service.spec.ts +0 -476
  569. package/src/lib/template/template.service.ts +0 -820
  570. package/src/lib/template/workflow-definition.validator.spec.ts +0 -595
  571. package/src/lib/template/workflow-definition.validator.ts +0 -539
  572. package/src/lib/testing/cel-js.jest.ts +0 -46
  573. package/src/lib/workflow-engine/activity-log.entity.ts +0 -48
  574. package/src/lib/workflow-engine/approval-instance-page-info.object.ts +0 -22
  575. package/src/lib/workflow-engine/approval-instance.entity.ts +0 -86
  576. package/src/lib/workflow-engine/dto/cancel-approval-instance.input.ts +0 -18
  577. package/src/lib/workflow-engine/dto/decide-task.input.ts +0 -33
  578. package/src/lib/workflow-engine/dto/dry-run-approval-workflow.input.ts +0 -22
  579. package/src/lib/workflow-engine/dto/resubmit-approval-instance.input.ts +0 -22
  580. package/src/lib/workflow-engine/dto/submit-approval-instance.input.ts +0 -27
  581. package/src/lib/workflow-engine/task-candidate.entity.ts +0 -56
  582. package/src/lib/workflow-engine/task-decision.entity.ts +0 -43
  583. package/src/lib/workflow-engine/task.entity.ts +0 -85
  584. package/src/lib/workflow-engine/workflow-condition-evaluator.ts +0 -168
  585. package/src/lib/workflow-engine/workflow-dashboard-summary.object.ts +0 -22
  586. package/src/lib/workflow-engine/workflow-dry-run.object.ts +0 -58
  587. package/src/lib/workflow-engine/workflow-engine.enums.ts +0 -99
  588. package/src/lib/workflow-engine/workflow-engine.module.ts +0 -75
  589. package/src/lib/workflow-engine/workflow-engine.mutations.ts +0 -85
  590. package/src/lib/workflow-engine/workflow-engine.queries.ts +0 -229
  591. package/src/lib/workflow-engine/workflow-engine.service.spec.ts +0 -2689
  592. package/src/lib/workflow-engine/workflow-engine.service.ts +0 -4707
  593. package/src/lib/workflow-engine/workflow-service-task-dispatcher.token.ts +0 -69
  594. package/src/lib/workflow-engine/workflow-token.entity.ts +0 -40
  595. package/tsconfig.json +0 -24
  596. package/tsconfig.lib.json +0 -16
  597. package/tsconfig.spec.json +0 -16
  598. /package/src/{index.ts → index.d.ts} +0 -0
  599. /package/src/lib/attachment/{index.ts → index.d.ts} +0 -0
  600. /package/src/lib/bpm/{index.ts → index.d.ts} +0 -0
  601. /package/src/lib/bpm-auth/{index.ts → index.d.ts} +0 -0
  602. /package/src/lib/common/{index.ts → index.d.ts} +0 -0
  603. /package/src/lib/condition/{index.ts → index.d.ts} +0 -0
  604. /package/src/lib/database/{index.ts → index.d.ts} +0 -0
  605. /package/src/lib/delegation/{index.ts → index.d.ts} +0 -0
  606. /package/src/lib/form/{index.ts → index.d.ts} +0 -0
  607. /package/src/lib/identity/{index.ts → index.d.ts} +0 -0
  608. /package/src/lib/notification/{index.ts → index.d.ts} +0 -0
  609. /package/src/lib/organization/{index.ts → index.d.ts} +0 -0
  610. /package/src/lib/signature/{index.ts → index.d.ts} +0 -0
  611. /package/src/lib/template/{index.ts → index.d.ts} +0 -0
  612. /package/src/lib/workflow-engine/{index.ts → index.d.ts} +0 -0
@@ -1,320 +0,0 @@
1
- import {
2
- DynamicModule,
3
- InjectionToken,
4
- Module,
5
- Provider,
6
- Type,
7
- } from '@nestjs/common';
8
- import { ModuleMetadata } from '@nestjs/common/interfaces';
9
- import { BPMRootAttachmentOptions } from '../attachment/attachment-options';
10
- import { AttachmentModule } from '../attachment/attachment.module';
11
- import { AttachmentStorage } from '../attachment/attachment-storage.token';
12
- import { BPMAuthModule } from '../bpm-auth/bpm-auth.module';
13
- import {
14
- BPMAuthModuleAsyncOptions,
15
- BPMAuthModuleOptions,
16
- } from '../bpm-auth/bpm-auth.options';
17
- import { DelegationModule } from '../delegation/delegation.module';
18
- import { FormModule } from '../form/form.module';
19
- import { BPMRootIdentityOptions } from '../identity/identity-options';
20
- import { IdentityModule } from '../identity/identity.module';
21
- import { BPMMemberResolver } from '../identity/member-resolver.interface';
22
- import { NotificationModule } from '../notification/notification.module';
23
- import { NotificationOptionsModule } from '../notification/notification-options.module';
24
- import { BPMRootNotificationOptions } from '../notification/notification-options';
25
- import { OrganizationModule } from '../organization/organization.module';
26
- import { BPMRootSignatureOptions } from '../signature/signature-options';
27
- import { SignatureModule } from '../signature/signature.module';
28
- import { TemplateModule } from '../template/template.module';
29
- import { WorkflowEngineModule } from '../workflow-engine/workflow-engine.module';
30
- import { BPMWorkflowServiceTaskDispatcher } from '../workflow-engine/workflow-service-task-dispatcher.token';
31
-
32
- type BPMModuleImport = DynamicModule | Type<unknown>;
33
-
34
- export interface BPMRootModuleOptions
35
- extends
36
- Pick<ModuleMetadata, 'imports'>,
37
- BPMRootAttachmentOptions,
38
- BPMRootIdentityOptions,
39
- BPMRootNotificationOptions,
40
- BPMRootSignatureOptions {
41
- /**
42
- * Host-provided storage adapter for BPM attachments.
43
- *
44
- * When omitted, BPM stores attachments through the local
45
- * `@rytass/storages-adapter-local` adapter under `.storage/attachments`.
46
- * Hosts can replace this provider with any `@rytass/storages` compatible
47
- * adapter such as MinIO, S3, or GCS.
48
- */
49
- readonly attachmentStorageProvider?: Provider<AttachmentStorage>;
50
-
51
- /**
52
- * Factory that resolves the current BPM auth context from NestJS execution
53
- * context.
54
- *
55
- * BPM guards, GraphQL decorators, and domain services use this callback to
56
- * identify the current member and organization context. When omitted, BPM
57
- * operations that require authentication will not receive a host session.
58
- */
59
- readonly authContextFactory?: BPMAuthModuleOptions['contextFactory'];
60
-
61
- /**
62
- * Host-provided member resolver provider.
63
- *
64
- * BPM uses this provider to resolve member metadata, organization identity,
65
- * display names, and approver candidates without coupling
66
- * `@rytass/bpm-core-nestjs-module` to a specific external identity system.
67
- */
68
- readonly memberResolverProvider: Provider<BPMMemberResolver>;
69
-
70
- /**
71
- * Host-provided dispatcher for executable workflow service tasks.
72
- *
73
- * When omitted, BPM sends WEBHOOK service tasks with the built-in `fetch`
74
- * dispatcher. Wrapper apps can replace this provider to add auth headers,
75
- * request signing, retry queues, or an outbound integration bus.
76
- */
77
- readonly workflowServiceTaskDispatcherProvider?: Provider<BPMWorkflowServiceTaskDispatcher>;
78
- }
79
-
80
- export interface BPMRootModuleAsyncFactoryOptions
81
- extends
82
- BPMRootAttachmentOptions,
83
- BPMRootIdentityOptions,
84
- BPMRootNotificationOptions,
85
- BPMRootSignatureOptions {
86
- /**
87
- * Factory that resolves the current BPM auth context from NestJS execution
88
- * context.
89
- *
90
- * BPM guards, GraphQL decorators, and domain services use this callback to
91
- * identify the current member and organization context. When omitted, BPM
92
- * operations that require authentication will not receive a host session.
93
- */
94
- readonly authContextFactory?: BPMAuthModuleOptions['contextFactory'];
95
- }
96
-
97
- export interface BPMRootModuleAsyncOptions extends Pick<
98
- ModuleMetadata,
99
- 'imports'
100
- > {
101
- /**
102
- * Controller mount path used by the BPM attachment endpoints.
103
- *
104
- * Set at module wiring time because Nest reads controller path metadata
105
- * synchronously when the application starts. Async factories cannot drive
106
- * this value; only static URL routing decisions should set it. Defaults to
107
- * `/attachments`.
108
- */
109
- readonly attachmentRoutePrefix?: string | null;
110
-
111
- /**
112
- * Host-provided storage adapter for BPM attachments.
113
- *
114
- * This provider is static at module wiring time. If secrets are required,
115
- * use a Nest provider with `useFactory` / `inject` here.
116
- */
117
- readonly attachmentStorageProvider?: Provider<AttachmentStorage>;
118
-
119
- /**
120
- * Providers injected into `useFactory`.
121
- *
122
- * This is typically used to read Vault-backed SMTP, webhook, and auth
123
- * settings before constructing the flattened BPM root options.
124
- */
125
- readonly inject?: readonly InjectionToken[];
126
-
127
- /**
128
- * Host-provided member resolver provider.
129
- *
130
- * BPM uses this provider to resolve member metadata, organization identity,
131
- * display names, and approver candidates without coupling
132
- * `@rytass/bpm-core-nestjs-module` to a specific external identity system.
133
- */
134
- readonly memberResolverProvider: Provider<BPMMemberResolver>;
135
-
136
- /**
137
- * Host-provided dispatcher for executable workflow service tasks.
138
- *
139
- * This provider is static at module wiring time. If secrets are required,
140
- * use a Nest provider with `useFactory` / `inject` here.
141
- */
142
- readonly workflowServiceTaskDispatcherProvider?: Provider<BPMWorkflowServiceTaskDispatcher>;
143
-
144
- /**
145
- * Async factory returning BPM root options.
146
- *
147
- * The returned object intentionally keeps all BPM settings flat at the root
148
- * level, for example `authContextFactory`, `notificationEmailSmtpHost`, and
149
- * `notificationSlaSchedulerEnabled`.
150
- */
151
- readonly useFactory: (
152
- ...args: readonly unknown[]
153
- ) =>
154
- | BPMRootModuleAsyncFactoryOptions
155
- | Promise<BPMRootModuleAsyncFactoryOptions>;
156
- }
157
-
158
- /**
159
- * Aggregate entry point that wires every BPM domain module
160
- * (`BPMAuthModule`, `IdentityModule`, `OrganizationModule`, `FormModule`,
161
- * `TemplateModule`, `WorkflowEngineModule`, `DelegationModule`,
162
- * `NotificationModule`, `SignatureModule`, `AttachmentModule`) into a
163
- * NestJS host application.
164
- *
165
- * Hosts call `forRoot` or `forRootAsync` once from their root `AppModule`.
166
- * BPMCore does **not** own login, GraphQL setup, TypeORM bootstrap, or
167
- * Vault loading — those remain the host's responsibility. See
168
- * `docs/10-bpm-embedding-auth.md` and `docs/11-consumer-quickstart.md` for
169
- * the full contract.
170
- *
171
- * The host must avoid Nest's `app.setGlobalPrefix(...)`; BPM controllers
172
- * mount at relative paths driven by their respective options (notably
173
- * `attachmentRoutePrefix`).
174
- *
175
- * @example
176
- * ```ts
177
- * BPMRootModule.forRoot({
178
- * authContextFactory: readBPMAuthContextFromGqlContext,
179
- * memberResolverProvider: {
180
- * provide: BPM_MEMBER_RESOLVER,
181
- * useClass: HostMemberResolver,
182
- * },
183
- * attachmentPublicBaseUrl: process.env.BPM_PUBLIC_BASE_URL,
184
- * attachmentSignedUrlSecret: process.env.BPM_ATTACHMENT_SIGNING_SECRET,
185
- * });
186
- * ```
187
- */
188
- @Module({})
189
- export class BPMRootModule {
190
- /**
191
- * Static configuration. Use this when all BPM options are known at module
192
- * wiring time (no async secret loading needed).
193
- */
194
- static forRoot(options: BPMRootModuleOptions): DynamicModule {
195
- const featureModules = createBPMFeatureModules(options);
196
-
197
- return {
198
- exports: [...featureModules],
199
- imports: [...(options.imports ?? []), ...featureModules],
200
- module: BPMRootModule,
201
- };
202
- }
203
-
204
- /**
205
- * Async configuration. Use this when BPM options must be resolved at
206
- * runtime — typically when SMTP, webhook, or signature secrets are
207
- * loaded from Vault / KMS / a host `ConfigService`.
208
- *
209
- * Routing-time decisions such as `attachmentRoutePrefix`,
210
- * `memberResolverProvider`, `attachmentStorageProvider`, and
211
- * `workflowServiceTaskDispatcherProvider` are read from the top-level
212
- * options object (not from the `useFactory` return value), because
213
- * Nest reads controller path metadata and provider tokens synchronously
214
- * during application bootstrap.
215
- */
216
- static forRootAsync(options: BPMRootModuleAsyncOptions): DynamicModule {
217
- const authOptions: BPMAuthModuleAsyncOptions = {
218
- imports: options.imports,
219
- inject: options.inject,
220
- useFactory: async (
221
- ...args: readonly unknown[]
222
- ): Promise<BPMAuthModuleOptions> => {
223
- const rootOptions = await options.useFactory(...args);
224
-
225
- return createBPMAuthModuleOptions(rootOptions);
226
- },
227
- };
228
-
229
- return {
230
- exports: [
231
- NotificationOptionsModule,
232
- BPMAuthModule,
233
- IdentityModule,
234
- OrganizationModule,
235
- AttachmentModule,
236
- FormModule,
237
- TemplateModule,
238
- DelegationModule,
239
- NotificationModule,
240
- SignatureModule,
241
- WorkflowEngineModule,
242
- ],
243
- imports: [
244
- NotificationOptionsModule.forRootAsync({
245
- imports: options.imports,
246
- inject: options.inject,
247
- useFactory: options.useFactory,
248
- }),
249
- BPMAuthModule.forRootAsync(authOptions),
250
- IdentityModule.forRootAsync({
251
- imports: options.imports,
252
- inject: options.inject,
253
- memberResolverProvider: options.memberResolverProvider,
254
- useFactory: options.useFactory,
255
- }),
256
- OrganizationModule,
257
- AttachmentModule.forRootAsync({
258
- attachmentRoutePrefix: options.attachmentRoutePrefix,
259
- imports: options.imports,
260
- inject: options.inject,
261
- storageProvider: options.attachmentStorageProvider,
262
- useFactory: options.useFactory,
263
- }),
264
- FormModule,
265
- TemplateModule,
266
- DelegationModule,
267
- NotificationModule,
268
- SignatureModule.forRootAsync({
269
- imports: options.imports,
270
- inject: options.inject,
271
- useFactory: options.useFactory,
272
- }),
273
- WorkflowEngineModule.forRoot({
274
- imports: options.imports,
275
- serviceTaskDispatcherProvider:
276
- options.workflowServiceTaskDispatcherProvider,
277
- }),
278
- ],
279
- module: BPMRootModule,
280
- };
281
- }
282
- }
283
-
284
- function createBPMFeatureModules(
285
- options: BPMRootModuleOptions,
286
- ): BPMModuleImport[] {
287
- return [
288
- NotificationOptionsModule.forRoot(options),
289
- BPMAuthModule.forRoot(createBPMAuthModuleOptions(options)),
290
- IdentityModule.forRoot({
291
- ...options,
292
- imports: options.imports,
293
- memberResolverProvider: options.memberResolverProvider,
294
- }),
295
- OrganizationModule,
296
- AttachmentModule.forRoot({
297
- ...options,
298
- imports: options.imports,
299
- storageProvider: options.attachmentStorageProvider,
300
- }),
301
- FormModule,
302
- TemplateModule,
303
- DelegationModule,
304
- NotificationModule,
305
- SignatureModule.forRoot(options),
306
- WorkflowEngineModule.forRoot({
307
- imports: options.imports,
308
- serviceTaskDispatcherProvider:
309
- options.workflowServiceTaskDispatcherProvider,
310
- }),
311
- ];
312
- }
313
-
314
- function createBPMAuthModuleOptions(
315
- options: BPMRootModuleOptions | BPMRootModuleAsyncFactoryOptions,
316
- ): BPMAuthModuleOptions {
317
- return {
318
- contextFactory: options.authContextFactory,
319
- };
320
- }
@@ -1,106 +0,0 @@
1
- import { ExecutionContext } from '@nestjs/common';
2
- import { GqlExecutionContext } from '@nestjs/graphql';
3
- import { BPMAuthContext } from './bpm-auth-context';
4
-
5
- interface BPMContextCarrier {
6
- bpmAuthContext?: unknown;
7
- }
8
-
9
- interface BPMRequestCarrier extends BPMContextCarrier {
10
- readonly req?: BPMContextCarrier;
11
- }
12
-
13
- export function attachBPMAuthContext(
14
- context: ExecutionContext | undefined,
15
- authContext: BPMAuthContext,
16
- ): void {
17
- if (!context) {
18
- return;
19
- }
20
-
21
- const graphqlContext = GqlExecutionContext.create(context).getContext<
22
- BPMRequestCarrier | undefined
23
- >();
24
-
25
- if (graphqlContext) {
26
- graphqlContext.bpmAuthContext = authContext;
27
-
28
- if (graphqlContext.req) {
29
- graphqlContext.req.bpmAuthContext = authContext;
30
- }
31
-
32
- return;
33
- }
34
-
35
- const httpRequest = context
36
- .switchToHttp()
37
- .getRequest<BPMContextCarrier | undefined>();
38
-
39
- if (httpRequest) {
40
- httpRequest.bpmAuthContext = authContext;
41
- }
42
- }
43
-
44
- export function extractBPMAuthContext(
45
- context?: ExecutionContext,
46
- ): BPMAuthContext | null {
47
- if (!context) {
48
- return null;
49
- }
50
-
51
- const graphqlContext = GqlExecutionContext.create(context).getContext<
52
- BPMRequestCarrier | undefined
53
- >();
54
- const graphqlAuthContext = readBPMAuthContext(graphqlContext?.bpmAuthContext);
55
-
56
- if (graphqlAuthContext) {
57
- return graphqlAuthContext;
58
- }
59
-
60
- const requestAuthContext = readBPMAuthContext(
61
- graphqlContext?.req?.bpmAuthContext,
62
- );
63
-
64
- if (requestAuthContext) {
65
- return requestAuthContext;
66
- }
67
-
68
- const httpRequest = context
69
- .switchToHttp()
70
- .getRequest<BPMContextCarrier | undefined>();
71
-
72
- return readBPMAuthContext(httpRequest?.bpmAuthContext);
73
- }
74
-
75
- function readBPMAuthContext(value: unknown): BPMAuthContext | null {
76
- if (!isRecord(value)) {
77
- return null;
78
- }
79
-
80
- const memberId = value.memberId;
81
-
82
- if (typeof memberId !== 'string') {
83
- return null;
84
- }
85
-
86
- return {
87
- memberId,
88
- metadata: readRecord(value.metadata),
89
- permissions: readStringArray(value.permissions),
90
- roles: readStringArray(value.roles),
91
- };
92
- }
93
-
94
- function isRecord(value: unknown): value is Readonly<Record<string, unknown>> {
95
- return typeof value === 'object' && value !== null;
96
- }
97
-
98
- function readRecord(value: unknown): Readonly<Record<string, unknown>> {
99
- return isRecord(value) ? value : {};
100
- }
101
-
102
- function readStringArray(value: unknown): readonly string[] {
103
- return Array.isArray(value)
104
- ? value.filter((item): item is string => typeof item === 'string')
105
- : [];
106
- }
@@ -1,40 +0,0 @@
1
- import { ExecutionContext, UnauthorizedException } from '@nestjs/common';
2
-
3
- /**
4
- * The minimum authentication context BPM needs to make authorization
5
- * decisions. Hosts construct this from their own session / JWT / RBAC
6
- * source and surface it through `BPMRootModuleOptions.authContextFactory`.
7
- *
8
- * `roles` and `permissions` are matched against the string sets defined in
9
- * `BPMAdminGuard` and `BPMDesignerGuard` — see the role / permission table
10
- * in `libs/bpm-core/README.md` for the exact strings.
11
- */
12
- export interface BPMAuthContext {
13
- readonly memberId: string;
14
- readonly metadata: Readonly<Record<string, unknown>>;
15
- readonly permissions: readonly string[];
16
- readonly roles: readonly string[];
17
- }
18
-
19
- export interface BPMAuthContextAccessor {
20
- assertAuthenticated(context?: ExecutionContext): Promise<BPMAuthContext>;
21
- getCurrentContext(context?: ExecutionContext): Promise<BPMAuthContext | null>;
22
- getCurrentMemberId(context?: ExecutionContext): Promise<string>;
23
- }
24
-
25
- export const BPM_AUTH_CONTEXT_ACCESSOR = Symbol('BPM_AUTH_CONTEXT_ACCESSOR');
26
-
27
- export const BPM_AUTH_MODULE_OPTIONS = Symbol('BPM_AUTH_MODULE_OPTIONS');
28
-
29
- export async function readAuthenticatedBPMContext(
30
- accessor: BPMAuthContextAccessor,
31
- context?: ExecutionContext,
32
- ): Promise<BPMAuthContext> {
33
- const authContext = await accessor.assertAuthenticated(context);
34
-
35
- if (!authContext.memberId.trim()) {
36
- throw new UnauthorizedException('BPM member id is required');
37
- }
38
-
39
- return authContext;
40
- }
@@ -1,80 +0,0 @@
1
- import {
2
- CanActivate,
3
- ExecutionContext,
4
- ForbiddenException,
5
- Injectable,
6
- UseGuards,
7
- } from '@nestjs/common';
8
- import { BPMAuthContext } from './bpm-auth-context';
9
- import { extractBPMAuthContext } from './bpm-auth-context.extractor';
10
- import { BPMAuthenticatedGuard } from './bpm-auth.guard';
11
-
12
- const ADMIN_PERMISSIONS = new Set([
13
- 'bpm:*',
14
- 'bpm:admin',
15
- 'bpm.admin',
16
- 'bpm:admin:*',
17
- ]);
18
- const DESIGNER_PERMISSIONS = new Set([
19
- 'bpm:*',
20
- 'bpm:admin',
21
- 'bpm.admin',
22
- 'bpm:admin:*',
23
- 'bpm:design',
24
- 'bpm.design',
25
- 'bpm.form.design',
26
- 'bpm.template.design',
27
- 'bpm:form:design',
28
- 'bpm:template:design',
29
- ]);
30
-
31
- @Injectable()
32
- export class BPMAdminGuard implements CanActivate {
33
- canActivate(context: ExecutionContext): boolean {
34
- const authContext = extractBPMAuthContext(context);
35
-
36
- if (authContext && isBPMAdmin(authContext)) {
37
- return true;
38
- }
39
-
40
- throw new ForbiddenException('BPM admin permission is required');
41
- }
42
- }
43
-
44
- @Injectable()
45
- export class BPMDesignerGuard implements CanActivate {
46
- canActivate(context: ExecutionContext): boolean {
47
- const authContext = extractBPMAuthContext(context);
48
-
49
- if (authContext && isBPMDesigner(authContext)) {
50
- return true;
51
- }
52
-
53
- throw new ForbiddenException('BPM designer permission is required');
54
- }
55
- }
56
-
57
- export const BPMAdminOnly = (): ClassDecorator & MethodDecorator =>
58
- UseGuards(BPMAuthenticatedGuard, BPMAdminGuard);
59
-
60
- export const BPMDesignerOnly = (): ClassDecorator & MethodDecorator =>
61
- UseGuards(BPMAuthenticatedGuard, BPMDesignerGuard);
62
-
63
- export function isBPMAdmin(authContext: BPMAuthContext): boolean {
64
- return (
65
- authContext.roles.includes('BPM_ADMIN') ||
66
- authContext.permissions.some((permission) =>
67
- ADMIN_PERMISSIONS.has(permission),
68
- )
69
- );
70
- }
71
-
72
- export function isBPMDesigner(authContext: BPMAuthContext): boolean {
73
- return (
74
- isBPMAdmin(authContext) ||
75
- authContext.roles.includes('BPM_DESIGNER') ||
76
- authContext.permissions.some((permission) =>
77
- DESIGNER_PERMISSIONS.has(permission),
78
- )
79
- );
80
- }
@@ -1,19 +0,0 @@
1
- import {
2
- createParamDecorator,
3
- ExecutionContext,
4
- UseGuards,
5
- } from '@nestjs/common';
6
- import { BPMAuthenticatedGuard } from './bpm-auth.guard';
7
- import { extractBPMAuthContext } from './bpm-auth-context.extractor';
8
-
9
- export const BPMAuthenticated = (): ClassDecorator & MethodDecorator =>
10
- UseGuards(BPMAuthenticatedGuard);
11
-
12
- export const BPMCurrentAuthContext = createParamDecorator(
13
- (_data: unknown, context: ExecutionContext) => extractBPMAuthContext(context),
14
- );
15
-
16
- export const BPMCurrentMemberId = createParamDecorator(
17
- (_data: unknown, context: ExecutionContext) =>
18
- extractBPMAuthContext(context)?.memberId ?? null,
19
- );
@@ -1,31 +0,0 @@
1
- import {
2
- CanActivate,
3
- ExecutionContext,
4
- Inject,
5
- Injectable,
6
- } from '@nestjs/common';
7
- import {
8
- BPM_AUTH_CONTEXT_ACCESSOR,
9
- BPMAuthContextAccessor,
10
- readAuthenticatedBPMContext,
11
- } from './bpm-auth-context';
12
- import { attachBPMAuthContext } from './bpm-auth-context.extractor';
13
-
14
- @Injectable()
15
- export class BPMAuthenticatedGuard implements CanActivate {
16
- constructor(
17
- @Inject(BPM_AUTH_CONTEXT_ACCESSOR)
18
- private readonly authContextAccessor: BPMAuthContextAccessor,
19
- ) {}
20
-
21
- async canActivate(context: ExecutionContext): Promise<boolean> {
22
- const authContext = await readAuthenticatedBPMContext(
23
- this.authContextAccessor,
24
- context,
25
- );
26
-
27
- attachBPMAuthContext(context, authContext);
28
-
29
- return true;
30
- }
31
- }
@@ -1,106 +0,0 @@
1
- import { Injectable, Module, Type } from '@nestjs/common';
2
- import type { ExecutionContext } from '@nestjs/common';
3
- import { Test } from '@nestjs/testing';
4
- import { BPM_AUTH_CONTEXT_ACCESSOR } from './bpm-auth-context';
5
- import { BPMAuthenticatedGuard } from './bpm-auth.guard';
6
- import { BPMAuthModule } from './bpm-auth.module';
7
- import { extractBPMAuthContext } from './bpm-auth-context.extractor';
8
-
9
- @Injectable()
10
- class FeatureConsumer {
11
- constructor(readonly guard: BPMAuthenticatedGuard) {}
12
- }
13
-
14
- @Module({
15
- providers: [FeatureConsumer],
16
- })
17
- class FeatureModule {}
18
-
19
- describe('BPMAuthModule', () => {
20
- it('makes BPMAuthenticatedGuard injectable from feature module contexts', async (): Promise<void> => {
21
- const moduleRef = await Test.createTestingModule({
22
- imports: [BPMAuthModule.forRoot(), FeatureModule],
23
- }).compile();
24
-
25
- try {
26
- const consumer = moduleRef.get(FeatureConsumer);
27
-
28
- expect(consumer.guard).toBeInstanceOf(BPMAuthenticatedGuard);
29
- } finally {
30
- await moduleRef.close();
31
- }
32
- });
33
-
34
- it('makes factory auth context visible to current member decorators after guard activation', async (): Promise<void> => {
35
- const moduleRef = await Test.createTestingModule({
36
- imports: [
37
- BPMAuthModule.forRoot({
38
- contextFactory: () => ({
39
- memberId: 'member-from-factory',
40
- metadata: {},
41
- permissions: [],
42
- roles: [],
43
- }),
44
- }),
45
- ],
46
- }).compile();
47
-
48
- try {
49
- const guard = moduleRef.get(BPMAuthenticatedGuard);
50
- const graphqlContext: Record<string, unknown> = {};
51
- const executionContext = createGraphQLExecutionContext(graphqlContext);
52
-
53
- await expect(guard.canActivate(executionContext)).resolves.toBe(true);
54
- expect(extractBPMAuthContext(executionContext)?.memberId).toBe(
55
- 'member-from-factory',
56
- );
57
- expect(graphqlContext.bpmAuthContext).toMatchObject({
58
- memberId: 'member-from-factory',
59
- });
60
- } finally {
61
- await moduleRef.close();
62
- }
63
- });
64
-
65
- it('keeps the auth context accessor injectable for direct host integrations', async (): Promise<void> => {
66
- const moduleRef = await Test.createTestingModule({
67
- imports: [BPMAuthModule.forRoot()],
68
- }).compile();
69
-
70
- try {
71
- expect(moduleRef.get(BPM_AUTH_CONTEXT_ACCESSOR)).toBeDefined();
72
- } finally {
73
- await moduleRef.close();
74
- }
75
- });
76
- });
77
-
78
- function createGraphQLExecutionContext(
79
- graphqlContext: Record<string, unknown>,
80
- ): ExecutionContext {
81
- const args = [undefined, {}, graphqlContext, undefined];
82
- const readUndefined = <T = unknown>(): T => undefined as T;
83
-
84
- return {
85
- getArgByIndex: <T = unknown>(index: number): T => args[index] as T,
86
- getArgs: <T extends readonly unknown[] = readonly unknown[]>(): T =>
87
- args as unknown as T,
88
- getClass: <T = unknown>(): Type<T> => FeatureConsumer as Type<T>,
89
- getHandler: () => FeatureConsumer.prototype.constructor,
90
- getType: () => 'graphql' as never,
91
- switchToHttp: () => ({
92
- getNext: readUndefined,
93
- getRequest: readUndefined,
94
- getResponse: readUndefined,
95
- }),
96
- switchToRpc: () => ({
97
- getContext: readUndefined,
98
- getData: readUndefined,
99
- }),
100
- switchToWs: () => ({
101
- getClient: readUndefined,
102
- getData: readUndefined,
103
- getPattern: () => '',
104
- }),
105
- };
106
- }