@edgestore/server 0.1.2 → 0.1.3-alpha.1

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":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapters/next/app/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAK7E,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAenD,MAAM,MAAM,oBAAoB,GAAG;IACjC,GAAG,EAAE,WAAW,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,MAAM,CAAC,IAAI,IAAI,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACzD;IACE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;CAC/B,GACD;IACE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;IAC9B,aAAa,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;CACnE,CAAC;AAEN,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,SAEhD,WAAW,uBAgI/B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapters/next/app/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAK7E,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAenD,MAAM,MAAM,oBAAoB,GAAG;IACjC,GAAG,EAAE,WAAW,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,MAAM,CAAC,IAAI,IAAI,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACzD;IACE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;CAC/B,GACD;IACE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;IAC9B,aAAa,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;CACnE,CAAC;AAEN,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,SAEhD,WAAW,uBAyI/B"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var shared = require('../../../shared-a5b84d0b.js');
5
+ var shared = require('../../../shared-ddfc7031.js');
6
6
  var providers_edgestore_index = require('../../../providers/edgestore/index.js');
7
7
  require('@panva/hkdf');
8
8
  require('cookie');
@@ -24,16 +24,19 @@ function createEdgeStoreNextHandler(config) {
24
24
  provider,
25
25
  router: config.router
26
26
  });
27
- return new Response(JSON.stringify({
27
+ const res = new Response(JSON.stringify({
28
28
  token,
29
29
  baseUrl
30
30
  }), {
31
31
  status: 200,
32
32
  headers: {
33
- 'Content-Type': 'application/json',
34
- 'Set-Cookie': newCookies.join('; ')
33
+ 'Content-Type': 'application/json'
35
34
  }
36
35
  });
36
+ for (const cookie of newCookies){
37
+ res.headers.append('Set-Cookie', cookie);
38
+ }
39
+ return res;
37
40
  } else if (req.nextUrl.pathname === '/api/edgestore/request-upload') {
38
41
  const res = await shared.requestUpload({
39
42
  provider,
@@ -71,24 +74,30 @@ function createEdgeStoreNextHandler(config) {
71
74
  status: 200
72
75
  });
73
76
  } else if (req.nextUrl.pathname === '/api/edgestore/confirm-upload') {
74
- await shared.confirmUpload({
77
+ const res = await shared.confirmUpload({
75
78
  provider,
76
79
  router: config.router,
77
80
  body: await req.json(),
78
81
  ctxToken: req.cookies.get('edgestore-ctx')?.value
79
82
  });
80
- return new Response(null, {
81
- status: 200
83
+ return new Response(JSON.stringify(res), {
84
+ status: 200,
85
+ headers: {
86
+ 'Content-Type': 'application/json'
87
+ }
82
88
  });
83
89
  } else if (req.nextUrl.pathname === '/api/edgestore/delete-file') {
84
- await shared.deleteFile({
90
+ const res = await shared.deleteFile({
85
91
  provider,
86
92
  router: config.router,
87
93
  body: await req.json(),
88
94
  ctxToken: req.cookies.get('edgestore-ctx')?.value
89
95
  });
90
- return new Response(null, {
91
- status: 200
96
+ return new Response(JSON.stringify(res), {
97
+ status: 200,
98
+ headers: {
99
+ 'Content-Type': 'application/json'
100
+ }
92
101
  });
93
102
  } else if (req.nextUrl.pathname === '/api/edgestore/proxy-file') {
94
103
  const url = req.nextUrl.searchParams.get('url');
@@ -1,4 +1,4 @@
1
- import { i as init, r as requestUpload, a as requestUploadParts, c as completeMultipartUpload, b as confirmUpload, d as deleteFile, E as EdgeStoreError, e as EDGE_STORE_ERROR_CODES } from '../../../shared-7fc08e14.mjs';
1
+ import { i as init, r as requestUpload, a as requestUploadParts, c as completeMultipartUpload, b as confirmUpload, d as deleteFile, E as EdgeStoreError, e as EDGE_STORE_ERROR_CODES } from '../../../shared-4514686d.mjs';
2
2
  import { EdgeStoreProvider } from '../../../providers/edgestore/index.mjs';
3
3
  import '@panva/hkdf';
4
4
  import 'cookie';
@@ -20,16 +20,19 @@ function createEdgeStoreNextHandler(config) {
20
20
  provider,
21
21
  router: config.router
22
22
  });
23
- return new Response(JSON.stringify({
23
+ const res = new Response(JSON.stringify({
24
24
  token,
25
25
  baseUrl
26
26
  }), {
27
27
  status: 200,
28
28
  headers: {
29
- 'Content-Type': 'application/json',
30
- 'Set-Cookie': newCookies.join('; ')
29
+ 'Content-Type': 'application/json'
31
30
  }
32
31
  });
32
+ for (const cookie of newCookies){
33
+ res.headers.append('Set-Cookie', cookie);
34
+ }
35
+ return res;
33
36
  } else if (req.nextUrl.pathname === '/api/edgestore/request-upload') {
34
37
  const res = await requestUpload({
35
38
  provider,
@@ -67,24 +70,30 @@ function createEdgeStoreNextHandler(config) {
67
70
  status: 200
68
71
  });
69
72
  } else if (req.nextUrl.pathname === '/api/edgestore/confirm-upload') {
70
- await confirmUpload({
73
+ const res = await confirmUpload({
71
74
  provider,
72
75
  router: config.router,
73
76
  body: await req.json(),
74
77
  ctxToken: req.cookies.get('edgestore-ctx')?.value
75
78
  });
76
- return new Response(null, {
77
- status: 200
79
+ return new Response(JSON.stringify(res), {
80
+ status: 200,
81
+ headers: {
82
+ 'Content-Type': 'application/json'
83
+ }
78
84
  });
79
85
  } else if (req.nextUrl.pathname === '/api/edgestore/delete-file') {
80
- await deleteFile({
86
+ const res = await deleteFile({
81
87
  provider,
82
88
  router: config.router,
83
89
  body: await req.json(),
84
90
  ctxToken: req.cookies.get('edgestore-ctx')?.value
85
91
  });
86
- return new Response(null, {
87
- status: 200
92
+ return new Response(JSON.stringify(res), {
93
+ status: 200,
94
+ headers: {
95
+ 'Content-Type': 'application/json'
96
+ }
88
97
  });
89
98
  } else if (req.nextUrl.pathname === '/api/edgestore/proxy-file') {
90
99
  const url = req.nextUrl.searchParams.get('url');
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapters/next/pages/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAK7E,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAenD,MAAM,MAAM,oBAAoB,GAAG;IACjC,GAAG,EAAE,cAAc,CAAC;IACpB,GAAG,EAAE,eAAe,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,MAAM,CAAC,IAAI,IAAI,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACzD;IACE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;CAC/B,GACD;IACE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;IAC9B,aAAa,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;CACnE,CAAC;AAEN,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,SAEhD,cAAc,OAAO,eAAe,mBA0FxD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapters/next/pages/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAK7E,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAenD,MAAM,MAAM,oBAAoB,GAAG;IACjC,GAAG,EAAE,cAAc,CAAC;IACpB,GAAG,EAAE,eAAe,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,MAAM,CAAC,IAAI,IAAI,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACzD;IACE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;CAC/B,GACD;IACE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;IAC9B,aAAa,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;CACnE,CAAC;AAEN,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,SAEhD,cAAc,OAAO,eAAe,mBA4FxD"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var shared = require('../../../shared-a5b84d0b.js');
5
+ var shared = require('../../../shared-ddfc7031.js');
6
6
  var providers_edgestore_index = require('../../../providers/edgestore/index.js');
7
7
  require('@panva/hkdf');
8
8
  require('cookie');
@@ -53,21 +53,19 @@ function createEdgeStoreNextHandler(config) {
53
53
  });
54
54
  res.status(200).end();
55
55
  } else if (req.url === '/api/edgestore/confirm-upload') {
56
- await shared.confirmUpload({
56
+ res.json(await shared.confirmUpload({
57
57
  provider,
58
58
  router: config.router,
59
59
  body: req.body,
60
60
  ctxToken: req.cookies['edgestore-ctx']
61
- });
62
- res.status(200).end();
61
+ }));
63
62
  } else if (req.url === '/api/edgestore/delete-file') {
64
- await shared.deleteFile({
63
+ res.json(await shared.deleteFile({
65
64
  provider,
66
65
  router: config.router,
67
66
  body: req.body,
68
67
  ctxToken: req.cookies['edgestore-ctx']
69
- });
70
- res.status(200).end();
68
+ }));
71
69
  } else if (req.url?.startsWith('/api/edgestore/proxy-file')) {
72
70
  const { url } = req.query;
73
71
  if (typeof url === 'string') {
@@ -1,4 +1,4 @@
1
- import { i as init, r as requestUpload, a as requestUploadParts, c as completeMultipartUpload, b as confirmUpload, d as deleteFile, E as EdgeStoreError, e as EDGE_STORE_ERROR_CODES } from '../../../shared-7fc08e14.mjs';
1
+ import { i as init, r as requestUpload, a as requestUploadParts, c as completeMultipartUpload, b as confirmUpload, d as deleteFile, E as EdgeStoreError, e as EDGE_STORE_ERROR_CODES } from '../../../shared-4514686d.mjs';
2
2
  import { EdgeStoreProvider } from '../../../providers/edgestore/index.mjs';
3
3
  import '@panva/hkdf';
4
4
  import 'cookie';
@@ -49,21 +49,19 @@ function createEdgeStoreNextHandler(config) {
49
49
  });
50
50
  res.status(200).end();
51
51
  } else if (req.url === '/api/edgestore/confirm-upload') {
52
- await confirmUpload({
52
+ res.json(await confirmUpload({
53
53
  provider,
54
54
  router: config.router,
55
55
  body: req.body,
56
56
  ctxToken: req.cookies['edgestore-ctx']
57
- });
58
- res.status(200).end();
57
+ }));
59
58
  } else if (req.url === '/api/edgestore/delete-file') {
60
- await deleteFile({
59
+ res.json(await deleteFile({
61
60
  provider,
62
61
  router: config.router,
63
62
  body: req.body,
64
63
  ctxToken: req.cookies['edgestore-ctx']
65
- });
66
- res.status(200).end();
64
+ }));
67
65
  } else if (req.url?.startsWith('/api/edgestore/proxy-file')) {
68
66
  const { url } = req.query;
69
67
  if (typeof url === 'string') {
@@ -95,7 +95,7 @@ export declare function confirmUpload<TCtx>(params: {
95
95
  router: EdgeStoreRouter<TCtx>;
96
96
  ctxToken: string | undefined;
97
97
  body: ConfirmUploadBody;
98
- }): Promise<void>;
98
+ }): Promise<import("../providers/types").ConfirmUploadRes>;
99
99
  export type DeleteFileBody = {
100
100
  bucketName: string;
101
101
  url: string;
@@ -105,7 +105,7 @@ export declare function deleteFile<TCtx>(params: {
105
105
  router: EdgeStoreRouter<TCtx>;
106
106
  ctxToken: string | undefined;
107
107
  body: DeleteFileBody;
108
- }): Promise<void>;
108
+ }): Promise<import("../providers/types").DeleteFileRes>;
109
109
  export type InitRes = Awaited<ReturnType<typeof init>>;
110
110
  export type RequestUploadRes = Awaited<ReturnType<typeof requestUpload>>;
111
111
  export type RequestUploadPartsRes = Awaited<ReturnType<typeof requestUploadParts>>;
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/adapters/shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/adapters/shared.ts"],"names":[],"mappings":"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"}
@@ -207,9 +207,9 @@ async function confirmUpload(params) {
207
207
  if (!bucket) {
208
208
  throw new Error(`Bucket ${bucketName} not found`);
209
209
  }
210
- await provider.confirmUpload({
210
+ return await provider.confirmUpload({
211
211
  bucket,
212
- url
212
+ url: unproxyUrl(url)
213
213
  });
214
214
  }
215
215
  async function deleteFile(params) {
@@ -238,9 +238,9 @@ async function deleteFile(params) {
238
238
  if (!canDelete) {
239
239
  throw new Error('Delete not allowed');
240
240
  }
241
- await provider.deleteFile({
241
+ return await provider.deleteFile({
242
242
  bucket,
243
- url
243
+ url: unproxyUrl(url)
244
244
  });
245
245
  }
246
246
  async function encryptJWT(ctx) {
@@ -297,5 +297,21 @@ async function getContext(token) {
297
297
  }
298
298
  return await decryptJWT(token);
299
299
  }
300
+ /**
301
+ * On local development, protected files are proxied to the server,
302
+ * which changes the original URL.
303
+ *
304
+ * This function is used to get the original URL,
305
+ * so that we can delete or confirm the upload.
306
+ */ function unproxyUrl(url) {
307
+ if (process.env.NODE_ENV === 'development' && url.startsWith('http://')) {
308
+ // get the url param from the query string
309
+ const urlParam = new URL(url).searchParams.get('url');
310
+ if (urlParam) {
311
+ return urlParam;
312
+ }
313
+ }
314
+ return url;
315
+ }
300
316
 
301
317
  export { EdgeStoreError as E, requestUploadParts as a, confirmUpload as b, completeMultipartUpload as c, deleteFile as d, EDGE_STORE_ERROR_CODES as e, init as i, requestUpload as r };
@@ -199,9 +199,9 @@ async function confirmUpload(params) {
199
199
  if (!bucket) {
200
200
  throw new Error(`Bucket ${bucketName} not found`);
201
201
  }
202
- await provider.confirmUpload({
202
+ return await provider.confirmUpload({
203
203
  bucket,
204
- url,
204
+ url: unproxyUrl(url),
205
205
  });
206
206
  }
207
207
  async function deleteFile(params) {
@@ -230,9 +230,9 @@ async function deleteFile(params) {
230
230
  if (!canDelete) {
231
231
  throw new Error('Delete not allowed');
232
232
  }
233
- await provider.deleteFile({
233
+ return await provider.deleteFile({
234
234
  bucket,
235
- url,
235
+ url: unproxyUrl(url),
236
236
  });
237
237
  }
238
238
  async function encryptJWT(ctx) {
@@ -293,5 +293,22 @@ async function getContext(token) {
293
293
  }
294
294
  return await decryptJWT(token);
295
295
  }
296
+ /**
297
+ * On local development, protected files are proxied to the server,
298
+ * which changes the original URL.
299
+ *
300
+ * This function is used to get the original URL,
301
+ * so that we can delete or confirm the upload.
302
+ */
303
+ function unproxyUrl(url) {
304
+ if (process.env.NODE_ENV === 'development' && url.startsWith('http://')) {
305
+ // get the url param from the query string
306
+ const urlParam = new URL(url).searchParams.get('url');
307
+ if (urlParam) {
308
+ return urlParam;
309
+ }
310
+ }
311
+ return url;
312
+ }
296
313
 
297
314
  export { EdgeStoreError as E, requestUploadParts as a, confirmUpload as b, completeMultipartUpload as c, deleteFile as d, EDGE_STORE_ERROR_CODES as e, init as i, requestUpload as r };
@@ -209,9 +209,9 @@ async function confirmUpload(params) {
209
209
  if (!bucket) {
210
210
  throw new Error(`Bucket ${bucketName} not found`);
211
211
  }
212
- await provider.confirmUpload({
212
+ return await provider.confirmUpload({
213
213
  bucket,
214
- url
214
+ url: unproxyUrl(url)
215
215
  });
216
216
  }
217
217
  async function deleteFile(params) {
@@ -240,9 +240,9 @@ async function deleteFile(params) {
240
240
  if (!canDelete) {
241
241
  throw new Error('Delete not allowed');
242
242
  }
243
- await provider.deleteFile({
243
+ return await provider.deleteFile({
244
244
  bucket,
245
- url
245
+ url: unproxyUrl(url)
246
246
  });
247
247
  }
248
248
  async function encryptJWT(ctx) {
@@ -299,6 +299,22 @@ async function getContext(token) {
299
299
  }
300
300
  return await decryptJWT(token);
301
301
  }
302
+ /**
303
+ * On local development, protected files are proxied to the server,
304
+ * which changes the original URL.
305
+ *
306
+ * This function is used to get the original URL,
307
+ * so that we can delete or confirm the upload.
308
+ */ function unproxyUrl(url) {
309
+ if (process.env.NODE_ENV === 'development' && url.startsWith('http://')) {
310
+ // get the url param from the query string
311
+ const urlParam = new URL(url).searchParams.get('url');
312
+ if (urlParam) {
313
+ return urlParam;
314
+ }
315
+ }
316
+ return url;
317
+ }
302
318
 
303
319
  exports.EDGE_STORE_ERROR_CODES = EDGE_STORE_ERROR_CODES;
304
320
  exports.EdgeStoreError = EdgeStoreError;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edgestore/server",
3
- "version": "0.1.2",
3
+ "version": "0.1.3-alpha.1",
4
4
  "description": "Upload files with ease from React/Next.js",
5
5
  "homepage": "https://edgestore.dev",
6
6
  "repository": "https://github.com/edgestorejs/edgestore.git",
@@ -104,5 +104,5 @@
104
104
  "typescript": "^5.1.6",
105
105
  "zod": "^3.21.4"
106
106
  },
107
- "gitHead": "99519b57aa7a5cbbe5cab16b85a70d437cb87435"
107
+ "gitHead": "d83c9799cd38def8b37f6c752332c568c37cf329"
108
108
  }
@@ -49,7 +49,7 @@ export function createEdgeStoreNextHandler<TCtx>(config: Config<TCtx>) {
49
49
  provider,
50
50
  router: config.router,
51
51
  });
52
- return new Response(
52
+ const res = new Response(
53
53
  JSON.stringify({
54
54
  token,
55
55
  baseUrl,
@@ -58,10 +58,13 @@ export function createEdgeStoreNextHandler<TCtx>(config: Config<TCtx>) {
58
58
  status: 200,
59
59
  headers: {
60
60
  'Content-Type': 'application/json',
61
- 'Set-Cookie': newCookies.join('; '),
62
61
  },
63
62
  },
64
63
  );
64
+ for (const cookie of newCookies) {
65
+ res.headers.append('Set-Cookie', cookie);
66
+ }
67
+ return res;
65
68
  } else if (req.nextUrl.pathname === '/api/edgestore/request-upload') {
66
69
  const res = await requestUpload({
67
70
  provider,
@@ -103,24 +106,30 @@ export function createEdgeStoreNextHandler<TCtx>(config: Config<TCtx>) {
103
106
  status: 200,
104
107
  });
105
108
  } else if (req.nextUrl.pathname === '/api/edgestore/confirm-upload') {
106
- await confirmUpload({
109
+ const res = await confirmUpload({
107
110
  provider,
108
111
  router: config.router,
109
112
  body: (await req.json()) as ConfirmUploadBody,
110
113
  ctxToken: req.cookies.get('edgestore-ctx')?.value,
111
114
  });
112
- return new Response(null, {
115
+ return new Response(JSON.stringify(res), {
113
116
  status: 200,
117
+ headers: {
118
+ 'Content-Type': 'application/json',
119
+ },
114
120
  });
115
121
  } else if (req.nextUrl.pathname === '/api/edgestore/delete-file') {
116
- await deleteFile({
122
+ const res = await deleteFile({
117
123
  provider,
118
124
  router: config.router,
119
125
  body: (await req.json()) as DeleteFileBody,
120
126
  ctxToken: req.cookies.get('edgestore-ctx')?.value,
121
127
  });
122
- return new Response(null, {
128
+ return new Response(JSON.stringify(res), {
123
129
  status: 200,
130
+ headers: {
131
+ 'Content-Type': 'application/json',
132
+ },
124
133
  });
125
134
  } else if (req.nextUrl.pathname === '/api/edgestore/proxy-file') {
126
135
  const url = req.nextUrl.searchParams.get('url');
@@ -82,21 +82,23 @@ export function createEdgeStoreNextHandler<TCtx>(config: Config<TCtx>) {
82
82
  });
83
83
  res.status(200).end();
84
84
  } else if (req.url === '/api/edgestore/confirm-upload') {
85
- await confirmUpload({
86
- provider,
87
- router: config.router,
88
- body: req.body as ConfirmUploadBody,
89
- ctxToken: req.cookies['edgestore-ctx'],
90
- });
91
- res.status(200).end();
85
+ res.json(
86
+ await confirmUpload({
87
+ provider,
88
+ router: config.router,
89
+ body: req.body as ConfirmUploadBody,
90
+ ctxToken: req.cookies['edgestore-ctx'],
91
+ }),
92
+ );
92
93
  } else if (req.url === '/api/edgestore/delete-file') {
93
- await deleteFile({
94
- provider,
95
- router: config.router,
96
- body: req.body as DeleteFileBody,
97
- ctxToken: req.cookies['edgestore-ctx'],
98
- });
99
- res.status(200).end();
94
+ res.json(
95
+ await deleteFile({
96
+ provider,
97
+ router: config.router,
98
+ body: req.body as DeleteFileBody,
99
+ ctxToken: req.cookies['edgestore-ctx'],
100
+ }),
101
+ );
100
102
  } else if (req.url?.startsWith('/api/edgestore/proxy-file')) {
101
103
  const { url } = req.query;
102
104
  if (typeof url === 'string') {
@@ -278,9 +278,9 @@ export async function confirmUpload<TCtx>(params: {
278
278
  throw new Error(`Bucket ${bucketName} not found`);
279
279
  }
280
280
 
281
- await provider.confirmUpload({
281
+ return await provider.confirmUpload({
282
282
  bucket,
283
- url,
283
+ url: unproxyUrl(url),
284
284
  });
285
285
  }
286
286
 
@@ -330,9 +330,9 @@ export async function deleteFile<TCtx>(params: {
330
330
  if (!canDelete) {
331
331
  throw new Error('Delete not allowed');
332
332
  }
333
- await provider.deleteFile({
333
+ return await provider.deleteFile({
334
334
  bucket,
335
- url,
335
+ url: unproxyUrl(url),
336
336
  });
337
337
  }
338
338
 
@@ -418,6 +418,24 @@ async function getContext(token?: string) {
418
418
  return await decryptJWT(token);
419
419
  }
420
420
 
421
+ /**
422
+ * On local development, protected files are proxied to the server,
423
+ * which changes the original URL.
424
+ *
425
+ * This function is used to get the original URL,
426
+ * so that we can delete or confirm the upload.
427
+ */
428
+ function unproxyUrl(url: string) {
429
+ if (process.env.NODE_ENV === 'development' && url.startsWith('http://')) {
430
+ // get the url param from the query string
431
+ const urlParam = new URL(url).searchParams.get('url');
432
+ if (urlParam) {
433
+ return urlParam;
434
+ }
435
+ }
436
+ return url;
437
+ }
438
+
421
439
  export type InitRes = Awaited<ReturnType<typeof init>>;
422
440
  export type RequestUploadRes = Awaited<ReturnType<typeof requestUpload>>;
423
441
  export type RequestUploadPartsRes = Awaited<