@chevre/domain 20.7.0-alpha.0 → 20.7.0-alpha.2
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/example/src/chevre/{migrateOfferAdditionalProperties.ts → migrateMovieAdditionalProperties.ts} +18 -18
- package/lib/chevre/service/offer/eventServiceByCOA/factory.d.ts +2 -2
- package/lib/chevre/service/offer/eventServiceByCOA/factory.js +1 -2
- package/lib/chevre/service/offer/eventServiceByCOA/validateAcceptedOffers.d.ts +21 -0
- package/lib/chevre/service/offer/eventServiceByCOA/validateAcceptedOffers.js +59 -0
- package/lib/chevre/service/offer/eventServiceByCOA.d.ts +5 -2
- package/lib/chevre/service/offer/eventServiceByCOA.js +17 -15
- package/lib/chevre/service/payment/movieTicket/validation.js +3 -1
- package/lib/chevre/service/payment/movieTicket.js +2 -3
- package/package.json +3 -3
|
@@ -12,9 +12,9 @@ async function main() {
|
|
|
12
12
|
await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
|
|
13
13
|
|
|
14
14
|
const additionalPropertyRepo = new chevre.repository.AdditionalProperty(mongoose.connection);
|
|
15
|
-
const
|
|
15
|
+
const creativeWorkRepo = new chevre.repository.CreativeWork(mongoose.connection);
|
|
16
16
|
|
|
17
|
-
const cursor =
|
|
17
|
+
const cursor = creativeWorkRepo.getCursor(
|
|
18
18
|
{
|
|
19
19
|
// 'project.id': { $eq: project.id },
|
|
20
20
|
'project.id': { $ne: EXCLUDED_PROJECT_ID }
|
|
@@ -23,7 +23,7 @@ async function main() {
|
|
|
23
23
|
// _id: 1,
|
|
24
24
|
}
|
|
25
25
|
);
|
|
26
|
-
console.log('
|
|
26
|
+
console.log('movies found');
|
|
27
27
|
|
|
28
28
|
const additionalPropertyNames: string[] = [];
|
|
29
29
|
const projectIds: string[] = [];
|
|
@@ -33,64 +33,64 @@ async function main() {
|
|
|
33
33
|
let updateCount = 0;
|
|
34
34
|
await cursor.eachAsync(async (doc) => {
|
|
35
35
|
i += 1;
|
|
36
|
-
const
|
|
36
|
+
const movie: chevre.factory.creativeWork.movie.ICreativeWork = doc.toObject();
|
|
37
37
|
|
|
38
|
-
const additionalPropertyNamesOnEvent =
|
|
38
|
+
const additionalPropertyNamesOnEvent = movie.additionalProperty?.map((p) => p.name);
|
|
39
39
|
if (Array.isArray(additionalPropertyNamesOnEvent) && additionalPropertyNamesOnEvent.length > 0) {
|
|
40
40
|
console.log(
|
|
41
41
|
additionalPropertyNamesOnEvent.length,
|
|
42
42
|
'additionalPropertyNamesOnEvent found',
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
movie.project.id,
|
|
44
|
+
movie.id
|
|
45
45
|
);
|
|
46
46
|
additionalPropertyNames.push(...additionalPropertyNamesOnEvent);
|
|
47
|
-
projectIds.push(
|
|
47
|
+
projectIds.push(movie.project.id);
|
|
48
48
|
additionalPropertyNamesOnEvent.forEach((name) => {
|
|
49
49
|
if (!name.match(/^[a-zA-Z]*$/)) {
|
|
50
50
|
// throw new Error(`not matched ${creativeWork.project.id} ${creativeWork.id}`);
|
|
51
|
-
unexpextedprojectIds.push(
|
|
51
|
+
unexpextedprojectIds.push(movie.project.id);
|
|
52
52
|
}
|
|
53
53
|
// tslint:disable-next-line:no-magic-numbers
|
|
54
54
|
if (name.length < 5) {
|
|
55
55
|
// throw new Error(`length matched ${creativeWork.project.id} ${creativeWork.id} ${name}`);
|
|
56
|
-
unexpextedprojectIds.push(
|
|
56
|
+
unexpextedprojectIds.push(movie.project.id);
|
|
57
57
|
}
|
|
58
58
|
});
|
|
59
59
|
|
|
60
60
|
for (const additionalPropertyNameOnEvent of additionalPropertyNamesOnEvent) {
|
|
61
61
|
const existings = await additionalPropertyRepo.search({
|
|
62
|
-
project: { id: { $eq:
|
|
62
|
+
project: { id: { $eq: movie.project.id } },
|
|
63
63
|
limit: 1,
|
|
64
64
|
page: 1,
|
|
65
65
|
name: { $regex: `^${additionalPropertyNameOnEvent}$` }
|
|
66
66
|
});
|
|
67
67
|
if (existings.length > 0) {
|
|
68
|
-
console.log('already existed', additionalPropertyNameOnEvent,
|
|
68
|
+
console.log('already existed', additionalPropertyNameOnEvent, movie.id, movie.project.id);
|
|
69
69
|
} else {
|
|
70
70
|
updateCount += 1;
|
|
71
71
|
const newAdditionalProperty: chevre.factory.additionalProperty.IAdditionalProperty = {
|
|
72
|
-
project:
|
|
72
|
+
project: movie.project,
|
|
73
73
|
typeOf: 'CategoryCode',
|
|
74
74
|
codeValue: additionalPropertyNameOnEvent,
|
|
75
75
|
inCodeSet: {
|
|
76
76
|
typeOf: 'CategoryCodeSet',
|
|
77
|
-
identifier: <
|
|
77
|
+
identifier: <chevre.factory.creativeWorkType.Movie>movie.typeOf
|
|
78
78
|
},
|
|
79
79
|
name: { ja: additionalPropertyNameOnEvent }
|
|
80
80
|
};
|
|
81
81
|
await additionalPropertyRepo.save({
|
|
82
82
|
attributes: newAdditionalProperty
|
|
83
83
|
});
|
|
84
|
-
console.log('created', additionalPropertyNameOnEvent,
|
|
84
|
+
console.log('created', additionalPropertyNameOnEvent, movie.id, movie.project.id);
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
88
|
});
|
|
89
89
|
console.log(i, 'events checked');
|
|
90
90
|
console.log(updateCount, 'properties updated');
|
|
91
|
-
console.log([...new Set(additionalPropertyNames)]);
|
|
92
|
-
console.log([...new Set(projectIds)]);
|
|
93
|
-
console.log([...new Set(unexpextedprojectIds)]);
|
|
91
|
+
console.log('additionalPropertyNames:', [...new Set(additionalPropertyNames)]);
|
|
92
|
+
console.log('projectIds:', [...new Set(projectIds)]);
|
|
93
|
+
console.log('unexpextedprojectIds:', [...new Set(unexpextedprojectIds)]);
|
|
94
94
|
}
|
|
95
95
|
|
|
96
96
|
main()
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as factory from '../../../factory';
|
|
2
2
|
import { IMinimizedIndividualEvent } from '../../../factory/event';
|
|
3
3
|
export import WebAPIIdentifier = factory.service.webAPI.Identifier;
|
|
4
|
+
export declare type IAcceptedOffer4COA = factory.action.authorize.offer.seatReservation.IAcceptedOffer<factory.service.webAPI.Identifier.COA>;
|
|
4
5
|
export declare function createAuthorizeSeatReservationActionAttributes(params: {
|
|
5
6
|
acceptedOffers: factory.action.authorize.offer.seatReservation.IAcceptedOffer<factory.service.webAPI.Identifier.COA>[];
|
|
6
7
|
event: factory.event.IEvent<factory.eventType.ScreeningEvent>;
|
|
@@ -9,9 +10,8 @@ export declare function createAuthorizeSeatReservationActionAttributes(params: {
|
|
|
9
10
|
/**
|
|
10
11
|
* 供給情報から承認アクションの価格を導き出す
|
|
11
12
|
*/
|
|
12
|
-
export declare function offers2resultPrice(offers:
|
|
13
|
+
export declare function offers2resultPrice(offers: IAcceptedOffer4COA[]): {
|
|
13
14
|
price: number;
|
|
14
|
-
requiredPoint: number;
|
|
15
15
|
eligibleMonetaryAmount: factory.offer.IEligibleMonetaryAmount[];
|
|
16
16
|
};
|
|
17
17
|
declare type IResultAcceptedOffer = factory.action.authorize.offer.seatReservation.IResultAcceptedOffer;
|
|
@@ -54,7 +54,6 @@ exports.createAuthorizeSeatReservationActionAttributes = createAuthorizeSeatRese
|
|
|
54
54
|
*/
|
|
55
55
|
function offers2resultPrice(offers) {
|
|
56
56
|
const price = offers.reduce((a, b) => a + b.price, 0);
|
|
57
|
-
const requiredPoint = offers.reduce((a, b) => a + b.ticketInfo.usePoint, 0);
|
|
58
57
|
const eligibleMonetaryAmount = offers.reduce((a, b) => {
|
|
59
58
|
if (Array.isArray(b.eligibleMonetaryAmount)) {
|
|
60
59
|
return [...a, ...b.eligibleMonetaryAmount];
|
|
@@ -63,7 +62,7 @@ function offers2resultPrice(offers) {
|
|
|
63
62
|
return a;
|
|
64
63
|
}
|
|
65
64
|
}, []);
|
|
66
|
-
return { price,
|
|
65
|
+
return { price, eligibleMonetaryAmount };
|
|
67
66
|
}
|
|
68
67
|
exports.offers2resultPrice = offers2resultPrice;
|
|
69
68
|
/**
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { MongoRepository as OfferRepo } from '../../../repo/offer';
|
|
2
|
+
import { IAcceptedOffer4COA } from './factory';
|
|
3
|
+
/**
|
|
4
|
+
* 受け入れらたオファーの内容を検証
|
|
5
|
+
*/
|
|
6
|
+
declare function validateAcceptedOffers(params: {
|
|
7
|
+
object: {
|
|
8
|
+
acceptedOffer: IAcceptedOffer4COA[];
|
|
9
|
+
event: {
|
|
10
|
+
id: string;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
project: {
|
|
14
|
+
id: string;
|
|
15
|
+
};
|
|
16
|
+
}): (repos: {
|
|
17
|
+
offer: OfferRepo;
|
|
18
|
+
}) => Promise<{
|
|
19
|
+
acceptedOffers: IAcceptedOffer4COA[];
|
|
20
|
+
}>;
|
|
21
|
+
export { validateAcceptedOffers };
|
|
@@ -0,0 +1,59 @@
|
|
|
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.validateAcceptedOffers = void 0;
|
|
13
|
+
const factory = require("../../../factory");
|
|
14
|
+
/**
|
|
15
|
+
* 受け入れらたオファーの内容を検証
|
|
16
|
+
*/
|
|
17
|
+
function validateAcceptedOffers(params) {
|
|
18
|
+
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
19
|
+
const offerIds = (Array.isArray(params.object.acceptedOffer))
|
|
20
|
+
? [...new Set(params.object.acceptedOffer.map((o) => o.id))]
|
|
21
|
+
: [];
|
|
22
|
+
let availableUnitPriceOffers = [];
|
|
23
|
+
// 指定された単価オファーを検索
|
|
24
|
+
if (offerIds.length > 0) {
|
|
25
|
+
availableUnitPriceOffers = yield repos.offer.search({
|
|
26
|
+
id: { $in: offerIds },
|
|
27
|
+
project: { id: { $eq: params.project.id } }
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
// 利用可能なチケットオファーであれば受け入れる
|
|
31
|
+
const acceptedOffers = params.object.acceptedOffer.map((acceptedOffer) => {
|
|
32
|
+
var _a, _b, _c, _d, _e, _f;
|
|
33
|
+
const availableUnitPriceOffer = availableUnitPriceOffers.find((unitPriceOffer) => unitPriceOffer.id === acceptedOffer.id);
|
|
34
|
+
if (availableUnitPriceOffer === undefined) {
|
|
35
|
+
throw new factory.errors.NotFound(factory.offerType.Offer, `${acceptedOffer.identifier} not found`);
|
|
36
|
+
}
|
|
37
|
+
const { additionalProperty, itemOffered, name, price, priceSpecification, ticketInfo } = acceptedOffer;
|
|
38
|
+
return Object.assign(Object.assign({ additionalProperty,
|
|
39
|
+
itemOffered,
|
|
40
|
+
name,
|
|
41
|
+
price,
|
|
42
|
+
priceSpecification,
|
|
43
|
+
ticketInfo,
|
|
44
|
+
// 以下属性については単価オファーから読む(2023-03-09~)
|
|
45
|
+
priceCurrency: availableUnitPriceOffer.priceCurrency, id: String(availableUnitPriceOffer.id), identifier: String(availableUnitPriceOffer.identifier), typeOf: availableUnitPriceOffer.typeOf }, (Array.isArray(availableUnitPriceOffer.eligibleMonetaryAmount))
|
|
46
|
+
? { eligibleMonetaryAmount: availableUnitPriceOffer.eligibleMonetaryAmount }
|
|
47
|
+
: undefined), {
|
|
48
|
+
// tslint:disable-next-line:no-suspicious-comment
|
|
49
|
+
// TODO itemOfferedに完全置き換え
|
|
50
|
+
seatNumber: (_c = (_b = (_a = itemOffered.serviceOutput) === null || _a === void 0 ? void 0 : _a.reservedTicket) === null || _b === void 0 ? void 0 : _b.ticketedSeat) === null || _c === void 0 ? void 0 : _c.seatNumber,
|
|
51
|
+
// tslint:disable-next-line:no-suspicious-comment
|
|
52
|
+
// TODO itemOfferedに完全置き換え
|
|
53
|
+
seatSection: (_f = (_e = (_d = itemOffered.serviceOutput) === null || _d === void 0 ? void 0 : _d.reservedTicket) === null || _e === void 0 ? void 0 : _e.ticketedSeat) === null || _f === void 0 ? void 0 : _f.seatSection
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
return { acceptedOffers };
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
exports.validateAcceptedOffers = validateAcceptedOffers;
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { MongoRepository as ActionRepo } from '../../repo/action';
|
|
2
2
|
import { MongoRepository as EventRepo } from '../../repo/event';
|
|
3
|
+
import { MongoRepository as OfferRepo } from '../../repo/offer';
|
|
3
4
|
import { MongoRepository as TransactionRepo } from '../../repo/transaction';
|
|
5
|
+
import { IAcceptedOffer4COA } from './eventServiceByCOA/factory';
|
|
4
6
|
import * as factory from '../../factory';
|
|
5
7
|
export import WebAPIIdentifier = factory.service.webAPI.Identifier;
|
|
6
8
|
export declare type IAuthorizeOperation<T> = (repos: {
|
|
7
9
|
action: ActionRepo;
|
|
8
10
|
event: EventRepo;
|
|
11
|
+
offer: OfferRepo;
|
|
9
12
|
transaction: TransactionRepo;
|
|
10
13
|
}) => Promise<T>;
|
|
11
14
|
export declare type IAuthorizeOfferAction = factory.action.authorize.offer.seatReservation.IAction<WebAPIIdentifier.COA>;
|
|
@@ -14,7 +17,7 @@ export declare type IAuthorizeOfferAction = factory.action.authorize.offer.seatR
|
|
|
14
17
|
*/
|
|
15
18
|
export declare function authorize(params: {
|
|
16
19
|
object: {
|
|
17
|
-
acceptedOffer:
|
|
20
|
+
acceptedOffer: IAcceptedOffer4COA[];
|
|
18
21
|
event: {
|
|
19
22
|
id: string;
|
|
20
23
|
};
|
|
@@ -68,7 +71,7 @@ export declare function cancel(params: {
|
|
|
68
71
|
export declare function changeOffers(params: {
|
|
69
72
|
id: string;
|
|
70
73
|
object: {
|
|
71
|
-
acceptedOffer:
|
|
74
|
+
acceptedOffer: IAcceptedOffer4COA[];
|
|
72
75
|
event: {
|
|
73
76
|
id: string;
|
|
74
77
|
};
|
|
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.changeOffers = exports.cancel = exports.authorize = exports.WebAPIIdentifier = void 0;
|
|
13
13
|
const moment = require("moment");
|
|
14
14
|
const factory_1 = require("./eventServiceByCOA/factory");
|
|
15
|
+
const validateAcceptedOffers_1 = require("./eventServiceByCOA/validateAcceptedOffers");
|
|
15
16
|
const factory = require("../../factory");
|
|
16
17
|
exports.WebAPIIdentifier = factory.service.webAPI.Identifier;
|
|
17
18
|
/**
|
|
@@ -33,12 +34,17 @@ function authorize(params) {
|
|
|
33
34
|
id: params.object.event.id
|
|
34
35
|
});
|
|
35
36
|
// COA仮予約後にリクエストが来る前提
|
|
36
|
-
|
|
37
|
+
// validate acceptedOffer(2023-03-09~)
|
|
38
|
+
// const acceptedOffer = params.object.acceptedOffer;
|
|
39
|
+
const { acceptedOffers } = yield (0, validateAcceptedOffers_1.validateAcceptedOffers)({
|
|
40
|
+
object: params.object,
|
|
41
|
+
project: { id: transaction.project.id }
|
|
42
|
+
})(repos);
|
|
37
43
|
const updTmpReserveSeatArgs = params.result.requestBody;
|
|
38
44
|
const updTmpReserveSeatResult = params.result.responseBody;
|
|
39
45
|
// 承認アクションを開始
|
|
40
46
|
const actionAttributes = (0, factory_1.createAuthorizeSeatReservationActionAttributes)({
|
|
41
|
-
acceptedOffers
|
|
47
|
+
acceptedOffers,
|
|
42
48
|
event: screeningEvent,
|
|
43
49
|
transaction: transaction
|
|
44
50
|
});
|
|
@@ -57,7 +63,7 @@ function authorize(params) {
|
|
|
57
63
|
throw error;
|
|
58
64
|
}
|
|
59
65
|
// 座席仮予約からオファー情報を生成する
|
|
60
|
-
const { price, eligibleMonetaryAmount } = (0, factory_1.offers2resultPrice)(
|
|
66
|
+
const { price, eligibleMonetaryAmount } = (0, factory_1.offers2resultPrice)(acceptedOffers);
|
|
61
67
|
const acceptedOffers4result = (0, factory_1.responseBody2acceptedOffers4result)({
|
|
62
68
|
responseBody: updTmpReserveSeatResult,
|
|
63
69
|
object: action.object,
|
|
@@ -113,15 +119,6 @@ function cancel(params) {
|
|
|
113
119
|
timeBegin: actionResult.requestBody.timeBegin,
|
|
114
120
|
tmpReserveNum: actionResult.responseBody.tmpReserveNum
|
|
115
121
|
};
|
|
116
|
-
// 座席仮予約削除
|
|
117
|
-
// await repos.reserveService.delTmpReserve({
|
|
118
|
-
// theaterCode: actionResult.requestBody.theaterCode,
|
|
119
|
-
// dateJouei: actionResult.requestBody.dateJouei,
|
|
120
|
-
// titleCode: actionResult.requestBody.titleCode,
|
|
121
|
-
// titleBranchNum: actionResult.requestBody.titleBranchNum,
|
|
122
|
-
// timeBegin: actionResult.requestBody.timeBegin,
|
|
123
|
-
// tmpReserveNum: actionResult.responseBody.tmpReserveNum
|
|
124
|
-
// });
|
|
125
122
|
}
|
|
126
123
|
return cancelResult;
|
|
127
124
|
});
|
|
@@ -153,14 +150,19 @@ function changeOffers(params) {
|
|
|
153
150
|
id: params.object.event.id
|
|
154
151
|
});
|
|
155
152
|
// COA仮予約後にリクエストが来る前提
|
|
156
|
-
|
|
153
|
+
// validate acceptedOffer(2023-03-09~)
|
|
154
|
+
// const acceptedOffer = params.object.acceptedOffer;
|
|
155
|
+
const { acceptedOffers } = yield (0, validateAcceptedOffers_1.validateAcceptedOffers)({
|
|
156
|
+
object: params.object,
|
|
157
|
+
project: { id: transaction.project.id }
|
|
158
|
+
})(repos);
|
|
157
159
|
// 供給情報と価格を変更してからDB更新
|
|
158
|
-
authorizeAction.object.acceptedOffer =
|
|
160
|
+
authorizeAction.object.acceptedOffer = acceptedOffers;
|
|
159
161
|
const updTmpReserveSeatResult = (_a = authorizeAction.result) === null || _a === void 0 ? void 0 : _a.responseBody;
|
|
160
162
|
if (updTmpReserveSeatResult === undefined) {
|
|
161
163
|
throw new factory.errors.NotFound('action.result.responseBody');
|
|
162
164
|
}
|
|
163
|
-
const { price, eligibleMonetaryAmount } = (0, factory_1.offers2resultPrice)(
|
|
165
|
+
const { price, eligibleMonetaryAmount } = (0, factory_1.offers2resultPrice)(acceptedOffers);
|
|
164
166
|
const acceptedOffers4result = (0, factory_1.responseBody2acceptedOffers4result)({
|
|
165
167
|
responseBody: updTmpReserveSeatResult,
|
|
166
168
|
object: authorizeAction.object,
|
|
@@ -78,7 +78,9 @@ function validateMovieTicket(params, paymentServiceId) {
|
|
|
78
78
|
throw new factory.errors.Argument('movieTickets', `${shortNumber} movie tickets by service type ${serviceType} short`);
|
|
79
79
|
}
|
|
80
80
|
});
|
|
81
|
-
|
|
81
|
+
// checkはするが保管は保留(2023-03-09~)
|
|
82
|
+
return;
|
|
83
|
+
// return checkResult;
|
|
82
84
|
});
|
|
83
85
|
}
|
|
84
86
|
exports.validateMovieTicket = validateMovieTicket;
|
|
@@ -69,9 +69,8 @@ function checkMovieTicket(params) {
|
|
|
69
69
|
paymentServiceId
|
|
70
70
|
})(repos);
|
|
71
71
|
// 一度認証されたMovieTicketをDBに記録する(後で検索しやすいように)→一旦保留
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
})));
|
|
72
|
+
// await Promise.all(checkResult.movieTickets.map(async (__) => {
|
|
73
|
+
// }));
|
|
75
74
|
}
|
|
76
75
|
catch (error) {
|
|
77
76
|
// actionにエラー結果を追加
|
package/package.json
CHANGED
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
}
|
|
10
10
|
],
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@chevre/factory": "4.
|
|
13
|
-
"@cinerino/sdk": "3.
|
|
12
|
+
"@chevre/factory": "4.299.0",
|
|
13
|
+
"@cinerino/sdk": "3.148.0",
|
|
14
14
|
"@motionpicture/coa-service": "9.2.0",
|
|
15
15
|
"@motionpicture/gmo-service": "5.2.0",
|
|
16
16
|
"@sendgrid/mail": "6.4.0",
|
|
@@ -120,5 +120,5 @@
|
|
|
120
120
|
"postversion": "git push origin --tags",
|
|
121
121
|
"prepublishOnly": "npm run clean && npm run build && npm test && npm run doc"
|
|
122
122
|
},
|
|
123
|
-
"version": "20.7.0-alpha.
|
|
123
|
+
"version": "20.7.0-alpha.2"
|
|
124
124
|
}
|