@common-stack/server-stack 9.0.1-alpha.4 → 9.0.1-alpha.6
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/middleware/cors.cjs +2 -1
- package/lib/middleware/cors.cjs.map +1 -1
- package/lib/middleware/cors.mjs +2 -1
- package/lib/middleware/cors.mjs.map +1 -1
- package/lib/middleware/sentry.cjs +1 -3
- package/lib/middleware/sentry.cjs.map +1 -1
- package/lib/middleware/sentry.mjs +1 -3
- package/lib/middleware/sentry.mjs.map +1 -1
- package/lib/servers/ExpressApp.cjs +3 -3
- package/lib/servers/ExpressApp.cjs.map +1 -1
- package/lib/servers/ExpressApp.mjs +3 -3
- package/lib/servers/ExpressApp.mjs.map +1 -1
- package/package.json +4 -4
package/lib/middleware/cors.cjs
CHANGED
|
@@ -10,7 +10,8 @@ const corsWhitelist = [
|
|
|
10
10
|
server.logger.info('Cors whitelist: %j', corsWhitelist);
|
|
11
11
|
const corsOptions = {
|
|
12
12
|
origin: (origin, callback) => {
|
|
13
|
-
|
|
13
|
+
// Allow same-origin requests (origin is undefined for non-CORS requests)
|
|
14
|
+
if (!origin || corsWhitelist.indexOf(origin) !== -1) {
|
|
14
15
|
callback(null, true);
|
|
15
16
|
}
|
|
16
17
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cors.cjs","sources":["../../src/middleware/cors.ts"],"sourcesContent":[null],"names":["config","logger"],"mappings":"yHAAA;AAKA,MAAM,UAAU,GAAGA,gBAAM,CAAC,UAAU,CAAC;AACrC,MAAM,WAAW,GAAGA,gBAAM,CAAC,WAAW,CAAC;AAEvC,MAAM,aAAa,GAAG;IAClB,WAAW;IACX,UAAU;AACV,IAAAA,gBAAM,CAAC,WAAW;;CAErB,CAAC;AACFC,aAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,aAAa,CAAC,CAAC;AACjD,MAAM,WAAW,GAAG;AAChB,IAAA,MAAM,EAAE,CAAC,MAAM,EAAE,QAAQ,KAAI
|
|
1
|
+
{"version":3,"file":"cors.cjs","sources":["../../src/middleware/cors.ts"],"sourcesContent":[null],"names":["config","logger"],"mappings":"yHAAA;AAKA,MAAM,UAAU,GAAGA,gBAAM,CAAC,UAAU,CAAC;AACrC,MAAM,WAAW,GAAGA,gBAAM,CAAC,WAAW,CAAC;AAEvC,MAAM,aAAa,GAAG;IAClB,WAAW;IACX,UAAU;AACV,IAAAA,gBAAM,CAAC,WAAW;;CAErB,CAAC;AACFC,aAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,aAAa,CAAC,CAAC;AACjD,MAAM,WAAW,GAAG;AAChB,IAAA,MAAM,EAAE,CAAC,MAAM,EAAE,QAAQ,KAAI;;AAEzB,QAAA,IAAI,CAAC,MAAM,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;AACjD,YAAA,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACxB;aAAM;;AAEH,YAAAA,aAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,MAAM,CAAC,CAAC;;AAEzD,YAAAA,aAAM,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;AACzE,YAAA,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACxB;KACJ;AACD,IAAA,WAAW,EAAE,IAAI;CACpB,CAAC;MAEW,cAAc,GAAG,IAAI,CAAC,WAAW"}
|
package/lib/middleware/cors.mjs
CHANGED
|
@@ -10,7 +10,8 @@ const corsWhitelist = [
|
|
|
10
10
|
logger.info('Cors whitelist: %j', corsWhitelist);
|
|
11
11
|
const corsOptions = {
|
|
12
12
|
origin: (origin, callback) => {
|
|
13
|
-
|
|
13
|
+
// Allow same-origin requests (origin is undefined for non-CORS requests)
|
|
14
|
+
if (!origin || corsWhitelist.indexOf(origin) !== -1) {
|
|
14
15
|
callback(null, true);
|
|
15
16
|
}
|
|
16
17
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cors.mjs","sources":["../../src/middleware/cors.ts"],"sourcesContent":[null],"names":[],"mappings":"6GAAA;AAKA,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AACrC,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AAEvC,MAAM,aAAa,GAAG;IAClB,WAAW;IACX,UAAU;AACV,IAAA,MAAM,CAAC,WAAW;;CAErB,CAAC;AACF,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,aAAa,CAAC,CAAC;AACjD,MAAM,WAAW,GAAG;AAChB,IAAA,MAAM,EAAE,CAAC,MAAM,EAAE,QAAQ,KAAI
|
|
1
|
+
{"version":3,"file":"cors.mjs","sources":["../../src/middleware/cors.ts"],"sourcesContent":[null],"names":[],"mappings":"6GAAA;AAKA,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AACrC,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AAEvC,MAAM,aAAa,GAAG;IAClB,WAAW;IACX,UAAU;AACV,IAAA,MAAM,CAAC,WAAW;;CAErB,CAAC;AACF,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,aAAa,CAAC,CAAC;AACjD,MAAM,WAAW,GAAG;AAChB,IAAA,MAAM,EAAE,CAAC,MAAM,EAAE,QAAQ,KAAI;;AAEzB,QAAA,IAAI,CAAC,MAAM,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;AACjD,YAAA,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACxB;aAAM;;AAEH,YAAA,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,MAAM,CAAC,CAAC;;AAEzD,YAAA,MAAM,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;AACzE,YAAA,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACxB;KACJ;AACD,IAAA,WAAW,EAAE,IAAI;CACpB,CAAC;MAEW,cAAc,GAAG,IAAI,CAAC,WAAW"}
|
|
@@ -1,3 +1 @@
|
|
|
1
|
-
'use strict';var
|
|
2
|
-
const sentryMiddleware = node.Handlers.requestHandler();
|
|
3
|
-
const sentryErrorHandlerMiddleware = node.Handlers.errorHandler();exports.sentryErrorHandlerMiddleware=sentryErrorHandlerMiddleware;exports.sentryMiddleware=sentryMiddleware;//# sourceMappingURL=sentry.cjs.map
|
|
1
|
+
'use strict';var 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);Sentry__namespace.init({ dsn: process.env.SENTRY_DSN_BACKEND });exports.Sentry=Sentry__namespace;//# sourceMappingURL=sentry.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sentry.cjs","sources":["../../src/middleware/sentry.ts"],"sourcesContent":[null],"names":["
|
|
1
|
+
{"version":3,"file":"sentry.cjs","sources":["../../src/middleware/sentry.ts"],"sourcesContent":[null],"names":["Sentry"],"mappings":"kZAEAA,iBAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC"}
|
|
@@ -1,3 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
const sentryMiddleware = Handlers.requestHandler();
|
|
3
|
-
const sentryErrorHandlerMiddleware = Handlers.errorHandler();export{sentryErrorHandlerMiddleware,sentryMiddleware};//# sourceMappingURL=sentry.mjs.map
|
|
1
|
+
import*as Sentry from'@sentry/node';export{Sentry };Sentry.init({ dsn: process.env.SENTRY_DSN_BACKEND });//# sourceMappingURL=sentry.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sentry.mjs","sources":["../../src/middleware/sentry.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sentry.mjs","sources":["../../src/middleware/sentry.ts"],"sourcesContent":[null],"names":[],"mappings":"oDAEA,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';var expressAdapter=require('../express-adapter.cjs'),error=require('../middleware/error.cjs'),services=require('../middleware/services.cjs')
|
|
1
|
+
'use strict';var expressAdapter=require('../express-adapter.cjs'),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
3
|
const app = expressAdapter.express();
|
|
4
4
|
// FIRST PRIORITY: Add Redis client middleware at the very top
|
|
@@ -12,7 +12,6 @@ function expressApp(modules, options, middlewares, http, redisClient$1) {
|
|
|
12
12
|
}
|
|
13
13
|
// Don't rate limit heroku
|
|
14
14
|
app.enable('trust proxy');
|
|
15
|
-
app.use(sentry.sentryMiddleware);
|
|
16
15
|
if (middlewares !== null) {
|
|
17
16
|
app.use(middlewares);
|
|
18
17
|
}
|
|
@@ -34,9 +33,10 @@ function expressApp(modules, options, middlewares, http, redisClient$1) {
|
|
|
34
33
|
for (const applyMiddleware of modules.middlewares) {
|
|
35
34
|
applyMiddleware(app);
|
|
36
35
|
}
|
|
36
|
+
// Sentry error handler must be after all middleware/routes but before generic error handlers
|
|
37
|
+
Sentry__namespace.setupExpressErrorHandler(app);
|
|
37
38
|
if (__DEV__) {
|
|
38
39
|
app.use(error.errorMiddleware);
|
|
39
40
|
}
|
|
40
|
-
app.use(sentry.sentryErrorHandlerMiddleware);
|
|
41
41
|
return app;
|
|
42
42
|
}exports.expressApp=expressApp;//# sourceMappingURL=ExpressApp.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpressApp.cjs","sources":["../../src/servers/ExpressApp.ts"],"sourcesContent":[null],"names":["redisClient","express","redisClientMiddleware","contextServicesMiddleware","
|
|
1
|
+
{"version":3,"file":"ExpressApp.cjs","sources":["../../src/servers/ExpressApp.ts"],"sourcesContent":[null],"names":["redisClient","express","redisClientMiddleware","contextServicesMiddleware","corsMiddleware","jsonParser","urlencodedParser","Sentry","errorMiddleware"],"mappings":"gqBAAA;AAUM,SAAU,UAAU,CAAC,OAAgB,EAAE,OAAuB,EAAE,WAAW,EAAE,IAAK,EAAEA,aAAY,EAAA;AAClG,IAAA,MAAM,GAAG,GAAGC,sBAAO,EAAE,CAAC;;;IAItB,IAAID,aAAW,EAAE;QACb,GAAG,CAAC,GAAG,CAACE,iCAAqB,CAACF,aAAW,CAAC,CAAC,CAAC;KAC/C;AAED,IAAA,GAAG,CAAC,GAAG,CAACG,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,CACHC,yBAAU,CAAC;AACP,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,CAACC,+BAAgB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAEpF,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 {express,jsonParser,urlencodedParser}from'../express-adapter.mjs';import {errorMiddleware}from'../middleware/error.mjs';import {contextServicesMiddleware}from'../middleware/services.mjs';import
|
|
1
|
+
import {express,jsonParser,urlencodedParser}from'../express-adapter.mjs';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
|
|
@@ -12,7 +12,6 @@ function expressApp(modules, options, middlewares, http, redisClient) {
|
|
|
12
12
|
}
|
|
13
13
|
// Don't rate limit heroku
|
|
14
14
|
app.enable('trust proxy');
|
|
15
|
-
app.use(sentryMiddleware);
|
|
16
15
|
if (middlewares !== null) {
|
|
17
16
|
app.use(middlewares);
|
|
18
17
|
}
|
|
@@ -34,9 +33,10 @@ function expressApp(modules, options, middlewares, http, redisClient) {
|
|
|
34
33
|
for (const applyMiddleware of modules.middlewares) {
|
|
35
34
|
applyMiddleware(app);
|
|
36
35
|
}
|
|
36
|
+
// Sentry error handler must be after all middleware/routes but before generic error handlers
|
|
37
|
+
Sentry.setupExpressErrorHandler(app);
|
|
37
38
|
if (__DEV__) {
|
|
38
39
|
app.use(errorMiddleware);
|
|
39
40
|
}
|
|
40
|
-
app.use(sentryErrorHandlerMiddleware);
|
|
41
41
|
return app;
|
|
42
42
|
}export{expressApp};//# sourceMappingURL=ExpressApp.mjs.map
|
|
@@ -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":"8XAAA;AAUM,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;AACP,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,gBAAgB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAEpF,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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@common-stack/server-stack",
|
|
3
|
-
"version": "9.0.1-alpha.
|
|
3
|
+
"version": "9.0.1-alpha.6",
|
|
4
4
|
"description": "common core for higher packages to depend on",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"author": "CDMBase LLC",
|
|
@@ -42,8 +42,8 @@
|
|
|
42
42
|
"@graphql-tools/wrap": "~10.0.5",
|
|
43
43
|
"@keyv/redis": "2.8.4",
|
|
44
44
|
"@remix-run/node": "~2.16.0",
|
|
45
|
-
"@sentry/node": "
|
|
46
|
-
"@sentry/profiling-node": "^
|
|
45
|
+
"@sentry/node": "^10.46.0",
|
|
46
|
+
"@sentry/profiling-node": "^10.46.0",
|
|
47
47
|
"apollo-errors": "^1.9.0",
|
|
48
48
|
"body-parser": "^1.19.0",
|
|
49
49
|
"cors": "^2.8.5",
|
|
@@ -102,5 +102,5 @@
|
|
|
102
102
|
"typescript": {
|
|
103
103
|
"definition": "lib/index.d.ts"
|
|
104
104
|
},
|
|
105
|
-
"gitHead": "
|
|
105
|
+
"gitHead": "85b0d1cdafe5836b4e5e4c527958711ccfa7b79e"
|
|
106
106
|
}
|