@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.
@@ -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;;;;;;EA8J9C"}
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"}
@@ -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
- decodedPath = decodeURIComponent(rawPath);
66
- }
67
- catch {
68
- return new Response('Forbidden path', { status: 400 });
69
- }
70
- if (decodedPath.includes('..') || rawPath.includes('%2e') || rawPath.includes('%2E') || rawPath.includes('//')) {
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
- // 5. CSRF mutating requests must come from same origin
98
- if (csrf && ['POST', 'PUT', 'PATCH', 'DELETE'].includes(request.method)) {
99
- const origin = request.headers.get('origin');
100
- const host = request.headers.get('host');
101
- if (!origin) {
102
- return jsonResponse(403, 'CSRF: Origin header required');
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
- if (host) {
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
- const originHost = new URL(origin).host;
107
- if (originHost !== host) {
108
- return jsonResponse(403, 'CSRF: Origin mismatch');
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(403, 'CSRF: Invalid origin');
142
+ return jsonResponse(400, 'Failed to read request body');
113
143
  }
114
144
  }
115
- }
116
- // 6. Build headers
117
- const headers = new Headers();
118
- headers.set('content-type', request.headers.get('content-type') || 'application/json');
119
- const auth = request.headers.get('authorization');
120
- if (auth)
121
- headers.set('authorization', auth);
122
- const cookies = request.headers.get('cookie');
123
- if (cookies)
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
- // NOTE: When no Content-Length header is present (e.g. chunked transfer encoding),
135
- // the body size check above is bypassed. The backend server MUST enforce its own
136
- // body size limits to prevent abuse via chunked requests.
137
- body = request.body;
138
- }
139
- // 8. Proxy to backend
140
- let apiRes;
141
- try {
142
- apiRes = await fetch(`${backend}${path}`, {
143
- method: request.method,
144
- headers,
145
- body,
146
- // @ts-expect-error duplex required for streaming body in Node
147
- duplex: body ? 'half' : undefined,
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
- return jsonResponse(502, 'Backend unreachable');
152
- }
153
- // 9. Build response — stream back
154
- const responseHeaders = new Headers();
155
- responseHeaders.set('content-type', apiRes.headers.get('content-type') || 'application/json');
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,
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/server/proxy.ts"],"names":[],"mappings":"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"}
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",
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.3"
22
+ "@karbonjs/types": "0.3.5"
23
23
  },
24
24
  "publishConfig": {
25
25
  "access": "public"