@chevre/domain 21.4.0-alpha.24 → 21.4.0-alpha.26

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,59 @@
1
+ // tslint:disable:no-console
2
+ // import * as moment from 'moment';
3
+ import * as mongoose from 'mongoose';
4
+
5
+ import { chevre } from '../../../lib/index';
6
+
7
+ // const project = { id: String(process.env.PROJECT_ID) };
8
+ // const EXCLUDED_PROJECT_ID = process.env.EXCLUDED_PROJECT_ID;
9
+
10
+ // tslint:disable-next-line:max-func-body-length
11
+ async function main() {
12
+ await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: true });
13
+
14
+ const memberRepo = new chevre.repository.Member(mongoose.connection);
15
+
16
+ const cursor = memberRepo.getCursor(
17
+ {},
18
+ {
19
+ // _id: 1,
20
+ }
21
+ );
22
+ console.log('members found');
23
+
24
+ let i = 0;
25
+ let updateCount = 0;
26
+ await cursor.eachAsync(async (doc) => {
27
+ i += 1;
28
+ const iamMember: chevre.factory.iam.IMember = doc.toObject();
29
+
30
+ const memberOfId = iamMember.member.memberOf?.id;
31
+ const alreadyMigrated = typeof memberOfId === 'string';
32
+
33
+ if (alreadyMigrated) {
34
+ console.log('already exist...', iamMember.project.id, iamMember.member.id, iamMember.member.typeOf, memberOfId, i);
35
+ } else {
36
+ console.log(
37
+ 'updating reservation...', iamMember.project.id, iamMember.member.id, iamMember.member.typeOf, memberOfId, i);
38
+ await memberRepo.updateByMemberMemberOf({
39
+ project: { id: iamMember.project.id },
40
+ member: {
41
+ id: iamMember.member.id,
42
+ memberOf: {
43
+ id: iamMember.project.id,
44
+ typeOf: chevre.factory.organizationType.Project
45
+ }
46
+ }
47
+ });
48
+ updateCount += 1;
49
+ console.log('updated.', iamMember.project.id, iamMember.member.id, iamMember.member.typeOf, memberOfId, i);
50
+ }
51
+ });
52
+
53
+ console.log(i, 'members checked');
54
+ console.log(updateCount, 'members updated');
55
+ }
56
+
57
+ main()
58
+ .then()
59
+ .catch(console.error);
@@ -9,7 +9,7 @@ import { chevre } from '../../../lib/index';
9
9
 
10
10
  // tslint:disable-next-line:max-func-body-length
11
11
  async function main() {
12
- await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: true });
12
+ await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
13
13
 
14
14
  const reservationRepo = new chevre.repository.Reservation(mongoose.connection);
15
15
  const placeRepo = new chevre.repository.Place(mongoose.connection);
@@ -22,9 +22,11 @@ async function main() {
22
22
  ]
23
23
  },
24
24
  // bookingTime: {
25
- // $gte: moment('2023-06-09T00:00:00Z')
25
+ // $gte: moment('2022-07-01T00:00:00Z')
26
+ // .toDate(),
27
+ // $lte: moment('2022-03-01T00:00:00Z')
26
28
  // .toDate()
27
- // }
29
+ // },
28
30
  'provider.id': { $exists: false }
29
31
  },
30
32
  {
@@ -15,24 +15,16 @@ async function main() {
15
15
 
16
16
  let now: Date;
17
17
 
18
- // let now = new Date();
19
- // const aggregateRoleNamesResult = await memberRepo.aggregateRoleNames({
20
- // project: { id: { $eq: PROJECT_ID } },
21
- // member: { id: { $eq: memberId } }
22
- // });
23
-
24
- // const aggregatePermissionsResult = await roleRepo.aggregatePermissions({
25
- // roleName: {
26
- // $in: aggregateRoleNamesResult.map((r) => r.roleName)
27
- // }
28
- // });
29
- // console.log('time cost:', moment()
30
- // .diff(now));
31
-
32
18
  now = new Date();
33
19
  const searchPermissionsResult = await chevre.service.iam.searchPermissions({
34
20
  project: { id: PROJECT_ID },
35
- member: { id: memberId }
21
+ member: {
22
+ id: memberId,
23
+ memberOf: {
24
+ id: PROJECT_ID,
25
+ typeOf: chevre.factory.organizationType.Project
26
+ }
27
+ }
36
28
  })({
37
29
  member: memberRepo,
38
30
  role: roleRepo
@@ -0,0 +1,32 @@
1
+ // tslint:disable:no-console
2
+ import * as mongoose from 'mongoose';
3
+
4
+ import { chevre } from '../../../lib/index';
5
+
6
+ // const PROJECT_ID = String(process.env.PROJECT_ID);
7
+ const memberId = 'xxx';
8
+
9
+ async function main() {
10
+ await mongoose.connect(<string>process.env.MONGOLAB_URI);
11
+
12
+ const memberRepo = new chevre.repository.Member(mongoose.connection);
13
+
14
+ const ids = await memberRepo.searchProjectIdsByMemberId({
15
+ member: {
16
+ id: memberId
17
+ },
18
+ project: {
19
+ id: {
20
+ // $regex: 'c'
21
+ }
22
+ },
23
+ limit: 3,
24
+ page: 1
25
+
26
+ });
27
+ console.log(ids);
28
+ }
29
+
30
+ main()
31
+ .then(console.log)
32
+ .catch(console.error);
@@ -1,3 +1,27 @@
1
+ /// <reference types="mongoose/types/aggregate" />
2
+ /// <reference types="mongoose/types/callback" />
3
+ /// <reference types="mongoose/types/collection" />
4
+ /// <reference types="mongoose/types/connection" />
5
+ /// <reference types="mongoose/types/cursor" />
6
+ /// <reference types="mongoose/types/document" />
7
+ /// <reference types="mongoose/types/error" />
8
+ /// <reference types="mongoose/types/expressions" />
9
+ /// <reference types="mongoose/types/helpers" />
10
+ /// <reference types="mongoose/types/middlewares" />
11
+ /// <reference types="mongoose/types/indexes" />
12
+ /// <reference types="mongoose/types/models" />
13
+ /// <reference types="mongoose/types/mongooseoptions" />
14
+ /// <reference types="mongoose/types/pipelinestage" />
15
+ /// <reference types="mongoose/types/populate" />
16
+ /// <reference types="mongoose/types/query" />
17
+ /// <reference types="mongoose/types/schemaoptions" />
18
+ /// <reference types="mongoose/types/schematypes" />
19
+ /// <reference types="mongoose/types/session" />
20
+ /// <reference types="mongoose/types/types" />
21
+ /// <reference types="mongoose/types/utility" />
22
+ /// <reference types="mongoose/types/validation" />
23
+ /// <reference types="mongoose/types/virtuals" />
24
+ /// <reference types="mongoose/types/inferschematype" />
1
25
  import { Connection } from 'mongoose';
2
26
  import * as factory from '../factory';
3
27
  /**
@@ -19,6 +43,14 @@ export declare class MongoRepository {
19
43
  id: {
20
44
  $eq: string;
21
45
  };
46
+ memberOf: {
47
+ id: {
48
+ $eq: string;
49
+ };
50
+ typeOf: {
51
+ $eq: factory.organizationType.Project;
52
+ };
53
+ };
22
54
  };
23
55
  }): Promise<{
24
56
  roleName: string;
@@ -43,12 +75,31 @@ export declare class MongoRepository {
43
75
  id: string;
44
76
  };
45
77
  member: {
46
- hasRole?: factory.iam.IMemberHasRole;
47
78
  id: string;
79
+ memberOf: {
80
+ id: string;
81
+ typeOf: factory.organizationType.Project;
82
+ };
83
+ hasRole?: factory.iam.IMemberHasRole;
48
84
  image?: string;
49
85
  name?: string;
50
86
  };
51
87
  }): Promise<void>;
88
+ /**
89
+ * 互換性維持プログラム専用
90
+ */
91
+ updateByMemberMemberOf(params: {
92
+ project: {
93
+ id: string;
94
+ };
95
+ member: {
96
+ id: string;
97
+ memberOf: {
98
+ id: string;
99
+ typeOf: factory.organizationType.Project;
100
+ };
101
+ };
102
+ }): Promise<void>;
52
103
  /**
53
104
  * メンバー削除
54
105
  */
@@ -58,6 +109,14 @@ export declare class MongoRepository {
58
109
  };
59
110
  member: {
60
111
  id: string;
112
+ memberOf: {
113
+ id: {
114
+ $eq: string;
115
+ };
116
+ typeOf: {
117
+ $eq: factory.organizationType.Project;
118
+ };
119
+ };
61
120
  };
62
121
  }): Promise<void>;
63
122
  /**
@@ -75,4 +134,5 @@ export declare class MongoRepository {
75
134
  limit: number;
76
135
  page: number;
77
136
  }): Promise<string[]>;
137
+ getCursor(conditions: any, projection: any): import("mongoose").Cursor<any, import("mongoose").QueryOptions<any>>;
78
138
  }
@@ -22,7 +22,7 @@ class MongoRepository {
22
22
  }
23
23
  // tslint:disable-next-line:cyclomatic-complexity max-func-body-length
24
24
  static CREATE_MONGO_CONDITIONS(params) {
25
- var _a, _b, _c, _d, _e, _f, _g;
25
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
26
26
  const andConditions = [];
27
27
  // tslint:disable-next-line:no-single-line-block-comment
28
28
  /* istanbul ignore else */
@@ -48,6 +48,14 @@ class MongoRepository {
48
48
  }
49
49
  }
50
50
  }
51
+ const memberMemberOfTypeOfEq = (_c = (_b = (_a = params.member) === null || _a === void 0 ? void 0 : _a.memberOf) === null || _b === void 0 ? void 0 : _b.typeOf) === null || _c === void 0 ? void 0 : _c.$eq;
52
+ if (typeof memberMemberOfTypeOfEq === 'string') {
53
+ andConditions.push({ 'member.memberOf.typeOf': { $eq: memberMemberOfTypeOfEq } });
54
+ }
55
+ const memberMemberOfIdEq = (_f = (_e = (_d = params.member) === null || _d === void 0 ? void 0 : _d.memberOf) === null || _e === void 0 ? void 0 : _e.id) === null || _f === void 0 ? void 0 : _f.$eq;
56
+ if (typeof memberMemberOfIdEq === 'string') {
57
+ andConditions.push({ 'member.memberOf.id': { $eq: memberMemberOfIdEq } });
58
+ }
51
59
  // tslint:disable-next-line:no-single-line-block-comment
52
60
  /* istanbul ignore else */
53
61
  if (params.member !== undefined && params.member !== null) {
@@ -71,7 +79,7 @@ class MongoRepository {
71
79
  }
72
80
  }
73
81
  }
74
- const memberIdIn = (_b = (_a = params.member) === null || _a === void 0 ? void 0 : _a.id) === null || _b === void 0 ? void 0 : _b.$in;
82
+ const memberIdIn = (_h = (_g = params.member) === null || _g === void 0 ? void 0 : _g.id) === null || _h === void 0 ? void 0 : _h.$in;
75
83
  if (Array.isArray(memberIdIn)) {
76
84
  andConditions.push({
77
85
  'member.id': {
@@ -79,7 +87,7 @@ class MongoRepository {
79
87
  }
80
88
  });
81
89
  }
82
- const memberNameRegex = (_d = (_c = params.member) === null || _c === void 0 ? void 0 : _c.name) === null || _d === void 0 ? void 0 : _d.$regex;
90
+ const memberNameRegex = (_k = (_j = params.member) === null || _j === void 0 ? void 0 : _j.name) === null || _k === void 0 ? void 0 : _k.$regex;
83
91
  if (typeof memberNameRegex === 'string' && memberNameRegex.length > 0) {
84
92
  andConditions.push({
85
93
  'member.name': {
@@ -88,7 +96,7 @@ class MongoRepository {
88
96
  }
89
97
  });
90
98
  }
91
- const memberHasRoleRoleNameEq = (_g = (_f = (_e = params.member) === null || _e === void 0 ? void 0 : _e.hasRole) === null || _f === void 0 ? void 0 : _f.roleName) === null || _g === void 0 ? void 0 : _g.$eq;
99
+ const memberHasRoleRoleNameEq = (_o = (_m = (_l = params.member) === null || _l === void 0 ? void 0 : _l.hasRole) === null || _m === void 0 ? void 0 : _m.roleName) === null || _o === void 0 ? void 0 : _o.$eq;
92
100
  if (typeof memberHasRoleRoleNameEq === 'string') {
93
101
  andConditions.push({
94
102
  'member.hasRole.roleName': {
@@ -136,7 +144,9 @@ class MongoRepository {
136
144
  return __awaiter(this, void 0, void 0, function* () {
137
145
  const matchStages = [
138
146
  { $match: { 'project.id': { $eq: params.project.id.$eq } } },
139
- { $match: { 'member.id': { $eq: params.member.id.$eq } } }
147
+ { $match: { 'member.id': { $eq: params.member.id.$eq } } },
148
+ { $match: { 'member.memberOf.id': { $eq: params.member.memberOf.id.$eq } } },
149
+ { $match: { 'member.memberOf.typeOf': { $eq: params.member.memberOf.typeOf.$eq } } }
140
150
  ];
141
151
  const aggregate = this.memberModel.aggregate([
142
152
  // ...(typeof params.sort?.productID === 'number')
@@ -215,7 +225,9 @@ class MongoRepository {
215
225
  return __awaiter(this, void 0, void 0, function* () {
216
226
  const doc = yield this.memberModel.findOneAndUpdate({
217
227
  'project.id': { $eq: params.project.id },
218
- 'member.id': { $eq: params.member.id }
228
+ 'member.id': { $eq: params.member.id },
229
+ 'member.memberOf.id': { $eq: params.member.memberOf.id },
230
+ 'member.memberOf.typeOf': { $eq: params.member.memberOf.typeOf }
219
231
  }, Object.assign(Object.assign(Object.assign({ updatedAt: new Date() }, (Array.isArray(params.member.hasRole)) ? { 'member.hasRole': params.member.hasRole } : undefined), (typeof params.member.image === 'string') ? { 'member.image': params.member.image } : undefined), (typeof params.member.name === 'string') ? { 'member.name': params.member.name } : undefined))
220
232
  .exec();
221
233
  if (doc === null) {
@@ -223,6 +235,23 @@ class MongoRepository {
223
235
  }
224
236
  });
225
237
  }
238
+ /**
239
+ * 互換性維持プログラム専用
240
+ */
241
+ updateByMemberMemberOf(params) {
242
+ return __awaiter(this, void 0, void 0, function* () {
243
+ const doc = yield this.memberModel.findOneAndUpdate({
244
+ 'project.id': { $eq: params.project.id },
245
+ 'member.id': { $eq: params.member.id }
246
+ }, {
247
+ 'member.memberOf': params.member.memberOf
248
+ })
249
+ .exec();
250
+ if (doc === null) {
251
+ throw new factory.errors.NotFound(this.memberModel.modelName);
252
+ }
253
+ });
254
+ }
226
255
  /**
227
256
  * メンバー削除
228
257
  */
@@ -230,7 +259,9 @@ class MongoRepository {
230
259
  return __awaiter(this, void 0, void 0, function* () {
231
260
  const doc = yield this.memberModel.findOneAndDelete({
232
261
  'project.id': { $eq: params.project.id },
233
- 'member.id': { $eq: params.member.id }
262
+ 'member.id': { $eq: params.member.id },
263
+ 'member.memberOf.id': { $eq: params.member.memberOf.id.$eq },
264
+ 'member.memberOf.typeOf': { $eq: params.member.memberOf.typeOf.$eq }
234
265
  })
235
266
  .exec();
236
267
  if (doc === null) {
@@ -244,22 +275,37 @@ class MongoRepository {
244
275
  searchProjectIdsByMemberId(params) {
245
276
  var _a, _b;
246
277
  return __awaiter(this, void 0, void 0, function* () {
247
- const searchConditions = Object.assign({ 'member.id': { $eq: params.member.id } }, (typeof ((_b = (_a = params.project) === null || _a === void 0 ? void 0 : _a.id) === null || _b === void 0 ? void 0 : _b.$regex) === 'string' && params.project.id.$regex.length > 0)
248
- ? { 'project.id': { $regex: new RegExp(params.project.id.$regex) } }
249
- : undefined);
250
- const query = this.memberModel.find(searchConditions, { project: 1 })
251
- // sortを保証する
252
- .sort({ 'project.id': factory.sortType.Ascending });
253
- if (typeof params.limit === 'number' && params.limit > 0) {
254
- const page = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
255
- query.limit(params.limit)
256
- .skip(params.limit * (page - 1));
278
+ if (typeof params.limit !== 'number') {
279
+ throw new factory.errors.ArgumentNull('limit');
280
+ }
281
+ if (typeof params.page !== 'number') {
282
+ throw new factory.errors.ArgumentNull('page');
283
+ }
284
+ const matchStages = [{ $match: { 'member.id': { $eq: params.member.id } } }];
285
+ if (typeof ((_b = (_a = params.project) === null || _a === void 0 ? void 0 : _a.id) === null || _b === void 0 ? void 0 : _b.$regex) === 'string' && params.project.id.$regex.length > 0) {
286
+ matchStages.push({ $match: { 'project.id': { $regex: new RegExp(params.project.id.$regex) } } });
257
287
  }
258
- const projectMembers = yield query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
288
+ const page = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
289
+ const aggregate = this.memberModel.aggregate([
290
+ ...matchStages,
291
+ {
292
+ $group: {
293
+ _id: '$project.id'
294
+ }
295
+ },
296
+ { $sort: { _id: factory.sortType.Ascending } }
297
+ ])
298
+ .limit(params.limit * page)
299
+ .skip(params.limit * (page - 1));
300
+ return aggregate
259
301
  .exec()
260
- .then((docs) => docs.map((doc) => doc.toObject()));
261
- return projectMembers.map((m) => m.project.id);
302
+ .then((docs) => docs.map((doc) => doc._id));
262
303
  });
263
304
  }
305
+ getCursor(conditions, projection) {
306
+ return this.memberModel.find(conditions, projection)
307
+ .sort({ 'member.id': factory.sortType.Ascending })
308
+ .cursor();
309
+ }
264
310
  }
265
311
  exports.MongoRepository = MongoRepository;
@@ -25,7 +25,7 @@
25
25
  import { Schema } from 'mongoose';
26
26
  declare const modelName = "Member";
27
27
  /**
28
- * プロジェクトメンバースキーマ
28
+ * IAMメンバースキーマ
29
29
  */
30
30
  declare const schema: Schema<any, import("mongoose").Model<any, any, any, any, any, any>, {}, {}, {}, {}, {
31
31
  collection: string;
@@ -53,16 +53,16 @@ declare const schema: Schema<any, import("mongoose").Model<any, any, any, any, a
53
53
  };
54
54
  }, {
55
55
  typeOf: string;
56
- project?: any;
57
- member?: any;
56
+ project: any;
57
+ member: any;
58
58
  }, import("mongoose").Document<unknown, {}, import("mongoose").FlatRecord<{
59
59
  typeOf: string;
60
- project?: any;
61
- member?: any;
60
+ project: any;
61
+ member: any;
62
62
  }>> & Omit<import("mongoose").FlatRecord<{
63
63
  typeOf: string;
64
- project?: any;
65
- member?: any;
64
+ project: any;
65
+ member: any;
66
66
  }> & {
67
67
  _id: import("mongoose").Types.ObjectId;
68
68
  }, never>>;
@@ -6,15 +6,21 @@ const writeConcern_1 = require("../writeConcern");
6
6
  const modelName = 'Member';
7
7
  exports.modelName = modelName;
8
8
  /**
9
- * プロジェクトメンバースキーマ
9
+ * IAMメンバースキーマ
10
10
  */
11
11
  const schema = new mongoose_1.Schema({
12
- project: mongoose_1.SchemaTypes.Mixed,
12
+ project: {
13
+ type: mongoose_1.SchemaTypes.Mixed,
14
+ required: true
15
+ },
13
16
  typeOf: {
14
17
  type: String,
15
18
  required: true
16
19
  },
17
- member: mongoose_1.SchemaTypes.Mixed
20
+ member: {
21
+ type: mongoose_1.SchemaTypes.Mixed,
22
+ required: true
23
+ }
18
24
  }, {
19
25
  collection: 'members',
20
26
  id: true,
@@ -43,9 +49,7 @@ const schema = new mongoose_1.Schema({
43
49
  exports.schema = schema;
44
50
  schema.index({ createdAt: 1 }, { name: 'searchByCreatedAt' });
45
51
  schema.index({ updatedAt: 1 }, { name: 'searchByUpdatedAt' });
46
- schema.index({ 'member.id': 1 }, {
47
- name: 'searchByMemberId'
48
- });
52
+ schema.index({ 'member.id': 1 }, { name: 'searchByMemberId' });
49
53
  schema.index({ 'project.id': 1, 'member.id': 1 }, {
50
54
  name: 'uniqueProjectMember',
51
55
  unique: true
@@ -62,3 +66,5 @@ schema.index({ 'member.hasRole.roleName': 1, 'member.id': 1 }, {
62
66
  'member.hasRole.roleName': { $exists: true }
63
67
  }
64
68
  });
69
+ schema.index({ 'member.memberOf.typeOf': 1, 'member.id': 1 }, { name: 'searchByMemberMemberOfTypeOf' });
70
+ schema.index({ 'member.memberOf.id': 1, 'member.id': 1 }, { name: 'searchByMemberMemberOfId' });
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import { MongoRepository as MemberRepo } from '../repo/member';
5
5
  import { MongoRepository as RoleRepo } from '../repo/role';
6
+ import * as factory from '../factory';
6
7
  export type IPermission = string;
7
8
  /**
8
9
  * プロジェクトメンバーの権限を検索する
@@ -13,6 +14,10 @@ export declare function searchPermissions(params: {
13
14
  };
14
15
  member: {
15
16
  id: string;
17
+ memberOf: {
18
+ id: string;
19
+ typeOf: factory.organizationType.Project;
20
+ };
16
21
  };
17
22
  }): (repos: {
18
23
  member: MemberRepo;
@@ -18,30 +18,18 @@ function searchPermissions(params) {
18
18
  let permissions = [];
19
19
  const hasRole = yield repos.member.aggregateRoleNames({
20
20
  project: { id: { $eq: params.project.id } },
21
- member: { id: { $eq: params.member.id } }
21
+ member: {
22
+ id: { $eq: params.member.id },
23
+ memberOf: {
24
+ id: { $eq: params.member.memberOf.id },
25
+ typeOf: { $eq: params.member.memberOf.typeOf }
26
+ }
27
+ }
22
28
  });
23
29
  if (hasRole.length > 0) {
24
30
  permissions = yield repos.role.aggregatePermissions({ roleName: { $in: hasRole.map((r) => r.roleName) } });
25
31
  }
26
32
  return { hasRole, permissions };
27
- // let permissions: IPermission[] = [];
28
- // const projectMembers = await repos.member.search({
29
- // project: { id: { $eq: params.project.id } },
30
- // member: { id: { $eq: params.member.id } }
31
- // });
32
- // // 持っているロールを検索
33
- // const roleNames = projectMembers.reduce<string[]>(
34
- // (a, b) => [...a, ...(Array.isArray(b.member.hasRole)) ? b.member.hasRole.map((r) => r.roleName) : []],
35
- // []
36
- // );
37
- // const roles = await repos.role.search({ roleName: { $in: roleNames } });
38
- // // 権限をまとめる
39
- // permissions = roles.reduce<string[]>(
40
- // (a, b) => [...a, ...b.permissions],
41
- // []
42
- // );
43
- // permissions = [...new Set(permissions)];
44
- // return { roleNames, permissions };
45
33
  });
46
34
  }
47
35
  exports.searchPermissions = searchPermissions;
package/package.json CHANGED
@@ -9,8 +9,8 @@
9
9
  }
10
10
  ],
11
11
  "dependencies": {
12
- "@chevre/factory": "4.316.0-alpha.4",
13
- "@cinerino/sdk": "3.161.0-alpha.0",
12
+ "@chevre/factory": "4.316.0-alpha.5",
13
+ "@cinerino/sdk": "3.162.0-alpha.1",
14
14
  "@motionpicture/coa-service": "9.2.0",
15
15
  "@motionpicture/gmo-service": "5.2.0",
16
16
  "@sendgrid/mail": "6.4.0",
@@ -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.4.0-alpha.24"
120
+ "version": "21.4.0-alpha.26"
121
121
  }