@ajna-inc/workflow 0.5.37 → 0.6.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 (336) hide show
  1. package/.npmvc/attestations.jsonld +32 -0
  2. package/LICENSE +202 -0
  3. package/build/WorkflowEvents.d.mts +40 -0
  4. package/build/WorkflowEvents.d.mts.map +1 -0
  5. package/build/WorkflowEvents.mjs +11 -0
  6. package/build/WorkflowEvents.mjs.map +1 -0
  7. package/build/WorkflowModule.d.mts +17 -0
  8. package/build/WorkflowModule.d.mts.map +1 -0
  9. package/build/WorkflowModule.mjs +446 -0
  10. package/build/WorkflowModule.mjs.map +1 -0
  11. package/build/WorkflowModuleConfig.d.mts +39 -0
  12. package/build/WorkflowModuleConfig.d.mts.map +1 -0
  13. package/build/WorkflowModuleConfig.mjs +19 -0
  14. package/build/WorkflowModuleConfig.mjs.map +1 -0
  15. package/build/_virtual/_@oxc-project_runtime@0.99.0/helpers/decorate.mjs +14 -0
  16. package/build/_virtual/_@oxc-project_runtime@0.99.0/helpers/decorateMetadata.mjs +11 -0
  17. package/build/_virtual/_@oxc-project_runtime@0.99.0/helpers/decorateParam.mjs +9 -0
  18. package/build/_virtual/rolldown_runtime.mjs +41 -0
  19. package/build/actions/ActionRegistry.d.mts +64 -0
  20. package/build/actions/ActionRegistry.d.mts.map +1 -0
  21. package/build/actions/ActionRegistry.mjs +304 -0
  22. package/build/actions/ActionRegistry.mjs.map +1 -0
  23. package/build/api/WorkflowApi.d.mts +99 -0
  24. package/build/api/WorkflowApi.d.mts.map +1 -0
  25. package/build/api/WorkflowApi.mjs +228 -0
  26. package/build/api/WorkflowApi.mjs.map +1 -0
  27. package/build/engine/AttributePlanner.d.mts +12 -0
  28. package/build/engine/AttributePlanner.d.mts.map +1 -0
  29. package/build/engine/AttributePlanner.mjs +58 -0
  30. package/build/engine/AttributePlanner.mjs.map +1 -0
  31. package/build/engine/GuardEvaluator.d.mts +16 -0
  32. package/build/engine/GuardEvaluator.d.mts.map +1 -0
  33. package/build/engine/GuardEvaluator.mjs +38 -0
  34. package/build/engine/GuardEvaluator.mjs.map +1 -0
  35. package/build/index.d.mts +46 -0
  36. package/build/index.mjs +53 -0
  37. package/build/index.mjs.map +1 -0
  38. package/build/model/TemplateValidation.d.mts +8 -0
  39. package/build/model/TemplateValidation.d.mts.map +1 -0
  40. package/build/model/TemplateValidation.mjs +278 -0
  41. package/build/model/TemplateValidation.mjs.map +1 -0
  42. package/build/model/types.d.mts +120 -0
  43. package/build/model/types.d.mts.map +1 -0
  44. package/build/model/types.mjs +11 -0
  45. package/build/model/types.mjs.map +1 -0
  46. package/build/protocol/WorkflowMessageTypes.d.mts +19 -0
  47. package/build/protocol/WorkflowMessageTypes.d.mts.map +1 -0
  48. package/build/protocol/WorkflowMessageTypes.mjs +20 -0
  49. package/build/protocol/WorkflowMessageTypes.mjs.map +1 -0
  50. package/build/protocol/handlers/AdvanceHandler.d.mts +16 -0
  51. package/build/protocol/handlers/AdvanceHandler.d.mts.map +1 -0
  52. package/build/protocol/handlers/AdvanceHandler.mjs +148 -0
  53. package/build/protocol/handlers/AdvanceHandler.mjs.map +1 -0
  54. package/build/protocol/handlers/CancelHandler.d.mts +16 -0
  55. package/build/protocol/handlers/CancelHandler.d.mts.map +1 -0
  56. package/build/protocol/handlers/CancelHandler.mjs +103 -0
  57. package/build/protocol/handlers/CancelHandler.mjs.map +1 -0
  58. package/build/protocol/handlers/CompleteHandler.d.mts +16 -0
  59. package/build/protocol/handlers/CompleteHandler.d.mts.map +1 -0
  60. package/build/protocol/handlers/CompleteHandler.mjs +103 -0
  61. package/build/protocol/handlers/CompleteHandler.mjs.map +1 -0
  62. package/build/protocol/handlers/DiscoverHandler.d.mts +15 -0
  63. package/build/protocol/handlers/DiscoverHandler.d.mts.map +1 -0
  64. package/build/protocol/handlers/DiscoverHandler.mjs +73 -0
  65. package/build/protocol/handlers/DiscoverHandler.mjs.map +1 -0
  66. package/build/protocol/handlers/FetchTemplateHandler.d.mts +16 -0
  67. package/build/protocol/handlers/FetchTemplateHandler.d.mts.map +1 -0
  68. package/build/protocol/handlers/FetchTemplateHandler.mjs +64 -0
  69. package/build/protocol/handlers/FetchTemplateHandler.mjs.map +1 -0
  70. package/build/protocol/handlers/PauseHandler.d.mts +16 -0
  71. package/build/protocol/handlers/PauseHandler.d.mts.map +1 -0
  72. package/build/protocol/handlers/PauseHandler.mjs +103 -0
  73. package/build/protocol/handlers/PauseHandler.mjs.map +1 -0
  74. package/build/protocol/handlers/ProblemReportHandler.d.mts +11 -0
  75. package/build/protocol/handlers/ProblemReportHandler.d.mts.map +1 -0
  76. package/build/protocol/handlers/ProblemReportHandler.mjs +26 -0
  77. package/build/protocol/handlers/ProblemReportHandler.mjs.map +1 -0
  78. package/build/protocol/handlers/PublishTemplateHandler.d.mts +15 -0
  79. package/build/protocol/handlers/PublishTemplateHandler.d.mts.map +1 -0
  80. package/build/protocol/handlers/PublishTemplateHandler.mjs +47 -0
  81. package/build/protocol/handlers/PublishTemplateHandler.mjs.map +1 -0
  82. package/build/protocol/handlers/ResumeHandler.d.mts +16 -0
  83. package/build/protocol/handlers/ResumeHandler.d.mts.map +1 -0
  84. package/build/protocol/handlers/ResumeHandler.mjs +103 -0
  85. package/build/protocol/handlers/ResumeHandler.mjs.map +1 -0
  86. package/build/protocol/handlers/StartHandler.d.mts +16 -0
  87. package/build/protocol/handlers/StartHandler.d.mts.map +1 -0
  88. package/build/protocol/handlers/StartHandler.mjs +238 -0
  89. package/build/protocol/handlers/StartHandler.mjs.map +1 -0
  90. package/build/protocol/handlers/StatusHandler.d.mts +16 -0
  91. package/build/protocol/handlers/StatusHandler.d.mts.map +1 -0
  92. package/build/protocol/handlers/StatusHandler.mjs +169 -0
  93. package/build/protocol/handlers/StatusHandler.mjs.map +1 -0
  94. package/build/protocol/handlers/TemplateHandler.d.mts +14 -0
  95. package/build/protocol/handlers/TemplateHandler.d.mts.map +1 -0
  96. package/build/protocol/handlers/TemplateHandler.mjs +66 -0
  97. package/build/protocol/handlers/TemplateHandler.mjs.map +1 -0
  98. package/build/protocol/messages/AdvanceMessage.d.mts +22 -0
  99. package/build/protocol/messages/AdvanceMessage.d.mts.map +1 -0
  100. package/build/protocol/messages/AdvanceMessage.mjs +25 -0
  101. package/build/protocol/messages/AdvanceMessage.mjs.map +1 -0
  102. package/build/protocol/messages/CancelMessage.d.mts +20 -0
  103. package/build/protocol/messages/CancelMessage.d.mts.map +1 -0
  104. package/build/protocol/messages/CancelMessage.mjs +25 -0
  105. package/build/protocol/messages/CancelMessage.mjs.map +1 -0
  106. package/build/protocol/messages/CompleteMessage.d.mts +20 -0
  107. package/build/protocol/messages/CompleteMessage.d.mts.map +1 -0
  108. package/build/protocol/messages/CompleteMessage.mjs +25 -0
  109. package/build/protocol/messages/CompleteMessage.mjs.map +1 -0
  110. package/build/protocol/messages/DiscoverMessage.d.mts +29 -0
  111. package/build/protocol/messages/DiscoverMessage.d.mts.map +1 -0
  112. package/build/protocol/messages/DiscoverMessage.mjs +25 -0
  113. package/build/protocol/messages/DiscoverMessage.mjs.map +1 -0
  114. package/build/protocol/messages/FetchTemplateMessage.d.mts +21 -0
  115. package/build/protocol/messages/FetchTemplateMessage.d.mts.map +1 -0
  116. package/build/protocol/messages/FetchTemplateMessage.mjs +31 -0
  117. package/build/protocol/messages/FetchTemplateMessage.mjs.map +1 -0
  118. package/build/protocol/messages/PauseMessage.d.mts +20 -0
  119. package/build/protocol/messages/PauseMessage.d.mts.map +1 -0
  120. package/build/protocol/messages/PauseMessage.mjs +25 -0
  121. package/build/protocol/messages/PauseMessage.mjs.map +1 -0
  122. package/build/protocol/messages/ProblemReportMessage.d.mts +21 -0
  123. package/build/protocol/messages/ProblemReportMessage.d.mts.map +1 -0
  124. package/build/protocol/messages/ProblemReportMessage.mjs +25 -0
  125. package/build/protocol/messages/ProblemReportMessage.mjs.map +1 -0
  126. package/build/protocol/messages/PublishTemplateMessage.d.mts +23 -0
  127. package/build/protocol/messages/PublishTemplateMessage.d.mts.map +1 -0
  128. package/build/protocol/messages/PublishTemplateMessage.mjs +24 -0
  129. package/build/protocol/messages/PublishTemplateMessage.mjs.map +1 -0
  130. package/build/protocol/messages/ResumeMessage.d.mts +20 -0
  131. package/build/protocol/messages/ResumeMessage.d.mts.map +1 -0
  132. package/build/protocol/messages/ResumeMessage.mjs +25 -0
  133. package/build/protocol/messages/ResumeMessage.mjs.map +1 -0
  134. package/build/protocol/messages/StartMessage.d.mts +27 -0
  135. package/build/protocol/messages/StartMessage.d.mts.map +1 -0
  136. package/build/protocol/messages/StartMessage.mjs +25 -0
  137. package/build/protocol/messages/StartMessage.mjs.map +1 -0
  138. package/build/protocol/messages/StatusMessage.d.mts +35 -0
  139. package/build/protocol/messages/StatusMessage.d.mts.map +1 -0
  140. package/build/protocol/messages/StatusMessage.mjs +25 -0
  141. package/build/protocol/messages/StatusMessage.mjs.map +1 -0
  142. package/build/protocol/messages/StatusRequestMessage.d.mts +29 -0
  143. package/build/protocol/messages/StatusRequestMessage.d.mts.map +1 -0
  144. package/build/protocol/messages/StatusRequestMessage.mjs +25 -0
  145. package/build/protocol/messages/StatusRequestMessage.mjs.map +1 -0
  146. package/build/protocol/messages/TemplateMessage.d.mts +20 -0
  147. package/build/protocol/messages/TemplateMessage.d.mts.map +1 -0
  148. package/build/protocol/messages/TemplateMessage.mjs +25 -0
  149. package/build/protocol/messages/TemplateMessage.mjs.map +1 -0
  150. package/build/protocol/messages/WorkflowsMessage.d.mts +28 -0
  151. package/build/protocol/messages/WorkflowsMessage.d.mts.map +1 -0
  152. package/build/protocol/messages/WorkflowsMessage.mjs +25 -0
  153. package/build/protocol/messages/WorkflowsMessage.mjs.map +1 -0
  154. package/build/queue/CommandQueue.d.mts +22 -0
  155. package/build/queue/CommandQueue.d.mts.map +1 -0
  156. package/build/queue/CommandQueue.mjs +6 -0
  157. package/build/queue/CommandQueue.mjs.map +1 -0
  158. package/build/queue/PersistentCommandQueue.d.mts +56 -0
  159. package/build/queue/PersistentCommandQueue.d.mts.map +1 -0
  160. package/build/queue/PersistentCommandQueue.mjs +273 -0
  161. package/build/queue/PersistentCommandQueue.mjs.map +1 -0
  162. package/build/repository/WorkflowCommandRecord.d.mts +50 -0
  163. package/build/repository/WorkflowCommandRecord.d.mts.map +1 -0
  164. package/build/repository/WorkflowCommandRecord.mjs +48 -0
  165. package/build/repository/WorkflowCommandRecord.mjs.map +1 -0
  166. package/build/repository/WorkflowCommandRepository.d.mts +59 -0
  167. package/build/repository/WorkflowCommandRepository.d.mts.map +1 -0
  168. package/build/repository/WorkflowCommandRepository.mjs +136 -0
  169. package/build/repository/WorkflowCommandRepository.mjs.map +1 -0
  170. package/build/repository/WorkflowInstanceRecord.d.mts +65 -0
  171. package/build/repository/WorkflowInstanceRecord.d.mts.map +1 -0
  172. package/build/repository/WorkflowInstanceRecord.mjs +44 -0
  173. package/build/repository/WorkflowInstanceRecord.mjs.map +1 -0
  174. package/build/repository/WorkflowInstanceRepository.d.mts +15 -0
  175. package/build/repository/WorkflowInstanceRepository.d.mts.map +1 -0
  176. package/build/repository/WorkflowInstanceRepository.mjs +48 -0
  177. package/build/repository/WorkflowInstanceRepository.mjs.map +1 -0
  178. package/build/repository/WorkflowTemplateRecord.d.mts +27 -0
  179. package/build/repository/WorkflowTemplateRecord.d.mts.map +1 -0
  180. package/build/repository/WorkflowTemplateRecord.mjs +29 -0
  181. package/build/repository/WorkflowTemplateRecord.mjs.map +1 -0
  182. package/build/repository/WorkflowTemplateRepository.d.mts +11 -0
  183. package/build/repository/WorkflowTemplateRepository.d.mts.map +1 -0
  184. package/build/repository/WorkflowTemplateRepository.mjs +43 -0
  185. package/build/repository/WorkflowTemplateRepository.mjs.map +1 -0
  186. package/build/services/WorkflowService.d.mts +107 -0
  187. package/build/services/WorkflowService.d.mts.map +1 -0
  188. package/build/services/WorkflowService.mjs +582 -0
  189. package/build/services/WorkflowService.mjs.map +1 -0
  190. package/build/ui/UiFilter.mjs +85 -0
  191. package/build/ui/UiFilter.mjs.map +1 -0
  192. package/package.json +27 -33
  193. package/build/WorkflowEvents.d.ts +0 -35
  194. package/build/WorkflowEvents.js +0 -10
  195. package/build/WorkflowEvents.js.map +0 -1
  196. package/build/WorkflowModule.d.ts +0 -13
  197. package/build/WorkflowModule.js +0 -647
  198. package/build/WorkflowModule.js.map +0 -1
  199. package/build/WorkflowModuleConfig.d.ts +0 -35
  200. package/build/WorkflowModuleConfig.js +0 -19
  201. package/build/WorkflowModuleConfig.js.map +0 -1
  202. package/build/actions/ActionRegistry.d.ts +0 -59
  203. package/build/actions/ActionRegistry.js +0 -367
  204. package/build/actions/ActionRegistry.js.map +0 -1
  205. package/build/api/WorkflowApi.d.ts +0 -94
  206. package/build/api/WorkflowApi.js +0 -241
  207. package/build/api/WorkflowApi.js.map +0 -1
  208. package/build/engine/AttributePlanner.d.ts +0 -7
  209. package/build/engine/AttributePlanner.js +0 -81
  210. package/build/engine/AttributePlanner.js.map +0 -1
  211. package/build/engine/GuardEvaluator.d.ts +0 -11
  212. package/build/engine/GuardEvaluator.js +0 -40
  213. package/build/engine/GuardEvaluator.js.map +0 -1
  214. package/build/index.d.ts +0 -45
  215. package/build/index.js +0 -69
  216. package/build/index.js.map +0 -1
  217. package/build/model/TemplateValidation.d.ts +0 -3
  218. package/build/model/TemplateValidation.js +0 -231
  219. package/build/model/TemplateValidation.js.map +0 -1
  220. package/build/model/types.d.ts +0 -116
  221. package/build/model/types.js +0 -15
  222. package/build/model/types.js.map +0 -1
  223. package/build/protocol/WorkflowMessageTypes.d.ts +0 -15
  224. package/build/protocol/WorkflowMessageTypes.js +0 -22
  225. package/build/protocol/WorkflowMessageTypes.js.map +0 -1
  226. package/build/protocol/handlers/AdvanceHandler.d.ts +0 -12
  227. package/build/protocol/handlers/AdvanceHandler.js +0 -149
  228. package/build/protocol/handlers/AdvanceHandler.js.map +0 -1
  229. package/build/protocol/handlers/CancelHandler.d.ts +0 -12
  230. package/build/protocol/handlers/CancelHandler.js +0 -124
  231. package/build/protocol/handlers/CancelHandler.js.map +0 -1
  232. package/build/protocol/handlers/CompleteHandler.d.ts +0 -12
  233. package/build/protocol/handlers/CompleteHandler.js +0 -125
  234. package/build/protocol/handlers/CompleteHandler.js.map +0 -1
  235. package/build/protocol/handlers/DiscoverHandler.d.ts +0 -11
  236. package/build/protocol/handlers/DiscoverHandler.js +0 -71
  237. package/build/protocol/handlers/DiscoverHandler.js.map +0 -1
  238. package/build/protocol/handlers/FetchTemplateHandler.d.ts +0 -12
  239. package/build/protocol/handlers/FetchTemplateHandler.js +0 -71
  240. package/build/protocol/handlers/FetchTemplateHandler.js.map +0 -1
  241. package/build/protocol/handlers/PauseHandler.d.ts +0 -12
  242. package/build/protocol/handlers/PauseHandler.js +0 -124
  243. package/build/protocol/handlers/PauseHandler.js.map +0 -1
  244. package/build/protocol/handlers/ProblemReportHandler.d.ts +0 -6
  245. package/build/protocol/handlers/ProblemReportHandler.js +0 -28
  246. package/build/protocol/handlers/ProblemReportHandler.js.map +0 -1
  247. package/build/protocol/handlers/PublishTemplateHandler.d.ts +0 -11
  248. package/build/protocol/handlers/PublishTemplateHandler.js +0 -53
  249. package/build/protocol/handlers/PublishTemplateHandler.js.map +0 -1
  250. package/build/protocol/handlers/ResumeHandler.d.ts +0 -12
  251. package/build/protocol/handlers/ResumeHandler.js +0 -124
  252. package/build/protocol/handlers/ResumeHandler.js.map +0 -1
  253. package/build/protocol/handlers/StartHandler.d.ts +0 -12
  254. package/build/protocol/handlers/StartHandler.js +0 -274
  255. package/build/protocol/handlers/StartHandler.js.map +0 -1
  256. package/build/protocol/handlers/StatusHandler.d.ts +0 -12
  257. package/build/protocol/handlers/StatusHandler.js +0 -202
  258. package/build/protocol/handlers/StatusHandler.js.map +0 -1
  259. package/build/protocol/handlers/TemplateHandler.d.ts +0 -9
  260. package/build/protocol/handlers/TemplateHandler.js +0 -83
  261. package/build/protocol/handlers/TemplateHandler.js.map +0 -1
  262. package/build/protocol/messages/AdvanceMessage.d.ts +0 -16
  263. package/build/protocol/messages/AdvanceMessage.js +0 -33
  264. package/build/protocol/messages/AdvanceMessage.js.map +0 -1
  265. package/build/protocol/messages/CancelMessage.d.ts +0 -14
  266. package/build/protocol/messages/CancelMessage.js +0 -33
  267. package/build/protocol/messages/CancelMessage.js.map +0 -1
  268. package/build/protocol/messages/CompleteMessage.d.ts +0 -14
  269. package/build/protocol/messages/CompleteMessage.js +0 -33
  270. package/build/protocol/messages/CompleteMessage.js.map +0 -1
  271. package/build/protocol/messages/DiscoverMessage.d.ts +0 -23
  272. package/build/protocol/messages/DiscoverMessage.js +0 -33
  273. package/build/protocol/messages/DiscoverMessage.js.map +0 -1
  274. package/build/protocol/messages/FetchTemplateMessage.d.ts +0 -15
  275. package/build/protocol/messages/FetchTemplateMessage.js +0 -33
  276. package/build/protocol/messages/FetchTemplateMessage.js.map +0 -1
  277. package/build/protocol/messages/PauseMessage.d.ts +0 -14
  278. package/build/protocol/messages/PauseMessage.js +0 -33
  279. package/build/protocol/messages/PauseMessage.js.map +0 -1
  280. package/build/protocol/messages/ProblemReportMessage.d.ts +0 -15
  281. package/build/protocol/messages/ProblemReportMessage.js +0 -33
  282. package/build/protocol/messages/ProblemReportMessage.js.map +0 -1
  283. package/build/protocol/messages/PublishTemplateMessage.d.ts +0 -17
  284. package/build/protocol/messages/PublishTemplateMessage.js +0 -31
  285. package/build/protocol/messages/PublishTemplateMessage.js.map +0 -1
  286. package/build/protocol/messages/ResumeMessage.d.ts +0 -14
  287. package/build/protocol/messages/ResumeMessage.js +0 -33
  288. package/build/protocol/messages/ResumeMessage.js.map +0 -1
  289. package/build/protocol/messages/StartMessage.d.ts +0 -21
  290. package/build/protocol/messages/StartMessage.js +0 -33
  291. package/build/protocol/messages/StartMessage.js.map +0 -1
  292. package/build/protocol/messages/StatusMessage.d.ts +0 -29
  293. package/build/protocol/messages/StatusMessage.js +0 -33
  294. package/build/protocol/messages/StatusMessage.js.map +0 -1
  295. package/build/protocol/messages/StatusRequestMessage.d.ts +0 -23
  296. package/build/protocol/messages/StatusRequestMessage.js +0 -33
  297. package/build/protocol/messages/StatusRequestMessage.js.map +0 -1
  298. package/build/protocol/messages/TemplateMessage.d.ts +0 -14
  299. package/build/protocol/messages/TemplateMessage.js +0 -33
  300. package/build/protocol/messages/TemplateMessage.js.map +0 -1
  301. package/build/protocol/messages/WorkflowsMessage.d.ts +0 -22
  302. package/build/protocol/messages/WorkflowsMessage.js +0 -33
  303. package/build/protocol/messages/WorkflowsMessage.js.map +0 -1
  304. package/build/queue/CommandQueue.d.ts +0 -18
  305. package/build/queue/CommandQueue.js +0 -8
  306. package/build/queue/CommandQueue.js.map +0 -1
  307. package/build/queue/PersistentCommandQueue.d.ts +0 -51
  308. package/build/queue/PersistentCommandQueue.js +0 -348
  309. package/build/queue/PersistentCommandQueue.js.map +0 -1
  310. package/build/repository/WorkflowCommandRecord.d.ts +0 -46
  311. package/build/repository/WorkflowCommandRecord.js +0 -52
  312. package/build/repository/WorkflowCommandRecord.js.map +0 -1
  313. package/build/repository/WorkflowCommandRepository.d.ts +0 -55
  314. package/build/repository/WorkflowCommandRepository.js +0 -149
  315. package/build/repository/WorkflowCommandRepository.js.map +0 -1
  316. package/build/repository/WorkflowInstanceRecord.d.ts +0 -61
  317. package/build/repository/WorkflowInstanceRecord.js +0 -43
  318. package/build/repository/WorkflowInstanceRecord.js.map +0 -1
  319. package/build/repository/WorkflowInstanceRepository.d.ts +0 -10
  320. package/build/repository/WorkflowInstanceRepository.js +0 -52
  321. package/build/repository/WorkflowInstanceRepository.js.map +0 -1
  322. package/build/repository/WorkflowTemplateRecord.d.ts +0 -23
  323. package/build/repository/WorkflowTemplateRecord.js +0 -28
  324. package/build/repository/WorkflowTemplateRecord.js.map +0 -1
  325. package/build/repository/WorkflowTemplateRepository.d.ts +0 -6
  326. package/build/repository/WorkflowTemplateRepository.js +0 -56
  327. package/build/repository/WorkflowTemplateRepository.js.map +0 -1
  328. package/build/services/WorkflowService.d.ts +0 -102
  329. package/build/services/WorkflowService.js +0 -704
  330. package/build/services/WorkflowService.js.map +0 -1
  331. package/build/ui/UiFilter.d.ts +0 -5
  332. package/build/ui/UiFilter.js +0 -104
  333. package/build/ui/UiFilter.js.map +0 -1
  334. package/build/ui/UiTypes.d.ts +0 -28
  335. package/build/ui/UiTypes.js +0 -3
  336. package/build/ui/UiTypes.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowService.mjs","names":["allKeys: string[]","WorkflowService","templateRepo: WorkflowTemplateRepository","instanceRepo: WorkflowInstanceRepository","config: WorkflowModuleConfig","agentConfig: AgentConfig","eventEmitter?: EventEmitter","multiplicityKeyValue: string | undefined","participants: Participants","inst: WorkflowInstanceRecord","t","artifactsDelta: Record<string, unknown>","messageId: string | undefined","result: {\n artifacts?: Record<string, unknown>\n contextMerge?: Record<string, unknown>\n messageId?: string\n }","derivedProfile: string | undefined","myDid: string | undefined","connection: { id?: string; myDid?: string; theirDid?: string } | undefined"],"sources":["../../src/services/WorkflowService.ts"],"sourcesContent":["import type { Participants, WorkflowInstanceData, WorkflowTemplate, UiItem } from '../model/types'\n\nimport { AgentConfig, AgentContext, EventEmitter, Hasher, TypedArrayEncoder, injectable } from '@credo-ts/core'\n\nimport { DidCommConnectionService, DidCommMessageSender, DidCommOutboundMessageContext, ReturnRouteTypes } from '@credo-ts/didcomm'\n\nimport { WorkflowEventTypes } from '../WorkflowEvents'\nimport { WorkflowModuleConfig } from '../WorkflowModuleConfig'\nimport {\n ActionRegistry,\n IssueCredentialV2Action,\n IssueCredentialMessageV2Action,\n LocalStateSetAction,\n PresentProofV2Action,\n ProposeCredentialV2Action,\n RequestCredentialV2Action,\n} from '../actions/ActionRegistry'\nimport { GuardEvaluator } from '../engine/GuardEvaluator'\nimport { validateTemplateJson, validateTemplateRefs } from '../model/TemplateValidation'\nimport { ensureArray, findSectionForState, transitionsFromState } from '../model/types'\nimport { CompleteMessage } from '../protocol/messages/CompleteMessage'\nimport { WorkflowInstanceRecord } from '../repository/WorkflowInstanceRecord'\nimport { WorkflowInstanceRepository } from '../repository/WorkflowInstanceRepository'\nimport { WorkflowTemplateRecord } from '../repository/WorkflowTemplateRecord'\nimport { WorkflowTemplateRepository } from '../repository/WorkflowTemplateRepository'\n\nconst stableStringify = (obj: unknown): string => {\n const allKeys: string[] = []\n JSON.stringify(obj, (k, v) => {\n allKeys.push(k)\n return v\n })\n allKeys.sort()\n return JSON.stringify(obj, allKeys)\n}\n\nconst sha256 = (input: string): string => {\n const hash = Hasher.hash(TypedArrayEncoder.fromString(input), 'sha-256')\n return TypedArrayEncoder.toHex(hash)\n}\n\n@injectable()\nexport class WorkflowService {\n private readonly actions: ActionRegistry\n\n public constructor(\n private readonly templateRepo: WorkflowTemplateRepository,\n private readonly instanceRepo: WorkflowInstanceRepository,\n private readonly config: WorkflowModuleConfig,\n private readonly agentConfig: AgentConfig,\n private readonly eventEmitter?: EventEmitter\n ) {\n this.actions = new ActionRegistry()\n this.actions.register(new LocalStateSetAction())\n // Register DIDComm action handlers used by workflows\n // Credential issuance flow handlers\n this.actions.register(new ProposeCredentialV2Action()) // Holder proposes credential\n this.actions.register(new IssueCredentialV2Action()) // Issuer sends offer\n this.actions.register(new RequestCredentialV2Action()) // Holder accepts offer\n this.actions.register(new IssueCredentialMessageV2Action()) // Issuer issues credential\n // Proof presentation handler\n this.actions.register(new PresentProofV2Action())\n }\n\n // Allow external modules (e.g., payments) to register additional action handlers\n public registerActions(actions: Array<{ typeUri: string; execute: (...args: unknown[]) => Promise<unknown> }>) {\n for (const a of actions) {\n // ActionRegistry expects objects with shape { typeUri, execute }\n // We don't import the exact type here to avoid cross-package coupling\n this.actions.register(a as unknown as never)\n }\n }\n\n public async publishTemplate(\n agentContext: AgentContext,\n template: WorkflowTemplate\n ): Promise<WorkflowTemplateRecord> {\n // JSON schema validation + structural checks\n validateTemplateJson(template)\n validateTemplateRefs(template)\n const hash = sha256(stableStringify(template))\n const existing = await this.templateRepo.findByTemplateIdAndVersion(\n agentContext,\n template.template_id,\n template.version\n )\n if (existing) {\n existing.template = template\n existing.hash = hash\n await this.templateRepo.update(agentContext, existing)\n return existing\n }\n const record = new WorkflowTemplateRecord({ template, hash })\n await this.templateRepo.save(agentContext, record)\n return record\n }\n\n public async start(\n agentContext: AgentContext,\n opts: {\n template_id: string\n template_version?: string\n instance_id?: string\n connection_id?: string\n participants?: Participants\n context?: Record<string, unknown>\n }\n ): Promise<WorkflowInstanceRecord> {\n // Idempotency by instance_id: if an instance with the same instance_id already exists, return it\n if (opts.instance_id) {\n try {\n const existingByInstance = await this.instanceRepo.getByInstanceId(agentContext, opts.instance_id)\n if (existingByInstance) return existingByInstance\n } catch {\n /* not found */\n }\n }\n\n const tplRec = await this.templateRepo.findByTemplateIdAndVersion(\n agentContext,\n opts.template_id,\n opts.template_version\n )\n if (!tplRec)\n throw this.problem(\n 'invalid_template',\n `template not found: ${opts.template_id}@${opts.template_version || 'latest'}`\n )\n const tpl = tplRec.template\n const startState = tpl.states.find((s) => s.type === 'start')?.name || tpl.states[0]?.name\n if (!startState) throw this.problem('invalid_template', 'no start state')\n\n const policy = tpl.instance_policy\n const connectionId = opts.connection_id\n if (policy.mode === 'singleton_per_connection') {\n const existing = ensureArray(\n await this.instanceRepo.findByTemplateAndConnection(agentContext, tpl.template_id, connectionId)\n ).shift()\n if (existing) {\n if (this.config.autoReturnExistingOnSingleton) return existing\n throw this.problem('already_exists', 'instance already exists for template/connection')\n }\n }\n\n let multiplicityKeyValue: string | undefined\n if (policy.mode === 'multi_per_connection' && policy.multiplicity_key) {\n multiplicityKeyValue = this.evalMultiplicity(policy.multiplicity_key, opts.context || {})\n const dup = ensureArray(\n await this.instanceRepo.findByTemplateConnAndMultiplicity(\n agentContext,\n tpl.template_id,\n connectionId,\n multiplicityKeyValue\n )\n ).shift()\n if (dup) return dup\n }\n\n // Derive participants from connection when not provided\n let participants: Participants = (opts.participants as Participants) || ({} as Participants)\n try {\n if (connectionId) {\n const connSvc = agentContext.dependencyManager.resolve(DidCommConnectionService)\n const conn = await connSvc.getById(agentContext, connectionId)\n const theirDid = (conn as any)?.theirDid as string | undefined\n const myDid = ((conn as any)?.did as string | undefined) || ((conn as any)?.myDid as string | undefined)\n if (theirDid) {\n const holder = (participants as any).holder || {}\n if (!holder.did) holder.did = theirDid\n ;(participants as any).holder = holder\n }\n if (myDid) {\n const issuer = (participants as any).issuer || {}\n if (!issuer.did) issuer.did = myDid\n ;(participants as any).issuer = issuer\n }\n }\n } catch {\n // best effort only\n }\n\n const instanceId = opts.instance_id || this.uuid()\n const section = findSectionForState(tpl, startState)\n const rec = new WorkflowInstanceRecord({\n instanceId,\n templateId: tpl.template_id,\n templateVersion: tpl.version,\n connectionId,\n participants,\n state: startState,\n section,\n context: { ...(opts.context || {}) },\n artifacts: {},\n status: 'active',\n history: [],\n multiplicityKeyValue,\n idempotencyKeys: [],\n })\n await this.instanceRepo.save(agentContext, rec)\n // Emit state changed event for initial creation\n try {\n this.eventEmitter?.emit(agentContext, {\n type: WorkflowEventTypes.WorkflowInstanceStateChanged,\n payload: {\n instanceRecord: rec,\n previousState: null,\n newState: rec.state,\n event: 'start',\n actionKey: undefined,\n msgId: undefined,\n },\n })\n } catch (_e) {\n void 0\n }\n return rec\n }\n\n public async advance(\n agentContext: AgentContext,\n opts: {\n instance_id: string\n event: string\n idempotency_key?: string\n input?: Record<string, unknown>\n },\n instanceRecord?: WorkflowInstanceRecord\n ): Promise<WorkflowInstanceRecord> {\n let inst: WorkflowInstanceRecord\n if (instanceRecord) {\n inst = instanceRecord\n } else {\n try {\n inst = await this.instanceRepo.getById(agentContext, opts.instance_id)\n } catch {\n const found = await this.instanceRepo.getByInstanceId(agentContext, opts.instance_id)\n if (!found) throw this.problem('invalid_event', 'instance not found')\n inst = found\n }\n }\n const tplRec = await this.templateRepo.findByTemplateIdAndVersion(\n agentContext,\n inst.templateId,\n inst.templateVersion\n )\n if (!tplRec) throw this.problem('invalid_template', 'template not found for instance')\n const tpl = tplRec.template\n\n // lifecycle status gating\n if (inst.status === 'paused') throw this.problem('forbidden', 'instance is paused')\n if (inst.status === 'canceled') throw this.problem('forbidden', 'instance is canceled')\n if (inst.status === 'completed') throw this.problem('invalid_event', 'instance already completed')\n\n // idempotency\n if (opts.idempotency_key && inst.idempotencyKeys?.includes(opts.idempotency_key)) {\n const prior = inst.idempotency?.find?.((i) => i.key === opts.idempotency_key)\n if (prior && prior.event !== opts.event) throw this.problem('idempotency_conflict', 'same key, different event')\n return inst\n }\n\n const candidates = transitionsFromState(tpl, inst.state).filter((t) => t.on === opts.event)\n if (!candidates.length)\n throw this.problem('invalid_event', `no transition for event ${opts.event} from ${inst.state}`)\n const env = GuardEvaluator.envFromInstance(this.toInstanceData(inst))\n const enabled = candidates.filter((t) => GuardEvaluator.evalGuard(t.guard, env))\n if (!enabled.length) throw this.problem('guard_failed', 'guard evaluated false')\n const t = enabled[0]\n\n let artifactsDelta: Record<string, unknown> = {}\n let messageId: string | undefined\n if (t.action) {\n const def = tpl.actions.find((a) => a.key === t.action)\n if (!def) throw this.problem('invalid_template', `action not defined: ${t.action}`)\n const handler = this.actions.get(def.typeURI)\n if (!handler) throw this.problem('action_error', `no handler for type ${def.typeURI}`)\n const exec = async () =>\n handler.execute({\n agentContext,\n template: tpl,\n instance: this.toInstanceData(inst),\n action: def,\n input: opts.input,\n })\n const timeoutMs = this.config.actionTimeoutMs ?? 15000\n const race = Promise.race([\n exec(),\n new Promise<never>((_, rej) => setTimeout(() => rej(new Error('action timeout')), timeoutMs)),\n ])\n let result: {\n artifacts?: Record<string, unknown>\n contextMerge?: Record<string, unknown>\n messageId?: string\n }\n try {\n result = (await race) as typeof result\n } catch (e) {\n throw Object.assign(new Error((e as Error).message || 'action timeout'), { code: 'action_error' })\n }\n artifactsDelta = result?.artifacts || {}\n // local state:set may be applied directly by handler, but ensure we persist\n if (result?.contextMerge) inst.context = result.contextMerge\n if (result?.messageId) messageId = result.messageId\n }\n\n // Concurrency check: re-read and ensure state didn't change\n const fromState = inst.state\n try {\n const fresh = await this.instanceRepo.getById(agentContext, inst.id)\n if (fresh.state !== fromState) throw this.problem('state_conflict', 'state changed concurrently')\n } catch (_e) {\n // ignore if repository throws\n void 0\n }\n\n // persist atomically (optimistic)\n const prevState = inst.state\n inst.history.push({\n ts: new Date().toISOString(),\n event: opts.event,\n from: inst.state,\n to: t.to,\n actionKey: t.action,\n msg_id: messageId,\n })\n inst.state = t.to\n inst.section = findSectionForState(tpl, t.to)\n inst.artifacts = { ...inst.artifacts, ...artifactsDelta }\n if (opts.idempotency_key) {\n inst.idempotencyKeys = [...(inst.idempotencyKeys || []), opts.idempotency_key]\n inst.idempotency = [\n ...(inst.idempotency || []),\n { key: opts.idempotency_key, event: opts.event, to: t.to, actionKey: t.action },\n ]\n // Trim idempotency history to configured limit\n const limit = Math.max(1, this.config.idempotencyHistoryLimit ?? 100)\n if ((inst.idempotencyKeys?.length || 0) > limit) {\n inst.idempotencyKeys = inst.idempotencyKeys.slice(-limit)\n }\n if ((inst.idempotency?.length || 0) > limit) {\n inst.idempotency = inst.idempotency.slice(-limit)\n }\n }\n let reachedFinal = false\n try {\n const toDef = tpl.states.find((s) => s.name === t.to)\n if (toDef?.type === 'final') {\n inst.status = 'completed'\n reachedFinal = true\n }\n } catch (_e) {\n void 0\n }\n await this.instanceRepo.update(agentContext, inst)\n\n // Emit state-changed event\n try {\n this.eventEmitter?.emit(agentContext, {\n type: WorkflowEventTypes.WorkflowInstanceStateChanged,\n payload: {\n instanceRecord: inst,\n previousState: prevState,\n newState: inst.state,\n event: opts.event,\n actionKey: t.action,\n msgId: messageId,\n },\n })\n } catch (_e) {\n void 0\n }\n\n // Emit status-changed & completed, and send Complete message if final\n if (reachedFinal) {\n try {\n this.eventEmitter?.emit(agentContext, {\n type: WorkflowEventTypes.WorkflowInstanceStatusChanged,\n payload: { instanceRecord: inst, previousStatus: 'active', newStatus: 'completed' },\n })\n } catch (_e) {\n void 0\n }\n try {\n this.eventEmitter?.emit(agentContext, {\n type: WorkflowEventTypes.WorkflowInstanceCompleted,\n payload: { instanceRecord: inst, state: inst.state, section: inst.section },\n })\n } catch (_e) {\n void 0\n }\n await this.sendCompleteMessage(agentContext, inst)\n }\n return inst\n }\n\n public async status(\n agentContext: AgentContext,\n opts: {\n instance_id: string\n include_actions?: boolean\n include_ui?: boolean\n ui_profile?: string\n viewer?: { role?: string; connection_id?: string; did?: string; participantKey?: string }\n capabilities?: string[]\n },\n instanceRecord?: WorkflowInstanceRecord\n ): Promise<{\n instance_id: string\n template_id: string\n template_version: string\n connection_id?: string\n connection?: { id?: string; myDid?: string; theirDid?: string }\n participants?: Participants\n context?: Record<string, unknown>\n status?: string\n createdAt?: Date\n updatedAt?: Date\n state: string\n section?: string\n allowed_events: string[]\n action_menu: Array<{ label?: string; event: string }>\n artifacts: Record<string, unknown>\n ui?: UiItem[]\n ui_profile?: string\n assets?: Record<string, { mediaType: string; uri?: string; attachmentId?: string }>\n }> {\n let inst: WorkflowInstanceRecord\n if (instanceRecord) {\n inst = instanceRecord\n } else {\n try {\n inst = await this.instanceRepo.getById(agentContext, opts.instance_id)\n } catch {\n const found = await this.instanceRepo.getByInstanceId(agentContext, opts.instance_id)\n if (!found) throw this.problem('invalid_event', 'instance not found')\n inst = found\n }\n }\n const tplRec = await this.templateRepo.findByTemplateIdAndVersion(\n agentContext,\n inst.templateId,\n inst.templateVersion\n )\n if (!tplRec) throw this.problem('invalid_template', 'template not found for instance')\n const tpl = tplRec.template\n const instData = this.toInstanceData(inst)\n const env = GuardEvaluator.envFromInstance(instData)\n const allowed = transitionsFromState(tpl, inst.state)\n .filter((t) => GuardEvaluator.evalGuard(t.guard, env))\n .map((t) => t.on)\n const includeActions = opts.include_actions ?? true\n const includeUi = opts.include_ui ?? true\n\n // Build full env with viewer info for UI filtering\n const uiEnv = {\n context: instData.context || {},\n participants: instData.participants || {},\n artifacts: instData.artifacts || {},\n viewer: opts.viewer,\n }\n\n // Select + filter UI items\n // Defer import to avoid cycle risk\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const Ui = require('../ui/UiFilter') as unknown as {\n selectUi: (h: unknown, s: string, p?: string) => unknown[]\n filterAndBindUi: (items: unknown[], env: unknown, viewer?: unknown, p?: string) => unknown[]\n collectAssets: (\n items: unknown[],\n assets?: Record<string, { mediaType: string; uri?: string; attachmentId?: string }>\n ) => Record<string, { mediaType: string; uri?: string; attachmentId?: string }> | undefined\n }\n // Derive viewer profile from instance participants per spec\n let derivedProfile: string | undefined = opts.ui_profile\n try {\n // 1) If viewer role/participantKey provided, honor it\n const viewerRole = opts.viewer?.role as string | undefined\n const viewerKey = opts.viewer?.participantKey as string | undefined\n const viewerDid = opts.viewer?.did as string | undefined\n const mapKeyToProfile = (k?: string): string | undefined => {\n if (!k) return undefined\n const key = k.toLowerCase()\n if (key === 'sender' || key === 'issuer') return 'sender'\n if (key === 'receiver' || key === 'holder') return 'receiver'\n return undefined\n }\n if (!derivedProfile) derivedProfile = mapKeyToProfile(viewerRole) || mapKeyToProfile(viewerKey)\n\n // 1b) If viewer DID provided, map to participant key by DID equality\n if (!derivedProfile && viewerDid && instData?.participants && typeof instData.participants === 'object') {\n for (const [pKey, pVal] of Object.entries(instData.participants as Record<string, any>)) {\n const did = (pVal as any)?.did as string | undefined\n if (did && did === viewerDid) {\n derivedProfile = mapKeyToProfile(pKey)\n if (derivedProfile) break\n }\n }\n }\n\n // 2) If still not set, try to match current tenant's DID against instance participants\n if (!derivedProfile) {\n // Obtain my DID for the instance's connection, if available\n let myDid: string | undefined\n if (instData?.connection_id) {\n try {\n const connSvc = agentContext.dependencyManager.resolve(DidCommConnectionService)\n const conn = await connSvc.getById(agentContext, instData.connection_id)\n myDid = ((conn as any)?.did as string | undefined) || ((conn as any)?.myDid as string | undefined)\n } catch {}\n }\n if (myDid && instData?.participants && typeof instData.participants === 'object') {\n for (const [pKey, pVal] of Object.entries(instData.participants as Record<string, any>)) {\n const did = (pVal as any)?.did as string | undefined\n if (did && did === myDid) {\n derivedProfile = mapKeyToProfile(pKey)\n if (derivedProfile) break\n }\n }\n }\n }\n } catch {}\n\n const selected = Ui.selectUi((tpl as unknown as { display_hints?: unknown })?.display_hints, inst.state, derivedProfile)\n const filtered = Ui.filterAndBindUi(selected, uiEnv, opts.viewer, derivedProfile) as UiItem[]\n const menu = includeActions\n ? filtered\n .filter((i) => i?.type === 'button' || i?.type === 'submit-button')\n .map((i) => ({ label: i?.label, event: i?.event as string }))\n : []\n const assets = Ui.collectAssets(filtered, (tpl as unknown as { display_hints?: { assets?: unknown } })?.display_hints?.assets as never)\n const ui = includeUi ? filtered : undefined\n let connection: { id?: string; myDid?: string; theirDid?: string } | undefined\n if (inst.connectionId) {\n try {\n const connSvc = agentContext.dependencyManager.resolve(DidCommConnectionService)\n const conn = await connSvc.getById(agentContext, inst.connectionId)\n connection = {\n id: (conn as any)?.id,\n myDid: ((conn as any)?.did as string | undefined) || ((conn as any)?.myDid as string | undefined),\n theirDid: (conn as any)?.theirDid,\n }\n } catch {\n // ignore if not found\n }\n }\n return {\n instance_id: inst.instanceId,\n template_id: inst.templateId,\n template_version: inst.templateVersion,\n connection_id: inst.connectionId,\n connection,\n participants: inst.participants,\n context: inst.context,\n status: inst.status,\n createdAt: inst.createdAt,\n updatedAt: (inst as any)?.updatedAt,\n state: inst.state,\n section: inst.section,\n allowed_events: allowed,\n action_menu: menu,\n artifacts: inst.artifacts,\n ...(includeUi ? { ui } : {}),\n ...(derivedProfile ? { ui_profile: derivedProfile } : {}),\n ...(assets ? { assets } : {}),\n }\n }\n\n public async pause(\n agentContext: AgentContext,\n opts: { instance_id: string; reason?: string },\n instanceRecord?: WorkflowInstanceRecord\n ): Promise<WorkflowInstanceRecord> {\n const inst = instanceRecord || (await this.getInstanceByIdOrTag(agentContext, opts.instance_id))\n const prev = inst.status\n inst.status = 'paused'\n await this.instanceRepo.update(agentContext, inst)\n try {\n this.eventEmitter?.emit(agentContext, {\n type: WorkflowEventTypes.WorkflowInstanceStatusChanged,\n payload: { instanceRecord: inst, previousStatus: prev, newStatus: inst.status, reason: opts.reason },\n })\n } catch (_e) {\n void 0\n }\n return inst\n }\n\n public async resume(\n agentContext: AgentContext,\n opts: { instance_id: string; reason?: string },\n instanceRecord?: WorkflowInstanceRecord\n ): Promise<WorkflowInstanceRecord> {\n const inst = instanceRecord || (await this.getInstanceByIdOrTag(agentContext, opts.instance_id))\n const prev = inst.status\n inst.status = 'active'\n await this.instanceRepo.update(agentContext, inst)\n try {\n this.eventEmitter?.emit(agentContext, {\n type: WorkflowEventTypes.WorkflowInstanceStatusChanged,\n payload: { instanceRecord: inst, previousStatus: prev, newStatus: inst.status, reason: opts.reason },\n })\n } catch (_e) {\n void 0\n }\n return inst\n }\n\n public async cancel(\n agentContext: AgentContext,\n opts: { instance_id: string; reason?: string },\n instanceRecord?: WorkflowInstanceRecord\n ): Promise<WorkflowInstanceRecord> {\n const inst = instanceRecord || (await this.getInstanceByIdOrTag(agentContext, opts.instance_id))\n const prev = inst.status\n inst.status = 'canceled'\n await this.instanceRepo.update(agentContext, inst)\n try {\n this.eventEmitter?.emit(agentContext, {\n type: WorkflowEventTypes.WorkflowInstanceStatusChanged,\n payload: { instanceRecord: inst, previousStatus: prev, newStatus: inst.status, reason: opts.reason },\n })\n } catch (_e) {\n void 0\n }\n return inst\n }\n\n public async complete(\n agentContext: AgentContext,\n opts: { instance_id: string; reason?: string },\n instanceRecord?: WorkflowInstanceRecord\n ): Promise<WorkflowInstanceRecord> {\n const inst = instanceRecord || (await this.getInstanceByIdOrTag(agentContext, opts.instance_id))\n // Only allow completion when FSM is in a final state\n const tplRec = await this.templateRepo.findByTemplateIdAndVersion(\n agentContext,\n inst.templateId,\n inst.templateVersion\n )\n if (!tplRec) throw this.problem('invalid_template', 'template not found for instance')\n const toDef = tplRec.template.states.find((s) => s.name === inst.state)\n if (toDef?.type !== 'final') throw this.problem('forbidden', 'cannot complete: state is not final')\n const prev = inst.status\n inst.status = 'completed'\n await this.instanceRepo.update(agentContext, inst)\n try {\n this.eventEmitter?.emit(agentContext, {\n type: WorkflowEventTypes.WorkflowInstanceStatusChanged,\n payload: { instanceRecord: inst, previousStatus: prev, newStatus: inst.status, reason: opts.reason },\n })\n this.eventEmitter?.emit(agentContext, {\n type: WorkflowEventTypes.WorkflowInstanceCompleted,\n payload: { instanceRecord: inst, state: inst.state, section: inst.section },\n })\n } catch (_e) {\n void 0\n }\n return inst\n }\n\n public async autoAdvanceByConnection(agentContext: AgentContext, connectionId: string, event: string) {\n const inst = await this.instanceRepo.findLatestByConnection(agentContext, connectionId)\n if (!inst) return\n try {\n await this.advance(agentContext, {\n instance_id: inst.instanceId,\n event,\n idempotency_key: `auto:${event}:${inst.instanceId}`,\n })\n } catch (e) {\n // swallow, log at debug\n this.agentConfig.logger.debug(`Workflow autoAdvance error: ${(e as Error).message}`)\n }\n }\n\n private evalMultiplicity(expr: string, context: Record<string, unknown>): string {\n try {\n const env = { context, participants: {}, artifacts: {} }\n const val = GuardEvaluator.evalValue(expr, env)\n return val != null ? String(val) : ''\n } catch {\n return ''\n }\n }\n\n private toInstanceData(rec: WorkflowInstanceRecord): WorkflowInstanceData {\n return {\n instance_id: rec.instanceId,\n template_id: rec.templateId,\n template_version: rec.templateVersion,\n connection_id: rec.connectionId,\n participants: rec.participants,\n state: rec.state,\n section: rec.section,\n context: rec.context,\n artifacts: rec.artifacts,\n status: rec.status,\n history: rec.history,\n multiplicityKeyValue: rec.multiplicityKeyValue,\n idempotencyKeys: rec.idempotencyKeys,\n }\n }\n\n private problem(code: string, comment: string) {\n const err = new Error(comment) as Error & { code: string }\n err.code = code\n return err\n }\n\n private async getInstanceByIdOrTag(agentContext: AgentContext, instanceId: string) {\n try {\n return await this.instanceRepo.getById(agentContext, instanceId)\n } catch {\n const found = await this.instanceRepo.getByInstanceId(agentContext, instanceId)\n if (!found) throw this.problem('invalid_event', 'instance not found')\n return found\n }\n }\n\n private uuid(): string {\n // light uuid\n return `wf_${Math.random().toString(36).slice(2)}${Date.now().toString(36)}`\n }\n\n private validateTemplate(t: WorkflowTemplate) {\n const fail = (msg: string) => {\n throw this.problem('invalid_template', msg)\n }\n if (!t.template_id || !t.version || !t.title) fail('missing required fields')\n if (!Array.isArray(t.states) || !t.states.length) fail('states required')\n if (!Array.isArray(t.transitions)) fail('transitions required')\n if (!Array.isArray(t.actions)) fail('actions required')\n const stateNames = new Set(t.states.map((s) => s.name))\n if (![...t.states].some((s) => s.type === 'start')) fail('start state required')\n for (const s of t.states) {\n if (s.section && !t.sections?.some((sec) => sec.name === s.section)) fail(`state.section not found: ${s.section}`)\n }\n for (const tr of t.transitions) {\n if (!stateNames.has(tr.from)) fail(`transition.from unknown: ${tr.from}`)\n if (!stateNames.has(tr.to)) fail(`transition.to unknown: ${tr.to}`)\n if (tr.action && !t.actions.some((a) => a.key === tr.action)) fail(`transition.action unknown: ${tr.action}`)\n }\n // profile_ref resolution\n for (const a of t.actions) {\n if ('profile_ref' in a && (a as { profile_ref: string }).profile_ref) {\n const pr = (a as { profile_ref: string }).profile_ref\n if (pr.startsWith('cp.')) {\n const key = pr.slice(3)\n if (!t.catalog?.credential_profiles || !t.catalog.credential_profiles[key]) fail(`catalog.cp missing: ${key}`)\n } else if (pr.startsWith('pp.')) {\n const key = pr.slice(3)\n if (!t.catalog?.proof_profiles || !t.catalog.proof_profiles[key]) fail(`catalog.pp missing: ${key}`)\n } else fail(`invalid profile_ref: ${pr}`)\n }\n }\n }\n\n private async sendCompleteMessage(agentContext: AgentContext, inst: WorkflowInstanceRecord) {\n try {\n if (!inst.connectionId) return\n const connectionSvc = agentContext.dependencyManager.resolve(DidCommConnectionService)\n const messageSender = agentContext.dependencyManager.resolve(DidCommMessageSender)\n const connection = await connectionSvc.getById(agentContext, inst.connectionId)\n const msg = new CompleteMessage({\n thid: inst.instanceId,\n body: { instance_id: inst.instanceId, reason: 'state_final' },\n })\n try {\n // Request return-route so HTTP outbound doesn't throw on 15s timeout\n msg.setReturnRouting(ReturnRouteTypes.thread, inst.instanceId)\n } catch (_e) {\n void 0\n }\n const outbound = new DidCommOutboundMessageContext(msg, { agentContext, connection })\n await messageSender.sendMessage(outbound)\n } catch (e) {\n this.agentConfig.logger.debug(`Workflow complete notify error: ${(e as Error).message}`)\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;qBAiByD;;;;AASzD,MAAM,mBAAmB,QAAyB;CAChD,MAAMA,UAAoB,EAAE;AAC5B,MAAK,UAAU,MAAM,GAAG,MAAM;AAC5B,UAAQ,KAAK,EAAE;AACf,SAAO;GACP;AACF,SAAQ,MAAM;AACd,QAAO,KAAK,UAAU,KAAK,QAAQ;;AAGrC,MAAM,UAAU,UAA0B;CACxC,MAAM,OAAO,OAAO,KAAK,kBAAkB,WAAW,MAAM,EAAE,UAAU;AACxE,QAAO,kBAAkB,MAAM,KAAK;;AAI/B,4BAAMC,kBAAgB;CAG3B,AAAO,YACL,AAAiBC,cACjB,AAAiBC,cACjB,AAAiBC,QACjB,AAAiBC,aACjB,AAAiBC,cACjB;EALiB;EACA;EACA;EACA;EACA;AAEjB,OAAK,UAAU,IAAI,gBAAgB;AACnC,OAAK,QAAQ,SAAS,IAAI,qBAAqB,CAAC;AAGhD,OAAK,QAAQ,SAAS,IAAI,2BAA2B,CAAC;AACtD,OAAK,QAAQ,SAAS,IAAI,yBAAyB,CAAC;AACpD,OAAK,QAAQ,SAAS,IAAI,2BAA2B,CAAC;AACtD,OAAK,QAAQ,SAAS,IAAI,gCAAgC,CAAC;AAE3D,OAAK,QAAQ,SAAS,IAAI,sBAAsB,CAAC;;CAInD,AAAO,gBAAgB,SAAwF;AAC7G,OAAK,MAAM,KAAK,QAGd,MAAK,QAAQ,SAAS,EAAsB;;CAIhD,MAAa,gBACX,cACA,UACiC;AAEjC,uBAAqB,SAAS;AAC9B,uBAAqB,SAAS;EAC9B,MAAM,OAAO,OAAO,gBAAgB,SAAS,CAAC;EAC9C,MAAM,WAAW,MAAM,KAAK,aAAa,2BACvC,cACA,SAAS,aACT,SAAS,QACV;AACD,MAAI,UAAU;AACZ,YAAS,WAAW;AACpB,YAAS,OAAO;AAChB,SAAM,KAAK,aAAa,OAAO,cAAc,SAAS;AACtD,UAAO;;EAET,MAAM,SAAS,IAAI,uBAAuB;GAAE;GAAU;GAAM,CAAC;AAC7D,QAAM,KAAK,aAAa,KAAK,cAAc,OAAO;AAClD,SAAO;;CAGT,MAAa,MACX,cACA,MAQiC;AAEjC,MAAI,KAAK,YACP,KAAI;GACF,MAAM,qBAAqB,MAAM,KAAK,aAAa,gBAAgB,cAAc,KAAK,YAAY;AAClG,OAAI,mBAAoB,QAAO;UACzB;EAKV,MAAM,SAAS,MAAM,KAAK,aAAa,2BACrC,cACA,KAAK,aACL,KAAK,iBACN;AACD,MAAI,CAAC,OACH,OAAM,KAAK,QACT,oBACA,uBAAuB,KAAK,YAAY,GAAG,KAAK,oBAAoB,WACrE;EACH,MAAM,MAAM,OAAO;EACnB,MAAM,aAAa,IAAI,OAAO,MAAM,MAAM,EAAE,SAAS,QAAQ,EAAE,QAAQ,IAAI,OAAO,IAAI;AACtF,MAAI,CAAC,WAAY,OAAM,KAAK,QAAQ,oBAAoB,iBAAiB;EAEzE,MAAM,SAAS,IAAI;EACnB,MAAM,eAAe,KAAK;AAC1B,MAAI,OAAO,SAAS,4BAA4B;GAC9C,MAAM,WAAW,YACf,MAAM,KAAK,aAAa,4BAA4B,cAAc,IAAI,aAAa,aAAa,CACjG,CAAC,OAAO;AACT,OAAI,UAAU;AACZ,QAAI,KAAK,OAAO,8BAA+B,QAAO;AACtD,UAAM,KAAK,QAAQ,kBAAkB,kDAAkD;;;EAI3F,IAAIC;AACJ,MAAI,OAAO,SAAS,0BAA0B,OAAO,kBAAkB;AACrE,0BAAuB,KAAK,iBAAiB,OAAO,kBAAkB,KAAK,WAAW,EAAE,CAAC;GACzF,MAAM,MAAM,YACV,MAAM,KAAK,aAAa,kCACtB,cACA,IAAI,aACJ,cACA,qBACD,CACF,CAAC,OAAO;AACT,OAAI,IAAK,QAAO;;EAIlB,IAAIC,eAA8B,KAAK,gBAAkC,EAAE;AAC3E,MAAI;AACF,OAAI,cAAc;IAEhB,MAAM,OAAO,MADG,aAAa,kBAAkB,QAAQ,yBAAyB,CACrD,QAAQ,cAAc,aAAa;IAC9D,MAAM,WAAY,MAAc;IAChC,MAAM,QAAU,MAAc,OAAgC,MAAc;AAC5E,QAAI,UAAU;KACZ,MAAM,SAAU,aAAqB,UAAU,EAAE;AACjD,SAAI,CAAC,OAAO,IAAK,QAAO,MAAM;AAC7B,KAAC,aAAqB,SAAS;;AAElC,QAAI,OAAO;KACT,MAAM,SAAU,aAAqB,UAAU,EAAE;AACjD,SAAI,CAAC,OAAO,IAAK,QAAO,MAAM;AAC7B,KAAC,aAAqB,SAAS;;;UAG9B;EAIR,MAAM,aAAa,KAAK,eAAe,KAAK,MAAM;EAClD,MAAM,UAAU,oBAAoB,KAAK,WAAW;EACpD,MAAM,MAAM,IAAI,uBAAuB;GACrC;GACA,YAAY,IAAI;GAChB,iBAAiB,IAAI;GACrB;GACA;GACA,OAAO;GACP;GACA,SAAS,EAAE,GAAI,KAAK,WAAW,EAAE,EAAG;GACpC,WAAW,EAAE;GACb,QAAQ;GACR,SAAS,EAAE;GACX;GACA,iBAAiB,EAAE;GACpB,CAAC;AACF,QAAM,KAAK,aAAa,KAAK,cAAc,IAAI;AAE/C,MAAI;AACF,QAAK,cAAc,KAAK,cAAc;IACpC,MAAM,mBAAmB;IACzB,SAAS;KACP,gBAAgB;KAChB,eAAe;KACf,UAAU,IAAI;KACd,OAAO;KACP,WAAW;KACX,OAAO;KACR;IACF,CAAC;WACK,IAAI;AAGb,SAAO;;CAGT,MAAa,QACX,cACA,MAMA,gBACiC;EACjC,IAAIC;AACJ,MAAI,eACF,QAAO;MAEP,KAAI;AACF,UAAO,MAAM,KAAK,aAAa,QAAQ,cAAc,KAAK,YAAY;UAChE;GACN,MAAM,QAAQ,MAAM,KAAK,aAAa,gBAAgB,cAAc,KAAK,YAAY;AACrF,OAAI,CAAC,MAAO,OAAM,KAAK,QAAQ,iBAAiB,qBAAqB;AACrE,UAAO;;EAGX,MAAM,SAAS,MAAM,KAAK,aAAa,2BACrC,cACA,KAAK,YACL,KAAK,gBACN;AACD,MAAI,CAAC,OAAQ,OAAM,KAAK,QAAQ,oBAAoB,kCAAkC;EACtF,MAAM,MAAM,OAAO;AAGnB,MAAI,KAAK,WAAW,SAAU,OAAM,KAAK,QAAQ,aAAa,qBAAqB;AACnF,MAAI,KAAK,WAAW,WAAY,OAAM,KAAK,QAAQ,aAAa,uBAAuB;AACvF,MAAI,KAAK,WAAW,YAAa,OAAM,KAAK,QAAQ,iBAAiB,6BAA6B;AAGlG,MAAI,KAAK,mBAAmB,KAAK,iBAAiB,SAAS,KAAK,gBAAgB,EAAE;GAChF,MAAM,QAAQ,KAAK,aAAa,QAAQ,MAAM,EAAE,QAAQ,KAAK,gBAAgB;AAC7E,OAAI,SAAS,MAAM,UAAU,KAAK,MAAO,OAAM,KAAK,QAAQ,wBAAwB,4BAA4B;AAChH,UAAO;;EAGT,MAAM,aAAa,qBAAqB,KAAK,KAAK,MAAM,CAAC,QAAQ,QAAMC,IAAE,OAAO,KAAK,MAAM;AAC3F,MAAI,CAAC,WAAW,OACd,OAAM,KAAK,QAAQ,iBAAiB,2BAA2B,KAAK,MAAM,QAAQ,KAAK,QAAQ;EACjG,MAAM,MAAM,eAAe,gBAAgB,KAAK,eAAe,KAAK,CAAC;EACrE,MAAM,UAAU,WAAW,QAAQ,QAAM,eAAe,UAAUA,IAAE,OAAO,IAAI,CAAC;AAChF,MAAI,CAAC,QAAQ,OAAQ,OAAM,KAAK,QAAQ,gBAAgB,wBAAwB;EAChF,MAAM,IAAI,QAAQ;EAElB,IAAIC,iBAA0C,EAAE;EAChD,IAAIC;AACJ,MAAI,EAAE,QAAQ;GACZ,MAAM,MAAM,IAAI,QAAQ,MAAM,MAAM,EAAE,QAAQ,EAAE,OAAO;AACvD,OAAI,CAAC,IAAK,OAAM,KAAK,QAAQ,oBAAoB,uBAAuB,EAAE,SAAS;GACnF,MAAM,UAAU,KAAK,QAAQ,IAAI,IAAI,QAAQ;AAC7C,OAAI,CAAC,QAAS,OAAM,KAAK,QAAQ,gBAAgB,uBAAuB,IAAI,UAAU;GACtF,MAAM,OAAO,YACX,QAAQ,QAAQ;IACd;IACA,UAAU;IACV,UAAU,KAAK,eAAe,KAAK;IACnC,QAAQ;IACR,OAAO,KAAK;IACb,CAAC;GACJ,MAAM,YAAY,KAAK,OAAO,mBAAmB;GACjD,MAAM,OAAO,QAAQ,KAAK,CACxB,MAAM,EACN,IAAI,SAAgB,GAAG,QAAQ,iBAAiB,oBAAI,IAAI,MAAM,iBAAiB,CAAC,EAAE,UAAU,CAAC,CAC9F,CAAC;GACF,IAAIC;AAKJ,OAAI;AACF,aAAU,MAAM;YACT,GAAG;AACV,UAAM,OAAO,OAAO,IAAI,MAAO,EAAY,WAAW,iBAAiB,EAAE,EAAE,MAAM,gBAAgB,CAAC;;AAEpG,oBAAiB,QAAQ,aAAa,EAAE;AAExC,OAAI,QAAQ,aAAc,MAAK,UAAU,OAAO;AAChD,OAAI,QAAQ,UAAW,aAAY,OAAO;;EAI5C,MAAM,YAAY,KAAK;AACvB,MAAI;AAEF,QADc,MAAM,KAAK,aAAa,QAAQ,cAAc,KAAK,GAAG,EAC1D,UAAU,UAAW,OAAM,KAAK,QAAQ,kBAAkB,6BAA6B;WAC1F,IAAI;EAMb,MAAM,YAAY,KAAK;AACvB,OAAK,QAAQ,KAAK;GAChB,qBAAI,IAAI,MAAM,EAAC,aAAa;GAC5B,OAAO,KAAK;GACZ,MAAM,KAAK;GACX,IAAI,EAAE;GACN,WAAW,EAAE;GACb,QAAQ;GACT,CAAC;AACF,OAAK,QAAQ,EAAE;AACf,OAAK,UAAU,oBAAoB,KAAK,EAAE,GAAG;AAC7C,OAAK,YAAY;GAAE,GAAG,KAAK;GAAW,GAAG;GAAgB;AACzD,MAAI,KAAK,iBAAiB;AACxB,QAAK,kBAAkB,CAAC,GAAI,KAAK,mBAAmB,EAAE,EAAG,KAAK,gBAAgB;AAC9E,QAAK,cAAc,CACjB,GAAI,KAAK,eAAe,EAAE,EAC1B;IAAE,KAAK,KAAK;IAAiB,OAAO,KAAK;IAAO,IAAI,EAAE;IAAI,WAAW,EAAE;IAAQ,CAChF;GAED,MAAM,QAAQ,KAAK,IAAI,GAAG,KAAK,OAAO,2BAA2B,IAAI;AACrE,QAAK,KAAK,iBAAiB,UAAU,KAAK,MACxC,MAAK,kBAAkB,KAAK,gBAAgB,MAAM,CAAC,MAAM;AAE3D,QAAK,KAAK,aAAa,UAAU,KAAK,MACpC,MAAK,cAAc,KAAK,YAAY,MAAM,CAAC,MAAM;;EAGrD,IAAI,eAAe;AACnB,MAAI;AAEF,OADc,IAAI,OAAO,MAAM,MAAM,EAAE,SAAS,EAAE,GAAG,EAC1C,SAAS,SAAS;AAC3B,SAAK,SAAS;AACd,mBAAe;;WAEV,IAAI;AAGb,QAAM,KAAK,aAAa,OAAO,cAAc,KAAK;AAGlD,MAAI;AACF,QAAK,cAAc,KAAK,cAAc;IACpC,MAAM,mBAAmB;IACzB,SAAS;KACP,gBAAgB;KAChB,eAAe;KACf,UAAU,KAAK;KACf,OAAO,KAAK;KACZ,WAAW,EAAE;KACb,OAAO;KACR;IACF,CAAC;WACK,IAAI;AAKb,MAAI,cAAc;AAChB,OAAI;AACF,SAAK,cAAc,KAAK,cAAc;KACpC,MAAM,mBAAmB;KACzB,SAAS;MAAE,gBAAgB;MAAM,gBAAgB;MAAU,WAAW;MAAa;KACpF,CAAC;YACK,IAAI;AAGb,OAAI;AACF,SAAK,cAAc,KAAK,cAAc;KACpC,MAAM,mBAAmB;KACzB,SAAS;MAAE,gBAAgB;MAAM,OAAO,KAAK;MAAO,SAAS,KAAK;MAAS;KAC5E,CAAC;YACK,IAAI;AAGb,SAAM,KAAK,oBAAoB,cAAc,KAAK;;AAEpD,SAAO;;CAGT,MAAa,OACX,cACA,MAQA,gBAoBC;EACD,IAAIJ;AACJ,MAAI,eACF,QAAO;MAEP,KAAI;AACF,UAAO,MAAM,KAAK,aAAa,QAAQ,cAAc,KAAK,YAAY;UAChE;GACN,MAAM,QAAQ,MAAM,KAAK,aAAa,gBAAgB,cAAc,KAAK,YAAY;AACrF,OAAI,CAAC,MAAO,OAAM,KAAK,QAAQ,iBAAiB,qBAAqB;AACrE,UAAO;;EAGX,MAAM,SAAS,MAAM,KAAK,aAAa,2BACrC,cACA,KAAK,YACL,KAAK,gBACN;AACD,MAAI,CAAC,OAAQ,OAAM,KAAK,QAAQ,oBAAoB,kCAAkC;EACtF,MAAM,MAAM,OAAO;EACnB,MAAM,WAAW,KAAK,eAAe,KAAK;EAC1C,MAAM,MAAM,eAAe,gBAAgB,SAAS;EACpD,MAAM,UAAU,qBAAqB,KAAK,KAAK,MAAM,CAClD,QAAQ,MAAM,eAAe,UAAU,EAAE,OAAO,IAAI,CAAC,CACrD,KAAK,MAAM,EAAE,GAAG;EACnB,MAAM,iBAAiB,KAAK,mBAAmB;EAC/C,MAAM,YAAY,KAAK,cAAc;EAGrC,MAAM,QAAQ;GACZ,SAAS,SAAS,WAAW,EAAE;GAC/B,cAAc,SAAS,gBAAgB,EAAE;GACzC,WAAW,SAAS,aAAa,EAAE;GACnC,QAAQ,KAAK;GACd;EAKD,MAAM;EASN,IAAIK,iBAAqC,KAAK;AAC9C,MAAI;GAEF,MAAM,aAAa,KAAK,QAAQ;GAChC,MAAM,YAAY,KAAK,QAAQ;GAC/B,MAAM,YAAY,KAAK,QAAQ;GAC/B,MAAM,mBAAmB,MAAmC;AAC1D,QAAI,CAAC,EAAG,QAAO;IACf,MAAM,MAAM,EAAE,aAAa;AAC3B,QAAI,QAAQ,YAAY,QAAQ,SAAU,QAAO;AACjD,QAAI,QAAQ,cAAc,QAAQ,SAAU,QAAO;;AAGrD,OAAI,CAAC,eAAgB,kBAAiB,gBAAgB,WAAW,IAAI,gBAAgB,UAAU;AAG/F,OAAI,CAAC,kBAAkB,aAAa,UAAU,gBAAgB,OAAO,SAAS,iBAAiB,SAC7F,MAAK,MAAM,CAAC,MAAM,SAAS,OAAO,QAAQ,SAAS,aAAoC,EAAE;IACvF,MAAM,MAAO,MAAc;AAC3B,QAAI,OAAO,QAAQ,WAAW;AAC5B,sBAAiB,gBAAgB,KAAK;AACtC,SAAI,eAAgB;;;AAM1B,OAAI,CAAC,gBAAgB;IAEnB,IAAIC;AACJ,QAAI,UAAU,cACZ,KAAI;KAEF,MAAM,OAAO,MADG,aAAa,kBAAkB,QAAQ,yBAAyB,CACrD,QAAQ,cAAc,SAAS,cAAc;AACxE,aAAU,MAAc,OAAgC,MAAc;YAChE;AAEV,QAAI,SAAS,UAAU,gBAAgB,OAAO,SAAS,iBAAiB,SACtE,MAAK,MAAM,CAAC,MAAM,SAAS,OAAO,QAAQ,SAAS,aAAoC,EAAE;KACvF,MAAM,MAAO,MAAc;AAC3B,SAAI,OAAO,QAAQ,OAAO;AACxB,uBAAiB,gBAAgB,KAAK;AACtC,UAAI,eAAgB;;;;UAKtB;EAER,MAAM,WAAW,GAAG,SAAU,KAAgD,eAAe,KAAK,OAAO,eAAe;EACxH,MAAM,WAAW,GAAG,gBAAgB,UAAU,OAAO,KAAK,QAAQ,eAAe;EACjF,MAAM,OAAO,iBACT,SACG,QAAQ,MAAM,GAAG,SAAS,YAAY,GAAG,SAAS,gBAAgB,CAClE,KAAK,OAAO;GAAE,OAAO,GAAG;GAAO,OAAO,GAAG;GAAiB,EAAE,GAC/D,EAAE;EACN,MAAM,SAAS,GAAG,cAAc,UAAW,KAA6D,eAAe,OAAgB;EACvI,MAAM,KAAK,YAAY,WAAW;EAClC,IAAIC;AACJ,MAAI,KAAK,aACP,KAAI;GAEF,MAAM,OAAO,MADG,aAAa,kBAAkB,QAAQ,yBAAyB,CACrD,QAAQ,cAAc,KAAK,aAAa;AACnE,gBAAa;IACX,IAAK,MAAc;IACnB,OAAS,MAAc,OAAgC,MAAc;IACrE,UAAW,MAAc;IAC1B;UACK;AAIV,SAAO;GACL,aAAa,KAAK;GAClB,aAAa,KAAK;GAClB,kBAAkB,KAAK;GACvB,eAAe,KAAK;GACpB;GACA,cAAc,KAAK;GACnB,SAAS,KAAK;GACd,QAAQ,KAAK;GACb,WAAW,KAAK;GAChB,WAAY,MAAc;GAC1B,OAAO,KAAK;GACZ,SAAS,KAAK;GACd,gBAAgB;GAChB,aAAa;GACb,WAAW,KAAK;GAChB,GAAI,YAAY,EAAE,IAAI,GAAG,EAAE;GAC3B,GAAI,iBAAiB,EAAE,YAAY,gBAAgB,GAAG,EAAE;GACxD,GAAI,SAAS,EAAE,QAAQ,GAAG,EAAE;GAC7B;;CAGH,MAAa,MACX,cACA,MACA,gBACiC;EACjC,MAAM,OAAO,kBAAmB,MAAM,KAAK,qBAAqB,cAAc,KAAK,YAAY;EAC/F,MAAM,OAAO,KAAK;AAClB,OAAK,SAAS;AACd,QAAM,KAAK,aAAa,OAAO,cAAc,KAAK;AAClD,MAAI;AACF,QAAK,cAAc,KAAK,cAAc;IACpC,MAAM,mBAAmB;IACzB,SAAS;KAAE,gBAAgB;KAAM,gBAAgB;KAAM,WAAW,KAAK;KAAQ,QAAQ,KAAK;KAAQ;IACrG,CAAC;WACK,IAAI;AAGb,SAAO;;CAGT,MAAa,OACX,cACA,MACA,gBACiC;EACjC,MAAM,OAAO,kBAAmB,MAAM,KAAK,qBAAqB,cAAc,KAAK,YAAY;EAC/F,MAAM,OAAO,KAAK;AAClB,OAAK,SAAS;AACd,QAAM,KAAK,aAAa,OAAO,cAAc,KAAK;AAClD,MAAI;AACF,QAAK,cAAc,KAAK,cAAc;IACpC,MAAM,mBAAmB;IACzB,SAAS;KAAE,gBAAgB;KAAM,gBAAgB;KAAM,WAAW,KAAK;KAAQ,QAAQ,KAAK;KAAQ;IACrG,CAAC;WACK,IAAI;AAGb,SAAO;;CAGT,MAAa,OACX,cACA,MACA,gBACiC;EACjC,MAAM,OAAO,kBAAmB,MAAM,KAAK,qBAAqB,cAAc,KAAK,YAAY;EAC/F,MAAM,OAAO,KAAK;AAClB,OAAK,SAAS;AACd,QAAM,KAAK,aAAa,OAAO,cAAc,KAAK;AAClD,MAAI;AACF,QAAK,cAAc,KAAK,cAAc;IACpC,MAAM,mBAAmB;IACzB,SAAS;KAAE,gBAAgB;KAAM,gBAAgB;KAAM,WAAW,KAAK;KAAQ,QAAQ,KAAK;KAAQ;IACrG,CAAC;WACK,IAAI;AAGb,SAAO;;CAGT,MAAa,SACX,cACA,MACA,gBACiC;EACjC,MAAM,OAAO,kBAAmB,MAAM,KAAK,qBAAqB,cAAc,KAAK,YAAY;EAE/F,MAAM,SAAS,MAAM,KAAK,aAAa,2BACrC,cACA,KAAK,YACL,KAAK,gBACN;AACD,MAAI,CAAC,OAAQ,OAAM,KAAK,QAAQ,oBAAoB,kCAAkC;AAEtF,MADc,OAAO,SAAS,OAAO,MAAM,MAAM,EAAE,SAAS,KAAK,MAAM,EAC5D,SAAS,QAAS,OAAM,KAAK,QAAQ,aAAa,sCAAsC;EACnG,MAAM,OAAO,KAAK;AAClB,OAAK,SAAS;AACd,QAAM,KAAK,aAAa,OAAO,cAAc,KAAK;AAClD,MAAI;AACF,QAAK,cAAc,KAAK,cAAc;IACpC,MAAM,mBAAmB;IACzB,SAAS;KAAE,gBAAgB;KAAM,gBAAgB;KAAM,WAAW,KAAK;KAAQ,QAAQ,KAAK;KAAQ;IACrG,CAAC;AACF,QAAK,cAAc,KAAK,cAAc;IACpC,MAAM,mBAAmB;IACzB,SAAS;KAAE,gBAAgB;KAAM,OAAO,KAAK;KAAO,SAAS,KAAK;KAAS;IAC5E,CAAC;WACK,IAAI;AAGb,SAAO;;CAGT,MAAa,wBAAwB,cAA4B,cAAsB,OAAe;EACpG,MAAM,OAAO,MAAM,KAAK,aAAa,uBAAuB,cAAc,aAAa;AACvF,MAAI,CAAC,KAAM;AACX,MAAI;AACF,SAAM,KAAK,QAAQ,cAAc;IAC/B,aAAa,KAAK;IAClB;IACA,iBAAiB,QAAQ,MAAM,GAAG,KAAK;IACxC,CAAC;WACK,GAAG;AAEV,QAAK,YAAY,OAAO,MAAM,+BAAgC,EAAY,UAAU;;;CAIxF,AAAQ,iBAAiB,MAAc,SAA0C;AAC/E,MAAI;GACF,MAAM,MAAM;IAAE;IAAS,cAAc,EAAE;IAAE,WAAW,EAAE;IAAE;GACxD,MAAM,MAAM,eAAe,UAAU,MAAM,IAAI;AAC/C,UAAO,OAAO,OAAO,OAAO,IAAI,GAAG;UAC7B;AACN,UAAO;;;CAIX,AAAQ,eAAe,KAAmD;AACxE,SAAO;GACL,aAAa,IAAI;GACjB,aAAa,IAAI;GACjB,kBAAkB,IAAI;GACtB,eAAe,IAAI;GACnB,cAAc,IAAI;GAClB,OAAO,IAAI;GACX,SAAS,IAAI;GACb,SAAS,IAAI;GACb,WAAW,IAAI;GACf,QAAQ,IAAI;GACZ,SAAS,IAAI;GACb,sBAAsB,IAAI;GAC1B,iBAAiB,IAAI;GACtB;;CAGH,AAAQ,QAAQ,MAAc,SAAiB;EAC7C,MAAM,MAAM,IAAI,MAAM,QAAQ;AAC9B,MAAI,OAAO;AACX,SAAO;;CAGT,MAAc,qBAAqB,cAA4B,YAAoB;AACjF,MAAI;AACF,UAAO,MAAM,KAAK,aAAa,QAAQ,cAAc,WAAW;UAC1D;GACN,MAAM,QAAQ,MAAM,KAAK,aAAa,gBAAgB,cAAc,WAAW;AAC/E,OAAI,CAAC,MAAO,OAAM,KAAK,QAAQ,iBAAiB,qBAAqB;AACrE,UAAO;;;CAIX,AAAQ,OAAe;AAErB,SAAO,MAAM,KAAK,QAAQ,CAAC,SAAS,GAAG,CAAC,MAAM,EAAE,GAAG,KAAK,KAAK,CAAC,SAAS,GAAG;;CAG5E,AAAQ,iBAAiB,GAAqB;EAC5C,MAAM,QAAQ,QAAgB;AAC5B,SAAM,KAAK,QAAQ,oBAAoB,IAAI;;AAE7C,MAAI,CAAC,EAAE,eAAe,CAAC,EAAE,WAAW,CAAC,EAAE,MAAO,MAAK,0BAA0B;AAC7E,MAAI,CAAC,MAAM,QAAQ,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,OAAQ,MAAK,kBAAkB;AACzE,MAAI,CAAC,MAAM,QAAQ,EAAE,YAAY,CAAE,MAAK,uBAAuB;AAC/D,MAAI,CAAC,MAAM,QAAQ,EAAE,QAAQ,CAAE,MAAK,mBAAmB;EACvD,MAAM,aAAa,IAAI,IAAI,EAAE,OAAO,KAAK,MAAM,EAAE,KAAK,CAAC;AACvD,MAAI,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,MAAM,EAAE,SAAS,QAAQ,CAAE,MAAK,uBAAuB;AAChF,OAAK,MAAM,KAAK,EAAE,OAChB,KAAI,EAAE,WAAW,CAAC,EAAE,UAAU,MAAM,QAAQ,IAAI,SAAS,EAAE,QAAQ,CAAE,MAAK,4BAA4B,EAAE,UAAU;AAEpH,OAAK,MAAM,MAAM,EAAE,aAAa;AAC9B,OAAI,CAAC,WAAW,IAAI,GAAG,KAAK,CAAE,MAAK,4BAA4B,GAAG,OAAO;AACzE,OAAI,CAAC,WAAW,IAAI,GAAG,GAAG,CAAE,MAAK,0BAA0B,GAAG,KAAK;AACnE,OAAI,GAAG,UAAU,CAAC,EAAE,QAAQ,MAAM,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAE,MAAK,8BAA8B,GAAG,SAAS;;AAG/G,OAAK,MAAM,KAAK,EAAE,QAChB,KAAI,iBAAiB,KAAM,EAA8B,aAAa;GACpE,MAAM,KAAM,EAA8B;AAC1C,OAAI,GAAG,WAAW,MAAM,EAAE;IACxB,MAAM,MAAM,GAAG,MAAM,EAAE;AACvB,QAAI,CAAC,EAAE,SAAS,uBAAuB,CAAC,EAAE,QAAQ,oBAAoB,KAAM,MAAK,uBAAuB,MAAM;cACrG,GAAG,WAAW,MAAM,EAAE;IAC/B,MAAM,MAAM,GAAG,MAAM,EAAE;AACvB,QAAI,CAAC,EAAE,SAAS,kBAAkB,CAAC,EAAE,QAAQ,eAAe,KAAM,MAAK,uBAAuB,MAAM;SAC/F,MAAK,wBAAwB,KAAK;;;CAK/C,MAAc,oBAAoB,cAA4B,MAA8B;AAC1F,MAAI;AACF,OAAI,CAAC,KAAK,aAAc;GACxB,MAAM,gBAAgB,aAAa,kBAAkB,QAAQ,yBAAyB;GACtF,MAAM,gBAAgB,aAAa,kBAAkB,QAAQ,qBAAqB;GAClF,MAAM,aAAa,MAAM,cAAc,QAAQ,cAAc,KAAK,aAAa;GAC/E,MAAM,MAAM,IAAI,gBAAgB;IAC9B,MAAM,KAAK;IACX,MAAM;KAAE,aAAa,KAAK;KAAY,QAAQ;KAAe;IAC9D,CAAC;AACF,OAAI;AAEF,QAAI,iBAAiB,iBAAiB,QAAQ,KAAK,WAAW;YACvD,IAAI;GAGb,MAAM,WAAW,IAAI,8BAA8B,KAAK;IAAE;IAAc;IAAY,CAAC;AACrF,SAAM,cAAc,YAAY,SAAS;WAClC,GAAG;AACV,QAAK,YAAY,OAAO,MAAM,mCAAoC,EAAY,UAAU;;;;8BA9tB7F,YAAY"}
@@ -0,0 +1,85 @@
1
+ import { __esmMin, __export } from "../_virtual/rolldown_runtime.mjs";
2
+ import { GuardEvaluator, init_GuardEvaluator } from "../engine/GuardEvaluator.mjs";
3
+
4
+ //#region src/ui/UiFilter.ts
5
+ var UiFilter_exports = /* @__PURE__ */ __export({
6
+ collectAssets: () => collectAssets,
7
+ filterAndBindUi: () => filterAndBindUi,
8
+ selectUi: () => selectUi,
9
+ viewerTokens: () => viewerTokens
10
+ });
11
+ var toArray, clone, selectUi, viewerTokens, filterAndBindUi, collectAssets;
12
+ var init_UiFilter = __esmMin(() => {
13
+ init_GuardEvaluator();
14
+ toArray = (v) => Array.isArray(v) ? v : v !== void 0 ? [v] : [];
15
+ clone = (obj) => JSON.parse(JSON.stringify(obj));
16
+ selectUi = (hints, state, uiProfile) => {
17
+ if (!hints) return [];
18
+ if (uiProfile) {
19
+ const prof = hints.profiles?.[uiProfile]?.states?.[state];
20
+ if (Array.isArray(prof)) return clone(prof);
21
+ }
22
+ const base = hints.states?.[state];
23
+ return Array.isArray(base) ? clone(base) : [];
24
+ };
25
+ viewerTokens = (viewer, uiProfile) => {
26
+ const tokens = [];
27
+ if (!viewer && !uiProfile) return tokens;
28
+ if (viewer?.role) tokens.push(viewer.role);
29
+ if (viewer?.participantKey) tokens.push(`participant:${viewer.participantKey}`);
30
+ if (uiProfile) tokens.push(uiProfile);
31
+ return tokens;
32
+ };
33
+ filterAndBindUi = (items, env, viewer, uiProfile) => {
34
+ const tokens = viewerTokens(viewer, uiProfile);
35
+ const out = [];
36
+ for (const raw of items || []) {
37
+ if (!raw || typeof raw !== "object") {
38
+ out.push(raw);
39
+ continue;
40
+ }
41
+ const item = { ...raw };
42
+ const audience = toArray(item.audience);
43
+ if (audience.length) {
44
+ if (!audience.some((a) => tokens.includes(a))) continue;
45
+ }
46
+ const profile = toArray(item.profile);
47
+ if (profile.length) {
48
+ if (!profile.some((p) => tokens.includes(p))) continue;
49
+ }
50
+ const showWhen = item.showWhen;
51
+ if (showWhen && !GuardEvaluator.evalGuard(showWhen, env)) continue;
52
+ const enabledWhen = item.enabledWhen;
53
+ if (enabledWhen) item.disabled = !!!GuardEvaluator.evalGuard(enabledWhen, env);
54
+ const bind = item.bind;
55
+ if (bind) {
56
+ const value = GuardEvaluator.evalValue(bind, env);
57
+ if (value !== void 0) item.value = value;
58
+ }
59
+ out.push(item);
60
+ }
61
+ return out;
62
+ };
63
+ collectAssets = (items, assets) => {
64
+ if (!assets) return void 0;
65
+ const used = /* @__PURE__ */ new Set();
66
+ const scan = (obj) => {
67
+ if (!obj || typeof obj !== "object") return;
68
+ const rec = obj;
69
+ const assetId = rec.asset;
70
+ if (typeof assetId === "string" && assets[assetId]) used.add(assetId);
71
+ for (const v of Object.values(rec)) if (Array.isArray(v)) v.forEach((x) => scan(x));
72
+ else if (v && typeof v === "object") scan(v);
73
+ };
74
+ items.forEach((i) => scan(i));
75
+ if (!used.size) return void 0;
76
+ const out = {};
77
+ for (const id of used) out[id] = assets[id];
78
+ return out;
79
+ };
80
+ });
81
+
82
+ //#endregion
83
+ init_UiFilter();
84
+ export { UiFilter_exports, init_UiFilter };
85
+ //# sourceMappingURL=UiFilter.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UiFilter.mjs","names":["tokens: string[]","out: unknown[]","out: Record<string, UiAsset>"],"sources":["../../src/ui/UiFilter.ts"],"sourcesContent":["import type { DisplayHints, UiAsset, UiEnv, Viewer } from './UiTypes'\n\nimport { GuardEvaluator } from '../engine/GuardEvaluator'\n\nconst toArray = <T>(v: T | T[] | undefined): T[] => (Array.isArray(v) ? v : v !== undefined ? [v] : [])\n\nconst clone = <T>(obj: T): T => JSON.parse(JSON.stringify(obj)) as T\n\nexport const selectUi = (hints: DisplayHints | undefined, state: string, uiProfile?: string): unknown[] => {\n if (!hints) return []\n if (uiProfile) {\n const prof = hints.profiles?.[uiProfile]?.states?.[state]\n if (Array.isArray(prof)) return clone(prof)\n }\n const base = hints.states?.[state]\n return Array.isArray(base) ? clone(base) : []\n}\n\nexport const viewerTokens = (viewer?: Viewer, uiProfile?: string): string[] => {\n const tokens: string[] = []\n if (!viewer && !uiProfile) return tokens\n if (viewer?.role) tokens.push(viewer.role)\n if (viewer?.participantKey) tokens.push(`participant:${viewer.participantKey}`)\n if (uiProfile) tokens.push(uiProfile)\n return tokens\n}\n\nexport const filterAndBindUi = (items: unknown[], env: UiEnv, viewer?: Viewer, uiProfile?: string): unknown[] => {\n const tokens = viewerTokens(viewer, uiProfile)\n const out: unknown[] = []\n for (const raw of items || []) {\n if (!raw || typeof raw !== 'object') {\n out.push(raw)\n continue\n }\n const item = { ...(raw as Record<string, unknown>) }\n // audience/profile filtering\n const audience = toArray<string>(item.audience as unknown as string | string[] | undefined)\n if (audience.length) {\n const ok = audience.some((a) => tokens.includes(a))\n if (!ok) continue\n }\n const profile = toArray<string>(item.profile as unknown as string | string[] | undefined)\n if (profile.length) {\n const ok = profile.some((p) => tokens.includes(p))\n if (!ok) continue\n }\n // showWhen\n const showWhen = item.showWhen as string | undefined\n if (showWhen && !GuardEvaluator.evalGuard(showWhen, env)) continue\n // enabledWhen → disabled property\n const enabledWhen = item.enabledWhen as string | undefined\n if (enabledWhen) {\n const enabled = !!GuardEvaluator.evalGuard(enabledWhen, env)\n ;(item as Record<string, unknown>).disabled = !enabled\n }\n // bind → value\n const bind = item.bind as string | undefined\n if (bind) {\n const value = GuardEvaluator.evalValue(bind, env)\n if (value !== undefined) (item as Record<string, unknown>).value = value as unknown\n }\n out.push(item)\n }\n return out\n}\n\nexport const collectAssets = (\n items: unknown[],\n assets?: Record<string, UiAsset>\n): Record<string, UiAsset> | undefined => {\n if (!assets) return undefined\n const used = new Set<string>()\n const scan = (obj: unknown) => {\n if (!obj || typeof obj !== 'object') return\n const rec = obj as Record<string, unknown>\n const assetId = rec.asset\n if (typeof assetId === 'string' && assets[assetId]) used.add(assetId)\n // scan children arrays for nested containers\n for (const v of Object.values(rec)) {\n if (Array.isArray(v)) v.forEach((x) => scan(x))\n else if (v && typeof v === 'object') scan(v)\n }\n }\n items.forEach((i) => scan(i))\n if (!used.size) return undefined\n const out: Record<string, UiAsset> = {}\n for (const id of used) out[id] = assets[id]\n return out\n}\n\n"],"mappings":";;;;;;;;;;;;sBAEyD;CAEnD,WAAc,MAAiC,MAAM,QAAQ,EAAE,GAAG,IAAI,MAAM,SAAY,CAAC,EAAE,GAAG,EAAE;CAEhG,SAAY,QAAc,KAAK,MAAM,KAAK,UAAU,IAAI,CAAC;CAElD,YAAY,OAAiC,OAAe,cAAkC;AACzG,MAAI,CAAC,MAAO,QAAO,EAAE;AACrB,MAAI,WAAW;GACb,MAAM,OAAO,MAAM,WAAW,YAAY,SAAS;AACnD,OAAI,MAAM,QAAQ,KAAK,CAAE,QAAO,MAAM,KAAK;;EAE7C,MAAM,OAAO,MAAM,SAAS;AAC5B,SAAO,MAAM,QAAQ,KAAK,GAAG,MAAM,KAAK,GAAG,EAAE;;CAGlC,gBAAgB,QAAiB,cAAiC;EAC7E,MAAMA,SAAmB,EAAE;AAC3B,MAAI,CAAC,UAAU,CAAC,UAAW,QAAO;AAClC,MAAI,QAAQ,KAAM,QAAO,KAAK,OAAO,KAAK;AAC1C,MAAI,QAAQ,eAAgB,QAAO,KAAK,eAAe,OAAO,iBAAiB;AAC/E,MAAI,UAAW,QAAO,KAAK,UAAU;AACrC,SAAO;;CAGI,mBAAmB,OAAkB,KAAY,QAAiB,cAAkC;EAC/G,MAAM,SAAS,aAAa,QAAQ,UAAU;EAC9C,MAAMC,MAAiB,EAAE;AACzB,OAAK,MAAM,OAAO,SAAS,EAAE,EAAE;AAC7B,OAAI,CAAC,OAAO,OAAO,QAAQ,UAAU;AACnC,QAAI,KAAK,IAAI;AACb;;GAEF,MAAM,OAAO,EAAE,GAAI,KAAiC;GAEpD,MAAM,WAAW,QAAgB,KAAK,SAAqD;AAC3F,OAAI,SAAS,QAEX;QAAI,CADO,SAAS,MAAM,MAAM,OAAO,SAAS,EAAE,CAAC,CAC1C;;GAEX,MAAM,UAAU,QAAgB,KAAK,QAAoD;AACzF,OAAI,QAAQ,QAEV;QAAI,CADO,QAAQ,MAAM,MAAM,OAAO,SAAS,EAAE,CAAC,CACzC;;GAGX,MAAM,WAAW,KAAK;AACtB,OAAI,YAAY,CAAC,eAAe,UAAU,UAAU,IAAI,CAAE;GAE1D,MAAM,cAAc,KAAK;AACzB,OAAI,YAED,CAAC,KAAiC,WAAW,CAD9B,CAAC,CAAC,eAAe,UAAU,aAAa,IAAI;GAI9D,MAAM,OAAO,KAAK;AAClB,OAAI,MAAM;IACR,MAAM,QAAQ,eAAe,UAAU,MAAM,IAAI;AACjD,QAAI,UAAU,OAAW,CAAC,KAAiC,QAAQ;;AAErE,OAAI,KAAK,KAAK;;AAEhB,SAAO;;CAGI,iBACX,OACA,WACwC;AACxC,MAAI,CAAC,OAAQ,QAAO;EACpB,MAAM,uBAAO,IAAI,KAAa;EAC9B,MAAM,QAAQ,QAAiB;AAC7B,OAAI,CAAC,OAAO,OAAO,QAAQ,SAAU;GACrC,MAAM,MAAM;GACZ,MAAM,UAAU,IAAI;AACpB,OAAI,OAAO,YAAY,YAAY,OAAO,SAAU,MAAK,IAAI,QAAQ;AAErE,QAAK,MAAM,KAAK,OAAO,OAAO,IAAI,CAChC,KAAI,MAAM,QAAQ,EAAE,CAAE,GAAE,SAAS,MAAM,KAAK,EAAE,CAAC;YACtC,KAAK,OAAO,MAAM,SAAU,MAAK,EAAE;;AAGhD,QAAM,SAAS,MAAM,KAAK,EAAE,CAAC;AAC7B,MAAI,CAAC,KAAK,KAAM,QAAO;EACvB,MAAMC,MAA+B,EAAE;AACvC,OAAK,MAAM,MAAM,KAAM,KAAI,MAAM,OAAO;AACxC,SAAO"}
package/package.json CHANGED
@@ -1,50 +1,44 @@
1
1
  {
2
2
  "name": "@ajna-inc/workflow",
3
- "main": "build/index",
4
- "types": "build/index",
5
- "version": "0.5.37",
3
+ "version": "0.6.1",
6
4
  "files": [
7
- "build"
5
+ "build",
6
+ ".npmvc"
8
7
  ],
9
8
  "license": "Apache-2.0",
9
+ "main": "./build/index.mjs",
10
+ "types": "./build/index.d.mts",
11
+ "exports": {
12
+ ".": {
13
+ "types": "./build/index.d.mts",
14
+ "default": "./build/index.mjs"
15
+ },
16
+ "./package.json": "./package.json"
17
+ },
10
18
  "publishConfig": {
11
- "main": "build/index",
12
- "types": "build/index",
13
19
  "access": "public"
14
20
  },
15
- "homepage": "https://github.com/openwallet-foundation/credo-ts/tree/main/packages/workflow",
16
- "repository": {
17
- "type": "git",
18
- "url": "https://github.com/openwallet-foundation/credo-ts",
19
- "directory": "packages/workflow"
20
- },
21
- "scripts": {
22
- "build": "pnpm run clean && pnpm run compile",
23
- "clean": "rimraf ./build",
24
- "compile": "tsc -p tsconfig.build.json",
25
- "prepublishOnly": "pnpm run build",
26
- "test": "jest",
27
- "test:cov": "jest --coverage --runInBand"
28
- },
29
21
  "dependencies": {
30
22
  "ajv": "^8.17.1",
31
23
  "ajv-formats": "^3.0.1",
24
+ "class-transformer": "0.5.1",
25
+ "class-validator": "^0.14.1",
32
26
  "jmespath": "^0.16.0",
33
- "semver": "^7.6.3"
34
- },
35
- "peerDependencies": {
36
- "@credo-ts/core": "^0.5.0"
27
+ "rxjs": "^7.8.2",
28
+ "semver": "^7.6.3",
29
+ "@credo-ts/core": "0.6.1",
30
+ "@credo-ts/didcomm": "0.6.1"
37
31
  },
38
32
  "devDependencies": {
39
- "@credo-ts/core": "^0.5.18",
40
- "@credo-ts/askar": "^0.5.18",
41
- "@credo-ts/node": "^0.5.18",
42
- "@ajna-inc/payments": "0.5.18",
43
- "@openwallet-foundation/askar-nodejs": "^0.4.1",
44
33
  "@types/jmespath": "^0.15.2",
45
34
  "@types/semver": "^7.7.1",
46
- "reflect-metadata": "^0.1.13",
47
- "rimraf": "^4.4.0",
48
- "typescript": "~5.5.2"
35
+ "reflect-metadata": "0.2.2",
36
+ "typescript": "~5.9.3",
37
+ "@ajna-inc/payments": "0.6.1"
38
+ },
39
+ "publisher": "did:key:z6MktNpDRgzA26pH13MxEPU4nmB6BwxxgCajhGHERPCrPGpD",
40
+ "scripts": {
41
+ "build": "tsdown --config-loader unconfig",
42
+ "clean": "rimraf ./build"
49
43
  }
50
- }
44
+ }
@@ -1,35 +0,0 @@
1
- import type { WorkflowInstanceRecord, WorkflowInstanceStatus } from './repository/WorkflowInstanceRecord';
2
- import type { BaseEvent } from '@credo-ts/core';
3
- export declare enum WorkflowEventTypes {
4
- WorkflowInstanceStateChanged = "WorkflowInstanceStateChanged",
5
- WorkflowInstanceStatusChanged = "WorkflowInstanceStatusChanged",
6
- WorkflowInstanceCompleted = "WorkflowInstanceCompleted"
7
- }
8
- export interface WorkflowInstanceStateChangedEvent extends BaseEvent {
9
- type: WorkflowEventTypes.WorkflowInstanceStateChanged;
10
- payload: {
11
- instanceRecord: WorkflowInstanceRecord;
12
- previousState: string | null;
13
- newState: string;
14
- event: string;
15
- actionKey?: string;
16
- msgId?: string;
17
- };
18
- }
19
- export interface WorkflowInstanceStatusChangedEvent extends BaseEvent {
20
- type: WorkflowEventTypes.WorkflowInstanceStatusChanged;
21
- payload: {
22
- instanceRecord: WorkflowInstanceRecord;
23
- previousStatus: WorkflowInstanceStatus | null;
24
- newStatus: WorkflowInstanceStatus;
25
- reason?: string;
26
- };
27
- }
28
- export interface WorkflowInstanceCompletedEvent extends BaseEvent {
29
- type: WorkflowEventTypes.WorkflowInstanceCompleted;
30
- payload: {
31
- instanceRecord: WorkflowInstanceRecord;
32
- state: string;
33
- section?: string;
34
- };
35
- }
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WorkflowEventTypes = void 0;
4
- var WorkflowEventTypes;
5
- (function (WorkflowEventTypes) {
6
- WorkflowEventTypes["WorkflowInstanceStateChanged"] = "WorkflowInstanceStateChanged";
7
- WorkflowEventTypes["WorkflowInstanceStatusChanged"] = "WorkflowInstanceStatusChanged";
8
- WorkflowEventTypes["WorkflowInstanceCompleted"] = "WorkflowInstanceCompleted";
9
- })(WorkflowEventTypes || (exports.WorkflowEventTypes = WorkflowEventTypes = {}));
10
- //# sourceMappingURL=WorkflowEvents.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WorkflowEvents.js","sourceRoot":"","sources":["../src/WorkflowEvents.ts"],"names":[],"mappings":";;;AAGA,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,mFAA6D,CAAA;IAC7D,qFAA+D,CAAA;IAC/D,6EAAuD,CAAA;AACzD,CAAC,EAJW,kBAAkB,kCAAlB,kBAAkB,QAI7B"}
@@ -1,13 +0,0 @@
1
- import type { WorkflowModuleConfigOptions } from './WorkflowModuleConfig';
2
- import type { AgentContext, DependencyManager, Module } from '@credo-ts/core';
3
- import { WorkflowModuleConfig } from './WorkflowModuleConfig';
4
- import { WorkflowApi } from './api/WorkflowApi';
5
- export declare const WORKFLOW_PROTOCOL_URI = "https://didcomm.org/workflow/1.0";
6
- export declare const WORKFLOW_ROLES: readonly ["processor", "coordinator"];
7
- export declare class WorkflowModule implements Module {
8
- readonly api: typeof WorkflowApi;
9
- readonly config: WorkflowModuleConfig;
10
- constructor(options?: WorkflowModuleConfigOptions);
11
- register(dependencyManager: DependencyManager): void;
12
- initialize(agentContext: AgentContext): Promise<void>;
13
- }