@chevre/domain 26.0.0-alpha.9 → 26.0.0

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 (315) hide show
  1. package/lib/chevre/eventEmitter/task.d.ts +8 -23
  2. package/lib/chevre/eventEmitter/task.js +2 -2
  3. package/lib/chevre/repo/acceptedOffer.d.ts +0 -7
  4. package/lib/chevre/repo/acceptedOffer.js +27 -27
  5. package/lib/chevre/repo/action/acceptCOAOffer.d.ts +3 -1
  6. package/lib/chevre/repo/action/acceptCOAOffer.js +8 -2
  7. package/lib/chevre/repo/action/acceptPay.d.ts +3 -1
  8. package/lib/chevre/repo/action/acceptPay.js +8 -4
  9. package/lib/chevre/repo/action/anyAction/actionProcess.d.ts +120 -0
  10. package/lib/chevre/repo/action/{actionProcess.js → anyAction/actionProcess.js} +28 -157
  11. package/lib/chevre/repo/action/anyAction/actionRecipe.d.ts +37 -0
  12. package/lib/chevre/repo/action/anyAction/actionRecipe.js +53 -0
  13. package/lib/chevre/repo/action/authorizeInvoice.d.ts +5 -8
  14. package/lib/chevre/repo/action/authorizeInvoice.js +7 -4
  15. package/lib/chevre/repo/action/authorizeOffer.d.ts +3 -1
  16. package/lib/chevre/repo/action/authorizeOffer.js +7 -2
  17. package/lib/chevre/repo/action/authorizePaymentMethod.d.ts +3 -1
  18. package/lib/chevre/repo/action/authorizePaymentMethod.js +7 -4
  19. package/lib/chevre/repo/action/authorizeTicketedObject.d.ts +3 -1
  20. package/lib/chevre/repo/action/authorizeTicketedObject.js +7 -2
  21. package/lib/chevre/repo/action/cancel.d.ts +25 -0
  22. package/lib/chevre/repo/action/cancel.js +47 -0
  23. package/lib/chevre/repo/action/checkMovieTicket.d.ts +3 -1
  24. package/lib/chevre/repo/action/checkMovieTicket.js +8 -1
  25. package/lib/chevre/repo/action/confirm.d.ts +11 -0
  26. package/lib/chevre/repo/action/confirm.js +16 -0
  27. package/lib/chevre/repo/action/create.d.ts +10 -0
  28. package/lib/chevre/repo/action/create.js +17 -0
  29. package/lib/chevre/repo/action/inform.d.ts +38 -0
  30. package/lib/chevre/repo/action/inform.js +146 -0
  31. package/lib/chevre/repo/action/order.d.ts +21 -0
  32. package/lib/chevre/repo/action/order.js +35 -0
  33. package/lib/chevre/repo/action/pay.d.ts +3 -1
  34. package/lib/chevre/repo/action/pay.js +7 -4
  35. package/lib/chevre/repo/action/refund.d.ts +3 -1
  36. package/lib/chevre/repo/action/refund.js +7 -4
  37. package/lib/chevre/repo/action/reserve.d.ts +21 -0
  38. package/lib/chevre/repo/action/reserve.js +37 -0
  39. package/lib/chevre/repo/action/returnAction.d.ts +11 -0
  40. package/lib/chevre/repo/action/returnAction.js +16 -0
  41. package/lib/chevre/repo/action/sendEmailMessage.d.ts +10 -0
  42. package/lib/chevre/repo/action/sendEmailMessage.js +17 -0
  43. package/lib/chevre/repo/action/sendOrder.d.ts +10 -0
  44. package/lib/chevre/repo/action/sendOrder.js +16 -0
  45. package/lib/chevre/repo/action/unknown2actionError.d.ts +6 -0
  46. package/lib/chevre/repo/action/unknown2actionError.js +15 -0
  47. package/lib/chevre/repo/action/update.d.ts +48 -0
  48. package/lib/chevre/repo/action/update.js +166 -0
  49. package/lib/chevre/repo/action/use.d.ts +39 -0
  50. package/lib/chevre/repo/action/use.js +153 -0
  51. package/lib/chevre/repo/{action.d.ts → adminAction.d.ts} +11 -37
  52. package/lib/chevre/repo/adminAction.js +176 -0
  53. package/lib/chevre/repo/adminAssetTransaction.d.ts +126 -0
  54. package/lib/chevre/repo/adminAssetTransaction.js +491 -0
  55. package/lib/chevre/repo/adminScheduledTask.d.ts +1 -1
  56. package/lib/chevre/repo/adminTask.d.ts +25 -8
  57. package/lib/chevre/repo/adminTask.js +31 -32
  58. package/lib/chevre/repo/adminTransaction.d.ts +131 -0
  59. package/lib/chevre/repo/adminTransaction.js +237 -0
  60. package/lib/chevre/repo/aggregateAction.d.ts +8 -11
  61. package/lib/chevre/repo/aggregateAction.js +0 -61
  62. package/lib/chevre/repo/aggregateAssetTransaction.d.ts +43 -0
  63. package/lib/chevre/repo/aggregateAssetTransaction.js +166 -0
  64. package/lib/chevre/repo/aggregateTransaction.d.ts +39 -0
  65. package/lib/chevre/repo/aggregateTransaction.js +166 -0
  66. package/lib/chevre/repo/aggregateUseAction.d.ts +35 -0
  67. package/lib/chevre/repo/aggregateUseAction.js +164 -0
  68. package/lib/chevre/repo/aggregation.d.ts +0 -8
  69. package/lib/chevre/repo/aggregation.js +0 -10
  70. package/lib/chevre/repo/assetTransaction.d.ts +10 -235
  71. package/lib/chevre/repo/assetTransaction.js +48 -636
  72. package/lib/chevre/repo/authorization.d.ts +0 -6
  73. package/lib/chevre/repo/authorization.js +15 -27
  74. package/lib/chevre/repo/message.d.ts +0 -7
  75. package/lib/chevre/repo/message.js +0 -38
  76. package/lib/chevre/repo/migrateAction.d.ts +48 -0
  77. package/lib/chevre/repo/migrateAction.js +32 -0
  78. package/lib/chevre/repo/mongoose/schemas/action/inform.d.ts +11 -0
  79. package/lib/chevre/repo/mongoose/schemas/action/inform.js +82 -0
  80. package/lib/chevre/repo/mongoose/schemas/action/update.d.ts +12 -0
  81. package/lib/chevre/repo/mongoose/schemas/action/update.js +112 -0
  82. package/lib/chevre/repo/mongoose/schemas/{ownershipInfo.d.ts → action/use.d.ts} +4 -6
  83. package/lib/chevre/repo/mongoose/schemas/action/use.js +92 -0
  84. package/lib/chevre/repo/mongoose/schemas/action.d.ts +1 -3
  85. package/lib/chevre/repo/mongoose/schemas/action.js +22 -7
  86. package/lib/chevre/repo/mongoose/schemas/actionRecipe.d.ts +1 -0
  87. package/lib/chevre/repo/mongoose/schemas/actionRecipe.js +19 -1
  88. package/lib/chevre/repo/mongoose/schemas/aggregateReservation.js +8 -9
  89. package/lib/chevre/repo/mongoose/schemas/aggregation.js +8 -1
  90. package/lib/chevre/repo/mongoose/schemas/assetTransaction.js +95 -76
  91. package/lib/chevre/repo/mongoose/schemas/authorization.js +25 -18
  92. package/lib/chevre/repo/mongoose/schemas/event.js +7 -0
  93. package/lib/chevre/repo/mongoose/schemas/eventOffer.js +7 -0
  94. package/lib/chevre/repo/mongoose/schemas/message.js +8 -1
  95. package/lib/chevre/repo/mongoose/schemas/pendingReservation.js +11 -4
  96. package/lib/chevre/repo/mongoose/schemas/setting.d.ts +5 -16
  97. package/lib/chevre/repo/mongoose/schemas/task.d.ts +2 -5
  98. package/lib/chevre/repo/mongoose/schemas/task.js +134 -118
  99. package/lib/chevre/repo/mongoose/schemas/ticket.js +8 -1
  100. package/lib/chevre/repo/orderInTransaction.d.ts +0 -3
  101. package/lib/chevre/repo/orderInTransaction.js +30 -22
  102. package/lib/chevre/repo/scheduledTask.d.ts +4 -1
  103. package/lib/chevre/repo/scheduledTask.js +3 -25
  104. package/lib/chevre/repo/task.d.ts +44 -155
  105. package/lib/chevre/repo/task.js +13 -555
  106. package/lib/chevre/repo/taskDelayed.d.ts +74 -0
  107. package/lib/chevre/repo/taskDelayed.js +195 -0
  108. package/lib/chevre/repo/taskRunning.d.ts +35 -0
  109. package/lib/chevre/repo/taskRunning.js +89 -0
  110. package/lib/chevre/repo/ticket.d.ts +0 -6
  111. package/lib/chevre/repo/ticket.js +0 -11
  112. package/lib/chevre/repo/transaction.d.ts +1 -187
  113. package/lib/chevre/repo/transaction.js +2 -383
  114. package/lib/chevre/repository.d.ts +65 -25
  115. package/lib/chevre/repository.js +144 -56
  116. package/lib/chevre/service/aggregation/system.d.ts +9 -8
  117. package/lib/chevre/service/aggregation/system.js +5 -5
  118. package/lib/chevre/service/assetTransaction/cancelReservation/start.js +10 -17
  119. package/lib/chevre/service/assetTransaction/pay/confirm.d.ts +0 -10
  120. package/lib/chevre/service/assetTransaction/pay/start/processAuthorize.d.ts +0 -1
  121. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeMovieTicket.d.ts +0 -1
  122. package/lib/chevre/service/assetTransaction/pay/start.d.ts +0 -1
  123. package/lib/chevre/service/assetTransaction/refund.d.ts +0 -1
  124. package/lib/chevre/service/assetTransaction/refund.js +2 -2
  125. package/lib/chevre/service/assetTransaction/reserve/cancel.d.ts +4 -2
  126. package/lib/chevre/service/assetTransaction/reserve/confirm.d.ts +4 -2
  127. package/lib/chevre/service/assetTransaction/reserveCOA/cancel.d.ts +8 -4
  128. package/lib/chevre/service/assetTransaction/reserveCOA/cancel.js +1 -1
  129. package/lib/chevre/service/asyncAction.d.ts +2 -2
  130. package/lib/chevre/service/asyncAction.js +1 -4
  131. package/lib/chevre/service/asyncActionHandler/onOperationFailed.d.ts +2 -2
  132. package/lib/chevre/service/asyncActionHandler/onOperationFailed.js +0 -2
  133. package/lib/chevre/service/asyncActionHandler.d.ts +4 -4
  134. package/lib/chevre/service/asyncActionHandler.js +11 -13
  135. package/lib/chevre/service/event/processUpdateMovieTheater.d.ts +4 -2
  136. package/lib/chevre/service/event/processUpdateMovieTheater.js +3 -3
  137. package/lib/chevre/service/event.d.ts +4 -2
  138. package/lib/chevre/service/event.js +3 -3
  139. package/lib/chevre/service/notification/sendEmailMessage.d.ts +4 -2
  140. package/lib/chevre/service/notification/sendEmailMessage.js +3 -3
  141. package/lib/chevre/service/notification/triggerWebhook.d.ts +4 -2
  142. package/lib/chevre/service/notification/triggerWebhook.js +5 -16
  143. package/lib/chevre/service/offer/event/authorize.d.ts +0 -1
  144. package/lib/chevre/service/offer/event/issueEventOfferTicket.d.ts +0 -1
  145. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4chevre.d.ts +4 -2
  146. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4chevre.js +1 -3
  147. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4coa.d.ts +9 -5
  148. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4coa.js +1 -1
  149. package/lib/chevre/service/offer/event/voidTransaction.d.ts +6 -4
  150. package/lib/chevre/service/offer/event/voidTransaction.js +7 -9
  151. package/lib/chevre/service/offer/event/voidTransactionByActionId.d.ts +6 -4
  152. package/lib/chevre/service/offer/event/voidTransactionByActionId.js +3 -15
  153. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer.js +1 -1
  154. package/lib/chevre/service/offer/eventServiceByCOA/changeOffers.js +1 -1
  155. package/lib/chevre/service/offer/eventServiceByCOA/findAcceptAction.d.ts +0 -4
  156. package/lib/chevre/service/offer/eventServiceByCOA/findAcceptAction.js +19 -19
  157. package/lib/chevre/service/offer/onEventChanged.js +0 -2
  158. package/lib/chevre/service/order/confirmPayTransaction.d.ts +4 -10
  159. package/lib/chevre/service/order/confirmPayTransaction.js +7 -11
  160. package/lib/chevre/service/order/createAccountingReportIfNotExist.d.ts +1 -1
  161. package/lib/chevre/service/order/createAccountingReportIfNotExist.js +2 -56
  162. package/lib/chevre/service/order/deleteOrder.d.ts +2 -2
  163. package/lib/chevre/service/order/deleteOrder.js +1 -2
  164. package/lib/chevre/service/order/onAssetTransactionStatusChanged/isDeliverable.js +1 -49
  165. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onPayTransactionConfirmed.js +2 -2
  166. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered/factory.js +2 -4
  167. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.js +2 -4
  168. package/lib/chevre/service/order/onOrderStatusChanged/onOrderInTransit.js +2 -2
  169. package/lib/chevre/service/order/onOrderStatusChanged/onOrderPaymentDue.js +1 -1
  170. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/createSendEmailMessageTaskIfNotExist.js +1 -9
  171. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/factory.d.ts +2 -2
  172. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/factory.js +4 -8
  173. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/processOrder.js +1 -1
  174. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned/factory.js +5 -11
  175. package/lib/chevre/service/order/onOrderUpdated/factory.js +0 -3
  176. package/lib/chevre/service/order/placeOrder/createPlacingOrderFromExistingTransaction.d.ts +4 -2
  177. package/lib/chevre/service/order/placeOrder/createPlacingOrderFromExistingTransaction.js +2 -2
  178. package/lib/chevre/service/order/placeOrder.d.ts +6 -4
  179. package/lib/chevre/service/order/placeOrder.js +9 -17
  180. package/lib/chevre/service/order/returnOrder.d.ts +4 -4
  181. package/lib/chevre/service/order/returnOrder.js +11 -43
  182. package/lib/chevre/service/order/sendOrder.d.ts +4 -6
  183. package/lib/chevre/service/order/sendOrder.js +30 -72
  184. package/lib/chevre/service/payment/any/authorize/fixTransactionNumber.d.ts +0 -1
  185. package/lib/chevre/service/payment/any/authorize/handlePrePublishedPaymentMethodIdOnAuthorizing.d.ts +0 -1
  186. package/lib/chevre/service/payment/any/authorize.d.ts +0 -1
  187. package/lib/chevre/service/payment/any/findAcceptAction.d.ts +0 -4
  188. package/lib/chevre/service/payment/any/findAcceptAction.js +19 -19
  189. package/lib/chevre/service/payment/any/findAuthorizeAction.d.ts +0 -4
  190. package/lib/chevre/service/payment/any/findAuthorizeAction.js +19 -19
  191. package/lib/chevre/service/payment/any/findCheckAction.d.ts +0 -4
  192. package/lib/chevre/service/payment/any/findCheckAction.js +19 -19
  193. package/lib/chevre/service/payment/any/invalidatePaymentUrl.d.ts +0 -1
  194. package/lib/chevre/service/payment/any/onPayActionCompleted.d.ts +0 -1
  195. package/lib/chevre/service/payment/any/onPaymentStatusChanged.js +2 -2
  196. package/lib/chevre/service/payment/any/onRefundActionCompletedOrFailed.d.ts +0 -1
  197. package/lib/chevre/service/payment/any/processVoidPayTransaction.d.ts +0 -1
  198. package/lib/chevre/service/payment/any/processVoidPayTransaction.js +2 -2
  199. package/lib/chevre/service/payment/any/publishPaymentUrl.d.ts +0 -2
  200. package/lib/chevre/service/payment/any/publishPaymentUrl.js +2 -2
  201. package/lib/chevre/service/payment/any/voidPayTransaction.d.ts +0 -1
  202. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard.d.ts +0 -1
  203. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard3ds.d.ts +0 -1
  204. package/lib/chevre/service/payment/creditCard/authorize.d.ts +0 -1
  205. package/lib/chevre/service/payment/creditCard/payCreditCard.d.ts +0 -1
  206. package/lib/chevre/service/payment/creditCard/refundCreditCard.d.ts +0 -1
  207. package/lib/chevre/service/payment/faceToFace.d.ts +0 -2
  208. package/lib/chevre/service/payment/movieTicket/authorize.d.ts +0 -1
  209. package/lib/chevre/service/payment/movieTicket/payMovieTicket.d.ts +0 -1
  210. package/lib/chevre/service/payment/movieTicket/refundMovieTicket.d.ts +0 -1
  211. package/lib/chevre/service/project.d.ts +0 -6
  212. package/lib/chevre/service/project.js +0 -2
  213. package/lib/chevre/service/reserve/cancelReservation.d.ts +7 -3
  214. package/lib/chevre/service/reserve/cancelReservation.js +15 -25
  215. package/lib/chevre/service/reserve/checkInReservation.d.ts +4 -2
  216. package/lib/chevre/service/reserve/checkInReservation.js +2 -2
  217. package/lib/chevre/service/reserve/confirmReservation.d.ts +4 -2
  218. package/lib/chevre/service/reserve/confirmReservation.js +10 -36
  219. package/lib/chevre/service/reserve/potentialActions/onReservationConfirmed.js +1 -1
  220. package/lib/chevre/service/reserve/useReservation.d.ts +6 -2
  221. package/lib/chevre/service/reserve/useReservation.js +6 -24
  222. package/lib/chevre/service/reserveCOA/cancelReservation.d.ts +4 -2
  223. package/lib/chevre/service/reserveCOA/cancelReservation.js +3 -3
  224. package/lib/chevre/service/scheduledTask.d.ts +1 -4
  225. package/lib/chevre/service/scheduledTask.js +3 -10
  226. package/lib/chevre/service/scheduledTaskHandler/onOperationFailed.js +1 -2
  227. package/lib/chevre/service/scheduledTaskHandler.js +0 -13
  228. package/lib/chevre/service/task/acceptCOAOffer.js +1 -14
  229. package/lib/chevre/service/task/authorizePayment.js +1 -7
  230. package/lib/chevre/service/task/cancelPendingReservation.js +3 -4
  231. package/lib/chevre/service/task/cancelReservation.js +3 -5
  232. package/lib/chevre/service/task/checkMovieTicket.js +1 -7
  233. package/lib/chevre/service/task/checkResource.js +14 -57
  234. package/lib/chevre/service/task/confirmPayTransaction.js +11 -12
  235. package/lib/chevre/service/task/confirmReserveTransaction.d.ts +6 -2
  236. package/lib/chevre/service/task/confirmReserveTransaction.js +12 -7
  237. package/lib/chevre/service/task/createAccountingReport.js +8 -15
  238. package/lib/chevre/service/task/deleteTransaction.js +10 -41
  239. package/lib/chevre/service/task/importEventsFromCOA.js +4 -2
  240. package/lib/chevre/service/task/invalidatePaymentUrl.js +0 -1
  241. package/lib/chevre/service/task/onAuthorizationCreated.js +4 -13
  242. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByAggregateOffer.d.ts +4 -2
  243. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByAggregateOffer.js +4 -4
  244. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByEventSeries.d.ts +4 -2
  245. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByEventSeries.js +4 -4
  246. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByMovieTheater.d.ts +4 -2
  247. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByMovieTheater.js +4 -4
  248. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByOfferCatalog.d.ts +4 -2
  249. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByOfferCatalog.js +4 -4
  250. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByProduct.d.ts +4 -2
  251. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByProduct.js +4 -4
  252. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByRoom.d.ts +4 -2
  253. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByRoom.js +4 -4
  254. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesBySeller.d.ts +4 -2
  255. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesBySeller.js +4 -4
  256. package/lib/chevre/service/task/onResourceDeleted.js +4 -3
  257. package/lib/chevre/service/task/onResourceUpdated/onAggregateOfferUpdated.js +0 -1
  258. package/lib/chevre/service/task/onResourceUpdated/onHasPOSUpdated.js +0 -1
  259. package/lib/chevre/service/task/onResourceUpdated/onOfferCatalogUpdated.js +0 -1
  260. package/lib/chevre/service/task/onResourceUpdated.js +0 -10
  261. package/lib/chevre/service/task/pay.js +0 -1
  262. package/lib/chevre/service/task/payment/invalidatePaymentUrlByTask.d.ts +0 -1
  263. package/lib/chevre/service/task/payment/payByTask.d.ts +0 -1
  264. package/lib/chevre/service/task/payment/refundByTask.d.ts +0 -1
  265. package/lib/chevre/service/task/payment/voidPaymentByTask.d.ts +0 -2
  266. package/lib/chevre/service/task/placeOrder.js +8 -6
  267. package/lib/chevre/service/task/publishPaymentUrl.js +2 -13
  268. package/lib/chevre/service/task/refund.js +0 -1
  269. package/lib/chevre/service/task/reserve.js +3 -6
  270. package/lib/chevre/service/task/returnOrder.js +3 -7
  271. package/lib/chevre/service/task/returnPayTransaction.js +9 -19
  272. package/lib/chevre/service/task/returnReserveTransaction.js +5 -6
  273. package/lib/chevre/service/task/sendEmailMessage.js +2 -2
  274. package/lib/chevre/service/task/sendOrder.js +4 -8
  275. package/lib/chevre/service/task/syncResourcesFromCOA.js +31 -23
  276. package/lib/chevre/service/task/triggerWebhook.js +4 -2
  277. package/lib/chevre/service/task/useReservation.js +6 -2
  278. package/lib/chevre/service/task/voidPayment.js +0 -2
  279. package/lib/chevre/service/task/voidReserveTransaction.js +11 -13
  280. package/lib/chevre/service/task.d.ts +4 -4
  281. package/lib/chevre/service/task.js +8 -12
  282. package/lib/chevre/service/taskHandler/onOperationFailed/informTaskIfNeeded.js +0 -1
  283. package/lib/chevre/service/taskHandler/onOperationFailed.d.ts +3 -2
  284. package/lib/chevre/service/taskHandler/onOperationFailed.js +5 -16
  285. package/lib/chevre/service/taskHandler.d.ts +1 -2
  286. package/lib/chevre/service/taskHandler.js +7 -19
  287. package/lib/chevre/service/transaction/deleteTransaction/deletePayTransactionsByPlaceOrder.js +2 -2
  288. package/lib/chevre/service/transaction/deleteTransaction/deleteReservationsByPlaceOrder.js +2 -2
  289. package/lib/chevre/service/transaction/deleteTransaction.d.ts +8 -4
  290. package/lib/chevre/service/transaction/deleteTransaction.js +7 -7
  291. package/lib/chevre/service/transaction/placeOrder/confirm.js +1 -1
  292. package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.d.ts +1 -1
  293. package/lib/chevre/service/transaction/placeOrder/exportTasksById.js +11 -17
  294. package/lib/chevre/service/transaction/returnOrder.js +11 -17
  295. package/lib/chevre/service/validation/validateOrder.d.ts +0 -4
  296. package/lib/chevre/service/validation/validateOrder.js +3 -3
  297. package/lib/chevre/taskSettings.d.ts +4 -4
  298. package/package.json +2 -2
  299. package/lib/chevre/repo/action/actionProcess.d.ts +0 -147
  300. package/lib/chevre/repo/action/checkThing.d.ts +0 -8
  301. package/lib/chevre/repo/action/checkThing.js +0 -13
  302. package/lib/chevre/repo/action.js +0 -468
  303. package/lib/chevre/repo/asyncActionLegacy.d.ts +0 -23
  304. package/lib/chevre/repo/asyncActionLegacy.js +0 -59
  305. package/lib/chevre/repo/mongoose/schemas/ownershipInfo.js +0 -227
  306. package/lib/chevre/repo/mongoose/schemas/pendingReservationAggregate.d.ts +0 -25
  307. package/lib/chevre/repo/mongoose/schemas/pendingReservationAggregate.js +0 -100
  308. package/lib/chevre/repo/ownershipInfo.d.ts +0 -122
  309. package/lib/chevre/repo/ownershipInfo.js +0 -466
  310. package/lib/chevre/repo/scheduledTaskLegacy.d.ts +0 -39
  311. package/lib/chevre/repo/scheduledTaskLegacy.js +0 -96
  312. package/lib/chevre/repo/scheduledTaskMigration.d.ts +0 -21
  313. package/lib/chevre/repo/scheduledTaskMigration.js +0 -70
  314. package/lib/chevre/service/validation/validateEvent.d.ts +0 -11
  315. package/lib/chevre/service/validation/validateEvent.js +0 -21
@@ -1,45 +1,10 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.TaskRepo = void 0;
7
- const moment_1 = __importDefault(require("moment"));
8
4
  const errorHandler_1 = require("../errorHandler");
9
5
  const task_1 = require("../eventEmitter/task");
10
6
  const factory_1 = require("../factory");
11
- const settings_1 = require("../settings");
12
7
  const task_2 = require("./mongoose/schemas/task");
13
- const executableTaskProjection = {
14
- _id: 0,
15
- id: { $toString: '$_id' },
16
- // 必要最低限にprojection(2024-04-23~)
17
- data: 1,
18
- name: 1,
19
- status: 1,
20
- numberOfTried: 1,
21
- project: 1,
22
- remainingNumberOfTries: 1,
23
- runsAt: 1,
24
- expires: 1
25
- };
26
- const AVAILABLE_PROJECT_FIELDS = [
27
- 'alternateName',
28
- 'identifier',
29
- 'description',
30
- 'project',
31
- 'name',
32
- 'status',
33
- 'runsAt',
34
- 'remainingNumberOfTries',
35
- 'lastTriedAt',
36
- 'numberOfTried',
37
- 'executionResults',
38
- 'executor',
39
- 'data',
40
- 'dateAborted',
41
- 'expires'
42
- ];
43
8
  /**
44
9
  * タスクリポジトリ
45
10
  */
@@ -50,7 +15,6 @@ class TaskRepo {
50
15
  }
51
16
  async saveMany(taskAttributes) {
52
17
  const emitImmediately = true; // always true(2026-07-30~)
53
- // const emitImmediately = options?.emitImmediately === true;
54
18
  if (taskAttributes.length > 0) {
55
19
  const creatingTasks = taskAttributes.map(({ identifier, ...creatingTask }) => creatingTask); // eslint-disable-line @typescript-eslint/no-unused-vars
56
20
  const result = await this.taskModel.insertMany(creatingTasks, { ordered: false, rawResult: true });
@@ -68,14 +32,7 @@ class TaskRepo {
68
32
  status: factory_1.factory.taskStatus.Ready
69
33
  });
70
34
  });
71
- // taskAttributes.forEach((savedTask) => {
72
- // taskEventEmitter.emitTaskStatusChanged({
73
- // name: savedTask.name,
74
- // status: factory.taskStatus.Ready
75
- // });
76
- // });
77
35
  }
78
- // return result.ops;
79
36
  return savedTasks;
80
37
  }
81
38
  else {
@@ -104,6 +61,19 @@ class TaskRepo {
104
61
  const { id, status } = doc;
105
62
  return { id, status };
106
63
  }
64
+ /**
65
+ * イベント予約集計タスクの冗長な作成を避けるためのメソッド
66
+ */
67
+ async findReadyAggregateEventTask(params) {
68
+ return this.taskModel.findOne({
69
+ 'project.id': { $eq: params.project.id },
70
+ name: { $eq: factory_1.factory.taskName.AggregateScreeningEvent },
71
+ status: { $eq: factory_1.factory.taskStatus.Ready },
72
+ 'data.id': { $exists: true, $eq: params.reservationFor.id }
73
+ }, { _id: 1 })
74
+ .lean()
75
+ .exec();
76
+ }
107
77
  /**
108
78
  * タスク識別子から冪等作成する
109
79
  * reimplement createIfNotExistByIdentifier(2025-03-28~)
@@ -114,12 +84,6 @@ class TaskRepo {
114
84
  if (typeof params.identifier !== 'string' || params.identifier.length === 0) {
115
85
  throw new factory_1.factory.errors.ArgumentNull('identifier');
116
86
  }
117
- if (typeof params.alternateName !== 'string' || params.alternateName.length === 0) {
118
- throw new factory_1.factory.errors.ArgumentNull('alternateName');
119
- }
120
- if (params.identifier !== params.alternateName) {
121
- throw new factory_1.factory.errors.Argument('identifier,alternateName not matched');
122
- }
123
87
  let createdTask;
124
88
  const filterQuery = {
125
89
  'project.id': { $eq: params.project.id },
@@ -165,420 +129,6 @@ class TaskRepo {
165
129
  throw new factory_1.factory.errors.Internal(`falied in creating a task unexpectedly. ${params.identifier}`);
166
130
  }
167
131
  }
168
- // /**
169
- // * 取引削除タスク冪等作成
170
- // */
171
- // public async createDeleteTransactionTaskIfNotExist(
172
- // // resolve uniqueness of identifier(2025-03-27~)
173
- // params: Pick<
174
- // factory.task.IAttributes<factory.taskName.DeleteTransaction>,
175
- // 'data' | 'executionResults' | 'name' | 'numberOfTried' | 'project' | 'remainingNumberOfTries' | 'runsAt' | 'status'
176
- // >,
177
- // options: IOptionOnCreate
178
- // ): Promise<void> {
179
- // if (params.data.object.specifyingMethod !== factory.action.update.deleteAction.ObjectAsTransactionSpecifyingMethod.Id) {
180
- // throw new factory.errors.NotImplemented(`only ${factory.action.update.deleteAction.ObjectAsTransactionSpecifyingMethod.Id} implemented`);
181
- // }
182
- // const createdTask = await this.taskModel.findOneAndUpdate(
183
- // {
184
- // 'project.id': { $eq: params.project.id },
185
- // name: { $eq: params.name },
186
- // 'data.object.id': { $exists: true, $eq: params.data.object.id }
187
- // },
188
- // { $setOnInsert: params },
189
- // { new: true, upsert: true }
190
- // )
191
- // .select({ _id: 1 })
192
- // .exec();
193
- // if (options.emitImmediately) {
194
- // taskEventEmitter.emitTaskStatusChanged({
195
- // id: createdTask.id,
196
- // name: params.name,
197
- // status: factory.taskStatus.Ready
198
- // });
199
- // }
200
- // }
201
- async createOnAssetTransactionStatusChangedTaskIfNotExist(params) {
202
- const emitImmediately = true; // always true(2026-07-30~)
203
- const createdTask = await this.taskModel.findOneAndUpdate({
204
- 'project.id': { $eq: params.project.id },
205
- name: { $eq: params.name },
206
- 'data.object.transactionNumber': {
207
- $exists: true,
208
- $eq: String(params.data.object.transactionNumber)
209
- },
210
- 'data.purpose.orderNumber': {
211
- $exists: true,
212
- $eq: String(params.data.purpose.orderNumber)
213
- }
214
- }, { $setOnInsert: params }, { new: true, upsert: true })
215
- .select({ _id: 1 })
216
- .exec();
217
- if (emitImmediately) {
218
- task_1.taskEventEmitter.emitTaskStatusChanged({
219
- id: createdTask.id,
220
- name: params.name,
221
- status: factory_1.factory.taskStatus.Ready
222
- });
223
- }
224
- }
225
- /**
226
- * Ready -> remainingNumberOfTriesが1減る
227
- * Running -> findOneするだけ
228
- */
229
- async executeOneById(params) {
230
- const now = new Date();
231
- let doc;
232
- if (params.status === factory_1.factory.taskStatus.Running) {
233
- doc = await this.taskModel.findOne({
234
- _id: { $eq: params.id },
235
- status: { $eq: params.status },
236
- runsAt: { $lt: now },
237
- ...(params.expires instanceof Date) ? { expires: { $gt: now } } : undefined
238
- }, executableTaskProjection)
239
- .setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
240
- .lean()
241
- .exec();
242
- }
243
- else {
244
- doc = await this.taskModel.findOneAndUpdate({
245
- _id: { $eq: params.id },
246
- status: { $eq: params.status },
247
- runsAt: { $lt: now },
248
- ...(params.expires instanceof Date) ? { expires: { $gt: now } } : undefined
249
- }, {
250
- $set: {
251
- status: factory_1.factory.taskStatus.Running, // 実行中に変更
252
- lastTriedAt: now,
253
- executor: params.executor
254
- },
255
- $inc: {
256
- remainingNumberOfTries: -1, // 残りトライ可能回数減らす
257
- numberOfTried: 1 // トライ回数増やす
258
- }
259
- }, { new: true, projection: executableTaskProjection })
260
- .setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
261
- .lean() // lean(2024-09-26~)
262
- .exec();
263
- }
264
- if (doc === null) {
265
- return null;
266
- }
267
- return doc;
268
- }
269
- // 不要なので廃止(2026-08-04~)
270
- // /**
271
- // * Readyのタスクをname指定でひとつRunningに変更する
272
- // */
273
- // public async executeOneIfExists(params: {
274
- // name: {
275
- // $eq: factory.taskName;
276
- // // $nin?: factory.taskName[]; // discontinue(2025-08-07~)
277
- // };
278
- // executor: { name: string };
279
- // runsAt: {
280
- // $lt: Date;
281
- // };
282
- // sort: {
283
- // numberOfTried?: factory.sortType; // トライ回数の少なさ優先
284
- // runsAt?: factory.sortType; // 実行予定日時の早さ優先
285
- // };
286
- // }): Promise<IExecutableTask<factory.taskName> | null> {
287
- // if (!(params.runsAt.$lt instanceof Date)) {
288
- // throw new factory.errors.Argument('runsAt.$lt', 'must be Date');
289
- // }
290
- // const nameEq = params.name?.$eq;
291
- // // const nameNin = params.name?.$nin;
292
- // const doc = await this.taskModel.findOneAndUpdate(
293
- // {
294
- // status: { $eq: factory.taskStatus.Ready },
295
- // runsAt: { $lt: params.runsAt.$lt },
296
- // ...(typeof nameEq === 'string')
297
- // ? {
298
- // name: {
299
- // ...(typeof nameEq === 'string') ? { $eq: nameEq } : undefined
300
- // // ...(Array.isArray(nameNin)) ? { $nin: nameNin } : undefined
301
- // }
302
- // }
303
- // : undefined
304
- // },
305
- // {
306
- // $set: {
307
- // status: factory.taskStatus.Running, // 実行中に変更
308
- // lastTriedAt: new Date(),
309
- // executor: params.executor
310
- // },
311
- // $inc: {
312
- // remainingNumberOfTries: -1, // 残りトライ可能回数減らす
313
- // numberOfTried: 1 // トライ回数増やす
314
- // }
315
- // },
316
- // {
317
- // new: true,
318
- // projection: executableTaskProjection,
319
- // ...(typeof params.sort.numberOfTried === 'number' || typeof params.sort.runsAt === 'number')
320
- // ? { sort: params.sort }
321
- // : undefined
322
- // }
323
- // )
324
- // .setOptions({ maxTimeMS: MONGO_MAX_TIME_MS })
325
- // .lean<IExecutableTask<factory.taskName>>() // lean(2024-09-26~)
326
- // .exec();
327
- // if (doc === null) {
328
- // return null;
329
- // }
330
- // return doc;
331
- // }
332
- /**
333
- * 潜在的に実行されるべきタスクをカウントする
334
- * add(2025-03-16~)
335
- */
336
- async countPotentiallyRunning(params) {
337
- const { runsAt, limit, name } = params;
338
- const nameEq = name?.$eq;
339
- const nameIn = name?.$in;
340
- if (!(runsAt.$lt instanceof Date)) {
341
- throw new factory_1.factory.errors.Argument('runsAt.$lt', 'must be Date');
342
- }
343
- const query = this.taskModel.countDocuments({
344
- status: { $eq: factory_1.factory.taskStatus.Ready },
345
- runsAt: { $lt: params.runsAt.$lt },
346
- ...(typeof nameEq === 'string' || Array.isArray(nameIn))
347
- ? {
348
- name: {
349
- ...(typeof nameEq === 'string') ? { $eq: nameEq } : undefined,
350
- ...(Array.isArray(nameIn)) ? { $in: nameIn } : undefined
351
- }
352
- }
353
- : undefined
354
- });
355
- if (typeof limit === 'number' && limit >= 0) {
356
- query.limit(limit);
357
- }
358
- const count = await query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
359
- .exec();
360
- return { count };
361
- }
362
- /**
363
- * 実行日時を一定期間過ぎたReadyタスクについて、Runningステータスに変更する
364
- */
365
- async runDelayedTask(params) {
366
- const { filter } = params;
367
- const projection = {
368
- _id: 0,
369
- id: { $toString: '$_id' },
370
- name: 1
371
- };
372
- return this.taskModel.findOneAndUpdate(filter, {
373
- $set: {
374
- status: factory_1.factory.taskStatus.Running, // 実行中に変更
375
- lastTriedAt: new Date(),
376
- executor: params.executor
377
- },
378
- $inc: {
379
- remainingNumberOfTries: -1, // 残りトライ可能回数減らす
380
- numberOfTried: 1 // トライ回数増やす
381
- }
382
- }, {
383
- new: true,
384
- projection,
385
- ...(typeof params.sort.numberOfTried === 'number' || typeof params.sort.runsAt === 'number')
386
- ? { sort: params.sort }
387
- : undefined
388
- })
389
- .setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
390
- .lean()
391
- .exec();
392
- }
393
- /**
394
- * 実行日時を一定期間過ぎたReadyタスクについて、Runningステータスに変更した上で、Runningイベントを発生させる
395
- */
396
- async emitRunningIfExistsByName(params) {
397
- if (!(params.runsAt.$lt instanceof Date)) {
398
- throw new factory_1.factory.errors.Argument('runsAt.$lt', 'must be Date');
399
- }
400
- // const projection: ProjectionType<IDocType> = {
401
- // _id: 0,
402
- // id: { $toString: '$_id' },
403
- // name: 1
404
- // };
405
- // インデックス'executeOneByNameIfExists'を想定したfilter
406
- const filter = {
407
- status: { $eq: factory_1.factory.taskStatus.Ready },
408
- runsAt: { $lt: params.runsAt.$lt },
409
- name: params.name
410
- };
411
- const doc = await this.runDelayedTask({
412
- filter,
413
- sort: params.sort,
414
- executor: params.executor
415
- });
416
- // const doc = await this.taskModel.findOneAndUpdate(
417
- // filter,
418
- // {
419
- // $set: {
420
- // status: factory.taskStatus.Running, // 実行中に変更
421
- // lastTriedAt: new Date(),
422
- // executor: params.executor
423
- // },
424
- // $inc: {
425
- // remainingNumberOfTries: -1, // 残りトライ可能回数減らす
426
- // numberOfTried: 1 // トライ回数増やす
427
- // }
428
- // },
429
- // {
430
- // new: true,
431
- // projection,
432
- // ...(typeof params.sort.numberOfTried === 'number' || typeof params.sort.runsAt === 'number')
433
- // ? { sort: params.sort }
434
- // : undefined
435
- // }
436
- // )
437
- // .setOptions({ maxTimeMS: MONGO_MAX_TIME_MS })
438
- // .lean<Pick<factory.task.ITask<factory.taskName>, 'id' | 'name'>>()
439
- // .exec();
440
- if (doc === null) {
441
- return null;
442
- }
443
- const nameEq = params.name?.$eq;
444
- let changedTask;
445
- if (typeof nameEq === 'string') {
446
- changedTask = {
447
- id: doc.id,
448
- status: factory_1.factory.taskStatus.Running,
449
- name: nameEq
450
- };
451
- }
452
- else {
453
- changedTask = {
454
- id: doc.id,
455
- status: factory_1.factory.taskStatus.Running
456
- };
457
- }
458
- task_1.taskEventEmitter.emitTaskStatusChanged(changedTask);
459
- return doc;
460
- }
461
- /**
462
- * 実行日時を一定期間過ぎたReadyタスクについて、Runningステータスに変更した上で、Runningイベントを発生させる
463
- * taskNameで絞らない
464
- * 2026-08-04~
465
- */
466
- async emitRunningIfExistsNoName(params) {
467
- if (!(params.runsAt.$lt instanceof Date)) {
468
- throw new factory_1.factory.errors.Argument('runsAt.$lt', 'must be Date');
469
- }
470
- // インデックス'executeOneByNameIfExists'を想定したfilter
471
- const filter = {
472
- status: { $eq: factory_1.factory.taskStatus.Ready },
473
- runsAt: { $lt: params.runsAt.$lt }
474
- };
475
- const doc = await this.runDelayedTask({
476
- filter,
477
- sort: {
478
- runsAt: factory_1.factory.sortType.Ascending // ソートはrunsAtのみにしてみる(2026-08-04~)
479
- },
480
- executor: params.executor
481
- });
482
- if (doc === null) {
483
- return null;
484
- }
485
- const changedTask = {
486
- id: doc.id,
487
- status: factory_1.factory.taskStatus.Running
488
- };
489
- task_1.taskEventEmitter.emitTaskStatusChanged(changedTask);
490
- return doc;
491
- }
492
- /**
493
- * Runningのまま一定期間超過し、かつ、remainingNumberOfTries>0のタスクをReadyに変更する
494
- */
495
- async retryTasks(params) {
496
- const lastTriedAtShoudBeLessThan = (0, moment_1.default)()
497
- .add(-params.intervalInMinutes, 'minutes')
498
- .toDate();
499
- // const remainingNumberOfTriesGte = params.remainingNumberOfTries.$gte;
500
- // const remainingNumberOfTriesLte = params.remainingNumberOfTries.$lte;
501
- return this.taskModel.updateMany(
502
- // name: 'retry'のindexと連動しているので、条件の順序などには注意すること
503
- // @see schemas/task
504
- {
505
- status: { $eq: factory_1.factory.taskStatus.Running },
506
- lastTriedAt: {
507
- $type: 'date',
508
- $lt: lastTriedAtShoudBeLessThan
509
- },
510
- remainingNumberOfTries: { $gte: 1 },
511
- // ...(typeof remainingNumberOfTriesGte === 'number')
512
- // ? { remainingNumberOfTries: { $gte: remainingNumberOfTriesGte } }
513
- // : undefined,
514
- // ...(typeof remainingNumberOfTriesLte === 'number')
515
- // ? { remainingNumberOfTries: { $lte: remainingNumberOfTriesLte } }
516
- // : undefined,
517
- // ...(Array.isArray(params.name.$in)) ? { name: { $in: params.name.$in } } : undefined
518
- }, {
519
- $set: {
520
- status: factory_1.factory.taskStatus.Ready // 実行前に変更
521
- }
522
- })
523
- .exec();
524
- }
525
- /**
526
- * $lte:0をReadyにする(特定のタスクを除いて) -> Readyにすれば自動的にAbortedになる
527
- */
528
- async retryAbortingTasksByName(params) {
529
- const lastTriedAtShoudBeLessThan = (0, moment_1.default)()
530
- .add(-params.intervalInMinutes, 'minutes')
531
- .toDate();
532
- // const remainingNumberOfTriesGte = params.remainingNumberOfTries.$gte;
533
- // const remainingNumberOfTriesLte = params.remainingNumberOfTries.$lte;
534
- return this.taskModel.updateMany(
535
- // name: 'retry'のindexと連動しているので、条件の順序などには注意すること
536
- // @see schemas/task
537
- {
538
- status: { $eq: factory_1.factory.taskStatus.Running },
539
- lastTriedAt: {
540
- $type: 'date',
541
- $lt: lastTriedAtShoudBeLessThan
542
- },
543
- remainingNumberOfTries: { $lte: 0 },
544
- // ...(typeof remainingNumberOfTriesGte === 'number')
545
- // ? { remainingNumberOfTries: { $gte: remainingNumberOfTriesGte } }
546
- // : undefined,
547
- // ...(typeof remainingNumberOfTriesLte === 'number')
548
- // ? { remainingNumberOfTries: { $lte: remainingNumberOfTriesLte } }
549
- // : undefined,
550
- ...(Array.isArray(params.name.$in)) ? { name: { $in: params.name.$in } } : undefined
551
- }, {
552
- $set: {
553
- status: factory_1.factory.taskStatus.Ready // 実行前に変更
554
- }
555
- })
556
- .exec();
557
- }
558
- /**
559
- * $lte:0をReadyにする(特定のタスクを除いて) -> Readyにすれば自動的にAbortedになる
560
- */
561
- async retryAbortingTasks(params) {
562
- const lastTriedAtShoudBeLessThan = (0, moment_1.default)()
563
- .add(-params.intervalInMinutes, 'minutes')
564
- .toDate();
565
- return this.taskModel.updateMany(
566
- // name: 'retry'のindexと連動しているので、条件の順序などには注意すること
567
- // @see schemas/task
568
- {
569
- status: { $eq: factory_1.factory.taskStatus.Running },
570
- lastTriedAt: {
571
- $type: 'date',
572
- $lt: lastTriedAtShoudBeLessThan
573
- },
574
- remainingNumberOfTries: { $lte: 0 }
575
- }, {
576
- $set: {
577
- status: factory_1.factory.taskStatus.Ready // 実行前に変更
578
- }
579
- })
580
- .exec();
581
- }
582
132
  /**
583
133
  * 実行中止済タスクを強制的にリトライ
584
134
  * 中止済タスクでなければ何もしない
@@ -597,97 +147,5 @@ class TaskRepo {
597
147
  })
598
148
  .exec();
599
149
  }
600
- /**
601
- * タスクIDから実行結果とステータスを保管する
602
- * Abortedの場合、dateAbortedもセットする
603
- */
604
- async setExecutionResultAndStatus(params, update,
605
- // support customr function(2025-05-25~)
606
- next) {
607
- const { id, remainingNumberOfTries, name } = params;
608
- const { status, executionResult } = update;
609
- await this.taskModel.updateOne({ _id: { $eq: id } }, {
610
- $set: {
611
- status,
612
- ...(status === factory_1.factory.taskStatus.Aborted) ? { dateAborted: executionResult.endDate } : undefined // 2025-08-04~
613
- },
614
- $push: { executionResults: executionResult }
615
- })
616
- .exec();
617
- // emit event(2025-05-26~)
618
- if (typeof next === 'function') {
619
- const changedTask = { id, name, status, remainingNumberOfTries, executionResult };
620
- task_1.taskEventEmitter.emitTaskStatusChanged(changedTask, next);
621
- }
622
- }
623
- /**
624
- * タスクの状態を参照する
625
- * 非同期アクション移行が完了したら廃止する(2026-07-29~)
626
- */
627
- async findTaskById(params, inclusion) {
628
- let positiveProjectionFields = AVAILABLE_PROJECT_FIELDS;
629
- if (Array.isArray(inclusion) && inclusion.length > 0) {
630
- positiveProjectionFields = inclusion.filter((key) => AVAILABLE_PROJECT_FIELDS.includes(key));
631
- }
632
- else {
633
- // no op
634
- }
635
- const projection = {
636
- _id: 0,
637
- id: { $toString: '$_id' },
638
- ...Object.fromEntries(positiveProjectionFields.map((key) => ([key, 1])))
639
- };
640
- const query = this.taskModel.findOne({
641
- _id: { $eq: params.id.$eq },
642
- 'project.id': { $eq: params.project.id.$eq },
643
- name: { $eq: params.name }
644
- }, projection);
645
- const doc = await query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
646
- .lean()
647
- .exec();
648
- if (doc === null) {
649
- return;
650
- }
651
- return doc;
652
- }
653
- async deleteByProject(params) {
654
- await this.taskModel.deleteMany({
655
- 'project.id': { $eq: params.project.id }
656
- })
657
- .exec();
658
- }
659
- /**
660
- * 不要なタスクを削除する
661
- */
662
- async deleteRunsAtPassedCertainPeriod(params) {
663
- return this.taskModel.deleteMany({
664
- runsAt: { $lt: params.runsAt.$lt },
665
- status: {
666
- $in: [
667
- factory_1.factory.taskStatus.Aborted,
668
- factory_1.factory.taskStatus.Executed,
669
- factory_1.factory.taskStatus.Expired
670
- ]
671
- }
672
- })
673
- .exec();
674
- }
675
- async countDelayedTasks(params) {
676
- const { limit } = params;
677
- const runsAtLt = (0, moment_1.default)()
678
- .add(-params.delayInSeconds, 'seconds')
679
- .toDate();
680
- const query = this.taskModel.countDocuments({
681
- status: { $eq: factory_1.factory.taskStatus.Ready },
682
- runsAt: { $lt: runsAtLt },
683
- ...(Array.isArray(params.name.$nin)) ? { name: { $nin: params.name.$nin } } : undefined
684
- });
685
- if (typeof limit === 'number' && limit >= 0) {
686
- query.limit(limit);
687
- }
688
- const count = await query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
689
- .exec();
690
- return { count };
691
- }
692
150
  }
693
151
  exports.TaskRepo = TaskRepo;
@@ -0,0 +1,74 @@
1
+ import type { Connection, UpdateWriteOpResult } from 'mongoose';
2
+ import { factory } from '../factory';
3
+ /**
4
+ * 遅延タスクリポジトリ
5
+ */
6
+ export declare class TaskDelayedRepo {
7
+ private readonly taskModel;
8
+ constructor(connection: Connection);
9
+ /**
10
+ * 潜在的に実行されるべきタスクをカウントする
11
+ * add(2025-03-16~)
12
+ */
13
+ countPotentiallyRunning(params: {
14
+ name?: {
15
+ $eq?: factory.taskName;
16
+ $in?: factory.taskName[];
17
+ };
18
+ runsAt: {
19
+ $lt: Date;
20
+ };
21
+ limit: number;
22
+ }): Promise<{
23
+ count: number;
24
+ }>;
25
+ /**
26
+ * 実行日時を一定期間過ぎたReadyタスクについて、Runningステータスに変更する
27
+ */
28
+ private runDelayedTask;
29
+ /**
30
+ * 実行日時を一定期間過ぎたReadyタスクについて、Runningステータスに変更した上で、Runningイベントを発生させる
31
+ */
32
+ runDelayedTaskIfExistsByName(params: {
33
+ /**
34
+ * 必ずタスク名指定で実行する
35
+ */
36
+ name: {
37
+ $eq: factory.taskName;
38
+ $in?: never;
39
+ } | {
40
+ $eq?: never;
41
+ $in: factory.taskName[];
42
+ };
43
+ runsAt: {
44
+ $lt: Date;
45
+ };
46
+ executor: {
47
+ name: string;
48
+ };
49
+ }): Promise<Pick<factory.task.ITask<factory.taskName>, 'id' | 'name'> | null>;
50
+ /**
51
+ * 実行日時を一定期間過ぎたReadyタスクについて、Runningステータスに変更した上で、Runningイベントを発生させる
52
+ * 2026-08-06~
53
+ */
54
+ runDelayedTaskIfExists(params: {
55
+ runsAt: {
56
+ $lt: Date;
57
+ };
58
+ executor: {
59
+ name: string;
60
+ };
61
+ }): Promise<Pick<factory.task.ITask<factory.taskName>, 'id' | 'name'> | null>;
62
+ /**
63
+ * Runningのまま一定期間超過し、かつ、remainingNumberOfTries>0のタスクをReadyに変更する
64
+ */
65
+ retryTasks(params: {
66
+ intervalInMinutes: number;
67
+ }): Promise<UpdateWriteOpResult>;
68
+ /**
69
+ * $lte:0をReadyにする -> Readyにすれば自動的にAbortedになる
70
+ */
71
+ retryAbortingTasks(params: {
72
+ intervalInMinutes: number;
73
+ }): Promise<UpdateWriteOpResult>;
74
+ }