@chevre/domain 24.0.0-alpha.4 → 24.0.0-alpha.40

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 (406) hide show
  1. package/lib/chevre/errorHandler.js +1 -1
  2. package/lib/chevre/factory/transaction.d.ts +0 -3
  3. package/lib/chevre/repo/accountTitle.d.ts +7 -3
  4. package/lib/chevre/repo/accountTransaction.js +1 -2
  5. package/lib/chevre/repo/action/acceptCOAOffer.d.ts +32 -0
  6. package/lib/chevre/repo/action/acceptCOAOffer.js +73 -0
  7. package/lib/chevre/repo/action/acceptPay.d.ts +40 -0
  8. package/lib/chevre/repo/action/acceptPay.js +93 -0
  9. package/lib/chevre/repo/action/actionProcess.d.ts +146 -0
  10. package/lib/chevre/repo/action/actionProcess.js +792 -0
  11. package/lib/chevre/repo/action/authorizeInvoice.d.ts +26 -0
  12. package/lib/chevre/repo/action/authorizeInvoice.js +49 -0
  13. package/lib/chevre/repo/action/authorizeOffer.d.ts +72 -0
  14. package/lib/chevre/repo/action/authorizeOffer.js +139 -0
  15. package/lib/chevre/repo/action/authorizePaymentMethod.d.ts +48 -0
  16. package/lib/chevre/repo/action/authorizePaymentMethod.js +64 -0
  17. package/lib/chevre/repo/action/authorizeProductOffer.d.ts +26 -0
  18. package/lib/chevre/repo/action/authorizeProductOffer.js +55 -0
  19. package/lib/chevre/repo/action/authorizeTicketedObject.d.ts +8 -0
  20. package/lib/chevre/repo/action/authorizeTicketedObject.js +11 -0
  21. package/lib/chevre/repo/action/checkMovieTicket.d.ts +111 -0
  22. package/lib/chevre/repo/action/checkMovieTicket.js +200 -0
  23. package/lib/chevre/repo/action/checkThing.d.ts +8 -0
  24. package/lib/chevre/repo/action/checkThing.js +13 -0
  25. package/lib/chevre/repo/action.d.ts +25 -269
  26. package/lib/chevre/repo/action.js +338 -1233
  27. package/lib/chevre/repo/aggregateAction.d.ts +102 -0
  28. package/lib/chevre/repo/aggregateAction.js +378 -0
  29. package/lib/chevre/repo/aggregateOffer.d.ts +10 -6
  30. package/lib/chevre/repo/aggregateOffer.js +1 -0
  31. package/lib/chevre/repo/assetTransaction.d.ts +47 -26
  32. package/lib/chevre/repo/assetTransaction.js +1 -0
  33. package/lib/chevre/repo/categoryCode.d.ts +8 -3
  34. package/lib/chevre/repo/comment.d.ts +7 -3
  35. package/lib/chevre/repo/creativeWork.d.ts +10 -9
  36. package/lib/chevre/repo/creativeWork.js +1 -0
  37. package/lib/chevre/repo/customer.d.ts +8 -3
  38. package/lib/chevre/repo/customerType.d.ts +1 -1
  39. package/lib/chevre/repo/customerType.js +1 -0
  40. package/lib/chevre/repo/event.d.ts +11 -23
  41. package/lib/chevre/repo/event.js +22 -23
  42. package/lib/chevre/repo/eventOffer.d.ts +3 -3
  43. package/lib/chevre/repo/eventOffer.js +1 -0
  44. package/lib/chevre/repo/eventSellerMakesOffer.d.ts +3 -3
  45. package/lib/chevre/repo/eventSellerMakesOffer.js +1 -0
  46. package/lib/chevre/repo/eventSeries.d.ts +10 -4
  47. package/lib/chevre/repo/identity.d.ts +12 -3
  48. package/lib/chevre/repo/identityProvider.d.ts +7 -18
  49. package/lib/chevre/repo/issuer.d.ts +8 -8
  50. package/lib/chevre/repo/member.d.ts +7 -3
  51. package/lib/chevre/repo/merchantReturnPolicy.d.ts +7 -3
  52. package/lib/chevre/repo/message.js +1 -1
  53. package/lib/chevre/repo/mongoose/schemas/acceptedPaymentMethod.d.ts +4 -3
  54. package/lib/chevre/repo/mongoose/schemas/account.d.ts +4 -3
  55. package/lib/chevre/repo/mongoose/schemas/accountTitle.d.ts +4 -3
  56. package/lib/chevre/repo/mongoose/schemas/accountTransaction.d.ts +5 -4
  57. package/lib/chevre/repo/mongoose/schemas/accountingReport.d.ts +3 -2
  58. package/lib/chevre/repo/mongoose/schemas/action.d.ts +4 -3
  59. package/lib/chevre/repo/mongoose/schemas/actionRecipe.d.ts +4 -3
  60. package/lib/chevre/repo/mongoose/schemas/additionalProperty.d.ts +5 -4
  61. package/lib/chevre/repo/mongoose/schemas/advanceBookingRequirement.d.ts +3 -2
  62. package/lib/chevre/repo/mongoose/schemas/aggregateOffer.d.ts +4 -3
  63. package/lib/chevre/repo/mongoose/schemas/aggregateOrder.d.ts +3 -2
  64. package/lib/chevre/repo/mongoose/schemas/aggregateReservation.d.ts +4 -3
  65. package/lib/chevre/repo/mongoose/schemas/aggregation.d.ts +4 -3
  66. package/lib/chevre/repo/mongoose/schemas/assetTransaction.d.ts +4 -3
  67. package/lib/chevre/repo/mongoose/schemas/authorization.d.ts +4 -3
  68. package/lib/chevre/repo/mongoose/schemas/categoryCode.d.ts +5 -4
  69. package/lib/chevre/repo/mongoose/schemas/civicStructure.d.ts +3 -2
  70. package/lib/chevre/repo/mongoose/schemas/comments.d.ts +4 -3
  71. package/lib/chevre/repo/mongoose/schemas/creativeWork.d.ts +5 -4
  72. package/lib/chevre/repo/mongoose/schemas/customer.d.ts +5 -4
  73. package/lib/chevre/repo/mongoose/schemas/customerType.d.ts +5 -4
  74. package/lib/chevre/repo/mongoose/schemas/emailMessages.d.ts +4 -3
  75. package/lib/chevre/repo/mongoose/schemas/event.d.ts +3 -2
  76. package/lib/chevre/repo/mongoose/schemas/eventOffer.d.ts +4 -3
  77. package/lib/chevre/repo/mongoose/schemas/eventSeries.d.ts +3 -2
  78. package/lib/chevre/repo/mongoose/schemas/identity.d.ts +4 -3
  79. package/lib/chevre/repo/mongoose/schemas/identityProvider.d.ts +4 -3
  80. package/lib/chevre/repo/mongoose/schemas/issuer.d.ts +4 -3
  81. package/lib/chevre/repo/mongoose/schemas/member/global.d.ts +4 -3
  82. package/lib/chevre/repo/mongoose/schemas/member.d.ts +4 -3
  83. package/lib/chevre/repo/mongoose/schemas/merchantReturnPolicy.d.ts +4 -3
  84. package/lib/chevre/repo/mongoose/schemas/message.d.ts +5 -4
  85. package/lib/chevre/repo/mongoose/schemas/movieTicketTypes.d.ts +4 -3
  86. package/lib/chevre/repo/mongoose/schemas/note.d.ts +3 -2
  87. package/lib/chevre/repo/mongoose/schemas/offerCatalog.d.ts +4 -3
  88. package/lib/chevre/repo/mongoose/schemas/offerCatalogItem.d.ts +4 -3
  89. package/lib/chevre/repo/mongoose/schemas/offerItemCondition.d.ts +5 -4
  90. package/lib/chevre/repo/mongoose/schemas/order.d.ts +4 -3
  91. package/lib/chevre/repo/mongoose/schemas/ownershipInfo.d.ts +6 -5
  92. package/lib/chevre/repo/mongoose/schemas/ownershipInfo.js +78 -71
  93. package/lib/chevre/repo/mongoose/schemas/paymentService.d.ts +4 -3
  94. package/lib/chevre/repo/mongoose/schemas/paymentServiceChannel.d.ts +4 -3
  95. package/lib/chevre/repo/mongoose/schemas/pendingReservation.d.ts +4 -3
  96. package/lib/chevre/repo/mongoose/schemas/pendingReservationAggregate.d.ts +4 -3
  97. package/lib/chevre/repo/mongoose/schemas/place.d.ts +3 -2
  98. package/lib/chevre/repo/mongoose/schemas/potentialAction.d.ts +4 -3
  99. package/lib/chevre/repo/mongoose/schemas/priceSpecification.d.ts +6 -3
  100. package/lib/chevre/repo/mongoose/schemas/product.d.ts +4 -3
  101. package/lib/chevre/repo/mongoose/schemas/productModel.d.ts +6 -5
  102. package/lib/chevre/repo/mongoose/schemas/productOffer.d.ts +3 -2
  103. package/lib/chevre/repo/mongoose/schemas/project.d.ts +4 -3
  104. package/lib/chevre/repo/mongoose/schemas/reservation.d.ts +5 -4
  105. package/lib/chevre/repo/mongoose/schemas/reserveInterface.d.ts +4 -3
  106. package/lib/chevre/repo/mongoose/schemas/role.d.ts +3 -2
  107. package/lib/chevre/repo/mongoose/schemas/schedule.d.ts +5 -4
  108. package/lib/chevre/repo/mongoose/schemas/seller.d.ts +4 -3
  109. package/lib/chevre/repo/mongoose/schemas/sellerReturnPolicy.d.ts +4 -3
  110. package/lib/chevre/repo/mongoose/schemas/service/availableHour.d.ts +3 -2
  111. package/lib/chevre/repo/mongoose/schemas/serviceOutput.d.ts +5 -4
  112. package/lib/chevre/repo/mongoose/schemas/setting.d.ts +4 -3
  113. package/lib/chevre/repo/mongoose/schemas/task.d.ts +4 -3
  114. package/lib/chevre/repo/mongoose/schemas/task.js +1 -0
  115. package/lib/chevre/repo/mongoose/schemas/ticket.d.ts +4 -3
  116. package/lib/chevre/repo/mongoose/schemas/transaction.d.ts +7 -4
  117. package/lib/chevre/repo/mongoose/schemas/transaction.js +31 -0
  118. package/lib/chevre/repo/mongoose/schemas/transactionNumber.d.ts +3 -2
  119. package/lib/chevre/repo/mongoose/schemas/trip.d.ts +4 -3
  120. package/lib/chevre/repo/mongoose/schemas/webSite.d.ts +4 -3
  121. package/lib/chevre/repo/mongoose/virtuals.d.ts +3 -0
  122. package/lib/chevre/repo/mongoose/virtuals.js +2 -0
  123. package/lib/chevre/repo/movieTicketType.d.ts +2 -1
  124. package/lib/chevre/repo/note.d.ts +3 -3
  125. package/lib/chevre/repo/note.js +1 -0
  126. package/lib/chevre/repo/noteAboutOrder.d.ts +1 -1
  127. package/lib/chevre/repo/noteAboutOrder.js +1 -0
  128. package/lib/chevre/repo/offerCatalog.d.ts +11 -7
  129. package/lib/chevre/repo/offerCatalog.js +1 -0
  130. package/lib/chevre/repo/offerCatalogItem.d.ts +3 -3
  131. package/lib/chevre/repo/offerCatalogItem.js +1 -0
  132. package/lib/chevre/repo/order.d.ts +8 -7
  133. package/lib/chevre/repo/order.js +3 -1
  134. package/lib/chevre/repo/orderInTransaction.d.ts +8 -0
  135. package/lib/chevre/repo/orderInTransaction.js +16 -2
  136. package/lib/chevre/repo/orderNumber.d.ts +3 -2
  137. package/lib/chevre/repo/orderNumber.js +23 -28
  138. package/lib/chevre/repo/ownershipInfo.d.ts +15 -8
  139. package/lib/chevre/repo/ownershipInfo.js +13 -10
  140. package/lib/chevre/repo/passport.d.ts +1 -1
  141. package/lib/chevre/repo/paymentService.d.ts +0 -13
  142. package/lib/chevre/repo/paymentService.js +5 -5
  143. package/lib/chevre/repo/pendingReservation.js +0 -1
  144. package/lib/chevre/repo/place/hasPOS.js +3 -3
  145. package/lib/chevre/repo/place/movieTheater.d.ts +7 -3
  146. package/lib/chevre/repo/place/screeningRoom.d.ts +7 -3
  147. package/lib/chevre/repo/place/seat.d.ts +6 -6
  148. package/lib/chevre/repo/place/seat.js +3 -0
  149. package/lib/chevre/repo/potentialAction.d.ts +7 -26
  150. package/lib/chevre/repo/priceSpecification.d.ts +51 -24
  151. package/lib/chevre/repo/priceSpecification.js +9 -13
  152. package/lib/chevre/repo/product.d.ts +11 -7
  153. package/lib/chevre/repo/product.js +1 -0
  154. package/lib/chevre/repo/productModel.d.ts +3 -1
  155. package/lib/chevre/repo/productModel.js +15 -11
  156. package/lib/chevre/repo/productOffer.d.ts +3 -3
  157. package/lib/chevre/repo/productOffer.js +1 -0
  158. package/lib/chevre/repo/project.d.ts +8 -11
  159. package/lib/chevre/repo/reservation.d.ts +12 -29
  160. package/lib/chevre/repo/reservation.js +36 -48
  161. package/lib/chevre/repo/reserveInterface.js +4 -4
  162. package/lib/chevre/repo/role.d.ts +39 -3
  163. package/lib/chevre/repo/schedule.js +1 -1
  164. package/lib/chevre/repo/seller.d.ts +7 -50
  165. package/lib/chevre/repo/sellerMakesOffer.d.ts +2 -2
  166. package/lib/chevre/repo/sellerMakesOffer.js +2 -0
  167. package/lib/chevre/repo/task.d.ts +8 -68
  168. package/lib/chevre/repo/transaction/placeOrder.d.ts +140 -0
  169. package/lib/chevre/repo/transaction/placeOrder.js +528 -0
  170. package/lib/chevre/repo/transaction/returnOrder.d.ts +45 -0
  171. package/lib/chevre/repo/transaction/returnOrder.js +341 -0
  172. package/lib/chevre/repo/transaction.d.ts +71 -142
  173. package/lib/chevre/repo/transaction.js +727 -632
  174. package/lib/chevre/repository.d.ts +64 -5
  175. package/lib/chevre/repository.js +140 -13
  176. package/lib/chevre/service/aggregation/system.d.ts +10 -10
  177. package/lib/chevre/service/aggregation/system.js +9 -9
  178. package/lib/chevre/service/assetTransaction/cancelReservation/factory.js +1 -17
  179. package/lib/chevre/service/assetTransaction/pay/check.d.ts +5 -4
  180. package/lib/chevre/service/assetTransaction/pay/publishPaymentUrl.d.ts +7 -4
  181. package/lib/chevre/service/assetTransaction/pay/publishPaymentUrl.js +3 -3
  182. package/lib/chevre/service/assetTransaction/pay/start/factory.d.ts +51 -3
  183. package/lib/chevre/service/assetTransaction/pay/start/factory.js +58 -21
  184. package/lib/chevre/service/assetTransaction/pay/start/preStart/fixPaymentService.d.ts +10 -0
  185. package/lib/chevre/service/assetTransaction/pay/start/preStart/fixPaymentService.js +88 -0
  186. package/lib/chevre/service/assetTransaction/pay/start/processAuthorize.d.ts +57 -0
  187. package/lib/chevre/service/assetTransaction/pay/start/processAuthorize.js +56 -0
  188. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeCreditCard.d.ts +2 -2
  189. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeMovieTicket.d.ts +3 -1
  190. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeMovieTicket.js +1 -11
  191. package/lib/chevre/service/assetTransaction/pay/start.d.ts +4 -0
  192. package/lib/chevre/service/assetTransaction/pay/start.js +8 -132
  193. package/lib/chevre/service/assetTransaction/reserve/start/factory/createReservation.js +1 -41
  194. package/lib/chevre/service/assetTransaction/reserve/start/factory/createStartParams.js +1 -11
  195. package/lib/chevre/service/assetTransaction/reserve/start.js +2 -5
  196. package/lib/chevre/service/assetTransaction/reserveCOA/cancel.d.ts +19 -4
  197. package/lib/chevre/service/assetTransaction/reserveCOA/cancel.js +7 -1
  198. package/lib/chevre/service/assetTransaction.d.ts +1 -1
  199. package/lib/chevre/service/delivery/factory.js +44 -41
  200. package/lib/chevre/service/delivery/product/factory.js +2 -4
  201. package/lib/chevre/service/delivery/reservation/factory.js +17 -22
  202. package/lib/chevre/service/notification/triggerWebhook.d.ts +7 -6
  203. package/lib/chevre/service/offer/any.d.ts +1 -1
  204. package/lib/chevre/service/offer/event/authorize/factory.js +0 -40
  205. package/lib/chevre/service/offer/event/authorize/processStartReserve4chevre.d.ts +0 -2
  206. package/lib/chevre/service/offer/event/authorize.d.ts +6 -5
  207. package/lib/chevre/service/offer/event/authorize.js +25 -24
  208. package/lib/chevre/service/offer/event/issueEventOfferTicket.d.ts +17 -15
  209. package/lib/chevre/service/offer/event/issueEventOfferTicket.js +4 -4
  210. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4chevre.d.ts +0 -2
  211. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4chevre.js +1 -0
  212. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4coa.d.ts +2 -0
  213. package/lib/chevre/service/offer/event/voidTransaction.d.ts +10 -3
  214. package/lib/chevre/service/offer/event/voidTransaction.js +14 -13
  215. package/lib/chevre/service/offer/event/voidTransactionByActionId.d.ts +8 -3
  216. package/lib/chevre/service/offer/event/voidTransactionByActionId.js +4 -4
  217. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer.d.ts +16 -5
  218. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer.js +7 -7
  219. package/lib/chevre/service/offer/eventServiceByCOA/authorize/factory.js +0 -2
  220. package/lib/chevre/service/offer/eventServiceByCOA/authorize.d.ts +6 -4
  221. package/lib/chevre/service/offer/eventServiceByCOA/authorize.js +3 -10
  222. package/lib/chevre/service/offer/eventServiceByCOA/authorizeByAcceptAction.js +21 -13
  223. package/lib/chevre/service/offer/eventServiceByCOA/changeOffers.js +19 -10
  224. package/lib/chevre/service/offer/eventServiceByCOA/findAcceptAction.d.ts +2 -2
  225. package/lib/chevre/service/offer/product/factory.d.ts +5 -5
  226. package/lib/chevre/service/offer/product/factory.js +13 -5
  227. package/lib/chevre/service/offer/product.d.ts +9 -7
  228. package/lib/chevre/service/offer/product.js +20 -16
  229. package/lib/chevre/service/offer.d.ts +1 -2
  230. package/lib/chevre/service/offer.js +1 -3
  231. package/lib/chevre/service/order/confirmPayTransaction.d.ts +0 -2
  232. package/lib/chevre/service/order/confirmPayTransaction.js +1 -0
  233. package/lib/chevre/service/order/deleteOrder.js +2 -2
  234. package/lib/chevre/service/order/findPlaceOrderTransaction.d.ts +2 -2
  235. package/lib/chevre/service/order/findPlaceOrderTransaction.js +1 -1
  236. package/lib/chevre/service/order/onAssetTransactionStatusChanged/isDeliverable.d.ts +16 -0
  237. package/lib/chevre/service/order/onAssetTransactionStatusChanged/isDeliverable.js +97 -0
  238. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onPayTransactionCanceled.d.ts +21 -0
  239. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onPayTransactionCanceled.js +86 -0
  240. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onPayTransactionConfirmed.d.ts +22 -0
  241. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onPayTransactionConfirmed.js +112 -0
  242. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onReserveTransactionConfirmed.d.ts +22 -0
  243. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onReserveTransactionConfirmed.js +74 -0
  244. package/lib/chevre/service/order/onAssetTransactionStatusChanged/paymentDue2Processing.d.ts +25 -0
  245. package/lib/chevre/service/order/onAssetTransactionStatusChanged/paymentDue2Processing.js +111 -0
  246. package/lib/chevre/service/order/onAssetTransactionStatusChanged/processing2inTransit.d.ts +16 -0
  247. package/lib/chevre/service/order/onAssetTransactionStatusChanged/processing2inTransit.js +74 -0
  248. package/lib/chevre/service/order/onAssetTransactionStatusChanged.d.ts +8 -30
  249. package/lib/chevre/service/order/onAssetTransactionStatusChanged.js +37 -348
  250. package/lib/chevre/service/order/onOrderStatusChanged/onOrderCancelled/factory.d.ts +1 -1
  251. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered.d.ts +6 -7
  252. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.d.ts +1 -1
  253. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially.d.ts +6 -5
  254. package/lib/chevre/service/order/onOrderStatusChanged/onOrderInTransit.d.ts +7 -6
  255. package/lib/chevre/service/order/onOrderStatusChanged/onOrderInTransit.js +1 -1
  256. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/processOrder.js +54 -37
  257. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned/factory.d.ts +1 -1
  258. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned.js +78 -64
  259. package/lib/chevre/service/order/payOrder.d.ts +2 -2
  260. package/lib/chevre/service/order/placeOrder/createPlacingOrderFromExistingTransaction.d.ts +12 -8
  261. package/lib/chevre/service/order/placeOrder/createPlacingOrderFromExistingTransaction.js +41 -26
  262. package/lib/chevre/service/order/placeOrder/factory/orderedItem.d.ts +0 -1
  263. package/lib/chevre/service/order/placeOrder/factory/orderedItem.js +3 -28
  264. package/lib/chevre/service/order/placeOrder/factory.js +5 -6
  265. package/lib/chevre/service/order/placeOrder.d.ts +17 -12
  266. package/lib/chevre/service/order/placeOrder.js +7 -2
  267. package/lib/chevre/service/order/returnOrder.d.ts +2 -2
  268. package/lib/chevre/service/order/returnOrder.js +1 -1
  269. package/lib/chevre/service/order/sendOrder.d.ts +6 -6
  270. package/lib/chevre/service/order/sendOrder.js +14 -10
  271. package/lib/chevre/service/order.d.ts +3 -6
  272. package/lib/chevre/service/order.js +3 -9
  273. package/lib/chevre/service/payment/any/{fixOrderAsNeeded.d.ts → authorize/fixOrderAsNeeded.d.ts} +6 -6
  274. package/lib/chevre/service/payment/any/{fixOrderAsNeeded.js → authorize/fixOrderAsNeeded.js} +5 -8
  275. package/lib/chevre/service/payment/any/authorize/fixTransactionNumber.d.ts +8 -5
  276. package/lib/chevre/service/payment/any/authorize/handlePrePublishedPaymentMethodIdOnAuthorizing.d.ts +14 -10
  277. package/lib/chevre/service/payment/any/authorize/handlePrePublishedPaymentMethodIdOnAuthorizing.js +34 -17
  278. package/lib/chevre/service/payment/any/authorize.d.ts +98 -0
  279. package/lib/chevre/service/payment/any/authorize.js +239 -0
  280. package/lib/chevre/service/payment/any/factory.js +1 -0
  281. package/lib/chevre/service/payment/any/findAcceptAction.d.ts +43 -0
  282. package/lib/chevre/service/payment/any/findAcceptAction.js +94 -0
  283. package/lib/chevre/service/payment/any/findAuthorizeAction.d.ts +42 -0
  284. package/lib/chevre/service/payment/any/findAuthorizeAction.js +83 -0
  285. package/lib/chevre/service/payment/any/findCheckAction.d.ts +45 -0
  286. package/lib/chevre/service/payment/any/findCheckAction.js +89 -0
  287. package/lib/chevre/service/payment/any/invalidatePaymentUrl.d.ts +29 -0
  288. package/lib/chevre/service/payment/any/invalidatePaymentUrl.js +187 -0
  289. package/lib/chevre/service/payment/any/onPayActionCompleted.d.ts +7 -3
  290. package/lib/chevre/service/payment/any/onPayActionCompleted.js +3 -0
  291. package/lib/chevre/service/payment/any/processVoidPayTransaction.d.ts +30 -0
  292. package/lib/chevre/service/payment/any/processVoidPayTransaction.js +125 -0
  293. package/lib/chevre/service/payment/any/publishPaymentUrl/fixTransactionNumberOnPublishPaymentUrl.d.ts +2 -2
  294. package/lib/chevre/service/payment/any/publishPaymentUrl.d.ts +66 -0
  295. package/lib/chevre/service/payment/any/publishPaymentUrl.js +133 -0
  296. package/lib/chevre/service/payment/any/voidPayTransaction.d.ts +34 -0
  297. package/lib/chevre/service/payment/any/voidPayTransaction.js +38 -0
  298. package/lib/chevre/service/payment/any.d.ts +8 -305
  299. package/lib/chevre/service/payment/any.js +17 -857
  300. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard.d.ts +8 -6
  301. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard.js +3 -3
  302. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard3ds.d.ts +8 -6
  303. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard3ds.js +3 -3
  304. package/lib/chevre/service/payment/creditCard/authorize.d.ts +3 -2
  305. package/lib/chevre/service/payment/creditCard/authorize.js +2 -2
  306. package/lib/chevre/service/payment/creditCard/voidTransaction.d.ts +9 -8
  307. package/lib/chevre/service/payment/creditCard/voidTransaction.js +15 -7
  308. package/lib/chevre/service/payment/movieTicket/authorize.d.ts +2 -0
  309. package/lib/chevre/service/payment/movieTicket/checkMovieTicket.d.ts +3 -3
  310. package/lib/chevre/service/payment/movieTicket/checkMovieTicket.js +3 -3
  311. package/lib/chevre/service/payment/movieTicket/validation.d.ts +11 -10
  312. package/lib/chevre/service/payment/movieTicket/validation.js +25 -15
  313. package/lib/chevre/service/reserve/cancelReservation.js +5 -12
  314. package/lib/chevre/service/reserve/confirmReservation.js +1 -1
  315. package/lib/chevre/service/reserve/findByCode.d.ts +1 -1
  316. package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.d.ts +1 -2
  317. package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.js +1 -0
  318. package/lib/chevre/service/reserve/searchByOrder.d.ts +1 -1
  319. package/lib/chevre/service/task/acceptCOAOffer.js +11 -6
  320. package/lib/chevre/service/task/authorizePayment.js +16 -5
  321. package/lib/chevre/service/task/checkMovieTicket.js +3 -3
  322. package/lib/chevre/service/task/checkResource.js +2 -2
  323. package/lib/chevre/service/task/confirmPayTransaction.js +2 -2
  324. package/lib/chevre/service/task/deletePerson.js +0 -1
  325. package/lib/chevre/service/task/deleteTransaction.js +5 -1
  326. package/lib/chevre/service/task/onAssetTransactionStatusChanged.js +4 -2
  327. package/lib/chevre/service/task/onOrderPaymentCompleted.js +2 -2
  328. package/lib/chevre/service/task/pay.js +3 -1
  329. package/lib/chevre/service/task/payment/payByTask.d.ts +15 -12
  330. package/lib/chevre/service/task/payment/payByTask.js +1 -1
  331. package/lib/chevre/service/task/payment/voidPaymentByTask.d.ts +2 -0
  332. package/lib/chevre/service/task/placeOrder.js +10 -4
  333. package/lib/chevre/service/task/publishPaymentUrl.js +11 -5
  334. package/lib/chevre/service/task/returnOrder.js +4 -4
  335. package/lib/chevre/service/task/returnPayTransaction.js +4 -3
  336. package/lib/chevre/service/task/sendOrder.js +4 -4
  337. package/lib/chevre/service/task/syncResourcesFromCOA.js +2 -0
  338. package/lib/chevre/service/task/voidPayTransaction.js +10 -4
  339. package/lib/chevre/service/task/voidPayment.js +2 -0
  340. package/lib/chevre/service/task/voidRegisterServiceTransaction.js +7 -6
  341. package/lib/chevre/service/task/voidReserveTransaction.js +8 -3
  342. package/lib/chevre/service/transaction/deleteTransaction.d.ts +4 -0
  343. package/lib/chevre/service/transaction/deleteTransaction.js +45 -47
  344. package/lib/chevre/service/transaction/placeOrder/confirm/validation/factory.d.ts +1 -1
  345. package/lib/chevre/service/transaction/placeOrder/confirm/validation/validatePrice.d.ts +2 -2
  346. package/lib/chevre/service/transaction/placeOrder/confirm/validation/validatePrice.js +2 -3
  347. package/lib/chevre/service/transaction/placeOrder/confirm/validation.d.ts +3 -3
  348. package/lib/chevre/service/transaction/placeOrder/confirm/validation.js +4 -6
  349. package/lib/chevre/service/transaction/placeOrder/confirm.d.ts +10 -5
  350. package/lib/chevre/service/transaction/placeOrder/confirm.js +77 -53
  351. package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.js +2 -15
  352. package/lib/chevre/service/transaction/placeOrder/exportTasksById.d.ts +7 -6
  353. package/lib/chevre/service/transaction/placeOrder/exportTasksById.js +1 -1
  354. package/lib/chevre/service/transaction/placeOrder/{publishOrderNumberIfNotExist.d.ts → issueOrderNumberIfNotExist.d.ts} +4 -4
  355. package/lib/chevre/service/transaction/placeOrder/{publishOrderNumberIfNotExist.js → issueOrderNumberIfNotExist.js} +21 -13
  356. package/lib/chevre/service/transaction/placeOrder/publishConfirmationNumberIfNotExist.d.ts +2 -2
  357. package/lib/chevre/service/transaction/placeOrder/publishConfirmationNumberIfNotExist.js +3 -3
  358. package/lib/chevre/service/transaction/placeOrder/start.d.ts +3 -3
  359. package/lib/chevre/service/transaction/placeOrder/start.js +2 -2
  360. package/lib/chevre/service/transaction/placeOrder/updateAgent.d.ts +23 -0
  361. package/lib/chevre/service/transaction/placeOrder/updateAgent.js +126 -0
  362. package/lib/chevre/service/transaction/placeOrder.d.ts +2 -1
  363. package/lib/chevre/service/transaction/placeOrder.js +3 -1
  364. package/lib/chevre/service/transaction/returnOrder/preStart.d.ts +1 -1
  365. package/lib/chevre/service/transaction/returnOrder.d.ts +16 -14
  366. package/lib/chevre/service/transaction/returnOrder.js +4 -4
  367. package/lib/chevre/service/transaction.d.ts +8 -24
  368. package/lib/chevre/service/transaction.js +6 -122
  369. package/lib/chevre/service/validation/validateOrder.js +3 -5
  370. package/lib/chevre/service.d.ts +0 -4
  371. package/lib/chevre/service.js +1 -12
  372. package/package.json +5 -5
  373. package/lib/chevre/repo/mongoose/schemas/telemetry.d.ts +0 -9
  374. package/lib/chevre/repo/mongoose/schemas/telemetry.js +0 -80
  375. package/lib/chevre/repo/telemetry.d.ts +0 -9
  376. package/lib/chevre/repo/telemetry.js +0 -14
  377. package/lib/chevre/service/offer/moneyTransfer/authorize.d.ts +0 -37
  378. package/lib/chevre/service/offer/moneyTransfer/authorize.js +0 -247
  379. package/lib/chevre/service/offer/moneyTransfer/returnMoneyTransfer.d.ts +0 -16
  380. package/lib/chevre/service/offer/moneyTransfer/returnMoneyTransfer.js +0 -96
  381. package/lib/chevre/service/offer/moneyTransfer/settleTransaction.d.ts +0 -9
  382. package/lib/chevre/service/offer/moneyTransfer/settleTransaction.js +0 -91
  383. package/lib/chevre/service/offer/moneyTransfer/voidTransaction.d.ts +0 -9
  384. package/lib/chevre/service/offer/moneyTransfer/voidTransaction.js +0 -78
  385. package/lib/chevre/service/offer/moneyTransfer.d.ts +0 -5
  386. package/lib/chevre/service/offer/moneyTransfer.js +0 -11
  387. package/lib/chevre/service/report/ownershipInfo.d.ts +0 -27
  388. package/lib/chevre/service/report/ownershipInfo.js +0 -39
  389. package/lib/chevre/service/report/telemetry.d.ts +0 -309
  390. package/lib/chevre/service/report/telemetry.js +0 -449
  391. package/lib/chevre/service/report.d.ts +0 -6
  392. package/lib/chevre/service/report.js +0 -33
  393. package/lib/chevre/service/task/confirmMoneyTransfer.d.ts +0 -6
  394. package/lib/chevre/service/task/confirmMoneyTransfer.js +0 -19
  395. package/lib/chevre/service/task/returnMoneyTransfer.d.ts +0 -6
  396. package/lib/chevre/service/task/returnMoneyTransfer.js +0 -55
  397. package/lib/chevre/service/task/voidMoneyTransferTransaction.d.ts +0 -6
  398. package/lib/chevre/service/task/voidMoneyTransferTransaction.js +0 -22
  399. package/lib/chevre/service/transaction/moneyTransfer/exportTasks/factory.d.ts +0 -9
  400. package/lib/chevre/service/transaction/moneyTransfer/exportTasks/factory.js +0 -138
  401. package/lib/chevre/service/transaction/moneyTransfer/factory.d.ts +0 -2
  402. package/lib/chevre/service/transaction/moneyTransfer/factory.js +0 -55
  403. package/lib/chevre/service/transaction/moneyTransfer/potentialActions.d.ts +0 -9
  404. package/lib/chevre/service/transaction/moneyTransfer/potentialActions.js +0 -65
  405. package/lib/chevre/service/transaction/moneyTransfer.d.ts +0 -69
  406. package/lib/chevre/service/transaction/moneyTransfer.js +0 -649
@@ -1,649 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.start = start;
30
- exports.confirm = confirm;
31
- exports.exportTasksById = exportTasksById;
32
- /**
33
- * 通貨転送取引サービス
34
- */
35
- const moment_1 = __importDefault(require("moment"));
36
- const factory = __importStar(require("../../factory"));
37
- const order_1 = require("../../factory/order");
38
- // import { Settings } from '../../settings';
39
- const factory_1 = require("./moneyTransfer/exportTasks/factory");
40
- const factory_2 = require("./moneyTransfer/factory");
41
- const potentialActions_1 = require("./moneyTransfer/potentialActions");
42
- const MoneyTransferAssetTransactionService = __importStar(require("../assetTransaction/moneyTransfer"));
43
- /**
44
- * 取引開始
45
- * 通貨転送資産取引サービスを利用して転送取引を開始する
46
- */
47
- function start(params) {
48
- return async (repos
49
- // credentials: {
50
- // jwt: JWTCredentials;
51
- // }
52
- ) => {
53
- const { passport } = await repos.passport.validatePassportTokenIfExist(params);
54
- const sellers = await repos.seller.projectFields({
55
- limit: 1,
56
- page: 1,
57
- id: { $eq: params.seller.id }
58
- }, ['name', 'typeOf']);
59
- const seller = sellers.shift();
60
- if (seller === undefined) {
61
- throw new factory.errors.NotFound(factory.organizationType.Corporation);
62
- }
63
- // 金額をfix
64
- const amount = params.object.amount;
65
- if (typeof amount.value !== 'number') {
66
- throw new factory.errors.ArgumentNull('amount.value');
67
- }
68
- // fromとtoをfix
69
- const fromLocation = await fixFromLocation(params)(repos);
70
- const toLocation = await fixToLocation(params)(repos);
71
- // まず取引番号発行
72
- const { transactionNumber } = await repos.transactionNumber.publishByTimestamp({ startDate: new Date() });
73
- // 取引開始
74
- const startParams = (0, factory_2.createStartParams)(params, passport, seller, amount, fromLocation, toLocation, transactionNumber);
75
- const transaction = await repos.transaction.start(startParams);
76
- await authorizePaymentCard({
77
- transaction: {
78
- ...transaction,
79
- object: startParams.object,
80
- seller: startParams.seller,
81
- agent: startParams.agent,
82
- project: startParams.project,
83
- typeOf: startParams.typeOf
84
- }
85
- })(repos);
86
- return transaction;
87
- };
88
- }
89
- function authorizePaymentCard(params) {
90
- return async (repos
91
- // credentials: {
92
- // jwt: JWTCredentials;
93
- // }
94
- ) => {
95
- const transaction = params.transaction;
96
- const fromLocation = transaction.object.fromLocation;
97
- if (typeof transaction.object.toLocation.typeOf === 'string') {
98
- const toLocation = transaction.object.toLocation;
99
- // 転送取引
100
- await processAuthorizePaymentCard({
101
- project: { id: transaction.project.id },
102
- agent: { id: transaction.agent.id },
103
- object: {
104
- project: { typeOf: transaction.project.typeOf, id: transaction.project.id },
105
- typeOf: factory.offerType.AggregateOffer,
106
- itemOffered: {
107
- typeOf: factory.actionType.MoneyTransfer,
108
- amount: {
109
- typeOf: 'MonetaryAmount',
110
- currency: transaction.object.amount.currency,
111
- ...(typeof transaction.object.amount.value === 'number')
112
- ? { value: transaction.object.amount.value }
113
- : undefined
114
- },
115
- toLocation: toLocation,
116
- object: {
117
- pendingTransaction: {
118
- typeOf: factory.assetTransactionType.MoneyTransfer,
119
- // processAuthorizePaymentCard処理内で上書きされるので空でok
120
- transactionNumber: ''
121
- }
122
- }
123
- },
124
- fromLocation: fromLocation,
125
- seller: {
126
- id: transaction.seller.id,
127
- typeOf: transaction.seller.typeOf,
128
- name: (typeof transaction.seller.name === 'string')
129
- ? transaction.seller.name
130
- : String(transaction.seller.name?.ja)
131
- },
132
- price: 0,
133
- priceCurrency: factory.priceCurrency.JPY,
134
- ...(typeof transaction.object.description === 'string') ? { description: transaction.object.description } : undefined
135
- },
136
- purpose: { typeOf: transaction.typeOf, id: transaction.id }
137
- })(repos);
138
- }
139
- else {
140
- throw new factory.errors.NotImplemented('Withdraw transaction not implemented');
141
- }
142
- };
143
- }
144
- function fixFromLocation(params) {
145
- return async (__) => {
146
- let fromLocation = params.object.fromLocation;
147
- if (typeof fromLocation === 'string') {
148
- // no op
149
- }
150
- else if (fromLocation.typeOf === factory.permit.PermitType.Permit) {
151
- fromLocation = {
152
- typeOf: factory.permit.PermitType.Permit,
153
- identifier: fromLocation.identifier,
154
- // ↓chevre/api側での制御に変更したので不要(2022-03-24~)
155
- // ↓指定しないとPermitのチェックが実行される(注文口座にはPermitが存在しない)
156
- // hasNoPermit: fromLocation.hasNoPermit,
157
- issuedThrough: { id: fromLocation.issuedThrough?.id }
158
- };
159
- }
160
- else if (fromLocation.typeOf === factory.order.OrderType.Order) {
161
- // 注文口座対応
162
- fromLocation = {
163
- typeOf: factory.order.OrderType.Order,
164
- confirmationNumber: fromLocation.confirmationNumber,
165
- orderNumber: fromLocation.orderNumber
166
- };
167
- }
168
- else {
169
- throw new factory.errors.Argument('fromLocation', 'location type must be specified');
170
- }
171
- return fromLocation;
172
- };
173
- }
174
- function fixToLocation(params) {
175
- return async (__) => {
176
- let toLocation = params.object.toLocation;
177
- if (typeof toLocation.typeOf === 'string') {
178
- toLocation = {
179
- typeOf: factory.permit.PermitType.Permit,
180
- identifier: toLocation.identifier,
181
- issuedThrough: { id: toLocation.issuedThrough?.id }
182
- };
183
- }
184
- else {
185
- // toLocation = {
186
- // ...toLocation
187
- // // typeOf: toLocation.typeOf,
188
- // // id: (typeof toLocation.id === 'string') ? toLocation.id : '',
189
- // // name: (typeof toLocation.name === 'string') ? toLocation.name : ''
190
- // };
191
- }
192
- return toLocation;
193
- };
194
- }
195
- /**
196
- * 口座残高差し押さえ
197
- * 口座取引は、出金取引あるいは転送取引のどちらかを選択できます
198
- */
199
- function processAuthorizePaymentCard(params) {
200
- return async (repos
201
- // credentials: {
202
- // jwt: JWTCredentials;
203
- // }
204
- ) => {
205
- const transaction = await repos.transaction.projectFieldsInProgressById({
206
- typeOf: factory.transactionType.MoneyTransfer,
207
- id: params.purpose.id
208
- }, ['agent', 'project', 'recipient', 'seller', 'typeOf', 'object']);
209
- const recipient = {
210
- typeOf: transaction.recipient.typeOf,
211
- id: transaction.recipient.id,
212
- name: (typeof transaction.recipient.name === 'string')
213
- ? transaction.recipient.name
214
- : `A recipient of ${transaction.typeOf} Transaction ${transaction.id}`
215
- };
216
- const transactionNumber = transaction.object.pendingTransaction?.transactionNumber;
217
- // ↓事前に取引番号を発行しているので、ありえないフロー
218
- if (typeof transactionNumber !== 'string') {
219
- throw new factory.errors.Internal('transaction.object.pendingTransaction.transactionNumber undefined');
220
- }
221
- // 承認アクションを開始する
222
- const actionAttributes = createAuthorizeMoneyTransferOfferActionAttributes({
223
- object: params.object,
224
- recipient,
225
- transaction,
226
- transactionNumber
227
- });
228
- const action = await repos.action.start(actionAttributes);
229
- // 口座取引開始
230
- let responseBody;
231
- try {
232
- responseBody = await processMoneyTransferTransaction({
233
- project: params.project,
234
- object: params.object,
235
- recipient: recipient,
236
- transaction: transaction,
237
- transactionNumber
238
- })(repos);
239
- // アクションにchevre取引情報を保管
240
- await repos.action.findByIdAndUpdate({
241
- id: action.id,
242
- update: {
243
- 'object.itemOffered.amount.currency': params.object.itemOffered.amount.currency,
244
- 'object.itemOffered.object.pendingTransaction': {
245
- typeOf: responseBody.typeOf,
246
- id: responseBody.id,
247
- transactionNumber: responseBody.transactionNumber
248
- }
249
- }
250
- });
251
- }
252
- catch (error) {
253
- try {
254
- await repos.action.giveUp({ typeOf: action.typeOf, id: action.id, error });
255
- }
256
- catch (__) {
257
- // no op
258
- }
259
- throw error;
260
- }
261
- const result = {
262
- price: 0,
263
- priceCurrency: factory.priceCurrency.JPY,
264
- // requestBody: requestBody,
265
- responseBody: responseBody
266
- // acceptedOffers: [] // PlaceOrderではないのでacceptedOffersとしては空 // discontinue(2024-06-17~)
267
- };
268
- await repos.action.completeWithVoid({ typeOf: action.typeOf, id: action.id, result });
269
- };
270
- }
271
- function createAuthorizeMoneyTransferOfferActionAttributes(params) {
272
- const transaction = params.transaction;
273
- const transactionNumber = params.transactionNumber;
274
- const recipient = params.recipient;
275
- return {
276
- project: transaction.project,
277
- typeOf: factory.actionType.AuthorizeAction,
278
- instrument: {
279
- typeOf: factory.assetTransactionType.MoneyTransfer,
280
- transactionNumber
281
- },
282
- object: {
283
- project: { typeOf: transaction.project.typeOf, id: transaction.project.id },
284
- typeOf: factory.offerType.Offer,
285
- itemOffered: {
286
- typeOf: factory.actionType.MoneyTransfer,
287
- amount: {
288
- typeOf: 'MonetaryAmount',
289
- currency: params.object.itemOffered.amount.currency,
290
- ...(typeof params.object.itemOffered.amount.value === 'number')
291
- ? { value: params.object.itemOffered.amount.value }
292
- : undefined
293
- },
294
- toLocation: params.object.itemOffered.toLocation,
295
- object: {
296
- pendingTransaction: {
297
- typeOf: factory.assetTransactionType.MoneyTransfer,
298
- transactionNumber
299
- }
300
- }
301
- },
302
- seller: {
303
- id: String(transaction.seller.id),
304
- name: (typeof transaction.seller.name === 'string')
305
- ? transaction.seller.name
306
- : String(transaction.seller.name?.ja),
307
- typeOf: transaction.seller.typeOf
308
- },
309
- price: 0,
310
- priceCurrency: factory.priceCurrency.JPY
311
- },
312
- agent: {
313
- typeOf: transaction.agent.typeOf,
314
- id: transaction.agent.id
315
- },
316
- recipient: recipient,
317
- purpose: { typeOf: transaction.typeOf, id: transaction.id }
318
- };
319
- }
320
- function processMoneyTransferTransaction(params) {
321
- return async (repos
322
- // credentials: {
323
- // jwt: JWTCredentials;
324
- // }
325
- ) => {
326
- let pendingTransaction;
327
- const transaction = params.transaction;
328
- // Sellerに変更(2022-05-30~)
329
- const agent = {
330
- typeOf: transaction.seller.typeOf,
331
- id: String(transaction.seller.id),
332
- name: (typeof transaction.seller.name === 'string') ? transaction.seller.name : String(transaction.seller.name?.ja)
333
- };
334
- const recipient = {
335
- typeOf: params.recipient.typeOf,
336
- id: params.recipient.id,
337
- name: (typeof params.recipient.name === 'string')
338
- ? params.recipient.name
339
- : `${transaction.typeOf} Transaction ${transaction.id}`
340
- };
341
- const description = (typeof params.object.description === 'string') ? params.object.description : `${transaction.typeOf}:${transaction.id}`;
342
- // 最大1ヵ月のオーソリ
343
- const expires = (0, moment_1.default)()
344
- .add(1, 'month')
345
- .toDate();
346
- // 発行サービスIDはfromLocationあるいはtoLocationのどちらかに存在するはず
347
- const issuedThroughId = params.object.itemOffered.toLocation.issuedThrough.id;
348
- if (params.object.fromLocation !== undefined && params.object.itemOffered.toLocation === undefined) {
349
- throw new factory.errors.NotImplemented('Withdraw transaction not implemented');
350
- }
351
- else if (params.object.fromLocation !== undefined && params.object.itemOffered.toLocation !== undefined) {
352
- const { fromLocation } = await validateFromLocation({ id: params.project.id }, params.object.fromLocation, { id: issuedThroughId })(repos);
353
- const { toLocation } = await validateToLocation({ id: params.project.id }, {
354
- typeOf: factory.permit.PermitType.Permit,
355
- identifier: params.object.itemOffered.toLocation.identifier,
356
- issuedThrough: { id: issuedThroughId }
357
- }, { id: issuedThroughId })(repos);
358
- // moneyTransferAssetTransactionで実装
359
- pendingTransaction = await MoneyTransferAssetTransactionService.start({
360
- transactionNumber: params.transactionNumber,
361
- typeOf: factory.assetTransactionType.MoneyTransfer,
362
- project: { typeOf: factory.organizationType.Project, id: params.project.id },
363
- agent: agent,
364
- expires: expires,
365
- recipient: recipient,
366
- object: {
367
- amount: {
368
- typeOf: 'MonetaryAmount',
369
- value: (typeof params.object.itemOffered.amount.value === 'number') ? params.object.itemOffered.amount.value : 0,
370
- currency: params.object.itemOffered.amount.currency
371
- },
372
- description: description,
373
- fromLocation,
374
- toLocation,
375
- pendingTransaction: {
376
- typeOf: factory.account.transactionType.Transfer,
377
- transactionNumber: params.transactionNumber
378
- },
379
- force: false
380
- },
381
- // ユニークネスを保証するために識別子を指定する
382
- ...(transaction.typeOf === factory.transactionType.MoneyTransfer
383
- && typeof transaction.object.pendingTransaction?.identifier === 'string')
384
- ? { identifier: transaction.object.pendingTransaction.identifier }
385
- : undefined
386
- })(repos);
387
- // pendingTransaction = await repos.moneyTransferAssetTransaction.start({
388
- // // 既発行のtransactionNumberを引き継ぐ(2022-05-16~)
389
- // transactionNumber: params.transactionNumber,
390
- // typeOf: factory.assetTransactionType.MoneyTransfer,
391
- // project: { typeOf: factory.organizationType.Project, id: params.project.id },
392
- // agent: agent,
393
- // expires: expires,
394
- // recipient: recipient,
395
- // object: {
396
- // amount: {
397
- // typeOf: 'MonetaryAmount',
398
- // value: (typeof params.object.itemOffered.amount.value === 'number') ? params.object.itemOffered.amount.value : 0,
399
- // currency: params.object.itemOffered.amount.currency
400
- // },
401
- // description: description,
402
- // fromLocation: params.object.fromLocation,
403
- // toLocation: {
404
- // typeOf: factory.permit.PermitType.Permit,
405
- // identifier: params.object.itemOffered.toLocation.identifier,
406
- // issuedThrough: { id: params.object.itemOffered.toLocation.issuedThrough?.id }
407
- // },
408
- // pendingTransaction: { typeOf: factory.account.transactionType.Transfer, id: '' }
409
- // },
410
- // // ユニークネスを保証するために識別子を指定する
411
- // ...(transaction.typeOf === factory.transactionType.MoneyTransfer
412
- // && typeof transaction.object.pendingTransaction?.identifier === 'string')
413
- // ? { identifier: transaction.object.pendingTransaction.identifier }
414
- // : undefined
415
- // });
416
- }
417
- else if (params.object.fromLocation === undefined && params.object.itemOffered.toLocation !== undefined) {
418
- throw new factory.errors.NotImplemented('Deposit transaction not implemented');
419
- }
420
- else {
421
- throw new factory.errors.Argument('Object', 'At least one of accounts from and to must be specified');
422
- }
423
- return pendingTransaction;
424
- };
425
- }
426
- function validateFromLocation(project, fromLocationBeforeStart, issuedThrough) {
427
- return async (repos
428
- // credentials: {
429
- // jwt: JWTCredentials;
430
- // }
431
- ) => {
432
- let fromLocation = fromLocationBeforeStart;
433
- // discontinue token as fromLocation(ticketTokenへ移行するべき)(2024-12-18~)
434
- if (typeof fromLocation === 'string') {
435
- throw new factory.errors.NotImplemented('fromLocation as string not implemented');
436
- // トークン化されたペイメントカード情報でリクエストされた場合、実ペイメントカード情報へ変換する
437
- // const { authorizedObject } = await CodeService.verifyToken({
438
- // project: { id: project.id },
439
- // agent: { id: project.id, typeOf: factory.organizationType.Project },
440
- // token: fromLocation
441
- // })(repos);
442
- // const paymentCardOwnershipInfo = authorizedObject;
443
- // if (Array.isArray(paymentCardOwnershipInfo)) {
444
- // throw new factory.errors.NotImplemented('fromLocation as an array not implemented');
445
- // }
446
- // if (paymentCardOwnershipInfo.typeOf !== 'OwnershipInfo') {
447
- // throw new factory.errors.Argument('fromLocation', 'must be OwnershipInfo');
448
- // }
449
- // if (paymentCardOwnershipInfo.typeOfGood.typeOf !== factory.permit.PermitType.Permit) {
450
- // throw new factory.errors.Argument('fromLocation', 'must be Permit');
451
- // }
452
- // if (paymentCardOwnershipInfo.typeOfGood.issuedThrough?.typeOf !== factory.product.ProductType.PaymentCard) {
453
- // throw new factory.errors.Argument('fromLocation', 'must be issued through PaymentCard');
454
- // }
455
- // fromLocation = {
456
- // typeOf: paymentCardOwnershipInfo.typeOfGood.typeOf,
457
- // identifier: paymentCardOwnershipInfo.typeOfGood.identifier,
458
- // issuedThrough: { id: paymentCardOwnershipInfo.typeOfGood.issuedThrough.id }
459
- // };
460
- }
461
- else {
462
- // fromLocationが注文の場合に対応
463
- if (fromLocation.typeOf === factory.order.OrderType.Order) {
464
- // 注文検索
465
- const orders = await repos.order.projectFields({
466
- limit: 1,
467
- page: 1,
468
- project: { id: { $eq: project.id } },
469
- orderNumbers: [String(fromLocation.orderNumber)],
470
- confirmationNumbers: [String(fromLocation.confirmationNumber)]
471
- }, {
472
- inclusion: ['identifier', 'orderStatus']
473
- });
474
- const order = orders.shift();
475
- if (order === undefined) {
476
- throw new factory.errors.NotFound('Order');
477
- }
478
- // OrderDeliveredのみ許可
479
- if (order.orderStatus !== factory.orderStatus.OrderDelivered) {
480
- throw new factory.errors.Argument('fromLocation', `Invalid order status '${order.orderStatus}''`);
481
- }
482
- let awardAccounts = [];
483
- const awardAccounsValue = order.identifier?.find((i) => i.name === order_1.AWARD_ACCOUNTS_IDENTIFIER_NAME)?.value;
484
- if (typeof awardAccounsValue === 'string' && awardAccounsValue.length > 0) {
485
- awardAccounts = JSON.parse(awardAccounsValue);
486
- }
487
- // 注文口座にPermitは存在しないので、typeOfはAccountで固定のはず
488
- const awardAccount = awardAccounts.shift();
489
- if (awardAccount === undefined) {
490
- throw new factory.errors.NotFound('award account');
491
- }
492
- fromLocation = {
493
- typeOf: factory.permit.PermitType.Permit,
494
- identifier: awardAccount.accountNumber,
495
- // ↓指定しないとPermitのチェックが実行される(注文口座にはPermitが存在しない)
496
- hasNoPermit: true,
497
- issuedThrough: { id: issuedThrough.id }
498
- };
499
- }
500
- else if (fromLocation.typeOf === factory.permit.PermitType.Permit) {
501
- fromLocation = {
502
- ...fromLocation,
503
- hasNoPermit: false
504
- };
505
- }
506
- }
507
- return { fromLocation };
508
- };
509
- }
510
- function validateToLocation(project, toLocationBeforeStart, issuedThrough) {
511
- return async (repos) => {
512
- let toLocation = toLocationBeforeStart;
513
- if (typeof toLocation === 'string') {
514
- throw new factory.errors.Argument('toLocation', 'string not permitted');
515
- }
516
- else {
517
- // fromLocationが注文の場合に対応
518
- if (toLocation.typeOf === factory.order.OrderType.Order) {
519
- // 注文検索
520
- const orders = await repos.order.projectFields({
521
- limit: 1,
522
- page: 1,
523
- project: { id: { $eq: project.id } },
524
- orderNumbers: [String(toLocation.orderNumber)],
525
- confirmationNumbers: [String(toLocation.confirmationNumber)]
526
- }, {
527
- inclusion: [
528
- 'identifier'
529
- ]
530
- });
531
- const order = orders.shift();
532
- if (order === undefined) {
533
- throw new factory.errors.NotFound('Order');
534
- }
535
- let awardAccounts = [];
536
- const awardAccounsValue = order.identifier?.find((i) => i.name === order_1.AWARD_ACCOUNTS_IDENTIFIER_NAME)?.value;
537
- if (typeof awardAccounsValue === 'string' && awardAccounsValue.length > 0) {
538
- awardAccounts = JSON.parse(awardAccounsValue);
539
- }
540
- // 注文口座にPermitは存在しないので、typeOfはAccountで固定のはず
541
- const awardAccount = awardAccounts.shift();
542
- if (awardAccount === undefined) {
543
- throw new factory.errors.NotFound('award account');
544
- }
545
- toLocation = {
546
- typeOf: factory.permit.PermitType.Permit,
547
- identifier: awardAccount.accountNumber,
548
- // ↓指定しないとPermitのチェックが実行される(注文口座にはPermitが存在しない)
549
- hasNoPermit: true,
550
- issuedThrough: { id: issuedThrough.id }
551
- };
552
- }
553
- else if (toLocation.typeOf === factory.permit.PermitType.Permit) {
554
- toLocation = {
555
- ...toLocation,
556
- hasNoPermit: false
557
- };
558
- }
559
- }
560
- return { toLocation };
561
- };
562
- }
563
- /**
564
- * 取引確定
565
- */
566
- function confirm(params) {
567
- return async (repos) => {
568
- const now = new Date();
569
- const transaction = await repos.transaction.projectFieldsById({
570
- typeOf: factory.transactionType.MoneyTransfer,
571
- id: params.id
572
- }, ['typeOf', 'status', 'project']);
573
- if (transaction.status === factory.transactionStatusType.Confirmed) {
574
- // すでに確定済の場合
575
- return;
576
- }
577
- else if (transaction.status === factory.transactionStatusType.Expired) {
578
- throw new factory.errors.Argument('transactionId', 'Transaction already expired');
579
- }
580
- else if (transaction.status === factory.transactionStatusType.Canceled) {
581
- throw new factory.errors.Argument('transactionId', 'Transaction already canceled');
582
- }
583
- // if (transaction.agent.id !== params.agent.id) {
584
- // throw new factory.errors.Forbidden('Transaction not yours');
585
- // }
586
- // 取引に対する全ての承認アクションをマージ
587
- const authorizeActions = await searchAuthorizeActions({
588
- transaction: transaction,
589
- now: now
590
- })(repos);
591
- // ポストアクションを作成
592
- const potentialActions = await (0, potentialActions_1.createPotentialActions)({ authorizeActions, transaction });
593
- // 取引確定
594
- await repos.transaction.confirm({
595
- typeOf: factory.transactionType.MoneyTransfer,
596
- id: transaction.id,
597
- result: {},
598
- potentialActions: potentialActions
599
- });
600
- };
601
- }
602
- function searchAuthorizeActions(params) {
603
- return async (repos) => {
604
- let authorizeActions = await repos.action.searchByPurpose({
605
- typeOf: factory.actionType.AuthorizeAction,
606
- purpose: {
607
- typeOf: params.transaction.typeOf,
608
- id: params.transaction.id
609
- },
610
- // Completedに絞る(2023-05-16~)
611
- actionStatus: { $eq: factory.actionStatusType.CompletedActionStatus }
612
- });
613
- // 万が一このプロセス中に他処理が発生してもそれらを無視するように、endDateでフィルタリング
614
- authorizeActions = authorizeActions.filter((a) => {
615
- return (a.endDate instanceof Date) && (0, moment_1.default)(a.endDate)
616
- .isBefore((0, moment_1.default)(params.now));
617
- });
618
- return authorizeActions;
619
- };
620
- }
621
- /**
622
- * 取引のタスク出力
623
- */
624
- function exportTasksById(params) {
625
- return async (repos
626
- // settings: Settings
627
- ) => {
628
- const transaction = await repos.transaction.projectFieldsById({
629
- typeOf: factory.transactionType.MoneyTransfer,
630
- id: params.id
631
- }, ['endDate', 'status', 'project', 'startDate', 'typeOf', 'object', 'potentialActions']);
632
- // タスク実行日時バッファの指定があれば調整
633
- let taskRunsAt = new Date();
634
- if (typeof params.runsTasksAfterInSeconds === 'number') {
635
- taskRunsAt = (0, moment_1.default)(taskRunsAt)
636
- .add(params.runsTasksAfterInSeconds, 'seconds')
637
- .toDate();
638
- }
639
- // search settings
640
- const setting = await repos.setting.findOne({ project: { id: { $eq: '*' } } }, ['storage']);
641
- const taskAttributes = (0, factory_1.createTasks)({
642
- transaction,
643
- runsAt: taskRunsAt
644
- }, setting
645
- // settings
646
- );
647
- await repos.task.saveMany(taskAttributes, { emitImmediately: true });
648
- };
649
- }