@common-stack/generate-plugin 6.0.1-alpha.9 → 6.0.2-alpha.2

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 (233) hide show
  1. package/.eslintrc.json +1 -1
  2. package/CHANGELOG.md +12 -0
  3. package/README.md +280 -10
  4. package/cde-config.json +86 -0
  5. package/executors.json +14 -0
  6. package/generators.json +15 -0
  7. package/lib/constants/index.cjs +2 -1
  8. package/lib/constants/index.cjs.map +1 -1
  9. package/lib/constants/index.d.ts +1 -0
  10. package/lib/constants/index.mjs +2 -1
  11. package/lib/constants/index.mjs.map +1 -1
  12. package/lib/executors/sort-package-json/executor.cjs +46 -0
  13. package/lib/executors/sort-package-json/executor.cjs.map +1 -0
  14. package/lib/executors/sort-package-json/executor.d.ts +4 -0
  15. package/lib/executors/sort-package-json/executor.mjs +46 -0
  16. package/lib/executors/sort-package-json/executor.mjs.map +1 -0
  17. package/lib/executors/sort-package-json/executor.spec.d.ts +1 -0
  18. package/lib/executors/sort-package-json/schema.json +9 -0
  19. package/lib/executors/update-deploy-version/executor.cjs +22 -0
  20. package/lib/executors/update-deploy-version/executor.cjs.map +1 -0
  21. package/lib/executors/update-deploy-version/executor.d.ts +4 -0
  22. package/lib/executors/update-deploy-version/executor.mjs +22 -0
  23. package/lib/executors/update-deploy-version/executor.mjs.map +1 -0
  24. package/lib/executors/update-deploy-version/executor.spec.d.ts +1 -0
  25. package/lib/executors/update-deploy-version/schema.json +14 -0
  26. package/lib/generators/add-backend/files/CHANGELOG.md +0 -0
  27. package/lib/generators/add-backend/files/Dockerfile +1 -1
  28. package/lib/generators/add-backend/files/package.json +1 -18
  29. package/lib/generators/add-backend/files/tsconfig.json +1 -1
  30. package/lib/generators/add-backend/files/webpack.config.js +6 -10
  31. package/lib/generators/add-backend/generator.cjs +21 -17
  32. package/lib/generators/add-backend/generator.cjs.map +1 -1
  33. package/lib/generators/add-backend/generator.d.ts +1 -0
  34. package/lib/generators/add-backend/generator.mjs +21 -17
  35. package/lib/generators/add-backend/generator.mjs.map +1 -1
  36. package/lib/generators/add-browser-package/files/package.json +2 -2
  37. package/lib/generators/add-browser-package/generator.cjs +14 -16
  38. package/lib/generators/add-browser-package/generator.cjs.map +1 -1
  39. package/lib/generators/add-browser-package/generator.d.ts +1 -0
  40. package/lib/generators/add-browser-package/generator.mjs +14 -16
  41. package/lib/generators/add-browser-package/generator.mjs.map +1 -1
  42. package/lib/generators/add-client-package/files/CHANGELOG.md +807 -0
  43. package/lib/generators/add-client-package/files/LICENSE +674 -0
  44. package/lib/generators/add-client-package/files/jest.config.js +13 -0
  45. package/lib/generators/add-client-package/files/package.json +30 -0
  46. package/lib/generators/add-client-package/files/rollup.config.mjs +29 -0
  47. package/lib/generators/add-client-package/files/src/components/index.tsx.template +1 -0
  48. package/lib/generators/add-client-package/files/src/index.ts.template +1 -0
  49. package/lib/generators/add-client-package/files/tsconfig.json +27 -0
  50. package/lib/generators/add-client-package/files/webpack.config.js +72 -0
  51. package/lib/generators/add-client-package/generator.cjs +17 -0
  52. package/lib/generators/add-client-package/generator.cjs.map +1 -0
  53. package/lib/generators/add-client-package/generator.d.ts +5 -0
  54. package/lib/generators/add-client-package/generator.mjs +17 -0
  55. package/lib/generators/add-client-package/generator.mjs.map +1 -0
  56. package/lib/generators/add-client-package/generator.spec.d.ts +1 -0
  57. package/lib/generators/add-client-package/schema.json +19 -0
  58. package/lib/generators/add-core-package/files/CHANGELOG.md +1076 -0
  59. package/lib/generators/add-core-package/files/LICENSE +39 -0
  60. package/lib/generators/add-core-package/files/jest.config.js +3 -0
  61. package/lib/generators/add-core-package/files/package.json +30 -0
  62. package/lib/generators/add-core-package/files/rollup.config.mjs +65 -0
  63. package/lib/generators/add-core-package/files/src/constants/index.ts.template +1 -0
  64. package/lib/generators/add-core-package/files/src/constants/types.ts.template +3 -0
  65. package/lib/generators/add-core-package/files/src/index.ts.template +2 -0
  66. package/lib/generators/add-core-package/files/src/types/index.ts.template +1 -0
  67. package/lib/generators/add-core-package/files/src/types/types.ts.template +17 -0
  68. package/lib/generators/add-core-package/files/tsconfig.json +22 -0
  69. package/lib/generators/add-core-package/files/webpack.config.js +53 -0
  70. package/lib/generators/add-core-package/generator.cjs +17 -0
  71. package/lib/generators/add-core-package/generator.cjs.map +1 -0
  72. package/lib/generators/add-core-package/generator.d.ts +5 -0
  73. package/lib/generators/add-core-package/generator.mjs +17 -0
  74. package/lib/generators/add-core-package/generator.mjs.map +1 -0
  75. package/lib/generators/add-core-package/generator.spec.d.ts +1 -0
  76. package/lib/generators/add-core-package/schema.json +19 -0
  77. package/lib/generators/add-frontend/frameworks/tailwindui/entry.client.tsx.template +90 -0
  78. package/lib/generators/add-frontend/frameworks/tailwindui/entry.server.tsx.template +238 -0
  79. package/lib/generators/add-frontend/frameworks/tailwindui/root.tsx.template +117 -0
  80. package/lib/generators/add-frontend/frameworks/tailwindui/tailwind.css +3 -0
  81. package/lib/generators/add-frontend/generator.cjs +60 -42
  82. package/lib/generators/add-frontend/generator.cjs.map +1 -1
  83. package/lib/generators/add-frontend/generator.d.ts +1 -0
  84. package/lib/generators/add-frontend/generator.mjs +60 -42
  85. package/lib/generators/add-frontend/generator.mjs.map +1 -1
  86. package/lib/generators/add-frontend/schema.json +1 -1
  87. package/lib/generators/add-frontend/templates/package.json +18 -76
  88. package/lib/generators/add-frontend/templates/postcss.config.js +6 -0
  89. package/lib/generators/add-frontend/templates/tailwind.config.ts.template +12 -0
  90. package/lib/generators/add-fullstack/files/jest-mongodb-config.js +3 -2
  91. package/lib/generators/add-fullstack/files/jest.config copy.js +27 -0
  92. package/lib/generators/add-fullstack/files/jest.config.base.js +43 -4
  93. package/lib/generators/add-fullstack/files/jest.config.base.mjs +99 -0
  94. package/lib/generators/add-fullstack/files/jest.config.mongodb.mjs +3 -0
  95. package/lib/generators/add-fullstack/files/lint-staged.config.js +4 -1
  96. package/lib/generators/add-fullstack/files/nx.json +18 -13
  97. package/lib/generators/add-fullstack/files/package.json +8 -8
  98. package/lib/generators/add-fullstack/files/tools/cli/helpers/util.js +1 -1
  99. package/lib/generators/add-fullstack/files/tools/deploy-cli/updateLernaVersion.js +1 -1
  100. package/lib/generators/add-fullstack/files/tools/prettier.config.js +8 -0
  101. package/lib/generators/add-fullstack/files/tools/rollup/rollupPluginGenerateJson.mjs +48 -0
  102. package/lib/generators/add-fullstack/files/tools/rollup/rollupPluginModifyLibFiles.mjs +410 -0
  103. package/lib/generators/add-fullstack/files/tools/runLint.mjs +15 -0
  104. package/lib/generators/add-fullstack/files/tools/sortPackageJson.mjs +0 -1
  105. package/lib/generators/add-fullstack/files/tools/update-dependencies.mjs +95 -0
  106. package/lib/generators/add-fullstack/files/tools/update-dependency-link.mjs +138 -0
  107. package/lib/generators/add-fullstack/files/tools/update-dependency-version.js +104 -89
  108. package/lib/generators/add-fullstack/files/tools/updateUtils.mjs +77 -0
  109. package/lib/generators/add-fullstack/generator.cjs +63 -2
  110. package/lib/generators/add-fullstack/generator.cjs.map +1 -1
  111. package/lib/generators/add-fullstack/generator.mjs +63 -2
  112. package/lib/generators/add-fullstack/generator.mjs.map +1 -1
  113. package/lib/generators/add-fullstack/schema.json +4 -0
  114. package/lib/generators/add-moleculer/files/package.json +7 -7
  115. package/lib/generators/add-moleculer/generator.cjs +14 -16
  116. package/lib/generators/add-moleculer/generator.cjs.map +1 -1
  117. package/lib/generators/add-moleculer/generator.d.ts +1 -0
  118. package/lib/generators/add-moleculer/generator.mjs +14 -16
  119. package/lib/generators/add-moleculer/generator.mjs.map +1 -1
  120. package/lib/generators/add-server-package/files/CHANGELOG.md +2599 -0
  121. package/lib/generators/add-server-package/files/LICENSE +674 -0
  122. package/lib/generators/add-server-package/files/jest.config.js +32 -0
  123. package/lib/generators/add-server-package/files/package.json +78 -0
  124. package/lib/generators/add-server-package/files/rollup.config.mjs +30 -0
  125. package/lib/generators/add-server-package/files/src/constants/constants.ts.template +62 -0
  126. package/lib/generators/add-server-package/files/src/constants/index.ts.template +1 -0
  127. package/lib/generators/add-server-package/files/src/constants/types.ts.template +21 -0
  128. package/lib/generators/add-server-package/files/src/index.ts.template +6 -0
  129. package/lib/generators/add-server-package/files/src/module.ts.template +6 -0
  130. package/lib/generators/add-server-package/files/tsconfig.json +27 -0
  131. package/lib/generators/add-server-package/generator.cjs +17 -0
  132. package/lib/generators/add-server-package/generator.cjs.map +1 -0
  133. package/lib/generators/add-server-package/generator.d.ts +5 -0
  134. package/lib/generators/add-server-package/generator.mjs +17 -0
  135. package/lib/generators/add-server-package/generator.mjs.map +1 -0
  136. package/lib/generators/add-server-package/generator.spec.d.ts +1 -0
  137. package/lib/generators/add-server-package/schema.json +19 -0
  138. package/lib/index.cjs +1 -1
  139. package/lib/index.d.ts +5 -0
  140. package/lib/index.mjs +1 -1
  141. package/package.json +4 -2
  142. package/project.json +12 -1
  143. package/rollup.config.mjs +8 -0
  144. package/src/constants/index.ts +2 -1
  145. package/src/executors/sort-package-json/executor.spec.ts +18 -0
  146. package/src/executors/sort-package-json/executor.ts +53 -0
  147. package/src/executors/sort-package-json/schema.d.ts +1 -0
  148. package/src/executors/sort-package-json/schema.json +9 -0
  149. package/src/executors/update-deploy-version/executor.spec.ts +18 -0
  150. package/src/executors/update-deploy-version/executor.ts +36 -0
  151. package/src/executors/update-deploy-version/schema.d.ts +3 -0
  152. package/src/executors/update-deploy-version/schema.json +14 -0
  153. package/src/generators/add-backend/generator.ts +8 -4
  154. package/src/generators/add-browser-package/generator.ts +7 -6
  155. package/src/generators/add-client-package/generator.spec.ts +20 -0
  156. package/src/generators/add-client-package/generator.ts +24 -0
  157. package/src/generators/add-client-package/schema.d.ts +4 -0
  158. package/src/generators/add-client-package/schema.json +19 -0
  159. package/src/generators/add-core-package/generator.spec.ts +20 -0
  160. package/src/generators/add-core-package/generator.ts +24 -0
  161. package/src/generators/add-core-package/schema.d.ts +4 -0
  162. package/src/generators/add-core-package/schema.json +19 -0
  163. package/src/generators/add-frontend/frameworks/tailwindui/entry.client.tsx.template +90 -0
  164. package/src/generators/add-frontend/frameworks/tailwindui/entry.server.tsx.template +238 -0
  165. package/src/generators/add-frontend/frameworks/tailwindui/root.tsx.template +117 -0
  166. package/src/generators/add-frontend/frameworks/tailwindui/tailwind.css +3 -0
  167. package/src/generators/add-frontend/generator.ts +24 -2
  168. package/src/generators/add-frontend/schema.json +1 -1
  169. package/src/generators/add-fullstack/files/jest-mongodb-config.js +3 -2
  170. package/src/generators/add-fullstack/files/jest.config copy.js +27 -0
  171. package/src/generators/add-fullstack/files/jest.config.base.js +43 -4
  172. package/src/generators/add-fullstack/files/jest.config.base.mjs +99 -0
  173. package/src/generators/add-fullstack/files/jest.config.mongodb.mjs +3 -0
  174. package/src/generators/add-fullstack/files/lint-staged.config.js +4 -1
  175. package/src/generators/add-fullstack/files/nx.json +18 -13
  176. package/src/generators/add-fullstack/files/package.json +8 -8
  177. package/src/generators/add-fullstack/files/tools/cli/helpers/util.js +1 -1
  178. package/src/generators/add-fullstack/files/tools/deploy-cli/updateLernaVersion.js +1 -1
  179. package/src/generators/add-fullstack/files/tools/prettier.config.js +8 -0
  180. package/src/generators/add-fullstack/files/tools/rollup/rollupPluginGenerateJson.mjs +48 -0
  181. package/src/generators/add-fullstack/files/tools/rollup/rollupPluginModifyLibFiles.mjs +410 -0
  182. package/src/generators/add-fullstack/files/tools/runLint.mjs +15 -0
  183. package/src/generators/add-fullstack/files/tools/sortPackageJson.mjs +0 -1
  184. package/src/generators/add-fullstack/files/tools/update-dependencies.mjs +95 -0
  185. package/src/generators/add-fullstack/files/tools/update-dependency-link.mjs +138 -0
  186. package/src/generators/add-fullstack/files/tools/update-dependency-version.js +104 -89
  187. package/src/generators/add-fullstack/files/tools/updateUtils.mjs +77 -0
  188. package/src/generators/add-fullstack/generator.ts +83 -1
  189. package/src/generators/add-fullstack/schema.d.ts +1 -0
  190. package/src/generators/add-fullstack/schema.json +4 -0
  191. package/src/generators/add-moleculer/files/package.json +7 -7
  192. package/src/generators/add-moleculer/generator.ts +7 -6
  193. package/src/generators/add-server-package/generator.spec.ts +20 -0
  194. package/src/generators/add-server-package/generator.ts +24 -0
  195. package/src/generators/add-server-package/schema.d.ts +4 -0
  196. package/src/generators/add-server-package/schema.json +19 -0
  197. package/src/index.ts +5 -0
  198. package/lib/generators/add-backend/files/knexfile.js +0 -63
  199. package/lib/generators/add-backend/files/src/api/remote-config.ts.template +0 -11
  200. package/lib/generators/add-backend/files/src/api/resolver.ts.template +0 -15
  201. package/lib/generators/add-backend/files/src/api/scalar.ts.template +0 -16
  202. package/lib/generators/add-backend/files/src/api/schema-builder.ts.template +0 -189
  203. package/lib/generators/add-backend/files/src/api/utils.ts.template +0 -44
  204. package/lib/generators/add-backend/files/src/config/moleculer.config.ts.template +0 -228
  205. package/lib/generators/add-backend/files/src/connectors/connection-broker.ts.template +0 -80
  206. package/lib/generators/add-backend/files/src/connectors/graphql-pubsub-connector.ts.template +0 -43
  207. package/lib/generators/add-backend/files/src/connectors/mongo-connector.ts.template +0 -78
  208. package/lib/generators/add-backend/files/src/connectors/nats-connector.ts.template +0 -82
  209. package/lib/generators/add-backend/files/src/connectors/redis-connector.ts.template +0 -73
  210. package/lib/generators/add-backend/files/src/express-app.ts.template +0 -67
  211. package/lib/generators/add-backend/files/src/interfaces/index.ts.template +0 -1
  212. package/lib/generators/add-backend/files/src/interfaces/module-interface.ts.template +0 -16
  213. package/lib/generators/add-backend/files/src/main.spec.ts.template +0 -129
  214. package/lib/generators/add-backend/files/src/middleware/__tests__/cors.test.ts.template +0 -12
  215. package/lib/generators/add-backend/files/src/middleware/cors.ts.template +0 -31
  216. package/lib/generators/add-backend/files/src/middleware/error.ts.template +0 -63
  217. package/lib/generators/add-backend/files/src/middleware/moleculer-inter-namespace.ts.template +0 -60
  218. package/lib/generators/add-backend/files/src/middleware/persistedQuery.ts.template +0 -40
  219. package/lib/generators/add-backend/files/src/middleware/sentry.ts.template +0 -9
  220. package/lib/generators/add-backend/files/src/middleware/services.ts.template +0 -16
  221. package/lib/generators/add-backend/files/src/middleware/tracer.ts.template +0 -24
  222. package/lib/generators/add-backend/files/src/modules/auth/schema/auth-schema.graphql +0 -25
  223. package/lib/generators/add-backend/files/src/server-setup/graphql-server.ts.template +0 -185
  224. package/lib/generators/add-backend/files/src/server-setup/graphql-subscription-server.ts.template +0 -113
  225. package/lib/generators/add-backend/files/src/server-setup/graphql-ws.ts.template +0 -158
  226. package/lib/generators/add-backend/files/src/server-setup/mongodb-migration-update.ts.template +0 -47
  227. package/lib/generators/add-backend/files/src/server-setup/utils.ts.template +0 -43
  228. package/lib/generators/add-backend/files/src/server-setup/websocket-multipath-update.ts.template +0 -88
  229. package/lib/generators/add-backend/files/src/stack-server.ts.template +0 -277
  230. package/lib/generators/add-backend/files/src/utils/migrations.ts.template +0 -32
  231. package/lib/generators/add-backend/files/uploads/3986781.ppt +0 -0
  232. package/lib/generators/add-fullstack/files/tools/update-dependency-link.js +0 -107
  233. package/src/generators/add-fullstack/files/tools/update-dependency-link.js +0 -107
@@ -1,82 +0,0 @@
1
- import * as nats from 'nats';
2
- import { defaultsDeep } from 'lodash-es';
3
- import { logger } from '@cdm-logger/server';
4
- import { CdmLogger } from '@cdm-logger/core';
5
-
6
- type ILogger = CdmLogger.ILogger;
7
-
8
- export class NatsConnector {
9
- private opts: nats.ClientOpts;
10
-
11
- private client: nats.Client;
12
-
13
- private logger: ILogger;
14
-
15
- private connected: boolean;
16
-
17
- constructor(opts: nats.ClientOpts) {
18
- this.opts = defaultsDeep(opts, {});
19
- this.logger = logger.child({ className: 'NatsConnector' });
20
- }
21
-
22
- /**
23
- * Connect to a NATS server
24
- *
25
- * @memberof NatsConnector
26
- */
27
- public connect() {
28
- if (this.client) {
29
- return this.client;
30
- }
31
- return new Promise<nats.Client>((resolve, reject) => {
32
- const client = nats.connect(this.opts);
33
-
34
- client.on('connect', () => {
35
- this.client = client;
36
- this.connected = true;
37
- this.logger.info('NATS client is connected.');
38
- resolve(client);
39
- });
40
-
41
- client.on('reconnect', () => {
42
- this.logger.info('NATS client is reconnected.');
43
- this.connected = true;
44
- });
45
-
46
- client.on('reconnecting', () => {
47
- this.logger.warn('NATS client is reconnecting...');
48
- });
49
-
50
- client.on('disconnect', () => {
51
- if (this.connected) {
52
- this.logger.warn('NATS client is disconnected.');
53
- this.connected = false;
54
- }
55
- });
56
-
57
- client.on('error', (e) => {
58
- this.logger.error('NATS error.', e.message);
59
- this.logger.debug(e);
60
- reject(e);
61
- });
62
-
63
- client.on('close', () => {
64
- this.logger.fatal('NATS connection close.');
65
- });
66
- });
67
- }
68
-
69
- /**
70
- * Disconnect from a NATS server
71
- *
72
- * @memberof NatsTransporter
73
- */
74
- public disconnect() {
75
- if (this.client) {
76
- this.client.flush(() => {
77
- this.client.close();
78
- this.client = null;
79
- });
80
- }
81
- }
82
- }
@@ -1,73 +0,0 @@
1
-
2
-
3
- import { defaultsDeep } from 'lodash-es';
4
- import { RedisClusterCache, RedisCache } from 'apollo-server-cache-redis';
5
- import * as IORedis from 'ioredis';
6
- import { logger } from '@cdm-logger/server';
7
- import { config } from '../config';
8
- import { CdmLogger } from '@cdm-logger/core';
9
- type ILogger = CdmLogger.ILogger;
10
-
11
- export class RedisConnector {
12
-
13
-
14
- private client: RedisClusterCache | RedisCache;
15
- private opts: IORedis.ClusterOptions | IORedis.RedisOptions;
16
- private logger: ILogger;
17
-
18
- /**
19
- * Creats an instance of Redis.
20
- *
21
- * @param {object} opts
22
- */
23
- constructor(opts?: IORedis.ClusterOptions | IORedis.RedisOptions) {
24
- this.opts = defaultsDeep(opts, {
25
- prefix: null,
26
- });
27
- this.logger = logger.child({ className: 'RedisConnector' });
28
- }
29
-
30
- /**
31
- * Connect to the server
32
- *
33
- * @memberof RedisConnector
34
- */
35
- public connect() {
36
- return new Promise((resolve, reject) => {
37
- reject('this method not implemented');
38
- });
39
- }
40
-
41
-
42
- /**
43
- * Return redis or redis.cluster Dataloader Client
44
- *
45
- * @memberof RedisConnection
46
- */
47
- public getRedisDataloaderClient() {
48
- let client: RedisClusterCache | RedisCache;
49
- if (config.REDIS_CLUSTER_ENABLED) {
50
- if (!config.REDIS_CLUSTER_URL) {
51
- throw new Error(`No nodes defined for cluster, ${config.REDIS_CLUSTER_URL}`);
52
- }
53
- this.logger.info('Setting Redis.Cluster connection');
54
- client = new RedisClusterCache(config.REDIS_CLUSTER_URL as any, this.opts);
55
- } else {
56
- this.logger.info('Setting Redis connection');
57
- client = new RedisCache(config.REDIS_URL as any || this.opts);
58
- }
59
- return client;
60
- }
61
-
62
- /**
63
- * Close Redis client connection.
64
- *
65
- * @memberof RedisConnection
66
- */
67
- public disconnect() {
68
- if (!this.client) {
69
- return;
70
- }
71
- return this.client.close();
72
- }
73
- }
@@ -1,67 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-var-requires */
2
- import * as express from 'express';
3
- import * as bodyParser from 'body-parser';
4
- import modules from './modules';
5
- import { errorMiddleware } from './middleware/error';
6
- import { contextServicesMiddleware } from './middleware/services';
7
- import { sentryMiddleware, sentryErrorHandlerMiddleware } from './middleware/sentry';
8
- import { IModuleService } from './interfaces';
9
- import { corsMiddleware } from './middleware/cors';
10
-
11
- const cookiesMiddleware = require('universal-cookie-express');
12
-
13
- export function expressApp(options: IModuleService, middlewares, http?) {
14
- const app: express.Express = express();
15
-
16
-
17
- for (const applyBeforeware of modules.beforewares) {
18
- applyBeforeware(app);
19
- }
20
- app.use(cookiesMiddleware());
21
- app.use(contextServicesMiddleware(options.createContext, options.serviceContext));
22
-
23
- // Don't rate limit heroku
24
- app.enable('trust proxy');
25
-
26
- app.use(sentryMiddleware);
27
-
28
- if (middlewares !== null) {
29
- app.use(middlewares);
30
- }
31
-
32
- app.use('/', express.static(__FRONTEND_BUILD_DIR__, { maxAge: '180 days' }));
33
-
34
- app.use(corsMiddleware);
35
- app.use((req, res, next) => {
36
- res.header('Access-Control-Allow-Credentials', JSON.stringify(true));
37
- res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
38
- res.header(
39
- 'Access-Control-Allow-Headers',
40
- 'X-Requested-With, X-HTTP-Method-Override, X-CSP-Nonce, Content-Type, Accept',
41
- );
42
- next();
43
- });
44
-
45
- app.use(
46
- bodyParser.json({
47
- limit: '50mb',
48
- verify: (req, res, buf) => {
49
- // #Todo: Find some proper solution for it
50
- (req as any).rawBody = buf;
51
- },
52
- }),
53
- );
54
- app.use(bodyParser.urlencoded({ limit: '50mb', extended: true, parameterLimit: 50000 }));
55
-
56
- for (const applyMiddleware of modules.middlewares) {
57
- applyMiddleware(app);
58
- }
59
-
60
- if (__DEV__) {
61
- app.use(errorMiddleware);
62
- }
63
-
64
- app.use(sentryErrorHandlerMiddleware);
65
-
66
- return app;
67
- }
@@ -1 +0,0 @@
1
- export * from './module-interface';
@@ -1,16 +0,0 @@
1
- import { GraphQLSchema } from 'graphql';
2
- import { CdmLogger } from '@cdm-logger/core';
3
- type ILogger = CdmLogger.ILogger;
4
-
5
-
6
- export interface IModuleService {
7
- serviceContainer: any;
8
- serviceContext: any;
9
- dataSource: any;
10
- defaultPreferences: any;
11
- createContext: any;
12
- schema: GraphQLSchema;
13
- logger: ILogger;
14
- }
15
-
16
-
@@ -1,129 +0,0 @@
1
- // import {GRAPHQL_ROUTE, GRAPHIQL_ROUTE, main} from './main';
2
- // import {get as httpGet, Server} from 'http';
3
- // import 'jest';
4
-
5
- // const ERRNO_KEY = 'errno';
6
- // const PORT: number = 8080;
7
-
8
- // function getFromServer(uri) {
9
- // return new Promise((resolve, reject) => {
10
- // httpGet(`http://localhost:${PORT}${uri}`, (res) => {
11
- // resolve(res);
12
- // }).on('error', (err: Error) => {
13
- // reject(err);
14
- // });
15
- // });
16
- // }
17
-
18
- // describe('main', () => {
19
- // it('should be able to Initialize a server (production)', () => {
20
- // return main({
21
- // enableCors: false,
22
- // enableGraphiql: false,
23
- // env: 'production',
24
- // port: PORT,
25
- // })
26
- // .then(([server]) => {
27
- // return (<Server>server).close();
28
- // });
29
- // });
30
-
31
- // it('should be able to Initialize a server (development)', () => {
32
- // return main({
33
- // enableCors: true,
34
- // enableGraphiql: true,
35
- // env: 'dev',
36
- // port: PORT,
37
- // })
38
- // .then(([server]) => {
39
- // return (<Server>server).close();
40
- // });
41
- // });
42
-
43
- // it('should have a working GET graphql (developemnt)', () => {
44
- // return main({
45
- // enableCors: true,
46
- // enableGraphiql: true,
47
- // env: 'dev',
48
- // port: PORT,
49
- // })
50
- // .then(([server]) => {
51
- // return getFromServer(GRAPHQL_ROUTE).then((res: any) => {
52
- // (<Server>server).close();
53
- // // GET without query returns 400
54
- // expect(res.statusCode).toBe(400);
55
- // });
56
- // });
57
- // });
58
-
59
- // it('should have a working GET graphql (production)', () => {
60
- // return main({
61
- // enableCors: false,
62
- // enableGraphiql: false,
63
- // env: 'production',
64
- // port: PORT,
65
- // })
66
- // .then(([server]) => {
67
- // return getFromServer(GRAPHQL_ROUTE).then((res: any) => {
68
- // (<Server>server).close();
69
- // // GET without query returns 400
70
- // expect(res.statusCode).toBe(400);
71
- // });
72
- // });
73
- // });
74
-
75
- // it('should have a working graphiql (developemnt)', () => {
76
- // return main({
77
- // enableCors: true,
78
- // enableGraphiql: true,
79
- // env: 'dev',
80
- // port: PORT,
81
- // })
82
- // .then(([server]) => {
83
- // return getFromServer(GRAPHIQL_ROUTE).then((res: any) => {
84
- // (<Server>server).close();
85
- // expect(res.statusCode).toBe(200);
86
- // });
87
- // });
88
- // });
89
-
90
- // it('should have block graphiql (production)', () => {
91
- // return main({
92
- // enableCors: false,
93
- // enableGraphiql: false,
94
- // env: 'production',
95
- // port: PORT,
96
- // })
97
- // .then(([server]) => {
98
- // return getFromServer(GRAPHIQL_ROUTE).then((res: any) => {
99
- // (<Server>server).close();
100
- // expect(res.statusCode).toBe(404);
101
- // });
102
- // });
103
- // });
104
-
105
- // it('should reject twice on same port', () => {
106
- // return main({
107
- // enableCors: false,
108
- // enableGraphiql: false,
109
- // env: 'production',
110
- // port: PORT,
111
- // })
112
- // .then(([server]) => {
113
- // return main({
114
- // enableCors: false,
115
- // enableGraphiql: false,
116
- // env: 'production',
117
- // port: PORT,
118
- // })
119
- // .then(([secondServer]) => {
120
- // (<Server>server).close();
121
- // (<Server>secondServer).close();
122
- // throw new Error('Was able to listen twice!');
123
- // }, (err: Error) => {
124
- // (<Server>server).close();
125
- // expect(err[ERRNO_KEY]).toBe('EADDRINUSE');
126
- // });
127
- // });
128
- // });
129
- // });
@@ -1,12 +0,0 @@
1
- import Url from 'url';
2
- import * as express from 'express';
3
- import * as nock from 'nock';
4
- import * as request from 'supertest';
5
-
6
-
7
- describe('test', () => {
8
- const app = express();
9
- test('test', () => {
10
- app.get('/graphql')
11
- });
12
- });
@@ -1,31 +0,0 @@
1
- /* eslint-disable jest/require-hook */
2
- import * as cors from 'cors';
3
- import { logger } from '@cdm-logger/server';
4
- import { config } from '../config';
5
-
6
- const CLIENT_URL = config.CLIENT_URL;
7
- const BACKEND_URL = config.BACKEND_URL;
8
-
9
- const corsWhitelist = [
10
- BACKEND_URL,
11
- CLIENT_URL,
12
- config.GRAPHQL_URL,
13
- // 'http://localhost:3000',
14
- ];
15
- logger.info('Cors whitelist: %j', corsWhitelist);
16
- const corsOptions = {
17
- origin: (origin, callback) => {
18
- if (corsWhitelist.indexOf(origin) !== -1) {
19
- callback(null, true);
20
- } else {
21
- // TODO: only throw when in debug mode
22
- logger.error('url (%s) is not in the whitelist', origin);
23
- // callback(new Error('Not allowed by CORS'))
24
- logger.warn('allowing all origins temporarily, you need to disable it.');
25
- callback(null, true);
26
- }
27
- },
28
- credentials: true,
29
- };
30
-
31
- export const corsMiddleware = cors(corsOptions);
@@ -1,63 +0,0 @@
1
- /// <reference path='../../../../typings/index.d.ts' />
2
-
3
- import * as path from 'path';
4
- import * as fs from 'fs';
5
- import * as url from 'url';
6
- import { logger } from '@cdm-logger/server';
7
-
8
-
9
- let assetMap;
10
-
11
- const stripCircular = (from, seen?: any) => {
12
- const to = Array.isArray(from) ? [] : {};
13
- seen = seen || [];
14
- seen.push(from);
15
- Object.getOwnPropertyNames(from).forEach(key => {
16
- if (!from[key] || (typeof from[key] !== 'object' && !Array.isArray(from[key]))) {
17
- to[key] = from[key];
18
- } else if (seen.indexOf(from[key]) < 0) {
19
- to[key] = stripCircular(from[key], seen.slice(0));
20
- } else { to[key] = '[Circular]'; }
21
- });
22
- return to;
23
- };
24
-
25
- const { pathname } = url.parse(__BACKEND_URL__);
26
-
27
- /**
28
- * Middleware function that takes 4 arguments is classified as "error handling middleware"
29
- * and will only get called if an error occurs.
30
- * @param e
31
- * @param req
32
- * @param res
33
- * @param next
34
- */
35
- export const errorMiddleware =
36
- (e, req, res, next) => {
37
- if (req.path === pathname) {
38
- const stack = e.stack.toString().replace(/[\n]/g, '\\n');
39
- res.status(200).send(`[{"data": {}, "errors":[{"message": "${stack}"}]}]`);
40
- } else {
41
- logger.error(e);
42
-
43
- if (__DEV__ || !assetMap) {
44
- assetMap = JSON.parse(fs.readFileSync(path.join(__FRONTEND_BUILD_DIR__, 'assets.json')).toString());
45
- }
46
-
47
- const serverErrorScript = `<script charset="UTF-8">window.__SERVER_ERROR__=${JSON.stringify(
48
- stripCircular(e),
49
- )};</script>`;
50
- const vendorScript = assetMap['vendor.js']
51
- ? `<script src="/${assetMap['vendor.js']}" charSet="utf-8"></script>`
52
- : '';
53
-
54
- res.status(200).send(
55
- `<html>${serverErrorScript}<body><div id="content"></div>
56
- ${vendorScript}
57
- <script src="/${assetMap['index.js']}" charSet="utf-8"></script>
58
- </body></html>`,
59
- );
60
- }
61
- };
62
-
63
-
@@ -1,60 +0,0 @@
1
- /* eslint-disable no-param-reassign */
2
- import { ServiceBroker, Middleware } from 'moleculer';
3
- import { isString, defaultsDeep } from 'lodash-es';
4
-
5
- export const InterNamespaceMiddleware = function (options): Middleware {
6
- if (!Array.isArray(options)) {
7
- throw new Error('Must be an Array');
8
- }
9
-
10
- let thisBroker: ServiceBroker;
11
- const brokers: { [key: string]: ServiceBroker } = {};
12
-
13
- return {
14
- created(broker: ServiceBroker) {
15
- thisBroker = broker;
16
- options.forEach((nsOpts) => {
17
- if (isString(nsOpts)) {
18
- nsOpts = {
19
- namespace: nsOpts,
20
- };
21
- }
22
- const ns = nsOpts.namespace;
23
-
24
- const brokerOpts = defaultsDeep(
25
- {},
26
- nsOpts,
27
- { nodeID: null, middlewares: null, created: null, started: null },
28
- broker.options,
29
- );
30
- brokers[ns] = new ServiceBroker(brokerOpts);
31
- });
32
- },
33
-
34
- started() {
35
- return Promise.all(Object.values(brokers).map((b) => b.start()));
36
- },
37
-
38
- stopped() {
39
- return Promise.all(Object.values(brokers).map((b) => b.stop()));
40
- },
41
-
42
- call(next) {
43
- return function (actionName, params, opts = {}) {
44
- if (isString(actionName) && actionName.includes('@')) {
45
- const [action, namespace] = actionName.split('@');
46
-
47
- if (brokers[namespace]) {
48
- return brokers[namespace].call(action, params, opts);
49
- }
50
- if (namespace === thisBroker.namespace) {
51
- return next(action, params, opts);
52
- }
53
- throw new Error(`Unknown namespace: ${namespace}`);
54
- }
55
-
56
- return next(actionName, params, opts);
57
- };
58
- },
59
- };
60
- };
@@ -1,40 +0,0 @@
1
- import { invert, isArray } from 'lodash-es';
2
- import { GRAPHIQL_ROUTE } from '../ENDPOINTS';
3
- import { logger } from '@cdm-logger/server';
4
-
5
- let reqlib: any = require('app-root-path');
6
-
7
- let persistCache = true;
8
- let queryMap;
9
- try {
10
- queryMap = reqlib.require('@adminide-stack/graphql-gql/extracted_queries.json');
11
-
12
- } catch (err) {
13
- logger.warn('extracted_queries.json file is unavailable, disabling persist queries');
14
- }
15
- export const persistedQueryMiddleware = (req, res, next) => {
16
-
17
- if (queryMap) {
18
- const invertedMap = invert(queryMap);
19
-
20
- if (isArray(req.body)) {
21
- req.body = req.body.map(body => {
22
- const id = body['id'];
23
- return {
24
- query: invertedMap[id],
25
- ...body,
26
- };
27
- });
28
- next();
29
- } else {
30
- if (!__DEV__ || (req.get('Referer') || '').indexOf(GRAPHIQL_ROUTE) < 0) {
31
- res.status(500).send('Unknown GraphQL query has been received, rejecting...');
32
- } else {
33
- next();
34
- }
35
- }
36
- } else {
37
- next();
38
- }
39
- };
40
-
@@ -1,9 +0,0 @@
1
- const Sentry = require('@sentry/node');
2
-
3
- Sentry.init({ dsn: process.env.SENTRY_DSN_BACKEND });
4
-
5
-
6
- export const sentryMiddleware = Sentry.Handlers.requestHandler();
7
-
8
-
9
- export const sentryErrorHandlerMiddleware = Sentry.Handlers.errorHandler();
@@ -1,16 +0,0 @@
1
- import 'isomorphic-fetch';
2
-
3
-
4
- export const contextServicesMiddleware = (createContext, serviceContext) => (req, res, next) => {
5
- Promise.all([
6
- createContext(req, res),
7
- serviceContext(req, res),
8
- ])
9
- .then(([ context, services ]) => {
10
- req.context = context;
11
- req.services = services;
12
-
13
- next();
14
- })
15
- .catch((err) => next());
16
- };
@@ -1,24 +0,0 @@
1
- const ZipkinOpentracing = require('zipkin-javascript-opentracing');
2
- import { config } from '../config';
3
-
4
- const ZIPKIN_HOST_PORT = `${config.ZIPKIN_URL}`;
5
-
6
-
7
- export const server = new ZipkinOpentracing({
8
- serviceName: 'graphql',
9
- endpoint: ZIPKIN_HOST_PORT,
10
- kind: 'server',
11
- });
12
-
13
-
14
- export const client = new ZipkinOpentracing({
15
- serviceName: 'graphql',
16
- endpoint: ZIPKIN_HOST_PORT,
17
- kind: 'client',
18
- });
19
-
20
- export const local = new ZipkinOpentracing({
21
- serviceName: 'graphql',
22
- endpoint: ZIPKIN_HOST_PORT,
23
- kind: 'local',
24
- });
@@ -1,25 +0,0 @@
1
- type LoggedInUserPayload {
2
- # if `id` is `null`, it means there is not logged in user
3
- id: ID
4
- }
5
-
6
- extend type Query {
7
- loggedInUser: LoggedInUserPayload!
8
- }
9
-
10
- type AuthenticateUserPayload {
11
- token: String!
12
- }
13
-
14
- extend type Mutation {
15
- authenticateUser(email: String!, password: String!): AuthenticateUserPayload
16
- }
17
-
18
- type SignupUserPayload {
19
- id: ID!
20
- token: String!
21
- }
22
-
23
- extend type Mutation {
24
- signupUser(email: String!, password: String!): SignupUserPayload
25
- }