@things-factory/shell 5.0.0-alpha.7 → 5.0.0-y.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 (36) hide show
  1. package/client/themes/tooltip-theme.css +4 -3
  2. package/config/config.production.js +13 -0
  3. package/dist-server/middlewares/index.js +2 -2
  4. package/dist-server/middlewares/index.js.map +1 -1
  5. package/dist-server/pubsub.js +2 -2
  6. package/dist-server/pubsub.js.map +1 -1
  7. package/dist-server/server-dev.js +18 -16
  8. package/dist-server/server-dev.js.map +1 -1
  9. package/dist-server/server.js +15 -14
  10. package/dist-server/server.js.map +1 -1
  11. package/dist-server/service/domain/domain-resolver.js +4 -1
  12. package/dist-server/service/domain/domain-resolver.js.map +1 -1
  13. package/dist-server/service/domain/domain.js +34 -1
  14. package/dist-server/service/domain/domain.js.map +1 -1
  15. package/dist-server/utils/condition-builder.js +10 -11
  16. package/dist-server/utils/condition-builder.js.map +1 -1
  17. package/dist-server/utils/get-query-builder-from-list-params.js +249 -0
  18. package/dist-server/utils/get-query-builder-from-list-params.js.map +1 -0
  19. package/dist-server/utils/index.js +1 -0
  20. package/dist-server/utils/index.js.map +1 -1
  21. package/dist-server/utils/list-params-converter.js +48 -18
  22. package/dist-server/utils/list-params-converter.js.map +1 -1
  23. package/dist-server/utils/list-query-builder.js +33 -3
  24. package/dist-server/utils/list-query-builder.js.map +1 -1
  25. package/package.json +19 -18
  26. package/server/middlewares/index.ts +3 -2
  27. package/server/pubsub.ts +3 -3
  28. package/server/server-dev.ts +20 -17
  29. package/server/server.ts +17 -15
  30. package/server/service/domain/domain-resolver.ts +5 -1
  31. package/server/service/domain/domain.ts +37 -2
  32. package/server/utils/condition-builder.ts +12 -12
  33. package/server/utils/get-query-builder-from-list-params.ts +304 -0
  34. package/server/utils/index.ts +1 -0
  35. package/server/utils/list-params-converter.ts +83 -26
  36. package/server/utils/list-query-builder.ts +50 -3
@@ -0,0 +1,249 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getQueryBuilderFromListParams = void 0;
4
+ const typeorm_1 = require("typeorm");
5
+ const debug = require('debug')('things-factory:shell:get-query-builder-from-list-params');
6
+ /**
7
+ *
8
+ * @param options
9
+ * @returns
10
+ */
11
+ function getQueryBuilderFromListParams(options) {
12
+ var _a, _b;
13
+ var { repository, params, domain, alias, searchables, filtersMap = {} } = options;
14
+ const selectQueryBuilder = repository.createQueryBuilder(alias);
15
+ const entityAlias = selectQueryBuilder.alias;
16
+ const columnFilters = ((_a = params.filters) === null || _a === void 0 ? void 0 : _a.filter(filter => {
17
+ if (filter.operator === 'search') {
18
+ return false;
19
+ }
20
+ if (filter.operator.toLowerCase().includes('like') && (!searchables || !searchables.includes(filter.name))) {
21
+ debug('"searchables" setting is required for like searches with a heavy database query load', filter.name);
22
+ return false;
23
+ }
24
+ return true;
25
+ })) || [];
26
+ const searchFilters = searchables instanceof Array
27
+ ? ((_b = params.filters) === null || _b === void 0 ? void 0 : _b.filter(filter => {
28
+ if (filter.operator !== 'search') {
29
+ return false;
30
+ }
31
+ if (!searchables.includes(filter.name)) {
32
+ debug('"searchables" setting is required for like searches with a heavy database query load', filter.name);
33
+ return false;
34
+ }
35
+ return true;
36
+ })) || []
37
+ : [];
38
+ const pagination = params.pagination;
39
+ const sortings = params.sortings;
40
+ const metadata = repository.metadata;
41
+ if (columnFilters && columnFilters.length > 0) {
42
+ columnFilters.forEach(filter => {
43
+ addCondition(metadata, selectQueryBuilder, selectQueryBuilder, filter, filtersMap, true);
44
+ });
45
+ }
46
+ if (searchFilters.length > 0) {
47
+ selectQueryBuilder.andWhere(new typeorm_1.Brackets(qb => {
48
+ searchFilters.forEach(filter => {
49
+ addCondition(metadata, selectQueryBuilder, qb, filter, filtersMap, false);
50
+ });
51
+ }));
52
+ }
53
+ if (domain) {
54
+ selectQueryBuilder.andWhere(`${entityAlias}.domain = :domain`, { domain: domain.id });
55
+ }
56
+ if (pagination && pagination.page > 0 && pagination.limit > 0) {
57
+ selectQueryBuilder.skip(pagination.limit * (pagination.page - 1));
58
+ selectQueryBuilder.take(pagination.limit);
59
+ }
60
+ if (sortings && sortings.length > 0) {
61
+ sortings.forEach((sorting, index) => {
62
+ const sortField = sorting.name.split('.').length > 1 ? sorting.name : `${entityAlias}.${sorting.name}`;
63
+ if (index === 0) {
64
+ selectQueryBuilder.orderBy(sortField, sorting.desc ? 'DESC' : 'ASC');
65
+ }
66
+ else {
67
+ selectQueryBuilder.addOrderBy(sortField, sorting.desc ? 'DESC' : 'ASC');
68
+ }
69
+ });
70
+ }
71
+ return selectQueryBuilder;
72
+ }
73
+ exports.getQueryBuilderFromListParams = getQueryBuilderFromListParams;
74
+ function addCondition(metadata, selectQueryBuilder, whereExpressionBuilder, filter, filtersMap = {}, andCondition) {
75
+ const { name, operator, value } = filter;
76
+ const values = value instanceof Array ? value : [value];
77
+ const entityAlias = selectQueryBuilder.alias;
78
+ var { relationColumn, columnName } = filtersMap[name] || {};
79
+ /*
80
+ 1. relationColumn과 columnName이 지정된 경우
81
+ - relation inverse 테이블에서, columnName을 찾는다.
82
+ 2. relationColumn만 지정된 경우는 없어야 한다.
83
+ - 이 경우 columnName 은 'name' 이라고 판단한다.
84
+ 3. columnName이 지정된 경우.
85
+ - 이 경우는 columnName 만 적용한다.
86
+ */
87
+ if (relationColumn) {
88
+ var relationColumnMeta = metadata.columns.find(column => column.propertyName === relationColumn);
89
+ if (!relationColumnMeta) {
90
+ debug(`relationColumn "${relationColumn}" in filtersMap for "${name}" is not a relation column`);
91
+ return;
92
+ }
93
+ var relation = relationColumnMeta.relationMetadata;
94
+ var entityMetadata = relation.inverseEntityMetadata;
95
+ var columnMeta = entityMetadata.columns.find(column => column.propertyName === (columnName || 'name'));
96
+ if (!columnMeta) {
97
+ debug(`columnName "${columnName}" in filtersMap for "${name}" is not a column`);
98
+ return;
99
+ }
100
+ }
101
+ else {
102
+ var columnMeta = metadata.columns.find(column => column.propertyName === (columnName || name));
103
+ if (!columnMeta) {
104
+ /* relationId 에 대한 필터링은 해당 컬럼값 자체의 비교로 한다. */
105
+ var relationIdMeta = metadata.relationIds.find(relationId => relationId.propertyName === (columnName || name));
106
+ if (relationIdMeta) {
107
+ columnMeta = relationIdMeta.relation.joinColumns[0];
108
+ }
109
+ else {
110
+ columnName
111
+ ? debug(`columnName "${columnName}" in filtersMap for "${name}" is not a column`)
112
+ : debug(`name "${name}" is not a column`);
113
+ }
114
+ }
115
+ else {
116
+ var relation = columnMeta.relationMetadata;
117
+ }
118
+ if (relation) {
119
+ /* filterMap에 의해서 relationColumn 이 지정되지 않았더라도, name 또는 columnName의 column이 relation인 경우에는
120
+ - 조건절 구성을 위한 타겟필드명은 'name' 으로만 한정된다.
121
+ */
122
+ var relationColumnMeta = columnMeta;
123
+ var entityMetadata = relation.inverseEntityMetadata;
124
+ columnMeta = entityMetadata.columns.find(column => column.propertyName === 'name');
125
+ if (!columnMeta) {
126
+ debug(`relation column "${columnName || name}" does not have "name" column`);
127
+ return;
128
+ }
129
+ }
130
+ }
131
+ const dbNameForColumn = columnMeta.databaseName;
132
+ const alias = relationColumnMeta ? `${name}-filter` : entityAlias;
133
+ /* relation columne인 경우 name을 alias로 사용한다. */
134
+ const field = `${alias}.${dbNameForColumn}`;
135
+ var clause = '';
136
+ var parameters = {};
137
+ switch (operator) {
138
+ case 'eq':
139
+ clause = `${field} = :${name}`;
140
+ parameters = { [name]: value };
141
+ break;
142
+ case 'like':
143
+ clause = `${field} LIKE :${name}`;
144
+ parameters = { [name]: `%${value}%` };
145
+ break;
146
+ case 'search':
147
+ case 'i_like':
148
+ clause = `LOWER(${field}) LIKE :${name}`;
149
+ parameters = { [name]: `%${String(value).toLowerCase()}%` };
150
+ break;
151
+ case 'nlike':
152
+ clause = `${field} NOT LIKE :${name}`;
153
+ parameters = { [name]: `%${value}%` };
154
+ break;
155
+ case 'i_nlike':
156
+ clause = `LOWER(${field}) NOT LIKE :${name}`;
157
+ parameters = { [name]: `%${String(value).toLowerCase()}%` };
158
+ break;
159
+ case 'lt':
160
+ clause = `${field} < :${name}`;
161
+ parameters = { [name]: value };
162
+ break;
163
+ case 'gt':
164
+ clause = `${field} > :${name}`;
165
+ parameters = { [name]: value };
166
+ break;
167
+ case 'lte':
168
+ clause = `${field} <= :${name}`;
169
+ parameters = { [name]: value };
170
+ break;
171
+ case 'gte':
172
+ clause = `${field} >= :${name}`;
173
+ parameters = { [name]: value };
174
+ break;
175
+ case 'noteq':
176
+ clause = `${field} != :${name}`;
177
+ parameters = { [name]: value };
178
+ break;
179
+ case 'in':
180
+ clause = `${field} IN (:...${name})`;
181
+ parameters = { [name]: values };
182
+ break;
183
+ case 'notin':
184
+ clause = `${field} NOT IN (:...${name})`;
185
+ parameters = { [name]: values };
186
+ break;
187
+ case 'notin_with_null':
188
+ clause = `${field} IS NULL OR ${field} NOT IN (:...${name}))`;
189
+ parameters = { [name]: values };
190
+ break;
191
+ case 'is_null':
192
+ clause = `${field} IS NULL`;
193
+ break;
194
+ case 'is_not_null':
195
+ clause = `${field} IS NOT NULL`;
196
+ break;
197
+ case 'is_false':
198
+ clause = `${field} IS FALSE`;
199
+ break;
200
+ case 'is_true':
201
+ clause = `${field} IS TRUE`;
202
+ break;
203
+ case 'is_not_false':
204
+ clause = `${field} IS NOT FALSE`;
205
+ break;
206
+ case 'is_not_true':
207
+ clause = `${field} IS NOT TRUE`;
208
+ break;
209
+ case 'is_present':
210
+ clause = `${field} IS PRESENT`;
211
+ break;
212
+ case 'is_blank':
213
+ clause = `${field} IS BLANK`;
214
+ break;
215
+ case 'is_empty_num_id':
216
+ clause = `${field} IS EMPTY NUMERIC ID`;
217
+ break;
218
+ case 'between':
219
+ clause = `${field} BETWEEN :${name}_1 AND :${name}_2`;
220
+ parameters = { [`${name}_1`]: values[0], [`${name}_2`]: values[1] };
221
+ break;
222
+ }
223
+ if (relationColumnMeta) {
224
+ const { propertyName } = relationColumnMeta;
225
+ const property = `${entityAlias}.${propertyName}`;
226
+ if (andCondition) {
227
+ selectQueryBuilder.innerJoin(property, alias, clause, parameters);
228
+ }
229
+ else {
230
+ selectQueryBuilder.leftJoin(property, alias);
231
+ whereExpressionBuilder.orWhere(clause, parameters);
232
+ }
233
+ }
234
+ else {
235
+ andCondition
236
+ ? whereExpressionBuilder.andWhere(clause, parameters)
237
+ : whereExpressionBuilder.orWhere(clause, parameters);
238
+ }
239
+ }
240
+ // export function adjustFiltersFromListParam(params: ListParam, filtersChange: Filter[]): ListParam {
241
+ // const { filters = [] } = params
242
+ // var filtersNew = [...filters]
243
+ // filtersChange.forEach(change => {
244
+ // const idx = (filtersNew || []).findIndex(f => f.name === change.name)
245
+ // idx !== -1 ? filtersNew.splice(idx, 1, change) : filtersNew.push(change)
246
+ // })
247
+ // return { ...params, filters: filtersNew }
248
+ // }
249
+ //# sourceMappingURL=get-query-builder-from-list-params.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-query-builder-from-list-params.js","sourceRoot":"","sources":["../../server/utils/get-query-builder-from-list-params.ts"],"names":[],"mappings":"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"}
@@ -19,4 +19,5 @@ __exportStar(require("./condition-builder"), exports);
19
19
  __exportStar(require("./list-query-builder"), exports);
20
20
  __exportStar(require("./list-params-converter"), exports);
21
21
  __exportStar(require("./publish-progress"), exports);
22
+ __exportStar(require("./get-query-builder-from-list-params"), exports);
22
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B;AAC5B,sDAAmC;AACnC,uDAAoC;AACpC,0DAAuC;AACvC,qDAAkC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B;AAC5B,sDAAmC;AACnC,uDAAoC;AACpC,0DAAuC;AACvC,qDAAkC;AAClC,uEAAoD"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.convertListParams = void 0;
4
4
  const typeorm_1 = require("typeorm");
5
+ const debug = require('debug')('things-factory:shell:list-params-converter');
5
6
  const OPERATION_FUNCTION_MAP = {
6
7
  search: value => (0, typeorm_1.ILike)(value),
7
8
  eq: value => (0, typeorm_1.Equal)(value),
@@ -26,11 +27,11 @@ const OPERATION_FUNCTION_MAP = {
26
27
  is_empty_num_id: () => (0, typeorm_1.Raw)(alias => `${alias} IS EMPTY NUMERIC ID`),
27
28
  between: value => (0, typeorm_1.Between)(value[0], value[1])
28
29
  };
29
- function getOperatorFunction({ operator, name, value, dataType }) {
30
+ function getOperatorFunction({ operator, value }) {
30
31
  return OPERATION_FUNCTION_MAP[operator](value);
31
32
  }
32
33
  function makePaginationParams(pagination) {
33
- var jsonParams = {};
34
+ var result = {};
34
35
  if (pagination) {
35
36
  var { page = 0, limit = 0 } = pagination;
36
37
  var skip = 0;
@@ -38,35 +39,54 @@ function makePaginationParams(pagination) {
38
39
  if (limit > 0) {
39
40
  skip = Math.max(page - 1, 0) * limit;
40
41
  take = limit;
41
- Object.assign(jsonParams, {
42
+ Object.assign(result, {
42
43
  skip,
43
44
  take
44
45
  });
45
46
  }
46
47
  }
47
- return jsonParams;
48
+ return result;
48
49
  }
49
50
  function makeSortingParams(sortings) {
50
- var jsonParams = {};
51
+ var result = {};
51
52
  if (sortings) {
52
53
  var order = {};
53
54
  sortings.forEach(s => {
54
55
  order[s.name] = s.desc ? 'DESC' : 'ASC';
55
56
  });
56
- Object.assign(jsonParams, {
57
+ Object.assign(result, {
57
58
  order
58
59
  });
59
60
  }
60
- return jsonParams;
61
+ return result;
61
62
  }
62
- function makeFilterParams(filters) {
63
+ function makeFilterParams(filters, searchables) {
63
64
  /* for where AND clauses */
64
- const columnFilters = filters.filter(filter => filter.operator !== 'search');
65
+ const columnFilters = (filters === null || filters === void 0 ? void 0 : filters.filter(filter => {
66
+ if (filter.operator === 'search') {
67
+ return false;
68
+ }
69
+ if (filter.operator.toLowerCase().includes('like') && (!searchables || !searchables.includes(filter.name))) {
70
+ return false;
71
+ }
72
+ return true;
73
+ })) || [];
74
+ const searchFilters = searchables instanceof Array
75
+ ? (filters === null || filters === void 0 ? void 0 : filters.filter(filter => {
76
+ if (filter.operator !== 'search') {
77
+ return false;
78
+ }
79
+ if (!searchables.includes(filter.name)) {
80
+ debug('"searchables" setting is required for like searches with a heavy database query load', filter.name);
81
+ return false;
82
+ }
83
+ return true;
84
+ })) || []
85
+ : [];
65
86
  const columnWhere = columnFilters.reduce((where, f) => {
66
87
  where[f.name] = getOperatorFunction(f);
67
88
  return where;
68
89
  }, {});
69
- const searchFilters = filters.filter(filter => filter.operator === 'search');
70
90
  if (searchFilters.length === 0) {
71
91
  return {
72
92
  where: columnWhere
@@ -80,23 +100,33 @@ function makeFilterParams(filters) {
80
100
  where: searchWheres
81
101
  };
82
102
  }
83
- function convertListParams(params, domain) {
103
+ function convertListParams(params, options) {
104
+ var domainId;
105
+ if (options) {
106
+ if (typeof options === 'string' /* for 하위 호환성 */) {
107
+ var domainId = options;
108
+ }
109
+ else {
110
+ var { domain, searchables } = options;
111
+ var domainId = typeof domain === 'string' ? domain : domain === null || domain === void 0 ? void 0 : domain.id;
112
+ }
113
+ }
84
114
  var { pagination, filters = [], sortings } = params;
85
- var jsonParams = {};
86
- if (domain) {
115
+ var result = {};
116
+ if (domainId) {
87
117
  filters.push({
88
118
  name: 'domain',
89
119
  operator: 'eq',
90
- value: domain
120
+ value: domainId
91
121
  });
92
122
  }
93
123
  if (pagination)
94
- Object.assign(jsonParams, makePaginationParams(pagination));
124
+ Object.assign(result, makePaginationParams(pagination));
95
125
  if (sortings)
96
- Object.assign(jsonParams, makeSortingParams(sortings));
126
+ Object.assign(result, makeSortingParams(sortings));
97
127
  if (filters)
98
- Object.assign(jsonParams, makeFilterParams(filters));
99
- return jsonParams;
128
+ Object.assign(result, makeFilterParams(filters, searchables));
129
+ return result;
100
130
  }
101
131
  exports.convertListParams = convertListParams;
102
132
  //# sourceMappingURL=list-params-converter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"list-params-converter.js","sourceRoot":"","sources":["../../server/utils/list-params-converter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list-params-converter.js","sourceRoot":"","sources":["../../server/utils/list-params-converter.ts"],"names":[],"mappings":"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"}
@@ -3,10 +3,40 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.buildQuery = void 0;
4
4
  const typeorm_1 = require("typeorm");
5
5
  const condition_builder_1 = require("./condition-builder");
6
- const buildQuery = function (queryBuilder, params, context, domainRef = true) {
6
+ const debug = require('debug')('things-factory:shell:list-query-builder');
7
+ /**
8
+ * @deprecated The name of this function does not imply an exact purpose and it is not possible to correspond to a foreign key using the meta information of the table column, so it is recommended to replace it with the A function.
9
+ */
10
+ const buildQuery = function (queryBuilder, params, context, options) {
7
11
  var _a, _b;
8
- const columnFilters = ((_a = params.filters) === null || _a === void 0 ? void 0 : _a.filter(filter => filter.operator !== 'search')) || [];
9
- const searchFilters = ((_b = params.filters) === null || _b === void 0 ? void 0 : _b.filter(filter => filter.operator === 'search')) || [];
12
+ /* default value of domainRef is 'true' */
13
+ var domainRef = typeof options === 'boolean' ? options : true;
14
+ /* for backwards compatibility of function spec */
15
+ if (typeof options === 'object') {
16
+ var { domainRef = true, searchables } = options;
17
+ }
18
+ const columnFilters = ((_a = params.filters) === null || _a === void 0 ? void 0 : _a.filter(filter => {
19
+ if (filter.operator === 'search') {
20
+ return false;
21
+ }
22
+ if (filter.operator.toLowerCase().includes('like') && (!searchables || !searchables.includes(filter.name))) {
23
+ debug('"searchables" setting is required for like searches with a heavy database query load', filter.name);
24
+ return false;
25
+ }
26
+ return true;
27
+ })) || [];
28
+ const searchFilters = searchables instanceof Array
29
+ ? ((_b = params.filters) === null || _b === void 0 ? void 0 : _b.filter(filter => {
30
+ if (filter.operator !== 'search') {
31
+ return false;
32
+ }
33
+ if (!searchables.includes(filter.name)) {
34
+ debug('"searchables" setting is required for like searches with a heavy database query load', filter.name);
35
+ return false;
36
+ }
37
+ return true;
38
+ })) || []
39
+ : [];
10
40
  const pagination = params.pagination;
11
41
  const sortings = params.sortings;
12
42
  const domainId = context && context.state.domain && context.state.domain.id;
@@ -1 +1 @@
1
- {"version":3,"file":"list-query-builder.js","sourceRoot":"","sources":["../../server/utils/list-query-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list-query-builder.js","sourceRoot":"","sources":["../../server/utils/list-query-builder.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/shell",
3
- "version": "5.0.0-alpha.7",
3
+ "version": "5.0.0-y.0",
4
4
  "description": "Core module for framework",
5
5
  "bin": {
6
6
  "things-factory": "bin/things-factory",
@@ -36,7 +36,7 @@
36
36
  "@graphql-tools/schema": "^8.3.2",
37
37
  "@graphql-tools/utils": "^8.6.2",
38
38
  "@hatiolab/koa-webpack": "^6.0.0",
39
- "@hatiolab/things-scene": "^2.7.34",
39
+ "@hatiolab/things-scene": "^3.0.12",
40
40
  "@koa/cors": "^3.1.0",
41
41
  "@material/mwc-button": "^0.25.3",
42
42
  "@material/mwc-fab": "^0.25.3",
@@ -44,16 +44,16 @@
44
44
  "@material/mwc-icon-button": "^0.25.3",
45
45
  "@material/mwc-slider": "^0.25.3",
46
46
  "@material/mwc-textfield": "^0.25.3",
47
- "@operato/board": "1.0.0-alpha.17",
48
- "@operato/graphql": "1.0.0-alpha.17",
49
- "@operato/help": "1.0.0-alpha.17",
50
- "@operato/layout": "1.0.0-alpha.17",
51
- "@operato/shell": "1.0.0-alpha.17",
52
- "@operato/utils": "1.0.0-alpha.17",
53
- "@things-factory/ejs-remote": "^5.0.0-alpha.7",
54
- "@things-factory/env": "^5.0.0-alpha.7",
55
- "@things-factory/styles": "^5.0.0-alpha.7",
56
- "@things-factory/utils": "^5.0.0-alpha.7",
47
+ "@operato/board": "1.0.0-beta.26",
48
+ "@operato/graphql": "1.0.0-beta.26",
49
+ "@operato/help": "1.0.0-beta.26",
50
+ "@operato/layout": "1.0.0-beta.26",
51
+ "@operato/shell": "1.0.0-beta.26",
52
+ "@operato/utils": "1.0.0-beta.26",
53
+ "@things-factory/ejs-remote": "^5.0.0-y.0",
54
+ "@things-factory/env": "^5.0.0-y.0",
55
+ "@things-factory/styles": "^5.0.0-y.0",
56
+ "@things-factory/utils": "^5.0.0-y.0",
57
57
  "@webcomponents/webcomponentsjs": "^2.6.0",
58
58
  "@webpack-contrib/schema-utils": "^1.0.0-beta.0",
59
59
  "apollo-server-core": "^3.6.4",
@@ -63,7 +63,7 @@
63
63
  "args": "^5.0.0",
64
64
  "broadcastchannel-polyfill": "^1.0.1",
65
65
  "chalk": "^4.1.0",
66
- "class-validator": "^0.12.2",
66
+ "class-validator": "^0.13.2",
67
67
  "core-js": "^3.16.0",
68
68
  "csvtojson": "^2.0.10",
69
69
  "debug": "^4.1.1",
@@ -77,7 +77,7 @@
77
77
  "graphql-tag": "^2.12.6",
78
78
  "graphql-upload": "^13.0.0",
79
79
  "haunted": "^4.8.2",
80
- "html-webpack-plugin": "^4.3.0",
80
+ "html-webpack-plugin": "^5.5.0",
81
81
  "husky": "7.0.1",
82
82
  "imports-loader": "^3.0.0",
83
83
  "inquirer": "^8.2.0",
@@ -92,14 +92,13 @@
92
92
  "koa-static": "^5.0.0",
93
93
  "koa-unless": "^1.0.7",
94
94
  "koa2-connect-history-api-fallback": "^0.1.2",
95
- "lit": "^2.2.0",
95
+ "lit": "^2.2.1",
96
96
  "loader-utils": "^2.0.0",
97
97
  "lodash": "^4.17.15",
98
98
  "lodash-es": "^4.17.15",
99
99
  "mkdirp": "^1.0.3",
100
100
  "mqtt": "^4.3.4",
101
101
  "node-fetch": "^2.6.0",
102
- "node-sass": "^6.0.1",
103
102
  "nodemon": "^2.0.2",
104
103
  "npm-license-crawler": "^0.2.1",
105
104
  "pluralize": "^8.0.0",
@@ -109,18 +108,20 @@
109
108
  "redux-thunk": "^2.3.0",
110
109
  "regenerator-runtime": "^0.13.2",
111
110
  "reselect": "^4.0.0",
111
+ "sass": "^1.50.1",
112
112
  "scrollbooster": "^3.0.2",
113
113
  "subscriptions-transport-ws": "^0.11.0",
114
114
  "sweetalert2": "^10.9.0",
115
115
  "type-graphql": "^1.2.0-rc.1",
116
116
  "typeorm": "^0.2.41",
117
+ "uuid": "^3.4.0",
117
118
  "web-animations-js": "^2.3.2",
118
119
  "web-push": "^3.4.5",
119
120
  "webfontloader": "^1.6.28"
120
121
  },
121
122
  "optionalDependencies": {
122
123
  "better-sqlite3": "^7.1.2",
123
- "mssql": "^6.1.0",
124
+ "mssql": "^8.1.2",
124
125
  "mysql2": "^2.3.3",
125
126
  "oracledb": "^5.1.0",
126
127
  "pg": "^8.3.0",
@@ -129,5 +130,5 @@
129
130
  "resolutions": {
130
131
  "core-js": "^3.16.0"
131
132
  },
132
- "gitHead": "2c08dbd4db8d129fec03e4d6a277ea1d1e32c099"
133
+ "gitHead": "2fb8066dae72d864b0fc3a5b439a18579fa39ee6"
133
134
  }
@@ -1,4 +1,5 @@
1
1
  import { config, logger } from '@things-factory/env'
2
+
2
3
  import { domainMiddleware } from './domain-middleware'
3
4
 
4
5
  const debug = require('debug')('things-factory:shell:middleware')
@@ -18,8 +19,8 @@ export function initMiddlewares(app) {
18
19
  try {
19
20
  await next()
20
21
  } catch (err) {
21
- context.status = err.status || 500
22
- context.body = err.message
22
+ context.status = err?.status || 500
23
+ context.body = err?.message
23
24
 
24
25
  // emitting error to app.on('error', ...)
25
26
  context.app.emit('error', err, context)
package/server/pubsub.ts CHANGED
@@ -4,7 +4,7 @@ import { PubSub } from 'graphql-subscriptions'
4
4
  import Redis from 'ioredis'
5
5
  import { connect } from 'mqtt'
6
6
 
7
- import { config } from '@things-factory/env'
7
+ import { config, logger } from '@things-factory/env'
8
8
 
9
9
  const { middleware, host, port, nodes, topic, options } = config.get('pubsub', {})
10
10
 
@@ -56,7 +56,7 @@ switch (middleware) {
56
56
  ...options
57
57
  })
58
58
  } catch (e) {
59
- console.error('graphql-kafka-subscriptions module is not installed, so application can not go further.')
59
+ logger.error('graphql-kafka-subscriptions module is not installed, so application can not go further.')
60
60
  throw e
61
61
  }
62
62
  break
@@ -73,7 +73,7 @@ const exitHandler = async evt => {
73
73
  try {
74
74
  await pubsub.close()
75
75
  } catch (err) {
76
- console.error(err)
76
+ logger.error(err)
77
77
  }
78
78
  }
79
79
  }