@chevre/domain 26.0.0-alpha.2 → 26.0.0-alpha.20

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 (87) hide show
  1. package/lib/chevre/eventEmitter/task.d.ts +8 -23
  2. package/lib/chevre/eventEmitter/task.js +2 -2
  3. package/lib/chevre/repo/adminAsyncAction.d.ts +2 -2
  4. package/lib/chevre/repo/adminScheduledTask.d.ts +1 -1
  5. package/lib/chevre/repo/adminTask.d.ts +25 -5
  6. package/lib/chevre/repo/adminTask.js +41 -6
  7. package/lib/chevre/repo/aggregateScheduledTask.d.ts +32 -0
  8. package/lib/chevre/repo/aggregateScheduledTask.js +136 -0
  9. package/lib/chevre/repo/asyncAction.d.ts +2 -2
  10. package/lib/chevre/repo/mongoose/schemas/setting.d.ts +1 -0
  11. package/lib/chevre/repo/mongoose/schemas/task.d.ts +2 -5
  12. package/lib/chevre/repo/mongoose/schemas/task.js +21 -32
  13. package/lib/chevre/repo/orderInTransaction.d.ts +0 -3
  14. package/lib/chevre/repo/orderInTransaction.js +30 -22
  15. package/lib/chevre/repo/scheduledTask.d.ts +5 -2
  16. package/lib/chevre/repo/scheduledTask.js +3 -25
  17. package/lib/chevre/repo/task.d.ts +25 -172
  18. package/lib/chevre/repo/task.js +19 -475
  19. package/lib/chevre/repo/taskDelayed.d.ts +87 -0
  20. package/lib/chevre/repo/taskDelayed.js +224 -0
  21. package/lib/chevre/repo/taskRunning.d.ts +35 -0
  22. package/lib/chevre/repo/taskRunning.js +89 -0
  23. package/lib/chevre/repository.d.ts +10 -0
  24. package/lib/chevre/repository.js +24 -2
  25. package/lib/chevre/service/aggregation/system.d.ts +10 -2
  26. package/lib/chevre/service/aggregation/system.js +42 -0
  27. package/lib/chevre/service/assetTransaction/reserve/start/factory/createStartParams.js +5 -25
  28. package/lib/chevre/service/asyncAction.d.ts +2 -2
  29. package/lib/chevre/service/asyncAction.js +1 -4
  30. package/lib/chevre/service/asyncActionHandler/onOperationFailed.d.ts +2 -2
  31. package/lib/chevre/service/asyncActionHandler/onOperationFailed.js +0 -2
  32. package/lib/chevre/service/asyncActionHandler.d.ts +4 -4
  33. package/lib/chevre/service/asyncActionHandler.js +11 -13
  34. package/lib/chevre/service/offer/eventServiceByCOA/authorize/factory.js +1 -1
  35. package/lib/chevre/service/offer/eventServiceByCOA/findAcceptAction.d.ts +0 -4
  36. package/lib/chevre/service/offer/eventServiceByCOA/findAcceptAction.js +19 -19
  37. package/lib/chevre/service/order/confirmPayTransaction.js +4 -1
  38. package/lib/chevre/service/order/onOrderStatusChanged/onOrderInTransit.js +4 -4
  39. package/lib/chevre/service/order/onOrderStatusChanged/onOrderPaymentDue.js +2 -2
  40. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/createSendEmailMessageTaskIfNotExist.js +2 -2
  41. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/factory.d.ts +2 -2
  42. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/factory.js +1 -1
  43. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/processOrder.js +2 -2
  44. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing.js +1 -1
  45. package/lib/chevre/service/payment/any/findAcceptAction.d.ts +0 -4
  46. package/lib/chevre/service/payment/any/findAcceptAction.js +19 -19
  47. package/lib/chevre/service/payment/any/findAuthorizeAction.d.ts +0 -4
  48. package/lib/chevre/service/payment/any/findAuthorizeAction.js +19 -19
  49. package/lib/chevre/service/payment/any/findCheckAction.d.ts +0 -4
  50. package/lib/chevre/service/payment/any/findCheckAction.js +19 -19
  51. package/lib/chevre/service/payment/any/publishPaymentUrl.d.ts +0 -2
  52. package/lib/chevre/service/payment/any/publishPaymentUrl.js +2 -2
  53. package/lib/chevre/service/project.d.ts +0 -3
  54. package/lib/chevre/service/project.js +0 -1
  55. package/lib/chevre/service/reserve/potentialActions/onReservationConfirmed.js +2 -2
  56. package/lib/chevre/service/scheduledTask.d.ts +1 -4
  57. package/lib/chevre/service/scheduledTask.js +3 -10
  58. package/lib/chevre/service/scheduledTaskHandler/onOperationFailed.js +1 -2
  59. package/lib/chevre/service/scheduledTaskHandler.js +0 -13
  60. package/lib/chevre/service/task/acceptCOAOffer.js +1 -14
  61. package/lib/chevre/service/task/authorizePayment.js +1 -7
  62. package/lib/chevre/service/task/checkMovieTicket.js +1 -7
  63. package/lib/chevre/service/task/confirmReserveTransaction.js +3 -1
  64. package/lib/chevre/service/task/importEventCapacitiesFromCOA.js +4 -1
  65. package/lib/chevre/service/task/importEventsFromCOA.js +4 -1
  66. package/lib/chevre/service/task/importOffersFromCOA.js +5 -5
  67. package/lib/chevre/service/task/publishPaymentUrl.js +2 -13
  68. package/lib/chevre/service/task/syncResourcesFromCOA.js +1 -5
  69. package/lib/chevre/service/task/voidReserveTransaction.js +5 -8
  70. package/lib/chevre/service/task.d.ts +3 -22
  71. package/lib/chevre/service/task.js +8 -40
  72. package/lib/chevre/service/taskHandler/onOperationFailed.d.ts +3 -2
  73. package/lib/chevre/service/taskHandler/onOperationFailed.js +5 -16
  74. package/lib/chevre/service/taskHandler.d.ts +1 -2
  75. package/lib/chevre/service/taskHandler.js +7 -53
  76. package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.d.ts +8 -4
  77. package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.js +55 -103
  78. package/lib/chevre/service/transaction/placeOrder/exportTasksById.d.ts +2 -0
  79. package/lib/chevre/service/transaction/placeOrder/exportTasksById.js +14 -10
  80. package/lib/chevre/service/transaction/returnOrder/exportTasks/factory.d.ts +13 -3
  81. package/lib/chevre/service/transaction/returnOrder/exportTasks/factory.js +48 -51
  82. package/lib/chevre/service/transaction/returnOrder.d.ts +2 -0
  83. package/lib/chevre/service/transaction/returnOrder.js +15 -13
  84. package/lib/chevre/service/transaction.d.ts +2 -0
  85. package/lib/chevre/service/transaction.js +0 -2
  86. package/lib/chevre/taskSettings.d.ts +4 -4
  87. package/package.json +2 -2
@@ -5,7 +5,7 @@ type ICreatingTaskKeys = 'data' | 'executionResults' | 'name' | 'numberOfTried'
5
5
  /**
6
6
  * リトライ可能なタスク作成属性
7
7
  */
8
- type ICreatingTask = (Pick<factory.task.importEventCapacitiesFromCOA.IAttributes, ICreatingTaskKeys> | Pick<factory.task.importEventsFromCOA.IAttributes, ICreatingTaskKeys>) & {
8
+ type ICreatingTask = (Pick<factory.task.importEventCapacitiesFromCOA.IAttributes, ICreatingTaskKeys> | Pick<factory.task.importEventsFromCOA.IAttributes, ICreatingTaskKeys> | Pick<factory.task.deleteTransaction.IAttributes, ICreatingTaskKeys>) & {
9
9
  expires: Date;
10
10
  };
11
11
  /**
@@ -64,11 +64,14 @@ export declare class ScheduledTaskRepo {
64
64
  status: factory.taskStatus.Executed | factory.taskStatus.Running | factory.taskStatus.Aborted;
65
65
  executionResult: factory.task.IExecutionResult;
66
66
  }): Promise<void>;
67
+ /**
68
+ * cron:createImportEventCapacitiesTasksでの新タスク作成前に使用する
69
+ */
67
70
  deleteTooOldReadyTasks(params: {
68
71
  project: {
69
72
  id: string;
70
73
  };
71
- name: factory.taskName;
74
+ name: factory.taskName.ImportEventCapacitiesFromCOA;
72
75
  runsAt: {
73
76
  $lt: Date;
74
77
  };
@@ -40,15 +40,6 @@ class ScheduledTaskRepo {
40
40
  .map((objectId) => {
41
41
  return { id: objectId.toHexString() };
42
42
  });
43
- // イベントは発火しない
44
- // if (emitImmediately) {
45
- // savedTasks.forEach((savedTask) => {
46
- // taskEventEmitter.emitTaskStatusChanged({
47
- // id: savedTask.id,
48
- // status: factory.taskStatus.Ready
49
- // });
50
- // });
51
- // }
52
43
  return savedTasks;
53
44
  }
54
45
  else {
@@ -80,7 +71,6 @@ class ScheduledTaskRepo {
80
71
  if (!(params.runsAt.$lt instanceof Date)) {
81
72
  throw new factory_1.factory.errors.Argument('runsAt.$lt', 'must be Date');
82
73
  }
83
- // const { noEmitEvent } = options;
84
74
  const projection = {
85
75
  _id: 0,
86
76
  id: { $toString: '$_id' },
@@ -106,9 +96,6 @@ class ScheduledTaskRepo {
106
96
  new: true,
107
97
  projection,
108
98
  sort: { runsAt: factory_1.factory.sortType.Ascending } // ソートは、実行日時で固定化(2026-07-31~)
109
- // ...(typeof params.sort.numberOfTried === 'number' || typeof params.sort.runsAt === 'number')
110
- // ? { sort: params.sort }
111
- // : undefined
112
99
  })
113
100
  .setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
114
101
  .lean()
@@ -116,18 +103,6 @@ class ScheduledTaskRepo {
116
103
  if (doc === null) {
117
104
  return null;
118
105
  }
119
- // if (!noEmitEvent) {
120
- // const changedTask: IRunningTaskByName = {
121
- // id: doc.id,
122
- // status: factory.taskStatus.Running,
123
- // name: nameEq
124
- // };
125
- // taskEventEmitter.emitTaskStatusChanged(
126
- // changedTask,
127
- // // 現時点でタスク遅延実行ではnext指定なし(2026-07-30)
128
- // // (typeof next === 'function') ? next : undefined
129
- // );
130
- // }
131
106
  return doc;
132
107
  }
133
108
  /**
@@ -162,6 +137,9 @@ class ScheduledTaskRepo {
162
137
  })
163
138
  .exec();
164
139
  }
140
+ /**
141
+ * cron:createImportEventCapacitiesTasksでの新タスク作成前に使用する
142
+ */
165
143
  async deleteTooOldReadyTasks(params) {
166
144
  return this.scheduledTaskModel.deleteMany({
167
145
  'project.id': { $eq: params.project.id },
@@ -1,28 +1,18 @@
1
- import type { Connection, UpdateWriteOpResult } from 'mongoose';
2
- import { INextFunction } from '../eventEmitter/task';
1
+ import type { Connection } from 'mongoose';
3
2
  import { factory } from '../factory';
4
- import { IModel, IDocType } from './mongoose/schemas/task';
5
- import type { IExecutableTask } from '../taskSettings';
6
- type IKeyOfProjection = keyof factory.task.ITask<factory.taskName> | 'expires';
3
+ import { IDocType } from './mongoose/schemas/task';
7
4
  /**
8
5
  * リトライ可能なタスク作成属性
9
6
  */
10
7
  type ICreatingTask = Pick<factory.task.IAttributes<factory.taskName>, 'data' | 'executionResults' | 'name' | 'numberOfTried' | 'project' | 'remainingNumberOfTries' | 'runsAt' | 'status' | 'identifier' | 'description'> & {
11
- expires?: Date;
8
+ expires?: never;
12
9
  };
13
10
  /**
14
11
  * タスクリポジトリ
15
12
  */
16
13
  export declare class TaskRepo {
17
- readonly taskModel: IModel;
14
+ private readonly taskModel;
18
15
  constructor(connection: Connection);
19
- runImmediately(params: Pick<factory.task.IAttributes<factory.taskName>, 'data' | 'name' | 'project' | 'remainingNumberOfTries' | 'runsAt'> & {
20
- alternateName?: never;
21
- identifier?: never;
22
- expires: Date;
23
- }, next: INextFunction): Promise<{
24
- id: string;
25
- }>;
26
16
  saveMany(taskAttributes: ICreatingTask[]): Promise<{
27
17
  id: string;
28
18
  }[]>;
@@ -39,110 +29,33 @@ export declare class TaskRepo {
39
29
  id: string;
40
30
  status: factory.taskStatus;
41
31
  } | undefined>;
32
+ /**
33
+ * イベント予約集計タスクの冗長な作成を避けるためのメソッド
34
+ */
35
+ findReadyAggregateEventTask(params: {
36
+ project: {
37
+ id: string;
38
+ };
39
+ reservationFor: {
40
+ id: string;
41
+ };
42
+ }): Promise<(import("mongoose").Document<unknown, Record<string, never>, IDocType, import("./mongoose/virtuals").IVirtuals, {}> & Pick<import("@chevre/factory/lib/chevre/task").ITask | import("@chevre/factory/lib/chevre/task/confirmPayTransaction").ITask | import("@chevre/factory/lib/chevre/task/confirmReserveTransaction").ITask | import("@chevre/factory/lib/chevre/task/createAccountingReport").ITask | import("@chevre/factory/lib/chevre/task/onAssetTransactionStatusChanged").ITask | import("@chevre/factory/lib/chevre/task/onAuthorizationCreated").ITask | import("@chevre/factory/lib/chevre/task/onEventChanged").ITask | import("@chevre/factory/lib/chevre/task/onResourceDeleted").ITask | import("@chevre/factory/lib/chevre/task/onResourceUpdated").ITask | import("@chevre/factory/lib/chevre/task/onOrderPaymentCompleted").ITask | import("@chevre/factory/lib/chevre/task/placeOrder").ITask | import("@chevre/factory/lib/chevre/task/returnOrder").ITask | import("@chevre/factory/lib/chevre/task/returnPayTransaction").ITask | import("@chevre/factory/lib/chevre/task/returnReserveTransaction").ITask | import("@chevre/factory/lib/chevre/task/sendEmailMessage").ITask | import("@chevre/factory/lib/chevre/task/sendOrder").ITask | import("@chevre/factory/lib/chevre/task/triggerWebhook").ITask | import("@chevre/factory/lib/chevre/task/useReservation").ITask | import("@chevre/factory/lib/chevre/task/voidPayTransaction").ITask, "name" | "description" | "project" | "identifier" | "data" | "status" | "runsAt" | "dateAborted" | "executionResults" | "executor" | "lastTriedAt" | "remainingNumberOfTries" | "numberOfTried"> & {
43
+ expires?: never;
44
+ } & {
45
+ _id: import("mongoose").Types.ObjectId;
46
+ } & {
47
+ __v: number;
48
+ }) | null>;
42
49
  /**
43
50
  * タスク識別子から冪等作成する
44
51
  * reimplement createIfNotExistByIdentifier(2025-03-28~)
52
+ * reimplement runTaskByIdentifier(2026-08-03~)
45
53
  */
46
- createIfNotExistByAlternateName(params: ICreatingTask & {
47
- alternateName: string;
54
+ runTaskByIdentifier(params: ICreatingTask & {
55
+ alternateName?: never;
48
56
  identifier: string;
49
57
  expires?: never;
50
58
  }): Promise<void>;
51
- createOnAssetTransactionStatusChangedTaskIfNotExist(params: Pick<factory.task.IAttributes<factory.taskName.OnAssetTransactionStatusChanged>, 'data' | 'executionResults' | 'name' | 'numberOfTried' | 'project' | 'remainingNumberOfTries' | 'runsAt' | 'status'>): Promise<void>;
52
- /**
53
- * Ready -> remainingNumberOfTriesが1減る
54
- * Running -> findOneするだけ
55
- */
56
- executeOneById(params: {
57
- id: string;
58
- status: factory.taskStatus.Ready | factory.taskStatus.Running;
59
- executor: {
60
- name: string;
61
- };
62
- expires?: Date;
63
- }): Promise<IExecutableTask<factory.taskName> | null>;
64
- /**
65
- * Readyのタスクをname指定でひとつRunningに変更する
66
- */
67
- executeOneIfExists(params: {
68
- name: {
69
- $eq: factory.taskName;
70
- };
71
- executor: {
72
- name: string;
73
- };
74
- runsAt: {
75
- $lt: Date;
76
- };
77
- sort: {
78
- numberOfTried?: factory.sortType;
79
- runsAt?: factory.sortType;
80
- };
81
- }): Promise<IExecutableTask<factory.taskName> | null>;
82
- /**
83
- * add(2025-03-16~)
84
- */
85
- countPotentiallyRunning(params: {
86
- name?: {
87
- $eq?: factory.taskName;
88
- $in?: factory.taskName[];
89
- };
90
- runsAt: {
91
- $lt: Date;
92
- };
93
- limit?: number;
94
- }): Promise<{
95
- count: number;
96
- }>;
97
- /**
98
- * 実行日時を一定期間過ぎたReadyタスクについて、Runningスタータスに変更した上で、Runningイベントを発生させる
99
- */
100
- emitRunningIfExists(params: {
101
- /**
102
- * 必ずタスク名指定で実行する
103
- */
104
- name: {
105
- $eq: factory.taskName;
106
- $in?: never;
107
- } | {
108
- $eq?: never;
109
- $in: factory.taskName[];
110
- };
111
- runsAt: {
112
- $lt: Date;
113
- };
114
- sort: {
115
- numberOfTried?: factory.sortType;
116
- runsAt?: factory.sortType;
117
- };
118
- executor: {
119
- name: string;
120
- };
121
- nameFilterBeforeRunsAt: boolean;
122
- }): Promise<Pick<factory.task.ITask<factory.taskName>, 'id' | 'name'> | null>;
123
- /**
124
- * Readyのままで期限切れのタスクをExpiredに変更する
125
- */
126
- makeExpiredMany(params: {
127
- expiresLt: Date;
128
- }): Promise<UpdateWriteOpResult>;
129
- /**
130
- * Runningのまま一定期間超過し、かつ、remainingNumberOfTries>0のタスクをReadyに変更する
131
- */
132
- retryMany(params: {
133
- intervalInMinutes: number;
134
- /**
135
- * リトライ条件に残り試行回数条件を追加する
136
- * 十分に小さい数値を指定すれば、実質残り試行回数に関係なくRunningがReadyに変更されることになる
137
- */
138
- remainingNumberOfTries: {
139
- $gte?: number;
140
- $lte?: number;
141
- };
142
- name: {
143
- $in?: factory.taskName[];
144
- };
145
- }): Promise<UpdateWriteOpResult>;
146
59
  /**
147
60
  * 実行中止済タスクを強制的にリトライ
148
61
  * 中止済タスクでなければ何もしない
@@ -150,66 +63,6 @@ export declare class TaskRepo {
150
63
  retryForciblyIfAborted(params: {
151
64
  id: string;
152
65
  remainingNumberOfTries: number;
153
- }): Promise<UpdateWriteOpResult>;
154
- abortMany(params: {
155
- intervalInMinutes: number;
156
- name: {
157
- $in?: factory.taskName[];
158
- };
159
- }): Promise<UpdateWriteOpResult>;
160
- /**
161
- * タスクIDから実行結果とステータスを保管する
162
- * Abortedの場合、dateAbortedもセットする
163
- */
164
- setExecutionResultAndStatus(params: {
165
- /**
166
- * タスクID
167
- */
168
- id: string;
169
- remainingNumberOfTries: number;
170
- name: factory.taskName;
171
- }, update: {
172
- status: factory.taskStatus.Executed | factory.taskStatus.Running | factory.taskStatus.Aborted;
173
- executionResult: factory.task.IExecutionResult;
174
- }, next?: INextFunction): Promise<void>;
175
- /**
176
- * タスクの状態を参照する
177
- * 非同期アクション移行が完了したら廃止する(2026-07-29~)
178
- */
179
- findTaskById(params: {
180
- id: {
181
- $eq: string;
182
- };
183
- project: {
184
- id: {
185
- $eq: string;
186
- };
187
- };
188
- name: factory.taskName;
189
- }, inclusion: IKeyOfProjection[]): Promise<(IDocType & {
190
- id: string;
191
- } | undefined)>;
192
- deleteByProject(params: {
193
- project: {
194
- id: string;
195
- };
196
- }): Promise<void>;
197
- /**
198
- * 不要なタスクを削除する
199
- */
200
- deleteRunsAtPassedCertainPeriod(params: {
201
- runsAt: {
202
- $lt: Date;
203
- };
204
- }): Promise<import("mongodb").DeleteResult>;
205
- countDelayedTasks(params: {
206
- delayInSeconds: number;
207
- name: {
208
- $nin?: factory.taskName[];
209
- };
210
- limit?: number;
211
- }): Promise<{
212
- count: number;
213
- }>;
66
+ }): Promise<import("mongoose").UpdateWriteOpResult>;
214
67
  }
215
68
  export {};