@common-stack/generate-plugin 5.0.6-alpha.3 → 5.0.6-alpha.4

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 (141) hide show
  1. package/.eslintrc.json +1 -1
  2. package/CHANGELOG.md +4 -0
  3. package/executors.json +14 -0
  4. package/generators.json +15 -0
  5. package/lib/executors/sort-package-json/executor.cjs +46 -0
  6. package/lib/executors/sort-package-json/executor.cjs.map +1 -0
  7. package/lib/executors/sort-package-json/executor.d.ts +4 -0
  8. package/lib/executors/sort-package-json/executor.mjs +46 -0
  9. package/lib/executors/sort-package-json/executor.mjs.map +1 -0
  10. package/lib/executors/sort-package-json/executor.spec.d.ts +1 -0
  11. package/lib/executors/sort-package-json/schema.json +9 -0
  12. package/lib/executors/update-deploy-version/executor.cjs +22 -0
  13. package/lib/executors/update-deploy-version/executor.cjs.map +1 -0
  14. package/lib/executors/update-deploy-version/executor.d.ts +4 -0
  15. package/lib/executors/update-deploy-version/executor.mjs +22 -0
  16. package/lib/executors/update-deploy-version/executor.mjs.map +1 -0
  17. package/lib/executors/update-deploy-version/executor.spec.d.ts +1 -0
  18. package/lib/executors/update-deploy-version/schema.json +14 -0
  19. package/lib/generators/add-backend/files/package.json +5 -5
  20. package/lib/generators/add-backend/files/tsconfig.json +1 -1
  21. package/lib/generators/add-backend/files/webpack.config.js +6 -10
  22. package/lib/generators/add-browser-package/files/package.json +1 -1
  23. package/lib/generators/add-client-package/files/CHANGELOG.md +807 -0
  24. package/lib/generators/add-client-package/files/LICENSE +674 -0
  25. package/lib/generators/add-client-package/files/jest.config.js +13 -0
  26. package/lib/generators/add-client-package/files/package.json +31 -0
  27. package/lib/generators/add-client-package/files/rollup.config.mjs +29 -0
  28. package/lib/generators/add-client-package/files/src/components/index.tsx.template +1 -0
  29. package/lib/generators/add-client-package/files/src/index.ts.template +1 -0
  30. package/lib/generators/add-client-package/files/tsconfig.json +27 -0
  31. package/lib/generators/add-client-package/files/webpack.config.js +72 -0
  32. package/lib/generators/add-client-package/generator.cjs +19 -0
  33. package/lib/generators/add-client-package/generator.cjs.map +1 -0
  34. package/lib/generators/add-client-package/generator.d.ts +4 -0
  35. package/lib/generators/add-client-package/generator.mjs +19 -0
  36. package/lib/generators/add-client-package/generator.mjs.map +1 -0
  37. package/lib/generators/add-client-package/generator.spec.d.ts +1 -0
  38. package/lib/generators/add-client-package/schema.json +19 -0
  39. package/lib/generators/add-core-package/files/CHANGELOG.md +1076 -0
  40. package/lib/generators/add-core-package/files/LICENSE +39 -0
  41. package/lib/generators/add-core-package/files/jest.config.js +3 -0
  42. package/lib/generators/add-core-package/files/package.json +31 -0
  43. package/lib/generators/add-core-package/files/rollup.config.mjs +65 -0
  44. package/lib/generators/add-core-package/files/src/constants/index.ts.template +1 -0
  45. package/lib/generators/add-core-package/files/src/constants/types.ts.template +3 -0
  46. package/lib/generators/add-core-package/files/src/index.ts.template +2 -0
  47. package/lib/generators/add-core-package/files/src/types/index.ts.template +1 -0
  48. package/lib/generators/add-core-package/files/src/types/types.ts.template +17 -0
  49. package/lib/generators/add-core-package/files/tsconfig.json +22 -0
  50. package/lib/generators/add-core-package/files/webpack.config.js +53 -0
  51. package/lib/generators/add-core-package/generator.cjs +19 -0
  52. package/lib/generators/add-core-package/generator.cjs.map +1 -0
  53. package/lib/generators/add-core-package/generator.d.ts +4 -0
  54. package/lib/generators/add-core-package/generator.mjs +19 -0
  55. package/lib/generators/add-core-package/generator.mjs.map +1 -0
  56. package/lib/generators/add-core-package/generator.spec.d.ts +1 -0
  57. package/lib/generators/add-core-package/schema.json +19 -0
  58. package/lib/generators/add-frontend/templates/package.json +8 -8
  59. package/lib/generators/add-fullstack/files/package.json +1 -1
  60. package/lib/generators/add-moleculer/files/package.json +5 -5
  61. package/lib/generators/add-server-package/files/CHANGELOG.md +2599 -0
  62. package/lib/generators/add-server-package/files/LICENSE +674 -0
  63. package/lib/generators/add-server-package/files/jest.config.js +32 -0
  64. package/lib/generators/add-server-package/files/package.json +78 -0
  65. package/lib/generators/add-server-package/files/rollup.config.mjs +30 -0
  66. package/lib/generators/add-server-package/files/src/constants/constants.ts.template +62 -0
  67. package/lib/generators/add-server-package/files/src/constants/index.ts.template +1 -0
  68. package/lib/generators/add-server-package/files/src/constants/types.ts.template +21 -0
  69. package/lib/generators/add-server-package/files/src/index.ts.template +6 -0
  70. package/lib/generators/add-server-package/files/src/module.ts.template +6 -0
  71. package/lib/generators/add-server-package/files/tsconfig.json +27 -0
  72. package/lib/generators/add-server-package/generator.cjs +19 -0
  73. package/lib/generators/add-server-package/generator.cjs.map +1 -0
  74. package/lib/generators/add-server-package/generator.d.ts +4 -0
  75. package/lib/generators/add-server-package/generator.mjs +19 -0
  76. package/lib/generators/add-server-package/generator.mjs.map +1 -0
  77. package/lib/generators/add-server-package/generator.spec.d.ts +1 -0
  78. package/lib/generators/add-server-package/schema.json +19 -0
  79. package/lib/index.cjs +1 -1
  80. package/lib/index.d.ts +5 -0
  81. package/lib/index.mjs +1 -1
  82. package/package.json +3 -2
  83. package/project.json +12 -1
  84. package/rollup.config.mjs +8 -0
  85. package/src/executors/sort-package-json/executor.spec.ts +18 -0
  86. package/src/executors/sort-package-json/executor.ts +53 -0
  87. package/src/executors/sort-package-json/schema.d.ts +1 -0
  88. package/src/executors/sort-package-json/schema.json +9 -0
  89. package/src/executors/update-deploy-version/executor.spec.ts +18 -0
  90. package/src/executors/update-deploy-version/executor.ts +36 -0
  91. package/src/executors/update-deploy-version/schema.d.ts +3 -0
  92. package/src/executors/update-deploy-version/schema.json +14 -0
  93. package/src/generators/add-client-package/generator.spec.ts +20 -0
  94. package/src/generators/add-client-package/generator.ts +23 -0
  95. package/src/generators/add-client-package/schema.d.ts +4 -0
  96. package/src/generators/add-client-package/schema.json +19 -0
  97. package/src/generators/add-core-package/generator.spec.ts +20 -0
  98. package/src/generators/add-core-package/generator.ts +23 -0
  99. package/src/generators/add-core-package/schema.d.ts +4 -0
  100. package/src/generators/add-core-package/schema.json +19 -0
  101. package/src/generators/add-fullstack/files/package.json +1 -1
  102. package/src/generators/add-moleculer/files/package.json +5 -5
  103. package/src/generators/add-server-package/generator.spec.ts +20 -0
  104. package/src/generators/add-server-package/generator.ts +23 -0
  105. package/src/generators/add-server-package/schema.d.ts +4 -0
  106. package/src/generators/add-server-package/schema.json +19 -0
  107. package/src/index.ts +5 -0
  108. package/lib/generators/add-backend/files/knexfile.js +0 -63
  109. package/lib/generators/add-backend/files/src/api/remote-config.ts.template +0 -11
  110. package/lib/generators/add-backend/files/src/api/resolver.ts.template +0 -15
  111. package/lib/generators/add-backend/files/src/api/scalar.ts.template +0 -16
  112. package/lib/generators/add-backend/files/src/api/schema-builder.ts.template +0 -189
  113. package/lib/generators/add-backend/files/src/api/utils.ts.template +0 -44
  114. package/lib/generators/add-backend/files/src/config/moleculer.config.ts.template +0 -228
  115. package/lib/generators/add-backend/files/src/connectors/connection-broker.ts.template +0 -80
  116. package/lib/generators/add-backend/files/src/connectors/graphql-pubsub-connector.ts.template +0 -43
  117. package/lib/generators/add-backend/files/src/connectors/mongo-connector.ts.template +0 -78
  118. package/lib/generators/add-backend/files/src/connectors/nats-connector.ts.template +0 -82
  119. package/lib/generators/add-backend/files/src/connectors/redis-connector.ts.template +0 -73
  120. package/lib/generators/add-backend/files/src/express-app.ts.template +0 -67
  121. package/lib/generators/add-backend/files/src/interfaces/index.ts.template +0 -1
  122. package/lib/generators/add-backend/files/src/interfaces/module-interface.ts.template +0 -16
  123. package/lib/generators/add-backend/files/src/main.spec.ts.template +0 -129
  124. package/lib/generators/add-backend/files/src/middleware/__tests__/cors.test.ts.template +0 -12
  125. package/lib/generators/add-backend/files/src/middleware/cors.ts.template +0 -31
  126. package/lib/generators/add-backend/files/src/middleware/error.ts.template +0 -63
  127. package/lib/generators/add-backend/files/src/middleware/moleculer-inter-namespace.ts.template +0 -60
  128. package/lib/generators/add-backend/files/src/middleware/persistedQuery.ts.template +0 -40
  129. package/lib/generators/add-backend/files/src/middleware/sentry.ts.template +0 -9
  130. package/lib/generators/add-backend/files/src/middleware/services.ts.template +0 -16
  131. package/lib/generators/add-backend/files/src/middleware/tracer.ts.template +0 -24
  132. package/lib/generators/add-backend/files/src/modules/auth/schema/auth-schema.graphql +0 -25
  133. package/lib/generators/add-backend/files/src/server-setup/graphql-server.ts.template +0 -185
  134. package/lib/generators/add-backend/files/src/server-setup/graphql-subscription-server.ts.template +0 -113
  135. package/lib/generators/add-backend/files/src/server-setup/graphql-ws.ts.template +0 -158
  136. package/lib/generators/add-backend/files/src/server-setup/mongodb-migration-update.ts.template +0 -47
  137. package/lib/generators/add-backend/files/src/server-setup/utils.ts.template +0 -43
  138. package/lib/generators/add-backend/files/src/server-setup/websocket-multipath-update.ts.template +0 -88
  139. package/lib/generators/add-backend/files/src/stack-server.ts.template +0 -277
  140. package/lib/generators/add-backend/files/src/utils/migrations.ts.template +0 -32
  141. package/lib/generators/add-backend/files/uploads/3986781.ppt +0 -0
@@ -1,277 +0,0 @@
1
- /* eslint-disable import/namespace */
2
- /* eslint-disable import/no-unresolved */
3
- /* eslint-disable import/no-extraneous-dependencies */
4
- // version 08/25/2021
5
- import * as http from 'http';
6
- import * as express from 'express';
7
- import { logger as serverLogger } from '@cdm-logger/server';
8
- import { Feature } from '@common-stack/server-core';
9
- import { ContainerModule, interfaces, Container } from 'inversify';
10
- import { ServiceBroker, ServiceSettingSchema } from 'moleculer';
11
- import { CommonType } from '@common-stack/core';
12
- import { isEmpty } from 'lodash-es';
13
- import { CdmLogger } from '@cdm-logger/core';
14
- import { applyMiddleware } from 'graphql-middleware';
15
- import { shield } from 'graphql-shield';
16
- import { expressApp } from './express-app';
17
- import { GraphqlServer } from './server-setup/graphql-server';
18
- import { config } from './config';
19
- import { ConnectionBroker } from './connectors/connection-broker';
20
- import { brokerConfig } from './config/moleculer.config';
21
- import modules, { settings } from './modules';
22
- import { GatewaySchemaBuilder } from './api/schema-builder';
23
- import { WebsocketMultiPathServer } from './server-setup/websocket-multipath-update';
24
- import { IModuleService } from './interfaces';
25
- import { migrate } from './utils/migrations';
26
- import { InterNamespaceMiddleware } from './middleware/moleculer-inter-namespace';
27
- // This is temp and will be replaced one we add support for rules in Feature
28
-
29
- type ILogger = CdmLogger.ILogger;
30
-
31
- function startListening(port) {
32
- // eslint-disable-next-line @typescript-eslint/no-this-alias
33
- const server = this;
34
- return new Promise((resolve) => {
35
- server.listen(port, resolve);
36
- });
37
- }
38
-
39
- const infraModule = ({ broker, pubsub, mongoClient, logger }) =>
40
- new ContainerModule((bind: interfaces.Bind) => {
41
- bind('Logger').toConstantValue(logger);
42
- bind(CommonType.LOGGER).toConstantValue(logger);
43
- bind('Environment').toConstantValue(config.NODE_ENV || 'development');
44
- bind(CommonType.ENVIRONMENT).toConstantValue(config.NODE_ENV || 'development');
45
- bind('PubSub').toConstantValue(pubsub);
46
- bind(CommonType.PUBSUB).toConstantValue(pubsub);
47
- bind(CommonType.MOLECULER_BROKER).toConstantValue(broker);
48
- bind('MoleculerBroker').toConstantValue(broker);
49
- bind('MongoDBConnection').toConstantValue(mongoClient);
50
- });
51
-
52
- /**
53
- * Controls the lifecycle of the Application Server
54
- *
55
- * @export
56
- * @class StackServer
57
- */
58
- export class StackServer {
59
- public httpServer: http.Server & { startListening?: (port) => void };
60
-
61
- private app: express.Express;
62
-
63
- private logger: ILogger;
64
-
65
- private connectionBroker: ConnectionBroker;
66
-
67
- private mainserviceBroker: ServiceBroker;
68
-
69
- private microserviceBroker: ServiceBroker;
70
-
71
- private multiPathWebsocket: WebsocketMultiPathServer;
72
-
73
- private serviceContainer: Container;
74
-
75
- private microserviceContainer: Container;
76
-
77
- constructor() {
78
- this.logger = serverLogger.child({ className: 'StackServer' });
79
- }
80
-
81
- public async initialize() {
82
- this.logger.info('StackServer initializing');
83
-
84
- // eslint-disable-next-line import/namespace
85
- this.connectionBroker = new ConnectionBroker(brokerConfig.transporter, this.logger);
86
- const redisClient = this.connectionBroker.redisDataloaderClient;
87
-
88
- const mongoClient = await this.connectionBroker.mongoConnection;
89
-
90
- // Moleculer Broker Setup
91
- this.mainserviceBroker = new ServiceBroker({
92
- ...brokerConfig,
93
- middlewares: [
94
- InterNamespaceMiddleware([
95
- {
96
- namespace: 'api-admin',
97
- transporter: brokerConfig.transporter,
98
- },
99
- ]),
100
- ],
101
- started: async () => {
102
- await modules.preStart(this.serviceContainer);
103
- if (config.NODE_ENV === 'development') {
104
- // await modules.microservicePreStart(this.micorserviceContainer);
105
- }
106
-
107
- try {
108
- this.logger.info('Starting Migration');
109
- await migrate(mongoClient, this.serviceContainer, this.logger);
110
- this.logger.info('End Migration');
111
- } catch (e) {
112
- this.logger.error('Error while running migrations', e);
113
- this.logger.error(e.stack);
114
- }
115
-
116
- try {
117
- await modules.postStart(this.serviceContainer);
118
- } catch (e) {
119
- this.logger.error('Error while running Post Start', e);
120
- this.logger.error(e.stack);
121
- }
122
- // start DB migration
123
-
124
- if (config.NODE_ENV === 'development') {
125
- // await modules.microservicePostStart(this.micorserviceContainer);
126
- }
127
- },
128
-
129
- // created,
130
- async created() {
131
- return Promise.resolve();
132
- },
133
- });
134
-
135
- if (config.NODE_ENV === 'development') {
136
- this.microserviceBroker = new ServiceBroker({
137
- ...brokerConfig,
138
- nodeID: 'node-broker-2',
139
- started: async () => {
140
- await modules.microservicePreStart(this.microserviceContainer);
141
- await modules.microservicePostStart(this.microserviceContainer);
142
- },
143
- // created,
144
- created: async () => Promise.resolve(),
145
- });
146
- }
147
- const pubsub = await this.connectionBroker.graphqlPubsub;
148
- const InfraStructureFeature = new Feature({
149
- createContainerFunc: [
150
- () =>
151
- infraModule({
152
- broker: this.mainserviceBroker,
153
- pubsub,
154
- mongoClient,
155
- logger: serverLogger,
156
- }),
157
- ],
158
- createServiceFunc: (container) => ({ moleculerBroker: container.get(CommonType.MOLECULER_BROKER) }),
159
- createHemeraContainerFunc: [
160
- () =>
161
- infraModule({
162
- broker: this.mainserviceBroker,
163
- pubsub,
164
- mongoClient,
165
- logger: serverLogger,
166
- }),
167
- ],
168
- });
169
-
170
- const allModules = new Feature(InfraStructureFeature, modules as Feature);
171
- let executableSchema = await new GatewaySchemaBuilder({
172
- schema: allModules.schemas,
173
- resolvers: allModules.createResolvers({
174
- pubsub,
175
- logger: serverLogger,
176
- subscriptionID: `${settings.subTopic}`,
177
- }),
178
- directives: [],
179
- directiveResolvers: allModules.createDirectives({ logger: this.logger }),
180
- middlewares: allModules.graphqlMiddlewares,
181
- rules: allModules.rules,
182
- logger: serverLogger,
183
- }).build();
184
-
185
- // set the service container
186
- this.serviceContainer = await allModules.createContainers({ ...settings, mongoConnection: mongoClient });
187
- const createServiceContext = allModules.createServiceContext({ ...settings, mongoConnection: mongoClient });
188
- const serviceBroker: IModuleService = {
189
- serviceContainer: this.serviceContainer,
190
- serviceContext: createServiceContext,
191
- dataSource: allModules.createDataSource(),
192
- defaultPreferences: allModules.createDefaultPreferences(),
193
- createContext: async (req, res) => allModules.createContext(req, res),
194
- logger: serverLogger,
195
- schema: executableSchema,
196
- };
197
- allModules.loadMainMoleculerService({
198
- broker: this.mainserviceBroker,
199
- container: this.serviceContainer,
200
- settings,
201
- });
202
- if (config.NODE_ENV === 'development') {
203
- this.microserviceContainer = await allModules.createHemeraContainers({
204
- ...settings,
205
- mongoConnection: mongoClient,
206
- });
207
- allModules.loadClientMoleculerService({
208
- broker: this.microserviceBroker,
209
- container: this.microserviceContainer,
210
- settings,
211
- });
212
- }
213
-
214
- // initialize Servers
215
- this.httpServer = http.createServer();
216
- this.app = await expressApp(serviceBroker, null, this.httpServer);
217
-
218
- this.httpServer.startListening = startListening.bind(this.httpServer);
219
- this.httpServer.on('request', this.app);
220
- this.httpServer.on('close', () => {
221
- this.httpServer = undefined;
222
- });
223
-
224
- const customWebsocket = allModules.getWebsocketConfig();
225
- const customWebsocketEnable = !isEmpty(customWebsocket);
226
-
227
- if (customWebsocketEnable) {
228
- this.multiPathWebsocket = new WebsocketMultiPathServer(serviceBroker, redisClient, customWebsocket);
229
- this.httpServer = this.multiPathWebsocket.httpServerUpgrade(this.httpServer);
230
- }
231
- const graphqlServer = new GraphqlServer(
232
- this.app,
233
- this.httpServer,
234
- redisClient,
235
- serviceBroker,
236
- !customWebsocketEnable,
237
- );
238
-
239
- await graphqlServer.initialize();
240
- this.app.use('/graphql', (req, res, next) => {
241
- res.append('Access-Control-Allow-Credentials', JSON.stringify(true));
242
- res.append('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
243
- res.append('Access-Control-Allow-Origin', '*');
244
- res.append(
245
- 'Access-Control-Allow-Headers',
246
- 'X-Requested-With, X-HTTP-Method-Override, X-CSP-Nonce, Content-Type, Accept',
247
- );
248
- next();
249
- });
250
- }
251
-
252
- public async start() {
253
- if (config.NODE_ENV === 'development') {
254
- await Promise.all([this.mainserviceBroker.start(), this.microserviceBroker.start()]);
255
- } else {
256
- await this.mainserviceBroker.start();
257
- }
258
- }
259
-
260
- public async cleanup() {
261
- if (this.multiPathWebsocket) {
262
- this.multiPathWebsocket.close();
263
- }
264
- if (this.httpServer) {
265
- await this.httpServer.close();
266
- }
267
- if (this.connectionBroker) {
268
- await this.connectionBroker.stop();
269
- }
270
- if (this.mainserviceBroker) {
271
- await this.mainserviceBroker.stop();
272
- }
273
- if (this.microserviceBroker) {
274
- await this.microserviceBroker.stop();
275
- }
276
- }
277
- }
@@ -1,32 +0,0 @@
1
- import { Schema, Connection } from 'mongoose';
2
- import { Container } from 'inversify';
3
- import { IDatabaseMigration } from '@adminide-stack/core';
4
- import { CdmLogger } from '@cdm-logger/core';
5
-
6
- export const MigrationSchema = new Schema({
7
- migrated_at: Date,
8
- name: { required: true, type: String },
9
- });
10
-
11
- export async function migrate(db: Connection, container: Container, logger: CdmLogger.ILogger) {
12
- try {
13
- const migrations = container.getAll<IDatabaseMigration>('MongodbMigration');
14
- const model = db.model<any, any>('Migration', MigrationSchema);
15
- migrations.map(async (migration) => {
16
- const exists = await model.findOne({ name: migration.id });
17
- if (!exists) {
18
- try {
19
- await migration.up();
20
- await model.create({ name: migration.id, migrated_at: new Date() });
21
- } catch (e) {
22
- console.log(`Can not process migration ${migration.id}: `, e);
23
- }
24
- }
25
-
26
- return migration.id;
27
- });
28
- } catch (err) {
29
- console.warn('ignoring migrate database due to ', err.message);
30
- }
31
-
32
- }