@things-factory/shell 9.0.0-beta.0 → 9.0.0-beta.19

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 (120) hide show
  1. package/_index.html +0 -1
  2. package/bin/things-factory-migration +6 -3
  3. package/config/config.development.js +1 -1
  4. package/config/config.production.js +1 -14
  5. package/dist-server/index.d.ts +12 -12
  6. package/dist-server/index.js +12 -12
  7. package/dist-server/index.js.map +1 -1
  8. package/dist-server/initializers/database.js +4 -10
  9. package/dist-server/initializers/database.js.map +1 -1
  10. package/dist-server/initializers/ormconfig.d.ts +2 -0
  11. package/dist-server/initializers/ormconfig.js +30 -0
  12. package/dist-server/initializers/ormconfig.js.map +1 -0
  13. package/dist-server/middlewares/domain-middleware.js +5 -5
  14. package/dist-server/middlewares/domain-middleware.js.map +1 -1
  15. package/dist-server/middlewares/index.d.ts +1 -1
  16. package/dist-server/middlewares/index.js +3 -3
  17. package/dist-server/middlewares/index.js.map +1 -1
  18. package/dist-server/migrations/1000000000000-SeedDomain.js +4 -4
  19. package/dist-server/migrations/1000000000000-SeedDomain.js.map +1 -1
  20. package/dist-server/migrations/index.js.map +1 -1
  21. package/dist-server/routers/domain-router.js +3 -3
  22. package/dist-server/routers/domain-router.js.map +1 -1
  23. package/dist-server/routers/global-router.js +6 -6
  24. package/dist-server/routers/global-router.js.map +1 -1
  25. package/dist-server/routers/index.d.ts +3 -3
  26. package/dist-server/routers/index.js +3 -3
  27. package/dist-server/routers/index.js.map +1 -1
  28. package/dist-server/schema.js +5 -4
  29. package/dist-server/schema.js.map +1 -1
  30. package/dist-server/server-dev.js +37 -37
  31. package/dist-server/server-dev.js.map +1 -1
  32. package/dist-server/server.js +33 -33
  33. package/dist-server/server.js.map +1 -1
  34. package/dist-server/service/attribute-set/attribute-set-item-type.js +3 -3
  35. package/dist-server/service/attribute-set/attribute-set-item-type.js.map +1 -1
  36. package/dist-server/service/attribute-set/attribute-set-mutation.d.ts +2 -2
  37. package/dist-server/service/attribute-set/attribute-set-mutation.js +16 -16
  38. package/dist-server/service/attribute-set/attribute-set-mutation.js.map +1 -1
  39. package/dist-server/service/attribute-set/attribute-set-query.d.ts +3 -3
  40. package/dist-server/service/attribute-set/attribute-set-query.js +15 -15
  41. package/dist-server/service/attribute-set/attribute-set-query.js.map +1 -1
  42. package/dist-server/service/attribute-set/attribute-set-type.d.ts +2 -2
  43. package/dist-server/service/attribute-set/attribute-set-type.js +5 -5
  44. package/dist-server/service/attribute-set/attribute-set-type.js.map +1 -1
  45. package/dist-server/service/attribute-set/attribute-set.d.ts +1 -1
  46. package/dist-server/service/attribute-set/attribute-set.js +2 -2
  47. package/dist-server/service/attribute-set/attribute-set.js.map +1 -1
  48. package/dist-server/service/attribute-set/index.d.ts +3 -3
  49. package/dist-server/service/attribute-set/index.js +5 -5
  50. package/dist-server/service/attribute-set/index.js.map +1 -1
  51. package/dist-server/service/common-types/index.d.ts +6 -6
  52. package/dist-server/service/common-types/index.js +6 -6
  53. package/dist-server/service/common-types/index.js.map +1 -1
  54. package/dist-server/service/common-types/list-param.js +2 -2
  55. package/dist-server/service/common-types/list-param.js.map +1 -1
  56. package/dist-server/service/common-types/log.js +2 -2
  57. package/dist-server/service/common-types/log.js.map +1 -1
  58. package/dist-server/service/common-types/scalar-object.d.ts +2 -1
  59. package/dist-server/service/common-types/scalar-object.js +2 -2
  60. package/dist-server/service/common-types/scalar-object.js.map +1 -1
  61. package/dist-server/service/directive-transaction/index.d.ts +1 -1
  62. package/dist-server/service/directive-transaction/index.js +1 -1
  63. package/dist-server/service/directive-transaction/index.js.map +1 -1
  64. package/dist-server/service/directive-transaction/transaction.js +2 -2
  65. package/dist-server/service/directive-transaction/transaction.js.map +1 -1
  66. package/dist-server/service/domain/domain-mutation.d.ts +2 -2
  67. package/dist-server/service/domain/domain-mutation.js +21 -21
  68. package/dist-server/service/domain/domain-mutation.js.map +1 -1
  69. package/dist-server/service/domain/domain-query.d.ts +4 -3
  70. package/dist-server/service/domain/domain-query.js +30 -18
  71. package/dist-server/service/domain/domain-query.js.map +1 -1
  72. package/dist-server/service/domain/domain-types.d.ts +4 -2
  73. package/dist-server/service/domain/domain-types.js +14 -6
  74. package/dist-server/service/domain/domain-types.js.map +1 -1
  75. package/dist-server/service/domain/domain.js +4 -38
  76. package/dist-server/service/domain/domain.js.map +1 -1
  77. package/dist-server/service/domain/index.d.ts +3 -3
  78. package/dist-server/service/domain/index.js +5 -5
  79. package/dist-server/service/domain/index.js.map +1 -1
  80. package/dist-server/service/index.d.ts +7 -7
  81. package/dist-server/service/index.js +16 -16
  82. package/dist-server/service/index.js.map +1 -1
  83. package/dist-server/service/subscription-data/data-resolver.d.ts +1 -1
  84. package/dist-server/service/subscription-data/data-resolver.js +4 -4
  85. package/dist-server/service/subscription-data/data-resolver.js.map +1 -1
  86. package/dist-server/service/subscription-data/data-types.d.ts +1 -1
  87. package/dist-server/service/subscription-data/data-types.js +5 -5
  88. package/dist-server/service/subscription-data/data-types.js.map +1 -1
  89. package/dist-server/service/subscription-data/index.d.ts +1 -1
  90. package/dist-server/service/subscription-data/index.js +2 -2
  91. package/dist-server/service/subscription-data/index.js.map +1 -1
  92. package/dist-server/tsconfig.tsbuildinfo +1 -1
  93. package/dist-server/typeorm/encrypt-transform.js +3 -3
  94. package/dist-server/typeorm/encrypt-transform.js.map +1 -1
  95. package/dist-server/utils/get-domain.d.ts +3 -10
  96. package/dist-server/utils/get-domain.js +52 -71
  97. package/dist-server/utils/get-domain.js.map +1 -1
  98. package/dist-server/utils/get-query-builder-from-list-params.d.ts +2 -2
  99. package/dist-server/utils/get-query-builder-from-list-params.js +5 -5
  100. package/dist-server/utils/get-query-builder-from-list-params.js.map +1 -1
  101. package/dist-server/utils/index.d.ts +8 -8
  102. package/dist-server/utils/index.js +8 -8
  103. package/dist-server/utils/index.js.map +1 -1
  104. package/dist-server/utils/list-param-adjuster.d.ts +1 -1
  105. package/dist-server/utils/list-param-adjuster.js.map +1 -1
  106. package/dist-server/utils/list-params-converter.d.ts +2 -2
  107. package/dist-server/utils/list-params-converter.js +2 -2
  108. package/dist-server/utils/list-params-converter.js.map +1 -1
  109. package/dist-server/utils/list-query-builder.d.ts +1 -1
  110. package/dist-server/utils/list-query-builder.js +7 -7
  111. package/dist-server/utils/list-query-builder.js.map +1 -1
  112. package/dist-server/utils/publish-progress.js +2 -2
  113. package/dist-server/utils/publish-progress.js.map +1 -1
  114. package/package.json +8 -11
  115. package/views/public/home.html +0 -1
  116. package/client/hot-client/hot.js +0 -140
  117. package/client/hot-client/index.js +0 -103
  118. package/client/hot-client/log.js +0 -44
  119. package/client/hot-client/socket.js +0 -63
  120. package/ormconfig.js +0 -31
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.convertListParams = convertListParams;
4
4
  const typeorm_1 = require("typeorm");
5
- const list_param_adjuster_1 = require("./list-param-adjuster");
5
+ const list_param_adjuster_js_1 = require("./list-param-adjuster.js");
6
6
  const OPERATION_FUNCTION_MAP = {
7
7
  search: value => (0, typeorm_1.ILike)(value),
8
8
  eq: value => (0, typeorm_1.Equal)(value),
@@ -141,7 +141,7 @@ function convertListParams(params, options) {
141
141
  var { pagination, filters = [], sortings } = params;
142
142
  var result = {};
143
143
  if (domainId) {
144
- filters = (0, list_param_adjuster_1.adjustFilters)(filters, [
144
+ filters = (0, list_param_adjuster_js_1.adjustFilters)(filters, [
145
145
  {
146
146
  name: 'domain',
147
147
  operator: 'eq',
@@ -1 +1 @@
1
- {"version":3,"file":"list-params-converter.js","sourceRoot":"","sources":["../../server/utils/list-params-converter.ts"],"names":[],"mappings":"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","sourcesContent":["import { Between, Equal, FindOperator, ILike, In, IsNull, Like, Not, Raw } from 'typeorm'\n\nimport { Filter, ListParam, Pagination, Sorting } from '../service/common-types'\nimport { Domain } from '../service/domain/domain'\nimport { adjustFilters } from './list-param-adjuster'\n\nconst OPERATION_FUNCTION_MAP: { [operator: string]: (value: any) => FindOperator<any> } = {\n search: value => ILike(value),\n eq: value => Equal(value),\n noteq: value => Not(Equal(value)),\n like: value => Like(value),\n i_like: value => ILike(value),\n nlike: value => Not(Like(value)),\n i_nlike: value => Not(ILike(value)),\n lt: value => Raw(alias => `${alias} < ${typeof value === 'string' ? \"'\" + value + \"'\" : value}`),\n gt: value => Raw(alias => `${alias} > ${typeof value === 'string' ? \"'\" + value + \"'\" : value}`),\n lte: value => Raw(alias => `${alias} <= ${typeof value === 'string' ? \"'\" + value + \"'\" : value}`),\n gte: value => Raw(alias => `${alias} >= ${typeof value === 'string' ? \"'\" + value + \"'\" : value}`),\n in: value => In(value),\n notin: value => Not(In(value)),\n is_null: () => IsNull(),\n is_not_null: () => Not(IsNull()),\n is_false: () => Raw(alias => `${alias} IS FALSE`),\n in_true: () => Raw(alias => `${alias} IS TRUE`),\n is_not_true: () => Raw(alias => `${alias} IS NOT TRUE`),\n is_present: () => Raw(alias => `${alias} IS PRESENT`),\n is_blank: () => Raw(alias => `${alias} IS BLANK`),\n is_empty_num_id: () => Raw(alias => `${alias} IS EMPTY NUMERIC ID`),\n between: value => Between(value[0], value[1])\n}\n\n/**\n * Get the TypeORM FindOperator function for a given filter.\n * @param {Filter} filter - The filter object containing operator and value.\n * @returns {FindOperator<any>} - The corresponding FindOperator function.\n */\nfunction getOperatorFunction({ operator, value }: Filter): FindOperator<any> {\n return OPERATION_FUNCTION_MAP[operator](value)\n}\n\n/**\n * Create pagination parameters for a TypeORM query.\n * @param {Pagination} pagination - The pagination object.\n * @returns {{ skip?: number; take?: number }} - The pagination parameters.\n */\nfunction makePaginationParams(pagination: Pagination): { skip?: number; take?: number } {\n var result = {} as { skip?: number; take?: number }\n if (pagination) {\n var { page = 0, limit = 0 } = pagination\n var skip = 0\n var take = 0\n\n if (limit > 0) {\n skip = Math.max(page - 1, 0) * limit\n take = limit\n Object.assign(result, {\n skip,\n take\n })\n }\n }\n\n return result\n}\n\n/**\n * Create sorting parameters for a TypeORM query.\n * @param {Sorting[]} sortings - The array of sorting objects.\n * @returns {{ order?: { [name: string]: 'DESC' | 'ASC' } }} - The sorting parameters.\n */\nfunction makeSortingParams(sortings: Sorting[]): { order?: { [name: string]: 'DESC' | 'ASC' } } {\n var result = {} as { order?: { [name: string]: 'DESC' | 'ASC' } }\n if (sortings) {\n var order = {} as { [name: string]: 'DESC' | 'ASC' }\n sortings.forEach(s => {\n order[s.name] = s.desc ? 'DESC' : 'ASC'\n })\n\n Object.assign(result, {\n order\n })\n }\n\n return result\n}\n\n/**\n * Create filter parameters for a TypeORM query.\n * @param {Filter[]} filters - The array of filter objects.\n * @param {string[]} searchables - The array of searchable field names.\n * @returns {{ where: { [name: string]: FindOperator<any> } | { [name: string]: FindOperator<any> }[] }} - The filter parameters.\n */\nfunction makeFilterParams(\n filters: Filter[],\n searchables?: string[]\n): {\n where: { [name: string]: FindOperator<any> } | { [name: string]: FindOperator<any> }[]\n} {\n /* for where AND clauses */\n const columnFilters =\n filters?.filter(filter => {\n if (filter.operator === 'search') {\n return false\n }\n if (filter.operator.toLowerCase().includes('like') && (!searchables || !searchables.includes(filter.name))) {\n return false\n }\n return true\n }) || []\n\n const searchFilters =\n searchables instanceof Array\n ? filters?.filter(filter => {\n if (filter.operator !== 'search') {\n return false\n }\n if (!searchables.includes(filter.name)) {\n console.warn('\"searchables\" setting is required for like searches with a heavy database query load', filter.name)\n return false\n }\n return true\n }) || []\n : []\n\n const columnWhere = columnFilters.reduce((where, f) => {\n where[f.name] = getOperatorFunction(f)\n return where\n }, {} as { [name: string]: FindOperator<any> })\n\n if (searchFilters.length === 0) {\n return {\n where: columnWhere\n }\n }\n\n /* for fulltext searching ... OR-AND composition */\n const searchWheres = searchFilters.map(f => {\n return {\n [f.name]: getOperatorFunction(f),\n ...columnWhere\n }\n })\n\n return {\n where: searchWheres\n }\n}\n\n/**\n * Convert ListParam object to TypeORM query parameters.\n * @param {ListParam} params - The ListParam object containing pagination, sorting, and filtering options.\n * @param {string | { domain?: string | Domain; searchables?: string[] }} options - Optional domain and searchables parameters.\n * @returns {{ where?: { [name: string]: FindOperator<any> }; order?: { [name: string]: 'DESC' | 'ASC' }; skip?: number; take?: number }} - The TypeORM query parameters.\n */\nexport function convertListParams(\n params: ListParam,\n options?:\n | string\n | {\n domain?: string | Domain\n searchables?: string[]\n }\n): {\n where?: { [name: string]: FindOperator<any> }\n order?: {\n [name: string]: 'DESC' | 'ASC'\n }\n skip?: number\n take?: number\n} {\n var domainId: string | undefined\n\n if (options) {\n if (typeof options === 'string' /* for 하위 호환성 */) {\n var domainId = options\n } else {\n var { domain, searchables } = options\n var domainId = typeof domain === 'string' ? domain : domain?.id\n }\n }\n\n var { pagination, filters = [], sortings } = params\n var result = {}\n\n if (domainId) {\n filters = adjustFilters(filters, [\n {\n name: 'domain',\n operator: 'eq',\n value: domainId\n }\n ])\n }\n\n if (pagination) Object.assign(result, makePaginationParams(pagination))\n if (sortings) Object.assign(result, makeSortingParams(sortings))\n if (filters) Object.assign(result, makeFilterParams(filters, searchables))\n\n return result\n}\n"]}
1
+ {"version":3,"file":"list-params-converter.js","sourceRoot":"","sources":["../../server/utils/list-params-converter.ts"],"names":[],"mappings":"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","sourcesContent":["import { Between, Equal, FindOperator, ILike, In, IsNull, Like, Not, Raw } from 'typeorm'\n\nimport { Filter, ListParam, Pagination, Sorting } from '../service/common-types/list-param.js'\nimport { Domain } from '../service/domain/domain.js'\nimport { adjustFilters } from './list-param-adjuster.js'\n\nconst OPERATION_FUNCTION_MAP: { [operator: string]: (value: any) => FindOperator<any> } = {\n search: value => ILike(value),\n eq: value => Equal(value),\n noteq: value => Not(Equal(value)),\n like: value => Like(value),\n i_like: value => ILike(value),\n nlike: value => Not(Like(value)),\n i_nlike: value => Not(ILike(value)),\n lt: value => Raw(alias => `${alias} < ${typeof value === 'string' ? \"'\" + value + \"'\" : value}`),\n gt: value => Raw(alias => `${alias} > ${typeof value === 'string' ? \"'\" + value + \"'\" : value}`),\n lte: value => Raw(alias => `${alias} <= ${typeof value === 'string' ? \"'\" + value + \"'\" : value}`),\n gte: value => Raw(alias => `${alias} >= ${typeof value === 'string' ? \"'\" + value + \"'\" : value}`),\n in: value => In(value),\n notin: value => Not(In(value)),\n is_null: () => IsNull(),\n is_not_null: () => Not(IsNull()),\n is_false: () => Raw(alias => `${alias} IS FALSE`),\n in_true: () => Raw(alias => `${alias} IS TRUE`),\n is_not_true: () => Raw(alias => `${alias} IS NOT TRUE`),\n is_present: () => Raw(alias => `${alias} IS PRESENT`),\n is_blank: () => Raw(alias => `${alias} IS BLANK`),\n is_empty_num_id: () => Raw(alias => `${alias} IS EMPTY NUMERIC ID`),\n between: value => Between(value[0], value[1])\n}\n\n/**\n * Get the TypeORM FindOperator function for a given filter.\n * @param {Filter} filter - The filter object containing operator and value.\n * @returns {FindOperator<any>} - The corresponding FindOperator function.\n */\nfunction getOperatorFunction({ operator, value }: Filter): FindOperator<any> {\n return OPERATION_FUNCTION_MAP[operator](value)\n}\n\n/**\n * Create pagination parameters for a TypeORM query.\n * @param {Pagination} pagination - The pagination object.\n * @returns {{ skip?: number; take?: number }} - The pagination parameters.\n */\nfunction makePaginationParams(pagination: Pagination): { skip?: number; take?: number } {\n var result = {} as { skip?: number; take?: number }\n if (pagination) {\n var { page = 0, limit = 0 } = pagination\n var skip = 0\n var take = 0\n\n if (limit > 0) {\n skip = Math.max(page - 1, 0) * limit\n take = limit\n Object.assign(result, {\n skip,\n take\n })\n }\n }\n\n return result\n}\n\n/**\n * Create sorting parameters for a TypeORM query.\n * @param {Sorting[]} sortings - The array of sorting objects.\n * @returns {{ order?: { [name: string]: 'DESC' | 'ASC' } }} - The sorting parameters.\n */\nfunction makeSortingParams(sortings: Sorting[]): { order?: { [name: string]: 'DESC' | 'ASC' } } {\n var result = {} as { order?: { [name: string]: 'DESC' | 'ASC' } }\n if (sortings) {\n var order = {} as { [name: string]: 'DESC' | 'ASC' }\n sortings.forEach(s => {\n order[s.name] = s.desc ? 'DESC' : 'ASC'\n })\n\n Object.assign(result, {\n order\n })\n }\n\n return result\n}\n\n/**\n * Create filter parameters for a TypeORM query.\n * @param {Filter[]} filters - The array of filter objects.\n * @param {string[]} searchables - The array of searchable field names.\n * @returns {{ where: { [name: string]: FindOperator<any> } | { [name: string]: FindOperator<any> }[] }} - The filter parameters.\n */\nfunction makeFilterParams(\n filters: Filter[],\n searchables?: string[]\n): {\n where: { [name: string]: FindOperator<any> } | { [name: string]: FindOperator<any> }[]\n} {\n /* for where AND clauses */\n const columnFilters =\n filters?.filter(filter => {\n if (filter.operator === 'search') {\n return false\n }\n if (filter.operator.toLowerCase().includes('like') && (!searchables || !searchables.includes(filter.name))) {\n return false\n }\n return true\n }) || []\n\n const searchFilters =\n searchables instanceof Array\n ? filters?.filter(filter => {\n if (filter.operator !== 'search') {\n return false\n }\n if (!searchables.includes(filter.name)) {\n console.warn(\n '\"searchables\" setting is required for like searches with a heavy database query load',\n filter.name\n )\n return false\n }\n return true\n }) || []\n : []\n\n const columnWhere = columnFilters.reduce(\n (where, f) => {\n where[f.name] = getOperatorFunction(f)\n return where\n },\n {} as { [name: string]: FindOperator<any> }\n )\n\n if (searchFilters.length === 0) {\n return {\n where: columnWhere\n }\n }\n\n /* for fulltext searching ... OR-AND composition */\n const searchWheres = searchFilters.map(f => {\n return {\n [f.name]: getOperatorFunction(f),\n ...columnWhere\n }\n })\n\n return {\n where: searchWheres\n }\n}\n\n/**\n * Convert ListParam object to TypeORM query parameters.\n * @param {ListParam} params - The ListParam object containing pagination, sorting, and filtering options.\n * @param {string | { domain?: string | Domain; searchables?: string[] }} options - Optional domain and searchables parameters.\n * @returns {{ where?: { [name: string]: FindOperator<any> }; order?: { [name: string]: 'DESC' | 'ASC' }; skip?: number; take?: number }} - The TypeORM query parameters.\n */\nexport function convertListParams(\n params: ListParam,\n options?:\n | string\n | {\n domain?: string | Domain\n searchables?: string[]\n }\n): {\n where?: { [name: string]: FindOperator<any> }\n order?: {\n [name: string]: 'DESC' | 'ASC'\n }\n skip?: number\n take?: number\n} {\n var domainId: string | undefined\n\n if (options) {\n if (typeof options === 'string' /* for 하위 호환성 */) {\n var domainId = options\n } else {\n var { domain, searchables } = options\n var domainId = typeof domain === 'string' ? domain : domain?.id\n }\n }\n\n var { pagination, filters = [], sortings } = params\n var result = {}\n\n if (domainId) {\n filters = adjustFilters(filters, [\n {\n name: 'domain',\n operator: 'eq',\n value: domainId\n }\n ])\n }\n\n if (pagination) Object.assign(result, makePaginationParams(pagination))\n if (sortings) Object.assign(result, makeSortingParams(sortings))\n if (filters) Object.assign(result, makeFilterParams(filters, searchables))\n\n return result\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { ListParam } from '../service/common-types/list-param';
1
+ import { ListParam } from '../service/common-types/list-param.js';
2
2
  /**
3
3
  * @deprecated This function is recommended to be replaced with the `getQueryBuilderFromListParams` function.
4
4
  *
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.buildQuery = void 0;
4
4
  const typeorm_1 = require("typeorm");
5
- const condition_builder_1 = require("./condition-builder");
6
- const list_param_1 = require("../service/common-types/list-param");
5
+ const condition_builder_js_1 = require("./condition-builder.js");
6
+ const list_param_js_1 = require("../service/common-types/list-param.js");
7
7
  /**
8
8
  * @deprecated This function is recommended to be replaced with the `getQueryBuilderFromListParams` function.
9
9
  *
@@ -51,7 +51,7 @@ const buildQuery = function (queryBuilder, params, context, options) {
51
51
  const domain = context === null || context === void 0 ? void 0 : context.state.domain;
52
52
  if (columnFilters && columnFilters.length > 0) {
53
53
  columnFilters.forEach(filter => {
54
- const condition = (0, condition_builder_1.buildCondition)(queryBuilder.alias, filter.name, filter.operator, filter.value, filter.relation, Object.keys(queryBuilder.getParameters()).length);
54
+ const condition = (0, condition_builder_js_1.buildCondition)(queryBuilder.alias, filter.name, filter.operator, filter.value, filter.relation, Object.keys(queryBuilder.getParameters()).length);
55
55
  if (condition === null || condition === void 0 ? void 0 : condition.clause)
56
56
  queryBuilder.andWhere(condition.clause);
57
57
  if (condition === null || condition === void 0 ? void 0 : condition.parameters)
@@ -68,16 +68,16 @@ const buildQuery = function (queryBuilder, params, context, options) {
68
68
  }));
69
69
  }
70
70
  if (domainRef) {
71
- const inherited = (params === null || params === void 0 ? void 0 : params.inherited) || list_param_1.InheritedValueType.None;
72
- if (!inherited || inherited == list_param_1.InheritedValueType.None) {
71
+ const inherited = (params === null || params === void 0 ? void 0 : params.inherited) || list_param_js_1.InheritedValueType.None;
72
+ if (!inherited || inherited == list_param_js_1.InheritedValueType.None) {
73
73
  queryBuilder.andWhere(`${queryBuilder.alias}.domain = :domain`, { domain: domain.id });
74
74
  }
75
- else if (inherited == list_param_1.InheritedValueType.Include) {
75
+ else if (inherited == list_param_js_1.InheritedValueType.Include) {
76
76
  queryBuilder.andWhere(`${queryBuilder.alias}.domain In(:...domains)`, {
77
77
  domains: [domain.id, domain.parentId].filter(Boolean)
78
78
  });
79
79
  }
80
- else if (inherited == list_param_1.InheritedValueType.Only) {
80
+ else if (inherited == list_param_js_1.InheritedValueType.Only) {
81
81
  queryBuilder.andWhere(`${queryBuilder.alias}.domain = :domain`, { domain: domain.parentId || 'Impossible' });
82
82
  }
83
83
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"list-query-builder.js","sourceRoot":"","sources":["../../server/utils/list-query-builder.ts"],"names":[],"mappings":"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","sourcesContent":["import { Brackets } from 'typeorm'\n\nimport { buildCondition } from './condition-builder'\nimport { Filter, ListParam, InheritedValueType } from '../service/common-types/list-param'\n\n/**\n * @deprecated This function is recommended to be replaced with the `getQueryBuilderFromListParams` function.\n *\n * Builds a TypeORM query using the provided parameters to filter, paginate, and sort the data.\n *\n * @param {QueryBuilder} queryBuilder - The TypeORM query builder to build the query on.\n * @param {ListParam} params - The list parameters to apply to the query.\n * @param {Object} context - The context object, typically containing information about the user's domain.\n * @param {boolean|Object} options - Additional options for the query builder.\n * @param {boolean} options.domainRef - Indicates whether to include domain reference in the query.\n * @param {string[]} options.searchables - An array of searchable field names.\n */\nexport const buildQuery = function (\n queryBuilder: any,\n params: ListParam,\n context: any,\n options?:\n | boolean\n | {\n domainRef?: boolean\n searchables?: string[]\n }\n) {\n /* default value of domainRef is 'true' */\n var domainRef = typeof options === 'boolean' ? options : true\n\n /* for backwards compatibility of function spec */\n if (typeof options === 'object') {\n var { domainRef = true, searchables } = options\n }\n\n const columnFilters: Filter[] =\n params.filters?.filter(filter => {\n if (filter.operator === 'search') {\n return false\n }\n if (filter.operator.toLowerCase().includes('like') && (!searchables || !searchables.includes(filter.name))) {\n console.warn('\"searchables\" setting is required for like searches with a heavy database query load', filter.name)\n return false\n }\n return true\n }) || []\n\n const searchFilters =\n searchables instanceof Array\n ? params.filters?.filter(filter => {\n if (filter.operator !== 'search') {\n return false\n }\n if (!searchables.includes(filter.name)) {\n console.warn('\"searchables\" setting is required for like searches with a heavy database query load', filter.name)\n return false\n }\n return true\n }) || []\n : []\n\n const pagination = params.pagination\n const sortings = params.sortings\n const domain = context?.state.domain\n\n if (columnFilters && columnFilters.length > 0) {\n columnFilters.forEach(filter => {\n const condition = buildCondition(queryBuilder.alias, filter.name, filter.operator, filter.value, filter.relation, Object.keys(queryBuilder.getParameters()).length)\n\n if (condition?.clause) queryBuilder.andWhere(condition.clause)\n if (condition?.parameters) queryBuilder.setParameters(condition.parameters)\n })\n }\n\n if (searchFilters.length > 0) {\n queryBuilder.andWhere(\n new Brackets(qb => {\n searchFilters.forEach((filter, index) => {\n const clause = `${queryBuilder.alias}.${filter.name} LIKE :${filter.name}`\n const parameters = { [filter.name]: filter.value }\n\n index === 0 ? qb.where(clause, parameters) : qb.orWhere(clause, parameters)\n })\n })\n )\n }\n\n if (domainRef) {\n const inherited = params?.inherited || InheritedValueType.None\n\n if (!inherited || inherited == InheritedValueType.None) {\n queryBuilder.andWhere(`${queryBuilder.alias}.domain = :domain`, { domain: domain.id })\n } else if (inherited == InheritedValueType.Include) {\n queryBuilder.andWhere(`${queryBuilder.alias}.domain In(:...domains)`, {\n domains: [domain.id, domain.parentId].filter(Boolean)\n })\n } else if (inherited == InheritedValueType.Only) {\n queryBuilder.andWhere(`${queryBuilder.alias}.domain = :domain`, { domain: domain.parentId || 'Impossible' })\n } else {\n queryBuilder.andWhere(`${queryBuilder.alias}.domain = :domain`, { domain: 'Impossible' })\n }\n }\n\n if (pagination && pagination.page > 0 && pagination.limit > 0) {\n queryBuilder.skip(pagination.limit * (pagination.page - 1))\n queryBuilder.take(pagination.limit)\n }\n\n if (sortings && sortings.length > 0) {\n sortings.forEach((sorting, index) => {\n const sortField = sorting.name.split('.').length > 1 ? sorting.name : `${queryBuilder.alias}.${sorting.name}`\n if (index === 0) {\n queryBuilder.orderBy(sortField, sorting.desc ? 'DESC' : 'ASC')\n } else {\n queryBuilder.addOrderBy(sortField, sorting.desc ? 'DESC' : 'ASC')\n }\n })\n }\n}\n"]}
1
+ {"version":3,"file":"list-query-builder.js","sourceRoot":"","sources":["../../server/utils/list-query-builder.ts"],"names":[],"mappings":"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","sourcesContent":["import { Brackets } from 'typeorm'\n\nimport { buildCondition } from './condition-builder.js'\nimport { Filter, ListParam, InheritedValueType } from '../service/common-types/list-param.js'\n\n/**\n * @deprecated This function is recommended to be replaced with the `getQueryBuilderFromListParams` function.\n *\n * Builds a TypeORM query using the provided parameters to filter, paginate, and sort the data.\n *\n * @param {QueryBuilder} queryBuilder - The TypeORM query builder to build the query on.\n * @param {ListParam} params - The list parameters to apply to the query.\n * @param {Object} context - The context object, typically containing information about the user's domain.\n * @param {boolean|Object} options - Additional options for the query builder.\n * @param {boolean} options.domainRef - Indicates whether to include domain reference in the query.\n * @param {string[]} options.searchables - An array of searchable field names.\n */\nexport const buildQuery = function (\n queryBuilder: any,\n params: ListParam,\n context: any,\n options?:\n | boolean\n | {\n domainRef?: boolean\n searchables?: string[]\n }\n) {\n /* default value of domainRef is 'true' */\n var domainRef = typeof options === 'boolean' ? options : true\n\n /* for backwards compatibility of function spec */\n if (typeof options === 'object') {\n var { domainRef = true, searchables } = options\n }\n\n const columnFilters: Filter[] =\n params.filters?.filter(filter => {\n if (filter.operator === 'search') {\n return false\n }\n if (filter.operator.toLowerCase().includes('like') && (!searchables || !searchables.includes(filter.name))) {\n console.warn(\n '\"searchables\" setting is required for like searches with a heavy database query load',\n filter.name\n )\n return false\n }\n return true\n }) || []\n\n const searchFilters =\n searchables instanceof Array\n ? params.filters?.filter(filter => {\n if (filter.operator !== 'search') {\n return false\n }\n if (!searchables.includes(filter.name)) {\n console.warn(\n '\"searchables\" setting is required for like searches with a heavy database query load',\n filter.name\n )\n return false\n }\n return true\n }) || []\n : []\n\n const pagination = params.pagination\n const sortings = params.sortings\n const domain = context?.state.domain\n\n if (columnFilters && columnFilters.length > 0) {\n columnFilters.forEach(filter => {\n const condition = buildCondition(\n queryBuilder.alias,\n filter.name,\n filter.operator,\n filter.value,\n filter.relation,\n Object.keys(queryBuilder.getParameters()).length\n )\n\n if (condition?.clause) queryBuilder.andWhere(condition.clause)\n if (condition?.parameters) queryBuilder.setParameters(condition.parameters)\n })\n }\n\n if (searchFilters.length > 0) {\n queryBuilder.andWhere(\n new Brackets(qb => {\n searchFilters.forEach((filter, index) => {\n const clause = `${queryBuilder.alias}.${filter.name} LIKE :${filter.name}`\n const parameters = { [filter.name]: filter.value }\n\n index === 0 ? qb.where(clause, parameters) : qb.orWhere(clause, parameters)\n })\n })\n )\n }\n\n if (domainRef) {\n const inherited = params?.inherited || InheritedValueType.None\n\n if (!inherited || inherited == InheritedValueType.None) {\n queryBuilder.andWhere(`${queryBuilder.alias}.domain = :domain`, { domain: domain.id })\n } else if (inherited == InheritedValueType.Include) {\n queryBuilder.andWhere(`${queryBuilder.alias}.domain In(:...domains)`, {\n domains: [domain.id, domain.parentId].filter(Boolean)\n })\n } else if (inherited == InheritedValueType.Only) {\n queryBuilder.andWhere(`${queryBuilder.alias}.domain = :domain`, { domain: domain.parentId || 'Impossible' })\n } else {\n queryBuilder.andWhere(`${queryBuilder.alias}.domain = :domain`, { domain: 'Impossible' })\n }\n }\n\n if (pagination && pagination.page > 0 && pagination.limit > 0) {\n queryBuilder.skip(pagination.limit * (pagination.page - 1))\n queryBuilder.take(pagination.limit)\n }\n\n if (sortings && sortings.length > 0) {\n sortings.forEach((sorting, index) => {\n const sortField = sorting.name.split('.').length > 1 ? sorting.name : `${queryBuilder.alias}.${sorting.name}`\n if (index === 0) {\n queryBuilder.orderBy(sortField, sorting.desc ? 'DESC' : 'ASC')\n } else {\n queryBuilder.addOrderBy(sortField, sorting.desc ? 'DESC' : 'ASC')\n }\n })\n }\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.publishProgress = publishProgress;
4
- const pubsub_1 = require("../pubsub");
4
+ const pubsub_js_1 = require("../pubsub.js");
5
5
  /**
6
6
  * Publishes a progress update message to the 'data' channel in the Pub/Sub system.
7
7
  *
@@ -12,7 +12,7 @@ const pubsub_1 = require("../pubsub");
12
12
  * @param {string} param.message - A message or description of the progress update.
13
13
  */
14
14
  function publishProgress({ domain, tag, progress, message }) {
15
- pubsub_1.pubsub.publish('data', {
15
+ pubsub_js_1.pubsub.publish('data', {
16
16
  data: {
17
17
  domain,
18
18
  tag,
@@ -1 +1 @@
1
- {"version":3,"file":"publish-progress.js","sourceRoot":"","sources":["../../server/utils/publish-progress.ts"],"names":[],"mappings":";;AAWA,0CAWC;AAtBD,sCAAkC;AAElC;;;;;;;;GAQG;AACH,SAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE;IAChE,eAAM,CAAC,OAAO,CAAC,MAAM,EAAE;QACrB,IAAI,EAAE;YACJ,MAAM;YACN,GAAG;YACH,IAAI,EAAE;gBACJ,QAAQ;gBACR,OAAO;aACR;SACF;KACF,CAAC,CAAA;AACJ,CAAC","sourcesContent":["import { pubsub } from '../pubsub'\n\n/**\n * Publishes a progress update message to the 'data' channel in the Pub/Sub system.\n *\n * @param {Object} param - The progress update parameters.\n * @param {string} param.domain - The domain or category of the progress update.\n * @param {string} param.tag - The tag or identifier for the progress update.\n * @param {number} param.progress - The progress value indicating the completion percentage.\n * @param {string} param.message - A message or description of the progress update.\n */\nexport function publishProgress({ domain, tag, progress, message }) {\n pubsub.publish('data', {\n data: {\n domain,\n tag,\n data: {\n progress,\n message\n }\n }\n })\n}\n"]}
1
+ {"version":3,"file":"publish-progress.js","sourceRoot":"","sources":["../../server/utils/publish-progress.ts"],"names":[],"mappings":";;AAWA,0CAWC;AAtBD,4CAAqC;AAErC;;;;;;;;GAQG;AACH,SAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE;IAChE,kBAAM,CAAC,OAAO,CAAC,MAAM,EAAE;QACrB,IAAI,EAAE;YACJ,MAAM;YACN,GAAG;YACH,IAAI,EAAE;gBACJ,QAAQ;gBACR,OAAO;aACR;SACF;KACF,CAAC,CAAA;AACJ,CAAC","sourcesContent":["import { pubsub } from '../pubsub.js'\n\n/**\n * Publishes a progress update message to the 'data' channel in the Pub/Sub system.\n *\n * @param {Object} param - The progress update parameters.\n * @param {string} param.domain - The domain or category of the progress update.\n * @param {string} param.tag - The tag or identifier for the progress update.\n * @param {number} param.progress - The progress value indicating the completion percentage.\n * @param {string} param.message - A message or description of the progress update.\n */\nexport function publishProgress({ domain, tag, progress, message }) {\n pubsub.publish('data', {\n data: {\n domain,\n tag,\n data: {\n progress,\n message\n }\n }\n })\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/shell",
3
- "version": "9.0.0-beta.0",
3
+ "version": "9.0.0-beta.19",
4
4
  "description": "Core module for framework",
5
5
  "bin": {
6
6
  "things-factory": "bin/things-factory",
@@ -45,7 +45,6 @@
45
45
  "@graphql-yoga/redis-event-target": "^3.0.1",
46
46
  "@hatiolab/things-scene": "^9.0.0-beta",
47
47
  "@koa/cors": "^5.0.0",
48
- "@material-design-icons/font": "^0.14.9",
49
48
  "@material/mwc-button": "^0.27.0",
50
49
  "@material/mwc-icon": "^0.27.0",
51
50
  "@material/mwc-icon-button": "^0.27.0",
@@ -61,11 +60,11 @@
61
60
  "@operato/typeorm-history": "^9.0.0-beta",
62
61
  "@operato/utils": "^9.0.0-beta",
63
62
  "@reduxjs/toolkit": "^2.2.5",
64
- "@things-factory/ejs-remote": "^8.0.0-beta.4",
65
- "@things-factory/env": "^8.0.0-beta.4",
63
+ "@things-factory/ejs-remote": "^9.0.0-beta.5",
64
+ "@things-factory/env": "^9.0.0-beta.19",
66
65
  "@things-factory/operato-license-checker": "^4.0.4",
67
- "@things-factory/styles": "^8.0.0-beta.4",
68
- "@things-factory/utils": "^9.0.0-beta.0",
66
+ "@things-factory/styles": "^9.0.0-beta.1",
67
+ "@things-factory/utils": "^9.0.0-beta.19",
69
68
  "@webcomponents/scoped-custom-element-registry": "^0.0.9",
70
69
  "@webcomponents/webcomponentsjs": "^2.6.0",
71
70
  "args": "^5.0.0",
@@ -75,8 +74,7 @@
75
74
  "core-js": "^3.26.0",
76
75
  "debug": "^4.1.1",
77
76
  "firebase": "^9.14.0",
78
- "fs-extra": "^9.0.1",
79
- "glob": "^7.1.6",
77
+ "glob": "^11.0.1",
80
78
  "graphql": "^16.5.0",
81
79
  "graphql-scalars": "^1.22.4",
82
80
  "graphql-tag": "^2.12.6",
@@ -98,10 +96,9 @@
98
96
  "koa-static": "^5.0.0",
99
97
  "koa2-connect-history-api-fallback": "^0.1.2",
100
98
  "lit": "^3.1.2",
101
- "loader-utils": "^2.0.0",
102
99
  "lodash": "^4.17.21",
103
100
  "lodash-es": "^4.17.21",
104
- "material-symbols": "^0.17.2",
101
+ "material-symbols": "^0.28.0",
105
102
  "mkdirp": "^1.0.4",
106
103
  "moment-timezone": "^0.5.43",
107
104
  "mqtt": "^4.3.4",
@@ -133,5 +130,5 @@
133
130
  "pg": "^8.7.3",
134
131
  "sqlite3": "^5.0.8"
135
132
  },
136
- "gitHead": "aa59cde17467beaca43e320bcfc8d415eff6265c"
133
+ "gitHead": "b72aed659b0224f428d39034371b8dbd8f281dae"
137
134
  }
@@ -51,7 +51,6 @@
51
51
 
52
52
  <!-- Performance tip: hint to the browser to start the handshake for the fonts site -->
53
53
  <link rel="preconnect" href="https://fonts.gstatic.com/" crossorigin />
54
- <link href="/node_modules/@material-design-icons/font/index.css" rel="stylesheet" />
55
54
  <link href="/node_modules/material-symbols/index.css" rel="stylesheet" />
56
55
  <link href="/node_modules/@fontsource/roboto/index.css" rel="stylesheet" />
57
56
  <link rel="stylesheet" href="/theme.css" />
@@ -1,140 +0,0 @@
1
- const log = require('./log');
2
-
3
- const refresh = 'Please refresh the page.';
4
- const hotOptions = {
5
- ignoreUnaccepted: true,
6
- ignoreDeclined: true,
7
- ignoreErrored: true,
8
- onUnaccepted(data) {
9
- const chain = [].concat(data.chain);
10
- const last = chain[chain.length - 1];
11
-
12
- if (last === 0) {
13
- chain.pop();
14
- }
15
-
16
- log.warn(`Ignored an update to unaccepted module ${chain.join(' ➭ ')}`);
17
- },
18
- onDeclined(data) {
19
- log.warn(`Ignored an update to declined module ${data.chain.join(' ➭ ')}`);
20
- },
21
- onErrored(data) {
22
- log.warn(`Ignored an error while updating module ${data.moduleId} <${data.type}>`);
23
- log.warn(data.error);
24
- }
25
- };
26
-
27
- let lastHash;
28
-
29
- function upToDate() {
30
- return lastHash.indexOf(__webpack_hash__) >= 0;
31
- }
32
-
33
- function result(modules, appliedModules) {
34
- const unaccepted = modules.filter(
35
- (moduleId) => appliedModules && appliedModules.indexOf(moduleId) < 0
36
- );
37
-
38
- if (unaccepted.length > 0) {
39
- let message = 'The following modules could not be updated:';
40
-
41
- for (const moduleId of unaccepted) {
42
- message += `\n ⦻ ${moduleId}`;
43
- }
44
- log.warn(message);
45
- }
46
-
47
- if (!(appliedModules || []).length) {
48
- log.info('No Modules Updated.');
49
- } else {
50
- const message = ['The following modules were updated:'];
51
-
52
- for (const moduleId of appliedModules) {
53
- message.push(` ↻ ${moduleId}`);
54
- }
55
-
56
- log.info(message.join('\n'));
57
-
58
- const numberIds = appliedModules.every((moduleId) => typeof moduleId === 'number');
59
- if (numberIds) {
60
- log.info('Please consider using the NamedModulesPlugin for module names.');
61
- }
62
- }
63
- }
64
-
65
- function check(options) {
66
- module.hot
67
- .check()
68
- .then((modules) => {
69
- if (!modules) {
70
- log.warn(`Cannot find update. The server may have been restarted. ${refresh}`);
71
- if (options.reload) {
72
- window.location.reload();
73
- }
74
- return null;
75
- }
76
-
77
- const hotOpts = options.reload ? {} : hotOptions;
78
-
79
- return module.hot
80
- .apply(hotOpts)
81
- .then((appliedModules) => {
82
- if (!upToDate()) {
83
- check(options);
84
- }
85
-
86
- result(modules, appliedModules);
87
-
88
- if (upToDate()) {
89
- log.info('App is up to date.');
90
- }
91
- })
92
- .catch((err) => {
93
- const status = module.hot.status();
94
- if (['abort', 'fail'].indexOf(status) >= 0) {
95
- log.warn(`Cannot apply update. ${refresh}`);
96
- log.warn(err.stack || err.message);
97
- if (options.reload) {
98
- window.location.reload();
99
- }
100
- } else {
101
- log.warn(`Update failed: ${err.stack}` || err.message);
102
- }
103
- });
104
- })
105
- .catch((err) => {
106
- const status = module.hot.status();
107
- if (['abort', 'fail'].indexOf(status) >= 0) {
108
- log.warn(`Cannot check for update. ${refresh}`);
109
- log.warn(err.stack || err.message);
110
- if (options.reload) {
111
- window.location.reload();
112
- }
113
- } else {
114
- log.warn(`Update check failed: ${err.stack}` || err.message);
115
- }
116
- });
117
- }
118
-
119
- if (module.hot) {
120
- log.info('Hot Module Replacement Enabled. Waiting for signal.');
121
- } else {
122
- log.error('Hot Module Replacement is disabled.');
123
- }
124
-
125
- module.exports = function update(currentHash, options) {
126
- lastHash = currentHash;
127
- if (!upToDate()) {
128
- const status = module.hot.status();
129
-
130
- if (status === 'idle') {
131
- log.info('Checking for updates to the bundle.');
132
- check(options);
133
- } else if (['abort', 'fail'].indexOf(status) >= 0) {
134
- log.warn(`Cannot apply update. A previous update ${status}ed. ${refresh}`);
135
- if (options.reload) {
136
- window.location.reload();
137
- }
138
- }
139
- }
140
- };
@@ -1,103 +0,0 @@
1
- /* eslint-disable global-require, consistent-return */
2
-
3
- (function hotClientEntry() {
4
- // eslint-disable-next-line no-underscore-dangle
5
- if (window.__webpackHotClient__) {
6
- return;
7
- }
8
-
9
- // eslint-disable-next-line no-underscore-dangle
10
- window.__webpackHotClient__ = {};
11
-
12
- // this is piped in at runtime build via DefinePlugin in /lib/plugins.js
13
- // eslint-disable-next-line no-unused-vars, no-undef
14
- const options = __hotClientOptions__;
15
-
16
- const log = require('./log'); // eslint-disable-line import/order
17
-
18
- log.level = options.logLevel;
19
-
20
- const update = require('./hot');
21
- const socket = require('./socket');
22
-
23
- if (!options) {
24
- throw new Error(
25
- 'Something went awry and __hotClientOptions__ is undefined. Possible bad build. HMR cannot be enabled.'
26
- );
27
- }
28
-
29
- let currentHash;
30
- let initial = true;
31
- let isUnloading;
32
-
33
- window.addEventListener('beforeunload', () => {
34
- isUnloading = true;
35
- });
36
-
37
- function reload() {
38
- if (isUnloading) {
39
- return;
40
- }
41
-
42
- if (options.hmr) {
43
- log.info('App Updated, Reloading Modules');
44
- update(currentHash, options);
45
- } else if (options.reload) {
46
- log.info('Refreshing Page');
47
- window.location.reload();
48
- } else {
49
- log.warn('Please refresh the page manually.');
50
- log.info('The `hot` and `reload` options are set to false.');
51
- }
52
- }
53
-
54
- socket(options, {
55
- compile({ compilerName }) {
56
- log.info(`webpack: Compiling (${compilerName})`);
57
- },
58
-
59
- errors({ errors }) {
60
- log.error('webpack: Encountered errors while compiling. Reload prevented.');
61
-
62
- for (let i = 0; i < errors.length; i++) {
63
- log.error(errors[i]);
64
- }
65
- },
66
-
67
- hash({ hash }) {
68
- currentHash = hash;
69
- },
70
-
71
- invalid({ fileName }) {
72
- log.info(`App updated. Recompiling ${fileName}`);
73
- },
74
-
75
- ok() {
76
- if (initial) {
77
- initial = false;
78
- return initial;
79
- }
80
-
81
- reload();
82
- },
83
-
84
- 'window-reload': () => {
85
- window.location.reload();
86
- },
87
-
88
- warnings({ warnings }) {
89
- log.warn('Warnings while compiling.');
90
-
91
- for (let i = 0; i < warnings.length; i++) {
92
- log.warn(warnings[i]);
93
- }
94
-
95
- if (initial) {
96
- initial = false;
97
- return initial;
98
- }
99
-
100
- reload();
101
- }
102
- });
103
- })();
@@ -1,44 +0,0 @@
1
- // eslint-disable-next-line import/no-extraneous-dependencies
2
- const loglevel = require('loglevelnext/dist/loglevelnext');
3
-
4
- const { MethodFactory } = loglevel.factories;
5
- const css = {
6
- prefix:
7
- 'color: #999; padding: 0 0 0 20px; line-height: 16px; background: url(https://webpack.js.org/6bc5d8cf78d442a984e70195db059b69.svg) no-repeat; background-size: 16px 16px; background-position: 0 -2px;',
8
- reset: 'color: #444'
9
- };
10
- const log = loglevel.getLogger({ name: 'hot', id: 'hot-middleware/client' });
11
-
12
- function IconFactory(logger) {
13
- MethodFactory.call(this, logger);
14
- }
15
-
16
- IconFactory.prototype = Object.create(MethodFactory.prototype);
17
- IconFactory.prototype.constructor = IconFactory;
18
-
19
- IconFactory.prototype.make = function make(methodName) {
20
- const og = MethodFactory.prototype.make.call(this, methodName);
21
-
22
- return function _(...params) {
23
- const args = [].concat(params);
24
- const prefix = '%c「hot」 %c';
25
- const [first] = args;
26
-
27
- if (typeof first === 'string') {
28
- args[0] = prefix + first;
29
- } else {
30
- args.unshift(prefix);
31
- }
32
-
33
- args.splice(1, 0, css.prefix, css.reset);
34
- og(...args);
35
- };
36
- };
37
-
38
- log.factory = new IconFactory(log, {});
39
-
40
- log.group = console.group; // eslint-disable-line no-console
41
- log.groupCollapsed = console.groupCollapsed; // eslint-disable-line no-console
42
- log.groupEnd = console.groupEnd; // eslint-disable-line no-console
43
-
44
- module.exports = log;
@@ -1,63 +0,0 @@
1
- const url = require('url');
2
-
3
- const log = require('./log');
4
-
5
- const maxRetries = 10;
6
- let retry = maxRetries;
7
-
8
- module.exports = function connect(options, handler) {
9
- const { host } = options.webSocket;
10
- const socketUrl = url.format({
11
- protocol: options.https ? 'wss' : 'ws',
12
- hostname: host === '*' ? window.location.hostname : host,
13
- port: options.webSocket.port,
14
- slashes: true
15
- });
16
-
17
- let open = false;
18
- let socket = new WebSocket(socketUrl);
19
-
20
- socket.addEventListener('open', () => {
21
- open = true;
22
- retry = maxRetries;
23
- log.info('WebSocket connected');
24
- });
25
-
26
- socket.addEventListener('close', () => {
27
- log.warn('WebSocket closed');
28
-
29
- open = false;
30
- socket = null;
31
-
32
- // exponentation operator ** isn't supported by IE at all
33
- const timeout =
34
- // eslint-disable-next-line no-restricted-properties
35
- 1000 * Math.pow(maxRetries - retry, 2) + Math.random() * 100;
36
-
37
- if (open || retry <= 0) {
38
- log.warn(`WebSocket: ending reconnect after ${maxRetries} attempts`);
39
- return;
40
- }
41
-
42
- log.info(`WebSocket: attempting reconnect in ${parseInt(timeout / 1000, 10)}s`);
43
-
44
- setTimeout(() => {
45
- retry -= 1;
46
-
47
- connect(
48
- options,
49
- handler
50
- );
51
- }, timeout);
52
- });
53
-
54
- socket.addEventListener('message', (event) => {
55
- log.debug('WebSocket: message:', event.data);
56
-
57
- const message = JSON.parse(event.data);
58
-
59
- if (handler[message.type]) {
60
- handler[message.type](message.data);
61
- }
62
- });
63
- };
package/ormconfig.js DELETED
@@ -1,31 +0,0 @@
1
- const { orderedModuleNames, loader } = require('@things-factory/env')
2
- const { NamingStrategy } = require('@things-factory/shell')
3
-
4
- const debug = require('debug')('things-factory:shell:ormconfig')
5
-
6
- function flattenDeep(arr) {
7
- return arr.reduce((acc, val) => (Array.isArray(val) ? acc.concat(flattenDeep(val)) : acc.concat(val)), [])
8
- }
9
-
10
- /*
11
- dependencies list를 받아서, entities, migrations, subscribers 폴더 어레이를 빌드한다.
12
- */
13
- var entities = orderedModuleNames.map(dep => loader(dep).entities).filter(entity => entity && entity.length > 0)
14
- entities = flattenDeep(entities)
15
-
16
- var migrations = orderedModuleNames.map(dep => loader(dep).migrations).filter(entity => entity && entity.length > 0)
17
- migrations = flattenDeep(migrations)
18
-
19
- var subscribers = orderedModuleNames.map(dep => loader(dep).subscribers).filter(entity => entity && entity.length > 0)
20
- subscribers = flattenDeep(subscribers)
21
-
22
- debug('entities', entities)
23
- debug('migrations', migrations)
24
- debug('subscribers', subscribers)
25
-
26
- module.exports = {
27
- namingStrategy: new NamingStrategy(),
28
- entities,
29
- migrations,
30
- subscribers
31
- }