@karbonjs/api 0.3.3 → 0.3.4

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;;;;;;EA8K9C"}
@@ -57,121 +57,137 @@ 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 });
103
70
  }
104
- if (host) {
105
- try {
106
- const originHost = new URL(origin).host;
107
- if (originHost !== host) {
108
- return jsonResponse(403, 'CSRF: Origin mismatch');
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');
109
114
  }
110
115
  }
111
- catch {
112
- return jsonResponse(403, 'CSRF: Invalid origin');
116
+ }
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. Stream 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');
113
134
  }
135
+ // NOTE: When no Content-Length header is present (e.g. chunked transfer encoding),
136
+ // the body size check above is bypassed. The backend server MUST enforce its own
137
+ // body size limits to prevent abuse via chunked requests.
138
+ body = request.body;
114
139
  }
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');
140
+ // 8. Proxy to backend
141
+ const targetUrl = `${backend}${path}`;
142
+ let apiRes;
143
+ try {
144
+ apiRes = await fetch(targetUrl, {
145
+ method: request.method,
146
+ headers,
147
+ body,
148
+ // @ts-expect-error — duplex required for streaming body in Node
149
+ duplex: body ? 'half' : undefined,
150
+ });
133
151
  }
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,
152
+ catch (err) {
153
+ console.error(`[proxy] Backend unreachable: ${request.method} ${targetUrl}`, err);
154
+ return jsonResponse(502, 'Backend unreachable');
155
+ }
156
+ // Log backend errors for debugging
157
+ if (apiRes.status >= 500) {
158
+ const errBody = await apiRes.clone().text().catch(() => '');
159
+ console.error(`[proxy] Backend ${apiRes.status}: ${request.method} ${targetUrl}`, errBody);
160
+ }
161
+ // 9. Build response — stream back
162
+ const responseHeaders = new Headers();
163
+ responseHeaders.set('content-type', apiRes.headers.get('content-type') || 'application/json');
164
+ // Rate limit info (reuse the already-counted check from above no second call)
165
+ if (rl) {
166
+ responseHeaders.set('x-ratelimit-limit', String(rl.limit));
167
+ responseHeaders.set('x-ratelimit-remaining', String(rl.remaining));
168
+ }
169
+ // Forward Set-Cookie
170
+ const setCookies = apiRes.headers.getSetCookie?.() ?? [];
171
+ for (const cookie of setCookies) {
172
+ responseHeaders.append('set-cookie', cookie);
173
+ }
174
+ if (setCookies.length === 0) {
175
+ const raw = apiRes.headers.get('set-cookie');
176
+ if (raw)
177
+ responseHeaders.set('set-cookie', raw);
178
+ }
179
+ return new Response(apiRes.body, {
180
+ status: apiRes.status,
181
+ headers: responseHeaders,
148
182
  });
149
183
  }
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);
184
+ catch (err) {
185
+ console.error('[proxy] Unhandled error:', err);
186
+ return new Response(JSON.stringify({ message: 'Proxy error' }), {
187
+ status: 500,
188
+ headers: { 'content-type': 'application/json' },
189
+ });
170
190
  }
171
- return new Response(apiRes.body, {
172
- status: apiRes.status,
173
- headers: responseHeaders,
174
- });
175
191
  };
176
192
  return {
177
193
  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.4",
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.4"
23
23
  },
24
24
  "publishConfig": {
25
25
  "access": "public"