@things-factory/operato-board 5.0.8 → 6.0.0-alpha.0

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 (26) hide show
  1. package/_index.html +2 -0
  2. package/client/pages/board-list-page.js +0 -6
  3. package/dist-server/migrations/1610516350460-SeedRole.js +14 -15
  4. package/dist-server/migrations/1610516350460-SeedRole.js.map +1 -1
  5. package/dist-server/routes.js +0 -1
  6. package/dist-server/routes.js.map +1 -1
  7. package/dist-server/service/board-favorite/board-favorite-query.js +4 -6
  8. package/dist-server/service/board-favorite/board-favorite-query.js.map +1 -1
  9. package/dist-server/service/board-secret/board-resolver.js +11 -12
  10. package/dist-server/service/board-secret/board-resolver.js.map +1 -1
  11. package/dist-server/service/board-secret/board-secret.js +3 -4
  12. package/dist-server/service/board-secret/board-secret.js.map +1 -1
  13. package/dist-server/service/domain-secret/domain-resolver.js +1 -4
  14. package/dist-server/service/domain-secret/domain-resolver.js.map +1 -1
  15. package/dist-server/service/domain-secret/domain-secret.js +3 -4
  16. package/dist-server/service/domain-secret/domain-secret.js.map +1 -1
  17. package/dist-server/subscribers/domain-subscriber.js +1 -1
  18. package/dist-server/subscribers/domain-subscriber.js.map +1 -1
  19. package/dist-server/tsconfig.tsbuildinfo +1 -1
  20. package/package.json +32 -32
  21. package/server/migrations/1610516350460-SeedRole.ts +26 -24
  22. package/server/routes.ts +0 -2
  23. package/server/service/board-favorite/board-favorite-query.ts +6 -5
  24. package/server/service/board-secret/board-resolver.ts +4 -6
  25. package/server/service/domain-secret/domain-resolver.ts +6 -9
  26. package/server/subscribers/domain-subscriber.ts +1 -1
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@things-factory/operato-board",
3
- "version": "5.0.8",
3
+ "version": "6.0.0-alpha.0",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "client/index.js",
6
6
  "things-factory": true,
7
7
  "license": "MIT",
8
- "author": "heartyoh",
8
+ "author": "heartyoh <heartyoh@hatiolab.com>",
9
9
  "description": "App for dashboarding",
10
10
  "publishConfig": {
11
11
  "access": "public",
@@ -78,38 +78,38 @@
78
78
  "@operato/shell": "^1.0.1",
79
79
  "@operato/styles": "^1.0.0",
80
80
  "@operato/utils": "^1.0.1",
81
- "@things-factory/apptool-ui": "^5.0.7",
82
- "@things-factory/auth-ui": "^5.0.7",
83
- "@things-factory/board-service": "^5.0.7",
84
- "@things-factory/board-ui": "^5.0.7",
85
- "@things-factory/context-ui": "^5.0.7",
86
- "@things-factory/export-ui": "^5.0.7",
87
- "@things-factory/fav-base": "^5.0.7",
88
- "@things-factory/font-base": "^5.0.7",
89
- "@things-factory/form-ui": "^5.0.1",
90
- "@things-factory/help": "^5.0.7",
91
- "@things-factory/i18n-base": "^5.0.7",
92
- "@things-factory/import-ui": "^5.0.7",
93
- "@things-factory/integration-notification": "^5.0.7",
94
- "@things-factory/integration-ui": "^5.0.7",
95
- "@things-factory/layout-ui": "^5.0.1",
96
- "@things-factory/more-ui": "^5.0.7",
97
- "@things-factory/notification": "^5.0.7",
98
- "@things-factory/oauth2-client": "^5.0.7",
99
- "@things-factory/offline-ui": "^5.0.7",
81
+ "@things-factory/apptool-ui": "^6.0.0-alpha.0",
82
+ "@things-factory/auth-ui": "^6.0.0-alpha.0",
83
+ "@things-factory/board-service": "^6.0.0-alpha.0",
84
+ "@things-factory/board-ui": "^6.0.0-alpha.0",
85
+ "@things-factory/context-ui": "^6.0.0-alpha.0",
86
+ "@things-factory/export-ui": "^6.0.0-alpha.0",
87
+ "@things-factory/fav-base": "^6.0.0-alpha.0",
88
+ "@things-factory/font-base": "^6.0.0-alpha.0",
89
+ "@things-factory/form-ui": "^6.0.0-alpha.0",
90
+ "@things-factory/help": "^6.0.0-alpha.0",
91
+ "@things-factory/i18n-base": "^6.0.0-alpha.0",
92
+ "@things-factory/import-ui": "^6.0.0-alpha.0",
93
+ "@things-factory/integration-notification": "^6.0.0-alpha.0",
94
+ "@things-factory/integration-ui": "^6.0.0-alpha.0",
95
+ "@things-factory/layout-ui": "^6.0.0-alpha.0",
96
+ "@things-factory/more-ui": "^6.0.0-alpha.0",
97
+ "@things-factory/notification": "^6.0.0-alpha.0",
98
+ "@things-factory/oauth2-client": "^6.0.0-alpha.0",
99
+ "@things-factory/offline-ui": "^6.0.0-alpha.0",
100
100
  "@things-factory/operato-license-checker": "^3.1.0",
101
- "@things-factory/pdf": "^5.0.1",
102
- "@things-factory/print-service": "^5.0.7",
103
- "@things-factory/print-ui": "^5.0.7",
104
- "@things-factory/resource-ui": "^5.0.7",
105
- "@things-factory/scene-google-map": "^5.0.0",
106
- "@things-factory/scene-visualizer": "^5.0.0",
107
- "@things-factory/setting-ui": "^5.0.7",
108
- "@things-factory/system-ui": "^5.0.7"
101
+ "@things-factory/pdf": "^6.0.0-alpha.0",
102
+ "@things-factory/print-service": "^6.0.0-alpha.0",
103
+ "@things-factory/print-ui": "^6.0.0-alpha.0",
104
+ "@things-factory/resource-ui": "^6.0.0-alpha.0",
105
+ "@things-factory/scene-google-map": "^6.0.0-alpha.0",
106
+ "@things-factory/scene-visualizer": "^6.0.0-alpha.0",
107
+ "@things-factory/setting-ui": "^6.0.0-alpha.0",
108
+ "@things-factory/system-ui": "^6.0.0-alpha.0"
109
109
  },
110
110
  "devDependencies": {
111
- "@things-factory/board-test": "^5.0.7",
112
- "@things-factory/builder": "^5.0.8"
111
+ "@things-factory/board-test": "^6.0.0-alpha.0",
112
+ "@things-factory/builder": "^6.0.0-alpha.0"
113
113
  },
114
- "gitHead": "de14539186ad35c0bd1379b8ae4dccda7b13256e"
114
+ "gitHead": "e5b9823ab3ebc5d6ae5bcb4b5aa60c1306e4dd7e"
115
115
  }
@@ -1,8 +1,10 @@
1
- import { MigrationInterface, QueryRunner, getRepository } from 'typeorm'
2
- import { Domain } from '@things-factory/shell'
3
- import { Role, Privilege,User } from '@things-factory/auth-base'
1
+ import { MigrationInterface, QueryRunner } from 'typeorm'
2
+
3
+ import { Privilege, Role, User } from '@things-factory/auth-base'
4
+ import { Domain, getRepository } from '@things-factory/shell'
5
+
4
6
  const PRIVILEGES_SEED = {
5
- 'modeller': [
7
+ modeller: [
6
8
  {
7
9
  name: 'mutation',
8
10
  category: 'setting'
@@ -104,7 +106,7 @@ const PRIVILEGES_SEED = {
104
106
  category: 'step'
105
107
  }
106
108
  ],
107
- 'system': [
109
+ system: [
108
110
  {
109
111
  name: 'mutation',
110
112
  category: 'system'
@@ -114,7 +116,7 @@ const PRIVILEGES_SEED = {
114
116
  category: 'system'
115
117
  }
116
118
  ],
117
- 'viewer':[
119
+ viewer: [
118
120
  {
119
121
  name: 'query',
120
122
  category: 'board'
@@ -144,51 +146,51 @@ const SEED = [
144
146
  export class SeedRole1610516350460 implements MigrationInterface {
145
147
  public async up(queryRunner: QueryRunner): Promise<any> {
146
148
  const repository = getRepository(Role)
147
- const userRepository= getRepository(User)
149
+ const userRepository = getRepository(User)
148
150
 
149
- let users: User = await userRepository.find({ where: { userType:'admin' }, relations: ['domains'] })
150
- let domain: Domain = await getRepository(Domain).findOne({
151
+ let users: User[] = await userRepository.find({ where: { userType: 'admin' }, relations: ['domains'] })
152
+ let domain: Domain = await getRepository(Domain).findOneBy({
151
153
  name: 'SYSTEM'
152
154
  })
153
-
155
+
154
156
  var privilegeSeeds = []
155
157
  Promise.all(
156
158
  SEED.map(async role => {
157
- var privileges= await this.getPrivileges(privilegeSeeds,role.name);
159
+ var privileges = await this.getPrivileges(privilegeSeeds, role.name)
158
160
  await repository.save({
159
161
  ...role,
160
- 'privileges':privileges,
162
+ privileges: privileges,
161
163
  users,
162
164
  domain
163
165
  })
164
166
  })
165
167
  )
166
- await this.saveSystemRole(repository,users,domain);
168
+ await this.saveSystemRole(repository, users, domain)
167
169
  }
168
170
 
169
- public async saveSystemRole(repository,users,domain){
170
- const privilegeRepository= getRepository(Privilege)
171
- var role = {
171
+ public async saveSystemRole(repository, users, domain) {
172
+ const privilegeRepository = getRepository(Privilege)
173
+ var role = {
172
174
  name: 'system',
173
175
  description: 'System Admin'
174
176
  }
175
- var privileges = await privilegeRepository.find();
177
+ var privileges = await privilegeRepository.find()
176
178
  await repository.save({
177
179
  ...role,
178
- 'privileges':privileges,
180
+ privileges: privileges,
179
181
  users,
180
182
  domain
181
183
  })
182
184
  }
183
185
 
184
- public async getPrivileges(privilegeSeeds,roleName){
185
- const privilegeRepository= getRepository(Privilege)
186
+ public async getPrivileges(privilegeSeeds, roleName) {
187
+ const privilegeRepository = getRepository(Privilege)
186
188
  privilegeSeeds = PRIVILEGES_SEED[roleName]
187
189
  var privileges = []
188
190
  await Promise.all(
189
191
  privilegeSeeds.map(async privilege => {
190
- var value = await privilegeRepository.findOne({ where: { name: privilege.name, category: privilege.category }})
191
- if(value){
192
+ var value = await privilegeRepository.findOne({ where: { name: privilege.name, category: privilege.category } })
193
+ if (value) {
192
194
  privileges.push(value)
193
195
  }
194
196
  })
@@ -199,7 +201,7 @@ export class SeedRole1610516350460 implements MigrationInterface {
199
201
  public async down(queryRunner: QueryRunner): Promise<any> {
200
202
  const repository = getRepository(Role)
201
203
  const privilegeRepository = getRepository(Privilege)
202
- const domain: Domain = await getRepository(Domain).findOne({
204
+ const domain: Domain = await getRepository(Domain).findOneBy({
203
205
  name: 'SYSTEM'
204
206
  })
205
207
 
@@ -208,7 +210,7 @@ export class SeedRole1610516350460 implements MigrationInterface {
208
210
  await repository.delete({ name: role.name, domain })
209
211
  })
210
212
  )
211
-
213
+
212
214
  await repository.delete({ name: 'system', domain })
213
215
  }
214
216
  }
package/server/routes.ts CHANGED
@@ -1,3 +1 @@
1
- const debug = require('debug')('things-factory:operato-board:routes')
2
-
3
1
  process.on('bootstrap-module-domain-private-route' as any, (app, domainPrivateRouter) => {})
@@ -1,10 +1,11 @@
1
- import { Resolver, Query, Args, Ctx } from 'type-graphql'
2
- import { getRepository } from 'typeorm'
3
- import { ListParam, buildQuery } from '@things-factory/shell'
1
+ import { Args, Ctx, Query, Resolver } from 'type-graphql'
2
+
4
3
  import { Board } from '@things-factory/board-service'
4
+ import { config } from '@things-factory/env'
5
5
  import { Favorite } from '@things-factory/fav-base'
6
+ import { buildQuery, getRepository, ListParam } from '@things-factory/shell'
7
+
6
8
  import { BoardFavorite, BoardFavoriteList } from './board-favorite-type'
7
- import { config } from '@things-factory/env'
8
9
 
9
10
  const ORMCONFIG = config.get('ormconfig', {})
10
11
  const DATABASE_TYPE = ORMCONFIG.type
@@ -12,7 +13,7 @@ const DATABASE_TYPE = ORMCONFIG.type
12
13
  @Resolver(BoardFavorite)
13
14
  export class BoardFavoriteQuery {
14
15
  @Query(returns => BoardFavoriteList, { description: 'To fetch multiple BoardFavorites' })
15
- async favoriteBoards(@Args() params: ListParam, @Ctx() context: any): Promise<BoardFavoriteList> {
16
+ async favoriteBoards(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<BoardFavoriteList> {
16
17
  const { user } = context.state
17
18
 
18
19
  const queryBuilder = getRepository(Board).createQueryBuilder()
@@ -1,8 +1,8 @@
1
1
  import { Arg, Ctx, Query, Resolver } from 'type-graphql'
2
- import { getRepository } from 'typeorm'
3
2
 
4
3
  import { Board } from '@things-factory/board-service'
5
4
  import { checkTarget, doSomething, getPermission } from '@things-factory/operato-license-checker'
5
+ import { getRepository } from '@things-factory/shell'
6
6
 
7
7
  import { LicenseError } from '../../errors/license-error'
8
8
  import { DomainSecret } from '../domain-secret/domain-secret'
@@ -10,21 +10,19 @@ import { BoardSecret } from './board-secret'
10
10
 
11
11
  const crypto = require('crypto')
12
12
 
13
- const debug = require('debug')('things-factory:operato-board:board-resolver')
14
-
15
13
  @Resolver(Board)
16
14
  export class BoardResolver {
17
15
  @Query(returns => [String], { description: 'Board Usage Permissions' })
18
- boardPermissions(@Ctx() context: any): string[] {
16
+ boardPermissions(@Ctx() context: ResolverContext): string[] {
19
17
  return (getPermission('Permissions For Board Usage') || 'Modeller, Viewer').split(',').map(p => p.trim())
20
18
  }
21
19
 
22
20
  @Query(returns => Board, { description: 'To fetch a board' })
23
- async board(@Arg('id') id: string, @Ctx() context: any): Promise<Board> {
21
+ async board(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Board> {
24
22
  const { domain } = context.state
25
23
 
26
24
  var board = await getRepository(Board).findOne({
27
- where: { domain, id }
25
+ where: { domain: { id: domain.id }, id }
28
26
  })
29
27
  if (domain) {
30
28
  // 1. check domainSecret is over limit quantity or not
@@ -1,9 +1,8 @@
1
- import { Resolver, Mutation, Arg, Directive } from 'type-graphql'
2
- import { Repository, getRepository } from 'typeorm'
3
- import { Domain, DomainPatch } from '@things-factory/shell'
4
- import { slugger } from '@things-factory/utils'
1
+ import { Arg, Directive, Mutation, Resolver } from 'type-graphql'
2
+ import { Repository } from 'typeorm'
5
3
 
6
- const debug = require('debug')('things-factory:operato-board:domain-resolver')
4
+ import { Domain, DomainPatch, getRepository } from '@things-factory/shell'
5
+ import { slugger } from '@things-factory/utils'
7
6
 
8
7
  @Resolver(Domain)
9
8
  export class DomainResolver {
@@ -15,13 +14,11 @@ export class DomainResolver {
15
14
  const _createRecords = patches.filter((patch: any) => !patch.id)
16
15
  const _updateRecords = patches.filter((patch: any) => patch.id)
17
16
 
18
- debug('update-domains')
19
-
20
17
  if (_createRecords.length > 0) {
21
18
  _createRecords.forEach(async createRecord => {
22
19
  const subdomain: string = slugger(createRecord.name)
23
20
 
24
- await domainRepo.save({ ...createRecord, subdomain })
21
+ await domainRepo.save({ ...createRecord, subdomain } as any)
25
22
  })
26
23
  }
27
24
 
@@ -36,7 +33,7 @@ export class DomainResolver {
36
33
  await domainRepo.save({
37
34
  ...domain,
38
35
  ...updateRecord
39
- })
36
+ } as any)
40
37
  })
41
38
  }
42
39
 
@@ -34,7 +34,7 @@ export class DomainSubscriber implements EntitySubscriberInterface<Domain> {
34
34
  var domain: Domain = event.entity
35
35
  var domainSecret: DomainSecret = new DomainSecret()
36
36
  domainSecret.id = uuidv4()
37
- domainSecret.domain = domain.domain
37
+ domainSecret.domain = domain
38
38
  var hash = doSomething({ secId: domainSecret.id, id: domain.id })
39
39
  domainSecret.secret = hash
40
40