@chevre/domain 21.2.0-alpha.3 → 21.2.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.
@@ -0,0 +1,48 @@
1
+ // tslint:disable:no-console
2
+ import * as moment from 'moment';
3
+ import * as redis from 'redis';
4
+
5
+ import { chevre } from '../../../lib/index';
6
+
7
+ // const project = { id: String(process.env.PROJECT_ID) };
8
+
9
+ // tslint:disable-next-line:max-func-body-length
10
+ async function main() {
11
+ const client = redis.createClient<redis.RedisDefaultModules, Record<string, never>, Record<string, never>>({
12
+ socket: {
13
+ port: Number(<string>process.env.REDIS_PORT),
14
+ host: <string>process.env.REDIS_HOST
15
+ },
16
+ password: <string>process.env.REDIS_KEY
17
+ });
18
+ await client.connect();
19
+
20
+ const startDate = moment('2023-04-18T00:00:00Z');
21
+
22
+ const stockHolderRepo = new chevre.repository.StockHolder(client);
23
+ await stockHolderRepo.lock({
24
+ eventId: 'sampleEventId',
25
+ startDate: startDate.toDate(),
26
+ offers: [
27
+ {
28
+ seatSection: 'sampleSeatSection',
29
+ seatNumber: 'sampleSeatNumber'
30
+ },
31
+ {
32
+ seatSection: 'sampleSeatSection1',
33
+ seatNumber: 'sampleSeatNumber1'
34
+ }
35
+ ],
36
+ expires: moment(startDate)
37
+ .add(1, 'month')
38
+ .toDate(),
39
+ holder: 'sampleStockHolder'
40
+ });
41
+ console.log('locked');
42
+ }
43
+
44
+ main()
45
+ .then(() => {
46
+ console.log('success!');
47
+ })
48
+ .catch(console.error);
@@ -36,7 +36,7 @@ class RedisRepository {
36
36
  static createKey(params) {
37
37
  const useNewKey = params.orderDate instanceof Date
38
38
  && moment(params.orderDate)
39
- .isSameOrAfter(settings_1.USE_NEW_ORDER_NUMBER_KEY_FROM);
39
+ .isSameOrAfter(settings_1.USE_NEW_CONFIRMATION_NUMBER_KEY_FROM);
40
40
  if (useNewKey) {
41
41
  return util.format('%s:%s', RedisRepository.REDIS_KEY_PREFIX_NEW, moment(params.orderDate)
42
42
  .tz('Asia/Tokyo')
@@ -3,7 +3,6 @@ import { RedisClientType } from 'redis';
3
3
  * 注文番号リポジトリ
4
4
  */
5
5
  export declare class RedisRepository {
6
- private static readonly REDIS_KEY_PREFIX_NEW;
7
6
  private static readonly REDIS_KEY_PREFIX;
8
7
  private readonly redisClient;
9
8
  constructor(redisClient: RedisClientType);
@@ -16,7 +16,6 @@ const util = require("util");
16
16
  // tslint:disable-next-line:no-require-imports no-var-requires
17
17
  const fpe = require('node-fpe');
18
18
  const factory = require("../factory");
19
- const settings_1 = require("../settings");
20
19
  const ORDER_NUMBER_SEPARATOR = '-';
21
20
  /**
22
21
  * 注文番号リポジトリ
@@ -26,15 +25,7 @@ class RedisRepository {
26
25
  this.redisClient = redisClient;
27
26
  }
28
27
  static createKey(params) {
29
- const useNewKey = params.orderDate instanceof Date
30
- && moment(params.orderDate)
31
- .isSameOrAfter(settings_1.USE_NEW_ORDER_NUMBER_KEY_FROM);
32
- if (useNewKey) {
33
- return util.format('%s:%s:%s', RedisRepository.REDIS_KEY_PREFIX_NEW, params.projectPrefix, params.timestamp);
34
- }
35
- else {
36
- return util.format('%s:%s:%s', RedisRepository.REDIS_KEY_PREFIX, params.projectPrefix, params.timestamp);
37
- }
28
+ return util.format('%s:%s:%s', RedisRepository.REDIS_KEY_PREFIX, params.projectPrefix, params.timestamp);
38
29
  }
39
30
  /**
40
31
  * タイムスタンプから発行する
@@ -79,6 +70,5 @@ class RedisRepository {
79
70
  });
80
71
  }
81
72
  }
82
- RedisRepository.REDIS_KEY_PREFIX_NEW = 'orderNumber';
83
- RedisRepository.REDIS_KEY_PREFIX = 'cinerino:orderNumber';
73
+ RedisRepository.REDIS_KEY_PREFIX = 'orderNumber';
84
74
  exports.RedisRepository = RedisRepository;
@@ -18,10 +18,11 @@ export interface IRateLimitKey {
18
18
  * オファーレート制限リポジトリ
19
19
  */
20
20
  export declare class RedisRepository {
21
- static KEY_PREFIX: string;
21
+ private static readonly KEY_PREFIX_NEW;
22
+ private static readonly KEY_PREFIX;
22
23
  private readonly redisClient;
23
24
  constructor(redisClient: RedisClientType);
24
- static CREATE_REDIS_KEY(ratelimitKey: IRateLimitKey): string;
25
+ private static createKey;
25
26
  /**
26
27
  * ロックする
27
28
  */
@@ -10,10 +10,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.RedisRepository = void 0;
13
- const createDebug = require("debug");
14
13
  const moment = require("moment");
15
14
  const factory = require("../../factory");
16
- const debug = createDebug('chevre-domain:repo');
15
+ const settings_1 = require("../../settings");
17
16
  /**
18
17
  * オファーレート制限リポジトリ
19
18
  */
@@ -21,11 +20,17 @@ class RedisRepository {
21
20
  constructor(redisClient) {
22
21
  this.redisClient = redisClient;
23
22
  }
24
- static CREATE_REDIS_KEY(ratelimitKey) {
23
+ static createKey(ratelimitKey) {
25
24
  const dateNow = moment(ratelimitKey.reservationFor.startDate);
26
25
  const unitInSeconds = Number(ratelimitKey.reservedTicket.ticketType.validRateLimit.unitInSeconds.toString());
27
- const validFrom = dateNow.unix() - dateNow.unix() % unitInSeconds;
28
- return `${RedisRepository.KEY_PREFIX}:${ratelimitKey.reservedTicket.ticketType.validRateLimit.scope}:${validFrom.toString()}`;
26
+ const validFrom = dateNow.unix() - (dateNow.unix() % unitInSeconds);
27
+ const useNewKey = dateNow.isSameOrAfter(settings_1.USE_NEW_EVENT_AVAILABILITY_KEY_FROM);
28
+ if (useNewKey) {
29
+ return `${RedisRepository.KEY_PREFIX_NEW}:${ratelimitKey.reservedTicket.ticketType.validRateLimit.scope}:${validFrom.toString()}`;
30
+ }
31
+ else {
32
+ return `${RedisRepository.KEY_PREFIX}:${ratelimitKey.reservedTicket.ticketType.validRateLimit.scope}:${validFrom.toString()}`;
33
+ }
29
34
  }
30
35
  /**
31
36
  * ロックする
@@ -34,7 +39,7 @@ class RedisRepository {
34
39
  return __awaiter(this, void 0, void 0, function* () {
35
40
  const datasets = ratelimitKeys.map((ratelimitKey) => {
36
41
  return {
37
- key: RedisRepository.CREATE_REDIS_KEY(ratelimitKey),
42
+ key: RedisRepository.createKey(ratelimitKey),
38
43
  value: ratelimitKey.reservationNumber,
39
44
  ttl: moment(ratelimitKey.reservationFor.startDate)
40
45
  .add(ratelimitKey.reservedTicket.ticketType.validRateLimit.unitInSeconds, 'seconds')
@@ -43,29 +48,24 @@ class RedisRepository {
43
48
  });
44
49
  let multi = this.redisClient.multi();
45
50
  datasets.forEach((dataset) => {
46
- debug('setting if not exist...', dataset.key);
47
51
  multi.setNX(dataset.key, dataset.value)
48
52
  .expire(dataset.key, dataset.ttl);
49
53
  });
50
54
  const results = yield multi.exec();
51
55
  const lockedFields = [];
52
56
  results.forEach((r, index) => {
53
- debug('r, index:', r, index);
54
57
  // tslint:disable-next-line:no-magic-numbers
55
58
  if (index % 2 === 0 && (r === 1 || r === true)) {
56
59
  // tslint:disable-next-line:no-magic-numbers
57
60
  lockedFields.push(datasets[index / 2].key);
58
61
  }
59
62
  });
60
- debug('locked fields:', lockedFields);
61
63
  const lockedAll = lockedFields.length === ratelimitKeys.length;
62
- debug('lockedAll?', lockedAll);
63
64
  if (!lockedAll) {
64
65
  if (lockedFields.length > 0) {
65
66
  // 全てロックできなければロックできたものは解除
66
67
  multi = this.redisClient.multi();
67
68
  lockedFields.forEach((key) => {
68
- debug('deleting...', key);
69
69
  multi.del(key);
70
70
  });
71
71
  yield multi.exec();
@@ -78,8 +78,7 @@ class RedisRepository {
78
78
  return __awaiter(this, void 0, void 0, function* () {
79
79
  const multi = this.redisClient.multi();
80
80
  ratelimitKeys.forEach((ratelimitKey) => {
81
- const key = RedisRepository.CREATE_REDIS_KEY(ratelimitKey);
82
- debug('deleting...', key);
81
+ const key = RedisRepository.createKey(ratelimitKey);
83
82
  multi.del(key);
84
83
  });
85
84
  yield multi.exec();
@@ -87,10 +86,11 @@ class RedisRepository {
87
86
  }
88
87
  getHolder(ratelimitKey) {
89
88
  return __awaiter(this, void 0, void 0, function* () {
90
- const key = RedisRepository.CREATE_REDIS_KEY(ratelimitKey);
89
+ const key = RedisRepository.createKey(ratelimitKey);
91
90
  return this.redisClient.get(key);
92
91
  });
93
92
  }
94
93
  }
94
+ RedisRepository.KEY_PREFIX_NEW = 'rateLimit:offer';
95
95
  RedisRepository.KEY_PREFIX = 'chevre:rateLimit:offer';
96
96
  exports.RedisRepository = RedisRepository;
@@ -3,9 +3,10 @@ import { RedisClientType } from 'redis';
3
3
  * サービスアウトプット識別子リポジトリ
4
4
  */
5
5
  export declare class RedisRepository {
6
- static REDIS_KEY_PREFIX: string;
6
+ private static readonly REDIS_KEY_PREFIX;
7
7
  private readonly redisClient;
8
8
  constructor(redisClient: RedisClientType);
9
+ private static createKey;
9
10
  /**
10
11
  * タイムスタンプから発行する
11
12
  */
@@ -23,6 +23,9 @@ class RedisRepository {
23
23
  constructor(redisClient) {
24
24
  this.redisClient = redisClient;
25
25
  }
26
+ static createKey(params) {
27
+ return util.format('%s:%s', RedisRepository.REDIS_KEY_PREFIX, params.timestamp);
28
+ }
26
29
  /**
27
30
  * タイムスタンプから発行する
28
31
  */
@@ -35,30 +38,26 @@ class RedisRepository {
35
38
  const TTL = moment(params.startDate)
36
39
  .add(1, 'minute') // ミリ秒でカウントしていくので、予約日時後1分で十分
37
40
  .diff(now, 'seconds');
38
- const key = util.format('%s:%s', RedisRepository.REDIS_KEY_PREFIX, timestamp);
41
+ const key = RedisRepository.createKey({ startDate: params.startDate, timestamp });
39
42
  const [incrReply] = yield this.redisClient.multi()
40
43
  .incr(key)
41
44
  .expire(key, TTL)
42
45
  .exec();
43
46
  // tslint:disable-next-line:no-single-line-block-comment
44
47
  /* istanbul ignore else: please write tests */
45
- if (typeof incrReply === 'number') {
46
- let identifier = timestamp;
47
- const no = incrReply;
48
- identifier = `${identifier}${no}`;
49
- // checkdigit
50
- const cd = cdigit.luhn.compute(identifier);
51
- const cipher = fpe({ password: cd });
52
- identifier = cipher.encrypt(identifier);
53
- identifier = `${cd}${identifier}`;
54
- return identifier;
55
- }
56
- else {
48
+ if (typeof incrReply !== 'number') {
57
49
  // 基本的にありえないフロー
58
- throw new factory.errors.ServiceUnavailable('ServiceOutput identifier not published');
50
+ throw new factory.errors.ServiceUnavailable('serviceOutput identifier not incremented unexpectedly');
59
51
  }
52
+ let identifier = `${timestamp}${incrReply}`;
53
+ // checkdigit
54
+ const cd = cdigit.luhn.compute(identifier);
55
+ identifier = fpe({ password: cd })
56
+ .encrypt(identifier);
57
+ identifier = `${cd}${identifier}`;
58
+ return identifier;
60
59
  });
61
60
  }
62
61
  }
63
- RedisRepository.REDIS_KEY_PREFIX = 'chevre:serviceOutputIdentifier';
62
+ RedisRepository.REDIS_KEY_PREFIX = 'serviceOutputIdentifier';
64
63
  exports.RedisRepository = RedisRepository;
@@ -75,4 +75,5 @@ export declare class StockHolderRepository {
75
75
  startDate: Date;
76
76
  offers: IOffer[];
77
77
  }): Promise<IGetHolderResult[]>;
78
+ private checkIfConflicted;
78
79
  }
@@ -32,9 +32,11 @@ class StockHolderRepository {
32
32
  return `${params.seatSection}:${params.seatNumber}`;
33
33
  }
34
34
  static createKey(params) {
35
- const useNewKey = params.startDate instanceof Date
36
- && moment(params.startDate)
37
- .isSameOrAfter(settings_1.USE_NEW_EVENT_AVAILABILITY_KEY_FROM);
35
+ if (!(params.startDate instanceof Date)) {
36
+ throw new factory.errors.Argument('startDate', 'must be Date');
37
+ }
38
+ const useNewKey = moment(params.startDate)
39
+ .isSameOrAfter(settings_1.USE_NEW_EVENT_AVAILABILITY_KEY_FROM);
38
40
  if (useNewKey) {
39
41
  return `${StockHolderRepository.KEY_PREFIX_NEW}:${params.eventId}`;
40
42
  }
@@ -64,7 +66,11 @@ class StockHolderRepository {
64
66
  */
65
67
  lock(lockKey) {
66
68
  return __awaiter(this, void 0, void 0, function* () {
69
+ if (!(lockKey.expires instanceof Date)) {
70
+ throw new factory.errors.Argument('expires', 'must be Date');
71
+ }
67
72
  const key = StockHolderRepository.createKey({ eventId: lockKey.eventId, startDate: lockKey.startDate });
73
+ yield this.checkIfConflicted({ key, eventId: lockKey.eventId });
68
74
  const value = lockKey.holder;
69
75
  const multi = this.redisClient.multi();
70
76
  const fields = lockKey.offers.map((offer) => StockHolderRepository.offer2field(offer));
@@ -74,7 +80,6 @@ class StockHolderRepository {
74
80
  const results = yield multi.expireAt(key, moment(lockKey.expires)
75
81
  .unix())
76
82
  .exec();
77
- debug('results:', results);
78
83
  const lockedFields = [];
79
84
  if (Array.isArray(results)) {
80
85
  results.slice(0, fields.length)
@@ -84,17 +89,25 @@ class StockHolderRepository {
84
89
  }
85
90
  });
86
91
  }
87
- debug('locked fields:', lockedFields);
88
92
  const lockedAll = lockedFields.length === fields.length;
89
93
  debug('lockedAll?', lockedAll);
90
- if (!lockedAll) {
94
+ // expireAtReplyの検証も追加する(2023-04-19~)
95
+ const expiredAll = results.slice(fields.length)
96
+ .every((r) => (r === 1 || r === true));
97
+ debug('expiredAll?', expiredAll);
98
+ if (!lockedAll || !expiredAll) {
91
99
  if (lockedFields.length > 0) {
92
100
  // 全て仮押さえできなければ仮押さえできたものは解除
93
101
  yield this.redisClient.multi()
94
102
  .hDel(key, lockedFields)
95
103
  .exec();
96
104
  }
97
- throw new factory.errors.AlreadyInUse(factory.reservationType.EventReservation, ['ticketedSeat'], 'Already hold');
105
+ if (!lockedAll) {
106
+ throw new factory.errors.AlreadyInUse(factory.reservationType.EventReservation, ['ticketedSeat'], 'Already hold');
107
+ }
108
+ else {
109
+ throw new factory.errors.ServiceUnavailable('timeout cannot be set unexpectedly');
110
+ }
98
111
  }
99
112
  });
100
113
  }
@@ -104,6 +117,7 @@ class StockHolderRepository {
104
117
  unlock(params) {
105
118
  return __awaiter(this, void 0, void 0, function* () {
106
119
  const key = StockHolderRepository.createKey({ eventId: params.eventId, startDate: params.startDate });
120
+ yield this.checkIfConflicted({ key, eventId: params.eventId });
107
121
  const field = StockHolderRepository.offer2field(params.offer);
108
122
  yield this.redisClient.multi()
109
123
  .hDel(key, field)
@@ -200,6 +214,29 @@ class StockHolderRepository {
200
214
  return result;
201
215
  });
202
216
  }
217
+ checkIfConflicted(params) {
218
+ return __awaiter(this, void 0, void 0, function* () {
219
+ // 旧キーと新キーの両方存在検証(念のため)
220
+ const oldKey = StockHolderRepository.createKey({ eventId: params.eventId, startDate: new Date('2020-01-01T00:00:00Z') });
221
+ const newKey = StockHolderRepository.createKey({ eventId: params.eventId, startDate: new Date('2030-01-01T00:00:00Z') });
222
+ if (params.key !== oldKey) {
223
+ // newの場合oldが存在するはずがない
224
+ const existingOldKeyCount = yield this.redisClient.exists(oldKey);
225
+ debug('existingOldKeyCount:', existingOldKeyCount);
226
+ if (existingOldKeyCount > 0) {
227
+ throw new factory.errors.ServiceUnavailable('stockHolder keys conflicted');
228
+ }
229
+ }
230
+ if (params.key !== newKey) {
231
+ // oldの場合newが存在するはずがない
232
+ const existingNewKeyCount = yield this.redisClient.exists(newKey);
233
+ debug('existingNewKeyCount:', existingNewKeyCount);
234
+ if (existingNewKeyCount > 0) {
235
+ throw new factory.errors.ServiceUnavailable('stockHolder keys conflicted');
236
+ }
237
+ }
238
+ });
239
+ }
203
240
  }
204
241
  StockHolderRepository.KEY_PREFIX_NEW = 'stockHolder';
205
242
  StockHolderRepository.KEY_PREFIX = 'chevre:itemAvailability:screeningEvent';
@@ -6,9 +6,10 @@ interface IPublishResult {
6
6
  * 取引番号リポジトリ
7
7
  */
8
8
  export declare class RedisRepository {
9
- static REDIS_KEY_PREFIX: string;
9
+ private static readonly REDIS_KEY_PREFIX;
10
10
  private readonly redisClient;
11
11
  constructor(redisClient: RedisClientType);
12
+ private static createKey;
12
13
  /**
13
14
  * タイムスタンプから発行する
14
15
  */
@@ -23,6 +23,9 @@ class RedisRepository {
23
23
  constructor(redisClient) {
24
24
  this.redisClient = redisClient;
25
25
  }
26
+ static createKey(params) {
27
+ return util.format('%s:%s', RedisRepository.REDIS_KEY_PREFIX, params.timestamp);
28
+ }
26
29
  /**
27
30
  * タイムスタンプから発行する
28
31
  */
@@ -35,30 +38,26 @@ class RedisRepository {
35
38
  const TTL = moment(params.startDate)
36
39
  .add(1, 'minute') // ミリ秒でカウントしていくので、予約日時後1分で十分
37
40
  .diff(now, 'seconds');
38
- const key = util.format('%s:%s', RedisRepository.REDIS_KEY_PREFIX, timestamp);
41
+ const key = RedisRepository.createKey({ startDate: params.startDate, timestamp });
39
42
  const [incrReply] = yield this.redisClient.multi()
40
43
  .incr(key)
41
44
  .expire(key, TTL)
42
45
  .exec();
43
46
  // tslint:disable-next-line:no-single-line-block-comment
44
47
  /* istanbul ignore else: please write tests */
45
- if (typeof incrReply === 'number') {
46
- let transactionNumber = timestamp;
47
- const no = incrReply;
48
- transactionNumber = `${transactionNumber}${no}`;
49
- // checkdigit
50
- const cd = cdigit.luhn.compute(transactionNumber);
51
- const cipher = fpe({ password: cd });
52
- transactionNumber = cipher.encrypt(transactionNumber);
53
- transactionNumber = `${cd}${transactionNumber}`;
54
- return { transactionNumber };
55
- }
56
- else {
48
+ if (typeof incrReply !== 'number') {
57
49
  // 基本的にありえないフロー
58
- throw new factory.errors.ServiceUnavailable('Transaction number not published');
50
+ throw new factory.errors.ServiceUnavailable('transaction number not incremented unexpectedly');
59
51
  }
52
+ let transactionNumber = `${timestamp}${incrReply}`;
53
+ // checkdigit
54
+ const cd = cdigit.luhn.compute(transactionNumber);
55
+ transactionNumber = fpe({ password: cd })
56
+ .encrypt(transactionNumber);
57
+ transactionNumber = `${cd}${transactionNumber}`;
58
+ return { transactionNumber };
60
59
  });
61
60
  }
62
61
  }
63
- RedisRepository.REDIS_KEY_PREFIX = 'chevre:transactionNumber';
62
+ RedisRepository.REDIS_KEY_PREFIX = 'transactionNumber';
64
63
  exports.RedisRepository = RedisRepository;
@@ -30,7 +30,7 @@ export declare const DEFAULT_PAYMENT_METHOD_TYPE_FOR_CREDIT_CARD: string;
30
30
  export declare const USE_ASSET_TRANSACTION_SYNC_PROCESSING: boolean;
31
31
  export declare const USE_PAY_ASSET_TRANSACTION_SYNC_PROCESSING: boolean;
32
32
  export declare const USE_NEW_EVENT_AVAILABILITY_KEY_FROM: moment.Moment;
33
- export declare const USE_NEW_ORDER_NUMBER_KEY_FROM: moment.Moment;
33
+ export declare const USE_NEW_CONFIRMATION_NUMBER_KEY_FROM: moment.Moment;
34
34
  /**
35
35
  * グローバル設定
36
36
  */
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.settings = exports.USE_NEW_ORDER_NUMBER_KEY_FROM = exports.USE_NEW_EVENT_AVAILABILITY_KEY_FROM = exports.USE_PAY_ASSET_TRANSACTION_SYNC_PROCESSING = exports.USE_ASSET_TRANSACTION_SYNC_PROCESSING = exports.DEFAULT_PAYMENT_METHOD_TYPE_FOR_CREDIT_CARD = exports.DEFAULT_SENDER_EMAIL = exports.TRANSACTION_CANCELED_STORAGE_PERIOD_IN_DAYS = exports.TRANSACTION_CONFIRMED_STORAGE_PERIOD_IN_DAYS = exports.ASSET_TRANSACTION_STORAGE_PERIOD_IN_DAYS = exports.ABORTED_TASKS_WITHOUT_REPORT = void 0;
3
+ exports.settings = exports.USE_NEW_CONFIRMATION_NUMBER_KEY_FROM = exports.USE_NEW_EVENT_AVAILABILITY_KEY_FROM = exports.USE_PAY_ASSET_TRANSACTION_SYNC_PROCESSING = exports.USE_ASSET_TRANSACTION_SYNC_PROCESSING = exports.DEFAULT_PAYMENT_METHOD_TYPE_FOR_CREDIT_CARD = exports.DEFAULT_SENDER_EMAIL = exports.TRANSACTION_CANCELED_STORAGE_PERIOD_IN_DAYS = exports.TRANSACTION_CONFIRMED_STORAGE_PERIOD_IN_DAYS = exports.ASSET_TRANSACTION_STORAGE_PERIOD_IN_DAYS = exports.ABORTED_TASKS_WITHOUT_REPORT = void 0;
4
4
  const moment = require("moment");
5
5
  const factory = require("./factory");
6
6
  const transactionWebhookUrls = (typeof process.env.INFORM_TRANSACTION_URL === 'string')
@@ -48,9 +48,9 @@ exports.USE_ASSET_TRANSACTION_SYNC_PROCESSING = process.env.USE_ASSET_TRANSACTIO
48
48
  exports.USE_PAY_ASSET_TRANSACTION_SYNC_PROCESSING = process.env.USE_PAY_ASSET_TRANSACTION_SYNC_PROCESSING === '1';
49
49
  exports.USE_NEW_EVENT_AVAILABILITY_KEY_FROM = (typeof process.env.USE_NEW_EVENT_AVAILABILITY_KEY_FROM === 'string')
50
50
  ? moment(process.env.USE_NEW_EVENT_AVAILABILITY_KEY_FROM)
51
- : moment('2023-07-23T15:00:00Z');
52
- exports.USE_NEW_ORDER_NUMBER_KEY_FROM = (typeof process.env.USE_NEW_ORDER_NUMBER_KEY_FROM === 'string')
53
- ? moment(process.env.USE_NEW_ORDER_NUMBER_KEY_FROM)
51
+ : moment('2023-08-31T15:00:00Z');
52
+ exports.USE_NEW_CONFIRMATION_NUMBER_KEY_FROM = (typeof process.env.USE_NEW_CONFIRMATION_NUMBER_KEY_FROM === 'string')
53
+ ? moment(process.env.USE_NEW_CONFIRMATION_NUMBER_KEY_FROM)
54
54
  : moment('2023-04-30T15:00:00Z');
55
55
  /**
56
56
  * グローバル設定
package/package.json CHANGED
@@ -117,5 +117,5 @@
117
117
  "postversion": "git push origin --tags",
118
118
  "prepublishOnly": "npm run clean && npm run build && npm test && npm run doc"
119
119
  },
120
- "version": "21.2.0-alpha.3"
120
+ "version": "21.2.0-alpha.5"
121
121
  }