@things-factory/board-service 6.2.41 → 6.2.42

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 (32) hide show
  1. package/dist-server/service/board/board-query.js +53 -2
  2. package/dist-server/service/board/board-query.js.map +1 -1
  3. package/dist-server/service/index.js +2 -10
  4. package/dist-server/service/index.js.map +1 -1
  5. package/dist-server/service/permission/board-permission-subscriber.js +14 -39
  6. package/dist-server/service/permission/board-permission-subscriber.js.map +1 -1
  7. package/dist-server/service/permission/domain-permission-subscriber.js +5 -35
  8. package/dist-server/service/permission/domain-permission-subscriber.js.map +1 -1
  9. package/dist-server/tsconfig.tsbuildinfo +1 -1
  10. package/package.json +7 -7
  11. package/server/service/board/board-query.ts +58 -2
  12. package/server/service/index.ts +2 -10
  13. package/server/service/permission/board-permission-subscriber.ts +18 -48
  14. package/server/service/permission/domain-permission-subscriber.ts +7 -40
  15. package/dist-server/service/board-secret/board-resolver.js +0 -156
  16. package/dist-server/service/board-secret/board-resolver.js.map +0 -1
  17. package/dist-server/service/board-secret/board-secret.js +0 -55
  18. package/dist-server/service/board-secret/board-secret.js.map +0 -1
  19. package/dist-server/service/board-secret/index.js +0 -8
  20. package/dist-server/service/board-secret/index.js.map +0 -1
  21. package/dist-server/service/domain-secret/domain-resolver.js +0 -46
  22. package/dist-server/service/domain-secret/domain-resolver.js.map +0 -1
  23. package/dist-server/service/domain-secret/domain-secret.js +0 -49
  24. package/dist-server/service/domain-secret/domain-secret.js.map +0 -1
  25. package/dist-server/service/domain-secret/index.js +0 -8
  26. package/dist-server/service/domain-secret/index.js.map +0 -1
  27. package/server/service/board-secret/board-resolver.ts +0 -148
  28. package/server/service/board-secret/board-secret.ts +0 -38
  29. package/server/service/board-secret/index.ts +0 -5
  30. package/server/service/domain-secret/domain-resolver.ts +0 -46
  31. package/server/service/domain-secret/domain-secret.ts +0 -34
  32. package/server/service/domain-secret/index.ts +0 -5
@@ -6,17 +6,61 @@ const typeorm_1 = require("typeorm");
6
6
  const type_graphql_1 = require("type-graphql");
7
7
  const auth_base_1 = require("@things-factory/auth-base");
8
8
  const shell_1 = require("@things-factory/shell");
9
+ const operato_license_checker_1 = require("@things-factory/operato-license-checker");
9
10
  const group_1 = require("../group/group");
10
11
  const play_group_1 = require("../play-group/play-group");
11
12
  const board_1 = require("./board");
12
13
  const board_type_1 = require("./board-type");
13
14
  const board_history_1 = require("./board-history");
15
+ const license_error_1 = require("../../errors/license-error");
14
16
  let BoardQuery = class BoardQuery {
17
+ async boardPermissions(context) {
18
+ const { user, domain } = context.state;
19
+ const licensedPermissions = ((0, operato_license_checker_1.getPermission)('Permissions For Board Usage') || 'Modeller, Viewer')
20
+ .split(',')
21
+ .map(p => p.trim());
22
+ var permissions = [];
23
+ licensedPermissions.includes('Modeller') &&
24
+ (await auth_base_1.User.hasPrivilege('mutation', 'board', domain, user)) &&
25
+ permissions.push('Modeller');
26
+ licensedPermissions.includes('Viewer') &&
27
+ (await auth_base_1.User.hasPrivilege('query', 'board', domain, user)) &&
28
+ permissions.push('Viewer');
29
+ return permissions;
30
+ }
15
31
  async board(id, context) {
16
32
  const { domain } = context.state;
17
- return await (0, shell_1.getRepository)(board_1.Board).findOne({
33
+ var board = await (0, shell_1.getRepository)(board_1.Board).findOne({
18
34
  where: { domain: { id: (0, typeorm_1.In)([domain.id, domain.parentId].filter(Boolean)) }, id }
19
35
  });
36
+ if (domain) {
37
+ // 1. check domainSecret is over limit quantity or not
38
+ var count = await (0, shell_1.getRepository)(shell_1.Domain)
39
+ .manager.createQueryBuilder()
40
+ .select('id')
41
+ .from(shell_1.Domain, 'domain')
42
+ .getCount();
43
+ if (!(0, operato_license_checker_1.checkDomain)(count)) {
44
+ throw new license_error_1.LicenseError({
45
+ errorCode: context.t(license_error_1.LicenseError.ERROR_CODES.OVER_LIMIT)
46
+ });
47
+ }
48
+ }
49
+ if (board) {
50
+ // 1. check boardSecret is over limit quantity or not
51
+ var count = await (0, shell_1.getRepository)(board_1.Board)
52
+ .manager.createQueryBuilder()
53
+ .select('id')
54
+ .from(board_1.Board, 'board')
55
+ .where('"domain_id" = :domainId', { domainId: domain.id })
56
+ .getCount();
57
+ if (!(0, operato_license_checker_1.checkTarget)(count)) {
58
+ throw new license_error_1.LicenseError({
59
+ errorCode: context.t(license_error_1.LicenseError.ERROR_CODES.OVER_LIMIT)
60
+ });
61
+ }
62
+ }
63
+ return board;
20
64
  }
21
65
  async boardByName(name, context) {
22
66
  const { domain } = context.state;
@@ -96,8 +140,15 @@ let BoardQuery = class BoardQuery {
96
140
  }
97
141
  };
98
142
  tslib_1.__decorate([
99
- (0, type_graphql_1.Query)(returns => board_1.Board, { description: 'To fetch a Board' }),
143
+ (0, type_graphql_1.Query)(returns => [String], { description: 'Board Usage Permissions' }),
144
+ tslib_1.__param(0, (0, type_graphql_1.Ctx)()),
145
+ tslib_1.__metadata("design:type", Function),
146
+ tslib_1.__metadata("design:paramtypes", [Object]),
147
+ tslib_1.__metadata("design:returntype", Promise)
148
+ ], BoardQuery.prototype, "boardPermissions", null);
149
+ tslib_1.__decorate([
100
150
  (0, type_graphql_1.Directive)('@privilege(category: "board", privilege: "query", domainOwnerGranted: true)'),
151
+ (0, type_graphql_1.Query)(returns => board_1.Board, { description: 'To fetch a board' }),
101
152
  tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
102
153
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
103
154
  tslib_1.__metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"board-query.js","sourceRoot":"","sources":["../../../server/service/board/board-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { In } from 'typeorm'\nimport { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root, Directive } from 'type-graphql'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\n\nimport { Group } from '../group/group'\nimport { PlayGroup } from '../play-group/play-group'\nimport { Board } from './board'\nimport { BoardList } from './board-type'\nimport { BoardHistory } from './board-history'\n\n@Resolver(Board)\nexport class BoardQuery {\n @Query(returns => Board, { description: 'To fetch a Board' })\n @Directive('@privilege(category: \"board\", privilege: \"query\", domainOwnerGranted: true)')\n async board(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Board> {\n const { domain } = context.state\n\n return await getRepository(Board).findOne({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, id }\n })\n }\n\n @Query(returns => Board, { nullable: true, description: 'To fetch a Board Model by name' })\n @Directive('@privilege(category: \"board\", privilege: \"query\", domainOwnerGranted: true)')\n async boardByName(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<Board> {\n const { domain } = context.state\n\n return await getRepository(Board).findOne({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, name }\n })\n }\n\n @Query(returns => BoardList, { description: 'To fetch Boards created by me' })\n async boardsCreatedByMe(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<BoardList> {\n const { domain, user } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(Board),\n params,\n domain,\n alias: 'board',\n searchables: ['name', 'description']\n }).andWhere('board.creator = :user', { user: user.id })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => [BoardHistory], { description: 'To fetch a Board Versions' })\n @Directive('@privilege(category: \"board\", privilege: \"query\", domainOwnerGranted: true)')\n async boardVersions(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<BoardHistory[]> {\n const { domain } = context.state\n\n return await getRepository(BoardHistory).find({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, originalId: id },\n relations: ['updater'],\n order: { version: 'DESC' },\n take: 10\n })\n }\n\n @Query(returns => BoardHistory, { description: 'To fetch the latest Board published' })\n @Directive('@privilege(category: \"board\", privilege: \"query\", domainOwnerGranted: true)')\n async boardPublished(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<BoardHistory> {\n const { domain } = context.state\n\n return await getRepository(BoardHistory).findOne({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, originalId: id },\n order: { version: 'DESC' }\n })\n }\n\n @Query(returns => BoardList, { description: 'To fetch multiple Boards' })\n @Directive('@privilege(category: \"board\", privilege: \"query\", domainOwnerGranted: true)')\n async boards(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<BoardList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(Board),\n params,\n domain,\n searchables: ['name', 'description']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => Group)\n async group(@Root() board: Board) {\n return (\n board.groupId &&\n (await getRepository(Group).findOneBy({\n id: board.groupId\n }))\n )\n }\n\n @FieldResolver(type => [PlayGroup])\n async playGroups(@Root() board: Board) {\n return (\n await getRepository(Board).findOne({\n where: { id: board.id },\n relations: ['playGroups']\n })\n )?.playGroups\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() board: Board) {\n return (\n board.domainId &&\n (await getRepository(Domain).findOneBy({\n id: board.domainId\n }))\n )\n }\n\n @FieldResolver(type => User)\n async updater(@Root() board: Board): Promise<User> {\n return (\n board.updaterId &&\n (await getRepository(User).findOneBy({\n id: board.updaterId\n }))\n )\n }\n\n @FieldResolver(type => User)\n async creator(@Root() board: Board): Promise<User> {\n return (\n board.creatorId &&\n (await getRepository(User).findOneBy({\n id: board.creatorId\n }))\n )\n }\n}\n"]}
1
+ {"version":3,"file":"board-query.js","sourceRoot":"","sources":["../../../server/service/board/board-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { In } from 'typeorm'\nimport { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root, Directive } from 'type-graphql'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\nimport { checkTarget, checkDomain, getPermission } from '@things-factory/operato-license-checker'\n\nimport { Group } from '../group/group'\nimport { PlayGroup } from '../play-group/play-group'\nimport { Board } from './board'\nimport { BoardList } from './board-type'\nimport { BoardHistory } from './board-history'\n\nimport { LicenseError } from '../../errors/license-error'\n@Resolver(Board)\nexport class BoardQuery {\n @Query(returns => [String], { description: 'Board Usage Permissions' })\n async boardPermissions(@Ctx() context: ResolverContext): Promise<string[]> {\n const { user, domain } = context.state\n\n const licensedPermissions = (getPermission('Permissions For Board Usage') || 'Modeller, Viewer')\n .split(',')\n .map(p => p.trim())\n\n var permissions = []\n\n licensedPermissions.includes('Modeller') &&\n (await User.hasPrivilege('mutation', 'board', domain, user)) &&\n permissions.push('Modeller')\n\n licensedPermissions.includes('Viewer') &&\n (await User.hasPrivilege('query', 'board', domain, user)) &&\n permissions.push('Viewer')\n\n return permissions\n }\n\n @Directive('@privilege(category: \"board\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => Board, { description: 'To fetch a board' })\n async board(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Board> {\n const { domain } = context.state\n\n var board = await getRepository(Board).findOne({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, id }\n })\n\n if (domain) {\n // 1. check domainSecret is over limit quantity or not\n var count = await getRepository(Domain)\n .manager.createQueryBuilder()\n .select('id')\n .from(Domain, 'domain')\n .getCount()\n\n if (!checkDomain(count)) {\n throw new LicenseError({\n errorCode: context.t(LicenseError.ERROR_CODES.OVER_LIMIT)\n })\n }\n }\n\n if (board) {\n // 1. check boardSecret is over limit quantity or not\n var count = await getRepository(Board)\n .manager.createQueryBuilder()\n .select('id')\n .from(Board, 'board')\n .where('\"domain_id\" = :domainId', { domainId: domain.id })\n .getCount()\n\n if (!checkTarget(count)) {\n throw new LicenseError({\n errorCode: context.t(LicenseError.ERROR_CODES.OVER_LIMIT)\n })\n }\n }\n\n return board\n }\n\n @Query(returns => Board, { nullable: true, description: 'To fetch a Board Model by name' })\n @Directive('@privilege(category: \"board\", privilege: \"query\", domainOwnerGranted: true)')\n async boardByName(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<Board> {\n const { domain } = context.state\n\n return await getRepository(Board).findOne({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, name }\n })\n }\n\n @Query(returns => BoardList, { description: 'To fetch Boards created by me' })\n async boardsCreatedByMe(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<BoardList> {\n const { domain, user } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(Board),\n params,\n domain,\n alias: 'board',\n searchables: ['name', 'description']\n }).andWhere('board.creator = :user', { user: user.id })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => [BoardHistory], { description: 'To fetch a Board Versions' })\n @Directive('@privilege(category: \"board\", privilege: \"query\", domainOwnerGranted: true)')\n async boardVersions(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<BoardHistory[]> {\n const { domain } = context.state\n\n return await getRepository(BoardHistory).find({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, originalId: id },\n relations: ['updater'],\n order: { version: 'DESC' },\n take: 10\n })\n }\n\n @Query(returns => BoardHistory, { description: 'To fetch the latest Board published' })\n @Directive('@privilege(category: \"board\", privilege: \"query\", domainOwnerGranted: true)')\n async boardPublished(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<BoardHistory> {\n const { domain } = context.state\n\n return await getRepository(BoardHistory).findOne({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, originalId: id },\n order: { version: 'DESC' }\n })\n }\n\n @Query(returns => BoardList, { description: 'To fetch multiple Boards' })\n @Directive('@privilege(category: \"board\", privilege: \"query\", domainOwnerGranted: true)')\n async boards(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<BoardList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(Board),\n params,\n domain,\n searchables: ['name', 'description']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => Group)\n async group(@Root() board: Board) {\n return (\n board.groupId &&\n (await getRepository(Group).findOneBy({\n id: board.groupId\n }))\n )\n }\n\n @FieldResolver(type => [PlayGroup])\n async playGroups(@Root() board: Board) {\n return (\n await getRepository(Board).findOne({\n where: { id: board.id },\n relations: ['playGroups']\n })\n )?.playGroups\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() board: Board) {\n return (\n board.domainId &&\n (await getRepository(Domain).findOneBy({\n id: board.domainId\n }))\n )\n }\n\n @FieldResolver(type => User)\n async updater(@Root() board: Board): Promise<User> {\n return (\n board.updaterId &&\n (await getRepository(User).findOneBy({\n id: board.updaterId\n }))\n )\n }\n\n @FieldResolver(type => User)\n async creator(@Root() board: Board): Promise<User> {\n return (\n board.creatorId &&\n (await getRepository(User).findOneBy({\n id: board.creatorId\n }))\n )\n }\n}\n"]}
@@ -8,8 +8,6 @@ tslib_1.__exportStar(require("./theme/theme"), exports);
8
8
  tslib_1.__exportStar(require("./board/board"), exports);
9
9
  tslib_1.__exportStar(require("./group/group"), exports);
10
10
  tslib_1.__exportStar(require("./play-group/play-group"), exports);
11
- tslib_1.__exportStar(require("./board-secret/board-secret"), exports);
12
- tslib_1.__exportStar(require("./domain-secret/domain-secret"), exports);
13
11
  /* IMPORT ENTITIES AND RESOLVERS */
14
12
  const board_template_1 = require("./board-template");
15
13
  const theme_1 = require("./theme");
@@ -17,9 +15,7 @@ const board_1 = require("./board");
17
15
  const group_1 = require("./group");
18
16
  const play_group_1 = require("./play-group");
19
17
  const analysis_1 = require("./analysis");
20
- const board_secret_1 = require("./board-secret");
21
18
  const board_favorite_1 = require("./board-favorite");
22
- const domain_secret_1 = require("./domain-secret");
23
19
  const permission_1 = require("./permission");
24
20
  exports.entities = [
25
21
  /* ENTITIES */
@@ -28,9 +24,7 @@ exports.entities = [
28
24
  ...board_1.entities,
29
25
  ...group_1.entities,
30
26
  ...play_group_1.entities,
31
- ...board_secret_1.entities,
32
- ...board_favorite_1.entities,
33
- ...domain_secret_1.entities
27
+ ...board_favorite_1.entities
34
28
  ];
35
29
  exports.subscribers = [
36
30
  /* SUBSCRIBERS */
@@ -49,9 +43,7 @@ exports.schema = {
49
43
  ...group_1.resolvers,
50
44
  ...play_group_1.resolvers,
51
45
  ...analysis_1.resolvers,
52
- ...board_secret_1.resolvers,
53
- ...board_favorite_1.resolvers,
54
- ...domain_secret_1.resolvers
46
+ ...board_favorite_1.resolvers
55
47
  ]
56
48
  };
57
49
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/service/index.ts"],"names":[],"mappings":";;;;AAAA,yBAAyB;AACzB,0EAA+C;AAC/C,wDAA6B;AAC7B,wDAA6B;AAC7B,wDAA6B;AAC7B,kEAAuC;AACvC,sEAA2C;AAC3C,wEAA6C;AAE7C,mCAAmC;AACnC,qDAIyB;AACzB,mCAAiH;AACjH,mCAAiH;AACjH,mCAAgF;AAChF,6CAIqB;AACrB,yCAAkE;AAClE,iDAAmG;AACnG,qDAAyG;AACzG,mDAAsG;AACtG,6CAAkE;AAErD,QAAA,QAAQ,GAAG;IACtB,cAAc;IACd,GAAG,yBAAqB;IACxB,GAAG,gBAAa;IAChB,GAAG,gBAAa;IAChB,GAAG,gBAAa;IAChB,GAAG,qBAAiB;IACpB,GAAG,uBAAmB;IACtB,GAAG,yBAAqB;IACxB,GAAG,wBAAoB;CACxB,CAAA;AAEY,QAAA,WAAW,GAAG;IACzB,iBAAiB;IACjB,GAAG,4BAAwB;IAC3B,GAAG,mBAAgB;IACnB,GAAG,mBAAgB;IACnB,GAAG,wBAAoB;IACvB,GAAG,wBAAoB;CACxB,CAAA;AAEY,QAAA,MAAM,GAAG;IACpB,eAAe,EAAE;QACf,sBAAsB;QACtB,GAAG,0BAAsB;QACzB,GAAG,iBAAc;QACjB,GAAG,iBAAc;QACjB,GAAG,iBAAc;QACjB,GAAG,sBAAkB;QACrB,GAAG,oBAAwB;QAC3B,GAAG,wBAAoB;QACvB,GAAG,0BAAsB;QACzB,GAAG,yBAAqB;KACzB;CACF,CAAA","sourcesContent":["/* EXPORT ENTITY TYPES */\nexport * from './board-template/board-template'\nexport * from './theme/theme'\nexport * from './board/board'\nexport * from './group/group'\nexport * from './play-group/play-group'\nexport * from './board-secret/board-secret'\nexport * from './domain-secret/domain-secret'\n\n/* IMPORT ENTITIES AND RESOLVERS */\nimport {\n entities as BoardTemplateEntities,\n resolvers as BoardTemplateResolvers,\n subscribers as BoardTemplateSubscribers\n} from './board-template'\nimport { entities as ThemeEntities, resolvers as ThemeResolvers, subscribers as ThemeSubscribers } from './theme'\nimport { entities as BoardEntities, resolvers as BoardResolvers, subscribers as BoardSubscribers } from './board'\nimport { entities as GroupEntities, resolvers as GroupResolvers } from './group'\nimport {\n entities as PlayGroupEntities,\n resolvers as PlayGroupResolvers,\n subscribers as PlayGroupSubscribers\n} from './play-group'\nimport { resolvers as IntegrationAnalysisQuery } from './analysis'\nimport { entities as BoardSecretEntities, resolvers as BoardSecretResolvers } from './board-secret'\nimport { entities as BoardFavoriteEntities, resolvers as BoardFavoriteResolvers } from './board-favorite'\nimport { entities as DomainSecretEntities, resolvers as DomainSecretResolvers } from './domain-secret'\nimport { subscribers as PermissionSubscriber } from './permission'\n\nexport const entities = [\n /* ENTITIES */\n ...BoardTemplateEntities,\n ...ThemeEntities,\n ...BoardEntities,\n ...GroupEntities,\n ...PlayGroupEntities,\n ...BoardSecretEntities,\n ...BoardFavoriteEntities,\n ...DomainSecretEntities\n]\n\nexport const subscribers = [\n /* SUBSCRIBERS */\n ...BoardTemplateSubscribers,\n ...ThemeSubscribers,\n ...BoardSubscribers,\n ...PlayGroupSubscribers,\n ...PermissionSubscriber\n]\n\nexport const schema = {\n resolverClasses: [\n /* RESOLVER CLASSES */\n ...BoardTemplateResolvers,\n ...ThemeResolvers,\n ...BoardResolvers,\n ...GroupResolvers,\n ...PlayGroupResolvers,\n ...IntegrationAnalysisQuery,\n ...BoardSecretResolvers,\n ...BoardFavoriteResolvers,\n ...DomainSecretResolvers\n ]\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/service/index.ts"],"names":[],"mappings":";;;;AAAA,yBAAyB;AACzB,0EAA+C;AAC/C,wDAA6B;AAC7B,wDAA6B;AAC7B,wDAA6B;AAC7B,kEAAuC;AAEvC,mCAAmC;AACnC,qDAIyB;AACzB,mCAAiH;AACjH,mCAAiH;AACjH,mCAAgF;AAChF,6CAIqB;AACrB,yCAAkE;AAClE,qDAAyG;AACzG,6CAAkE;AAErD,QAAA,QAAQ,GAAG;IACtB,cAAc;IACd,GAAG,yBAAqB;IACxB,GAAG,gBAAa;IAChB,GAAG,gBAAa;IAChB,GAAG,gBAAa;IAChB,GAAG,qBAAiB;IACpB,GAAG,yBAAqB;CACzB,CAAA;AAEY,QAAA,WAAW,GAAG;IACzB,iBAAiB;IACjB,GAAG,4BAAwB;IAC3B,GAAG,mBAAgB;IACnB,GAAG,mBAAgB;IACnB,GAAG,wBAAoB;IACvB,GAAG,wBAAoB;CACxB,CAAA;AAEY,QAAA,MAAM,GAAG;IACpB,eAAe,EAAE;QACf,sBAAsB;QACtB,GAAG,0BAAsB;QACzB,GAAG,iBAAc;QACjB,GAAG,iBAAc;QACjB,GAAG,iBAAc;QACjB,GAAG,sBAAkB;QACrB,GAAG,oBAAwB;QAC3B,GAAG,0BAAsB;KAC1B;CACF,CAAA","sourcesContent":["/* EXPORT ENTITY TYPES */\nexport * from './board-template/board-template'\nexport * from './theme/theme'\nexport * from './board/board'\nexport * from './group/group'\nexport * from './play-group/play-group'\n\n/* IMPORT ENTITIES AND RESOLVERS */\nimport {\n entities as BoardTemplateEntities,\n resolvers as BoardTemplateResolvers,\n subscribers as BoardTemplateSubscribers\n} from './board-template'\nimport { entities as ThemeEntities, resolvers as ThemeResolvers, subscribers as ThemeSubscribers } from './theme'\nimport { entities as BoardEntities, resolvers as BoardResolvers, subscribers as BoardSubscribers } from './board'\nimport { entities as GroupEntities, resolvers as GroupResolvers } from './group'\nimport {\n entities as PlayGroupEntities,\n resolvers as PlayGroupResolvers,\n subscribers as PlayGroupSubscribers\n} from './play-group'\nimport { resolvers as IntegrationAnalysisQuery } from './analysis'\nimport { entities as BoardFavoriteEntities, resolvers as BoardFavoriteResolvers } from './board-favorite'\nimport { subscribers as PermissionSubscriber } from './permission'\n\nexport const entities = [\n /* ENTITIES */\n ...BoardTemplateEntities,\n ...ThemeEntities,\n ...BoardEntities,\n ...GroupEntities,\n ...PlayGroupEntities,\n ...BoardFavoriteEntities\n]\n\nexport const subscribers = [\n /* SUBSCRIBERS */\n ...BoardTemplateSubscribers,\n ...ThemeSubscribers,\n ...BoardSubscribers,\n ...PlayGroupSubscribers,\n ...PermissionSubscriber\n]\n\nexport const schema = {\n resolverClasses: [\n /* RESOLVER CLASSES */\n ...BoardTemplateResolvers,\n ...ThemeResolvers,\n ...BoardResolvers,\n ...GroupResolvers,\n ...PlayGroupResolvers,\n ...IntegrationAnalysisQuery,\n ...BoardFavoriteResolvers\n ]\n}\n"]}
@@ -5,9 +5,7 @@ const tslib_1 = require("tslib");
5
5
  const typeorm_1 = require("typeorm");
6
6
  const operato_license_checker_1 = require("@things-factory/operato-license-checker");
7
7
  const board_1 = require("../board/board");
8
- const board_secret_1 = require("../board-secret/board-secret");
9
8
  const license_error_1 = require("../../errors/license-error");
10
- const crypto = require('crypto');
11
9
  let BoardPermissionSubscriber = class BoardPermissionSubscriber {
12
10
  listenTo() {
13
11
  return board_1.Board;
@@ -17,45 +15,22 @@ let BoardPermissionSubscriber = class BoardPermissionSubscriber {
17
15
  */
18
16
  async afterInsert(event) {
19
17
  var entityManager = event.manager;
20
- if ((0, operato_license_checker_1.getValidity)()) {
21
- //target
22
- //1. check board count is over licensed quantity or not
23
- var board = event.entity;
24
- var domain = event.entity.domain;
25
- var count = (await entityManager
26
- .createQueryBuilder()
27
- .select('board')
28
- .from(board_secret_1.BoardSecret, 'secret')
29
- .where('"domain_id" = :domainId', { domainId: domain.id })
30
- .getCount()) + 1;
31
- //2. create new token to board and save board-secret
32
- if ((0, operato_license_checker_1.checkTarget)(count)) {
33
- var board = event.entity;
34
- var boardSecret = new board_secret_1.BoardSecret();
35
- boardSecret.id = crypto.randomUUID();
36
- boardSecret.targetId = board.id;
37
- boardSecret.targetType = 'board';
38
- boardSecret.domain = board.domain;
39
- var hash = (0, operato_license_checker_1.doSomething)({ secId: boardSecret.id, id: board.id });
40
- boardSecret.secret = hash;
41
- await entityManager.save(boardSecret);
42
- }
43
- else {
44
- throw new license_error_1.LicenseError({
45
- errorCode: license_error_1.LicenseError.ERROR_CODES.OVER_LIMIT
46
- });
47
- }
18
+ //target
19
+ //1. check board count is over licensed quantity or not
20
+ var domain = event.entity.domain;
21
+ var count = (await entityManager
22
+ .createQueryBuilder()
23
+ .select('board')
24
+ .from(board_1.Board, 'board')
25
+ .where('"domain_id" = :domainId', { domainId: domain.id })
26
+ .getCount()) + 1;
27
+ //2. create new token to board and save board-secret
28
+ if (!(0, operato_license_checker_1.checkTarget)(count)) {
29
+ throw new license_error_1.LicenseError({
30
+ errorCode: license_error_1.LicenseError.ERROR_CODES.OVER_LIMIT
31
+ });
48
32
  }
49
33
  }
50
- /**
51
- * Called after entity is removed.
52
- */
53
- async afterRemove(event) {
54
- var entityManager = event.manager;
55
- await entityManager.query(`delete
56
- from "board_secrets"
57
- where "target_id" not in (select "id" from "boards")`);
58
- }
59
34
  };
60
35
  BoardPermissionSubscriber = tslib_1.__decorate([
61
36
  (0, typeorm_1.EventSubscriber)()
@@ -1 +1 @@
1
- {"version":3,"file":"board-permission-subscriber.js","sourceRoot":"","sources":["../../../server/service/permission/board-permission-subscriber.ts"],"names":[],"mappings":";;;;AAAA,qCAA8F;AAE9F,qFAA+F;AAE/F,0CAAsC;AACtC,+DAA0D;AAC1D,8DAAyD;AAEzD,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;AAGzB,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IACpC,QAAQ;QACN,OAAO,aAAK,CAAA;IACd,CAAC;IACD;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,KAAyB;QACzC,IAAI,aAAa,GAAG,KAAK,CAAC,OAAO,CAAA;QACjC,IAAI,IAAA,qCAAW,GAAE,EAAE;YACjB,QAAQ;YACR,uDAAuD;YACvD,IAAI,KAAK,GAAU,KAAK,CAAC,MAAM,CAAA;YAC/B,IAAI,MAAM,GAAQ,KAAK,CAAC,MAAM,CAAC,MAAM,CAAA;YACrC,IAAI,KAAK,GACP,CAAC,MAAM,aAAa;iBACjB,kBAAkB,EAAE;iBACpB,MAAM,CAAC,OAAO,CAAC;iBACf,IAAI,CAAC,0BAAW,EAAE,QAAQ,CAAC;iBAC3B,KAAK,CAAC,yBAAyB,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;iBACzD,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAA;YAEpB,oDAAoD;YACpD,IAAI,IAAA,qCAAW,EAAC,KAAK,CAAC,EAAE;gBACtB,IAAI,KAAK,GAAU,KAAK,CAAC,MAAM,CAAA;gBAC/B,IAAI,WAAW,GAAgB,IAAI,0BAAW,EAAE,CAAA;gBAChD,WAAW,CAAC,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,CAAA;gBACpC,WAAW,CAAC,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAA;gBAC/B,WAAW,CAAC,UAAU,GAAG,OAAO,CAAA;gBAChC,WAAW,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;gBAEjC,IAAI,IAAI,GAAG,IAAA,qCAAW,EAAC,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;gBAC/D,WAAW,CAAC,MAAM,GAAG,IAAI,CAAA;gBAEzB,MAAM,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;aACtC;iBAAM;gBACL,MAAM,IAAI,4BAAY,CAAC;oBACrB,SAAS,EAAE,4BAAY,CAAC,WAAW,CAAC,UAAU;iBAC/C,CAAC,CAAA;aACH;SACF;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,KAAyB;QACzC,IAAI,aAAa,GAAG,KAAK,CAAC,OAAO,CAAA;QACjC,MAAM,aAAa,CAAC,KAAK,CACvB;;iEAE2D,CAC5D,CAAA;IACH,CAAC;CACF,CAAA;AAtDY,yBAAyB;IADrC,IAAA,yBAAe,GAAE;GACL,yBAAyB,CAsDrC;AAtDY,8DAAyB","sourcesContent":["import { EntitySubscriberInterface, EventSubscriber, InsertEvent, RemoveEvent } from 'typeorm'\n\nimport { checkTarget, doSomething, getValidity } from '@things-factory/operato-license-checker'\n\nimport { Board } from '../board/board'\nimport { BoardSecret } from '../board-secret/board-secret'\nimport { LicenseError } from '../../errors/license-error'\n\nconst crypto = require('crypto')\n\n@EventSubscriber()\nexport class BoardPermissionSubscriber implements EntitySubscriberInterface<Board> {\n listenTo() {\n return Board\n }\n /**\n * Called before board insertion.\n */\n async afterInsert(event: InsertEvent<Board>) {\n var entityManager = event.manager\n if (getValidity()) {\n //target\n //1. check board count is over licensed quantity or not\n var board: Board = event.entity\n var domain: any = event.entity.domain\n var count =\n (await entityManager\n .createQueryBuilder()\n .select('board')\n .from(BoardSecret, 'secret')\n .where('\"domain_id\" = :domainId', { domainId: domain.id })\n .getCount()) + 1\n\n //2. create new token to board and save board-secret\n if (checkTarget(count)) {\n var board: Board = event.entity\n var boardSecret: BoardSecret = new BoardSecret()\n boardSecret.id = crypto.randomUUID()\n boardSecret.targetId = board.id\n boardSecret.targetType = 'board'\n boardSecret.domain = board.domain\n\n var hash = doSomething({ secId: boardSecret.id, id: board.id })\n boardSecret.secret = hash\n\n await entityManager.save(boardSecret)\n } else {\n throw new LicenseError({\n errorCode: LicenseError.ERROR_CODES.OVER_LIMIT\n })\n }\n }\n }\n\n /**\n * Called after entity is removed.\n */\n async afterRemove(event: RemoveEvent<Board>) {\n var entityManager = event.manager\n await entityManager.query(\n `delete \n from \"board_secrets\"\n where \"target_id\" not in (select \"id\" from \"boards\")`\n )\n }\n}\n"]}
1
+ {"version":3,"file":"board-permission-subscriber.js","sourceRoot":"","sources":["../../../server/service/permission/board-permission-subscriber.ts"],"names":[],"mappings":";;;;AAAA,qCAAiF;AAEjF,qFAAqE;AAErE,0CAAsC;AACtC,8DAAyD;AAGlD,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IACpC,QAAQ;QACN,OAAO,aAAK,CAAA;IACd,CAAC;IACD;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,KAAyB;QACzC,IAAI,aAAa,GAAG,KAAK,CAAC,OAAO,CAAA;QACjC,QAAQ;QACR,uDAAuD;QACvD,IAAI,MAAM,GAAQ,KAAK,CAAC,MAAM,CAAC,MAAM,CAAA;QACrC,IAAI,KAAK,GACP,CAAC,MAAM,aAAa;aACjB,kBAAkB,EAAE;aACpB,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,aAAK,EAAE,OAAO,CAAC;aACpB,KAAK,CAAC,yBAAyB,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;aACzD,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAA;QAEpB,oDAAoD;QACpD,IAAI,CAAC,IAAA,qCAAW,EAAC,KAAK,CAAC,EAAE;YACvB,MAAM,IAAI,4BAAY,CAAC;gBACrB,SAAS,EAAE,4BAAY,CAAC,WAAW,CAAC,UAAU;aAC/C,CAAC,CAAA;SACH;IACH,CAAC;CACF,CAAA;AA3BY,yBAAyB;IADrC,IAAA,yBAAe,GAAE;GACL,yBAAyB,CA2BrC;AA3BY,8DAAyB","sourcesContent":["import { EntitySubscriberInterface, EventSubscriber, InsertEvent } from 'typeorm'\n\nimport { checkTarget } from '@things-factory/operato-license-checker'\n\nimport { Board } from '../board/board'\nimport { LicenseError } from '../../errors/license-error'\n\n@EventSubscriber()\nexport class BoardPermissionSubscriber implements EntitySubscriberInterface<Board> {\n listenTo() {\n return Board\n }\n /**\n * Called before board insertion.\n */\n async afterInsert(event: InsertEvent<Board>) {\n var entityManager = event.manager\n //target\n //1. check board count is over licensed quantity or not\n var domain: any = event.entity.domain\n var count =\n (await entityManager\n .createQueryBuilder()\n .select('board')\n .from(Board, 'board')\n .where('\"domain_id\" = :domainId', { domainId: domain.id })\n .getCount()) + 1\n\n //2. create new token to board and save board-secret\n if (!checkTarget(count)) {\n throw new LicenseError({\n errorCode: LicenseError.ERROR_CODES.OVER_LIMIT\n })\n }\n }\n}\n"]}
@@ -3,10 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DomainPermissionSubscriber = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const typeorm_1 = require("typeorm");
6
- const uuid_1 = require("uuid");
7
6
  const operato_license_checker_1 = require("@things-factory/operato-license-checker");
8
7
  const shell_1 = require("@things-factory/shell");
9
- const domain_secret_1 = require("../domain-secret/domain-secret");
10
8
  const license_error_1 = require("../../errors/license-error");
11
9
  let DomainPermissionSubscriber = class DomainPermissionSubscriber {
12
10
  listenTo() {
@@ -17,41 +15,13 @@ let DomainPermissionSubscriber = class DomainPermissionSubscriber {
17
15
  */
18
16
  async afterInsert(event) {
19
17
  var entityManager = event.manager;
20
- if ((0, operato_license_checker_1.getValidity)()) {
21
- //1. check domain count is over licensed quantity or not
22
- var domain = event.entity;
23
- var count = (await entityManager
24
- .createQueryBuilder()
25
- .select('domain')
26
- .from(domain_secret_1.DomainSecret, 'secret')
27
- .where('"domain_id" = :domainId', { domainId: domain.id })
28
- .getCount()) + 1;
29
- //2. create new token to domain and save domain-secret
30
- if ((0, operato_license_checker_1.checkDomain)(count)) {
31
- var domain = event.entity;
32
- var domainSecret = new domain_secret_1.DomainSecret();
33
- domainSecret.id = (0, uuid_1.v4)();
34
- domainSecret.domain = domain;
35
- var hash = (0, operato_license_checker_1.doSomething)({ secId: domainSecret.id, id: domain.id });
36
- domainSecret.secret = hash;
37
- await entityManager.save(domainSecret);
38
- }
39
- else {
40
- throw new license_error_1.LicenseError({
41
- errorCode: license_error_1.LicenseError.ERROR_CODES.VERIFICATION_ERROR
42
- });
43
- }
18
+ var count = (await entityManager.createQueryBuilder().select('id').from(shell_1.Domain, 'domain').getCount()) + 1;
19
+ if (!(0, operato_license_checker_1.checkDomain)(count)) {
20
+ throw new license_error_1.LicenseError({
21
+ errorCode: license_error_1.LicenseError.ERROR_CODES.VERIFICATION_ERROR
22
+ });
44
23
  }
45
24
  }
46
- /**
47
- * Called after entity is removed.
48
- */
49
- async afterRemove(event) {
50
- var entityManager = event.manager;
51
- await entityManager.query(`delete
52
- from "domain_secrets"
53
- where "domain_id" not in (select "id" from "domains")`);
54
- }
55
25
  };
56
26
  DomainPermissionSubscriber = tslib_1.__decorate([
57
27
  (0, typeorm_1.EventSubscriber)()
@@ -1 +1 @@
1
- {"version":3,"file":"domain-permission-subscriber.js","sourceRoot":"","sources":["../../../server/service/permission/domain-permission-subscriber.ts"],"names":[],"mappings":";;;;AAAA,qCAA8F;AAC9F,+BAAmC;AAEnC,qFAA+F;AAC/F,iDAA8C;AAE9C,kEAA6D;AAC7D,8DAAyD;AAGlD,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IACrC,QAAQ;QACN,OAAO,cAAM,CAAA;IACf,CAAC;IACD;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,KAA0B;QAC1C,IAAI,aAAa,GAAG,KAAK,CAAC,OAAO,CAAA;QAEjC,IAAI,IAAA,qCAAW,GAAE,EAAE;YACjB,wDAAwD;YACxD,IAAI,MAAM,GAAW,KAAK,CAAC,MAAM,CAAA;YACjC,IAAI,KAAK,GACP,CAAC,MAAM,aAAa;iBACjB,kBAAkB,EAAE;iBACpB,MAAM,CAAC,QAAQ,CAAC;iBAChB,IAAI,CAAC,4BAAY,EAAE,QAAQ,CAAC;iBAC5B,KAAK,CAAC,yBAAyB,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;iBACzD,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAA;YAEpB,sDAAsD;YACtD,IAAI,IAAA,qCAAW,EAAC,KAAK,CAAC,EAAE;gBACtB,IAAI,MAAM,GAAW,KAAK,CAAC,MAAM,CAAA;gBACjC,IAAI,YAAY,GAAiB,IAAI,4BAAY,EAAE,CAAA;gBACnD,YAAY,CAAC,EAAE,GAAG,IAAA,SAAM,GAAE,CAAA;gBAC1B,YAAY,CAAC,MAAM,GAAG,MAAM,CAAA;gBAC5B,IAAI,IAAI,GAAG,IAAA,qCAAW,EAAC,EAAE,KAAK,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;gBACjE,YAAY,CAAC,MAAM,GAAG,IAAI,CAAA;gBAE1B,MAAM,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;aACvC;iBAAM;gBACL,MAAM,IAAI,4BAAY,CAAC;oBACrB,SAAS,EAAE,4BAAY,CAAC,WAAW,CAAC,kBAAkB;iBACvD,CAAC,CAAA;aACH;SACF;IACH,CAAC;IACD;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,KAA0B;QAC1C,IAAI,aAAa,GAAG,KAAK,CAAC,OAAO,CAAA;QACjC,MAAM,aAAa,CAAC,KAAK,CACvB;;kEAE4D,CAC7D,CAAA;IACH,CAAC;CACF,CAAA;AAjDY,0BAA0B;IADtC,IAAA,yBAAe,GAAE;GACL,0BAA0B,CAiDtC;AAjDY,gEAA0B","sourcesContent":["import { EntitySubscriberInterface, EventSubscriber, InsertEvent, RemoveEvent } from 'typeorm'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport { checkDomain, doSomething, getValidity } from '@things-factory/operato-license-checker'\nimport { Domain } from '@things-factory/shell'\n\nimport { DomainSecret } from '../domain-secret/domain-secret'\nimport { LicenseError } from '../../errors/license-error'\n\n@EventSubscriber()\nexport class DomainPermissionSubscriber implements EntitySubscriberInterface<Domain> {\n listenTo() {\n return Domain\n }\n /**\n * Called before domain insertion.\n */\n async afterInsert(event: InsertEvent<Domain>) {\n var entityManager = event.manager\n\n if (getValidity()) {\n //1. check domain count is over licensed quantity or not\n var domain: Domain = event.entity\n var count =\n (await entityManager\n .createQueryBuilder()\n .select('domain')\n .from(DomainSecret, 'secret')\n .where('\"domain_id\" = :domainId', { domainId: domain.id })\n .getCount()) + 1\n\n //2. create new token to domain and save domain-secret\n if (checkDomain(count)) {\n var domain: Domain = event.entity\n var domainSecret: DomainSecret = new DomainSecret()\n domainSecret.id = uuidv4()\n domainSecret.domain = domain\n var hash = doSomething({ secId: domainSecret.id, id: domain.id })\n domainSecret.secret = hash\n\n await entityManager.save(domainSecret)\n } else {\n throw new LicenseError({\n errorCode: LicenseError.ERROR_CODES.VERIFICATION_ERROR\n })\n }\n }\n }\n /**\n * Called after entity is removed.\n */\n async afterRemove(event: RemoveEvent<Domain>) {\n var entityManager = event.manager\n await entityManager.query(\n `delete \n from \"domain_secrets\"\n where \"domain_id\" not in (select \"id\" from \"domains\")`\n )\n }\n}\n"]}
1
+ {"version":3,"file":"domain-permission-subscriber.js","sourceRoot":"","sources":["../../../server/service/permission/domain-permission-subscriber.ts"],"names":[],"mappings":";;;;AAAA,qCAAiF;AAEjF,qFAAqE;AACrE,iDAA8C;AAE9C,8DAAyD;AAGlD,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IACrC,QAAQ;QACN,OAAO,cAAM,CAAA;IACf,CAAC;IACD;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,KAA0B;QAC1C,IAAI,aAAa,GAAG,KAAK,CAAC,OAAO,CAAA;QAEjC,IAAI,KAAK,GAAG,CAAC,MAAM,aAAa,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAA;QAEzG,IAAI,CAAC,IAAA,qCAAW,EAAC,KAAK,CAAC,EAAE;YACvB,MAAM,IAAI,4BAAY,CAAC;gBACrB,SAAS,EAAE,4BAAY,CAAC,WAAW,CAAC,kBAAkB;aACvD,CAAC,CAAA;SACH;IACH,CAAC;CACF,CAAA;AAlBY,0BAA0B;IADtC,IAAA,yBAAe,GAAE;GACL,0BAA0B,CAkBtC;AAlBY,gEAA0B","sourcesContent":["import { EntitySubscriberInterface, EventSubscriber, InsertEvent } from 'typeorm'\n\nimport { checkDomain } from '@things-factory/operato-license-checker'\nimport { Domain } from '@things-factory/shell'\n\nimport { LicenseError } from '../../errors/license-error'\n\n@EventSubscriber()\nexport class DomainPermissionSubscriber implements EntitySubscriberInterface<Domain> {\n listenTo() {\n return Domain\n }\n /**\n * Called before domain insertion.\n */\n async afterInsert(event: InsertEvent<Domain>) {\n var entityManager = event.manager\n\n var count = (await entityManager.createQueryBuilder().select('id').from(Domain, 'domain').getCount()) + 1\n\n if (!checkDomain(count)) {\n throw new LicenseError({\n errorCode: LicenseError.ERROR_CODES.VERIFICATION_ERROR\n })\n }\n }\n}\n"]}