@common-stack/server-stack 8.6.1-alpha.14 → 8.6.1-alpha.16
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 express=require('express'),bodyParser=require('body-parser'),error=require('../middleware/error.cjs'),services=require('../middleware/services.cjs')
|
|
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
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$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","redisClientMiddleware","contextServicesMiddleware","
|
|
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 express from'express';import bodyParser from'body-parser';import {errorMiddleware}from'../middleware/error.mjs';import {contextServicesMiddleware}from'../middleware/services.mjs';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
|
|
@@ -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":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@common-stack/server-stack",
|
|
3
|
-
"version": "8.6.1-alpha.
|
|
3
|
+
"version": "8.6.1-alpha.16",
|
|
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",
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
"publishConfig": {
|
|
98
98
|
"access": "public"
|
|
99
99
|
},
|
|
100
|
-
"gitHead": "
|
|
100
|
+
"gitHead": "f3c2c40c905506435acb541919d37768e9b87355",
|
|
101
101
|
"typescript": {
|
|
102
102
|
"definition": "lib/index.d.ts"
|
|
103
103
|
}
|