@platf/bridge 0.0.18 → 0.0.20
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/dist/lib/express.js +1 -0
- package/dist/lib/express.js.map +1 -1
- package/dist/lib/headers.d.ts +1 -1
- package/dist/lib/oauthProxy.js +9 -6
- package/dist/lib/oauthProxy.js.map +1 -1
- package/dist/lib/onSignals.d.ts +1 -1
- package/dist/lib/sessionAccessCounter.d.ts +1 -1
- package/package.json +1 -1
- package/src/lib/express.ts +1 -0
- package/src/lib/headers.ts +1 -1
- package/src/lib/oauthProxy.ts +12 -6
- package/src/lib/onSignals.ts +1 -1
- package/src/lib/sessionAccessCounter.ts +1 -1
package/dist/lib/express.js
CHANGED
|
@@ -29,6 +29,7 @@ export function createApp(options) {
|
|
|
29
29
|
const app = express();
|
|
30
30
|
app.set('trust proxy', true);
|
|
31
31
|
app.use(express.json());
|
|
32
|
+
app.use(express.urlencoded({ extended: true }));
|
|
32
33
|
// CORS
|
|
33
34
|
if (corsOrigin) {
|
|
34
35
|
app.use(cors({ origin: corsOrigin, exposedHeaders: ['Mcp-Session-Id'] }));
|
package/dist/lib/express.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"express.js","sourceRoot":"","sources":["../../src/lib/express.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,OAAwC,MAAM,SAAS,CAAA;AAC9D,OAAO,IAA0B,MAAM,MAAM,CAAA;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAY1D,kCAAkC;AAClC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAa,EAAE,OAA+B,EAAE,EAAE,CACnF,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;AAE9E;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,SAAS,CAAC,OAAyB;IACjD,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;IAE/E,MAAM,GAAG,GAAG,OAAO,EAAE,CAAA;IACrB,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAA;IAC5B,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"express.js","sourceRoot":"","sources":["../../src/lib/express.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,OAAwC,MAAM,SAAS,CAAA;AAC9D,OAAO,IAA0B,MAAM,MAAM,CAAA;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAY1D,kCAAkC;AAClC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAa,EAAE,OAA+B,EAAE,EAAE,CACnF,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;AAE9E;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,SAAS,CAAC,OAAyB;IACjD,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;IAE/E,MAAM,GAAG,GAAG,OAAO,EAAE,CAAA;IACrB,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAA;IAC5B,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;IACvB,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IAE/C,OAAO;IACP,IAAI,UAAU,EAAE,CAAC;QACf,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAA;QACzE,MAAM,CAAC,IAAI,CAAC,sBAAsB,mBAAmB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;IACvE,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;IACnC,CAAC;IAED,mBAAmB;IACnB,KAAK,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC;QACjC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YACxB,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;YAChC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAChB,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,yBAAyB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACpE,CAAC;IAED,+BAA+B;IAC/B,IAAI,IAAI,EAAE,CAAC;QACT,kDAAkD;QAClD,GAAG,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;QAC5C,mEAAmE;QACnE,GAAG,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;QAC7C,8BAA8B;QAC9B,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;QACpD,MAAM,CAAC,IAAI,CAAC,6BAA6B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;IAC1D,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;IACnC,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
package/dist/lib/headers.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { Logger } from '
|
|
1
|
+
import type { Logger } from '@/types.js';
|
|
2
2
|
export declare function parseHeaders(rawHeaders: (string | number)[], logger: Logger): Record<string, string>;
|
package/dist/lib/oauthProxy.js
CHANGED
|
@@ -20,7 +20,7 @@ export function createOAuthProxyRouter(auth, logger) {
|
|
|
20
20
|
* to the upstream auth server, preserving all query parameters.
|
|
21
21
|
*/
|
|
22
22
|
router.get('/authorize', (req, res) => {
|
|
23
|
-
const upstreamUrl = new URL(`${auth.issuer}/
|
|
23
|
+
const upstreamUrl = new URL(`${auth.issuer}/authorize`);
|
|
24
24
|
// Copy all query params to upstream
|
|
25
25
|
for (const [key, value] of Object.entries(req.query)) {
|
|
26
26
|
if (typeof value === 'string') {
|
|
@@ -37,18 +37,21 @@ export function createOAuthProxyRouter(auth, logger) {
|
|
|
37
37
|
*/
|
|
38
38
|
router.post('/token', async (req, res) => {
|
|
39
39
|
try {
|
|
40
|
-
const upstreamUrl = `${auth.issuer}/
|
|
41
|
-
logger.info(
|
|
40
|
+
const upstreamUrl = `${auth.issuer}/token`;
|
|
41
|
+
logger.info(`[oauth-proxy] Proxying /token to ${upstreamUrl}`);
|
|
42
|
+
const requestBody = req.get('Content-Type')?.includes('application/json')
|
|
43
|
+
? JSON.stringify(req.body)
|
|
44
|
+
: new URLSearchParams(req.body).toString();
|
|
45
|
+
logger.info(`[oauth-proxy] Request body: ${requestBody}`);
|
|
42
46
|
const upstreamRes = await fetch(upstreamUrl, {
|
|
43
47
|
method: 'POST',
|
|
44
48
|
headers: {
|
|
45
49
|
'Content-Type': req.get('Content-Type') || 'application/x-www-form-urlencoded',
|
|
46
50
|
},
|
|
47
|
-
body:
|
|
48
|
-
? JSON.stringify(req.body)
|
|
49
|
-
: new URLSearchParams(req.body).toString(),
|
|
51
|
+
body: requestBody,
|
|
50
52
|
});
|
|
51
53
|
const data = await upstreamRes.text();
|
|
54
|
+
logger.info(`[oauth-proxy] Upstream response: ${upstreamRes.status} ${data.substring(0, 200)}`);
|
|
52
55
|
res.status(upstreamRes.status);
|
|
53
56
|
res.set('Content-Type', upstreamRes.headers.get('Content-Type') || 'application/json');
|
|
54
57
|
res.send(data);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauthProxy.js","sourceRoot":"","sources":["../../src/lib/oauthProxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,MAAM,EAA+B,MAAM,SAAS,CAAA;AAG7D,MAAM,UAAU,sBAAsB,CAAC,IAAgB,EAAE,MAAc;IACrE,MAAM,MAAM,GAAG,MAAM,EAAE,CAAA;IAEvB;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;QACvD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"oauthProxy.js","sourceRoot":"","sources":["../../src/lib/oauthProxy.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/onSignals.d.ts
CHANGED
package/package.json
CHANGED
package/src/lib/express.ts
CHANGED
package/src/lib/headers.ts
CHANGED
package/src/lib/oauthProxy.ts
CHANGED
|
@@ -24,7 +24,7 @@ export function createOAuthProxyRouter(auth: AuthConfig, logger: Logger): Router
|
|
|
24
24
|
* to the upstream auth server, preserving all query parameters.
|
|
25
25
|
*/
|
|
26
26
|
router.get('/authorize', (req: Request, res: Response) => {
|
|
27
|
-
const upstreamUrl = new URL(`${auth.issuer}/
|
|
27
|
+
const upstreamUrl = new URL(`${auth.issuer}/authorize`)
|
|
28
28
|
// Copy all query params to upstream
|
|
29
29
|
for (const [key, value] of Object.entries(req.query)) {
|
|
30
30
|
if (typeof value === 'string') {
|
|
@@ -42,20 +42,26 @@ export function createOAuthProxyRouter(auth: AuthConfig, logger: Logger): Router
|
|
|
42
42
|
*/
|
|
43
43
|
router.post('/token', async (req: Request, res: Response) => {
|
|
44
44
|
try {
|
|
45
|
-
const upstreamUrl = `${auth.issuer}/
|
|
46
|
-
logger.info(
|
|
45
|
+
const upstreamUrl = `${auth.issuer}/token`
|
|
46
|
+
logger.info(`[oauth-proxy] Proxying /token to ${upstreamUrl}`)
|
|
47
|
+
|
|
48
|
+
const requestBody = req.get('Content-Type')?.includes('application/json')
|
|
49
|
+
? JSON.stringify(req.body)
|
|
50
|
+
: new URLSearchParams(req.body as Record<string, string>).toString()
|
|
51
|
+
|
|
52
|
+
logger.info(`[oauth-proxy] Request body: ${requestBody}`)
|
|
47
53
|
|
|
48
54
|
const upstreamRes = await fetch(upstreamUrl, {
|
|
49
55
|
method: 'POST',
|
|
50
56
|
headers: {
|
|
51
57
|
'Content-Type': req.get('Content-Type') || 'application/x-www-form-urlencoded',
|
|
52
58
|
},
|
|
53
|
-
body:
|
|
54
|
-
? JSON.stringify(req.body)
|
|
55
|
-
: new URLSearchParams(req.body as Record<string, string>).toString(),
|
|
59
|
+
body: requestBody,
|
|
56
60
|
})
|
|
57
61
|
|
|
58
62
|
const data = await upstreamRes.text()
|
|
63
|
+
logger.info(`[oauth-proxy] Upstream response: ${upstreamRes.status} ${data.substring(0, 200)}`)
|
|
64
|
+
|
|
59
65
|
res.status(upstreamRes.status)
|
|
60
66
|
res.set('Content-Type', upstreamRes.headers.get('Content-Type') || 'application/json')
|
|
61
67
|
res.send(data)
|
package/src/lib/onSignals.ts
CHANGED