@things-factory/board-service 9.0.0-beta.25 → 9.0.0-beta.27

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 (179) hide show
  1. package/package.json +3 -3
  2. package/dist-server/constants/error-code.d.ts +0 -2
  3. package/dist-server/constants/error-code.js +0 -6
  4. package/dist-server/constants/error-code.js.map +0 -1
  5. package/dist-server/controllers/analyzer/analyze-integration.d.ts +0 -5
  6. package/dist-server/controllers/analyzer/analyze-integration.js +0 -117
  7. package/dist-server/controllers/analyzer/analyze-integration.js.map +0 -1
  8. package/dist-server/controllers/fonts.d.ts +0 -9
  9. package/dist-server/controllers/fonts.js +0 -76
  10. package/dist-server/controllers/fonts.js.map +0 -1
  11. package/dist-server/controllers/headless-model.d.ts +0 -6
  12. package/dist-server/controllers/headless-model.js +0 -55
  13. package/dist-server/controllers/headless-model.js.map +0 -1
  14. package/dist-server/controllers/headless-pdf-to-image.d.ts +0 -12
  15. package/dist-server/controllers/headless-pdf-to-image.js +0 -106
  16. package/dist-server/controllers/headless-pdf-to-image.js.map +0 -1
  17. package/dist-server/controllers/headless-playlist.d.ts +0 -5
  18. package/dist-server/controllers/headless-playlist.js +0 -71
  19. package/dist-server/controllers/headless-playlist.js.map +0 -1
  20. package/dist-server/controllers/headless-pool-for-board.d.ts +0 -1
  21. package/dist-server/controllers/headless-pool-for-board.js +0 -64
  22. package/dist-server/controllers/headless-pool-for-board.js.map +0 -1
  23. package/dist-server/controllers/headless-pool-for-label.d.ts +0 -1
  24. package/dist-server/controllers/headless-pool-for-label.js +0 -133
  25. package/dist-server/controllers/headless-pool-for-label.js.map +0 -1
  26. package/dist-server/controllers/index.d.ts +0 -34
  27. package/dist-server/controllers/index.js +0 -14
  28. package/dist-server/controllers/index.js.map +0 -1
  29. package/dist-server/controllers/label-command.d.ts +0 -19
  30. package/dist-server/controllers/label-command.js +0 -52
  31. package/dist-server/controllers/label-command.js.map +0 -1
  32. package/dist-server/controllers/pdf.d.ts +0 -9
  33. package/dist-server/controllers/pdf.js +0 -102
  34. package/dist-server/controllers/pdf.js.map +0 -1
  35. package/dist-server/controllers/screenshot.d.ts +0 -11
  36. package/dist-server/controllers/screenshot.js +0 -101
  37. package/dist-server/controllers/screenshot.js.map +0 -1
  38. package/dist-server/controllers/thumbnail.d.ts +0 -7
  39. package/dist-server/controllers/thumbnail.js +0 -16
  40. package/dist-server/controllers/thumbnail.js.map +0 -1
  41. package/dist-server/errors/index.d.ts +0 -1
  42. package/dist-server/errors/index.js +0 -5
  43. package/dist-server/errors/index.js.map +0 -1
  44. package/dist-server/errors/license-error.d.ts +0 -11
  45. package/dist-server/errors/license-error.js +0 -18
  46. package/dist-server/errors/license-error.js.map +0 -1
  47. package/dist-server/index.d.ts +0 -5
  48. package/dist-server/index.js +0 -35
  49. package/dist-server/index.js.map +0 -1
  50. package/dist-server/migrations/1556862253000-SeedGroup.d.ts +0 -5
  51. package/dist-server/migrations/1556862253000-SeedGroup.js +0 -43
  52. package/dist-server/migrations/1556862253000-SeedGroup.js.map +0 -1
  53. package/dist-server/migrations/index.d.ts +0 -1
  54. package/dist-server/migrations/index.js +0 -12
  55. package/dist-server/migrations/index.js.map +0 -1
  56. package/dist-server/routers/internal-board-view-router.d.ts +0 -1
  57. package/dist-server/routers/internal-board-view-router.js +0 -32
  58. package/dist-server/routers/internal-board-view-router.js.map +0 -1
  59. package/dist-server/routers/standalone-board-service-router.d.ts +0 -1
  60. package/dist-server/routers/standalone-board-service-router.js +0 -250
  61. package/dist-server/routers/standalone-board-service-router.js.map +0 -1
  62. package/dist-server/routes.d.ts +0 -1
  63. package/dist-server/routes.js +0 -23
  64. package/dist-server/routes.js.map +0 -1
  65. package/dist-server/service/analysis/analysis-query.d.ts +0 -3
  66. package/dist-server/service/analysis/analysis-query.js +0 -25
  67. package/dist-server/service/analysis/analysis-query.js.map +0 -1
  68. package/dist-server/service/analysis/index.d.ts +0 -2
  69. package/dist-server/service/analysis/index.js +0 -6
  70. package/dist-server/service/analysis/index.js.map +0 -1
  71. package/dist-server/service/board/board-history.d.ts +0 -28
  72. package/dist-server/service/board/board-history.js +0 -155
  73. package/dist-server/service/board/board-history.js.map +0 -1
  74. package/dist-server/service/board/board-mutation.d.ts +0 -12
  75. package/dist-server/service/board/board-mutation.js +0 -377
  76. package/dist-server/service/board/board-mutation.js.map +0 -1
  77. package/dist-server/service/board/board-query.d.ts +0 -20
  78. package/dist-server/service/board/board-query.js +0 -220
  79. package/dist-server/service/board/board-query.js.map +0 -1
  80. package/dist-server/service/board/board-subscription.d.ts +0 -6
  81. package/dist-server/service/board/board-subscription.js +0 -49
  82. package/dist-server/service/board/board-subscription.js.map +0 -1
  83. package/dist-server/service/board/board-type.d.ts +0 -24
  84. package/dist-server/service/board/board-type.js +0 -88
  85. package/dist-server/service/board/board-type.js.map +0 -1
  86. package/dist-server/service/board/board.d.ts +0 -25
  87. package/dist-server/service/board/board.js +0 -140
  88. package/dist-server/service/board/board.js.map +0 -1
  89. package/dist-server/service/board/event-subscriber.d.ts +0 -15
  90. package/dist-server/service/board/event-subscriber.js +0 -63
  91. package/dist-server/service/board/event-subscriber.js.map +0 -1
  92. package/dist-server/service/board/index.d.ts +0 -9
  93. package/dist-server/service/board/index.js +0 -13
  94. package/dist-server/service/board/index.js.map +0 -1
  95. package/dist-server/service/board-favorite/board-favorite-query.d.ts +0 -5
  96. package/dist-server/service/board-favorite/board-favorite-query.js +0 -56
  97. package/dist-server/service/board-favorite/board-favorite-query.js.map +0 -1
  98. package/dist-server/service/board-favorite/board-favorite-type.d.ts +0 -8
  99. package/dist-server/service/board-favorite/board-favorite-type.js +0 -31
  100. package/dist-server/service/board-favorite/board-favorite-type.js.map +0 -1
  101. package/dist-server/service/board-favorite/index.d.ts +0 -3
  102. package/dist-server/service/board-favorite/index.js +0 -7
  103. package/dist-server/service/board-favorite/index.js.map +0 -1
  104. package/dist-server/service/board-template/board-template-mutation.d.ts +0 -8
  105. package/dist-server/service/board-template/board-template-mutation.js +0 -146
  106. package/dist-server/service/board-template/board-template-mutation.js.map +0 -1
  107. package/dist-server/service/board-template/board-template-query.d.ts +0 -13
  108. package/dist-server/service/board-template/board-template-query.js +0 -147
  109. package/dist-server/service/board-template/board-template-query.js.map +0 -1
  110. package/dist-server/service/board-template/board-template-type.d.ts +0 -21
  111. package/dist-server/service/board-template/board-template-type.js +0 -81
  112. package/dist-server/service/board-template/board-template-type.js.map +0 -1
  113. package/dist-server/service/board-template/board-template.d.ts +0 -23
  114. package/dist-server/service/board-template/board-template.js +0 -123
  115. package/dist-server/service/board-template/board-template.js.map +0 -1
  116. package/dist-server/service/board-template/index.d.ts +0 -6
  117. package/dist-server/service/board-template/index.js +0 -10
  118. package/dist-server/service/board-template/index.js.map +0 -1
  119. package/dist-server/service/group/group-mutation.d.ts +0 -8
  120. package/dist-server/service/group/group-mutation.js +0 -89
  121. package/dist-server/service/group/group-mutation.js.map +0 -1
  122. package/dist-server/service/group/group-query.d.ts +0 -13
  123. package/dist-server/service/group/group-query.js +0 -92
  124. package/dist-server/service/group/group-query.js.map +0 -1
  125. package/dist-server/service/group/group-type.d.ts +0 -13
  126. package/dist-server/service/group/group-type.js +0 -49
  127. package/dist-server/service/group/group-type.js.map +0 -1
  128. package/dist-server/service/group/group.d.ts +0 -17
  129. package/dist-server/service/group/group.js +0 -77
  130. package/dist-server/service/group/group.js.map +0 -1
  131. package/dist-server/service/group/index.d.ts +0 -5
  132. package/dist-server/service/group/index.js +0 -9
  133. package/dist-server/service/group/index.js.map +0 -1
  134. package/dist-server/service/index.d.ts +0 -10
  135. package/dist-server/service/index.js +0 -49
  136. package/dist-server/service/index.js.map +0 -1
  137. package/dist-server/service/permission/domain-permission-subscriber.d.ts +0 -9
  138. package/dist-server/service/permission/domain-permission-subscriber.js +0 -30
  139. package/dist-server/service/permission/domain-permission-subscriber.js.map +0 -1
  140. package/dist-server/service/permission/index.d.ts +0 -2
  141. package/dist-server/service/permission/index.js +0 -6
  142. package/dist-server/service/permission/index.js.map +0 -1
  143. package/dist-server/service/play-group/event-subscriber.d.ts +0 -6
  144. package/dist-server/service/play-group/event-subscriber.js +0 -58
  145. package/dist-server/service/play-group/event-subscriber.js.map +0 -1
  146. package/dist-server/service/play-group/index.d.ts +0 -8
  147. package/dist-server/service/play-group/index.js +0 -12
  148. package/dist-server/service/play-group/index.js.map +0 -1
  149. package/dist-server/service/play-group/play-group-mutation.d.ts +0 -10
  150. package/dist-server/service/play-group/play-group-mutation.js +0 -146
  151. package/dist-server/service/play-group/play-group-mutation.js.map +0 -1
  152. package/dist-server/service/play-group/play-group-query.d.ts +0 -14
  153. package/dist-server/service/play-group/play-group-query.js +0 -129
  154. package/dist-server/service/play-group/play-group-query.js.map +0 -1
  155. package/dist-server/service/play-group/play-group-subscription.d.ts +0 -6
  156. package/dist-server/service/play-group/play-group-subscription.js +0 -49
  157. package/dist-server/service/play-group/play-group-subscription.js.map +0 -1
  158. package/dist-server/service/play-group/play-group-type.d.ts +0 -13
  159. package/dist-server/service/play-group/play-group-type.js +0 -49
  160. package/dist-server/service/play-group/play-group-type.js.map +0 -1
  161. package/dist-server/service/play-group/play-group.d.ts +0 -18
  162. package/dist-server/service/play-group/play-group.js +0 -82
  163. package/dist-server/service/play-group/play-group.js.map +0 -1
  164. package/dist-server/service/theme/index.d.ts +0 -6
  165. package/dist-server/service/theme/index.js +0 -10
  166. package/dist-server/service/theme/index.js.map +0 -1
  167. package/dist-server/service/theme/theme-mutation.d.ts +0 -10
  168. package/dist-server/service/theme/theme-mutation.js +0 -125
  169. package/dist-server/service/theme/theme-mutation.js.map +0 -1
  170. package/dist-server/service/theme/theme-query.d.ts +0 -11
  171. package/dist-server/service/theme/theme-query.js +0 -79
  172. package/dist-server/service/theme/theme-query.js.map +0 -1
  173. package/dist-server/service/theme/theme-type.d.ts +0 -21
  174. package/dist-server/service/theme/theme-type.js +0 -82
  175. package/dist-server/service/theme/theme-type.js.map +0 -1
  176. package/dist-server/service/theme/theme.d.ts +0 -25
  177. package/dist-server/service/theme/theme.js +0 -101
  178. package/dist-server/service/theme/theme.js.map +0 -1
  179. package/dist-server/tsconfig.tsbuildinfo +0 -1
@@ -1,5 +0,0 @@
1
- export * from './service/index.js';
2
- export * from './migrations/index.js';
3
- export * from './controllers/index.js';
4
- import './routes.js';
5
- export declare function initMiddlewares(app: any): void;
@@ -1,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.initMiddlewares = initMiddlewares;
4
- const tslib_1 = require("tslib");
5
- tslib_1.__exportStar(require("./service/index.js"), exports);
6
- tslib_1.__exportStar(require("./migrations/index.js"), exports);
7
- tslib_1.__exportStar(require("./controllers/index.js"), exports);
8
- require("./routes.js");
9
- const operato_license_checker_1 = require("@things-factory/operato-license-checker");
10
- function initMiddlewares(app) {
11
- const licensedPermissions = ((0, operato_license_checker_1.getPermission)('Permissions For Board Usage') || 'Modeller, Viewer')
12
- .split(',')
13
- .map(p => p.trim());
14
- const prohibited = !licensedPermissions.includes('Modeller') && [
15
- {
16
- privilege: 'mutation',
17
- category: 'board'
18
- },
19
- {
20
- privilege: 'mutation',
21
- category: 'board-template'
22
- }
23
- ];
24
- /*
25
- * board-permission을 prohibitedPrivileges에 반영한다.
26
- */
27
- app.use(async (context, next) => {
28
- if (prohibited) {
29
- const { prohibitedPrivileges } = context.state;
30
- context.state.prohibitedPrivileges = [...(prohibitedPrivileges || []), ...prohibited];
31
- }
32
- await next();
33
- });
34
- }
35
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../server/index.ts"],"names":[],"mappings":";;AAQA,0CA2BC;;AAnCD,6DAAkC;AAClC,gEAAqC;AACrC,iEAAsC;AAEtC,uBAAoB;AAEpB,qFAAuE;AAEvE,SAAgB,eAAe,CAAC,GAAG;IACjC,MAAM,mBAAmB,GAAG,CAAC,IAAA,uCAAa,EAAC,6BAA6B,CAAC,IAAI,kBAAkB,CAAC;SAC7F,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;IAErB,MAAM,UAAU,GAAG,CAAC,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI;QAC9D;YACE,SAAS,EAAE,UAAU;YACrB,QAAQ,EAAE,OAAO;SAClB;QACD;YACE,SAAS,EAAE,UAAU;YACrB,QAAQ,EAAE,gBAAgB;SAC3B;KACF,CAAA;IAED;;OAEG;IACH,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC9B,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;YAE9C,OAAO,CAAC,KAAK,CAAC,oBAAoB,GAAG,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE,CAAC,EAAE,GAAG,UAAU,CAAC,CAAA;QACvF,CAAC;QACD,MAAM,IAAI,EAAE,CAAA;IACd,CAAC,CAAC,CAAA;AACJ,CAAC","sourcesContent":["export * from './service/index.js'\nexport * from './migrations/index.js'\nexport * from './controllers/index.js'\n\nimport './routes.js'\n\nimport { getPermission } from '@things-factory/operato-license-checker'\n\nexport function initMiddlewares(app) {\n const licensedPermissions = (getPermission('Permissions For Board Usage') || 'Modeller, Viewer')\n .split(',')\n .map(p => p.trim())\n\n const prohibited = !licensedPermissions.includes('Modeller') && [\n {\n privilege: 'mutation',\n category: 'board'\n },\n {\n privilege: 'mutation',\n category: 'board-template'\n }\n ]\n\n /*\n * board-permission을 prohibitedPrivileges에 반영한다.\n */\n app.use(async (context, next) => {\n if (prohibited) {\n const { prohibitedPrivileges } = context.state\n\n context.state.prohibitedPrivileges = [...(prohibitedPrivileges || []), ...prohibited]\n }\n await next()\n })\n}\n"]}
@@ -1,5 +0,0 @@
1
- import { MigrationInterface, QueryRunner } from 'typeorm';
2
- export declare class SeedGroup1556862253000 implements MigrationInterface {
3
- up(queryRunner: QueryRunner): Promise<any>;
4
- down(queryRunner: QueryRunner): Promise<any>;
5
- }
@@ -1,43 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SeedGroup1556862253000 = void 0;
4
- const env_1 = require("@things-factory/env");
5
- const shell_1 = require("@things-factory/shell");
6
- const group_js_1 = require("../service/group/group.js");
7
- const SEED_GROUP = [
8
- {
9
- name: 'DASHBOARD',
10
- description: 'Dashboard'
11
- }
12
- ];
13
- class SeedGroup1556862253000 {
14
- async up(queryRunner) {
15
- const repository = (0, shell_1.getRepository)(group_js_1.Group);
16
- const domainRepository = (0, shell_1.getRepository)(shell_1.Domain);
17
- const domain = await domainRepository.findOneBy({ name: 'SYSTEM' });
18
- try {
19
- return await Promise.all(SEED_GROUP.map(async (group) => {
20
- await repository.save(Object.assign(Object.assign({}, group), { domain }));
21
- }));
22
- }
23
- catch (e) {
24
- env_1.logger.error(e);
25
- }
26
- }
27
- async down(queryRunner) {
28
- const repository = (0, shell_1.getRepository)(group_js_1.Group);
29
- const domainRepository = (0, shell_1.getRepository)(shell_1.Domain);
30
- const domain = await domainRepository.findOneBy({ name: 'SYSTEM' });
31
- SEED_GROUP.reverse().forEach(async (group) => {
32
- let record = await repository.findOne({
33
- where: {
34
- domain: { id: domain.id },
35
- name: group.name
36
- }
37
- });
38
- await repository.remove(record);
39
- });
40
- }
41
- }
42
- exports.SeedGroup1556862253000 = SeedGroup1556862253000;
43
- //# sourceMappingURL=1556862253000-SeedGroup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"1556862253000-SeedGroup.js","sourceRoot":"","sources":["../../server/migrations/1556862253000-SeedGroup.ts"],"names":[],"mappings":";;;AAEA,6CAA4C;AAC5C,iDAA6D;AAE7D,wDAAiD;AAEjD,MAAM,UAAU,GAAG;IACjB;QACE,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,WAAW;KACzB;CACF,CAAA;AAED,MAAa,sBAAsB;IAC1B,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,MAAM,UAAU,GAAG,IAAA,qBAAa,EAAC,gBAAK,CAAC,CAAA;QACvC,MAAM,gBAAgB,GAAG,IAAA,qBAAa,EAAC,cAAM,CAAC,CAAA;QAC9C,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;QAEnE,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,GAAG,CACtB,UAAU,CAAC,GAAG,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;gBAC3B,MAAM,UAAU,CAAC,IAAI,iCAChB,KAAK,KACR,MAAM,IACN,CAAA;YACJ,CAAC,CAAC,CACH,CAAA;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,YAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,MAAM,UAAU,GAAG,IAAA,qBAAa,EAAC,gBAAK,CAAC,CAAA;QACvC,MAAM,gBAAgB,GAAG,IAAA,qBAAa,EAAC,cAAM,CAAC,CAAA;QAC9C,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;QAEnE,UAAU,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;YACzC,IAAI,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;gBACpC,KAAK,EAAE;oBACL,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;oBACzB,IAAI,EAAE,KAAK,CAAC,IAAI;iBACjB;aACF,CAAC,CAAA;YAEF,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACjC,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AApCD,wDAoCC","sourcesContent":["import { MigrationInterface, QueryRunner } from 'typeorm'\n\nimport { logger } from '@things-factory/env'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { Group } from '../service/group/group.js'\n\nconst SEED_GROUP = [\n {\n name: 'DASHBOARD',\n description: 'Dashboard'\n }\n]\n\nexport class SeedGroup1556862253000 implements MigrationInterface {\n public async up(queryRunner: QueryRunner): Promise<any> {\n const repository = getRepository(Group)\n const domainRepository = getRepository(Domain)\n const domain = await domainRepository.findOneBy({ name: 'SYSTEM' })\n\n try {\n return await Promise.all(\n SEED_GROUP.map(async group => {\n await repository.save({\n ...group,\n domain\n })\n })\n )\n } catch (e) {\n logger.error(e)\n }\n }\n\n public async down(queryRunner: QueryRunner): Promise<any> {\n const repository = getRepository(Group)\n const domainRepository = getRepository(Domain)\n const domain = await domainRepository.findOneBy({ name: 'SYSTEM' })\n\n SEED_GROUP.reverse().forEach(async group => {\n let record = await repository.findOne({\n where: {\n domain: { id: domain.id },\n name: group.name\n }\n })\n\n await repository.remove(record)\n })\n }\n}\n"]}
@@ -1 +0,0 @@
1
- export declare var migrations: any[];
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.migrations = void 0;
4
- const glob = require('glob');
5
- const path = require('path');
6
- exports.migrations = [];
7
- glob.sync(path.resolve(__dirname, '.', '**', '*.js')).forEach(function (file) {
8
- if (file.indexOf('index.js') !== -1)
9
- return;
10
- exports.migrations = exports.migrations.concat(Object.values(require(path.resolve(file))) || []);
11
- });
12
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/migrations/index.ts"],"names":[],"mappings":";;;AAAA,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAEjB,QAAA,UAAU,GAAG,EAAE,CAAA;AAE1B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,UAAS,IAAI;IACzE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAAE,OAAM;IAC3C,kBAAU,GAAG,kBAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;AAClF,CAAC,CAAC,CAAA","sourcesContent":["const glob = require('glob')\nconst path = require('path')\n\nexport var migrations = []\n\nglob.sync(path.resolve(__dirname, '.', '**', '*.js')).forEach(function(file) {\n if (file.indexOf('index.js') !== -1) return\n migrations = migrations.concat(Object.values(require(path.resolve(file))) || [])\n})\n"]}
@@ -1 +0,0 @@
1
- export declare const internalBoardViewRouter: any;
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.internalBoardViewRouter = void 0;
4
- const tslib_1 = require("tslib");
5
- const koa_router_1 = tslib_1.__importDefault(require("koa-router"));
6
- exports.internalBoardViewRouter = new koa_router_1.default();
7
- function parseQuery(query) {
8
- for (const key in query) {
9
- if (query.hasOwnProperty(key)) {
10
- try {
11
- query[key] = JSON.parse(query[key]);
12
- }
13
- catch (error) {
14
- // do nothing
15
- }
16
- }
17
- }
18
- return query;
19
- }
20
- // should be used only for building label command by headless chrome internally
21
- exports.internalBoardViewRouter.post('/internal-label-command-view', async (context, next) => {
22
- let model = context.request.body;
23
- let data = context.query;
24
- await context.render('internal-label-command-view', { model, data });
25
- });
26
- // should be used only for building board service by headless chrome internally
27
- exports.internalBoardViewRouter.post('/internal-board-service-view', async (context, next) => {
28
- let { id, model, base } = context.request.body;
29
- const data = parseQuery(Object.assign({}, context.query));
30
- await context.render('internal-board-service-view', { id, model, data, base });
31
- });
32
- //# sourceMappingURL=internal-board-view-router.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"internal-board-view-router.js","sourceRoot":"","sources":["../../server/routers/internal-board-view-router.ts"],"names":[],"mappings":";;;;AAAA,oEAA+B;AAElB,QAAA,uBAAuB,GAAG,IAAI,oBAAM,EAAE,CAAA;AAEnD,SAAS,UAAU,CAAC,KAAK;IACvB,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;YACrC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,aAAa;YACf,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED,+EAA+E;AAC/E,+BAAuB,CAAC,IAAI,CAAC,8BAA8B,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACnF,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAA;IAChC,IAAI,IAAI,GAAG,OAAO,CAAC,KAAK,CAAA;IAExB,MAAM,OAAO,CAAC,MAAM,CAAC,6BAA6B,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;AACtE,CAAC,CAAC,CAAA;AAEF,+EAA+E;AAC/E,+BAAuB,CAAC,IAAI,CAAC,8BAA8B,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACnF,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAA;IAC9C,MAAM,IAAI,GAAG,UAAU,mBAAM,OAAO,CAAC,KAAK,EAAG,CAAA;IAE7C,MAAM,OAAO,CAAC,MAAM,CAAC,6BAA6B,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;AAChF,CAAC,CAAC,CAAA","sourcesContent":["import Router from 'koa-router'\n\nexport const internalBoardViewRouter = new Router()\n\nfunction parseQuery(query) {\n for (const key in query) {\n if (query.hasOwnProperty(key)) {\n try {\n query[key] = JSON.parse(query[key])\n } catch (error) {\n // do nothing\n }\n }\n }\n\n return query\n}\n\n// should be used only for building label command by headless chrome internally\ninternalBoardViewRouter.post('/internal-label-command-view', async (context, next) => {\n let model = context.request.body\n let data = context.query\n\n await context.render('internal-label-command-view', { model, data })\n})\n\n// should be used only for building board service by headless chrome internally\ninternalBoardViewRouter.post('/internal-board-service-view', async (context, next) => {\n let { id, model, base } = context.request.body\n const data = parseQuery({ ...context.query })\n\n await context.render('internal-board-service-view', { id, model, data, base })\n})\n"]}
@@ -1 +0,0 @@
1
- export declare const standaloneBoardServiceRouter: any;
@@ -1,250 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.standaloneBoardServiceRouter = void 0;
4
- const tslib_1 = require("tslib");
5
- const content_disposition_1 = tslib_1.__importDefault(require("content-disposition"));
6
- const koa_router_1 = tslib_1.__importDefault(require("koa-router"));
7
- const auth_base_1 = require("@things-factory/auth-base");
8
- const shell_1 = require("@things-factory/shell");
9
- const fonts_js_1 = require("../controllers/fonts.js");
10
- const headless_model_js_1 = require("../controllers/headless-model.js");
11
- const headless_playlist_js_1 = require("../controllers/headless-playlist.js");
12
- const label_command_js_1 = require("../controllers/label-command.js");
13
- const pdf_js_1 = require("../controllers/pdf.js");
14
- const screenshot_js_1 = require("../controllers/screenshot.js");
15
- const board_js_1 = require("../service/board/board.js");
16
- const board_template_js_1 = require("../service/board-template/board-template.js");
17
- exports.standaloneBoardServiceRouter = new koa_router_1.default();
18
- function parseQuery(query) {
19
- for (const key in query) {
20
- if (query.hasOwnProperty(key)) {
21
- try {
22
- query[key] = JSON.parse(query[key]);
23
- }
24
- catch (error) {
25
- // do nothing
26
- }
27
- }
28
- }
29
- return query;
30
- }
31
- // for board headless-full
32
- exports.standaloneBoardServiceRouter.get('/headless-full/:id', async (context, next) => {
33
- const { domain, user } = context.state;
34
- if (!(await auth_base_1.User.hasPrivilege('query', 'board', domain, user))) {
35
- context.status = 403;
36
- return;
37
- }
38
- const { id } = context.params;
39
- const { model, base } = await (0, headless_model_js_1.headlessModel)({ domain, id });
40
- const [fontsToUse, fontStyles] = await (0, fonts_js_1.fonts)(domain);
41
- model.fonts = fontsToUse;
42
- model.fontStyles = fontStyles;
43
- (0, auth_base_1.setAccessTokenCookie)(context, await user.sign({ domain }));
44
- const data = parseQuery(Object.assign({}, context.query));
45
- delete data.access_token;
46
- await context.render('internal-board-full-feature-view', { id, model, data, base });
47
- });
48
- // for board headless-full-by-name
49
- exports.standaloneBoardServiceRouter.get('/headless-full-by-name/:name', async (context, next) => {
50
- const { domain, user } = context.state;
51
- if (!(await auth_base_1.User.hasPrivilege('query', 'board', domain, user))) {
52
- context.status = 403;
53
- return;
54
- }
55
- const { name } = context.params;
56
- const { model, base, board } = await (0, headless_model_js_1.headlessModel)({ domain, name });
57
- const [fontsToUse, fontStyles] = await (0, fonts_js_1.fonts)(domain);
58
- model.fonts = fontsToUse;
59
- model.fontStyles = fontStyles;
60
- (0, auth_base_1.setAccessTokenCookie)(context, await user.sign({ domain }));
61
- const data = parseQuery(Object.assign({}, context.query));
62
- delete data.access_token;
63
- await context.render('internal-board-full-feature-view', { id: board === null || board === void 0 ? void 0 : board.id, model, data, base });
64
- });
65
- // for board headless
66
- exports.standaloneBoardServiceRouter.get('/headless/:id', async (context, next) => {
67
- const { domain, user } = context.state;
68
- if (!(await auth_base_1.User.hasPrivilege('query', 'board', domain, user))) {
69
- context.status = 403;
70
- return;
71
- }
72
- const { id } = context.params;
73
- const { model, base } = await (0, headless_model_js_1.headlessModel)({ domain, id });
74
- const [fontsToUse, fontStyles] = await (0, fonts_js_1.fonts)(domain);
75
- model.fonts = fontsToUse;
76
- model.fontStyles = fontStyles;
77
- (0, auth_base_1.setAccessTokenCookie)(context, await user.sign({ domain }));
78
- const data = parseQuery(Object.assign({}, context.query));
79
- delete data.access_token;
80
- await context.render('internal-board-service-view', { id, model, data, base });
81
- });
82
- // for board headless by name
83
- exports.standaloneBoardServiceRouter.get('/headless-by-name/:name', async (context, next) => {
84
- const { domain, user } = context.state;
85
- if (!(await auth_base_1.User.hasPrivilege('query', 'board', domain, user))) {
86
- context.status = 403;
87
- return;
88
- }
89
- const { name } = context.params;
90
- const { model, base, board } = await (0, headless_model_js_1.headlessModel)({ domain, name });
91
- const [fontsToUse, fontStyles] = await (0, fonts_js_1.fonts)(domain);
92
- model.fonts = fontsToUse;
93
- model.fontStyles = fontStyles;
94
- (0, auth_base_1.setAccessTokenCookie)(context, await user.sign({ domain }));
95
- const data = parseQuery(Object.assign({}, context.query));
96
- delete data.access_token;
97
- await context.render('internal-board-service-view', { id: board === null || board === void 0 ? void 0 : board.id, model, data, base });
98
- });
99
- // for board player
100
- exports.standaloneBoardServiceRouter.get('/headless-player/:id', async (context, next) => {
101
- const { domain, user } = context.state;
102
- if (!(await auth_base_1.User.hasPrivilege('query', 'board', domain, user))) {
103
- context.status = 403;
104
- return;
105
- }
106
- const { id } = context.params;
107
- const { playGroup, base } = await (0, headless_playlist_js_1.headlessPlaylist)({ domain, id });
108
- const [fontsToUse, fontStyles] = await (0, fonts_js_1.fonts)(domain);
109
- (0, auth_base_1.setAccessTokenCookie)(context, await user.sign({ domain }));
110
- const data = parseQuery(Object.assign({}, context.query));
111
- delete data.access_token;
112
- await context.render('internal-board-player-view', {
113
- id,
114
- model: {
115
- boards: playGroup === null || playGroup === void 0 ? void 0 : playGroup.boards,
116
- fonts: fontsToUse,
117
- fontStyles: fontStyles
118
- },
119
- data,
120
- base
121
- });
122
- });
123
- // for board player by name
124
- exports.standaloneBoardServiceRouter.get('/headless-player-by-name/:name', async (context, next) => {
125
- const { domain, user } = context.state;
126
- if (!(await auth_base_1.User.hasPrivilege('query', 'board', domain, user))) {
127
- context.status = 403;
128
- return;
129
- }
130
- const { name } = context.params;
131
- const { playGroup, base } = await (0, headless_playlist_js_1.headlessPlaylist)({ domain, name });
132
- const [fontsToUse, fontStyles] = await (0, fonts_js_1.fonts)(domain);
133
- (0, auth_base_1.setAccessTokenCookie)(context, await user.sign({ domain }));
134
- const data = parseQuery(Object.assign({}, context.query));
135
- delete data.access_token;
136
- await context.render('internal-board-player-view', {
137
- id: playGroup === null || playGroup === void 0 ? void 0 : playGroup.id,
138
- model: {
139
- boards: playGroup === null || playGroup === void 0 ? void 0 : playGroup.boards,
140
- fonts: fontsToUse,
141
- fontStyles: fontStyles
142
- },
143
- data,
144
- base
145
- });
146
- });
147
- // for board thumbnail
148
- exports.standaloneBoardServiceRouter.get('/thumbnail/:id', async (context, next) => {
149
- const { domain, user } = context.state;
150
- if (!(await auth_base_1.User.hasPrivilege('query', 'board', domain, user))) {
151
- context.status = 403;
152
- return;
153
- }
154
- const { id } = context.params;
155
- const { name, thumbnail } = (await (0, shell_1.getRepository)(board_js_1.Board).findOneBy({ domain: { id: domain.id }, id })) || {};
156
- if (thumbnail) {
157
- const index = thumbnail.indexOf(';base64,');
158
- const base64 = thumbnail.substring(index + 8);
159
- const buffer = Buffer.from(base64, 'base64');
160
- context.type = 'image/png';
161
- context.set('Content-Disposition', (0, content_disposition_1.default)(`thumbnail-${name}.png`));
162
- context.body = buffer;
163
- }
164
- else {
165
- context.throw(404, 'thumbnail not found');
166
- }
167
- });
168
- // for board-template thumbnail
169
- exports.standaloneBoardServiceRouter.get('/board-template-thumbnail/:id', async (context, next) => {
170
- const { domain, user } = context.state;
171
- if (!(await auth_base_1.User.hasPrivilege('query', 'board-template', domain, user))) {
172
- context.status = 403;
173
- return;
174
- }
175
- const { id } = context.params;
176
- const { name, thumbnail } = (await (0, shell_1.getRepository)(board_template_js_1.BoardTemplate).findOneBy({ domain: { id: domain.id }, id })) || {};
177
- if (thumbnail) {
178
- const index = thumbnail.indexOf(';base64,');
179
- const base64 = thumbnail.substring(index + 8);
180
- const buffer = Buffer.from(base64, 'base64');
181
- context.type = 'image/png';
182
- context.set('Content-Disposition', (0, content_disposition_1.default)(`thumbnail-${name}.png`));
183
- context.body = buffer;
184
- }
185
- else {
186
- context.throw(404, 'thumbnail not found');
187
- }
188
- });
189
- // for webpage scrap
190
- exports.standaloneBoardServiceRouter.get('/screenshot/:id', async (context, next) => {
191
- const { domain, user } = context.state;
192
- if (!(await auth_base_1.User.hasPrivilege('query', 'board', domain, user))) {
193
- context.status = 403;
194
- return;
195
- }
196
- const { id } = context.params;
197
- const { model, board } = await (0, headless_model_js_1.headlessModel)({ domain, id });
198
- const data = parseQuery(Object.assign({}, context.query));
199
- delete data.access_token;
200
- context.type = 'image/png';
201
- context.set('Content-Disposition', (0, content_disposition_1.default)(`${board.name}.png`));
202
- context.body = await (0, screenshot_js_1.screenshot)({ id, model, data, options: { encoding: 'binary', type: 'png' }, context });
203
- });
204
- // for webpage scrap
205
- exports.standaloneBoardServiceRouter.get('/board/pdf/:id', async (context, next) => {
206
- const { domain, user } = context.state;
207
- if (!(await auth_base_1.User.hasPrivilege('query', 'board', domain, user))) {
208
- context.status = 403;
209
- return;
210
- }
211
- const { id } = context.params;
212
- const { model, board } = await (0, headless_model_js_1.headlessModel)({ domain, id });
213
- const data = parseQuery(Object.assign({}, context.query));
214
- delete data.access_token;
215
- const result = await (0, pdf_js_1.pdf)({
216
- id,
217
- model,
218
- data,
219
- options: {
220
- format: 'A4'
221
- },
222
- context
223
- });
224
- context.type = 'application/pdf';
225
- context.set('Content-Disposition', (0, content_disposition_1.default)(`${board.name}.pdf`));
226
- context.body = result;
227
- });
228
- // for webpage scrap => zpl image print(grf format) command for released version board
229
- exports.standaloneBoardServiceRouter.get('/label-command/:id', async (context, next) => {
230
- const { id } = context.params;
231
- const data = context.query;
232
- delete data.access_token;
233
- const orientation = data && data.orientation;
234
- const mirror = data && data.mirror;
235
- const upsideDown = data && data.upsideDown;
236
- context.type = 'text/plain';
237
- context.body = await (0, label_command_js_1.labelcommand)({ id, data, orientation, mirror, upsideDown, context });
238
- });
239
- // for webpage scrap => zpl image print(grf format) command for draft version board
240
- exports.standaloneBoardServiceRouter.get('/label-command-draft/:id', async (context, next) => {
241
- const { id } = context.params;
242
- const data = context.query;
243
- delete data.access_token;
244
- const orientation = data && data.orientation;
245
- const mirror = data && data.mirror;
246
- const upsideDown = data && data.upsideDown;
247
- context.type = 'text/plain';
248
- context.body = await (0, label_command_js_1.labelcommand)({ id, data, orientation, mirror, upsideDown, context, draft: true });
249
- });
250
- //# sourceMappingURL=standalone-board-service-router.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"standalone-board-service-router.js","sourceRoot":"","sources":["../../server/routers/standalone-board-service-router.ts"],"names":[],"mappings":"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","sourcesContent":["import contentDisposition from 'content-disposition'\nimport Router from 'koa-router'\n\nimport { User, setAccessTokenCookie } from '@things-factory/auth-base'\nimport { getRepository } from '@things-factory/shell'\n\nimport { fonts } from '../controllers/fonts.js'\nimport { headlessModel } from '../controllers/headless-model.js'\nimport { headlessPlaylist } from '../controllers/headless-playlist.js'\nimport { labelcommand } from '../controllers/label-command.js'\nimport { pdf } from '../controllers/pdf.js'\nimport { screenshot } from '../controllers/screenshot.js'\nimport { Board } from '../service/board/board.js'\nimport { BoardTemplate } from '../service/board-template/board-template.js'\n\nexport const standaloneBoardServiceRouter = new Router()\n\nfunction parseQuery(query) {\n for (const key in query) {\n if (query.hasOwnProperty(key)) {\n try {\n query[key] = JSON.parse(query[key])\n } catch (error) {\n // do nothing\n }\n }\n }\n\n return query\n}\n\n// for board headless-full\nstandaloneBoardServiceRouter.get('/headless-full/:id', async (context, next) => {\n const { domain, user } = context.state\n\n if (!(await User.hasPrivilege('query', 'board', domain, user))) {\n context.status = 403\n return\n }\n\n const { id } = context.params\n\n const { model, base } = await headlessModel({ domain, id })\n const [fontsToUse, fontStyles] = await fonts(domain)\n\n model.fonts = fontsToUse\n model.fontStyles = fontStyles\n\n setAccessTokenCookie(context, await user.sign({ domain }))\n\n const data = parseQuery({ ...context.query })\n delete data.access_token\n\n await context.render('internal-board-full-feature-view', { id, model, data, base })\n})\n\n// for board headless-full-by-name\nstandaloneBoardServiceRouter.get('/headless-full-by-name/:name', async (context, next) => {\n const { domain, user } = context.state\n\n if (!(await User.hasPrivilege('query', 'board', domain, user))) {\n context.status = 403\n return\n }\n\n const { name } = context.params\n\n const { model, base, board } = await headlessModel({ domain, name })\n const [fontsToUse, fontStyles] = await fonts(domain)\n\n model.fonts = fontsToUse\n model.fontStyles = fontStyles\n\n setAccessTokenCookie(context, await user.sign({ domain }))\n\n const data = parseQuery({ ...context.query })\n delete data.access_token\n\n await context.render('internal-board-full-feature-view', { id: board?.id, model, data, base })\n})\n\n// for board headless\nstandaloneBoardServiceRouter.get('/headless/:id', async (context, next) => {\n const { domain, user } = context.state\n\n if (!(await User.hasPrivilege('query', 'board', domain, user))) {\n context.status = 403\n return\n }\n\n const { id } = context.params\n\n const { model, base } = await headlessModel({ domain, id })\n const [fontsToUse, fontStyles] = await fonts(domain)\n\n model.fonts = fontsToUse\n model.fontStyles = fontStyles\n\n setAccessTokenCookie(context, await user.sign({ domain }))\n\n const data = parseQuery({ ...context.query })\n delete data.access_token\n\n await context.render('internal-board-service-view', { id, model, data, base })\n})\n\n// for board headless by name\nstandaloneBoardServiceRouter.get('/headless-by-name/:name', async (context, next) => {\n const { domain, user } = context.state\n\n if (!(await User.hasPrivilege('query', 'board', domain, user))) {\n context.status = 403\n return\n }\n\n const { name } = context.params\n\n const { model, base, board } = await headlessModel({ domain, name })\n const [fontsToUse, fontStyles] = await fonts(domain)\n\n model.fonts = fontsToUse\n model.fontStyles = fontStyles\n\n setAccessTokenCookie(context, await user.sign({ domain }))\n\n const data = parseQuery({ ...context.query })\n delete data.access_token\n\n await context.render('internal-board-service-view', { id: board?.id, model, data, base })\n})\n\n// for board player\nstandaloneBoardServiceRouter.get('/headless-player/:id', async (context, next) => {\n const { domain, user } = context.state\n\n if (!(await User.hasPrivilege('query', 'board', domain, user))) {\n context.status = 403\n return\n }\n\n const { id } = context.params\n\n const { playGroup, base } = await headlessPlaylist({ domain, id })\n const [fontsToUse, fontStyles] = await fonts(domain)\n\n setAccessTokenCookie(context, await user.sign({ domain }))\n\n const data = parseQuery({ ...context.query })\n delete data.access_token\n\n await context.render('internal-board-player-view', {\n id,\n model: {\n boards: playGroup?.boards,\n fonts: fontsToUse,\n fontStyles: fontStyles\n },\n data,\n base\n })\n})\n\n// for board player by name\nstandaloneBoardServiceRouter.get('/headless-player-by-name/:name', async (context, next) => {\n const { domain, user } = context.state\n\n if (!(await User.hasPrivilege('query', 'board', domain, user))) {\n context.status = 403\n return\n }\n\n const { name } = context.params\n\n const { playGroup, base } = await headlessPlaylist({ domain, name })\n const [fontsToUse, fontStyles] = await fonts(domain)\n\n setAccessTokenCookie(context, await user.sign({ domain }))\n\n const data = parseQuery({ ...context.query })\n delete data.access_token\n\n await context.render('internal-board-player-view', {\n id: playGroup?.id,\n model: {\n boards: playGroup?.boards,\n fonts: fontsToUse,\n fontStyles: fontStyles\n },\n data,\n base\n })\n})\n\n// for board thumbnail\nstandaloneBoardServiceRouter.get('/thumbnail/:id', async (context, next) => {\n const { domain, user } = context.state\n\n if (!(await User.hasPrivilege('query', 'board', domain, user))) {\n context.status = 403\n return\n }\n\n const { id } = context.params\n\n const { name, thumbnail } = (await getRepository(Board).findOneBy({ domain: { id: domain.id }, id })) || {}\n\n if (thumbnail) {\n const index = thumbnail.indexOf(';base64,')\n const base64 = thumbnail.substring(index + 8)\n const buffer = Buffer.from(base64, 'base64')\n\n context.type = 'image/png'\n context.set('Content-Disposition', contentDisposition(`thumbnail-${name}.png`))\n context.body = buffer\n } else {\n context.throw(404, 'thumbnail not found')\n }\n})\n\n// for board-template thumbnail\nstandaloneBoardServiceRouter.get('/board-template-thumbnail/:id', async (context, next) => {\n const { domain, user } = context.state\n\n if (!(await User.hasPrivilege('query', 'board-template', domain, user))) {\n context.status = 403\n return\n }\n\n const { id } = context.params\n\n const { name, thumbnail } = (await getRepository(BoardTemplate).findOneBy({ domain: { id: domain.id }, id })) || {}\n\n if (thumbnail) {\n const index = thumbnail.indexOf(';base64,')\n const base64 = thumbnail.substring(index + 8)\n const buffer = Buffer.from(base64, 'base64')\n\n context.type = 'image/png'\n context.set('Content-Disposition', contentDisposition(`thumbnail-${name}.png`))\n context.body = buffer\n } else {\n context.throw(404, 'thumbnail not found')\n }\n})\n\n// for webpage scrap\nstandaloneBoardServiceRouter.get('/screenshot/:id', async (context, next) => {\n const { domain, user } = context.state\n\n if (!(await User.hasPrivilege('query', 'board', domain, user))) {\n context.status = 403\n return\n }\n\n const { id } = context.params\n\n const { model, board } = await headlessModel({ domain, id })\n\n const data = parseQuery({ ...context.query })\n delete data.access_token\n\n context.type = 'image/png'\n context.set('Content-Disposition', contentDisposition(`${board.name}.png`))\n context.body = await screenshot({ id, model, data, options: { encoding: 'binary', type: 'png' }, context })\n})\n\n// for webpage scrap\nstandaloneBoardServiceRouter.get('/board/pdf/:id', async (context, next) => {\n const { domain, user } = context.state\n\n if (!(await User.hasPrivilege('query', 'board', domain, user))) {\n context.status = 403\n return\n }\n\n const { id } = context.params\n\n const { model, board } = await headlessModel({ domain, id })\n\n const data = parseQuery({ ...context.query })\n delete data.access_token\n\n const result = await pdf({\n id,\n model,\n data,\n options: {\n format: 'A4'\n },\n context\n })\n\n context.type = 'application/pdf'\n context.set('Content-Disposition', contentDisposition(`${board.name}.pdf`))\n context.body = result\n})\n\n// for webpage scrap => zpl image print(grf format) command for released version board\nstandaloneBoardServiceRouter.get('/label-command/:id', async (context, next) => {\n const { id } = context.params\n\n const data = context.query\n delete data.access_token\n\n const orientation = data && data.orientation\n const mirror = data && data.mirror\n const upsideDown = data && data.upsideDown\n\n context.type = 'text/plain'\n context.body = await labelcommand({ id, data, orientation, mirror, upsideDown, context } as any)\n})\n\n// for webpage scrap => zpl image print(grf format) command for draft version board\nstandaloneBoardServiceRouter.get('/label-command-draft/:id', async (context, next) => {\n const { id } = context.params\n\n const data = context.query\n delete data.access_token\n\n const orientation = data && data.orientation\n const mirror = data && data.mirror\n const upsideDown = data && data.upsideDown\n\n context.type = 'text/plain'\n context.body = await labelcommand({ id, data, orientation, mirror, upsideDown, context, draft: true } as any)\n})\n"]}
@@ -1 +0,0 @@
1
- export {};
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const env_1 = require("@things-factory/env");
4
- const headless_pool_for_board_js_1 = require("./controllers/headless-pool-for-board.js");
5
- const headless_pool_for_label_js_1 = require("./controllers/headless-pool-for-label.js");
6
- const internal_board_view_router_js_1 = require("./routers/internal-board-view-router.js");
7
- const standalone_board_service_router_js_1 = require("./routers/standalone-board-service-router.js");
8
- const isPathBaseDomain = !env_1.config.get('subdomain');
9
- process.on('bootstrap-module-global-public-route', (app, domainGlobalPublicRouter) => {
10
- (0, headless_pool_for_label_js_1.getHeadlessPool)();
11
- (0, headless_pool_for_board_js_1.getHeadlessPool)();
12
- domainGlobalPublicRouter.use('', internal_board_view_router_js_1.internalBoardViewRouter.routes(), internal_board_view_router_js_1.internalBoardViewRouter.allowedMethods());
13
- });
14
- process.on('bootstrap-module-domain-private-route', (app, domainPrivateRouter) => {
15
- if (isPathBaseDomain) {
16
- const domainType = 'domain';
17
- domainPrivateRouter.use('/:domainType/:domain', standalone_board_service_router_js_1.standaloneBoardServiceRouter.routes(), standalone_board_service_router_js_1.standaloneBoardServiceRouter.allowedMethods());
18
- }
19
- else {
20
- domainPrivateRouter.use('', standalone_board_service_router_js_1.standaloneBoardServiceRouter.routes(), standalone_board_service_router_js_1.standaloneBoardServiceRouter.allowedMethods());
21
- }
22
- });
23
- //# sourceMappingURL=routes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../server/routes.ts"],"names":[],"mappings":";;AAAA,6CAA4C;AAC5C,yFAAqG;AACrG,yFAAqG;AACrG,2FAAiF;AACjF,qGAA2F;AAE3F,MAAM,gBAAgB,GAAG,CAAC,YAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;AAEjD,OAAO,CAAC,EAAE,CAAC,sCAA6C,EAAE,CAAC,GAAG,EAAE,wBAAwB,EAAE,EAAE;IAC1F,IAAA,4CAAuB,GAAE,CAAA;IACzB,IAAA,4CAAuB,GAAE,CAAA;IACzB,wBAAwB,CAAC,GAAG,CAAC,EAAE,EAAE,uDAAuB,CAAC,MAAM,EAAE,EAAE,uDAAuB,CAAC,cAAc,EAAE,CAAC,CAAA;AAC9G,CAAC,CAAC,CAAA;AAEF,OAAO,CAAC,EAAE,CAAC,uCAA8C,EAAE,CAAC,GAAG,EAAE,mBAAmB,EAAE,EAAE;IACtF,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,UAAU,GAAG,QAAQ,CAAA;QAC3B,mBAAmB,CAAC,GAAG,CACrB,sBAAsB,EACtB,iEAA4B,CAAC,MAAM,EAAE,EACrC,iEAA4B,CAAC,cAAc,EAAE,CAC9C,CAAA;IACH,CAAC;SAAM,CAAC;QACN,mBAAmB,CAAC,GAAG,CAAC,EAAE,EAAE,iEAA4B,CAAC,MAAM,EAAE,EAAE,iEAA4B,CAAC,cAAc,EAAE,CAAC,CAAA;IACnH,CAAC;AACH,CAAC,CAAC,CAAA","sourcesContent":["import { config } from '@things-factory/env'\nimport { getHeadlessPool as getHeadlessPoolForBoard } from './controllers/headless-pool-for-board.js'\nimport { getHeadlessPool as getHeadlessPoolForLabel } from './controllers/headless-pool-for-label.js'\nimport { internalBoardViewRouter } from './routers/internal-board-view-router.js'\nimport { standaloneBoardServiceRouter } from './routers/standalone-board-service-router.js'\n\nconst isPathBaseDomain = !config.get('subdomain')\n\nprocess.on('bootstrap-module-global-public-route' as any, (app, domainGlobalPublicRouter) => {\n getHeadlessPoolForLabel()\n getHeadlessPoolForBoard()\n domainGlobalPublicRouter.use('', internalBoardViewRouter.routes(), internalBoardViewRouter.allowedMethods())\n})\n\nprocess.on('bootstrap-module-domain-private-route' as any, (app, domainPrivateRouter) => {\n if (isPathBaseDomain) {\n const domainType = 'domain'\n domainPrivateRouter.use(\n '/:domainType/:domain',\n standaloneBoardServiceRouter.routes(),\n standaloneBoardServiceRouter.allowedMethods()\n )\n } else {\n domainPrivateRouter.use('', standaloneBoardServiceRouter.routes(), standaloneBoardServiceRouter.allowedMethods())\n }\n})\n"]}
@@ -1,3 +0,0 @@
1
- export declare class IntegrationAnalysisQuery {
2
- integrationAnalysis(context: ResolverContext): Promise<any>;
3
- }
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IntegrationAnalysisQuery = void 0;
4
- const tslib_1 = require("tslib");
5
- const type_graphql_1 = require("type-graphql");
6
- const shell_1 = require("@things-factory/shell");
7
- const analyze_integration_js_1 = require("../../controllers/analyzer/analyze-integration.js");
8
- let IntegrationAnalysisQuery = class IntegrationAnalysisQuery {
9
- async integrationAnalysis(context) {
10
- const { domain } = context.state;
11
- return await (0, analyze_integration_js_1.analyzeBoardIntegration)(domain);
12
- }
13
- };
14
- exports.IntegrationAnalysisQuery = IntegrationAnalysisQuery;
15
- tslib_1.__decorate([
16
- (0, type_graphql_1.Query)(returns => shell_1.ScalarObject, { description: 'To fetch integration Analyses' }),
17
- tslib_1.__param(0, (0, type_graphql_1.Ctx)()),
18
- tslib_1.__metadata("design:type", Function),
19
- tslib_1.__metadata("design:paramtypes", [Object]),
20
- tslib_1.__metadata("design:returntype", Promise)
21
- ], IntegrationAnalysisQuery.prototype, "integrationAnalysis", null);
22
- exports.IntegrationAnalysisQuery = IntegrationAnalysisQuery = tslib_1.__decorate([
23
- (0, type_graphql_1.Resolver)()
24
- ], IntegrationAnalysisQuery);
25
- //# sourceMappingURL=analysis-query.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analysis-query.js","sourceRoot":"","sources":["../../../server/service/analysis/analysis-query.ts"],"names":[],"mappings":";;;;AAAA,+CAAmD;AACnD,iDAAoD;AACpD,8FAA2F;AAGpF,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IAE7B,AAAN,KAAK,CAAC,mBAAmB,CAAQ,OAAwB;QACvD,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,OAAO,MAAM,IAAA,gDAAuB,EAAC,MAAM,CAAC,CAAA;IAC9C,CAAC;CACF,CAAA;AAPY,4DAAwB;AAE7B;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,oBAAY,EAAE,EAAE,WAAW,EAAE,+BAA+B,EAAE,CAAC;IACtD,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;mEAI/B;mCANU,wBAAwB;IADpC,IAAA,uBAAQ,GAAE;GACE,wBAAwB,CAOpC","sourcesContent":["import { Resolver, Query, Ctx } from 'type-graphql'\nimport { ScalarObject } from '@things-factory/shell'\nimport { analyzeBoardIntegration } from '../../controllers/analyzer/analyze-integration.js'\n\n@Resolver()\nexport class IntegrationAnalysisQuery {\n @Query(returns => ScalarObject, { description: 'To fetch integration Analyses' })\n async integrationAnalysis(@Ctx() context: ResolverContext): Promise<any> {\n const { domain } = context.state\n\n return await analyzeBoardIntegration(domain)\n }\n}\n"]}
@@ -1,2 +0,0 @@
1
- import { IntegrationAnalysisQuery } from './analysis-query.js';
2
- export declare const resolvers: (typeof IntegrationAnalysisQuery)[];
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolvers = void 0;
4
- const analysis_query_js_1 = require("./analysis-query.js");
5
- exports.resolvers = [analysis_query_js_1.IntegrationAnalysisQuery];
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/service/analysis/index.ts"],"names":[],"mappings":";;;AAAA,2DAA8D;AAEjD,QAAA,SAAS,GAAG,CAAC,4CAAwB,CAAC,CAAA","sourcesContent":["import { IntegrationAnalysisQuery } from './analysis-query.js'\n\nexport const resolvers = [IntegrationAnalysisQuery]\n"]}
@@ -1,28 +0,0 @@
1
- import { HistoryActionType, HistoryEntityInterface } from '@operato/typeorm-history';
2
- import { User } from '@things-factory/auth-base';
3
- import { Domain } from '@things-factory/shell';
4
- import { Board } from './board.js';
5
- import { Group } from '../group/group.js';
6
- import { PlayGroup } from '../play-group/play-group.js';
7
- export declare class BoardHistory implements HistoryEntityInterface<Board> {
8
- readonly id: string;
9
- version?: number;
10
- domain?: Domain;
11
- domainId?: string;
12
- name?: string;
13
- description?: string;
14
- model?: string;
15
- thumbnail?: string;
16
- group?: Group;
17
- groupId?: string;
18
- playGroups?: PlayGroup[];
19
- createdAt?: Date;
20
- updatedAt?: Date;
21
- creator?: User;
22
- creatorId?: string;
23
- updater?: User;
24
- updaterId?: string;
25
- deletedAt?: Date;
26
- originalId: string;
27
- action: HistoryActionType;
28
- }