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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/example/src/chevre/aggregation/aggregateOrderOfCustomer.ts +21 -10
  2. package/example/src/chevre/aggregation/aggregateTasks.ts +41 -0
  3. package/example/src/chevre/assetTransaction/processReserve.ts +0 -1
  4. package/example/src/chevre/checkCustomerAttributesLength.ts +109 -0
  5. package/example/src/chevre/notifyAbortedTasksByEmail.ts +1 -1
  6. package/example/src/chevre/reIndex.ts +1 -1
  7. package/example/src/chevre/roles/addAdminPermissionIfNotExists.ts +132 -0
  8. package/example/src/chevre/roles/addDefaultPermissionIfNotExists.ts +37 -0
  9. package/example/src/chevre/roles/addEventOfferPermissionIfNotExists.ts +27 -0
  10. package/example/src/chevre/roles/addPermissionIfNotExists.ts +39 -6
  11. package/example/src/chevre/roles/addProjectCreatorRole.ts +48 -0
  12. package/example/src/chevre/roles/assignGlobalRoles.ts +72 -0
  13. package/example/src/chevre/roles/findPermissions.ts +84 -0
  14. package/example/src/chevre/roles/findRoleNames.ts +117 -0
  15. package/example/src/chevre/roles/removeConsolePermissionIfExists.ts +38 -0
  16. package/example/src/chevre/roles/removePermissionFromAPIRoles.ts +46 -0
  17. package/example/src/chevre/roles/removePermissionIfExists.ts +39 -0
  18. package/example/src/chevre/searchEventSeats.ts +1 -1
  19. package/example/src/chevre/searchProducts.ts +28 -0
  20. package/example/src/chevre/settings/addSettings.ts +31 -17
  21. package/example/src/chevre/task/countPotentiallyRunning.ts +41 -0
  22. package/example/src/chevre/task/countTasks.ts +51 -0
  23. package/example/src/chevre/{deleteRunsAtPassedCertainPeriod.ts → task/deleteRunsAtPassedCertainPeriod.ts} +4 -3
  24. package/example/src/chevre/task/deleteUnexpectedTasks.ts +23 -0
  25. package/example/src/chevre/task/emitRunning.ts +89 -0
  26. package/example/src/chevre/unsetUnnecessaryFields.ts +8 -5
  27. package/example/src/idaas/auth0/adminApplications.ts +183 -0
  28. package/example/src/idaas/auth0/getToken.ts +55 -0
  29. package/example/src/idaas/auth0/getTokenByPrivateKeyJWT.ts +84 -0
  30. package/example/src/regex.ts +31 -0
  31. package/lib/chevre/eventEmitter/task.d.ts +29 -6
  32. package/lib/chevre/index.d.ts +0 -2
  33. package/lib/chevre/index.js +0 -10
  34. package/lib/chevre/repo/confirmationNumber.d.ts +0 -3
  35. package/lib/chevre/repo/confirmationNumber.js +12 -47
  36. package/lib/chevre/repo/identity.d.ts +11 -33
  37. package/lib/chevre/repo/identity.js +10 -15
  38. package/lib/chevre/repo/member.d.ts +22 -4
  39. package/lib/chevre/repo/member.js +81 -27
  40. package/lib/chevre/repo/mongoose/schemas/identity.d.ts +1 -1
  41. package/lib/chevre/repo/mongoose/schemas/member/global.d.ts +14 -0
  42. package/lib/chevre/repo/mongoose/schemas/member/global.js +82 -0
  43. package/lib/chevre/repo/mongoose/schemas/product.js +9 -0
  44. package/lib/chevre/repo/mongoose/schemas/setting.d.ts +15 -0
  45. package/lib/chevre/repo/mongoose/schemas/setting.js +1 -0
  46. package/lib/chevre/repo/mongoose/schemas/task.js +9 -0
  47. package/lib/chevre/repo/order.d.ts +17 -2
  48. package/lib/chevre/repo/order.js +47 -8
  49. package/lib/chevre/repo/orderNumber.d.ts +0 -3
  50. package/lib/chevre/repo/orderNumber.js +10 -44
  51. package/lib/chevre/repo/pendingReservation.js +1 -0
  52. package/lib/chevre/repo/product.js +12 -17
  53. package/lib/chevre/repo/role.d.ts +16 -4
  54. package/lib/chevre/repo/role.js +71 -32
  55. package/lib/chevre/repo/serviceOutputIdentifier.d.ts +0 -3
  56. package/lib/chevre/repo/serviceOutputIdentifier.js +10 -27
  57. package/lib/chevre/repo/setting.d.ts +5 -10
  58. package/lib/chevre/repo/setting.js +4 -7
  59. package/lib/chevre/repo/stockHolder.d.ts +4 -27
  60. package/lib/chevre/repo/stockHolder.js +163 -186
  61. package/lib/chevre/repo/task.d.ts +58 -38
  62. package/lib/chevre/repo/task.js +126 -296
  63. package/lib/chevre/repo/transaction.js +10 -10
  64. package/lib/chevre/repo/transactionNumber.d.ts +0 -3
  65. package/lib/chevre/repo/transactionNumber.js +10 -44
  66. package/lib/chevre/repo/transactionNumberCounter.d.ts +0 -10
  67. package/lib/chevre/repo/transactionNumberCounter.js +34 -29
  68. package/lib/chevre/service/assetTransaction/cancelReservation/start.d.ts +1 -1
  69. package/lib/chevre/service/assetTransaction/registerService.js +4 -0
  70. package/lib/chevre/service/assetTransaction/reserve/start/createSubReservations.js +19 -16
  71. package/lib/chevre/service/code.d.ts +5 -28
  72. package/lib/chevre/service/code.js +3 -79
  73. package/lib/chevre/service/iam.d.ts +17 -7
  74. package/lib/chevre/service/iam.js +26 -6
  75. package/lib/chevre/service/notification/notifyAbortedTasksByEmail.d.ts +15 -0
  76. package/lib/chevre/service/notification/notifyAbortedTasksByEmail.js +38 -0
  77. package/lib/chevre/service/notification.d.ts +2 -1
  78. package/lib/chevre/service/notification.js +3 -1
  79. package/lib/chevre/service/offer/product.js +4 -0
  80. package/lib/chevre/service/order/confirmPayTransaction.d.ts +6 -1
  81. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/processOrder.js +3 -3
  82. package/lib/chevre/service/task/acceptCOAOffer.d.ts +1 -1
  83. package/lib/chevre/service/task/acceptCOAOffer.js +6 -5
  84. package/lib/chevre/service/task/aggregateOffers.d.ts +1 -1
  85. package/lib/chevre/service/task/aggregateOffers.js +1 -1
  86. package/lib/chevre/service/task/aggregateOnSystem.d.ts +4 -2
  87. package/lib/chevre/service/task/aggregateScreeningEvent.d.ts +1 -1
  88. package/lib/chevre/service/task/aggregateScreeningEvent.js +1 -1
  89. package/lib/chevre/service/task/authorizePayment.d.ts +1 -1
  90. package/lib/chevre/service/task/authorizePayment.js +7 -6
  91. package/lib/chevre/service/task/cancelMoneyTransfer.d.ts +1 -1
  92. package/lib/chevre/service/task/cancelPendingReservation.d.ts +1 -1
  93. package/lib/chevre/service/task/cancelPendingReservation.js +1 -1
  94. package/lib/chevre/service/task/cancelReservation.d.ts +1 -1
  95. package/lib/chevre/service/task/cancelReservation.js +1 -1
  96. package/lib/chevre/service/task/checkMovieTicket.d.ts +1 -1
  97. package/lib/chevre/service/task/checkMovieTicket.js +4 -3
  98. package/lib/chevre/service/task/checkResource.d.ts +1 -1
  99. package/lib/chevre/service/task/checkResource.js +1 -1
  100. package/lib/chevre/service/task/confirmMoneyTransfer.d.ts +1 -1
  101. package/lib/chevre/service/task/confirmPayTransaction.d.ts +2 -2
  102. package/lib/chevre/service/task/confirmPayTransaction.js +3 -2
  103. package/lib/chevre/service/task/confirmRegisterService.d.ts +1 -1
  104. package/lib/chevre/service/task/confirmRegisterServiceTransaction.d.ts +1 -1
  105. package/lib/chevre/service/task/confirmReserveTransaction.d.ts +6 -2
  106. package/lib/chevre/service/task/confirmReserveTransaction.js +3 -3
  107. package/lib/chevre/service/task/createAccountingReport.d.ts +1 -1
  108. package/lib/chevre/service/task/createEvent.d.ts +1 -1
  109. package/lib/chevre/service/task/deletePerson.d.ts +1 -1
  110. package/lib/chevre/service/task/deleteTransaction.d.ts +1 -1
  111. package/lib/chevre/service/task/givePointAward.d.ts +1 -1
  112. package/lib/chevre/service/task/givePointAward.js +1 -1
  113. package/lib/chevre/service/task/handleNotification.d.ts +4 -2
  114. package/lib/chevre/service/task/importEventCapacitiesFromCOA.d.ts +1 -1
  115. package/lib/chevre/service/task/importEventsFromCOA.d.ts +1 -1
  116. package/lib/chevre/service/task/importOffersFromCOA.d.ts +1 -1
  117. package/lib/chevre/service/task/invalidatePaymentUrl.d.ts +1 -1
  118. package/lib/chevre/service/task/moneyTransfer.d.ts +1 -1
  119. package/lib/chevre/service/task/moneyTransfer.js +1 -1
  120. package/lib/chevre/service/task/onAssetTransactionStatusChanged.d.ts +1 -1
  121. package/lib/chevre/service/task/onAuthorizationCreated.d.ts +1 -1
  122. package/lib/chevre/service/task/onEventChanged.d.ts +1 -1
  123. package/lib/chevre/service/task/onOrderPaymentCompleted.d.ts +1 -1
  124. package/lib/chevre/service/task/onResourceUpdated.d.ts +1 -1
  125. package/lib/chevre/service/task/pay.d.ts +1 -1
  126. package/lib/chevre/service/task/placeOrder.d.ts +1 -1
  127. package/lib/chevre/service/task/publishPaymentUrl.d.ts +1 -1
  128. package/lib/chevre/service/task/publishPaymentUrl.js +6 -7
  129. package/lib/chevre/service/task/refund.d.ts +1 -1
  130. package/lib/chevre/service/task/refund.js +1 -1
  131. package/lib/chevre/service/task/registerService.d.ts +1 -1
  132. package/lib/chevre/service/task/reserve.d.ts +1 -1
  133. package/lib/chevre/service/task/returnMoneyTransfer.d.ts +1 -1
  134. package/lib/chevre/service/task/returnMoneyTransfer.js +1 -1
  135. package/lib/chevre/service/task/returnOrder.d.ts +1 -1
  136. package/lib/chevre/service/task/returnPayTransaction.d.ts +1 -1
  137. package/lib/chevre/service/task/returnPayTransaction.js +1 -1
  138. package/lib/chevre/service/task/returnPointAward.d.ts +1 -1
  139. package/lib/chevre/service/task/returnPointAward.js +1 -1
  140. package/lib/chevre/service/task/returnReserveTransaction.d.ts +1 -1
  141. package/lib/chevre/service/task/returnReserveTransaction.js +1 -1
  142. package/lib/chevre/service/task/sendEmailMessage.d.ts +1 -1
  143. package/lib/chevre/service/task/sendOrder.d.ts +1 -1
  144. package/lib/chevre/service/task/triggerWebhook.d.ts +1 -1
  145. package/lib/chevre/service/task/useReservation.d.ts +1 -1
  146. package/lib/chevre/service/task/voidMoneyTransferTransaction.d.ts +1 -1
  147. package/lib/chevre/service/task/voidPayTransaction.d.ts +1 -1
  148. package/lib/chevre/service/task/voidPayment.d.ts +1 -1
  149. package/lib/chevre/service/task/voidRegisterServiceTransaction.d.ts +1 -1
  150. package/lib/chevre/service/task/voidReserveTransaction.d.ts +1 -1
  151. package/lib/chevre/service/task/voidReserveTransaction.js +5 -4
  152. package/lib/chevre/service/task.d.ts +7 -29
  153. package/lib/chevre/service/task.js +9 -114
  154. package/lib/chevre/service/taskHandler/onOperationFailed/informTaskIfNeeded.d.ts +11 -0
  155. package/lib/chevre/service/taskHandler/onOperationFailed/informTaskIfNeeded.js +105 -0
  156. package/lib/chevre/service/taskHandler/onOperationFailed.d.ts +17 -0
  157. package/lib/chevre/service/taskHandler/onOperationFailed.js +70 -0
  158. package/lib/chevre/service/taskHandler.d.ts +26 -0
  159. package/lib/chevre/service/taskHandler.js +97 -0
  160. package/lib/chevre/service/validation/validateEvent.d.ts +2 -2
  161. package/lib/chevre/service/validation/validateEvent.js +16 -10
  162. package/lib/chevre/service/validation/validateOrder.js +55 -37
  163. package/lib/chevre/service.d.ts +0 -4
  164. package/lib/chevre/service.js +10 -14
  165. package/lib/chevre/settings/aggregation.d.ts +6 -1
  166. package/lib/chevre/settings/aggregation.js +2 -1
  167. package/package.json +6 -4
  168. package/example/src/chevre/adminAuth/adminIdentity.ts +0 -38
  169. package/example/src/chevre/executeOneTask.ts +0 -41
  170. package/example/src/chevre/executeTaskIfExists.ts +0 -80
  171. package/example/src/chevre/findExecutableTask.ts +0 -50
  172. package/example/src/chevre/findSetting.ts +0 -79
  173. package/example/src/chevre/roles/addRoleMembers.ts +0 -75
  174. package/example/src/chevre/searchPermissions.ts +0 -46
  175. package/example/src/chevre/searchProductOffers.ts +0 -29
  176. package/example/src/chevre/stockHolder/checkIfConflicted.ts +0 -76
  177. package/example/src/chevre/stockHolder/checkRedisKeyCount.ts +0 -195
  178. package/example/src/chevre/stockHolder/migratePendingReservations.ts +0 -96
  179. package/example/src/chevre/stockHolder/playAroundStockHolder.ts +0 -256
  180. package/example/src/chevre/transactionNumber/publishConfimationNumber.ts +0 -37
  181. package/example/src/chevre/transactionNumber/publishOrderNumber.ts +0 -40
  182. package/example/src/chevre/upsertProductsByProductId.ts +0 -100
  183. package/lib/chevre/adminAuth.d.ts +0 -2
  184. package/lib/chevre/adminAuth.js +0 -6
@@ -22,7 +22,7 @@ const sellerPaymentAccepted_1 = require("../../repo/sellerPaymentAccepted");
22
22
  const ticket_1 = require("../../repo/ticket");
23
23
  const transaction_1 = require("../../repo/transaction");
24
24
  const transactionNumber_1 = require("../../repo/transactionNumber");
25
- const transactionProcess_1 = require("../../repo/transactionProcess");
25
+ // import { TransactionProcessRepo } from '../../repo/transactionProcess';
26
26
  const any_1 = require("../payment/any");
27
27
  /**
28
28
  * タスク実行関数
@@ -37,20 +37,20 @@ function call(params) {
37
37
  return;
38
38
  }
39
39
  const actionRepo = new action_1.ActionRepo(connection);
40
- const transactionProcessRepo = new transactionProcess_1.TransactionProcessRepo(redisClient, { lockExpiresInSeconds: 120 });
40
+ // const transactionProcessRepo = new TransactionProcessRepo(redisClient, { lockExpiresInSeconds: 120 });
41
41
  try {
42
42
  yield (0, any_1.publishPaymentUrl)(Object.assign(Object.assign({}, params.data), { sameAs: { id: params.id } }))({
43
43
  action: actionRepo,
44
44
  assetTransaction: new assetTransaction_1.AssetTransactionRepo(connection),
45
45
  authorization: new authorization_1.AuthorizationRepo(connection),
46
- orderNumber: new orderNumber_1.OrderNumberRepo({ redisClient, connection }),
46
+ orderNumber: new orderNumber_1.OrderNumberRepo({ connection }),
47
47
  paymentAccepted: new sellerPaymentAccepted_1.SellerPaymentAcceptedRepo(connection),
48
48
  paymentService: new paymentService_1.PaymentServiceRepo(connection),
49
49
  paymentServiceProvider: new paymentServiceProvider_1.PaymentServiceProviderRepo(connection),
50
50
  project: new project_1.ProjectRepo(connection),
51
51
  ticket: new ticket_1.TicketRepo(connection),
52
52
  transaction: new transaction_1.TransactionRepo(connection),
53
- transactionNumber: new transactionNumber_1.TransactionNumberRepo({ redisClient, connection })
53
+ transactionNumber: new transactionNumber_1.TransactionNumberRepo({ connection })
54
54
  }, settings);
55
55
  }
56
56
  catch (error) {
@@ -69,10 +69,9 @@ function call(params) {
69
69
  }
70
70
  }
71
71
  finally {
72
+ // taskRepo.runImmediatelyのnextパラメータでの解決へ移行したためここでの解除は不要(2025-07-12~)
72
73
  // 取引プロセスロック解除
73
- // if (params.data.options.useUnlockTransactionProcess) {
74
- yield transactionProcessRepo.unlock({ typeOf: params.data.purpose.typeOf, id: params.data.purpose.id });
75
- // }
74
+ // await transactionProcessRepo.unlock({ typeOf: params.data.purpose.typeOf, id: params.data.purpose.id });
76
75
  }
77
76
  });
78
77
  }
@@ -1,4 +1,4 @@
1
- import type { IExecutableTaskKeys, IOperationExecute } from '../task';
1
+ import type { IExecutableTaskKeys, IOperationExecute } from '../taskHandler';
2
2
  import * as factory from '../../factory';
3
3
  /**
4
4
  * タスク実行関数
@@ -58,7 +58,7 @@ function call(params) {
58
58
  project: new project_1.ProjectRepo(connection),
59
59
  task: new task_1.TaskRepo(connection),
60
60
  assetTransaction: new assetTransaction_1.AssetTransactionRepo(connection),
61
- transactionNumber: new transactionNumber_1.TransactionNumberRepo({ redisClient, connection })
61
+ transactionNumber: new transactionNumber_1.TransactionNumberRepo({ connection })
62
62
  }, settings);
63
63
  });
64
64
  }
@@ -1,5 +1,5 @@
1
1
  import * as factory from '../../factory';
2
- import type { IOperationExecute } from '../task';
2
+ import type { IOperationExecute } from '../taskHandler';
3
3
  /**
4
4
  * タスク実行関数
5
5
  */
@@ -1,5 +1,5 @@
1
1
  import * as factory from '../../factory';
2
- import type { IOperationExecute } from '../task';
2
+ import type { IOperationExecute } from '../taskHandler';
3
3
  /**
4
4
  * タスク実行関数
5
5
  */
@@ -1,4 +1,4 @@
1
- import type { IOperationExecute } from '../task';
1
+ import type { IOperationExecute } from '../taskHandler';
2
2
  import * as factory from '../../factory';
3
3
  /**
4
4
  * タスク実行関数
@@ -29,7 +29,7 @@ function call(data) {
29
29
  const assetTransactionRepo = new assetTransaction_1.AssetTransactionRepo(connection);
30
30
  const productRepo = new product_1.ProductRepo(connection);
31
31
  const projectRepo = new project_1.ProjectRepo(connection);
32
- const transactionNumberRepo = new transactionNumber_1.TransactionNumberRepo({ redisClient, connection });
32
+ const transactionNumberRepo = new transactionNumber_1.TransactionNumberRepo({ connection });
33
33
  yield (0, returnMoneyTransfer_1.returnMoneyTransfer)(data)({
34
34
  action: actionRepo,
35
35
  assetTransaction: assetTransactionRepo,
@@ -1,4 +1,4 @@
1
- import type { IOperationExecute } from '../task';
1
+ import type { IOperationExecute } from '../taskHandler';
2
2
  import * as factory from '../../factory';
3
3
  /**
4
4
  * タスク実行関数
@@ -1,4 +1,4 @@
1
- import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../task';
1
+ import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../taskHandler';
2
2
  import * as factory from '../../factory';
3
3
  /**
4
4
  * タスク実行関数
@@ -39,7 +39,7 @@ function call(params) {
39
39
  product: new product_1.ProductRepo(connection),
40
40
  task: new task_1.TaskRepo(connection),
41
41
  transaction: new transaction_1.TransactionRepo(connection),
42
- transactionNumber: new transactionNumber_1.TransactionNumberRepo({ redisClient, connection })
42
+ transactionNumber: new transactionNumber_1.TransactionNumberRepo({ connection })
43
43
  });
44
44
  });
45
45
  }
@@ -1,4 +1,4 @@
1
- import type { IOperationExecute } from '../task';
1
+ import type { IOperationExecute } from '../taskHandler';
2
2
  import * as factory from '../../factory';
3
3
  /**
4
4
  * タスク実行関数
@@ -29,7 +29,7 @@ function call(data) {
29
29
  const assetTransactionRepo = new assetTransaction_1.AssetTransactionRepo(connection);
30
30
  const productRepo = new product_1.ProductRepo(connection);
31
31
  const projectRepo = new project_1.ProjectRepo(connection);
32
- const transactionNumberRepo = new transactionNumber_1.TransactionNumberRepo({ redisClient, connection });
32
+ const transactionNumberRepo = new transactionNumber_1.TransactionNumberRepo({ connection });
33
33
  yield DeliveryService.returnPointAward(data)({
34
34
  action: actionRepo,
35
35
  assetTransaction: assetTransactionRepo,
@@ -1,5 +1,5 @@
1
1
  import * as factory from '../../factory';
2
- import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../task';
2
+ import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../taskHandler';
3
3
  /**
4
4
  * タスク実行関数
5
5
  */
@@ -55,7 +55,7 @@ function call(params) {
55
55
  assetTransaction: new assetTransaction_1.AssetTransactionRepo(connection),
56
56
  project: new project_1.ProjectRepo(connection),
57
57
  reservation: new reservation_1.ReservationRepo(connection),
58
- transactionNumber: new transactionNumber_1.TransactionNumberRepo({ redisClient, connection }),
58
+ transactionNumber: new transactionNumber_1.TransactionNumberRepo({ connection }),
59
59
  reserveService
60
60
  });
61
61
  });
@@ -1,4 +1,4 @@
1
- import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../task';
1
+ import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../taskHandler';
2
2
  import * as factory from '../../factory';
3
3
  /**
4
4
  * タスク実行関数
@@ -1,4 +1,4 @@
1
- import type { IOperationExecute } from '../task';
1
+ import type { IOperationExecute } from '../taskHandler';
2
2
  import * as factory from '../../factory';
3
3
  /**
4
4
  * タスク実行関数
@@ -1,4 +1,4 @@
1
- import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../task';
1
+ import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../taskHandler';
2
2
  import * as factory from '../../factory';
3
3
  /**
4
4
  * タスク実行関数
@@ -1,5 +1,5 @@
1
1
  import * as factory from '../../factory';
2
- import type { IOperationExecute } from '../task';
2
+ import type { IOperationExecute } from '../taskHandler';
3
3
  /**
4
4
  * タスク実行関数
5
5
  */
@@ -1,4 +1,4 @@
1
- import type { IOperationExecute } from '../task';
1
+ import type { IOperationExecute } from '../taskHandler';
2
2
  import * as factory from '../../factory';
3
3
  /**
4
4
  * タスク実行関数
@@ -1,4 +1,4 @@
1
- import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../task';
1
+ import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../taskHandler';
2
2
  import * as factory from '../../factory';
3
3
  /**
4
4
  * タスク実行関数
@@ -1,4 +1,4 @@
1
- import type { IOperationExecute } from '../task';
1
+ import type { IOperationExecute } from '../taskHandler';
2
2
  import * as factory from '../../factory';
3
3
  /**
4
4
  * タスク実行関数
@@ -1,4 +1,4 @@
1
- import type { IOperationExecute } from '../task';
1
+ import type { IOperationExecute } from '../taskHandler';
2
2
  import * as factory from '../../factory';
3
3
  /**
4
4
  * タスク実行関数
@@ -1,5 +1,5 @@
1
1
  import * as factory from '../../factory';
2
- import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../task';
2
+ import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../taskHandler';
3
3
  /**
4
4
  * タスク実行関数
5
5
  */
@@ -23,7 +23,7 @@ const setting_1 = require("../../repo/setting");
23
23
  const stockHolder_1 = require("../../repo/stockHolder");
24
24
  const task_1 = require("../../repo/task");
25
25
  const transaction_1 = require("../../repo/transaction");
26
- const transactionProcess_1 = require("../../repo/transactionProcess");
26
+ // import { TransactionProcessRepo } from '../../repo/transactionProcess';
27
27
  let coaAuthClientCreated = false;
28
28
  let coaAuthClient = new COA.auth.RefreshToken({
29
29
  endpoint: '', // 使用されないので空文字でok
@@ -59,12 +59,12 @@ function call(params) {
59
59
  endpoint: coaAuthClient.options.endpoint, // same as authClient(2024-07-17~)
60
60
  auth: coaAuthClient
61
61
  }, { timeout: settings.coa.timeout });
62
- const transactionProcessRepo = new transactionProcess_1.TransactionProcessRepo(redisClient, { lockExpiresInSeconds: 120 });
62
+ // const transactionProcessRepo = new TransactionProcessRepo(redisClient, { lockExpiresInSeconds: 120 });
63
63
  try {
64
64
  yield (0, voidTransaction_1.voidTransaction)(Object.assign(Object.assign({}, params.data), { project: { id: params.project.id }, sameAs: { id: params.id } }))({
65
65
  action: new action_1.ActionRepo(connection),
66
66
  assetTransaction: new assetTransaction_1.AssetTransactionRepo(connection),
67
- stockHolder: new stockHolder_1.StockHolderRepo(redisClient, connection),
67
+ stockHolder: new stockHolder_1.StockHolderRepo({ connection }),
68
68
  offerRateLimit: new offer_1.OfferRateLimitRepo(redisClient),
69
69
  orderInTransaction: new orderInTransaction_1.OrderInTransactionRepo(connection),
70
70
  reservation: new reservation_1.ReservationRepo(connection),
@@ -80,7 +80,8 @@ function call(params) {
80
80
  finally {
81
81
  // アクションID指定であれば取引プロセスロック解除(2024-05-26~)
82
82
  if (voidByActionId) {
83
- yield transactionProcessRepo.unlock({ typeOf: params.data.purpose.typeOf, id: params.data.purpose.id });
83
+ // taskRepo.runImmediatelyのnextパラメータでの解決へ移行したためここでの解除は不要(2025-07-12~)
84
+ // await transactionProcessRepo.unlock({ typeOf: params.data.purpose.typeOf, id: params.data.purpose.id });
84
85
  }
85
86
  }
86
87
  });
@@ -1,7 +1,6 @@
1
1
  import { SendGridCredentials } from '../credentials/sendGrid';
2
2
  import type { IExecuteSettings as IMinimumExecuteSettings, INextFunction, IReadyTask, IRunningTask } from '../eventEmitter/task';
3
3
  import * as factory from '../factory';
4
- import type { IExecutableTask, IExecutableTaskKeys, TaskRepo } from '../repo/task';
5
4
  import { Settings } from '../settings';
6
5
  import { AggregationSettings } from '../settings/aggregation';
7
6
  interface ICredentialSettings {
@@ -12,14 +11,7 @@ interface IExecuteSettings extends IMinimumExecuteSettings {
12
11
  settings: Settings;
13
12
  aggregationSettings?: AggregationSettings;
14
13
  }
15
- interface IExecuteOptions {
16
- executeById: boolean;
17
- executeByName: boolean;
18
- }
19
14
  type IOperation<T> = (settings: IExecuteSettings) => Promise<T>;
20
- type IOperationExecute<T> = (settings: IExecuteSettings, options: IExecuteOptions) => Promise<T>;
21
- type ICallResult = void | Pick<factory.task.IExecutionResult, 'error'>;
22
- export type ICallableTaskOperation = (task: IExecutableTask<factory.taskName>) => IOperationExecute<ICallResult>;
23
15
  /**
24
16
  * タスク変更イベントを受けて実行する
25
17
  */
@@ -31,13 +23,9 @@ declare function executeById(params: (IReadyTask | IRunningTask) & {
31
23
  name: string;
32
24
  };
33
25
  }, next?: INextFunction): IOperation<void>;
34
- /**
35
- * support no name(2025-03-04~)
36
- */
37
26
  declare function executeOneIfExists(params: {
38
- name?: {
39
- $eq?: factory.taskName;
40
- $nin?: factory.taskName[];
27
+ name: {
28
+ $eq: factory.taskName;
41
29
  };
42
30
  executor: {
43
31
  /**
@@ -48,19 +36,9 @@ declare function executeOneIfExists(params: {
48
36
  runsAt: {
49
37
  $lt: Date;
50
38
  };
39
+ sort: {
40
+ numberOfTried?: factory.sortType;
41
+ runsAt?: factory.sortType;
42
+ };
51
43
  }): IOperation<void>;
52
- /**
53
- * タスクを実行する
54
- */
55
- declare function execute(task: IExecutableTask<factory.taskName>, next?: INextFunction): IOperationExecute<void>;
56
- /**
57
- * add(2025-03-13~)
58
- */
59
- declare function notifyAbortedTasksByEmail(params: {
60
- dateAbortedGte: Date;
61
- }): (repos: {
62
- task: TaskRepo;
63
- }, settings: Pick<Settings, "abortedTasksWithoutReport">, credentials: {
64
- sendGrid: SendGridCredentials;
65
- }) => Promise<void>;
66
- export { ICallResult, IExecutableTaskKeys, IOperationExecute, executeById, executeOneIfExists, execute, notifyAbortedTasksByEmail };
44
+ export { executeById, executeOneIfExists };
@@ -11,15 +11,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.executeById = executeById;
13
13
  exports.executeOneIfExists = executeOneIfExists;
14
- exports.execute = execute;
15
- exports.notifyAbortedTasksByEmail = notifyAbortedTasksByEmail;
16
14
  /**
17
15
  * タスクサービス
18
16
  */
19
17
  const createDebug = require("debug");
20
- const moment = require("moment");
21
- const factory = require("../factory");
22
- const factory_1 = require("./notification/factory");
18
+ const taskHandler_1 = require("./taskHandler");
23
19
  const debug = createDebug('chevre-domain:service:task');
24
20
  /**
25
21
  * タスク変更イベントを受けて実行する
@@ -42,16 +38,13 @@ function executeById(params, next) {
42
38
  }
43
39
  // タスクがなければ終了
44
40
  if (task !== null) {
45
- yield execute(task, (typeof next === 'function') ? next : undefined)(settings, {
41
+ yield (0, taskHandler_1.executeTask)(task, (typeof next === 'function') ? next : undefined)(settings, {
46
42
  executeById: true,
47
43
  executeByName: false
48
44
  });
49
45
  }
50
46
  });
51
47
  }
52
- /**
53
- * support no name(2025-03-04~)
54
- */
55
48
  function executeOneIfExists(params) {
56
49
  return (settings) => __awaiter(this, void 0, void 0, function* () {
57
50
  var _a;
@@ -60,7 +53,12 @@ function executeOneIfExists(params) {
60
53
  // tslint:disable-next-line:no-null-keyword
61
54
  let task = null;
62
55
  try {
63
- task = yield taskRepo.executeOneIfExists(Object.assign({ executor: { name: params.executor.name }, runsAt: { $lt: params.runsAt.$lt } }, (params.name !== undefined) ? { name: params.name } : undefined));
56
+ task = yield taskRepo.executeOneIfExists({
57
+ executor: { name: params.executor.name },
58
+ runsAt: { $lt: params.runsAt.$lt },
59
+ name: params.name,
60
+ sort: params.sort
61
+ });
64
62
  debug('executable task found.', task, params.runsAt.$lt);
65
63
  }
66
64
  catch (error) {
@@ -70,113 +68,10 @@ function executeOneIfExists(params) {
70
68
  }
71
69
  // タスクがなければ終了
72
70
  if (task !== null) {
73
- yield execute(task)(settings, {
71
+ yield (0, taskHandler_1.executeTask)(task)(settings, {
74
72
  executeById: false,
75
73
  executeByName: (typeof ((_a = params.name) === null || _a === void 0 ? void 0 : _a.$eq) === 'string')
76
74
  });
77
75
  }
78
76
  });
79
77
  }
80
- /**
81
- * タスクを実行する
82
- */
83
- function execute(task, next) {
84
- const now = new Date();
85
- debug('executing an executableTask...', task, now);
86
- return (settings, options) => __awaiter(this, void 0, void 0, function* () {
87
- const taskRepo = new (yield Promise.resolve().then(() => require('../repo/task'))).TaskRepo(settings.connection);
88
- try {
89
- // 期限検証(2024-04-23~)
90
- if (task.expires instanceof Date) {
91
- const taskExpired = moment(now)
92
- .isAfter(task.expires);
93
- if (taskExpired) {
94
- throw new factory.errors.Internal(`task expired [expires:${task.expires}]`);
95
- }
96
- }
97
- // タスク名の関数が定義されていなければ、TypeErrorとなる
98
- let callResult;
99
- const { call } = yield Promise.resolve(`${`./task/${task.name}`}`).then(s => require(s));
100
- switch (task.name) {
101
- case factory.taskName.AcceptCOAOffer:
102
- case factory.taskName.AggregateOnSystem:
103
- case factory.taskName.AuthorizePayment:
104
- case factory.taskName.CancelPendingReservation:
105
- case factory.taskName.CheckMovieTicket:
106
- case factory.taskName.DeletePerson:
107
- case factory.taskName.HandleNotification:
108
- case factory.taskName.ImportEventCapacitiesFromCOA:
109
- case factory.taskName.ImportEventsFromCOA:
110
- case factory.taskName.ImportOffersFromCOA:
111
- case factory.taskName.InvalidatePaymentUrl:
112
- case factory.taskName.OnAuthorizationCreated:
113
- case factory.taskName.Pay:
114
- case factory.taskName.PublishPaymentUrl:
115
- case factory.taskName.Refund:
116
- case factory.taskName.VoidPayTransaction:
117
- case factory.taskName.VoidReserveTransaction:
118
- case factory.taskName.ConfirmReserveTransaction:
119
- case factory.taskName.ReturnPayTransaction:
120
- case factory.taskName.ReturnReserveTransaction:
121
- case factory.taskName.SendEmailMessage:
122
- case factory.taskName.TriggerWebhook:
123
- callResult = yield call(task)(settings, options);
124
- break;
125
- default:
126
- yield call(task.data)(settings);
127
- }
128
- const result = {
129
- executedAt: now,
130
- endDate: new Date(),
131
- // enable overwriting task.executionResults.error on Executed(2024-05-29~)
132
- error: ((callResult === null || callResult === void 0 ? void 0 : callResult.error) instanceof Error)
133
- ? Object.assign(Object.assign({}, callResult.error), { message: callResult.error.message }) : ''
134
- };
135
- yield taskRepo.pushExecutionResultById({
136
- id: task.id,
137
- status: factory.taskStatus.Executed
138
- }, result, (typeof next === 'function') ? next : undefined);
139
- }
140
- catch (error) {
141
- debug('service.task.execute throwed an error. task:', task.name, task.id, 'error:', error === null || error === void 0 ? void 0 : error.name, error === null || error === void 0 ? void 0 : error.message);
142
- if (typeof error !== 'object') {
143
- error = { message: String(error) };
144
- }
145
- // 実行結果追加
146
- const result = {
147
- executedAt: now,
148
- endDate: new Date(),
149
- error: Object.assign(Object.assign({}, error), { code: error.code, message: error.message, name: error.name, stack: error.stack })
150
- };
151
- // 失敗してもここではステータスを戻さない(Runningのまま待機)
152
- yield taskRepo.pushExecutionResultById({
153
- id: task.id,
154
- status: task.status
155
- }, result, (typeof next === 'function') ? next : undefined);
156
- }
157
- });
158
- }
159
- let notification;
160
- /**
161
- * add(2025-03-13~)
162
- */
163
- function notifyAbortedTasksByEmail(params) {
164
- return (repos, settings, credentials) => __awaiter(this, void 0, void 0, function* () {
165
- const { abortedTasksWithoutReport } = settings;
166
- const abortedTasks = yield repos.task.projectFields(Object.assign({ status: { $eq: factory.taskStatus.Aborted }, dateAborted: { $gte: params.dateAbortedGte } }, (abortedTasksWithoutReport.length > 0)
167
- ? { name: { $nin: abortedTasksWithoutReport } }
168
- : undefined), []);
169
- if (abortedTasks.length > 0) {
170
- if (notification === undefined) {
171
- notification = yield Promise.resolve().then(() => require('./notification'));
172
- }
173
- // 開発者へ報告
174
- const message = (0, factory_1.tasks2lineNotify)({ tasks: abortedTasks });
175
- const notifyResult = yield notification.notifyByEmail({
176
- subject: message.subject, content: message.content,
177
- logLevel: 'error'
178
- })({}, credentials);
179
- debug('notifyResult:', notifyResult);
180
- }
181
- });
182
- }
@@ -0,0 +1,11 @@
1
+ import * as factory from '../../../factory';
2
+ import type { SettingRepo } from '../../../repo/setting';
3
+ import type { IExecutableTask, TaskRepo } from '../../../repo/task';
4
+ declare function informTaskIfNeeded(params: {
5
+ task: IExecutableTask<factory.taskName>;
6
+ executionEndDate: Date;
7
+ }): (repos: {
8
+ setting: SettingRepo;
9
+ task: TaskRepo;
10
+ }) => Promise<void>;
11
+ export { informTaskIfNeeded };
@@ -0,0 +1,105 @@
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
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.informTaskIfNeeded = informTaskIfNeeded;
13
+ const createDebug = require("debug");
14
+ const factory = require("../../../factory");
15
+ const debug = createDebug('chevre-domain:service:taskHandler:onOperationFailed');
16
+ function createInformTasks(params) {
17
+ var _a, _b, _c;
18
+ const { task, setting, executionEndDate } = params;
19
+ const informTask = (_a = setting === null || setting === void 0 ? void 0 : setting.onTaskStatusChanged) === null || _a === void 0 ? void 0 : _a.informTask;
20
+ const informTaskNames = (_b = setting === null || setting === void 0 ? void 0 : setting.onTaskStatusChanged) === null || _b === void 0 ? void 0 : _b.informTaskNames;
21
+ const informTaskStatuses = (_c = setting === null || setting === void 0 ? void 0 : setting.onTaskStatusChanged) === null || _c === void 0 ? void 0 : _c.informTaskStatuses;
22
+ const informTasks = [];
23
+ if (Array.isArray(informTaskNames) && informTaskNames.includes(task.name)) {
24
+ if (Array.isArray(informTaskStatuses)) {
25
+ const { id, name, data, project, runsAt, remainingNumberOfTries } = task;
26
+ let task4inform;
27
+ if (remainingNumberOfTries <= 0) {
28
+ if (informTaskStatuses.includes(factory.taskStatus.Aborted)) {
29
+ const abortingTask = {
30
+ id, name, data, project, runsAt,
31
+ status: factory.taskStatus.Aborted,
32
+ typeOf: 'Task',
33
+ dateAborted: executionEndDate
34
+ };
35
+ task4inform = abortingTask;
36
+ }
37
+ }
38
+ else {
39
+ if (informTaskStatuses.includes(factory.taskStatus.Running)) {
40
+ const runningTask = {
41
+ id, name, data, project, runsAt,
42
+ status: factory.taskStatus.Running,
43
+ typeOf: 'Task'
44
+ };
45
+ task4inform = runningTask;
46
+ }
47
+ }
48
+ if (task4inform !== undefined) {
49
+ const informIdentifier = `Task:${name}:${id}:${task4inform.status}`;
50
+ if (Array.isArray(informTask) && informTask.length > 0) {
51
+ informTask.forEach((informTaskParams) => {
52
+ var _a, _b;
53
+ if (typeof ((_a = informTaskParams.recipient) === null || _a === void 0 ? void 0 : _a.url) === 'string') {
54
+ const informActionAttributes = {
55
+ object: task4inform,
56
+ recipient: {
57
+ id: '',
58
+ name: String((_b = informTaskParams.recipient) === null || _b === void 0 ? void 0 : _b.name),
59
+ typeOf: factory.creativeWorkType.WebApplication
60
+ },
61
+ target: {
62
+ httpMethod: 'POST',
63
+ encodingType: factory.encodingFormat.Application.json,
64
+ typeOf: 'EntryPoint',
65
+ urlTemplate: informTaskParams.recipient.url
66
+ },
67
+ identifier: informIdentifier
68
+ };
69
+ const description = `inform aborting tasks to agg service: ${name} ${id} ${task4inform.status}`;
70
+ informTasks.push({
71
+ project,
72
+ name: factory.taskName.TriggerWebhook,
73
+ status: factory.taskStatus.Ready,
74
+ runsAt: executionEndDate,
75
+ remainingNumberOfTries: 10,
76
+ numberOfTried: 0,
77
+ executionResults: [],
78
+ data: informActionAttributes,
79
+ description
80
+ });
81
+ }
82
+ });
83
+ }
84
+ }
85
+ }
86
+ }
87
+ return informTasks;
88
+ }
89
+ function informTaskIfNeeded(params) {
90
+ return (repos) => __awaiter(this, void 0, void 0, function* () {
91
+ const { executionEndDate, task } = params;
92
+ const isAborting = task.status === factory.taskStatus.Running;
93
+ const useInform = isAborting
94
+ && task.name !== factory.taskName.HandleNotification // nameで絞る
95
+ && task.name !== factory.taskName.TriggerWebhook;
96
+ if (useInform) {
97
+ const setting = yield repos.setting.findOne({ project: { id: { $eq: '*' } } }, ['onTaskStatusChanged']);
98
+ const informTasks = createInformTasks({ task, setting, executionEndDate });
99
+ debug('informTaskIfNeeded: creating inform tasks...', JSON.stringify(informTasks));
100
+ if (informTasks.length > 0) {
101
+ yield repos.task.saveMany(informTasks, { emitImmediately: true });
102
+ }
103
+ }
104
+ });
105
+ }
@@ -0,0 +1,17 @@
1
+ import type { INextFunction } from '../../eventEmitter/task';
2
+ import * as factory from '../../factory';
3
+ import type { SettingRepo } from '../../repo/setting';
4
+ import type { IExecutableTask, TaskRepo } from '../../repo/task';
5
+ /**
6
+ * タスク実行失敗時処理
7
+ */
8
+ declare function onOperationFailed(params: {
9
+ task: IExecutableTask<factory.taskName>;
10
+ now: Date;
11
+ error: any;
12
+ next?: INextFunction;
13
+ }): (repos: {
14
+ setting: SettingRepo;
15
+ task: TaskRepo;
16
+ }) => Promise<void>;
17
+ export { onOperationFailed };