@chevre/domain 23.2.0-alpha.8 → 23.2.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 (763) hide show
  1. package/example/src/chevre/acceptedPaymentMethodOffer/adminAcceptedPaymentMethodOffers.ts +27 -19
  2. package/example/src/chevre/actions/checkAcceptPayActions.ts +2 -2
  3. package/example/src/chevre/actions/checkAuthorizePaymentActions.ts +2 -2
  4. package/example/src/chevre/activateOptionalAggregationSettings.ts +1 -1
  5. package/example/src/chevre/adminIdentities.ts +1 -1
  6. package/example/src/chevre/aggreateOwnershipInfosByOrder.ts +1 -1
  7. package/example/src/chevre/aggregateEventPublicFields.ts +2 -2
  8. package/example/src/chevre/aggregateOfferCatalogItemList.ts +1 -1
  9. package/example/src/chevre/aggregateScreeningEventMaxVersion.ts +1 -1
  10. package/example/src/chevre/aggregation/aggregateOffersOnEvent.ts +1 -1
  11. package/example/src/chevre/aggregation/aggregateOrderOfCustomer.ts +2 -2
  12. package/example/src/chevre/aggregation/aggregateOrderOfCustomerGlobally.ts +2 -2
  13. package/example/src/chevre/aggregation/aggregateOrderOfSeatByRoyalCustomers.ts +2 -2
  14. package/example/src/chevre/aggregation/aggregateOrderOnSystem.ts +2 -2
  15. package/example/src/chevre/aggregation/aggregateReservationByProject.ts +2 -2
  16. package/example/src/chevre/aggregation/aggregateSystem.ts +1 -1
  17. package/example/src/chevre/aggregation/aggregateTasks.ts +2 -2
  18. package/example/src/chevre/aggregation/createAggregateEventTasks.ts +2 -2
  19. package/example/src/chevre/aggregation/searchAggregateReservations.ts +1 -1
  20. package/example/src/chevre/assetTransaction/checkPayTransactionsTicketToken.ts +2 -2
  21. package/example/src/chevre/assetTransaction/processReserve.ts +2 -2
  22. package/example/src/chevre/attendIfNotAttended.ts +1 -1
  23. package/example/src/chevre/authorizeEventServiceOffer.ts +1 -1
  24. package/example/src/chevre/categoryCode/checkUniqueness.ts +1 -1
  25. package/example/src/chevre/changeOrderStatus.ts +1 -1
  26. package/example/src/chevre/checkCustomerAttributesLength.ts +2 -2
  27. package/example/src/chevre/checkEventDuration.ts +2 -2
  28. package/example/src/chevre/checkPaymentServiceUniqueness.ts +1 -1
  29. package/example/src/chevre/checkProjectMembers.ts +1 -1
  30. package/example/src/chevre/checkReserveTransactionSizes.ts +2 -2
  31. package/example/src/chevre/cleanActions.ts +2 -2
  32. package/example/src/chevre/cleanReservations.ts +2 -2
  33. package/example/src/chevre/cleanTransactions.ts +2 -2
  34. package/example/src/chevre/confirmationNumber/testRandomness.ts +49 -0
  35. package/example/src/chevre/countPotentiallyExportTasks.ts +2 -2
  36. package/example/src/chevre/countTransactions.ts +1 -1
  37. package/example/src/chevre/createProject.ts +1 -1
  38. package/example/src/chevre/createTaskIfNotExistByAlternateName.ts +1 -1
  39. package/example/src/chevre/db/stats.ts +1 -1
  40. package/example/src/chevre/deleteDiscontinuedPeople.ts +2 -2
  41. package/example/src/chevre/deleteDiscontinuedPeopleByFetch.ts +1 -1
  42. package/example/src/chevre/deleteOwnershipInfosByOwnedThrough.ts +2 -2
  43. package/example/src/chevre/deleteStartDatePassedCertainPeriod.ts +2 -2
  44. package/example/src/chevre/deleteTasksByName.ts +2 -2
  45. package/example/src/chevre/emailMessage/createEmailMessageText.ts +63 -0
  46. package/example/src/chevre/event/checkEventAdditionalPropertyUniqueness.ts +2 -2
  47. package/example/src/chevre/event/importEventSeriesFromCOAByTitle.ts +1 -1
  48. package/example/src/chevre/event/importEventsFromCOAByTitle.ts +4 -4
  49. package/example/src/chevre/event/migrateEventAdditionalProperty2identifier.ts +2 -2
  50. package/example/src/chevre/event/migrateEventMaximumPhysicalAttendeeCapacity.ts +1 -1
  51. package/example/src/chevre/event/unsetSuperEventVideoFormat.ts +30 -0
  52. package/example/src/chevre/event/updateSellerMakesOffersByIdentifier.ts +2 -2
  53. package/example/src/chevre/eventSeries/unsetVideoFormat.ts +31 -0
  54. package/example/src/chevre/eventSeries/upsertScreeningEventSeriesByVersion.ts +106 -0
  55. package/example/src/chevre/findAnyEventById.ts +1 -1
  56. package/example/src/chevre/findAuthorizePaymentAction.ts +1 -1
  57. package/example/src/chevre/findAvailableChannelMovieTicket.ts +1 -1
  58. package/example/src/chevre/findCheckAction.ts +1 -1
  59. package/example/src/chevre/findCustomerByOrderNumber.ts +1 -1
  60. package/example/src/chevre/findItemListElementByCatalogId.ts +1 -1
  61. package/example/src/chevre/findItemListElementById.ts +1 -1
  62. package/example/src/chevre/findJWTSetting.ts +1 -1
  63. package/example/src/chevre/findOneAvailableHours.ts +2 -2
  64. package/example/src/chevre/findReservationByCode.ts +1 -1
  65. package/example/src/chevre/findSchedule.ts +1 -1
  66. package/example/src/chevre/giveUpStartDatePassedCertainPeriod.ts +2 -2
  67. package/example/src/chevre/identity/getCommonClients.ts +1 -1
  68. package/example/src/chevre/identity/migrateClients2oauth.ts +1 -1
  69. package/example/src/chevre/importCategoryCodesFromCOA.ts +1 -1
  70. package/example/src/chevre/importEventsFromCOA.ts +2 -2
  71. package/example/src/chevre/investigateEvents.ts +1 -1
  72. package/example/src/chevre/investigateTransaction.ts +2 -2
  73. package/example/src/chevre/isPaymentAcceptedBySeller.ts +1 -1
  74. package/example/src/chevre/issuer/adminMemberProgramTiers.ts +1 -1
  75. package/example/src/chevre/issuer/migrateIssuerUrls.ts +1 -1
  76. package/example/src/chevre/issuer/renameIssuerIdentifier.ts +1 -1
  77. package/example/src/chevre/maintenance/checkTransactionStatuses.ts +1 -1
  78. package/example/src/chevre/makeExpiredManyTasks.ts +1 -1
  79. package/example/src/chevre/makeTransactionExpired.ts +2 -2
  80. package/example/src/chevre/member/migrateMemberIdentifier.ts +2 -2
  81. package/example/src/chevre/migrateAuthorizeEventServiceOfferChevre.ts +1 -1
  82. package/example/src/chevre/migrateCancelReservationObject.ts +1 -1
  83. package/example/src/chevre/migrateCustomerAdditionalProperties.ts +2 -2
  84. package/example/src/chevre/migrateEventSellerMakesOfferAvailableAt.ts +2 -2
  85. package/example/src/chevre/migrateIdentities.ts +1 -1
  86. package/example/src/chevre/migrateProjectSettings.ts +1 -1
  87. package/example/src/chevre/migrateRoomAdditionalProperties.ts +2 -2
  88. package/example/src/chevre/migrateRoomSectionAdditionalProperties.ts +2 -2
  89. package/example/src/chevre/note/findNotes.ts +1 -1
  90. package/example/src/chevre/note/upsertNotesByIdentifier.ts +1 -1
  91. package/example/src/chevre/notifyAbortedTasksByEmail.ts +2 -2
  92. package/example/src/chevre/notifyByEmail.ts +1 -1
  93. package/example/src/chevre/offerCatalog/updateManyOfferCatalogsByIds.ts +1 -1
  94. package/example/src/chevre/{upsertOfferCatalogItemsByIdentifier.ts → offerCatalog/upsertOfferCatalogItemsByIdentifier.ts} +7 -4
  95. package/example/src/chevre/{upsertOfferCatalogsByIdentifier.ts → offerCatalog/upsertOfferCatalogsByIdentifier.ts} +9 -4
  96. package/example/src/chevre/offers/checkIncludedInCatalogCount.ts +1 -1
  97. package/example/src/chevre/offers/projectItemListElement.ts +1 -1
  98. package/example/src/chevre/offers/searchAvaialbleAppliesToMovieTicketByOfferCatalogId.ts +1 -1
  99. package/example/src/chevre/offers/searchByOfferCatalogIdWithSortIndex.ts +1 -1
  100. package/example/src/chevre/offers/searchOfferCatalogItemAvailability.ts +1 -1
  101. package/example/src/chevre/{upsertOffersByIdentifier.ts → offers/upsertOffersByIdentifier.ts} +6 -4
  102. package/example/src/chevre/optimizeActions.ts +2 -2
  103. package/example/src/chevre/orderNumber/testRandomness.ts +54 -0
  104. package/example/src/chevre/orders/searchOrders.ts +1 -1
  105. package/example/src/chevre/orders/searchWithUnwoundAcceptedOffers.ts +1 -1
  106. package/example/src/chevre/pendingReservation/findEventSeatOffersBySection.ts +1 -1
  107. package/example/src/chevre/person/checkUserPoolClients.ts +1 -1
  108. package/example/src/chevre/person/cleanUpCognitoUsers.ts +2 -2
  109. package/example/src/chevre/person/cleanUpCognitoUsersByFetch.ts +2 -2
  110. package/example/src/chevre/person/cleanUpCreditCard.ts +1 -1
  111. package/example/src/chevre/place/adminEntranceGates.ts +69 -0
  112. package/example/src/chevre/place/adminHasPOS.ts +1 -1
  113. package/example/src/chevre/place/aggregateSeatingTypes.ts +1 -1
  114. package/example/src/chevre/place/checkEntranceGatesCount.ts +82 -0
  115. package/example/src/chevre/place/checkSectionCount.ts +1 -1
  116. package/example/src/chevre/place/findRooms.ts +24 -0
  117. package/example/src/chevre/place/findSections.ts +28 -0
  118. package/example/src/chevre/place/findSectionsByRoom.ts +1 -1
  119. package/example/src/chevre/place/migrateSectionIdentifier.ts +2 -2
  120. package/example/src/chevre/place/seatsJson2csv.ts +63 -0
  121. package/example/src/chevre/place/upsertMovieTheatersByBranchCode.ts +41 -0
  122. package/example/src/chevre/place/upsertRoomsByBranchCode.ts +40 -0
  123. package/example/src/chevre/place/upsertSeatSectionsByBranchCode.ts +56 -0
  124. package/example/src/chevre/processAction.ts +1 -1
  125. package/example/src/chevre/processOrder.ts +2 -2
  126. package/example/src/chevre/product/findHasOfferCatalog.ts +1 -1
  127. package/example/src/chevre/productOffer/publishMemberTierToken.ts +1 -1
  128. package/example/src/chevre/project/unsetProjectSettings.ts +1 -1
  129. package/example/src/chevre/projectEventFieldsById.ts +1 -1
  130. package/example/src/chevre/projectFields.ts +1 -1
  131. package/example/src/chevre/projectFieldsById.ts +1 -1
  132. package/example/src/chevre/projectOwnershipInfoFieldsById.ts +1 -1
  133. package/example/src/chevre/pushIncludedInDataCatalog.ts +1 -1
  134. package/example/src/chevre/reExportAction.ts +2 -2
  135. package/example/src/chevre/reIndex.ts +2 -2
  136. package/example/src/chevre/recreateRefundTasks.ts +2 -2
  137. package/example/src/chevre/roles/{addAdminSeatReadPermissionIfNotExists.ts → addAdminAcceptedPaymentMethodReadPermissionIfNotExists.ts} +2 -2
  138. package/example/src/chevre/roles/{addAdminSeatWritePermissionIfNotExists.ts → addAdminAcceptedPaymentMethodWritePermissionIfNotExists.ts} +2 -2
  139. package/example/src/chevre/roles/addAdminEventSeriesReadPermissionIfNotExists.ts +1 -1
  140. package/example/src/chevre/roles/addAdminMovieReadPermissionIfNotExists.ts +1 -1
  141. package/example/src/chevre/roles/addAdminNotePermissionIfNotExists.ts +1 -1
  142. package/example/src/chevre/roles/addAdminPaymentServiceReadPermissionIfNotExists.ts +1 -1
  143. package/example/src/chevre/roles/addAdminProductHasOfferCatalogReadPermissionIfNotExists.ts +1 -1
  144. package/example/src/chevre/roles/addAdminRoomReadPermissionIfNotExists.ts +34 -0
  145. package/example/src/chevre/roles/addAdminRoomWritePermissionIfNotExists.ts +34 -0
  146. package/example/src/chevre/roles/addAdminSellerEventOfferIfNotExists.ts +1 -1
  147. package/example/src/chevre/roles/addProjectCreatorRole.ts +1 -1
  148. package/example/src/chevre/roles/assignGlobalRoles.ts +1 -1
  149. package/example/src/chevre/roles/findPermissions.ts +2 -2
  150. package/example/src/chevre/roles/findRoleNames.ts +2 -2
  151. package/example/src/chevre/roles/removeConsolePermissionIfExists.ts +1 -1
  152. package/example/src/chevre/roles/removePermissionFromAPIRoles.ts +1 -1
  153. package/example/src/chevre/roles/removePermissionIfExists.ts +1 -1
  154. package/example/src/chevre/saveOfferCatalogItem.ts +1 -1
  155. package/example/src/chevre/saveWebSite.ts +1 -1
  156. package/example/src/chevre/searchAcceptedOfferIds.ts +1 -1
  157. package/example/src/chevre/searchActionsByPurpose.ts +1 -1
  158. package/example/src/chevre/searchAggregateOffers.ts +1 -1
  159. package/example/src/chevre/searchAggregations.ts +1 -1
  160. package/example/src/chevre/searchAuthorizations.ts +1 -1
  161. package/example/src/chevre/searchCheckMovieTicketResultYkknInfo.ts +1 -1
  162. package/example/src/chevre/searchEventHasOfferCatalog.ts +1 -1
  163. package/example/src/chevre/searchIdsByReservationNumber.ts +1 -1
  164. package/example/src/chevre/searchOfferCatalogItemListElement.ts +1 -1
  165. package/example/src/chevre/searchOffers.ts +1 -1
  166. package/example/src/chevre/searchProducts.ts +1 -1
  167. package/example/src/chevre/searchProjects.ts +1 -1
  168. package/example/src/chevre/searchReservationsByOrder.ts +1 -1
  169. package/example/src/chevre/searchSellersByAggregate.ts +1 -1
  170. package/example/src/chevre/searchSlicedAcceptedOffersByOrderNumber.ts +1 -1
  171. package/example/src/chevre/seller/adminMakesOffer.ts +1 -1
  172. package/example/src/chevre/sendEmailMessage.ts +1 -1
  173. package/example/src/chevre/settings/addOrderNumberSetting.ts +44 -0
  174. package/example/src/chevre/settings/addTransactionNumberSetting.ts +40 -0
  175. package/example/src/chevre/stockHolder/findSeatsBySection.ts +1 -1
  176. package/example/src/chevre/stockHolder/getSize.ts +2 -2
  177. package/example/src/chevre/stockHolder/projectPendingReservation.ts +1 -1
  178. package/example/src/chevre/stockHolder/searchSeats.ts +1 -1
  179. package/example/src/chevre/task/countPotentiallyRunning.ts +1 -1
  180. package/example/src/chevre/task/countTasks.ts +1 -1
  181. package/example/src/chevre/task/deleteRunsAtPassedCertainPeriod.ts +2 -2
  182. package/example/src/chevre/task/deleteUnexpectedTasks.ts +1 -1
  183. package/example/src/chevre/task/emitRunning.ts +2 -2
  184. package/example/src/chevre/transaction/processPlaceOrder.ts +1 -1
  185. package/example/src/chevre/transaction/processReturnOrder.ts +1 -1
  186. package/example/src/chevre/transaction/startExportTasks.ts +1 -1
  187. package/example/src/chevre/transactionNumber/publishByTimestamp.ts +23 -0
  188. package/example/src/chevre/transactionNumber/testRandomness.ts +42 -0
  189. package/example/src/chevre/unsetUnnecessaryFields.ts +10 -6
  190. package/example/src/chevre/updateEventPartiallyById.ts +1 -1
  191. package/example/src/chevre/updateProjectAggregateReservation.ts +1 -1
  192. package/example/src/chevre/validateCheckMovieTicketActions.ts +2 -2
  193. package/example/src/duration.ts +1 -1
  194. package/example/src/moment.ts +1 -1
  195. package/example/src/mongoConnectionList.ts +1 -1
  196. package/example/src/objectId.ts +1 -1
  197. package/lib/chevre/credentials/customSearch.js +2 -0
  198. package/lib/chevre/credentials/lineNotify.js +4 -0
  199. package/lib/chevre/credentials/sendGrid.js +2 -0
  200. package/lib/chevre/credentials.js +37 -29
  201. package/lib/chevre/emailMessageBuilder.js +250 -251
  202. package/lib/chevre/errorHandler.js +60 -58
  203. package/lib/chevre/eventEmitter/assetTransaction.js +0 -1
  204. package/lib/chevre/eventEmitter/task.js +0 -1
  205. package/lib/chevre/eventEmitter/transaction.js +0 -1
  206. package/lib/chevre/eventEmitter.js +24 -1
  207. package/lib/chevre/factory/accountTransactionIdentifier.js +24 -1
  208. package/lib/chevre/factory/availableProductTypes.js +24 -1
  209. package/lib/chevre/factory/event.d.ts +1 -1
  210. package/lib/chevre/factory/event.js +93 -37
  211. package/lib/chevre/factory/taskIdentifier.js +25 -2
  212. package/lib/chevre/factory/transactionNumber.d.ts +19 -0
  213. package/lib/chevre/factory/transactionNumber.js +80 -0
  214. package/lib/chevre/index.js +43 -35
  215. package/lib/chevre/repo/acceptedOffer.js +200 -197
  216. package/lib/chevre/repo/acceptedPaymentMethod.d.ts +41 -8
  217. package/lib/chevre/repo/acceptedPaymentMethod.js +163 -108
  218. package/lib/chevre/repo/account.js +217 -238
  219. package/lib/chevre/repo/accountTitle.js +32 -21
  220. package/lib/chevre/repo/accountTransaction.js +213 -194
  221. package/lib/chevre/repo/accountingReport.js +111 -107
  222. package/lib/chevre/repo/action.js +875 -883
  223. package/lib/chevre/repo/additionalProperty.js +87 -92
  224. package/lib/chevre/repo/advanceBookingRequirement.js +92 -91
  225. package/lib/chevre/repo/aggregateOffer.d.ts +6 -1
  226. package/lib/chevre/repo/aggregateOffer.js +419 -423
  227. package/lib/chevre/repo/aggregateOrder.js +73 -155
  228. package/lib/chevre/repo/aggregateReservation.d.ts +0 -1
  229. package/lib/chevre/repo/aggregateReservation.js +99 -91
  230. package/lib/chevre/repo/aggregation.js +65 -63
  231. package/lib/chevre/repo/assetTransaction.js +719 -730
  232. package/lib/chevre/repo/authorization.js +143 -136
  233. package/lib/chevre/repo/categoryCode.js +137 -147
  234. package/lib/chevre/repo/comment.js +96 -82
  235. package/lib/chevre/repo/concurrentLock.js +40 -29
  236. package/lib/chevre/repo/confirmationNumber.d.ts +1 -0
  237. package/lib/chevre/repo/confirmationNumber.js +48 -54
  238. package/lib/chevre/repo/creativeWork.js +175 -180
  239. package/lib/chevre/repo/credentials.js +39 -51
  240. package/lib/chevre/repo/customer.js +87 -88
  241. package/lib/chevre/repo/customerType.js +52 -62
  242. package/lib/chevre/repo/emailMessage.js +74 -80
  243. package/lib/chevre/repo/event.d.ts +3 -18
  244. package/lib/chevre/repo/event.js +734 -744
  245. package/lib/chevre/repo/eventOffer.d.ts +8 -0
  246. package/lib/chevre/repo/eventOffer.js +149 -118
  247. package/lib/chevre/repo/eventSellerMakesOffer.js +87 -76
  248. package/lib/chevre/repo/eventSeries.d.ts +17 -30
  249. package/lib/chevre/repo/eventSeries.js +391 -347
  250. package/lib/chevre/repo/identity.js +117 -107
  251. package/lib/chevre/repo/identityProvider.js +95 -96
  252. package/lib/chevre/repo/issuer.js +125 -135
  253. package/lib/chevre/repo/member.js +261 -259
  254. package/lib/chevre/repo/memberProgram.js +180 -177
  255. package/lib/chevre/repo/merchantReturnPolicy.js +84 -94
  256. package/lib/chevre/repo/message.js +145 -135
  257. package/lib/chevre/repo/mongoose/onIndexCreated.js +0 -1
  258. package/lib/chevre/repo/mongoose/schemas/acceptedPaymentMethod.js +1 -1
  259. package/lib/chevre/repo/mongoose/schemas/account.js +1 -1
  260. package/lib/chevre/repo/mongoose/schemas/accountTitle.js +1 -1
  261. package/lib/chevre/repo/mongoose/schemas/accountTransaction.js +1 -1
  262. package/lib/chevre/repo/mongoose/schemas/accountingReport.js +1 -1
  263. package/lib/chevre/repo/mongoose/schemas/action.js +1 -1
  264. package/lib/chevre/repo/mongoose/schemas/actionRecipe.js +1 -1
  265. package/lib/chevre/repo/mongoose/schemas/additionalProperty.js +1 -1
  266. package/lib/chevre/repo/mongoose/schemas/advanceBookingRequirement.js +1 -1
  267. package/lib/chevre/repo/mongoose/schemas/aggregateOffer.js +1 -1
  268. package/lib/chevre/repo/mongoose/schemas/aggregateOrder.js +1 -1
  269. package/lib/chevre/repo/mongoose/schemas/aggregateReservation.js +1 -2
  270. package/lib/chevre/repo/mongoose/schemas/aggregation.js +1 -1
  271. package/lib/chevre/repo/mongoose/schemas/assetTransaction.js +1 -1
  272. package/lib/chevre/repo/mongoose/schemas/authorization.js +1 -1
  273. package/lib/chevre/repo/mongoose/schemas/categoryCode.js +1 -1
  274. package/lib/chevre/repo/mongoose/schemas/civicStructure.js +1 -1
  275. package/lib/chevre/repo/mongoose/schemas/creativeWork.js +1 -1
  276. package/lib/chevre/repo/mongoose/schemas/customer.js +1 -1
  277. package/lib/chevre/repo/mongoose/schemas/customerType.js +1 -1
  278. package/lib/chevre/repo/mongoose/schemas/event.js +1 -1
  279. package/lib/chevre/repo/mongoose/schemas/eventOffer.js +1 -1
  280. package/lib/chevre/repo/mongoose/schemas/eventSeries.js +45 -7
  281. package/lib/chevre/repo/mongoose/schemas/identity.js +1 -1
  282. package/lib/chevre/repo/mongoose/schemas/identityProvider.js +1 -1
  283. package/lib/chevre/repo/mongoose/schemas/issuer.js +1 -1
  284. package/lib/chevre/repo/mongoose/schemas/member/global.js +1 -1
  285. package/lib/chevre/repo/mongoose/schemas/member.js +25 -2
  286. package/lib/chevre/repo/mongoose/schemas/merchantReturnPolicy.js +1 -1
  287. package/lib/chevre/repo/mongoose/schemas/message.js +1 -1
  288. package/lib/chevre/repo/mongoose/schemas/movieTicketTypes.js +1 -1
  289. package/lib/chevre/repo/mongoose/schemas/note.js +1 -1
  290. package/lib/chevre/repo/mongoose/schemas/offerCatalog.js +3 -9
  291. package/lib/chevre/repo/mongoose/schemas/offerCatalogItem.js +29 -3
  292. package/lib/chevre/repo/mongoose/schemas/offerItemCondition.js +1 -1
  293. package/lib/chevre/repo/mongoose/schemas/order.js +1 -1
  294. package/lib/chevre/repo/mongoose/schemas/paymentService.js +1 -1
  295. package/lib/chevre/repo/mongoose/schemas/paymentServiceChannel.js +1 -1
  296. package/lib/chevre/repo/mongoose/schemas/pendingReservation.js +1 -1
  297. package/lib/chevre/repo/mongoose/schemas/pendingReservationAggregate.js +1 -1
  298. package/lib/chevre/repo/mongoose/schemas/place.d.ts +6 -2
  299. package/lib/chevre/repo/mongoose/schemas/place.js +1 -1
  300. package/lib/chevre/repo/mongoose/schemas/potentialAction.js +1 -1
  301. package/lib/chevre/repo/mongoose/schemas/product.js +1 -1
  302. package/lib/chevre/repo/mongoose/schemas/productModel.js +1 -1
  303. package/lib/chevre/repo/mongoose/schemas/productOffer.js +1 -1
  304. package/lib/chevre/repo/mongoose/schemas/reservation.js +1 -1
  305. package/lib/chevre/repo/mongoose/schemas/reserveInterface.js +1 -1
  306. package/lib/chevre/repo/mongoose/schemas/role.js +1 -1
  307. package/lib/chevre/repo/mongoose/schemas/schedule.js +1 -1
  308. package/lib/chevre/repo/mongoose/schemas/seller.js +1 -1
  309. package/lib/chevre/repo/mongoose/schemas/sellerReturnPolicy.js +1 -1
  310. package/lib/chevre/repo/mongoose/schemas/service/availableHour.js +1 -1
  311. package/lib/chevre/repo/mongoose/schemas/setting.d.ts +40 -0
  312. package/lib/chevre/repo/mongoose/schemas/setting.js +4 -1
  313. package/lib/chevre/repo/mongoose/schemas/task.js +1 -2
  314. package/lib/chevre/repo/mongoose/schemas/ticket.js +1 -1
  315. package/lib/chevre/repo/mongoose/schemas/transaction.js +25 -2
  316. package/lib/chevre/repo/mongoose/schemas/transactionNumber.js +1 -1
  317. package/lib/chevre/repo/mongoose/schemas/trip.js +1 -1
  318. package/lib/chevre/repo/mongoose/schemas/webSite.js +1 -1
  319. package/lib/chevre/repo/movieTicketType.js +90 -94
  320. package/lib/chevre/repo/note.js +166 -147
  321. package/lib/chevre/repo/noteAboutOrder.js +135 -113
  322. package/lib/chevre/repo/offer/unitPriceInCatalog.js +353 -314
  323. package/lib/chevre/repo/offerCatalog.d.ts +14 -1
  324. package/lib/chevre/repo/offerCatalog.js +313 -300
  325. package/lib/chevre/repo/offerCatalogItem.d.ts +10 -1
  326. package/lib/chevre/repo/offerCatalogItem.js +302 -292
  327. package/lib/chevre/repo/offerItemCondition.js +83 -85
  328. package/lib/chevre/repo/order.js +582 -607
  329. package/lib/chevre/repo/orderInTransaction.js +136 -136
  330. package/lib/chevre/repo/orderNumber.d.ts +6 -0
  331. package/lib/chevre/repo/orderNumber.js +142 -58
  332. package/lib/chevre/repo/ownershipInfo.js +236 -241
  333. package/lib/chevre/repo/passport.js +123 -106
  334. package/lib/chevre/repo/paymentMethod/creditCard.js +175 -170
  335. package/lib/chevre/repo/paymentService.js +202 -200
  336. package/lib/chevre/repo/paymentServiceChannel.js +99 -100
  337. package/lib/chevre/repo/paymentServiceProvider.js +209 -201
  338. package/lib/chevre/repo/pendingReservation.js +300 -307
  339. package/lib/chevre/repo/permit.js +70 -42
  340. package/lib/chevre/repo/person.js +240 -256
  341. package/lib/chevre/repo/place/busStop.js +99 -106
  342. package/lib/chevre/repo/place/entranceGate.d.ts +57 -0
  343. package/lib/chevre/repo/place/entranceGate.js +190 -0
  344. package/lib/chevre/repo/place/hasPOS.js +131 -120
  345. package/lib/chevre/repo/place/movieTheater.d.ts +40 -3
  346. package/lib/chevre/repo/place/movieTheater.js +220 -161
  347. package/lib/chevre/repo/place/screeningRoom.d.ts +49 -41
  348. package/lib/chevre/repo/place/screeningRoom.js +469 -345
  349. package/lib/chevre/repo/place/seat.d.ts +47 -45
  350. package/lib/chevre/repo/place/seat.js +596 -386
  351. package/lib/chevre/repo/place/section.d.ts +34 -3
  352. package/lib/chevre/repo/place/section.js +510 -292
  353. package/lib/chevre/repo/potentialAction.js +90 -87
  354. package/lib/chevre/repo/priceSpecification.js +125 -146
  355. package/lib/chevre/repo/product.js +226 -239
  356. package/lib/chevre/repo/productHasOfferCatalog.js +62 -50
  357. package/lib/chevre/repo/productModel.js +117 -127
  358. package/lib/chevre/repo/productOffer.js +142 -118
  359. package/lib/chevre/repo/project.js +146 -141
  360. package/lib/chevre/repo/projectMakesOffer.js +119 -108
  361. package/lib/chevre/repo/rateLimit/offer.js +71 -59
  362. package/lib/chevre/repo/reservation.js +392 -398
  363. package/lib/chevre/repo/reserveInterface.js +31 -42
  364. package/lib/chevre/repo/role.js +116 -112
  365. package/lib/chevre/repo/schedule.js +25 -36
  366. package/lib/chevre/repo/seller.js +137 -147
  367. package/lib/chevre/repo/sellerMakesOffer.js +118 -110
  368. package/lib/chevre/repo/sellerPaymentAccepted.js +115 -109
  369. package/lib/chevre/repo/sellerReturnPolicy.js +97 -97
  370. package/lib/chevre/repo/service/availableHour.js +27 -38
  371. package/lib/chevre/repo/serviceOutput.js +77 -67
  372. package/lib/chevre/repo/serviceOutputIdentifier.d.ts +3 -1
  373. package/lib/chevre/repo/serviceOutputIdentifier.js +80 -51
  374. package/lib/chevre/repo/setting/jwt.js +63 -50
  375. package/lib/chevre/repo/setting.d.ts +1 -1
  376. package/lib/chevre/repo/setting.js +48 -48
  377. package/lib/chevre/repo/stockHolder.js +202 -199
  378. package/lib/chevre/repo/task.d.ts +1 -1
  379. package/lib/chevre/repo/task.js +636 -619
  380. package/lib/chevre/repo/telemetry.js +1 -0
  381. package/lib/chevre/repo/ticket.js +75 -65
  382. package/lib/chevre/repo/transaction.js +781 -816
  383. package/lib/chevre/repo/transactionNumber.d.ts +5 -0
  384. package/lib/chevre/repo/transactionNumber.js +100 -51
  385. package/lib/chevre/repo/transactionNumberCounter.js +91 -79
  386. package/lib/chevre/repo/transactionProcess.js +65 -50
  387. package/lib/chevre/repo/trip.js +167 -164
  388. package/lib/chevre/repo/webSite.js +114 -107
  389. package/lib/chevre/repository.d.ts +8 -0
  390. package/lib/chevre/repository.js +486 -639
  391. package/lib/chevre/service/account.js +32 -21
  392. package/lib/chevre/service/accountTransaction/deposit.js +39 -17
  393. package/lib/chevre/service/accountTransaction/factory.js +24 -1
  394. package/lib/chevre/service/accountTransaction/transfer.js +41 -22
  395. package/lib/chevre/service/accountTransaction/withdraw.js +39 -17
  396. package/lib/chevre/service/accountTransaction.js +30 -19
  397. package/lib/chevre/service/aggregation/event/aggregateOffers.js +95 -66
  398. package/lib/chevre/service/aggregation/event/aggregateScreeningEvent.js +84 -61
  399. package/lib/chevre/service/aggregation/event/findEventOffers.js +30 -17
  400. package/lib/chevre/service/aggregation/event/importFromCOA.js +11 -18
  401. package/lib/chevre/service/aggregation/project.js +48 -31
  402. package/lib/chevre/service/aggregation/system.js +256 -147
  403. package/lib/chevre/service/aggregation.js +26 -3
  404. package/lib/chevre/service/assetTransaction/cancelReservation/factory.js +55 -18
  405. package/lib/chevre/service/assetTransaction/cancelReservation/start.js +40 -24
  406. package/lib/chevre/service/assetTransaction/cancelReservation/startAndConfirm.js +40 -15
  407. package/lib/chevre/service/assetTransaction/cancelReservation.js +30 -18
  408. package/lib/chevre/service/assetTransaction/cancelReservationCOA/factory.js +35 -5
  409. package/lib/chevre/service/assetTransaction/cancelReservationCOA.js +4 -13
  410. package/lib/chevre/service/assetTransaction/fixInformAction.d.ts +3 -0
  411. package/lib/chevre/service/assetTransaction/fixInformAction.js +32 -16
  412. package/lib/chevre/service/assetTransaction/moneyTransfer/potentialActions.js +36 -25
  413. package/lib/chevre/service/assetTransaction/moneyTransfer.js +131 -94
  414. package/lib/chevre/service/assetTransaction/pay/cancel.d.ts +12 -0
  415. package/lib/chevre/service/assetTransaction/pay/cancel.js +39 -0
  416. package/lib/chevre/service/assetTransaction/pay/check.d.ts +23 -0
  417. package/lib/chevre/service/assetTransaction/pay/check.js +50 -0
  418. package/lib/chevre/service/assetTransaction/pay/confirm.d.ts +24 -0
  419. package/lib/chevre/service/assetTransaction/pay/confirm.js +92 -0
  420. package/lib/chevre/service/assetTransaction/pay/exportTasksById.d.ts +18 -0
  421. package/lib/chevre/service/assetTransaction/pay/exportTasksById.js +127 -0
  422. package/lib/chevre/service/assetTransaction/pay/publishPaymentUrl.d.ts +48 -0
  423. package/lib/chevre/service/assetTransaction/pay/publishPaymentUrl.js +186 -0
  424. package/lib/chevre/service/assetTransaction/pay/searchGMOTrade.d.ts +20 -0
  425. package/lib/chevre/service/assetTransaction/pay/searchGMOTrade.js +72 -0
  426. package/lib/chevre/service/assetTransaction/pay/{account → start/account}/validation.d.ts +2 -2
  427. package/lib/chevre/service/assetTransaction/pay/{account → start/account}/validation.js +29 -16
  428. package/lib/chevre/service/assetTransaction/pay/{factory.d.ts → start/factory.d.ts} +1 -1
  429. package/lib/chevre/service/assetTransaction/pay/{factory.js → start/factory.js} +88 -38
  430. package/lib/chevre/service/assetTransaction/pay/{validateAcceptedPaymentMethodIfNeeded.d.ts → start/preStart/validateAcceptedPaymentMethodIfNeeded.d.ts} +4 -4
  431. package/lib/chevre/service/assetTransaction/pay/{validateAcceptedPaymentMethodIfNeeded.js → start/preStart/validateAcceptedPaymentMethodIfNeeded.js} +35 -24
  432. package/lib/chevre/service/assetTransaction/pay/start/preStart/validateSeller.d.ts +8 -0
  433. package/lib/chevre/service/assetTransaction/pay/start/preStart/validateSeller.js +67 -0
  434. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeAccount.d.ts +13 -0
  435. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeAccount.js +62 -0
  436. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeCreditCard.d.ts +29 -0
  437. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeCreditCard.js +54 -0
  438. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeMovieTicket.d.ts +42 -0
  439. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeMovieTicket.js +45 -0
  440. package/lib/chevre/service/assetTransaction/pay/start.d.ts +60 -0
  441. package/lib/chevre/service/assetTransaction/pay/start.js +162 -0
  442. package/lib/chevre/service/assetTransaction/pay.d.ts +8 -170
  443. package/lib/chevre/service/assetTransaction/pay.js +16 -623
  444. package/lib/chevre/service/assetTransaction/refund/factory.js +60 -17
  445. package/lib/chevre/service/assetTransaction/refund/potentialActions.js +35 -21
  446. package/lib/chevre/service/assetTransaction/refund.js +63 -43
  447. package/lib/chevre/service/assetTransaction/registerService/factory.js +96 -33
  448. package/lib/chevre/service/assetTransaction/registerService/potentialActions.js +80 -47
  449. package/lib/chevre/service/assetTransaction/registerService.js +70 -58
  450. package/lib/chevre/service/assetTransaction/reserve/cancel.js +28 -14
  451. package/lib/chevre/service/assetTransaction/reserve/confirm/factory.js +15 -4
  452. package/lib/chevre/service/assetTransaction/reserve/confirm.js +44 -26
  453. package/lib/chevre/service/assetTransaction/reserve/exportTasksById.js +26 -13
  454. package/lib/chevre/service/assetTransaction/reserve/start/createSubReservations.js +138 -96
  455. package/lib/chevre/service/assetTransaction/reserve/start/factory/createPointAward.js +41 -13
  456. package/lib/chevre/service/assetTransaction/reserve/start/factory/createReservation.js +142 -80
  457. package/lib/chevre/service/assetTransaction/reserve/start/factory/createStartParams.js +93 -23
  458. package/lib/chevre/service/assetTransaction/reserve/start/factory/price.js +53 -21
  459. package/lib/chevre/service/assetTransaction/reserve/start.js +131 -122
  460. package/lib/chevre/service/assetTransaction/reserve/validateStartRequest/fixExtendedEventOffer.js +33 -17
  461. package/lib/chevre/service/assetTransaction/reserve/validateStartRequest/validateIssuedOfferIfExists.js +72 -59
  462. package/lib/chevre/service/assetTransaction/reserve/validateStartRequest/validateMemberTierIfExists.js +71 -59
  463. package/lib/chevre/service/assetTransaction/reserve/validateStartRequest/verifyTicketTokenAsNeeded.js +30 -19
  464. package/lib/chevre/service/assetTransaction/reserve/validateStartRequest.js +45 -31
  465. package/lib/chevre/service/assetTransaction/reserveCOA/cancel.js +47 -24
  466. package/lib/chevre/service/assetTransaction/reserveCOA/factory.js +36 -5
  467. package/lib/chevre/service/assetTransaction/reserveCOA.js +4 -13
  468. package/lib/chevre/service/assetTransaction.js +46 -27
  469. package/lib/chevre/service/delivery/factory.js +33 -8
  470. package/lib/chevre/service/delivery/product/factory.js +48 -13
  471. package/lib/chevre/service/delivery/reservation/factory.js +44 -7
  472. package/lib/chevre/service/delivery.js +78 -56
  473. package/lib/chevre/service/event/processUpdateMovieTheater.d.ts +1 -1
  474. package/lib/chevre/service/event/processUpdateMovieTheater.js +56 -36
  475. package/lib/chevre/service/event/saveScreeningEventSeries.js +98 -58
  476. package/lib/chevre/service/event/saveScreeningEvents.d.ts +2 -2
  477. package/lib/chevre/service/event/saveScreeningEvents.js +65 -50
  478. package/lib/chevre/service/event.js +70 -40
  479. package/lib/chevre/service/iam.js +8 -17
  480. package/lib/chevre/service/moneyTransfer.js +158 -116
  481. package/lib/chevre/service/notification/factory.js +42 -15
  482. package/lib/chevre/service/notification/notifyAbortedTasksByEmail.js +39 -17
  483. package/lib/chevre/service/notification/notifyByEmail.js +31 -20
  484. package/lib/chevre/service/notification/sendEmailMessage.js +47 -27
  485. package/lib/chevre/service/notification/triggerWebhook.js +82 -57
  486. package/lib/chevre/service/offer/any.js +34 -17
  487. package/lib/chevre/service/offer/event/authorize/defaultOffer.js +24 -1
  488. package/lib/chevre/service/offer/event/authorize/factory.js +173 -63
  489. package/lib/chevre/service/offer/event/authorize/processStartReserve4chevre/requestedProgramMembershipUsed2permit.js +31 -19
  490. package/lib/chevre/service/offer/event/authorize/processStartReserve4chevre.js +67 -28
  491. package/lib/chevre/service/offer/event/authorize.js +137 -71
  492. package/lib/chevre/service/offer/event/checkAvailability.js +33 -17
  493. package/lib/chevre/service/offer/event/importFromCOA/factory.js +34 -5
  494. package/lib/chevre/service/offer/event/importFromCOA.js +36 -19
  495. package/lib/chevre/service/offer/event/issueEventOfferTicket.js +66 -41
  496. package/lib/chevre/service/offer/event/searchEventTicketOffers.js +53 -42
  497. package/lib/chevre/service/offer/event/searchOfferAppliesToMovieTicket.js +38 -23
  498. package/lib/chevre/service/offer/event/searchOfferCatalogItemAvailability.js +36 -26
  499. package/lib/chevre/service/offer/event/searchOfferCatalogItems.js +38 -23
  500. package/lib/chevre/service/offer/event/searchOffersByIds.js +56 -42
  501. package/lib/chevre/service/offer/event/searchPriceSpecs4event.js +28 -14
  502. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4chevre.js +27 -13
  503. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4coa.js +6 -15
  504. package/lib/chevre/service/offer/event/voidTransaction.js +58 -41
  505. package/lib/chevre/service/offer/event/voidTransactionByActionId.js +37 -20
  506. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer/authorize.js +76 -43
  507. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer/factory.js +29 -2
  508. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer.js +57 -37
  509. package/lib/chevre/service/offer/eventServiceByCOA/authorize/factory.js +81 -30
  510. package/lib/chevre/service/offer/eventServiceByCOA/authorize/validateAcceptedOffers.js +90 -62
  511. package/lib/chevre/service/offer/eventServiceByCOA/authorize.js +44 -29
  512. package/lib/chevre/service/offer/eventServiceByCOA/authorizeByAcceptAction.js +31 -18
  513. package/lib/chevre/service/offer/eventServiceByCOA/changeOffers.js +70 -45
  514. package/lib/chevre/service/offer/eventServiceByCOA/findAcceptAction.js +45 -25
  515. package/lib/chevre/service/offer/factory.js +42 -9
  516. package/lib/chevre/service/offer/moneyTransfer/authorize.js +60 -39
  517. package/lib/chevre/service/offer/moneyTransfer/returnMoneyTransfer.js +39 -22
  518. package/lib/chevre/service/offer/moneyTransfer/settleTransaction.js +34 -20
  519. package/lib/chevre/service/offer/moneyTransfer/voidTransaction.js +38 -25
  520. package/lib/chevre/service/offer/onEventChanged.js +106 -72
  521. package/lib/chevre/service/offer/product/factory.js +83 -35
  522. package/lib/chevre/service/offer/product/searchProductOffers.js +53 -24
  523. package/lib/chevre/service/offer/product.js +130 -83
  524. package/lib/chevre/service/offer.d.ts +5 -0
  525. package/lib/chevre/service/offer.js +111 -57
  526. package/lib/chevre/service/order/confirmPayTransaction.js +52 -28
  527. package/lib/chevre/service/order/createAccountingReportIfNotExist.js +81 -42
  528. package/lib/chevre/service/order/deleteOrder.js +51 -36
  529. package/lib/chevre/service/order/findPlaceOrderTransaction.js +26 -12
  530. package/lib/chevre/service/order/onAssetTransactionStatusChanged.js +92 -72
  531. package/lib/chevre/service/order/onOrderStatusChanged/onOrderCancelled/factory.d.ts +1 -1
  532. package/lib/chevre/service/order/onOrderStatusChanged/onOrderCancelled/factory.js +25 -3
  533. package/lib/chevre/service/order/onOrderStatusChanged/onOrderCancelled.js +31 -14
  534. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered/factory.js +35 -7
  535. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered.js +33 -16
  536. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.d.ts +1 -1
  537. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.js +46 -10
  538. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially.js +33 -16
  539. package/lib/chevre/service/order/onOrderStatusChanged/onOrderInTransit.js +51 -28
  540. package/lib/chevre/service/order/onOrderStatusChanged/onOrderPaymentDue.js +41 -21
  541. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/createSendEmailMessageTaskIfNotExist.js +29 -15
  542. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/factory.js +49 -16
  543. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/processOrder.js +52 -35
  544. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing.js +36 -20
  545. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned/factory.d.ts +1 -1
  546. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned/factory.js +34 -10
  547. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned.js +51 -30
  548. package/lib/chevre/service/order/onOrderUpdated/factory.js +27 -6
  549. package/lib/chevre/service/order/onOrderUpdated.js +36 -15
  550. package/lib/chevre/service/order/payOrder.js +26 -12
  551. package/lib/chevre/service/order/placeOrder/createPlacingOrderFromExistingTransaction.js +32 -20
  552. package/lib/chevre/service/order/placeOrder/factory/orderedItem.js +55 -16
  553. package/lib/chevre/service/order/placeOrder/factory.js +63 -24
  554. package/lib/chevre/service/order/placeOrder/voidAcceptedOfferIfNecessary.js +7 -13
  555. package/lib/chevre/service/order/placeOrder.js +35 -23
  556. package/lib/chevre/service/order/placeOrderWithoutTransaction.js +33 -18
  557. package/lib/chevre/service/order/returnOrder.js +55 -32
  558. package/lib/chevre/service/order/sendOrder.js +65 -39
  559. package/lib/chevre/service/payment/any/authorize/fixTransactionNumber.js +42 -25
  560. package/lib/chevre/service/payment/any/authorize/handlePrePublishedPaymentMethodIdOnAuthorizing.js +52 -41
  561. package/lib/chevre/service/payment/any/factory.js +137 -55
  562. package/lib/chevre/service/payment/any/fixOrderAsNeeded.js +27 -13
  563. package/lib/chevre/service/payment/any/onPayActionCompleted.js +36 -18
  564. package/lib/chevre/service/payment/any/onPaymentStatusChanged/onPaid.js +61 -38
  565. package/lib/chevre/service/payment/any/onPaymentStatusChanged/onRefunded.js +45 -25
  566. package/lib/chevre/service/payment/any/onPaymentStatusChanged.js +39 -16
  567. package/lib/chevre/service/payment/any/onRefundActionCompletedOrFailed.js +38 -21
  568. package/lib/chevre/service/payment/any/person2username.js +55 -45
  569. package/lib/chevre/service/payment/any/publishPaymentUrl/fixTransactionNumberOnPublishPaymentUrl.js +31 -18
  570. package/lib/chevre/service/payment/any/verifyTicketTokenAsNeeded.js +28 -17
  571. package/lib/chevre/service/payment/any.js +206 -144
  572. package/lib/chevre/service/payment/creditCard/authorize/handleAuthorizeError.js +31 -5
  573. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard.js +68 -26
  574. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard3ds.js +29 -15
  575. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard3dsResult2recipe.js +29 -2
  576. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCardResult2recipe.js +34 -3
  577. package/lib/chevre/service/payment/creditCard/authorize.js +49 -25
  578. package/lib/chevre/service/payment/creditCard/factory.js +46 -5
  579. package/lib/chevre/service/payment/creditCard/getGMOInfoFromSeller.js +31 -18
  580. package/lib/chevre/service/payment/creditCard/payCreditCard.js +55 -37
  581. package/lib/chevre/service/payment/creditCard/refundCreditCard.js +64 -52
  582. package/lib/chevre/service/payment/creditCard/searchGMOTrade.js +57 -46
  583. package/lib/chevre/service/payment/creditCard/voidTransaction.js +39 -27
  584. package/lib/chevre/service/payment/faceToFace.js +37 -23
  585. package/lib/chevre/service/payment/factory/createPayObjectServiceOutput.js +68 -26
  586. package/lib/chevre/service/payment/factory.js +74 -25
  587. package/lib/chevre/service/payment/movieTicket/authorize.js +58 -30
  588. package/lib/chevre/service/payment/movieTicket/checkMovieTicket.js +45 -25
  589. package/lib/chevre/service/payment/movieTicket/factory.js +64 -15
  590. package/lib/chevre/service/payment/movieTicket/getCredentials.js +28 -15
  591. package/lib/chevre/service/payment/movieTicket/payMovieTicket.js +53 -41
  592. package/lib/chevre/service/payment/movieTicket/processPurchaseNumberAuth.js +37 -21
  593. package/lib/chevre/service/payment/movieTicket/refundMovieTicket.js +90 -64
  594. package/lib/chevre/service/payment/movieTicket/validation.js +69 -39
  595. package/lib/chevre/service/payment/movieTicket/voidTransaction.js +31 -18
  596. package/lib/chevre/service/payment/paymentCard.js +117 -108
  597. package/lib/chevre/service/permit.js +60 -36
  598. package/lib/chevre/service/product.js +50 -29
  599. package/lib/chevre/service/project.js +22 -31
  600. package/lib/chevre/service/report/ownershipInfo.js +9 -7
  601. package/lib/chevre/service/report/telemetry.js +86 -79
  602. package/lib/chevre/service/report.js +25 -2
  603. package/lib/chevre/service/reserve/cancelReservation.js +122 -97
  604. package/lib/chevre/service/reserve/checkInReservation.js +52 -31
  605. package/lib/chevre/service/reserve/confirmReservation.js +61 -41
  606. package/lib/chevre/service/reserve/factory.js +66 -21
  607. package/lib/chevre/service/reserve/findByCode.js +36 -18
  608. package/lib/chevre/service/reserve/potentialActions/onPendingReservationCanceled.js +41 -24
  609. package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.js +40 -25
  610. package/lib/chevre/service/reserve/potentialActions/onReservationCheckedIn.js +61 -30
  611. package/lib/chevre/service/reserve/potentialActions/onReservationConfirmed.js +68 -37
  612. package/lib/chevre/service/reserve/potentialActions/onReservationUsed.js +67 -37
  613. package/lib/chevre/service/reserve/potentialActions/onReservationsCreated.js +40 -23
  614. package/lib/chevre/service/reserve/searchByOrder.js +33 -20
  615. package/lib/chevre/service/reserve/useReservation.js +75 -36
  616. package/lib/chevre/service/reserve/verifyToken4reservation.js +30 -14
  617. package/lib/chevre/service/reserveCOA/cancelReservation.js +30 -17
  618. package/lib/chevre/service/reserveCOA/factory.js +29 -2
  619. package/lib/chevre/service/task/acceptCOAOffer.js +44 -26
  620. package/lib/chevre/service/task/aggregateOffers.js +26 -12
  621. package/lib/chevre/service/task/aggregateOnSystem.js +4 -14
  622. package/lib/chevre/service/task/aggregateScreeningEvent.js +27 -13
  623. package/lib/chevre/service/task/authorizePayment.js +32 -15
  624. package/lib/chevre/service/task/cancelMoneyTransfer.js +3 -12
  625. package/lib/chevre/service/task/cancelPendingReservation.js +34 -21
  626. package/lib/chevre/service/task/cancelReservation.js +26 -12
  627. package/lib/chevre/service/task/checkMovieTicket.js +39 -19
  628. package/lib/chevre/service/task/checkResource.js +30 -16
  629. package/lib/chevre/service/task/confirmMoneyTransfer.js +3 -12
  630. package/lib/chevre/service/task/confirmPayTransaction.js +6 -12
  631. package/lib/chevre/service/task/confirmRegisterService.js +3 -12
  632. package/lib/chevre/service/task/confirmRegisterServiceTransaction.js +51 -32
  633. package/lib/chevre/service/task/confirmReserveTransaction.js +72 -46
  634. package/lib/chevre/service/task/createAccountingReport.js +37 -20
  635. package/lib/chevre/service/task/deletePerson.js +77 -63
  636. package/lib/chevre/service/task/deleteTransaction.js +26 -12
  637. package/lib/chevre/service/task/givePointAward.js +27 -13
  638. package/lib/chevre/service/task/handleNotification.js +4 -14
  639. package/lib/chevre/service/task/importEventCapacitiesFromCOA.js +31 -18
  640. package/lib/chevre/service/task/importEventsFromCOA.js +31 -18
  641. package/lib/chevre/service/task/importOffersFromCOA.js +33 -20
  642. package/lib/chevre/service/task/invalidatePaymentUrl.js +6 -12
  643. package/lib/chevre/service/task/moneyTransfer.js +27 -13
  644. package/lib/chevre/service/task/onAssetTransactionStatusChanged.js +3 -12
  645. package/lib/chevre/service/task/onAuthorizationCreated.js +34 -19
  646. package/lib/chevre/service/task/onEventChanged.js +3 -12
  647. package/lib/chevre/service/task/onOrderPaymentCompleted.js +3 -12
  648. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByAggregateOffer.d.ts +13 -0
  649. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByAggregateOffer.js +67 -0
  650. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByEventSeries.d.ts +13 -0
  651. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByEventSeries.js +70 -0
  652. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByMovieTheater.d.ts +15 -0
  653. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByMovieTheater.js +72 -0
  654. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByOfferCatalog.d.ts +17 -0
  655. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByOfferCatalog.js +89 -0
  656. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByProduct.d.ts +19 -0
  657. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByProduct.js +74 -0
  658. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByRoom.d.ts +20 -0
  659. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByRoom.js +65 -0
  660. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesBySeller.d.ts +27 -0
  661. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesBySeller.js +113 -0
  662. package/lib/chevre/service/task/onResourceDeleted.d.ts +6 -0
  663. package/lib/chevre/service/task/onResourceDeleted.js +181 -0
  664. package/lib/chevre/service/task/onResourceUpdated/onAggregateOfferUpdated.js +32 -21
  665. package/lib/chevre/service/task/onResourceUpdated/onCategoryCodeUpdated.js +3 -12
  666. package/lib/chevre/service/task/onResourceUpdated/onHasPOSUpdated.js +34 -23
  667. package/lib/chevre/service/task/onResourceUpdated/onOfferCatalogUpdated.js +36 -25
  668. package/lib/chevre/service/task/onResourceUpdated/syncCategoryCode.js +32 -15
  669. package/lib/chevre/service/task/onResourceUpdated/syncOfferCatalog.js +44 -27
  670. package/lib/chevre/service/task/onResourceUpdated.js +285 -144
  671. package/lib/chevre/service/task/pay.js +31 -16
  672. package/lib/chevre/service/task/payment/invalidatePaymentUrlByTask.js +28 -15
  673. package/lib/chevre/service/task/payment/payByTask.js +81 -44
  674. package/lib/chevre/service/task/payment/refundByTask.js +34 -21
  675. package/lib/chevre/service/task/payment/voidPaymentByTask.js +33 -19
  676. package/lib/chevre/service/task/placeOrder.js +6 -12
  677. package/lib/chevre/service/task/publishPaymentUrl.js +32 -14
  678. package/lib/chevre/service/task/refund.js +31 -16
  679. package/lib/chevre/service/task/registerService.js +3 -12
  680. package/lib/chevre/service/task/reserve.js +3 -12
  681. package/lib/chevre/service/task/returnMoneyTransfer.js +26 -12
  682. package/lib/chevre/service/task/returnOrder.js +6 -12
  683. package/lib/chevre/service/task/returnPayTransaction.js +83 -52
  684. package/lib/chevre/service/task/returnPointAward.js +27 -13
  685. package/lib/chevre/service/task/returnReserveTransaction.js +60 -35
  686. package/lib/chevre/service/task/sendEmailMessage.js +6 -13
  687. package/lib/chevre/service/task/sendOrder.js +35 -15
  688. package/lib/chevre/service/task/syncResourcesFromCOA.js +74 -52
  689. package/lib/chevre/service/task/triggerWebhook.js +6 -12
  690. package/lib/chevre/service/task/useReservation.js +11 -14
  691. package/lib/chevre/service/task/voidMoneyTransferTransaction.js +3 -12
  692. package/lib/chevre/service/task/voidPayTransaction.js +7 -12
  693. package/lib/chevre/service/task/voidPayment.js +26 -12
  694. package/lib/chevre/service/task/voidRegisterServiceTransaction.js +3 -12
  695. package/lib/chevre/service/task/voidReserveTransaction.js +34 -17
  696. package/lib/chevre/service/task.js +43 -27
  697. package/lib/chevre/service/taskHandler/onOperationFailed/informTaskIfNeeded.js +37 -22
  698. package/lib/chevre/service/taskHandler/onOperationFailed.js +43 -17
  699. package/lib/chevre/service/taskHandler.js +50 -26
  700. package/lib/chevre/service/transaction/deleteTransaction.js +127 -88
  701. package/lib/chevre/service/transaction/moneyTransfer/exportTasks/factory.js +45 -13
  702. package/lib/chevre/service/transaction/moneyTransfer/factory.js +37 -5
  703. package/lib/chevre/service/transaction/moneyTransfer/potentialActions.js +35 -24
  704. package/lib/chevre/service/transaction/moneyTransfer.js +151 -104
  705. package/lib/chevre/service/transaction/placeOrder/confirm/factory/result.js +24 -1
  706. package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions/sendEmailMessage.js +73 -52
  707. package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions.js +14 -25
  708. package/lib/chevre/service/transaction/placeOrder/confirm/publishCode.js +27 -14
  709. package/lib/chevre/service/transaction/placeOrder/confirm/validation/validateInvoiceReferencesOrder.js +32 -7
  710. package/lib/chevre/service/transaction/placeOrder/confirm/validation/validateMovieTicket.js +32 -9
  711. package/lib/chevre/service/transaction/placeOrder/confirm/validation/validatePrice.js +26 -4
  712. package/lib/chevre/service/transaction/placeOrder/confirm/validation.js +59 -50
  713. package/lib/chevre/service/transaction/placeOrder/confirm.js +108 -66
  714. package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.js +61 -19
  715. package/lib/chevre/service/transaction/placeOrder/exportTasksById.js +34 -17
  716. package/lib/chevre/service/transaction/placeOrder/publishConfirmationNumberIfNotExist.js +29 -15
  717. package/lib/chevre/service/transaction/placeOrder/publishOrderNumberIfNotExist.js +30 -16
  718. package/lib/chevre/service/transaction/placeOrder/start/factory.js +51 -8
  719. package/lib/chevre/service/transaction/placeOrder/start/validateStartRequest.js +77 -61
  720. package/lib/chevre/service/transaction/placeOrder/start.js +37 -18
  721. package/lib/chevre/service/transaction/returnOrder/exportTasks/factory.js +43 -11
  722. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPaymentMethod.js +200 -191
  723. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPointAward.js +98 -89
  724. package/lib/chevre/service/transaction/returnOrder/potentialActions/sendEmailMessage.js +64 -49
  725. package/lib/chevre/service/transaction/returnOrder/potentialActions.js +75 -56
  726. package/lib/chevre/service/transaction/returnOrder/preStart/findApplicableReturnPolicy.js +142 -120
  727. package/lib/chevre/service/transaction/returnOrder/preStart/getReturnPolicyByProject.js +83 -80
  728. package/lib/chevre/service/transaction/returnOrder/preStart.js +70 -49
  729. package/lib/chevre/service/transaction/returnOrder.js +60 -39
  730. package/lib/chevre/service/transaction.js +101 -49
  731. package/lib/chevre/service/validation/validateEvent.js +3 -12
  732. package/lib/chevre/service/validation/validateOrder.js +41 -26
  733. package/lib/chevre/service.js +113 -136
  734. package/lib/chevre/settings/aggregation.js +4 -0
  735. package/lib/chevre/settings.js +7 -1
  736. package/lib/index.js +24 -2
  737. package/package.json +18 -19
  738. package/example/src/chevre/addEventBySchedule.ts +0 -46
  739. package/example/src/chevre/event/upsertManyScreeningEventByIdentifier.ts +0 -191
  740. package/example/src/chevre/eventSeries/migrateEventSeriesOffers.ts +0 -75
  741. package/example/src/chevre/eventSeries/migrateEventSeriesUnacceptedPaymentMethod.ts +0 -93
  742. package/example/src/chevre/offers/createSampleOffers.ts +0 -154
  743. package/example/src/chevre/settings/addSettings.ts +0 -46
  744. package/example/src/chevre/upsertScreeningEventSeriesByVersion.ts +0 -102
  745. package/example/src/idaas/auth0/adminApplications.ts +0 -183
  746. package/example/src/idaas/auth0/getToken.ts +0 -55
  747. package/example/src/idaas/auth0/getTokenByPrivateKeyJWT.ts +0 -84
  748. package/lib/chevre/service/eventOld.d.ts +0 -60
  749. package/lib/chevre/service/eventOld.js +0 -864
  750. package/lib/chevre/service/task/createEvent/createEvent.d.ts +0 -25
  751. package/lib/chevre/service/task/createEvent/createEvent.js +0 -45
  752. package/lib/chevre/service/task/createEvent/createEventBySchedule/factory.d.ts +0 -22
  753. package/lib/chevre/service/task/createEvent/createEventBySchedule/factory.js +0 -188
  754. package/lib/chevre/service/task/createEvent/createEventBySchedule/schedule2events.d.ts +0 -15
  755. package/lib/chevre/service/task/createEvent/createEventBySchedule/schedule2events.js +0 -116
  756. package/lib/chevre/service/task/createEvent/createEventBySchedule.d.ts +0 -25
  757. package/lib/chevre/service/task/createEvent/createEventBySchedule.js +0 -107
  758. package/lib/chevre/service/task/createEvent/createEventSeries.d.ts +0 -13
  759. package/lib/chevre/service/task/createEvent/createEventSeries.js +0 -118
  760. package/lib/chevre/service/task/createEvent.d.ts +0 -6
  761. package/lib/chevre/service/task/createEvent.js +0 -46
  762. package/lib/chevre/service/task/onResourceUpdated/onResourceDeleted.d.ts +0 -45
  763. package/lib/chevre/service/task/onResourceUpdated/onResourceDeleted.js +0 -447
@@ -1,18 +1,35 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
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 };
10
27
  };
11
28
  Object.defineProperty(exports, "__esModule", { value: true });
12
29
  exports.TransactionRepo = void 0;
13
- const moment = require("moment");
30
+ const moment_1 = __importDefault(require("moment"));
14
31
  const transaction_1 = require("../eventEmitter/transaction");
15
- const factory = require("../factory");
32
+ const factory = __importStar(require("../factory"));
16
33
  const settings_1 = require("../settings");
17
34
  const transaction_2 = require("./mongoose/schemas/transaction");
18
35
  const AVAILABLE_PROJECT_FIELDS = [
@@ -36,39 +53,33 @@ const AVAILABLE_PROJECT_FIELDS = [
36
53
  * 取引リポジトリ
37
54
  */
38
55
  class TransactionRepo {
56
+ transactionModel;
39
57
  constructor(connection) {
40
58
  this.transactionModel = connection.model(transaction_2.modelName, (0, transaction_2.createSchema)());
41
59
  }
42
- // tslint:disable-next-line:cyclomatic-complexity max-func-body-length
43
60
  static CREATE_MONGO_CONDITIONS(params) {
44
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
45
61
  const andConditions = [];
46
- const projectIdEq = (_b = (_a = params.project) === null || _a === void 0 ? void 0 : _a.id) === null || _b === void 0 ? void 0 : _b.$eq;
47
- // tslint:disable-next-line:no-single-line-block-comment
62
+ const projectIdEq = params.project?.id?.$eq;
48
63
  /* istanbul ignore else */
49
64
  if (typeof projectIdEq === 'string') {
50
65
  andConditions.push({ 'project.id': { $eq: projectIdEq } });
51
66
  }
52
- // tslint:disable-next-line:no-single-line-block-comment
53
67
  /* istanbul ignore else */
54
68
  if (typeof params.typeOf === 'string') {
55
69
  andConditions.push({ typeOf: { $eq: params.typeOf } });
56
70
  }
57
- // tslint:disable-next-line:no-single-line-block-comment
58
71
  /* istanbul ignore else */
59
72
  if (params.startFrom !== undefined) {
60
73
  andConditions.push({
61
74
  startDate: { $gte: params.startFrom }
62
75
  });
63
76
  }
64
- // tslint:disable-next-line:no-single-line-block-comment
65
77
  /* istanbul ignore else */
66
78
  if (params.startThrough !== undefined) {
67
79
  andConditions.push({
68
80
  startDate: { $lte: params.startThrough }
69
81
  });
70
82
  }
71
- // tslint:disable-next-line:no-single-line-block-comment
72
83
  /* istanbul ignore else */
73
84
  if (params.endFrom !== undefined) {
74
85
  andConditions.push({
@@ -78,7 +89,6 @@ class TransactionRepo {
78
89
  }
79
90
  });
80
91
  }
81
- // tslint:disable-next-line:no-single-line-block-comment
82
92
  /* istanbul ignore else */
83
93
  if (params.endThrough !== undefined) {
84
94
  andConditions.push({
@@ -88,28 +98,23 @@ class TransactionRepo {
88
98
  }
89
99
  });
90
100
  }
91
- // tslint:disable-next-line:no-single-line-block-comment
92
101
  /* istanbul ignore else */
93
102
  if (Array.isArray(params.ids)) {
94
103
  andConditions.push({
95
104
  _id: { $in: params.ids }
96
105
  });
97
106
  }
98
- // tslint:disable-next-line:no-single-line-block-comment
99
107
  /* istanbul ignore else */
100
108
  if (Array.isArray(params.statuses)) {
101
109
  andConditions.push({ status: { $in: params.statuses } });
102
110
  }
103
- // tslint:disable-next-line:no-single-line-block-comment
104
111
  /* istanbul ignore else */
105
- const statusIn = (_c = params.status) === null || _c === void 0 ? void 0 : _c.$in;
112
+ const statusIn = params.status?.$in;
106
113
  if (Array.isArray(statusIn)) {
107
114
  andConditions.push({ status: { $in: statusIn } });
108
115
  }
109
- // tslint:disable-next-line:no-single-line-block-comment
110
116
  /* istanbul ignore else */
111
117
  if (params.agent !== undefined) {
112
- // tslint:disable-next-line:no-single-line-block-comment
113
118
  /* istanbul ignore else */
114
119
  if (params.agent.typeOf !== undefined) {
115
120
  andConditions.push({
@@ -119,7 +124,6 @@ class TransactionRepo {
119
124
  }
120
125
  });
121
126
  }
122
- // tslint:disable-next-line:no-single-line-block-comment
123
127
  /* istanbul ignore else */
124
128
  if (Array.isArray(params.agent.ids)) {
125
129
  andConditions.push({
@@ -129,7 +133,6 @@ class TransactionRepo {
129
133
  }
130
134
  });
131
135
  }
132
- // tslint:disable-next-line:no-single-line-block-comment
133
136
  /* istanbul ignore else */
134
137
  if (Array.isArray(params.agent.identifiers)) {
135
138
  andConditions.push({
@@ -172,47 +175,42 @@ class TransactionRepo {
172
175
  // });
173
176
  // }
174
177
  }
175
- const tasksExportActionStatusIn = (_e = (_d = params.tasksExportAction) === null || _d === void 0 ? void 0 : _d.actionStatus) === null || _e === void 0 ? void 0 : _e.$in;
176
- // tslint:disable-next-line:no-single-line-block-comment
178
+ const tasksExportActionStatusIn = params.tasksExportAction?.actionStatus?.$in;
177
179
  /* istanbul ignore else */
178
180
  if (Array.isArray(tasksExportActionStatusIn)) {
179
181
  andConditions.push({ 'tasksExportAction.actionStatus': { $exists: true, $in: tasksExportActionStatusIn } });
180
182
  }
181
- const tasksExportActionStatusEq = (_g = (_f = params.tasksExportAction) === null || _f === void 0 ? void 0 : _f.actionStatus) === null || _g === void 0 ? void 0 : _g.$eq;
182
- // tslint:disable-next-line:no-single-line-block-comment
183
+ const tasksExportActionStatusEq = params.tasksExportAction?.actionStatus?.$eq;
183
184
  /* istanbul ignore else */
184
185
  if (typeof tasksExportActionStatusEq === 'string') {
185
186
  andConditions.push({ 'tasksExportAction.actionStatus': { $exists: true, $eq: tasksExportActionStatusEq } });
186
187
  }
187
188
  switch (params.typeOf) {
188
189
  case factory.transactionType.PlaceOrder:
189
- const sellerIdIn = (_h = params.seller) === null || _h === void 0 ? void 0 : _h.ids;
190
+ const sellerIdIn = params.seller?.ids;
190
191
  if (Array.isArray(sellerIdIn)) {
191
192
  andConditions.push({ 'seller.id': { $exists: true, $in: sellerIdIn } });
192
193
  }
193
- const resultOrderNumberIn = (_k = (_j = params.result) === null || _j === void 0 ? void 0 : _j.order) === null || _k === void 0 ? void 0 : _k.orderNumbers;
194
+ const resultOrderNumberIn = params.result?.order?.orderNumbers;
194
195
  if (Array.isArray(resultOrderNumberIn)) {
195
196
  andConditions.push({ 'result.order.orderNumber': { $exists: true, $in: resultOrderNumberIn } });
196
197
  }
197
- const resultOrderConfirmationNumberEq = (_o = (_m = (_l = params.result) === null || _l === void 0 ? void 0 : _l.order) === null || _m === void 0 ? void 0 : _m.confirmationNumber) === null || _o === void 0 ? void 0 : _o.$eq;
198
+ const resultOrderConfirmationNumberEq = params.result?.order?.confirmationNumber?.$eq;
198
199
  if (typeof resultOrderConfirmationNumberEq === 'string') {
199
200
  andConditions.push({
200
201
  'result.order.confirmationNumber': { $exists: true, $eq: resultOrderConfirmationNumberEq }
201
202
  });
202
203
  }
203
- const objectOrderNumberEq = (_q = (_p = params.object) === null || _p === void 0 ? void 0 : _p.orderNumber) === null || _q === void 0 ? void 0 : _q.$eq;
204
+ const objectOrderNumberEq = params.object?.orderNumber?.$eq;
204
205
  if (typeof objectOrderNumberEq === 'string') {
205
206
  andConditions.push({ 'object.orderNumber': { $exists: true, $eq: objectOrderNumberEq } });
206
207
  }
207
208
  break;
208
209
  case factory.transactionType.ReturnOrder:
209
- // tslint:disable-next-line:no-single-line-block-comment
210
210
  /* istanbul ignore else */
211
211
  if (params.object !== undefined) {
212
- // tslint:disable-next-line:no-single-line-block-comment
213
212
  /* istanbul ignore else */
214
213
  if (params.object.order !== undefined) {
215
- // tslint:disable-next-line:no-single-line-block-comment
216
214
  /* istanbul ignore else */
217
215
  if (Array.isArray(params.object.order.orderNumbers)) {
218
216
  andConditions.push({
@@ -232,373 +230,364 @@ class TransactionRepo {
232
230
  /**
233
231
  * 取引を開始する
234
232
  */
235
- start(params) {
236
- return __awaiter(this, void 0, void 0, function* () {
237
- var _a, _b;
238
- const status = factory.transactionStatusType.InProgress;
239
- const tasksExportAction = { actionStatus: factory.actionStatusType.PotentialActionStatus };
240
- // const tasksExportationStatus = factory.transactionTasksExportationStatus.Unexported; // discontinue(2024-06-20~)
241
- const startDate = new Date();
242
- let expires;
243
- const { typeOf } = params;
244
- if (typeOf === factory.transactionType.PlaceOrder
245
- || typeOf === factory.transactionType.ReturnOrder) {
246
- // expiresInSecondsの指定があれば優先して適用する(2022-11-25~)
247
- if (typeof params.expiresInSeconds === 'number' && params.expiresInSeconds > 0) {
248
- expires = moment(startDate)
249
- .add(params.expiresInSeconds, 'seconds')
250
- .toDate();
251
- }
252
- else {
253
- throw new factory.errors.ArgumentNull('expiresInSeconds');
254
- }
255
- }
256
- else {
257
- expires = params.expires;
258
- }
259
- let creatingTransaction;
260
- if (typeOf === factory.transactionType.MoneyTransfer) {
261
- const { agent, project, object, seller, recipient } = params;
262
- creatingTransaction = {
263
- status, startDate, expires, typeOf, tasksExportAction,
264
- agent, project, seller, object, recipient
265
- };
266
- }
267
- else if (typeOf === factory.transactionType.PlaceOrder) {
268
- const { agent, project, object, seller, instrument } = params;
269
- creatingTransaction = Object.assign({ status, startDate, expires, typeOf, tasksExportAction,
270
- agent, project, seller, object }, (typeof (instrument === null || instrument === void 0 ? void 0 : instrument.id) === 'string') ? { instrument } : undefined);
271
- }
272
- else if (typeOf === factory.transactionType.ReturnOrder) {
273
- const { agent, project, object, seller } = params;
274
- creatingTransaction = {
275
- status, startDate, expires, typeOf, tasksExportAction,
276
- agent, project, seller, object
277
- };
233
+ async start(params) {
234
+ const status = factory.transactionStatusType.InProgress;
235
+ const tasksExportAction = { actionStatus: factory.actionStatusType.PotentialActionStatus };
236
+ // const tasksExportationStatus = factory.transactionTasksExportationStatus.Unexported; // discontinue(2024-06-20~)
237
+ const startDate = new Date();
238
+ let expires;
239
+ const { typeOf } = params;
240
+ if (typeOf === factory.transactionType.PlaceOrder
241
+ || typeOf === factory.transactionType.ReturnOrder) {
242
+ // expiresInSecondsの指定があれば優先して適用する(2022-11-25~)
243
+ if (typeof params.expiresInSeconds === 'number' && params.expiresInSeconds > 0) {
244
+ expires = (0, moment_1.default)(startDate)
245
+ .add(params.expiresInSeconds, 'seconds')
246
+ .toDate();
278
247
  }
279
248
  else {
280
- throw new factory.errors.NotImplemented(`${typeOf} not implemented`);
281
- }
282
- // reimplemnt with insertMany(2024-05-30~)
283
- const result = yield this.transactionModel.insertMany(creatingTransaction, { rawResult: true });
284
- const id = (_b = (_a = result.insertedIds) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.toHexString();
285
- if (typeof id !== 'string') {
286
- throw new factory.errors.Internal('transaction not saved');
249
+ throw new factory.errors.ArgumentNull('expiresInSeconds');
287
250
  }
288
- // 取引開始時にも取引イベントエミッター連携(2024-03-21~)
289
- transaction_1.transactionEventEmitter.emitTransactionStatusChanged({ id, typeOf, status });
290
- return { expires, id, startDate, status }; // minimize response(2024-05-30~)
291
- });
251
+ }
252
+ else {
253
+ expires = params.expires;
254
+ }
255
+ let creatingTransaction;
256
+ if (typeOf === factory.transactionType.MoneyTransfer) {
257
+ const { agent, project, object, seller, recipient } = params;
258
+ creatingTransaction = {
259
+ status, startDate, expires, typeOf, tasksExportAction,
260
+ agent, project, seller, object, recipient
261
+ };
262
+ }
263
+ else if (typeOf === factory.transactionType.PlaceOrder) {
264
+ const { agent, project, object, seller, instrument } = params;
265
+ creatingTransaction = {
266
+ status, startDate, expires, typeOf, tasksExportAction,
267
+ agent, project, seller, object,
268
+ ...(typeof instrument?.id === 'string') ? { instrument } : undefined
269
+ };
270
+ }
271
+ else if (typeOf === factory.transactionType.ReturnOrder) {
272
+ const { agent, project, object, seller } = params;
273
+ creatingTransaction = {
274
+ status, startDate, expires, typeOf, tasksExportAction,
275
+ agent, project, seller, object
276
+ };
277
+ }
278
+ else {
279
+ throw new factory.errors.NotImplemented(`${typeOf} not implemented`);
280
+ }
281
+ // reimplemnt with insertMany(2024-05-30~)
282
+ const result = await this.transactionModel.insertMany(creatingTransaction, { rawResult: true });
283
+ const id = result.insertedIds?.[0]?.toHexString();
284
+ if (typeof id !== 'string') {
285
+ throw new factory.errors.Internal('transaction not saved');
286
+ }
287
+ // 取引開始時にも取引イベントエミッター連携(2024-03-21~)
288
+ transaction_1.transactionEventEmitter.emitTransactionStatusChanged({ id, typeOf, status });
289
+ return { expires, id, startDate, status }; // minimize response(2024-05-30~)
292
290
  }
293
291
  /**
294
292
  * 特定取引検索
295
293
  */
296
- projectFieldsById(params, inclusion // make required(2024-05-31~)
294
+ async projectFieldsById(params, inclusion // make required(2024-05-31~)
297
295
  ) {
298
- return __awaiter(this, void 0, void 0, function* () {
299
- let positiveProjectionFields = AVAILABLE_PROJECT_FIELDS;
300
- if (Array.isArray(inclusion) && inclusion.length > 0) {
301
- positiveProjectionFields = positiveProjectionFields.filter((key) => inclusion.includes(key));
302
- }
303
- else {
304
- throw new factory.errors.NotImplemented('inclusion must be specified'); // 2024-08-26~
305
- }
306
- const projection = Object.assign({ _id: 0, id: { $toString: '$_id' } }, Object.fromEntries(positiveProjectionFields.map((key) => ([key, 1]))));
307
- // let projection: { [key in (IKeyOfProjection<T> | '__v' | 'createdAt' | 'updatedAt')]?: AnyExpression } = {};
308
- // if (Array.isArray(inclusion) && inclusion.length > 0) {
309
- // inclusion.forEach((field) => {
310
- // projection[field] = 1;
311
- // });
312
- // } else {
313
- // projection = {
314
- // __v: 0,
315
- // createdAt: 0,
316
- // updatedAt: 0
317
- // };
318
- // }
319
- const doc = yield this.transactionModel.findOne({
320
- _id: { $eq: params.id },
321
- typeOf: { $eq: params.typeOf }
322
- }, projection)
323
- .lean() // 2024-08-26~
324
- .exec();
325
- if (doc === null) {
326
- throw new factory.errors.NotFound(this.transactionModel.modelName, `${params.typeOf} not found`);
327
- }
328
- return doc;
329
- });
296
+ let positiveProjectionFields = AVAILABLE_PROJECT_FIELDS;
297
+ if (Array.isArray(inclusion) && inclusion.length > 0) {
298
+ positiveProjectionFields = positiveProjectionFields.filter((key) => inclusion.includes(key));
299
+ }
300
+ else {
301
+ throw new factory.errors.NotImplemented('inclusion must be specified'); // 2024-08-26~
302
+ }
303
+ const projection = {
304
+ _id: 0,
305
+ id: { $toString: '$_id' },
306
+ ...Object.fromEntries(positiveProjectionFields.map((key) => ([key, 1])))
307
+ };
308
+ // let projection: { [key in (IKeyOfProjection<T> | '__v' | 'createdAt' | 'updatedAt')]?: AnyExpression } = {};
309
+ // if (Array.isArray(inclusion) && inclusion.length > 0) {
310
+ // inclusion.forEach((field) => {
311
+ // projection[field] = 1;
312
+ // });
313
+ // } else {
314
+ // projection = {
315
+ // __v: 0,
316
+ // createdAt: 0,
317
+ // updatedAt: 0
318
+ // };
319
+ // }
320
+ const doc = await this.transactionModel.findOne({
321
+ _id: { $eq: params.id },
322
+ typeOf: { $eq: params.typeOf }
323
+ }, projection)
324
+ .lean() // 2024-08-26~
325
+ .exec();
326
+ if (doc === null) {
327
+ throw new factory.errors.NotFound(this.transactionModel.modelName, `${params.typeOf} not found`);
328
+ }
329
+ return doc;
330
330
  }
331
331
  /**
332
332
  * 進行中の取引を取得する
333
333
  */
334
- projectFieldsInProgressById(params, inclusion // make required(2024-05-29~)
334
+ async projectFieldsInProgressById(params, inclusion // make required(2024-05-29~)
335
335
  ) {
336
- return __awaiter(this, void 0, void 0, function* () {
337
- let positiveProjectionFields = AVAILABLE_PROJECT_FIELDS;
338
- if (Array.isArray(inclusion) && inclusion.length > 0) {
339
- positiveProjectionFields = positiveProjectionFields.filter((key) => inclusion.includes(key));
340
- }
341
- else {
342
- throw new factory.errors.NotImplemented('inclusion must be specified'); // 2024-08-26~
343
- }
344
- const projection = Object.assign({ _id: 0, id: { $toString: '$_id' } }, Object.fromEntries(positiveProjectionFields.map((key) => ([key, 1]))));
345
- // let projection: { [key in (IKeyOfProjection<T> | '__v' | 'createdAt' | 'updatedAt')]?: ProjectionElementType } = {};
346
- // if (Array.isArray(inclusion) && inclusion.length > 0) {
347
- // inclusion.forEach((field) => {
348
- // projection[field] = 1;
349
- // });
350
- // } else {
351
- // // minimize(2024-05-29~)
352
- // projection = {
353
- // __v: 0,
354
- // createdAt: 0,
355
- // updatedAt: 0,
356
- // tasksExportAction: 0,
357
- // ...{
358
- // tasksExportedAt: 0,
359
- // tasksExportationStatus: 0
360
- // }
361
- // };
362
- // }
363
- const filter = {
364
- _id: { $eq: params.id },
365
- typeOf: { $eq: params.typeOf },
366
- status: { $eq: factory.transactionStatusType.InProgress },
367
- // expiresを条件に追加(2023-05-12~),
368
- expires: { $gt: new Date() }
369
- };
370
- const doc = yield this.transactionModel.findOne(filter, projection)
371
- .lean() // 2024-08-26~
372
- .exec();
373
- if (doc === null) {
374
- throw new factory.errors.NotFound(this.transactionModel.modelName, `${params.typeOf} ${factory.transactionStatusType.InProgress} not found`);
375
- }
376
- return doc;
377
- });
336
+ let positiveProjectionFields = AVAILABLE_PROJECT_FIELDS;
337
+ if (Array.isArray(inclusion) && inclusion.length > 0) {
338
+ positiveProjectionFields = positiveProjectionFields.filter((key) => inclusion.includes(key));
339
+ }
340
+ else {
341
+ throw new factory.errors.NotImplemented('inclusion must be specified'); // 2024-08-26~
342
+ }
343
+ const projection = {
344
+ _id: 0,
345
+ id: { $toString: '$_id' },
346
+ ...Object.fromEntries(positiveProjectionFields.map((key) => ([key, 1])))
347
+ };
348
+ // let projection: { [key in (IKeyOfProjection<T> | '__v' | 'createdAt' | 'updatedAt')]?: ProjectionElementType } = {};
349
+ // if (Array.isArray(inclusion) && inclusion.length > 0) {
350
+ // inclusion.forEach((field) => {
351
+ // projection[field] = 1;
352
+ // });
353
+ // } else {
354
+ // // minimize(2024-05-29~)
355
+ // projection = {
356
+ // __v: 0,
357
+ // createdAt: 0,
358
+ // updatedAt: 0,
359
+ // tasksExportAction: 0,
360
+ // ...{
361
+ // tasksExportedAt: 0,
362
+ // tasksExportationStatus: 0
363
+ // }
364
+ // };
365
+ // }
366
+ const filter = {
367
+ _id: { $eq: params.id },
368
+ typeOf: { $eq: params.typeOf },
369
+ status: { $eq: factory.transactionStatusType.InProgress },
370
+ // expiresを条件に追加(2023-05-12~),
371
+ expires: { $gt: new Date() }
372
+ };
373
+ const doc = await this.transactionModel.findOne(filter, projection)
374
+ .lean() // 2024-08-26~
375
+ .exec();
376
+ if (doc === null) {
377
+ throw new factory.errors.NotFound(this.transactionModel.modelName, `${params.typeOf} ${factory.transactionStatusType.InProgress} not found`);
378
+ }
379
+ return doc;
378
380
  }
379
381
  /**
380
382
  * 進行中取引に保管された採用済決済方法を検索する
381
383
  */
382
- findInProgressPaymentMethodId(params) {
383
- return __awaiter(this, void 0, void 0, function* () {
384
- const doc = yield this.transactionModel.findOne({
385
- _id: { $eq: params.id },
386
- typeOf: { $eq: factory.transactionType.PlaceOrder },
387
- status: { $eq: factory.transactionStatusType.InProgress }
388
- }, { 'object.paymentMethods': 1 })
389
- .lean() // 2024-08-26~
390
- .exec();
391
- if (doc === null) {
392
- throw new factory.errors.NotFound(this.transactionModel.modelName, `${factory.transactionType.PlaceOrder} ${factory.transactionStatusType.InProgress} not found`);
393
- }
394
- return doc.object.paymentMethods;
395
- });
384
+ async findInProgressPaymentMethodId(params) {
385
+ const doc = await this.transactionModel.findOne({
386
+ _id: { $eq: params.id },
387
+ typeOf: { $eq: factory.transactionType.PlaceOrder },
388
+ status: { $eq: factory.transactionStatusType.InProgress }
389
+ }, { 'object.paymentMethods': 1 })
390
+ .lean() // 2024-08-26~
391
+ .exec();
392
+ if (doc === null) {
393
+ throw new factory.errors.NotFound(this.transactionModel.modelName, `${factory.transactionType.PlaceOrder} ${factory.transactionStatusType.InProgress} not found`);
394
+ }
395
+ return doc.object.paymentMethods;
396
396
  }
397
397
  /**
398
398
  * 取引の注文番号を検索する
399
399
  */
400
- findInProgressOrderNumberById(params) {
401
- return __awaiter(this, void 0, void 0, function* () {
402
- const doc = yield this.transactionModel.findOne({
403
- _id: { $eq: params.id },
404
- typeOf: { $eq: factory.transactionType.PlaceOrder },
405
- status: { $eq: factory.transactionStatusType.InProgress }
406
- }, { 'object.orderNumber': 1 })
407
- .lean() // 2024-08-26~
408
- .exec();
409
- if (doc === null) {
410
- throw new factory.errors.NotFound(this.transactionModel.modelName, `${factory.transactionType.PlaceOrder} ${factory.transactionStatusType.InProgress} not found`);
411
- }
412
- return doc.object.orderNumber;
413
- });
400
+ async findInProgressOrderNumberById(params) {
401
+ const doc = await this.transactionModel.findOne({
402
+ _id: { $eq: params.id },
403
+ typeOf: { $eq: factory.transactionType.PlaceOrder },
404
+ status: { $eq: factory.transactionStatusType.InProgress }
405
+ }, { 'object.orderNumber': 1 })
406
+ .lean() // 2024-08-26~
407
+ .exec();
408
+ if (doc === null) {
409
+ throw new factory.errors.NotFound(this.transactionModel.modelName, `${factory.transactionType.PlaceOrder} ${factory.transactionStatusType.InProgress} not found`);
410
+ }
411
+ return doc.object.orderNumber;
414
412
  }
415
413
  /**
416
414
  * 取引の確認番号を検索する
417
415
  */
418
- findInProgressConfirmationNumberById(params) {
419
- return __awaiter(this, void 0, void 0, function* () {
420
- const doc = yield this.transactionModel.findOne({
421
- _id: { $eq: params.id },
422
- typeOf: { $eq: factory.transactionType.PlaceOrder },
423
- status: { $in: params.status.$in }
424
- }, { 'object.confirmationNumber': 1 })
425
- .lean() // 2024-08-26~
426
- .exec();
427
- if (doc === null) {
428
- throw new factory.errors.NotFound(this.transactionModel.modelName, `${factory.transactionType.PlaceOrder} ${params.status.$in.join(' or ')} not found`);
429
- }
430
- return doc.object.confirmationNumber;
431
- });
416
+ async findInProgressConfirmationNumberById(params) {
417
+ const doc = await this.transactionModel.findOne({
418
+ _id: { $eq: params.id },
419
+ typeOf: { $eq: factory.transactionType.PlaceOrder },
420
+ status: { $in: params.status.$in }
421
+ }, { 'object.confirmationNumber': 1 })
422
+ .lean() // 2024-08-26~
423
+ .exec();
424
+ if (doc === null) {
425
+ throw new factory.errors.NotFound(this.transactionModel.modelName, `${factory.transactionType.PlaceOrder} ${params.status.$in.join(' or ')} not found`);
426
+ }
427
+ return doc.object.confirmationNumber;
432
428
  }
433
429
  /**
434
430
  * 取引進行者プロフィールを更新
435
431
  */
436
- updateAgent(params) {
437
- return __awaiter(this, void 0, void 0, function* () {
438
- var _a, _b;
439
- const doc = yield this.transactionModel.findOneAndUpdate({
440
- _id: { $eq: params.id },
441
- typeOf: { $eq: params.typeOf },
442
- status: { $eq: factory.transactionStatusType.InProgress }
443
- }, {
444
- $set: Object.assign({ 'agent.id': params.agent.id }, (typeof ((_b = (_a = params.object) === null || _a === void 0 ? void 0 : _a.customer) === null || _b === void 0 ? void 0 : _b.typeOf) === 'string') ? { 'object.customer': params.object.customer } : undefined)
445
- }, {
446
- projection: { _id: 1 }
447
- })
448
- .lean()
449
- .exec();
450
- if (doc === null) {
451
- throw new factory.errors.NotFound(this.transactionModel.modelName, `${params.typeOf} ${factory.transactionStatusType.InProgress} not found`);
432
+ async updateAgent(params) {
433
+ const doc = await this.transactionModel.findOneAndUpdate({
434
+ _id: { $eq: params.id },
435
+ typeOf: { $eq: params.typeOf },
436
+ status: { $eq: factory.transactionStatusType.InProgress }
437
+ }, {
438
+ $set: {
439
+ 'agent.id': params.agent.id,
440
+ // ...(typeof params.agent.name === 'string') ? { 'agent.name': params.agent.name } : undefined,
441
+ ...(typeof params.object?.customer?.typeOf === 'string') ? { 'object.customer': params.object.customer } : undefined
452
442
  }
453
- });
443
+ }, {
444
+ projection: { _id: 1 }
445
+ })
446
+ .lean()
447
+ .exec();
448
+ if (doc === null) {
449
+ throw new factory.errors.NotFound(this.transactionModel.modelName, `${params.typeOf} ${factory.transactionStatusType.InProgress} not found`);
450
+ }
454
451
  }
455
452
  /**
456
453
  * 取引期限変更
457
454
  */
458
- updateExpires(params) {
459
- return __awaiter(this, void 0, void 0, function* () {
460
- const doc = yield this.transactionModel.findOneAndUpdate({
461
- _id: { $eq: params.id },
462
- typeOf: { $eq: params.typeOf },
463
- status: { $eq: factory.transactionStatusType.InProgress }
464
- }, {
465
- $set: {
466
- expires: params.expires
467
- }
468
- }, {
469
- projection: { _id: 1 }
470
- })
471
- .lean()
472
- .exec();
473
- if (doc === null) {
474
- throw new factory.errors.NotFound(this.transactionModel.modelName, `${params.typeOf} ${factory.transactionStatusType.InProgress} not found`);
455
+ async updateExpires(params) {
456
+ const doc = await this.transactionModel.findOneAndUpdate({
457
+ _id: { $eq: params.id },
458
+ typeOf: { $eq: params.typeOf },
459
+ status: { $eq: factory.transactionStatusType.InProgress }
460
+ }, {
461
+ $set: {
462
+ expires: params.expires
475
463
  }
476
- });
464
+ }, {
465
+ projection: { _id: 1 }
466
+ })
467
+ .lean()
468
+ .exec();
469
+ if (doc === null) {
470
+ throw new factory.errors.NotFound(this.transactionModel.modelName, `${params.typeOf} ${factory.transactionStatusType.InProgress} not found`);
471
+ }
477
472
  }
478
473
  /**
479
474
  * 取引オブジェクトを更新
480
475
  * 注文名称など
481
476
  */
482
- updateObject(params) {
483
- return __awaiter(this, void 0, void 0, function* () {
484
- var _a;
485
- const doc = yield this.transactionModel.findOneAndUpdate({
486
- _id: { $eq: params.id },
487
- typeOf: { $eq: params.typeOf },
488
- status: { $eq: factory.transactionStatusType.InProgress }
489
- }, {
490
- $set: Object.assign({}, (typeof ((_a = params.object) === null || _a === void 0 ? void 0 : _a.name) === 'string') ? { 'object.name': params.object.name } : undefined)
491
- }, {
492
- projection: { _id: 1 }
493
- })
494
- .lean()
495
- .exec();
496
- if (doc === null) {
497
- throw new factory.errors.NotFound(this.transactionModel.modelName, `${params.typeOf} ${factory.transactionStatusType.InProgress} not found`);
477
+ async updateObject(params) {
478
+ const doc = await this.transactionModel.findOneAndUpdate({
479
+ _id: { $eq: params.id },
480
+ typeOf: { $eq: params.typeOf },
481
+ status: { $eq: factory.transactionStatusType.InProgress }
482
+ }, {
483
+ $set: {
484
+ ...(typeof params.object?.name === 'string') ? { 'object.name': params.object.name } : undefined
498
485
  }
499
- });
486
+ }, {
487
+ projection: { _id: 1 }
488
+ })
489
+ .lean()
490
+ .exec();
491
+ if (doc === null) {
492
+ throw new factory.errors.NotFound(this.transactionModel.modelName, `${params.typeOf} ${factory.transactionStatusType.InProgress} not found`);
493
+ }
500
494
  }
501
495
  /**
502
496
  * 取引を確定する
503
497
  */
504
- confirm(params) {
505
- return __awaiter(this, void 0, void 0, function* () {
506
- const endDate = new Date();
507
- const doc = yield this.transactionModel.findOneAndUpdate({
508
- _id: { $eq: params.id },
509
- typeOf: { $eq: params.typeOf },
510
- status: { $eq: factory.transactionStatusType.InProgress },
511
- expires: { $gt: endDate } // add expires(2025-02-27~)
512
- }, {
513
- status: factory.transactionStatusType.Confirmed, // ステータス変更
514
- endDate,
515
- // 'object.authorizeActions': params.authorizeActions,
516
- result: params.result, // resultを更新
517
- potentialActions: params.potentialActions // resultを更新
518
- }, {
519
- new: true,
520
- projection: { _id: 1 }
521
- })
522
- .lean()
523
- .exec();
524
- // NotFoundであれば取引状態確認
525
- if (doc === null) {
526
- const { expires, status } = yield this.projectFieldsById({ typeOf: params.typeOf, id: params.id }, ['expires', 'status']);
527
- if (status === factory.transactionStatusType.Confirmed) {
528
- // すでに確定済の場合スルー
529
- }
530
- else if (status === factory.transactionStatusType.Expired) {
531
- throw new factory.errors.Argument('Transaction id', 'Already expired');
532
- }
533
- else if (status === factory.transactionStatusType.Canceled) {
534
- throw new factory.errors.Argument('Transaction id', 'Already canceled');
535
- }
536
- else {
537
- if (moment(expires)
538
- .isSameOrBefore(moment(endDate))) {
539
- throw new factory.errors.Argument('Transaction id', 'potentially expired');
540
- }
541
- throw new factory.errors.NotFound(this.transactionModel.modelName, `${params.typeOf} ${factory.transactionStatusType.InProgress} not found`);
498
+ async confirm(params) {
499
+ const endDate = new Date();
500
+ const doc = await this.transactionModel.findOneAndUpdate({
501
+ _id: { $eq: params.id },
502
+ typeOf: { $eq: params.typeOf },
503
+ status: { $eq: factory.transactionStatusType.InProgress },
504
+ expires: { $gt: endDate } // add expires(2025-02-27~)
505
+ }, {
506
+ status: factory.transactionStatusType.Confirmed, // ステータス変更
507
+ endDate,
508
+ // 'object.authorizeActions': params.authorizeActions,
509
+ result: params.result, // resultを更新
510
+ potentialActions: params.potentialActions // resultを更新
511
+ }, {
512
+ new: true,
513
+ projection: { _id: 1 }
514
+ })
515
+ .lean()
516
+ .exec();
517
+ // NotFoundであれば取引状態確認
518
+ if (doc === null) {
519
+ const { expires, status } = await this.projectFieldsById({ typeOf: params.typeOf, id: params.id }, ['expires', 'status']);
520
+ if (status === factory.transactionStatusType.Confirmed) {
521
+ // すでに確定済の場合スルー
522
+ }
523
+ else if (status === factory.transactionStatusType.Expired) {
524
+ throw new factory.errors.Argument('Transaction id', 'Already expired');
525
+ }
526
+ else if (status === factory.transactionStatusType.Canceled) {
527
+ throw new factory.errors.Argument('Transaction id', 'Already canceled');
528
+ }
529
+ else {
530
+ if ((0, moment_1.default)(expires)
531
+ .isSameOrBefore((0, moment_1.default)(endDate))) {
532
+ throw new factory.errors.Argument('Transaction id', 'potentially expired');
542
533
  }
534
+ throw new factory.errors.NotFound(this.transactionModel.modelName, `${params.typeOf} ${factory.transactionStatusType.InProgress} not found`);
543
535
  }
544
- transaction_1.transactionEventEmitter.emitTransactionStatusChanged({
545
- id: params.id,
546
- typeOf: params.typeOf,
547
- status: factory.transactionStatusType.Confirmed
548
- });
536
+ }
537
+ transaction_1.transactionEventEmitter.emitTransactionStatusChanged({
538
+ id: params.id,
539
+ typeOf: params.typeOf,
540
+ status: factory.transactionStatusType.Confirmed
549
541
  });
550
542
  }
551
- countPotentiallyExportTasks(params) {
552
- return __awaiter(this, void 0, void 0, function* () {
553
- const { endDate, limit } = params;
554
- const endDateLt = endDate === null || endDate === void 0 ? void 0 : endDate.$lt;
555
- if (!(endDateLt instanceof Date)) {
556
- throw new factory.errors.Argument('endDate.$lt', 'must be Date');
557
- }
558
- const query = this.transactionModel.countDocuments({
559
- status: {
560
- $in: [
561
- factory.transactionStatusType.Canceled,
562
- factory.transactionStatusType.Confirmed,
563
- factory.transactionStatusType.Expired
564
- ]
565
- },
566
- 'tasksExportAction.actionStatus': {
567
- $exists: true,
568
- $eq: factory.actionStatusType.PotentialActionStatus
569
- },
570
- endDate: { $exists: true, $lt: endDateLt }
571
- });
572
- if (typeof limit === 'number' && limit >= 0) {
573
- query.limit(limit);
574
- }
575
- const count = yield query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
576
- .exec();
577
- return { count };
543
+ async countPotentiallyExportTasks(params) {
544
+ const { endDate, limit } = params;
545
+ const endDateLt = endDate?.$lt;
546
+ if (!(endDateLt instanceof Date)) {
547
+ throw new factory.errors.Argument('endDate.$lt', 'must be Date');
548
+ }
549
+ const query = this.transactionModel.countDocuments({
550
+ status: {
551
+ $in: [
552
+ factory.transactionStatusType.Canceled,
553
+ factory.transactionStatusType.Confirmed,
554
+ factory.transactionStatusType.Expired
555
+ ]
556
+ },
557
+ 'tasksExportAction.actionStatus': {
558
+ $exists: true,
559
+ $eq: factory.actionStatusType.PotentialActionStatus
560
+ },
561
+ endDate: { $exists: true, $lt: endDateLt }
578
562
  });
563
+ if (typeof limit === 'number' && limit >= 0) {
564
+ query.limit(limit);
565
+ }
566
+ const count = await query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
567
+ .exec();
568
+ return { count };
579
569
  }
580
570
  /**
581
571
  * タスク未エクスポートの取引をひとつ取得してエクスポートを開始する
582
572
  */
583
- startExportTasks(params) {
584
- return __awaiter(this, void 0, void 0, function* () {
585
- var _a, _b, _c, _d;
586
- const statusEq = (_a = params.status) === null || _a === void 0 ? void 0 : _a.$eq;
587
- const endDateLt = (_b = params.endDate) === null || _b === void 0 ? void 0 : _b.$lt;
588
- if (typeof statusEq === 'string') {
589
- switch (statusEq) {
590
- case factory.transactionStatusType.InProgress:
591
- throw new factory.errors.NotImplemented(`status "${params.status}" not implemented on startExportTasks`);
592
- default:
593
- // no op
594
- }
595
- }
596
- if (!(endDateLt instanceof Date)) {
597
- throw new factory.errors.Argument('endDate.$lt', 'must be Date');
573
+ async startExportTasks(params) {
574
+ const statusEq = params.status?.$eq;
575
+ const endDateLt = params.endDate?.$lt;
576
+ if (typeof statusEq === 'string') {
577
+ switch (statusEq) {
578
+ case factory.transactionStatusType.InProgress:
579
+ throw new factory.errors.NotImplemented(`status "${params.status}" not implemented on startExportTasks`);
580
+ default:
581
+ // no op
598
582
  }
599
- const query = this.transactionModel.findOneAndUpdate(Object.assign({
600
- // ...(Array.isArray(typeOfIn)) ? { typeOf: { $in: typeOfIn } } : undefined,
601
- status: Object.assign({}, (typeof statusEq === 'string')
583
+ }
584
+ if (!(endDateLt instanceof Date)) {
585
+ throw new factory.errors.Argument('endDate.$lt', 'must be Date');
586
+ }
587
+ const query = this.transactionModel.findOneAndUpdate({
588
+ // ...(Array.isArray(typeOfIn)) ? { typeOf: { $in: typeOfIn } } : undefined,
589
+ status: {
590
+ ...(typeof statusEq === 'string')
602
591
  ? { $eq: statusEq }
603
592
  : {
604
593
  $in: [
@@ -606,31 +595,34 @@ class TransactionRepo {
606
595
  factory.transactionStatusType.Confirmed,
607
596
  factory.transactionStatusType.Expired
608
597
  ]
609
- }), 'tasksExportAction.actionStatus': {
610
- $exists: true,
611
- $eq: factory.actionStatusType.PotentialActionStatus
612
- }, endDate: { $exists: true, $lt: endDateLt } }, (typeof params.id === 'string') ? { _id: { $eq: params.id } } : undefined), {
613
- 'tasksExportAction.actionStatus': factory.actionStatusType.ActiveActionStatus,
614
- 'tasksExportAction.agent': { name: params.tasksExportAction.agent.name },
615
- 'tasksExportAction.startDate': new Date()
616
- }, {
617
- new: true,
618
- projection: {
619
- // _id: 1,
620
- _id: 0,
621
- id: { $toString: '$_id' },
622
- typeOf: 1
623
- }
624
- });
625
- if (typeof ((_c = params.sort) === null || _c === void 0 ? void 0 : _c.endDate) === 'number' || typeof ((_d = params.sort) === null || _d === void 0 ? void 0 : _d.startDate) === 'number') {
626
- query.sort(params.sort);
598
+ }
599
+ },
600
+ 'tasksExportAction.actionStatus': {
601
+ $exists: true,
602
+ $eq: factory.actionStatusType.PotentialActionStatus
603
+ },
604
+ endDate: { $exists: true, $lt: endDateLt },
605
+ ...(typeof params.id === 'string') ? { _id: { $eq: params.id } } : undefined
606
+ }, {
607
+ 'tasksExportAction.actionStatus': factory.actionStatusType.ActiveActionStatus,
608
+ 'tasksExportAction.agent': { name: params.tasksExportAction.agent.name },
609
+ 'tasksExportAction.startDate': new Date()
610
+ }, {
611
+ new: true,
612
+ projection: {
613
+ // _id: 1,
614
+ _id: 0,
615
+ id: { $toString: '$_id' },
616
+ typeOf: 1
627
617
  }
628
- return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
629
- .lean() // 2024-08-26~
630
- .exec()
631
- // tslint:disable-next-line:no-null-keyword
632
- .then((doc) => (doc === null) ? null : doc);
633
618
  });
619
+ if (typeof params.sort?.endDate === 'number' || typeof params.sort?.startDate === 'number') {
620
+ query.sort(params.sort);
621
+ }
622
+ return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
623
+ .lean() // 2024-08-26~
624
+ .exec()
625
+ .then((doc) => (doc === null) ? null : doc);
634
626
  }
635
627
  // discontinue(2025-03-10~)
636
628
  // public async reexportTasksByExportAction(params: {
@@ -687,390 +679,365 @@ class TransactionRepo {
687
679
  * PotentialActionStatusに変更する
688
680
  * 2025-03-10~
689
681
  */
690
- reExportAction(params) {
691
- return __awaiter(this, void 0, void 0, function* () {
692
- const { startDate } = params;
693
- if (!(startDate.$lt instanceof Date)) {
694
- throw new factory.errors.Argument('startDate.$lt', 'must be Date');
682
+ async reExportAction(params) {
683
+ const { startDate } = params;
684
+ if (!(startDate.$lt instanceof Date)) {
685
+ throw new factory.errors.Argument('startDate.$lt', 'must be Date');
686
+ }
687
+ return this.transactionModel.updateMany({
688
+ 'tasksExportAction.actionStatus': {
689
+ $exists: true,
690
+ $eq: factory.actionStatusType.ActiveActionStatus
691
+ },
692
+ 'tasksExportAction.startDate': {
693
+ $exists: true,
694
+ $lt: startDate.$lt
695
695
  }
696
- return this.transactionModel.updateMany({
697
- 'tasksExportAction.actionStatus': {
698
- $exists: true,
699
- $eq: factory.actionStatusType.ActiveActionStatus
700
- },
701
- 'tasksExportAction.startDate': {
702
- $exists: true,
703
- $lt: startDate.$lt
696
+ }, {
697
+ $set: {
698
+ tasksExportAction: {
699
+ actionStatus: factory.actionStatusType.PotentialActionStatus
704
700
  }
705
- }, {
706
- $set: {
707
- tasksExportAction: {
708
- actionStatus: factory.actionStatusType.PotentialActionStatus
709
- }
710
- }
711
- })
712
- .exec();
713
- });
701
+ }
702
+ })
703
+ .exec();
714
704
  }
715
705
  /**
716
706
  * タスクエクスポートの遅延している取引について明示的にemitTransactionStatusChangedを実行する
717
707
  */
718
- exportTasksMany(params) {
719
- return __awaiter(this, void 0, void 0, function* () {
720
- const delayedTransactions = yield this.transactionModel.find({
721
- status: { $in: params.status.$in },
722
- 'tasksExportAction.actionStatus': {
723
- $exists: true,
724
- $eq: factory.actionStatusType.PotentialActionStatus
725
- },
726
- endDate: {
727
- $exists: true,
728
- $lt: moment(params.now)
729
- .add(-params.delayInSeconds, 'seconds')
730
- .toDate()
731
- }
732
- })
733
- .select({
734
- _id: 0,
735
- id: { $toString: '$_id' },
736
- typeOf: 1,
737
- status: 1
738
- })
739
- .limit(params.limit)
740
- .setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
741
- .lean()
742
- .exec();
743
- if (delayedTransactions.length > 0) {
744
- delayedTransactions.forEach((delayedTransaction) => {
745
- transaction_1.transactionEventEmitter.emitTransactionStatusChanged({
746
- id: delayedTransaction.id,
747
- typeOf: delayedTransaction.typeOf,
748
- status: delayedTransaction.status
749
- });
750
- });
708
+ async exportTasksMany(params) {
709
+ const delayedTransactions = await this.transactionModel.find({
710
+ status: { $in: params.status.$in },
711
+ 'tasksExportAction.actionStatus': {
712
+ $exists: true,
713
+ $eq: factory.actionStatusType.PotentialActionStatus
714
+ },
715
+ endDate: {
716
+ $exists: true,
717
+ $lt: (0, moment_1.default)(params.now)
718
+ .add(-params.delayInSeconds, 'seconds')
719
+ .toDate()
751
720
  }
752
- return delayedTransactions;
753
- });
721
+ })
722
+ .select({
723
+ _id: 0,
724
+ id: { $toString: '$_id' },
725
+ typeOf: 1,
726
+ status: 1
727
+ })
728
+ .limit(params.limit)
729
+ .setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
730
+ .lean()
731
+ .exec();
732
+ if (delayedTransactions.length > 0) {
733
+ delayedTransactions.forEach((delayedTransaction) => {
734
+ transaction_1.transactionEventEmitter.emitTransactionStatusChanged({
735
+ id: delayedTransaction.id,
736
+ typeOf: delayedTransaction.typeOf,
737
+ status: delayedTransaction.status
738
+ });
739
+ });
740
+ }
741
+ return delayedTransactions;
754
742
  }
755
743
  /**
756
744
  * set task status exported by transaction id
757
745
  * IDでタスクをエクスポート済に変更する
758
746
  */
759
- setTasksExportedById(params) {
760
- return __awaiter(this, void 0, void 0, function* () {
761
- const endDate = new Date();
762
- yield this.transactionModel.updateOne({
763
- _id: { $eq: params.id },
764
- // remove dependency on tasksExportationStatus(2024-06-17~)
765
- // tasksExportationStatus: { $eq: factory.transactionTasksExportationStatus.Exporting }
766
- 'tasksExportAction.actionStatus': {
767
- $exists: true,
768
- $eq: factory.actionStatusType.ActiveActionStatus
769
- }
770
- }, {
771
- // tasksExportationStatus: factory.transactionTasksExportationStatus.Exported, // discontinue(2024-06-20~)
772
- // tasksExportedAt: endDate, // discontinue(2024-06-20~)
773
- 'tasksExportAction.actionStatus': factory.actionStatusType.CompletedActionStatus,
774
- 'tasksExportAction.endDate': endDate
775
- })
776
- .exec();
777
- });
747
+ async setTasksExportedById(params) {
748
+ const endDate = new Date();
749
+ await this.transactionModel.updateOne({
750
+ _id: { $eq: params.id },
751
+ // remove dependency on tasksExportationStatus(2024-06-17~)
752
+ // tasksExportationStatus: { $eq: factory.transactionTasksExportationStatus.Exporting }
753
+ 'tasksExportAction.actionStatus': {
754
+ $exists: true,
755
+ $eq: factory.actionStatusType.ActiveActionStatus
756
+ }
757
+ }, {
758
+ // tasksExportationStatus: factory.transactionTasksExportationStatus.Exported, // discontinue(2024-06-20~)
759
+ // tasksExportedAt: endDate, // discontinue(2024-06-20~)
760
+ 'tasksExportAction.actionStatus': factory.actionStatusType.CompletedActionStatus,
761
+ 'tasksExportAction.endDate': endDate
762
+ })
763
+ .exec();
778
764
  }
779
765
  /**
780
766
  * add(2025-03-13~)
781
767
  */
782
- countPotentiallyExpired(params) {
783
- return __awaiter(this, void 0, void 0, function* () {
784
- const { expires, limit } = params;
785
- const query = this.transactionModel.countDocuments({
786
- status: { $eq: factory.transactionStatusType.InProgress },
787
- expires: { $lt: expires.$lt }
788
- });
789
- if (typeof limit === 'number' && limit >= 0) {
790
- query.limit(limit);
791
- }
792
- const count = yield query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
793
- .exec();
794
- return { count };
768
+ async countPotentiallyExpired(params) {
769
+ const { expires, limit } = params;
770
+ const query = this.transactionModel.countDocuments({
771
+ status: { $eq: factory.transactionStatusType.InProgress },
772
+ expires: { $lt: expires.$lt }
795
773
  });
774
+ if (typeof limit === 'number' && limit >= 0) {
775
+ query.limit(limit);
776
+ }
777
+ const count = await query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
778
+ .exec();
779
+ return { count };
796
780
  }
797
781
  /**
798
782
  * add(2025-03-03~)
799
783
  */
800
- makeOneExpiredIfExists(params) {
801
- return __awaiter(this, void 0, void 0, function* () {
802
- const endDate = new Date();
803
- const sort = {
804
- expires: factory.sortType.Ascending
805
- };
806
- const doc = yield this.transactionModel.findOneAndUpdate({
807
- status: { $eq: factory.transactionStatusType.InProgress },
808
- expires: { $lt: params.expires.$lt }
809
- }, {
810
- status: factory.transactionStatusType.Expired,
811
- endDate
812
- }, {
813
- new: true,
814
- projection: {
815
- _id: 0,
816
- id: { $toString: '$_id' },
817
- typeOf: 1
818
- }
819
- })
820
- .sort(sort)
821
- .lean()
822
- .exec();
823
- if (doc === null) {
824
- // no op
825
- }
826
- else {
827
- transaction_1.transactionEventEmitter.emitTransactionStatusChanged({
828
- id: doc.id,
829
- typeOf: doc.typeOf,
830
- status: factory.transactionStatusType.Expired
831
- });
832
- return doc;
784
+ async makeOneExpiredIfExists(params) {
785
+ const endDate = new Date();
786
+ const sort = {
787
+ expires: factory.sortType.Ascending
788
+ };
789
+ const doc = await this.transactionModel.findOneAndUpdate({
790
+ status: { $eq: factory.transactionStatusType.InProgress },
791
+ expires: { $lt: params.expires.$lt }
792
+ }, {
793
+ status: factory.transactionStatusType.Expired,
794
+ endDate
795
+ }, {
796
+ new: true,
797
+ projection: {
798
+ _id: 0,
799
+ id: { $toString: '$_id' },
800
+ typeOf: 1
833
801
  }
834
- });
802
+ })
803
+ .sort(sort)
804
+ .lean()
805
+ .exec();
806
+ if (doc === null) {
807
+ // no op
808
+ }
809
+ else {
810
+ transaction_1.transactionEventEmitter.emitTransactionStatusChanged({
811
+ id: doc.id,
812
+ typeOf: doc.typeOf,
813
+ status: factory.transactionStatusType.Expired
814
+ });
815
+ return doc;
816
+ }
835
817
  }
836
818
  /**
837
819
  * 取引を期限切れにする
838
820
  */
839
- makeExpired(params) {
840
- return __awaiter(this, void 0, void 0, function* () {
841
- if (typeof params.limit !== 'number' || params.limit === 0) {
842
- throw new factory.errors.ArgumentNull('limit');
843
- }
844
- const sort = {
845
- expires: factory.sortType.Ascending
846
- };
847
- // IDをemitしたいのでまずリスト検索(2023-04-27~)
848
- const expiringTransactions = yield this.transactionModel.find({
821
+ async makeExpired(params) {
822
+ if (typeof params.limit !== 'number' || params.limit === 0) {
823
+ throw new factory.errors.ArgumentNull('limit');
824
+ }
825
+ const sort = {
826
+ expires: factory.sortType.Ascending
827
+ };
828
+ // IDをemitしたいのでまずリスト検索(2023-04-27~)
829
+ const expiringTransactions = await this.transactionModel.find({
830
+ status: { $eq: factory.transactionStatusType.InProgress },
831
+ expires: { $lt: params.expires.$lt }
832
+ })
833
+ .select({
834
+ _id: 0,
835
+ id: { $toString: '$_id' },
836
+ typeOf: 1
837
+ })
838
+ .limit(params.limit)
839
+ .sort(sort) // sort(2025-03-03~)
840
+ .setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
841
+ .lean()
842
+ .exec();
843
+ if (expiringTransactions.length > 0) {
844
+ // ステータスと期限を見て更新
845
+ await this.transactionModel.updateMany({
846
+ _id: { $in: expiringTransactions.map((t) => t.id) },
849
847
  status: { $eq: factory.transactionStatusType.InProgress },
850
848
  expires: { $lt: params.expires.$lt }
849
+ }, {
850
+ status: factory.transactionStatusType.Expired,
851
+ endDate: new Date()
851
852
  })
852
- .select({
853
- _id: 0,
854
- id: { $toString: '$_id' },
855
- typeOf: 1
856
- })
857
- .limit(params.limit)
858
- .sort(sort) // sort(2025-03-03~)
859
- .setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
860
- .lean()
861
853
  .exec();
862
- if (expiringTransactions.length > 0) {
863
- // ステータスと期限を見て更新
864
- yield this.transactionModel.updateMany({
865
- _id: { $in: expiringTransactions.map((t) => t.id) },
866
- status: { $eq: factory.transactionStatusType.InProgress },
867
- expires: { $lt: params.expires.$lt }
868
- }, {
869
- status: factory.transactionStatusType.Expired,
870
- endDate: new Date()
871
- })
872
- .exec();
873
- expiringTransactions.forEach((expiringTransaction) => {
874
- transaction_1.transactionEventEmitter.emitTransactionStatusChanged({
875
- id: expiringTransaction.id,
876
- typeOf: expiringTransaction.typeOf,
877
- status: factory.transactionStatusType.Expired
878
- });
854
+ expiringTransactions.forEach((expiringTransaction) => {
855
+ transaction_1.transactionEventEmitter.emitTransactionStatusChanged({
856
+ id: expiringTransaction.id,
857
+ typeOf: expiringTransaction.typeOf,
858
+ status: factory.transactionStatusType.Expired
879
859
  });
880
- }
881
- return expiringTransactions;
882
- });
860
+ });
861
+ }
862
+ return expiringTransactions;
883
863
  }
884
864
  /**
885
865
  * 取引を中止する
886
866
  */
887
- cancel(params) {
888
- return __awaiter(this, void 0, void 0, function* () {
889
- const endDate = new Date();
890
- // 進行中ステータスの取引を中止する
891
- const doc = yield this.transactionModel.findOneAndUpdate({
892
- typeOf: params.typeOf,
893
- _id: params.id,
894
- status: factory.transactionStatusType.InProgress
895
- }, {
896
- status: factory.transactionStatusType.Canceled,
897
- endDate: endDate
898
- }, {
899
- new: true,
900
- projection: { _id: 1 }
901
- })
902
- .lean()
903
- .exec();
904
- // NotFoundであれば取引状態確認
905
- if (doc === null) {
906
- const { status } = yield this.projectFieldsById(params, ['status']);
907
- if (status === factory.transactionStatusType.Canceled) {
908
- // すでに中止済の場合スルー
909
- }
910
- else if (status === factory.transactionStatusType.Expired) {
911
- throw new factory.errors.Argument('Transaction id', 'Transaction already expired');
912
- }
913
- else if (status === factory.transactionStatusType.Confirmed) {
914
- throw new factory.errors.Argument('Transaction id', 'Confirmed transaction unable to cancel');
915
- }
916
- else {
917
- throw new factory.errors.NotFound(this.transactionModel.modelName, `${params.typeOf} ${factory.transactionStatusType.InProgress} not found`);
918
- }
867
+ async cancel(params) {
868
+ const endDate = new Date();
869
+ // 進行中ステータスの取引を中止する
870
+ const doc = await this.transactionModel.findOneAndUpdate({
871
+ typeOf: params.typeOf,
872
+ _id: params.id,
873
+ status: factory.transactionStatusType.InProgress
874
+ }, {
875
+ status: factory.transactionStatusType.Canceled,
876
+ endDate: endDate
877
+ }, {
878
+ new: true,
879
+ projection: { _id: 1 }
880
+ })
881
+ .lean()
882
+ .exec();
883
+ // NotFoundであれば取引状態確認
884
+ if (doc === null) {
885
+ const { status } = await this.projectFieldsById(params, ['status']);
886
+ if (status === factory.transactionStatusType.Canceled) {
887
+ // すでに中止済の場合スルー
919
888
  }
920
- transaction_1.transactionEventEmitter.emitTransactionStatusChanged({
921
- id: params.id,
922
- typeOf: params.typeOf,
923
- status: factory.transactionStatusType.Canceled
924
- });
925
- });
926
- }
927
- count(params) {
928
- return __awaiter(this, void 0, void 0, function* () {
929
- const { limit } = params;
930
- const conditions = TransactionRepo.CREATE_MONGO_CONDITIONS(params);
931
- const query = this.transactionModel.countDocuments((conditions.length > 0) ? { $and: conditions } : {});
932
- if (typeof limit === 'number' && limit >= 0) {
933
- query.limit(limit);
889
+ else if (status === factory.transactionStatusType.Expired) {
890
+ throw new factory.errors.Argument('Transaction id', 'Transaction already expired');
934
891
  }
935
- const count = yield query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
936
- .exec();
937
- return { count };
892
+ else if (status === factory.transactionStatusType.Confirmed) {
893
+ throw new factory.errors.Argument('Transaction id', 'Confirmed transaction unable to cancel');
894
+ }
895
+ else {
896
+ throw new factory.errors.NotFound(this.transactionModel.modelName, `${params.typeOf} ${factory.transactionStatusType.InProgress} not found`);
897
+ }
898
+ }
899
+ transaction_1.transactionEventEmitter.emitTransactionStatusChanged({
900
+ id: params.id,
901
+ typeOf: params.typeOf,
902
+ status: factory.transactionStatusType.Canceled
938
903
  });
939
904
  }
905
+ async count(params) {
906
+ const { limit } = params;
907
+ const conditions = TransactionRepo.CREATE_MONGO_CONDITIONS(params);
908
+ const query = this.transactionModel.countDocuments((conditions.length > 0) ? { $and: conditions } : {});
909
+ if (typeof limit === 'number' && limit >= 0) {
910
+ query.limit(limit);
911
+ }
912
+ const count = await query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
913
+ .exec();
914
+ return { count };
915
+ }
940
916
  /**
941
917
  * 取引を検索する
942
918
  */
943
- projectFields(params) {
944
- return __awaiter(this, void 0, void 0, function* () {
945
- var _a;
946
- const { inclusion } = params;
947
- const conditions = TransactionRepo.CREATE_MONGO_CONDITIONS(params);
948
- let positiveProjectionFields = AVAILABLE_PROJECT_FIELDS;
949
- if (Array.isArray(inclusion) && inclusion.length > 0) {
950
- positiveProjectionFields = positiveProjectionFields.filter((key) => inclusion.includes(key));
951
- }
952
- const projection = Object.assign({ _id: 0, id: { $toString: '$_id' } }, Object.fromEntries(positiveProjectionFields.map((key) => ([key, 1]))));
953
- // let projection: { [key in (IKeyOfProjection<T> | '__v' | 'createdAt' | 'updatedAt')]?: AnyExpression } = {};
954
- // if (Array.isArray(params.inclusion) && params.inclusion.length > 0) {
955
- // params.inclusion.forEach((field) => {
956
- // projection[field] = 1;
957
- // });
958
- // } else {
959
- // projection = {
960
- // __v: 0,
961
- // createdAt: 0,
962
- // updatedAt: 0
963
- // };
964
- // }
965
- const query = this.transactionModel.find((conditions.length > 0) ? { $and: conditions } : {})
966
- .select(projection);
967
- if (typeof params.limit === 'number' && params.limit > 0) {
968
- const page = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
969
- query.limit(params.limit)
970
- .skip(params.limit * (page - 1));
971
- }
972
- // tslint:disable-next-line:no-single-line-block-comment
973
- /* istanbul ignore else */
974
- if (((_a = params.sort) === null || _a === void 0 ? void 0 : _a.startDate) !== undefined) {
975
- query.sort({ startDate: params.sort.startDate });
976
- }
977
- // const explainResult = await (<any>query).explain();
978
- // console.log(explainResult[0].executionStats.allPlansExecution.map((e: any) => e.executionStages.inputStage));
979
- return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
980
- .lean() // 2024-08-26~
981
- .exec();
982
- });
919
+ async projectFields(params) {
920
+ const { inclusion } = params;
921
+ const conditions = TransactionRepo.CREATE_MONGO_CONDITIONS(params);
922
+ let positiveProjectionFields = AVAILABLE_PROJECT_FIELDS;
923
+ if (Array.isArray(inclusion) && inclusion.length > 0) {
924
+ positiveProjectionFields = positiveProjectionFields.filter((key) => inclusion.includes(key));
925
+ }
926
+ const projection = {
927
+ _id: 0,
928
+ id: { $toString: '$_id' },
929
+ ...Object.fromEntries(positiveProjectionFields.map((key) => ([key, 1])))
930
+ };
931
+ // let projection: { [key in (IKeyOfProjection<T> | '__v' | 'createdAt' | 'updatedAt')]?: AnyExpression } = {};
932
+ // if (Array.isArray(params.inclusion) && params.inclusion.length > 0) {
933
+ // params.inclusion.forEach((field) => {
934
+ // projection[field] = 1;
935
+ // });
936
+ // } else {
937
+ // projection = {
938
+ // __v: 0,
939
+ // createdAt: 0,
940
+ // updatedAt: 0
941
+ // };
942
+ // }
943
+ const query = this.transactionModel.find((conditions.length > 0) ? { $and: conditions } : {})
944
+ .select(projection);
945
+ if (typeof params.limit === 'number' && params.limit > 0) {
946
+ const page = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
947
+ query.limit(params.limit)
948
+ .skip(params.limit * (page - 1));
949
+ }
950
+ /* istanbul ignore else */
951
+ if (params.sort?.startDate !== undefined) {
952
+ query.sort({ startDate: params.sort.startDate });
953
+ }
954
+ // const explainResult = await (<any>query).explain();
955
+ // console.log(explainResult[0].executionStats.allPlansExecution.map((e: any) => e.executionStages.inputStage));
956
+ return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
957
+ .lean() // 2024-08-26~
958
+ .exec();
983
959
  }
984
960
  /**
985
961
  * 特定の進行中取引を更新する(汎用)
986
962
  */
987
- findByIdAndUpdateInProgress(params) {
988
- return __awaiter(this, void 0, void 0, function* () {
989
- yield this.transactionModel.findOneAndUpdate({
990
- _id: { $eq: params.id },
991
- status: { $eq: factory.transactionStatusType.InProgress }
992
- }, params.update, {
993
- // new: true,
994
- projection: { _id: 1 }
995
- })
996
- .lean()
997
- .exec()
998
- .then((doc) => {
999
- if (doc === null) {
1000
- throw new factory.errors.ArgumentNull(this.transactionModel.modelName);
1001
- }
1002
- });
963
+ async findByIdAndUpdateInProgress(params) {
964
+ await this.transactionModel.findOneAndUpdate({
965
+ _id: { $eq: params.id },
966
+ status: { $eq: factory.transactionStatusType.InProgress }
967
+ }, params.update, {
968
+ // new: true,
969
+ projection: { _id: 1 }
970
+ })
971
+ .lean()
972
+ .exec()
973
+ .then((doc) => {
974
+ if (doc === null) {
975
+ throw new factory.errors.ArgumentNull(this.transactionModel.modelName);
976
+ }
1003
977
  });
1004
978
  }
1005
- saveOrderNumberIfNotExist(params) {
1006
- return __awaiter(this, void 0, void 0, function* () {
1007
- yield this.transactionModel.updateOne({
1008
- _id: { $eq: params.id },
1009
- status: { $eq: factory.transactionStatusType.InProgress },
1010
- 'object.orderNumber': { $exists: false }
1011
- }, { 'object.orderNumber': params.orderNumber })
1012
- .exec();
1013
- });
979
+ async saveOrderNumberIfNotExist(params) {
980
+ await this.transactionModel.updateOne({
981
+ _id: { $eq: params.id },
982
+ status: { $eq: factory.transactionStatusType.InProgress },
983
+ 'object.orderNumber': { $exists: false }
984
+ }, { 'object.orderNumber': params.orderNumber })
985
+ .exec();
1014
986
  }
1015
- saveConfirmationNumberIfNotExist(params) {
1016
- return __awaiter(this, void 0, void 0, function* () {
1017
- yield this.transactionModel.updateOne({
1018
- _id: { $eq: params.id },
1019
- // status: { $eq: factory.transactionStatusType.InProgress },
1020
- status: { $in: params.status.$in },
1021
- 'object.confirmationNumber': { $exists: false }
1022
- }, { $set: { 'object.confirmationNumber': params.confirmationNumber } })
1023
- .exec();
1024
- });
987
+ async saveConfirmationNumberIfNotExist(params) {
988
+ await this.transactionModel.updateOne({
989
+ _id: { $eq: params.id },
990
+ // status: { $eq: factory.transactionStatusType.InProgress },
991
+ status: { $in: params.status.$in },
992
+ 'object.confirmationNumber': { $exists: false }
993
+ }, { $set: { 'object.confirmationNumber': params.confirmationNumber } })
994
+ .exec();
1025
995
  }
1026
- findByIdAndDelete(params) {
1027
- return __awaiter(this, void 0, void 0, function* () {
1028
- yield this.transactionModel.findByIdAndDelete(params.id)
1029
- .exec();
1030
- });
996
+ async findByIdAndDelete(params) {
997
+ await this.transactionModel.findByIdAndDelete(params.id)
998
+ .exec();
1031
999
  }
1032
- unsetUnnecessaryFields(params) {
1033
- return __awaiter(this, void 0, void 0, function* () {
1034
- return this.transactionModel.updateMany(params.filter, { $unset: params.$unset }, { timestamps: false })
1035
- .exec();
1036
- });
1000
+ async unsetUnnecessaryFields(params) {
1001
+ return this.transactionModel.updateMany(params.filter, { $unset: params.$unset }, { timestamps: false })
1002
+ .exec();
1037
1003
  }
1038
1004
  /**
1039
1005
  * 終了日時を一定期間過ぎたアクションを削除する
1040
1006
  */
1041
- deleteEndDatePassedCertainPeriod(params) {
1042
- return __awaiter(this, void 0, void 0, function* () {
1043
- return this.transactionModel.deleteMany({
1044
- typeOf: { $eq: params.typeOf },
1045
- // 終了日時を一定期間過ぎたもの
1046
- endDate: {
1047
- $exists: true,
1048
- $gte: params.endDate.$gte,
1049
- $lt: params.endDate.$lt
1050
- }
1051
- })
1052
- .exec();
1053
- });
1007
+ async deleteEndDatePassedCertainPeriod(params) {
1008
+ return this.transactionModel.deleteMany({
1009
+ typeOf: { $eq: params.typeOf },
1010
+ // 終了日時を一定期間過ぎたもの
1011
+ endDate: {
1012
+ $exists: true,
1013
+ $gte: params.endDate.$gte,
1014
+ $lt: params.endDate.$lt
1015
+ }
1016
+ })
1017
+ .exec();
1054
1018
  }
1055
1019
  getCursor(conditions, projection) {
1056
1020
  return this.transactionModel.find(conditions, projection)
1057
1021
  .sort({ startDate: factory.sortType.Descending })
1058
1022
  .cursor();
1059
1023
  }
1060
- aggregatePlaceOrder(params) {
1061
- return __awaiter(this, void 0, void 0, function* () {
1062
- const statuses = yield Promise.all([
1063
- factory.transactionStatusType.Confirmed,
1064
- factory.transactionStatusType.Canceled,
1065
- factory.transactionStatusType.Expired
1066
- ].map((transactionStatus) => __awaiter(this, void 0, void 0, function* () {
1067
- var _a, _b;
1068
- const matchConditions = Object.assign(Object.assign({ startDate: {
1069
- $gte: params.startFrom,
1070
- $lte: params.startThrough
1071
- }, typeOf: { $eq: params.typeOf }, status: { $eq: transactionStatus } }, (typeof ((_b = (_a = params.project) === null || _a === void 0 ? void 0 : _a.id) === null || _b === void 0 ? void 0 : _b.$ne) === 'string')
1024
+ async aggregatePlaceOrder(params) {
1025
+ const statuses = await Promise.all([
1026
+ factory.transactionStatusType.Confirmed,
1027
+ factory.transactionStatusType.Canceled,
1028
+ factory.transactionStatusType.Expired
1029
+ ].map(async (transactionStatus) => {
1030
+ const matchConditions = {
1031
+ startDate: {
1032
+ $gte: params.startFrom,
1033
+ $lte: params.startThrough
1034
+ },
1035
+ typeOf: { $eq: params.typeOf },
1036
+ status: { $eq: transactionStatus },
1037
+ ...(typeof params.project?.id?.$ne === 'string')
1072
1038
  ? { 'project.id': { $ne: params.project.id.$ne } }
1073
- : undefined), (typeof params.clientId === 'string')
1039
+ : undefined,
1040
+ ...(typeof params.clientId === 'string')
1074
1041
  // customerIdentifierAll.push();
1075
1042
  ? {
1076
1043
  'agent.identifier': {
@@ -1078,134 +1045,132 @@ class TransactionRepo {
1078
1045
  $all: [{ name: 'clientId', value: params.clientId }]
1079
1046
  }
1080
1047
  }
1081
- : undefined);
1082
- return this.agggregateByStatus({ matchConditions, status: transactionStatus });
1083
- })));
1084
- return { statuses };
1085
- });
1048
+ : undefined
1049
+ };
1050
+ return this.agggregateByStatus({ matchConditions, status: transactionStatus });
1051
+ }));
1052
+ return { statuses };
1086
1053
  }
1087
- // tslint:disable-next-line:max-func-body-length
1088
- agggregateByStatus(params) {
1089
- return __awaiter(this, void 0, void 0, function* () {
1090
- const matchConditions = params.matchConditions;
1091
- const transactionStatus = params.status;
1092
- const aggregations = yield this.transactionModel.aggregate([
1093
- {
1094
- $match: matchConditions
1095
- },
1096
- {
1097
- $project: {
1098
- duration: { $subtract: ['$endDate', '$startDate'] },
1099
- status: '$status',
1100
- startDate: '$startDate',
1101
- endDate: '$endDate',
1102
- typeOf: '$typeOf'
1103
- }
1104
- },
1105
- {
1106
- $group: {
1107
- _id: '$typeOf',
1108
- transactionCount: { $sum: 1 },
1109
- maxDuration: { $max: '$duration' },
1110
- minDuration: { $min: '$duration' },
1111
- avgDuration: { $avg: '$duration' }
1112
- }
1113
- },
1114
- {
1115
- $project: {
1116
- _id: 0,
1117
- transactionCount: '$transactionCount',
1118
- avgDuration: '$avgDuration',
1119
- maxDuration: '$maxDuration',
1120
- minDuration: '$minDuration'
1121
- }
1054
+ async agggregateByStatus(params) {
1055
+ const matchConditions = params.matchConditions;
1056
+ const transactionStatus = params.status;
1057
+ const aggregations = await this.transactionModel.aggregate([
1058
+ {
1059
+ $match: matchConditions
1060
+ },
1061
+ {
1062
+ $project: {
1063
+ duration: { $subtract: ['$endDate', '$startDate'] },
1064
+ status: '$status',
1065
+ startDate: '$startDate',
1066
+ endDate: '$endDate',
1067
+ typeOf: '$typeOf'
1122
1068
  }
1123
- ])
1124
- .exec();
1125
- // tslint:disable-next-line:no-magic-numbers
1126
- const percents = [50, 95, 99];
1127
- if (aggregations.length === 0) {
1128
- return {
1129
- status: transactionStatus,
1130
- aggregation: {
1131
- transactionCount: 0,
1132
- avgDuration: 0,
1133
- maxDuration: 0,
1134
- minDuration: 0,
1135
- percentilesDuration: percents.map((percent) => {
1136
- return {
1137
- name: String(percent),
1138
- value: 0
1139
- };
1140
- })
1141
- // totalPrice: 0,
1142
- // maxPrice: 0,
1143
- // minPrice: 0,
1144
- // avgPrice: 0
1145
- }
1146
- };
1147
- }
1148
- const ranks4percentile = percents.map((percentile) => {
1149
- return {
1150
- percentile,
1151
- // tslint:disable-next-line:no-magic-numbers
1152
- rank: Math.floor(aggregations[0].transactionCount * percentile / 100)
1153
- };
1154
- });
1155
- const aggregations2 = yield this.transactionModel.aggregate([
1156
- {
1157
- $match: matchConditions
1158
- },
1159
- {
1160
- $project: {
1161
- duration: { $subtract: ['$endDate', '$startDate'] },
1162
- status: '$status',
1163
- startDate: '$startDate',
1164
- endDate: '$endDate',
1165
- typeOf: '$typeOf'
1166
- // result: '$result',
1167
- // price: {
1168
- // $cond: {
1169
- // if: { $isNumber: '$result.order.price' },
1170
- // then: '$result.order.price',
1171
- // else: 0
1172
- // }
1173
- // }
1174
- }
1175
- },
1176
- { $sort: { duration: 1 } },
1177
- {
1178
- $group: {
1179
- _id: '$typeOf',
1180
- durations: { $push: '$duration' }
1181
- // totalPrice: { $sum: '$price' },
1182
- // maxPrice: { $max: '$price' },
1183
- // minPrice: { $min: '$price' },
1184
- // avgPrice: { $avg: '$price' }
1185
- }
1186
- },
1187
- {
1188
- $project: {
1189
- _id: 0,
1190
- percentilesDuration: ranks4percentile.map((rank) => {
1191
- return {
1192
- name: String(rank.percentile),
1193
- value: { $arrayElemAt: ['$durations', rank.rank] }
1194
- };
1195
- })
1196
- // totalPrice: '$totalPrice',
1197
- // maxPrice: '$maxPrice',
1198
- // minPrice: '$minPrice',
1199
- // avgPrice: '$avgPrice'
1200
- }
1069
+ },
1070
+ {
1071
+ $group: {
1072
+ _id: '$typeOf',
1073
+ transactionCount: { $sum: 1 },
1074
+ maxDuration: { $max: '$duration' },
1075
+ minDuration: { $min: '$duration' },
1076
+ avgDuration: { $avg: '$duration' }
1201
1077
  }
1202
- ])
1203
- .exec();
1078
+ },
1079
+ {
1080
+ $project: {
1081
+ _id: 0,
1082
+ transactionCount: '$transactionCount',
1083
+ avgDuration: '$avgDuration',
1084
+ maxDuration: '$maxDuration',
1085
+ minDuration: '$minDuration'
1086
+ }
1087
+ }
1088
+ ])
1089
+ .exec();
1090
+ const percents = [50, 95, 99];
1091
+ if (aggregations.length === 0) {
1204
1092
  return {
1205
1093
  status: transactionStatus,
1206
- aggregation: Object.assign(Object.assign({}, aggregations[0]), aggregations2[0])
1094
+ aggregation: {
1095
+ transactionCount: 0,
1096
+ avgDuration: 0,
1097
+ maxDuration: 0,
1098
+ minDuration: 0,
1099
+ percentilesDuration: percents.map((percent) => {
1100
+ return {
1101
+ name: String(percent),
1102
+ value: 0
1103
+ };
1104
+ })
1105
+ // totalPrice: 0,
1106
+ // maxPrice: 0,
1107
+ // minPrice: 0,
1108
+ // avgPrice: 0
1109
+ }
1110
+ };
1111
+ }
1112
+ const ranks4percentile = percents.map((percentile) => {
1113
+ return {
1114
+ percentile,
1115
+ rank: Math.floor(aggregations[0].transactionCount * percentile / 100)
1207
1116
  };
1208
1117
  });
1118
+ const aggregations2 = await this.transactionModel.aggregate([
1119
+ {
1120
+ $match: matchConditions
1121
+ },
1122
+ {
1123
+ $project: {
1124
+ duration: { $subtract: ['$endDate', '$startDate'] },
1125
+ status: '$status',
1126
+ startDate: '$startDate',
1127
+ endDate: '$endDate',
1128
+ typeOf: '$typeOf'
1129
+ // result: '$result',
1130
+ // price: {
1131
+ // $cond: {
1132
+ // if: { $isNumber: '$result.order.price' },
1133
+ // then: '$result.order.price',
1134
+ // else: 0
1135
+ // }
1136
+ // }
1137
+ }
1138
+ },
1139
+ { $sort: { duration: 1 } },
1140
+ {
1141
+ $group: {
1142
+ _id: '$typeOf',
1143
+ durations: { $push: '$duration' }
1144
+ // totalPrice: { $sum: '$price' },
1145
+ // maxPrice: { $max: '$price' },
1146
+ // minPrice: { $min: '$price' },
1147
+ // avgPrice: { $avg: '$price' }
1148
+ }
1149
+ },
1150
+ {
1151
+ $project: {
1152
+ _id: 0,
1153
+ percentilesDuration: ranks4percentile.map((rank) => {
1154
+ return {
1155
+ name: String(rank.percentile),
1156
+ value: { $arrayElemAt: ['$durations', rank.rank] }
1157
+ };
1158
+ })
1159
+ // totalPrice: '$totalPrice',
1160
+ // maxPrice: '$maxPrice',
1161
+ // minPrice: '$minPrice',
1162
+ // avgPrice: '$avgPrice'
1163
+ }
1164
+ }
1165
+ ])
1166
+ .exec();
1167
+ return {
1168
+ status: transactionStatus,
1169
+ aggregation: {
1170
+ ...aggregations[0],
1171
+ ...aggregations2[0]
1172
+ }
1173
+ };
1209
1174
  }
1210
1175
  }
1211
1176
  exports.TransactionRepo = TransactionRepo;