@things-factory/shell 4.3.671 → 4.3.673

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 (89) hide show
  1. package/dist-server/graphql-local-client.js +36 -0
  2. package/dist-server/graphql-local-client.js.map +1 -0
  3. package/dist-server/index.js +25 -0
  4. package/dist-server/index.js.map +1 -0
  5. package/dist-server/initializers/database.js +30 -0
  6. package/dist-server/initializers/database.js.map +1 -0
  7. package/dist-server/initializers/naming-strategy.js +19 -0
  8. package/dist-server/initializers/naming-strategy.js.map +1 -0
  9. package/dist-server/middlewares/domain-middleware.js +23 -0
  10. package/dist-server/middlewares/domain-middleware.js.map +1 -0
  11. package/dist-server/middlewares/index.js +59 -0
  12. package/dist-server/middlewares/index.js.map +1 -0
  13. package/dist-server/migrations/1000000000000-SeedDomain.js +29 -0
  14. package/dist-server/migrations/1000000000000-SeedDomain.js.map +1 -0
  15. package/dist-server/migrations/index.js +12 -0
  16. package/dist-server/migrations/index.js.map +1 -0
  17. package/dist-server/pubsub-log-transport.js +27 -0
  18. package/dist-server/pubsub-log-transport.js.map +1 -0
  19. package/dist-server/pubsub.js +84 -0
  20. package/dist-server/pubsub.js.map +1 -0
  21. package/dist-server/routers/domain-router.js +20 -0
  22. package/dist-server/routers/domain-router.js.map +1 -0
  23. package/dist-server/routers/global-router.js +47 -0
  24. package/dist-server/routers/global-router.js.map +1 -0
  25. package/dist-server/routers/index.js +19 -0
  26. package/dist-server/routers/index.js.map +1 -0
  27. package/dist-server/schema.js +109 -0
  28. package/dist-server/schema.js.map +1 -0
  29. package/dist-server/server-dev.js +217 -0
  30. package/dist-server/server-dev.js.map +1 -0
  31. package/dist-server/server.js +177 -0
  32. package/dist-server/server.js.map +1 -0
  33. package/dist-server/service/common-types/index.js +23 -0
  34. package/dist-server/service/common-types/index.js.map +1 -0
  35. package/dist-server/service/common-types/list-param.js +83 -0
  36. package/dist-server/service/common-types/list-param.js.map +1 -0
  37. package/dist-server/service/common-types/log.js +37 -0
  38. package/dist-server/service/common-types/log.js.map +1 -0
  39. package/dist-server/service/common-types/object-ref.js +32 -0
  40. package/dist-server/service/common-types/object-ref.js.map +1 -0
  41. package/dist-server/service/common-types/scalar-any.js +45 -0
  42. package/dist-server/service/common-types/scalar-any.js.map +1 -0
  43. package/dist-server/service/common-types/scalar-date.js +25 -0
  44. package/dist-server/service/common-types/scalar-date.js.map +1 -0
  45. package/dist-server/service/common-types/scalar-object.js +18 -0
  46. package/dist-server/service/common-types/scalar-object.js.map +1 -0
  47. package/dist-server/service/directive-transaction/index.js +18 -0
  48. package/dist-server/service/directive-transaction/index.js.map +1 -0
  49. package/dist-server/service/directive-transaction/transaction.js +35 -0
  50. package/dist-server/service/directive-transaction/transaction.js.map +1 -0
  51. package/dist-server/service/domain/domain-resolver.js +150 -0
  52. package/dist-server/service/domain/domain-resolver.js.map +1 -0
  53. package/dist-server/service/domain/domain-types.js +89 -0
  54. package/dist-server/service/domain/domain-types.js.map +1 -0
  55. package/dist-server/service/domain/domain.js +113 -0
  56. package/dist-server/service/domain/domain.js.map +1 -0
  57. package/dist-server/service/domain/index.js +8 -0
  58. package/dist-server/service/domain/index.js.map +1 -0
  59. package/dist-server/service/index.js +45 -0
  60. package/dist-server/service/index.js.map +1 -0
  61. package/dist-server/service/subscription-data/data-resolver.js +62 -0
  62. package/dist-server/service/subscription-data/data-resolver.js.map +1 -0
  63. package/dist-server/service/subscription-data/data-types.js +35 -0
  64. package/dist-server/service/subscription-data/data-types.js.map +1 -0
  65. package/dist-server/service/subscription-data/index.js +7 -0
  66. package/dist-server/service/subscription-data/index.js.map +1 -0
  67. package/dist-server/utils/condition-builder.js +126 -0
  68. package/dist-server/utils/condition-builder.js.map +1 -0
  69. package/dist-server/utils/get-domain.js +128 -0
  70. package/dist-server/utils/get-domain.js.map +1 -0
  71. package/dist-server/utils/index.js +22 -0
  72. package/dist-server/utils/index.js.map +1 -0
  73. package/dist-server/utils/list-params-converter.js +102 -0
  74. package/dist-server/utils/list-params-converter.js.map +1 -0
  75. package/dist-server/utils/list-query-builder.js +51 -0
  76. package/dist-server/utils/list-query-builder.js.map +1 -0
  77. package/dist-server/utils/publish-progress.js +18 -0
  78. package/dist-server/utils/publish-progress.js.map +1 -0
  79. package/dist-server/webpack/koa-webpack/client.js +24 -0
  80. package/dist-server/webpack/koa-webpack/client.js.map +1 -0
  81. package/dist-server/webpack/koa-webpack/index.js +58 -0
  82. package/dist-server/webpack/koa-webpack/index.js.map +1 -0
  83. package/dist-server/webpack/koa-webpack/middleware.js +42 -0
  84. package/dist-server/webpack/koa-webpack/middleware.js.map +1 -0
  85. package/dist-server/webpack/koa-webpack/validate.js +26 -0
  86. package/dist-server/webpack/koa-webpack/validate.js.map +1 -0
  87. package/package.json +2 -2
  88. package/server/index.ts +0 -2
  89. package/server/pubsub.ts +1 -1
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GraphqlLocalClient = void 0;
4
+ const apollo_server_core_1 = require("apollo-server-core");
5
+ const graphql_1 = require("graphql");
6
+ class GraphqlLocalClient {
7
+ static init(schema, app) {
8
+ const resolve = async ({ query, mutation, variables, context }) => {
9
+ // Create a new Apollo Server for each request
10
+ const server = new apollo_server_core_1.ApolloServerBase({
11
+ schema,
12
+ context: Object.assign(Object.assign({}, context), { app })
13
+ });
14
+ const executeOperation = server.executeOperation.bind(server);
15
+ const operation = query || mutation;
16
+ if (!operation || (!!query && !!mutation)) {
17
+ throw new Error('Either query or mutation must be passed, but not both');
18
+ }
19
+ // Execute the actual operation
20
+ const res = await executeOperation({
21
+ variables,
22
+ query: typeof operation === 'string' ? operation : (0, graphql_1.print)(operation)
23
+ });
24
+ // Throw an error with all the messages of the
25
+ // errors to make them easy to match using Jest
26
+ if (!!res.errors && !!res.errors.length) {
27
+ const message = res.errors.map(error => error.message).join('\n');
28
+ throw new Error(message);
29
+ }
30
+ return res;
31
+ };
32
+ GraphqlLocalClient.client = { query: resolve, mutate: resolve };
33
+ }
34
+ }
35
+ exports.GraphqlLocalClient = GraphqlLocalClient;
36
+ //# sourceMappingURL=graphql-local-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql-local-client.js","sourceRoot":"","sources":["../server/graphql-local-client.ts"],"names":[],"mappings":";;;AAAA,2DAAqD;AAErD,qCAA6C;AA4B7C,MAAa,kBAAkB;IAG7B,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG;QACrB,MAAM,OAAO,GAAG,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;YAChE,8CAA8C;YAC9C,MAAM,MAAM,GAAG,IAAI,qCAAgB,CAAC;gBAClC,MAAM;gBACN,OAAO,kCAOF,OAAO,KACV,GAAG,GACJ;aACF,CAAC,CAAA;YAEF,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAC7D,MAAM,SAAS,GAAG,KAAK,IAAI,QAAQ,CAAA;YACnC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE;gBACzC,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAA;aACzE;YAED,+BAA+B;YAC/B,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC;gBACjC,SAAS;gBACT,KAAK,EAAE,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,eAAK,EAAC,SAAS,CAAC;aACpE,CAAC,CAAA;YAEF,8CAA8C;YAC9C,+CAA+C;YAC/C,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;gBACvC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACjE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAA;aACzB;YAED,OAAO,GAAG,CAAA;QACZ,CAAC,CAAA;QAED,kBAAkB,CAAC,MAAM,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;IACjE,CAAC;CACF;AA5CD,gDA4CC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./migrations"), exports);
18
+ __exportStar(require("./initializers/naming-strategy"), exports);
19
+ __exportStar(require("./utils"), exports);
20
+ __exportStar(require("./pubsub"), exports);
21
+ __exportStar(require("./pubsub-log-transport"), exports);
22
+ __exportStar(require("./middlewares"), exports);
23
+ __exportStar(require("./graphql-local-client"), exports);
24
+ __exportStar(require("./service"), exports);
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../server/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B;AAC5B,iEAA8C;AAC9C,0CAAuB;AACvB,2CAAwB;AACxB,yDAAsC;AACtC,gDAA6B;AAC7B,yDAAsC;AACtC,4CAAyB"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.databaseInitializer = void 0;
4
+ const path = require('path');
5
+ const typeorm_1 = require("typeorm");
6
+ const env_1 = require("@things-factory/env");
7
+ var ormconfig;
8
+ try {
9
+ ormconfig = require(path.resolve(env_1.appRootPath, 'ormconfig'));
10
+ }
11
+ catch (e) {
12
+ ormconfig = require('@things-factory/shell/ormconfig');
13
+ }
14
+ const databaseInitializer = async () => {
15
+ try {
16
+ const connection = await (0, typeorm_1.createConnection)(ormconfig);
17
+ env_1.logger.info('Database connection established');
18
+ if (ormconfig.type == 'sqlite' && ormconfig.synchronize == false) {
19
+ await connection.query('PRAGMA foreign_keys=OFF');
20
+ await connection.synchronize();
21
+ await connection.query('PRAGMA foreign_keys=ON');
22
+ }
23
+ return connection;
24
+ }
25
+ catch (e) {
26
+ env_1.logger.error(e);
27
+ }
28
+ };
29
+ exports.databaseInitializer = databaseInitializer;
30
+ //# sourceMappingURL=database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../server/initializers/database.ts"],"names":[],"mappings":";;;AAAA,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAE5B,qCAA0C;AAC1C,6CAAyD;AAEzD,IAAI,SAAS,CAAA;AACb,IAAI;IACF,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAW,EAAE,WAAW,CAAC,CAAC,CAAA;CAC5D;AAAC,OAAO,CAAC,EAAE;IACV,SAAS,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAAA;CACvD;AAEM,MAAM,mBAAmB,GAAG,KAAK,IAAI,EAAE;IAC5C,IAAI;QACF,MAAM,UAAU,GAAG,MAAM,IAAA,0BAAgB,EAAC,SAAS,CAAC,CAAA;QACpD,YAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAA;QAE9C,IAAI,SAAS,CAAC,IAAI,IAAI,QAAQ,IAAI,SAAS,CAAC,WAAW,IAAI,KAAK,EAAE;YAChE,MAAM,UAAU,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;YACjD,MAAM,UAAU,CAAC,WAAW,EAAE,CAAA;YAC9B,MAAM,UAAU,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;SACjD;QAED,OAAO,UAAU,CAAA;KAClB;IAAC,OAAO,CAAC,EAAE;QACV,YAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;KAChB;AACH,CAAC,CAAA;AAfY,QAAA,mBAAmB,uBAe/B"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.NamingStrategy = void 0;
7
+ const typeorm_1 = require("typeorm");
8
+ const pluralize_1 = __importDefault(require("pluralize"));
9
+ const lodash_1 = __importDefault(require("lodash"));
10
+ class NamingStrategy extends typeorm_1.DefaultNamingStrategy {
11
+ tableName(targetName, userSpecifiedName) {
12
+ return userSpecifiedName || (0, pluralize_1.default)(lodash_1.default.snakeCase(targetName));
13
+ }
14
+ columnName(propertyName, customName, embeddedPrefixes) {
15
+ return lodash_1.default.snakeCase(embeddedPrefixes.concat(customName || propertyName).join('_'));
16
+ }
17
+ }
18
+ exports.NamingStrategy = NamingStrategy;
19
+ //# sourceMappingURL=naming-strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming-strategy.js","sourceRoot":"","sources":["../../server/initializers/naming-strategy.ts"],"names":[],"mappings":";;;;;;AACA,qCAA+C;AAC/C,0DAAiC;AACjC,oDAAsB;AAEtB,MAAa,cAAe,SAAQ,+BAAqB;IACvD,SAAS,CAAC,UAAkB,EAAE,iBAAyB;QACrD,OAAO,iBAAiB,IAAI,IAAA,mBAAS,EAAC,gBAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAA;IAChE,CAAC;IAED,UAAU,CAAC,YAAoB,EAAE,UAAkB,EAAE,gBAA0B;QAC7E,OAAO,gBAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,IAAI,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IACnF,CAAC;CACF;AARD,wCAQC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.domainMiddleware = void 0;
4
+ const utils_1 = require("../utils");
5
+ const debug = require('debug')('things-factory:shell:domain-middleware');
6
+ async function domainMiddleware(context, next) {
7
+ var _a;
8
+ const { domain } = context.state;
9
+ if (domain) {
10
+ debug('already fetch domain', context.path, domain.subdomain);
11
+ return await next();
12
+ }
13
+ /*
14
+ * The domainType should be checked only when signin and checkin.
15
+ * For purposes such as API calls, the target domainType may be different from the system domainType.
16
+ * So, we don't check domainType here.
17
+ */
18
+ context.state.domain = await (0, utils_1.getDomainFromURL)(context);
19
+ debug('subdomain', context.path, (_a = context.state.domain) === null || _a === void 0 ? void 0 : _a.subdomain);
20
+ await next();
21
+ }
22
+ exports.domainMiddleware = domainMiddleware;
23
+ //# sourceMappingURL=domain-middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain-middleware.js","sourceRoot":"","sources":["../../server/middlewares/domain-middleware.ts"],"names":[],"mappings":";;;AAAA,oCAA2C;AAE3C,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,wCAAwC,CAAC,CAAA;AAEjE,KAAK,UAAU,gBAAgB,CAAC,OAAY,EAAE,IAAS;;IAC5D,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAChC,IAAI,MAAM,EAAE;QACV,KAAK,CAAC,sBAAsB,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;QAC7D,OAAO,MAAM,IAAI,EAAE,CAAA;KACpB;IAED;;;;OAIG;IACH,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,IAAA,wBAAgB,EAAC,OAAO,CAAC,CAAA;IAEtD,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,MAAA,OAAO,CAAC,KAAK,CAAC,MAAM,0CAAE,SAAS,CAAC,CAAA;IAEjE,MAAM,IAAI,EAAE,CAAA;AACd,CAAC;AAjBD,4CAiBC"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.initMiddlewares = void 0;
18
+ const env_1 = require("@things-factory/env");
19
+ const domain_middleware_1 = require("./domain-middleware");
20
+ const debug = require('debug')('things-factory:shell:middleware');
21
+ function initMiddlewares(app) {
22
+ app.subdomainOffset = env_1.config.get('subdomainOffset', 2);
23
+ app.on('error', (err, context) => {
24
+ env_1.logger.error(err);
25
+ });
26
+ /*
27
+ * Catching downstream errors
28
+ * - recommend to use context.throw, context.assert
29
+ */
30
+ app.use(async (context, next) => {
31
+ try {
32
+ await next();
33
+ }
34
+ catch (err) {
35
+ context.status = err.status || 500;
36
+ context.body = err.message;
37
+ // emitting error to app.on('error', ...)
38
+ context.app.emit('error', err, context);
39
+ }
40
+ });
41
+ /*
42
+ * post:graphql 에 대해서는 domain을 확인한다.
43
+ * graphql app을 router에 적용하지 못하기 때문임.
44
+ */
45
+ app.use(async (context, next) => {
46
+ const { method, path } = context;
47
+ if (method == 'POST' && path.startsWith('/graphql')) {
48
+ return await (0, domain_middleware_1.domainMiddleware)(context, next);
49
+ }
50
+ await next();
51
+ });
52
+ }
53
+ exports.initMiddlewares = initMiddlewares;
54
+ process.on('bootstrap-module-subscription', (app, subscriptionMiddleware) => {
55
+ debug('bootstrap-module-subscription');
56
+ subscriptionMiddleware.push(domain_middleware_1.domainMiddleware);
57
+ });
58
+ __exportStar(require("./domain-middleware"), exports);
59
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/middlewares/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6CAAoD;AACpD,2DAAsD;AAEtD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,iCAAiC,CAAC,CAAA;AAEjE,SAAgB,eAAe,CAAC,GAAG;IACjC,GAAG,CAAC,eAAe,GAAG,YAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAA;IAEtD,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;QAC/B,YAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACnB,CAAC,CAAC,CAAA;IAEF;;;OAGG;IACH,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC9B,IAAI;YACF,MAAM,IAAI,EAAE,CAAA;SACb;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAA;YAClC,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,OAAO,CAAA;YAE1B,yCAAyC;YACzC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;SACxC;IACH,CAAC,CAAC,CAAA;IAEF;;;OAGG;IACH,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC9B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;QAEhC,IAAI,MAAM,IAAI,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;YACnD,OAAO,MAAM,IAAA,oCAAgB,EAAC,OAAO,EAAE,IAAI,CAAC,CAAA;SAC7C;QAED,MAAM,IAAI,EAAE,CAAA;IACd,CAAC,CAAC,CAAA;AACJ,CAAC;AApCD,0CAoCC;AAED,OAAO,CAAC,EAAE,CAAC,+BAAsC,EAAE,CAAC,GAAG,EAAE,sBAAsB,EAAE,EAAE;IACjF,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAEtC,sBAAsB,CAAC,IAAI,CAAC,oCAAgB,CAAC,CAAA;AAC/C,CAAC,CAAC,CAAA;AAEF,sDAAmC"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SeedDomain1000000000000 = void 0;
4
+ const typeorm_1 = require("typeorm");
5
+ const domain_1 = require("../service/domain/domain");
6
+ const SEED_DOMAINS = [
7
+ {
8
+ name: 'SYSTEM',
9
+ subdomain: 'system',
10
+ systemFlag: true
11
+ }
12
+ ];
13
+ class SeedDomain1000000000000 {
14
+ async up(queryRunner) {
15
+ const repository = (0, typeorm_1.getRepository)(domain_1.Domain);
16
+ return await Promise.all(SEED_DOMAINS.map(async (domain) => {
17
+ await repository.save(Object.assign({}, domain));
18
+ }));
19
+ }
20
+ async down(queryRunner) {
21
+ const repository = (0, typeorm_1.getRepository)(domain_1.Domain);
22
+ return await Promise.all(SEED_DOMAINS.reverse().map(async (domain) => {
23
+ let recode = await repository.findOne({ subdomain: domain.subdomain });
24
+ await repository.remove(recode);
25
+ }));
26
+ }
27
+ }
28
+ exports.SeedDomain1000000000000 = SeedDomain1000000000000;
29
+ //# sourceMappingURL=1000000000000-SeedDomain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1000000000000-SeedDomain.js","sourceRoot":"","sources":["../../server/migrations/1000000000000-SeedDomain.ts"],"names":[],"mappings":";;;AAAA,qCAAwE;AACxE,qDAAiD;AAEjD,MAAM,YAAY,GAAG;IACnB;QACE,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,QAAQ;QACnB,UAAU,EAAE,IAAI;KACjB;CACF,CAAA;AAED,MAAa,uBAAuB;IAC3B,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,MAAM,UAAU,GAAG,IAAA,uBAAa,EAAC,eAAM,CAAC,CAAA;QAExC,OAAO,MAAM,OAAO,CAAC,GAAG,CACtB,YAAY,CAAC,GAAG,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;YAC9B,MAAM,UAAU,CAAC,IAAI,mBAChB,MAAM,EACT,CAAA;QACJ,CAAC,CAAC,CACH,CAAA;IACH,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,MAAM,UAAU,GAAG,IAAA,uBAAa,EAAC,eAAM,CAAC,CAAA;QAExC,OAAO,MAAM,OAAO,CAAC,GAAG,CACtB,YAAY,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;YACxC,IAAI,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAA;YACtE,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACjC,CAAC,CAAC,CACH,CAAA;IACH,CAAC;CACF;AAvBD,0DAuBC"}
@@ -0,0 +1,12 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.PubSubLogTransport = void 0;
7
+ const camelCase_1 = __importDefault(require("lodash/camelCase"));
8
+ const winston_transport_1 = __importDefault(require("winston-transport"));
9
+ const pubsub_1 = require("./pubsub");
10
+ class PubSubLogTransport extends winston_transport_1.default {
11
+ constructor(opts) {
12
+ super(opts);
13
+ this.topic = opts.topic;
14
+ this.source = opts.source;
15
+ this.resolver = opts.resolver || (0, camelCase_1.default)(this.topic);
16
+ }
17
+ log(info, callback) {
18
+ setImmediate(() => {
19
+ pubsub_1.pubsub.publish(this.topic, {
20
+ [this.resolver]: Object.assign({ source: this.source }, info)
21
+ });
22
+ });
23
+ callback();
24
+ }
25
+ }
26
+ exports.PubSubLogTransport = PubSubLogTransport;
27
+ //# sourceMappingURL=pubsub-log-transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pubsub-log-transport.js","sourceRoot":"","sources":["../server/pubsub-log-transport.ts"],"names":[],"mappings":";;;;;;AAAA,iEAAwC;AACxC,0EAAyC;AACzC,qCAAiC;AAEjC,MAAa,kBAAmB,SAAQ,2BAAS;IAK/C,YAAY,IAAI;QACd,KAAK,CAAC,IAAI,CAAC,CAAA;QAEX,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAA,mBAAS,EAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACxD,CAAC;IAED,GAAG,CAAC,IAAI,EAAE,QAAQ;QAChB,YAAY,CAAC,GAAG,EAAE;YAChB,eAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE;gBACzB,CAAC,IAAI,CAAC,QAAQ,CAAC,kBACb,MAAM,EAAE,IAAI,CAAC,MAAM,IAChB,IAAI,CACR;aACF,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,QAAQ,EAAE,CAAA;IACZ,CAAC;CACF;AAzBD,gDAyBC"}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.pubsub = void 0;
7
+ const graphql_mqtt_subscriptions_1 = require("graphql-mqtt-subscriptions");
8
+ const graphql_redis_subscriptions_1 = require("graphql-redis-subscriptions");
9
+ const graphql_subscriptions_1 = require("graphql-subscriptions");
10
+ const ioredis_1 = __importDefault(require("ioredis"));
11
+ const mqtt_1 = require("mqtt");
12
+ const env_1 = require("@things-factory/env");
13
+ const { middleware, host, port, nodes, topic, options } = env_1.config.get('pubsub', {});
14
+ const debug = require('debug')('things-factory:shell');
15
+ let pubsub;
16
+ exports.pubsub = pubsub;
17
+ switch (middleware) {
18
+ case 'mqtt':
19
+ exports.pubsub = pubsub = new graphql_mqtt_subscriptions_1.MQTTPubSub({
20
+ client: (0, mqtt_1.connect)('mqtt://' + host, Object.assign({ reconnectPeriod: 1000 }, options))
21
+ });
22
+ break;
23
+ case 'redis':
24
+ const redisOption = Object.assign({ host,
25
+ port, retryStrategy: times => {
26
+ // reconnect after
27
+ return Math.min(times * 50, 2000);
28
+ } }, options);
29
+ exports.pubsub = pubsub = new graphql_redis_subscriptions_1.RedisPubSub({
30
+ publisher: new ioredis_1.default(redisOption),
31
+ subscriber: new ioredis_1.default(redisOption)
32
+ });
33
+ break;
34
+ case 'redisCluster':
35
+ const cluster = new ioredis_1.default.Cluster(nodes, options);
36
+ exports.pubsub = pubsub = new graphql_redis_subscriptions_1.RedisPubSub({
37
+ publisher: cluster,
38
+ subscriber: cluster
39
+ });
40
+ break;
41
+ case 'kafka':
42
+ try {
43
+ /*
44
+ * https://github.com/hatiolab/things-factory/issues/1239
45
+ */
46
+ const { KafkaPubSub } = require('graphql-kafka-subscriptions');
47
+ exports.pubsub = pubsub = new KafkaPubSub(Object.assign({ topic,
48
+ host,
49
+ port }, options));
50
+ }
51
+ catch (e) {
52
+ console.error('graphql-kafka-subscriptions module is not installed, so application can not go further.');
53
+ throw e;
54
+ }
55
+ break;
56
+ default:
57
+ exports.pubsub = pubsub = new graphql_subscriptions_1.PubSub();
58
+ break;
59
+ }
60
+ debug(middleware || 'default', 'pubsub initialized.');
61
+ // kafka pubsub keeps connection and app port with 'ctrl+c' termination.
62
+ const exitHandler = async (evt) => {
63
+ if (pubsub.close) {
64
+ try {
65
+ await pubsub.close();
66
+ }
67
+ catch (err) {
68
+ console.error(err);
69
+ }
70
+ }
71
+ };
72
+ /*
73
+ * exit events hint from https://stackoverflow.com/a/14032965/14539284
74
+ */
75
+ //do something when app is closing
76
+ process.on('exit', exitHandler.bind(null, { name: 'exit', exit: true }));
77
+ //catches ctrl+c event
78
+ process.on('SIGINT', exitHandler.bind(null, { name: 'SIGINT', exit: true }));
79
+ // catches "kill pid" (for example: nodemon restart)
80
+ process.on('SIGUSR1', exitHandler.bind(null, { name: 'SIGUSR1', exit: true }));
81
+ process.on('SIGUSR2', exitHandler.bind(null, { name: 'SIGUSR2', exit: true }));
82
+ //catches uncaught exceptions
83
+ process.on('uncaughtException', exitHandler.bind(null, { name: 'uncaughtException', exit: true }));
84
+ //# sourceMappingURL=pubsub.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pubsub.js","sourceRoot":"","sources":["../server/pubsub.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.domainPrivateRouter = exports.domainPublicRouter = void 0;
7
+ const koa_router_1 = __importDefault(require("koa-router"));
8
+ const domain_middleware_1 = require("../middlewares/domain-middleware");
9
+ const debug = require('debug')('things-factory:shell:domain-router');
10
+ exports.domainPublicRouter = new koa_router_1.default();
11
+ exports.domainPublicRouter.use(async (context, next) => {
12
+ debug('domain-public-router path, referer, matched', context.path, context.get('Referrer'), context._matchedRoute);
13
+ await next();
14
+ }, domain_middleware_1.domainMiddleware);
15
+ exports.domainPrivateRouter = new koa_router_1.default();
16
+ exports.domainPrivateRouter.use(async (context, next) => {
17
+ debug('domain-private-router path, referer, matched', context.path, context.get('Referrer'), context._matchedRoute);
18
+ await next();
19
+ }, domain_middleware_1.domainMiddleware);
20
+ //# sourceMappingURL=domain-router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain-router.js","sourceRoot":"","sources":["../../server/routers/domain-router.ts"],"names":[],"mappings":";;;;;;AAAA,4DAA+B;AAC/B,wEAAmE;AAEnE,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,oCAAoC,CAAC,CAAA;AAEvD,QAAA,kBAAkB,GAAG,IAAI,oBAAM,EAAE,CAAA;AAC9C,0BAAkB,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IAC7C,KAAK,CAAC,6CAA6C,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;IAClH,MAAM,IAAI,EAAE,CAAA;AACd,CAAC,EAAE,oCAAgB,CAAC,CAAA;AAEP,QAAA,mBAAmB,GAAG,IAAI,oBAAM,EAAE,CAAA;AAC/C,2BAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IAC9C,KAAK,CAAC,8CAA8C,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;IACnH,MAAM,IAAI,EAAE,CAAA;AACd,CAAC,EAAE,oCAAgB,CAAC,CAAA"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.globalPrivateRouter = exports.globalPublicRouter = void 0;
7
+ const koa_router_1 = __importDefault(require("koa-router"));
8
+ const domain_middleware_1 = require("../middlewares/domain-middleware");
9
+ var crawler = require('npm-license-crawler');
10
+ const debug = require('debug')('things-factory:shell:global-router');
11
+ exports.globalPublicRouter = new koa_router_1.default();
12
+ exports.globalPrivateRouter = new koa_router_1.default();
13
+ /* even though global private router, catch domain for information */
14
+ exports.globalPrivateRouter.use(domain_middleware_1.domainMiddleware);
15
+ exports.globalPublicRouter.get('/dependencies', async (context, next) => {
16
+ const { dependencyGraph } = require('@things-factory/env');
17
+ await context.render('dependencies-view-graphviz', { model: dependencyGraph });
18
+ });
19
+ exports.globalPublicRouter.get('/licenses', (context, next) => {
20
+ return new Promise(function (resolve, reject) {
21
+ var options = {
22
+ start: ['.'],
23
+ exclude: [],
24
+ noColor: true,
25
+ production: true,
26
+ unknown: false
27
+ };
28
+ crawler.dumpLicenses(options, function (error, res) {
29
+ if (error) {
30
+ debug('get:/licenses', error);
31
+ reject(error);
32
+ }
33
+ else {
34
+ context.type = 'application/json';
35
+ context.body = res;
36
+ resolve(res);
37
+ }
38
+ });
39
+ });
40
+ });
41
+ /* Paths starting with /public are assumed to use the koa-view renderer. */
42
+ exports.globalPublicRouter.get('/public/(.[^.]*)', async (context, next) => {
43
+ const { path } = context;
44
+ debug('get:/public/(.[^.]*)', path);
45
+ await context.render(path.substr(1));
46
+ });
47
+ //# sourceMappingURL=global-router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global-router.js","sourceRoot":"","sources":["../../server/routers/global-router.ts"],"names":[],"mappings":";;;;;;AAAA,4DAA+B;AAC/B,wEAAmE;AAEnE,IAAI,OAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAA;AAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,oCAAoC,CAAC,CAAA;AAEvD,QAAA,kBAAkB,GAAG,IAAI,oBAAM,EAAE,CAAA;AACjC,QAAA,mBAAmB,GAAG,IAAI,oBAAM,EAAE,CAAA;AAE/C,qEAAqE;AACrE,2BAAmB,CAAC,GAAG,CAAC,oCAAgB,CAAC,CAAA;AAEzC,0BAAkB,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IAC9D,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAA;IAE1D,MAAM,OAAO,CAAC,MAAM,CAAC,4BAA4B,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAA;AAChF,CAAC,CAAC,CAAA;AAEF,0BAAkB,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;IACpD,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM;QAC1C,IAAI,OAAO,GAAG;YACZ,KAAK,EAAE,CAAC,GAAG,CAAC;YACZ,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,KAAK;SACf,CAAA;QAED,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,KAAK,EAAE,GAAG;YAChD,IAAI,KAAK,EAAE;gBACT,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;gBAC7B,MAAM,CAAC,KAAK,CAAC,CAAA;aACd;iBAAM;gBACL,OAAO,CAAC,IAAI,GAAG,kBAAkB,CAAA;gBACjC,OAAO,CAAC,IAAI,GAAG,GAAG,CAAA;gBAClB,OAAO,CAAC,GAAG,CAAC,CAAA;aACb;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,2EAA2E;AAC3E,0BAAkB,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACjE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;IACxB,KAAK,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAA;IACnC,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AACtC,CAAC,CAAC,CAAA"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./global-router"), exports);
18
+ __exportStar(require("./domain-router"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/routers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAA+B;AAC/B,kDAA+B"}
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.schema = void 0;
4
+ const env_1 = require("@things-factory/env");
5
+ const graphql_upload_1 = require("graphql-upload");
6
+ const type_graphql_1 = require("type-graphql");
7
+ const utils_1 = require("@things-factory/utils");
8
+ const schema_1 = require("@graphql-tools/schema");
9
+ async function schema() {
10
+ const schemas = env_1.orderedModuleNames
11
+ .map(dep => (0, env_1.loader)(dep).schema)
12
+ .filter(schema => schema)
13
+ .reduce((sum, schema) => {
14
+ const { typeDefs, resolvers, resolverClasses, directives } = sum;
15
+ let { typeDefs: sTypeDefs = {}, resolvers: sResolvers = {}, resolverClasses: sResolverClasses = [], directives: sDirectives = {} } = schema;
16
+ return {
17
+ typeDefs: (0, utils_1.deepMerge)(typeDefs, sTypeDefs),
18
+ resolvers: (0, utils_1.deepMerge)(resolvers, sResolvers),
19
+ resolverClasses: [...resolverClasses, ...(sResolverClasses || [])],
20
+ directives: (0, utils_1.deepMerge)(directives, sDirectives)
21
+ };
22
+ }, {
23
+ typeDefs: {},
24
+ resolvers: {},
25
+ resolverClasses: [],
26
+ directives: {}
27
+ });
28
+ /* for typeDefs */
29
+ var typeDefs = schemas.typeDefs;
30
+ var { queries = [], mutations = [], subscriptions = [], directives = [], types = [] } = typeDefs;
31
+ queries = [...queries, ...(typeDefs.Query || [])];
32
+ mutations = [...mutations, ...(typeDefs.Mutation || [])];
33
+ subscriptions = [...subscriptions, ...(typeDefs.Subscription || [])];
34
+ directives = [...directives, ...(typeDefs.Directive || [])];
35
+ delete typeDefs.Query;
36
+ delete typeDefs.Mutation;
37
+ delete typeDefs.Subscription;
38
+ delete typeDefs.Directive;
39
+ delete typeDefs.queries;
40
+ delete typeDefs.mutations;
41
+ delete typeDefs.subscriptions;
42
+ delete typeDefs.directives;
43
+ delete typeDefs.types;
44
+ const defs = {
45
+ query: queries.length > 0 ? ['type Query {', ...queries, '}'].join('\n') : 'type Query { _ : Boolean }',
46
+ mutation: mutations.length > 0 ? ['type Mutation {', ...mutations, '}'].join('\n') : 'type Mutation { _ : Boolean }',
47
+ subscription: subscriptions.length > 0
48
+ ? ['type Subscription {', ...subscriptions, '}'].join('\n')
49
+ : 'type Subscription { _ : Boolean }'
50
+ };
51
+ typeDefs = [
52
+ `
53
+ scalar Upload
54
+ `,
55
+ defs.query,
56
+ defs.mutation,
57
+ defs.subscription,
58
+ ...directives,
59
+ ...types,
60
+ ...Object.values(typeDefs)
61
+ ].filter(type => !!type);
62
+ /* for resolvers */
63
+ var { resolvers } = schemas;
64
+ var { queries = [], mutations = [], subscriptions = [], directives = [] } = resolvers;
65
+ var queryResolvers = queries.length > 0 &&
66
+ queries.reduce((sum, query) => {
67
+ return Object.assign(Object.assign({}, sum), query);
68
+ }, {});
69
+ var mutationResolvers = mutations.length > 0 &&
70
+ mutations.reduce((sum, mutation) => {
71
+ return Object.assign(Object.assign({}, sum), mutation);
72
+ }, {});
73
+ var subscriptionResolvers = subscriptions.length > 0 &&
74
+ subscriptions.reduce((sum, subscription) => {
75
+ return Object.assign(Object.assign({}, sum), subscription);
76
+ }, {});
77
+ var directiveResolvers = directives.reduce((sum, directive) => {
78
+ return Object.assign(Object.assign({}, sum), directive);
79
+ }, {});
80
+ delete resolvers.queries;
81
+ delete resolvers.mutations;
82
+ delete resolvers.subscriptions;
83
+ delete resolvers.directives;
84
+ var Query = resolvers.Query || {};
85
+ var Mutation = resolvers.Mutation || {};
86
+ var Subscription = resolvers.Subscription || {};
87
+ var Directive = resolvers.Directive || {};
88
+ delete resolvers.Query;
89
+ delete resolvers.Mutation;
90
+ delete resolvers.Subscription;
91
+ delete resolvers.Directive;
92
+ resolvers = Object.assign({ Upload: graphql_upload_1.GraphQLUpload, Query: (0, utils_1.deepMerge)(Query, queryResolvers), Mutation: (0, utils_1.deepMerge)(Mutation, mutationResolvers), Subscription: (0, utils_1.deepMerge)(Subscription, subscriptionResolvers) }, resolvers);
93
+ var merged = (0, schema_1.mergeSchemas)({
94
+ schemas: [
95
+ await (0, type_graphql_1.buildSchema)({
96
+ resolvers: schemas.resolverClasses,
97
+ dateScalarMode: 'timestamp'
98
+ })
99
+ ],
100
+ typeDefs,
101
+ resolvers
102
+ });
103
+ Object.values(schemas.directives).map((directive) => {
104
+ merged = directive(merged);
105
+ });
106
+ return merged;
107
+ }
108
+ exports.schema = schema;
109
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../server/schema.ts"],"names":[],"mappings":"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"}