@chevre/domain 23.2.0-alpha.9 → 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 +32 -1
  350. package/lib/chevre/repo/place/seat.js +589 -357
  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,30 +1,36 @@
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;
10
24
  };
11
- var __rest = (this && this.__rest) || function (s, e) {
12
- var t = {};
13
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
14
- t[p] = s[p];
15
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
16
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
17
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
18
- t[p[i]] = s[p[i]];
19
- }
20
- return t;
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
21
27
  };
22
28
  Object.defineProperty(exports, "__esModule", { value: true });
23
29
  exports.TaskRepo = void 0;
24
- const moment = require("moment");
30
+ const moment_1 = __importDefault(require("moment"));
25
31
  const errorHandler_1 = require("../errorHandler");
26
32
  const task_1 = require("../eventEmitter/task");
27
- const factory = require("../factory");
33
+ const factory = __importStar(require("../factory"));
28
34
  const settings_1 = require("../settings");
29
35
  const task_2 = require("./mongoose/schemas/task");
30
36
  /**
@@ -69,18 +75,17 @@ const AVAILABLE_PROJECT_FIELDS = [
69
75
  * タスクリポジトリ
70
76
  */
71
77
  class TaskRepo {
78
+ taskModel;
72
79
  constructor(connection) {
73
80
  this.taskModel = connection.model(task_2.modelName, (0, task_2.createSchema)());
74
81
  }
75
- // tslint:disable-next-line:cyclomatic-complexity max-func-body-length
76
82
  static CREATE_MONGO_CONDITIONS(params) {
77
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;
78
83
  const andConditions = [];
79
- const idEq = (_a = params.id) === null || _a === void 0 ? void 0 : _a.$eq;
84
+ const idEq = params.id?.$eq;
80
85
  if (typeof idEq === 'string') {
81
86
  andConditions.push({ _id: { $eq: idEq } });
82
87
  }
83
- const projectIdEq = (_c = (_b = params.project) === null || _b === void 0 ? void 0 : _b.id) === null || _c === void 0 ? void 0 : _c.$eq;
88
+ const projectIdEq = params.project?.id?.$eq;
84
89
  if (typeof projectIdEq === 'string') {
85
90
  andConditions.push({ 'project.id': { $eq: projectIdEq } });
86
91
  }
@@ -88,16 +93,16 @@ class TaskRepo {
88
93
  andConditions.push({ name: { $eq: params.name } });
89
94
  }
90
95
  else {
91
- const nameIn = (_d = params.name) === null || _d === void 0 ? void 0 : _d.$in;
96
+ const nameIn = params.name?.$in;
92
97
  if (Array.isArray(nameIn)) {
93
98
  andConditions.push({ name: { $in: nameIn } });
94
99
  }
95
- const nameNin = (_e = params.name) === null || _e === void 0 ? void 0 : _e.$nin;
100
+ const nameNin = params.name?.$nin;
96
101
  if (Array.isArray(nameNin)) {
97
102
  andConditions.push({ name: { $nin: nameNin } });
98
103
  }
99
104
  }
100
- const statusEq = (_f = params.status) === null || _f === void 0 ? void 0 : _f.$eq;
105
+ const statusEq = params.status?.$eq;
101
106
  if (typeof statusEq === 'string') {
102
107
  andConditions.push({ status: { $eq: statusEq } });
103
108
  }
@@ -116,206 +121,170 @@ class TaskRepo {
116
121
  if (params.lastTriedThrough instanceof Date) {
117
122
  andConditions.push({ lastTriedAt: { $type: 'date', $lte: params.lastTriedThrough } });
118
123
  }
119
- const dateAbortedGte = (_g = params.dateAborted) === null || _g === void 0 ? void 0 : _g.$gte;
124
+ const dateAbortedGte = params.dateAborted?.$gte;
120
125
  if (dateAbortedGte instanceof Date) {
121
126
  andConditions.push({ dateAborted: { $type: 'date', $gte: dateAbortedGte } });
122
127
  }
123
- const dateAbortedLte = (_h = params.dateAborted) === null || _h === void 0 ? void 0 : _h.$lte;
128
+ const dateAbortedLte = params.dateAborted?.$lte;
124
129
  if (dateAbortedLte instanceof Date) {
125
130
  andConditions.push({ dateAborted: { $type: 'date', $lte: dateAbortedLte } });
126
131
  }
127
- const objectIdEq = (_l = (_k = (_j = params.data) === null || _j === void 0 ? void 0 : _j.object) === null || _k === void 0 ? void 0 : _k.id) === null || _l === void 0 ? void 0 : _l.$eq;
132
+ const objectIdEq = params.data?.object?.id?.$eq;
128
133
  if (typeof objectIdEq === 'string') {
129
134
  andConditions.push({ 'data.object.id': { $exists: true, $eq: objectIdEq } });
130
135
  }
131
- const objectOrderNumberEq = (_p = (_o = (_m = params.data) === null || _m === void 0 ? void 0 : _m.object) === null || _o === void 0 ? void 0 : _o.orderNumber) === null || _p === void 0 ? void 0 : _p.$eq;
136
+ const objectOrderNumberEq = params.data?.object?.orderNumber?.$eq;
132
137
  if (typeof objectOrderNumberEq === 'string') {
133
138
  andConditions.push({ 'data.object.orderNumber': { $exists: true, $eq: objectOrderNumberEq } });
134
139
  }
135
- const objectTransactionNumberEq = (_s = (_r = (_q = params.data) === null || _q === void 0 ? void 0 : _q.object) === null || _r === void 0 ? void 0 : _r.transactionNumber) === null || _s === void 0 ? void 0 : _s.$eq;
140
+ const objectTransactionNumberEq = params.data?.object?.transactionNumber?.$eq;
136
141
  if (typeof objectTransactionNumberEq === 'string') {
137
142
  andConditions.push({ 'data.object.transactionNumber': { $exists: true, $eq: objectTransactionNumberEq } });
138
143
  }
139
- const objectPurposeIdEq = (_v = (_u = (_t = params.data) === null || _t === void 0 ? void 0 : _t.purpose) === null || _u === void 0 ? void 0 : _u.id) === null || _v === void 0 ? void 0 : _v.$eq;
144
+ const objectPurposeIdEq = params.data?.purpose?.id?.$eq;
140
145
  if (typeof objectPurposeIdEq === 'string') {
141
146
  andConditions.push({ 'data.purpose.id': { $exists: true, $eq: objectPurposeIdEq } });
142
147
  }
143
- const objectPurposeOrderNumberEq = (_y = (_x = (_w = params.data) === null || _w === void 0 ? void 0 : _w.purpose) === null || _x === void 0 ? void 0 : _x.orderNumber) === null || _y === void 0 ? void 0 : _y.$eq;
148
+ const objectPurposeOrderNumberEq = params.data?.purpose?.orderNumber?.$eq;
144
149
  if (typeof objectPurposeOrderNumberEq === 'string') {
145
150
  andConditions.push({ 'data.purpose.orderNumber': { $exists: true, $eq: objectPurposeOrderNumberEq } });
146
151
  }
147
- const alternateNameRegex = (_z = params.alternateName) === null || _z === void 0 ? void 0 : _z.$regex;
152
+ const alternateNameRegex = params.alternateName?.$regex;
148
153
  if (typeof alternateNameRegex === 'string' && alternateNameRegex.length > 0) {
149
154
  andConditions.push({ alternateName: { $exists: true, $regex: new RegExp(alternateNameRegex) } });
150
155
  }
151
- const identifierRegex = (_0 = params.identifier) === null || _0 === void 0 ? void 0 : _0.$regex;
156
+ const identifierRegex = params.identifier?.$regex;
152
157
  if (typeof identifierRegex === 'string' && identifierRegex.length > 0) {
153
158
  andConditions.push({ identifier: { $exists: true, $regex: new RegExp(identifierRegex) } });
154
159
  }
155
160
  return andConditions;
156
161
  }
157
- runImmediately(
162
+ async runImmediately(
158
163
  // resolve uniqueness of identifier(2025-03-27~)
159
164
  params,
160
165
  // support customr function(2025-05-25~)
161
166
  next) {
162
- return __awaiter(this, void 0, void 0, function* () {
163
- var _a, _b;
164
- const { expires } = params;
165
- if (!(expires instanceof Date)) {
166
- throw new factory.errors.Argument('expires', 'must be Date');
167
- }
168
- const savingTask = Object.assign(Object.assign({}, params), { status: factory.taskStatus.Ready, numberOfTried: 0, executionResults: [] });
169
- const result = yield this.taskModel.insertMany(savingTask, { rawResult: true });
170
- const id = (_b = (_a = result.insertedIds) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.toHexString();
171
- if (typeof id !== 'string') {
172
- throw new factory.errors.Internal('task not saved');
173
- }
174
- task_1.taskEventEmitter.emitTaskStatusChanged({
175
- id,
176
- status: factory.taskStatus.Ready,
177
- expires // emit expires(2025-03-31~)
178
- }, next);
179
- return { id };
180
- });
167
+ const { expires } = params;
168
+ if (!(expires instanceof Date)) {
169
+ throw new factory.errors.Argument('expires', 'must be Date');
170
+ }
171
+ const savingTask = {
172
+ ...params,
173
+ status: factory.taskStatus.Ready,
174
+ numberOfTried: 0,
175
+ executionResults: []
176
+ };
177
+ const result = await this.taskModel.insertMany(savingTask, { rawResult: true });
178
+ const id = result.insertedIds?.[0]?.toHexString();
179
+ if (typeof id !== 'string') {
180
+ throw new factory.errors.Internal('task not saved');
181
+ }
182
+ task_1.taskEventEmitter.emitTaskStatusChanged({
183
+ id,
184
+ status: factory.taskStatus.Ready,
185
+ expires // emit expires(2025-03-31~)
186
+ }, next);
187
+ return { id };
181
188
  }
182
- saveMany(taskAttributes, options) {
183
- return __awaiter(this, void 0, void 0, function* () {
184
- const emitImmediately = (options === null || options === void 0 ? void 0 : options.emitImmediately) === true;
185
- if (taskAttributes.length > 0) {
186
- // resolve uniqueness of identifier(2025-03-27~)
187
- const creatingTasks = taskAttributes.map((_a) => {
188
- var { identifier } = _a, creatingTask = __rest(_a, ["identifier"]);
189
- return creatingTask;
190
- });
191
- const result = yield this.taskModel.insertMany(creatingTasks, { ordered: false, rawResult: true });
192
- if (result.insertedCount !== taskAttributes.length) {
193
- throw new factory.errors.Internal('all tasks not saved');
194
- }
195
- const savedTasks = Object.values(result.insertedIds)
196
- .map((objectId) => {
197
- return { id: objectId.toHexString() };
198
- });
199
- if (emitImmediately) {
200
- savedTasks.forEach((savedTask) => {
201
- task_1.taskEventEmitter.emitTaskStatusChanged({
202
- id: savedTask.id,
203
- status: factory.taskStatus.Ready
204
- });
189
+ async saveMany(taskAttributes, options) {
190
+ const emitImmediately = options?.emitImmediately === true;
191
+ if (taskAttributes.length > 0) {
192
+ // resolve uniqueness of identifier(2025-03-27~)
193
+ const creatingTasks = taskAttributes.map(({ identifier, ...creatingTask }) => creatingTask);
194
+ const result = await this.taskModel.insertMany(creatingTasks, { ordered: false, rawResult: true });
195
+ if (result.insertedCount !== taskAttributes.length) {
196
+ throw new factory.errors.Internal('all tasks not saved');
197
+ }
198
+ const savedTasks = Object.values(result.insertedIds)
199
+ .map((objectId) => {
200
+ return { id: objectId.toHexString() };
201
+ });
202
+ if (emitImmediately) {
203
+ savedTasks.forEach((savedTask) => {
204
+ task_1.taskEventEmitter.emitTaskStatusChanged({
205
+ id: savedTask.id,
206
+ status: factory.taskStatus.Ready
205
207
  });
206
- // taskAttributes.forEach((savedTask) => {
207
- // taskEventEmitter.emitTaskStatusChanged({
208
- // name: savedTask.name,
209
- // status: factory.taskStatus.Ready
210
- // });
211
- // });
212
- }
213
- // return result.ops;
214
- return savedTasks;
215
- }
216
- else {
217
- return [];
218
- }
219
- });
208
+ });
209
+ // taskAttributes.forEach((savedTask) => {
210
+ // taskEventEmitter.emitTaskStatusChanged({
211
+ // name: savedTask.name,
212
+ // status: factory.taskStatus.Ready
213
+ // });
214
+ // });
215
+ }
216
+ // return result.ops;
217
+ return savedTasks;
218
+ }
219
+ else {
220
+ return [];
221
+ }
220
222
  }
221
223
  /**
222
224
  * タスク識別子から検索する
223
225
  */
224
- findByIdentifier(params) {
225
- return __awaiter(this, void 0, void 0, function* () {
226
- const projection = {
227
- _id: 0,
228
- id: { $toString: '$_id' },
229
- status: 1
230
- };
231
- const doc = yield this.taskModel.findOne({
232
- 'project.id': { $eq: params.project.id },
233
- name: { $eq: params.name },
234
- identifier: { $exists: true, $eq: params.identifier }
235
- }, projection)
236
- .lean() // lean(2024-09-26~)
237
- .exec();
238
- if (doc === null) {
239
- return;
240
- }
241
- const { id, status } = doc;
242
- return { id, status };
243
- });
226
+ async findByIdentifier(params) {
227
+ const projection = {
228
+ _id: 0,
229
+ id: { $toString: '$_id' },
230
+ status: 1
231
+ };
232
+ const doc = await this.taskModel.findOne({
233
+ 'project.id': { $eq: params.project.id },
234
+ name: { $eq: params.name },
235
+ identifier: { $exists: true, $eq: params.identifier }
236
+ }, projection)
237
+ .lean() // lean(2024-09-26~)
238
+ .exec();
239
+ if (doc === null) {
240
+ return;
241
+ }
242
+ const { id, status } = doc;
243
+ return { id, status };
244
244
  }
245
245
  /**
246
246
  * タスク識別子から冪等作成する
247
247
  * reimplement createIfNotExistByIdentifier(2025-03-28~)
248
248
  */
249
- createIfNotExistByAlternateName(params, options) {
250
- return __awaiter(this, void 0, void 0, function* () {
251
- if (typeof params.alternateName !== 'string' || params.alternateName.length === 0) {
252
- throw new factory.errors.ArgumentNull('alternateName');
253
- }
254
- let createdTask;
255
- const filterQuery = {
256
- 'project.id': { $eq: params.project.id },
257
- name: { $eq: params.name },
258
- alternateName: { $exists: true, $eq: params.alternateName }
259
- };
260
- const projection = {
261
- _id: 0,
262
- id: { $toString: '$_id' }
263
- };
264
- try {
265
- createdTask = yield this.taskModel.findOneAndUpdate(filterQuery, { $setOnInsert: params }, {
266
- new: true,
267
- upsert: true,
268
- projection
269
- })
270
- .lean()
271
- .exec();
272
- }
273
- catch (error) {
274
- let throwsError = true;
275
- if (yield (0, errorHandler_1.isMongoError)(error)) {
276
- // すでにalternateNameが存在する場合ok
277
- if (error.code === errorHandler_1.MongoErrorCode.DuplicateKey) {
278
- throwsError = false;
279
- createdTask = yield this.taskModel.findOne(filterQuery, projection)
280
- .lean()
281
- .exec();
282
- }
283
- }
284
- if (throwsError) {
285
- throw error;
286
- }
287
- }
288
- if (typeof (createdTask === null || createdTask === void 0 ? void 0 : createdTask.id) === 'string') {
289
- if (options.emitImmediately) {
290
- task_1.taskEventEmitter.emitTaskStatusChanged({
291
- id: createdTask.id,
292
- name: params.name,
293
- status: factory.taskStatus.Ready
294
- });
249
+ async createIfNotExistByAlternateName(params, options) {
250
+ if (typeof params.alternateName !== 'string' || params.alternateName.length === 0) {
251
+ throw new factory.errors.ArgumentNull('alternateName');
252
+ }
253
+ let createdTask;
254
+ const filterQuery = {
255
+ 'project.id': { $eq: params.project.id },
256
+ name: { $eq: params.name },
257
+ alternateName: { $exists: true, $eq: params.alternateName }
258
+ };
259
+ const projection = {
260
+ _id: 0,
261
+ id: { $toString: '$_id' }
262
+ };
263
+ try {
264
+ createdTask = await this.taskModel.findOneAndUpdate(filterQuery, { $setOnInsert: params }, {
265
+ new: true,
266
+ upsert: true,
267
+ projection
268
+ })
269
+ .lean()
270
+ .exec();
271
+ }
272
+ catch (error) {
273
+ let throwsError = true;
274
+ if (await (0, errorHandler_1.isMongoError)(error)) {
275
+ // すでにalternateNameが存在する場合ok
276
+ if (error.code === errorHandler_1.MongoErrorCode.DuplicateKey) {
277
+ throwsError = false;
278
+ createdTask = await this.taskModel.findOne(filterQuery, projection)
279
+ .lean()
280
+ .exec();
295
281
  }
296
282
  }
297
- else {
298
- throw new factory.errors.Internal(`falied in creating a task unexpectedly. ${params.alternateName}`);
299
- }
300
- });
301
- }
302
- /**
303
- * 取引削除タスク冪等作成
304
- */
305
- createDeleteTransactionTaskIfNotExist(
306
- // resolve uniqueness of identifier(2025-03-27~)
307
- params, options) {
308
- return __awaiter(this, void 0, void 0, function* () {
309
- if (params.data.object.specifyingMethod !== factory.action.update.deleteAction.ObjectAsTransactionSpecifyingMethod.Id) {
310
- throw new factory.errors.NotImplemented(`only ${factory.action.update.deleteAction.ObjectAsTransactionSpecifyingMethod.Id} implemented`);
283
+ if (throwsError) {
284
+ throw error;
311
285
  }
312
- const createdTask = yield this.taskModel.findOneAndUpdate({
313
- 'project.id': { $eq: params.project.id },
314
- name: { $eq: params.name },
315
- 'data.object.id': { $exists: true, $eq: params.data.object.id }
316
- }, { $setOnInsert: params }, { new: true, upsert: true })
317
- .select({ _id: 1 })
318
- .exec();
286
+ }
287
+ if (typeof createdTask?.id === 'string') {
319
288
  if (options.emitImmediately) {
320
289
  task_1.taskEventEmitter.emitTaskStatusChanged({
321
290
  id: createdTask.id,
@@ -323,157 +292,202 @@ class TaskRepo {
323
292
  status: factory.taskStatus.Ready
324
293
  });
325
294
  }
326
- });
295
+ }
296
+ else {
297
+ throw new factory.errors.Internal(`falied in creating a task unexpectedly. ${params.alternateName}`);
298
+ }
327
299
  }
328
- createOnAssetTransactionStatusChangedTaskIfNotExist(
300
+ /**
301
+ * 取引削除タスク冪等作成
302
+ */
303
+ async createDeleteTransactionTaskIfNotExist(
329
304
  // resolve uniqueness of identifier(2025-03-27~)
330
305
  params, options) {
331
- return __awaiter(this, void 0, void 0, function* () {
332
- const createdTask = yield this.taskModel.findOneAndUpdate({
333
- 'project.id': { $eq: params.project.id },
334
- name: { $eq: params.name },
335
- 'data.object.transactionNumber': {
336
- $exists: true,
337
- $eq: String(params.data.object.transactionNumber)
338
- },
339
- 'data.purpose.orderNumber': {
340
- $exists: true,
341
- $eq: String(params.data.purpose.orderNumber)
342
- }
343
- }, { $setOnInsert: params }, { new: true, upsert: true })
344
- .select({ _id: 1 })
345
- .exec();
346
- if (options.emitImmediately) {
347
- task_1.taskEventEmitter.emitTaskStatusChanged({
348
- id: createdTask.id,
349
- name: params.name,
350
- status: factory.taskStatus.Ready
351
- });
352
- }
353
- });
306
+ if (params.data.object.specifyingMethod !== factory.action.update.deleteAction.ObjectAsTransactionSpecifyingMethod.Id) {
307
+ throw new factory.errors.NotImplemented(`only ${factory.action.update.deleteAction.ObjectAsTransactionSpecifyingMethod.Id} implemented`);
308
+ }
309
+ const createdTask = await this.taskModel.findOneAndUpdate({
310
+ 'project.id': { $eq: params.project.id },
311
+ name: { $eq: params.name },
312
+ 'data.object.id': { $exists: true, $eq: params.data.object.id }
313
+ }, { $setOnInsert: params }, { new: true, upsert: true })
314
+ .select({ _id: 1 })
315
+ .exec();
316
+ if (options.emitImmediately) {
317
+ task_1.taskEventEmitter.emitTaskStatusChanged({
318
+ id: createdTask.id,
319
+ name: params.name,
320
+ status: factory.taskStatus.Ready
321
+ });
322
+ }
323
+ }
324
+ async createOnAssetTransactionStatusChangedTaskIfNotExist(
325
+ // resolve uniqueness of identifier(2025-03-27~)
326
+ params, options) {
327
+ const createdTask = await this.taskModel.findOneAndUpdate({
328
+ 'project.id': { $eq: params.project.id },
329
+ name: { $eq: params.name },
330
+ 'data.object.transactionNumber': {
331
+ $exists: true,
332
+ $eq: String(params.data.object.transactionNumber)
333
+ },
334
+ 'data.purpose.orderNumber': {
335
+ $exists: true,
336
+ $eq: String(params.data.purpose.orderNumber)
337
+ }
338
+ }, { $setOnInsert: params }, { new: true, upsert: true })
339
+ .select({ _id: 1 })
340
+ .exec();
341
+ if (options.emitImmediately) {
342
+ task_1.taskEventEmitter.emitTaskStatusChanged({
343
+ id: createdTask.id,
344
+ name: params.name,
345
+ status: factory.taskStatus.Ready
346
+ });
347
+ }
354
348
  }
355
349
  /**
356
350
  * Ready -> remainingNumberOfTriesが1減る
357
351
  * Running -> findOneするだけ
358
352
  */
359
- executeOneById(params) {
360
- return __awaiter(this, void 0, void 0, function* () {
361
- const now = new Date();
362
- let doc;
363
- if (params.status === factory.taskStatus.Running) {
364
- doc = yield this.taskModel.findOne(Object.assign({ _id: { $eq: params.id }, status: { $eq: params.status }, runsAt: { $lt: now } }, (params.expires instanceof Date) ? { expires: { $gt: now } } : undefined), executableTaskProjection)
365
- .setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
366
- .lean()
367
- .exec();
368
- }
369
- else {
370
- doc = yield this.taskModel.findOneAndUpdate(Object.assign({ _id: { $eq: params.id }, status: { $eq: params.status }, runsAt: { $lt: now } }, (params.expires instanceof Date) ? { expires: { $gt: now } } : undefined), {
371
- $set: {
372
- status: factory.taskStatus.Running, // 実行中に変更
373
- lastTriedAt: now,
374
- executor: params.executor
375
- },
376
- $inc: {
377
- remainingNumberOfTries: -1, // 残りトライ可能回数減らす
378
- numberOfTried: 1 // トライ回数増やす
379
- }
380
- }, { new: true, projection: executableTaskProjection })
381
- .setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
382
- .lean() // lean(2024-09-26~)
383
- .exec();
384
- }
385
- if (doc === null) {
386
- // tslint:disable-next-line:no-null-keyword
387
- return null;
388
- }
389
- return doc;
390
- });
391
- }
392
- /**
393
- * Readyのタスクをname指定でひとつRunningに変更する
394
- */
395
- executeOneIfExists(params) {
396
- return __awaiter(this, void 0, void 0, function* () {
397
- var _a;
398
- if (!(params.runsAt.$lt instanceof Date)) {
399
- throw new factory.errors.Argument('runsAt.$lt', 'must be Date');
400
- }
401
- const nameEq = (_a = params.name) === null || _a === void 0 ? void 0 : _a.$eq;
402
- // const nameNin = params.name?.$nin;
403
- const doc = yield this.taskModel.findOneAndUpdate(Object.assign({ status: { $eq: factory.taskStatus.Ready }, runsAt: { $lt: params.runsAt.$lt } }, (typeof nameEq === 'string')
404
- ? {
405
- name: Object.assign({}, (typeof nameEq === 'string') ? { $eq: nameEq } : undefined
406
- // ...(Array.isArray(nameNin)) ? { $nin: nameNin } : undefined
407
- )
408
- }
409
- : undefined), {
353
+ async executeOneById(params) {
354
+ const now = new Date();
355
+ let doc;
356
+ if (params.status === factory.taskStatus.Running) {
357
+ doc = await this.taskModel.findOne({
358
+ _id: { $eq: params.id },
359
+ status: { $eq: params.status },
360
+ runsAt: { $lt: now },
361
+ ...(params.expires instanceof Date) ? { expires: { $gt: now } } : undefined
362
+ }, executableTaskProjection)
363
+ .setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
364
+ .lean()
365
+ .exec();
366
+ }
367
+ else {
368
+ doc = await this.taskModel.findOneAndUpdate({
369
+ _id: { $eq: params.id },
370
+ status: { $eq: params.status },
371
+ runsAt: { $lt: now },
372
+ ...(params.expires instanceof Date) ? { expires: { $gt: now } } : undefined
373
+ }, {
410
374
  $set: {
411
375
  status: factory.taskStatus.Running, // 実行中に変更
412
- lastTriedAt: new Date(),
376
+ lastTriedAt: now,
413
377
  executor: params.executor
414
378
  },
415
379
  $inc: {
416
380
  remainingNumberOfTries: -1, // 残りトライ可能回数減らす
417
381
  numberOfTried: 1 // トライ回数増やす
418
382
  }
419
- }, Object.assign({ new: true, projection: executableTaskProjection }, (typeof params.sort.numberOfTried === 'number' || typeof params.sort.runsAt === 'number')
420
- ? { sort: params.sort }
421
- : undefined))
383
+ }, { new: true, projection: executableTaskProjection })
422
384
  .setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
423
385
  .lean() // lean(2024-09-26~)
424
386
  .exec();
425
- if (doc === null) {
426
- // tslint:disable-next-line:no-null-keyword
427
- return null;
428
- }
429
- return doc;
430
- });
387
+ }
388
+ if (doc === null) {
389
+ return null;
390
+ }
391
+ return doc;
392
+ }
393
+ /**
394
+ * Readyのタスクをname指定でひとつRunningに変更する
395
+ */
396
+ async executeOneIfExists(params) {
397
+ if (!(params.runsAt.$lt instanceof Date)) {
398
+ throw new factory.errors.Argument('runsAt.$lt', 'must be Date');
399
+ }
400
+ const nameEq = params.name?.$eq;
401
+ // const nameNin = params.name?.$nin;
402
+ const doc = await this.taskModel.findOneAndUpdate({
403
+ status: { $eq: factory.taskStatus.Ready },
404
+ runsAt: { $lt: params.runsAt.$lt },
405
+ ...(typeof nameEq === 'string')
406
+ ? {
407
+ name: {
408
+ ...(typeof nameEq === 'string') ? { $eq: nameEq } : undefined
409
+ // ...(Array.isArray(nameNin)) ? { $nin: nameNin } : undefined
410
+ }
411
+ }
412
+ : undefined
413
+ }, {
414
+ $set: {
415
+ status: factory.taskStatus.Running, // 実行中に変更
416
+ lastTriedAt: new Date(),
417
+ executor: params.executor
418
+ },
419
+ $inc: {
420
+ remainingNumberOfTries: -1, // 残りトライ可能回数減らす
421
+ numberOfTried: 1 // トライ回数増やす
422
+ }
423
+ }, {
424
+ new: true,
425
+ projection: executableTaskProjection,
426
+ ...(typeof params.sort.numberOfTried === 'number' || typeof params.sort.runsAt === 'number')
427
+ ? { sort: params.sort }
428
+ : undefined
429
+ })
430
+ .setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
431
+ .lean() // lean(2024-09-26~)
432
+ .exec();
433
+ if (doc === null) {
434
+ return null;
435
+ }
436
+ return doc;
431
437
  }
432
438
  /**
433
439
  * add(2025-03-16~)
434
440
  */
435
- countPotentiallyRunning(params) {
436
- return __awaiter(this, void 0, void 0, function* () {
437
- const { runsAt, limit, name } = params;
438
- const nameEq = name === null || name === void 0 ? void 0 : name.$eq;
439
- // const nameNin = name?.$nin;
440
- const nameIn = name === null || name === void 0 ? void 0 : name.$in;
441
- if (!(runsAt.$lt instanceof Date)) {
442
- throw new factory.errors.Argument('runsAt.$lt', 'must be Date');
443
- }
444
- const query = this.taskModel.countDocuments(Object.assign({ status: { $eq: factory.taskStatus.Ready }, runsAt: { $lt: params.runsAt.$lt } }, (typeof nameEq === 'string' || Array.isArray(nameIn))
441
+ async countPotentiallyRunning(params) {
442
+ const { runsAt, limit, name } = params;
443
+ const nameEq = name?.$eq;
444
+ // const nameNin = name?.$nin;
445
+ const nameIn = name?.$in;
446
+ if (!(runsAt.$lt instanceof Date)) {
447
+ throw new factory.errors.Argument('runsAt.$lt', 'must be Date');
448
+ }
449
+ const query = this.taskModel.countDocuments({
450
+ status: { $eq: factory.taskStatus.Ready },
451
+ runsAt: { $lt: params.runsAt.$lt },
452
+ ...(typeof nameEq === 'string' || Array.isArray(nameIn))
445
453
  ? {
446
- name: Object.assign(Object.assign({}, (typeof nameEq === 'string') ? { $eq: nameEq } : undefined), (Array.isArray(nameIn)) ? { $in: nameIn } : undefined)
454
+ name: {
455
+ ...(typeof nameEq === 'string') ? { $eq: nameEq } : undefined,
456
+ // ...(Array.isArray(nameNin)) ? { $nin: nameNin } : undefined,
457
+ ...(Array.isArray(nameIn)) ? { $in: nameIn } : undefined
458
+ }
447
459
  }
448
- : undefined));
449
- if (typeof limit === 'number' && limit >= 0) {
450
- query.limit(limit);
451
- }
452
- const count = yield query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
453
- .exec();
454
- return { count };
460
+ : undefined
455
461
  });
462
+ if (typeof limit === 'number' && limit >= 0) {
463
+ query.limit(limit);
464
+ }
465
+ const count = await query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
466
+ .exec();
467
+ return { count };
456
468
  }
457
469
  /**
458
470
  * 実行日時を一定期間過ぎたReadyタスクについて、Runningスタータスに変更した上で、Runningイベントを発生させる
459
471
  */
460
- emitRunningIfExists(params, next // support next function(2025-08-02~)
472
+ async emitRunningIfExists(params, next // support next function(2025-08-02~)
461
473
  ) {
462
- return __awaiter(this, void 0, void 0, function* () {
463
- var _a;
464
- if (!(params.runsAt.$lt instanceof Date)) {
465
- throw new factory.errors.Argument('runsAt.$lt', 'must be Date');
466
- }
467
- const projection = {
468
- _id: 0,
469
- id: { $toString: '$_id' },
470
- name: 1
471
- };
472
- const nameEq = (_a = params.name) === null || _a === void 0 ? void 0 : _a.$eq;
473
- // const nameNin = params.name?.$nin;
474
- // const nameIn = params.name?.$in;
475
- const { nameFilterBeforeRunsAt } = params;
476
- const filter = Object.assign(Object.assign(Object.assign({ status: { $eq: factory.taskStatus.Ready } }, (nameFilterBeforeRunsAt) ? { name: params.name } : undefined), { runsAt: { $lt: params.runsAt.$lt } }), (!nameFilterBeforeRunsAt) ? { name: params.name } : undefined
474
+ if (!(params.runsAt.$lt instanceof Date)) {
475
+ throw new factory.errors.Argument('runsAt.$lt', 'must be Date');
476
+ }
477
+ const projection = {
478
+ _id: 0,
479
+ id: { $toString: '$_id' },
480
+ name: 1
481
+ };
482
+ const nameEq = params.name?.$eq;
483
+ // const nameNin = params.name?.$nin;
484
+ // const nameIn = params.name?.$in;
485
+ const { nameFilterBeforeRunsAt } = params;
486
+ const filter = {
487
+ status: { $eq: factory.taskStatus.Ready },
488
+ ...(nameFilterBeforeRunsAt) ? { name: params.name } : undefined,
489
+ runsAt: { $lt: params.runsAt.$lt },
490
+ ...(!nameFilterBeforeRunsAt) ? { name: params.name } : undefined
477
491
  // ...(typeof nameEq === 'string' || Array.isArray(nameIn))
478
492
  // ? {
479
493
  // name: {
@@ -483,109 +497,114 @@ class TaskRepo {
483
497
  // }
484
498
  // }
485
499
  // : undefined
486
- );
487
- const doc = yield this.taskModel.findOneAndUpdate(filter, {
488
- $set: {
489
- status: factory.taskStatus.Running, // 実行中に変更
490
- lastTriedAt: new Date(),
491
- executor: params.executor
492
- },
493
- $inc: {
494
- remainingNumberOfTries: -1, // 残りトライ可能回数減らす
495
- numberOfTried: 1 // トライ回数増やす
496
- }
497
- }, Object.assign({ new: true, projection }, (typeof params.sort.numberOfTried === 'number' || typeof params.sort.runsAt === 'number')
500
+ };
501
+ const doc = await this.taskModel.findOneAndUpdate(filter, {
502
+ $set: {
503
+ status: factory.taskStatus.Running, // 実行中に変更
504
+ lastTriedAt: new Date(),
505
+ executor: params.executor
506
+ },
507
+ $inc: {
508
+ remainingNumberOfTries: -1, // 残りトライ可能回数減らす
509
+ numberOfTried: 1 // トライ回数増やす
510
+ }
511
+ }, {
512
+ new: true,
513
+ projection,
514
+ ...(typeof params.sort.numberOfTried === 'number' || typeof params.sort.runsAt === 'number')
498
515
  ? { sort: params.sort }
499
- : undefined))
500
- .setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
501
- .lean()
502
- .exec();
503
- if (doc === null) {
504
- // tslint:disable-next-line:no-null-keyword
505
- return null;
506
- }
507
- let changedTask;
508
- if (typeof nameEq === 'string') {
509
- changedTask = {
510
- id: doc.id,
511
- status: factory.taskStatus.Running,
512
- name: nameEq
513
- };
514
- }
515
- else {
516
- changedTask = {
517
- id: doc.id,
518
- status: factory.taskStatus.Running
519
- };
520
- }
521
- task_1.taskEventEmitter.emitTaskStatusChanged(changedTask, (typeof next === 'function') ? next : undefined);
522
- return doc;
523
- });
516
+ : undefined
517
+ })
518
+ .setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
519
+ .lean()
520
+ .exec();
521
+ if (doc === null) {
522
+ return null;
523
+ }
524
+ let changedTask;
525
+ if (typeof nameEq === 'string') {
526
+ changedTask = {
527
+ id: doc.id,
528
+ status: factory.taskStatus.Running,
529
+ name: nameEq
530
+ };
531
+ }
532
+ else {
533
+ changedTask = {
534
+ id: doc.id,
535
+ status: factory.taskStatus.Running
536
+ };
537
+ }
538
+ task_1.taskEventEmitter.emitTaskStatusChanged(changedTask, (typeof next === 'function') ? next : undefined);
539
+ return doc;
524
540
  }
525
541
  /**
526
542
  * Readyのままで期限切れのタスクをExpiredに変更する
527
543
  */
528
- makeExpiredMany(params) {
529
- return __awaiter(this, void 0, void 0, function* () {
530
- const { expiresLt } = params;
531
- if (!(expiresLt instanceof Date)) {
532
- throw new factory.errors.Argument('expiresLt', 'must be Date');
533
- }
534
- return this.taskModel.updateMany({
535
- status: { $eq: factory.taskStatus.Ready },
536
- expires: { $exists: true, $lt: expiresLt }
537
- }, {
538
- $set: {
539
- status: factory.taskStatus.Expired
540
- }
541
- })
542
- .exec();
543
- });
544
+ async makeExpiredMany(params) {
545
+ const { expiresLt } = params;
546
+ if (!(expiresLt instanceof Date)) {
547
+ throw new factory.errors.Argument('expiresLt', 'must be Date');
548
+ }
549
+ return this.taskModel.updateMany({
550
+ status: { $eq: factory.taskStatus.Ready },
551
+ expires: { $exists: true, $lt: expiresLt }
552
+ }, {
553
+ $set: {
554
+ status: factory.taskStatus.Expired
555
+ }
556
+ })
557
+ .exec();
544
558
  }
545
559
  /**
546
560
  * Runningのまま一定期間超過し、かつ、remainingNumberOfTries>0のタスクをReadyに変更する
547
561
  */
548
- retryMany(params) {
549
- return __awaiter(this, void 0, void 0, function* () {
550
- const lastTriedAtShoudBeLessThan = moment()
551
- .add(-params.intervalInMinutes, 'minutes')
552
- .toDate();
553
- const remainingNumberOfTriesGte = params.remainingNumberOfTries.$gte;
554
- const remainingNumberOfTriesLte = params.remainingNumberOfTries.$lte;
555
- return this.taskModel.updateMany(Object.assign(Object.assign(Object.assign({ status: { $eq: factory.taskStatus.Running }, lastTriedAt: {
556
- $type: 'date',
557
- $lt: lastTriedAtShoudBeLessThan
558
- } }, (typeof remainingNumberOfTriesGte === 'number')
562
+ async retryMany(params) {
563
+ const lastTriedAtShoudBeLessThan = (0, moment_1.default)()
564
+ .add(-params.intervalInMinutes, 'minutes')
565
+ .toDate();
566
+ const remainingNumberOfTriesGte = params.remainingNumberOfTries.$gte;
567
+ const remainingNumberOfTriesLte = params.remainingNumberOfTries.$lte;
568
+ return this.taskModel.updateMany(
569
+ // name: 'retry'のindexと連動しているので、条件の順序などには注意すること
570
+ // @see schemas/task
571
+ {
572
+ status: { $eq: factory.taskStatus.Running },
573
+ lastTriedAt: {
574
+ $type: 'date',
575
+ $lt: lastTriedAtShoudBeLessThan
576
+ },
577
+ ...(typeof remainingNumberOfTriesGte === 'number')
559
578
  ? { remainingNumberOfTries: { $gte: remainingNumberOfTriesGte } }
560
- : undefined), (typeof remainingNumberOfTriesLte === 'number')
579
+ : undefined,
580
+ ...(typeof remainingNumberOfTriesLte === 'number')
561
581
  ? { remainingNumberOfTries: { $lte: remainingNumberOfTriesLte } }
562
- : undefined), (Array.isArray(params.name.$in)) ? { name: { $in: params.name.$in } } : undefined), {
563
- $set: {
564
- status: factory.taskStatus.Ready // 実行前に変更
565
- }
566
- })
567
- .exec();
568
- });
582
+ : undefined,
583
+ ...(Array.isArray(params.name.$in)) ? { name: { $in: params.name.$in } } : undefined
584
+ }, {
585
+ $set: {
586
+ status: factory.taskStatus.Ready // 実行前に変更
587
+ }
588
+ })
589
+ .exec();
569
590
  }
570
591
  /**
571
592
  * 実行中止済タスクを強制的にリトライ
572
593
  * 中止済タスクでなければ何もしない
573
594
  */
574
- retryForciblyIfAborted(params) {
575
- return __awaiter(this, void 0, void 0, function* () {
576
- return this.taskModel.updateOne({
577
- _id: { $eq: params.id },
578
- status: { $eq: factory.taskStatus.Aborted }
579
- }, {
580
- $set: {
581
- status: factory.taskStatus.Ready
582
- },
583
- $inc: {
584
- remainingNumberOfTries: params.remainingNumberOfTries
585
- }
586
- })
587
- .exec();
588
- });
595
+ async retryForciblyIfAborted(params) {
596
+ return this.taskModel.updateOne({
597
+ _id: { $eq: params.id },
598
+ status: { $eq: factory.taskStatus.Aborted }
599
+ }, {
600
+ $set: {
601
+ status: factory.taskStatus.Ready
602
+ },
603
+ $inc: {
604
+ remainingNumberOfTries: params.remainingNumberOfTries
605
+ }
606
+ })
607
+ .exec();
589
608
  }
590
609
  // public async abortOne(params: {
591
610
  // intervalInMinutes: number;
@@ -623,278 +642,276 @@ class TaskRepo {
623
642
  // }
624
643
  // return doc;
625
644
  // }
626
- abortMany(params) {
627
- return __awaiter(this, void 0, void 0, function* () {
628
- const lastTriedAtShoudBeLessThan = moment()
629
- .add(-params.intervalInMinutes, 'minutes')
630
- .toDate();
631
- return this.taskModel.updateMany(Object.assign({ status: { $eq: factory.taskStatus.Running }, lastTriedAt: {
632
- $type: 'date',
633
- $lt: lastTriedAtShoudBeLessThan
634
- }, remainingNumberOfTries: { $eq: 0 } }, (Array.isArray(params.name.$in)) ? { name: { $in: params.name.$in } } : undefined), {
635
- $set: {
636
- status: factory.taskStatus.Aborted,
637
- dateAborted: new Date()
638
- }
639
- })
640
- .exec();
641
- });
645
+ async abortMany(params) {
646
+ const lastTriedAtShoudBeLessThan = (0, moment_1.default)()
647
+ .add(-params.intervalInMinutes, 'minutes')
648
+ .toDate();
649
+ return this.taskModel.updateMany({
650
+ status: { $eq: factory.taskStatus.Running },
651
+ lastTriedAt: {
652
+ $type: 'date',
653
+ $lt: lastTriedAtShoudBeLessThan
654
+ },
655
+ remainingNumberOfTries: { $eq: 0 },
656
+ ...(Array.isArray(params.name.$in)) ? { name: { $in: params.name.$in } } : undefined
657
+ }, {
658
+ $set: {
659
+ status: factory.taskStatus.Aborted,
660
+ dateAborted: new Date()
661
+ }
662
+ })
663
+ .exec();
642
664
  }
643
665
  /**
644
666
  * タスクIDから実行結果とステータスを保管する
645
667
  * Abortedの場合、dateAbortedもセットする
646
668
  */
647
- setExecutionResultAndStatus(params, update,
669
+ async setExecutionResultAndStatus(params, update,
648
670
  // support customr function(2025-05-25~)
649
671
  next) {
650
- return __awaiter(this, void 0, void 0, function* () {
651
- const { id, remainingNumberOfTries, name } = params;
652
- const { status, executionResult } = update;
653
- yield this.taskModel.updateOne({ _id: { $eq: id } }, {
654
- $set: Object.assign({ status }, (status === factory.taskStatus.Aborted) ? { dateAborted: executionResult.endDate } : undefined // 2025-08-04~
655
- ),
656
- $push: { executionResults: executionResult }
657
- })
658
- .exec();
659
- // emit event(2025-05-26~)
660
- if (typeof next === 'function') {
661
- const changedTask = { id, name, status, remainingNumberOfTries, executionResult };
662
- task_1.taskEventEmitter.emitTaskStatusChanged(changedTask, next);
663
- }
664
- });
672
+ const { id, remainingNumberOfTries, name } = params;
673
+ const { status, executionResult } = update;
674
+ await this.taskModel.updateOne({ _id: { $eq: id } }, {
675
+ $set: {
676
+ status,
677
+ ...(status === factory.taskStatus.Aborted) ? { dateAborted: executionResult.endDate } : undefined // 2025-08-04~
678
+ },
679
+ $push: { executionResults: executionResult }
680
+ })
681
+ .exec();
682
+ // emit event(2025-05-26~)
683
+ if (typeof next === 'function') {
684
+ const changedTask = { id, name, status, remainingNumberOfTries, executionResult };
685
+ task_1.taskEventEmitter.emitTaskStatusChanged(changedTask, next);
686
+ }
665
687
  }
666
- count(params) {
667
- return __awaiter(this, void 0, void 0, function* () {
668
- const { limit } = params;
669
- const conditions = TaskRepo.CREATE_MONGO_CONDITIONS(params);
670
- const query = this.taskModel.countDocuments((conditions.length > 0) ? { $and: conditions } : {});
671
- if (typeof limit === 'number' && limit >= 0) {
672
- query.limit(limit);
673
- }
674
- const count = yield query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
675
- .exec();
676
- return { count };
677
- });
688
+ async count(params) {
689
+ const { limit } = params;
690
+ const conditions = TaskRepo.CREATE_MONGO_CONDITIONS(params);
691
+ const query = this.taskModel.countDocuments((conditions.length > 0) ? { $and: conditions } : {});
692
+ if (typeof limit === 'number' && limit >= 0) {
693
+ query.limit(limit);
694
+ }
695
+ const count = await query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
696
+ .exec();
697
+ return { count };
678
698
  }
679
699
  /**
680
700
  * 検索する
681
701
  */
682
- projectFields(params,
702
+ async projectFields(params,
683
703
  // projection?: IProjection
684
704
  inclusion) {
685
- return __awaiter(this, void 0, void 0, function* () {
686
- var _a;
687
- const conditions = TaskRepo.CREATE_MONGO_CONDITIONS(params);
688
- // const positiveProjectionExists: boolean = (projection !== undefined && projection !== null)
689
- // ? Object.values(projection)
690
- // .some((value) => value !== 0)
691
- // : false;
692
- let positiveProjectionFields = AVAILABLE_PROJECT_FIELDS;
693
- if (Array.isArray(inclusion) && inclusion.length > 0) {
694
- positiveProjectionFields = inclusion.filter((key) => AVAILABLE_PROJECT_FIELDS.includes(key));
695
- }
696
- else {
697
- // no op
698
- }
699
- const projection = Object.assign({ _id: 0, id: { $toString: '$_id' } }, Object.fromEntries(positiveProjectionFields.map((key) => ([key, 1]))));
700
- const query = this.taskModel.find((conditions.length > 0) ? { $and: conditions } : {}, projection);
701
- if (typeof params.limit === 'number' && params.limit > 0) {
702
- const page = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
703
- query.limit(params.limit)
704
- .skip(params.limit * (page - 1));
705
- }
706
- if (((_a = params.sort) === null || _a === void 0 ? void 0 : _a.runsAt) !== undefined) {
707
- query.sort({ runsAt: params.sort.runsAt });
708
- }
709
- return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
710
- .lean() // lean(2024-09-26~)
711
- .exec();
712
- });
705
+ const conditions = TaskRepo.CREATE_MONGO_CONDITIONS(params);
706
+ // const positiveProjectionExists: boolean = (projection !== undefined && projection !== null)
707
+ // ? Object.values(projection)
708
+ // .some((value) => value !== 0)
709
+ // : false;
710
+ let positiveProjectionFields = AVAILABLE_PROJECT_FIELDS;
711
+ if (Array.isArray(inclusion) && inclusion.length > 0) {
712
+ positiveProjectionFields = inclusion.filter((key) => AVAILABLE_PROJECT_FIELDS.includes(key));
713
+ }
714
+ else {
715
+ // no op
716
+ }
717
+ const projection = {
718
+ _id: 0,
719
+ id: { $toString: '$_id' },
720
+ ...Object.fromEntries(positiveProjectionFields.map((key) => ([key, 1])))
721
+ };
722
+ const query = this.taskModel.find((conditions.length > 0) ? { $and: conditions } : {}, projection);
723
+ if (typeof params.limit === 'number' && params.limit > 0) {
724
+ const page = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
725
+ query.limit(params.limit)
726
+ .skip(params.limit * (page - 1));
727
+ }
728
+ if (params.sort?.runsAt !== undefined) {
729
+ query.sort({ runsAt: params.sort.runsAt });
730
+ }
731
+ return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
732
+ .lean() // lean(2024-09-26~)
733
+ .exec();
713
734
  }
714
- deleteByProject(params) {
715
- return __awaiter(this, void 0, void 0, function* () {
716
- yield this.taskModel.deleteMany({
717
- 'project.id': { $eq: params.project.id }
718
- })
719
- .exec();
720
- });
735
+ async deleteByProject(params) {
736
+ await this.taskModel.deleteMany({
737
+ 'project.id': { $eq: params.project.id }
738
+ })
739
+ .exec();
721
740
  }
722
- deleteByName(params) {
723
- return __awaiter(this, void 0, void 0, function* () {
724
- var _a, _b;
725
- return this.taskModel.deleteMany(Object.assign(Object.assign({ name: { $eq: params.name } }, (typeof ((_a = params.status) === null || _a === void 0 ? void 0 : _a.$eq) === 'string') ? { status: { $eq: params.status.$eq } } : undefined), (((_b = params.runsAt) === null || _b === void 0 ? void 0 : _b.$gte) instanceof Date)
741
+ async deleteByName(params) {
742
+ return this.taskModel.deleteMany({
743
+ name: { $eq: params.name },
744
+ ...(typeof params.status?.$eq === 'string') ? { status: { $eq: params.status.$eq } } : undefined,
745
+ ...(params.runsAt?.$gte instanceof Date)
726
746
  ? {
727
747
  runsAt: { $gte: params.runsAt.$gte, $lte: params.runsAt.$lte }
728
748
  }
729
- : undefined))
730
- .exec();
731
- });
749
+ : undefined
750
+ })
751
+ .exec();
732
752
  }
733
753
  /**
734
754
  * 不要なタスクを削除する
735
755
  */
736
- deleteRunsAtPassedCertainPeriod(params) {
737
- return __awaiter(this, void 0, void 0, function* () {
738
- return this.taskModel.deleteMany({
739
- runsAt: { $lt: params.runsAt.$lt },
740
- status: {
741
- $in: [
742
- factory.taskStatus.Aborted,
743
- factory.taskStatus.Executed,
744
- factory.taskStatus.Expired
745
- ]
746
- }
747
- })
748
- .exec();
749
- });
756
+ async deleteRunsAtPassedCertainPeriod(params) {
757
+ return this.taskModel.deleteMany({
758
+ runsAt: { $lt: params.runsAt.$lt },
759
+ status: {
760
+ $in: [
761
+ factory.taskStatus.Aborted,
762
+ factory.taskStatus.Executed,
763
+ factory.taskStatus.Expired
764
+ ]
765
+ }
766
+ })
767
+ .exec();
750
768
  }
751
- countDelayedTasks(params) {
752
- return __awaiter(this, void 0, void 0, function* () {
753
- const { limit } = params;
754
- const runsAtLt = moment()
755
- .add(-params.delayInSeconds, 'seconds')
756
- .toDate();
757
- const query = this.taskModel.countDocuments(Object.assign({ status: { $eq: factory.taskStatus.Ready }, runsAt: { $lt: runsAtLt } }, (Array.isArray(params.name.$nin)) ? { name: { $nin: params.name.$nin } } : undefined));
758
- if (typeof limit === 'number' && limit >= 0) {
759
- query.limit(limit);
760
- }
761
- const count = yield query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
762
- .exec();
763
- return { count };
769
+ async countDelayedTasks(params) {
770
+ const { limit } = params;
771
+ const runsAtLt = (0, moment_1.default)()
772
+ .add(-params.delayInSeconds, 'seconds')
773
+ .toDate();
774
+ const query = this.taskModel.countDocuments({
775
+ status: { $eq: factory.taskStatus.Ready },
776
+ runsAt: { $lt: runsAtLt },
777
+ ...(Array.isArray(params.name.$nin)) ? { name: { $nin: params.name.$nin } } : undefined
764
778
  });
779
+ if (typeof limit === 'number' && limit >= 0) {
780
+ query.limit(limit);
781
+ }
782
+ const count = await query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
783
+ .exec();
784
+ return { count };
765
785
  }
766
786
  getCursor(conditions, projection) {
767
787
  return this.taskModel.find(conditions, projection)
768
788
  .sort({ runsAt: factory.sortType.Ascending })
769
789
  .cursor();
770
790
  }
771
- unsetUnnecessaryFields(params) {
772
- return __awaiter(this, void 0, void 0, function* () {
773
- return this.taskModel.updateMany(params.filter, { $unset: params.$unset }, { timestamps: false })
774
- .exec();
775
- });
791
+ async unsetUnnecessaryFields(params) {
792
+ return this.taskModel.updateMany(params.filter, { $unset: params.$unset }, { timestamps: false })
793
+ .exec();
776
794
  }
777
- aggregateTask(params) {
778
- return __awaiter(this, void 0, void 0, function* () {
779
- const statuses = yield Promise.all([
780
- factory.taskStatus.Executed,
781
- factory.taskStatus.Aborted
782
- ].map((taskStatus) => __awaiter(this, void 0, void 0, function* () {
783
- var _a, _b;
784
- const matchConditions = Object.assign({ runsAt: {
785
- $gte: params.runsFrom,
786
- $lte: params.runsThrough
787
- }, status: { $eq: taskStatus } }, (typeof ((_b = (_a = params.project) === null || _a === void 0 ? void 0 : _a.id) === null || _b === void 0 ? void 0 : _b.$ne) === 'string')
795
+ async aggregateTask(params) {
796
+ const statuses = await Promise.all([
797
+ factory.taskStatus.Executed,
798
+ factory.taskStatus.Aborted
799
+ ].map(async (taskStatus) => {
800
+ const matchConditions = {
801
+ runsAt: {
802
+ $gte: params.runsFrom,
803
+ $lte: params.runsThrough
804
+ },
805
+ status: { $eq: taskStatus },
806
+ ...(typeof params.project?.id?.$ne === 'string')
788
807
  ? { 'project.id': { $ne: params.project.id.$ne } }
789
- : undefined);
790
- return this.agggregateByStatus({ matchConditions, status: taskStatus });
791
- })));
792
- return { statuses };
793
- });
808
+ : undefined
809
+ };
810
+ return this.agggregateByStatus({ matchConditions, status: taskStatus });
811
+ }));
812
+ return { statuses };
794
813
  }
795
- // tslint:disable-next-line:max-func-body-length
796
- agggregateByStatus(params) {
797
- return __awaiter(this, void 0, void 0, function* () {
798
- const matchConditions = params.matchConditions;
799
- const taskStatus = params.status;
800
- const aggregate1 = this.taskModel.aggregate([
801
- {
802
- $match: matchConditions
803
- },
804
- {
805
- $project: {
806
- latency: { $subtract: ['$lastTriedAt', '$runsAt'] },
807
- status: '$status',
808
- runsAt: '$runsAt',
809
- lastTriedAt: '$lastTriedAt'
810
- }
811
- },
812
- {
813
- $group: {
814
- _id: '$status',
815
- taskCount: { $sum: 1 },
816
- maxLatency: { $max: '$latency' },
817
- minLatency: { $min: '$latency' },
818
- avgLatency: { $avg: '$latency' }
819
- }
820
- },
821
- {
822
- $project: {
823
- _id: 0,
824
- taskCount: '$taskCount',
825
- avgLatency: '$avgLatency',
826
- maxLatency: '$maxLatency',
827
- minLatency: '$minLatency'
828
- }
814
+ async agggregateByStatus(params) {
815
+ const matchConditions = params.matchConditions;
816
+ const taskStatus = params.status;
817
+ const aggregate1 = this.taskModel.aggregate([
818
+ {
819
+ $match: matchConditions
820
+ },
821
+ {
822
+ $project: {
823
+ latency: { $subtract: ['$lastTriedAt', '$runsAt'] },
824
+ status: '$status',
825
+ runsAt: '$runsAt',
826
+ lastTriedAt: '$lastTriedAt'
829
827
  }
830
- ]);
831
- // const explainResult = await aggregate1.explain();
832
- // console.dir(explainResult, { depth: null });
833
- // return;
834
- const aggregations = yield aggregate1.exec();
835
- // tslint:disable-next-line:no-magic-numbers
836
- const percents = [50, 95, 99];
837
- if (aggregations.length === 0) {
838
- return {
839
- status: taskStatus,
840
- aggregation: {
841
- taskCount: 0,
842
- avgLatency: 0,
843
- maxLatency: 0,
844
- minLatency: 0,
845
- percentilesLatency: percents.map((percent) => {
846
- return {
847
- name: String(percent),
848
- value: 0
849
- };
850
- })
851
- }
852
- };
853
- }
854
- const ranks4percentile = percents.map((percentile) => {
855
- return {
856
- percentile,
857
- // tslint:disable-next-line:no-magic-numbers
858
- rank: Math.floor(aggregations[0].taskCount * percentile / 100)
859
- };
860
- });
861
- const aggregate2 = this.taskModel.aggregate([
862
- {
863
- $match: matchConditions
864
- },
865
- {
866
- $project: {
867
- latency: { $subtract: ['$lastTriedAt', '$runsAt'] },
868
- status: '$status',
869
- runsAt: '$runsAt',
870
- lastTriedAt: '$lastTriedAt'
871
- }
872
- },
873
- { $sort: { latency: 1 } },
874
- {
875
- $group: {
876
- _id: '$status',
877
- latencies: { $push: '$latency' }
878
- }
879
- },
880
- {
881
- $project: {
882
- _id: 0,
883
- percentilesLatency: ranks4percentile.map((rank) => {
884
- return {
885
- name: String(rank.percentile),
886
- value: { $arrayElemAt: ['$latencies', rank.rank] }
887
- };
888
- })
889
- }
828
+ },
829
+ {
830
+ $group: {
831
+ _id: '$status',
832
+ taskCount: { $sum: 1 },
833
+ maxLatency: { $max: '$latency' },
834
+ minLatency: { $min: '$latency' },
835
+ avgLatency: { $avg: '$latency' }
836
+ }
837
+ },
838
+ {
839
+ $project: {
840
+ _id: 0,
841
+ taskCount: '$taskCount',
842
+ avgLatency: '$avgLatency',
843
+ maxLatency: '$maxLatency',
844
+ minLatency: '$minLatency'
890
845
  }
891
- ]);
892
- const aggregations2 = yield aggregate2.exec();
846
+ }
847
+ ]);
848
+ // const explainResult = await aggregate1.explain();
849
+ // console.dir(explainResult, { depth: null });
850
+ // return;
851
+ const aggregations = await aggregate1.exec();
852
+ const percents = [50, 95, 99];
853
+ if (aggregations.length === 0) {
893
854
  return {
894
855
  status: taskStatus,
895
- aggregation: Object.assign(Object.assign({}, aggregations[0]), aggregations2[0])
856
+ aggregation: {
857
+ taskCount: 0,
858
+ avgLatency: 0,
859
+ maxLatency: 0,
860
+ minLatency: 0,
861
+ percentilesLatency: percents.map((percent) => {
862
+ return {
863
+ name: String(percent),
864
+ value: 0
865
+ };
866
+ })
867
+ }
868
+ };
869
+ }
870
+ const ranks4percentile = percents.map((percentile) => {
871
+ return {
872
+ percentile,
873
+ rank: Math.floor(aggregations[0].taskCount * percentile / 100)
896
874
  };
897
875
  });
876
+ const aggregate2 = this.taskModel.aggregate([
877
+ {
878
+ $match: matchConditions
879
+ },
880
+ {
881
+ $project: {
882
+ latency: { $subtract: ['$lastTriedAt', '$runsAt'] },
883
+ status: '$status',
884
+ runsAt: '$runsAt',
885
+ lastTriedAt: '$lastTriedAt'
886
+ }
887
+ },
888
+ { $sort: { latency: 1 } },
889
+ {
890
+ $group: {
891
+ _id: '$status',
892
+ latencies: { $push: '$latency' }
893
+ }
894
+ },
895
+ {
896
+ $project: {
897
+ _id: 0,
898
+ percentilesLatency: ranks4percentile.map((rank) => {
899
+ return {
900
+ name: String(rank.percentile),
901
+ value: { $arrayElemAt: ['$latencies', rank.rank] }
902
+ };
903
+ })
904
+ }
905
+ }
906
+ ]);
907
+ const aggregations2 = await aggregate2.exec();
908
+ return {
909
+ status: taskStatus,
910
+ aggregation: {
911
+ ...aggregations[0],
912
+ ...aggregations2[0]
913
+ }
914
+ };
898
915
  }
899
916
  }
900
917
  exports.TaskRepo = TaskRepo;