@things-factory/board-service 9.0.0-beta.8 → 9.0.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 (155) hide show
  1. package/dist-server/controllers/analyzer/analyze-integration.js +4 -4
  2. package/dist-server/controllers/analyzer/analyze-integration.js.map +1 -1
  3. package/dist-server/controllers/fonts.js +12 -9
  4. package/dist-server/controllers/fonts.js.map +1 -1
  5. package/dist-server/controllers/headless-model.d.ts +1 -1
  6. package/dist-server/controllers/headless-model.js +6 -6
  7. package/dist-server/controllers/headless-model.js.map +1 -1
  8. package/dist-server/controllers/headless-playlist.d.ts +1 -1
  9. package/dist-server/controllers/headless-playlist.js +5 -5
  10. package/dist-server/controllers/headless-playlist.js.map +1 -1
  11. package/dist-server/controllers/headless-pool-for-label.js +4 -17
  12. package/dist-server/controllers/headless-pool-for-label.js.map +1 -1
  13. package/dist-server/controllers/index.d.ts +1 -1
  14. package/dist-server/controllers/index.js +8 -8
  15. package/dist-server/controllers/index.js.map +1 -1
  16. package/dist-server/controllers/label-command.js +5 -5
  17. package/dist-server/controllers/label-command.js.map +1 -1
  18. package/dist-server/controllers/pdf.d.ts +9 -1
  19. package/dist-server/controllers/pdf.js +18 -11
  20. package/dist-server/controllers/pdf.js.map +1 -1
  21. package/dist-server/controllers/screenshot.js +14 -10
  22. package/dist-server/controllers/screenshot.js.map +1 -1
  23. package/dist-server/controllers/thumbnail.js +2 -2
  24. package/dist-server/controllers/thumbnail.js.map +1 -1
  25. package/dist-server/errors/index.d.ts +1 -1
  26. package/dist-server/errors/index.js +1 -1
  27. package/dist-server/errors/index.js.map +1 -1
  28. package/dist-server/errors/license-error.js +4 -2
  29. package/dist-server/errors/license-error.js.map +1 -1
  30. package/dist-server/index.d.ts +4 -4
  31. package/dist-server/index.js +4 -4
  32. package/dist-server/index.js.map +1 -1
  33. package/dist-server/migrations/1556862253000-SeedGroup.js +7 -4
  34. package/dist-server/migrations/1556862253000-SeedGroup.js.map +1 -1
  35. package/dist-server/routers/internal-board-view-router.js +1 -1
  36. package/dist-server/routers/internal-board-view-router.js.map +1 -1
  37. package/dist-server/routers/standalone-board-service-router.js +41 -41
  38. package/dist-server/routers/standalone-board-service-router.js.map +1 -1
  39. package/dist-server/routes.js +12 -10
  40. package/dist-server/routes.js.map +1 -1
  41. package/dist-server/service/analysis/analysis-query.js +2 -2
  42. package/dist-server/service/analysis/analysis-query.js.map +1 -1
  43. package/dist-server/service/analysis/index.d.ts +1 -1
  44. package/dist-server/service/analysis/index.js +2 -2
  45. package/dist-server/service/analysis/index.js.map +1 -1
  46. package/dist-server/service/board/board-history.d.ts +4 -3
  47. package/dist-server/service/board/board-history.js +35 -20
  48. package/dist-server/service/board/board-history.js.map +1 -1
  49. package/dist-server/service/board/board-mutation.d.ts +2 -2
  50. package/dist-server/service/board/board-mutation.js +112 -53
  51. package/dist-server/service/board/board-mutation.js.map +1 -1
  52. package/dist-server/service/board/board-query.d.ts +5 -5
  53. package/dist-server/service/board/board-query.js +40 -39
  54. package/dist-server/service/board/board-query.js.map +1 -1
  55. package/dist-server/service/board/board-subscription.d.ts +1 -1
  56. package/dist-server/service/board/board-subscription.js +6 -6
  57. package/dist-server/service/board/board-subscription.js.map +1 -1
  58. package/dist-server/service/board/board-type.d.ts +4 -2
  59. package/dist-server/service/board/board-type.js +28 -20
  60. package/dist-server/service/board/board-type.js.map +1 -1
  61. package/dist-server/service/board/board.d.ts +3 -2
  62. package/dist-server/service/board/board.js +26 -21
  63. package/dist-server/service/board/board.js.map +1 -1
  64. package/dist-server/service/board/event-subscriber.d.ts +5 -5
  65. package/dist-server/service/board/event-subscriber.js +8 -8
  66. package/dist-server/service/board/event-subscriber.js.map +1 -1
  67. package/dist-server/service/board/index.d.ts +6 -6
  68. package/dist-server/service/board/index.js +9 -9
  69. package/dist-server/service/board/index.js.map +1 -1
  70. package/dist-server/service/board-favorite/board-favorite-query.d.ts +1 -1
  71. package/dist-server/service/board-favorite/board-favorite-query.js +5 -5
  72. package/dist-server/service/board-favorite/board-favorite-query.js.map +1 -1
  73. package/dist-server/service/board-favorite/board-favorite-type.d.ts +1 -1
  74. package/dist-server/service/board-favorite/board-favorite-type.js +7 -7
  75. package/dist-server/service/board-favorite/board-favorite-type.js.map +1 -1
  76. package/dist-server/service/board-favorite/index.d.ts +1 -1
  77. package/dist-server/service/board-favorite/index.js +2 -2
  78. package/dist-server/service/board-favorite/index.js.map +1 -1
  79. package/dist-server/service/board-template/board-template-mutation.d.ts +2 -2
  80. package/dist-server/service/board-template/board-template-mutation.js +43 -25
  81. package/dist-server/service/board-template/board-template-mutation.js.map +1 -1
  82. package/dist-server/service/board-template/board-template-query.d.ts +2 -2
  83. package/dist-server/service/board-template/board-template-query.js +13 -13
  84. package/dist-server/service/board-template/board-template-query.js.map +1 -1
  85. package/dist-server/service/board-template/board-template-type.d.ts +1 -1
  86. package/dist-server/service/board-template/board-template-type.js +21 -18
  87. package/dist-server/service/board-template/board-template-type.js.map +1 -1
  88. package/dist-server/service/board-template/board-template.js +14 -14
  89. package/dist-server/service/board-template/board-template.js.map +1 -1
  90. package/dist-server/service/board-template/index.d.ts +3 -3
  91. package/dist-server/service/board-template/index.js +5 -5
  92. package/dist-server/service/board-template/index.js.map +1 -1
  93. package/dist-server/service/group/group-mutation.d.ts +2 -2
  94. package/dist-server/service/group/group-mutation.js +25 -16
  95. package/dist-server/service/group/group-mutation.js.map +1 -1
  96. package/dist-server/service/group/group-query.d.ts +3 -3
  97. package/dist-server/service/group/group-query.js +17 -17
  98. package/dist-server/service/group/group-query.js.map +1 -1
  99. package/dist-server/service/group/group-type.d.ts +1 -1
  100. package/dist-server/service/group/group-type.js +10 -10
  101. package/dist-server/service/group/group-type.js.map +1 -1
  102. package/dist-server/service/group/group.d.ts +1 -1
  103. package/dist-server/service/group/group.js +12 -12
  104. package/dist-server/service/group/group.js.map +1 -1
  105. package/dist-server/service/group/index.d.ts +3 -3
  106. package/dist-server/service/group/index.js +5 -5
  107. package/dist-server/service/group/index.js.map +1 -1
  108. package/dist-server/service/index.d.ts +6 -6
  109. package/dist-server/service/index.js +31 -31
  110. package/dist-server/service/index.js.map +1 -1
  111. package/dist-server/service/permission/domain-permission-subscriber.js +3 -3
  112. package/dist-server/service/permission/domain-permission-subscriber.js.map +1 -1
  113. package/dist-server/service/permission/index.d.ts +1 -1
  114. package/dist-server/service/permission/index.js +2 -2
  115. package/dist-server/service/permission/index.js.map +1 -1
  116. package/dist-server/service/play-group/event-subscriber.d.ts +1 -1
  117. package/dist-server/service/play-group/event-subscriber.js +3 -3
  118. package/dist-server/service/play-group/event-subscriber.js.map +1 -1
  119. package/dist-server/service/play-group/index.d.ts +5 -5
  120. package/dist-server/service/play-group/index.js +8 -8
  121. package/dist-server/service/play-group/index.js.map +1 -1
  122. package/dist-server/service/play-group/play-group-mutation.d.ts +2 -2
  123. package/dist-server/service/play-group/play-group-mutation.js +35 -22
  124. package/dist-server/service/play-group/play-group-mutation.js.map +1 -1
  125. package/dist-server/service/play-group/play-group-query.d.ts +3 -3
  126. package/dist-server/service/play-group/play-group-query.js +20 -18
  127. package/dist-server/service/play-group/play-group-query.js.map +1 -1
  128. package/dist-server/service/play-group/play-group-subscription.d.ts +1 -1
  129. package/dist-server/service/play-group/play-group-subscription.js +6 -6
  130. package/dist-server/service/play-group/play-group-subscription.js.map +1 -1
  131. package/dist-server/service/play-group/play-group-type.d.ts +1 -1
  132. package/dist-server/service/play-group/play-group-type.js +10 -10
  133. package/dist-server/service/play-group/play-group-type.js.map +1 -1
  134. package/dist-server/service/play-group/play-group.d.ts +2 -2
  135. package/dist-server/service/play-group/play-group.js +17 -13
  136. package/dist-server/service/play-group/play-group.js.map +1 -1
  137. package/dist-server/service/theme/index.d.ts +3 -3
  138. package/dist-server/service/theme/index.js +5 -5
  139. package/dist-server/service/theme/index.js.map +1 -1
  140. package/dist-server/service/theme/theme-mutation.d.ts +2 -2
  141. package/dist-server/service/theme/theme-mutation.js +44 -24
  142. package/dist-server/service/theme/theme-mutation.js.map +1 -1
  143. package/dist-server/service/theme/theme-query.d.ts +2 -2
  144. package/dist-server/service/theme/theme-query.js +13 -13
  145. package/dist-server/service/theme/theme-query.js.map +1 -1
  146. package/dist-server/service/theme/theme-type.d.ts +1 -1
  147. package/dist-server/service/theme/theme-type.js +18 -18
  148. package/dist-server/service/theme/theme-type.js.map +1 -1
  149. package/dist-server/service/theme/theme.js +16 -13
  150. package/dist-server/service/theme/theme.js.map +1 -1
  151. package/dist-server/tsconfig.tsbuildinfo +1 -1
  152. package/package.json +10 -9
  153. package/views/internal-board-full-feature-view.html +0 -1
  154. package/views/internal-board-player-view.html +0 -1
  155. package/views/internal-board-service-view.html +0 -1
@@ -7,16 +7,16 @@ 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
9
  const operato_license_checker_1 = require("@things-factory/operato-license-checker");
10
- const group_1 = require("../group/group");
11
- const play_group_1 = require("../play-group/play-group");
12
- const board_1 = require("./board");
13
- const board_type_1 = require("./board-type");
14
- const board_history_1 = require("./board-history");
15
- const license_error_1 = require("../../errors/license-error");
10
+ const group_js_1 = require("../group/group.js");
11
+ const play_group_js_1 = require("../play-group/play-group.js");
12
+ const board_js_1 = require("./board.js");
13
+ const board_type_js_1 = require("./board-type.js");
14
+ const board_history_js_1 = require("./board-history.js");
15
+ const license_error_js_1 = require("../../errors/license-error.js");
16
16
  let BoardQuery = class BoardQuery {
17
17
  async board(id, context) {
18
18
  const { domain } = context.state;
19
- var board = await (0, shell_1.getRepository)(board_1.Board).findOne({
19
+ var board = await (0, shell_1.getRepository)(board_js_1.Board).findOne({
20
20
  where: { domain: { id: (0, typeorm_1.In)([domain.id, domain.parentId].filter(Boolean)) }, id }
21
21
  });
22
22
  if (domain) {
@@ -27,22 +27,22 @@ let BoardQuery = class BoardQuery {
27
27
  .from(shell_1.Domain, 'domain')
28
28
  .getCount();
29
29
  if (!(0, operato_license_checker_1.checkDomain)(count)) {
30
- throw new license_error_1.LicenseError({
31
- errorCode: context.t(license_error_1.LicenseError.ERROR_CODES.OVER_LIMIT)
30
+ throw new license_error_js_1.LicenseError({
31
+ errorCode: context.t(license_error_js_1.LicenseError.ERROR_CODES.OVER_LIMIT)
32
32
  });
33
33
  }
34
34
  }
35
35
  if (board) {
36
36
  // 1. check boardSecret is over limit quantity or not
37
- var count = await (0, shell_1.getRepository)(board_1.Board)
37
+ var count = await (0, shell_1.getRepository)(board_js_1.Board)
38
38
  .manager.createQueryBuilder()
39
39
  .select('id')
40
- .from(board_1.Board, 'board')
40
+ .from(board_js_1.Board, 'board')
41
41
  .where('"domain_id" = :domainId', { domainId: domain.id })
42
42
  .getCount();
43
43
  if (!(0, operato_license_checker_1.checkTarget)(count)) {
44
- throw new license_error_1.LicenseError({
45
- errorCode: context.t(license_error_1.LicenseError.ERROR_CODES.OVER_LIMIT)
44
+ throw new license_error_js_1.LicenseError({
45
+ errorCode: context.t(license_error_js_1.LicenseError.ERROR_CODES.OVER_LIMIT)
46
46
  });
47
47
  }
48
48
  }
@@ -50,14 +50,14 @@ let BoardQuery = class BoardQuery {
50
50
  }
51
51
  async boardByName(name, context) {
52
52
  const { domain } = context.state;
53
- return await (0, shell_1.getRepository)(board_1.Board).findOne({
53
+ return await (0, shell_1.getRepository)(board_js_1.Board).findOne({
54
54
  where: { domain: { id: (0, typeorm_1.In)([domain.id, domain.parentId].filter(Boolean)) }, name }
55
55
  });
56
56
  }
57
57
  async boardsCreatedByMe(params, context) {
58
58
  const { domain, user } = context.state;
59
59
  const queryBuilder = (0, shell_1.getQueryBuilderFromListParams)({
60
- repository: (0, shell_1.getRepository)(board_1.Board),
60
+ repository: (0, shell_1.getRepository)(board_js_1.Board),
61
61
  params,
62
62
  domain,
63
63
  alias: 'board',
@@ -68,7 +68,7 @@ let BoardQuery = class BoardQuery {
68
68
  }
69
69
  async boardVersions(id, context) {
70
70
  const { domain } = context.state;
71
- return await (0, shell_1.getRepository)(board_history_1.BoardHistory).find({
71
+ return await (0, shell_1.getRepository)(board_history_js_1.BoardHistory).find({
72
72
  where: { domain: { id: (0, typeorm_1.In)([domain.id, domain.parentId].filter(Boolean)) }, originalId: id },
73
73
  relations: ['updater'],
74
74
  order: { version: 'DESC' },
@@ -77,7 +77,7 @@ let BoardQuery = class BoardQuery {
77
77
  }
78
78
  async boardPublished(id, context) {
79
79
  const { domain } = context.state;
80
- return await (0, shell_1.getRepository)(board_history_1.BoardHistory).findOne({
80
+ return await (0, shell_1.getRepository)(board_history_js_1.BoardHistory).findOne({
81
81
  where: { domain: { id: (0, typeorm_1.In)([domain.id, domain.parentId].filter(Boolean)) }, originalId: id },
82
82
  order: { version: 'DESC' }
83
83
  });
@@ -85,7 +85,7 @@ let BoardQuery = class BoardQuery {
85
85
  async boards(params, context) {
86
86
  const { domain } = context.state;
87
87
  const queryBuilder = (0, shell_1.getQueryBuilderFromListParams)({
88
- repository: (0, shell_1.getRepository)(board_1.Board),
88
+ repository: (0, shell_1.getRepository)(board_js_1.Board),
89
89
  params,
90
90
  domain,
91
91
  searchables: ['name', 'description']
@@ -95,16 +95,15 @@ let BoardQuery = class BoardQuery {
95
95
  }
96
96
  async group(board) {
97
97
  return (board.groupId &&
98
- (await (0, shell_1.getRepository)(group_1.Group).findOneBy({
98
+ (await (0, shell_1.getRepository)(group_js_1.Group).findOneBy({
99
99
  id: board.groupId
100
100
  })));
101
101
  }
102
102
  async playGroups(board) {
103
- var _a;
104
- return (_a = (await (0, shell_1.getRepository)(board_1.Board).findOne({
103
+ return (await (0, shell_1.getRepository)(board_js_1.Board).findOne({
105
104
  where: { id: board.id },
106
105
  relations: ['playGroups']
107
- }))) === null || _a === void 0 ? void 0 : _a.playGroups;
106
+ }))?.playGroups;
108
107
  }
109
108
  async domain(board) {
110
109
  return (board.domainId &&
@@ -128,7 +127,7 @@ let BoardQuery = class BoardQuery {
128
127
  exports.BoardQuery = BoardQuery;
129
128
  tslib_1.__decorate([
130
129
  (0, type_graphql_1.Directive)('@privilege(category: "board", privilege: "query", domainOwnerGranted: true)'),
131
- (0, type_graphql_1.Query)(returns => board_1.Board, { description: 'To fetch a board' }),
130
+ (0, type_graphql_1.Query)(returns => board_js_1.Board, { description: 'Finds a single board by its ID.' }),
132
131
  tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
133
132
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
134
133
  tslib_1.__metadata("design:type", Function),
@@ -136,7 +135,7 @@ tslib_1.__decorate([
136
135
  tslib_1.__metadata("design:returntype", Promise)
137
136
  ], BoardQuery.prototype, "board", null);
138
137
  tslib_1.__decorate([
139
- (0, type_graphql_1.Query)(returns => board_1.Board, { nullable: true, description: 'To fetch a Board Model by name' }),
138
+ (0, type_graphql_1.Query)(returns => board_js_1.Board, { nullable: true, description: 'Finds a single board by its name.' }),
140
139
  (0, type_graphql_1.Directive)('@privilege(category: "board", privilege: "query", domainOwnerGranted: true)'),
141
140
  tslib_1.__param(0, (0, type_graphql_1.Arg)('name')),
142
141
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -145,7 +144,7 @@ tslib_1.__decorate([
145
144
  tslib_1.__metadata("design:returntype", Promise)
146
145
  ], BoardQuery.prototype, "boardByName", null);
147
146
  tslib_1.__decorate([
148
- (0, type_graphql_1.Query)(returns => board_type_1.BoardList, { description: 'To fetch Boards created by me' }),
147
+ (0, type_graphql_1.Query)(returns => board_type_js_1.BoardList, { description: 'Retrieves a paginated list of boards created by the current user.' }),
149
148
  tslib_1.__param(0, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
150
149
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
151
150
  tslib_1.__metadata("design:type", Function),
@@ -153,7 +152,7 @@ tslib_1.__decorate([
153
152
  tslib_1.__metadata("design:returntype", Promise)
154
153
  ], BoardQuery.prototype, "boardsCreatedByMe", null);
155
154
  tslib_1.__decorate([
156
- (0, type_graphql_1.Query)(returns => [board_history_1.BoardHistory], { description: 'To fetch a Board Versions' }),
155
+ (0, type_graphql_1.Query)(returns => [board_history_js_1.BoardHistory], { description: 'Retrieves up to 10 historical versions of a specific board.' }),
157
156
  (0, type_graphql_1.Directive)('@privilege(category: "board", privilege: "query", domainOwnerGranted: true)'),
158
157
  tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
159
158
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -162,7 +161,7 @@ tslib_1.__decorate([
162
161
  tslib_1.__metadata("design:returntype", Promise)
163
162
  ], BoardQuery.prototype, "boardVersions", null);
164
163
  tslib_1.__decorate([
165
- (0, type_graphql_1.Query)(returns => board_history_1.BoardHistory, { description: 'To fetch the latest Board published' }),
164
+ (0, type_graphql_1.Query)(returns => board_history_js_1.BoardHistory, { description: 'Retrieves the most recently published version of a board.' }),
166
165
  (0, type_graphql_1.Directive)('@privilege(category: "board", privilege: "query", domainOwnerGranted: true)'),
167
166
  tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
168
167
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -171,7 +170,7 @@ tslib_1.__decorate([
171
170
  tslib_1.__metadata("design:returntype", Promise)
172
171
  ], BoardQuery.prototype, "boardPublished", null);
173
172
  tslib_1.__decorate([
174
- (0, type_graphql_1.Query)(returns => board_type_1.BoardList, { description: 'To fetch multiple Boards' }),
173
+ (0, type_graphql_1.Query)(returns => board_type_js_1.BoardList, { description: 'Retrieves a paginated list of all boards.' }),
175
174
  (0, type_graphql_1.Directive)('@privilege(category: "board", privilege: "query", domainOwnerGranted: true)'),
176
175
  tslib_1.__param(0, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
177
176
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -180,41 +179,43 @@ tslib_1.__decorate([
180
179
  tslib_1.__metadata("design:returntype", Promise)
181
180
  ], BoardQuery.prototype, "boards", null);
182
181
  tslib_1.__decorate([
183
- (0, type_graphql_1.FieldResolver)(type => group_1.Group),
182
+ (0, type_graphql_1.FieldResolver)(type => group_js_1.Group, { description: 'Resolves the group that the board belongs to.' }),
184
183
  tslib_1.__param(0, (0, type_graphql_1.Root)()),
185
184
  tslib_1.__metadata("design:type", Function),
186
- tslib_1.__metadata("design:paramtypes", [board_1.Board]),
185
+ tslib_1.__metadata("design:paramtypes", [board_js_1.Board]),
187
186
  tslib_1.__metadata("design:returntype", Promise)
188
187
  ], BoardQuery.prototype, "group", null);
189
188
  tslib_1.__decorate([
190
- (0, type_graphql_1.FieldResolver)(type => [play_group_1.PlayGroup]),
189
+ (0, type_graphql_1.FieldResolver)(type => [play_group_js_1.PlayGroup], {
190
+ description: 'Resolves the list of play groups that this board is a member of.'
191
+ }),
191
192
  tslib_1.__param(0, (0, type_graphql_1.Root)()),
192
193
  tslib_1.__metadata("design:type", Function),
193
- tslib_1.__metadata("design:paramtypes", [board_1.Board]),
194
+ tslib_1.__metadata("design:paramtypes", [board_js_1.Board]),
194
195
  tslib_1.__metadata("design:returntype", Promise)
195
196
  ], BoardQuery.prototype, "playGroups", null);
196
197
  tslib_1.__decorate([
197
- (0, type_graphql_1.FieldResolver)(type => shell_1.Domain),
198
+ (0, type_graphql_1.FieldResolver)(type => shell_1.Domain, { description: 'Resolves the domain associated with the board.' }),
198
199
  tslib_1.__param(0, (0, type_graphql_1.Root)()),
199
200
  tslib_1.__metadata("design:type", Function),
200
- tslib_1.__metadata("design:paramtypes", [board_1.Board]),
201
+ tslib_1.__metadata("design:paramtypes", [board_js_1.Board]),
201
202
  tslib_1.__metadata("design:returntype", Promise)
202
203
  ], BoardQuery.prototype, "domain", null);
203
204
  tslib_1.__decorate([
204
- (0, type_graphql_1.FieldResolver)(type => auth_base_1.User),
205
+ (0, type_graphql_1.FieldResolver)(type => auth_base_1.User, { description: 'Resolves the user who last updated the board.' }),
205
206
  tslib_1.__param(0, (0, type_graphql_1.Root)()),
206
207
  tslib_1.__metadata("design:type", Function),
207
- tslib_1.__metadata("design:paramtypes", [board_1.Board]),
208
+ tslib_1.__metadata("design:paramtypes", [board_js_1.Board]),
208
209
  tslib_1.__metadata("design:returntype", Promise)
209
210
  ], BoardQuery.prototype, "updater", null);
210
211
  tslib_1.__decorate([
211
- (0, type_graphql_1.FieldResolver)(type => auth_base_1.User),
212
+ (0, type_graphql_1.FieldResolver)(type => auth_base_1.User, { description: 'Resolves the user who created the board.' }),
212
213
  tslib_1.__param(0, (0, type_graphql_1.Root)()),
213
214
  tslib_1.__metadata("design:type", Function),
214
- tslib_1.__metadata("design:paramtypes", [board_1.Board]),
215
+ tslib_1.__metadata("design:paramtypes", [board_js_1.Board]),
215
216
  tslib_1.__metadata("design:returntype", Promise)
216
217
  ], BoardQuery.prototype, "creator", null);
217
218
  exports.BoardQuery = BoardQuery = tslib_1.__decorate([
218
- (0, type_graphql_1.Resolver)(board_1.Board)
219
+ (0, type_graphql_1.Resolver)(board_js_1.Board)
219
220
  ], BoardQuery);
220
221
  //# sourceMappingURL=board-query.js.map
@@ -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'\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 @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(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): 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(type => ListParam) 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.js'\nimport { PlayGroup } from '../play-group/play-group.js'\nimport { Board } from './board.js'\nimport { BoardList } from './board-type.js'\nimport { BoardHistory } from './board-history.js'\n\nimport { LicenseError } from '../../errors/license-error.js'\n@Resolver(Board)\nexport class BoardQuery {\n @Directive('@privilege(category: \"board\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => Board, { description: 'Finds a single board by its ID.' })\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: 'Finds a single board by its 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: 'Retrieves a paginated list of boards created by the current user.' })\n async boardsCreatedByMe(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): 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: 'Retrieves up to 10 historical versions of a specific board.' })\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: 'Retrieves the most recently published version of a board.' })\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: 'Retrieves a paginated list of all boards.' })\n @Directive('@privilege(category: \"board\", privilege: \"query\", domainOwnerGranted: true)')\n async boards(@Args(type => ListParam) 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, { description: 'Resolves the group that the board belongs to.' })\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 description: 'Resolves the list of play groups that this board is a member of.'\n })\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, { description: 'Resolves the domain associated with the board.' })\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, { description: 'Resolves the user who last updated the board.' })\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, { description: 'Resolves the user who created the board.' })\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,4 +1,4 @@
1
- import { Board } from './board';
1
+ import { Board } from './board.js';
2
2
  export declare class BoardSubscription {
3
3
  board(payload: {
4
4
  board: Board;
@@ -5,7 +5,7 @@ const tslib_1 = require("tslib");
5
5
  const type_graphql_1 = require("type-graphql");
6
6
  const graphql_yoga_1 = require("graphql-yoga");
7
7
  const shell_1 = require("@things-factory/shell");
8
- const board_1 = require("./board");
8
+ const board_js_1 = require("./board.js");
9
9
  let BoardSubscription = class BoardSubscription {
10
10
  board(payload, id) {
11
11
  return payload.board;
@@ -14,15 +14,15 @@ let BoardSubscription = class BoardSubscription {
14
14
  exports.BoardSubscription = BoardSubscription;
15
15
  tslib_1.__decorate([
16
16
  (0, type_graphql_1.Subscription)({
17
+ description: 'Subscribes to real-time updates for a specific board.',
17
18
  subscribe: ({ args, context, info }) => {
18
- var _a;
19
19
  const { domain, user } = context.state;
20
20
  const { id } = args;
21
- const subdomain = domain === null || domain === void 0 ? void 0 : domain.subdomain;
21
+ const subdomain = domain?.subdomain;
22
22
  if (!domain) {
23
23
  throw new Error('domain required');
24
24
  }
25
- if (!((_a = user.domains) === null || _a === void 0 ? void 0 : _a.find(d => d.subdomain === subdomain)) && !process.superUserGranted(domain, user)) {
25
+ if (!user.domains?.find(d => d.subdomain === subdomain) && !process.superUserGranted(domain, user)) {
26
26
  throw new Error(`domain(${subdomain}) is not working for user(${user.email}).`);
27
27
  }
28
28
  return (0, graphql_yoga_1.pipe)(shell_1.pubsub.subscribe('board'), (0, graphql_yoga_1.filter)((payload) => {
@@ -41,9 +41,9 @@ tslib_1.__decorate([
41
41
  tslib_1.__param(1, (0, type_graphql_1.Arg)('id')),
42
42
  tslib_1.__metadata("design:type", Function),
43
43
  tslib_1.__metadata("design:paramtypes", [Object, String]),
44
- tslib_1.__metadata("design:returntype", board_1.Board)
44
+ tslib_1.__metadata("design:returntype", board_js_1.Board)
45
45
  ], BoardSubscription.prototype, "board", null);
46
46
  exports.BoardSubscription = BoardSubscription = tslib_1.__decorate([
47
- (0, type_graphql_1.Resolver)(board_1.Board)
47
+ (0, type_graphql_1.Resolver)(board_js_1.Board)
48
48
  ], BoardSubscription);
49
49
  //# sourceMappingURL=board-subscription.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"board-subscription.js","sourceRoot":"","sources":["../../../server/service/board/board-subscription.ts"],"names":[],"mappings":";;;;AAAA,+CAAgE;AAChE,+CAA2C;AAC3C,iDAA8C;AAC9C,mCAA+B;AAGxB,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAiC5B,KAAK,CAAS,OAAyB,EAAa,EAAU;QAC5D,OAAO,OAAO,CAAC,KAAK,CAAA;IACtB,CAAC;CACF,CAAA;AApCY,8CAAiB;AAiC5B;IAhCC,IAAA,2BAAY,EAAC;QACZ,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;;YACrC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;YACtC,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAA;YACnB,MAAM,SAAS,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,CAAA;YAEnC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;YACpC,CAAC;YAED,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;gBACnG,MAAM,IAAI,KAAK,CAAC,UAAU,SAAS,6BAA6B,IAAI,CAAC,KAAK,IAAI,CAAC,CAAA;YACjF,CAAC;YAED,OAAO,IAAA,mBAAI,EACT,cAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EACzB,IAAA,qBAAM,EAAC,CAAC,OAAyB,EAAE,EAAE;gBACnC,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;gBAE/C,IAAI,QAAQ,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC;oBAC3B,OAAO,KAAK,CAAA;gBACd,CAAC;gBAED,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;oBACnB,OAAO,KAAK,CAAA;gBACd,CAAC;gBAED,OAAO,IAAI,CAAA;YACb,CAAC,CAAC,CACH,CAAA;QACH,CAAC;KACF,CAAC;IACK,mBAAA,IAAA,mBAAI,GAAE,CAAA;IAA6B,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;;;4CAAc,aAAK;8CAErE;4BAnCU,iBAAiB;IAD7B,IAAA,uBAAQ,EAAC,aAAK,CAAC;GACH,iBAAiB,CAoC7B","sourcesContent":["import { Resolver, Subscription, Root, Arg } from 'type-graphql'\nimport { filter, pipe } from 'graphql-yoga'\nimport { pubsub } from '@things-factory/shell'\nimport { Board } from './board'\n\n@Resolver(Board)\nexport class BoardSubscription {\n @Subscription({\n subscribe: ({ args, context, info }) => {\n const { domain, user } = context.state\n const { id } = args\n const subdomain = domain?.subdomain\n\n if (!domain) {\n throw new Error('domain required')\n }\n\n if (!user.domains?.find(d => d.subdomain === subdomain) && !process.superUserGranted(domain, user)) {\n throw new Error(`domain(${subdomain}) is not working for user(${user.email}).`)\n }\n\n return pipe(\n pubsub.subscribe('board'),\n filter((payload: { board: Board }) => {\n const { domainId, id: boardId } = payload.board\n\n if (domainId !== domain.id) {\n return false\n }\n\n if (id !== boardId) {\n return false\n }\n\n return true\n })\n )\n }\n })\n board(@Root() payload: { board: Board }, @Arg('id') id: string): Board {\n return payload.board\n }\n}\n"]}
1
+ {"version":3,"file":"board-subscription.js","sourceRoot":"","sources":["../../../server/service/board/board-subscription.ts"],"names":[],"mappings":";;;;AAAA,+CAAgE;AAChE,+CAA2C;AAC3C,iDAA8C;AAC9C,yCAAkC;AAG3B,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAkC5B,KAAK,CAAS,OAAyB,EAAa,EAAU;QAC5D,OAAO,OAAO,CAAC,KAAK,CAAA;IACtB,CAAC;CACF,CAAA;AArCY,8CAAiB;AAkC5B;IAjCC,IAAA,2BAAY,EAAC;QACZ,WAAW,EAAE,uDAAuD;QACpE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;YACrC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;YACtC,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAA;YACnB,MAAM,SAAS,GAAG,MAAM,EAAE,SAAS,CAAA;YAEnC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;YACpC,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;gBACnG,MAAM,IAAI,KAAK,CAAC,UAAU,SAAS,6BAA6B,IAAI,CAAC,KAAK,IAAI,CAAC,CAAA;YACjF,CAAC;YAED,OAAO,IAAA,mBAAI,EACT,cAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EACzB,IAAA,qBAAM,EAAC,CAAC,OAAyB,EAAE,EAAE;gBACnC,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;gBAE/C,IAAI,QAAQ,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC;oBAC3B,OAAO,KAAK,CAAA;gBACd,CAAC;gBAED,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;oBACnB,OAAO,KAAK,CAAA;gBACd,CAAC;gBAED,OAAO,IAAI,CAAA;YACb,CAAC,CAAC,CACH,CAAA;QACH,CAAC;KACF,CAAC;IACK,mBAAA,IAAA,mBAAI,GAAE,CAAA;IAA6B,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;;;4CAAc,gBAAK;8CAErE;4BApCU,iBAAiB;IAD7B,IAAA,uBAAQ,EAAC,gBAAK,CAAC;GACH,iBAAiB,CAqC7B","sourcesContent":["import { Resolver, Subscription, Root, Arg } from 'type-graphql'\nimport { filter, pipe } from 'graphql-yoga'\nimport { pubsub } from '@things-factory/shell'\nimport { Board } from './board.js'\n\n@Resolver(Board)\nexport class BoardSubscription {\n @Subscription({\n description: 'Subscribes to real-time updates for a specific board.',\n subscribe: ({ args, context, info }) => {\n const { domain, user } = context.state\n const { id } = args\n const subdomain = domain?.subdomain\n\n if (!domain) {\n throw new Error('domain required')\n }\n\n if (!user.domains?.find(d => d.subdomain === subdomain) && !process.superUserGranted(domain, user)) {\n throw new Error(`domain(${subdomain}) is not working for user(${user.email}).`)\n }\n\n return pipe(\n pubsub.subscribe('board'),\n filter((payload: { board: Board }) => {\n const { domainId, id: boardId } = payload.board\n\n if (domainId !== domain.id) {\n return false\n }\n\n if (id !== boardId) {\n return false\n }\n\n return true\n })\n )\n }\n })\n board(@Root() payload: { board: Board }, @Arg('id') id: string): Board {\n return payload.board\n }\n}\n"]}
@@ -1,15 +1,17 @@
1
- import { Board } from './board';
2
- import { BoardHistory } from './board-history';
1
+ import { Board } from './board.js';
2
+ import { BoardHistory } from './board-history.js';
3
3
  export declare class NewBoard {
4
4
  name: string;
5
5
  description?: string;
6
6
  model: string;
7
+ type?: 'main' | 'sub' | 'popup';
7
8
  groupId?: string;
8
9
  thumbnail?: string;
9
10
  }
10
11
  export declare class BoardPatch {
11
12
  name?: string;
12
13
  description?: string;
14
+ type?: 'main' | 'sub' | 'popup';
13
15
  model?: string;
14
16
  groupId?: string;
15
17
  thumbnail?: string;
@@ -3,86 +3,94 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BoardHistoryList = exports.BoardList = exports.BoardPatch = exports.NewBoard = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const type_graphql_1 = require("type-graphql");
6
- const board_1 = require("./board");
7
- const board_history_1 = require("./board-history");
6
+ const board_js_1 = require("./board.js");
7
+ const board_history_js_1 = require("./board-history.js");
8
8
  let NewBoard = class NewBoard {
9
9
  };
10
10
  exports.NewBoard = NewBoard;
11
11
  tslib_1.__decorate([
12
- (0, type_graphql_1.Field)(),
12
+ (0, type_graphql_1.Field)({ description: 'The name of the new board.' }),
13
13
  tslib_1.__metadata("design:type", String)
14
14
  ], NewBoard.prototype, "name", void 0);
15
15
  tslib_1.__decorate([
16
- (0, type_graphql_1.Field)({ nullable: true }),
16
+ (0, type_graphql_1.Field)({ nullable: true, description: 'A detailed description for the new board.' }),
17
17
  tslib_1.__metadata("design:type", String)
18
18
  ], NewBoard.prototype, "description", void 0);
19
19
  tslib_1.__decorate([
20
- (0, type_graphql_1.Field)(),
20
+ (0, type_graphql_1.Field)({ description: 'The JSON model for the new board.' }),
21
21
  tslib_1.__metadata("design:type", String)
22
22
  ], NewBoard.prototype, "model", void 0);
23
23
  tslib_1.__decorate([
24
- (0, type_graphql_1.Field)({ nullable: true }),
24
+ (0, type_graphql_1.Field)({ nullable: true, description: "The type for the new board, can be 'main', 'sub', or 'popup'." }),
25
+ tslib_1.__metadata("design:type", String)
26
+ ], NewBoard.prototype, "type", void 0);
27
+ tslib_1.__decorate([
28
+ (0, type_graphql_1.Field)({ nullable: true, description: 'The ID of the group to associate the new board with.' }),
25
29
  tslib_1.__metadata("design:type", String)
26
30
  ], NewBoard.prototype, "groupId", void 0);
27
31
  tslib_1.__decorate([
28
- (0, type_graphql_1.Field)({ nullable: true }),
32
+ (0, type_graphql_1.Field)({ nullable: true, description: 'A base64 encoded thumbnail image for the new board.' }),
29
33
  tslib_1.__metadata("design:type", String)
30
34
  ], NewBoard.prototype, "thumbnail", void 0);
31
35
  exports.NewBoard = NewBoard = tslib_1.__decorate([
32
- (0, type_graphql_1.InputType)()
36
+ (0, type_graphql_1.InputType)({ description: 'Input for creating a new board.' })
33
37
  ], NewBoard);
34
38
  let BoardPatch = class BoardPatch {
35
39
  };
36
40
  exports.BoardPatch = BoardPatch;
37
41
  tslib_1.__decorate([
38
- (0, type_graphql_1.Field)({ nullable: true }),
42
+ (0, type_graphql_1.Field)({ nullable: true, description: 'The new name for the board.' }),
39
43
  tslib_1.__metadata("design:type", String)
40
44
  ], BoardPatch.prototype, "name", void 0);
41
45
  tslib_1.__decorate([
42
- (0, type_graphql_1.Field)({ nullable: true }),
46
+ (0, type_graphql_1.Field)({ nullable: true, description: 'The new description for the board.' }),
43
47
  tslib_1.__metadata("design:type", String)
44
48
  ], BoardPatch.prototype, "description", void 0);
45
49
  tslib_1.__decorate([
46
- (0, type_graphql_1.Field)({ nullable: true }),
50
+ (0, type_graphql_1.Field)({ nullable: true, description: "The new type for the board, can be 'main', 'sub', or 'popup'." }),
51
+ tslib_1.__metadata("design:type", String)
52
+ ], BoardPatch.prototype, "type", void 0);
53
+ tslib_1.__decorate([
54
+ (0, type_graphql_1.Field)({ nullable: true, description: 'The new JSON model for the board.' }),
47
55
  tslib_1.__metadata("design:type", String)
48
56
  ], BoardPatch.prototype, "model", void 0);
49
57
  tslib_1.__decorate([
50
- (0, type_graphql_1.Field)({ nullable: true }),
58
+ (0, type_graphql_1.Field)({ nullable: true, description: 'The new group ID for the board.' }),
51
59
  tslib_1.__metadata("design:type", String)
52
60
  ], BoardPatch.prototype, "groupId", void 0);
53
61
  tslib_1.__decorate([
54
- (0, type_graphql_1.Field)({ nullable: true }),
62
+ (0, type_graphql_1.Field)({ nullable: true, description: 'The new base64 encoded thumbnail image for the board.' }),
55
63
  tslib_1.__metadata("design:type", String)
56
64
  ], BoardPatch.prototype, "thumbnail", void 0);
57
65
  exports.BoardPatch = BoardPatch = tslib_1.__decorate([
58
- (0, type_graphql_1.InputType)()
66
+ (0, type_graphql_1.InputType)({ description: 'Input for updating (patching) an existing board.' })
59
67
  ], BoardPatch);
60
68
  let BoardList = class BoardList {
61
69
  };
62
70
  exports.BoardList = BoardList;
63
71
  tslib_1.__decorate([
64
- (0, type_graphql_1.Field)(type => [board_1.Board]),
72
+ (0, type_graphql_1.Field)(type => [board_js_1.Board], { description: 'The list of board items.' }),
65
73
  tslib_1.__metadata("design:type", Array)
66
74
  ], BoardList.prototype, "items", void 0);
67
75
  tslib_1.__decorate([
68
- (0, type_graphql_1.Field)(type => type_graphql_1.Int),
76
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'The total number of boards.' }),
69
77
  tslib_1.__metadata("design:type", Number)
70
78
  ], BoardList.prototype, "total", void 0);
71
79
  exports.BoardList = BoardList = tslib_1.__decorate([
72
- (0, type_graphql_1.ObjectType)()
80
+ (0, type_graphql_1.ObjectType)({ description: 'A paginated list of boards.' })
73
81
  ], BoardList);
74
82
  let BoardHistoryList = class BoardHistoryList {
75
83
  };
76
84
  exports.BoardHistoryList = BoardHistoryList;
77
85
  tslib_1.__decorate([
78
- (0, type_graphql_1.Field)(type => [board_history_1.BoardHistory]),
86
+ (0, type_graphql_1.Field)(type => [board_history_js_1.BoardHistory], { description: 'The list of board history items.' }),
79
87
  tslib_1.__metadata("design:type", Array)
80
88
  ], BoardHistoryList.prototype, "items", void 0);
81
89
  tslib_1.__decorate([
82
- (0, type_graphql_1.Field)(type => type_graphql_1.Int),
90
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'The total number of board histories.' }),
83
91
  tslib_1.__metadata("design:type", Number)
84
92
  ], BoardHistoryList.prototype, "total", void 0);
85
93
  exports.BoardHistoryList = BoardHistoryList = tslib_1.__decorate([
86
- (0, type_graphql_1.ObjectType)()
94
+ (0, type_graphql_1.ObjectType)({ description: 'A paginated list of board histories.' })
87
95
  ], BoardHistoryList);
88
96
  //# sourceMappingURL=board-type.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"board-type.js","sourceRoot":"","sources":["../../../server/service/board/board-type.ts"],"names":[],"mappings":";;;;AAAA,+CAAsF;AAEtF,mCAA+B;AAC/B,mDAA8C;AAGvC,IAAM,QAAQ,GAAd,MAAM,QAAQ;CAepB,CAAA;AAfY,4BAAQ;AAEnB;IADC,IAAA,oBAAK,GAAE;;sCACI;AAGZ;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACN;AAGpB;IADC,IAAA,oBAAK,GAAE;;uCACK;AAGb;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCACV;AAGhB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACR;mBAdP,QAAQ;IADpB,IAAA,wBAAS,GAAE;GACC,QAAQ,CAepB;AAGM,IAAM,UAAU,GAAhB,MAAM,UAAU;CAetB,CAAA;AAfY,gCAAU;AAErB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wCACb;AAGb;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACN;AAGpB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCACZ;AAGd;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACV;AAGhB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACR;qBAdP,UAAU;IADtB,IAAA,wBAAS,GAAE;GACC,UAAU,CAetB;AAGM,IAAM,SAAS,GAAf,MAAM,SAAS;CAMrB,CAAA;AANY,8BAAS;AAEpB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,aAAK,CAAC,CAAC;;wCACT;AAGd;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,CAAC;;wCACN;oBALF,SAAS;IADrB,IAAA,yBAAU,GAAE;GACA,SAAS,CAMrB;AAGM,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;CAM5B,CAAA;AANY,4CAAgB;AAE3B;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,4BAAY,CAAC,CAAC;;+CACT;AAGrB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,CAAC;;+CACN;2BALF,gBAAgB;IAD5B,IAAA,yBAAU,GAAE;GACA,gBAAgB,CAM5B","sourcesContent":["import { ObjectType, Field, InputType, Int, ID, registerEnumType } from 'type-graphql'\n\nimport { Board } from './board'\nimport { BoardHistory } from './board-history'\n\n@InputType()\nexport class NewBoard {\n @Field()\n name: string\n\n @Field({ nullable: true })\n description?: string\n\n @Field()\n model: string\n\n @Field({ nullable: true })\n groupId?: string\n\n @Field({ nullable: true })\n thumbnail?: string\n}\n\n@InputType()\nexport class BoardPatch {\n @Field({ nullable: true })\n name?: string\n\n @Field({ nullable: true })\n description?: string\n\n @Field({ nullable: true })\n model?: string\n\n @Field({ nullable: true })\n groupId?: string\n\n @Field({ nullable: true })\n thumbnail?: string\n}\n\n@ObjectType()\nexport class BoardList {\n @Field(type => [Board])\n items: Board[]\n\n @Field(type => Int)\n total: number\n}\n\n@ObjectType()\nexport class BoardHistoryList {\n @Field(type => [BoardHistory])\n items: BoardHistory[]\n\n @Field(type => Int)\n total: number\n}\n"]}
1
+ {"version":3,"file":"board-type.js","sourceRoot":"","sources":["../../../server/service/board/board-type.ts"],"names":[],"mappings":"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","sourcesContent":["import { ObjectType, Field, InputType, Int, ID, registerEnumType } from 'type-graphql'\n\nimport { Board } from './board.js'\nimport { BoardHistory } from './board-history.js'\n\n@InputType({ description: 'Input for creating a new board.' })\nexport class NewBoard {\n @Field({ description: 'The name of the new board.' })\n name: string\n\n @Field({ nullable: true, description: 'A detailed description for the new board.' })\n description?: string\n\n @Field({ description: 'The JSON model for the new board.' })\n model: string\n\n @Field({ nullable: true, description: \"The type for the new board, can be 'main', 'sub', or 'popup'.\" })\n type?: 'main' | 'sub' | 'popup'\n\n @Field({ nullable: true, description: 'The ID of the group to associate the new board with.' })\n groupId?: string\n\n @Field({ nullable: true, description: 'A base64 encoded thumbnail image for the new board.' })\n thumbnail?: string\n}\n\n@InputType({ description: 'Input for updating (patching) an existing board.' })\nexport class BoardPatch {\n @Field({ nullable: true, description: 'The new name for the board.' })\n name?: string\n\n @Field({ nullable: true, description: 'The new description for the board.' })\n description?: string\n\n @Field({ nullable: true, description: \"The new type for the board, can be 'main', 'sub', or 'popup'.\" })\n type?: 'main' | 'sub' | 'popup'\n\n @Field({ nullable: true, description: 'The new JSON model for the board.' })\n model?: string\n\n @Field({ nullable: true, description: 'The new group ID for the board.' })\n groupId?: string\n\n @Field({ nullable: true, description: 'The new base64 encoded thumbnail image for the board.' })\n thumbnail?: string\n}\n\n@ObjectType({ description: 'A paginated list of boards.' })\nexport class BoardList {\n @Field(type => [Board], { description: 'The list of board items.' })\n items: Board[]\n\n @Field(type => Int, { description: 'The total number of boards.' })\n total: number\n}\n\n@ObjectType({ description: 'A paginated list of board histories.' })\nexport class BoardHistoryList {\n @Field(type => [BoardHistory], { description: 'The list of board history items.' })\n items: BoardHistory[]\n\n @Field(type => Int, { description: 'The total number of board histories.' })\n total: number\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import { Domain } from '@things-factory/shell';
2
- import { Group } from '../group/group';
3
- import { PlayGroup } from '../play-group/play-group';
2
+ import { Group } from '../group/group.js';
3
+ import { PlayGroup } from '../play-group/play-group.js';
4
4
  import { User } from '@things-factory/auth-base';
5
5
  export declare class Board {
6
6
  readonly id?: string;
@@ -9,6 +9,7 @@ export declare class Board {
9
9
  domainId?: string;
10
10
  name?: string;
11
11
  description?: string;
12
+ type?: 'main' | 'sub' | 'popup';
12
13
  state?: 'draft' | 'released';
13
14
  model?: string;
14
15
  thumbnail?: string;