@karbonjs/api 0.3.3 → 0.3.5
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/server/proxy.d.ts.map +1 -1
- package/dist/server/proxy.js +121 -102
- package/dist/server/proxy.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/server/proxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAqB,KAAK,cAAc,EAAoB,MAAM,mBAAmB,CAAA;AAE5F,MAAM,WAAW,WAAW;IAC1B,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAA;IACf,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,qEAAqE;IACrE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,+DAA+D;IAC/D,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,yFAAyF;IACzF,SAAS,CAAC,EAAE,cAAc,GAAG,KAAK,CAAA;CACnC;AAED,+EAA+E;AAC/E,UAAU,YAAY;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,GAAG,EAAE,GAAG,CAAA;IACR,gBAAgB,EAAE,MAAM,MAAM,CAAA;CAC/B;AAED,KAAK,OAAO,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AASzD;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW;;;;;;
|
|
1
|
+
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/server/proxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAqB,KAAK,cAAc,EAAoB,MAAM,mBAAmB,CAAA;AAE5F,MAAM,WAAW,WAAW;IAC1B,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAA;IACf,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,qEAAqE;IACrE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,+DAA+D;IAC/D,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,yFAAyF;IACzF,SAAS,CAAC,EAAE,cAAc,GAAG,KAAK,CAAA;CACnC;AAED,+EAA+E;AAC/E,UAAU,YAAY;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,GAAG,EAAE,GAAG,CAAA;IACR,gBAAgB,EAAE,MAAM,MAAM,CAAA;CAC/B;AAED,KAAK,OAAO,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AASzD;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW;;;;;;EAgL9C"}
|
package/dist/server/proxy.js
CHANGED
|
@@ -57,121 +57,140 @@ export function createProxy(config) {
|
|
|
57
57
|
limiter = createRateLimiter(rateLimitConfig ?? undefined);
|
|
58
58
|
}
|
|
59
59
|
const handler = async (event) => {
|
|
60
|
-
const { request, params, url } = event;
|
|
61
|
-
const rawPath = params.path ?? '';
|
|
62
|
-
// 1. Sanitize path
|
|
63
|
-
let decodedPath;
|
|
64
60
|
try {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
return new Response('Forbidden path', { status: 403 });
|
|
72
|
-
}
|
|
73
|
-
// 2. Block forbidden prefixes
|
|
74
|
-
const firstSegment = rawPath.split('/')[0];
|
|
75
|
-
if (blockedPrefixes.includes(firstSegment)) {
|
|
76
|
-
return jsonResponse(404, 'Not found');
|
|
77
|
-
}
|
|
78
|
-
const path = `${prefix}/${rawPath}${url.search}`;
|
|
79
|
-
// 3. Client IP
|
|
80
|
-
let clientIp = '127.0.0.1';
|
|
81
|
-
try {
|
|
82
|
-
clientIp = event.getClientAddress();
|
|
83
|
-
}
|
|
84
|
-
catch { /* dev mode */ }
|
|
85
|
-
// 4. Rate limiting
|
|
86
|
-
let rl = null;
|
|
87
|
-
if (limiter) {
|
|
88
|
-
rl = limiter.check(clientIp, path);
|
|
89
|
-
if (!rl.allowed) {
|
|
90
|
-
return jsonResponse(429, 'Too many requests', {
|
|
91
|
-
'retry-after': String(rl.retryAfterSec ?? 60),
|
|
92
|
-
'x-ratelimit-limit': String(rl.limit),
|
|
93
|
-
'x-ratelimit-remaining': '0',
|
|
94
|
-
});
|
|
61
|
+
const { request, params, url } = event;
|
|
62
|
+
const rawPath = params.path ?? '';
|
|
63
|
+
// 1. Sanitize path
|
|
64
|
+
let decodedPath;
|
|
65
|
+
try {
|
|
66
|
+
decodedPath = decodeURIComponent(rawPath);
|
|
95
67
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
68
|
+
catch {
|
|
69
|
+
return new Response('Forbidden path', { status: 400 });
|
|
70
|
+
}
|
|
71
|
+
if (decodedPath.includes('..') || rawPath.includes('%2e') || rawPath.includes('%2E') || rawPath.includes('//')) {
|
|
72
|
+
return new Response('Forbidden path', { status: 403 });
|
|
73
|
+
}
|
|
74
|
+
// 2. Block forbidden prefixes
|
|
75
|
+
const firstSegment = rawPath.split('/')[0];
|
|
76
|
+
if (blockedPrefixes.includes(firstSegment)) {
|
|
77
|
+
return jsonResponse(404, 'Not found');
|
|
78
|
+
}
|
|
79
|
+
const path = `${prefix}/${rawPath}${url.search}`;
|
|
80
|
+
// 3. Client IP
|
|
81
|
+
let clientIp = '127.0.0.1';
|
|
82
|
+
try {
|
|
83
|
+
clientIp = event.getClientAddress();
|
|
84
|
+
}
|
|
85
|
+
catch { /* dev mode */ }
|
|
86
|
+
// 4. Rate limiting
|
|
87
|
+
let rl = null;
|
|
88
|
+
if (limiter) {
|
|
89
|
+
rl = limiter.check(clientIp, path);
|
|
90
|
+
if (!rl.allowed) {
|
|
91
|
+
return jsonResponse(429, 'Too many requests', {
|
|
92
|
+
'retry-after': String(rl.retryAfterSec ?? 60),
|
|
93
|
+
'x-ratelimit-limit': String(rl.limit),
|
|
94
|
+
'x-ratelimit-remaining': '0',
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
// 5. CSRF — mutating requests must come from same origin
|
|
99
|
+
if (csrf && ['POST', 'PUT', 'PATCH', 'DELETE'].includes(request.method)) {
|
|
100
|
+
const origin = request.headers.get('origin');
|
|
101
|
+
const host = request.headers.get('host');
|
|
102
|
+
if (!origin) {
|
|
103
|
+
return jsonResponse(403, 'CSRF: Origin header required');
|
|
104
|
+
}
|
|
105
|
+
if (host) {
|
|
106
|
+
try {
|
|
107
|
+
const originHost = new URL(origin).host;
|
|
108
|
+
if (originHost !== host) {
|
|
109
|
+
return jsonResponse(403, 'CSRF: Origin mismatch');
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
return jsonResponse(403, 'CSRF: Invalid origin');
|
|
114
|
+
}
|
|
115
|
+
}
|
|
103
116
|
}
|
|
104
|
-
|
|
117
|
+
// 6. Build headers
|
|
118
|
+
const headers = new Headers();
|
|
119
|
+
headers.set('content-type', request.headers.get('content-type') || 'application/json');
|
|
120
|
+
const auth = request.headers.get('authorization');
|
|
121
|
+
if (auth)
|
|
122
|
+
headers.set('authorization', auth);
|
|
123
|
+
const cookies = request.headers.get('cookie');
|
|
124
|
+
if (cookies)
|
|
125
|
+
headers.set('cookie', cookies);
|
|
126
|
+
headers.delete('x-forwarded-for');
|
|
127
|
+
headers.set('x-forwarded-for', clientIp);
|
|
128
|
+
// 7. Read body with size check
|
|
129
|
+
let body = null;
|
|
130
|
+
if (request.method !== 'GET' && request.method !== 'HEAD' && request.body) {
|
|
131
|
+
const contentLength = request.headers.get('content-length');
|
|
132
|
+
if (contentLength && parseInt(contentLength) > maxBodySize) {
|
|
133
|
+
return jsonResponse(413, 'Request too large');
|
|
134
|
+
}
|
|
105
135
|
try {
|
|
106
|
-
|
|
107
|
-
if (
|
|
108
|
-
return jsonResponse(
|
|
136
|
+
body = await request.text();
|
|
137
|
+
if (body.length > maxBodySize) {
|
|
138
|
+
return jsonResponse(413, 'Request too large');
|
|
109
139
|
}
|
|
110
140
|
}
|
|
111
141
|
catch {
|
|
112
|
-
return jsonResponse(
|
|
142
|
+
return jsonResponse(400, 'Failed to read request body');
|
|
113
143
|
}
|
|
114
144
|
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
headers.set('cookie', cookies);
|
|
125
|
-
headers.delete('x-forwarded-for');
|
|
126
|
-
headers.set('x-forwarded-for', clientIp);
|
|
127
|
-
// 7. Stream body with size check
|
|
128
|
-
let body = null;
|
|
129
|
-
if (request.method !== 'GET' && request.method !== 'HEAD' && request.body) {
|
|
130
|
-
const contentLength = request.headers.get('content-length');
|
|
131
|
-
if (contentLength && parseInt(contentLength) > maxBodySize) {
|
|
132
|
-
return jsonResponse(413, 'Request too large');
|
|
145
|
+
// 8. Proxy to backend
|
|
146
|
+
const targetUrl = `${backend}${path}`;
|
|
147
|
+
let apiRes;
|
|
148
|
+
try {
|
|
149
|
+
apiRes = await fetch(targetUrl, {
|
|
150
|
+
method: request.method,
|
|
151
|
+
headers,
|
|
152
|
+
body: body ?? undefined,
|
|
153
|
+
});
|
|
133
154
|
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
155
|
+
catch (err) {
|
|
156
|
+
console.error(`[proxy] Backend unreachable: ${request.method} ${targetUrl}`, err);
|
|
157
|
+
return jsonResponse(502, 'Backend unreachable');
|
|
158
|
+
}
|
|
159
|
+
// Log backend errors for debugging
|
|
160
|
+
if (apiRes.status >= 500) {
|
|
161
|
+
const errBody = await apiRes.clone().text().catch(() => '');
|
|
162
|
+
console.error(`[proxy] Backend ${apiRes.status}: ${request.method} ${targetUrl}`, errBody);
|
|
163
|
+
}
|
|
164
|
+
// 9. Build response — stream back
|
|
165
|
+
const responseHeaders = new Headers();
|
|
166
|
+
responseHeaders.set('content-type', apiRes.headers.get('content-type') || 'application/json');
|
|
167
|
+
// Rate limit info (reuse the already-counted check from above — no second call)
|
|
168
|
+
if (rl) {
|
|
169
|
+
responseHeaders.set('x-ratelimit-limit', String(rl.limit));
|
|
170
|
+
responseHeaders.set('x-ratelimit-remaining', String(rl.remaining));
|
|
171
|
+
}
|
|
172
|
+
// Forward Set-Cookie
|
|
173
|
+
const setCookies = apiRes.headers.getSetCookie?.() ?? [];
|
|
174
|
+
for (const cookie of setCookies) {
|
|
175
|
+
responseHeaders.append('set-cookie', cookie);
|
|
176
|
+
}
|
|
177
|
+
if (setCookies.length === 0) {
|
|
178
|
+
const raw = apiRes.headers.get('set-cookie');
|
|
179
|
+
if (raw)
|
|
180
|
+
responseHeaders.set('set-cookie', raw);
|
|
181
|
+
}
|
|
182
|
+
return new Response(apiRes.body, {
|
|
183
|
+
status: apiRes.status,
|
|
184
|
+
headers: responseHeaders,
|
|
148
185
|
});
|
|
149
186
|
}
|
|
150
|
-
catch {
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
// Rate limit info (reuse the already-counted check from above — no second call)
|
|
157
|
-
if (rl) {
|
|
158
|
-
responseHeaders.set('x-ratelimit-limit', String(rl.limit));
|
|
159
|
-
responseHeaders.set('x-ratelimit-remaining', String(rl.remaining));
|
|
160
|
-
}
|
|
161
|
-
// Forward Set-Cookie
|
|
162
|
-
const setCookies = apiRes.headers.getSetCookie?.() ?? [];
|
|
163
|
-
for (const cookie of setCookies) {
|
|
164
|
-
responseHeaders.append('set-cookie', cookie);
|
|
165
|
-
}
|
|
166
|
-
if (setCookies.length === 0) {
|
|
167
|
-
const raw = apiRes.headers.get('set-cookie');
|
|
168
|
-
if (raw)
|
|
169
|
-
responseHeaders.set('set-cookie', raw);
|
|
187
|
+
catch (err) {
|
|
188
|
+
console.error('[proxy] Unhandled error:', err);
|
|
189
|
+
return new Response(JSON.stringify({ message: 'Proxy error' }), {
|
|
190
|
+
status: 500,
|
|
191
|
+
headers: { 'content-type': 'application/json' },
|
|
192
|
+
});
|
|
170
193
|
}
|
|
171
|
-
return new Response(apiRes.body, {
|
|
172
|
-
status: apiRes.status,
|
|
173
|
-
headers: responseHeaders,
|
|
174
|
-
});
|
|
175
194
|
};
|
|
176
195
|
return {
|
|
177
196
|
GET: handler,
|
package/dist/server/proxy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/server/proxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,iBAAiB,EAAyC,MAAM,mBAAmB,CAAA;AA2B5F,SAAS,YAAY,CAAC,MAAc,EAAE,OAAe,EAAE,KAA8B;IACnF,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE;QAC/D,MAAM;QACN,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,KAAK,EAAE;KAC1D,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,MAAmB;IAC7C,MAAM,EACJ,OAAO,EACP,MAAM,GAAG,MAAM,EACf,WAAW,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,EAC9B,eAAe,GAAG,CAAC,UAAU,CAAC,EAC9B,IAAI,GAAG,IAAI,EACX,SAAS,EAAE,eAAe,GAC3B,GAAG,MAAM,CAAA;IAEV,uBAAuB;IACvB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAA;QAC5B,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;QACvD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAA;IACpD,CAAC;IAED,sCAAsC;IACtC,IAAI,OAAO,GAAuB,IAAI,CAAA;IACtC,IAAI,eAAe,KAAK,KAAK,EAAE,CAAC;QAC9B,OAAO,GAAG,iBAAiB,CAAC,eAAe,IAAI,SAAS,CAAC,CAAA;IAC3D,CAAC;IAED,MAAM,OAAO,GAAY,KAAK,EAAE,KAAK,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/server/proxy.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@karbonjs/api",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.5",
|
|
4
4
|
"description": "Type-safe API client for Karbon backends with SSR and client support",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"dist"
|
|
20
20
|
],
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@karbonjs/types": "0.3.
|
|
22
|
+
"@karbonjs/types": "0.3.5"
|
|
23
23
|
},
|
|
24
24
|
"publishConfig": {
|
|
25
25
|
"access": "public"
|