@common-stack/server-stack 7.1.1-alpha.2 → 7.1.1-alpha.22
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/lib/MainStackServer.cjs +7 -4
- package/lib/MainStackServer.cjs.map +1 -1
- package/lib/MainStackServer.d.ts +2 -1
- package/lib/MainStackServer.mjs +7 -4
- package/lib/MainStackServer.mjs.map +1 -1
- package/lib/StackServer.cjs +2 -1
- package/lib/StackServer.cjs.map +1 -1
- package/lib/StackServer.mjs +2 -1
- package/lib/StackServer.mjs.map +1 -1
- package/lib/api/root-schema.graphqls.cjs +1 -1
- package/lib/api/root-schema.graphqls.mjs +1 -1
- package/lib/api/sub-graph-schema-builder.cjs +149 -0
- package/lib/api/sub-graph-schema-builder.cjs.map +1 -0
- package/lib/api/sub-graph-schema-builder.d.ts +24 -0
- package/lib/api/sub-graph-schema-builder.mjs +149 -0
- package/lib/api/sub-graph-schema-builder.mjs.map +1 -0
- package/lib/interfaces/graphql-request-context.d.ts +5 -0
- package/lib/plugins/responseCachePlugin.cjs +1 -0
- package/lib/plugins/responseCachePlugin.cjs.map +1 -1
- package/lib/plugins/responseCachePlugin.mjs +1 -0
- package/lib/plugins/responseCachePlugin.mjs.map +1 -1
- package/lib/servers/GraphqlServer.cjs +4 -1
- package/lib/servers/GraphqlServer.cjs.map +1 -1
- package/lib/servers/GraphqlServer.d.ts +8 -6
- package/lib/servers/GraphqlServer.mjs +4 -1
- package/lib/servers/GraphqlServer.mjs.map +1 -1
- package/lib/servers/mongodb-migration-update.d.ts +1 -1
- package/lib/utils/add-shareable-directive-to-schema.cjs +44 -0
- package/lib/utils/add-shareable-directive-to-schema.cjs.map +1 -0
- package/lib/utils/add-shareable-directive-to-schema.d.ts +1 -0
- package/lib/utils/add-shareable-directive-to-schema.mjs +44 -0
- package/lib/utils/add-shareable-directive-to-schema.mjs.map +1 -0
- package/lib/utils/add-shareable-directive-to-schema.test.d.ts +1 -0
- package/lib/utils/index.d.ts +1 -0
- package/package.json +5 -9
package/lib/MainStackServer.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';var http=require('http'),server=require('@cdm-logger/server'),serverCore=require('@common-stack/server-core'),inversify=require('inversify'),moleculer=require('moleculer'),core=require('@common-stack/core'),_=require('lodash-es'),ExpressApp=require('./servers/ExpressApp.cjs'),GraphqlServer=require('./servers/GraphqlServer.cjs'),envConfig=require('./config/env-config.cjs'),connectionBroker=require('./connectors/connection-broker.cjs'),moleculer_config=require('./config/moleculer.config.cjs'),schemaBuilder=require('./api/schema-builder.cjs'),WebsocketMultipathUpdate=require('./servers/WebsocketMultipathUpdate.cjs'),migrations=require('./utils/migrations.cjs')
|
|
1
|
+
'use strict';var http=require('http'),server=require('@cdm-logger/server'),serverCore=require('@common-stack/server-core'),inversify=require('inversify'),moleculer=require('moleculer'),core=require('@common-stack/core'),_=require('lodash-es'),ExpressApp=require('./servers/ExpressApp.cjs'),GraphqlServer=require('./servers/GraphqlServer.cjs'),envConfig=require('./config/env-config.cjs'),connectionBroker=require('./connectors/connection-broker.cjs'),moleculer_config=require('./config/moleculer.config.cjs'),schemaBuilder=require('./api/schema-builder.cjs'),WebsocketMultipathUpdate=require('./servers/WebsocketMultipathUpdate.cjs'),migrations=require('./utils/migrations.cjs');require('graphql');var moleculerInterNamespace=require('./middleware/moleculer-inter-namespace.cjs'),index$1=require('./graphql/directives/index.cjs'),index=require('./graphql/schema/index.cjs'),subGraphSchemaBuilder=require('./api/sub-graph-schema-builder.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 http__namespace=/*#__PURE__*/_interopNamespaceDefault(http);/* eslint-disable import/namespace */
|
|
2
2
|
/* eslint-disable import/no-unresolved */
|
|
3
3
|
/* eslint-disable import/no-extraneous-dependencies */
|
|
4
4
|
// version 08/25/2021
|
|
@@ -39,9 +39,11 @@ class MainStackServer {
|
|
|
39
39
|
microserviceContainer;
|
|
40
40
|
serverFeature;
|
|
41
41
|
settings;
|
|
42
|
-
|
|
42
|
+
options;
|
|
43
|
+
constructor(feature, settings, options) {
|
|
43
44
|
this.serverFeature = feature;
|
|
44
45
|
this.settings = settings;
|
|
46
|
+
this.options = options;
|
|
45
47
|
this.logger = server.logger.child({ className: 'StackServer' });
|
|
46
48
|
}
|
|
47
49
|
async initialize() {
|
|
@@ -134,7 +136,8 @@ class MainStackServer {
|
|
|
134
136
|
schema: index.schema,
|
|
135
137
|
createDirectivesFunc: index$1.serverDirectives,
|
|
136
138
|
}));
|
|
137
|
-
const
|
|
139
|
+
const Constructor = this?.options?.isSubGraph ? subGraphSchemaBuilder.SubGraphSchemaBuilder : schemaBuilder.GatewaySchemaBuilder;
|
|
140
|
+
const executableSchema = await new Constructor({
|
|
138
141
|
schema: allModules.schemas,
|
|
139
142
|
resolvers: allModules.createResolvers({
|
|
140
143
|
pubsub,
|
|
@@ -193,7 +196,7 @@ class MainStackServer {
|
|
|
193
196
|
this.multiPathWebsocket = new WebsocketMultipathUpdate.WebsocketMultiPathServer(serviceBroker, redisClient, customWebsocket);
|
|
194
197
|
this.httpServer = this.multiPathWebsocket.httpServerUpgrade(this.httpServer);
|
|
195
198
|
}
|
|
196
|
-
const graphqlServer = new GraphqlServer.GraphqlServer(this.app, this.httpServer, redisClient, serviceBroker, !customWebsocketEnable, allModules.apolloCacheKeyGenerator.bind(allModules), allModules.apolloInvalidateCacheKeyGenerator.bind(allModules));
|
|
199
|
+
const graphqlServer = new GraphqlServer.GraphqlServer(this.app, this.httpServer, redisClient, serviceBroker, !customWebsocketEnable, allModules.apolloCacheKeyGenerator.bind(allModules), allModules.apolloInvalidateCacheKeyGenerator.bind(allModules), allModules.graphqlPlugins);
|
|
197
200
|
await graphqlServer.initialize();
|
|
198
201
|
this.app.use('/graphql', (req, res, next) => {
|
|
199
202
|
res.append('Access-Control-Allow-Credentials', JSON.stringify(true));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MainStackServer.cjs","sources":["../src/MainStackServer.ts"],"sourcesContent":[null],"names":["ContainerModule","CommonType","config","serverLogger","ConnectionBroker","brokerConfig","ServiceBroker","InterNamespaceMiddleware","migrate","Feature","schema","serverDirectives","GatewaySchemaBuilder","http","expressApp","isEmpty","WebsocketMultiPathServer","GraphqlServer"],"mappings":"
|
|
1
|
+
{"version":3,"file":"MainStackServer.cjs","sources":["../src/MainStackServer.ts"],"sourcesContent":[null],"names":["ContainerModule","CommonType","config","serverLogger","ConnectionBroker","brokerConfig","ServiceBroker","InterNamespaceMiddleware","migrate","Feature","schema","serverDirectives","SubGraphSchemaBuilder","GatewaySchemaBuilder","http","expressApp","isEmpty","WebsocketMultiPathServer","GraphqlServer"],"mappings":"4wCAAA;AACA;AACA;AACA;AA2BA,SAAS,cAAc,CAAC,IAAI,EAAA;;IAExB,MAAM,MAAM,GAAG,IAAI,CAAC;AACpB,IAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;AAC3B,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACjC,KAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,KACrE,IAAIA,yBAAe,CAAC,CAAC,IAAqB,KAAI;IAC1C,IAAI,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,CAACC,eAAU,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AAChD,IAAA,IAAI,CAAC,aAAa,CAAC,CAAC,eAAe,CAACC,gBAAM,CAAC,QAAQ,IAAI,aAAa,CAAC,CAAC;AACtE,IAAA,IAAI,CAACD,eAAU,CAAC,WAAW,CAAC,CAAC,eAAe,CAACC,gBAAM,CAAC,QAAQ,IAAI,aAAa,CAAC,CAAC;IAC/E,IAAI,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,CAACD,eAAU,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAChD,IAAI,CAACA,eAAU,CAAC,gBAAgB,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAC1D,IAAI,CAACA,eAAU,CAAC,YAAY,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;IAC3D,IAAI,CAAC,iBAAiB,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAChD,IAAI,CAAC,mBAAmB,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;AAC3D,CAAC,CAAC,CAAC;AAEP;;;;;AAKG;MACU,eAAe,CAAA;AACjB,IAAA,UAAU,CAAoD;AAE9D,IAAA,GAAG,CAAkB;AAEpB,IAAA,MAAM,CAAU;AAEhB,IAAA,gBAAgB,CAAmB;AAEnC,IAAA,iBAAiB,CAAgB;AAEjC,IAAA,kBAAkB,CAAgB;AAElC,IAAA,kBAAkB,CAA2B;AAE7C,IAAA,gBAAgB,CAAY;AAE5B,IAAA,qBAAqB,CAAY;AAEjC,IAAA,aAAa,CAAgB;AAE7B,IAAA,QAAQ,CAAC;AAET,IAAA,OAAO,CAA0B;AAEzC,IAAA,WAAA,CAAY,OAAsB,EAAE,QAAQ,EAAE,OAAiC,EAAA;AAC3E,QAAA,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;AAC7B,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACzB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACvB,QAAA,IAAI,CAAC,MAAM,GAAGE,aAAY,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;KAClE;AAEM,IAAA,MAAM,UAAU,GAAA;AACnB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;;AAG7C,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAIC,iCAAgB,CAACC,wBAAY,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACpF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC;QAEhE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC;;AAGhE,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAIC,uBAAa,CAAC;AACvC,YAAA,GAAGD,wBAAY;AACf,YAAA,WAAW,EAAE;AACT,gBAAAE,gDAAwB,CAAC;AACrB,oBAAA;AACI,wBAAA,SAAS,EAAE,WAAW;wBACtB,WAAW,EAAEF,wBAAY,CAAC,WAAW;AACrC,wBAAA,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;AAC9B,qBAAA;iBACJ,CAAC;AACL,aAAA;YACD,OAAO,EAAE,YAAW;gBAChB,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACzD,gBAAA,IAAIH,gBAAM,CAAC,QAAQ,KAAK,aAAa,EAAE,CAEtC;AAED,gBAAA,IAAI;AACA,oBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;AACvC,oBAAA,MAAMM,kBAAO,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/D,oBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;iBACrC;gBAAC,OAAO,CAAC,EAAE;oBACR,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,CAAC,CAAC,CAAC;oBACvD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;iBAC9B;AAED,gBAAA,IAAI;oBACA,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;iBAC7D;gBAAC,OAAO,CAAC,EAAE;oBACR,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;oBAC3E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;iBAC9B;;AAGD,gBAAA,IAAIN,gBAAM,CAAC,QAAQ,KAAK,aAAa,EAAE,CAEtC;aACJ;;AAGD,YAAA,MAAM,OAAO,GAAA;AACT,gBAAA,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;aAC5B;AACJ,SAAA,CAAC,CAAC;AAEH,QAAA,IAAIA,gBAAM,CAAC,QAAQ,KAAK,aAAa,EAAE;AACnC,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAII,uBAAa,CAAC;AACxC,gBAAA,GAAGD,wBAAY;AACf,gBAAA,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;AAC3B,gBAAA,MAAM,EAAE,eAAe;gBACvB,OAAO,EAAE,YAAW;oBAChB,MAAM,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;oBAC1E,MAAM,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;iBAC9E;;gBAED,OAAO,EAAE,YAAY,OAAO,CAAC,OAAO,EAAE;AACzC,aAAA,CAAC,CAAC;SACN;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;AACzD,QAAA,MAAM,qBAAqB,GAAG,IAAII,kBAAO,CAAC;AACtC,YAAA,mBAAmB,EAAE;gBACjB,MACI,WAAW,CAAC;oBACR,MAAM,EAAE,IAAI,CAAC,iBAAiB;oBAC9B,MAAM;oBACN,WAAW;AACX,oBAAA,MAAM,EAAEN,aAAY;oBACpB,WAAW;iBACd,CAAC;AACT,aAAA;AACD,YAAA,UAAU,EAAE;AACR,gBAAA,CAAC,GAAG,KACA,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,KAAI;AAC5B,oBAAA,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC;AAC9B,oBAAA,IAAI,EAAE,CAAC;AACX,iBAAC,CAAC;AACT,aAAA;AACD,YAAA,iBAAiB,EAAE,CAAC,SAAS,MAAM,EAAE,eAAe,EAAE,SAAS,CAAC,GAAG,CAACF,eAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;AACnG,YAAA,yBAAyB,EAAE;gBACvB,MACI,WAAW,CAAC;oBACR,MAAM,EAAE,IAAI,CAAC,iBAAiB;oBAC9B,MAAM;oBACN,WAAW;AACX,oBAAA,MAAM,EAAEE,aAAY;oBACpB,WAAW;iBACd,CAAC;AACT,aAAA;AACJ,SAAA,CAAC,CAAC;AAEH,QAAA,MAAM,UAAU,GAAG,IAAIM,kBAAO,CAC1B,qBAAqB,EACrB,IAAI,CAAC,aAAa,EAClB,IAAIA,kBAAO,CAAC;oBACRC,YAAM;AACN,YAAA,oBAAoB,EAAEC,wBAAgB;AACzC,SAAA,CAAC,CACL,CAAC;AAEF,QAAA,MAAM,WAAW,GAAG,IAAI,EAAE,OAAO,EAAE,UAAU,GAAGC,2CAAqB,GAAGC,kCAAoB,CAAC;AAC7F,QAAA,MAAM,gBAAgB,GAAG,MAAM,IAAI,WAAW,CAAC;YAC3C,MAAM,EAAE,UAAU,CAAC,OAAO;AAC1B,YAAA,SAAS,EAAE,UAAU,CAAC,eAAe,CAAC;gBAClC,MAAM;AACN,gBAAA,MAAM,EAAEV,aAAY;AACpB,gBAAA,cAAc,EAAE,CAAG,EAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAE,CAAA;aAC9C,CAAC;AACF,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,kBAAkB,EAAE,UAAU,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;YACxE,WAAW,EAAE,UAAU,CAAC,kBAAkB;YAC1C,KAAK,EAAE,UAAU,CAAC,KAAK;AACvB,YAAA,MAAM,EAAEA,aAAY;SACvB,CAAC,CAAC,KAAK,EAAE,CAAC;;AAGX,QAAA,IAAI,CAAC,gBAAgB,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC,CAAC;AAC9G,QAAA,MAAM,oBAAoB,GAAG,UAAU,CAAC,oBAAoB,CAAC;YACzD,GAAG,IAAI,CAAC,QAAQ;AAChB,YAAA,eAAe,EAAE,WAAW;AAC/B,SAAA,CAAC,CAAC;AACH,QAAA,MAAM,aAAa,GAAmB;YAClC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;AACvC,YAAA,cAAc,EAAE,oBAAoB;AACpC,YAAA,UAAU,EAAE,UAAU,CAAC,gBAAgB,EAAE;AACzC,YAAA,kBAAkB,EAAE,UAAU,CAAC,wBAAwB,EAAE;AACzD,YAAA,aAAa,EAAE,OAAO,GAAG,EAAE,GAAG,KAAK,UAAU,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC;AACrE,YAAA,MAAM,EAAEA,aAAY;AACpB,YAAA,MAAM,EAAE,gBAAgB;SAC3B,CAAC;QACF,UAAU,CAAC,wBAAwB,CAAC;YAChC,MAAM,EAAE,IAAI,CAAC,iBAAiB;YAC9B,SAAS,EAAE,IAAI,CAAC,gBAAgB;YAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ;AAC1B,SAAA,CAAC,CAAC;AACH,QAAA,IAAID,gBAAM,CAAC,QAAQ,KAAK,aAAa,EAAE;AACnC,YAAA,IAAI,CAAC,qBAAqB,GAAG,MAAM,UAAU,CAAC,sBAAsB,CAAC;gBACjE,GAAG,IAAI,CAAC,QAAQ;AAChB,gBAAA,eAAe,EAAE,WAAW;AAC/B,aAAA,CAAC,CAAC;YACH,UAAU,CAAC,0BAA0B,CAAC;gBAClC,MAAM,EAAE,IAAI,CAAC,kBAAkB;gBAC/B,SAAS,EAAE,IAAI,CAAC,qBAAqB;gBACrC,QAAQ,EAAE,IAAI,CAAC,QAAQ;AAC1B,aAAA,CAAC,CAAC;SACN;;AAGD,QAAA,IAAI,CAAC,UAAU,GAAGY,eAAI,CAAC,YAAY,EAAE,CAAC;AACtC,QAAA,IAAI,CAAC,GAAG,GAAG,MAAMC,qBAAU,CAAC,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9E,UAAU,CAAC,yBAAyB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACtE,QAAA,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAK;AAC7B,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;AAChC,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,eAAe,GAAG,UAAU,CAAC,kBAAkB,EAAE,CAAC;AACxD,QAAA,MAAM,qBAAqB,GAAG,CAACC,SAAO,CAAC,eAAe,CAAC,CAAC;QAExD,IAAI,qBAAqB,EAAE;AACvB,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAIC,iDAAwB,CAAC,aAAa,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;AACpG,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAChF;AACD,QAAA,MAAM,aAAa,GAAG,IAAIC,2BAAa,CACnC,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,UAAU,EACf,WAAW,EACX,aAAa,EACb,CAAC,qBAAqB,EACtB,UAAU,CAAC,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnD,UAAU,CAAC,iCAAiC,CAAC,IAAI,CAAC,UAAU,CAAC,EAC7D,UAAU,CAAC,cAAc,CAC5B,CAAC;AAEF,QAAA,MAAM,aAAa,CAAC,UAAU,EAAE,CAAC;AACjC,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,KAAI;AACxC,YAAA,GAAG,CAAC,MAAM,CAAC,kCAAkC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACrE,YAAA,GAAG,CAAC,MAAM,CAAC,8BAA8B,EAAE,qBAAqB,CAAC,CAAC;AAClE,YAAA,GAAG,CAAC,MAAM,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;AAC/C,YAAA,GAAG,CAAC,MAAM,CACN,8BAA8B,EAC9B,6EAA6E,CAChF,CAAC;AACF,YAAA,IAAI,EAAE,CAAC;AACX,SAAC,CAAC,CAAC;KACN;AAEM,IAAA,MAAM,KAAK,GAAA;AACd,QAAA,IAAIhB,gBAAM,CAAC,QAAQ,KAAK,aAAa,EAAE;YACnC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SACxF;aAAM;AACH,YAAA,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;SACxC;KACJ;AAEM,IAAA,MAAM,OAAO,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;SACnC;AACD,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;SACjC;AACD,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACvB,YAAA,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;SACtC;AACD,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACxB,YAAA,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;SACvC;AACD,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;SACxC;KACJ;AACJ"}
|
package/lib/MainStackServer.d.ts
CHANGED
|
@@ -21,7 +21,8 @@ export declare class MainStackServer {
|
|
|
21
21
|
private microserviceContainer;
|
|
22
22
|
private serverFeature;
|
|
23
23
|
private settings;
|
|
24
|
-
|
|
24
|
+
private options;
|
|
25
|
+
constructor(feature: ServerFeature, settings: any, options?: Record<string, unknown>);
|
|
25
26
|
initialize(): Promise<void>;
|
|
26
27
|
start(): Promise<void>;
|
|
27
28
|
cleanup(): Promise<void>;
|
package/lib/MainStackServer.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import*as http from'http';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 {isEmpty}from'lodash-es';import {expressApp}from'./servers/ExpressApp.mjs';import {GraphqlServer}from'./servers/GraphqlServer.mjs';import {config}from'./config/env-config.mjs';import {ConnectionBroker}from'./connectors/connection-broker.mjs';import brokerConfig from'./config/moleculer.config.mjs';import {GatewaySchemaBuilder}from'./api/schema-builder.mjs';import {WebsocketMultiPathServer}from'./servers/WebsocketMultipathUpdate.mjs';import {migrate}from'./utils/migrations.mjs';import {InterNamespaceMiddleware}from'./middleware/moleculer-inter-namespace.mjs';import {serverDirectives}from'./graphql/directives/index.mjs';import {schema}from'./graphql/schema/index.mjs';/* eslint-disable import/namespace */
|
|
1
|
+
import*as http from'http';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 {isEmpty}from'lodash-es';import {expressApp}from'./servers/ExpressApp.mjs';import {GraphqlServer}from'./servers/GraphqlServer.mjs';import {config}from'./config/env-config.mjs';import {ConnectionBroker}from'./connectors/connection-broker.mjs';import brokerConfig from'./config/moleculer.config.mjs';import {GatewaySchemaBuilder}from'./api/schema-builder.mjs';import {WebsocketMultiPathServer}from'./servers/WebsocketMultipathUpdate.mjs';import {migrate}from'./utils/migrations.mjs';import'graphql';import {InterNamespaceMiddleware}from'./middleware/moleculer-inter-namespace.mjs';import {serverDirectives}from'./graphql/directives/index.mjs';import {schema}from'./graphql/schema/index.mjs';import {SubGraphSchemaBuilder}from'./api/sub-graph-schema-builder.mjs';/* eslint-disable import/namespace */
|
|
2
2
|
/* eslint-disable import/no-unresolved */
|
|
3
3
|
/* eslint-disable import/no-extraneous-dependencies */
|
|
4
4
|
// version 08/25/2021
|
|
@@ -39,9 +39,11 @@ class MainStackServer {
|
|
|
39
39
|
microserviceContainer;
|
|
40
40
|
serverFeature;
|
|
41
41
|
settings;
|
|
42
|
-
|
|
42
|
+
options;
|
|
43
|
+
constructor(feature, settings, options) {
|
|
43
44
|
this.serverFeature = feature;
|
|
44
45
|
this.settings = settings;
|
|
46
|
+
this.options = options;
|
|
45
47
|
this.logger = logger.child({ className: 'StackServer' });
|
|
46
48
|
}
|
|
47
49
|
async initialize() {
|
|
@@ -134,7 +136,8 @@ class MainStackServer {
|
|
|
134
136
|
schema,
|
|
135
137
|
createDirectivesFunc: serverDirectives,
|
|
136
138
|
}));
|
|
137
|
-
const
|
|
139
|
+
const Constructor = this?.options?.isSubGraph ? SubGraphSchemaBuilder : GatewaySchemaBuilder;
|
|
140
|
+
const executableSchema = await new Constructor({
|
|
138
141
|
schema: allModules.schemas,
|
|
139
142
|
resolvers: allModules.createResolvers({
|
|
140
143
|
pubsub,
|
|
@@ -193,7 +196,7 @@ class MainStackServer {
|
|
|
193
196
|
this.multiPathWebsocket = new WebsocketMultiPathServer(serviceBroker, redisClient, customWebsocket);
|
|
194
197
|
this.httpServer = this.multiPathWebsocket.httpServerUpgrade(this.httpServer);
|
|
195
198
|
}
|
|
196
|
-
const graphqlServer = new GraphqlServer(this.app, this.httpServer, redisClient, serviceBroker, !customWebsocketEnable, allModules.apolloCacheKeyGenerator.bind(allModules), allModules.apolloInvalidateCacheKeyGenerator.bind(allModules));
|
|
199
|
+
const graphqlServer = new GraphqlServer(this.app, this.httpServer, redisClient, serviceBroker, !customWebsocketEnable, allModules.apolloCacheKeyGenerator.bind(allModules), allModules.apolloInvalidateCacheKeyGenerator.bind(allModules), allModules.graphqlPlugins);
|
|
197
200
|
await graphqlServer.initialize();
|
|
198
201
|
this.app.use('/graphql', (req, res, next) => {
|
|
199
202
|
res.append('Access-Control-Allow-Credentials', JSON.stringify(true));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MainStackServer.mjs","sources":["../src/MainStackServer.ts"],"sourcesContent":[null],"names":["serverLogger"],"mappings":"
|
|
1
|
+
{"version":3,"file":"MainStackServer.mjs","sources":["../src/MainStackServer.ts"],"sourcesContent":[null],"names":["serverLogger"],"mappings":"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"}
|
package/lib/StackServer.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';var server=require('@cdm-logger/server'),serverCore=require('@common-stack/server-core'),inversify=require('inversify'),moleculer=require('moleculer'),core=require('@common-stack/core'),moleculer_config=require('./config/moleculer.config.cjs'),envConfig=require('./config/env-config.cjs'),connectionBroker=require('./connectors/connection-broker.cjs'),moleculerInterNamespace=require('./middleware/moleculer-inter-namespace.cjs');/* eslint-disable import/no-extraneous-dependencies */
|
|
1
|
+
'use strict';var server=require('@cdm-logger/server'),common=require('common'),serverCore=require('@common-stack/server-core'),inversify=require('inversify'),moleculer=require('moleculer'),core=require('@common-stack/core'),moleculer_config=require('./config/moleculer.config.cjs'),envConfig=require('./config/env-config.cjs'),connectionBroker=require('./connectors/connection-broker.cjs'),moleculerInterNamespace=require('./middleware/moleculer-inter-namespace.cjs');/* eslint-disable import/no-extraneous-dependencies */
|
|
2
2
|
/* eslint-disable import/namespace */
|
|
3
3
|
const infraModule = ({ broker, pubsub, mongoClient, logger }) => new inversify.ContainerModule((bind) => {
|
|
4
4
|
bind('Logger').toConstantValue(logger);
|
|
@@ -10,6 +10,7 @@ const infraModule = ({ broker, pubsub, mongoClient, logger }) => new inversify.C
|
|
|
10
10
|
bind(core.CommonType.MOLECULER_BROKER).toConstantValue(broker);
|
|
11
11
|
bind('MoleculerBroker').toConstantValue(broker);
|
|
12
12
|
bind('MongoDBConnection').toConstantValue(mongoClient);
|
|
13
|
+
bind(common.SERVER_TYPES.MongoDBConnection).toConstantValue(mongoClient);
|
|
13
14
|
});
|
|
14
15
|
/**
|
|
15
16
|
* Controls the lifecycle of the Application Server
|
package/lib/StackServer.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StackServer.cjs","sources":["../src/StackServer.ts"],"sourcesContent":[null],"names":["ContainerModule","CommonType","config","serverLogger","ConnectionBroker","brokerConfig","ServiceBroker","InterNamespaceMiddleware","ServerFeature"],"mappings":"
|
|
1
|
+
{"version":3,"file":"StackServer.cjs","sources":["../src/StackServer.ts"],"sourcesContent":[null],"names":["ContainerModule","CommonType","config","SERVER_TYPES","serverLogger","ConnectionBroker","brokerConfig","ServiceBroker","InterNamespaceMiddleware","ServerFeature"],"mappings":"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"}
|
package/lib/StackServer.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
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 */
|
|
1
|
+
import {logger}from'@cdm-logger/server';import {SERVER_TYPES}from'common';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
2
|
/* eslint-disable import/namespace */
|
|
3
3
|
const infraModule = ({ broker, pubsub, mongoClient, logger }) => new ContainerModule((bind) => {
|
|
4
4
|
bind('Logger').toConstantValue(logger);
|
|
@@ -10,6 +10,7 @@ const infraModule = ({ broker, pubsub, mongoClient, logger }) => new ContainerMo
|
|
|
10
10
|
bind(CommonType.MOLECULER_BROKER).toConstantValue(broker);
|
|
11
11
|
bind('MoleculerBroker').toConstantValue(broker);
|
|
12
12
|
bind('MongoDBConnection').toConstantValue(mongoClient);
|
|
13
|
+
bind(SERVER_TYPES.MongoDBConnection).toConstantValue(mongoClient);
|
|
13
14
|
});
|
|
14
15
|
/**
|
|
15
16
|
* Controls the lifecycle of the Application Server
|
package/lib/StackServer.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StackServer.mjs","sources":["../src/StackServer.ts"],"sourcesContent":[null],"names":["serverLogger","ServerFeature"],"mappings":"
|
|
1
|
+
{"version":3,"file":"StackServer.mjs","sources":["../src/StackServer.ts"],"sourcesContent":[null],"names":["serverLogger","ServerFeature"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
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\
|
|
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\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
2
|
exports.default=rootSchemaDef;//# sourceMappingURL=root-schema.graphqls.cjs.map
|
|
@@ -1,2 +1,2 @@
|
|
|
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\
|
|
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\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
2
|
export{rootSchemaDef as default};//# sourceMappingURL=root-schema.graphqls.mjs.map
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
'use strict';var fs=require('fs'),path=require('path'),subgraph=require('@apollo/subgraph'),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'),gql=require('graphql-tag');require('../utils/migrations.cjs');var addShareableDirectiveToSchema=require('../utils/add-shareable-directive-to-schema.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 SubGraphSchemaBuilder {
|
|
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 = ownSchema;
|
|
18
|
+
// Apply middleware to the schema
|
|
19
|
+
if (this.options.middlewares && this.options.middlewares.length > 0) {
|
|
20
|
+
gatewaySchema = graphqlMiddleware.applyMiddleware(gatewaySchema, ...this.options.middlewares, graphqlShield.shield(this.options.rules || {}, {
|
|
21
|
+
allowExternalErrors: true,
|
|
22
|
+
}));
|
|
23
|
+
}
|
|
24
|
+
// TODO after updating graphql-tools to v8
|
|
25
|
+
// addErrorLoggingToSchema(schema, { log: (e) => logger.error(e as Error) });
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
serverCore.logger.error(err, '[Graphql Schema Errors] when building schema:', err.message);
|
|
29
|
+
gatewaySchema = ownSchema;
|
|
30
|
+
}
|
|
31
|
+
return gatewaySchema;
|
|
32
|
+
}
|
|
33
|
+
async load() {
|
|
34
|
+
const schemas = [];
|
|
35
|
+
// eslint-disable-next-line no-plusplus
|
|
36
|
+
for (const element of remoteConfig.remoteSchemaDetails) {
|
|
37
|
+
// eslint-disable-next-line no-await-in-loop
|
|
38
|
+
const schema = await this.loadRemoteSchema(element);
|
|
39
|
+
schemas.push(schema);
|
|
40
|
+
}
|
|
41
|
+
return schemas;
|
|
42
|
+
}
|
|
43
|
+
async createRemoteSchema(service, iteration) {
|
|
44
|
+
serverCore.logger.info('Fetch service [%s] iteration [%s]', service, iteration);
|
|
45
|
+
const services = remoteConfig.remoteSchemaDetails;
|
|
46
|
+
if (!services.length) {
|
|
47
|
+
console.warn(`Service ${services} is undefined`);
|
|
48
|
+
if (iteration && iteration > 2) {
|
|
49
|
+
return Promise.reject(new Error(`tried upto ${iteration} attempts, now failing...`));
|
|
50
|
+
}
|
|
51
|
+
return new Promise((resolve, reject) => {
|
|
52
|
+
const timeout = iteration ? 1000 * iteration : 1000;
|
|
53
|
+
serverCore.logger.info('Wait for service startup %s', timeout);
|
|
54
|
+
setTimeout(() => {
|
|
55
|
+
this.createRemoteSchema(service, iteration ? iteration + 1 : 1)
|
|
56
|
+
.then(resolve)
|
|
57
|
+
.catch(reject);
|
|
58
|
+
}, timeout);
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
// instead need to loop it
|
|
62
|
+
// https://github.com/j-colter/graphql-gateway/blob/9c64d90a74727d2002d10b06f47e1f4a316070fc/src/schema.js#L50
|
|
63
|
+
const url = services[0].uri;
|
|
64
|
+
serverCore.logger.info('fetch service [%s]', url);
|
|
65
|
+
// 1. Create apollo Link that's connected to the underlying GraphQL API
|
|
66
|
+
const link = new http.HttpLink({ uri: url, fetch: fetch__namespace });
|
|
67
|
+
const executor = links.linkToExecutor(link);
|
|
68
|
+
// 2. Retrieve schema definition of the underlying GraphQL API
|
|
69
|
+
const remoteSchema = await wrap.schemaFromExecutor(link);
|
|
70
|
+
// 3. Create the executable schema based on schema definition and Apollo Link
|
|
71
|
+
return wrap.wrapSchema({
|
|
72
|
+
schema: remoteSchema,
|
|
73
|
+
executor,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
async loadRemoteSchema({ uri, wsUri }) {
|
|
77
|
+
try {
|
|
78
|
+
const httpLink = new http.HttpLink({ uri, fetch: fetch__namespace });
|
|
79
|
+
let link = null;
|
|
80
|
+
if (wsUri) {
|
|
81
|
+
const wsLink = new ws.WebSocketLink({
|
|
82
|
+
uri: wsUri,
|
|
83
|
+
options: {
|
|
84
|
+
reconnect: true,
|
|
85
|
+
},
|
|
86
|
+
webSocketImpl: ws__namespace,
|
|
87
|
+
});
|
|
88
|
+
link = index_js.split(
|
|
89
|
+
// split based on operatino type
|
|
90
|
+
({ query }) => {
|
|
91
|
+
const { kind, operation } = utilities.getMainDefinition(query);
|
|
92
|
+
return kind === 'OperationDefinition' && operation === 'subscription';
|
|
93
|
+
}, wsLink, httpLink);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
link = httpLink;
|
|
97
|
+
}
|
|
98
|
+
const executor = links.linkToExecutor(link);
|
|
99
|
+
const remoteSchema = await wrap.schemaFromExecutor(link);
|
|
100
|
+
return wrap.wrapSchema({
|
|
101
|
+
schema: remoteSchema,
|
|
102
|
+
executor,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
catch (err) {
|
|
106
|
+
this.options.logger.error(err, 'fetching schema error: ', err);
|
|
107
|
+
return {};
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
createOwnSchema() {
|
|
111
|
+
const typeDefs = [addShareableDirectiveToSchema.addShareableDirectiveToSchema(rootSchema.default), this.options.schema].join('\n');
|
|
112
|
+
if (envConfig.config.isDev) {
|
|
113
|
+
// @ts-ignore
|
|
114
|
+
import('@src/modules/module').then(({ ExternalModules }) => {
|
|
115
|
+
const externalSchema = ExternalModules?.schemas || ``;
|
|
116
|
+
const writeData = `${externalSchema}`;
|
|
117
|
+
const filePath = path__namespace.join(process.cwd(), 'generated-schema.graphql');
|
|
118
|
+
fs__namespace.writeFileSync(filePath, writeData);
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
const resolvers = [resolver.resolvers, this.options.resolvers].reduce((acc, curr) => ({
|
|
122
|
+
...acc,
|
|
123
|
+
...curr,
|
|
124
|
+
}), {});
|
|
125
|
+
let mergedSchema = subgraph.buildSubgraphSchema({
|
|
126
|
+
resolvers,
|
|
127
|
+
typeDefs: gql `
|
|
128
|
+
${typeDefs}
|
|
129
|
+
`,
|
|
130
|
+
});
|
|
131
|
+
try {
|
|
132
|
+
// Check if directives are provided and are iterable
|
|
133
|
+
if (Array.isArray(this.options.directives) && this.options.directives.length > 0) {
|
|
134
|
+
this.options.directives.forEach((transform) => {
|
|
135
|
+
mergedSchema = transform(mergedSchema);
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
// Handle deprecated directiveResolvers if they exist
|
|
139
|
+
if (this.options.directiveResolvers && Object.keys(this.options.directiveResolvers).length !== 0) {
|
|
140
|
+
this.options.logger.warn('directiveResolvers deprecated replaced with directives');
|
|
141
|
+
mergedSchema = utils.attachDirectiveResolvers(mergedSchema, this.options.directiveResolvers);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
catch (err) {
|
|
145
|
+
this.options.logger.error(err, 'Error in schema directives [%j], and directiveResolvers [%j]', this.options.directives, this.options.directiveResolvers);
|
|
146
|
+
}
|
|
147
|
+
return mergedSchema;
|
|
148
|
+
}
|
|
149
|
+
}exports.SubGraphSchemaBuilder=SubGraphSchemaBuilder;//# sourceMappingURL=sub-graph-schema-builder.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sub-graph-schema-builder.cjs","sources":["../../src/api/sub-graph-schema-builder.ts"],"sourcesContent":[null],"names":["applyMiddleware","shield","logger","remoteSchemaDetails","HttpLink","fetch","linkToExecutor","schemaFromExecutor","wrapSchema","WebSocketLink","ws","split","getMainDefinition","addShareableDirectiveToSchema","rootSchemaDef","config","path","fs","rootResolver","buildSubgraphSchema","attachDirectiveResolvers"],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
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 SubGraphSchemaBuilder {
|
|
16
|
+
private readonly options;
|
|
17
|
+
constructor(options: IGraphqlOptions);
|
|
18
|
+
build(): Promise<GraphQLSchema>;
|
|
19
|
+
private load;
|
|
20
|
+
private createRemoteSchema;
|
|
21
|
+
private loadRemoteSchema;
|
|
22
|
+
private createOwnSchema;
|
|
23
|
+
}
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import*as fs from'fs';import*as path from'path';import {buildSubgraphSchema}from'@apollo/subgraph';import {linkToExecutor}from'@graphql-tools/links';import {schemaFromExecutor,wrapSchema}from'@graphql-tools/wrap';import*as ws from'ws';import {getMainDefinition}from'@apollo/client/utilities';import {WebSocketLink}from'@apollo/client/link/ws';import {split}from'@apollo/client/index.js';import {logger}from'@common-stack/server-core';import {HttpLink}from'@apollo/client/link/http';import*as fetch from'isomorphic-fetch';import {shield}from'graphql-shield';import {applyMiddleware}from'graphql-middleware';import {remoteSchemaDetails}from'./remote-config.mjs';import rootSchemaDef from'./root-schema.graphqls.mjs';import {resolvers}from'./resolver.mjs';import {attachDirectiveResolvers}from'./utils.mjs';import {config}from'../config/env-config.mjs';import gql from'graphql-tag';import'../utils/migrations.mjs';import {addShareableDirectiveToSchema}from'../utils/add-shareable-directive-to-schema.mjs';/// <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 SubGraphSchemaBuilder {
|
|
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 = ownSchema;
|
|
18
|
+
// Apply middleware to the schema
|
|
19
|
+
if (this.options.middlewares && this.options.middlewares.length > 0) {
|
|
20
|
+
gatewaySchema = applyMiddleware(gatewaySchema, ...this.options.middlewares, shield(this.options.rules || {}, {
|
|
21
|
+
allowExternalErrors: true,
|
|
22
|
+
}));
|
|
23
|
+
}
|
|
24
|
+
// TODO after updating graphql-tools to v8
|
|
25
|
+
// addErrorLoggingToSchema(schema, { log: (e) => logger.error(e as Error) });
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
logger.error(err, '[Graphql Schema Errors] when building schema:', err.message);
|
|
29
|
+
gatewaySchema = ownSchema;
|
|
30
|
+
}
|
|
31
|
+
return gatewaySchema;
|
|
32
|
+
}
|
|
33
|
+
async load() {
|
|
34
|
+
const schemas = [];
|
|
35
|
+
// eslint-disable-next-line no-plusplus
|
|
36
|
+
for (const element of remoteSchemaDetails) {
|
|
37
|
+
// eslint-disable-next-line no-await-in-loop
|
|
38
|
+
const schema = await this.loadRemoteSchema(element);
|
|
39
|
+
schemas.push(schema);
|
|
40
|
+
}
|
|
41
|
+
return schemas;
|
|
42
|
+
}
|
|
43
|
+
async createRemoteSchema(service, iteration) {
|
|
44
|
+
logger.info('Fetch service [%s] iteration [%s]', service, iteration);
|
|
45
|
+
const services = remoteSchemaDetails;
|
|
46
|
+
if (!services.length) {
|
|
47
|
+
console.warn(`Service ${services} is undefined`);
|
|
48
|
+
if (iteration && iteration > 2) {
|
|
49
|
+
return Promise.reject(new Error(`tried upto ${iteration} attempts, now failing...`));
|
|
50
|
+
}
|
|
51
|
+
return new Promise((resolve, reject) => {
|
|
52
|
+
const timeout = iteration ? 1000 * iteration : 1000;
|
|
53
|
+
logger.info('Wait for service startup %s', timeout);
|
|
54
|
+
setTimeout(() => {
|
|
55
|
+
this.createRemoteSchema(service, iteration ? iteration + 1 : 1)
|
|
56
|
+
.then(resolve)
|
|
57
|
+
.catch(reject);
|
|
58
|
+
}, timeout);
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
// instead need to loop it
|
|
62
|
+
// https://github.com/j-colter/graphql-gateway/blob/9c64d90a74727d2002d10b06f47e1f4a316070fc/src/schema.js#L50
|
|
63
|
+
const url = services[0].uri;
|
|
64
|
+
logger.info('fetch service [%s]', url);
|
|
65
|
+
// 1. Create apollo Link that's connected to the underlying GraphQL API
|
|
66
|
+
const link = new HttpLink({ uri: url, fetch });
|
|
67
|
+
const executor = linkToExecutor(link);
|
|
68
|
+
// 2. Retrieve schema definition of the underlying GraphQL API
|
|
69
|
+
const remoteSchema = await schemaFromExecutor(link);
|
|
70
|
+
// 3. Create the executable schema based on schema definition and Apollo Link
|
|
71
|
+
return wrapSchema({
|
|
72
|
+
schema: remoteSchema,
|
|
73
|
+
executor,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
async loadRemoteSchema({ uri, wsUri }) {
|
|
77
|
+
try {
|
|
78
|
+
const httpLink = new HttpLink({ uri, fetch });
|
|
79
|
+
let link = null;
|
|
80
|
+
if (wsUri) {
|
|
81
|
+
const wsLink = new WebSocketLink({
|
|
82
|
+
uri: wsUri,
|
|
83
|
+
options: {
|
|
84
|
+
reconnect: true,
|
|
85
|
+
},
|
|
86
|
+
webSocketImpl: ws,
|
|
87
|
+
});
|
|
88
|
+
link = split(
|
|
89
|
+
// split based on operatino type
|
|
90
|
+
({ query }) => {
|
|
91
|
+
const { kind, operation } = getMainDefinition(query);
|
|
92
|
+
return kind === 'OperationDefinition' && operation === 'subscription';
|
|
93
|
+
}, wsLink, httpLink);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
link = httpLink;
|
|
97
|
+
}
|
|
98
|
+
const executor = linkToExecutor(link);
|
|
99
|
+
const remoteSchema = await schemaFromExecutor(link);
|
|
100
|
+
return wrapSchema({
|
|
101
|
+
schema: remoteSchema,
|
|
102
|
+
executor,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
catch (err) {
|
|
106
|
+
this.options.logger.error(err, 'fetching schema error: ', err);
|
|
107
|
+
return {};
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
createOwnSchema() {
|
|
111
|
+
const typeDefs = [addShareableDirectiveToSchema(rootSchemaDef), this.options.schema].join('\n');
|
|
112
|
+
if (config.isDev) {
|
|
113
|
+
// @ts-ignore
|
|
114
|
+
import('@src/modules/module').then(({ ExternalModules }) => {
|
|
115
|
+
const externalSchema = ExternalModules?.schemas || ``;
|
|
116
|
+
const writeData = `${externalSchema}`;
|
|
117
|
+
const filePath = path.join(process.cwd(), 'generated-schema.graphql');
|
|
118
|
+
fs.writeFileSync(filePath, writeData);
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
const resolvers$1 = [resolvers, this.options.resolvers].reduce((acc, curr) => ({
|
|
122
|
+
...acc,
|
|
123
|
+
...curr,
|
|
124
|
+
}), {});
|
|
125
|
+
let mergedSchema = buildSubgraphSchema({
|
|
126
|
+
resolvers: resolvers$1,
|
|
127
|
+
typeDefs: gql `
|
|
128
|
+
${typeDefs}
|
|
129
|
+
`,
|
|
130
|
+
});
|
|
131
|
+
try {
|
|
132
|
+
// Check if directives are provided and are iterable
|
|
133
|
+
if (Array.isArray(this.options.directives) && this.options.directives.length > 0) {
|
|
134
|
+
this.options.directives.forEach((transform) => {
|
|
135
|
+
mergedSchema = transform(mergedSchema);
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
// Handle deprecated directiveResolvers if they exist
|
|
139
|
+
if (this.options.directiveResolvers && Object.keys(this.options.directiveResolvers).length !== 0) {
|
|
140
|
+
this.options.logger.warn('directiveResolvers deprecated replaced with directives');
|
|
141
|
+
mergedSchema = attachDirectiveResolvers(mergedSchema, this.options.directiveResolvers);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
catch (err) {
|
|
145
|
+
this.options.logger.error(err, 'Error in schema directives [%j], and directiveResolvers [%j]', this.options.directives, this.options.directiveResolvers);
|
|
146
|
+
}
|
|
147
|
+
return mergedSchema;
|
|
148
|
+
}
|
|
149
|
+
}export{SubGraphSchemaBuilder};//# sourceMappingURL=sub-graph-schema-builder.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sub-graph-schema-builder.mjs","sources":["../../src/api/sub-graph-schema-builder.ts"],"sourcesContent":[null],"names":["resolvers","rootResolver"],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ServiceBroker } from 'moleculer';
|
|
1
2
|
export type GraphqlRequestContext = {
|
|
2
3
|
overallCachePolicy: {
|
|
3
4
|
scope: string;
|
|
@@ -10,6 +11,10 @@ export type GraphqlRequestContext = {
|
|
|
10
11
|
currentPageUriSegments: {
|
|
11
12
|
authority: string;
|
|
12
13
|
};
|
|
14
|
+
tenant?: string;
|
|
13
15
|
};
|
|
14
16
|
queriesToInvalidate: string[];
|
|
17
|
+
tenantId?: string;
|
|
18
|
+
accountId?: string;
|
|
19
|
+
moleculerBroker?: ServiceBroker;
|
|
15
20
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responseCachePlugin.cjs","sources":["../../src/plugins/responseCachePlugin.ts"],"sourcesContent":[null],"names":["getDirectiveArgsFromSchema","CACHE_CONTROL_DIRECTIVE","extractTenantId","generateQueryCacheKey","isEmpty"],"mappings":"0JAcA,MAAM,WAAW,GAAI,iBAAyB,CAAC,OAAO,IAAI,iBAAiB,CAAC;AAO/D,MAAA,WAAW,GAAG,CAAC,cAA4D,KAAI;AACxF,IAAA,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC;IAC5C,MAAM,KAAK,GAAGA,qCAA0B,CAAC;QACrC,MAAM;QACN,QAAQ;AACR,QAAA,aAAa,EAAEC,kCAAuB;AACzC,KAAA,CAAC,CAAC;AACH,IAAA,IAAI,CAAC,KAAK;AAAE,QAAA,OAAO,KAAK,CAAC;IACzB,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AAC9B,QAAA,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;KACxB;AACD,IAAA,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE;;;AAGnC,QAAA,cAAsB,CAAC,kBAAkB,GAAG,EAAE,CAAC;KACnD
|
|
1
|
+
{"version":3,"file":"responseCachePlugin.cjs","sources":["../../src/plugins/responseCachePlugin.ts"],"sourcesContent":[null],"names":["getDirectiveArgsFromSchema","CACHE_CONTROL_DIRECTIVE","extractTenantId","generateQueryCacheKey","isEmpty"],"mappings":"0JAcA,MAAM,WAAW,GAAI,iBAAyB,CAAC,OAAO,IAAI,iBAAiB,CAAC;AAO/D,MAAA,WAAW,GAAG,CAAC,cAA4D,KAAI;AACxF,IAAA,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC;IAC5C,MAAM,KAAK,GAAGA,qCAA0B,CAAC;QACrC,MAAM;QACN,QAAQ;AACR,QAAA,aAAa,EAAEC,kCAAuB;AACzC,KAAA,CAAC,CAAC;AACH,IAAA,IAAI,CAAC,KAAK;AAAE,QAAA,OAAO,KAAK,CAAC;IACzB,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AAC9B,QAAA,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;KACxB;AACD,IAAA,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE;;;AAGnC,QAAA,cAAsB,CAAC,kBAAkB,GAAG,EAAE,CAAC;KACnD;;IAED,cAAc,CAAC,kBAAkB,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AACxD,IAAA,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5B,EAAE;AAEW,MAAA,gBAAgB,GACzB,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAA4B,KACxD,CAAC,cAA4D,KAAY;AACrE,IAAA,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE;AAC9B,QAAA,OAAO,IAAI,CAAC;KACf;IACD,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC;IACnE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,YAAY,IAAI,EAAE,CAAC;AACzC,IAAA,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IACrC,MAAM,qBAAqB,GAAGD,qCAA0B,CAAC;QACrD,MAAM;QACN,QAAQ;AACR,QAAA,aAAa,EAAEC,kCAAuB;AACzC,KAAA,CAAC,CAAC;AACH,IAAA,MAAM,EAAE,KAAK,EAAE,GAAG,qBAAqB,IAAI,EAAE,CAAC;IAC9C,MAAM,SAAS,GAAG,KAAK,EAAE,WAAW,EAAE,KAAK,SAAS,CAAC;IACrD,MAAM,QAAQ,GAAGC,0BAAe,CAAC,GAAG,EAAE,sBAAsB,EAAE,SAAS,CAAC,CAAC;IACzE,MAAM,QAAQ,GAAGC,gCAAqB,CAAC;QACnC,KAAK;QACL,SAAS;QACT,MAAM;AACN,QAAA,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,GAAG,IAAI,IAAI,GAAG,IAAI;QAC5C,QAAQ;AACX,KAAA,CAAC,CAAC;AACH,IAAA,IAAI;AACA,QAAA,IAAI,OAAO,iBAAiB,KAAK,UAAU,EAAE;YACzC,MAAM,YAAY,GAAG,iBAAiB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;YACjE,OAAO,YAAY,IAAI,QAAQ,CAAC;SACnC;AACD,QAAA,OAAO,QAAQ,CAAC;KACnB;IAAC,OAAO,CAAC,EAAE;;QAER,OAAO,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;AACtD,QAAA,OAAO,QAAQ,CAAC;KACnB;AACL,EAAE;AACC,MAAM,mBAAmB,GAAG,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAA4B,KACvF,WAAW,CAAC;AACR,IAAA,SAAS,EAAE,CAAC,EAAE,YAAY,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC;IACjF,gBAAgB,EAAE,gBAAgB,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;AACjE,IAAA,kBAAkB,EAAE,CAAC,GAAG;;AAEpB,IAAA,WAAW,CAAC,GAAG,CAAC,IAAIC,SAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;AAC5E,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responseCachePlugin.mjs","sources":["../../src/plugins/responseCachePlugin.ts"],"sourcesContent":[null],"names":[],"mappings":"qOAcA,MAAM,WAAW,GAAI,iBAAyB,CAAC,OAAO,IAAI,iBAAiB,CAAC;AAO/D,MAAA,WAAW,GAAG,CAAC,cAA4D,KAAI;AACxF,IAAA,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC;IAC5C,MAAM,KAAK,GAAG,0BAA0B,CAAC;QACrC,MAAM;QACN,QAAQ;AACR,QAAA,aAAa,EAAE,uBAAuB;AACzC,KAAA,CAAC,CAAC;AACH,IAAA,IAAI,CAAC,KAAK;AAAE,QAAA,OAAO,KAAK,CAAC;IACzB,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AAC9B,QAAA,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;KACxB;AACD,IAAA,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE;;;AAGnC,QAAA,cAAsB,CAAC,kBAAkB,GAAG,EAAE,CAAC;KACnD
|
|
1
|
+
{"version":3,"file":"responseCachePlugin.mjs","sources":["../../src/plugins/responseCachePlugin.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -18,9 +18,10 @@ class GraphqlServer {
|
|
|
18
18
|
enableSubscription;
|
|
19
19
|
cacheKeyGenerator;
|
|
20
20
|
invalidateCacheKeyGenerator;
|
|
21
|
+
plugins;
|
|
21
22
|
logger;
|
|
22
23
|
graphqlWsServer;
|
|
23
|
-
constructor(app, httpServer, redisClient, moduleService, enableSubscription = true, cacheKeyGenerator, invalidateCacheKeyGenerator) {
|
|
24
|
+
constructor(app, httpServer, redisClient, moduleService, enableSubscription = true, cacheKeyGenerator, invalidateCacheKeyGenerator, plugins) {
|
|
24
25
|
this.app = app;
|
|
25
26
|
this.httpServer = httpServer;
|
|
26
27
|
this.redisClient = redisClient;
|
|
@@ -28,6 +29,7 @@ class GraphqlServer {
|
|
|
28
29
|
this.enableSubscription = enableSubscription;
|
|
29
30
|
this.cacheKeyGenerator = cacheKeyGenerator;
|
|
30
31
|
this.invalidateCacheKeyGenerator = invalidateCacheKeyGenerator;
|
|
32
|
+
this.plugins = plugins;
|
|
31
33
|
this.logger = this.moduleService.logger.child({ className: 'GraphqlServer' });
|
|
32
34
|
if (enableSubscription) {
|
|
33
35
|
const wsServer = new ws.WebSocketServer({
|
|
@@ -122,6 +124,7 @@ class GraphqlServer {
|
|
|
122
124
|
cacheControl.ApolloServerPluginCacheControl(),
|
|
123
125
|
invalidateCachePlugin.invalidateCachePlugin({ cache: this.redisClient, invalidateCacheKeyGenerator }),
|
|
124
126
|
responseCachePlugin.responseCachePlugin({ logger, cacheKeyGenerator }),
|
|
127
|
+
...(this.plugins ?? []),
|
|
125
128
|
],
|
|
126
129
|
};
|
|
127
130
|
if (this.enableSubscription) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GraphqlServer.cjs","sources":["../../src/servers/GraphqlServer.ts"],"sourcesContent":[null],"names":["WebSocketServer","config","GraphqlWs","expressMiddleware","KeyvAdapter","ApolloServerPluginDrainHttpServer","ApolloServerPluginCacheControl","invalidateCachePlugin","responseCachePlugin","ApolloServer"],"mappings":"
|
|
1
|
+
{"version":3,"file":"GraphqlServer.cjs","sources":["../../src/servers/GraphqlServer.ts"],"sourcesContent":[null],"names":["WebSocketServer","config","GraphqlWs","expressMiddleware","KeyvAdapter","ApolloServerPluginDrainHttpServer","ApolloServerPluginCacheControl","invalidateCachePlugin","responseCachePlugin","ApolloServer"],"mappings":"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"}
|
|
@@ -5,18 +5,20 @@ import { Express } from 'express';
|
|
|
5
5
|
import * as http from 'http';
|
|
6
6
|
import { InvalidationKeyGenerator } from '../plugins';
|
|
7
7
|
import { IModuleService } from '../interfaces';
|
|
8
|
+
import type { ApolloServerPlugin } from '@apollo/server';
|
|
8
9
|
export type KeyGenerator = (context: GraphQLRequestContext<unknown>, cacheKey?: string) => string;
|
|
9
10
|
export declare class GraphqlServer {
|
|
10
|
-
private app;
|
|
11
|
-
private httpServer;
|
|
12
|
-
private redisClient;
|
|
13
|
-
private moduleService;
|
|
14
|
-
private enableSubscription;
|
|
11
|
+
private readonly app;
|
|
12
|
+
private readonly httpServer;
|
|
13
|
+
private readonly redisClient;
|
|
14
|
+
private readonly moduleService;
|
|
15
|
+
private readonly enableSubscription;
|
|
15
16
|
private readonly cacheKeyGenerator?;
|
|
16
17
|
private readonly invalidateCacheKeyGenerator?;
|
|
18
|
+
private readonly plugins?;
|
|
17
19
|
private logger;
|
|
18
20
|
private graphqlWsServer;
|
|
19
|
-
constructor(app: Express, httpServer: http.Server, redisClient: IORedis.Redis | IORedis.Cluster, moduleService: IModuleService, enableSubscription?: boolean, cacheKeyGenerator?: KeyGenerator, invalidateCacheKeyGenerator?: InvalidationKeyGenerator);
|
|
21
|
+
constructor(app: Express, httpServer: http.Server, redisClient: IORedis.Redis | IORedis.Cluster, moduleService: IModuleService, enableSubscription?: boolean, cacheKeyGenerator?: KeyGenerator, invalidateCacheKeyGenerator?: InvalidationKeyGenerator, plugins?: ApolloServerPlugin<any>[]);
|
|
20
22
|
initialize(): Promise<void>;
|
|
21
23
|
getUserIpAddress(req: any): any;
|
|
22
24
|
private configureApolloServer;
|
|
@@ -18,9 +18,10 @@ class GraphqlServer {
|
|
|
18
18
|
enableSubscription;
|
|
19
19
|
cacheKeyGenerator;
|
|
20
20
|
invalidateCacheKeyGenerator;
|
|
21
|
+
plugins;
|
|
21
22
|
logger;
|
|
22
23
|
graphqlWsServer;
|
|
23
|
-
constructor(app, httpServer, redisClient, moduleService, enableSubscription = true, cacheKeyGenerator, invalidateCacheKeyGenerator) {
|
|
24
|
+
constructor(app, httpServer, redisClient, moduleService, enableSubscription = true, cacheKeyGenerator, invalidateCacheKeyGenerator, plugins) {
|
|
24
25
|
this.app = app;
|
|
25
26
|
this.httpServer = httpServer;
|
|
26
27
|
this.redisClient = redisClient;
|
|
@@ -28,6 +29,7 @@ class GraphqlServer {
|
|
|
28
29
|
this.enableSubscription = enableSubscription;
|
|
29
30
|
this.cacheKeyGenerator = cacheKeyGenerator;
|
|
30
31
|
this.invalidateCacheKeyGenerator = invalidateCacheKeyGenerator;
|
|
32
|
+
this.plugins = plugins;
|
|
31
33
|
this.logger = this.moduleService.logger.child({ className: 'GraphqlServer' });
|
|
32
34
|
if (enableSubscription) {
|
|
33
35
|
const wsServer = new WebSocketServer({
|
|
@@ -122,6 +124,7 @@ class GraphqlServer {
|
|
|
122
124
|
ApolloServerPluginCacheControl(),
|
|
123
125
|
invalidateCachePlugin({ cache: this.redisClient, invalidateCacheKeyGenerator }),
|
|
124
126
|
responseCachePlugin({ logger, cacheKeyGenerator }),
|
|
127
|
+
...(this.plugins ?? []),
|
|
125
128
|
],
|
|
126
129
|
};
|
|
127
130
|
if (this.enableSubscription) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GraphqlServer.mjs","sources":["../../src/servers/GraphqlServer.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GraphqlServer.mjs","sources":["../../src/servers/GraphqlServer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { IModuleService } from '../interfaces';
|
|
2
1
|
import { Schema, Connection as DBConnection } from 'mongoose';
|
|
2
|
+
import { IModuleService } from '../interfaces';
|
|
3
3
|
export declare const MigrationSchema: Schema<any, import("mongoose").Model<any, any, any, any, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, {
|
|
4
4
|
name: string;
|
|
5
5
|
migrated_at?: Date;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
'use strict';var graphql=require('graphql');const addShareableDirectiveToSchema = (schemaString) => {
|
|
2
|
+
const ast = graphql.parse(schemaString);
|
|
3
|
+
const modifiedAst = graphql.visit(ast, {
|
|
4
|
+
ObjectTypeDefinition(node) {
|
|
5
|
+
// Add @shareable directive to each type
|
|
6
|
+
const shareableDirective = {
|
|
7
|
+
kind: graphql.Kind.DIRECTIVE,
|
|
8
|
+
name: { kind: graphql.Kind.NAME, value: 'shareable' },
|
|
9
|
+
};
|
|
10
|
+
return {
|
|
11
|
+
...node,
|
|
12
|
+
directives: [...(node.directives || []), shareableDirective],
|
|
13
|
+
};
|
|
14
|
+
},
|
|
15
|
+
ObjectTypeExtension(node) {
|
|
16
|
+
// Add @shareable directive to each extended type
|
|
17
|
+
const shareableDirective = {
|
|
18
|
+
kind: graphql.Kind.DIRECTIVE,
|
|
19
|
+
name: { kind: graphql.Kind.NAME, value: 'shareable' },
|
|
20
|
+
};
|
|
21
|
+
return {
|
|
22
|
+
...node,
|
|
23
|
+
directives: [...(node.directives || []), shareableDirective],
|
|
24
|
+
};
|
|
25
|
+
},
|
|
26
|
+
FieldDefinition(node, _key, _parent, _path, ancestors) {
|
|
27
|
+
// Get the parent type definition from ancestors
|
|
28
|
+
const parent = ancestors[2];
|
|
29
|
+
// @ts-expect-error - parent is an object, but we need to check if it has a kind property
|
|
30
|
+
if (parent?.kind === graphql.Kind.OBJECT_TYPE_DEFINITION && parent.name.value === 'Query') {
|
|
31
|
+
const shareableDirective = {
|
|
32
|
+
kind: graphql.Kind.DIRECTIVE,
|
|
33
|
+
name: { kind: graphql.Kind.NAME, value: 'shareable' },
|
|
34
|
+
};
|
|
35
|
+
return {
|
|
36
|
+
...node,
|
|
37
|
+
directives: [...(node.directives || []), shareableDirective],
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
return node;
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
return graphql.print(modifiedAst);
|
|
44
|
+
};exports.addShareableDirectiveToSchema=addShareableDirectiveToSchema;//# sourceMappingURL=add-shareable-directive-to-schema.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-shareable-directive-to-schema.cjs","sources":["../../src/utils/add-shareable-directive-to-schema.ts"],"sourcesContent":[null],"names":["parse","visit","Kind","print"],"mappings":"4CAEa,MAAA,6BAA6B,GAAG,CAAC,YAAoB,KAAI;AAClE,IAAA,MAAM,GAAG,GAAGA,aAAK,CAAC,YAAY,CAAC,CAAC;AAEhC,IAAA,MAAM,WAAW,GAAGC,aAAK,CAAC,GAAG,EAAE;AAC3B,QAAA,oBAAoB,CAAC,IAAI,EAAA;;AAErB,YAAA,MAAM,kBAAkB,GAAG;gBACvB,IAAI,EAAEC,YAAI,CAAC,SAAS;gBACpB,IAAI,EAAE,EAAE,IAAI,EAAEA,YAAI,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE;aAChD,CAAC;YAEF,OAAO;AACH,gBAAA,GAAG,IAAI;AACP,gBAAA,UAAU,EAAE,CAAC,IAAI,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,kBAAkB,CAAC;aAC/D,CAAC;SACL;AACD,QAAA,mBAAmB,CAAC,IAAI,EAAA;;AAEpB,YAAA,MAAM,kBAAkB,GAAG;gBACvB,IAAI,EAAEA,YAAI,CAAC,SAAS;gBACpB,IAAI,EAAE,EAAE,IAAI,EAAEA,YAAI,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE;aAChD,CAAC;YAEF,OAAO;AACH,gBAAA,GAAG,IAAI;AACP,gBAAA,UAAU,EAAE,CAAC,IAAI,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,kBAAkB,CAAC;aAC/D,CAAC;SACL;QACD,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAA;;AAEjD,YAAA,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;;AAE5B,YAAA,IAAI,MAAM,EAAE,IAAI,KAAKA,YAAI,CAAC,sBAAsB,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,OAAO,EAAE;AAC/E,gBAAA,MAAM,kBAAkB,GAAG;oBACvB,IAAI,EAAEA,YAAI,CAAC,SAAS;oBACpB,IAAI,EAAE,EAAE,IAAI,EAAEA,YAAI,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE;iBAChD,CAAC;gBAEF,OAAO;AACH,oBAAA,GAAG,IAAI;AACP,oBAAA,UAAU,EAAE,CAAC,IAAI,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,kBAAkB,CAAC;iBAC/D,CAAC;aACL;AACD,YAAA,OAAO,IAAI,CAAC;SACf;AACJ,KAAA,CAAC,CAAC;AAEH,IAAA,OAAOC,aAAK,CAAC,WAAW,CAAC,CAAC;AAC9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const addShareableDirectiveToSchema: (schemaString: string) => string;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import {parse,visit,Kind,print}from'graphql';const addShareableDirectiveToSchema = (schemaString) => {
|
|
2
|
+
const ast = parse(schemaString);
|
|
3
|
+
const modifiedAst = visit(ast, {
|
|
4
|
+
ObjectTypeDefinition(node) {
|
|
5
|
+
// Add @shareable directive to each type
|
|
6
|
+
const shareableDirective = {
|
|
7
|
+
kind: Kind.DIRECTIVE,
|
|
8
|
+
name: { kind: Kind.NAME, value: 'shareable' },
|
|
9
|
+
};
|
|
10
|
+
return {
|
|
11
|
+
...node,
|
|
12
|
+
directives: [...(node.directives || []), shareableDirective],
|
|
13
|
+
};
|
|
14
|
+
},
|
|
15
|
+
ObjectTypeExtension(node) {
|
|
16
|
+
// Add @shareable directive to each extended type
|
|
17
|
+
const shareableDirective = {
|
|
18
|
+
kind: Kind.DIRECTIVE,
|
|
19
|
+
name: { kind: Kind.NAME, value: 'shareable' },
|
|
20
|
+
};
|
|
21
|
+
return {
|
|
22
|
+
...node,
|
|
23
|
+
directives: [...(node.directives || []), shareableDirective],
|
|
24
|
+
};
|
|
25
|
+
},
|
|
26
|
+
FieldDefinition(node, _key, _parent, _path, ancestors) {
|
|
27
|
+
// Get the parent type definition from ancestors
|
|
28
|
+
const parent = ancestors[2];
|
|
29
|
+
// @ts-expect-error - parent is an object, but we need to check if it has a kind property
|
|
30
|
+
if (parent?.kind === Kind.OBJECT_TYPE_DEFINITION && parent.name.value === 'Query') {
|
|
31
|
+
const shareableDirective = {
|
|
32
|
+
kind: Kind.DIRECTIVE,
|
|
33
|
+
name: { kind: Kind.NAME, value: 'shareable' },
|
|
34
|
+
};
|
|
35
|
+
return {
|
|
36
|
+
...node,
|
|
37
|
+
directives: [...(node.directives || []), shareableDirective],
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
return node;
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
return print(modifiedAst);
|
|
44
|
+
};export{addShareableDirectiveToSchema};//# sourceMappingURL=add-shareable-directive-to-schema.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-shareable-directive-to-schema.mjs","sources":["../../src/utils/add-shareable-directive-to-schema.ts"],"sourcesContent":[null],"names":[],"mappings":"6CAEa,MAAA,6BAA6B,GAAG,CAAC,YAAoB,KAAI;AAClE,IAAA,MAAM,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;AAEhC,IAAA,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,EAAE;AAC3B,QAAA,oBAAoB,CAAC,IAAI,EAAA;;AAErB,YAAA,MAAM,kBAAkB,GAAG;gBACvB,IAAI,EAAE,IAAI,CAAC,SAAS;gBACpB,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE;aAChD,CAAC;YAEF,OAAO;AACH,gBAAA,GAAG,IAAI;AACP,gBAAA,UAAU,EAAE,CAAC,IAAI,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,kBAAkB,CAAC;aAC/D,CAAC;SACL;AACD,QAAA,mBAAmB,CAAC,IAAI,EAAA;;AAEpB,YAAA,MAAM,kBAAkB,GAAG;gBACvB,IAAI,EAAE,IAAI,CAAC,SAAS;gBACpB,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE;aAChD,CAAC;YAEF,OAAO;AACH,gBAAA,GAAG,IAAI;AACP,gBAAA,UAAU,EAAE,CAAC,IAAI,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,kBAAkB,CAAC;aAC/D,CAAC;SACL;QACD,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAA;;AAEjD,YAAA,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;;AAE5B,YAAA,IAAI,MAAM,EAAE,IAAI,KAAK,IAAI,CAAC,sBAAsB,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,OAAO,EAAE;AAC/E,gBAAA,MAAM,kBAAkB,GAAG;oBACvB,IAAI,EAAE,IAAI,CAAC,SAAS;oBACpB,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE;iBAChD,CAAC;gBAEF,OAAO;AACH,oBAAA,GAAG,IAAI;AACP,oBAAA,UAAU,EAAE,CAAC,IAAI,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,kBAAkB,CAAC;iBAC/D,CAAC;aACL;AACD,YAAA,OAAO,IAAI,CAAC;SACf;AACJ,KAAA,CAAC,CAAC;AAEH,IAAA,OAAO,KAAK,CAAC,WAAW,CAAC,CAAC;AAC9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/lib/utils/index.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@common-stack/server-stack",
|
|
3
|
-
"version": "7.1.1-alpha.
|
|
3
|
+
"version": "7.1.1-alpha.22",
|
|
4
4
|
"description": "common core for higher packages to depend on",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"author": "CDMBase LLC",
|
|
@@ -26,16 +26,12 @@
|
|
|
26
26
|
"@apollo/datasource-rest": "^6.3.0",
|
|
27
27
|
"@apollo/server": "^4.10.4",
|
|
28
28
|
"@apollo/server-plugin-response-cache": "^4.1.3",
|
|
29
|
+
"@apollo/subgraph": "^2.7.1",
|
|
29
30
|
"@apollo/utils.keyvadapter": "^3.1.0",
|
|
30
31
|
"@casl/ability": "^4.1.5",
|
|
31
|
-
"@cdm-logger/client": "^9.0.
|
|
32
|
-
"@cdm-logger/server": "^9.0.
|
|
32
|
+
"@cdm-logger/client": "^9.0.8",
|
|
33
|
+
"@cdm-logger/server": "^9.0.10",
|
|
33
34
|
"@cdmbase/graphql-type-uri": "^4.0.0",
|
|
34
|
-
"@common-stack/cache-api-server": "7.0.4-alpha.17",
|
|
35
|
-
"@common-stack/client-core": "7.1.1-alpha.2",
|
|
36
|
-
"@common-stack/core": "7.0.4-alpha.17",
|
|
37
|
-
"@common-stack/server-core": "7.0.4-alpha.17",
|
|
38
|
-
"@common-stack/store-mongo": "7.0.4-alpha.17",
|
|
39
35
|
"@graphql-tools/links": "~9.0.1",
|
|
40
36
|
"@graphql-tools/schema": "~10.0.6",
|
|
41
37
|
"@graphql-tools/stitch": "~9.2.10",
|
|
@@ -88,7 +84,7 @@
|
|
|
88
84
|
"publishConfig": {
|
|
89
85
|
"access": "public"
|
|
90
86
|
},
|
|
91
|
-
"gitHead": "
|
|
87
|
+
"gitHead": "ed3eec97d069193db42215a063ecbfb76f54a4c0",
|
|
92
88
|
"typescript": {
|
|
93
89
|
"definition": "lib/index.d.ts"
|
|
94
90
|
}
|