@chevre/domain 25.0.0-alpha.4 → 25.0.0-alpha.5

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.
@@ -4,14 +4,18 @@ type ISendableEmailMessage = factory.action.transfer.send.message.email.IObjectA
4
4
  identifier: string;
5
5
  name: string;
6
6
  };
7
- export type IOrderAsCreateEmailParams = Pick<factory.order.IOrder, 'confirmationNumber' | 'customer' | 'orderDate' | 'orderNumber' | 'orderStatus' | 'orderedItem' | 'paymentMethods' | 'price' | 'priceCurrency' | 'seller' | 'typeOf'>;
7
+ /**
8
+ * 注文取引確定時の指定テンプレートで利用可能な注文変数
9
+ */
10
+ type IPlacingOrderAsCreateEmailParams = Pick<factory.order.IOrder, 'orderNumber' | 'confirmationNumber' | 'customer' | 'price' | 'seller'>;
11
+ type IOrderAsCreateEmailParams = Pick<factory.order.IOrder, 'confirmationNumber' | 'customer' | 'orderDate' | 'orderNumber' | 'orderStatus' | 'orderedItem' | 'paymentMethods' | 'price' | 'priceCurrency' | 'seller' | 'typeOf'>;
8
12
  /**
9
13
  * 注文配送メッセージを作成する
10
14
  */
11
15
  declare function createSendOrderMessage(params: {
12
- order: IOrderAsCreateEmailParams;
16
+ order: IPlacingOrderAsCreateEmailParams;
13
17
  email?: factory.creativeWork.message.email.ICustomization;
14
- emailMessage?: factory.creativeWork.message.email.ICreativeWork;
18
+ emailMessage?: never;
15
19
  index: number;
16
20
  }, setting: Pick<ISetting, 'defaultSenderEmail'>): Promise<ISendableEmailMessage>;
17
21
  /**
@@ -20,7 +24,7 @@ declare function createSendOrderMessage(params: {
20
24
  declare function createReturnOrderMessage(params: {
21
25
  order: IOrderAsCreateEmailParams;
22
26
  email?: factory.creativeWork.message.email.ICustomization;
23
- emailMessage?: factory.creativeWork.message.email.ICreativeWork;
27
+ emailMessage?: never;
24
28
  index: number;
25
29
  }, setting: Pick<ISetting, 'defaultSenderEmail'>): Promise<ISendableEmailMessage>;
26
30
  /**
@@ -31,4 +35,4 @@ declare function createRefundMessage(params: {
31
35
  email?: factory.creativeWork.message.email.ICustomization;
32
36
  paymentMethodId: string;
33
37
  }, setting: Pick<ISetting, 'defaultSenderEmail'>): Promise<ISendableEmailMessage>;
34
- export { createSendOrderMessage, createReturnOrderMessage, createRefundMessage };
38
+ export { createSendOrderMessage, createReturnOrderMessage, createRefundMessage, IOrderAsCreateEmailParams, IPlacingOrderAsCreateEmailParams };
@@ -12,7 +12,7 @@ const factory_1 = require("./factory");
12
12
  async function createEmailMessageText(params) {
13
13
  const emailTemplate = params.email?.template;
14
14
  const emailText = params.email?.text;
15
- const emailMessageTextByDB = params.emailMessage?.text;
15
+ // const emailMessageTextByDB = params.emailMessage?.text;
16
16
  let emailMessageText;
17
17
  if (typeof emailText === 'string') {
18
18
  emailMessageText = emailText;
@@ -27,18 +27,21 @@ async function createEmailMessageText(params) {
27
27
  resolve(message);
28
28
  });
29
29
  });
30
- }
31
- else if (typeof emailMessageTextByDB === 'string') {
32
- // デフォルトEメールメッセージを適用する
33
- emailMessageText = await new Promise((resolve, reject) => {
34
- (0, pug_1.render)(emailMessageTextByDB, { order: params.order }, (err, message) => {
35
- if (err instanceof Error) {
36
- reject(new factory_1.factory.errors.Argument('emailMessage.text', err.message));
37
- return;
38
- }
39
- resolve(message);
40
- });
41
- });
30
+ // } else if (typeof emailMessageTextByDB === 'string') {
31
+ // // デフォルトEメールメッセージを適用する
32
+ // emailMessageText = await new Promise<string>((resolve, reject) => {
33
+ // render(
34
+ // emailMessageTextByDB,
35
+ // { order: params.order },
36
+ // (err, message) => {
37
+ // if (err instanceof Error) {
38
+ // reject(new factory.errors.Argument('emailMessage.text', err.message));
39
+ // return;
40
+ // }
41
+ // resolve(message);
42
+ // }
43
+ // );
44
+ // });
42
45
  }
43
46
  else {
44
47
  emailMessageText = `orderNumber: ${params.order.orderNumber}`;
@@ -46,8 +49,8 @@ async function createEmailMessageText(params) {
46
49
  return emailMessageText;
47
50
  }
48
51
  async function createEmailMessageAbout(params) {
49
- const abouyIdentifierByDB = params.emailMessage?.about.identifier;
50
- const abouyNameByDB = params.emailMessage?.about.name;
52
+ // const abouyIdentifierByDB = params.emailMessage?.about.identifier;
53
+ // const abouyNameByDB = params.emailMessage?.about.name;
51
54
  let about;
52
55
  if (typeof params.email?.about === 'string') {
53
56
  // aboutをStringで指定された場合
@@ -65,23 +68,26 @@ async function createEmailMessageAbout(params) {
65
68
  identifier: params.email.about.identifier,
66
69
  name: params.email.about.name
67
70
  };
68
- }
69
- else if (typeof abouyIdentifierByDB === 'string' && typeof abouyNameByDB === 'string') {
70
- // デフォルトEメールメッセージを適用する
71
- const aboutName = await new Promise((resolve, reject) => {
72
- (0, pug_1.render)(abouyNameByDB, { order: params.order }, (err, message) => {
73
- if (err instanceof Error) {
74
- reject(new factory_1.factory.errors.Argument('emailMessage.about.name', err.message));
75
- return;
76
- }
77
- resolve(message);
78
- });
79
- });
80
- about = {
81
- typeOf: 'Thing',
82
- identifier: abouyIdentifierByDB,
83
- name: aboutName
84
- };
71
+ // } else if (typeof abouyIdentifierByDB === 'string' && typeof abouyNameByDB === 'string') {
72
+ // // デフォルトEメールメッセージを適用する
73
+ // const aboutName = await new Promise<string>((resolve, reject) => {
74
+ // render(
75
+ // abouyNameByDB,
76
+ // { order: params.order },
77
+ // (err, message) => {
78
+ // if (err instanceof Error) {
79
+ // reject(new factory.errors.Argument('emailMessage.about.name', err.message));
80
+ // return;
81
+ // }
82
+ // resolve(message);
83
+ // }
84
+ // );
85
+ // });
86
+ // about = {
87
+ // typeOf: 'Thing',
88
+ // identifier: abouyIdentifierByDB,
89
+ // name: aboutName
90
+ // };
85
91
  }
86
92
  else {
87
93
  // aboutの指定がない場合
@@ -115,12 +121,12 @@ async function createSendOrderMessage(params, setting) {
115
121
  const emailMessageText = await createEmailMessageText({
116
122
  order: params.order,
117
123
  email: params.email,
118
- emailMessage: params.emailMessage
124
+ // emailMessage: params.emailMessage
119
125
  });
120
126
  const about = await createEmailMessageAbout({
121
- order: params.order,
127
+ // order: params.order,
122
128
  email: params.email,
123
- emailMessage: params.emailMessage,
129
+ // emailMessage: params.emailMessage,
124
130
  aboutIdentifier: factory_1.factory.creativeWork.message.email.AboutIdentifier.OnOrderSent,
125
131
  defaultName: 'Order Delivered'
126
132
  });
@@ -169,12 +175,12 @@ async function createReturnOrderMessage(params, setting) {
169
175
  const emailMessageText = await createEmailMessageText({
170
176
  order: params.order,
171
177
  email: params.email,
172
- emailMessage: params.emailMessage
178
+ // emailMessage: params.emailMessage
173
179
  });
174
180
  const about = await createEmailMessageAbout({
175
- order: params.order,
181
+ // order: params.order,
176
182
  email: params.email,
177
- emailMessage: params.emailMessage,
183
+ // emailMessage: params.emailMessage,
178
184
  aboutIdentifier: factory_1.factory.creativeWork.message.email.AboutIdentifier.OnOrderReturned,
179
185
  defaultName: 'Order Returned'
180
186
  });
@@ -225,7 +231,7 @@ async function createRefundMessage(params, setting) {
225
231
  email: params.email
226
232
  });
227
233
  const about = await createEmailMessageAbout({
228
- order: params.order,
234
+ // order: params.order,
229
235
  email: params.email,
230
236
  aboutIdentifier: factory_1.factory.creativeWork.message.email.AboutIdentifier.OnOrderRefunded,
231
237
  defaultName: 'Refunded'
@@ -23,9 +23,7 @@ export declare class AcceptedOfferRepo extends AcceptedOfferInReserveRepo {
23
23
  /**
24
24
  * 索条件を最小化(2026-06-05~)
25
25
  */
26
- params: Pick<factory.order.ISearchConditions, 'limit' | 'orderNumbers' | 'page' | 'project' | 'provider' | 'sort' | 'orderDate'>, projection: IProjection4searchWithUnwoundAcceptedOffers, options: {
27
- noName: boolean;
28
- }): Promise<(factory.order.IOrder & {
26
+ params: Pick<factory.order.ISearchConditions, 'limit' | 'orderNumbers' | 'page' | 'project' | 'provider' | 'sort' | 'orderDate'>, projection: IProjection4searchWithUnwoundAcceptedOffers): Promise<(factory.order.IOrder & {
29
27
  acceptedOffers: [IAcceptedOffer];
30
28
  _id?: never;
31
29
  })[]>;
@@ -66,8 +64,6 @@ export declare class AcceptedOfferRepo extends AcceptedOfferInReserveRepo {
66
64
  reservedTicket?: never;
67
65
  };
68
66
  };
69
- }, options: {
70
- noName: boolean;
71
67
  }): Promise<Pick<IAcceptedOffer, 'id' | 'itemOffered' | 'offeredThrough' | 'priceSpecification' | 'serialNumber' | 'typeOf'>[]>;
72
68
  /**
73
69
  * 注文オファーをsliceして検索する(2024-01-10~)
@@ -24,7 +24,7 @@ class AcceptedOfferRepo extends acceptedOfferInReserve_1.AcceptedOfferInReserveR
24
24
  /**
25
25
  * 索条件を最小化(2026-06-05~)
26
26
  */
27
- params, projection, options) {
27
+ params, projection) {
28
28
  const conditions = order_2.OrderRepo.CREATE_MONGO_CONDITIONS(params);
29
29
  const aggregate = this.orderModel.aggregate();
30
30
  // unwind->matchでは遅い
@@ -63,7 +63,7 @@ class AcceptedOfferRepo extends acceptedOfferInReserve_1.AcceptedOfferInReserveR
63
63
  const reservationNumbers = [...new Set(orders.map((order) => String(order.acceptedOffers[0].serialNumber)))];
64
64
  let acceptedOffersByReserveTransaction = [];
65
65
  if (reservationNumbers.length > 0) {
66
- acceptedOffersByReserveTransaction = await this.findAcceptedOffersByReservationNumbers({ reservationNumbers }, options);
66
+ acceptedOffersByReserveTransaction = await this.findAcceptedOffersByReservationNumbers({ reservationNumbers });
67
67
  }
68
68
  return orders.map((order) => {
69
69
  const acceptedOffer = order.acceptedOffers[0];
@@ -136,7 +136,7 @@ class AcceptedOfferRepo extends acceptedOfferInReserve_1.AcceptedOfferInReserveR
136
136
  * 注文オファーを展開して検索する
137
137
  * 注文番号指定で1注文ドキュメントから参照する想定
138
138
  */
139
- async searchAcceptedOffersByOrderNumber(filter, options) {
139
+ async searchAcceptedOffersByOrderNumber(filter) {
140
140
  /**
141
141
  * unwind前に1ドキュメントを特定するためのstage
142
142
  */
@@ -183,7 +183,7 @@ class AcceptedOfferRepo extends acceptedOfferInReserve_1.AcceptedOfferInReserveR
183
183
  .option({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
184
184
  .exec();
185
185
  // 予約取引を参照(2026-05-18~)
186
- return this.addAcceptedOffersDetails(acceptedOffers, options);
186
+ return this.addAcceptedOffersDetails(acceptedOffers);
187
187
  }
188
188
  /**
189
189
  * 注文オファーをsliceして検索する(2024-01-10~)
@@ -210,7 +210,7 @@ class AcceptedOfferRepo extends acceptedOfferInReserve_1.AcceptedOfferInReserveR
210
210
  const { acceptedOffers, numAcceptedOffers } = result;
211
211
  // 予約取引を参照(2026-05-18~)
212
212
  return {
213
- acceptedOffers: await this.addAcceptedOffersDetails(acceptedOffers, { noName: true }),
213
+ acceptedOffers: await this.addAcceptedOffersDetails(acceptedOffers),
214
214
  numAcceptedOffers
215
215
  };
216
216
  }
@@ -22,13 +22,9 @@ export declare class AcceptedOfferInReserveRepo {
22
22
  * 予約番号リスト
23
23
  */
24
24
  reservationNumbers: string[];
25
- }, options: {
26
- noName: boolean;
27
25
  }): Promise<IAcceptedOfferByReserveTransaction[]>;
28
26
  /**
29
27
  * 予約取引からオファー詳細情報を付加する
30
28
  */
31
- protected addAcceptedOffersDetails(acceptedOffers: IAcceptedOffer[], options: {
32
- noName: boolean;
33
- }): Promise<IAcceptedOffer[]>;
29
+ protected addAcceptedOffersDetails(acceptedOffers: IAcceptedOffer[]): Promise<IAcceptedOffer[]>;
34
30
  }
@@ -20,7 +20,7 @@ class AcceptedOfferInReserveRepo {
20
20
  /**
21
21
  * 予約番号指定で予約取引から注文オファーを生成する
22
22
  */
23
- async findAcceptedOffersByReservationNumbers(params, options) {
23
+ async findAcceptedOffersByReservationNumbers(params) {
24
24
  const { reservationNumbers } = params;
25
25
  if (!Array.isArray(reservationNumbers) || reservationNumbers.length === 0) {
26
26
  throw new factory_1.factory.errors.ArgumentNull('reservationNumbers');
@@ -35,13 +35,13 @@ class AcceptedOfferInReserveRepo {
35
35
  .exec();
36
36
  debug('findSubReservationsByReservationNumbers: reservationNumbers.length === reserveTransactions.length?', reservationNumbers.length === reserveTransactions.length);
37
37
  return reserveTransactions.reduce((a, b) => {
38
- return [...a, ...(0, reserveTransaction2itemOffered_1.reserveTransaction2itemOffered)(b, options)];
38
+ return [...a, ...(0, reserveTransaction2itemOffered_1.reserveTransaction2itemOffered)(b)];
39
39
  }, []);
40
40
  }
41
41
  /**
42
42
  * 予約取引からオファー詳細情報を付加する
43
43
  */
44
- async addAcceptedOffersDetails(acceptedOffers, options) {
44
+ async addAcceptedOffersDetails(acceptedOffers) {
45
45
  const offeredThroughIdentifier = acceptedOffers.at(0)?.offeredThrough?.identifier;
46
46
  if (offeredThroughIdentifier === factory_1.factory.service.webAPI.Identifier.COA) {
47
47
  // COAでは予約取引を参照しない
@@ -50,7 +50,7 @@ class AcceptedOfferInReserveRepo {
50
50
  const reservationNumbers = [...new Set(acceptedOffers.map((acceptedOffer) => String(acceptedOffer.serialNumber)))];
51
51
  let acceptedOffersByReserveTransaction = [];
52
52
  if (reservationNumbers.length > 0) {
53
- acceptedOffersByReserveTransaction = await this.findAcceptedOffersByReservationNumbers({ reservationNumbers }, options);
53
+ acceptedOffersByReserveTransaction = await this.findAcceptedOffersByReservationNumbers({ reservationNumbers });
54
54
  }
55
55
  return acceptedOffers.map((acceptedOffer) => {
56
56
  const acceptedOfferByReserveTransaction = acceptedOffersByReserveTransaction.find(((offer) => offer.itemOffered.id === acceptedOffer.itemOffered.id));
@@ -3,7 +3,5 @@ type IAcceptedOfferByReserveTransaction = Pick<factory.order.IOptimizedAcceptedO
3
3
  /**
4
4
  * 予約取引を注文のitemOfferedへ変換する
5
5
  */
6
- declare function reserveTransaction2itemOffered(params: Pick<factory.assetTransaction.reserve.ITransaction, 'object'>, options: {
7
- noName: boolean;
8
- }): IAcceptedOfferByReserveTransaction[];
6
+ declare function reserveTransaction2itemOffered(params: Pick<factory.assetTransaction.reserve.ITransaction, 'object'>): IAcceptedOfferByReserveTransaction[];
9
7
  export { IAcceptedOfferByReserveTransaction, reserveTransaction2itemOffered };
@@ -38,8 +38,7 @@ function createReservedTicket(reservedTicket) {
38
38
  /**
39
39
  * 予約取引を注文のitemOfferedへ変換する
40
40
  */
41
- function reserveTransaction2itemOffered(params, options) {
42
- const { noName } = options;
41
+ function reserveTransaction2itemOffered(params) {
43
42
  const { object } = params;
44
43
  // subReservationは配列のはず
45
44
  if (!Array.isArray(object.subReservation)) {
@@ -70,7 +69,7 @@ function reserveTransaction2itemOffered(params, options) {
70
69
  return {
71
70
  itemOffered: reservationByReserveTransaction,
72
71
  ...((price !== undefined) && { priceSpecification: price }),
73
- ...((!noName && reservedTicket.ticketType.name !== undefined) && { name: reservedTicket.ticketType.name })
72
+ // ...((!noName && reservedTicket.ticketType.name !== undefined) && { name: reservedTicket.ticketType.name }) // 完全廃止(2026-06-19~)
74
73
  };
75
74
  });
76
75
  }
@@ -38,7 +38,7 @@ class OrderInTransactionRepo extends acceptedOfferInReserve_1.AcceptedOfferInRes
38
38
  let acceptedOffersByReserveTransaction = [];
39
39
  const reservationNumbers = [...new Set(doc.acceptedOffers.map((aceptedOffer) => aceptedOffer.itemOffered.reservationNumber))];
40
40
  if (reservationNumbers.length > 0) {
41
- acceptedOffersByReserveTransaction = await this.findAcceptedOffersByReservationNumbers({ reservationNumbers }, { noName: true });
41
+ acceptedOffersByReserveTransaction = await this.findAcceptedOffersByReservationNumbers({ reservationNumbers });
42
42
  }
43
43
  return doc.acceptedOffers.map((acceptedOffer) => {
44
44
  const acceptedOfferByReserve = acceptedOffersByReserveTransaction.find((acceptedOfferByReserveTransaction) => acceptedOfferByReserveTransaction.itemOffered.id === acceptedOffer.itemOffered.id);
@@ -93,7 +93,7 @@ function deleteReservationsByOrder(order) {
93
93
  const acceptedOffers = await repos.acceptedOffer.searchAcceptedOffersByOrderNumber({
94
94
  orderNumber: { $eq: order.orderNumber },
95
95
  project: { id: { $eq: order.project.id } },
96
- }, { noName: true });
96
+ });
97
97
  const reservationIds = acceptedOffers.map((o) => String(o.itemOffered.id));
98
98
  if (reservationIds.length > 0) {
99
99
  await repos.reservation.deleteByIds({ project: { id: order.project.id }, ids: reservationIds });
@@ -39,7 +39,7 @@ function findByCode(params) {
39
39
  // typeOf?: { $in?: factory.order.IItemOffered['typeOf'][] };
40
40
  }
41
41
  }
42
- }, { noName: true })).shift();
42
+ })).shift();
43
43
  if (acceptedOffer === undefined) {
44
44
  throw new factory_1.factory.errors.NotFound('acceptedOffer');
45
45
  }
@@ -16,7 +16,7 @@ function searchByOrder(params) {
16
16
  // typeOf: { $in: [reservationType] }
17
17
  }
18
18
  }
19
- }, { noName: true });
19
+ });
20
20
  const reservationIds = acceptedOffers.map((offer) => {
21
21
  if (offer.itemOffered.typeOf === reservationType) {
22
22
  return offer.itemOffered.id;
@@ -139,7 +139,7 @@ function fixOrderAsPurpose(params) {
139
139
  const acceptedOffers = await repos.acceptedOffer.searchAcceptedOffersByOrderNumber({
140
140
  orderNumber: { $eq: order.orderNumber },
141
141
  project: { id: { $eq: params.project.id } }
142
- }, { noName: true });
142
+ });
143
143
  return {
144
144
  ...order,
145
145
  acceptedOffers
@@ -76,7 +76,7 @@ function fixOrderAsPurpose(params, transaction) {
76
76
  // reservedTicket: { ticketedSeat: { seatNumber: { $in: seatNumbers } } } // 座席番号による絞りは廃止(2026-06-01~)
77
77
  }
78
78
  }
79
- }, { noName: true });
79
+ });
80
80
  }
81
81
  return {
82
82
  ...orderWithoutAcceptedOffers,
@@ -9,11 +9,15 @@ async function createSendEmailMessageActions(params, setting) {
9
9
  const sendEmailMessageActions = [];
10
10
  const sendEmailMessageOnOrderSentParams = params.potentialActions?.order?.potentialActions?.sendOrder?.potentialActions?.sendEmailMessage;
11
11
  if (Array.isArray(sendEmailMessageOnOrderSentParams)) {
12
+ // pugテンプレートに渡す変数を最小化(2026-06-19~)
12
13
  const orderAsCreateEmailParams = {
13
- ...params.order,
14
+ // ...params.order,
15
+ // paymentMethods: params.paymentMethods
14
16
  customer: params.customer,
15
17
  seller: params.seller,
16
- paymentMethods: params.paymentMethods
18
+ orderNumber: params.order.orderNumber,
19
+ confirmationNumber: params.order.confirmationNumber,
20
+ price: params.order.price
17
21
  };
18
22
  await Promise.all(sendEmailMessageOnOrderSentParams.map(async (s, index) => {
19
23
  const emailMessage = await (0, emailMessageBuilder_1.createSendOrderMessage)({
@@ -144,7 +144,7 @@ function fixOrders(params) {
144
144
  const acceptedOffers = await repos.acceptedOffer.searchAcceptedOffersByOrderNumber({
145
145
  orderNumber: { $eq: params.object.order[0].orderNumber },
146
146
  project: { id: { $eq: params.project.id } }
147
- }, { noName: true });
147
+ });
148
148
  return { acceptedOffers, eventIds, offerIds, orders };
149
149
  };
150
150
  }
@@ -22,7 +22,7 @@ function validateOrder(params) {
22
22
  const acceptedOffers = await repos.acceptedOffer.searchAcceptedOffersByOrderNumber({
23
23
  orderNumber: { $eq: params.orderNumber },
24
24
  project: { id: { $eq: params.project.id } }
25
- }, { noName: true });
25
+ });
26
26
  let payTransactions = [];
27
27
  if (order.paymentMethods.length > 0) {
28
28
  payTransactions = await repos.assetTransaction.search({
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "dependencies": {
12
12
  "@aws-sdk/client-cognito-identity-provider": "3.600.0",
13
13
  "@aws-sdk/credential-providers": "3.600.0",
14
- "@chevre/factory": "9.0.0-alpha.1",
14
+ "@chevre/factory": "9.0.0-alpha.2",
15
15
  "@motionpicture/coa-service": "10.0.0",
16
16
  "@motionpicture/gmo-service": "6.1.0-alpha.0",
17
17
  "@sendgrid/client": "8.1.4",
@@ -91,5 +91,5 @@
91
91
  "postversion": "git push origin --tags",
92
92
  "prepublishOnly": "npm run clean && npm run build"
93
93
  },
94
- "version": "25.0.0-alpha.4"
94
+ "version": "25.0.0-alpha.5"
95
95
  }