@rytass/bpm-core-nestjs-module 0.5.0 → 0.5.1

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 (657) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/package.json +1 -1
  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 +25 -0
  91. package/src/lib/database/migration-runner.js.map +1 -0
  92. package/src/lib/database/reconcile-legacy-migrations.d.ts +13 -0
  93. package/src/lib/database/reconcile-legacy-migrations.js +70 -0
  94. package/src/lib/database/reconcile-legacy-migrations.js.map +1 -0
  95. package/src/lib/database/typeorm.config.d.ts +14 -0
  96. package/src/lib/database/typeorm.config.js +135 -0
  97. package/src/lib/database/typeorm.config.js.map +1 -0
  98. package/src/lib/delegation/delegation-rule.entity.d.ts +19 -0
  99. package/src/lib/delegation/delegation-rule.entity.js +99 -0
  100. package/src/lib/delegation/delegation-rule.entity.js.map +1 -0
  101. package/src/lib/delegation/delegation.enums.d.ts +10 -0
  102. package/src/lib/delegation/delegation.enums.js +23 -0
  103. package/src/lib/delegation/delegation.enums.js.map +1 -0
  104. package/src/lib/delegation/delegation.module.d.ts +2 -0
  105. package/src/lib/delegation/delegation.module.js +22 -0
  106. package/src/lib/delegation/delegation.module.js.map +1 -0
  107. package/src/lib/delegation/delegation.mutations.d.ts +11 -0
  108. package/src/lib/delegation/delegation.mutations.js +87 -0
  109. package/src/lib/delegation/delegation.mutations.js.map +1 -0
  110. package/src/lib/delegation/delegation.queries.d.ts +10 -0
  111. package/src/lib/delegation/delegation.queries.js +91 -0
  112. package/src/lib/delegation/delegation.queries.js.map +1 -0
  113. package/src/lib/delegation/delegation.service.d.ts +56 -0
  114. package/src/lib/delegation/delegation.service.js +268 -0
  115. package/src/lib/delegation/delegation.service.js.map +1 -0
  116. package/src/lib/delegation/dto/delegation-rule.input.d.ts +24 -0
  117. package/src/lib/delegation/dto/delegation-rule.input.js +143 -0
  118. package/src/lib/delegation/dto/delegation-rule.input.js.map +1 -0
  119. package/src/lib/delegation/index.js +9 -0
  120. package/src/lib/delegation/index.js.map +1 -0
  121. package/src/lib/form/dto/form-definition.input.d.ts +26 -0
  122. package/src/lib/form/dto/form-definition.input.js +126 -0
  123. package/src/lib/form/dto/form-definition.input.js.map +1 -0
  124. package/src/lib/form/form-definition-version.entity.d.ts +17 -0
  125. package/src/lib/form/form-definition-version.entity.js +84 -0
  126. package/src/lib/form/form-definition-version.entity.js.map +1 -0
  127. package/src/lib/form/form-definition.entity.d.ts +13 -0
  128. package/src/lib/form/form-definition.entity.js +66 -0
  129. package/src/lib/form/form-definition.entity.js.map +1 -0
  130. package/src/lib/form/form-schema-lint.object.d.ts +4 -0
  131. package/src/lib/form/form-schema-lint.object.js +20 -0
  132. package/src/lib/form/form-schema-lint.object.js.map +1 -0
  133. package/src/lib/form/form-schema.validator.d.ts +13 -0
  134. package/src/lib/form/form-schema.validator.js +354 -0
  135. package/src/lib/form/form-schema.validator.js.map +1 -0
  136. package/src/lib/form/form.enums.d.ts +9 -0
  137. package/src/lib/form/form.enums.js +22 -0
  138. package/src/lib/form/form.enums.js.map +1 -0
  139. package/src/lib/form/form.module.d.ts +2 -0
  140. package/src/lib/form/form.module.js +27 -0
  141. package/src/lib/form/form.module.js.map +1 -0
  142. package/src/lib/form/form.mutations.d.ts +14 -0
  143. package/src/lib/form/form.mutations.js +89 -0
  144. package/src/lib/form/form.mutations.js.map +1 -0
  145. package/src/lib/form/form.queries.d.ts +16 -0
  146. package/src/lib/form/form.queries.js +96 -0
  147. package/src/lib/form/form.queries.js.map +1 -0
  148. package/src/lib/form/form.service.d.ts +49 -0
  149. package/src/lib/form/form.service.js +346 -0
  150. package/src/lib/form/form.service.js.map +1 -0
  151. package/src/lib/form/index.js +12 -0
  152. package/src/lib/form/index.js.map +1 -0
  153. package/src/lib/identity/identity-options.d.ts +13 -0
  154. package/src/lib/identity/identity-options.js +20 -0
  155. package/src/lib/identity/identity-options.js.map +1 -0
  156. package/src/lib/identity/identity.module.d.ts +17 -0
  157. package/src/lib/identity/identity.module.js +65 -0
  158. package/src/lib/identity/identity.module.js.map +1 -0
  159. package/src/lib/identity/identity.queries.d.ts +12 -0
  160. package/src/lib/identity/identity.queries.js +79 -0
  161. package/src/lib/identity/identity.queries.js.map +1 -0
  162. package/src/lib/identity/identity.service.d.ts +31 -0
  163. package/src/lib/identity/identity.service.js +196 -0
  164. package/src/lib/identity/identity.service.js.map +1 -0
  165. package/src/lib/identity/index.js +8 -0
  166. package/src/lib/identity/index.js.map +1 -0
  167. package/src/lib/identity/member-base.adapter.d.ts +123 -0
  168. package/src/lib/identity/member-base.adapter.js +147 -0
  169. package/src/lib/identity/member-base.adapter.js.map +1 -0
  170. package/src/lib/identity/member-metadata-cache.entity.d.ts +8 -0
  171. package/src/lib/identity/member-metadata-cache.entity.js +39 -0
  172. package/src/lib/identity/member-metadata-cache.entity.js.map +1 -0
  173. package/src/lib/identity/{member-not-found.exception.ts → member-not-found.exception.d.ts} +3 -8
  174. package/src/lib/identity/member-not-found.exception.js +26 -0
  175. package/src/lib/identity/member-not-found.exception.js.map +1 -0
  176. package/src/lib/identity/member-profile.object.d.ts +8 -0
  177. package/src/lib/identity/member-profile.object.js +37 -0
  178. package/src/lib/identity/member-profile.object.js.map +1 -0
  179. package/src/lib/identity/{member-resolver.interface.ts → member-resolver.interface.d.ts} +41 -55
  180. package/src/lib/identity/member-resolver.interface.js +19 -0
  181. package/src/lib/identity/member-resolver.interface.js.map +1 -0
  182. package/src/lib/migrations/0000000000001-enable-postgres-extensions.d.ts +6 -0
  183. package/src/lib/migrations/0000000000001-enable-postgres-extensions.js +17 -0
  184. package/src/lib/migrations/0000000000001-enable-postgres-extensions.js.map +1 -0
  185. package/src/lib/migrations/0000000001000-identity-organization-foundation.d.ts +6 -0
  186. package/src/lib/migrations/{0000000001000-identity-organization-foundation.ts → 0000000001000-identity-organization-foundation.js} +29 -38
  187. package/src/lib/migrations/0000000001000-identity-organization-foundation.js.map +1 -0
  188. package/src/lib/migrations/0000000002000-form-builder-foundation.d.ts +6 -0
  189. package/src/lib/migrations/{0000000002000-form-builder-foundation.ts → 0000000002000-form-builder-foundation.js} +21 -22
  190. package/src/lib/migrations/0000000002000-form-builder-foundation.js.map +1 -0
  191. package/src/lib/migrations/0000000003000-approval-template-foundation.d.ts +6 -0
  192. package/src/lib/migrations/{0000000003000-approval-template-foundation.ts → 0000000003000-approval-template-foundation.js} +21 -24
  193. package/src/lib/migrations/0000000003000-approval-template-foundation.js.map +1 -0
  194. package/src/lib/migrations/0000000004000-workflow-engine-foundation.d.ts +6 -0
  195. package/src/lib/migrations/{0000000004000-workflow-engine-foundation.ts → 0000000004000-workflow-engine-foundation.js} +34 -46
  196. package/src/lib/migrations/0000000004000-workflow-engine-foundation.js.map +1 -0
  197. package/src/lib/migrations/0000000005000-delegation-rules.d.ts +6 -0
  198. package/src/lib/migrations/{0000000005000-delegation-rules.ts → 0000000005000-delegation-rules.js} +19 -20
  199. package/src/lib/migrations/0000000005000-delegation-rules.js.map +1 -0
  200. package/src/lib/migrations/0000000006000-notifications-sla.d.ts +6 -0
  201. package/src/lib/migrations/{0000000006000-notifications-sla.ts → 0000000006000-notifications-sla.js} +23 -26
  202. package/src/lib/migrations/0000000006000-notifications-sla.js.map +1 -0
  203. package/src/lib/migrations/0000000007000-signatures-attachments.d.ts +6 -0
  204. package/src/lib/migrations/{0000000007000-signatures-attachments.ts → 0000000007000-signatures-attachments.js} +27 -28
  205. package/src/lib/migrations/0000000007000-signatures-attachments.js.map +1 -0
  206. package/src/lib/migrations/0000000008000-approval-template-categories.d.ts +6 -0
  207. package/src/lib/migrations/{0000000008000-approval-template-categories.ts → 0000000008000-approval-template-categories.js} +25 -28
  208. package/src/lib/migrations/0000000008000-approval-template-categories.js.map +1 -0
  209. package/src/lib/migrations/0000000009000-task-candidates.d.ts +6 -0
  210. package/src/lib/migrations/{0000000009000-task-candidates.ts → 0000000009000-task-candidates.js} +23 -26
  211. package/src/lib/migrations/0000000009000-task-candidates.js.map +1 -0
  212. package/src/lib/migrations/0000000010000-notification-delivery-state.d.ts +6 -0
  213. package/src/lib/migrations/{0000000010000-notification-delivery-state.ts → 0000000010000-notification-delivery-state.js} +17 -16
  214. package/src/lib/migrations/0000000010000-notification-delivery-state.js.map +1 -0
  215. package/src/lib/migrations/0000000011000-remove-attachment-encryption-key.d.ts +6 -0
  216. package/src/lib/migrations/0000000011000-remove-attachment-encryption-key.js +22 -0
  217. package/src/lib/migrations/0000000011000-remove-attachment-encryption-key.js.map +1 -0
  218. package/src/lib/migrations/0000000012000-notification-sla-idempotency.d.ts +6 -0
  219. package/src/lib/migrations/0000000012000-notification-sla-idempotency.js +21 -0
  220. package/src/lib/migrations/0000000012000-notification-sla-idempotency.js.map +1 -0
  221. package/src/lib/migrations/0000000013000-workflow-query-indexes.d.ts +6 -0
  222. package/src/lib/migrations/0000000013000-workflow-query-indexes.js +80 -0
  223. package/src/lib/migrations/0000000013000-workflow-query-indexes.js.map +1 -0
  224. package/src/lib/migrations/0000000014000-notification-resolution.d.ts +6 -0
  225. package/src/lib/migrations/0000000014000-notification-resolution.js +30 -0
  226. package/src/lib/migrations/0000000014000-notification-resolution.js.map +1 -0
  227. package/src/lib/migrations/0000000015000-backfill-stale-notification-resolution.d.ts +15 -0
  228. package/src/lib/migrations/{0000000015000-backfill-stale-notification-resolution.ts → 0000000015000-backfill-stale-notification-resolution.js} +16 -15
  229. package/src/lib/migrations/0000000015000-backfill-stale-notification-resolution.js.map +1 -0
  230. package/src/lib/migrations/0000000016000-archive-parallel-form-drafts.d.ts +15 -0
  231. package/src/lib/migrations/{0000000016000-archive-parallel-form-drafts.ts → 0000000016000-archive-parallel-form-drafts.js} +16 -15
  232. package/src/lib/migrations/0000000016000-archive-parallel-form-drafts.js.map +1 -0
  233. package/src/lib/migrations/0000000017000-adhoc-directives.d.ts +6 -0
  234. package/src/lib/migrations/{0000000017000-adhoc-directives.ts → 0000000017000-adhoc-directives.js} +19 -18
  235. package/src/lib/migrations/0000000017000-adhoc-directives.js.map +1 -0
  236. package/src/lib/migrations/index.d.ts +20 -0
  237. package/src/lib/migrations/index.js +61 -0
  238. package/src/lib/migrations/index.js.map +1 -0
  239. package/src/lib/notification/dto/notification-preference.input.d.ts +9 -0
  240. package/src/lib/notification/dto/notification-preference.input.js +53 -0
  241. package/src/lib/notification/dto/notification-preference.input.js.map +1 -0
  242. package/src/lib/notification/index.js +11 -0
  243. package/src/lib/notification/index.js.map +1 -0
  244. package/src/lib/notification/notification-delivery-scheduler.service.d.ts +13 -0
  245. package/src/lib/notification/notification-delivery-scheduler.service.js +53 -0
  246. package/src/lib/notification/notification-delivery-scheduler.service.js.map +1 -0
  247. package/src/lib/notification/notification-delivery.service.d.ts +23 -0
  248. package/src/lib/notification/notification-delivery.service.js +245 -0
  249. package/src/lib/notification/notification-delivery.service.js.map +1 -0
  250. package/src/lib/notification/notification-dispatcher.token.d.ts +7 -0
  251. package/src/lib/notification/notification-dispatcher.token.js +5 -0
  252. package/src/lib/notification/notification-dispatcher.token.js.map +1 -0
  253. package/src/lib/notification/notification-options.d.ts +215 -0
  254. package/src/lib/notification/notification-options.js +128 -0
  255. package/src/lib/notification/notification-options.js.map +1 -0
  256. package/src/lib/notification/notification-options.module.d.ts +23 -0
  257. package/src/lib/notification/notification-options.module.js +41 -0
  258. package/src/lib/notification/notification-options.module.js.map +1 -0
  259. package/src/lib/notification/notification-preference.entity.d.ts +10 -0
  260. package/src/lib/notification/notification-preference.entity.js +50 -0
  261. package/src/lib/notification/notification-preference.entity.js.map +1 -0
  262. package/src/lib/notification/notification-sla-scheduler.service.d.ts +13 -0
  263. package/src/lib/notification/notification-sla-scheduler.service.js +51 -0
  264. package/src/lib/notification/notification-sla-scheduler.service.js.map +1 -0
  265. package/src/lib/notification/notification-template.d.ts +13 -0
  266. package/src/lib/notification/notification-template.js +61 -0
  267. package/src/lib/notification/notification-template.js.map +1 -0
  268. package/src/lib/notification/notification.entity.d.ts +31 -0
  269. package/src/lib/notification/notification.entity.js +149 -0
  270. package/src/lib/notification/notification.entity.js.map +1 -0
  271. package/src/lib/notification/notification.enums.d.ts +38 -0
  272. package/src/lib/notification/notification.enums.js +63 -0
  273. package/src/lib/notification/notification.enums.js.map +1 -0
  274. package/src/lib/notification/notification.module.d.ts +2 -0
  275. package/src/lib/notification/notification.module.js +45 -0
  276. package/src/lib/notification/notification.module.js.map +1 -0
  277. package/src/lib/notification/notification.mutations.d.ts +11 -0
  278. package/src/lib/notification/notification.mutations.js +64 -0
  279. package/src/lib/notification/notification.mutations.js.map +1 -0
  280. package/src/lib/notification/notification.queries.d.ts +11 -0
  281. package/src/lib/notification/notification.queries.js +77 -0
  282. package/src/lib/notification/notification.queries.js.map +1 -0
  283. package/src/lib/notification/notification.service.d.ts +121 -0
  284. package/src/lib/notification/notification.service.js +713 -0
  285. package/src/lib/notification/notification.service.js.map +1 -0
  286. package/src/lib/organization/dto/manager-resolution.input.d.ts +18 -0
  287. package/src/lib/organization/dto/manager-resolution.input.js +107 -0
  288. package/src/lib/organization/dto/manager-resolution.input.js.map +1 -0
  289. package/src/lib/organization/dto/membership.input.d.ts +16 -0
  290. package/src/lib/organization/dto/membership.input.js +99 -0
  291. package/src/lib/organization/dto/membership.input.js.map +1 -0
  292. package/src/lib/organization/dto/org-unit.input.d.ts +24 -0
  293. package/src/lib/organization/dto/org-unit.input.js +119 -0
  294. package/src/lib/organization/dto/org-unit.input.js.map +1 -0
  295. package/src/lib/organization/dto/position.input.d.ts +13 -0
  296. package/src/lib/organization/dto/position.input.js +70 -0
  297. package/src/lib/organization/dto/position.input.js.map +1 -0
  298. package/src/lib/organization/index.js +16 -0
  299. package/src/lib/organization/index.js.map +1 -0
  300. package/src/lib/organization/json-metadata.d.ts +1 -0
  301. package/src/lib/organization/json-metadata.js +14 -0
  302. package/src/lib/organization/json-metadata.js.map +1 -0
  303. package/src/lib/organization/manager-resolution.entity.d.ts +11 -0
  304. package/src/lib/organization/manager-resolution.entity.js +55 -0
  305. package/src/lib/organization/manager-resolution.entity.js.map +1 -0
  306. package/src/lib/organization/membership.entity.d.ts +11 -0
  307. package/src/lib/organization/membership.entity.js +60 -0
  308. package/src/lib/organization/membership.entity.js.map +1 -0
  309. package/src/lib/organization/org-unit-tree-commit-result.object.d.ts +4 -0
  310. package/src/lib/organization/org-unit-tree-commit-result.object.js +17 -0
  311. package/src/lib/organization/org-unit-tree-commit-result.object.js.map +1 -0
  312. package/src/lib/organization/org-unit.entity.d.ts +13 -0
  313. package/src/lib/organization/org-unit.entity.js +64 -0
  314. package/src/lib/organization/org-unit.entity.js.map +1 -0
  315. package/src/lib/organization/organization-summary.object.d.ts +6 -0
  316. package/src/lib/organization/organization-summary.object.js +28 -0
  317. package/src/lib/organization/organization-summary.object.js.map +1 -0
  318. package/src/lib/organization/organization.enums.d.ts +11 -0
  319. package/src/lib/organization/organization.enums.js +22 -0
  320. package/src/lib/organization/organization.enums.js.map +1 -0
  321. package/src/lib/organization/organization.module.d.ts +2 -0
  322. package/src/lib/organization/organization.module.js +35 -0
  323. package/src/lib/organization/organization.module.js.map +1 -0
  324. package/src/lib/organization/organization.mutations.d.ts +26 -0
  325. package/src/lib/organization/organization.mutations.js +148 -0
  326. package/src/lib/organization/organization.mutations.js.map +1 -0
  327. package/src/lib/organization/organization.queries.d.ts +23 -0
  328. package/src/lib/organization/organization.queries.js +204 -0
  329. package/src/lib/organization/organization.queries.js.map +1 -0
  330. package/src/lib/organization/organization.service.d.ts +103 -0
  331. package/src/lib/organization/organization.service.js +768 -0
  332. package/src/lib/organization/organization.service.js.map +1 -0
  333. package/src/lib/organization/position.entity.d.ts +9 -0
  334. package/src/lib/organization/position.entity.js +48 -0
  335. package/src/lib/organization/position.entity.js.map +1 -0
  336. package/src/lib/organization/resolved-manager.object.d.ts +4 -0
  337. package/src/lib/organization/resolved-manager.object.js +20 -0
  338. package/src/lib/organization/resolved-manager.object.js.map +1 -0
  339. package/src/lib/signature/index.js +8 -0
  340. package/src/lib/signature/index.js.map +1 -0
  341. package/src/lib/signature/signature-options.d.ts +33 -0
  342. package/src/lib/signature/signature-options.js +51 -0
  343. package/src/lib/signature/signature-options.js.map +1 -0
  344. package/src/lib/signature/signature-verification.object.d.ts +6 -0
  345. package/src/lib/signature/signature-verification.object.js +28 -0
  346. package/src/lib/signature/signature-verification.object.js.map +1 -0
  347. package/src/lib/signature/signature.entity.d.ts +16 -0
  348. package/src/lib/signature/signature.entity.js +88 -0
  349. package/src/lib/signature/signature.entity.js.map +1 -0
  350. package/src/lib/signature/signature.module.d.ts +11 -0
  351. package/src/lib/signature/signature.module.js +60 -0
  352. package/src/lib/signature/signature.module.js.map +1 -0
  353. package/src/lib/signature/signature.queries.d.ts +11 -0
  354. package/src/lib/signature/signature.queries.js +46 -0
  355. package/src/lib/signature/signature.queries.js.map +1 -0
  356. package/src/lib/signature/signature.service.d.ts +25 -0
  357. package/src/lib/signature/signature.service.js +124 -0
  358. package/src/lib/signature/signature.service.js.map +1 -0
  359. package/src/lib/template/approval-template-category.entity.d.ts +9 -0
  360. package/src/lib/template/approval-template-category.entity.js +49 -0
  361. package/src/lib/template/approval-template-category.entity.js.map +1 -0
  362. package/src/lib/template/approval-template-version.entity.d.ts +21 -0
  363. package/src/lib/template/approval-template-version.entity.js +106 -0
  364. package/src/lib/template/approval-template-version.entity.js.map +1 -0
  365. package/src/lib/template/approval-template.entity.d.ts +14 -0
  366. package/src/lib/template/approval-template.entity.js +74 -0
  367. package/src/lib/template/approval-template.entity.js.map +1 -0
  368. package/src/lib/template/compose-approval-template.object.d.ts +11 -0
  369. package/src/lib/template/compose-approval-template.object.js +36 -0
  370. package/src/lib/template/compose-approval-template.object.js.map +1 -0
  371. package/src/lib/template/compose-template.mutations.d.ts +8 -0
  372. package/src/lib/template/compose-template.mutations.js +32 -0
  373. package/src/lib/template/compose-template.mutations.js.map +1 -0
  374. package/src/lib/template/dto/approval-template.input.d.ts +36 -0
  375. package/src/lib/template/dto/approval-template.input.js +187 -0
  376. package/src/lib/template/dto/approval-template.input.js.map +1 -0
  377. package/src/lib/template/dto/compose-approval-template.input.d.ts +17 -0
  378. package/src/lib/template/dto/compose-approval-template.input.js +99 -0
  379. package/src/lib/template/dto/compose-approval-template.input.js.map +1 -0
  380. package/src/lib/template/index.js +14 -0
  381. package/src/lib/template/index.js.map +1 -0
  382. package/src/lib/template/template.enums.d.ts +14 -0
  383. package/src/lib/template/template.enums.js +31 -0
  384. package/src/lib/template/template.enums.js.map +1 -0
  385. package/src/lib/template/template.module.d.ts +2 -0
  386. package/src/lib/template/template.module.js +41 -0
  387. package/src/lib/template/template.module.js.map +1 -0
  388. package/src/lib/template/template.mutations.d.ts +20 -0
  389. package/src/lib/template/template.mutations.js +139 -0
  390. package/src/lib/template/template.mutations.js.map +1 -0
  391. package/src/lib/template/template.queries.d.ts +16 -0
  392. package/src/lib/template/template.queries.js +133 -0
  393. package/src/lib/template/template.queries.js.map +1 -0
  394. package/src/lib/template/template.service.d.ts +83 -0
  395. package/src/lib/template/template.service.js +654 -0
  396. package/src/lib/template/template.service.js.map +1 -0
  397. package/src/lib/template/workflow-definition.validator.d.ts +9 -0
  398. package/src/lib/template/workflow-definition.validator.js +362 -0
  399. package/src/lib/template/workflow-definition.validator.js.map +1 -0
  400. package/src/lib/testing/cel-js.jest.d.ts +15 -0
  401. package/src/lib/testing/cel-js.jest.js +27 -0
  402. package/src/lib/testing/cel-js.jest.js.map +1 -0
  403. package/src/lib/workflow-engine/activity-log.entity.d.ts +12 -0
  404. package/src/lib/workflow-engine/activity-log.entity.js +62 -0
  405. package/src/lib/workflow-engine/activity-log.entity.js.map +1 -0
  406. package/src/lib/workflow-engine/adhoc-directive.entity.d.ts +31 -0
  407. package/src/lib/workflow-engine/adhoc-directive.entity.js +105 -0
  408. package/src/lib/workflow-engine/adhoc-directive.entity.js.map +1 -0
  409. package/src/lib/workflow-engine/adhoc.enums.d.ts +21 -0
  410. package/src/lib/workflow-engine/adhoc.enums.js +42 -0
  411. package/src/lib/workflow-engine/adhoc.enums.js.map +1 -0
  412. package/src/lib/workflow-engine/approval-instance-page-info.object.d.ts +8 -0
  413. package/src/lib/workflow-engine/approval-instance-page-info.object.js +36 -0
  414. package/src/lib/workflow-engine/approval-instance-page-info.object.js.map +1 -0
  415. package/src/lib/workflow-engine/approval-instance.entity.d.ts +22 -0
  416. package/src/lib/workflow-engine/approval-instance.entity.js +113 -0
  417. package/src/lib/workflow-engine/approval-instance.entity.js.map +1 -0
  418. package/src/lib/workflow-engine/dto/adhoc-notification.input.d.ts +6 -0
  419. package/src/lib/workflow-engine/dto/adhoc-notification.input.js +28 -0
  420. package/src/lib/workflow-engine/dto/adhoc-notification.input.js.map +1 -0
  421. package/src/lib/workflow-engine/dto/adhoc-target.input.d.ts +16 -0
  422. package/src/lib/workflow-engine/dto/adhoc-target.input.js +61 -0
  423. package/src/lib/workflow-engine/dto/adhoc-target.input.js.map +1 -0
  424. package/src/lib/workflow-engine/dto/cancel-approval-instance.input.d.ts +5 -0
  425. package/src/lib/workflow-engine/dto/cancel-approval-instance.input.js +29 -0
  426. package/src/lib/workflow-engine/dto/cancel-approval-instance.input.js.map +1 -0
  427. package/src/lib/workflow-engine/dto/decide-task.input.d.ts +9 -0
  428. package/src/lib/workflow-engine/dto/decide-task.input.js +47 -0
  429. package/src/lib/workflow-engine/dto/decide-task.input.js.map +1 -0
  430. package/src/lib/workflow-engine/dto/dry-run-approval-workflow.input.d.ts +6 -0
  431. package/src/lib/workflow-engine/dto/dry-run-approval-workflow.input.js +34 -0
  432. package/src/lib/workflow-engine/dto/dry-run-approval-workflow.input.js.map +1 -0
  433. package/src/lib/workflow-engine/dto/resubmit-approval-instance.input.d.ts +6 -0
  434. package/src/lib/workflow-engine/dto/resubmit-approval-instance.input.js +34 -0
  435. package/src/lib/workflow-engine/dto/resubmit-approval-instance.input.js.map +1 -0
  436. package/src/lib/workflow-engine/dto/submit-approval-instance.input.d.ts +7 -0
  437. package/src/lib/workflow-engine/dto/submit-approval-instance.input.js +40 -0
  438. package/src/lib/workflow-engine/dto/submit-approval-instance.input.js.map +1 -0
  439. package/src/lib/workflow-engine/index.js +28 -0
  440. package/src/lib/workflow-engine/index.js.map +1 -0
  441. package/src/lib/workflow-engine/task-candidate.entity.d.ts +14 -0
  442. package/src/lib/workflow-engine/task-candidate.entity.js +72 -0
  443. package/src/lib/workflow-engine/task-candidate.entity.js.map +1 -0
  444. package/src/lib/workflow-engine/task-decision.entity.d.ts +12 -0
  445. package/src/lib/workflow-engine/task-decision.entity.js +60 -0
  446. package/src/lib/workflow-engine/task-decision.entity.js.map +1 -0
  447. package/src/lib/workflow-engine/task.entity.d.ts +25 -0
  448. package/src/lib/workflow-engine/task.entity.js +130 -0
  449. package/src/lib/workflow-engine/task.entity.js.map +1 -0
  450. package/src/lib/workflow-engine/workflow-condition-evaluator.d.ts +5 -0
  451. package/src/lib/workflow-engine/workflow-condition-evaluator.js +107 -0
  452. package/src/lib/workflow-engine/workflow-condition-evaluator.js.map +1 -0
  453. package/src/lib/workflow-engine/workflow-dashboard-summary.object.d.ts +8 -0
  454. package/src/lib/workflow-engine/workflow-dashboard-summary.object.js +36 -0
  455. package/src/lib/workflow-engine/workflow-dashboard-summary.object.js.map +1 -0
  456. package/src/lib/workflow-engine/workflow-dry-run.object.d.ts +21 -0
  457. package/src/lib/workflow-engine/workflow-dry-run.object.js +86 -0
  458. package/src/lib/workflow-engine/workflow-dry-run.object.js.map +1 -0
  459. package/src/lib/workflow-engine/workflow-engine.enums.d.ts +61 -0
  460. package/src/lib/workflow-engine/workflow-engine.enums.js +98 -0
  461. package/src/lib/workflow-engine/workflow-engine.enums.js.map +1 -0
  462. package/src/lib/workflow-engine/workflow-engine.module.d.ts +9 -0
  463. package/src/lib/workflow-engine/workflow-engine.module.js +78 -0
  464. package/src/lib/workflow-engine/workflow-engine.module.js.map +1 -0
  465. package/src/lib/workflow-engine/workflow-engine.mutations.d.ts +29 -0
  466. package/src/lib/workflow-engine/workflow-engine.mutations.js +218 -0
  467. package/src/lib/workflow-engine/workflow-engine.mutations.js.map +1 -0
  468. package/src/lib/workflow-engine/workflow-engine.queries.d.ts +31 -0
  469. package/src/lib/workflow-engine/workflow-engine.queries.js +237 -0
  470. package/src/lib/workflow-engine/workflow-engine.queries.js.map +1 -0
  471. package/src/lib/workflow-engine/workflow-engine.service.d.ts +188 -0
  472. package/src/lib/workflow-engine/workflow-engine.service.js +3561 -0
  473. package/src/lib/workflow-engine/workflow-engine.service.js.map +1 -0
  474. package/src/lib/workflow-engine/{workflow-engine.tokens.ts → workflow-engine.tokens.d.ts} +3 -9
  475. package/src/lib/workflow-engine/workflow-engine.tokens.js +5 -0
  476. package/src/lib/workflow-engine/workflow-engine.tokens.js.map +1 -0
  477. package/src/lib/workflow-engine/workflow-service-task-dispatcher.token.d.ts +18 -0
  478. package/src/lib/workflow-engine/workflow-service-task-dispatcher.token.js +39 -0
  479. package/src/lib/workflow-engine/workflow-service-task-dispatcher.token.js.map +1 -0
  480. package/src/lib/workflow-engine/workflow-token.entity.d.ts +10 -0
  481. package/src/lib/workflow-engine/workflow-token.entity.js +50 -0
  482. package/src/lib/workflow-engine/workflow-token.entity.js.map +1 -0
  483. package/eslint.config.mjs +0 -20
  484. package/jest.config.cts +0 -15
  485. package/project.json +0 -58
  486. package/src/lib/attachment/attachment-options.spec.ts +0 -45
  487. package/src/lib/attachment/attachment-options.ts +0 -130
  488. package/src/lib/attachment/attachment-storage.provider.spec.ts +0 -79
  489. package/src/lib/attachment/attachment-storage.provider.ts +0 -60
  490. package/src/lib/attachment/attachment.controller.ts +0 -39
  491. package/src/lib/attachment/attachment.entity.ts +0 -59
  492. package/src/lib/attachment/attachment.module.ts +0 -149
  493. package/src/lib/attachment/attachment.mutations.ts +0 -22
  494. package/src/lib/attachment/attachment.queries.ts +0 -65
  495. package/src/lib/attachment/attachment.service.spec.ts +0 -319
  496. package/src/lib/attachment/attachment.service.ts +0 -477
  497. package/src/lib/attachment/dto/upload-attachment.input.ts +0 -60
  498. package/src/lib/bpm/bpm-root.module.spec.ts +0 -138
  499. package/src/lib/bpm/bpm-root.module.ts +0 -320
  500. package/src/lib/bpm-auth/bpm-auth-context.extractor.ts +0 -106
  501. package/src/lib/bpm-auth/bpm-auth-context.ts +0 -40
  502. package/src/lib/bpm-auth/bpm-auth.authorization.ts +0 -80
  503. package/src/lib/bpm-auth/bpm-auth.decorators.ts +0 -19
  504. package/src/lib/bpm-auth/bpm-auth.guard.ts +0 -31
  505. package/src/lib/bpm-auth/bpm-auth.module.spec.ts +0 -106
  506. package/src/lib/bpm-auth/bpm-auth.module.ts +0 -69
  507. package/src/lib/bpm-auth/bpm-auth.options.ts +0 -21
  508. package/src/lib/bpm-auth/configurable-bpm-auth-context.accessor.ts +0 -55
  509. package/src/lib/common/filters/all-exceptions.filter.ts +0 -138
  510. package/src/lib/common/iso-duration.ts +0 -31
  511. package/src/lib/condition/condition.module.ts +0 -8
  512. package/src/lib/condition/condition.service.spec.ts +0 -50
  513. package/src/lib/condition/condition.service.ts +0 -141
  514. package/src/lib/database/data-source.ts +0 -7
  515. package/src/lib/database/migration-runner.ts +0 -26
  516. package/src/lib/database/reconcile-legacy-migrations.ts +0 -87
  517. package/src/lib/database/typeorm.config.ts +0 -217
  518. package/src/lib/delegation/delegation-rule.entity.ts +0 -84
  519. package/src/lib/delegation/delegation.enums.ts +0 -21
  520. package/src/lib/delegation/delegation.module.ts +0 -14
  521. package/src/lib/delegation/delegation.mutations.ts +0 -92
  522. package/src/lib/delegation/delegation.queries.ts +0 -111
  523. package/src/lib/delegation/delegation.service.spec.ts +0 -295
  524. package/src/lib/delegation/delegation.service.ts +0 -482
  525. package/src/lib/delegation/dto/delegation-rule.input.ts +0 -125
  526. package/src/lib/form/dto/form-definition.input.ts +0 -90
  527. package/src/lib/form/form-definition-version.entity.ts +0 -66
  528. package/src/lib/form/form-definition.entity.ts +0 -54
  529. package/src/lib/form/form-schema-lint.object.ts +0 -10
  530. package/src/lib/form/form-schema.validator.spec.ts +0 -180
  531. package/src/lib/form/form-schema.validator.ts +0 -538
  532. package/src/lib/form/form.enums.ts +0 -20
  533. package/src/lib/form/form.module.ts +0 -19
  534. package/src/lib/form/form.mutations.ts +0 -73
  535. package/src/lib/form/form.queries.ts +0 -72
  536. package/src/lib/form/form.service.spec.ts +0 -371
  537. package/src/lib/form/form.service.ts +0 -607
  538. package/src/lib/identity/identity-options.ts +0 -41
  539. package/src/lib/identity/identity.module.ts +0 -96
  540. package/src/lib/identity/identity.queries.ts +0 -61
  541. package/src/lib/identity/identity.service.spec.ts +0 -328
  542. package/src/lib/identity/identity.service.ts +0 -277
  543. package/src/lib/identity/member-base.adapter.spec.ts +0 -122
  544. package/src/lib/identity/member-base.adapter.ts +0 -302
  545. package/src/lib/identity/member-metadata-cache.entity.ts +0 -27
  546. package/src/lib/identity/member-profile.object.ts +0 -28
  547. package/src/lib/migrations/0000000000001-enable-postgres-extensions.ts +0 -14
  548. package/src/lib/migrations/0000000011000-remove-attachment-encryption-key.ts +0 -19
  549. package/src/lib/migrations/0000000012000-notification-sla-idempotency.ts +0 -22
  550. package/src/lib/migrations/0000000013000-workflow-query-indexes.ts +0 -113
  551. package/src/lib/migrations/0000000014000-notification-resolution.ts +0 -29
  552. package/src/lib/migrations/index.ts +0 -59
  553. package/src/lib/notification/dto/notification-preference.input.ts +0 -46
  554. package/src/lib/notification/notification-delivery-scheduler.service.ts +0 -69
  555. package/src/lib/notification/notification-delivery.service.spec.ts +0 -315
  556. package/src/lib/notification/notification-delivery.service.ts +0 -339
  557. package/src/lib/notification/notification-dispatcher.token.ts +0 -13
  558. package/src/lib/notification/notification-options.module.ts +0 -67
  559. package/src/lib/notification/notification-options.spec.ts +0 -93
  560. package/src/lib/notification/notification-options.ts +0 -452
  561. package/src/lib/notification/notification-preference.entity.ts +0 -35
  562. package/src/lib/notification/notification-sla-scheduler.service.ts +0 -66
  563. package/src/lib/notification/notification-template.spec.ts +0 -33
  564. package/src/lib/notification/notification-template.ts +0 -97
  565. package/src/lib/notification/notification.entity.ts +0 -129
  566. package/src/lib/notification/notification.enums.ts +0 -64
  567. package/src/lib/notification/notification.module.ts +0 -37
  568. package/src/lib/notification/notification.mutations.ts +0 -47
  569. package/src/lib/notification/notification.queries.ts +0 -64
  570. package/src/lib/notification/notification.service.spec.ts +0 -412
  571. package/src/lib/notification/notification.service.ts +0 -1129
  572. package/src/lib/organization/dto/manager-resolution.input.ts +0 -91
  573. package/src/lib/organization/dto/membership.input.ts +0 -77
  574. package/src/lib/organization/dto/org-unit.input.ts +0 -96
  575. package/src/lib/organization/dto/position.input.ts +0 -50
  576. package/src/lib/organization/json-metadata.ts +0 -15
  577. package/src/lib/organization/manager-resolution.entity.ts +0 -44
  578. package/src/lib/organization/membership.entity.ts +0 -50
  579. package/src/lib/organization/org-unit-tree-commit-result.object.ts +0 -8
  580. package/src/lib/organization/org-unit.entity.ts +0 -53
  581. package/src/lib/organization/organization-summary.object.ts +0 -16
  582. package/src/lib/organization/organization.enums.ts +0 -19
  583. package/src/lib/organization/organization.module.ts +0 -27
  584. package/src/lib/organization/organization.mutations.ts +0 -115
  585. package/src/lib/organization/organization.queries.ts +0 -191
  586. package/src/lib/organization/organization.service.spec.ts +0 -835
  587. package/src/lib/organization/organization.service.ts +0 -1245
  588. package/src/lib/organization/position.entity.ts +0 -39
  589. package/src/lib/organization/resolved-manager.object.ts +0 -10
  590. package/src/lib/signature/signature-options.spec.ts +0 -60
  591. package/src/lib/signature/signature-options.ts +0 -120
  592. package/src/lib/signature/signature-verification.object.ts +0 -16
  593. package/src/lib/signature/signature.entity.ts +0 -62
  594. package/src/lib/signature/signature.module.ts +0 -80
  595. package/src/lib/signature/signature.queries.ts +0 -37
  596. package/src/lib/signature/signature.service.spec.ts +0 -134
  597. package/src/lib/signature/signature.service.ts +0 -205
  598. package/src/lib/template/approval-template-category.entity.ts +0 -40
  599. package/src/lib/template/approval-template-version.entity.ts +0 -82
  600. package/src/lib/template/approval-template.entity.ts +0 -64
  601. package/src/lib/template/compose-approval-template.object.ts +0 -23
  602. package/src/lib/template/compose-template.mutations.ts +0 -22
  603. package/src/lib/template/dto/approval-template.input.ts +0 -147
  604. package/src/lib/template/dto/compose-approval-template.input.ts +0 -80
  605. package/src/lib/template/template.enums.ts +0 -30
  606. package/src/lib/template/template.module.ts +0 -33
  607. package/src/lib/template/template.mutations.ts +0 -106
  608. package/src/lib/template/template.queries.ts +0 -119
  609. package/src/lib/template/template.service.spec.ts +0 -822
  610. package/src/lib/template/template.service.ts +0 -1082
  611. package/src/lib/template/workflow-definition.validator.spec.ts +0 -595
  612. package/src/lib/template/workflow-definition.validator.ts +0 -539
  613. package/src/lib/testing/cel-js.jest.ts +0 -46
  614. package/src/lib/workflow-engine/activity-log.entity.ts +0 -48
  615. package/src/lib/workflow-engine/adhoc-directive.entity.ts +0 -90
  616. package/src/lib/workflow-engine/adhoc.enums.ts +0 -42
  617. package/src/lib/workflow-engine/approval-instance-page-info.object.ts +0 -22
  618. package/src/lib/workflow-engine/approval-instance.entity.ts +0 -86
  619. package/src/lib/workflow-engine/dto/adhoc-notification.input.ts +0 -18
  620. package/src/lib/workflow-engine/dto/adhoc-target.input.ts +0 -52
  621. package/src/lib/workflow-engine/dto/cancel-approval-instance.input.ts +0 -18
  622. package/src/lib/workflow-engine/dto/decide-task.input.ts +0 -33
  623. package/src/lib/workflow-engine/dto/dry-run-approval-workflow.input.ts +0 -22
  624. package/src/lib/workflow-engine/dto/resubmit-approval-instance.input.ts +0 -22
  625. package/src/lib/workflow-engine/dto/submit-approval-instance.input.ts +0 -27
  626. package/src/lib/workflow-engine/task-candidate.entity.ts +0 -56
  627. package/src/lib/workflow-engine/task-decision.entity.ts +0 -43
  628. package/src/lib/workflow-engine/task.entity.ts +0 -102
  629. package/src/lib/workflow-engine/workflow-condition-evaluator.ts +0 -168
  630. package/src/lib/workflow-engine/workflow-dashboard-summary.object.ts +0 -22
  631. package/src/lib/workflow-engine/workflow-dry-run.object.ts +0 -58
  632. package/src/lib/workflow-engine/workflow-engine.enums.ts +0 -102
  633. package/src/lib/workflow-engine/workflow-engine.module.ts +0 -77
  634. package/src/lib/workflow-engine/workflow-engine.mutations.ts +0 -193
  635. package/src/lib/workflow-engine/workflow-engine.queries.ts +0 -241
  636. package/src/lib/workflow-engine/workflow-engine.service.spec.ts +0 -3345
  637. package/src/lib/workflow-engine/workflow-engine.service.ts +0 -6022
  638. package/src/lib/workflow-engine/workflow-service-task-dispatcher.token.ts +0 -69
  639. package/src/lib/workflow-engine/workflow-token.entity.ts +0 -40
  640. package/tsconfig.json +0 -24
  641. package/tsconfig.lib.json +0 -16
  642. package/tsconfig.spec.json +0 -16
  643. /package/src/{index.ts → index.d.ts} +0 -0
  644. /package/src/lib/attachment/{index.ts → index.d.ts} +0 -0
  645. /package/src/lib/bpm/{index.ts → index.d.ts} +0 -0
  646. /package/src/lib/bpm-auth/{index.ts → index.d.ts} +0 -0
  647. /package/src/lib/common/{index.ts → index.d.ts} +0 -0
  648. /package/src/lib/condition/{index.ts → index.d.ts} +0 -0
  649. /package/src/lib/database/{index.ts → index.d.ts} +0 -0
  650. /package/src/lib/delegation/{index.ts → index.d.ts} +0 -0
  651. /package/src/lib/form/{index.ts → index.d.ts} +0 -0
  652. /package/src/lib/identity/{index.ts → index.d.ts} +0 -0
  653. /package/src/lib/notification/{index.ts → index.d.ts} +0 -0
  654. /package/src/lib/organization/{index.ts → index.d.ts} +0 -0
  655. /package/src/lib/signature/{index.ts → index.d.ts} +0 -0
  656. /package/src/lib/template/{index.ts → index.d.ts} +0 -0
  657. /package/src/lib/workflow-engine/{index.ts → index.d.ts} +0 -0
@@ -1,277 +0,0 @@
1
- import { Inject, Injectable, Optional } from '@nestjs/common';
2
- import { InjectRepository } from '@nestjs/typeorm';
3
- import { In, Repository } from 'typeorm';
4
- import { MemberMetadata } from '@rytass/bpm-core-shared';
5
- import {
6
- BPM_IDENTITY_OPTIONS,
7
- BPMResolvedIdentityOptions,
8
- DEFAULT_BPM_IDENTITY_OPTIONS,
9
- } from './identity-options';
10
- import { MemberMetadataCacheEntity } from './member-metadata-cache.entity';
11
- import { MEMBER_RESOLVER, MemberResolver } from './member-resolver.interface';
12
-
13
- const DEFAULT_MEMBER_PAGE = 1;
14
- const DEFAULT_MEMBER_PAGE_SIZE = 10;
15
- const MAX_MEMBER_PAGE_SIZE = 100;
16
-
17
- interface SearchMembersOptions {
18
- readonly page?: number;
19
- readonly pageSize?: number;
20
- }
21
-
22
- const normalizePage = (page?: number): number =>
23
- Number.isInteger(page) && page !== undefined && page > 0
24
- ? page
25
- : DEFAULT_MEMBER_PAGE;
26
-
27
- const normalizePageSize = (pageSize?: number): number => {
28
- if (!Number.isInteger(pageSize) || pageSize === undefined || pageSize <= 0) {
29
- return DEFAULT_MEMBER_PAGE_SIZE;
30
- }
31
-
32
- return Math.min(pageSize, MAX_MEMBER_PAGE_SIZE);
33
- };
34
-
35
- const paginateMembers = (
36
- members: readonly MemberMetadata[],
37
- options: SearchMembersOptions,
38
- ): readonly MemberMetadata[] => {
39
- const page = normalizePage(options.page);
40
- const pageSize = normalizePageSize(options.pageSize);
41
- const offset = (page - 1) * pageSize;
42
-
43
- return members.slice(offset, offset + pageSize);
44
- };
45
-
46
- @Injectable()
47
- export class IdentityService {
48
- constructor(
49
- @InjectRepository(MemberMetadataCacheEntity)
50
- private readonly cacheRepository: Repository<MemberMetadataCacheEntity>,
51
- @Inject(MEMBER_RESOLVER)
52
- private readonly memberResolver: MemberResolver,
53
- @Optional()
54
- @Inject(BPM_IDENTITY_OPTIONS)
55
- private readonly identityOptions: BPMResolvedIdentityOptions = DEFAULT_BPM_IDENTITY_OPTIONS,
56
- ) {}
57
-
58
- async resolveMember(memberId: string): Promise<MemberMetadata> {
59
- const now = new Date();
60
- const cached = await this.cacheRepository.findOne({ where: { memberId } });
61
-
62
- if (cached && cached.expiresAt > now) {
63
- return cached.metadata;
64
- }
65
-
66
- const metadata = await this.memberResolver.resolve(memberId);
67
- const fetchedAt = now;
68
- const expiresAt = new Date(
69
- now.getTime() + this.identityOptions.memberMetadataCacheTtlMs,
70
- );
71
-
72
- const cacheEntity = cached ?? new MemberMetadataCacheEntity();
73
- cacheEntity.fetchedAt = fetchedAt;
74
- cacheEntity.expiresAt = expiresAt;
75
- cacheEntity.memberId = memberId;
76
- cacheEntity.metadata = metadata;
77
-
78
- await this.cacheRepository.save(cacheEntity);
79
-
80
- return metadata;
81
- }
82
-
83
- async resolveMembers(
84
- memberIds: readonly string[],
85
- ): Promise<readonly MemberMetadata[]> {
86
- const uniqueMemberIds = [...new Set(memberIds)].filter(
87
- (memberId) => memberId.length > 0,
88
- );
89
-
90
- if (uniqueMemberIds.length === 0) {
91
- return [];
92
- }
93
-
94
- const now = new Date();
95
- const cachedRows = await this.cacheRepository.find({
96
- where: { memberId: In([...uniqueMemberIds]) },
97
- });
98
- const cacheEntityByMemberId = new Map(
99
- cachedRows.map((row): readonly [string, MemberMetadataCacheEntity] => [
100
- row.memberId,
101
- row,
102
- ]),
103
- );
104
- const metadataByMemberId = new Map<string, MemberMetadata>();
105
- const staleMemberIds: string[] = [];
106
-
107
- for (const memberId of uniqueMemberIds) {
108
- const cached = cacheEntityByMemberId.get(memberId);
109
-
110
- if (cached && cached.expiresAt > now) {
111
- metadataByMemberId.set(memberId, cached.metadata);
112
- } else {
113
- staleMemberIds.push(memberId);
114
- }
115
- }
116
-
117
- if (staleMemberIds.length > 0) {
118
- const resolvedMap =
119
- await this.memberResolver.resolveMany(staleMemberIds);
120
- const expiresAt = new Date(
121
- now.getTime() + this.identityOptions.memberMetadataCacheTtlMs,
122
- );
123
- const entitiesToSave: MemberMetadataCacheEntity[] = [];
124
-
125
- for (const memberId of staleMemberIds) {
126
- const metadata = resolvedMap.get(memberId);
127
-
128
- if (!metadata) {
129
- continue;
130
- }
131
-
132
- const cacheEntity =
133
- cacheEntityByMemberId.get(memberId) ??
134
- new MemberMetadataCacheEntity();
135
-
136
- cacheEntity.memberId = memberId;
137
- cacheEntity.metadata = metadata;
138
- cacheEntity.fetchedAt = now;
139
- cacheEntity.expiresAt = expiresAt;
140
-
141
- entitiesToSave.push(cacheEntity);
142
- metadataByMemberId.set(memberId, metadata);
143
- }
144
-
145
- if (entitiesToSave.length > 0) {
146
- await this.cacheRepository.save(entitiesToSave);
147
- }
148
- }
149
-
150
- return memberIds
151
- .map((memberId) => metadataByMemberId.get(memberId))
152
- .filter((metadata): metadata is MemberMetadata => Boolean(metadata));
153
- }
154
-
155
- async listCachedMembers(): Promise<readonly MemberMetadataCacheEntity[]> {
156
- return this.cacheRepository.find({ order: { memberId: 'ASC' } });
157
- }
158
-
159
- async countMembers(searchText: string): Promise<number> {
160
- if (this.memberResolver.searchPaged) {
161
- const page = await this.memberResolver.searchPaged(searchText, {
162
- page: DEFAULT_MEMBER_PAGE,
163
- pageSize: 1,
164
- });
165
-
166
- return page.total;
167
- }
168
-
169
- const members = await this.searchAllMembers(searchText);
170
-
171
- return members.length;
172
- }
173
-
174
- async searchMembers(
175
- searchText: string,
176
- options: SearchMembersOptions = {},
177
- ): Promise<readonly MemberMetadata[]> {
178
- const wantsPagination =
179
- options.page !== undefined || options.pageSize !== undefined;
180
-
181
- if (wantsPagination && this.memberResolver.searchPaged) {
182
- const page = await this.memberResolver.searchPaged(searchText, {
183
- page: normalizePage(options.page),
184
- pageSize: normalizePageSize(options.pageSize),
185
- });
186
-
187
- await this.cacheMemberMetadata(page.items);
188
-
189
- return page.items;
190
- }
191
-
192
- const members = await this.searchAllMembers(searchText);
193
-
194
- if (!wantsPagination) {
195
- return members;
196
- }
197
-
198
- return paginateMembers(members, options);
199
- }
200
-
201
- /**
202
- * Backfills the per-id `member_metadata_cache` rows for members
203
- * returned by a paged search, reusing the same row entities and TTL as
204
- * `resolveMany`. Unlike `resolveMany` (which only rewrites rows it had
205
- * to re-fetch), every returned member is refreshed here since a paged
206
- * search always carries authoritative host data. The page query itself
207
- * is never row-cached; only the individual member metadata is.
208
- */
209
- private async cacheMemberMetadata(
210
- members: readonly MemberMetadata[],
211
- ): Promise<void> {
212
- if (members.length === 0) {
213
- return;
214
- }
215
-
216
- const now = new Date();
217
- const expiresAt = new Date(
218
- now.getTime() + this.identityOptions.memberMetadataCacheTtlMs,
219
- );
220
- const memberIds = members.map((member) => member.memberId);
221
- const existingRows = await this.cacheRepository.find({
222
- where: { memberId: In([...memberIds]) },
223
- });
224
- const existingRowByMemberId = new Map(
225
- existingRows.map((row): readonly [string, MemberMetadataCacheEntity] => [
226
- row.memberId,
227
- row,
228
- ]),
229
- );
230
- const seenMemberIds = new Set<string>();
231
- const entitiesToSave: MemberMetadataCacheEntity[] = [];
232
-
233
- for (const metadata of members) {
234
- if (seenMemberIds.has(metadata.memberId)) {
235
- continue;
236
- }
237
-
238
- seenMemberIds.add(metadata.memberId);
239
-
240
- const cacheEntity =
241
- existingRowByMemberId.get(metadata.memberId) ??
242
- new MemberMetadataCacheEntity();
243
-
244
- cacheEntity.memberId = metadata.memberId;
245
- cacheEntity.metadata = metadata;
246
- cacheEntity.fetchedAt = now;
247
- cacheEntity.expiresAt = expiresAt;
248
-
249
- entitiesToSave.push(cacheEntity);
250
- }
251
-
252
- await this.cacheRepository.save(entitiesToSave);
253
- }
254
-
255
- private async searchAllMembers(
256
- searchText: string,
257
- ): Promise<readonly MemberMetadata[]> {
258
- if (this.memberResolver.search) {
259
- return this.memberResolver.search(searchText);
260
- }
261
-
262
- const normalizedSearchText = searchText.trim().toLocaleLowerCase();
263
- const cachedMembers = await this.listCachedMembers();
264
-
265
- return cachedMembers
266
- .map((member) => member.metadata)
267
- .filter((metadata) => {
268
- if (!normalizedSearchText) {
269
- return true;
270
- }
271
-
272
- return [metadata.email, metadata.memberId, metadata.name].some(
273
- (value) => value.toLocaleLowerCase().includes(normalizedSearchText),
274
- );
275
- });
276
- }
277
- }
@@ -1,122 +0,0 @@
1
- import {
2
- BPMMemberBaseResolverAdapter,
3
- createBPMAuthContextFromMemberBaseMember,
4
- } from './member-base.adapter';
5
-
6
- interface TestMemberBaseMember {
7
- readonly email: string;
8
- readonly id: string;
9
- readonly name: string;
10
- readonly permissions: readonly string[];
11
- readonly roles: readonly string[];
12
- }
13
-
14
- describe('member-base adapter', () => {
15
- it('creates BPM auth context from a host member-base member', (): void => {
16
- const context = createBPMAuthContextFromMemberBaseMember(
17
- createMember('member-001'),
18
- {
19
- readCustomFields: (member): Readonly<Record<string, unknown>> => ({
20
- source: 'member-base',
21
- tenantMemberId: member.id,
22
- }),
23
- readPermissions: (member): readonly string[] => member.permissions,
24
- readRoles: (member): readonly string[] => member.roles,
25
- },
26
- );
27
-
28
- expect(context).toEqual({
29
- memberId: 'member-001',
30
- metadata: {
31
- source: 'member-base',
32
- tenantMemberId: 'member-001',
33
- },
34
- permissions: ['bpm:approve'],
35
- roles: ['approver'],
36
- });
37
- });
38
-
39
- it('adapts member-base lookup and search to BPM member metadata', async (): Promise<void> => {
40
- const members = [createMember('member-001'), createMember('member-002')];
41
- const resolver = new BPMMemberBaseResolverAdapter<TestMemberBaseMember>({
42
- resolveMember: (memberId): Promise<TestMemberBaseMember | null> =>
43
- Promise.resolve(
44
- members.find((member) => member.id === memberId) ?? null,
45
- ),
46
- searchMembers: (searchText): Promise<readonly TestMemberBaseMember[]> =>
47
- Promise.resolve(
48
- members.filter((member) => member.email.includes(searchText)),
49
- ),
50
- });
51
-
52
- await expect(resolver.resolve('member-001')).resolves.toEqual({
53
- customFields: {},
54
- email: 'member-001@example.com',
55
- memberId: 'member-001',
56
- name: 'Member member-001',
57
- });
58
- await expect(resolver.search?.('member-002')).resolves.toEqual([
59
- {
60
- customFields: {},
61
- email: 'member-002@example.com',
62
- memberId: 'member-002',
63
- name: 'Member member-002',
64
- },
65
- ]);
66
- });
67
-
68
- it('leaves searchPaged undefined when the directory does not implement searchMembersPaged', (): void => {
69
- const resolver = new BPMMemberBaseResolverAdapter<TestMemberBaseMember>({
70
- resolveMember: (): Promise<TestMemberBaseMember | null> =>
71
- Promise.resolve(null),
72
- });
73
-
74
- expect(resolver.searchPaged).toBeUndefined();
75
- });
76
-
77
- it('delegates searchPaged to the directory and maps items to member metadata', async (): Promise<void> => {
78
- const members = [
79
- createMember('member-001'),
80
- createMember('member-002'),
81
- createMember('member-003'),
82
- ];
83
- const resolver = new BPMMemberBaseResolverAdapter<TestMemberBaseMember>({
84
- resolveMember: (memberId): Promise<TestMemberBaseMember | null> =>
85
- Promise.resolve(
86
- members.find((member) => member.id === memberId) ?? null,
87
- ),
88
- searchMembersPaged: (_searchText, options) => {
89
- const offset = (options.page - 1) * options.pageSize;
90
-
91
- return Promise.resolve({
92
- items: members.slice(offset, offset + options.pageSize),
93
- total: members.length,
94
- });
95
- },
96
- });
97
-
98
- await expect(
99
- resolver.searchPaged?.('', { page: 2, pageSize: 2 }),
100
- ).resolves.toEqual({
101
- items: [
102
- {
103
- customFields: {},
104
- email: 'member-003@example.com',
105
- memberId: 'member-003',
106
- name: 'Member member-003',
107
- },
108
- ],
109
- total: 3,
110
- });
111
- });
112
- });
113
-
114
- function createMember(id: string): TestMemberBaseMember {
115
- return {
116
- email: `${id}@example.com`,
117
- id,
118
- name: `Member ${id}`,
119
- permissions: ['bpm:approve'],
120
- roles: ['approver'],
121
- };
122
- }
@@ -1,302 +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 {
5
- BPMMemberResolver,
6
- BPMMemberSearchPage,
7
- BPMMemberSearchPageOptions,
8
- } from './member-resolver.interface';
9
-
10
- /**
11
- * Structural contract a host identity backend should implement (or a thin
12
- * adapter wrap) so BPM can be plugged into any `member-base`-style
13
- * directory without coupling `@rytass/bpm-core-nestjs-module` to a
14
- * specific identity package.
15
- *
16
- * `TMember` is the host's own member shape; the adapter walks it through
17
- * {@link BPMMemberBaseAdapterOptions} field readers.
18
- */
19
- export interface BPMMemberBaseDirectory<TMember> {
20
- readonly resolveMember: (memberId: string) => Promise<TMember | null>;
21
- readonly resolveMembers?: (
22
- memberIds: readonly string[],
23
- ) => Promise<readonly TMember[]>;
24
- readonly searchMembers?: (searchText: string) => Promise<readonly TMember[]>;
25
- /**
26
- * Optional paged directory search. Implement this (in addition to, or
27
- * instead of, `searchMembers`) to let BPM page through a directory
28
- * larger than `searchMembers`' member-picker cap and report an
29
- * accurate total on the admin members list. `page` is 1-based and
30
- * already normalized/clamped by BPM. Return the requested slice as
31
- * `items` and the full match count as `total`. When omitted, the
32
- * adapter's `searchPaged` stays `undefined` and BPM falls back to the
33
- * `searchMembers`-and-slice path.
34
- */
35
- readonly searchMembersPaged?: (
36
- searchText: string,
37
- options: BPMMemberSearchPageOptions,
38
- ) => Promise<BPMMemberBaseSearchPage<TMember>>;
39
- }
40
-
41
- /**
42
- * Host-shaped page returned by
43
- * {@link BPMMemberBaseDirectory.searchMembersPaged}. The adapter maps
44
- * each `TMember` in `items` through the field readers into
45
- * {@link MemberMetadata} and forwards `total` unchanged.
46
- */
47
- export interface BPMMemberBaseSearchPage<TMember> {
48
- readonly items: readonly TMember[];
49
- readonly total: number;
50
- }
51
-
52
- /**
53
- * Per-host field readers that tell the adapter how to extract canonical
54
- * BPM fields out of the host's `TMember`. Each reader is optional;
55
- * sensible defaults are inferred when the host uses common conventions
56
- * (`memberId` / `id` / `sub` for the member id, `email` for the email,
57
- * `name` / `displayName` for the name, etc.).
58
- *
59
- * Provide `readPermissions` and `readRoles` if you want BPM's
60
- * `BPMAdminGuard` / `BPMDesignerGuard` to receive the host's RBAC
61
- * strings; otherwise the resolved `BPMAuthContext` will carry empty
62
- * arrays.
63
- */
64
- export interface BPMMemberBaseAdapterOptions<TMember> {
65
- readonly readCustomFields?: (
66
- member: TMember,
67
- ) => Readonly<Record<string, unknown>>;
68
- readonly readEmail?: (member: TMember) => string | null;
69
- readonly readMemberId?: (member: TMember) => string | null;
70
- readonly readName?: (member: TMember) => string | null;
71
- readonly readPermissions?: (member: TMember) => readonly string[];
72
- readonly readRoles?: (member: TMember) => readonly string[];
73
- }
74
-
75
- export interface BPMMemberBaseResolverProviderOptions<TMember> {
76
- readonly adapterOptions?: BPMMemberBaseAdapterOptions<TMember>;
77
- readonly directoryToken: InjectionToken<BPMMemberBaseDirectory<TMember>>;
78
- readonly provide: InjectionToken<BPMMemberResolver>;
79
- }
80
-
81
- export class BPMMemberBaseResolverAdapter<TMember>
82
- implements BPMMemberResolver
83
- {
84
- /**
85
- * Present only when the wrapped directory implements
86
- * `searchMembersPaged`. Left `undefined` otherwise so `IdentityService`
87
- * capability detection falls back to the `search`-and-slice path,
88
- * preserving pre-0.5.0 behavior.
89
- */
90
- readonly searchPaged?: (
91
- searchText: string,
92
- options: BPMMemberSearchPageOptions,
93
- ) => Promise<BPMMemberSearchPage>;
94
-
95
- constructor(
96
- private readonly directory: BPMMemberBaseDirectory<TMember>,
97
- private readonly options: BPMMemberBaseAdapterOptions<TMember> = {},
98
- ) {
99
- const searchMembersPaged = directory.searchMembersPaged;
100
-
101
- if (searchMembersPaged) {
102
- this.searchPaged = async (
103
- searchText: string,
104
- pageOptions: BPMMemberSearchPageOptions,
105
- ): Promise<BPMMemberSearchPage> => {
106
- const page = await searchMembersPaged(searchText, pageOptions);
107
-
108
- return {
109
- items: page.items.map((member): MemberMetadata =>
110
- readMemberMetadataFromMemberBaseMember(member, this.options),
111
- ),
112
- total: page.total,
113
- };
114
- };
115
- }
116
- }
117
-
118
- async resolve(memberId: string): Promise<MemberMetadata> {
119
- const member = await this.directory.resolveMember(memberId);
120
-
121
- if (!member) {
122
- throw new Error(`member-base member ${memberId} was not found`);
123
- }
124
-
125
- return readMemberMetadataFromMemberBaseMember(member, this.options);
126
- }
127
-
128
- async resolveMany(
129
- memberIds: readonly string[],
130
- ): Promise<ReadonlyMap<string, MemberMetadata>> {
131
- const members = this.directory.resolveMembers
132
- ? await this.directory.resolveMembers(memberIds)
133
- : await Promise.all(
134
- memberIds.map((memberId): Promise<TMember | null> =>
135
- this.directory.resolveMember(memberId),
136
- ),
137
- );
138
-
139
- return members
140
- .filter((member): member is TMember => Boolean(member))
141
- .map((member): MemberMetadata =>
142
- readMemberMetadataFromMemberBaseMember(member, this.options),
143
- )
144
- .reduce<ReadonlyMap<string, MemberMetadata>>(
145
- (metadataByMemberId, metadata): ReadonlyMap<string, MemberMetadata> =>
146
- new Map(metadataByMemberId).set(metadata.memberId, metadata),
147
- new Map(),
148
- );
149
- }
150
-
151
- async search(searchText: string): Promise<readonly MemberMetadata[]> {
152
- if (!this.directory.searchMembers) {
153
- return [];
154
- }
155
-
156
- return (await this.directory.searchMembers(searchText)).map(
157
- (member): MemberMetadata =>
158
- readMemberMetadataFromMemberBaseMember(member, this.options),
159
- );
160
- }
161
- }
162
-
163
- /**
164
- * Helper for hosts that already hold an authenticated `TMember` (for
165
- * example from `@rytass/member-base-nestjs-module`) and want to project it
166
- * into a {@link BPMAuthContext} without writing the boilerplate by hand.
167
- *
168
- * Returns `null` when the input is nullish or when the member is missing
169
- * an id — never throws. Pair this with `BPMRootModuleOptions.authContextFactory`
170
- * so BPM resolvers receive the projected context on every request.
171
- *
172
- * @example
173
- * ```ts
174
- * const bpmAuth = createBPMAuthContextFromMemberBaseMember(memberBaseUser, {
175
- * readRoles: (m) => m.roles,
176
- * readPermissions: (m) => m.permissions,
177
- * readCustomFields: (m) => ({ tenantId: m.tenantId }),
178
- * });
179
- * ```
180
- */
181
- export function createBPMAuthContextFromMemberBaseMember<TMember>(
182
- member: TMember | null | undefined,
183
- options: BPMMemberBaseAdapterOptions<TMember> = {},
184
- ): BPMAuthContext | null {
185
- if (!member) {
186
- return null;
187
- }
188
-
189
- const memberId = readMemberId(member, options);
190
-
191
- return memberId
192
- ? {
193
- memberId,
194
- metadata: options.readCustomFields?.(member) ?? {},
195
- permissions: options.readPermissions?.(member) ?? [],
196
- roles: options.readRoles?.(member) ?? [],
197
- }
198
- : null;
199
- }
200
-
201
- /**
202
- * Builds a Nest `Provider` that adapts a host-provided
203
- * {@link BPMMemberBaseDirectory} into a {@link BPMMemberResolver}, then
204
- * registers it under the host-chosen injection token (typically
205
- * {@link BPM_MEMBER_RESOLVER}).
206
- *
207
- * Pass the result inside `BPMRootModuleOptions.memberResolverProvider`.
208
- *
209
- * @example
210
- * ```ts
211
- * BPMRootModule.forRoot({
212
- * memberResolverProvider: createBPMMemberBaseResolverProvider({
213
- * provide: BPM_MEMBER_RESOLVER,
214
- * directoryToken: HOST_MEMBER_DIRECTORY,
215
- * adapterOptions: {
216
- * readEmail: (m) => m.email,
217
- * readName: (m) => m.name,
218
- * },
219
- * }),
220
- * // ...
221
- * });
222
- * ```
223
- */
224
- export function createBPMMemberBaseResolverProvider<TMember>({
225
- adapterOptions,
226
- directoryToken,
227
- provide,
228
- }: BPMMemberBaseResolverProviderOptions<TMember>): Provider<BPMMemberResolver> {
229
- return {
230
- inject: [directoryToken],
231
- provide,
232
- useFactory: (
233
- directory: BPMMemberBaseDirectory<TMember>,
234
- ): BPMMemberResolver =>
235
- new BPMMemberBaseResolverAdapter(directory, adapterOptions),
236
- };
237
- }
238
-
239
- export function readMemberMetadataFromMemberBaseMember<TMember>(
240
- member: TMember,
241
- options: BPMMemberBaseAdapterOptions<TMember> = {},
242
- ): MemberMetadata {
243
- const memberId = readMemberId(member, options);
244
-
245
- if (!memberId) {
246
- throw new Error('member-base member id is required for BPM integration');
247
- }
248
-
249
- return {
250
- customFields: options.readCustomFields?.(member) ?? {},
251
- email: readMemberEmail(member, options) ?? '',
252
- memberId,
253
- name: readMemberName(member, options) ?? memberId,
254
- };
255
- }
256
-
257
- function readMemberId<TMember>(
258
- member: TMember,
259
- options: BPMMemberBaseAdapterOptions<TMember>,
260
- ): string | null {
261
- return (
262
- normalizeText(options.readMemberId?.(member)) ??
263
- readStringProperty(member, 'memberId') ??
264
- readStringProperty(member, 'id') ??
265
- readStringProperty(member, 'sub')
266
- );
267
- }
268
-
269
- function readMemberEmail<TMember>(
270
- member: TMember,
271
- options: BPMMemberBaseAdapterOptions<TMember>,
272
- ): string | null {
273
- return normalizeText(options.readEmail?.(member)) ?? readStringProperty(member, 'email');
274
- }
275
-
276
- function readMemberName<TMember>(
277
- member: TMember,
278
- options: BPMMemberBaseAdapterOptions<TMember>,
279
- ): string | null {
280
- return (
281
- normalizeText(options.readName?.(member)) ??
282
- readStringProperty(member, 'name') ??
283
- readStringProperty(member, 'displayName') ??
284
- readMemberEmail(member, options)
285
- );
286
- }
287
-
288
- function readStringProperty(value: unknown, key: string): string | null {
289
- if (!isRecord(value)) {
290
- return null;
291
- }
292
-
293
- return normalizeText(value[key]);
294
- }
295
-
296
- function normalizeText(value: unknown): string | null {
297
- return typeof value === 'string' && value.trim() ? value.trim() : null;
298
- }
299
-
300
- function isRecord(value: unknown): value is Readonly<Record<string, unknown>> {
301
- return typeof value === 'object' && value !== null;
302
- }