@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.
- package/dist/adapters/astro/index.d.ts +3 -0
- package/dist/adapters/astro/index.d.ts.map +1 -1
- package/dist/adapters/astro/index.js +23 -21
- package/dist/adapters/astro/index.mjs +12 -10
- package/dist/adapters/express/index.d.ts +3 -0
- package/dist/adapters/express/index.d.ts.map +1 -1
- package/dist/adapters/express/index.js +23 -21
- package/dist/adapters/express/index.mjs +12 -10
- package/dist/adapters/fastify/index.d.ts +4 -1
- package/dist/adapters/fastify/index.d.ts.map +1 -1
- package/dist/adapters/fastify/index.js +23 -21
- package/dist/adapters/fastify/index.mjs +12 -10
- package/dist/adapters/hono/index.d.ts +3 -0
- package/dist/adapters/hono/index.d.ts.map +1 -1
- package/dist/adapters/hono/index.js +23 -21
- package/dist/adapters/hono/index.mjs +12 -10
- package/dist/adapters/next/app/index.d.ts +3 -0
- package/dist/adapters/next/app/index.d.ts.map +1 -1
- package/dist/adapters/next/app/index.js +24 -22
- package/dist/adapters/next/app/index.mjs +12 -10
- package/dist/adapters/next/pages/index.d.ts +3 -0
- package/dist/adapters/next/pages/index.d.ts.map +1 -1
- package/dist/adapters/next/pages/index.js +24 -22
- package/dist/adapters/next/pages/index.mjs +12 -10
- package/dist/adapters/remix/index.d.ts +3 -0
- package/dist/adapters/remix/index.d.ts.map +1 -1
- package/dist/adapters/remix/index.js +23 -21
- package/dist/adapters/remix/index.mjs +12 -10
- package/dist/adapters/shared.d.ts +74 -0
- package/dist/adapters/shared.d.ts.map +1 -1
- package/dist/adapters/start/index.d.ts +3 -0
- package/dist/adapters/start/index.d.ts.map +1 -1
- package/dist/adapters/start/index.js +26 -22
- package/dist/adapters/start/index.mjs +15 -11
- package/dist/core/index.js +2 -2
- package/dist/core/index.mjs +3 -3
- package/dist/{index-7b259533.js → index-0c5489b9.js} +1 -1
- package/dist/{index-421c502f.js → index-c5c3cdaa.js} +1 -1
- package/dist/{index-2848cb40.mjs → index-e0432eed.mjs} +1 -1
- package/dist/providers/aws/index.js +1 -1
- package/dist/providers/aws/index.mjs +1 -1
- package/dist/providers/azure/index.js +1 -1
- package/dist/providers/azure/index.mjs +1 -1
- package/dist/providers/edgestore/index.js +2 -2
- package/dist/providers/edgestore/index.mjs +2 -2
- package/dist/{shared-25dbfab4.js → shared-8397d4db.js} +37 -10
- package/dist/{shared-685c8a0c.js → shared-8a6bcddb.js} +38 -9
- package/dist/{shared-4b199b96.mjs → shared-d2a0d681.mjs} +38 -10
- package/dist/{utils-7349adab.mjs → utils-2dd5613c.mjs} +1 -1
- package/dist/{utils-0aab6e3b.js → utils-681a13a7.js} +1 -1
- package/dist/{utils-b3d35894.js → utils-b30649cc.js} +1 -1
- package/package.json +7 -7
- package/src/adapters/astro/index.ts +19 -9
- package/src/adapters/express/index.ts +13 -6
- package/src/adapters/fastify/index.ts +33 -22
- package/src/adapters/hono/index.ts +13 -6
- package/src/adapters/next/app/index.ts +13 -6
- package/src/adapters/next/pages/index.ts +13 -6
- package/src/adapters/remix/index.ts +13 -6
- package/src/adapters/shared.ts +125 -9
- package/src/adapters/start/index.ts +16 -7
|
@@ -2,24 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var shared = require('@edgestore/shared');
|
|
6
|
-
var utils = require('../../../utils-
|
|
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
|
|
9
|
-
require('../../../index-
|
|
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');
|
|
13
13
|
require('uuid');
|
|
14
14
|
|
|
15
15
|
function createEdgeStoreNextHandler(config) {
|
|
16
|
-
const { provider = providers_edgestore_index.EdgeStoreProvider() } = config;
|
|
16
|
+
const { provider = providers_edgestore_index.EdgeStoreProvider(), cookieConfig } = config;
|
|
17
17
|
const log = new utils.Logger(config.logLevel);
|
|
18
18
|
globalThis._EDGE_STORE_LOGGER = log;
|
|
19
19
|
log.debug('Creating EdgeStore Next handler (pages adapter)');
|
|
20
|
+
const resolvedCookieConfig = shared.getCookieConfig(cookieConfig);
|
|
20
21
|
return async (req, res)=>{
|
|
21
22
|
try {
|
|
22
|
-
if (!('json' in res)) throw new shared.EdgeStoreError({
|
|
23
|
+
if (!('json' in res)) throw new shared$1.EdgeStoreError({
|
|
23
24
|
message: 'Error running the pages adapter. Make sure you are importing the correct adapter in your router configuration',
|
|
24
25
|
code: 'SERVER_ERROR'
|
|
25
26
|
});
|
|
@@ -34,16 +35,17 @@ function createEdgeStoreNextHandler(config) {
|
|
|
34
35
|
res
|
|
35
36
|
}) : {};
|
|
36
37
|
} catch (err) {
|
|
37
|
-
throw new shared.EdgeStoreError({
|
|
38
|
+
throw new shared$1.EdgeStoreError({
|
|
38
39
|
message: 'Error creating context',
|
|
39
40
|
code: 'CREATE_CONTEXT_ERROR',
|
|
40
41
|
cause: err instanceof Error ? err : undefined
|
|
41
42
|
});
|
|
42
43
|
}
|
|
43
|
-
const { newCookies, token, baseUrl } = await shared
|
|
44
|
+
const { newCookies, token, baseUrl } = await shared.init({
|
|
44
45
|
ctx,
|
|
45
46
|
provider,
|
|
46
|
-
router: config.router
|
|
47
|
+
router: config.router,
|
|
48
|
+
cookieConfig
|
|
47
49
|
});
|
|
48
50
|
res.setHeader('Set-Cookie', newCookies);
|
|
49
51
|
res.json({
|
|
@@ -51,40 +53,40 @@ function createEdgeStoreNextHandler(config) {
|
|
|
51
53
|
baseUrl
|
|
52
54
|
});
|
|
53
55
|
} else if (utils.matchPath(pathname, '/request-upload')) {
|
|
54
|
-
res.json(await shared
|
|
56
|
+
res.json(await shared.requestUpload({
|
|
55
57
|
provider,
|
|
56
58
|
router: config.router,
|
|
57
59
|
body: req.body,
|
|
58
|
-
ctxToken: req.cookies[
|
|
60
|
+
ctxToken: req.cookies[resolvedCookieConfig.ctx.name]
|
|
59
61
|
}));
|
|
60
62
|
} else if (utils.matchPath(pathname, '/request-upload-parts')) {
|
|
61
|
-
res.json(await shared
|
|
63
|
+
res.json(await shared.requestUploadParts({
|
|
62
64
|
provider,
|
|
63
65
|
router: config.router,
|
|
64
66
|
body: req.body,
|
|
65
|
-
ctxToken: req.cookies[
|
|
67
|
+
ctxToken: req.cookies[resolvedCookieConfig.ctx.name]
|
|
66
68
|
}));
|
|
67
69
|
} else if (utils.matchPath(pathname, '/complete-multipart-upload')) {
|
|
68
|
-
await shared
|
|
70
|
+
await shared.completeMultipartUpload({
|
|
69
71
|
provider,
|
|
70
72
|
router: config.router,
|
|
71
73
|
body: req.body,
|
|
72
|
-
ctxToken: req.cookies[
|
|
74
|
+
ctxToken: req.cookies[resolvedCookieConfig.ctx.name]
|
|
73
75
|
});
|
|
74
76
|
res.status(200).end();
|
|
75
77
|
} else if (utils.matchPath(pathname, '/confirm-upload')) {
|
|
76
|
-
res.json(await shared
|
|
78
|
+
res.json(await shared.confirmUpload({
|
|
77
79
|
provider,
|
|
78
80
|
router: config.router,
|
|
79
81
|
body: req.body,
|
|
80
|
-
ctxToken: req.cookies[
|
|
82
|
+
ctxToken: req.cookies[resolvedCookieConfig.ctx.name]
|
|
81
83
|
}));
|
|
82
84
|
} else if (utils.matchPath(pathname, '/delete-file')) {
|
|
83
|
-
res.json(await shared
|
|
85
|
+
res.json(await shared.deleteFile({
|
|
84
86
|
provider,
|
|
85
87
|
router: config.router,
|
|
86
88
|
body: req.body,
|
|
87
|
-
ctxToken: req.cookies[
|
|
89
|
+
ctxToken: req.cookies[resolvedCookieConfig.ctx.name]
|
|
88
90
|
}));
|
|
89
91
|
} else if (utils.matchPath(pathname, '/proxy-file')) {
|
|
90
92
|
const { url } = req.query;
|
|
@@ -104,13 +106,13 @@ function createEdgeStoreNextHandler(config) {
|
|
|
104
106
|
res.status(404).end();
|
|
105
107
|
}
|
|
106
108
|
} catch (err) {
|
|
107
|
-
if (err instanceof shared.EdgeStoreError) {
|
|
109
|
+
if (err instanceof shared$1.EdgeStoreError) {
|
|
108
110
|
log[err.level](err.formattedMessage());
|
|
109
111
|
if (err.cause) log[err.level](err.cause);
|
|
110
|
-
res.status(shared.EDGE_STORE_ERROR_CODES[err.code]).json(err.formattedJson());
|
|
112
|
+
res.status(shared$1.EDGE_STORE_ERROR_CODES[err.code]).json(err.formattedJson());
|
|
111
113
|
} else {
|
|
112
114
|
log.error(err);
|
|
113
|
-
res.status(500).send(new shared.EdgeStoreError({
|
|
115
|
+
res.status(500).send(new shared$1.EdgeStoreError({
|
|
114
116
|
message: 'Internal Server Error',
|
|
115
117
|
code: 'SERVER_ERROR'
|
|
116
118
|
}).formattedJson());
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import { EdgeStoreError, EDGE_STORE_ERROR_CODES } from '@edgestore/shared';
|
|
2
|
-
import { L as Logger, m as matchPath } from '../../../utils-
|
|
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,
|
|
5
|
-
import '../../../index-
|
|
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';
|
|
9
9
|
import 'uuid';
|
|
10
10
|
|
|
11
11
|
function createEdgeStoreNextHandler(config) {
|
|
12
|
-
const { provider = EdgeStoreProvider() } = config;
|
|
12
|
+
const { provider = EdgeStoreProvider(), cookieConfig } = config;
|
|
13
13
|
const log = new Logger(config.logLevel);
|
|
14
14
|
globalThis._EDGE_STORE_LOGGER = log;
|
|
15
15
|
log.debug('Creating EdgeStore Next handler (pages adapter)');
|
|
16
|
+
const resolvedCookieConfig = getCookieConfig(cookieConfig);
|
|
16
17
|
return async (req, res)=>{
|
|
17
18
|
try {
|
|
18
19
|
if (!('json' in res)) throw new EdgeStoreError({
|
|
@@ -39,7 +40,8 @@ function createEdgeStoreNextHandler(config) {
|
|
|
39
40
|
const { newCookies, token, baseUrl } = await init({
|
|
40
41
|
ctx,
|
|
41
42
|
provider,
|
|
42
|
-
router: config.router
|
|
43
|
+
router: config.router,
|
|
44
|
+
cookieConfig
|
|
43
45
|
});
|
|
44
46
|
res.setHeader('Set-Cookie', newCookies);
|
|
45
47
|
res.json({
|
|
@@ -51,21 +53,21 @@ function createEdgeStoreNextHandler(config) {
|
|
|
51
53
|
provider,
|
|
52
54
|
router: config.router,
|
|
53
55
|
body: req.body,
|
|
54
|
-
ctxToken: req.cookies[
|
|
56
|
+
ctxToken: req.cookies[resolvedCookieConfig.ctx.name]
|
|
55
57
|
}));
|
|
56
58
|
} else if (matchPath(pathname, '/request-upload-parts')) {
|
|
57
59
|
res.json(await requestUploadParts({
|
|
58
60
|
provider,
|
|
59
61
|
router: config.router,
|
|
60
62
|
body: req.body,
|
|
61
|
-
ctxToken: req.cookies[
|
|
63
|
+
ctxToken: req.cookies[resolvedCookieConfig.ctx.name]
|
|
62
64
|
}));
|
|
63
65
|
} else if (matchPath(pathname, '/complete-multipart-upload')) {
|
|
64
66
|
await completeMultipartUpload({
|
|
65
67
|
provider,
|
|
66
68
|
router: config.router,
|
|
67
69
|
body: req.body,
|
|
68
|
-
ctxToken: req.cookies[
|
|
70
|
+
ctxToken: req.cookies[resolvedCookieConfig.ctx.name]
|
|
69
71
|
});
|
|
70
72
|
res.status(200).end();
|
|
71
73
|
} else if (matchPath(pathname, '/confirm-upload')) {
|
|
@@ -73,14 +75,14 @@ function createEdgeStoreNextHandler(config) {
|
|
|
73
75
|
provider,
|
|
74
76
|
router: config.router,
|
|
75
77
|
body: req.body,
|
|
76
|
-
ctxToken: req.cookies[
|
|
78
|
+
ctxToken: req.cookies[resolvedCookieConfig.ctx.name]
|
|
77
79
|
}));
|
|
78
80
|
} else if (matchPath(pathname, '/delete-file')) {
|
|
79
81
|
res.json(await deleteFile({
|
|
80
82
|
provider,
|
|
81
83
|
router: config.router,
|
|
82
84
|
body: req.body,
|
|
83
|
-
ctxToken: req.cookies[
|
|
85
|
+
ctxToken: req.cookies[resolvedCookieConfig.ctx.name]
|
|
84
86
|
}));
|
|
85
87
|
} else if (matchPath(pathname, '/proxy-file')) {
|
|
86
88
|
const { url } = req.query;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type EdgeStoreRouter, type MaybePromise, type Provider } from '@edgestore/shared';
|
|
2
2
|
import { type LogLevel } from '../../libs/logger';
|
|
3
|
+
import { type CookieConfig } from '../shared';
|
|
3
4
|
export type CreateContextOptions = {
|
|
4
5
|
req: Request;
|
|
5
6
|
};
|
|
@@ -7,10 +8,12 @@ export type Config<TCtx> = {
|
|
|
7
8
|
provider?: Provider;
|
|
8
9
|
router: EdgeStoreRouter<TCtx>;
|
|
9
10
|
logLevel?: LogLevel;
|
|
11
|
+
cookieConfig?: CookieConfig;
|
|
10
12
|
} & (TCtx extends Record<string, never> ? object : {
|
|
11
13
|
provider?: Provider;
|
|
12
14
|
router: EdgeStoreRouter<TCtx>;
|
|
13
15
|
createContext: (opts: CreateContextOptions) => MaybePromise<TCtx>;
|
|
16
|
+
cookieConfig?: CookieConfig;
|
|
14
17
|
});
|
|
15
18
|
export declare function createEdgeStoreRemixHandler<TCtx>(config: Config<TCtx>): ({ request: req }: {
|
|
16
19
|
request: Request;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/remix/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,QAAQ,EACd,MAAM,mBAAmB,CAAC;AAC3B,OAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/remix/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,QAAQ,EACd,MAAM,mBAAmB,CAAC;AAC3B,OAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG1D,OAAO,EAUL,KAAK,YAAY,EAIlB,MAAM,WAAW,CAAC;AAEnB,MAAM,MAAM,oBAAoB,GAAG;IACjC,GAAG,EAAE,OAAO,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,MAAM,CAAC,IAAI,IAAI;IACzB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;IAC9B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,GAAG,CAAC,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACnC,MAAM,GACN;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;IAClE,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,CAAC,CAAC;AAsBP,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,sBAQpC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,uBAsIrD"}
|
|
@@ -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-
|
|
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
|
|
9
|
-
require('../../index-
|
|
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');
|
|
@@ -24,10 +24,11 @@ function getCookie(req, name) {
|
|
|
24
24
|
return cookies[name];
|
|
25
25
|
}
|
|
26
26
|
function createEdgeStoreRemixHandler(config) {
|
|
27
|
-
const { provider = providers_edgestore_index.EdgeStoreProvider() } = config;
|
|
27
|
+
const { provider = providers_edgestore_index.EdgeStoreProvider(), cookieConfig } = config;
|
|
28
28
|
const log = new utils.Logger(config.logLevel);
|
|
29
29
|
globalThis._EDGE_STORE_LOGGER = log;
|
|
30
30
|
log.debug('Creating EdgeStore Remix handler');
|
|
31
|
+
const resolvedCookieConfig = shared.getCookieConfig(cookieConfig);
|
|
31
32
|
return async ({ request: req })=>{
|
|
32
33
|
try {
|
|
33
34
|
const url = new URL(req.url);
|
|
@@ -41,16 +42,17 @@ function createEdgeStoreRemixHandler(config) {
|
|
|
41
42
|
req
|
|
42
43
|
}) : {};
|
|
43
44
|
} catch (err) {
|
|
44
|
-
throw new shared.EdgeStoreError({
|
|
45
|
+
throw new shared$1.EdgeStoreError({
|
|
45
46
|
message: 'Error creating context',
|
|
46
47
|
code: 'CREATE_CONTEXT_ERROR',
|
|
47
48
|
cause: err instanceof Error ? err : undefined
|
|
48
49
|
});
|
|
49
50
|
}
|
|
50
|
-
const { newCookies, token, baseUrl } = await shared
|
|
51
|
+
const { newCookies, token, baseUrl } = await shared.init({
|
|
51
52
|
ctx,
|
|
52
53
|
provider,
|
|
53
|
-
router: config.router
|
|
54
|
+
router: config.router,
|
|
55
|
+
cookieConfig
|
|
54
56
|
});
|
|
55
57
|
// Create response with cookies and token
|
|
56
58
|
const responseHeaders = new Headers();
|
|
@@ -70,46 +72,46 @@ function createEdgeStoreRemixHandler(config) {
|
|
|
70
72
|
});
|
|
71
73
|
} else if (utils.matchPath(pathname, '/request-upload')) {
|
|
72
74
|
const body = await req.json();
|
|
73
|
-
return Response.json(await shared
|
|
75
|
+
return Response.json(await shared.requestUpload({
|
|
74
76
|
provider,
|
|
75
77
|
router: config.router,
|
|
76
78
|
body,
|
|
77
|
-
ctxToken: getCookie(req,
|
|
79
|
+
ctxToken: getCookie(req, resolvedCookieConfig.ctx.name)
|
|
78
80
|
}));
|
|
79
81
|
} else if (utils.matchPath(pathname, '/request-upload-parts')) {
|
|
80
82
|
const body = await req.json();
|
|
81
|
-
return Response.json(await shared
|
|
83
|
+
return Response.json(await shared.requestUploadParts({
|
|
82
84
|
provider,
|
|
83
85
|
router: config.router,
|
|
84
86
|
body,
|
|
85
|
-
ctxToken: getCookie(req,
|
|
87
|
+
ctxToken: getCookie(req, resolvedCookieConfig.ctx.name)
|
|
86
88
|
}));
|
|
87
89
|
} else if (utils.matchPath(pathname, '/complete-multipart-upload')) {
|
|
88
90
|
const body = await req.json();
|
|
89
|
-
await shared
|
|
91
|
+
await shared.completeMultipartUpload({
|
|
90
92
|
provider,
|
|
91
93
|
router: config.router,
|
|
92
94
|
body,
|
|
93
|
-
ctxToken: getCookie(req,
|
|
95
|
+
ctxToken: getCookie(req, resolvedCookieConfig.ctx.name)
|
|
94
96
|
});
|
|
95
97
|
return new Response(null, {
|
|
96
98
|
status: 200
|
|
97
99
|
});
|
|
98
100
|
} else if (utils.matchPath(pathname, '/confirm-upload')) {
|
|
99
101
|
const body = await req.json();
|
|
100
|
-
return Response.json(await shared
|
|
102
|
+
return Response.json(await shared.confirmUpload({
|
|
101
103
|
provider,
|
|
102
104
|
router: config.router,
|
|
103
105
|
body,
|
|
104
|
-
ctxToken: getCookie(req,
|
|
106
|
+
ctxToken: getCookie(req, resolvedCookieConfig.ctx.name)
|
|
105
107
|
}));
|
|
106
108
|
} else if (utils.matchPath(pathname, '/delete-file')) {
|
|
107
109
|
const body = await req.json();
|
|
108
|
-
return Response.json(await shared
|
|
110
|
+
return Response.json(await shared.deleteFile({
|
|
109
111
|
provider,
|
|
110
112
|
router: config.router,
|
|
111
113
|
body,
|
|
112
|
-
ctxToken: getCookie(req,
|
|
114
|
+
ctxToken: getCookie(req, resolvedCookieConfig.ctx.name)
|
|
113
115
|
}));
|
|
114
116
|
} else if (utils.matchPath(pathname, '/proxy-file')) {
|
|
115
117
|
const url = new URL(req.url).searchParams.get('url');
|
|
@@ -136,15 +138,15 @@ function createEdgeStoreRemixHandler(config) {
|
|
|
136
138
|
});
|
|
137
139
|
}
|
|
138
140
|
} catch (err) {
|
|
139
|
-
if (err instanceof shared.EdgeStoreError) {
|
|
141
|
+
if (err instanceof shared$1.EdgeStoreError) {
|
|
140
142
|
log[err.level](err.formattedMessage());
|
|
141
143
|
if (err.cause) log[err.level](err.cause);
|
|
142
144
|
return Response.json(err.formattedJson(), {
|
|
143
|
-
status: shared.EDGE_STORE_ERROR_CODES[err.code]
|
|
145
|
+
status: shared$1.EDGE_STORE_ERROR_CODES[err.code]
|
|
144
146
|
});
|
|
145
147
|
} else {
|
|
146
148
|
log.error(err);
|
|
147
|
-
return Response.json(new shared.EdgeStoreError({
|
|
149
|
+
return Response.json(new shared$1.EdgeStoreError({
|
|
148
150
|
message: 'Internal Server Error',
|
|
149
151
|
code: 'SERVER_ERROR'
|
|
150
152
|
}).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-
|
|
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,
|
|
5
|
-
import '../../index-
|
|
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';
|
|
@@ -20,10 +20,11 @@ function getCookie(req, name) {
|
|
|
20
20
|
return cookies[name];
|
|
21
21
|
}
|
|
22
22
|
function createEdgeStoreRemixHandler(config) {
|
|
23
|
-
const { provider = EdgeStoreProvider() } = config;
|
|
23
|
+
const { provider = EdgeStoreProvider(), cookieConfig } = config;
|
|
24
24
|
const log = new Logger(config.logLevel);
|
|
25
25
|
globalThis._EDGE_STORE_LOGGER = log;
|
|
26
26
|
log.debug('Creating EdgeStore Remix handler');
|
|
27
|
+
const resolvedCookieConfig = getCookieConfig(cookieConfig);
|
|
27
28
|
return async ({ request: req })=>{
|
|
28
29
|
try {
|
|
29
30
|
const url = new URL(req.url);
|
|
@@ -46,7 +47,8 @@ function createEdgeStoreRemixHandler(config) {
|
|
|
46
47
|
const { newCookies, token, baseUrl } = await init({
|
|
47
48
|
ctx,
|
|
48
49
|
provider,
|
|
49
|
-
router: config.router
|
|
50
|
+
router: config.router,
|
|
51
|
+
cookieConfig
|
|
50
52
|
});
|
|
51
53
|
// Create response with cookies and token
|
|
52
54
|
const responseHeaders = new Headers();
|
|
@@ -70,7 +72,7 @@ function createEdgeStoreRemixHandler(config) {
|
|
|
70
72
|
provider,
|
|
71
73
|
router: config.router,
|
|
72
74
|
body,
|
|
73
|
-
ctxToken: getCookie(req,
|
|
75
|
+
ctxToken: getCookie(req, resolvedCookieConfig.ctx.name)
|
|
74
76
|
}));
|
|
75
77
|
} else if (matchPath(pathname, '/request-upload-parts')) {
|
|
76
78
|
const body = await req.json();
|
|
@@ -78,7 +80,7 @@ function createEdgeStoreRemixHandler(config) {
|
|
|
78
80
|
provider,
|
|
79
81
|
router: config.router,
|
|
80
82
|
body,
|
|
81
|
-
ctxToken: getCookie(req,
|
|
83
|
+
ctxToken: getCookie(req, resolvedCookieConfig.ctx.name)
|
|
82
84
|
}));
|
|
83
85
|
} else if (matchPath(pathname, '/complete-multipart-upload')) {
|
|
84
86
|
const body = await req.json();
|
|
@@ -86,7 +88,7 @@ function createEdgeStoreRemixHandler(config) {
|
|
|
86
88
|
provider,
|
|
87
89
|
router: config.router,
|
|
88
90
|
body,
|
|
89
|
-
ctxToken: getCookie(req,
|
|
91
|
+
ctxToken: getCookie(req, resolvedCookieConfig.ctx.name)
|
|
90
92
|
});
|
|
91
93
|
return new Response(null, {
|
|
92
94
|
status: 200
|
|
@@ -97,7 +99,7 @@ function createEdgeStoreRemixHandler(config) {
|
|
|
97
99
|
provider,
|
|
98
100
|
router: config.router,
|
|
99
101
|
body,
|
|
100
|
-
ctxToken: getCookie(req,
|
|
102
|
+
ctxToken: getCookie(req, resolvedCookieConfig.ctx.name)
|
|
101
103
|
}));
|
|
102
104
|
} else if (matchPath(pathname, '/delete-file')) {
|
|
103
105
|
const body = await req.json();
|
|
@@ -105,7 +107,7 @@ function createEdgeStoreRemixHandler(config) {
|
|
|
105
107
|
provider,
|
|
106
108
|
router: config.router,
|
|
107
109
|
body,
|
|
108
|
-
ctxToken: getCookie(req,
|
|
110
|
+
ctxToken: getCookie(req, resolvedCookieConfig.ctx.name)
|
|
109
111
|
}));
|
|
110
112
|
} else if (matchPath(pathname, '/proxy-file')) {
|
|
111
113
|
const url = new URL(req.url).searchParams.get('url');
|
|
@@ -1,8 +1,81 @@
|
|
|
1
1
|
import { type AnyBuilder, type EdgeStoreRouter, type Provider, type SharedDeleteFileRes, type SharedInitRes, type SharedRequestUploadPartsRes, type SharedRequestUploadRes } from '@edgestore/shared';
|
|
2
|
+
export type CookieOptions = {
|
|
3
|
+
/**
|
|
4
|
+
* Cookie path
|
|
5
|
+
* @default "/"
|
|
6
|
+
*/
|
|
7
|
+
path?: string;
|
|
8
|
+
/**
|
|
9
|
+
* Cookie max age in seconds
|
|
10
|
+
* @default 2592000 (30 days)
|
|
11
|
+
*/
|
|
12
|
+
maxAge?: number;
|
|
13
|
+
/**
|
|
14
|
+
* Cookie domain
|
|
15
|
+
*/
|
|
16
|
+
domain?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Cookie same site policy
|
|
19
|
+
*/
|
|
20
|
+
sameSite?: 'strict' | 'lax' | 'none';
|
|
21
|
+
/**
|
|
22
|
+
* Cookie secure flag
|
|
23
|
+
*/
|
|
24
|
+
secure?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Cookie http only flag
|
|
27
|
+
*/
|
|
28
|
+
httpOnly?: boolean;
|
|
29
|
+
};
|
|
30
|
+
export type CookieConfig = {
|
|
31
|
+
/**
|
|
32
|
+
* Context cookie configuration
|
|
33
|
+
*/
|
|
34
|
+
ctx?: {
|
|
35
|
+
/**
|
|
36
|
+
* Name of the context cookie
|
|
37
|
+
* @default "edgestore-ctx"
|
|
38
|
+
*/
|
|
39
|
+
name?: string;
|
|
40
|
+
/**
|
|
41
|
+
* Cookie options for context cookie
|
|
42
|
+
*/
|
|
43
|
+
options?: CookieOptions;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Token cookie configuration
|
|
47
|
+
*/
|
|
48
|
+
token?: {
|
|
49
|
+
/**
|
|
50
|
+
* Name of the token cookie
|
|
51
|
+
* @default "edgestore-token"
|
|
52
|
+
*/
|
|
53
|
+
name?: string;
|
|
54
|
+
/**
|
|
55
|
+
* Cookie options for token cookie
|
|
56
|
+
*/
|
|
57
|
+
options?: CookieOptions;
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
type ResolvedCookieConfig = {
|
|
61
|
+
ctx: {
|
|
62
|
+
name: string;
|
|
63
|
+
options: CookieOptions;
|
|
64
|
+
};
|
|
65
|
+
token: {
|
|
66
|
+
name: string;
|
|
67
|
+
options: CookieOptions;
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Merges the provided cookie configuration with default values
|
|
72
|
+
*/
|
|
73
|
+
export declare function getCookieConfig(cookieConfig?: CookieConfig): ResolvedCookieConfig;
|
|
2
74
|
export declare function init<TCtx>(params: {
|
|
3
75
|
provider: Provider;
|
|
4
76
|
router: EdgeStoreRouter<TCtx>;
|
|
5
77
|
ctx: TCtx;
|
|
78
|
+
cookieConfig?: CookieConfig;
|
|
6
79
|
}): Promise<SharedInitRes>;
|
|
7
80
|
export type RequestUploadBody = {
|
|
8
81
|
bucketName: string;
|
|
@@ -90,4 +163,5 @@ export declare function parsePath(path: {
|
|
|
90
163
|
};
|
|
91
164
|
export declare function getEnv(key: string): string | undefined;
|
|
92
165
|
export declare function isDev(): boolean;
|
|
166
|
+
export {};
|
|
93
167
|
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/adapters/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,QAAQ,EACb,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,EAC5B,MAAM,mBAAmB,CAAC;AAe3B,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE;IACvC,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;IAC9B,GAAG,EAAE,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/adapters/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type EdgeStoreRouter, type MaybePromise, type Provider } from '@edgestore/shared';
|
|
2
2
|
import { type LogLevel } from '../../libs/logger';
|
|
3
|
+
import { type CookieConfig } from '../shared';
|
|
3
4
|
export type CreateContextOptions = {
|
|
4
5
|
req: Request;
|
|
5
6
|
};
|
|
@@ -7,10 +8,12 @@ export type Config<TCtx> = {
|
|
|
7
8
|
provider?: Provider;
|
|
8
9
|
router: EdgeStoreRouter<TCtx>;
|
|
9
10
|
logLevel?: LogLevel;
|
|
11
|
+
cookieConfig?: CookieConfig;
|
|
10
12
|
} & (TCtx extends Record<string, never> ? object : {
|
|
11
13
|
provider?: Provider;
|
|
12
14
|
router: EdgeStoreRouter<TCtx>;
|
|
13
15
|
createContext: (opts: CreateContextOptions) => MaybePromise<TCtx>;
|
|
16
|
+
cookieConfig?: CookieConfig;
|
|
14
17
|
});
|
|
15
18
|
export declare function createEdgeStoreStartHandler<TCtx>(config: Config<TCtx>): ({ request }: {
|
|
16
19
|
request: Request;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/start/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,QAAQ,EACd,MAAM,mBAAmB,CAAC;AAC3B,OAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/start/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,QAAQ,EACd,MAAM,mBAAmB,CAAC;AAC3B,OAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG1D,OAAO,EAUL,KAAK,YAAY,EAIlB,MAAM,WAAW,CAAC;AAEnB,MAAM,MAAM,oBAAoB,GAAG;IACjC,GAAG,EAAE,OAAO,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,MAAM,CAAC,IAAI,IAAI;IACzB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;IAC9B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,GAAG,CAAC,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACnC,MAAM,GACN;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;IAClE,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,CAAC,CAAC;AAsBP,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,iBAQzC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,uBA+IhD"}
|