@things-factory/shell 9.0.0-beta.0 → 9.0.0-beta.5
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.
- package/bin/things-factory-migration +6 -3
- package/dist-server/index.d.ts +12 -12
- package/dist-server/index.js +12 -12
- package/dist-server/index.js.map +1 -1
- package/dist-server/initializers/database.js +4 -10
- package/dist-server/initializers/database.js.map +1 -1
- package/dist-server/initializers/ormconfig.d.ts +2 -0
- package/dist-server/initializers/ormconfig.js +30 -0
- package/dist-server/initializers/ormconfig.js.map +1 -0
- package/dist-server/middlewares/domain-middleware.js +2 -2
- package/dist-server/middlewares/domain-middleware.js.map +1 -1
- package/dist-server/middlewares/index.d.ts +1 -1
- package/dist-server/middlewares/index.js +3 -3
- package/dist-server/middlewares/index.js.map +1 -1
- package/dist-server/migrations/1000000000000-SeedDomain.js +4 -4
- package/dist-server/migrations/1000000000000-SeedDomain.js.map +1 -1
- package/dist-server/migrations/index.js +5 -4
- package/dist-server/migrations/index.js.map +1 -1
- package/dist-server/routers/domain-router.js +3 -3
- package/dist-server/routers/domain-router.js.map +1 -1
- package/dist-server/routers/global-router.js +6 -6
- package/dist-server/routers/global-router.js.map +1 -1
- package/dist-server/routers/index.d.ts +3 -3
- package/dist-server/routers/index.js +3 -3
- package/dist-server/routers/index.js.map +1 -1
- package/dist-server/schema.js +5 -4
- package/dist-server/schema.js.map +1 -1
- package/dist-server/server-dev.js +37 -37
- package/dist-server/server-dev.js.map +1 -1
- package/dist-server/server.js +33 -33
- package/dist-server/server.js.map +1 -1
- package/dist-server/service/attribute-set/attribute-set-item-type.js +3 -3
- package/dist-server/service/attribute-set/attribute-set-item-type.js.map +1 -1
- package/dist-server/service/attribute-set/attribute-set-mutation.d.ts +2 -2
- package/dist-server/service/attribute-set/attribute-set-mutation.js +16 -16
- package/dist-server/service/attribute-set/attribute-set-mutation.js.map +1 -1
- package/dist-server/service/attribute-set/attribute-set-query.d.ts +3 -3
- package/dist-server/service/attribute-set/attribute-set-query.js +15 -15
- package/dist-server/service/attribute-set/attribute-set-query.js.map +1 -1
- package/dist-server/service/attribute-set/attribute-set-type.d.ts +2 -2
- package/dist-server/service/attribute-set/attribute-set-type.js +5 -5
- package/dist-server/service/attribute-set/attribute-set-type.js.map +1 -1
- package/dist-server/service/attribute-set/attribute-set.d.ts +1 -1
- package/dist-server/service/attribute-set/attribute-set.js +2 -2
- package/dist-server/service/attribute-set/attribute-set.js.map +1 -1
- package/dist-server/service/attribute-set/index.d.ts +3 -3
- package/dist-server/service/attribute-set/index.js +5 -5
- package/dist-server/service/attribute-set/index.js.map +1 -1
- package/dist-server/service/common-types/index.d.ts +6 -6
- package/dist-server/service/common-types/index.js +6 -6
- package/dist-server/service/common-types/index.js.map +1 -1
- package/dist-server/service/common-types/list-param.js +2 -2
- package/dist-server/service/common-types/list-param.js.map +1 -1
- package/dist-server/service/common-types/log.js +2 -2
- package/dist-server/service/common-types/log.js.map +1 -1
- package/dist-server/service/common-types/scalar-object.d.ts +2 -1
- package/dist-server/service/common-types/scalar-object.js +2 -2
- package/dist-server/service/common-types/scalar-object.js.map +1 -1
- package/dist-server/service/directive-transaction/index.d.ts +1 -1
- package/dist-server/service/directive-transaction/index.js +1 -1
- package/dist-server/service/directive-transaction/index.js.map +1 -1
- package/dist-server/service/directive-transaction/transaction.js +2 -2
- package/dist-server/service/directive-transaction/transaction.js.map +1 -1
- package/dist-server/service/domain/domain-mutation.d.ts +2 -2
- package/dist-server/service/domain/domain-mutation.js +21 -21
- package/dist-server/service/domain/domain-mutation.js.map +1 -1
- package/dist-server/service/domain/domain-query.d.ts +3 -3
- package/dist-server/service/domain/domain-query.js +18 -18
- package/dist-server/service/domain/domain-query.js.map +1 -1
- package/dist-server/service/domain/domain-types.d.ts +2 -2
- package/dist-server/service/domain/domain-types.js +6 -6
- package/dist-server/service/domain/domain-types.js.map +1 -1
- package/dist-server/service/domain/domain.js +3 -3
- package/dist-server/service/domain/domain.js.map +1 -1
- package/dist-server/service/domain/index.d.ts +3 -3
- package/dist-server/service/domain/index.js +5 -5
- package/dist-server/service/domain/index.js.map +1 -1
- package/dist-server/service/index.d.ts +7 -7
- package/dist-server/service/index.js +16 -16
- package/dist-server/service/index.js.map +1 -1
- package/dist-server/service/subscription-data/data-resolver.d.ts +1 -1
- package/dist-server/service/subscription-data/data-resolver.js +4 -4
- package/dist-server/service/subscription-data/data-resolver.js.map +1 -1
- package/dist-server/service/subscription-data/data-types.d.ts +1 -1
- package/dist-server/service/subscription-data/data-types.js +5 -5
- package/dist-server/service/subscription-data/data-types.js.map +1 -1
- package/dist-server/service/subscription-data/index.d.ts +1 -1
- package/dist-server/service/subscription-data/index.js +2 -2
- package/dist-server/service/subscription-data/index.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/dist-server/typeorm/encrypt-transform.js +3 -3
- package/dist-server/typeorm/encrypt-transform.js.map +1 -1
- package/dist-server/utils/get-query-builder-from-list-params.d.ts +2 -2
- package/dist-server/utils/get-query-builder-from-list-params.js +5 -5
- package/dist-server/utils/get-query-builder-from-list-params.js.map +1 -1
- package/dist-server/utils/index.d.ts +8 -8
- package/dist-server/utils/index.js +8 -8
- package/dist-server/utils/index.js.map +1 -1
- package/dist-server/utils/list-param-adjuster.d.ts +1 -1
- package/dist-server/utils/list-param-adjuster.js.map +1 -1
- package/dist-server/utils/list-params-converter.d.ts +2 -2
- package/dist-server/utils/list-params-converter.js +2 -2
- package/dist-server/utils/list-params-converter.js.map +1 -1
- package/dist-server/utils/list-query-builder.d.ts +1 -1
- package/dist-server/utils/list-query-builder.js +7 -7
- package/dist-server/utils/list-query-builder.js.map +1 -1
- package/dist-server/utils/publish-progress.js +2 -2
- package/dist-server/utils/publish-progress.js.map +1 -1
- package/package.json +5 -7
- package/client/hot-client/hot.js +0 -140
- package/client/hot-client/index.js +0 -103
- package/client/hot-client/log.js +0 -44
- package/client/hot-client/socket.js +0 -63
- package/ormconfig.js +0 -31
@@ -50,7 +50,7 @@ async function doModePrompt() {
|
|
50
50
|
process.env.NODE_ENV = answers.mode == 'development' ? 'development' : 'production'
|
51
51
|
const { config } = require('@things-factory/env')
|
52
52
|
|
53
|
-
var ormconfig = require('@things-factory/shell/ormconfig')
|
53
|
+
var ormconfig = require('@things-factory/shell/dist-server/initializers/ormconfig.js')
|
54
54
|
|
55
55
|
if (ormconfig.host) {
|
56
56
|
await confirmHost(ormconfig.host)
|
@@ -86,7 +86,10 @@ async function migrate(ormconfig, connectionConfig) {
|
|
86
86
|
|
87
87
|
debug('Database connection established')
|
88
88
|
|
89
|
-
if (
|
89
|
+
if (
|
90
|
+
(connectionConfig.type == 'sqlite' || connectionConfig.type == 'better-sqlite3') &&
|
91
|
+
connectionConfig.synchronize == false
|
92
|
+
) {
|
90
93
|
await connection.query('PRAGMA foreign_keys=OFF')
|
91
94
|
await connection.synchronize()
|
92
95
|
await connection.query('PRAGMA foreign_keys=ON')
|
@@ -103,7 +106,7 @@ async function migrate(ormconfig, connectionConfig) {
|
|
103
106
|
|
104
107
|
await connection.close()
|
105
108
|
debug('Database Migration Done.')
|
106
|
-
} catch(error) {
|
109
|
+
} catch (error) {
|
107
110
|
console.error(error)
|
108
111
|
}
|
109
112
|
}
|
package/dist-server/index.d.ts
CHANGED
@@ -1,12 +1,12 @@
|
|
1
|
-
export * from './migrations';
|
2
|
-
export * from './initializers/naming-strategy';
|
3
|
-
export * from './initializers/database';
|
4
|
-
export * from './utils';
|
5
|
-
export * from './pubsub';
|
6
|
-
export * from './pubsub-log-transport';
|
7
|
-
export * from './middlewares';
|
8
|
-
export * from './graphql-local-client';
|
9
|
-
export * from './service';
|
10
|
-
export * from './typeorm/encrypt-transform';
|
11
|
-
export * from './typeorm/json5-transform';
|
12
|
-
export * from './typeorm/round-transform';
|
1
|
+
export * from './migrations/index.js';
|
2
|
+
export * from './initializers/naming-strategy.js';
|
3
|
+
export * from './initializers/database.js';
|
4
|
+
export * from './utils/index.js';
|
5
|
+
export * from './pubsub.js';
|
6
|
+
export * from './pubsub-log-transport.js';
|
7
|
+
export * from './middlewares/index.js';
|
8
|
+
export * from './graphql-local-client.js';
|
9
|
+
export * from './service/index.js';
|
10
|
+
export * from './typeorm/encrypt-transform.js';
|
11
|
+
export * from './typeorm/json5-transform.js';
|
12
|
+
export * from './typeorm/round-transform.js';
|
package/dist-server/index.js
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
const tslib_1 = require("tslib");
|
4
|
-
tslib_1.__exportStar(require("./migrations"), exports);
|
5
|
-
tslib_1.__exportStar(require("./initializers/naming-strategy"), exports);
|
6
|
-
tslib_1.__exportStar(require("./initializers/database"), exports);
|
7
|
-
tslib_1.__exportStar(require("./utils"), exports);
|
8
|
-
tslib_1.__exportStar(require("./pubsub"), exports);
|
9
|
-
tslib_1.__exportStar(require("./pubsub-log-transport"), exports);
|
10
|
-
tslib_1.__exportStar(require("./middlewares"), exports);
|
11
|
-
tslib_1.__exportStar(require("./graphql-local-client"), exports);
|
12
|
-
tslib_1.__exportStar(require("./service"), exports);
|
13
|
-
tslib_1.__exportStar(require("./typeorm/encrypt-transform"), exports);
|
14
|
-
tslib_1.__exportStar(require("./typeorm/json5-transform"), exports);
|
15
|
-
tslib_1.__exportStar(require("./typeorm/round-transform"), exports);
|
4
|
+
tslib_1.__exportStar(require("./migrations/index.js"), exports);
|
5
|
+
tslib_1.__exportStar(require("./initializers/naming-strategy.js"), exports);
|
6
|
+
tslib_1.__exportStar(require("./initializers/database.js"), exports);
|
7
|
+
tslib_1.__exportStar(require("./utils/index.js"), exports);
|
8
|
+
tslib_1.__exportStar(require("./pubsub.js"), exports);
|
9
|
+
tslib_1.__exportStar(require("./pubsub-log-transport.js"), exports);
|
10
|
+
tslib_1.__exportStar(require("./middlewares/index.js"), exports);
|
11
|
+
tslib_1.__exportStar(require("./graphql-local-client.js"), exports);
|
12
|
+
tslib_1.__exportStar(require("./service/index.js"), exports);
|
13
|
+
tslib_1.__exportStar(require("./typeorm/encrypt-transform.js"), exports);
|
14
|
+
tslib_1.__exportStar(require("./typeorm/json5-transform.js"), exports);
|
15
|
+
tslib_1.__exportStar(require("./typeorm/round-transform.js"), exports);
|
16
16
|
//# sourceMappingURL=index.js.map
|
package/dist-server/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../server/index.ts"],"names":[],"mappings":";;;AAAA,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../server/index.ts"],"names":[],"mappings":";;;AAAA,gEAAqC;AACrC,4EAAiD;AACjD,qEAA0C;AAC1C,2DAAgC;AAChC,sDAA2B;AAC3B,oEAAyC;AACzC,iEAAsC;AACtC,oEAAyC;AACzC,6DAAkC;AAElC,yEAA8C;AAC9C,uEAA4C;AAC5C,uEAA4C","sourcesContent":["export * from './migrations/index.js'\nexport * from './initializers/naming-strategy.js'\nexport * from './initializers/database.js'\nexport * from './utils/index.js'\nexport * from './pubsub.js'\nexport * from './pubsub-log-transport.js'\nexport * from './middlewares/index.js'\nexport * from './graphql-local-client.js'\nexport * from './service/index.js'\n\nexport * from './typeorm/encrypt-transform.js'\nexport * from './typeorm/json5-transform.js'\nexport * from './typeorm/round-transform.js'\n"]}
|
@@ -6,16 +6,10 @@ exports.addDataSource = addDataSource;
|
|
6
6
|
exports.removeDataSource = removeDataSource;
|
7
7
|
exports.getDataSourceNames = getDataSourceNames;
|
8
8
|
exports.getRepository = getRepository;
|
9
|
+
const tslib_1 = require("tslib");
|
9
10
|
const typeorm_1 = require("typeorm");
|
10
11
|
const env_1 = require("@things-factory/env");
|
11
|
-
const
|
12
|
-
var ormconfig;
|
13
|
-
try {
|
14
|
-
ormconfig = require(path.resolve(env_1.appRootPath, 'ormconfig'));
|
15
|
-
}
|
16
|
-
catch (e) {
|
17
|
-
ormconfig = require('@things-factory/shell/ormconfig');
|
18
|
-
}
|
12
|
+
const ormconfig_js_1 = tslib_1.__importDefault(require("./ormconfig.js"));
|
19
13
|
const dataSources = {};
|
20
14
|
/**
|
21
15
|
* Returns the specified DataSource by name.
|
@@ -61,7 +55,7 @@ function getRepository(target, tx) {
|
|
61
55
|
const databaseInitializer = async () => {
|
62
56
|
try {
|
63
57
|
const readConnectionConfig = env_1.config.get('ormconfig');
|
64
|
-
const dataSource = await (0, typeorm_1.createConnection)(Object.assign(Object.assign({},
|
58
|
+
const dataSource = await (0, typeorm_1.createConnection)(Object.assign(Object.assign({}, ormconfig_js_1.default), readConnectionConfig));
|
65
59
|
addDataSource('default', dataSource);
|
66
60
|
env_1.logger.info('Default DataSource established');
|
67
61
|
if (readConnectionConfig.type == 'sqlite' && readConnectionConfig.synchronize == false) {
|
@@ -70,7 +64,7 @@ const databaseInitializer = async () => {
|
|
70
64
|
await dataSource.query('PRAGMA foreign_keys=ON');
|
71
65
|
}
|
72
66
|
if (env_1.config.get('ormconfig4Tx')) {
|
73
|
-
const dataSource4Tx = new typeorm_1.DataSource(Object.assign(Object.assign({},
|
67
|
+
const dataSource4Tx = new typeorm_1.DataSource(Object.assign(Object.assign({}, ormconfig_js_1.default), env_1.config.get('ormconfig4Tx')));
|
74
68
|
await dataSource4Tx.initialize();
|
75
69
|
addDataSource('tx', dataSource4Tx);
|
76
70
|
env_1.logger.info('Transaction DataSource established');
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../server/initializers/database.ts"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../server/initializers/database.ts"],"names":[],"mappings":";;;AAYA,sCAEC;AAOD,sCAEC;AAMD,4CAEC;AAMD,gDAEC;AAOD,sCAEC;;AAhDD,qCAA+F;AAE/F,6CAAoD;AACpD,0EAAsC;AAEtC,MAAM,WAAW,GAAmC,EAAE,CAAA;AAEtD;;;;GAIG;AACH,SAAgB,aAAa,CAAC,IAAa;IACzC,OAAO,WAAW,CAAC,IAAI,IAAI,SAAS,CAAC,CAAA;AACvC,CAAC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAAC,IAAY,EAAE,UAAsB;IAChE,WAAW,CAAC,IAAI,CAAC,GAAG,UAAU,CAAA;AAChC,CAAC;AAED;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,IAAY;IAC3C,OAAO,WAAW,CAAC,IAAI,CAAC,CAAA;AAC1B,CAAC;AAED;;;GAGG;AACH,SAAgB,kBAAkB;IAChC,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;AACjC,CAAC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAAI,MAAuB,EAAE,EAAkB;IAC1E,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAI,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,aAAa,CAAI,MAAM,CAAC,CAAA;AAC7F,CAAC;AAED;;GAEG;AACI,MAAM,mBAAmB,GAAG,KAAK,IAAI,EAAE;IAC5C,IAAI,CAAC;QACH,MAAM,oBAAoB,GAAG,YAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QAEpD,MAAM,UAAU,GAAG,MAAM,IAAA,0BAAgB,kCACpC,sBAAS,GACT,oBAAoB,EACvB,CAAA;QAEF,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;QAEpC,YAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAA;QAE7C,IAAI,oBAAoB,CAAC,IAAI,IAAI,QAAQ,IAAI,oBAAoB,CAAC,WAAW,IAAI,KAAK,EAAE,CAAC;YACvF,MAAM,UAAU,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;YACjD,MAAM,UAAU,CAAC,WAAW,EAAE,CAAA;YAC9B,MAAM,UAAU,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;QAClD,CAAC;QAED,IAAI,YAAM,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;YAC/B,MAAM,aAAa,GAAG,IAAI,oBAAU,iCAC/B,sBAAS,GACT,YAAM,CAAC,GAAG,CAAC,cAAc,CAAC,EAC7B,CAAA;YACF,MAAM,aAAa,CAAC,UAAU,EAAE,CAAA;YAChC,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;YAElC,YAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAA;QACnD,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QACjC,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,YAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC,CAAA;AAlCY,QAAA,mBAAmB,uBAkC/B","sourcesContent":["import { createConnection, DataSource, EntityManager, EntityTarget, Repository } from 'typeorm'\n\nimport { config, logger } from '@things-factory/env'\nimport ormconfig from './ormconfig.js'\n\nconst dataSources: { [name: string]: DataSource } = {}\n\n/**\n * Returns the specified DataSource by name.\n * @param {string} name - The name of the DataSource.\n * @returns {DataSource} - The DataSource with the specified name.\n */\nexport function getDataSource(name?: string): DataSource {\n return dataSources[name || 'default']\n}\n\n/**\n * Adds a new DataSource with the specified name.\n * @param {string} name - The name of the DataSource to add.\n * @param {DataSource} dataSource - The DataSource to add.\n */\nexport function addDataSource(name: string, dataSource: DataSource) {\n dataSources[name] = dataSource\n}\n\n/**\n * Removes a DataSource with the specified name.\n * @param {string} name - The name of the DataSource to remove.\n */\nexport function removeDataSource(name: string) {\n delete dataSources[name]\n}\n\n/**\n * Returns an array of all registered DataSource names.\n * @returns {string[]} - An array of DataSource names.\n */\nexport function getDataSourceNames() {\n return Object.keys(dataSources)\n}\n\n/**\n * Returns a repository for the specified entity.\n * @param {EntityTarget<X>} target - The target entity for which to get the repository.\n * @returns {Repository<X>} - The repository for the specified entity.\n */\nexport function getRepository<X>(target: EntityTarget<X>, tx?: EntityManager): Repository<X> {\n return tx ? tx.getRepository<X>(target) : getDataSource('default').getRepository<X>(target)\n}\n\n/**\n * Initializes the database connections and data sources.\n */\nexport const databaseInitializer = async () => {\n try {\n const readConnectionConfig = config.get('ormconfig')\n\n const dataSource = await createConnection({\n ...ormconfig,\n ...readConnectionConfig\n })\n\n addDataSource('default', dataSource)\n\n logger.info('Default DataSource established')\n\n if (readConnectionConfig.type == 'sqlite' && readConnectionConfig.synchronize == false) {\n await dataSource.query('PRAGMA foreign_keys=OFF')\n await dataSource.synchronize()\n await dataSource.query('PRAGMA foreign_keys=ON')\n }\n\n if (config.get('ormconfig4Tx')) {\n const dataSource4Tx = new DataSource({\n ...ormconfig,\n ...config.get('ormconfig4Tx')\n })\n await dataSource4Tx.initialize()\n addDataSource('tx', dataSource4Tx)\n\n logger.info('Transaction DataSource established')\n } else {\n addDataSource('tx', dataSource)\n }\n } catch (e) {\n logger.error(e)\n }\n}\n"]}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const tslib_1 = require("tslib");
|
4
|
+
const env_1 = require("@things-factory/env");
|
5
|
+
const naming_strategy_js_1 = require("./naming-strategy.js");
|
6
|
+
const debug_1 = tslib_1.__importDefault(require("debug"));
|
7
|
+
const debugLogger = (0, debug_1.default)('things-factory:shell:ormconfig');
|
8
|
+
function flattenDeep(arr) {
|
9
|
+
return arr.reduce((acc, val) => (Array.isArray(val) ? acc.concat(flattenDeep(val)) : acc.concat(val)), []);
|
10
|
+
}
|
11
|
+
/*
|
12
|
+
dependencies list를 받아서, entities, migrations, subscribers 폴더 어레이를 빌드한다.
|
13
|
+
*/
|
14
|
+
var entities = env_1.orderedModuleNames.map(dep => (0, env_1.loader)(dep).entities).filter(entity => entity && entity.length > 0);
|
15
|
+
entities = flattenDeep(entities);
|
16
|
+
var migrations = env_1.orderedModuleNames.map(dep => (0, env_1.loader)(dep).migrations).filter(entity => entity && entity.length > 0);
|
17
|
+
migrations = flattenDeep(migrations);
|
18
|
+
var subscribers = env_1.orderedModuleNames.map(dep => (0, env_1.loader)(dep).subscribers).filter(entity => entity && entity.length > 0);
|
19
|
+
subscribers = flattenDeep(subscribers);
|
20
|
+
debugLogger('entities', entities);
|
21
|
+
debugLogger('migrations', migrations);
|
22
|
+
debugLogger('subscribers', subscribers);
|
23
|
+
module.exports = {
|
24
|
+
namingStrategy: new naming_strategy_js_1.NamingStrategy(),
|
25
|
+
entities,
|
26
|
+
migrations,
|
27
|
+
subscribers
|
28
|
+
};
|
29
|
+
exports.default = module.exports;
|
30
|
+
//# sourceMappingURL=ormconfig.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ormconfig.js","sourceRoot":"","sources":["../../server/initializers/ormconfig.ts"],"names":[],"mappings":";;;AAAA,6CAAgE;AAChE,6DAAqD;AACrD,0DAAyB;AAEzB,MAAM,WAAW,GAAG,IAAA,eAAK,EAAC,gCAAgC,CAAC,CAAA;AAE3D,SAAS,WAAW,CAAC,GAAG;IACtB,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;AAC5G,CAAC;AAED;;EAEE;AACF,IAAI,QAAQ,GAAG,wBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAA,YAAM,EAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;AAChH,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAA;AAEhC,IAAI,UAAU,GAAG,wBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAA,YAAM,EAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;AACpH,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC,CAAA;AAEpC,IAAI,WAAW,GAAG,wBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAA,YAAM,EAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;AACtH,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,CAAA;AAEtC,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;AACjC,WAAW,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;AACrC,WAAW,CAAC,aAAa,EAAE,WAAW,CAAC,CAAA;AAEvC,MAAM,CAAC,OAAO,GAAG;IACf,cAAc,EAAE,IAAI,mCAAc,EAAE;IACpC,QAAQ;IACR,UAAU;IACV,WAAW;CACZ,CAAA;AAED,kBAAe,MAAM,CAAC,OAAO,CAAA","sourcesContent":["import { orderedModuleNames, loader } from '@things-factory/env'\nimport { NamingStrategy } from './naming-strategy.js'\nimport debug from 'debug'\n\nconst debugLogger = debug('things-factory:shell:ormconfig')\n\nfunction flattenDeep(arr) {\n return arr.reduce((acc, val) => (Array.isArray(val) ? acc.concat(flattenDeep(val)) : acc.concat(val)), [])\n}\n\n/*\n dependencies list를 받아서, entities, migrations, subscribers 폴더 어레이를 빌드한다.\n*/\nvar entities = orderedModuleNames.map(dep => loader(dep).entities).filter(entity => entity && entity.length > 0)\nentities = flattenDeep(entities)\n\nvar migrations = orderedModuleNames.map(dep => loader(dep).migrations).filter(entity => entity && entity.length > 0)\nmigrations = flattenDeep(migrations)\n\nvar subscribers = orderedModuleNames.map(dep => loader(dep).subscribers).filter(entity => entity && entity.length > 0)\nsubscribers = flattenDeep(subscribers)\n\ndebugLogger('entities', entities)\ndebugLogger('migrations', migrations)\ndebugLogger('subscribers', subscribers)\n\nmodule.exports = {\n namingStrategy: new NamingStrategy(),\n entities,\n migrations,\n subscribers\n}\n\nexport default module.exports\n"]}
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.domainMiddleware = domainMiddleware;
|
4
4
|
const tslib_1 = require("tslib");
|
5
5
|
const request_ip_1 = tslib_1.__importDefault(require("request-ip"));
|
6
|
-
const
|
6
|
+
const get_domain_js_1 = require("../utils/get-domain.js");
|
7
7
|
async function domainMiddleware(context, next) {
|
8
8
|
var { domain } = context.state;
|
9
9
|
if (!domain) {
|
@@ -12,7 +12,7 @@ async function domainMiddleware(context, next) {
|
|
12
12
|
* For purposes such as API calls, the target domainType may be different from the system domainType.
|
13
13
|
* So, we don't check domainType here.
|
14
14
|
*/
|
15
|
-
domain = await (0,
|
15
|
+
domain = await (0, get_domain_js_1.getDomainFromURL)(context);
|
16
16
|
}
|
17
17
|
if (domain) {
|
18
18
|
const ip = request_ip_1.default.getClientIp(context.req);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"domain-middleware.js","sourceRoot":"","sources":["../../server/middlewares/domain-middleware.ts"],"names":[],"mappings":";;AAGA,4CAwDC;;AA3DD,oEAAkC;AAClC,
|
1
|
+
{"version":3,"file":"domain-middleware.js","sourceRoot":"","sources":["../../server/middlewares/domain-middleware.ts"],"names":[],"mappings":";;AAGA,4CAwDC;;AA3DD,oEAAkC;AAClC,0DAAyD;AAElD,KAAK,UAAU,gBAAgB,CAAC,OAAY,EAAE,IAAS;IAC5D,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ;;;;WAIG;QACH,MAAM,GAAG,MAAM,IAAA,gCAAgB,EAAC,OAAO,CAAC,CAAA;IAC1C,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,EAAE,GAAG,oBAAS,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC7C,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE,EAAE,aAAa,GAAG,EAAE,EAAE,UAAU,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAA;QAEnG,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrD,kBAAkB;YAClB,MAAM,WAAW,GACf,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;gBACxB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACpB,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBAClC,CAAC,CAAC,CAAA;YAEJ,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,OAAO,CAAC,MAAM,GAAG,GAAG,CAAA;gBACpB,OAAM;YACR,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,GACf,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;gBACxB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACpB,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBAClC,CAAC,CAAC,CAAA;YAEJ,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,CAAC,MAAM,GAAG,GAAG,CAAA;gBACpB,OAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7D,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACrC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAClC,CAAC,CAAC,CAAA;YAEF,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAA;YAE9B,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CAAC,oBAAoB,GAAG,UAAU,CAAA;YACjD,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAA;IAE7B,OAAO,IAAI,EAAE,CAAA;AACf,CAAC","sourcesContent":["import requestIp from 'request-ip'\nimport { getDomainFromURL } from '../utils/get-domain.js'\n\nexport async function domainMiddleware(context: any, next: any) {\n var { domain } = context.state\n if (!domain) {\n /*\n * The domainType should be checked only when signin and checkin.\n * For purposes such as API calls, the target domainType may be different from the system domainType.\n * So, we don't check domainType here.\n */\n domain = await getDomainFromURL(context)\n }\n\n if (domain) {\n const ip = requestIp.getClientIp(context.req)\n const { whitelist = [], blacklist = [], protectedlist = [], privileges = [] } = domain.iplist || {}\n\n if (Array.isArray(whitelist) && whitelist.length > 0) {\n /* whitelist 우선 */\n const whitelisted =\n Array.isArray(whitelist) &&\n whitelist.some(item => {\n return new RegExp(item).test(ip)\n })\n\n if (!whitelisted) {\n context.status = 403\n return\n }\n } else {\n const blacklisted =\n Array.isArray(blacklist) &&\n blacklist.some(item => {\n return new RegExp(item).test(ip)\n })\n\n if (blacklisted) {\n context.status = 403\n return\n }\n }\n\n if (Array.isArray(protectedlist) && protectedlist.length > 0) {\n const safe = protectedlist.some(item => {\n return new RegExp(item).test(ip)\n })\n\n context.state.unsafeIP = !safe\n\n if (!safe) {\n context.state.prohibitedPrivileges = privileges\n }\n }\n }\n\n context.state.domain = domain\n\n return next()\n}\n"]}
|
@@ -1,2 +1,2 @@
|
|
1
1
|
export declare function initMiddlewares(app: any): void;
|
2
|
-
export * from './domain-middleware';
|
2
|
+
export * from './domain-middleware.js';
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.initMiddlewares = initMiddlewares;
|
4
4
|
const tslib_1 = require("tslib");
|
5
5
|
const env_1 = require("@things-factory/env");
|
6
|
-
const
|
6
|
+
const domain_middleware_js_1 = require("./domain-middleware.js");
|
7
7
|
function initMiddlewares(app) {
|
8
8
|
app.subdomainOffset = env_1.config.get('subdomainOffset', 2);
|
9
9
|
app.on('error', (err, context) => {
|
@@ -31,10 +31,10 @@ function initMiddlewares(app) {
|
|
31
31
|
app.use(async (context, next) => {
|
32
32
|
const { method, path } = context;
|
33
33
|
if (method == 'POST' && path.startsWith('/graphql')) {
|
34
|
-
return await (0,
|
34
|
+
return await (0, domain_middleware_js_1.domainMiddleware)(context, next);
|
35
35
|
}
|
36
36
|
await next();
|
37
37
|
});
|
38
38
|
}
|
39
|
-
tslib_1.__exportStar(require("./domain-middleware"), exports);
|
39
|
+
tslib_1.__exportStar(require("./domain-middleware.js"), exports);
|
40
40
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/middlewares/index.ts"],"names":[],"mappings":";;AAIA,0CAoCC;;AAxCD,6CAAoD;AAEpD,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/middlewares/index.ts"],"names":[],"mappings":";;AAIA,0CAoCC;;AAxCD,6CAAoD;AAEpD,iEAAyD;AAEzD,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,CAAC;YACH,MAAM,IAAI,EAAE,CAAA;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,GAAG,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,KAAI,GAAG,CAAA;YACnC,OAAO,CAAC,IAAI,GAAG,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,CAAA;YAE3B,yCAAyC;YACzC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;QACzC,CAAC;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,CAAC;YACpD,OAAO,MAAM,IAAA,uCAAgB,EAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QAC9C,CAAC;QAED,MAAM,IAAI,EAAE,CAAA;IACd,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,iEAAsC","sourcesContent":["import { config, logger } from '@things-factory/env'\n\nimport { domainMiddleware } from './domain-middleware.js'\n\nexport function initMiddlewares(app) {\n app.subdomainOffset = config.get('subdomainOffset', 2)\n\n app.on('error', (err, context) => {\n logger.error(err)\n })\n\n /*\n * Catching downstream errors\n * - recommend to use context.throw, context.assert\n */\n app.use(async (context, next) => {\n try {\n await next()\n } catch (err) {\n context.status = err?.status || 500\n context.body = err?.message\n\n // emitting error to app.on('error', ...)\n context.app.emit('error', err, context)\n }\n })\n\n /*\n * post:graphql 에 대해서는 domain을 확인한다.\n * graphql app을 router에 적용하지 못하기 때문임.\n */\n app.use(async (context, next) => {\n const { method, path } = context\n\n if (method == 'POST' && path.startsWith('/graphql')) {\n return await domainMiddleware(context, next)\n }\n\n await next()\n })\n}\n\nexport * from './domain-middleware.js'\n"]}
|
@@ -1,8 +1,8 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.SeedDomain1000000000000 = void 0;
|
4
|
-
const
|
5
|
-
const
|
4
|
+
const database_js_1 = require("../initializers/database.js");
|
5
|
+
const domain_js_1 = require("../service/domain/domain.js");
|
6
6
|
const SEED_DOMAINS = [
|
7
7
|
{
|
8
8
|
name: 'SYSTEM',
|
@@ -12,13 +12,13 @@ const SEED_DOMAINS = [
|
|
12
12
|
];
|
13
13
|
class SeedDomain1000000000000 {
|
14
14
|
async up(queryRunner) {
|
15
|
-
const repository = (0,
|
15
|
+
const repository = (0, database_js_1.getRepository)(domain_js_1.Domain);
|
16
16
|
return await Promise.all(SEED_DOMAINS.map(async (domain) => {
|
17
17
|
await repository.save(Object.assign({}, domain));
|
18
18
|
}));
|
19
19
|
}
|
20
20
|
async down(queryRunner) {
|
21
|
-
const repository = (0,
|
21
|
+
const repository = (0, database_js_1.getRepository)(domain_js_1.Domain);
|
22
22
|
return await Promise.all(SEED_DOMAINS.reverse().map(async (domain) => {
|
23
23
|
let recode = await repository.findOneBy({ subdomain: domain.subdomain });
|
24
24
|
await repository.remove(recode);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"1000000000000-SeedDomain.js","sourceRoot":"","sources":["../../server/migrations/1000000000000-SeedDomain.ts"],"names":[],"mappings":";;;AAEA,
|
1
|
+
{"version":3,"file":"1000000000000-SeedDomain.js","sourceRoot":"","sources":["../../server/migrations/1000000000000-SeedDomain.ts"],"names":[],"mappings":";;;AAEA,6DAA2D;AAC3D,2DAAoD;AAEpD,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,2BAAa,EAAC,kBAAM,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,2BAAa,EAAC,kBAAM,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,SAAS,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAA;YACxE,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACjC,CAAC,CAAC,CACH,CAAA;IACH,CAAC;CACF;AAvBD,0DAuBC","sourcesContent":["import { MigrationInterface, QueryRunner } from 'typeorm'\n\nimport { getRepository } from '../initializers/database.js'\nimport { Domain } from '../service/domain/domain.js'\n\nconst SEED_DOMAINS = [\n {\n name: 'SYSTEM',\n subdomain: 'system',\n systemFlag: true\n }\n]\n\nexport class SeedDomain1000000000000 implements MigrationInterface {\n public async up(queryRunner: QueryRunner): Promise<any> {\n const repository = getRepository(Domain)\n\n return await Promise.all(\n SEED_DOMAINS.map(async domain => {\n await repository.save({\n ...domain\n })\n })\n )\n }\n\n public async down(queryRunner: QueryRunner): Promise<any> {\n const repository = getRepository(Domain)\n\n return await Promise.all(\n SEED_DOMAINS.reverse().map(async domain => {\n let recode = await repository.findOneBy({ subdomain: domain.subdomain })\n await repository.remove(recode)\n })\n )\n }\n}\n"]}
|
@@ -1,12 +1,13 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.migrations = void 0;
|
4
|
-
const
|
5
|
-
const
|
4
|
+
const tslib_1 = require("tslib");
|
5
|
+
const glob_1 = tslib_1.__importDefault(require("glob"));
|
6
|
+
const path_1 = tslib_1.__importDefault(require("path"));
|
6
7
|
exports.migrations = [];
|
7
|
-
|
8
|
+
glob_1.default.sync(path_1.default.resolve(__dirname, '.', '**', '*.js')).forEach(function (file) {
|
8
9
|
if (file.indexOf('index.js') !== -1)
|
9
10
|
return;
|
10
|
-
exports.migrations = exports.migrations.concat(Object.values(require(
|
11
|
+
exports.migrations = exports.migrations.concat(Object.values(require(path_1.default.resolve(file))) || []);
|
11
12
|
});
|
12
13
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/migrations/index.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/migrations/index.ts"],"names":[],"mappings":";;;;AAAA,wDAAuB;AACvB,wDAAuB;AAEZ,QAAA,UAAU,GAAG,EAAE,CAAA;AAE1B,cAAI,CAAC,IAAI,CAAC,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI;IAC1E,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,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;AAClF,CAAC,CAAC,CAAA","sourcesContent":["import glob from 'glob'\nimport path from '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"]}
|
@@ -3,13 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.domainPrivateRouter = exports.domainPublicRouter = void 0;
|
4
4
|
const tslib_1 = require("tslib");
|
5
5
|
const koa_router_1 = tslib_1.__importDefault(require("koa-router"));
|
6
|
-
const
|
6
|
+
const domain_middleware_js_1 = require("../middlewares/domain-middleware.js");
|
7
7
|
exports.domainPublicRouter = new koa_router_1.default();
|
8
8
|
exports.domainPublicRouter.use(async (context, next) => {
|
9
9
|
await next();
|
10
|
-
},
|
10
|
+
}, domain_middleware_js_1.domainMiddleware);
|
11
11
|
exports.domainPrivateRouter = new koa_router_1.default();
|
12
12
|
exports.domainPrivateRouter.use(async (context, next) => {
|
13
13
|
await next();
|
14
|
-
},
|
14
|
+
}, domain_middleware_js_1.domainMiddleware);
|
15
15
|
//# sourceMappingURL=domain-router.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"domain-router.js","sourceRoot":"","sources":["../../server/routers/domain-router.ts"],"names":[],"mappings":";;;;AAAA,oEAA+B;AAE/B,
|
1
|
+
{"version":3,"file":"domain-router.js","sourceRoot":"","sources":["../../server/routers/domain-router.ts"],"names":[],"mappings":";;;;AAAA,oEAA+B;AAE/B,8EAAsE;AAEzD,QAAA,kBAAkB,GAAG,IAAI,oBAAM,EAAE,CAAA;AAC9C,0BAAkB,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IAC7C,MAAM,IAAI,EAAE,CAAA;AACd,CAAC,EAAE,uCAAgB,CAAC,CAAA;AAEP,QAAA,mBAAmB,GAAG,IAAI,oBAAM,EAAE,CAAA;AAC/C,2BAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IAC9C,MAAM,IAAI,EAAE,CAAA;AACd,CAAC,EAAE,uCAAgB,CAAC,CAAA","sourcesContent":["import Router from 'koa-router'\n\nimport { domainMiddleware } from '../middlewares/domain-middleware.js'\n\nexport const domainPublicRouter = new Router()\ndomainPublicRouter.use(async (context, next) => {\n await next()\n}, domainMiddleware)\n\nexport const domainPrivateRouter = new Router()\ndomainPrivateRouter.use(async (context, next) => {\n await next()\n}, domainMiddleware)\n"]}
|
@@ -4,13 +4,14 @@ exports.globalPrivateRouter = exports.globalPublicRouter = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
5
5
|
const koa_router_1 = tslib_1.__importDefault(require("koa-router"));
|
6
6
|
const request_ip_1 = tslib_1.__importDefault(require("request-ip"));
|
7
|
+
const npm_license_crawler_1 = tslib_1.__importDefault(require("npm-license-crawler"));
|
8
|
+
const env_1 = require("@things-factory/env");
|
7
9
|
const operato_license_checker_1 = require("@things-factory/operato-license-checker");
|
8
|
-
const
|
9
|
-
var crawler = require('npm-license-crawler');
|
10
|
+
const domain_middleware_js_1 = require("../middlewares/domain-middleware.js");
|
10
11
|
exports.globalPublicRouter = new koa_router_1.default();
|
11
12
|
exports.globalPrivateRouter = new koa_router_1.default();
|
12
13
|
/* even though global private router, catch domain for information */
|
13
|
-
exports.globalPrivateRouter.use(
|
14
|
+
exports.globalPrivateRouter.use(domain_middleware_js_1.domainMiddleware);
|
14
15
|
if (process.env.NODE_ENV != 'production') {
|
15
16
|
exports.globalPublicRouter.get('/graphql', async (context, next) => {
|
16
17
|
const initialEndpoint = context.request.href;
|
@@ -18,8 +19,7 @@ if (process.env.NODE_ENV != 'production') {
|
|
18
19
|
});
|
19
20
|
}
|
20
21
|
exports.globalPublicRouter.get('/dependencies', async (context, next) => {
|
21
|
-
|
22
|
-
await context.render('dependencies-view-graphviz', { model: dependencyGraph });
|
22
|
+
await context.render('dependencies-view-graphviz', { model: env_1.dependencyGraph });
|
23
23
|
});
|
24
24
|
exports.globalPublicRouter.get('/license-info', (context, next) => {
|
25
25
|
context.type = 'application/json';
|
@@ -34,7 +34,7 @@ exports.globalPublicRouter.get('/opensource-licenses', (context, next) => {
|
|
34
34
|
production: true,
|
35
35
|
unknown: false
|
36
36
|
};
|
37
|
-
|
37
|
+
npm_license_crawler_1.default.dumpLicenses(options, function (error, res) {
|
38
38
|
if (error) {
|
39
39
|
console.error('get:/opensource-licenses', error);
|
40
40
|
reject(error);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"global-router.js","sourceRoot":"","sources":["../../server/routers/global-router.ts"],"names":[],"mappings":";;;;AAAA,oEAA+B;AAC/B,oEAAkC;
|
1
|
+
{"version":3,"file":"global-router.js","sourceRoot":"","sources":["../../server/routers/global-router.ts"],"names":[],"mappings":"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","sourcesContent":["import Router from 'koa-router'\nimport requestIp from 'request-ip'\nimport crawler from 'npm-license-crawler'\n\nimport { dependencyGraph } from '@things-factory/env'\nimport { getLicenseInfo } from '@things-factory/operato-license-checker'\n\nimport { domainMiddleware } from '../middlewares/domain-middleware.js'\n\nexport const globalPublicRouter = new Router()\nexport const globalPrivateRouter = new Router()\n\n/* even though global private router, catch domain for information */\nglobalPrivateRouter.use(domainMiddleware)\n\nif (process.env.NODE_ENV != 'production') {\n globalPublicRouter.get('/graphql', async (context, next) => {\n const initialEndpoint = context.request.href\n\n await context.render('graphql', { initialEndpoint })\n })\n}\n\nglobalPublicRouter.get('/dependencies', async (context, next) => {\n await context.render('dependencies-view-graphviz', { model: dependencyGraph })\n})\n\nglobalPublicRouter.get('/license-info', (context, next) => {\n context.type = 'application/json'\n context.body = getLicenseInfo()\n})\n\nglobalPublicRouter.get('/opensource-licenses', (context, next) => {\n return new Promise(function (resolve, reject) {\n var options = {\n start: ['.'],\n exclude: [],\n noColor: true,\n production: true,\n unknown: false\n }\n\n crawler.dumpLicenses(options, function (error, res) {\n if (error) {\n console.error('get:/opensource-licenses', error)\n reject(error)\n } else {\n context.type = 'application/json'\n context.body = res\n resolve(res)\n }\n })\n })\n})\n\nglobalPublicRouter.get('/request-info', context => {\n context.body = `\n Client info. from \"requestIp\": ${requestIp.getClientIp(context.req)}\n\n Client info. from \"context.ip\": ${context.ip}\n Client info. from \"context.protocol\": ${context.protocol}\n Client info. from \"context.host\": ${context.host}\n\n Client info. from \"x-forwarded-for\": ${context.headers['x-forwarded-for']}\n Client info. from \"x-forwarded-proto\": ${context.headers['x-forwarded-proto']}\n Client info. from \"x-forwarded-host\": ${context.headers['x-forwarded-host']}\n Client info. from \"x-forwarded-port\": ${context.headers['x-forwarded-port']}\n `\n})\n\n/* Paths starting with /public are assumed to use the koa-view renderer. */\nglobalPublicRouter.get('/public/(.[^.]*)', async (context, next) => {\n const { path } = context\n await context.render(path.substr(1))\n})\n"]}
|
@@ -1,3 +1,3 @@
|
|
1
|
-
export * from './global-router';
|
2
|
-
export * from './domain-router';
|
3
|
-
export * from './graphql-router';
|
1
|
+
export * from './global-router.js';
|
2
|
+
export * from './domain-router.js';
|
3
|
+
export * from './graphql-router.js';
|
@@ -1,7 +1,7 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
const tslib_1 = require("tslib");
|
4
|
-
tslib_1.__exportStar(require("./global-router"), exports);
|
5
|
-
tslib_1.__exportStar(require("./domain-router"), exports);
|
6
|
-
tslib_1.__exportStar(require("./graphql-router"), exports);
|
4
|
+
tslib_1.__exportStar(require("./global-router.js"), exports);
|
5
|
+
tslib_1.__exportStar(require("./domain-router.js"), exports);
|
6
|
+
tslib_1.__exportStar(require("./graphql-router.js"), exports);
|
7
7
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/routers/index.ts"],"names":[],"mappings":";;;AAAA,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/routers/index.ts"],"names":[],"mappings":";;;AAAA,6DAAkC;AAClC,6DAAkC;AAClC,8DAAmC","sourcesContent":["export * from './global-router.js'\nexport * from './domain-router.js'\nexport * from './graphql-router.js'\n"]}
|
package/dist-server/schema.js
CHANGED
@@ -7,8 +7,7 @@ const graphql_scalars_1 = require("graphql-scalars");
|
|
7
7
|
const schema_1 = require("@graphql-tools/schema");
|
8
8
|
const env_1 = require("@things-factory/env");
|
9
9
|
const utils_1 = require("@things-factory/utils");
|
10
|
-
const
|
11
|
-
const path = require('path');
|
10
|
+
const pubsub_js_1 = require("./pubsub.js");
|
12
11
|
/**
|
13
12
|
* Generates and returns a GraphQL schema by merging schemas and resolvers from various modules.
|
14
13
|
* @returns {GraphQLSchema} The merged GraphQL schema.
|
@@ -51,7 +50,9 @@ async function schema() {
|
|
51
50
|
const defs = {
|
52
51
|
query: queries.length > 0 ? ['type Query {', ...queries, '}'].join('\n') : 'type Query { _ : Boolean }',
|
53
52
|
mutation: mutations.length > 0 ? ['type Mutation {', ...mutations, '}'].join('\n') : 'type Mutation { _ : Boolean }',
|
54
|
-
subscription: subscriptions.length > 0
|
53
|
+
subscription: subscriptions.length > 0
|
54
|
+
? ['type Subscription {', ...subscriptions, '}'].join('\n')
|
55
|
+
: 'type Subscription { _ : Boolean }'
|
55
56
|
};
|
56
57
|
typeDefs = [
|
57
58
|
...graphql_scalars_1.typeDefs,
|
@@ -99,7 +100,7 @@ async function schema() {
|
|
99
100
|
var merged = (0, schema_1.mergeSchemas)({
|
100
101
|
schemas: [
|
101
102
|
await (0, type_graphql_1.buildSchema)({
|
102
|
-
pubSub:
|
103
|
+
pubSub: pubsub_js_1.pubsub,
|
103
104
|
resolvers: schemas.resolverClasses,
|
104
105
|
// automatically create `schema.gql` file with schema definition
|
105
106
|
// in project's working directory
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../server/schema.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../server/schema.ts"],"names":[],"mappings":"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","sourcesContent":["import { GraphQLSchema } from 'graphql'\nimport { GraphQLUpload } from 'graphql-upload/GraphQLUpload.js'\nimport { buildSchema } from 'type-graphql'\nimport { typeDefs as scalarTypeDefs, resolvers as scalarResolvers } from 'graphql-scalars'\n\nimport { mergeSchemas } from '@graphql-tools/schema'\nimport { loader, orderedModuleNames } from '@things-factory/env'\nimport { deepMerge } from '@things-factory/utils'\nimport { pubsub } from './pubsub.js'\n\n/**\n * Generates and returns a GraphQL schema by merging schemas and resolvers from various modules.\n * @returns {GraphQLSchema} The merged GraphQL schema.\n */\nexport async function schema() {\n const schemas = orderedModuleNames\n .map(dep => loader(dep).schema)\n .filter(schema => schema)\n .reduce(\n (sum, schema) => {\n const { typeDefs, resolvers, resolverClasses, directives } = sum\n let {\n typeDefs: sTypeDefs = {},\n resolvers: sResolvers = {},\n resolverClasses: sResolverClasses = [],\n directives: sDirectives = {}\n } = schema\n\n return {\n typeDefs: deepMerge(typeDefs, sTypeDefs),\n resolvers: deepMerge(resolvers, sResolvers),\n resolverClasses: [...resolverClasses, ...(sResolverClasses || [])],\n directives: deepMerge(directives, sDirectives)\n }\n },\n {\n typeDefs: {},\n resolvers: {},\n resolverClasses: [],\n directives: {}\n }\n )\n\n /* for typeDefs */\n var typeDefs = schemas.typeDefs\n var { queries = [], mutations = [], subscriptions = [], directives = [], types = [] } = typeDefs\n\n queries = [...queries, ...(typeDefs.Query || [])]\n mutations = [...mutations, ...(typeDefs.Mutation || [])]\n subscriptions = [...subscriptions, ...(typeDefs.Subscription || [])]\n directives = [...directives, ...(typeDefs.Directive || [])]\n\n delete typeDefs.Query\n delete typeDefs.Mutation\n delete typeDefs.Subscription\n delete typeDefs.Directive\n\n delete typeDefs.queries\n delete typeDefs.mutations\n delete typeDefs.subscriptions\n delete typeDefs.directives\n delete typeDefs.types\n\n const defs = {\n query: queries.length > 0 ? ['type Query {', ...queries, '}'].join('\\n') : 'type Query { _ : Boolean }',\n mutation:\n mutations.length > 0 ? ['type Mutation {', ...mutations, '}'].join('\\n') : 'type Mutation { _ : Boolean }',\n subscription:\n subscriptions.length > 0\n ? ['type Subscription {', ...subscriptions, '}'].join('\\n')\n : 'type Subscription { _ : Boolean }'\n }\n\n typeDefs = [\n ...scalarTypeDefs,\n `\n scalar Upload\n `,\n defs.query,\n defs.mutation,\n defs.subscription,\n ...directives,\n ...types,\n ...Object.values(typeDefs)\n ].filter(type => !!type)\n\n /* for resolvers */\n var { resolvers } = schemas\n var { queries = [], mutations = [], subscriptions = [], directives = [] } = resolvers\n\n var queryResolvers =\n queries.length > 0 &&\n queries.reduce((sum, query) => {\n return {\n ...sum,\n ...query\n }\n }, {})\n\n var mutationResolvers =\n mutations.length > 0 &&\n mutations.reduce((sum, mutation) => {\n return {\n ...sum,\n ...mutation\n }\n }, {})\n\n var subscriptionResolvers =\n subscriptions.length > 0 &&\n subscriptions.reduce((sum, subscription) => {\n return {\n ...sum,\n ...subscription\n }\n }, {})\n\n var directiveResolvers = directives.reduce((sum, directive) => {\n return {\n ...sum,\n ...directive\n }\n }, {})\n\n delete resolvers.queries\n delete resolvers.mutations\n delete resolvers.subscriptions\n delete resolvers.directives\n\n var Query = resolvers.Query || {}\n var Mutation = resolvers.Mutation || {}\n var Subscription = resolvers.Subscription || {}\n var Directive = resolvers.Directive || {}\n\n delete resolvers.Query\n delete resolvers.Mutation\n delete resolvers.Subscription\n delete resolvers.Directive\n\n resolvers = {\n Upload: GraphQLUpload as any,\n Query: deepMerge(Query, queryResolvers),\n Mutation: deepMerge(Mutation, mutationResolvers),\n Subscription: deepMerge(Subscription, subscriptionResolvers),\n ...scalarResolvers,\n ...resolvers\n }\n\n var merged = mergeSchemas({\n schemas: [\n await buildSchema({\n pubSub: pubsub,\n resolvers: schemas.resolverClasses,\n // automatically create `schema.gql` file with schema definition\n // in project's working directory\n // or create the file with schema in selected path\n emitSchemaFile: process.env.NODE_ENV == 'development'\n // emitSchemaFile: path.resolve(__dirname, 'snapshots/schema', 'schema.gql')\n })\n ],\n typeDefs,\n resolvers\n })\n\n Object.values(schemas.directives).map((directive: (schema: GraphQLSchema) => {}) => {\n merged = directive(merged) as any\n })\n\n return merged\n}\n"]}
|