@edgestore/server 0.5.2 → 0.5.3-alpha.0

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.
Files changed (61) hide show
  1. package/dist/adapters/astro/index.d.ts +3 -0
  2. package/dist/adapters/astro/index.d.ts.map +1 -1
  3. package/dist/adapters/astro/index.js +23 -21
  4. package/dist/adapters/astro/index.mjs +12 -10
  5. package/dist/adapters/express/index.d.ts +3 -0
  6. package/dist/adapters/express/index.d.ts.map +1 -1
  7. package/dist/adapters/express/index.js +23 -21
  8. package/dist/adapters/express/index.mjs +12 -10
  9. package/dist/adapters/fastify/index.d.ts +4 -1
  10. package/dist/adapters/fastify/index.d.ts.map +1 -1
  11. package/dist/adapters/fastify/index.js +23 -21
  12. package/dist/adapters/fastify/index.mjs +12 -10
  13. package/dist/adapters/hono/index.d.ts +3 -0
  14. package/dist/adapters/hono/index.d.ts.map +1 -1
  15. package/dist/adapters/hono/index.js +23 -21
  16. package/dist/adapters/hono/index.mjs +12 -10
  17. package/dist/adapters/next/app/index.d.ts +3 -0
  18. package/dist/adapters/next/app/index.d.ts.map +1 -1
  19. package/dist/adapters/next/app/index.js +24 -22
  20. package/dist/adapters/next/app/index.mjs +12 -10
  21. package/dist/adapters/next/pages/index.d.ts +3 -0
  22. package/dist/adapters/next/pages/index.d.ts.map +1 -1
  23. package/dist/adapters/next/pages/index.js +24 -22
  24. package/dist/adapters/next/pages/index.mjs +12 -10
  25. package/dist/adapters/remix/index.d.ts +3 -0
  26. package/dist/adapters/remix/index.d.ts.map +1 -1
  27. package/dist/adapters/remix/index.js +23 -21
  28. package/dist/adapters/remix/index.mjs +12 -10
  29. package/dist/adapters/shared.d.ts +74 -0
  30. package/dist/adapters/shared.d.ts.map +1 -1
  31. package/dist/adapters/start/index.d.ts +3 -0
  32. package/dist/adapters/start/index.d.ts.map +1 -1
  33. package/dist/adapters/start/index.js +26 -22
  34. package/dist/adapters/start/index.mjs +15 -11
  35. package/dist/core/index.js +2 -2
  36. package/dist/core/index.mjs +3 -3
  37. package/dist/{index-7b259533.js → index-0c5489b9.js} +1 -1
  38. package/dist/{index-421c502f.js → index-c5c3cdaa.js} +1 -1
  39. package/dist/{index-2848cb40.mjs → index-e0432eed.mjs} +1 -1
  40. package/dist/providers/aws/index.js +1 -1
  41. package/dist/providers/aws/index.mjs +1 -1
  42. package/dist/providers/azure/index.js +1 -1
  43. package/dist/providers/azure/index.mjs +1 -1
  44. package/dist/providers/edgestore/index.js +2 -2
  45. package/dist/providers/edgestore/index.mjs +2 -2
  46. package/dist/{shared-25dbfab4.js → shared-8397d4db.js} +37 -10
  47. package/dist/{shared-685c8a0c.js → shared-8a6bcddb.js} +38 -9
  48. package/dist/{shared-4b199b96.mjs → shared-d2a0d681.mjs} +38 -10
  49. package/dist/{utils-7349adab.mjs → utils-2dd5613c.mjs} +1 -1
  50. package/dist/{utils-0aab6e3b.js → utils-681a13a7.js} +1 -1
  51. package/dist/{utils-b3d35894.js → utils-b30649cc.js} +1 -1
  52. package/package.json +7 -7
  53. package/src/adapters/astro/index.ts +19 -9
  54. package/src/adapters/express/index.ts +13 -6
  55. package/src/adapters/fastify/index.ts +33 -22
  56. package/src/adapters/hono/index.ts +13 -6
  57. package/src/adapters/next/app/index.ts +13 -6
  58. package/src/adapters/next/pages/index.ts +13 -6
  59. package/src/adapters/remix/index.ts +13 -6
  60. package/src/adapters/shared.ts +125 -9
  61. package/src/adapters/start/index.ts +16 -7
@@ -2,11 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var shared = require('@edgestore/shared');
6
- var utils = require('../../utils-0aab6e3b.js');
5
+ var shared$1 = require('@edgestore/shared');
6
+ var utils = require('../../utils-681a13a7.js');
7
7
  var providers_edgestore_index = require('../../providers/edgestore/index.js');
8
- var shared$1 = require('../../shared-685c8a0c.js');
9
- require('../../index-7b259533.js');
8
+ var shared = require('../../shared-8a6bcddb.js');
9
+ require('../../index-0c5489b9.js');
10
10
  require('@panva/hkdf');
11
11
  require('cookie');
12
12
  require('jose');
@@ -25,10 +25,11 @@ function getCookie(req, cookieName) {
25
25
  }, {})[cookieName];
26
26
  }
27
27
  function createEdgeStoreStartHandler(config) {
28
- const { provider = providers_edgestore_index.EdgeStoreProvider() } = config;
28
+ const { provider = providers_edgestore_index.EdgeStoreProvider(), cookieConfig } = config;
29
29
  const log = new utils.Logger(config.logLevel);
30
30
  globalThis._EDGE_STORE_LOGGER = log;
31
31
  log.debug('Creating EdgeStore TanStack Start handler');
32
+ const resolvedCookieConfig = shared.getCookieConfig(cookieConfig);
32
33
  return async ({ request })=>{
33
34
  try {
34
35
  const { pathname } = new URL(request.url);
@@ -43,19 +44,22 @@ function createEdgeStoreStartHandler(config) {
43
44
  req: request
44
45
  }) : {};
45
46
  } catch (err) {
46
- throw new shared.EdgeStoreError({
47
+ throw new shared$1.EdgeStoreError({
47
48
  message: 'Error creating context',
48
49
  code: 'CREATE_CONTEXT_ERROR',
49
50
  cause: err instanceof Error ? err : undefined
50
51
  });
51
52
  }
52
- const { newCookies, token, baseUrl } = await shared$1.init({
53
+ const { newCookies, token, baseUrl } = await shared.init({
53
54
  ctx,
54
55
  provider,
55
- router: config.router
56
+ router: config.router,
57
+ cookieConfig
56
58
  });
57
59
  const headers = new Headers();
58
- newCookies.forEach((cookie)=>headers.append('Set-Cookie', cookie));
60
+ newCookies.forEach((cookie)=>{
61
+ headers.append('Set-Cookie', cookie);
62
+ });
59
63
  headers.set('Content-Type', 'application/json');
60
64
  return new Response(JSON.stringify({
61
65
  token,
@@ -66,8 +70,8 @@ function createEdgeStoreStartHandler(config) {
66
70
  });
67
71
  } else if (utils.matchPath(pathname, '/request-upload')) {
68
72
  const body = await request.json();
69
- const ctxToken = getCookie(request, 'edgestore-ctx');
70
- const result = await shared$1.requestUpload({
73
+ const ctxToken = getCookie(request, resolvedCookieConfig.ctx.name);
74
+ const result = await shared.requestUpload({
71
75
  provider,
72
76
  router: config.router,
73
77
  body: body,
@@ -81,8 +85,8 @@ function createEdgeStoreStartHandler(config) {
81
85
  });
82
86
  } else if (utils.matchPath(pathname, '/request-upload-parts')) {
83
87
  const body = await request.json();
84
- const ctxToken = getCookie(request, 'edgestore-ctx');
85
- const result = await shared$1.requestUploadParts({
88
+ const ctxToken = getCookie(request, resolvedCookieConfig.ctx.name);
89
+ const result = await shared.requestUploadParts({
86
90
  provider,
87
91
  router: config.router,
88
92
  body: body,
@@ -96,8 +100,8 @@ function createEdgeStoreStartHandler(config) {
96
100
  });
97
101
  } else if (utils.matchPath(pathname, '/complete-multipart-upload')) {
98
102
  const body = await request.json();
99
- const ctxToken = getCookie(request, 'edgestore-ctx');
100
- await shared$1.completeMultipartUpload({
103
+ const ctxToken = getCookie(request, resolvedCookieConfig.ctx.name);
104
+ await shared.completeMultipartUpload({
101
105
  provider,
102
106
  router: config.router,
103
107
  body: body,
@@ -108,8 +112,8 @@ function createEdgeStoreStartHandler(config) {
108
112
  });
109
113
  } else if (utils.matchPath(pathname, '/confirm-upload')) {
110
114
  const body = await request.json();
111
- const ctxToken = getCookie(request, 'edgestore-ctx');
112
- const result = await shared$1.confirmUpload({
115
+ const ctxToken = getCookie(request, resolvedCookieConfig.ctx.name);
116
+ const result = await shared.confirmUpload({
113
117
  provider,
114
118
  router: config.router,
115
119
  body: body,
@@ -123,8 +127,8 @@ function createEdgeStoreStartHandler(config) {
123
127
  });
124
128
  } else if (utils.matchPath(pathname, '/delete-file')) {
125
129
  const body = await request.json();
126
- const ctxToken = getCookie(request, 'edgestore-ctx');
127
- const result = await shared$1.deleteFile({
130
+ const ctxToken = getCookie(request, resolvedCookieConfig.ctx.name);
131
+ const result = await shared.deleteFile({
128
132
  provider,
129
133
  router: config.router,
130
134
  body: body,
@@ -162,10 +166,10 @@ function createEdgeStoreStartHandler(config) {
162
166
  });
163
167
  }
164
168
  } catch (err) {
165
- if (err instanceof shared.EdgeStoreError) {
169
+ if (err instanceof shared$1.EdgeStoreError) {
166
170
  log[err.level](err.formattedMessage());
167
171
  if (err.cause) log[err.level](err.cause);
168
- const status = shared.EDGE_STORE_ERROR_CODES[err.code] || 500;
172
+ const status = shared$1.EDGE_STORE_ERROR_CODES[err.code] || 500;
169
173
  return new Response(JSON.stringify(err.formattedJson()), {
170
174
  status,
171
175
  headers: {
@@ -174,7 +178,7 @@ function createEdgeStoreStartHandler(config) {
174
178
  });
175
179
  }
176
180
  log.error(err);
177
- return new Response(JSON.stringify(new shared.EdgeStoreError({
181
+ return new Response(JSON.stringify(new shared$1.EdgeStoreError({
178
182
  message: 'Internal server error',
179
183
  code: 'SERVER_ERROR'
180
184
  }).formattedJson()), {
@@ -1,8 +1,8 @@
1
1
  import { EdgeStoreError, EDGE_STORE_ERROR_CODES } from '@edgestore/shared';
2
- import { L as Logger, m as matchPath } from '../../utils-7349adab.mjs';
2
+ import { L as Logger, m as matchPath } from '../../utils-2dd5613c.mjs';
3
3
  import { EdgeStoreProvider } from '../../providers/edgestore/index.mjs';
4
- import { a as init, r as requestUpload, c as requestUploadParts, d as completeMultipartUpload, e as confirmUpload, f as deleteFile } from '../../shared-4b199b96.mjs';
5
- import '../../index-2848cb40.mjs';
4
+ import { a as getCookieConfig, c as init, r as requestUpload, d as requestUploadParts, e as completeMultipartUpload, f as confirmUpload, h as deleteFile } from '../../shared-d2a0d681.mjs';
5
+ import '../../index-e0432eed.mjs';
6
6
  import '@panva/hkdf';
7
7
  import 'cookie';
8
8
  import 'jose';
@@ -21,10 +21,11 @@ function getCookie(req, cookieName) {
21
21
  }, {})[cookieName];
22
22
  }
23
23
  function createEdgeStoreStartHandler(config) {
24
- const { provider = EdgeStoreProvider() } = config;
24
+ const { provider = EdgeStoreProvider(), cookieConfig } = config;
25
25
  const log = new Logger(config.logLevel);
26
26
  globalThis._EDGE_STORE_LOGGER = log;
27
27
  log.debug('Creating EdgeStore TanStack Start handler');
28
+ const resolvedCookieConfig = getCookieConfig(cookieConfig);
28
29
  return async ({ request })=>{
29
30
  try {
30
31
  const { pathname } = new URL(request.url);
@@ -48,10 +49,13 @@ function createEdgeStoreStartHandler(config) {
48
49
  const { newCookies, token, baseUrl } = await init({
49
50
  ctx,
50
51
  provider,
51
- router: config.router
52
+ router: config.router,
53
+ cookieConfig
52
54
  });
53
55
  const headers = new Headers();
54
- newCookies.forEach((cookie)=>headers.append('Set-Cookie', cookie));
56
+ newCookies.forEach((cookie)=>{
57
+ headers.append('Set-Cookie', cookie);
58
+ });
55
59
  headers.set('Content-Type', 'application/json');
56
60
  return new Response(JSON.stringify({
57
61
  token,
@@ -62,7 +66,7 @@ function createEdgeStoreStartHandler(config) {
62
66
  });
63
67
  } else if (matchPath(pathname, '/request-upload')) {
64
68
  const body = await request.json();
65
- const ctxToken = getCookie(request, 'edgestore-ctx');
69
+ const ctxToken = getCookie(request, resolvedCookieConfig.ctx.name);
66
70
  const result = await requestUpload({
67
71
  provider,
68
72
  router: config.router,
@@ -77,7 +81,7 @@ function createEdgeStoreStartHandler(config) {
77
81
  });
78
82
  } else if (matchPath(pathname, '/request-upload-parts')) {
79
83
  const body = await request.json();
80
- const ctxToken = getCookie(request, 'edgestore-ctx');
84
+ const ctxToken = getCookie(request, resolvedCookieConfig.ctx.name);
81
85
  const result = await requestUploadParts({
82
86
  provider,
83
87
  router: config.router,
@@ -92,7 +96,7 @@ function createEdgeStoreStartHandler(config) {
92
96
  });
93
97
  } else if (matchPath(pathname, '/complete-multipart-upload')) {
94
98
  const body = await request.json();
95
- const ctxToken = getCookie(request, 'edgestore-ctx');
99
+ const ctxToken = getCookie(request, resolvedCookieConfig.ctx.name);
96
100
  await completeMultipartUpload({
97
101
  provider,
98
102
  router: config.router,
@@ -104,7 +108,7 @@ function createEdgeStoreStartHandler(config) {
104
108
  });
105
109
  } else if (matchPath(pathname, '/confirm-upload')) {
106
110
  const body = await request.json();
107
- const ctxToken = getCookie(request, 'edgestore-ctx');
111
+ const ctxToken = getCookie(request, resolvedCookieConfig.ctx.name);
108
112
  const result = await confirmUpload({
109
113
  provider,
110
114
  router: config.router,
@@ -119,7 +123,7 @@ function createEdgeStoreStartHandler(config) {
119
123
  });
120
124
  } else if (matchPath(pathname, '/delete-file')) {
121
125
  const body = await request.json();
122
- const ctxToken = getCookie(request, 'edgestore-ctx');
126
+ const ctxToken = getCookie(request, resolvedCookieConfig.ctx.name);
123
127
  const result = await deleteFile({
124
128
  provider,
125
129
  router: config.router,
@@ -2,8 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var shared = require('../shared-685c8a0c.js');
6
- var index = require('../index-7b259533.js');
5
+ var shared = require('../shared-8a6bcddb.js');
6
+ var index = require('../index-0c5489b9.js');
7
7
  require('@edgestore/shared');
8
8
  require('@panva/hkdf');
9
9
  require('cookie');
@@ -1,6 +1,6 @@
1
- import { b as buildPath, p as parsePath, i as isDev } from '../shared-4b199b96.mjs';
2
- import { i as initEdgeStoreSdk } from '../index-2848cb40.mjs';
3
- export { e as edgeStoreRawSdk, i as initEdgeStoreSdk } from '../index-2848cb40.mjs';
1
+ import { b as buildPath, p as parsePath, i as isDev } from '../shared-d2a0d681.mjs';
2
+ import { i as initEdgeStoreSdk } from '../index-e0432eed.mjs';
3
+ export { e as edgeStoreRawSdk, i as initEdgeStoreSdk } from '../index-e0432eed.mjs';
4
4
  import '@edgestore/shared';
5
5
  import '@panva/hkdf';
6
6
  import 'cookie';
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var shared$1 = require('@edgestore/shared');
4
- var shared = require('./shared-685c8a0c.js');
4
+ var shared = require('./shared-8a6bcddb.js');
5
5
 
6
6
  const DEFAULT_MESSAGE = `Missing EDGE_STORE_ACCESS_KEY or EDGE_STORE_SECRET_KEY.
7
7
  This can happen if you are trying to import something related to the backend of EdgeStore in a client component.`;
@@ -1,5 +1,5 @@
1
1
  import { EdgeStoreError } from '@edgestore/shared';
2
- import { g as getEnv } from './shared-25dbfab4.js';
2
+ import { g as getEnv } from './shared-8397d4db.js';
3
3
 
4
4
  const DEFAULT_MESSAGE = `Missing EDGE_STORE_ACCESS_KEY or EDGE_STORE_SECRET_KEY.
5
5
  This can happen if you are trying to import something related to the backend of EdgeStore in a client component.`;
@@ -1,5 +1,5 @@
1
1
  import { EdgeStoreError } from '@edgestore/shared';
2
- import { g as getEnv } from './shared-4b199b96.mjs';
2
+ import { g as getEnv } from './shared-d2a0d681.mjs';
3
3
 
4
4
  const DEFAULT_MESSAGE = `Missing EDGE_STORE_ACCESS_KEY or EDGE_STORE_SECRET_KEY.
5
5
  This can happen if you are trying to import something related to the backend of EdgeStore in a client component.`;
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var clientS3 = require('@aws-sdk/client-s3');
6
6
  var s3RequestPresigner = require('@aws-sdk/s3-request-presigner');
7
7
  var uuid = require('uuid');
8
- var shared = require('../../shared-685c8a0c.js');
8
+ var shared = require('../../shared-8a6bcddb.js');
9
9
  require('@edgestore/shared');
10
10
  require('@panva/hkdf');
11
11
  require('cookie');
@@ -1,7 +1,7 @@
1
1
  import { S3Client, HeadObjectCommand, PutObjectCommand, DeleteObjectCommand } from '@aws-sdk/client-s3';
2
2
  import { getSignedUrl } from '@aws-sdk/s3-request-presigner';
3
3
  import { v4 } from 'uuid';
4
- import { g as getEnv } from '../../shared-4b199b96.mjs';
4
+ import { g as getEnv } from '../../shared-d2a0d681.mjs';
5
5
  import '@edgestore/shared';
6
6
  import '@panva/hkdf';
7
7
  import 'cookie';
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var storageBlob = require('@azure/storage-blob');
6
6
  var uuid = require('uuid');
7
- var shared = require('../../shared-685c8a0c.js');
7
+ var shared = require('../../shared-8a6bcddb.js');
8
8
  require('@edgestore/shared');
9
9
  require('@panva/hkdf');
10
10
  require('cookie');
@@ -1,6 +1,6 @@
1
1
  import { BlobServiceClient } from '@azure/storage-blob';
2
2
  import { v4 } from 'uuid';
3
- import { g as getEnv } from '../../shared-4b199b96.mjs';
3
+ import { g as getEnv } from '../../shared-d2a0d681.mjs';
4
4
  import '@edgestore/shared';
5
5
  import '@panva/hkdf';
6
6
  import 'cookie';
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var shared$1 = require('@edgestore/shared');
6
- var shared = require('../../shared-685c8a0c.js');
7
- var index = require('../../index-7b259533.js');
6
+ var shared = require('../../shared-8a6bcddb.js');
7
+ var index = require('../../index-0c5489b9.js');
8
8
  require('@panva/hkdf');
9
9
  require('cookie');
10
10
  require('jose');
@@ -1,6 +1,6 @@
1
1
  import { EdgeStoreError } from '@edgestore/shared';
2
- import { g as getEnv } from '../../shared-4b199b96.mjs';
3
- import { E as EdgeStoreCredentialsError, i as initEdgeStoreSdk } from '../../index-2848cb40.mjs';
2
+ import { g as getEnv } from '../../shared-d2a0d681.mjs';
3
+ import { E as EdgeStoreCredentialsError, i as initEdgeStoreSdk } from '../../index-e0432eed.mjs';
4
4
  import '@panva/hkdf';
5
5
  import 'cookie';
6
6
  import 'jose';
@@ -17,26 +17,53 @@ const IMAGE_MIME_TYPES = [
17
17
 
18
18
  // TODO: change it to 1 hour when we have a way to refresh the token
19
19
  const DEFAULT_MAX_AGE = 30 * 24 * 60 * 60; // 30 days
20
+ /**
21
+ * Merges the provided cookie configuration with default values
22
+ */
23
+ function getCookieConfig(cookieConfig) {
24
+ const defaultOptions = {
25
+ path: '/',
26
+ maxAge: DEFAULT_MAX_AGE,
27
+ };
28
+ // Helper function to merge options, filtering out undefined values
29
+ const mergeOptions = (configOptions) => {
30
+ const merged = { ...defaultOptions };
31
+ if (configOptions) {
32
+ Object.keys(configOptions).forEach((key) => {
33
+ const value = configOptions[key];
34
+ if (value !== undefined) {
35
+ merged[key] = value;
36
+ }
37
+ });
38
+ }
39
+ return merged;
40
+ };
41
+ return {
42
+ ctx: {
43
+ name: cookieConfig?.ctx?.name ?? 'edgestore-ctx',
44
+ options: mergeOptions(cookieConfig?.ctx?.options),
45
+ },
46
+ token: {
47
+ name: cookieConfig?.token?.name ?? 'edgestore-token',
48
+ options: mergeOptions(cookieConfig?.token?.options),
49
+ },
50
+ };
51
+ }
20
52
  async function init(params) {
21
53
  const log = globalThis._EDGE_STORE_LOGGER;
22
- const { ctx, provider, router } = params;
54
+ const { ctx, provider, router, cookieConfig } = params;
23
55
  log.debug('Running [init]', { ctx });
56
+ const resolvedCookieConfig = getCookieConfig(cookieConfig);
24
57
  const ctxToken = await encryptJWT(ctx);
25
58
  const { token } = await provider.init({
26
59
  ctx,
27
60
  router: router,
28
61
  });
29
62
  const newCookies = [
30
- serialize('edgestore-ctx', ctxToken, {
31
- path: '/',
32
- maxAge: DEFAULT_MAX_AGE,
33
- }),
63
+ serialize(resolvedCookieConfig.ctx.name, ctxToken, resolvedCookieConfig.ctx.options),
34
64
  ];
35
65
  if (token) {
36
- newCookies.push(serialize('edgestore-token', token, {
37
- path: '/',
38
- maxAge: DEFAULT_MAX_AGE,
39
- }));
66
+ newCookies.push(serialize(resolvedCookieConfig.token.name, token, resolvedCookieConfig.token.options));
40
67
  }
41
68
  const baseUrl = await provider.getBaseUrl();
42
69
  log.debug('Finished [init]', { ctx, newCookies, token, baseUrl });
@@ -398,4 +425,4 @@ function isDev() {
398
425
  import.meta.env?.DEV);
399
426
  }
400
427
 
401
- export { init as a, buildPath as b, requestUploadParts as c, completeMultipartUpload as d, confirmUpload as e, deleteFile as f, getEnv as g, isDev as i, parsePath as p, requestUpload as r };
428
+ export { getCookieConfig as a, buildPath as b, init as c, requestUploadParts as d, completeMultipartUpload as e, confirmUpload as f, getEnv as g, deleteFile as h, isDev as i, parsePath as p, requestUpload as r };
@@ -19,28 +19,56 @@ const IMAGE_MIME_TYPES = [
19
19
 
20
20
  // TODO: change it to 1 hour when we have a way to refresh the token
21
21
  const DEFAULT_MAX_AGE = 30 * 24 * 60 * 60; // 30 days
22
+ /**
23
+ * Merges the provided cookie configuration with default values
24
+ */ function getCookieConfig(cookieConfig) {
25
+ const defaultOptions = {
26
+ path: '/',
27
+ maxAge: DEFAULT_MAX_AGE
28
+ };
29
+ // Helper function to merge options, filtering out undefined values
30
+ const mergeOptions = (configOptions)=>{
31
+ const merged = {
32
+ ...defaultOptions
33
+ };
34
+ if (configOptions) {
35
+ Object.keys(configOptions).forEach((key)=>{
36
+ const value = configOptions[key];
37
+ if (value !== undefined) {
38
+ merged[key] = value;
39
+ }
40
+ });
41
+ }
42
+ return merged;
43
+ };
44
+ return {
45
+ ctx: {
46
+ name: cookieConfig?.ctx?.name ?? 'edgestore-ctx',
47
+ options: mergeOptions(cookieConfig?.ctx?.options)
48
+ },
49
+ token: {
50
+ name: cookieConfig?.token?.name ?? 'edgestore-token',
51
+ options: mergeOptions(cookieConfig?.token?.options)
52
+ }
53
+ };
54
+ }
22
55
  async function init(params) {
23
56
  const log = globalThis._EDGE_STORE_LOGGER;
24
- const { ctx, provider, router } = params;
57
+ const { ctx, provider, router, cookieConfig } = params;
25
58
  log.debug('Running [init]', {
26
59
  ctx
27
60
  });
61
+ const resolvedCookieConfig = getCookieConfig(cookieConfig);
28
62
  const ctxToken = await encryptJWT(ctx);
29
63
  const { token } = await provider.init({
30
64
  ctx,
31
65
  router: router
32
66
  });
33
67
  const newCookies = [
34
- cookie.serialize('edgestore-ctx', ctxToken, {
35
- path: '/',
36
- maxAge: DEFAULT_MAX_AGE
37
- })
68
+ cookie.serialize(resolvedCookieConfig.ctx.name, ctxToken, resolvedCookieConfig.ctx.options)
38
69
  ];
39
70
  if (token) {
40
- newCookies.push(cookie.serialize('edgestore-token', token, {
41
- path: '/',
42
- maxAge: DEFAULT_MAX_AGE
43
- }));
71
+ newCookies.push(cookie.serialize(resolvedCookieConfig.token.name, token, resolvedCookieConfig.token.options));
44
72
  }
45
73
  const baseUrl = await provider.getBaseUrl();
46
74
  log.debug('Finished [init]', {
@@ -427,6 +455,7 @@ exports.buildPath = buildPath;
427
455
  exports.completeMultipartUpload = completeMultipartUpload;
428
456
  exports.confirmUpload = confirmUpload;
429
457
  exports.deleteFile = deleteFile;
458
+ exports.getCookieConfig = getCookieConfig;
430
459
  exports.getEnv = getEnv;
431
460
  exports.init = init;
432
461
  exports.isDev = isDev;
@@ -17,28 +17,56 @@ const IMAGE_MIME_TYPES = [
17
17
 
18
18
  // TODO: change it to 1 hour when we have a way to refresh the token
19
19
  const DEFAULT_MAX_AGE = 30 * 24 * 60 * 60; // 30 days
20
+ /**
21
+ * Merges the provided cookie configuration with default values
22
+ */ function getCookieConfig(cookieConfig) {
23
+ const defaultOptions = {
24
+ path: '/',
25
+ maxAge: DEFAULT_MAX_AGE
26
+ };
27
+ // Helper function to merge options, filtering out undefined values
28
+ const mergeOptions = (configOptions)=>{
29
+ const merged = {
30
+ ...defaultOptions
31
+ };
32
+ if (configOptions) {
33
+ Object.keys(configOptions).forEach((key)=>{
34
+ const value = configOptions[key];
35
+ if (value !== undefined) {
36
+ merged[key] = value;
37
+ }
38
+ });
39
+ }
40
+ return merged;
41
+ };
42
+ return {
43
+ ctx: {
44
+ name: cookieConfig?.ctx?.name ?? 'edgestore-ctx',
45
+ options: mergeOptions(cookieConfig?.ctx?.options)
46
+ },
47
+ token: {
48
+ name: cookieConfig?.token?.name ?? 'edgestore-token',
49
+ options: mergeOptions(cookieConfig?.token?.options)
50
+ }
51
+ };
52
+ }
20
53
  async function init(params) {
21
54
  const log = globalThis._EDGE_STORE_LOGGER;
22
- const { ctx, provider, router } = params;
55
+ const { ctx, provider, router, cookieConfig } = params;
23
56
  log.debug('Running [init]', {
24
57
  ctx
25
58
  });
59
+ const resolvedCookieConfig = getCookieConfig(cookieConfig);
26
60
  const ctxToken = await encryptJWT(ctx);
27
61
  const { token } = await provider.init({
28
62
  ctx,
29
63
  router: router
30
64
  });
31
65
  const newCookies = [
32
- serialize('edgestore-ctx', ctxToken, {
33
- path: '/',
34
- maxAge: DEFAULT_MAX_AGE
35
- })
66
+ serialize(resolvedCookieConfig.ctx.name, ctxToken, resolvedCookieConfig.ctx.options)
36
67
  ];
37
68
  if (token) {
38
- newCookies.push(serialize('edgestore-token', token, {
39
- path: '/',
40
- maxAge: DEFAULT_MAX_AGE
41
- }));
69
+ newCookies.push(serialize(resolvedCookieConfig.token.name, token, resolvedCookieConfig.token.options));
42
70
  }
43
71
  const baseUrl = await provider.getBaseUrl();
44
72
  log.debug('Finished [init]', {
@@ -421,4 +449,4 @@ function isDev() {
421
449
  import.meta.env?.DEV;
422
450
  }
423
451
 
424
- export { init as a, buildPath as b, requestUploadParts as c, completeMultipartUpload as d, confirmUpload as e, deleteFile as f, getEnv as g, isDev as i, parsePath as p, requestUpload as r };
452
+ export { getCookieConfig as a, buildPath as b, init as c, requestUploadParts as d, completeMultipartUpload as e, confirmUpload as f, getEnv as g, deleteFile as h, isDev as i, parsePath as p, requestUpload as r };
@@ -1,4 +1,4 @@
1
- import { i as isDev } from './shared-4b199b96.mjs';
1
+ import { i as isDev } from './shared-d2a0d681.mjs';
2
2
 
3
3
  /* eslint-disable no-console */ function _define_property(obj, key, value) {
4
4
  if (key in obj) {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var shared = require('./shared-685c8a0c.js');
3
+ var shared = require('./shared-8a6bcddb.js');
4
4
 
5
5
  /* eslint-disable no-console */ function _define_property(obj, key, value) {
6
6
  if (key in obj) {
@@ -1,4 +1,4 @@
1
- import { i as isDev } from './shared-25dbfab4.js';
1
+ import { i as isDev } from './shared-8397d4db.js';
2
2
 
3
3
  /* eslint-disable no-console */
4
4
  const logLevel = ['debug', 'info', 'warn', 'error', 'none'];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edgestore/server",
3
- "version": "0.5.2",
3
+ "version": "0.5.3-alpha.0",
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",
@@ -109,7 +109,7 @@
109
109
  },
110
110
  "license": "MIT",
111
111
  "dependencies": {
112
- "@edgestore/shared": "0.5.2",
112
+ "@edgestore/shared": "0.5.3-alpha.0",
113
113
  "@panva/hkdf": "^1.0.4",
114
114
  "cookie": "^0.5.0",
115
115
  "jose": "^4.13.1",
@@ -145,11 +145,11 @@
145
145
  "astro": "^5.7.12",
146
146
  "fastify": "^5.3.2",
147
147
  "hono": "^4.7.9",
148
- "next": "^15.2.4",
149
- "react": "^19.0.0",
150
- "react-dom": "^19.0.0",
148
+ "next": "15.3.1",
149
+ "react": "19.1.0",
150
+ "react-dom": "19.1.0",
151
151
  "typescript": "^5",
152
- "zod": "3.21.4"
152
+ "zod": "3.25.42"
153
153
  },
154
- "gitHead": "97cb861d3f56e4e04c83acc6808d56771433df29"
154
+ "gitHead": "8a6f2d56d78f1a392ca7b8be93ec277f4b973461"
155
155
  }