@chevre/domain 21.2.0-alpha.10 → 21.2.0-alpha.101

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 (257) hide show
  1. package/example/src/chevre/aggregation/aggregateSystem.ts +58 -31
  2. package/example/src/chevre/createManyEventsIfNotExist.ts +4 -1
  3. package/example/src/chevre/deleteTasksByName.ts +10 -2
  4. package/example/src/chevre/importEventsFromCOA.ts +3 -4
  5. package/example/src/chevre/migrateOrderAdditionalProperties.ts +85 -0
  6. package/example/src/chevre/processPay.ts +5 -1
  7. package/example/src/chevre/processReserve.ts +4 -1
  8. package/example/src/chevre/saveTasks.ts +13 -10
  9. package/example/src/chevre/searchAbortedTasks.ts +36 -0
  10. package/example/src/chevre/searchActions.ts +33 -0
  11. package/example/src/chevre/searchReservationNumbersByOrderNumbers.ts +37 -1
  12. package/example/src/chevre/searchSendEmailActions.ts +44 -0
  13. package/example/src/chevre/task/executeTasks.ts +26 -0
  14. package/example/src/chevre/transaction/findCreditCard.ts +1 -1
  15. package/example/src/chevre/transaction/orderMembershipService.ts +1 -1
  16. package/example/src/chevre/transaction/processReturnOrder.ts +40 -0
  17. package/example/src/chevre/transaction/startExportTasks.ts +20 -0
  18. package/example/src/chevre/updateTransaction.ts +1 -1
  19. package/example/src/playOnMoment.ts +24 -0
  20. package/lib/chevre/credentials.d.ts +1 -0
  21. package/lib/chevre/credentials.js +2 -1
  22. package/lib/chevre/eventEmitter/assetTransaction.d.ts +21 -0
  23. package/lib/chevre/eventEmitter/assetTransaction.js +25 -0
  24. package/lib/chevre/eventEmitter/task.d.ts +18 -0
  25. package/lib/chevre/eventEmitter/task.js +25 -0
  26. package/lib/chevre/eventEmitter/transaction.d.ts +21 -0
  27. package/lib/chevre/eventEmitter/transaction.js +25 -0
  28. package/lib/chevre/eventEmitter.d.ts +4 -0
  29. package/lib/chevre/eventEmitter.js +9 -0
  30. package/lib/chevre/index.d.ts +3 -2
  31. package/lib/chevre/index.js +5 -3
  32. package/lib/chevre/repo/account.js +3 -2
  33. package/lib/chevre/repo/accountTransaction.d.ts +3 -11
  34. package/lib/chevre/repo/accountTransaction.js +3 -55
  35. package/lib/chevre/repo/action.d.ts +29 -1
  36. package/lib/chevre/repo/action.js +100 -56
  37. package/lib/chevre/repo/additionalProperty.js +2 -1
  38. package/lib/chevre/repo/assetTransaction.d.ts +25 -9
  39. package/lib/chevre/repo/assetTransaction.js +259 -87
  40. package/lib/chevre/repo/categoryCode.js +3 -2
  41. package/lib/chevre/repo/code.js +3 -2
  42. package/lib/chevre/repo/comment.d.ts +4 -1
  43. package/lib/chevre/repo/comment.js +22 -6
  44. package/lib/chevre/repo/confirmationNumber.d.ts +0 -1
  45. package/lib/chevre/repo/confirmationNumber.js +3 -15
  46. package/lib/chevre/repo/creativeWork.d.ts +1 -3
  47. package/lib/chevre/repo/creativeWork.js +3 -2
  48. package/lib/chevre/repo/customer.js +2 -1
  49. package/lib/chevre/repo/emailMessage.d.ts +1 -27
  50. package/lib/chevre/repo/emailMessage.js +2 -1
  51. package/lib/chevre/repo/event.d.ts +5 -1
  52. package/lib/chevre/repo/event.js +4 -3
  53. package/lib/chevre/repo/member.js +4 -3
  54. package/lib/chevre/repo/merchantReturnPolicy.d.ts +1 -3
  55. package/lib/chevre/repo/merchantReturnPolicy.js +2 -1
  56. package/lib/chevre/repo/mongoose/schemas/account.d.ts +4 -2
  57. package/lib/chevre/repo/mongoose/schemas/accountTitle.d.ts +29 -3
  58. package/lib/chevre/repo/mongoose/schemas/accountTransaction.d.ts +31 -3
  59. package/lib/chevre/repo/mongoose/schemas/accountTransaction.js +1 -1
  60. package/lib/chevre/repo/mongoose/schemas/accountingReport.d.ts +13 -3
  61. package/lib/chevre/repo/mongoose/schemas/action.d.ts +43 -3
  62. package/lib/chevre/repo/mongoose/schemas/action.js +19 -1
  63. package/lib/chevre/repo/mongoose/schemas/additionalProperty.d.ts +17 -3
  64. package/lib/chevre/repo/mongoose/schemas/aggregation.d.ts +4 -2
  65. package/lib/chevre/repo/mongoose/schemas/assetTransaction.d.ts +44 -3
  66. package/lib/chevre/repo/mongoose/schemas/assetTransaction.js +32 -19
  67. package/lib/chevre/repo/mongoose/schemas/authorization.d.ts +19 -3
  68. package/lib/chevre/repo/mongoose/schemas/authorization.js +1 -1
  69. package/lib/chevre/repo/mongoose/schemas/categoryCode.d.ts +25 -3
  70. package/lib/chevre/repo/mongoose/schemas/comments.d.ts +27 -3
  71. package/lib/chevre/repo/mongoose/schemas/comments.js +1 -1
  72. package/lib/chevre/repo/mongoose/schemas/creativeWork.d.ts +43 -3
  73. package/lib/chevre/repo/mongoose/schemas/customer.d.ts +25 -3
  74. package/lib/chevre/repo/mongoose/schemas/emailMessages.d.ts +21 -3
  75. package/lib/chevre/repo/mongoose/schemas/event.d.ts +71 -3
  76. package/lib/chevre/repo/mongoose/schemas/member.d.ts +13 -3
  77. package/lib/chevre/repo/mongoose/schemas/merchantReturnPolicy.d.ts +21 -3
  78. package/lib/chevre/repo/mongoose/schemas/offer.d.ts +65 -3
  79. package/lib/chevre/repo/mongoose/schemas/offerCatalog.d.ts +27 -3
  80. package/lib/chevre/repo/mongoose/schemas/offerItemCondition.d.ts +74 -0
  81. package/lib/chevre/repo/mongoose/schemas/offerItemCondition.js +45 -0
  82. package/lib/chevre/repo/mongoose/schemas/order.d.ts +51 -3
  83. package/lib/chevre/repo/mongoose/schemas/order.js +1 -1
  84. package/lib/chevre/repo/mongoose/schemas/ownershipInfo.d.ts +25 -3
  85. package/lib/chevre/repo/mongoose/schemas/ownershipInfo.js +1 -1
  86. package/lib/chevre/repo/mongoose/schemas/place.d.ts +49 -3
  87. package/lib/chevre/repo/mongoose/schemas/priceSpecification.d.ts +29 -3
  88. package/lib/chevre/repo/mongoose/schemas/product.d.ts +31 -3
  89. package/lib/chevre/repo/mongoose/schemas/project.d.ts +23 -3
  90. package/lib/chevre/repo/mongoose/schemas/reservation.d.ts +63 -5
  91. package/lib/chevre/repo/mongoose/schemas/reservation.js +1 -1
  92. package/lib/chevre/repo/mongoose/schemas/role.d.ts +11 -3
  93. package/lib/chevre/repo/mongoose/schemas/seller.d.ts +31 -3
  94. package/lib/chevre/repo/mongoose/schemas/seller.js +6 -0
  95. package/lib/chevre/repo/mongoose/schemas/serviceOutput.d.ts +11 -3
  96. package/lib/chevre/repo/mongoose/schemas/serviceOutput.js +1 -1
  97. package/lib/chevre/repo/mongoose/schemas/task.d.ts +30 -3
  98. package/lib/chevre/repo/mongoose/schemas/task.js +2 -1
  99. package/lib/chevre/repo/mongoose/schemas/telemetry.d.ts +21 -3
  100. package/lib/chevre/repo/mongoose/schemas/transaction.d.ts +40 -3
  101. package/lib/chevre/repo/mongoose/schemas/transaction.js +2 -1
  102. package/lib/chevre/repo/mongoose/schemas/trip.d.ts +11 -3
  103. package/lib/chevre/repo/offer.js +3 -2
  104. package/lib/chevre/repo/offerCatalog.js +0 -27
  105. package/lib/chevre/repo/offerItemCondition.d.ts +22 -0
  106. package/lib/chevre/repo/offerItemCondition.js +121 -0
  107. package/lib/chevre/repo/order.d.ts +55 -3
  108. package/lib/chevre/repo/order.js +62 -10
  109. package/lib/chevre/repo/ownershipInfo.js +2 -7
  110. package/lib/chevre/repo/place.js +3 -2
  111. package/lib/chevre/repo/priceSpecification.js +3 -2
  112. package/lib/chevre/repo/product.js +2 -1
  113. package/lib/chevre/repo/project.js +2 -1
  114. package/lib/chevre/repo/reservation.d.ts +12 -4
  115. package/lib/chevre/repo/reservation.js +20 -59
  116. package/lib/chevre/repo/role.js +3 -2
  117. package/lib/chevre/repo/seller.js +22 -21
  118. package/lib/chevre/repo/serviceOutput.js +2 -1
  119. package/lib/chevre/repo/task.d.ts +42 -2
  120. package/lib/chevre/repo/task.js +93 -11
  121. package/lib/chevre/repo/transaction.d.ts +23 -3
  122. package/lib/chevre/repo/transaction.js +177 -56
  123. package/lib/chevre/repo/trip.js +2 -1
  124. package/lib/chevre/repository.d.ts +5 -2
  125. package/lib/chevre/repository.js +8 -4
  126. package/lib/chevre/service/aggregation/system.d.ts +67 -22
  127. package/lib/chevre/service/aggregation/system.js +101 -89
  128. package/lib/chevre/service/assetTransaction/cancelReservation.js +1 -28
  129. package/lib/chevre/service/assetTransaction/moneyTransfer.js +1 -23
  130. package/lib/chevre/service/assetTransaction/pay/potentialActions.js +17 -1
  131. package/lib/chevre/service/assetTransaction/pay.d.ts +5 -1
  132. package/lib/chevre/service/assetTransaction/pay.js +18 -32
  133. package/lib/chevre/service/assetTransaction/refund.js +1 -23
  134. package/lib/chevre/service/assetTransaction/registerService.js +1 -25
  135. package/lib/chevre/service/assetTransaction/reserve/factory.d.ts +15 -5
  136. package/lib/chevre/service/assetTransaction/reserve/factory.js +122 -58
  137. package/lib/chevre/service/assetTransaction/reserve.d.ts +10 -1
  138. package/lib/chevre/service/assetTransaction/reserve.js +85 -69
  139. package/lib/chevre/service/assetTransaction.d.ts +6 -2
  140. package/lib/chevre/service/assetTransaction.js +9 -5
  141. package/lib/chevre/service/event.js +3 -1
  142. package/lib/chevre/service/notification/factory.js +2 -2
  143. package/lib/chevre/service/notification.d.ts +3 -1
  144. package/lib/chevre/service/notification.js +41 -7
  145. package/lib/chevre/service/offer/event/authorize.d.ts +3 -0
  146. package/lib/chevre/service/offer/event/authorize.js +8 -2
  147. package/lib/chevre/service/offer/event/factory.d.ts +3 -0
  148. package/lib/chevre/service/offer/event/factory.js +16 -5
  149. package/lib/chevre/service/offer/event/voidTransaction.d.ts +2 -0
  150. package/lib/chevre/service/offer/event/voidTransaction.js +17 -1
  151. package/lib/chevre/service/offer.d.ts +12 -7
  152. package/lib/chevre/service/offer.js +57 -2
  153. package/lib/chevre/service/order/deleteOrder.d.ts +3 -1
  154. package/lib/chevre/service/order/deleteOrder.js +8 -8
  155. package/lib/chevre/service/order/onOrderStatusChanged/factory.d.ts +5 -2
  156. package/lib/chevre/service/order/onOrderStatusChanged/factory.js +41 -81
  157. package/lib/chevre/service/order/onOrderStatusChanged.js +1 -3
  158. package/lib/chevre/service/order/onOrderUpdated.d.ts +16 -0
  159. package/lib/chevre/service/order/onOrderUpdated.js +22 -0
  160. package/lib/chevre/service/order/placeOrder.d.ts +1 -0
  161. package/lib/chevre/service/order/placeOrder.js +41 -24
  162. package/lib/chevre/service/order/returnOrder.d.ts +1 -0
  163. package/lib/chevre/service/order/returnOrder.js +7 -12
  164. package/lib/chevre/service/order/sendOrder.d.ts +1 -0
  165. package/lib/chevre/service/order/sendOrder.js +7 -10
  166. package/lib/chevre/service/order.d.ts +2 -1
  167. package/lib/chevre/service/order.js +3 -1
  168. package/lib/chevre/service/payment/any/onPaid.js +1 -1
  169. package/lib/chevre/service/payment/any/onRefund.js +1 -1
  170. package/lib/chevre/service/payment/any.d.ts +9 -5
  171. package/lib/chevre/service/payment/any.js +80 -18
  172. package/lib/chevre/service/payment/creditCard.d.ts +1 -1
  173. package/lib/chevre/service/payment/creditCard.js +21 -15
  174. package/lib/chevre/service/payment/movieTicket/checkByIdentifier.d.ts +7 -6
  175. package/lib/chevre/service/payment/movieTicket/validation.d.ts +6 -6
  176. package/lib/chevre/service/payment/movieTicket/validation.js +54 -31
  177. package/lib/chevre/service/payment/movieTicket.d.ts +2 -2
  178. package/lib/chevre/service/payment/movieTicket.js +5 -4
  179. package/lib/chevre/service/product.js +1 -5
  180. package/lib/chevre/service/report/telemetry.d.ts +0 -11
  181. package/lib/chevre/service/report/telemetry.js +21 -24
  182. package/lib/chevre/service/reserve/cancelReservation.d.ts +5 -3
  183. package/lib/chevre/service/reserve/cancelReservation.js +147 -139
  184. package/lib/chevre/service/reserve/checkInReservation.d.ts +9 -4
  185. package/lib/chevre/service/reserve/checkInReservation.js +77 -3
  186. package/lib/chevre/service/reserve/confirmReservation.d.ts +7 -4
  187. package/lib/chevre/service/reserve/confirmReservation.js +125 -58
  188. package/lib/chevre/service/reserve/factory.d.ts +1 -1
  189. package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.d.ts +17 -5
  190. package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.js +26 -24
  191. package/lib/chevre/service/reserve/potentialActions/onReservationCheckedIn.js +2 -3
  192. package/lib/chevre/service/reserve/potentialActions/onReservationConfirmed.js +2 -31
  193. package/lib/chevre/service/reserve/potentialActions/onReservationUsed.js +2 -3
  194. package/lib/chevre/service/reserve/useReservation.d.ts +7 -3
  195. package/lib/chevre/service/reserve/useReservation.js +61 -71
  196. package/lib/chevre/service/reserve/verifyToken4reservation.d.ts +15 -0
  197. package/lib/chevre/service/reserve/verifyToken4reservation.js +56 -0
  198. package/lib/chevre/service/reserve.d.ts +3 -2
  199. package/lib/chevre/service/reserve.js +4 -2
  200. package/lib/chevre/service/task/cancelPendingReservation.js +5 -1
  201. package/lib/chevre/service/task/confirmRegisterServiceTransaction.js +1 -1
  202. package/lib/chevre/service/task/deleteTransaction.js +10 -8
  203. package/lib/chevre/service/task/importOffersFromCOA.js +4 -0
  204. package/lib/chevre/service/task/onAuthorizationCreated.d.ts +7 -0
  205. package/lib/chevre/service/task/onAuthorizationCreated.js +108 -0
  206. package/lib/chevre/service/task/onEventChanged.d.ts +7 -0
  207. package/lib/chevre/service/task/{deleteOrder.js → onEventChanged.js} +8 -14
  208. package/lib/chevre/service/task/placeOrder.js +1 -1
  209. package/lib/chevre/service/task/reserve.js +10 -7
  210. package/lib/chevre/service/task/returnOrder.js +1 -1
  211. package/lib/chevre/service/task/returnPayTransaction.js +2 -12
  212. package/lib/chevre/service/task/sendOrder.js +1 -1
  213. package/lib/chevre/service/task/useReservation.d.ts +7 -0
  214. package/lib/chevre/service/task/useReservation.js +36 -0
  215. package/lib/chevre/service/task/voidReserveTransaction.js +3 -1
  216. package/lib/chevre/service/task.d.ts +9 -0
  217. package/lib/chevre/service/task.js +43 -4
  218. package/lib/chevre/service/transaction/deleteTransaction.d.ts +21 -0
  219. package/lib/chevre/service/transaction/deleteTransaction.js +232 -0
  220. package/lib/chevre/service/transaction/moneyTransfer/exportTasks/factory.js +11 -1
  221. package/lib/chevre/service/transaction/moneyTransfer/factory.js +3 -1
  222. package/lib/chevre/service/transaction/moneyTransfer/potentialActions.d.ts +1 -0
  223. package/lib/chevre/service/transaction/moneyTransfer/potentialActions.js +1 -1
  224. package/lib/chevre/service/transaction/moneyTransfer.js +9 -12
  225. package/lib/chevre/service/transaction/orderProgramMembership.js +6 -2
  226. package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.js +42 -30
  227. package/lib/chevre/service/transaction/placeOrder.js +1 -5
  228. package/lib/chevre/service/transaction/placeOrderInProgress/factory.js +1 -1
  229. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/moneyTransfer.d.ts +1 -0
  230. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/moneyTransfer.js +1 -1
  231. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/registerService.d.ts +1 -0
  232. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/registerService.js +1 -1
  233. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions.d.ts +1 -0
  234. package/lib/chevre/service/transaction/placeOrderInProgress/result/acceptedOffers.d.ts +3 -0
  235. package/lib/chevre/service/transaction/placeOrderInProgress/result/acceptedOffers.js +7 -3
  236. package/lib/chevre/service/transaction/placeOrderInProgress/result.d.ts +1 -0
  237. package/lib/chevre/service/transaction/placeOrderInProgress/result.js +2 -2
  238. package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateMovieTicket.d.ts +1 -1
  239. package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateMovieTicket.js +2 -2
  240. package/lib/chevre/service/transaction/placeOrderInProgress/validation.d.ts +2 -1
  241. package/lib/chevre/service/transaction/placeOrderInProgress/validation.js +23 -17
  242. package/lib/chevre/service/transaction/placeOrderInProgress.d.ts +0 -3
  243. package/lib/chevre/service/transaction/placeOrderInProgress.js +22 -11
  244. package/lib/chevre/service/transaction/returnOrder/exportTasks/factory.js +10 -1
  245. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPaymentMethod.js +25 -17
  246. package/lib/chevre/service/transaction/returnOrder.d.ts +4 -0
  247. package/lib/chevre/service/transaction/returnOrder.js +225 -35
  248. package/lib/chevre/service/transaction.d.ts +8 -13
  249. package/lib/chevre/service/transaction.js +12 -145
  250. package/lib/chevre/settings.d.ts +8 -1
  251. package/lib/chevre/settings.js +35 -6
  252. package/package.json +5 -5
  253. package/example/src/chevre/migrateMoneyTransferPendingTransactionIdentifier.ts +0 -96
  254. package/example/src/chevre/migrateMovieAdditionalProperties.ts +0 -98
  255. package/lib/chevre/service/task/deleteAssetTransaction.d.ts +0 -12
  256. package/lib/chevre/service/task/deleteAssetTransaction.js +0 -65
  257. package/lib/chevre/service/task/deleteOrder.d.ts +0 -6
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.MongoRepository = void 0;
13
13
  const serviceOutput_1 = require("./mongoose/schemas/serviceOutput");
14
14
  const factory = require("../factory");
15
+ const settings_1 = require("../settings");
15
16
  /**
16
17
  * サービスアウトプットリポジトリ
17
18
  */
@@ -128,7 +129,7 @@ class MongoRepository {
128
129
  // if (params.sort !== undefined) {
129
130
  // query.sort(params.sort);
130
131
  // }
131
- return query.setOptions({ maxTimeMS: 10000 })
132
+ return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
132
133
  .exec()
133
134
  .then((docs) => docs.map((doc) => doc.toObject()));
134
135
  });
@@ -17,6 +17,9 @@ interface IStatus {
17
17
  export interface IAggregateTask {
18
18
  statuses: IStatus[];
19
19
  }
20
+ interface IOptionOnCreate {
21
+ emitImmediately: boolean;
22
+ }
20
23
  /**
21
24
  * タスクリポジトリ
22
25
  */
@@ -24,13 +27,43 @@ export declare class MongoRepository {
24
27
  readonly taskModel: typeof Model;
25
28
  constructor(connection: Connection);
26
29
  static CREATE_MONGO_CONDITIONS(params: factory.task.ISearchConditions): any[];
27
- saveMany(taskAttributes: factory.task.IAttributes<factory.taskName>[]): Promise<{
30
+ saveMany(taskAttributes: factory.task.IAttributes<factory.taskName>[], options: IOptionOnCreate): Promise<{
28
31
  id: string;
29
32
  }[]>;
30
- createInformTaskIfNotExist(params: factory.task.IAttributes<factory.taskName.TriggerWebhook>): Promise<void>;
33
+ createInformTaskIfNotExist(params: factory.task.IAttributes<factory.taskName.TriggerWebhook>, options: IOptionOnCreate): Promise<void>;
34
+ executeById(params: {
35
+ id: string;
36
+ executor: {
37
+ name: string;
38
+ };
39
+ }): Promise<factory.task.ITask<factory.taskName> | null>;
31
40
  executeOneByName<T extends factory.taskName>(params: {
32
41
  name: T;
42
+ executor: {
43
+ name: string;
44
+ };
33
45
  }): Promise<factory.task.ITask<T> | null>;
46
+ /**
47
+ * 一定期間遅延したタスクを実行する
48
+ */
49
+ executeTasks(params: {
50
+ now: Date;
51
+ /**
52
+ * 指定期間遅延しているタスクを実行する
53
+ */
54
+ delayInSeconds: number;
55
+ limit: number;
56
+ name: {
57
+ /**
58
+ * 指定タスクのみ実行する
59
+ */
60
+ $in?: factory.taskName[];
61
+ /**
62
+ * 指定タスク以外のみ実行する
63
+ */
64
+ $nin?: factory.taskName[];
65
+ };
66
+ }): Promise<Pick<import("@chevre/factory/lib/task").ITask | import("@chevre/factory/lib/task/confirmMoneyTransfer").ITask | import("@chevre/factory/lib/task/confirmRegisterService").ITask | import("@chevre/factory/lib/task/confirmPayTransaction").ITask | import("@chevre/factory/lib/task/confirmRegisterServiceTransaction").ITask | import("@chevre/factory/lib/task/confirmReserveTransaction").ITask | import("@chevre/factory/lib/task/deleteTransaction").ITask | import("@chevre/factory/lib/task/givePointAward").ITask | import("@chevre/factory/lib/task/onAuthorizationCreated").ITask | import("@chevre/factory/lib/task/onEventChanged").ITask | import("@chevre/factory/lib/task/orderProgramMembership").ITask | import("@chevre/factory/lib/task/placeOrder").ITask | import("@chevre/factory/lib/task/returnOrder").ITask | import("@chevre/factory/lib/task/returnMoneyTransfer").ITask | import("@chevre/factory/lib/task/returnPayTransaction").ITask | import("@chevre/factory/lib/task/returnPointAward").ITask | import("@chevre/factory/lib/task/returnReserveTransaction").ITask | import("@chevre/factory/lib/task/sendEmailMessage").ITask | import("@chevre/factory/lib/task/sendOrder").ITask | import("@chevre/factory/lib/task/triggerWebhook").ITask | import("@chevre/factory/lib/task/useReservation").ITask | import("@chevre/factory/lib/task/voidMoneyTransferTransaction").ITask | import("@chevre/factory/lib/task/voidPayTransaction").ITask | import("@chevre/factory/lib/task/voidRegisterServiceTransaction").ITask | import("@chevre/factory/lib/task/voidReserveTransaction").ITask, "id" | "name" | "status">[]>;
34
67
  retry(params: {
35
68
  intervalInMinutes: number;
36
69
  }): Promise<void>;
@@ -60,6 +93,13 @@ export declare class MongoRepository {
60
93
  }): Promise<void>;
61
94
  deleteByName(params: {
62
95
  name: factory.taskName;
96
+ status?: {
97
+ $eq?: factory.taskStatus;
98
+ };
99
+ runsAt?: {
100
+ $gte: Date;
101
+ $lte: Date;
102
+ };
63
103
  }): Promise<import("mongodb").DeleteResult>;
64
104
  countDelayedTasks(params: {
65
105
  delayInSeconds: number;
@@ -13,6 +13,8 @@ exports.MongoRepository = void 0;
13
13
  const moment = require("moment");
14
14
  const factory = require("../factory");
15
15
  const task_1 = require("./mongoose/schemas/task");
16
+ const task_2 = require("../eventEmitter/task");
17
+ const settings_1 = require("../settings");
16
18
  /**
17
19
  * タスク実行時のソート条件
18
20
  */
@@ -149,27 +151,43 @@ class MongoRepository {
149
151
  }
150
152
  return andConditions;
151
153
  }
152
- saveMany(taskAttributes) {
154
+ saveMany(taskAttributes, options) {
153
155
  return __awaiter(this, void 0, void 0, function* () {
156
+ const emitImmediately = (options === null || options === void 0 ? void 0 : options.emitImmediately) === true;
154
157
  if (taskAttributes.length > 0) {
155
158
  const result = yield this.taskModel.insertMany(taskAttributes, { ordered: false, rawResult: true });
156
159
  if (result.insertedCount !== taskAttributes.length) {
157
160
  throw new factory.errors.ServiceUnavailable('all tasks not saved');
158
161
  }
159
- // return result.ops;
160
- return Object.values(result.insertedIds)
162
+ const savedTasks = Object.values(result.insertedIds)
161
163
  .map((objectId) => {
162
164
  return { id: objectId.toHexString() };
163
165
  });
166
+ if (emitImmediately) {
167
+ savedTasks.forEach((savedTask) => {
168
+ task_2.taskEventEmitter.emitTaskStatusChanged({
169
+ id: savedTask.id,
170
+ status: factory.taskStatus.Ready
171
+ });
172
+ });
173
+ // taskAttributes.forEach((savedTask) => {
174
+ // taskEventEmitter.emitTaskStatusChanged({
175
+ // name: savedTask.name,
176
+ // status: factory.taskStatus.Ready
177
+ // });
178
+ // });
179
+ }
180
+ // return result.ops;
181
+ return savedTasks;
164
182
  }
165
183
  else {
166
184
  return [];
167
185
  }
168
186
  });
169
187
  }
170
- createInformTaskIfNotExist(params) {
188
+ createInformTaskIfNotExist(params, options) {
171
189
  return __awaiter(this, void 0, void 0, function* () {
172
- yield this.taskModel.findOneAndUpdate({
190
+ const createdTask = yield this.taskModel.findOneAndUpdate({
173
191
  'project.id': { $eq: params.project.id },
174
192
  name: params.name,
175
193
  'data.object.id': {
@@ -177,7 +195,38 @@ class MongoRepository {
177
195
  $eq: String(params.data.object.id)
178
196
  }
179
197
  }, { $setOnInsert: params }, { new: true, upsert: true })
198
+ .select({ _id: 1 })
199
+ .exec();
200
+ if (options.emitImmediately) {
201
+ task_2.taskEventEmitter.emitTaskStatusChanged({
202
+ id: createdTask.id,
203
+ name: params.name,
204
+ status: factory.taskStatus.Ready
205
+ });
206
+ }
207
+ });
208
+ }
209
+ executeById(params) {
210
+ return __awaiter(this, void 0, void 0, function* () {
211
+ const doc = yield this.taskModel.findOneAndUpdate({
212
+ status: factory.taskStatus.Ready,
213
+ runsAt: { $lt: new Date() },
214
+ _id: { $eq: params.id }
215
+ }, {
216
+ status: factory.taskStatus.Running,
217
+ lastTriedAt: new Date(),
218
+ $inc: {
219
+ remainingNumberOfTries: -1,
220
+ numberOfTried: 1 // トライ回数増やす
221
+ },
222
+ executor: params.executor
223
+ }, { new: true })
180
224
  .exec();
225
+ if (doc === null) {
226
+ // tslint:disable-next-line:no-null-keyword
227
+ return null;
228
+ }
229
+ return doc.toObject();
181
230
  });
182
231
  }
183
232
  executeOneByName(params) {
@@ -192,7 +241,8 @@ class MongoRepository {
192
241
  $inc: {
193
242
  remainingNumberOfTries: -1,
194
243
  numberOfTried: 1 // トライ回数増やす
195
- }
244
+ },
245
+ executor: params.executor
196
246
  }, { new: true })
197
247
  .sort(sortOrder4executionOfTasks)
198
248
  .exec();
@@ -203,6 +253,35 @@ class MongoRepository {
203
253
  return doc.toObject();
204
254
  });
205
255
  }
256
+ /**
257
+ * 一定期間遅延したタスクを実行する
258
+ */
259
+ executeTasks(params) {
260
+ return __awaiter(this, void 0, void 0, function* () {
261
+ const runsAtLt = moment(params.now)
262
+ .add(-params.delayInSeconds, 'seconds')
263
+ .toDate();
264
+ const delayedTasks = yield this.taskModel.find(Object.assign(Object.assign({ status: { $eq: factory.taskStatus.Ready }, runsAt: { $lt: runsAtLt } }, (Array.isArray(params.name.$in)) ? { name: { $in: params.name.$in } } : undefined), (Array.isArray(params.name.$nin)) ? { name: { $nin: params.name.$nin } } : undefined))
265
+ .select({
266
+ _id: 1,
267
+ name: 1,
268
+ status: 1
269
+ })
270
+ .limit(params.limit)
271
+ .setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
272
+ .exec();
273
+ if (delayedTasks.length > 0) {
274
+ delayedTasks.forEach((delayedTask) => {
275
+ task_2.taskEventEmitter.emitTaskStatusChanged({
276
+ id: delayedTask.id,
277
+ name: delayedTask.name,
278
+ status: delayedTask.status
279
+ });
280
+ });
281
+ }
282
+ return delayedTasks;
283
+ });
284
+ }
206
285
  retry(params) {
207
286
  return __awaiter(this, void 0, void 0, function* () {
208
287
  const lastTriedAtShoudBeLessThan = moment()
@@ -297,7 +376,7 @@ class MongoRepository {
297
376
  return __awaiter(this, void 0, void 0, function* () {
298
377
  const conditions = MongoRepository.CREATE_MONGO_CONDITIONS(params);
299
378
  return this.taskModel.countDocuments((conditions.length > 0) ? { $and: conditions } : {})
300
- .setOptions({ maxTimeMS: 10000 })
379
+ .setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
301
380
  .exec();
302
381
  });
303
382
  }
@@ -319,7 +398,7 @@ class MongoRepository {
319
398
  if (((_a = params.sort) === null || _a === void 0 ? void 0 : _a.runsAt) !== undefined) {
320
399
  query.sort({ runsAt: params.sort.runsAt });
321
400
  }
322
- return query.setOptions({ maxTimeMS: 10000 })
401
+ return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
323
402
  .exec()
324
403
  .then((docs) => docs.map((doc) => doc.toObject()));
325
404
  });
@@ -333,10 +412,13 @@ class MongoRepository {
333
412
  });
334
413
  }
335
414
  deleteByName(params) {
415
+ var _a, _b;
336
416
  return __awaiter(this, void 0, void 0, function* () {
337
- return this.taskModel.deleteMany({
338
- name: { $eq: params.name }
339
- })
417
+ 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)
418
+ ? {
419
+ runsAt: { $gte: params.runsAt.$gte, $lte: params.runsAt.$lte }
420
+ }
421
+ : undefined))
340
422
  .exec();
341
423
  });
342
424
  }
@@ -40,6 +40,8 @@ export declare class MongoRepository {
40
40
  findById<T extends factory.transactionType>(params: {
41
41
  typeOf: T;
42
42
  id: string;
43
+ inclusion?: string[];
44
+ exclusion?: string[];
43
45
  }): Promise<factory.transaction.ITransaction<T>>;
44
46
  /**
45
47
  * 進行中の取引を取得する
@@ -111,7 +113,13 @@ export declare class MongoRepository {
111
113
  $in: T[];
112
114
  };
113
115
  status: factory.transactionStatusType;
114
- }): Promise<factory.transaction.ITransaction<T> | null>;
116
+ id?: string;
117
+ tasksExportAction: {
118
+ agent: {
119
+ name: string;
120
+ };
121
+ };
122
+ }): Promise<Pick<factory.transaction.ITransaction<T>, 'id' | 'typeOf'> | null>;
115
123
  /**
116
124
  * タスクエクスポートリトライ
117
125
  * TODO updatedAtを基準にしているが、タスクエクスポートトライ日時を持たせた方が安全か?
@@ -119,6 +127,16 @@ export declare class MongoRepository {
119
127
  reexportTasks(params: {
120
128
  intervalInMinutes: number;
121
129
  }): Promise<void>;
130
+ /**
131
+ * タスクエクスポートの遅延している取引について明示的にemitTransactionStatusChangedを実行する
132
+ */
133
+ exportTasks(params: {
134
+ now: Date;
135
+ delayInSeconds: number;
136
+ status: {
137
+ $in: factory.transactionStatusType[];
138
+ };
139
+ }): Promise<Pick<import("@chevre/factory/lib/transaction/moneyTransfer").ITransaction | import("@chevre/factory/lib/transaction/placeOrder").ITransaction | import("@chevre/factory/lib/transaction/returnOrder").ITransaction, "id" | "typeOf" | "status">[]>;
122
140
  /**
123
141
  * set task status exported by transaction id
124
142
  * IDでタスクをエクスポート済に変更する
@@ -130,7 +148,9 @@ export declare class MongoRepository {
130
148
  * 取引を期限切れにする
131
149
  */
132
150
  makeExpired(params: {
133
- expires: Date;
151
+ expires: {
152
+ $lt: Date;
153
+ };
134
154
  }): Promise<void>;
135
155
  /**
136
156
  * 取引を中止する
@@ -150,7 +170,7 @@ export declare class MongoRepository {
150
170
  /**
151
171
  * 特定の取引を更新する(汎用)
152
172
  */
153
- findByIdAndUpdate(params: {
173
+ findByIdAndUpdateInProgress(params: {
154
174
  id: string;
155
175
  update: {
156
176
  $set?: any;