@common-stack/server-stack 9.0.1-alpha.7 → 9.0.2-alpha.1
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 +22 -47
- package/lib/MainStackServer.cjs.map +1 -1
- package/lib/MainStackServer.mjs +22 -47
- package/lib/MainStackServer.mjs.map +1 -1
- package/lib/config/env-config.cjs +3 -6
- package/lib/config/env-config.cjs.map +1 -1
- package/lib/config/env-config.mjs +3 -6
- package/lib/config/env-config.mjs.map +1 -1
- package/lib/config/moleculer.config.cjs +7 -1
- package/lib/config/moleculer.config.cjs.map +1 -1
- package/lib/config/moleculer.config.mjs +7 -1
- package/lib/config/moleculer.config.mjs.map +1 -1
- package/lib/connectors/connection-broker.cjs +12 -8
- package/lib/connectors/connection-broker.cjs.map +1 -1
- package/lib/connectors/connection-broker.mjs +12 -8
- package/lib/connectors/connection-broker.mjs.map +1 -1
- package/lib/connectors/mongo-connector.cjs +0 -2
- package/lib/connectors/mongo-connector.cjs.map +1 -1
- package/lib/connectors/mongo-connector.mjs +0 -2
- package/lib/connectors/mongo-connector.mjs.map +1 -1
- package/lib/infrastructure/infrastructure-factory.cjs +18 -11
- package/lib/infrastructure/infrastructure-factory.cjs.map +1 -1
- package/lib/infrastructure/infrastructure-factory.mjs +18 -11
- package/lib/infrastructure/infrastructure-factory.mjs.map +1 -1
- package/lib/middleware/moleculer-inter-namespace.cjs +27 -0
- package/lib/middleware/moleculer-inter-namespace.cjs.map +1 -1
- package/lib/middleware/moleculer-inter-namespace.mjs +27 -0
- package/lib/middleware/moleculer-inter-namespace.mjs.map +1 -1
- package/lib/servers/ExpressApp.cjs +4 -4
- package/lib/servers/ExpressApp.cjs.map +1 -1
- package/lib/servers/ExpressApp.mjs +3 -3
- package/lib/servers/ExpressApp.mjs.map +1 -1
- package/lib/servers/GraphqlServer.cjs +14 -30
- package/lib/servers/GraphqlServer.cjs.map +1 -1
- package/lib/servers/GraphqlServer.mjs +12 -28
- package/lib/servers/GraphqlServer.mjs.map +1 -1
- package/lib/servers/GraphqlWs.cjs.map +1 -1
- package/lib/servers/GraphqlWs.mjs.map +1 -1
- package/lib/servers/WebsocketMultipathUpdate.cjs +36 -33
- package/lib/servers/WebsocketMultipathUpdate.cjs.map +1 -1
- package/lib/servers/WebsocketMultipathUpdate.mjs +35 -32
- package/lib/servers/WebsocketMultipathUpdate.mjs.map +1 -1
- package/package.json +16 -17
- package/lib/express-adapter.cjs +0 -73
- package/lib/express-adapter.cjs.map +0 -1
- package/lib/express-adapter.mjs +0 -73
- package/lib/express-adapter.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mongo-connector.mjs","sources":["../../src/connectors/mongo-connector.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mongo-connector.mjs","sources":["../../src/connectors/mongo-connector.ts"],"sourcesContent":[null],"names":[],"mappings":"8OASa,cAAc,CAAA;AACf,IAAA,MAAM,CAAa;AAEnB,IAAA,IAAI,CAAiB;AAErB,IAAA,GAAG,CAAS;AAEZ,IAAA,MAAM,CAAU;IAExB,WAAY,CAAA,GAAW,EAAE,IAAqB,EAAA;QAC1C,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACrC,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;AACf,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;KAC/D;AAED;;;;AAIG;AACI,IAAA,MAAM,OAAO,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,OAAO,IAAI,CAAC,MAAM,CAAC;SACtB;AACD,QAAA,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;AAE/D,QAAA,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;AACjB,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAErB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;AACzD,YAAA,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;YAChF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAC;AACtE,YAAA,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;AAChF,SAAC,CAAC,CAAC;AAEH,QAAA,IACI,MAAM,CAAC,QAAQ,KAAK,aAAa;;YAEjC,MAAM,CAAC,SAAS,KAAK,OAAO;AAC5B,YAAA,MAAM,CAAC,SAAS,KAAK,OAAO,EAC9B;YACE,MAAM,CAAC,gBAAgB,EAAE;gBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,eAAe,EAAE,eAAe,CAAC,IAAI;gBACrC,WAAW,EAAE,MAAM,CAAC,SAAS;AAChC,aAAA,CAAC,CAAC;SACN;;;;;AAMD,QAAA,OAAO,IAAI,CAAC;KACf;AAED;;;;AAIG;AACI,IAAA,MAAM,UAAU,GAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACd,OAAO;SACV;AACD,QAAA,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;KAC7B;AACJ"}
|
|
@@ -138,26 +138,33 @@
|
|
|
138
138
|
...(nodeId && { nodeID: nodeId }),
|
|
139
139
|
};
|
|
140
140
|
// Get cross-namespace targets from environment configuration
|
|
141
|
-
// CROSS_NAMESPACES is a comma-separated list like "api-admin
|
|
142
|
-
// Use
|
|
141
|
+
// CROSS_NAMESPACES is a comma-separated list like "api-admin-v12:api-admin-v*, api-admin"
|
|
142
|
+
// Use "namespace:pattern" to enable glob matching (e.g. api-admin-v* matches api-admin-v12, api-admin-v13)
|
|
143
143
|
const crossNamespacesEnv = envConfig.config.CROSS_NAMESPACES || '';
|
|
144
144
|
const targetNamespaces = crossNamespacesEnv
|
|
145
145
|
.split(',')
|
|
146
|
-
.map((
|
|
147
|
-
.filter((
|
|
146
|
+
.map((entry) => entry.trim())
|
|
147
|
+
.filter((entry) => entry.length > 0);
|
|
148
148
|
// Filter out the current broker's namespace to prevent loops
|
|
149
149
|
// If the broker is already running in a target namespace, don't create another broker for it
|
|
150
150
|
const currentNamespace = moleculer_config.default.namespace;
|
|
151
151
|
const crossNamespaces = targetNamespaces
|
|
152
|
-
.filter((
|
|
153
|
-
.
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
152
|
+
.filter((entry) => {
|
|
153
|
+
const ns = entry.includes(':') ? entry.split(':')[0] : entry;
|
|
154
|
+
return ns !== currentNamespace;
|
|
155
|
+
})
|
|
156
|
+
.map((entry) => {
|
|
157
|
+
const [namespace, matchPattern] = entry.includes(':') ? entry.split(':') : [entry, undefined];
|
|
158
|
+
return {
|
|
159
|
+
namespace,
|
|
160
|
+
...(matchPattern && { matchPattern }),
|
|
161
|
+
transporter: moleculer_config.default.transporter,
|
|
162
|
+
metrics: { enabled: false },
|
|
163
|
+
};
|
|
164
|
+
});
|
|
158
165
|
// Only add InterNamespaceMiddleware if there are namespaces to bridge to
|
|
159
166
|
if (crossNamespaces.length > 0) {
|
|
160
|
-
this.logger.info(`Enabling cross-namespace communication to: ${
|
|
167
|
+
this.logger.info(`Enabling cross-namespace communication to: ${crossNamespaces.map((ns) => (ns.matchPattern ? `${ns.namespace} (pattern: ${ns.matchPattern})` : ns.namespace)).join(', ')}`);
|
|
161
168
|
brokerOptions.middlewares = [
|
|
162
169
|
...(moleculer_config.default.middlewares || []),
|
|
163
170
|
moleculerInterNamespace.InterNamespaceMiddleware(crossNamespaces),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"infrastructure-factory.cjs","sources":["../../src/infrastructure/infrastructure-factory.ts"],"sourcesContent":[null],"names":["ConnectionBroker","brokerConfig","WorkflowOrchestrator","createInfrastructureModule","ServerFeature","createInngestClient","config","InterNamespaceMiddleware","ServiceBroker","CONNECTOR_CONFIGS"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"infrastructure-factory.cjs","sources":["../../src/infrastructure/infrastructure-factory.ts"],"sourcesContent":[null],"names":["ConnectionBroker","brokerConfig","WorkflowOrchestrator","createInfrastructureModule","ServerFeature","createInngestClient","config","InterNamespaceMiddleware","ServiceBroker","CONNECTOR_CONFIGS"],"mappings":"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"}
|
|
@@ -138,26 +138,33 @@ import {ServiceBroker}from'moleculer';import {Feature}from'@common-stack/server-
|
|
|
138
138
|
...(nodeId && { nodeID: nodeId }),
|
|
139
139
|
};
|
|
140
140
|
// Get cross-namespace targets from environment configuration
|
|
141
|
-
// CROSS_NAMESPACES is a comma-separated list like "api-admin
|
|
142
|
-
// Use
|
|
141
|
+
// CROSS_NAMESPACES is a comma-separated list like "api-admin-v12:api-admin-v*, api-admin"
|
|
142
|
+
// Use "namespace:pattern" to enable glob matching (e.g. api-admin-v* matches api-admin-v12, api-admin-v13)
|
|
143
143
|
const crossNamespacesEnv = config.CROSS_NAMESPACES || '';
|
|
144
144
|
const targetNamespaces = crossNamespacesEnv
|
|
145
145
|
.split(',')
|
|
146
|
-
.map((
|
|
147
|
-
.filter((
|
|
146
|
+
.map((entry) => entry.trim())
|
|
147
|
+
.filter((entry) => entry.length > 0);
|
|
148
148
|
// Filter out the current broker's namespace to prevent loops
|
|
149
149
|
// If the broker is already running in a target namespace, don't create another broker for it
|
|
150
150
|
const currentNamespace = brokerConfig.namespace;
|
|
151
151
|
const crossNamespaces = targetNamespaces
|
|
152
|
-
.filter((
|
|
153
|
-
.
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
152
|
+
.filter((entry) => {
|
|
153
|
+
const ns = entry.includes(':') ? entry.split(':')[0] : entry;
|
|
154
|
+
return ns !== currentNamespace;
|
|
155
|
+
})
|
|
156
|
+
.map((entry) => {
|
|
157
|
+
const [namespace, matchPattern] = entry.includes(':') ? entry.split(':') : [entry, undefined];
|
|
158
|
+
return {
|
|
159
|
+
namespace,
|
|
160
|
+
...(matchPattern && { matchPattern }),
|
|
161
|
+
transporter: brokerConfig.transporter,
|
|
162
|
+
metrics: { enabled: false },
|
|
163
|
+
};
|
|
164
|
+
});
|
|
158
165
|
// Only add InterNamespaceMiddleware if there are namespaces to bridge to
|
|
159
166
|
if (crossNamespaces.length > 0) {
|
|
160
|
-
this.logger.info(`Enabling cross-namespace communication to: ${
|
|
167
|
+
this.logger.info(`Enabling cross-namespace communication to: ${crossNamespaces.map((ns) => (ns.matchPattern ? `${ns.namespace} (pattern: ${ns.matchPattern})` : ns.namespace)).join(', ')}`);
|
|
161
168
|
brokerOptions.middlewares = [
|
|
162
169
|
...(brokerConfig.middlewares || []),
|
|
163
170
|
InterNamespaceMiddleware(crossNamespaces),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"infrastructure-factory.mjs","sources":["../../src/infrastructure/infrastructure-factory.ts"],"sourcesContent":[null],"names":["ServerFeature"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"infrastructure-factory.mjs","sources":["../../src/infrastructure/infrastructure-factory.ts"],"sourcesContent":[null],"names":["ServerFeature"],"mappings":"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"}
|
|
@@ -1,10 +1,21 @@
|
|
|
1
1
|
'use strict';var moleculer=require('moleculer'),_=require('lodash-es');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 ___namespace=/*#__PURE__*/_interopNamespaceDefault(_);/* eslint-disable no-param-reassign */
|
|
2
|
+
/** Convert a glob pattern (with `*`) to a RegExp. */
|
|
3
|
+
function globToRegex(pattern) {
|
|
4
|
+
const escaped = pattern.replace(/[.+^${}()|[\]\\]/g, '\\$&').replace(/\*/g, '.*');
|
|
5
|
+
return new RegExp(`^${escaped}$`);
|
|
6
|
+
}
|
|
2
7
|
const InterNamespaceMiddleware = function (options) {
|
|
3
8
|
if (!Array.isArray(options)) {
|
|
4
9
|
throw new Error('Must be an Array');
|
|
5
10
|
}
|
|
6
11
|
let thisBroker;
|
|
7
12
|
const brokers = {};
|
|
13
|
+
const patterns = [];
|
|
14
|
+
/** Find a broker by glob pattern when exact match fails (e.g. api-admin-v* matches api-admin-v12). */
|
|
15
|
+
const findBrokerByPattern = (namespace) => {
|
|
16
|
+
const match = patterns.find(({ regex }) => regex.test(namespace));
|
|
17
|
+
return match?.broker;
|
|
18
|
+
};
|
|
8
19
|
return {
|
|
9
20
|
created(broker) {
|
|
10
21
|
thisBroker = broker;
|
|
@@ -17,6 +28,9 @@ const InterNamespaceMiddleware = function (options) {
|
|
|
17
28
|
const ns = nsOpts.namespace;
|
|
18
29
|
const brokerOpts = ___namespace.defaultsDeep({}, nsOpts, { nodeID: null, middlewares: null, created: null, started: null }, broker.options);
|
|
19
30
|
brokers[ns] = new moleculer.ServiceBroker(brokerOpts);
|
|
31
|
+
if (nsOpts.matchPattern) {
|
|
32
|
+
patterns.push({ regex: globToRegex(nsOpts.matchPattern), broker: brokers[ns] });
|
|
33
|
+
}
|
|
20
34
|
});
|
|
21
35
|
},
|
|
22
36
|
started() {
|
|
@@ -42,6 +56,19 @@ const InterNamespaceMiddleware = function (options) {
|
|
|
42
56
|
throw err;
|
|
43
57
|
});
|
|
44
58
|
}
|
|
59
|
+
// Pattern fallback: match against configured glob patterns (e.g. api-admin-v*)
|
|
60
|
+
const patternBroker = findBrokerByPattern(namespace);
|
|
61
|
+
if (patternBroker) {
|
|
62
|
+
return patternBroker.call(action, params, opts).catch((err) => {
|
|
63
|
+
if (err.message && !err.message.includes('@')) {
|
|
64
|
+
err.message = err.message.replace(action, `${action}@${namespace}`);
|
|
65
|
+
}
|
|
66
|
+
if (err.data?.action && !err.data.action.includes('@')) {
|
|
67
|
+
err.data.action = `${err.data.action}@${namespace}`;
|
|
68
|
+
}
|
|
69
|
+
throw err;
|
|
70
|
+
});
|
|
71
|
+
}
|
|
45
72
|
if (namespace === thisBroker.namespace) {
|
|
46
73
|
return next(action, params, opts);
|
|
47
74
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"moleculer-inter-namespace.cjs","sources":["../../src/middleware/moleculer-inter-namespace.ts"],"sourcesContent":[null],"names":["_","ServiceBroker"],"mappings":"+ZAAA;
|
|
1
|
+
{"version":3,"file":"moleculer-inter-namespace.cjs","sources":["../../src/middleware/moleculer-inter-namespace.ts"],"sourcesContent":[null],"names":["_","ServiceBroker"],"mappings":"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"}
|
|
@@ -1,10 +1,21 @@
|
|
|
1
1
|
import {ServiceBroker}from'moleculer';import*as _ from'lodash-es';/* eslint-disable no-param-reassign */
|
|
2
|
+
/** Convert a glob pattern (with `*`) to a RegExp. */
|
|
3
|
+
function globToRegex(pattern) {
|
|
4
|
+
const escaped = pattern.replace(/[.+^${}()|[\]\\]/g, '\\$&').replace(/\*/g, '.*');
|
|
5
|
+
return new RegExp(`^${escaped}$`);
|
|
6
|
+
}
|
|
2
7
|
const InterNamespaceMiddleware = function (options) {
|
|
3
8
|
if (!Array.isArray(options)) {
|
|
4
9
|
throw new Error('Must be an Array');
|
|
5
10
|
}
|
|
6
11
|
let thisBroker;
|
|
7
12
|
const brokers = {};
|
|
13
|
+
const patterns = [];
|
|
14
|
+
/** Find a broker by glob pattern when exact match fails (e.g. api-admin-v* matches api-admin-v12). */
|
|
15
|
+
const findBrokerByPattern = (namespace) => {
|
|
16
|
+
const match = patterns.find(({ regex }) => regex.test(namespace));
|
|
17
|
+
return match?.broker;
|
|
18
|
+
};
|
|
8
19
|
return {
|
|
9
20
|
created(broker) {
|
|
10
21
|
thisBroker = broker;
|
|
@@ -17,6 +28,9 @@ const InterNamespaceMiddleware = function (options) {
|
|
|
17
28
|
const ns = nsOpts.namespace;
|
|
18
29
|
const brokerOpts = _.defaultsDeep({}, nsOpts, { nodeID: null, middlewares: null, created: null, started: null }, broker.options);
|
|
19
30
|
brokers[ns] = new ServiceBroker(brokerOpts);
|
|
31
|
+
if (nsOpts.matchPattern) {
|
|
32
|
+
patterns.push({ regex: globToRegex(nsOpts.matchPattern), broker: brokers[ns] });
|
|
33
|
+
}
|
|
20
34
|
});
|
|
21
35
|
},
|
|
22
36
|
started() {
|
|
@@ -42,6 +56,19 @@ const InterNamespaceMiddleware = function (options) {
|
|
|
42
56
|
throw err;
|
|
43
57
|
});
|
|
44
58
|
}
|
|
59
|
+
// Pattern fallback: match against configured glob patterns (e.g. api-admin-v*)
|
|
60
|
+
const patternBroker = findBrokerByPattern(namespace);
|
|
61
|
+
if (patternBroker) {
|
|
62
|
+
return patternBroker.call(action, params, opts).catch((err) => {
|
|
63
|
+
if (err.message && !err.message.includes('@')) {
|
|
64
|
+
err.message = err.message.replace(action, `${action}@${namespace}`);
|
|
65
|
+
}
|
|
66
|
+
if (err.data?.action && !err.data.action.includes('@')) {
|
|
67
|
+
err.data.action = `${err.data.action}@${namespace}`;
|
|
68
|
+
}
|
|
69
|
+
throw err;
|
|
70
|
+
});
|
|
71
|
+
}
|
|
45
72
|
if (namespace === thisBroker.namespace) {
|
|
46
73
|
return next(action, params, opts);
|
|
47
74
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"moleculer-inter-namespace.mjs","sources":["../../src/middleware/moleculer-inter-namespace.ts"],"sourcesContent":[null],"names":[],"mappings":"kEAAA;
|
|
1
|
+
{"version":3,"file":"moleculer-inter-namespace.mjs","sources":["../../src/middleware/moleculer-inter-namespace.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var express=require('express'),bodyParser=require('body-parser'),error=require('../middleware/error.cjs'),services=require('../middleware/services.cjs');require('../middleware/sentry.cjs');var redisClient=require('../middleware/redis-client.cjs'),cors=require('../middleware/cors.cjs'),Sentry=require('@sentry/node');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 Sentry__namespace=/*#__PURE__*/_interopNamespaceDefault(Sentry);/* eslint-disable @typescript-eslint/no-var-requires */
|
|
2
2
|
function expressApp(modules, options, middlewares, http, redisClient$1) {
|
|
3
|
-
const app =
|
|
3
|
+
const app = express();
|
|
4
4
|
// FIRST PRIORITY: Add Redis client middleware at the very top
|
|
5
5
|
// This ensures req.redisClient is available to ALL downstream middleware
|
|
6
6
|
if (redisClient$1) {
|
|
@@ -22,14 +22,14 @@ function expressApp(modules, options, middlewares, http, redisClient$1) {
|
|
|
22
22
|
res.header('Access-Control-Allow-Headers', 'X-Requested-With, X-HTTP-Method-Override, X-CSP-Nonce, Content-Type, Accept');
|
|
23
23
|
next();
|
|
24
24
|
});
|
|
25
|
-
app.use(
|
|
25
|
+
app.use(bodyParser.json({
|
|
26
26
|
limit: '50mb',
|
|
27
27
|
verify: (req, res, buf) => {
|
|
28
28
|
// #Todo: Find some proper solution for it
|
|
29
29
|
req.rawBody = buf;
|
|
30
30
|
},
|
|
31
31
|
}));
|
|
32
|
-
app.use(
|
|
32
|
+
app.use(bodyParser.urlencoded({ limit: '50mb', extended: true, parameterLimit: 50000 }));
|
|
33
33
|
for (const applyMiddleware of modules.middlewares) {
|
|
34
34
|
applyMiddleware(app);
|
|
35
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpressApp.cjs","sources":["../../src/servers/ExpressApp.ts"],"sourcesContent":[null],"names":["redisClient","
|
|
1
|
+
{"version":3,"file":"ExpressApp.cjs","sources":["../../src/servers/ExpressApp.ts"],"sourcesContent":[null],"names":["redisClient","redisClientMiddleware","contextServicesMiddleware","corsMiddleware","Sentry","errorMiddleware"],"mappings":"4qBAAA;AAWM,SAAU,UAAU,CAAC,OAAgB,EAAE,OAAuB,EAAE,WAAW,EAAE,IAAK,EAAEA,aAAY,EAAA;AAClG,IAAA,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;;;IAItB,IAAIA,aAAW,EAAE;QACb,GAAG,CAAC,GAAG,CAACC,iCAAqB,CAACD,aAAW,CAAC,CAAC,CAAC;KAC/C;AAED,IAAA,GAAG,CAAC,GAAG,CAACE,kCAAyB,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;AAClF,IAAA,KAAK,MAAM,eAAe,IAAI,OAAO,CAAC,WAAW,EAAE;QAC/C,eAAe,CAAC,GAAG,CAAC,CAAC;KACxB;;AAGD,IAAA,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAE1B,IAAA,IAAI,WAAW,KAAK,IAAI,EAAE;AACtB,QAAA,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;KACxB;AAED,IAAA,GAAG,CAAC,GAAG,CAACC,mBAAc,CAAC,CAAC;IACxB,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,KAAI;AACvB,QAAA,GAAG,CAAC,MAAM,CAAC,kCAAkC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACrE,QAAA,GAAG,CAAC,MAAM,CAAC,8BAA8B,EAAE,qBAAqB,CAAC,CAAC;AAClE,QAAA,GAAG,CAAC,MAAM,CACN,8BAA8B,EAC9B,6EAA6E,CAChF,CAAC;AACF,QAAA,IAAI,EAAE,CAAC;AACX,KAAC,CAAC,CAAC;AAEH,IAAA,GAAG,CAAC,GAAG,CACH,UAAU,CAAC,IAAI,CAAC;AACZ,QAAA,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,KAAI;;AAErB,YAAA,GAAW,CAAC,OAAO,GAAG,GAAG,CAAC;SAC9B;AACJ,KAAA,CAAC,CACL,CAAC;IACF,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAEzF,IAAA,KAAK,MAAM,eAAe,IAAI,OAAO,CAAC,WAAW,EAAE;QAC/C,eAAe,CAAC,GAAG,CAAC,CAAC;KACxB;;AAGD,IAAAC,iBAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;IAErC,IAAI,OAAO,EAAE;AACT,QAAA,GAAG,CAAC,GAAG,CAACC,qBAAe,CAAC,CAAC;KAC5B;AAED,IAAA,OAAO,GAAG,CAAC;AACf"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import express from'express';import bodyParser from'body-parser';import {errorMiddleware}from'../middleware/error.mjs';import {contextServicesMiddleware}from'../middleware/services.mjs';import'../middleware/sentry.mjs';import {redisClientMiddleware}from'../middleware/redis-client.mjs';import {corsMiddleware}from'../middleware/cors.mjs';import*as Sentry from'@sentry/node';/* eslint-disable @typescript-eslint/no-var-requires */
|
|
2
2
|
function expressApp(modules, options, middlewares, http, redisClient) {
|
|
3
3
|
const app = express();
|
|
4
4
|
// FIRST PRIORITY: Add Redis client middleware at the very top
|
|
@@ -22,14 +22,14 @@ function expressApp(modules, options, middlewares, http, redisClient) {
|
|
|
22
22
|
res.header('Access-Control-Allow-Headers', 'X-Requested-With, X-HTTP-Method-Override, X-CSP-Nonce, Content-Type, Accept');
|
|
23
23
|
next();
|
|
24
24
|
});
|
|
25
|
-
app.use(
|
|
25
|
+
app.use(bodyParser.json({
|
|
26
26
|
limit: '50mb',
|
|
27
27
|
verify: (req, res, buf) => {
|
|
28
28
|
// #Todo: Find some proper solution for it
|
|
29
29
|
req.rawBody = buf;
|
|
30
30
|
},
|
|
31
31
|
}));
|
|
32
|
-
app.use(
|
|
32
|
+
app.use(bodyParser.urlencoded({ limit: '50mb', extended: true, parameterLimit: 50000 }));
|
|
33
33
|
for (const applyMiddleware of modules.middlewares) {
|
|
34
34
|
applyMiddleware(app);
|
|
35
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpressApp.mjs","sources":["../../src/servers/ExpressApp.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ExpressApp.mjs","sources":["../../src/servers/ExpressApp.ts"],"sourcesContent":[null],"names":[],"mappings":"sXAAA;AAWM,SAAU,UAAU,CAAC,OAAgB,EAAE,OAAuB,EAAE,WAAW,EAAE,IAAK,EAAE,WAAY,EAAA;AAClG,IAAA,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;;;IAItB,IAAI,WAAW,EAAE;QACb,GAAG,CAAC,GAAG,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAC;KAC/C;AAED,IAAA,GAAG,CAAC,GAAG,CAAC,yBAAyB,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;AAClF,IAAA,KAAK,MAAM,eAAe,IAAI,OAAO,CAAC,WAAW,EAAE;QAC/C,eAAe,CAAC,GAAG,CAAC,CAAC;KACxB;;AAGD,IAAA,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAE1B,IAAA,IAAI,WAAW,KAAK,IAAI,EAAE;AACtB,QAAA,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;KACxB;AAED,IAAA,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACxB,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,KAAI;AACvB,QAAA,GAAG,CAAC,MAAM,CAAC,kCAAkC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACrE,QAAA,GAAG,CAAC,MAAM,CAAC,8BAA8B,EAAE,qBAAqB,CAAC,CAAC;AAClE,QAAA,GAAG,CAAC,MAAM,CACN,8BAA8B,EAC9B,6EAA6E,CAChF,CAAC;AACF,QAAA,IAAI,EAAE,CAAC;AACX,KAAC,CAAC,CAAC;AAEH,IAAA,GAAG,CAAC,GAAG,CACH,UAAU,CAAC,IAAI,CAAC;AACZ,QAAA,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,KAAI;;AAErB,YAAA,GAAW,CAAC,OAAO,GAAG,GAAG,CAAC;SAC9B;AACJ,KAAA,CAAC,CACL,CAAC;IACF,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAEzF,IAAA,KAAK,MAAM,eAAe,IAAI,OAAO,CAAC,WAAW,EAAE;QAC/C,eAAe,CAAC,GAAG,CAAC,CAAC;KACxB;;AAGD,IAAA,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;IAErC,IAAI,OAAO,EAAE;AACT,QAAA,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;KAC5B;AAED,IAAA,OAAO,GAAG,CAAC;AACf"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';var server=require('@apollo/server'),express4=require('@apollo/server/express4'),cacheControl=require('@apollo/server/plugin/cacheControl');require('isomorphic-fetch');var
|
|
1
|
+
'use strict';var server=require('@apollo/server'),express4=require('@apollo/server/express4'),cacheControl=require('@apollo/server/plugin/cacheControl'),drainHttpServer=require('@apollo/server/plugin/drainHttpServer');require('isomorphic-fetch');var express=require('express'),cors=require('cors'),Keyv=require('keyv'),KeyvRedis=require('@keyv/redis'),utils_keyvadapter=require('@apollo/utils.keyvadapter'),ws=require('ws'),storeRedis=require('@common-stack/store-redis'),GraphqlWs=require('./GraphqlWs.cjs'),envConfig=require('../config/env-config.cjs');if ((process.env.LOG_LEVEL && process.env.LOG_LEVEL === 'trace') || process.env.LOG_LEVEL === 'debug') ;
|
|
2
2
|
// @workaround as the `dataSources` not available in Subscription (websocket) Context.
|
|
3
3
|
// https://github.com/apollographql/apollo-server/issues/1526 need to revisit in Apollo-Server v3.
|
|
4
4
|
const constructDataSourcesForSubscriptions = (context, cache, dataSources) => {
|
|
@@ -12,7 +12,7 @@ const constructDataSourcesForSubscriptions = (context, cache, dataSources) => {
|
|
|
12
12
|
};
|
|
13
13
|
class GraphqlServer {
|
|
14
14
|
app;
|
|
15
|
-
|
|
15
|
+
httpServer;
|
|
16
16
|
redisClient;
|
|
17
17
|
moduleService;
|
|
18
18
|
enableSubscription;
|
|
@@ -21,10 +21,9 @@ class GraphqlServer {
|
|
|
21
21
|
plugins;
|
|
22
22
|
logger;
|
|
23
23
|
graphqlWsServer;
|
|
24
|
-
constructor(app,
|
|
25
|
-
redisClient, moduleService, enableSubscription = true, cacheKeyGenerator, invalidateCacheKeyGenerator, plugins) {
|
|
24
|
+
constructor(app, httpServer, redisClient, moduleService, enableSubscription = true, cacheKeyGenerator, invalidateCacheKeyGenerator, plugins) {
|
|
26
25
|
this.app = app;
|
|
27
|
-
this.
|
|
26
|
+
this.httpServer = httpServer;
|
|
28
27
|
this.redisClient = redisClient;
|
|
29
28
|
this.moduleService = moduleService;
|
|
30
29
|
this.enableSubscription = enableSubscription;
|
|
@@ -33,11 +32,8 @@ class GraphqlServer {
|
|
|
33
32
|
this.plugins = plugins;
|
|
34
33
|
this.logger = this.moduleService.logger.child({ className: 'GraphqlServer' });
|
|
35
34
|
if (enableSubscription) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
// - classic express: pass the httpServer as 'server' (ws)
|
|
39
|
-
const wsServer = new expressAdapter.WebSocketServer({
|
|
40
|
-
server: this.wsServerHost,
|
|
35
|
+
const wsServer = new ws.WebSocketServer({
|
|
36
|
+
server: this.httpServer,
|
|
41
37
|
path: envConfig.config.GRAPHQL_ENDPOINT,
|
|
42
38
|
});
|
|
43
39
|
this.graphqlWsServer = new GraphqlWs.GraphqlWs(wsServer, this.moduleService, this.redisClient);
|
|
@@ -54,7 +50,7 @@ class GraphqlServer {
|
|
|
54
50
|
origin: [envConfig.config.CLIENT_URL],
|
|
55
51
|
credentials: true,
|
|
56
52
|
};
|
|
57
|
-
this.app.use(__GRAPHQL_ENDPOINT__, cors(corsOptions),
|
|
53
|
+
this.app.use(__GRAPHQL_ENDPOINT__, cors(corsOptions), express.json(), express4.expressMiddleware(apolloServer, {
|
|
58
54
|
context: async ({ req, res, connection }) => {
|
|
59
55
|
let context;
|
|
60
56
|
let addons = {};
|
|
@@ -121,29 +117,17 @@ class GraphqlServer {
|
|
|
121
117
|
const cacheSet = cacheAdapter.set.bind(cacheAdapter);
|
|
122
118
|
cacheAdapter.set = (key, value, opts) => cacheSet(key.replaceAll('fqc:', ''), value, opts);
|
|
123
119
|
const { cacheKeyGenerator, invalidateCacheKeyGenerator, logger } = this;
|
|
124
|
-
const serverPlugins = [
|
|
125
|
-
cacheControl.ApolloServerPluginCacheControl(),
|
|
126
|
-
storeRedis.invalidateCachePlugin({ cache: this.redisClient, invalidateCacheKeyGenerator }),
|
|
127
|
-
storeRedis.responseCachePlugin({ logger, cacheKeyGenerator }),
|
|
128
|
-
...(this.plugins ?? []),
|
|
129
|
-
];
|
|
130
|
-
// For classic express, add drain plugin to gracefully close the HTTP server.
|
|
131
|
-
// ultimate-express (uWebSockets.js) handles connection draining natively.
|
|
132
|
-
if (!expressAdapter.isUltimateEngine && this.wsServerHost) {
|
|
133
|
-
try {
|
|
134
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
135
|
-
const { ApolloServerPluginDrainHttpServer } = require('@apollo/server/plugin/drainHttpServer');
|
|
136
|
-
serverPlugins.push(ApolloServerPluginDrainHttpServer({ httpServer: this.wsServerHost }));
|
|
137
|
-
}
|
|
138
|
-
catch {
|
|
139
|
-
// Plugin not available — skip
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
120
|
const serverConfig = {
|
|
143
121
|
schema: this.moduleService.schema,
|
|
144
122
|
allowBatchedHttpRequests: true,
|
|
145
123
|
cache: cacheAdapter,
|
|
146
|
-
plugins:
|
|
124
|
+
plugins: [
|
|
125
|
+
drainHttpServer.ApolloServerPluginDrainHttpServer({ httpServer: this.httpServer }),
|
|
126
|
+
cacheControl.ApolloServerPluginCacheControl(),
|
|
127
|
+
storeRedis.invalidateCachePlugin({ cache: this.redisClient, invalidateCacheKeyGenerator }),
|
|
128
|
+
storeRedis.responseCachePlugin({ logger, cacheKeyGenerator }),
|
|
129
|
+
...(this.plugins ?? []),
|
|
130
|
+
],
|
|
147
131
|
};
|
|
148
132
|
if (this.enableSubscription) {
|
|
149
133
|
serverConfig.plugins.push({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GraphqlServer.cjs","sources":["../../src/servers/GraphqlServer.ts"],"sourcesContent":[null],"names":["WebSocketServer","config","GraphqlWs","
|
|
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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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {ApolloServer}from'@apollo/server';import {expressMiddleware}from'@apollo/server/express4';import {ApolloServerPluginCacheControl}from'@apollo/server/plugin/cacheControl';import'isomorphic-fetch';import
|
|
1
|
+
import {ApolloServer}from'@apollo/server';import {expressMiddleware}from'@apollo/server/express4';import {ApolloServerPluginCacheControl}from'@apollo/server/plugin/cacheControl';import {ApolloServerPluginDrainHttpServer}from'@apollo/server/plugin/drainHttpServer';import'isomorphic-fetch';import express from'express';import cors from'cors';import Keyv from'keyv';import KeyvRedis from'@keyv/redis';import {KeyvAdapter}from'@apollo/utils.keyvadapter';import {WebSocketServer}from'ws';import {invalidateCachePlugin,responseCachePlugin}from'@common-stack/store-redis';import {GraphqlWs}from'./GraphqlWs.mjs';import {config}from'../config/env-config.mjs';if ((process.env.LOG_LEVEL && process.env.LOG_LEVEL === 'trace') || process.env.LOG_LEVEL === 'debug') ;
|
|
2
2
|
// @workaround as the `dataSources` not available in Subscription (websocket) Context.
|
|
3
3
|
// https://github.com/apollographql/apollo-server/issues/1526 need to revisit in Apollo-Server v3.
|
|
4
4
|
const constructDataSourcesForSubscriptions = (context, cache, dataSources) => {
|
|
@@ -12,7 +12,7 @@ const constructDataSourcesForSubscriptions = (context, cache, dataSources) => {
|
|
|
12
12
|
};
|
|
13
13
|
class GraphqlServer {
|
|
14
14
|
app;
|
|
15
|
-
|
|
15
|
+
httpServer;
|
|
16
16
|
redisClient;
|
|
17
17
|
moduleService;
|
|
18
18
|
enableSubscription;
|
|
@@ -21,10 +21,9 @@ class GraphqlServer {
|
|
|
21
21
|
plugins;
|
|
22
22
|
logger;
|
|
23
23
|
graphqlWsServer;
|
|
24
|
-
constructor(app,
|
|
25
|
-
redisClient, moduleService, enableSubscription = true, cacheKeyGenerator, invalidateCacheKeyGenerator, plugins) {
|
|
24
|
+
constructor(app, httpServer, redisClient, moduleService, enableSubscription = true, cacheKeyGenerator, invalidateCacheKeyGenerator, plugins) {
|
|
26
25
|
this.app = app;
|
|
27
|
-
this.
|
|
26
|
+
this.httpServer = httpServer;
|
|
28
27
|
this.redisClient = redisClient;
|
|
29
28
|
this.moduleService = moduleService;
|
|
30
29
|
this.enableSubscription = enableSubscription;
|
|
@@ -33,11 +32,8 @@ class GraphqlServer {
|
|
|
33
32
|
this.plugins = plugins;
|
|
34
33
|
this.logger = this.moduleService.logger.child({ className: 'GraphqlServer' });
|
|
35
34
|
if (enableSubscription) {
|
|
36
|
-
// WebSocketServer binds to different hosts depending on engine:
|
|
37
|
-
// - ultimate-express: pass the app as 'server' (ultimate-ws)
|
|
38
|
-
// - classic express: pass the httpServer as 'server' (ws)
|
|
39
35
|
const wsServer = new WebSocketServer({
|
|
40
|
-
server: this.
|
|
36
|
+
server: this.httpServer,
|
|
41
37
|
path: config.GRAPHQL_ENDPOINT,
|
|
42
38
|
});
|
|
43
39
|
this.graphqlWsServer = new GraphqlWs(wsServer, this.moduleService, this.redisClient);
|
|
@@ -121,29 +117,17 @@ class GraphqlServer {
|
|
|
121
117
|
const cacheSet = cacheAdapter.set.bind(cacheAdapter);
|
|
122
118
|
cacheAdapter.set = (key, value, opts) => cacheSet(key.replaceAll('fqc:', ''), value, opts);
|
|
123
119
|
const { cacheKeyGenerator, invalidateCacheKeyGenerator, logger } = this;
|
|
124
|
-
const serverPlugins = [
|
|
125
|
-
ApolloServerPluginCacheControl(),
|
|
126
|
-
invalidateCachePlugin({ cache: this.redisClient, invalidateCacheKeyGenerator }),
|
|
127
|
-
responseCachePlugin({ logger, cacheKeyGenerator }),
|
|
128
|
-
...(this.plugins ?? []),
|
|
129
|
-
];
|
|
130
|
-
// For classic express, add drain plugin to gracefully close the HTTP server.
|
|
131
|
-
// ultimate-express (uWebSockets.js) handles connection draining natively.
|
|
132
|
-
if (!isUltimateEngine && this.wsServerHost) {
|
|
133
|
-
try {
|
|
134
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
135
|
-
const { ApolloServerPluginDrainHttpServer } = require('@apollo/server/plugin/drainHttpServer');
|
|
136
|
-
serverPlugins.push(ApolloServerPluginDrainHttpServer({ httpServer: this.wsServerHost }));
|
|
137
|
-
}
|
|
138
|
-
catch {
|
|
139
|
-
// Plugin not available — skip
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
120
|
const serverConfig = {
|
|
143
121
|
schema: this.moduleService.schema,
|
|
144
122
|
allowBatchedHttpRequests: true,
|
|
145
123
|
cache: cacheAdapter,
|
|
146
|
-
plugins:
|
|
124
|
+
plugins: [
|
|
125
|
+
ApolloServerPluginDrainHttpServer({ httpServer: this.httpServer }),
|
|
126
|
+
ApolloServerPluginCacheControl(),
|
|
127
|
+
invalidateCachePlugin({ cache: this.redisClient, invalidateCacheKeyGenerator }),
|
|
128
|
+
responseCachePlugin({ logger, cacheKeyGenerator }),
|
|
129
|
+
...(this.plugins ?? []),
|
|
130
|
+
],
|
|
147
131
|
};
|
|
148
132
|
if (this.enableSubscription) {
|
|
149
133
|
serverConfig.plugins.push({
|