@common-stack/server-stack 7.0.4-alpha.15 → 7.0.4-alpha.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +7 -7
- package/lib/MainStackServer.cjs +0 -231
- package/lib/MainStackServer.cjs.map +0 -1
- package/lib/MainStackServer.d.ts +0 -28
- package/lib/MainStackServer.mjs +0 -231
- package/lib/MainStackServer.mjs.map +0 -1
- package/lib/StackServer.cjs +0 -92
- package/lib/StackServer.cjs.map +0 -1
- package/lib/StackServer.d.ts +0 -20
- package/lib/StackServer.mjs +0 -92
- package/lib/StackServer.mjs.map +0 -1
- package/lib/api/remote-config.cjs +0 -6
- package/lib/api/remote-config.cjs.map +0 -1
- package/lib/api/remote-config.d.ts +0 -6
- package/lib/api/remote-config.mjs +0 -6
- package/lib/api/remote-config.mjs.map +0 -1
- package/lib/api/resolver.cjs +0 -12
- package/lib/api/resolver.cjs.map +0 -1
- package/lib/api/resolver.d.ts +0 -10
- package/lib/api/resolver.mjs +0 -12
- package/lib/api/resolver.mjs.map +0 -1
- package/lib/api/root-schema.graphqls.cjs +0 -2
- package/lib/api/root-schema.graphqls.cjs.map +0 -1
- package/lib/api/root-schema.graphqls.mjs +0 -2
- package/lib/api/root-schema.graphqls.mjs.map +0 -1
- package/lib/api/scalar.cjs +0 -16
- package/lib/api/scalar.cjs.map +0 -1
- package/lib/api/scalar.d.ts +0 -2
- package/lib/api/scalar.mjs +0 -16
- package/lib/api/scalar.mjs.map +0 -1
- package/lib/api/schema-builder.cjs +0 -160
- package/lib/api/schema-builder.cjs.map +0 -1
- package/lib/api/schema-builder.d.ts +0 -24
- package/lib/api/schema-builder.mjs +0 -160
- package/lib/api/schema-builder.mjs.map +0 -1
- package/lib/api/utils.cjs +0 -27
- package/lib/api/utils.cjs.map +0 -1
- package/lib/api/utils.d.ts +0 -4
- package/lib/api/utils.mjs +0 -27
- package/lib/api/utils.mjs.map +0 -1
- package/lib/config/env-config.cjs +0 -38
- package/lib/config/env-config.cjs.map +0 -1
- package/lib/config/env-config.d.ts +0 -21
- package/lib/config/env-config.mjs +0 -38
- package/lib/config/env-config.mjs.map +0 -1
- package/lib/config/index.d.ts +0 -1
- package/lib/config/moleculer.config.cjs +0 -191
- package/lib/config/moleculer.config.cjs.map +0 -1
- package/lib/config/moleculer.config.d.ts +0 -20
- package/lib/config/moleculer.config.mjs +0 -191
- package/lib/config/moleculer.config.mjs.map +0 -1
- package/lib/connectors/connection-broker.cjs +0 -61
- package/lib/connectors/connection-broker.cjs.map +0 -1
- package/lib/connectors/connection-broker.d.ts +0 -26
- package/lib/connectors/connection-broker.mjs +0 -61
- package/lib/connectors/connection-broker.mjs.map +0 -1
- package/lib/connectors/graphql-pubsub-connector.cjs +0 -28
- package/lib/connectors/graphql-pubsub-connector.cjs.map +0 -1
- package/lib/connectors/graphql-pubsub-connector.d.ts +0 -22
- package/lib/connectors/graphql-pubsub-connector.mjs +0 -28
- package/lib/connectors/graphql-pubsub-connector.mjs.map +0 -1
- package/lib/connectors/mongo-connector.cjs +0 -57
- package/lib/connectors/mongo-connector.cjs.map +0 -1
- package/lib/connectors/mongo-connector.d.ts +0 -21
- package/lib/connectors/mongo-connector.mjs +0 -57
- package/lib/connectors/mongo-connector.mjs.map +0 -1
- package/lib/connectors/nats-connector.cjs +0 -63
- package/lib/connectors/nats-connector.cjs.map +0 -1
- package/lib/connectors/nats-connector.d.ts +0 -20
- package/lib/connectors/nats-connector.mjs +0 -63
- package/lib/connectors/nats-connector.mjs.map +0 -1
- package/lib/connectors/redis-connector.cjs +0 -79
- package/lib/connectors/redis-connector.cjs.map +0 -1
- package/lib/connectors/redis-connector.d.ts +0 -30
- package/lib/connectors/redis-connector.mjs +0 -79
- package/lib/connectors/redis-connector.mjs.map +0 -1
- package/lib/graphql/directives/index.cjs +0 -10
- package/lib/graphql/directives/index.cjs.map +0 -1
- package/lib/graphql/directives/index.d.ts +0 -7
- package/lib/graphql/directives/index.mjs +0 -10
- package/lib/graphql/directives/index.mjs.map +0 -1
- package/lib/graphql/index.d.ts +0 -2
- package/lib/graphql/schema/directives.graphql.cjs +0 -1
- package/lib/graphql/schema/directives.graphql.cjs.map +0 -1
- package/lib/graphql/schema/directives.graphql.mjs +0 -1
- package/lib/graphql/schema/directives.graphql.mjs.map +0 -1
- package/lib/graphql/schema/index.cjs +0 -1
- package/lib/graphql/schema/index.cjs.map +0 -1
- package/lib/graphql/schema/index.d.ts +0 -1
- package/lib/graphql/schema/index.mjs +0 -1
- package/lib/graphql/schema/index.mjs.map +0 -1
- package/lib/index.cjs +0 -1
- package/lib/index.cjs.map +0 -1
- package/lib/index.d.ts +0 -3
- package/lib/index.mjs +0 -1
- package/lib/index.mjs.map +0 -1
- package/lib/interfaces/dbMigration.d.ts +0 -8
- package/lib/interfaces/graphql-request-context.d.ts +0 -15
- package/lib/interfaces/index.d.ts +0 -4
- package/lib/interfaces/module-interface.d.ts +0 -13
- package/lib/interfaces/moleculer.d.ts +0 -7
- package/lib/middleware/cors.cjs +0 -26
- package/lib/middleware/cors.cjs.map +0 -1
- package/lib/middleware/cors.d.ts +0 -6
- package/lib/middleware/cors.mjs +0 -26
- package/lib/middleware/cors.mjs.map +0 -1
- package/lib/middleware/error.cjs +0 -18
- package/lib/middleware/error.cjs.map +0 -1
- package/lib/middleware/error.d.ts +0 -9
- package/lib/middleware/error.mjs +0 -18
- package/lib/middleware/error.mjs.map +0 -1
- package/lib/middleware/moleculer-inter-namespace.cjs +0 -44
- package/lib/middleware/moleculer-inter-namespace.cjs.map +0 -1
- package/lib/middleware/moleculer-inter-namespace.d.ts +0 -2
- package/lib/middleware/moleculer-inter-namespace.mjs +0 -44
- package/lib/middleware/moleculer-inter-namespace.mjs.map +0 -1
- package/lib/middleware/sentry.cjs +0 -3
- package/lib/middleware/sentry.cjs.map +0 -1
- package/lib/middleware/sentry.d.ts +0 -2
- package/lib/middleware/sentry.mjs +0 -3
- package/lib/middleware/sentry.mjs.map +0 -1
- package/lib/middleware/services.cjs +0 -12
- package/lib/middleware/services.cjs.map +0 -1
- package/lib/middleware/services.d.ts +0 -2
- package/lib/middleware/services.mjs +0 -12
- package/lib/middleware/services.mjs.map +0 -1
- package/lib/plugins/index.d.ts +0 -2
- package/lib/plugins/invalidateCachePlugin.cjs +0 -59
- package/lib/plugins/invalidateCachePlugin.cjs.map +0 -1
- package/lib/plugins/invalidateCachePlugin.d.ts +0 -8
- package/lib/plugins/invalidateCachePlugin.mjs +0 -59
- package/lib/plugins/invalidateCachePlugin.mjs.map +0 -1
- package/lib/plugins/responseCachePlugin.cjs +0 -58
- package/lib/plugins/responseCachePlugin.cjs.map +0 -1
- package/lib/plugins/responseCachePlugin.d.ts +0 -8
- package/lib/plugins/responseCachePlugin.mjs +0 -58
- package/lib/plugins/responseCachePlugin.mjs.map +0 -1
- package/lib/servers/ExpressApp.cjs +0 -37
- package/lib/servers/ExpressApp.cjs.map +0 -1
- package/lib/servers/ExpressApp.d.ts +0 -3
- package/lib/servers/ExpressApp.mjs +0 -37
- package/lib/servers/ExpressApp.mjs.map +0 -1
- package/lib/servers/GraphqlServer.cjs +0 -142
- package/lib/servers/GraphqlServer.cjs.map +0 -1
- package/lib/servers/GraphqlServer.d.ts +0 -23
- package/lib/servers/GraphqlServer.mjs +0 -142
- package/lib/servers/GraphqlServer.mjs.map +0 -1
- package/lib/servers/GraphqlWs.cjs +0 -97
- package/lib/servers/GraphqlWs.cjs.map +0 -1
- package/lib/servers/GraphqlWs.d.ts +0 -14
- package/lib/servers/GraphqlWs.mjs +0 -97
- package/lib/servers/GraphqlWs.mjs.map +0 -1
- package/lib/servers/WebsocketMultipathUpdate.cjs +0 -63
- package/lib/servers/WebsocketMultipathUpdate.cjs.map +0 -1
- package/lib/servers/WebsocketMultipathUpdate.d.ts +0 -18
- package/lib/servers/WebsocketMultipathUpdate.mjs +0 -63
- package/lib/servers/WebsocketMultipathUpdate.mjs.map +0 -1
- package/lib/servers/mongodb-migration-update.d.ts +0 -12
- package/lib/servers/utils.d.ts +0 -14
- package/lib/utils/index.d.ts +0 -1
- package/lib/utils/migrations.cjs +0 -26
- package/lib/utils/migrations.cjs.map +0 -1
- package/lib/utils/migrations.d.ts +0 -8
- package/lib/utils/migrations.mjs +0 -26
- package/lib/utils/migrations.mjs.map +0 -1
package/lib/middleware/error.mjs
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import*as url from'url';import {config}from'../config/env-config.mjs';const { pathname } = url.parse(config.BACKEND_URL);
|
|
2
|
-
/**
|
|
3
|
-
* Middleware function that takes 4 arguments is classified as "error handling middleware"
|
|
4
|
-
* and will only get called if an error occurs.
|
|
5
|
-
* @param e
|
|
6
|
-
* @param req
|
|
7
|
-
* @param res
|
|
8
|
-
* @param next
|
|
9
|
-
*/
|
|
10
|
-
const errorMiddleware = (e, req, res, next) => {
|
|
11
|
-
if (req.path === pathname) {
|
|
12
|
-
const stack = e.stack.toString().replace(/[\n]/g, '\\n');
|
|
13
|
-
res.status(200).send(`[{"data": {}, "errors":[{"message": "${stack}"}]}]`);
|
|
14
|
-
}
|
|
15
|
-
else {
|
|
16
|
-
req.logger.error(e);
|
|
17
|
-
}
|
|
18
|
-
};export{errorMiddleware};//# sourceMappingURL=error.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error.mjs","sources":["../../src/middleware/error.ts"],"sourcesContent":[null],"names":[],"mappings":"sEAGA,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAEnD;;;;;;;AAOG;AACI,MAAM,eAAe,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,KAAI;AACjD,IAAA,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;AACvB,QAAA,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACzD,QAAA,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAwC,qCAAA,EAAA,KAAK,CAAO,KAAA,CAAA,CAAC,CAAC;KAC9E;SAAM;AACH,QAAA,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KACvB;AACL"}
|
|
@@ -1,44 +0,0 @@
|
|
|
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
|
-
const InterNamespaceMiddleware = function (options) {
|
|
3
|
-
if (!Array.isArray(options)) {
|
|
4
|
-
throw new Error('Must be an Array');
|
|
5
|
-
}
|
|
6
|
-
let thisBroker;
|
|
7
|
-
const brokers = {};
|
|
8
|
-
return {
|
|
9
|
-
created(broker) {
|
|
10
|
-
thisBroker = broker;
|
|
11
|
-
options.forEach((nsOpts) => {
|
|
12
|
-
if (___namespace.isString(nsOpts)) {
|
|
13
|
-
nsOpts = {
|
|
14
|
-
namespace: nsOpts,
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
const ns = nsOpts.namespace;
|
|
18
|
-
const brokerOpts = ___namespace.defaultsDeep({}, nsOpts, { nodeID: null, middlewares: null, created: null, started: null }, broker.options);
|
|
19
|
-
brokers[ns] = new moleculer.ServiceBroker(brokerOpts);
|
|
20
|
-
});
|
|
21
|
-
},
|
|
22
|
-
started() {
|
|
23
|
-
return Promise.all(Object.values(brokers).map((b) => b.start()));
|
|
24
|
-
},
|
|
25
|
-
stopped() {
|
|
26
|
-
return Promise.all(Object.values(brokers).map((b) => b.stop()));
|
|
27
|
-
},
|
|
28
|
-
call(next) {
|
|
29
|
-
return function (actionName, params, opts = {}) {
|
|
30
|
-
if (___namespace.isString(actionName) && actionName.includes('@')) {
|
|
31
|
-
const [action, namespace] = actionName.split('@');
|
|
32
|
-
if (brokers[namespace]) {
|
|
33
|
-
return brokers[namespace].call(action, params, opts);
|
|
34
|
-
}
|
|
35
|
-
if (namespace === thisBroker.namespace) {
|
|
36
|
-
return next(action, params, opts);
|
|
37
|
-
}
|
|
38
|
-
throw new Error(`Unknown namespace: ${namespace}`);
|
|
39
|
-
}
|
|
40
|
-
return next(actionName, params, opts);
|
|
41
|
-
};
|
|
42
|
-
},
|
|
43
|
-
};
|
|
44
|
-
};exports.InterNamespaceMiddleware=InterNamespaceMiddleware;//# sourceMappingURL=moleculer-inter-namespace.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"moleculer-inter-namespace.cjs","sources":["../../src/middleware/moleculer-inter-namespace.ts"],"sourcesContent":[null],"names":["_","ServiceBroker"],"mappings":"+ZAAA;AAIO,MAAM,wBAAwB,GAAG,UAAU,OAAO,EAAA;IACrD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AACzB,QAAA,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;KACvC;AAED,IAAA,IAAI,UAAyB,CAAC;IAC9B,MAAM,OAAO,GAAqC,EAAE,CAAC;IAErD,OAAO;AACH,QAAA,OAAO,CAAC,MAAqB,EAAA;YACzB,UAAU,GAAG,MAAM,CAAC;AACpB,YAAA,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;AACvB,gBAAA,IAAIA,YAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AACpB,oBAAA,MAAM,GAAG;AACL,wBAAA,SAAS,EAAE,MAAM;qBACpB,CAAC;iBACL;AACD,gBAAA,MAAM,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC;AAE5B,gBAAA,MAAM,UAAU,GAAGA,YAAC,CAAC,YAAY,CAC7B,EAAE,EACF,MAAM,EACN,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EACjE,MAAM,CAAC,OAAO,CACjB,CAAC;gBACF,OAAO,CAAC,EAAE,CAAC,GAAG,IAAIC,uBAAa,CAAC,UAAU,CAAC,CAAC;AAChD,aAAC,CAAC,CAAC;SACN;QAED,OAAO,GAAA;YACH,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SACpE;QAED,OAAO,GAAA;YACH,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;SACnE;AAED,QAAA,IAAI,CAAC,IAAI,EAAA;AACL,YAAA,OAAO,UAAU,UAAU,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAA;AAC1C,gBAAA,IAAID,YAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACpD,oBAAA,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAElD,oBAAA,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE;AACpB,wBAAA,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;qBACxD;AACD,oBAAA,IAAI,SAAS,KAAK,UAAU,CAAC,SAAS,EAAE;wBACpC,OAAO,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;qBACrC;AACD,oBAAA,MAAM,IAAI,KAAK,CAAC,sBAAsB,SAAS,CAAA,CAAE,CAAC,CAAC;iBACtD;gBAED,OAAO,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC1C,aAAC,CAAC;SACL;KACJ,CAAC;AACN"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import {ServiceBroker}from'moleculer';import*as _ from'lodash-es';/* eslint-disable no-param-reassign */
|
|
2
|
-
const InterNamespaceMiddleware = function (options) {
|
|
3
|
-
if (!Array.isArray(options)) {
|
|
4
|
-
throw new Error('Must be an Array');
|
|
5
|
-
}
|
|
6
|
-
let thisBroker;
|
|
7
|
-
const brokers = {};
|
|
8
|
-
return {
|
|
9
|
-
created(broker) {
|
|
10
|
-
thisBroker = broker;
|
|
11
|
-
options.forEach((nsOpts) => {
|
|
12
|
-
if (_.isString(nsOpts)) {
|
|
13
|
-
nsOpts = {
|
|
14
|
-
namespace: nsOpts,
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
const ns = nsOpts.namespace;
|
|
18
|
-
const brokerOpts = _.defaultsDeep({}, nsOpts, { nodeID: null, middlewares: null, created: null, started: null }, broker.options);
|
|
19
|
-
brokers[ns] = new ServiceBroker(brokerOpts);
|
|
20
|
-
});
|
|
21
|
-
},
|
|
22
|
-
started() {
|
|
23
|
-
return Promise.all(Object.values(brokers).map((b) => b.start()));
|
|
24
|
-
},
|
|
25
|
-
stopped() {
|
|
26
|
-
return Promise.all(Object.values(brokers).map((b) => b.stop()));
|
|
27
|
-
},
|
|
28
|
-
call(next) {
|
|
29
|
-
return function (actionName, params, opts = {}) {
|
|
30
|
-
if (_.isString(actionName) && actionName.includes('@')) {
|
|
31
|
-
const [action, namespace] = actionName.split('@');
|
|
32
|
-
if (brokers[namespace]) {
|
|
33
|
-
return brokers[namespace].call(action, params, opts);
|
|
34
|
-
}
|
|
35
|
-
if (namespace === thisBroker.namespace) {
|
|
36
|
-
return next(action, params, opts);
|
|
37
|
-
}
|
|
38
|
-
throw new Error(`Unknown namespace: ${namespace}`);
|
|
39
|
-
}
|
|
40
|
-
return next(actionName, params, opts);
|
|
41
|
-
};
|
|
42
|
-
},
|
|
43
|
-
};
|
|
44
|
-
};export{InterNamespaceMiddleware};//# sourceMappingURL=moleculer-inter-namespace.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"moleculer-inter-namespace.mjs","sources":["../../src/middleware/moleculer-inter-namespace.ts"],"sourcesContent":[null],"names":[],"mappings":"kEAAA;AAIO,MAAM,wBAAwB,GAAG,UAAU,OAAO,EAAA;IACrD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AACzB,QAAA,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;KACvC;AAED,IAAA,IAAI,UAAyB,CAAC;IAC9B,MAAM,OAAO,GAAqC,EAAE,CAAC;IAErD,OAAO;AACH,QAAA,OAAO,CAAC,MAAqB,EAAA;YACzB,UAAU,GAAG,MAAM,CAAC;AACpB,YAAA,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;AACvB,gBAAA,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AACpB,oBAAA,MAAM,GAAG;AACL,wBAAA,SAAS,EAAE,MAAM;qBACpB,CAAC;iBACL;AACD,gBAAA,MAAM,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC;AAE5B,gBAAA,MAAM,UAAU,GAAG,CAAC,CAAC,YAAY,CAC7B,EAAE,EACF,MAAM,EACN,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EACjE,MAAM,CAAC,OAAO,CACjB,CAAC;gBACF,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,aAAa,CAAC,UAAU,CAAC,CAAC;AAChD,aAAC,CAAC,CAAC;SACN;QAED,OAAO,GAAA;YACH,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SACpE;QAED,OAAO,GAAA;YACH,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;SACnE;AAED,QAAA,IAAI,CAAC,IAAI,EAAA;AACL,YAAA,OAAO,UAAU,UAAU,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAA;AAC1C,gBAAA,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACpD,oBAAA,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAElD,oBAAA,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE;AACpB,wBAAA,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;qBACxD;AACD,oBAAA,IAAI,SAAS,KAAK,UAAU,CAAC,SAAS,EAAE;wBACpC,OAAO,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;qBACrC;AACD,oBAAA,MAAM,IAAI,KAAK,CAAC,sBAAsB,SAAS,CAAA,CAAE,CAAC,CAAC;iBACtD;gBAED,OAAO,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC1C,aAAC,CAAC;SACL;KACJ,CAAC;AACN"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
'use strict';var node=require('@sentry/node');node.init({ dsn: process.env.SENTRY_DSN_BACKEND });
|
|
2
|
-
const sentryMiddleware = node.Handlers.requestHandler();
|
|
3
|
-
const sentryErrorHandlerMiddleware = node.Handlers.errorHandler();exports.sentryErrorHandlerMiddleware=sentryErrorHandlerMiddleware;exports.sentryMiddleware=sentryMiddleware;//# sourceMappingURL=sentry.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sentry.cjs","sources":["../../src/middleware/sentry.ts"],"sourcesContent":[null],"names":["init","Handlers"],"mappings":"8CAEAA,SAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC;MAGjC,gBAAgB,GAAGC,aAAQ,CAAC,cAAc,GAAG;MAE7C,4BAA4B,GAAGA,aAAQ,CAAC,YAAY"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import {init,Handlers}from'@sentry/node';init({ dsn: process.env.SENTRY_DSN_BACKEND });
|
|
2
|
-
const sentryMiddleware = Handlers.requestHandler();
|
|
3
|
-
const sentryErrorHandlerMiddleware = Handlers.errorHandler();export{sentryErrorHandlerMiddleware,sentryMiddleware};//# sourceMappingURL=sentry.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sentry.mjs","sources":["../../src/middleware/sentry.ts"],"sourcesContent":[null],"names":[],"mappings":"yCAEA,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC;MAGjC,gBAAgB,GAAG,QAAQ,CAAC,cAAc,GAAG;MAE7C,4BAA4B,GAAG,QAAQ,CAAC,YAAY"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
'use strict';require('isomorphic-fetch');const contextServicesMiddleware = (createContext, serviceContext) => (req, res, next) => {
|
|
2
|
-
Promise.all([
|
|
3
|
-
createContext(req, res),
|
|
4
|
-
serviceContext(req, res),
|
|
5
|
-
])
|
|
6
|
-
.then(([context, services]) => {
|
|
7
|
-
req.context = context;
|
|
8
|
-
req.services = services;
|
|
9
|
-
next();
|
|
10
|
-
})
|
|
11
|
-
.catch((err) => next());
|
|
12
|
-
};exports.contextServicesMiddleware=contextServicesMiddleware;//# sourceMappingURL=services.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"services.cjs","sources":["../../src/middleware/services.ts"],"sourcesContent":[null],"names":[],"mappings":"yCAEa,MAAA,yBAAyB,GAAG,CAAC,aAAa,EAAE,cAAc,KAAM,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,KAAI;IAC5F,OAAO,CAAC,GAAG,CAAC;AACR,QAAA,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC;AACvB,QAAA,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC;KAC3B,CAAC;SACG,IAAI,CAAC,CAAC,CAAE,OAAO,EAAE,QAAQ,CAAE,KAAI;AAC5B,QAAA,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;AACtB,QAAA,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAExB,QAAA,IAAI,EAAE,CAAC;AACX,KAAC,CAAC;SACD,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC;AAChC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import'isomorphic-fetch';const contextServicesMiddleware = (createContext, serviceContext) => (req, res, next) => {
|
|
2
|
-
Promise.all([
|
|
3
|
-
createContext(req, res),
|
|
4
|
-
serviceContext(req, res),
|
|
5
|
-
])
|
|
6
|
-
.then(([context, services]) => {
|
|
7
|
-
req.context = context;
|
|
8
|
-
req.services = services;
|
|
9
|
-
next();
|
|
10
|
-
})
|
|
11
|
-
.catch((err) => next());
|
|
12
|
-
};export{contextServicesMiddleware};//# sourceMappingURL=services.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"services.mjs","sources":["../../src/middleware/services.ts"],"sourcesContent":[null],"names":[],"mappings":"yBAEa,MAAA,yBAAyB,GAAG,CAAC,aAAa,EAAE,cAAc,KAAM,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,KAAI;IAC5F,OAAO,CAAC,GAAG,CAAC;AACR,QAAA,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC;AACvB,QAAA,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC;KAC3B,CAAC;SACG,IAAI,CAAC,CAAC,CAAE,OAAO,EAAE,QAAQ,CAAE,KAAI;AAC5B,QAAA,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;AACtB,QAAA,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAExB,QAAA,IAAI,EAAE,CAAC;AACX,KAAC,CAAC;SACD,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC;AAChC"}
|
package/lib/plugins/index.d.ts
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
'use strict';var serverCore=require('@common-stack/server-core'),envConfig=require('../config/env-config.cjs');const invalidateCachePlugin = ({ cache: redisClient, invalidateCacheKeyGenerator, }) => ({
|
|
2
|
-
requestDidStart(requestContext) {
|
|
3
|
-
return {
|
|
4
|
-
willSendResponse: async (responseContext) => {
|
|
5
|
-
// in case of websocket request initially the requestContext comes empty
|
|
6
|
-
if (!requestContext) {
|
|
7
|
-
return;
|
|
8
|
-
}
|
|
9
|
-
try {
|
|
10
|
-
const hasErrors = !!requestContext.errors?.length;
|
|
11
|
-
const { queriesToInvalidate, user, req } = requestContext.contextValue;
|
|
12
|
-
const tenantId = serverCore.extractTenantId(req?.currentPageUriSegments?.authority);
|
|
13
|
-
const [{ operation }] = responseContext.document.definitions;
|
|
14
|
-
const isMutation = operation === 'mutation';
|
|
15
|
-
if (hasErrors || !queriesToInvalidate?.length || !isMutation) {
|
|
16
|
-
return;
|
|
17
|
-
}
|
|
18
|
-
const nestedKeys = await Promise.all(queriesToInvalidate.map(async (query) => {
|
|
19
|
-
// Build keys in order of specificity
|
|
20
|
-
const keys = [];
|
|
21
|
-
// Add user-specific key if user exists
|
|
22
|
-
if (user?.sub && tenantId) {
|
|
23
|
-
keys.push(`${envConfig.config.APP_NAME}:${tenantId}:${user.sub}:${query}:*`);
|
|
24
|
-
}
|
|
25
|
-
// Add tenant-specific key if tenant exists
|
|
26
|
-
if (tenantId) {
|
|
27
|
-
keys.push(`${envConfig.config.APP_NAME}:${tenantId}:${query}:*`);
|
|
28
|
-
}
|
|
29
|
-
// Add global key as fallback
|
|
30
|
-
keys.push(`${envConfig.config.APP_NAME}:${query}:*`);
|
|
31
|
-
// Allow custom key generation if provided
|
|
32
|
-
if (typeof invalidateCacheKeyGenerator === 'function') {
|
|
33
|
-
const generatedKey = invalidateCacheKeyGenerator(requestContext, responseContext, keys[0]);
|
|
34
|
-
if (generatedKey) {
|
|
35
|
-
keys.unshift(generatedKey);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
// Try keys in order until we find matches
|
|
39
|
-
for (const key of keys) {
|
|
40
|
-
const matchingKeys = await redisClient.keys(key);
|
|
41
|
-
if (matchingKeys.length) {
|
|
42
|
-
return matchingKeys;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
return [];
|
|
46
|
-
}));
|
|
47
|
-
const keys = nestedKeys.flat();
|
|
48
|
-
if (keys?.length) {
|
|
49
|
-
await redisClient.del(keys);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
catch (e) {
|
|
53
|
-
requestContext.logger.error('Error occurred in invalidateCachePlugin');
|
|
54
|
-
requestContext.logger.error(e);
|
|
55
|
-
}
|
|
56
|
-
},
|
|
57
|
-
};
|
|
58
|
-
},
|
|
59
|
-
});exports.invalidateCachePlugin=invalidateCachePlugin;//# sourceMappingURL=invalidateCachePlugin.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"invalidateCachePlugin.cjs","sources":["../../src/plugins/invalidateCachePlugin.ts"],"sourcesContent":[null],"names":["extractTenantId","config"],"mappings":"+GAaO,MAAM,qBAAqB,GAAG,CAAC,EAClC,KAAK,EAAE,WAAW,EAClB,2BAA2B,GAI9B,MACI;AACG,IAAA,eAAe,CAAC,cAA4D,EAAA;QACxE,OAAO;AACH,YAAA,gBAAgB,EAAE,OAAO,eAA+D,KAAI;;gBAExF,IAAI,CAAC,cAAc,EAAE;oBACjB,OAAO;iBACV;AACD,gBAAA,IAAI;oBACA,MAAM,SAAS,GAAG,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;oBAClD,MAAM,EAAE,mBAAmB,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,cAAc,CAAC,YAAY,CAAC;oBACvE,MAAM,QAAQ,GAAGA,0BAAe,CAAC,GAAG,EAAE,sBAAsB,EAAE,SAAS,CAAC,CAAC;oBACzE,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,eAAe,CAAC,QAAQ,CAAC,WAAwC,CAAC;AAC1F,oBAAA,MAAM,UAAU,GAAG,SAAS,KAAK,UAAU,CAAC;oBAC5C,IAAI,SAAS,IAAI,CAAC,mBAAmB,EAAE,MAAM,IAAI,CAAC,UAAU,EAAE;wBAC1D,OAAO;qBACV;AAED,oBAAA,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,mBAAmB,CAAC,GAAG,CAAC,OAAO,KAAa,KAAI;;wBAE5C,MAAM,IAAI,GAAG,EAAE,CAAC;;AAGhB,wBAAA,IAAI,IAAI,EAAE,GAAG,IAAI,QAAQ,EAAE;AACvB,4BAAA,IAAI,CAAC,IAAI,CAAC,CAAG,EAAAC,gBAAM,CAAC,QAAQ,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAA,EAAI,IAAI,CAAC,GAAG,IAAI,KAAK,CAAA,EAAA,CAAI,CAAC,CAAC;yBACtE;;wBAGD,IAAI,QAAQ,EAAE;AACV,4BAAA,IAAI,CAAC,IAAI,CAAC,CAAA,EAAGA,gBAAM,CAAC,QAAQ,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAA,EAAI,KAAK,CAAA,EAAA,CAAI,CAAC,CAAC;yBAC1D;;wBAGD,IAAI,CAAC,IAAI,CAAC,CAAG,EAAAA,gBAAM,CAAC,QAAQ,CAAI,CAAA,EAAA,KAAK,CAAI,EAAA,CAAA,CAAC,CAAC;;AAG3C,wBAAA,IAAI,OAAO,2BAA2B,KAAK,UAAU,EAAE;AACnD,4BAAA,MAAM,YAAY,GAAG,2BAA2B,CAC5C,cAAc,EACd,eAAe,EACf,IAAI,CAAC,CAAC,CAAC,CACV,CAAC;4BACF,IAAI,YAAY,EAAE;AACd,gCAAA,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;6BAC9B;yBACJ;;AAGD,wBAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;4BACpB,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjD,4BAAA,IAAI,YAAY,CAAC,MAAM,EAAE;AACrB,gCAAA,OAAO,YAAY,CAAC;6BACvB;yBACJ;AACD,wBAAA,OAAO,EAAE,CAAC;qBACb,CAAC,CACL,CAAC;AACF,oBAAA,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;AAC/B,oBAAA,IAAI,IAAI,EAAE,MAAM,EAAE;AACd,wBAAA,MAAM,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;qBAC/B;iBACJ;gBAAC,OAAO,CAAC,EAAE;AACR,oBAAA,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;AACvE,oBAAA,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBAClC;aACJ;SACJ,CAAC;KACL;AACJ,CAAA"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { Redis, Cluster } from 'ioredis';
|
|
2
|
-
import type { BaseContext, GraphQLRequestContextWillSendResponse } from '@apollo/server';
|
|
3
|
-
import { ApolloServerOptions, GraphQLRequestContext } from '@apollo/server';
|
|
4
|
-
export type InvalidationKeyGenerator = (requestContext: GraphQLRequestContext<unknown>, responseContext: GraphQLRequestContextWillSendResponse<unknown>, cacheKey?: string) => string;
|
|
5
|
-
export declare const invalidateCachePlugin: ({ cache: redisClient, invalidateCacheKeyGenerator, }: {
|
|
6
|
-
cache: Redis | Cluster;
|
|
7
|
-
invalidateCacheKeyGenerator: InvalidationKeyGenerator;
|
|
8
|
-
}) => ApolloServerOptions<BaseContext>["plugins"][0];
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import {extractTenantId}from'@common-stack/server-core';import {config}from'../config/env-config.mjs';const invalidateCachePlugin = ({ cache: redisClient, invalidateCacheKeyGenerator, }) => ({
|
|
2
|
-
requestDidStart(requestContext) {
|
|
3
|
-
return {
|
|
4
|
-
willSendResponse: async (responseContext) => {
|
|
5
|
-
// in case of websocket request initially the requestContext comes empty
|
|
6
|
-
if (!requestContext) {
|
|
7
|
-
return;
|
|
8
|
-
}
|
|
9
|
-
try {
|
|
10
|
-
const hasErrors = !!requestContext.errors?.length;
|
|
11
|
-
const { queriesToInvalidate, user, req } = requestContext.contextValue;
|
|
12
|
-
const tenantId = extractTenantId(req?.currentPageUriSegments?.authority);
|
|
13
|
-
const [{ operation }] = responseContext.document.definitions;
|
|
14
|
-
const isMutation = operation === 'mutation';
|
|
15
|
-
if (hasErrors || !queriesToInvalidate?.length || !isMutation) {
|
|
16
|
-
return;
|
|
17
|
-
}
|
|
18
|
-
const nestedKeys = await Promise.all(queriesToInvalidate.map(async (query) => {
|
|
19
|
-
// Build keys in order of specificity
|
|
20
|
-
const keys = [];
|
|
21
|
-
// Add user-specific key if user exists
|
|
22
|
-
if (user?.sub && tenantId) {
|
|
23
|
-
keys.push(`${config.APP_NAME}:${tenantId}:${user.sub}:${query}:*`);
|
|
24
|
-
}
|
|
25
|
-
// Add tenant-specific key if tenant exists
|
|
26
|
-
if (tenantId) {
|
|
27
|
-
keys.push(`${config.APP_NAME}:${tenantId}:${query}:*`);
|
|
28
|
-
}
|
|
29
|
-
// Add global key as fallback
|
|
30
|
-
keys.push(`${config.APP_NAME}:${query}:*`);
|
|
31
|
-
// Allow custom key generation if provided
|
|
32
|
-
if (typeof invalidateCacheKeyGenerator === 'function') {
|
|
33
|
-
const generatedKey = invalidateCacheKeyGenerator(requestContext, responseContext, keys[0]);
|
|
34
|
-
if (generatedKey) {
|
|
35
|
-
keys.unshift(generatedKey);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
// Try keys in order until we find matches
|
|
39
|
-
for (const key of keys) {
|
|
40
|
-
const matchingKeys = await redisClient.keys(key);
|
|
41
|
-
if (matchingKeys.length) {
|
|
42
|
-
return matchingKeys;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
return [];
|
|
46
|
-
}));
|
|
47
|
-
const keys = nestedKeys.flat();
|
|
48
|
-
if (keys?.length) {
|
|
49
|
-
await redisClient.del(keys);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
catch (e) {
|
|
53
|
-
requestContext.logger.error('Error occurred in invalidateCachePlugin');
|
|
54
|
-
requestContext.logger.error(e);
|
|
55
|
-
}
|
|
56
|
-
},
|
|
57
|
-
};
|
|
58
|
-
},
|
|
59
|
-
});export{invalidateCachePlugin};//# sourceMappingURL=invalidateCachePlugin.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"invalidateCachePlugin.mjs","sources":["../../src/plugins/invalidateCachePlugin.ts"],"sourcesContent":[null],"names":[],"mappings":"sGAaO,MAAM,qBAAqB,GAAG,CAAC,EAClC,KAAK,EAAE,WAAW,EAClB,2BAA2B,GAI9B,MACI;AACG,IAAA,eAAe,CAAC,cAA4D,EAAA;QACxE,OAAO;AACH,YAAA,gBAAgB,EAAE,OAAO,eAA+D,KAAI;;gBAExF,IAAI,CAAC,cAAc,EAAE;oBACjB,OAAO;iBACV;AACD,gBAAA,IAAI;oBACA,MAAM,SAAS,GAAG,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;oBAClD,MAAM,EAAE,mBAAmB,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,cAAc,CAAC,YAAY,CAAC;oBACvE,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,EAAE,sBAAsB,EAAE,SAAS,CAAC,CAAC;oBACzE,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,eAAe,CAAC,QAAQ,CAAC,WAAwC,CAAC;AAC1F,oBAAA,MAAM,UAAU,GAAG,SAAS,KAAK,UAAU,CAAC;oBAC5C,IAAI,SAAS,IAAI,CAAC,mBAAmB,EAAE,MAAM,IAAI,CAAC,UAAU,EAAE;wBAC1D,OAAO;qBACV;AAED,oBAAA,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,mBAAmB,CAAC,GAAG,CAAC,OAAO,KAAa,KAAI;;wBAE5C,MAAM,IAAI,GAAG,EAAE,CAAC;;AAGhB,wBAAA,IAAI,IAAI,EAAE,GAAG,IAAI,QAAQ,EAAE;AACvB,4BAAA,IAAI,CAAC,IAAI,CAAC,CAAG,EAAA,MAAM,CAAC,QAAQ,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAA,EAAI,IAAI,CAAC,GAAG,IAAI,KAAK,CAAA,EAAA,CAAI,CAAC,CAAC;yBACtE;;wBAGD,IAAI,QAAQ,EAAE;AACV,4BAAA,IAAI,CAAC,IAAI,CAAC,CAAA,EAAG,MAAM,CAAC,QAAQ,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAA,EAAI,KAAK,CAAA,EAAA,CAAI,CAAC,CAAC;yBAC1D;;wBAGD,IAAI,CAAC,IAAI,CAAC,CAAG,EAAA,MAAM,CAAC,QAAQ,CAAI,CAAA,EAAA,KAAK,CAAI,EAAA,CAAA,CAAC,CAAC;;AAG3C,wBAAA,IAAI,OAAO,2BAA2B,KAAK,UAAU,EAAE;AACnD,4BAAA,MAAM,YAAY,GAAG,2BAA2B,CAC5C,cAAc,EACd,eAAe,EACf,IAAI,CAAC,CAAC,CAAC,CACV,CAAC;4BACF,IAAI,YAAY,EAAE;AACd,gCAAA,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;6BAC9B;yBACJ;;AAGD,wBAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;4BACpB,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjD,4BAAA,IAAI,YAAY,CAAC,MAAM,EAAE;AACrB,gCAAA,OAAO,YAAY,CAAC;6BACvB;yBACJ;AACD,wBAAA,OAAO,EAAE,CAAC;qBACb,CAAC,CACL,CAAC;AACF,oBAAA,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;AAC/B,oBAAA,IAAI,IAAI,EAAE,MAAM,EAAE;AACd,wBAAA,MAAM,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;qBAC/B;iBACJ;gBAAC,OAAO,CAAC,EAAE;AACR,oBAAA,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;AACvE,oBAAA,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBAClC;aACJ;SACJ,CAAC;KACL;AACJ,CAAA"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
'use strict';var serverCore=require('@common-stack/server-core'),_=require('lodash-es'),apolloCachePlugin=require('@apollo/server-plugin-response-cache');const cachePlugin = apolloCachePlugin.default ?? apolloCachePlugin;
|
|
2
|
-
const isCacheable = (requestContext) => {
|
|
3
|
-
const { document, schema } = requestContext;
|
|
4
|
-
const cache = serverCore.getDirectiveArgsFromSchema({
|
|
5
|
-
schema,
|
|
6
|
-
document,
|
|
7
|
-
directiveName: serverCore.CACHE_CONTROL_DIRECTIVE,
|
|
8
|
-
});
|
|
9
|
-
if (!cache)
|
|
10
|
-
return false;
|
|
11
|
-
if (cache.scope && !cache.maxAge) {
|
|
12
|
-
cache.maxAge = 86400;
|
|
13
|
-
}
|
|
14
|
-
// eslint-disable-next-line no-param-reassign
|
|
15
|
-
requestContext.overallCachePolicy.maxAge = cache.maxAge;
|
|
16
|
-
return cache.maxAge > 0;
|
|
17
|
-
};
|
|
18
|
-
const responseCachePlugin = ({ logger, cacheKeyGenerator }) => cachePlugin({
|
|
19
|
-
sessionId: ({ contextValue }) => Promise.resolve(contextValue?.user?.sub ?? null),
|
|
20
|
-
generateCacheKey(requestContext) {
|
|
21
|
-
if (!isCacheable(requestContext)) {
|
|
22
|
-
return null;
|
|
23
|
-
}
|
|
24
|
-
const { request, contextValue, document, schema } = requestContext;
|
|
25
|
-
const { user, req } = contextValue;
|
|
26
|
-
const { query, variables } = request;
|
|
27
|
-
const cacheControlDirective = serverCore.getDirectiveArgsFromSchema({
|
|
28
|
-
schema,
|
|
29
|
-
document,
|
|
30
|
-
directiveName: serverCore.CACHE_CONTROL_DIRECTIVE,
|
|
31
|
-
});
|
|
32
|
-
const { scope } = cacheControlDirective ?? {};
|
|
33
|
-
const isPrivate = scope?.toLowerCase() === 'private';
|
|
34
|
-
const tenantId = serverCore.extractTenantId(req?.currentPageUriSegments?.authority);
|
|
35
|
-
const cacheKey = serverCore.generateQueryCacheKey({
|
|
36
|
-
query,
|
|
37
|
-
variables,
|
|
38
|
-
logger,
|
|
39
|
-
userId: isPrivate ? user?.sub || null : null,
|
|
40
|
-
tenantId,
|
|
41
|
-
});
|
|
42
|
-
try {
|
|
43
|
-
if (typeof cacheKeyGenerator === 'function') {
|
|
44
|
-
const generatedKey = cacheKeyGenerator(requestContext, cacheKey);
|
|
45
|
-
return generatedKey || cacheKey;
|
|
46
|
-
}
|
|
47
|
-
return cacheKey;
|
|
48
|
-
}
|
|
49
|
-
catch (e) {
|
|
50
|
-
// `this.logger` won't work here
|
|
51
|
-
console.warn('GenerateCacheKey Failed %s', e.message);
|
|
52
|
-
return cacheKey;
|
|
53
|
-
}
|
|
54
|
-
},
|
|
55
|
-
shouldWriteToCache: (ctx) =>
|
|
56
|
-
// Cache only successful responses
|
|
57
|
-
isCacheable(ctx) && _.isEmpty(ctx?.response?.body?.singleResult.errors),
|
|
58
|
-
});exports.responseCachePlugin=responseCachePlugin;//# sourceMappingURL=responseCachePlugin.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"responseCachePlugin.cjs","sources":["../../src/plugins/responseCachePlugin.ts"],"sourcesContent":[null],"names":["getDirectiveArgsFromSchema","CACHE_CONTROL_DIRECTIVE","extractTenantId","generateQueryCacheKey","isEmpty"],"mappings":"0JAaA,MAAM,WAAW,GAAI,iBAAyB,CAAC,OAAO,IAAI,iBAAiB,CAAC;AAO5E,MAAM,WAAW,GAAG,CAAC,cAA4D,KAAI;AACjF,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;;IAED,cAAc,CAAC,kBAAkB,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AACxD,IAAA,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5B,CAAC,CAAC;AAEK,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;AACjF,IAAA,gBAAgB,CAAC,cAA4D,EAAA;AACzE,QAAA,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE;AAC9B,YAAA,OAAO,IAAI,CAAC;SACf;QACD,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC;AACnE,QAAA,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC;AACnC,QAAA,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;QACrC,MAAM,qBAAqB,GAAGD,qCAA0B,CAAC;YACrD,MAAM;YACN,QAAQ;AACR,YAAA,aAAa,EAAEC,kCAAuB;AACzC,SAAA,CAAC,CAAC;AACH,QAAA,MAAM,EAAE,KAAK,EAAE,GAAG,qBAAqB,IAAI,EAAE,CAAC;QAC9C,MAAM,SAAS,GAAG,KAAK,EAAE,WAAW,EAAE,KAAK,SAAS,CAAC;QACrD,MAAM,QAAQ,GAAGC,0BAAe,CAAC,GAAG,EAAE,sBAAsB,EAAE,SAAS,CAAC,CAAC;QACzE,MAAM,QAAQ,GAAGC,gCAAqB,CAAC;YACnC,KAAK;YACL,SAAS;YACT,MAAM;AACN,YAAA,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,GAAG,IAAI,IAAI,GAAG,IAAI;YAC5C,QAAQ;AACX,SAAA,CAAC,CAAC;AACH,QAAA,IAAI;AACA,YAAA,IAAI,OAAO,iBAAiB,KAAK,UAAU,EAAE;gBACzC,MAAM,YAAY,GAAG,iBAAiB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;gBACjE,OAAO,YAAY,IAAI,QAAQ,CAAC;aACnC;AACD,YAAA,OAAO,QAAQ,CAAC;SACnB;QAAC,OAAO,CAAC,EAAE;;YAER,OAAO,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;AACtD,YAAA,OAAO,QAAQ,CAAC;SACnB;KACJ;AACD,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,8 +0,0 @@
|
|
|
1
|
-
import { ILogger } from '@cdm-logger/core/lib/interface';
|
|
2
|
-
import { KeyGenerator } from '../servers/GraphqlServer';
|
|
3
|
-
type ApolloCachePluginOptions = {
|
|
4
|
-
logger: ILogger;
|
|
5
|
-
cacheKeyGenerator: KeyGenerator;
|
|
6
|
-
};
|
|
7
|
-
export declare const responseCachePlugin: ({ logger, cacheKeyGenerator }: ApolloCachePluginOptions) => any;
|
|
8
|
-
export {};
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import {getDirectiveArgsFromSchema,CACHE_CONTROL_DIRECTIVE,extractTenantId,generateQueryCacheKey}from'@common-stack/server-core';import {isEmpty}from'lodash-es';import apolloCachePlugin from'@apollo/server-plugin-response-cache';const cachePlugin = apolloCachePlugin.default ?? apolloCachePlugin;
|
|
2
|
-
const isCacheable = (requestContext) => {
|
|
3
|
-
const { document, schema } = requestContext;
|
|
4
|
-
const cache = getDirectiveArgsFromSchema({
|
|
5
|
-
schema,
|
|
6
|
-
document,
|
|
7
|
-
directiveName: CACHE_CONTROL_DIRECTIVE,
|
|
8
|
-
});
|
|
9
|
-
if (!cache)
|
|
10
|
-
return false;
|
|
11
|
-
if (cache.scope && !cache.maxAge) {
|
|
12
|
-
cache.maxAge = 86400;
|
|
13
|
-
}
|
|
14
|
-
// eslint-disable-next-line no-param-reassign
|
|
15
|
-
requestContext.overallCachePolicy.maxAge = cache.maxAge;
|
|
16
|
-
return cache.maxAge > 0;
|
|
17
|
-
};
|
|
18
|
-
const responseCachePlugin = ({ logger, cacheKeyGenerator }) => cachePlugin({
|
|
19
|
-
sessionId: ({ contextValue }) => Promise.resolve(contextValue?.user?.sub ?? null),
|
|
20
|
-
generateCacheKey(requestContext) {
|
|
21
|
-
if (!isCacheable(requestContext)) {
|
|
22
|
-
return null;
|
|
23
|
-
}
|
|
24
|
-
const { request, contextValue, document, schema } = requestContext;
|
|
25
|
-
const { user, req } = contextValue;
|
|
26
|
-
const { query, variables } = request;
|
|
27
|
-
const cacheControlDirective = getDirectiveArgsFromSchema({
|
|
28
|
-
schema,
|
|
29
|
-
document,
|
|
30
|
-
directiveName: CACHE_CONTROL_DIRECTIVE,
|
|
31
|
-
});
|
|
32
|
-
const { scope } = cacheControlDirective ?? {};
|
|
33
|
-
const isPrivate = scope?.toLowerCase() === 'private';
|
|
34
|
-
const tenantId = extractTenantId(req?.currentPageUriSegments?.authority);
|
|
35
|
-
const cacheKey = generateQueryCacheKey({
|
|
36
|
-
query,
|
|
37
|
-
variables,
|
|
38
|
-
logger,
|
|
39
|
-
userId: isPrivate ? user?.sub || null : null,
|
|
40
|
-
tenantId,
|
|
41
|
-
});
|
|
42
|
-
try {
|
|
43
|
-
if (typeof cacheKeyGenerator === 'function') {
|
|
44
|
-
const generatedKey = cacheKeyGenerator(requestContext, cacheKey);
|
|
45
|
-
return generatedKey || cacheKey;
|
|
46
|
-
}
|
|
47
|
-
return cacheKey;
|
|
48
|
-
}
|
|
49
|
-
catch (e) {
|
|
50
|
-
// `this.logger` won't work here
|
|
51
|
-
console.warn('GenerateCacheKey Failed %s', e.message);
|
|
52
|
-
return cacheKey;
|
|
53
|
-
}
|
|
54
|
-
},
|
|
55
|
-
shouldWriteToCache: (ctx) =>
|
|
56
|
-
// Cache only successful responses
|
|
57
|
-
isCacheable(ctx) && isEmpty(ctx?.response?.body?.singleResult.errors),
|
|
58
|
-
});export{responseCachePlugin};//# sourceMappingURL=responseCachePlugin.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"responseCachePlugin.mjs","sources":["../../src/plugins/responseCachePlugin.ts"],"sourcesContent":[null],"names":[],"mappings":"qOAaA,MAAM,WAAW,GAAI,iBAAyB,CAAC,OAAO,IAAI,iBAAiB,CAAC;AAO5E,MAAM,WAAW,GAAG,CAAC,cAA4D,KAAI;AACjF,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;;IAED,cAAc,CAAC,kBAAkB,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AACxD,IAAA,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5B,CAAC,CAAC;AAEK,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;AACjF,IAAA,gBAAgB,CAAC,cAA4D,EAAA;AACzE,QAAA,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE;AAC9B,YAAA,OAAO,IAAI,CAAC;SACf;QACD,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC;AACnE,QAAA,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC;AACnC,QAAA,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;QACrC,MAAM,qBAAqB,GAAG,0BAA0B,CAAC;YACrD,MAAM;YACN,QAAQ;AACR,YAAA,aAAa,EAAE,uBAAuB;AACzC,SAAA,CAAC,CAAC;AACH,QAAA,MAAM,EAAE,KAAK,EAAE,GAAG,qBAAqB,IAAI,EAAE,CAAC;QAC9C,MAAM,SAAS,GAAG,KAAK,EAAE,WAAW,EAAE,KAAK,SAAS,CAAC;QACrD,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,EAAE,sBAAsB,EAAE,SAAS,CAAC,CAAC;QACzE,MAAM,QAAQ,GAAG,qBAAqB,CAAC;YACnC,KAAK;YACL,SAAS;YACT,MAAM;AACN,YAAA,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,GAAG,IAAI,IAAI,GAAG,IAAI;YAC5C,QAAQ;AACX,SAAA,CAAC,CAAC;AACH,QAAA,IAAI;AACA,YAAA,IAAI,OAAO,iBAAiB,KAAK,UAAU,EAAE;gBACzC,MAAM,YAAY,GAAG,iBAAiB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;gBACjE,OAAO,YAAY,IAAI,QAAQ,CAAC;aACnC;AACD,YAAA,OAAO,QAAQ,CAAC;SACnB;QAAC,OAAO,CAAC,EAAE;;YAER,OAAO,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;AACtD,YAAA,OAAO,QAAQ,CAAC;SACnB;KACJ;AACD,IAAA,kBAAkB,EAAE,CAAC,GAAG;;AAEpB,IAAA,WAAW,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;AAC5E,CAAA"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
'use strict';var express=require('express'),bodyParser=require('body-parser'),error=require('../middleware/error.cjs'),services=require('../middleware/services.cjs'),sentry=require('../middleware/sentry.cjs'),cors=require('../middleware/cors.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 bodyParser__namespace=/*#__PURE__*/_interopNamespaceDefault(bodyParser);/* eslint-disable @typescript-eslint/no-var-requires */
|
|
2
|
-
function expressApp(modules, options, middlewares, http) {
|
|
3
|
-
const app = express();
|
|
4
|
-
for (const applyBeforeware of modules.beforewares) {
|
|
5
|
-
applyBeforeware(app);
|
|
6
|
-
}
|
|
7
|
-
app.use(services.contextServicesMiddleware(options.createContext, options.serviceContext));
|
|
8
|
-
// Don't rate limit heroku
|
|
9
|
-
app.enable('trust proxy');
|
|
10
|
-
app.use(sentry.sentryMiddleware);
|
|
11
|
-
if (middlewares !== null) {
|
|
12
|
-
app.use(middlewares);
|
|
13
|
-
}
|
|
14
|
-
app.use(cors.corsMiddleware);
|
|
15
|
-
app.use((req, res, next) => {
|
|
16
|
-
res.header('Access-Control-Allow-Credentials', JSON.stringify(true));
|
|
17
|
-
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
|
|
18
|
-
res.header('Access-Control-Allow-Headers', 'X-Requested-With, X-HTTP-Method-Override, X-CSP-Nonce, Content-Type, Accept');
|
|
19
|
-
next();
|
|
20
|
-
});
|
|
21
|
-
app.use(bodyParser__namespace.json({
|
|
22
|
-
limit: '50mb',
|
|
23
|
-
verify: (req, res, buf) => {
|
|
24
|
-
// #Todo: Find some proper solution for it
|
|
25
|
-
req.rawBody = buf;
|
|
26
|
-
},
|
|
27
|
-
}));
|
|
28
|
-
app.use(bodyParser__namespace.urlencoded({ limit: '50mb', extended: true, parameterLimit: 50000 }));
|
|
29
|
-
for (const applyMiddleware of modules.middlewares) {
|
|
30
|
-
applyMiddleware(app);
|
|
31
|
-
}
|
|
32
|
-
if (__DEV__) {
|
|
33
|
-
app.use(error.errorMiddleware);
|
|
34
|
-
}
|
|
35
|
-
app.use(sentry.sentryErrorHandlerMiddleware);
|
|
36
|
-
return app;
|
|
37
|
-
}exports.expressApp=expressApp;//# sourceMappingURL=ExpressApp.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExpressApp.cjs","sources":["../../src/servers/ExpressApp.ts"],"sourcesContent":[null],"names":["contextServicesMiddleware","sentryMiddleware","corsMiddleware","bodyParser","errorMiddleware","sentryErrorHandlerMiddleware"],"mappings":"kmBAAA;AAUM,SAAU,UAAU,CAAC,OAAgB,EAAE,OAAuB,EAAE,WAAW,EAAE,IAAK,EAAA;AACpF,IAAA,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;AAEtB,IAAA,KAAK,MAAM,eAAe,IAAI,OAAO,CAAC,WAAW,EAAE;QAC/C,eAAe,CAAC,GAAG,CAAC,CAAC;KACxB;AACD,IAAA,GAAG,CAAC,GAAG,CAACA,kCAAyB,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;;AAGlF,IAAA,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAE1B,IAAA,GAAG,CAAC,GAAG,CAACC,uBAAgB,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,CACHC,qBAAU,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,CAACA,qBAAU,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;IAED,IAAI,OAAO,EAAE;AACT,QAAA,GAAG,CAAC,GAAG,CAACC,qBAAe,CAAC,CAAC;KAC5B;AAED,IAAA,GAAG,CAAC,GAAG,CAACC,mCAA4B,CAAC,CAAC;AAEtC,IAAA,OAAO,GAAG,CAAC;AACf"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import express from'express';import*as bodyParser from'body-parser';import {errorMiddleware}from'../middleware/error.mjs';import {contextServicesMiddleware}from'../middleware/services.mjs';import {sentryMiddleware,sentryErrorHandlerMiddleware}from'../middleware/sentry.mjs';import {corsMiddleware}from'../middleware/cors.mjs';/* eslint-disable @typescript-eslint/no-var-requires */
|
|
2
|
-
function expressApp(modules, options, middlewares, http) {
|
|
3
|
-
const app = express();
|
|
4
|
-
for (const applyBeforeware of modules.beforewares) {
|
|
5
|
-
applyBeforeware(app);
|
|
6
|
-
}
|
|
7
|
-
app.use(contextServicesMiddleware(options.createContext, options.serviceContext));
|
|
8
|
-
// Don't rate limit heroku
|
|
9
|
-
app.enable('trust proxy');
|
|
10
|
-
app.use(sentryMiddleware);
|
|
11
|
-
if (middlewares !== null) {
|
|
12
|
-
app.use(middlewares);
|
|
13
|
-
}
|
|
14
|
-
app.use(corsMiddleware);
|
|
15
|
-
app.use((req, res, next) => {
|
|
16
|
-
res.header('Access-Control-Allow-Credentials', JSON.stringify(true));
|
|
17
|
-
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
|
|
18
|
-
res.header('Access-Control-Allow-Headers', 'X-Requested-With, X-HTTP-Method-Override, X-CSP-Nonce, Content-Type, Accept');
|
|
19
|
-
next();
|
|
20
|
-
});
|
|
21
|
-
app.use(bodyParser.json({
|
|
22
|
-
limit: '50mb',
|
|
23
|
-
verify: (req, res, buf) => {
|
|
24
|
-
// #Todo: Find some proper solution for it
|
|
25
|
-
req.rawBody = buf;
|
|
26
|
-
},
|
|
27
|
-
}));
|
|
28
|
-
app.use(bodyParser.urlencoded({ limit: '50mb', extended: true, parameterLimit: 50000 }));
|
|
29
|
-
for (const applyMiddleware of modules.middlewares) {
|
|
30
|
-
applyMiddleware(app);
|
|
31
|
-
}
|
|
32
|
-
if (__DEV__) {
|
|
33
|
-
app.use(errorMiddleware);
|
|
34
|
-
}
|
|
35
|
-
app.use(sentryErrorHandlerMiddleware);
|
|
36
|
-
return app;
|
|
37
|
-
}export{expressApp};//# sourceMappingURL=ExpressApp.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExpressApp.mjs","sources":["../../src/servers/ExpressApp.ts"],"sourcesContent":[null],"names":[],"mappings":"sUAAA;AAUM,SAAU,UAAU,CAAC,OAAgB,EAAE,OAAuB,EAAE,WAAW,EAAE,IAAK,EAAA;AACpF,IAAA,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;AAEtB,IAAA,KAAK,MAAM,eAAe,IAAI,OAAO,CAAC,WAAW,EAAE;QAC/C,eAAe,CAAC,GAAG,CAAC,CAAC;KACxB;AACD,IAAA,GAAG,CAAC,GAAG,CAAC,yBAAyB,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;;AAGlF,IAAA,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAE1B,IAAA,GAAG,CAAC,GAAG,CAAC,gBAAgB,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;IAED,IAAI,OAAO,EAAE;AACT,QAAA,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;KAC5B;AAED,IAAA,GAAG,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;AAEtC,IAAA,OAAO,GAAG,CAAC;AACf"}
|