@chevre/domain 22.11.0-alpha.3 → 22.11.0-alpha.30

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 (155) hide show
  1. package/example/src/chevre/aggregation/aggregateTasks.ts +41 -0
  2. package/example/src/chevre/assetTransaction/processReserve.ts +0 -1
  3. package/example/src/chevre/notifyAbortedTasksByEmail.ts +1 -1
  4. package/example/src/chevre/reIndex.ts +1 -1
  5. package/example/src/chevre/roles/addAdminPermissionIfNotExists.ts +132 -0
  6. package/example/src/chevre/roles/addDefaultPermissionIfNotExists.ts +37 -0
  7. package/example/src/chevre/roles/addEventOfferPermissionIfNotExists.ts +27 -0
  8. package/example/src/chevre/roles/addPermissionIfNotExists.ts +39 -6
  9. package/example/src/chevre/roles/addProjectCreatorRole.ts +48 -0
  10. package/example/src/chevre/roles/assignGlobalRoles.ts +72 -0
  11. package/example/src/chevre/roles/findPermissions.ts +84 -0
  12. package/example/src/chevre/roles/findRoleNames.ts +117 -0
  13. package/example/src/chevre/roles/removeConsolePermissionIfExists.ts +38 -0
  14. package/example/src/chevre/roles/removePermissionFromAPIRoles.ts +46 -0
  15. package/example/src/chevre/roles/removePermissionIfExists.ts +39 -0
  16. package/example/src/chevre/settings/addSettings.ts +31 -17
  17. package/example/src/chevre/stockHolder/checkRedisKeyCount.ts +11 -20
  18. package/example/src/chevre/task/countPotentiallyRunning.ts +41 -0
  19. package/example/src/chevre/task/countTasks.ts +51 -0
  20. package/example/src/chevre/unsetUnnecessaryFields.ts +8 -5
  21. package/example/src/idaas/auth0/adminApplications.ts +183 -0
  22. package/example/src/idaas/auth0/getToken.ts +55 -0
  23. package/example/src/idaas/auth0/getTokenByPrivateKeyJWT.ts +84 -0
  24. package/example/src/regex.ts +31 -0
  25. package/lib/chevre/eventEmitter/task.d.ts +29 -6
  26. package/lib/chevre/index.d.ts +0 -2
  27. package/lib/chevre/index.js +0 -10
  28. package/lib/chevre/repo/confirmationNumber.d.ts +0 -11
  29. package/lib/chevre/repo/confirmationNumber.js +15 -54
  30. package/lib/chevre/repo/identity.d.ts +11 -33
  31. package/lib/chevre/repo/identity.js +10 -15
  32. package/lib/chevre/repo/member.d.ts +22 -4
  33. package/lib/chevre/repo/member.js +81 -27
  34. package/lib/chevre/repo/mongoose/schemas/identity.d.ts +1 -1
  35. package/lib/chevre/repo/mongoose/schemas/member/global.d.ts +14 -0
  36. package/lib/chevre/repo/mongoose/schemas/member/global.js +82 -0
  37. package/lib/chevre/repo/mongoose/schemas/setting.d.ts +15 -0
  38. package/lib/chevre/repo/mongoose/schemas/setting.js +1 -0
  39. package/lib/chevre/repo/mongoose/schemas/task.js +9 -0
  40. package/lib/chevre/repo/orderNumber.d.ts +0 -11
  41. package/lib/chevre/repo/orderNumber.js +13 -51
  42. package/lib/chevre/repo/role.d.ts +16 -4
  43. package/lib/chevre/repo/role.js +71 -32
  44. package/lib/chevre/repo/serviceOutputIdentifier.d.ts +0 -4
  45. package/lib/chevre/repo/serviceOutputIdentifier.js +13 -38
  46. package/lib/chevre/repo/setting.d.ts +5 -10
  47. package/lib/chevre/repo/setting.js +4 -7
  48. package/lib/chevre/repo/stockHolder.js +0 -11
  49. package/lib/chevre/repo/task.d.ts +47 -34
  50. package/lib/chevre/repo/task.js +116 -292
  51. package/lib/chevre/repo/transaction.js +10 -10
  52. package/lib/chevre/repo/transactionNumber.d.ts +0 -11
  53. package/lib/chevre/repo/transactionNumber.js +13 -51
  54. package/lib/chevre/repo/transactionNumberCounter.d.ts +0 -10
  55. package/lib/chevre/repo/transactionNumberCounter.js +34 -29
  56. package/lib/chevre/service/assetTransaction/cancelReservation/start.d.ts +1 -1
  57. package/lib/chevre/service/code.d.ts +5 -28
  58. package/lib/chevre/service/code.js +3 -79
  59. package/lib/chevre/service/iam.d.ts +17 -7
  60. package/lib/chevre/service/iam.js +26 -6
  61. package/lib/chevre/service/notification/notifyAbortedTasksByEmail.d.ts +15 -0
  62. package/lib/chevre/service/notification/notifyAbortedTasksByEmail.js +38 -0
  63. package/lib/chevre/service/notification.d.ts +2 -1
  64. package/lib/chevre/service/notification.js +3 -1
  65. package/lib/chevre/service/task/acceptCOAOffer.d.ts +1 -1
  66. package/lib/chevre/service/task/acceptCOAOffer.js +6 -5
  67. package/lib/chevre/service/task/aggregateOffers.d.ts +1 -1
  68. package/lib/chevre/service/task/aggregateOnSystem.d.ts +4 -2
  69. package/lib/chevre/service/task/aggregateScreeningEvent.d.ts +1 -1
  70. package/lib/chevre/service/task/authorizePayment.d.ts +1 -1
  71. package/lib/chevre/service/task/authorizePayment.js +7 -6
  72. package/lib/chevre/service/task/cancelMoneyTransfer.d.ts +1 -1
  73. package/lib/chevre/service/task/cancelPendingReservation.d.ts +1 -1
  74. package/lib/chevre/service/task/cancelReservation.d.ts +1 -1
  75. package/lib/chevre/service/task/checkMovieTicket.d.ts +1 -1
  76. package/lib/chevre/service/task/checkMovieTicket.js +4 -3
  77. package/lib/chevre/service/task/checkResource.d.ts +1 -1
  78. package/lib/chevre/service/task/confirmMoneyTransfer.d.ts +1 -1
  79. package/lib/chevre/service/task/confirmPayTransaction.d.ts +1 -1
  80. package/lib/chevre/service/task/confirmRegisterService.d.ts +1 -1
  81. package/lib/chevre/service/task/confirmRegisterServiceTransaction.d.ts +1 -1
  82. package/lib/chevre/service/task/confirmReserveTransaction.d.ts +1 -1
  83. package/lib/chevre/service/task/createAccountingReport.d.ts +1 -1
  84. package/lib/chevre/service/task/createEvent.d.ts +1 -1
  85. package/lib/chevre/service/task/deletePerson.d.ts +1 -1
  86. package/lib/chevre/service/task/deleteTransaction.d.ts +1 -1
  87. package/lib/chevre/service/task/givePointAward.d.ts +1 -1
  88. package/lib/chevre/service/task/givePointAward.js +1 -1
  89. package/lib/chevre/service/task/handleNotification.d.ts +4 -2
  90. package/lib/chevre/service/task/importEventCapacitiesFromCOA.d.ts +1 -1
  91. package/lib/chevre/service/task/importEventsFromCOA.d.ts +1 -1
  92. package/lib/chevre/service/task/importOffersFromCOA.d.ts +1 -1
  93. package/lib/chevre/service/task/invalidatePaymentUrl.d.ts +1 -1
  94. package/lib/chevre/service/task/moneyTransfer.d.ts +1 -1
  95. package/lib/chevre/service/task/moneyTransfer.js +1 -1
  96. package/lib/chevre/service/task/onAssetTransactionStatusChanged.d.ts +1 -1
  97. package/lib/chevre/service/task/onAuthorizationCreated.d.ts +1 -1
  98. package/lib/chevre/service/task/onEventChanged.d.ts +1 -1
  99. package/lib/chevre/service/task/onOrderPaymentCompleted.d.ts +1 -1
  100. package/lib/chevre/service/task/onResourceUpdated.d.ts +1 -1
  101. package/lib/chevre/service/task/pay.d.ts +1 -1
  102. package/lib/chevre/service/task/placeOrder.d.ts +1 -1
  103. package/lib/chevre/service/task/publishPaymentUrl.d.ts +1 -1
  104. package/lib/chevre/service/task/publishPaymentUrl.js +6 -7
  105. package/lib/chevre/service/task/refund.d.ts +1 -1
  106. package/lib/chevre/service/task/refund.js +1 -1
  107. package/lib/chevre/service/task/registerService.d.ts +1 -1
  108. package/lib/chevre/service/task/reserve.d.ts +1 -1
  109. package/lib/chevre/service/task/returnMoneyTransfer.d.ts +1 -1
  110. package/lib/chevre/service/task/returnMoneyTransfer.js +1 -1
  111. package/lib/chevre/service/task/returnOrder.d.ts +1 -1
  112. package/lib/chevre/service/task/returnPayTransaction.d.ts +1 -1
  113. package/lib/chevre/service/task/returnPayTransaction.js +1 -1
  114. package/lib/chevre/service/task/returnPointAward.d.ts +1 -1
  115. package/lib/chevre/service/task/returnPointAward.js +1 -1
  116. package/lib/chevre/service/task/returnReserveTransaction.d.ts +1 -1
  117. package/lib/chevre/service/task/returnReserveTransaction.js +1 -1
  118. package/lib/chevre/service/task/sendEmailMessage.d.ts +1 -1
  119. package/lib/chevre/service/task/sendOrder.d.ts +1 -1
  120. package/lib/chevre/service/task/triggerWebhook.d.ts +1 -1
  121. package/lib/chevre/service/task/useReservation.d.ts +1 -1
  122. package/lib/chevre/service/task/voidMoneyTransferTransaction.d.ts +1 -1
  123. package/lib/chevre/service/task/voidPayTransaction.d.ts +1 -1
  124. package/lib/chevre/service/task/voidPayment.d.ts +1 -1
  125. package/lib/chevre/service/task/voidRegisterServiceTransaction.d.ts +1 -1
  126. package/lib/chevre/service/task/voidReserveTransaction.d.ts +1 -1
  127. package/lib/chevre/service/task/voidReserveTransaction.js +4 -3
  128. package/lib/chevre/service/task.d.ts +7 -29
  129. package/lib/chevre/service/task.js +9 -114
  130. package/lib/chevre/service/taskHandler/onOperationFailed/informTaskIfNeeded.d.ts +11 -0
  131. package/lib/chevre/service/taskHandler/onOperationFailed/informTaskIfNeeded.js +105 -0
  132. package/lib/chevre/service/taskHandler/onOperationFailed.d.ts +17 -0
  133. package/lib/chevre/service/taskHandler/onOperationFailed.js +70 -0
  134. package/lib/chevre/service/taskHandler.d.ts +26 -0
  135. package/lib/chevre/service/taskHandler.js +96 -0
  136. package/lib/chevre/service/validation/validateOrder.js +55 -37
  137. package/lib/chevre/service.d.ts +0 -4
  138. package/lib/chevre/service.js +10 -14
  139. package/lib/chevre/settings/aggregation.d.ts +6 -1
  140. package/lib/chevre/settings/aggregation.js +2 -1
  141. package/package.json +5 -3
  142. package/example/src/chevre/adminAuth/adminIdentity.ts +0 -38
  143. package/example/src/chevre/executeOneTask.ts +0 -41
  144. package/example/src/chevre/executeTaskIfExists.ts +0 -80
  145. package/example/src/chevre/findExecutableTask.ts +0 -50
  146. package/example/src/chevre/findSetting.ts +0 -79
  147. package/example/src/chevre/roles/addRoleMembers.ts +0 -75
  148. package/example/src/chevre/searchPermissions.ts +0 -46
  149. package/example/src/chevre/transactionNumber/publishConfimationNumber.ts +0 -37
  150. package/example/src/chevre/transactionNumber/publishOrderNumber.ts +0 -40
  151. package/example/src/chevre/transactionNumber/setUseMongo4confirmationNumberFrom.ts +0 -45
  152. package/example/src/chevre/transactionNumber/setUseMongo4orderNumberFrom.ts +0 -41
  153. package/example/src/chevre/transactionNumber/setUseMongo4transactionNumberFrom.ts +0 -41
  154. package/lib/chevre/adminAuth.d.ts +0 -2
  155. package/lib/chevre/adminAuth.js +0 -6
@@ -1,6 +1,4 @@
1
1
  import type { Connection } from 'mongoose';
2
- import { RedisClientType } from 'redis';
3
- import { ISetting } from './mongoose/schemas/setting';
4
2
  interface IPublishResult {
5
3
  transactionNumber: string;
6
4
  }
@@ -8,10 +6,8 @@ interface IPublishResult {
8
6
  * 取引番号リポジトリ
9
7
  */
10
8
  export declare class TransactionNumberRepo {
11
- private readonly settingModel;
12
9
  private readonly counterRepo;
13
10
  constructor(params: {
14
- redisClient: RedisClientType;
15
11
  connection: Connection;
16
12
  });
17
13
  /**
@@ -20,12 +16,5 @@ export declare class TransactionNumberRepo {
20
16
  publishByTimestamp(params: {
21
17
  startDate: Date;
22
18
  }): Promise<IPublishResult>;
23
- /**
24
- * DB移行時のみに使用目的の設定更新
25
- */
26
- setUseMongo4transactionNumberFrom(params: {
27
- useMongo4transactionNumberFrom: Date;
28
- }): Promise<Pick<ISetting, "useMongo4transactionNumberFrom"> | null>;
29
- private useMongoBySettings;
30
19
  }
31
20
  export {};
@@ -12,9 +12,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.TransactionNumberRepo = void 0;
13
13
  const cdigit = require("cdigit");
14
14
  const moment = require("moment-timezone");
15
+ // import { RedisClientType } from 'redis';
15
16
  // tslint:disable-next-line:no-require-imports no-var-requires
16
17
  const fpe = require('node-fpe');
17
- const setting_1 = require("./mongoose/schemas/setting");
18
+ // import { createSchema as createSettingSchema, modelName as settingModelName } from './mongoose/schemas/setting';
18
19
  const transactionNumber_1 = require("./mongoose/schemas/transactionNumber");
19
20
  const transactionNumberCounter_1 = require("./transactionNumberCounter");
20
21
  /**
@@ -22,8 +23,8 @@ const transactionNumberCounter_1 = require("./transactionNumberCounter");
22
23
  */
23
24
  class TransactionNumberRepo {
24
25
  constructor(params) {
25
- const { connection } = params;
26
- this.settingModel = connection.model(setting_1.modelName, (0, setting_1.createSchema)());
26
+ // const { connection } = params;
27
+ // this.settingModel = connection.model(settingModelName, createSettingSchema());
27
28
  this.counterRepo = new transactionNumberCounter_1.TransactionNumberCounterRepo(params);
28
29
  }
29
30
  // private static createKey(params: {
@@ -47,27 +48,15 @@ class TransactionNumberRepo {
47
48
  let dataFeedExpires;
48
49
  const dataFeedIdentifier = timestamp;
49
50
  let incrReply;
50
- const useMongoBySettings = yield this.useMongoBySettings(params);
51
- if (useMongoBySettings) {
52
- dataFeedExpires = moment(params.startDate)
53
- .add(1, 'minute') // ミリ秒でカウントしていくので、予約日時後1分で十分
54
- .toDate();
55
- incrReply = yield this.counterRepo.incrementByMongo({
56
- identifier: dataFeedIdentifier,
57
- includedInDataCatalog: { identifier: transactionNumber_1.DataCatalogIdentifier.transactionNumber },
58
- expires: dataFeedExpires
59
- });
60
- }
61
- else {
62
- dataFeedExpires = moment(params.startDate)
63
- .add(1, 'minute') // ミリ秒でカウントしていくので、予約日時後1分で十分
64
- .toDate();
65
- incrReply = yield this.counterRepo.incrementByRedis({
66
- identifier: dataFeedIdentifier,
67
- includedInDataCatalog: { identifier: transactionNumber_1.DataCatalogIdentifier.transactionNumber },
68
- expires: dataFeedExpires
69
- });
70
- }
51
+ // const useMongoBySettings = await this.useMongoBySettings(params);
52
+ dataFeedExpires = moment(params.startDate)
53
+ .add(1, 'minute') // ミリ秒でカウントしていくので、予約日時後1分で十分
54
+ .toDate();
55
+ incrReply = yield this.counterRepo.incrementByMongo({
56
+ identifier: dataFeedIdentifier,
57
+ includedInDataCatalog: { identifier: transactionNumber_1.DataCatalogIdentifier.transactionNumber },
58
+ expires: dataFeedExpires
59
+ });
71
60
  let transactionNumber = `${timestamp}${incrReply}`;
72
61
  // checkdigit
73
62
  const cd = cdigit.luhn.compute(transactionNumber);
@@ -77,32 +66,5 @@ class TransactionNumberRepo {
77
66
  return { transactionNumber };
78
67
  });
79
68
  }
80
- /**
81
- * DB移行時のみに使用目的の設定更新
82
- */
83
- setUseMongo4transactionNumberFrom(params) {
84
- return __awaiter(this, void 0, void 0, function* () {
85
- const { useMongo4transactionNumberFrom } = params;
86
- return this.settingModel.findOneAndUpdate({ 'project.id': { $eq: '*' } }, {
87
- $set: { useMongo4transactionNumberFrom }
88
- }, { projection: { _id: 0, useMongo4transactionNumberFrom: 1 } })
89
- .lean()
90
- .exec();
91
- });
92
- }
93
- useMongoBySettings(params) {
94
- return __awaiter(this, void 0, void 0, function* () {
95
- const setting = yield this.settingModel.findOne({ 'project.id': { $eq: '*' } }, {
96
- _id: 0,
97
- useMongo4transactionNumberFrom: 1
98
- })
99
- .lean()
100
- .exec();
101
- const useMongo4transactionNumberFrom = setting === null || setting === void 0 ? void 0 : setting.useMongo4transactionNumberFrom;
102
- return useMongo4transactionNumberFrom instanceof Date
103
- && moment(params.startDate)
104
- .isSameOrAfter(moment(useMongo4transactionNumberFrom));
105
- });
106
- }
107
69
  }
108
70
  exports.TransactionNumberRepo = TransactionNumberRepo;
@@ -1,23 +1,13 @@
1
1
  import type { Connection } from 'mongoose';
2
- import { RedisClientType } from 'redis';
3
2
  import { DataCatalogIdentifier } from './mongoose/schemas/transactionNumber';
4
3
  /**
5
4
  * 取引番号カウンターリポジトリ
6
5
  */
7
6
  export declare class TransactionNumberCounterRepo {
8
- private readonly redisClient;
9
7
  private readonly transactionNumberModel;
10
8
  constructor(params: {
11
- redisClient: RedisClientType;
12
9
  connection: Connection;
13
10
  });
14
- incrementByRedis(params: {
15
- identifier: string;
16
- includedInDataCatalog: {
17
- identifier: DataCatalogIdentifier;
18
- };
19
- expires: Date;
20
- }): Promise<number>;
21
11
  incrementByMongo(params: {
22
12
  identifier: string;
23
13
  includedInDataCatalog: {
@@ -10,6 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.TransactionNumberCounterRepo = void 0;
13
+ // import { RedisClientType } from 'redis';
13
14
  const errorHandler_1 = require("../errorHandler");
14
15
  const factory = require("../factory");
15
16
  const transactionNumber_1 = require("./mongoose/schemas/transactionNumber");
@@ -19,37 +20,41 @@ const MAX_RETRY_INCREMENT = 1;
19
20
  */
20
21
  class TransactionNumberCounterRepo {
21
22
  constructor(params) {
22
- const { redisClient, connection } = params;
23
- this.redisClient = redisClient;
23
+ const { connection } = params;
24
+ // this.redisClient = redisClient;
24
25
  this.transactionNumberModel = connection.model(transactionNumber_1.modelName, (0, transactionNumber_1.createSchema)());
25
26
  }
26
- incrementByRedis(params) {
27
- return __awaiter(this, void 0, void 0, function* () {
28
- // const now = moment();
29
- const { expires } = params;
30
- const key = `${params.includedInDataCatalog.identifier}:${params.identifier}`;
31
- // const TTL = moment(expires)
32
- // .diff(now, 'seconds');
33
- const [incrReply, expireAtReply] = yield this.redisClient.multi()
34
- .incr(key)
35
- // .expire(key, TTL)
36
- .expireAt(key, expires)
37
- .exec();
38
- // tslint:disable-next-line:no-single-line-block-comment
39
- /* istanbul ignore else: please write tests */
40
- if (typeof incrReply !== 'number') {
41
- // 基本的にありえないフロー
42
- throw new factory.errors.Internal('transaction number not incremented unexpectedly');
43
- }
44
- // expireAtReplyの検証も追加する(2023-04-19~)
45
- const expiredSet = expireAtReply === 1 || expireAtReply === true;
46
- if (!expiredSet) {
47
- // 基本的にありえないフロー
48
- throw new factory.errors.Internal('transaction number expiration not set unexpectedly');
49
- }
50
- return incrReply;
51
- });
52
- }
27
+ // public async incrementByRedis(params: {
28
+ // identifier: string;
29
+ // includedInDataCatalog: {
30
+ // identifier: DataCatalogIdentifier;
31
+ // };
32
+ // expires: Date;
33
+ // }): Promise<number> {
34
+ // // const now = moment();
35
+ // const { expires } = params;
36
+ // const key = `${params.includedInDataCatalog.identifier}:${params.identifier}`;
37
+ // // const TTL = moment(expires)
38
+ // // .diff(now, 'seconds');
39
+ // const [incrReply, expireAtReply] = await this.redisClient.multi()
40
+ // .incr(key)
41
+ // // .expire(key, TTL)
42
+ // .expireAt(key, expires)
43
+ // .exec();
44
+ // // tslint:disable-next-line:no-single-line-block-comment
45
+ // /* istanbul ignore else: please write tests */
46
+ // if (typeof incrReply !== 'number') {
47
+ // // 基本的にありえないフロー
48
+ // throw new factory.errors.Internal('transaction number not incremented unexpectedly');
49
+ // }
50
+ // // expireAtReplyの検証も追加する(2023-04-19~)
51
+ // const expiredSet = expireAtReply === 1 || <any>expireAtReply === true;
52
+ // if (!expiredSet) {
53
+ // // 基本的にありえないフロー
54
+ // throw new factory.errors.Internal('transaction number expiration not set unexpectedly');
55
+ // }
56
+ // return incrReply;
57
+ // }
53
58
  incrementByMongo(params) {
54
59
  return __awaiter(this, void 0, void 0, function* () {
55
60
  var _a;
@@ -18,7 +18,7 @@ export declare function validateStartParams(params: IStartParams): (repos: {
18
18
  assetTransaction: AssetTransactionRepo;
19
19
  }) => Promise<{
20
20
  reserveTransaction: import("@chevre/factory/lib/assetTransaction/reserve").ITransaction | undefined;
21
- reservations: (Pick<import("@chevre/factory/lib/reservation/event").IReservation, "id" | "typeOf" | "reservationNumber" | "issuedThrough"> & {
21
+ reservations: (Pick<import("@chevre/factory/lib/reservation/event").IReservation, "id" | "typeOf" | "issuedThrough" | "reservationNumber"> & {
22
22
  reservationFor: Pick<factory.reservation.IReservationFor<factory.reservationType.EventReservation>, "id" | "typeOf">;
23
23
  })[] | undefined;
24
24
  }>;
@@ -1,31 +1,8 @@
1
- import type { AuthorizationRepo } from '../repo/authorization';
2
- import type { JWTSettingRepo } from '../repo/setting/jwt';
3
- import type { TicketRepo } from '../repo/ticket';
4
- import * as factory from '../factory';
5
- type IToken = string;
6
- interface IPayload extends Pick<factory.clientUser.IClientUser, 'aud' | 'exp' | 'iat' | 'iss' | 'sub' | 'token_use' | 'typ' | 'version'> {
7
- version: string;
8
- typ: string;
9
- jti?: string;
10
- }
1
+ /**
2
+ * 承認サービス
3
+ * ひとまず不要なので廃止(2025-07-18~)
4
+ */
11
5
  /**
12
6
  * コードをトークンに変換する
13
7
  */
14
- declare function getToken(params: {
15
- agent: {
16
- id: string;
17
- typeOf: factory.creativeWorkType.SoftwareApplication | factory.creativeWorkType.WebApplication | factory.personType.Person;
18
- };
19
- project: {
20
- id: string;
21
- };
22
- code: string;
23
- expiresIn: number;
24
- }): (repos: {
25
- authorization: AuthorizationRepo;
26
- jwtSetting: JWTSettingRepo;
27
- ticket: TicketRepo;
28
- }) => Promise<{
29
- token: IToken;
30
- }>;
31
- export { IPayload, getToken };
8
+ export {};
@@ -1,83 +1,7 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.getToken = getToken;
13
2
  /**
14
3
  * 承認サービス
4
+ * ひとまず不要なので廃止(2025-07-18~)
15
5
  */
16
- const jwt = require("jsonwebtoken");
17
- const factory = require("../factory");
18
- /**
19
- * コードをトークンに変換する
20
- */
21
- function getToken(params) {
22
- return (repos) => __awaiter(this, void 0, void 0, function* () {
23
- var _a;
24
- const jwtSetting = yield repos.jwtSetting.findDefault();
25
- if (typeof params.project.id !== 'string' || params.project.id.length === 0) {
26
- throw new factory.errors.ArgumentNull('project.id');
27
- }
28
- if (typeof params.code !== 'string' || params.code.length === 0) {
29
- throw new factory.errors.ArgumentNull('code');
30
- }
31
- const authorization = yield repos.authorization.findValidOneByCode({
32
- project: { id: params.project.id },
33
- code: params.code
34
- });
35
- // if (typeof params.issuer !== 'string' || params.issuer.length === 0) {
36
- // throw new factory.errors.ArgumentNull('issuer');
37
- // }
38
- let subject;
39
- let typ;
40
- // jti必須化(2024-08-22~)
41
- const { id } = yield repos.ticket.issueByTicketToken(Object.assign({ project: { id: params.project.id }, ticketToken: params.code }, (typeof ((_a = authorization.issuedBy) === null || _a === void 0 ? void 0 : _a.id) === 'string') ? { issuedBy: authorization.issuedBy } : undefined));
42
- const jti = id;
43
- // ロール承認の場合、subjectはメンバーID,typはメンバータイプ
44
- if (authorization.object.typeOf === factory.role.RoleType.OrganizationRole) {
45
- subject = authorization.object.member.id;
46
- typ = `${jwtSetting.payloadTypPrefix}:${authorization.object.member.typeOf}`;
47
- }
48
- else {
49
- // useJtiの場合、subject,typはagent(2024-05-09~)
50
- subject = params.agent.id;
51
- typ = `${jwtSetting.payloadTypPrefix}:${params.agent.typeOf}`;
52
- }
53
- const payload = {
54
- token_use: 'access', // 拡張(2024-05-01~)
55
- version: jwtSetting.version, // 拡張(2024-05-02~)
56
- typ // 拡張(2024-05-07~)
57
- };
58
- const token = yield new Promise((resolve, reject) => {
59
- // 所有権を暗号化する
60
- jwt.sign(payload, jwtSetting.secret, {
61
- algorithm: jwtSetting.algorithm, // 明示的に指定(2024-05-05~)
62
- issuer: jwtSetting.issuer, // 都度指定に変更(2024-05-05~)
63
- expiresIn: params.expiresIn,
64
- subject, // 拡張(2024-05-01~)
65
- audience: jwtSetting.issuer, // 拡張(2024-05-02~)
66
- jwtid: jti // 拡張(2024-05-08~)
67
- }, (err, encoded) => {
68
- if (err instanceof Error) {
69
- reject(err);
70
- }
71
- else {
72
- if (typeof encoded !== 'string') {
73
- reject(new factory.errors.Internal('authorization.object cannot be signed unexpectedly'));
74
- }
75
- else {
76
- resolve(encoded);
77
- }
78
- }
79
- });
80
- });
81
- return { token };
82
- });
83
- }
6
+ // import * as jwt from 'jsonwebtoken';
7
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -8,7 +8,7 @@ export type IPermission = string;
8
8
  /**
9
9
  * プロジェクトメンバーの権限を検索する
10
10
  */
11
- export declare function searchPermissions(params: {
11
+ export declare function findProjectPermissionsByMember(params: {
12
12
  project: {
13
13
  id: string;
14
14
  };
@@ -23,10 +23,20 @@ export declare function searchPermissions(params: {
23
23
  member: MemberRepo;
24
24
  role: RoleRepo;
25
25
  }) => Promise<{
26
- hasRole: {
27
- roleName: string;
28
- }[];
29
- permissions: {
30
- _id: string;
31
- }[];
26
+ roleNames: string[];
27
+ permissions: string[];
28
+ }>;
29
+ /**
30
+ * グローバル権限を検索する
31
+ */
32
+ export declare function findGloablPermissionsByMember(params: {
33
+ member: {
34
+ id: string;
35
+ };
36
+ }): (repos: {
37
+ member: MemberRepo;
38
+ role: RoleRepo;
39
+ }) => Promise<{
40
+ roleNames: string[];
41
+ permissions: string[];
32
42
  }>;
@@ -9,14 +9,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.searchPermissions = searchPermissions;
12
+ exports.findProjectPermissionsByMember = findProjectPermissionsByMember;
13
+ exports.findGloablPermissionsByMember = findGloablPermissionsByMember;
13
14
  /**
14
15
  * プロジェクトメンバーの権限を検索する
15
16
  */
16
- function searchPermissions(params) {
17
+ function findProjectPermissionsByMember(params) {
17
18
  return (repos) => __awaiter(this, void 0, void 0, function* () {
18
19
  let permissions = [];
19
- const hasRole = yield repos.member.aggregateRoleNames({
20
+ // const hasRole = await repos.member.aggregateRoleNames({
21
+ const roleNames = yield repos.member.findRoleNamesByMember({
20
22
  project: { id: { $eq: params.project.id } },
21
23
  member: {
22
24
  id: { $eq: params.member.id },
@@ -26,9 +28,27 @@ function searchPermissions(params) {
26
28
  }
27
29
  }
28
30
  });
29
- if (hasRole.length > 0) {
30
- permissions = yield repos.role.aggregatePermissions({ roleName: { $in: hasRole.map((r) => r.roleName) } });
31
+ if (roleNames.length > 0) {
32
+ // permissions = await repos.role.aggregatePermissions({ roleName: { $in: hasRole.map((r) => r.roleName) } });
33
+ permissions = yield repos.role.findUniquePermissionsByRoleName({ roleName: { $in: roleNames } });
31
34
  }
32
- return { hasRole, permissions };
35
+ return { roleNames, permissions };
36
+ });
37
+ }
38
+ /**
39
+ * グローバル権限を検索する
40
+ */
41
+ function findGloablPermissionsByMember(params) {
42
+ return (repos) => __awaiter(this, void 0, void 0, function* () {
43
+ let permissions = [];
44
+ const roleNames = yield repos.member.findGlobalRoleNamesByMember({
45
+ member: {
46
+ id: { $eq: params.member.id }
47
+ }
48
+ });
49
+ if (roleNames.length > 0) {
50
+ permissions = yield repos.role.findUniquePermissionsByRoleName({ roleName: { $in: roleNames } });
51
+ }
52
+ return { roleNames, permissions };
33
53
  });
34
54
  }
@@ -0,0 +1,15 @@
1
+ import { SendGridCredentials } from '../../credentials/sendGrid';
2
+ import type { TaskRepo } from '../../repo/task';
3
+ import { Settings } from '../../settings';
4
+ /**
5
+ * 中止されたタスクリストをEメールで通知する
6
+ * add(2025-03-13~)
7
+ */
8
+ declare function notifyAbortedTasksByEmail(params: {
9
+ dateAbortedGte: Date;
10
+ }): (repos: {
11
+ task: TaskRepo;
12
+ }, settings: Pick<Settings, "abortedTasksWithoutReport">, credentials: {
13
+ sendGrid: SendGridCredentials;
14
+ }) => Promise<void>;
15
+ export { notifyAbortedTasksByEmail };
@@ -0,0 +1,38 @@
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.notifyAbortedTasksByEmail = notifyAbortedTasksByEmail;
13
+ const createDebug = require("debug");
14
+ const factory = require("../../factory");
15
+ const factory_1 = require("./factory");
16
+ const notifyByEmail_1 = require("./notifyByEmail");
17
+ const debug = createDebug('chevre-domain:service:notification');
18
+ /**
19
+ * 中止されたタスクリストをEメールで通知する
20
+ * add(2025-03-13~)
21
+ */
22
+ function notifyAbortedTasksByEmail(params) {
23
+ return (repos, settings, credentials) => __awaiter(this, void 0, void 0, function* () {
24
+ const { abortedTasksWithoutReport } = settings;
25
+ const abortedTasks = yield repos.task.projectFields(Object.assign({ status: { $eq: factory.taskStatus.Aborted }, dateAborted: { $gte: params.dateAbortedGte } }, (abortedTasksWithoutReport.length > 0)
26
+ ? { name: { $nin: abortedTasksWithoutReport } }
27
+ : undefined), []);
28
+ if (abortedTasks.length > 0) {
29
+ // 開発者へ報告
30
+ const message = (0, factory_1.tasks2lineNotify)({ tasks: abortedTasks });
31
+ const notifyResult = yield (0, notifyByEmail_1.notifyByEmail)({
32
+ subject: message.subject, content: message.content,
33
+ logLevel: 'error'
34
+ })({}, credentials);
35
+ debug('notifyResult:', notifyResult);
36
+ }
37
+ });
38
+ }
@@ -1,4 +1,5 @@
1
+ import { notifyAbortedTasksByEmail } from './notification/notifyAbortedTasksByEmail';
1
2
  import { notifyByEmail } from './notification/notifyByEmail';
2
3
  import { sendEmailMessage } from './notification/sendEmailMessage';
3
4
  import { triggerWebhook } from './notification/triggerWebhook';
4
- export { notifyByEmail, sendEmailMessage, triggerWebhook };
5
+ export { notifyAbortedTasksByEmail, notifyByEmail, sendEmailMessage, triggerWebhook };
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.triggerWebhook = exports.sendEmailMessage = exports.notifyByEmail = void 0;
3
+ exports.triggerWebhook = exports.sendEmailMessage = exports.notifyByEmail = exports.notifyAbortedTasksByEmail = void 0;
4
+ const notifyAbortedTasksByEmail_1 = require("./notification/notifyAbortedTasksByEmail");
5
+ Object.defineProperty(exports, "notifyAbortedTasksByEmail", { enumerable: true, get: function () { return notifyAbortedTasksByEmail_1.notifyAbortedTasksByEmail; } });
4
6
  const notifyByEmail_1 = require("./notification/notifyByEmail");
5
7
  Object.defineProperty(exports, "notifyByEmail", { enumerable: true, get: function () { return notifyByEmail_1.notifyByEmail; } });
6
8
  const sendEmailMessage_1 = require("./notification/sendEmailMessage");
@@ -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
  */
@@ -19,7 +19,7 @@ const orderNumber_1 = require("../../repo/orderNumber");
19
19
  const project_1 = require("../../repo/project");
20
20
  const reserveInterface_1 = require("../../repo/reserveInterface");
21
21
  const transaction_1 = require("../../repo/transaction");
22
- const transactionProcess_1 = require("../../repo/transactionProcess");
22
+ // import { TransactionProcessRepo } from '../../repo/transactionProcess';
23
23
  const acceptOffer_1 = require("../offer/eventServiceByCOA/acceptOffer");
24
24
  let coaAuthClient;
25
25
  /**
@@ -62,7 +62,7 @@ function call(params) {
62
62
  coaAuthClient = new COA.auth.RefreshToken(Object.assign(Object.assign({}, credentials), (credentialsRepo !== undefined) ? { credentialsRepo } : undefined));
63
63
  }
64
64
  const actionRepo = new action_1.ActionRepo(connection);
65
- const transactionProcessRepo = new transactionProcess_1.TransactionProcessRepo(redisClient, { lockExpiresInSeconds: 120 });
65
+ // const transactionProcessRepo = new TransactionProcessRepo(redisClient, { lockExpiresInSeconds: 120 });
66
66
  try {
67
67
  const reserveService = new COA.service.Reserve({
68
68
  endpoint: coaAuthClient.options.endpoint, // same as authClient(2024-07-17~)
@@ -86,7 +86,7 @@ function call(params) {
86
86
  })({
87
87
  action: actionRepo,
88
88
  event: new event_1.EventRepo(connection),
89
- orderNumber: new orderNumber_1.OrderNumberRepo({ redisClient, connection }),
89
+ orderNumber: new orderNumber_1.OrderNumberRepo({ connection }),
90
90
  project: new project_1.ProjectRepo(connection),
91
91
  transaction: new transaction_1.TransactionRepo(connection),
92
92
  reserveService,
@@ -104,7 +104,7 @@ function call(params) {
104
104
  })({
105
105
  action: actionRepo,
106
106
  event: new event_1.EventRepo(connection),
107
- orderNumber: new orderNumber_1.OrderNumberRepo({ redisClient, connection }),
107
+ orderNumber: new orderNumber_1.OrderNumberRepo({ connection }),
108
108
  project: new project_1.ProjectRepo(connection),
109
109
  transaction: new transaction_1.TransactionRepo(connection),
110
110
  reserveService,
@@ -128,8 +128,9 @@ function call(params) {
128
128
  }
129
129
  }
130
130
  finally {
131
+ // taskRepo.runImmediatelyのnextパラメータでの解決へ移行したためここでの解除は不要(2025-07-12~)
131
132
  // 取引プロセスロック解除
132
- yield transactionProcessRepo.unlock({ typeOf: factory.transactionType.PlaceOrder, id: params.data.purpose.id });
133
+ // await transactionProcessRepo.unlock({ typeOf: factory.transactionType.PlaceOrder, id: params.data.purpose.id });
133
134
  }
134
135
  });
135
136
  }
@@ -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,3 +1,5 @@
1
1
  import * as factory from '../../factory';
2
- import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../task';
3
- export declare function call(params: Pick<factory.task.aggregateOnSystem.ITask, IExecutableTaskKeys>): IOperationExecute<ICallResult>;
2
+ import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../taskHandler';
3
+ export declare function call(params: Pick<factory.task.aggregateOnSystem.ITask, IExecutableTaskKeys> & {
4
+ status: factory.taskStatus.Running;
5
+ }): IOperationExecute<ICallResult>;
@@ -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 { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../task';
1
+ import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../taskHandler';
2
2
  import * as factory from '../../factory';
3
3
  /**
4
4
  * タスク実行関数