@common-stack/server-stack 7.0.4-alpha.15 → 7.0.4-alpha.17

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 (165) hide show
  1. package/package.json +7 -7
  2. package/lib/MainStackServer.cjs +0 -231
  3. package/lib/MainStackServer.cjs.map +0 -1
  4. package/lib/MainStackServer.d.ts +0 -28
  5. package/lib/MainStackServer.mjs +0 -231
  6. package/lib/MainStackServer.mjs.map +0 -1
  7. package/lib/StackServer.cjs +0 -92
  8. package/lib/StackServer.cjs.map +0 -1
  9. package/lib/StackServer.d.ts +0 -20
  10. package/lib/StackServer.mjs +0 -92
  11. package/lib/StackServer.mjs.map +0 -1
  12. package/lib/api/remote-config.cjs +0 -6
  13. package/lib/api/remote-config.cjs.map +0 -1
  14. package/lib/api/remote-config.d.ts +0 -6
  15. package/lib/api/remote-config.mjs +0 -6
  16. package/lib/api/remote-config.mjs.map +0 -1
  17. package/lib/api/resolver.cjs +0 -12
  18. package/lib/api/resolver.cjs.map +0 -1
  19. package/lib/api/resolver.d.ts +0 -10
  20. package/lib/api/resolver.mjs +0 -12
  21. package/lib/api/resolver.mjs.map +0 -1
  22. package/lib/api/root-schema.graphqls.cjs +0 -2
  23. package/lib/api/root-schema.graphqls.cjs.map +0 -1
  24. package/lib/api/root-schema.graphqls.mjs +0 -2
  25. package/lib/api/root-schema.graphqls.mjs.map +0 -1
  26. package/lib/api/scalar.cjs +0 -16
  27. package/lib/api/scalar.cjs.map +0 -1
  28. package/lib/api/scalar.d.ts +0 -2
  29. package/lib/api/scalar.mjs +0 -16
  30. package/lib/api/scalar.mjs.map +0 -1
  31. package/lib/api/schema-builder.cjs +0 -160
  32. package/lib/api/schema-builder.cjs.map +0 -1
  33. package/lib/api/schema-builder.d.ts +0 -24
  34. package/lib/api/schema-builder.mjs +0 -160
  35. package/lib/api/schema-builder.mjs.map +0 -1
  36. package/lib/api/utils.cjs +0 -27
  37. package/lib/api/utils.cjs.map +0 -1
  38. package/lib/api/utils.d.ts +0 -4
  39. package/lib/api/utils.mjs +0 -27
  40. package/lib/api/utils.mjs.map +0 -1
  41. package/lib/config/env-config.cjs +0 -38
  42. package/lib/config/env-config.cjs.map +0 -1
  43. package/lib/config/env-config.d.ts +0 -21
  44. package/lib/config/env-config.mjs +0 -38
  45. package/lib/config/env-config.mjs.map +0 -1
  46. package/lib/config/index.d.ts +0 -1
  47. package/lib/config/moleculer.config.cjs +0 -191
  48. package/lib/config/moleculer.config.cjs.map +0 -1
  49. package/lib/config/moleculer.config.d.ts +0 -20
  50. package/lib/config/moleculer.config.mjs +0 -191
  51. package/lib/config/moleculer.config.mjs.map +0 -1
  52. package/lib/connectors/connection-broker.cjs +0 -61
  53. package/lib/connectors/connection-broker.cjs.map +0 -1
  54. package/lib/connectors/connection-broker.d.ts +0 -26
  55. package/lib/connectors/connection-broker.mjs +0 -61
  56. package/lib/connectors/connection-broker.mjs.map +0 -1
  57. package/lib/connectors/graphql-pubsub-connector.cjs +0 -28
  58. package/lib/connectors/graphql-pubsub-connector.cjs.map +0 -1
  59. package/lib/connectors/graphql-pubsub-connector.d.ts +0 -22
  60. package/lib/connectors/graphql-pubsub-connector.mjs +0 -28
  61. package/lib/connectors/graphql-pubsub-connector.mjs.map +0 -1
  62. package/lib/connectors/mongo-connector.cjs +0 -57
  63. package/lib/connectors/mongo-connector.cjs.map +0 -1
  64. package/lib/connectors/mongo-connector.d.ts +0 -21
  65. package/lib/connectors/mongo-connector.mjs +0 -57
  66. package/lib/connectors/mongo-connector.mjs.map +0 -1
  67. package/lib/connectors/nats-connector.cjs +0 -63
  68. package/lib/connectors/nats-connector.cjs.map +0 -1
  69. package/lib/connectors/nats-connector.d.ts +0 -20
  70. package/lib/connectors/nats-connector.mjs +0 -63
  71. package/lib/connectors/nats-connector.mjs.map +0 -1
  72. package/lib/connectors/redis-connector.cjs +0 -79
  73. package/lib/connectors/redis-connector.cjs.map +0 -1
  74. package/lib/connectors/redis-connector.d.ts +0 -30
  75. package/lib/connectors/redis-connector.mjs +0 -79
  76. package/lib/connectors/redis-connector.mjs.map +0 -1
  77. package/lib/graphql/directives/index.cjs +0 -10
  78. package/lib/graphql/directives/index.cjs.map +0 -1
  79. package/lib/graphql/directives/index.d.ts +0 -7
  80. package/lib/graphql/directives/index.mjs +0 -10
  81. package/lib/graphql/directives/index.mjs.map +0 -1
  82. package/lib/graphql/index.d.ts +0 -2
  83. package/lib/graphql/schema/directives.graphql.cjs +0 -1
  84. package/lib/graphql/schema/directives.graphql.cjs.map +0 -1
  85. package/lib/graphql/schema/directives.graphql.mjs +0 -1
  86. package/lib/graphql/schema/directives.graphql.mjs.map +0 -1
  87. package/lib/graphql/schema/index.cjs +0 -1
  88. package/lib/graphql/schema/index.cjs.map +0 -1
  89. package/lib/graphql/schema/index.d.ts +0 -1
  90. package/lib/graphql/schema/index.mjs +0 -1
  91. package/lib/graphql/schema/index.mjs.map +0 -1
  92. package/lib/index.cjs +0 -1
  93. package/lib/index.cjs.map +0 -1
  94. package/lib/index.d.ts +0 -3
  95. package/lib/index.mjs +0 -1
  96. package/lib/index.mjs.map +0 -1
  97. package/lib/interfaces/dbMigration.d.ts +0 -8
  98. package/lib/interfaces/graphql-request-context.d.ts +0 -15
  99. package/lib/interfaces/index.d.ts +0 -4
  100. package/lib/interfaces/module-interface.d.ts +0 -13
  101. package/lib/interfaces/moleculer.d.ts +0 -7
  102. package/lib/middleware/cors.cjs +0 -26
  103. package/lib/middleware/cors.cjs.map +0 -1
  104. package/lib/middleware/cors.d.ts +0 -6
  105. package/lib/middleware/cors.mjs +0 -26
  106. package/lib/middleware/cors.mjs.map +0 -1
  107. package/lib/middleware/error.cjs +0 -18
  108. package/lib/middleware/error.cjs.map +0 -1
  109. package/lib/middleware/error.d.ts +0 -9
  110. package/lib/middleware/error.mjs +0 -18
  111. package/lib/middleware/error.mjs.map +0 -1
  112. package/lib/middleware/moleculer-inter-namespace.cjs +0 -44
  113. package/lib/middleware/moleculer-inter-namespace.cjs.map +0 -1
  114. package/lib/middleware/moleculer-inter-namespace.d.ts +0 -2
  115. package/lib/middleware/moleculer-inter-namespace.mjs +0 -44
  116. package/lib/middleware/moleculer-inter-namespace.mjs.map +0 -1
  117. package/lib/middleware/sentry.cjs +0 -3
  118. package/lib/middleware/sentry.cjs.map +0 -1
  119. package/lib/middleware/sentry.d.ts +0 -2
  120. package/lib/middleware/sentry.mjs +0 -3
  121. package/lib/middleware/sentry.mjs.map +0 -1
  122. package/lib/middleware/services.cjs +0 -12
  123. package/lib/middleware/services.cjs.map +0 -1
  124. package/lib/middleware/services.d.ts +0 -2
  125. package/lib/middleware/services.mjs +0 -12
  126. package/lib/middleware/services.mjs.map +0 -1
  127. package/lib/plugins/index.d.ts +0 -2
  128. package/lib/plugins/invalidateCachePlugin.cjs +0 -59
  129. package/lib/plugins/invalidateCachePlugin.cjs.map +0 -1
  130. package/lib/plugins/invalidateCachePlugin.d.ts +0 -8
  131. package/lib/plugins/invalidateCachePlugin.mjs +0 -59
  132. package/lib/plugins/invalidateCachePlugin.mjs.map +0 -1
  133. package/lib/plugins/responseCachePlugin.cjs +0 -58
  134. package/lib/plugins/responseCachePlugin.cjs.map +0 -1
  135. package/lib/plugins/responseCachePlugin.d.ts +0 -8
  136. package/lib/plugins/responseCachePlugin.mjs +0 -58
  137. package/lib/plugins/responseCachePlugin.mjs.map +0 -1
  138. package/lib/servers/ExpressApp.cjs +0 -37
  139. package/lib/servers/ExpressApp.cjs.map +0 -1
  140. package/lib/servers/ExpressApp.d.ts +0 -3
  141. package/lib/servers/ExpressApp.mjs +0 -37
  142. package/lib/servers/ExpressApp.mjs.map +0 -1
  143. package/lib/servers/GraphqlServer.cjs +0 -142
  144. package/lib/servers/GraphqlServer.cjs.map +0 -1
  145. package/lib/servers/GraphqlServer.d.ts +0 -23
  146. package/lib/servers/GraphqlServer.mjs +0 -142
  147. package/lib/servers/GraphqlServer.mjs.map +0 -1
  148. package/lib/servers/GraphqlWs.cjs +0 -97
  149. package/lib/servers/GraphqlWs.cjs.map +0 -1
  150. package/lib/servers/GraphqlWs.d.ts +0 -14
  151. package/lib/servers/GraphqlWs.mjs +0 -97
  152. package/lib/servers/GraphqlWs.mjs.map +0 -1
  153. package/lib/servers/WebsocketMultipathUpdate.cjs +0 -63
  154. package/lib/servers/WebsocketMultipathUpdate.cjs.map +0 -1
  155. package/lib/servers/WebsocketMultipathUpdate.d.ts +0 -18
  156. package/lib/servers/WebsocketMultipathUpdate.mjs +0 -63
  157. package/lib/servers/WebsocketMultipathUpdate.mjs.map +0 -1
  158. package/lib/servers/mongodb-migration-update.d.ts +0 -12
  159. package/lib/servers/utils.d.ts +0 -14
  160. package/lib/utils/index.d.ts +0 -1
  161. package/lib/utils/migrations.cjs +0 -26
  162. package/lib/utils/migrations.cjs.map +0 -1
  163. package/lib/utils/migrations.d.ts +0 -8
  164. package/lib/utils/migrations.mjs +0 -26
  165. package/lib/utils/migrations.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"StackServer.cjs","sources":["../src/StackServer.ts"],"sourcesContent":[null],"names":["ContainerModule","CommonType","config","serverLogger","ConnectionBroker","brokerConfig","ServiceBroker","InterNamespaceMiddleware","ServerFeature"],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- import { Feature as ServerFeature } from '@common-stack/server-core';
2
- /**
3
- * Controls the lifecycle of the Application Server
4
- *
5
- * @export
6
- * @class StackServer
7
- */
8
- export declare class StackServer {
9
- private logger;
10
- private connectionBroker;
11
- private microserviceBroker;
12
- private serviceContainer;
13
- private microserviceContainer;
14
- private serverFeature;
15
- private settings;
16
- constructor(feature: ServerFeature, settings: any);
17
- initialize(): Promise<void>;
18
- start(): Promise<void>;
19
- cleanup(): Promise<void>;
20
- }
@@ -1,92 +0,0 @@
1
- import {logger}from'@cdm-logger/server';import {Feature}from'@common-stack/server-core';import {ContainerModule}from'inversify';import {ServiceBroker}from'moleculer';import {CommonType}from'@common-stack/core';import brokerConfig from'./config/moleculer.config.mjs';import {config}from'./config/env-config.mjs';import {ConnectionBroker}from'./connectors/connection-broker.mjs';import {InterNamespaceMiddleware}from'./middleware/moleculer-inter-namespace.mjs';/* eslint-disable import/no-extraneous-dependencies */
2
- /* eslint-disable import/namespace */
3
- const infraModule = ({ broker, pubsub, mongoClient, logger }) => new ContainerModule((bind) => {
4
- bind('Logger').toConstantValue(logger);
5
- bind(CommonType.LOGGER).toConstantValue(logger);
6
- bind('Environment').toConstantValue(config.NODE_ENV || 'development');
7
- bind(CommonType.ENVIRONMENT).toConstantValue(config.NODE_ENV || 'development');
8
- bind('PubSub').toConstantValue(pubsub);
9
- bind(CommonType.PUBSUB).toConstantValue(pubsub);
10
- bind(CommonType.MOLECULER_BROKER).toConstantValue(broker);
11
- bind('MoleculerBroker').toConstantValue(broker);
12
- bind('MongoDBConnection').toConstantValue(mongoClient);
13
- });
14
- /**
15
- * Controls the lifecycle of the Application Server
16
- *
17
- * @export
18
- * @class StackServer
19
- */
20
- class StackServer {
21
- logger;
22
- connectionBroker;
23
- microserviceBroker;
24
- serviceContainer;
25
- microserviceContainer;
26
- serverFeature;
27
- settings;
28
- constructor(feature, settings) {
29
- this.serverFeature = feature;
30
- this.settings = settings;
31
- this.logger = logger.child({ className: 'StackServer' });
32
- }
33
- async initialize() {
34
- this.logger.info('StackServer initializing');
35
- this.connectionBroker = new ConnectionBroker(brokerConfig.transporter, this.logger);
36
- await this.connectionBroker.redisConnection;
37
- const mongoClient = await this.connectionBroker.mongoConnection;
38
- this.microserviceBroker = new ServiceBroker({
39
- ...brokerConfig,
40
- middlewares: [
41
- InterNamespaceMiddleware([
42
- {
43
- namespace: 'api-admin',
44
- transporter: brokerConfig.transporter,
45
- },
46
- ]),
47
- ],
48
- started: async () => {
49
- await this.serverFeature.microservicePreStart(this.microserviceContainer);
50
- await this.serverFeature.microservicePostStart(this.microserviceContainer);
51
- },
52
- });
53
- const pubsub = await this.connectionBroker.graphqlPubsub;
54
- const InfraStructureFeature = new Feature({
55
- createHemeraContainerFunc: [
56
- () => infraModule({
57
- broker: this.microserviceBroker,
58
- pubsub,
59
- mongoClient,
60
- logger: logger,
61
- }),
62
- ],
63
- });
64
- const allModules = new Feature(InfraStructureFeature, this.serverFeature);
65
- this.microserviceContainer = await allModules.createHemeraContainers({
66
- ...this.settings,
67
- mongoConnection: mongoClient,
68
- });
69
- const serviceBroker = {
70
- microserviceContainer: this.microserviceContainer,
71
- logger: this.logger,
72
- };
73
- // set the service container
74
- this.microserviceContainer = serviceBroker.microserviceContainer;
75
- allModules.loadClientMoleculerService({
76
- broker: this.microserviceBroker,
77
- container: this.microserviceContainer,
78
- settings: this.settings,
79
- });
80
- }
81
- async start() {
82
- await this.microserviceBroker.start();
83
- }
84
- async cleanup() {
85
- if (this.connectionBroker) {
86
- await this.connectionBroker.stop();
87
- }
88
- if (this.microserviceBroker) {
89
- await this.microserviceBroker.stop();
90
- }
91
- }
92
- }export{StackServer};//# sourceMappingURL=StackServer.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StackServer.mjs","sources":["../src/StackServer.ts"],"sourcesContent":[null],"names":["serverLogger","ServerFeature"],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- 'use strict';const remoteSchemaDetails = [
2
- // {
3
- // uri: 'http://localhost:8085/graphql',
4
- // wsUri: 'ws://localhost:8085/graphql',
5
- // },
6
- ];exports.remoteSchemaDetails=remoteSchemaDetails;//# sourceMappingURL=remote-config.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remote-config.cjs","sources":["../../src/api/remote-config.ts"],"sourcesContent":[null],"names":[],"mappings":"aAKa,MAAA,mBAAmB,GAAoB;AAChD;AACA;AACA;AACA;"}
@@ -1,6 +0,0 @@
1
- interface ISchemaConfig {
2
- uri: string;
3
- wsUri: string;
4
- }
5
- export declare const remoteSchemaDetails: ISchemaConfig[];
6
- export {};
@@ -1,6 +0,0 @@
1
- const remoteSchemaDetails = [
2
- // {
3
- // uri: 'http://localhost:8085/graphql',
4
- // wsUri: 'ws://localhost:8085/graphql',
5
- // },
6
- ];export{remoteSchemaDetails};//# sourceMappingURL=remote-config.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remote-config.mjs","sources":["../../src/api/remote-config.ts"],"sourcesContent":[null],"names":[],"mappings":"AAKa,MAAA,mBAAmB,GAAoB;AAChD;AACA;AACA;AACA;"}
@@ -1,12 +0,0 @@
1
- 'use strict';var GraphQLJSON=require('graphql-type-json'),graphqlScalars=require('graphql-scalars'),GraphQLURISource=require('@cdmbase/graphql-type-uri'),scalar=require('./scalar.cjs');/* eslint-disable import/no-extraneous-dependencies */
2
- const GraphQLURI = GraphQLURISource.default ?? GraphQLURISource;
3
- const resolvers = {
4
- AnyObject: scalar.GraphQLAnyObject,
5
- Date: graphqlScalars.GraphQLDate,
6
- Time: graphqlScalars.GraphQLTime,
7
- URI: GraphQLURI('URI'),
8
- URIInput: GraphQLURI('URIInput'),
9
- DateTime: graphqlScalars.GraphQLDateTime,
10
- JSON: GraphQLJSON,
11
- JSONObject: GraphQLJSON.GraphQLJSONObject,
12
- };exports.resolvers=resolvers;//# sourceMappingURL=resolver.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolver.cjs","sources":["../../src/api/resolver.ts"],"sourcesContent":[null],"names":["GraphQLAnyObject","GraphQLDate","GraphQLTime","GraphQLDateTime","GraphQLJSONObject"],"mappings":"yLAAA;AAMA,MAAM,UAAU,GAAI,gBAAwB,CAAC,OAAO,IAAI,gBAAgB,CAAC;AAC5D,MAAA,SAAS,GAAG;AACrB,IAAA,SAAS,EAAEA,uBAAgB;AAC3B,IAAA,IAAI,EAAEC,0BAAW;AACjB,IAAA,IAAI,EAAEC,0BAAW;AACjB,IAAA,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC;AACtB,IAAA,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC;AAChC,IAAA,QAAQ,EAAEC,8BAAe;AACzB,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,UAAU,EAAEC,6BAAiB;"}
@@ -1,10 +0,0 @@
1
- export declare const resolvers: {
2
- AnyObject: import("graphql").GraphQLScalarType<unknown, unknown>;
3
- Date: import("graphql").GraphQLScalarType<Date, string>;
4
- Time: import("graphql").GraphQLScalarType<Date, string>;
5
- URI: any;
6
- URIInput: any;
7
- DateTime: import("graphql").GraphQLScalarType<Date, Date>;
8
- JSON: import("graphql").GraphQLScalarType<unknown, unknown>;
9
- JSONObject: import("graphql").GraphQLScalarType<unknown, unknown>;
10
- };
@@ -1,12 +0,0 @@
1
- import GraphQLJSON,{GraphQLJSONObject}from'graphql-type-json';import {GraphQLDate,GraphQLTime,GraphQLDateTime}from'graphql-scalars';import GraphQLURISource from'@cdmbase/graphql-type-uri';import {GraphQLAnyObject}from'./scalar.mjs';/* eslint-disable import/no-extraneous-dependencies */
2
- const GraphQLURI = GraphQLURISource.default ?? GraphQLURISource;
3
- const resolvers = {
4
- AnyObject: GraphQLAnyObject,
5
- Date: GraphQLDate,
6
- Time: GraphQLTime,
7
- URI: GraphQLURI('URI'),
8
- URIInput: GraphQLURI('URIInput'),
9
- DateTime: GraphQLDateTime,
10
- JSON: GraphQLJSON,
11
- JSONObject: GraphQLJSONObject,
12
- };export{resolvers};//# sourceMappingURL=resolver.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolver.mjs","sources":["../../src/api/resolver.ts"],"sourcesContent":[null],"names":[],"mappings":"wOAAA;AAMA,MAAM,UAAU,GAAI,gBAAwB,CAAC,OAAO,IAAI,gBAAgB,CAAC;AAC5D,MAAA,SAAS,GAAG;AACrB,IAAA,SAAS,EAAE,gBAAgB;AAC3B,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC;AACtB,IAAA,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC;AAChC,IAAA,QAAQ,EAAE,eAAe;AACzB,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,UAAU,EAAE,iBAAiB;"}
@@ -1,2 +0,0 @@
1
- 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var rootSchemaDef = "scalar AnyObject\nscalar Date\nscalar Time\nscalar DateTime\nscalar Timestamp\nscalar URI\nscalar URIInput\nscalar Observable\nscalar JSON\nscalar JSONObject\n\n\"\"\"\n An object with an ID.\n\"\"\"\ninterface Node {\n \"\"\"\n The ID of the node.\n \"\"\"\n id: ID!\n}\n\n# Pagination information. See https://facebook.github.io/relay/graphql/connections.htm#sec-undefined.PageInfo.\ntype PageInfo {\n # Whether there is a next page of nodes in the connection.\n hasNextPage: Boolean!\n}\n\n\"\"\"\n Represents a null return value.\n\"\"\"\ntype EmptyResponse {\n # A dummy null value.\n alwaysNil: String\n}\n\ntype FieldError {\n field: String!\n message: String!\n}\n\ninput Sort{\n key: String!,\n value: SortEnum!,\n}\n\nenum SortEnum{\n ASC\n DESC\n}\n\ntype Query {\n \"\"\"\n Looks up a node by ID.\n \"\"\"\n node(id: ID!): Node\n\n}\n\ntype Mutation {\n dummy: Int\n}\n\ntype Subscription {\n dummy: Int\n}\n\n\ntype AdminIdeSettings {\n dummy: Int\n}\n\n\"\"\" All Moleculer Topic names are extended from this.\"\"\"\nenum MoleculerServiceName {\n dummy\n}\n\ninterface IResourceUtilizationSettings {\n subTopic: String\n adminApiNamespace: String\n}\n\n\"\"\"\nTo calculate geometry over an Eath-like sphere.\nList the `longitude` first and then `latitude`\n - Validate longitude values are between `-180` and `180`\n - Validate latitude values are between `-90` and `90`\n\"\"\"\ntype GeoLocation {\n coordinates: [Float]\n}\n\"\"\"\nInput geometry of the location.\nList the `longitude` first and then `latitude`\n - Validate longitude values are between `-180` and `180`\n - Validate latitude values are between `-90` and `90`\n\"\"\"\ninput GeoLocationInput {\n type: String = \"Point\"\n coordinates: [Float]\n}\n\n\"\"\"\nInput geometry of the location.\nList the `longitude` first and then `latitude`\n - Validate longitude values are between `-180` and `180`\n - Validate latitude values are between `-90` and `90`\n\"\"\"\ninput GeoLocationInput {\n type: String = \"Point\"\n coordinates: [Float]\n}\n\nenum MailTemplateId {\n dummy\n}\n\nenum MoleculerCronServiceName {\n dummy\n}\n\nschema {\n query: Query\n mutation: Mutation\n subscription: Subscription\n}\n\n";
2
- exports.default=rootSchemaDef;//# sourceMappingURL=root-schema.graphqls.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"root-schema.graphqls.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -1,2 +0,0 @@
1
- var rootSchemaDef = "scalar AnyObject\nscalar Date\nscalar Time\nscalar DateTime\nscalar Timestamp\nscalar URI\nscalar URIInput\nscalar Observable\nscalar JSON\nscalar JSONObject\n\n\"\"\"\n An object with an ID.\n\"\"\"\ninterface Node {\n \"\"\"\n The ID of the node.\n \"\"\"\n id: ID!\n}\n\n# Pagination information. See https://facebook.github.io/relay/graphql/connections.htm#sec-undefined.PageInfo.\ntype PageInfo {\n # Whether there is a next page of nodes in the connection.\n hasNextPage: Boolean!\n}\n\n\"\"\"\n Represents a null return value.\n\"\"\"\ntype EmptyResponse {\n # A dummy null value.\n alwaysNil: String\n}\n\ntype FieldError {\n field: String!\n message: String!\n}\n\ninput Sort{\n key: String!,\n value: SortEnum!,\n}\n\nenum SortEnum{\n ASC\n DESC\n}\n\ntype Query {\n \"\"\"\n Looks up a node by ID.\n \"\"\"\n node(id: ID!): Node\n\n}\n\ntype Mutation {\n dummy: Int\n}\n\ntype Subscription {\n dummy: Int\n}\n\n\ntype AdminIdeSettings {\n dummy: Int\n}\n\n\"\"\" All Moleculer Topic names are extended from this.\"\"\"\nenum MoleculerServiceName {\n dummy\n}\n\ninterface IResourceUtilizationSettings {\n subTopic: String\n adminApiNamespace: String\n}\n\n\"\"\"\nTo calculate geometry over an Eath-like sphere.\nList the `longitude` first and then `latitude`\n - Validate longitude values are between `-180` and `180`\n - Validate latitude values are between `-90` and `90`\n\"\"\"\ntype GeoLocation {\n coordinates: [Float]\n}\n\"\"\"\nInput geometry of the location.\nList the `longitude` first and then `latitude`\n - Validate longitude values are between `-180` and `180`\n - Validate latitude values are between `-90` and `90`\n\"\"\"\ninput GeoLocationInput {\n type: String = \"Point\"\n coordinates: [Float]\n}\n\n\"\"\"\nInput geometry of the location.\nList the `longitude` first and then `latitude`\n - Validate longitude values are between `-180` and `180`\n - Validate latitude values are between `-90` and `90`\n\"\"\"\ninput GeoLocationInput {\n type: String = \"Point\"\n coordinates: [Float]\n}\n\nenum MailTemplateId {\n dummy\n}\n\nenum MoleculerCronServiceName {\n dummy\n}\n\nschema {\n query: Query\n mutation: Mutation\n subscription: Subscription\n}\n\n";
2
- export{rootSchemaDef as default};//# sourceMappingURL=root-schema.graphqls.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"root-schema.graphqls.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -1,16 +0,0 @@
1
- 'use strict';var graphql=require('graphql');// add any scalar types
2
- // https://stackoverflow.com/questions/41557536/custom-map-keys-in-graphql-response
3
- const GraphQLAnyObject = new graphql.GraphQLScalarType({
4
- name: 'AnyObject',
5
- description: 'Any JSON object. This type bypasses type checking.',
6
- serialize: (value) => value,
7
- parseValue: (value) => value,
8
- parseLiteral: (ast) => {
9
- if (ast.kind !== graphql.Kind.OBJECT) {
10
- throw new graphql.GraphQLError(`Query error: Can only parse object but got a: ${ast.kind}`, {
11
- nodes: [ast],
12
- });
13
- }
14
- return ast.fields;
15
- },
16
- });exports.GraphQLAnyObject=GraphQLAnyObject;//# sourceMappingURL=scalar.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scalar.cjs","sources":["../../src/api/scalar.ts"],"sourcesContent":[null],"names":["GraphQLScalarType","Kind","GraphQLError"],"mappings":"4CAAA;AAGA;AACa,MAAA,gBAAgB,GAAG,IAAIA,yBAAiB,CAAC;AAClD,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,WAAW,EAAE,oDAAoD;AACjE,IAAA,SAAS,EAAE,CAAC,KAAK,KAAK,KAAK;AAC3B,IAAA,UAAU,EAAE,CAAC,KAAK,KAAK,KAAK;AAC5B,IAAA,YAAY,EAAE,CAAC,GAAG,KAAI;QAClB,IAAI,GAAG,CAAC,IAAI,KAAKC,YAAI,CAAC,MAAM,EAAE;YAC1B,MAAM,IAAIC,oBAAY,CAAC,CAAA,8CAAA,EAAiD,GAAG,CAAC,IAAI,EAAE,EAAE;gBAChF,KAAK,EAAE,CAAC,GAAG,CAAC;AACf,aAAA,CAAC,CAAC;SACN;QACD,OAAO,GAAG,CAAC,MAAM,CAAC;KACrB;AACJ,CAAA"}
@@ -1,2 +0,0 @@
1
- import { GraphQLScalarType } from 'graphql';
2
- export declare const GraphQLAnyObject: GraphQLScalarType<unknown, unknown>;
@@ -1,16 +0,0 @@
1
- import {GraphQLScalarType,Kind,GraphQLError}from'graphql';// add any scalar types
2
- // https://stackoverflow.com/questions/41557536/custom-map-keys-in-graphql-response
3
- const GraphQLAnyObject = new GraphQLScalarType({
4
- name: 'AnyObject',
5
- description: 'Any JSON object. This type bypasses type checking.',
6
- serialize: (value) => value,
7
- parseValue: (value) => value,
8
- parseLiteral: (ast) => {
9
- if (ast.kind !== Kind.OBJECT) {
10
- throw new GraphQLError(`Query error: Can only parse object but got a: ${ast.kind}`, {
11
- nodes: [ast],
12
- });
13
- }
14
- return ast.fields;
15
- },
16
- });export{GraphQLAnyObject};//# sourceMappingURL=scalar.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scalar.mjs","sources":["../../src/api/scalar.ts"],"sourcesContent":[null],"names":[],"mappings":"0DAAA;AAGA;AACa,MAAA,gBAAgB,GAAG,IAAI,iBAAiB,CAAC;AAClD,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,WAAW,EAAE,oDAAoD;AACjE,IAAA,SAAS,EAAE,CAAC,KAAK,KAAK,KAAK;AAC3B,IAAA,UAAU,EAAE,CAAC,KAAK,KAAK,KAAK;AAC5B,IAAA,YAAY,EAAE,CAAC,GAAG,KAAI;QAClB,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE;YAC1B,MAAM,IAAI,YAAY,CAAC,CAAA,8CAAA,EAAiD,GAAG,CAAC,IAAI,EAAE,EAAE;gBAChF,KAAK,EAAE,CAAC,GAAG,CAAC;AACf,aAAA,CAAC,CAAC;SACN;QACD,OAAO,GAAG,CAAC,MAAM,CAAC;KACrB;AACJ,CAAA"}
@@ -1,160 +0,0 @@
1
- 'use strict';var fs=require('fs'),path=require('path'),stitch=require('@graphql-tools/stitch'),schema=require('@graphql-tools/schema'),links=require('@graphql-tools/links'),wrap=require('@graphql-tools/wrap'),ws$1=require('ws'),utilities=require('@apollo/client/utilities'),ws=require('@apollo/client/link/ws'),index_js=require('@apollo/client/index.js'),serverCore=require('@common-stack/server-core'),http=require('@apollo/client/link/http'),fetch=require('isomorphic-fetch'),graphqlShield=require('graphql-shield'),graphqlMiddleware=require('graphql-middleware'),remoteConfig=require('./remote-config.cjs'),rootSchema=require('./root-schema.graphqls.cjs'),resolver=require('./resolver.cjs'),utils=require('./utils.cjs'),envConfig=require('../config/env-config.cjs');function _interopNamespaceDefault(e){var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var fs__namespace=/*#__PURE__*/_interopNamespaceDefault(fs);var path__namespace=/*#__PURE__*/_interopNamespaceDefault(path);var ws__namespace=/*#__PURE__*/_interopNamespaceDefault(ws$1);var fetch__namespace=/*#__PURE__*/_interopNamespaceDefault(fetch);/// <reference path='../../../../typings/index.d.ts' />
2
- /* eslint-disable class-methods-use-this */
3
- /* eslint-disable no-useless-constructor */
4
- /* eslint-disable import/no-extraneous-dependencies */
5
- class GatewaySchemaBuilder {
6
- options;
7
- constructor(options) {
8
- this.options = options;
9
- }
10
- async build() {
11
- let gatewaySchema;
12
- let ownSchema;
13
- try {
14
- ownSchema = this.createOwnSchema();
15
- const remoteSchema = await this.load();
16
- // techSchema = this.patchSchema(techSchema, 'TechService');
17
- gatewaySchema = stitch.stitchSchemas({
18
- subschemas: [ownSchema],
19
- });
20
- // Apply middleware to the schema
21
- if (this.options.middlewares && this.options.middlewares.length > 0) {
22
- gatewaySchema = graphqlMiddleware.applyMiddleware(gatewaySchema, ...this.options.middlewares, graphqlShield.shield(this.options.rules || {}, {
23
- allowExternalErrors: true,
24
- }));
25
- }
26
- // TODO after updating graphql-tools to v8
27
- // addErrorLoggingToSchema(schema, { log: (e) => logger.error(e as Error) });
28
- }
29
- catch (err) {
30
- serverCore.logger.error(err, '[Graphql Schema Errors] when building schema:', err.message);
31
- gatewaySchema = ownSchema;
32
- }
33
- return gatewaySchema;
34
- }
35
- async load() {
36
- const schemas = [];
37
- // eslint-disable-next-line no-plusplus
38
- for (let i = 0; i < remoteConfig.remoteSchemaDetails.length; i++) {
39
- // eslint-disable-next-line no-await-in-loop
40
- const schema = await this.loadRemoteSchema(remoteConfig.remoteSchemaDetails[i]);
41
- schemas.push(schema);
42
- }
43
- return schemas;
44
- }
45
- async createRemoteSchema(service, iteration) {
46
- serverCore.logger.info('Fetch service [%s] iteration [%s]', service, iteration);
47
- const services = remoteConfig.remoteSchemaDetails;
48
- if (!services.length) {
49
- console.warn(`Service ${services} is undefined`);
50
- if (iteration && iteration > 2) {
51
- return Promise.reject(`tried upto ${iteration} attempts, now failing...`);
52
- }
53
- return new Promise((resolve, reject) => {
54
- const timeout = iteration ? 1000 * iteration : 1000;
55
- serverCore.logger.info('Wait for service startup %s', timeout);
56
- setTimeout(() => {
57
- this.createRemoteSchema(service, iteration ? iteration + 1 : 1)
58
- .then(resolve)
59
- .catch(reject);
60
- }, timeout);
61
- });
62
- }
63
- // instead need to loop it
64
- // https://github.com/j-colter/graphql-gateway/blob/9c64d90a74727d2002d10b06f47e1f4a316070fc/src/schema.js#L50
65
- const url = services[0].uri;
66
- serverCore.logger.info('fetch service [%s]', url);
67
- // 1. Create apollo Link that's connected to the underlying GraphQL API
68
- const link = new http.HttpLink({ uri: url, fetch: fetch__namespace });
69
- const executor = links.linkToExecutor(link);
70
- // 2. Retrieve schema definition of the underlying GraphQL API
71
- const remoteSchema = await wrap.schemaFromExecutor(link);
72
- // 3. Create the executable schema based on schema definition and Apollo Link
73
- return wrap.wrapSchema({
74
- schema: remoteSchema,
75
- executor,
76
- });
77
- }
78
- async loadRemoteSchema({ uri, wsUri }) {
79
- try {
80
- const httpLink = new http.HttpLink({ uri, fetch: fetch__namespace });
81
- let link = null;
82
- if (wsUri) {
83
- const wsLink = new ws.WebSocketLink({
84
- uri: wsUri,
85
- options: {
86
- reconnect: true,
87
- },
88
- webSocketImpl: ws__namespace,
89
- });
90
- link = index_js.split(
91
- // split based on operatino type
92
- ({ query }) => {
93
- const { kind, operation } = utilities.getMainDefinition(query);
94
- return kind === 'OperationDefinition' && operation === 'subscription';
95
- }, wsLink, httpLink);
96
- }
97
- else {
98
- link = httpLink;
99
- }
100
- const executor = links.linkToExecutor(link);
101
- const remoteSchema = await wrap.schemaFromExecutor(link);
102
- const executableSchema = wrap.wrapSchema({
103
- schema: remoteSchema,
104
- executor,
105
- });
106
- return executableSchema;
107
- }
108
- catch (err) {
109
- this.options.logger.error(err, 'fetching schema error: ', err);
110
- return {};
111
- }
112
- }
113
- // disabled after updating to apollo-client to v3 and graphql-tools to v8
114
- // private patchSchema(schema: GraphQLSchema, systemName: string) {
115
- // return transformSchema(schema, [
116
- // new RenameTypes((name: string) => (name === 'StatusInfo' ? `${systemName}StatusInfo` : undefined)),
117
- // new RenameRootFields((_operation: string, name: string) =>
118
- // name === 'status'
119
- // ? `${systemName.substring(0, 1).toLowerCase()}${systemName.substring(1)}Status`
120
- // : name,
121
- // ),
122
- // ]);
123
- // }
124
- createOwnSchema() {
125
- const typeDefs = [rootSchema.default, this.options.schema].join('\n');
126
- if (envConfig.config.isDev) {
127
- // @ts-ignore
128
- import('@src/modules/module').then(({ ExternalModules }) => {
129
- const externalSchema = ExternalModules?.schemas || ``;
130
- const writeData = `${externalSchema}`;
131
- const filePath = path__namespace.join(process.cwd(), 'generated-schema.graphql');
132
- fs__namespace.writeFileSync(filePath, writeData);
133
- });
134
- }
135
- let mergedSchema = schema.makeExecutableSchema({
136
- resolvers: [resolver.resolvers, this.options.resolvers],
137
- typeDefs,
138
- resolverValidationOptions: {
139
- requireResolversForResolveType: 'warn',
140
- },
141
- });
142
- try {
143
- // Check if directives are provided and are iterable
144
- if (Array.isArray(this.options.directives) && this.options.directives.length > 0) {
145
- this.options.directives.forEach((transform) => {
146
- mergedSchema = transform(mergedSchema);
147
- });
148
- }
149
- // Handle deprecated directiveResolvers if they exist
150
- if (this.options.directiveResolvers && Object.keys(this.options.directiveResolvers).length !== 0) {
151
- this.options.logger.warn('directiveResolvers deprecated replaced with directives');
152
- mergedSchema = utils.attachDirectiveResolvers(mergedSchema, this.options.directiveResolvers);
153
- }
154
- }
155
- catch (err) {
156
- this.options.logger.error(err, 'Error in schema directives [%j], and directiveResolvers [%j]', this.options.directives, this.options.directiveResolvers);
157
- }
158
- return mergedSchema;
159
- }
160
- }exports.GatewaySchemaBuilder=GatewaySchemaBuilder;//# sourceMappingURL=schema-builder.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema-builder.cjs","sources":["../../src/api/schema-builder.ts"],"sourcesContent":[null],"names":["stitchSchemas","applyMiddleware","shield","logger","remoteSchemaDetails","HttpLink","fetch","linkToExecutor","schemaFromExecutor","wrapSchema","WebSocketLink","ws","split","getMainDefinition","rootSchemaDef","config","path","fs","makeExecutableSchema","rootResolver","attachDirectiveResolvers"],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- import { GraphQLSchema } from 'graphql';
2
- import { IGraphqlShieldRules } from '@common-stack/server-core';
3
- import { CdmLogger } from '@cdm-logger/core';
4
- interface IGraphqlOptions {
5
- schema: string | string[];
6
- resolvers: any;
7
- directives: any[];
8
- directiveResolvers: {
9
- [key: string]: any;
10
- };
11
- middlewares: any[];
12
- rules?: IGraphqlShieldRules;
13
- logger: CdmLogger.ILogger;
14
- }
15
- export declare class GatewaySchemaBuilder {
16
- private options;
17
- constructor(options: IGraphqlOptions);
18
- build(): Promise<GraphQLSchema>;
19
- private load;
20
- private createRemoteSchema;
21
- private loadRemoteSchema;
22
- private createOwnSchema;
23
- }
24
- export {};