@chevre/domain 26.0.0-alpha.12 → 26.0.0-alpha.13
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.
- package/lib/chevre/repo/adminTask.d.ts +3 -3
- package/lib/chevre/repo/adminTask.js +2 -1
- package/lib/chevre/repo/mongoose/schemas/setting.d.ts +1 -2
- package/lib/chevre/repo/mongoose/schemas/task.d.ts +1 -4
- package/lib/chevre/repo/mongoose/schemas/task.js +1 -1
- package/lib/chevre/repo/task.d.ts +3 -3
- package/lib/chevre/repo/task.js +3 -3
- package/lib/chevre/service/task.d.ts +2 -2
- package/lib/chevre/service/task.js +5 -5
- package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.d.ts +1 -1
- package/lib/chevre/service/transaction/placeOrder/exportTasksById.js +11 -17
- package/lib/chevre/service/transaction/returnOrder.js +11 -17
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { AnyKeys, Connection, FilterQuery, ProjectionType } from 'mongoose';
|
|
2
2
|
import { factory } from '../factory';
|
|
3
3
|
import { IDocType } from './mongoose/schemas/task';
|
|
4
|
-
type IKeyOfProjection = keyof factory.task.ITask<factory.taskName
|
|
4
|
+
type IKeyOfProjection = keyof factory.task.ITask<factory.taskName>;
|
|
5
5
|
/**
|
|
6
6
|
* タスク管理リポジトリ
|
|
7
7
|
*/
|
|
@@ -17,13 +17,13 @@ export declare class AdminTaskRepo {
|
|
|
17
17
|
*/
|
|
18
18
|
findTasks(params: factory.task.ISearchConditions, inclusion: IKeyOfProjection[]): Promise<factory.task.ITask<factory.taskName>[]>;
|
|
19
19
|
getCursor(conditions: FilterQuery<factory.task.ITask<factory.taskName>>, projection: ProjectionType<factory.task.ITask<factory.taskName>>): import("mongoose").Cursor<import("mongoose").Document<unknown, Record<string, never>, IDocType, import("./mongoose/virtuals").IVirtuals, {}> & Omit<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, "id"> & {
|
|
20
|
-
expires?:
|
|
20
|
+
expires?: never;
|
|
21
21
|
} & {
|
|
22
22
|
_id: import("mongoose").Types.ObjectId;
|
|
23
23
|
} & {
|
|
24
24
|
__v: number;
|
|
25
25
|
}, import("mongoose").QueryOptions<IDocType>, (import("mongoose").Document<unknown, Record<string, never>, IDocType, import("./mongoose/virtuals").IVirtuals, {}> & Omit<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, "id"> & {
|
|
26
|
-
expires?:
|
|
26
|
+
expires?: never;
|
|
27
27
|
} & {
|
|
28
28
|
_id: import("mongoose").Types.ObjectId;
|
|
29
29
|
} & {
|
|
@@ -4,6 +4,7 @@ exports.AdminTaskRepo = void 0;
|
|
|
4
4
|
const factory_1 = require("../factory");
|
|
5
5
|
const settings_1 = require("../settings");
|
|
6
6
|
const task_1 = require("./mongoose/schemas/task");
|
|
7
|
+
// | 'expires'; // 非同期アクションは移行につきexpires廃止(2026-08-05~)
|
|
7
8
|
const AVAILABLE_PROJECT_FIELDS = [
|
|
8
9
|
'alternateName',
|
|
9
10
|
'identifier',
|
|
@@ -19,7 +20,7 @@ const AVAILABLE_PROJECT_FIELDS = [
|
|
|
19
20
|
'executor',
|
|
20
21
|
'data',
|
|
21
22
|
'dateAborted',
|
|
22
|
-
'expires'
|
|
23
|
+
// 'expires' // 非同期アクションは移行につきexpires廃止(2026-08-05~)
|
|
23
24
|
];
|
|
24
25
|
/**
|
|
25
26
|
* タスク管理リポジトリ
|
|
@@ -32,8 +32,7 @@ interface IOnEventChanged {
|
|
|
32
32
|
informEvent2agg?: factory.project.IInformParams[];
|
|
33
33
|
}
|
|
34
34
|
export interface IStorageSettings {
|
|
35
|
-
|
|
36
|
-
deleteTransactionTaskExpiresInDays?: number;
|
|
35
|
+
deleteTransactionTaskExpiresInDays: number;
|
|
37
36
|
/**
|
|
38
37
|
* 取引保管期間(Confirmed)
|
|
39
38
|
* default:365
|
|
@@ -2,10 +2,7 @@ import { IndexDefinition, IndexOptions, Model, Schema, SchemaDefinition } from '
|
|
|
2
2
|
import { IVirtuals } from '../virtuals';
|
|
3
3
|
import { factory } from '../../../factory';
|
|
4
4
|
type IDocType = Omit<factory.task.ITask<factory.taskName>, 'id'> & {
|
|
5
|
-
|
|
6
|
-
* 非同期アクション移行前のタスクには残っている(2026-07-29時点)
|
|
7
|
-
*/
|
|
8
|
-
expires?: Date;
|
|
5
|
+
expires?: never;
|
|
9
6
|
};
|
|
10
7
|
type IModel = Model<IDocType, Record<string, never>, Record<string, never>, IVirtuals>;
|
|
11
8
|
type ISchemaDefinition = SchemaDefinition<IDocType>;
|
|
@@ -22,7 +22,7 @@ const schemaDefinition = {
|
|
|
22
22
|
executor: mongoose_1.SchemaTypes.Mixed,
|
|
23
23
|
data: mongoose_1.SchemaTypes.Mixed,
|
|
24
24
|
dateAborted: Date,
|
|
25
|
-
expires: Date // add(2024-04-23~)
|
|
25
|
+
// expires: Date // add(2024-04-23~) // 非同期アクションは移行につきexpires廃止(2026-08-05~)
|
|
26
26
|
};
|
|
27
27
|
const schemaOptions = {
|
|
28
28
|
autoIndex: settings_1.MONGO_AUTO_INDEX,
|
|
@@ -7,7 +7,7 @@ import type { IExecutableTask } from '../taskSettings';
|
|
|
7
7
|
* リトライ可能なタスク作成属性
|
|
8
8
|
*/
|
|
9
9
|
type ICreatingTask = Pick<factory.task.IAttributes<factory.taskName>, 'data' | 'executionResults' | 'name' | 'numberOfTried' | 'project' | 'remainingNumberOfTries' | 'runsAt' | 'status' | 'identifier' | 'description'> & {
|
|
10
|
-
expires?:
|
|
10
|
+
expires?: never;
|
|
11
11
|
};
|
|
12
12
|
/**
|
|
13
13
|
* タスクリポジトリ
|
|
@@ -42,7 +42,7 @@ export declare class TaskRepo {
|
|
|
42
42
|
id: string;
|
|
43
43
|
};
|
|
44
44
|
}): Promise<(import("mongoose").Document<unknown, Record<string, never>, IDocType, import("./mongoose/virtuals").IVirtuals, {}> & Omit<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, "id"> & {
|
|
45
|
-
expires?:
|
|
45
|
+
expires?: never;
|
|
46
46
|
} & {
|
|
47
47
|
_id: import("mongoose").Types.ObjectId;
|
|
48
48
|
} & {
|
|
@@ -69,7 +69,7 @@ export declare class TaskRepo {
|
|
|
69
69
|
executor: {
|
|
70
70
|
name: string;
|
|
71
71
|
};
|
|
72
|
-
expires?:
|
|
72
|
+
expires?: never;
|
|
73
73
|
}): Promise<IExecutableTask<factory.taskName> | null>;
|
|
74
74
|
/**
|
|
75
75
|
* 潜在的に実行されるべきタスクをカウントする
|
package/lib/chevre/repo/task.js
CHANGED
|
@@ -21,7 +21,7 @@ const executableTaskProjection = {
|
|
|
21
21
|
project: 1,
|
|
22
22
|
remainingNumberOfTries: 1,
|
|
23
23
|
runsAt: 1,
|
|
24
|
-
expires: 1
|
|
24
|
+
// expires: 1 // 非同期アクションは移行につきexpires廃止(2026-08-05~)
|
|
25
25
|
};
|
|
26
26
|
/**
|
|
27
27
|
* タスクリポジトリ
|
|
@@ -229,7 +229,7 @@ class TaskRepo {
|
|
|
229
229
|
_id: { $eq: params.id },
|
|
230
230
|
status: { $eq: params.status },
|
|
231
231
|
runsAt: { $lt: now },
|
|
232
|
-
...(params.expires instanceof Date) ? { expires: { $gt: now } } : undefined
|
|
232
|
+
// ...(params.expires instanceof Date) ? { expires: { $gt: now } } : undefined // 非同期アクションは移行につきexpires廃止(2026-08-05~)
|
|
233
233
|
}, executableTaskProjection)
|
|
234
234
|
.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
|
|
235
235
|
.lean()
|
|
@@ -240,7 +240,7 @@ class TaskRepo {
|
|
|
240
240
|
_id: { $eq: params.id },
|
|
241
241
|
status: { $eq: params.status },
|
|
242
242
|
runsAt: { $lt: now },
|
|
243
|
-
...(params.expires instanceof Date) ? { expires: { $gt: now } } : undefined
|
|
243
|
+
// ...(params.expires instanceof Date) ? { expires: { $gt: now } } : undefined // 非同期アクションは移行につきexpires廃止(2026-08-05~)
|
|
244
244
|
}, {
|
|
245
245
|
$set: {
|
|
246
246
|
status: factory_1.factory.taskStatus.Running, // 実行中に変更
|
|
@@ -7,7 +7,7 @@ type IOperation<T> = (settings: IExecuteSettings) => Promise<T>;
|
|
|
7
7
|
/**
|
|
8
8
|
* タスク変更イベントを受けて実行する
|
|
9
9
|
*/
|
|
10
|
-
declare function
|
|
10
|
+
declare function executeTaskById(params: (Pick<IReadyTask, 'id' | 'status'> | Pick<IRunningTask, 'id' | 'status'>) & {
|
|
11
11
|
executor: {
|
|
12
12
|
/**
|
|
13
13
|
* タスク実行者名称
|
|
@@ -15,4 +15,4 @@ declare function executeById(params: (IReadyTask | IRunningTask) & {
|
|
|
15
15
|
name: string;
|
|
16
16
|
};
|
|
17
17
|
}, next?: INextFunction): IOperation<void>;
|
|
18
|
-
export {
|
|
18
|
+
export { executeTaskById, };
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.executeTaskById = executeTaskById;
|
|
7
7
|
/**
|
|
8
8
|
* タスクサービス
|
|
9
9
|
*/
|
|
@@ -13,10 +13,10 @@ const debug = (0, debug_1.default)('chevre-domain:service:task');
|
|
|
13
13
|
/**
|
|
14
14
|
* タスク変更イベントを受けて実行する
|
|
15
15
|
*/
|
|
16
|
-
function
|
|
16
|
+
function executeTaskById(params, next) {
|
|
17
17
|
return async (settings) => {
|
|
18
18
|
const taskRepo = new (await import('../repo/task.js')).TaskRepo(settings.connection);
|
|
19
|
-
const { id, status, executor
|
|
19
|
+
const { id, status, executor } = params;
|
|
20
20
|
let task = null;
|
|
21
21
|
try {
|
|
22
22
|
// support status: Running(2025-03-05~)
|
|
@@ -24,12 +24,12 @@ function executeById(params, next) {
|
|
|
24
24
|
id,
|
|
25
25
|
status,
|
|
26
26
|
executor: { name: executor.name },
|
|
27
|
-
...(expires instanceof Date) ? { expires } : undefined
|
|
27
|
+
// ...(expires instanceof Date) ? { expires } : undefined // 非同期アクションは移行につきexpires廃止(2026-08-05~)
|
|
28
28
|
});
|
|
29
29
|
}
|
|
30
30
|
catch (error) {
|
|
31
31
|
/* istanbul ignore next */
|
|
32
|
-
debug('service.task.
|
|
32
|
+
debug('service.task.executeTaskById error:', error);
|
|
33
33
|
}
|
|
34
34
|
// タスクがなければ終了
|
|
35
35
|
if (task !== null) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { factory } from '../../../../factory';
|
|
2
2
|
import type { ISetting } from '../../../../repo/setting';
|
|
3
|
-
type IPlaceOrderPotentialTask = factory.task.IAttributes<factory.taskName.PlaceOrder> | factory.task.IAttributes<factory.taskName.VoidPayTransaction> | factory.task.voidReserveTransaction.IAttributes
|
|
3
|
+
type IPlaceOrderPotentialTask = factory.task.IAttributes<factory.taskName.PlaceOrder> | factory.task.IAttributes<factory.taskName.VoidPayTransaction> | Omit<factory.task.voidReserveTransaction.IAttributes, 'expires'>;
|
|
4
4
|
/**
|
|
5
5
|
* 取引のタスクを作成する
|
|
6
6
|
* 取引削除タスクを分離(2026-08-02~)
|
|
@@ -25,24 +25,18 @@ function exportTasksById(params) {
|
|
|
25
25
|
}
|
|
26
26
|
// search settings
|
|
27
27
|
const setting = await repos.setting.findOne({ project: { id: { $eq: '*' } } }, ['storage']);
|
|
28
|
-
const useScheduledDeleteTransactionTask = setting?.storage?.useScheduledDeleteTransactionTask === true;
|
|
29
28
|
const deleteTransactionTaskExpiresInDays = setting?.storage?.deleteTransactionTaskExpiresInDays;
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
// support scheduledTask(2026-08-02~)
|
|
33
|
-
await repos.task.saveMany((0, factory_2.createImmediateTasks)({ transaction, taskRunsAt }));
|
|
34
|
-
await repos.scheduledTask.addScheduledTasks([{
|
|
35
|
-
...deleteTask,
|
|
36
|
-
expires: (0, moment_1.default)(deleteTask.runsAt)
|
|
37
|
-
.add(deleteTransactionTaskExpiresInDays, 'days')
|
|
38
|
-
.toDate()
|
|
39
|
-
}]);
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
await repos.task.saveMany([
|
|
43
|
-
...(0, factory_2.createImmediateTasks)({ transaction, taskRunsAt }),
|
|
44
|
-
deleteTask
|
|
45
|
-
]);
|
|
29
|
+
if (typeof deleteTransactionTaskExpiresInDays !== 'number') {
|
|
30
|
+
throw new factory_1.factory.errors.Internal('settings.storage.deleteTransactionTaskExpiresInDays required');
|
|
46
31
|
}
|
|
32
|
+
const deleteTask = (0, factory_2.createScheduledTasks)({ transaction }, setting);
|
|
33
|
+
// support scheduledTask(2026-08-02~)
|
|
34
|
+
await repos.task.saveMany((0, factory_2.createImmediateTasks)({ transaction, taskRunsAt }));
|
|
35
|
+
await repos.scheduledTask.addScheduledTasks([{
|
|
36
|
+
...deleteTask,
|
|
37
|
+
expires: (0, moment_1.default)(deleteTask.runsAt)
|
|
38
|
+
.add(deleteTransactionTaskExpiresInDays, 'days')
|
|
39
|
+
.toDate()
|
|
40
|
+
}]);
|
|
47
41
|
};
|
|
48
42
|
}
|
|
@@ -167,24 +167,18 @@ function exportTasksById(params) {
|
|
|
167
167
|
}
|
|
168
168
|
// search settings
|
|
169
169
|
const setting = await repos.setting.findOne({ project: { id: { $eq: '*' } } }, ['storage']);
|
|
170
|
-
const useScheduledDeleteTransactionTask = setting?.storage?.useScheduledDeleteTransactionTask === true;
|
|
171
170
|
const deleteTransactionTaskExpiresInDays = setting?.storage?.deleteTransactionTaskExpiresInDays;
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
// support scheduledTask(2026-08-02~)
|
|
175
|
-
await repos.task.saveMany((0, factory_2.createImmediateTasks)({ transaction, taskRunsAt }));
|
|
176
|
-
await repos.scheduledTask.addScheduledTasks([{
|
|
177
|
-
...deleteTask,
|
|
178
|
-
expires: (0, moment_timezone_1.default)(deleteTask.runsAt)
|
|
179
|
-
.add(deleteTransactionTaskExpiresInDays, 'days')
|
|
180
|
-
.toDate()
|
|
181
|
-
}]);
|
|
182
|
-
}
|
|
183
|
-
else {
|
|
184
|
-
await repos.task.saveMany([
|
|
185
|
-
...(0, factory_2.createImmediateTasks)({ transaction, taskRunsAt }),
|
|
186
|
-
deleteTask
|
|
187
|
-
]);
|
|
171
|
+
if (typeof deleteTransactionTaskExpiresInDays !== 'number') {
|
|
172
|
+
throw new factory_1.factory.errors.Internal('settings.storage.deleteTransactionTaskExpiresInDays required');
|
|
188
173
|
}
|
|
174
|
+
const deleteTask = (0, factory_2.createScheduledTasks)({ transaction }, setting);
|
|
175
|
+
// support scheduledTask(2026-08-02~)
|
|
176
|
+
await repos.task.saveMany((0, factory_2.createImmediateTasks)({ transaction, taskRunsAt }));
|
|
177
|
+
await repos.scheduledTask.addScheduledTasks([{
|
|
178
|
+
...deleteTask,
|
|
179
|
+
expires: (0, moment_timezone_1.default)(deleteTask.runsAt)
|
|
180
|
+
.add(deleteTransactionTaskExpiresInDays, 'days')
|
|
181
|
+
.toDate()
|
|
182
|
+
}]);
|
|
189
183
|
};
|
|
190
184
|
}
|
package/package.json
CHANGED