@edgestore/server 0.5.7 → 0.6.0-canary.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.
- package/adapters/astro/package.json +1 -0
- package/adapters/express/package.json +1 -0
- package/adapters/fastify/package.json +1 -0
- package/adapters/hono/package.json +1 -0
- package/adapters/next/app/package.json +1 -0
- package/adapters/next/pages/package.json +1 -0
- package/adapters/remix/package.json +1 -0
- package/adapters/start/package.json +1 -0
- package/core/package.json +1 -0
- package/dist/adapters/astro/index.cjs +134 -0
- package/dist/adapters/astro/index.d.cts +20 -0
- package/dist/adapters/astro/index.d.cts.map +1 -0
- package/dist/adapters/astro/index.d.mts +20 -0
- package/dist/adapters/astro/index.d.mts.map +1 -0
- package/dist/adapters/astro/index.mjs +128 -175
- package/dist/adapters/astro/index.mjs.map +1 -0
- package/dist/adapters/express/index.cjs +104 -0
- package/dist/adapters/express/index.d.cts +24 -0
- package/dist/adapters/express/index.d.cts.map +1 -0
- package/dist/adapters/express/index.d.mts +24 -0
- package/dist/adapters/express/index.d.mts.map +1 -0
- package/dist/adapters/express/index.mjs +100 -112
- package/dist/adapters/express/index.mjs.map +1 -0
- package/dist/adapters/fastify/index.cjs +115 -0
- package/dist/adapters/fastify/index.d.cts +24 -0
- package/dist/adapters/fastify/index.d.cts.map +1 -0
- package/dist/adapters/fastify/index.d.mts +24 -0
- package/dist/adapters/fastify/index.d.mts.map +1 -0
- package/dist/adapters/fastify/index.mjs +109 -139
- package/dist/adapters/fastify/index.mjs.map +1 -0
- package/dist/adapters/hono/index.cjs +117 -0
- package/dist/adapters/hono/index.d.cts +91 -0
- package/dist/adapters/hono/index.d.cts.map +1 -0
- package/dist/adapters/hono/index.d.mts +91 -0
- package/dist/adapters/hono/index.d.mts.map +1 -0
- package/dist/adapters/hono/index.mjs +111 -129
- package/dist/adapters/hono/index.mjs.map +1 -0
- package/dist/adapters/next/app/index.cjs +140 -0
- package/dist/adapters/next/app/index.d.cts +23 -0
- package/dist/adapters/next/app/index.d.cts.map +1 -0
- package/dist/adapters/next/app/index.d.mts +23 -0
- package/dist/adapters/next/app/index.d.mts.map +1 -0
- package/dist/adapters/next/app/index.mjs +136 -168
- package/dist/adapters/next/app/index.mjs.map +1 -0
- package/dist/adapters/next/pages/index.cjs +108 -0
- package/dist/adapters/next/pages/index.d.cts +24 -0
- package/dist/adapters/next/pages/index.d.cts.map +1 -0
- package/dist/adapters/next/pages/index.d.mts +24 -0
- package/dist/adapters/next/pages/index.d.mts.map +1 -0
- package/dist/adapters/next/pages/index.mjs +104 -116
- package/dist/adapters/next/pages/index.mjs.map +1 -0
- package/dist/adapters/remix/index.cjs +124 -0
- package/dist/adapters/remix/index.d.cts +26 -0
- package/dist/adapters/remix/index.d.cts.map +1 -0
- package/dist/adapters/remix/index.d.mts +26 -0
- package/dist/adapters/remix/index.d.mts.map +1 -0
- package/dist/adapters/remix/index.mjs +118 -150
- package/dist/adapters/remix/index.mjs.map +1 -0
- package/dist/adapters/start/index.cjs +156 -0
- package/dist/adapters/start/index.d.cts +26 -0
- package/dist/adapters/start/index.d.cts.map +1 -0
- package/dist/adapters/start/index.d.mts +26 -0
- package/dist/adapters/start/index.d.mts.map +1 -0
- package/dist/adapters/start/index.mjs +150 -184
- package/dist/adapters/start/index.mjs.map +1 -0
- package/dist/core/index.cjs +148 -0
- package/dist/core/index.d.cts +500 -0
- package/dist/core/index.d.cts.map +1 -0
- package/dist/core/index.d.mts +500 -0
- package/dist/core/index.d.mts.map +1 -0
- package/dist/core/index.mjs +135 -169
- package/dist/core/index.mjs.map +1 -0
- package/dist/edgestore-Cr88uKUx.mjs +142 -0
- package/dist/edgestore-Cr88uKUx.mjs.map +1 -0
- package/dist/edgestore-Dqb-EoFm.cjs +146 -0
- package/dist/index.cjs +8 -0
- package/dist/index.d.cts +2 -0
- package/dist/index.d.mts +2 -0
- package/dist/index.mjs +3 -1
- package/dist/providers/aws/index.cjs +89 -0
- package/dist/providers/aws/index.d.cts +71 -0
- package/dist/providers/aws/index.d.cts.map +1 -0
- package/dist/providers/aws/index.d.mts +71 -0
- package/dist/providers/aws/index.d.mts.map +1 -0
- package/dist/providers/aws/index.mjs +85 -102
- package/dist/providers/aws/index.mjs.map +1 -0
- package/dist/providers/azure/index.cjs +56 -0
- package/dist/providers/azure/index.d.cts +44 -0
- package/dist/providers/azure/index.d.cts.map +1 -0
- package/dist/providers/azure/index.d.mts +44 -0
- package/dist/providers/azure/index.d.mts.map +1 -0
- package/dist/providers/azure/index.mjs +52 -58
- package/dist/providers/azure/index.mjs.map +1 -0
- package/dist/providers/edgestore/index.cjs +5 -0
- package/dist/providers/edgestore/index.d.cts +23 -0
- package/dist/providers/edgestore/index.d.cts.map +1 -0
- package/dist/providers/edgestore/index.d.mts +23 -0
- package/dist/providers/edgestore/index.d.mts.map +1 -0
- package/dist/providers/edgestore/index.mjs +4 -146
- package/dist/sdk-AhXUPMy1.cjs +238 -0
- package/dist/sdk-CKRQe75P.mjs +222 -0
- package/dist/sdk-CKRQe75P.mjs.map +1 -0
- package/dist/shared-B39MtSQo.d.cts +68 -0
- package/dist/shared-B39MtSQo.d.cts.map +1 -0
- package/dist/shared-Bd7-gfqa.mjs +457 -0
- package/dist/shared-Bd7-gfqa.mjs.map +1 -0
- package/dist/shared-DsWTtQ1-.d.mts +68 -0
- package/dist/shared-DsWTtQ1-.d.mts.map +1 -0
- package/dist/shared-pWGwhEsU.cjs +527 -0
- package/dist/utils--x-q_GK5.mjs +44 -0
- package/dist/utils--x-q_GK5.mjs.map +1 -0
- package/dist/utils-D6YuBNUV.cjs +54 -0
- package/package.json +121 -57
- package/providers/aws/package.json +1 -0
- package/providers/azure/package.json +1 -0
- package/providers/edgestore/package.json +1 -0
- package/adapters/astro/index.d.ts +0 -1
- package/adapters/astro/index.js +0 -1
- package/adapters/express/index.d.ts +0 -1
- package/adapters/express/index.js +0 -1
- package/adapters/fastify/index.d.ts +0 -1
- package/adapters/fastify/index.js +0 -1
- package/adapters/hono/index.d.ts +0 -1
- package/adapters/hono/index.js +0 -1
- package/adapters/next/app/index.d.ts +0 -1
- package/adapters/next/app/index.js +0 -1
- package/adapters/next/pages/index.d.ts +0 -1
- package/adapters/next/pages/index.js +0 -1
- package/adapters/remix/index.d.ts +0 -1
- package/adapters/remix/index.js +0 -1
- package/adapters/start/index.d.ts +0 -1
- package/adapters/start/index.js +0 -1
- package/core/index.d.ts +0 -1
- package/core/index.js +0 -1
- package/dist/adapters/astro/index.d.ts +0 -17
- package/dist/adapters/astro/index.d.ts.map +0 -1
- package/dist/adapters/astro/index.js +0 -186
- package/dist/adapters/express/index.d.ts +0 -21
- package/dist/adapters/express/index.d.ts.map +0 -1
- package/dist/adapters/express/index.js +0 -121
- package/dist/adapters/fastify/index.d.ts +0 -21
- package/dist/adapters/fastify/index.d.ts.map +0 -1
- package/dist/adapters/fastify/index.js +0 -150
- package/dist/adapters/hono/index.d.ts +0 -86
- package/dist/adapters/hono/index.d.ts.map +0 -1
- package/dist/adapters/hono/index.js +0 -140
- package/dist/adapters/imageTypes.d.ts +0 -2
- package/dist/adapters/imageTypes.d.ts.map +0 -1
- package/dist/adapters/next/app/index.d.ts +0 -20
- package/dist/adapters/next/app/index.d.ts.map +0 -1
- package/dist/adapters/next/app/index.js +0 -177
- package/dist/adapters/next/pages/index.d.ts +0 -21
- package/dist/adapters/next/pages/index.d.ts.map +0 -1
- package/dist/adapters/next/pages/index.js +0 -125
- package/dist/adapters/remix/index.d.ts +0 -21
- package/dist/adapters/remix/index.d.ts.map +0 -1
- package/dist/adapters/remix/index.js +0 -161
- package/dist/adapters/shared.d.ts +0 -167
- package/dist/adapters/shared.d.ts.map +0 -1
- package/dist/adapters/start/index.d.ts +0 -21
- package/dist/adapters/start/index.d.ts.map +0 -1
- package/dist/adapters/start/index.js +0 -195
- package/dist/core/client/index.d.ts +0 -217
- package/dist/core/client/index.d.ts.map +0 -1
- package/dist/core/index.d.ts +0 -3
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -186
- package/dist/core/sdk/index.d.ts +0 -240
- package/dist/core/sdk/index.d.ts.map +0 -1
- package/dist/index-1e7b1b93.js +0 -235
- package/dist/index-a36b09a6.mjs +0 -231
- package/dist/index-b0fff508.js +0 -231
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -12
- package/dist/libs/errors/EdgeStoreCredentialsError.d.ts +0 -5
- package/dist/libs/errors/EdgeStoreCredentialsError.d.ts.map +0 -1
- package/dist/libs/logger.d.ts +0 -13
- package/dist/libs/logger.d.ts.map +0 -1
- package/dist/libs/utils.d.ts +0 -5
- package/dist/libs/utils.d.ts.map +0 -1
- package/dist/providers/aws/index.d.ts +0 -68
- package/dist/providers/aws/index.d.ts.map +0 -1
- package/dist/providers/aws/index.js +0 -111
- package/dist/providers/azure/index.d.ts +0 -39
- package/dist/providers/azure/index.d.ts.map +0 -1
- package/dist/providers/azure/index.js +0 -67
- package/dist/providers/edgestore/index.d.ts +0 -19
- package/dist/providers/edgestore/index.d.ts.map +0 -1
- package/dist/providers/edgestore/index.js +0 -151
- package/dist/shared-4ec2dc90.js +0 -466
- package/dist/shared-64e9c30c.js +0 -435
- package/dist/shared-c6527780.mjs +0 -454
- package/dist/utils-26113e02.js +0 -65
- package/dist/utils-ab564a9e.js +0 -44
- package/dist/utils-cba23eef.mjs +0 -62
- package/providers/aws/index.d.ts +0 -1
- package/providers/aws/index.js +0 -1
- package/providers/azure/index.d.ts +0 -1
- package/providers/azure/index.js +0 -1
- package/providers/edgestore/index.d.ts +0 -1
- package/providers/edgestore/index.js +0 -1
|
@@ -1,146 +1,116 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import '@panva/hkdf';
|
|
7
|
-
import 'cookie';
|
|
8
|
-
import 'jose';
|
|
9
|
-
import 'uuid';
|
|
1
|
+
import { a as getCookieConfig, d as requestUploadParts, i as deleteFile, n as completeMultipartUpload, r as confirmUpload, s as init, u as requestUpload } from "../../shared-Bd7-gfqa.mjs";
|
|
2
|
+
import "../../sdk-CKRQe75P.mjs";
|
|
3
|
+
import { n as logger_default, t as matchPath } from "../../utils--x-q_GK5.mjs";
|
|
4
|
+
import { t as EdgeStoreProvider } from "../../edgestore-Cr88uKUx.mjs";
|
|
5
|
+
import { EDGE_STORE_ERROR_CODES, EdgeStoreError } from "@edgestore/shared";
|
|
10
6
|
|
|
11
|
-
|
|
7
|
+
//#region src/adapters/fastify/index.ts
|
|
12
8
|
function getCookie(req, name) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const cookies = cookieHeader.split(';').reduce((acc, cookie)=>{
|
|
22
|
-
const [key, value] = cookie.trim().split('=');
|
|
23
|
-
if (key && value) acc[key] = value;
|
|
24
|
-
return acc;
|
|
25
|
-
}, {});
|
|
26
|
-
return cookies[name];
|
|
9
|
+
if ("cookies" in req) return req.cookies[name];
|
|
10
|
+
const cookieHeader = req.headers.cookie;
|
|
11
|
+
if (!cookieHeader) return void 0;
|
|
12
|
+
return cookieHeader.split(";").reduce((acc, cookie) => {
|
|
13
|
+
const [key, value] = cookie.trim().split("=");
|
|
14
|
+
if (key && value) acc[key] = value;
|
|
15
|
+
return acc;
|
|
16
|
+
}, {})[name];
|
|
27
17
|
}
|
|
28
18
|
function createEdgeStoreFastifyHandler(config) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
void reply.header('Content-Type', proxyRes.headers.get('Content-Type') ?? 'application/octet-stream');
|
|
123
|
-
return reply.send(Buffer.from(data));
|
|
124
|
-
} else {
|
|
125
|
-
return reply.status(400).send();
|
|
126
|
-
}
|
|
127
|
-
} else {
|
|
128
|
-
return reply.status(404).send();
|
|
129
|
-
}
|
|
130
|
-
} catch (err) {
|
|
131
|
-
if (err instanceof EdgeStoreError) {
|
|
132
|
-
log[err.level](err.formattedMessage());
|
|
133
|
-
if (err.cause) log[err.level](err.cause);
|
|
134
|
-
return reply.status(EDGE_STORE_ERROR_CODES[err.code]).send(err.formattedJson());
|
|
135
|
-
} else {
|
|
136
|
-
log.error(err);
|
|
137
|
-
return reply.status(500).send(new EdgeStoreError({
|
|
138
|
-
message: 'Internal Server Error',
|
|
139
|
-
code: 'SERVER_ERROR'
|
|
140
|
-
}).formattedJson());
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
};
|
|
19
|
+
const { provider = EdgeStoreProvider(), cookieConfig } = config;
|
|
20
|
+
const log = new logger_default(config.logLevel);
|
|
21
|
+
globalThis._EDGE_STORE_LOGGER = log;
|
|
22
|
+
log.debug("Creating EdgeStore Fastify handler");
|
|
23
|
+
const resolvedCookieConfig = getCookieConfig(cookieConfig);
|
|
24
|
+
return async (req, reply) => {
|
|
25
|
+
try {
|
|
26
|
+
const pathname = req.url;
|
|
27
|
+
if (matchPath(pathname, "/health")) return reply.send("OK");
|
|
28
|
+
else if (matchPath(pathname, "/init")) {
|
|
29
|
+
let ctx = {};
|
|
30
|
+
try {
|
|
31
|
+
ctx = "createContext" in config ? await config.createContext({
|
|
32
|
+
req,
|
|
33
|
+
reply
|
|
34
|
+
}) : {};
|
|
35
|
+
} catch (err) {
|
|
36
|
+
throw new EdgeStoreError({
|
|
37
|
+
message: "Error creating context",
|
|
38
|
+
code: "CREATE_CONTEXT_ERROR",
|
|
39
|
+
cause: err instanceof Error ? err : void 0
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
const { newCookies, token, baseUrl, providerName } = await init({
|
|
43
|
+
ctx,
|
|
44
|
+
provider,
|
|
45
|
+
router: config.router,
|
|
46
|
+
cookieConfig
|
|
47
|
+
});
|
|
48
|
+
if (Array.isArray(newCookies)) for (const cookie of newCookies) reply.header("Set-Cookie", cookie);
|
|
49
|
+
else if (newCookies) reply.header("Set-Cookie", newCookies);
|
|
50
|
+
return reply.send({
|
|
51
|
+
token,
|
|
52
|
+
baseUrl,
|
|
53
|
+
providerName
|
|
54
|
+
});
|
|
55
|
+
} else if (matchPath(pathname, "/request-upload")) return reply.send(await requestUpload({
|
|
56
|
+
provider,
|
|
57
|
+
router: config.router,
|
|
58
|
+
body: req.body,
|
|
59
|
+
ctxToken: getCookie(req, resolvedCookieConfig.ctx.name)
|
|
60
|
+
}));
|
|
61
|
+
else if (matchPath(pathname, "/request-upload-parts")) return reply.send(await requestUploadParts({
|
|
62
|
+
provider,
|
|
63
|
+
router: config.router,
|
|
64
|
+
body: req.body,
|
|
65
|
+
ctxToken: getCookie(req, resolvedCookieConfig.ctx.name)
|
|
66
|
+
}));
|
|
67
|
+
else if (matchPath(pathname, "/complete-multipart-upload")) {
|
|
68
|
+
await completeMultipartUpload({
|
|
69
|
+
provider,
|
|
70
|
+
router: config.router,
|
|
71
|
+
body: req.body,
|
|
72
|
+
ctxToken: getCookie(req, resolvedCookieConfig.ctx.name)
|
|
73
|
+
});
|
|
74
|
+
return reply.status(200).send();
|
|
75
|
+
} else if (matchPath(pathname, "/confirm-upload")) return reply.send(await confirmUpload({
|
|
76
|
+
provider,
|
|
77
|
+
router: config.router,
|
|
78
|
+
body: req.body,
|
|
79
|
+
ctxToken: getCookie(req, resolvedCookieConfig.ctx.name)
|
|
80
|
+
}));
|
|
81
|
+
else if (matchPath(pathname, "/delete-file")) return reply.send(await deleteFile({
|
|
82
|
+
provider,
|
|
83
|
+
router: config.router,
|
|
84
|
+
body: req.body,
|
|
85
|
+
ctxToken: getCookie(req, resolvedCookieConfig.ctx.name)
|
|
86
|
+
}));
|
|
87
|
+
else if (matchPath(pathname, "/proxy-file")) {
|
|
88
|
+
const url = req.query ? req.query.url : void 0;
|
|
89
|
+
if (typeof url === "string") {
|
|
90
|
+
var _req$headers$cookie, _proxyRes$headers$get;
|
|
91
|
+
const cookieHeader = (_req$headers$cookie = req.headers.cookie) !== null && _req$headers$cookie !== void 0 ? _req$headers$cookie : "";
|
|
92
|
+
const proxyRes = await fetch(url, { headers: { cookie: cookieHeader } });
|
|
93
|
+
const data = await proxyRes.arrayBuffer();
|
|
94
|
+
reply.header("Content-Type", (_proxyRes$headers$get = proxyRes.headers.get("Content-Type")) !== null && _proxyRes$headers$get !== void 0 ? _proxyRes$headers$get : "application/octet-stream");
|
|
95
|
+
return reply.send(Buffer.from(data));
|
|
96
|
+
} else return reply.status(400).send();
|
|
97
|
+
} else return reply.status(404).send();
|
|
98
|
+
} catch (err) {
|
|
99
|
+
if (err instanceof EdgeStoreError) {
|
|
100
|
+
log[err.level](err.formattedMessage());
|
|
101
|
+
if (err.cause) log[err.level](err.cause);
|
|
102
|
+
return reply.status(EDGE_STORE_ERROR_CODES[err.code]).send(err.formattedJson());
|
|
103
|
+
} else {
|
|
104
|
+
log.error(err);
|
|
105
|
+
return reply.status(500).send(new EdgeStoreError({
|
|
106
|
+
message: "Internal Server Error",
|
|
107
|
+
code: "SERVER_ERROR"
|
|
108
|
+
}).formattedJson());
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
};
|
|
144
112
|
}
|
|
145
113
|
|
|
114
|
+
//#endregion
|
|
146
115
|
export { createEdgeStoreFastifyHandler };
|
|
116
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["Logger"],"sources":["../../../src/adapters/fastify/index.ts"],"sourcesContent":["import {\n EDGE_STORE_ERROR_CODES,\n EdgeStoreError,\n type EdgeStoreErrorCodeKey,\n type EdgeStoreRouter,\n type MaybePromise,\n type Provider,\n} from '@edgestore/shared';\nimport { type FastifyReply, type FastifyRequest } from 'fastify';\nimport Logger, { type LogLevel } from '../../libs/logger';\nimport { matchPath } from '../../libs/utils';\nimport { EdgeStoreProvider } from '../../providers/edgestore';\nimport {\n completeMultipartUpload,\n confirmUpload,\n deleteFile,\n getCookieConfig,\n init,\n requestUpload,\n requestUploadParts,\n type CompleteMultipartUploadBody,\n type ConfirmUploadBody,\n type CookieConfig,\n type DeleteFileBody,\n type RequestUploadBody,\n type RequestUploadPartsParams,\n} from '../shared';\n\nexport type CreateContextOptions = {\n req: FastifyRequest;\n reply: FastifyReply;\n};\n\nexport type Config<TCtx> = {\n provider?: Provider;\n router: EdgeStoreRouter<TCtx>;\n logLevel?: LogLevel;\n cookieConfig?: CookieConfig;\n} & (TCtx extends Record<string, never>\n ? object\n : {\n provider?: Provider;\n router: EdgeStoreRouter<TCtx>;\n createContext: (opts: CreateContextOptions) => MaybePromise<TCtx>;\n cookieConfig?: CookieConfig;\n });\n\ndeclare const globalThis: {\n _EDGE_STORE_LOGGER: Logger;\n};\n\n// Helper to safely get cookies from Fastify request\nfunction getCookie(req: FastifyRequest, name: string): string | undefined {\n // Check if cookies plugin is available\n if ('cookies' in req) {\n // Type assertion for TypeScript\n return (req as any).cookies[name];\n }\n\n // Fallback to parsing cookie header\n const cookieHeader = req.headers.cookie;\n if (!cookieHeader) return undefined;\n\n const cookies = cookieHeader\n .split(';')\n .reduce<Record<string, string>>((acc, cookie) => {\n const [key, value] = cookie.trim().split('=');\n if (key && value) acc[key] = value;\n return acc;\n }, {});\n\n return cookies[name];\n}\n\nexport function createEdgeStoreFastifyHandler<TCtx>(config: Config<TCtx>) {\n const { provider = EdgeStoreProvider(), cookieConfig } = config;\n const log = new Logger(config.logLevel);\n globalThis._EDGE_STORE_LOGGER = log;\n log.debug('Creating EdgeStore Fastify handler');\n\n const resolvedCookieConfig = getCookieConfig(cookieConfig);\n\n return async (req: FastifyRequest, reply: FastifyReply) => {\n try {\n // Get the URL from the request - simplified approach\n const pathname = req.url;\n\n if (matchPath(pathname, '/health')) {\n return reply.send('OK');\n } else if (matchPath(pathname, '/init')) {\n let ctx = {} as TCtx;\n try {\n ctx =\n 'createContext' in config\n ? await config.createContext({ req, reply })\n : ({} as TCtx);\n } catch (err) {\n throw new EdgeStoreError({\n message: 'Error creating context',\n code: 'CREATE_CONTEXT_ERROR',\n cause: err instanceof Error ? err : undefined,\n });\n }\n const { newCookies, token, baseUrl, providerName } = await init({\n ctx,\n provider,\n router: config.router,\n cookieConfig,\n });\n\n // Set cookies more efficiently - handling them using void operator\n // to explicitly mark these synchronous calls as intentionally not awaited\n if (Array.isArray(newCookies)) {\n // If it's an array of cookies, set them all\n for (const cookie of newCookies) {\n void reply.header('Set-Cookie', cookie);\n }\n } else if (newCookies) {\n // If it's a single cookie string\n void reply.header('Set-Cookie', newCookies);\n }\n\n return reply.send({\n token,\n baseUrl,\n providerName,\n });\n } else if (matchPath(pathname, '/request-upload')) {\n return reply.send(\n await requestUpload({\n provider,\n router: config.router,\n body: req.body as RequestUploadBody,\n ctxToken: getCookie(req, resolvedCookieConfig.ctx.name),\n }),\n );\n } else if (matchPath(pathname, '/request-upload-parts')) {\n return reply.send(\n await requestUploadParts({\n provider,\n router: config.router,\n body: req.body as RequestUploadPartsParams,\n ctxToken: getCookie(req, resolvedCookieConfig.ctx.name),\n }),\n );\n } else if (matchPath(pathname, '/complete-multipart-upload')) {\n await completeMultipartUpload({\n provider,\n router: config.router,\n body: req.body as CompleteMultipartUploadBody,\n ctxToken: getCookie(req, resolvedCookieConfig.ctx.name),\n });\n return reply.status(200).send();\n } else if (matchPath(pathname, '/confirm-upload')) {\n return reply.send(\n await confirmUpload({\n provider,\n router: config.router,\n body: req.body as ConfirmUploadBody,\n ctxToken: getCookie(req, resolvedCookieConfig.ctx.name),\n }),\n );\n } else if (matchPath(pathname, '/delete-file')) {\n return reply.send(\n await deleteFile({\n provider,\n router: config.router,\n body: req.body as DeleteFileBody,\n ctxToken: getCookie(req, resolvedCookieConfig.ctx.name),\n }),\n );\n } else if (matchPath(pathname, '/proxy-file')) {\n const url = req.query\n ? (req.query as Record<string, any>).url\n : undefined;\n\n if (typeof url === 'string') {\n const cookieHeader = req.headers.cookie ?? '';\n\n const proxyRes = await fetch(url, {\n headers: {\n cookie: cookieHeader,\n },\n });\n\n const data = await proxyRes.arrayBuffer();\n void reply.header(\n 'Content-Type',\n proxyRes.headers.get('Content-Type') ?? 'application/octet-stream',\n );\n\n return reply.send(Buffer.from(data));\n } else {\n return reply.status(400).send();\n }\n } else {\n return reply.status(404).send();\n }\n } catch (err) {\n if (err instanceof EdgeStoreError) {\n log[err.level](err.formattedMessage());\n if (err.cause) log[err.level](err.cause);\n return reply\n .status(EDGE_STORE_ERROR_CODES[err.code as EdgeStoreErrorCodeKey])\n .send(err.formattedJson());\n } else {\n log.error(err);\n return reply.status(500).send(\n new EdgeStoreError({\n message: 'Internal Server Error',\n code: 'SERVER_ERROR',\n }).formattedJson(),\n );\n }\n }\n };\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
const require_shared = require('../../shared-pWGwhEsU.cjs');
|
|
2
|
+
require('../../sdk-AhXUPMy1.cjs');
|
|
3
|
+
const require_utils = require('../../utils-D6YuBNUV.cjs');
|
|
4
|
+
const require_edgestore = require('../../edgestore-Dqb-EoFm.cjs');
|
|
5
|
+
let _edgestore_shared = require("@edgestore/shared");
|
|
6
|
+
|
|
7
|
+
//#region src/adapters/hono/index.ts
|
|
8
|
+
function getCookie(c, name) {
|
|
9
|
+
const cookies = c.req.header("cookie");
|
|
10
|
+
if (!cookies) return void 0;
|
|
11
|
+
const match = (/* @__PURE__ */ new RegExp(`${name}=([^;]+)`)).exec(cookies);
|
|
12
|
+
return match ? match[1] : void 0;
|
|
13
|
+
}
|
|
14
|
+
function createEdgeStoreHonoHandler(config) {
|
|
15
|
+
const { provider = require_edgestore.EdgeStoreProvider(), cookieConfig } = config;
|
|
16
|
+
const log = new require_utils.logger_default(config.logLevel);
|
|
17
|
+
globalThis._EDGE_STORE_LOGGER = log;
|
|
18
|
+
log.debug("Creating EdgeStore Hono handler");
|
|
19
|
+
const resolvedCookieConfig = require_shared.getCookieConfig(cookieConfig);
|
|
20
|
+
return async (c) => {
|
|
21
|
+
try {
|
|
22
|
+
const pathname = new URL(c.req.url).pathname;
|
|
23
|
+
if (require_utils.matchPath(pathname, "/health")) return c.text("OK");
|
|
24
|
+
else if (require_utils.matchPath(pathname, "/init")) {
|
|
25
|
+
let ctx = {};
|
|
26
|
+
try {
|
|
27
|
+
ctx = "createContext" in config ? await config.createContext({ c }) : {};
|
|
28
|
+
} catch (err) {
|
|
29
|
+
throw new _edgestore_shared.EdgeStoreError({
|
|
30
|
+
message: "Error creating context",
|
|
31
|
+
code: "CREATE_CONTEXT_ERROR",
|
|
32
|
+
cause: err instanceof Error ? err : void 0
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
const { newCookies, token, baseUrl, providerName } = await require_shared.init({
|
|
36
|
+
ctx,
|
|
37
|
+
provider,
|
|
38
|
+
router: config.router,
|
|
39
|
+
cookieConfig
|
|
40
|
+
});
|
|
41
|
+
if (Array.isArray(newCookies)) for (const cookie of newCookies) c.header("Set-Cookie", cookie);
|
|
42
|
+
else if (newCookies) c.header("Set-Cookie", newCookies);
|
|
43
|
+
return c.json({
|
|
44
|
+
token,
|
|
45
|
+
baseUrl,
|
|
46
|
+
providerName
|
|
47
|
+
});
|
|
48
|
+
} else if (require_utils.matchPath(pathname, "/request-upload")) {
|
|
49
|
+
const body = await c.req.json();
|
|
50
|
+
return c.json(await require_shared.requestUpload({
|
|
51
|
+
provider,
|
|
52
|
+
router: config.router,
|
|
53
|
+
body,
|
|
54
|
+
ctxToken: getCookie(c, resolvedCookieConfig.ctx.name)
|
|
55
|
+
}));
|
|
56
|
+
} else if (require_utils.matchPath(pathname, "/request-upload-parts")) {
|
|
57
|
+
const body = await c.req.json();
|
|
58
|
+
return c.json(await require_shared.requestUploadParts({
|
|
59
|
+
provider,
|
|
60
|
+
router: config.router,
|
|
61
|
+
body,
|
|
62
|
+
ctxToken: getCookie(c, resolvedCookieConfig.ctx.name)
|
|
63
|
+
}));
|
|
64
|
+
} else if (require_utils.matchPath(pathname, "/complete-multipart-upload")) {
|
|
65
|
+
const body = await c.req.json();
|
|
66
|
+
await require_shared.completeMultipartUpload({
|
|
67
|
+
provider,
|
|
68
|
+
router: config.router,
|
|
69
|
+
body,
|
|
70
|
+
ctxToken: getCookie(c, resolvedCookieConfig.ctx.name)
|
|
71
|
+
});
|
|
72
|
+
return c.body(null, 200);
|
|
73
|
+
} else if (require_utils.matchPath(pathname, "/confirm-upload")) {
|
|
74
|
+
const body = await c.req.json();
|
|
75
|
+
return c.json(await require_shared.confirmUpload({
|
|
76
|
+
provider,
|
|
77
|
+
router: config.router,
|
|
78
|
+
body,
|
|
79
|
+
ctxToken: getCookie(c, resolvedCookieConfig.ctx.name)
|
|
80
|
+
}));
|
|
81
|
+
} else if (require_utils.matchPath(pathname, "/delete-file")) {
|
|
82
|
+
const body = await c.req.json();
|
|
83
|
+
return c.json(await require_shared.deleteFile({
|
|
84
|
+
provider,
|
|
85
|
+
router: config.router,
|
|
86
|
+
body,
|
|
87
|
+
ctxToken: getCookie(c, resolvedCookieConfig.ctx.name)
|
|
88
|
+
}));
|
|
89
|
+
} else if (require_utils.matchPath(pathname, "/proxy-file")) {
|
|
90
|
+
const url = c.req.query("url");
|
|
91
|
+
if (typeof url === "string") {
|
|
92
|
+
var _c$req$header, _proxyRes$headers$get;
|
|
93
|
+
const cookieHeader = (_c$req$header = c.req.header("cookie")) !== null && _c$req$header !== void 0 ? _c$req$header : "";
|
|
94
|
+
const proxyRes = await fetch(url, { headers: { cookie: cookieHeader } });
|
|
95
|
+
const data = await proxyRes.arrayBuffer();
|
|
96
|
+
c.header("Content-Type", (_proxyRes$headers$get = proxyRes.headers.get("Content-Type")) !== null && _proxyRes$headers$get !== void 0 ? _proxyRes$headers$get : "application/octet-stream");
|
|
97
|
+
return c.body(Buffer.from(data));
|
|
98
|
+
} else return c.body(null, 400);
|
|
99
|
+
} else return c.body(null, 404);
|
|
100
|
+
} catch (err) {
|
|
101
|
+
if (err instanceof _edgestore_shared.EdgeStoreError) {
|
|
102
|
+
log[err.level](err.formattedMessage());
|
|
103
|
+
if (err.cause) log[err.level](err.cause);
|
|
104
|
+
return c.json(err.formattedJson(), _edgestore_shared.EDGE_STORE_ERROR_CODES[err.code]);
|
|
105
|
+
} else {
|
|
106
|
+
log.error(err);
|
|
107
|
+
return c.json(new _edgestore_shared.EdgeStoreError({
|
|
108
|
+
message: "Internal Server Error",
|
|
109
|
+
code: "SERVER_ERROR"
|
|
110
|
+
}).formattedJson(), 500);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
//#endregion
|
|
117
|
+
exports.createEdgeStoreHonoHandler = createEdgeStoreHonoHandler;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { n as LogLevel, t as CookieConfig } from "../../shared-B39MtSQo.cjs";
|
|
2
|
+
import { EdgeStoreErrorCodeKey, EdgeStoreRouter, MaybePromise, Provider } from "@edgestore/shared";
|
|
3
|
+
import * as hono_utils_http_status0 from "hono/utils/http-status";
|
|
4
|
+
import * as hono0 from "hono";
|
|
5
|
+
import { Context } from "hono";
|
|
6
|
+
|
|
7
|
+
//#region src/adapters/hono/index.d.ts
|
|
8
|
+
type CreateContextOptions = {
|
|
9
|
+
c: Context;
|
|
10
|
+
};
|
|
11
|
+
type Config<TCtx> = {
|
|
12
|
+
provider?: Provider;
|
|
13
|
+
router: EdgeStoreRouter<TCtx>;
|
|
14
|
+
logLevel?: LogLevel;
|
|
15
|
+
cookieConfig?: CookieConfig;
|
|
16
|
+
} & (TCtx extends Record<string, never> ? object : {
|
|
17
|
+
provider?: Provider;
|
|
18
|
+
router: EdgeStoreRouter<TCtx>;
|
|
19
|
+
createContext: (opts: CreateContextOptions) => MaybePromise<TCtx>;
|
|
20
|
+
cookieConfig?: CookieConfig;
|
|
21
|
+
});
|
|
22
|
+
declare function createEdgeStoreHonoHandler<TCtx>(config: Config<TCtx>): (c: Context) => Promise<(Response & hono0.TypedResponse<"OK", hono_utils_http_status0.ContentfulStatusCode, "text">) | (Response & hono0.TypedResponse<{
|
|
23
|
+
token: string | undefined;
|
|
24
|
+
baseUrl: string;
|
|
25
|
+
providerName: string;
|
|
26
|
+
}, hono_utils_http_status0.ContentfulStatusCode, "json">) | (Response & hono0.TypedResponse<{
|
|
27
|
+
uploadUrl: string;
|
|
28
|
+
accessUrl: string;
|
|
29
|
+
thumbnailUrl?: (string | null) | undefined;
|
|
30
|
+
size: number;
|
|
31
|
+
uploadedAt: string;
|
|
32
|
+
path: {
|
|
33
|
+
[x: string]: string;
|
|
34
|
+
};
|
|
35
|
+
pathOrder: string[];
|
|
36
|
+
metadata: {
|
|
37
|
+
[x: string]: string | null | undefined;
|
|
38
|
+
};
|
|
39
|
+
} | {
|
|
40
|
+
multipart: {
|
|
41
|
+
key: string;
|
|
42
|
+
uploadId: string;
|
|
43
|
+
partSize: number;
|
|
44
|
+
totalParts: number;
|
|
45
|
+
parts: {
|
|
46
|
+
partNumber: number;
|
|
47
|
+
uploadUrl: string;
|
|
48
|
+
}[];
|
|
49
|
+
};
|
|
50
|
+
accessUrl: string;
|
|
51
|
+
thumbnailUrl?: (string | null) | undefined;
|
|
52
|
+
size: number;
|
|
53
|
+
uploadedAt: string;
|
|
54
|
+
path: {
|
|
55
|
+
[x: string]: string;
|
|
56
|
+
};
|
|
57
|
+
pathOrder: string[];
|
|
58
|
+
metadata: {
|
|
59
|
+
[x: string]: string | null | undefined;
|
|
60
|
+
};
|
|
61
|
+
}, hono_utils_http_status0.ContentfulStatusCode, "json">) | (Response & hono0.TypedResponse<{
|
|
62
|
+
multipart: {
|
|
63
|
+
uploadId: string;
|
|
64
|
+
parts: {
|
|
65
|
+
partNumber: number;
|
|
66
|
+
uploadUrl: string;
|
|
67
|
+
}[];
|
|
68
|
+
};
|
|
69
|
+
}, hono_utils_http_status0.ContentfulStatusCode, "json">) | (Response & hono0.TypedResponse<{
|
|
70
|
+
success: boolean;
|
|
71
|
+
}, hono_utils_http_status0.ContentfulStatusCode, "json">) | (Response & hono0.TypedResponse<unknown, hono_utils_http_status0.ContentfulStatusCode, "body">) | (Response & hono0.TypedResponse<{
|
|
72
|
+
message: string;
|
|
73
|
+
code: "FILE_TOO_LARGE";
|
|
74
|
+
details: {
|
|
75
|
+
maxFileSize: number;
|
|
76
|
+
fileSize: number;
|
|
77
|
+
};
|
|
78
|
+
} | {
|
|
79
|
+
message: string;
|
|
80
|
+
code: "MIME_TYPE_NOT_ALLOWED";
|
|
81
|
+
details: {
|
|
82
|
+
allowedMimeTypes: string[];
|
|
83
|
+
mimeType: string;
|
|
84
|
+
};
|
|
85
|
+
} | {
|
|
86
|
+
message: string;
|
|
87
|
+
code: Exclude<EdgeStoreErrorCodeKey, "FILE_TOO_LARGE" | "MIME_TYPE_NOT_ALLOWED">;
|
|
88
|
+
}, 400 | 401 | 403 | 500, "json">)>;
|
|
89
|
+
//#endregion
|
|
90
|
+
export { Config, CreateContextOptions, createEdgeStoreHonoHandler };
|
|
91
|
+
//# sourceMappingURL=index.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../../../src/adapters/hono/index.ts"],"sourcesContent":[],"mappings":";;;;;;;KA4BY,oBAAA;KACP;;AADO,KAIA,MAJA,CAAA,IAAA,CAAA,GAAoB;EAIpB,QAAA,CAAM,EACL,QADK;EACL,MAAA,EACH,eADG,CACa,IADb,CAAA;EACa,QAAA,CAAA,EACb,QADa;EAAhB,YAAA,CAAA,EAEO,YAFP;CACG,GAAA,CAER,IAFQ,SAEK,MAFL,CAAA,MAAA,EAAA,KAAA,CAAA,GAAA,MAAA,GAAA;EACI,QAAA,CAAA,EAIA,QAJA;EACZ,MAAA,EAIS,eAJT,CAIyB,IAJzB,CAAA;EAAa,aAAA,EAAA,CAAA,IAAA,EAKU,oBALV,EAAA,GAKmC,YALnC,CAKgD,IALhD,CAAA;EAGD,YAAA,CAAA,EAGI,YAHJ;CACa,CAAA;AAAhB,iBAkBE,0BAlBF,CAAA,IAAA,CAAA,CAAA,MAAA,EAkB2C,MAlB3C,CAkBkD,IAlBlD,CAAA,CAAA,EAAA,CAAA,CAAA,EA0BK,OA1BL,EAAA,GA0BY,OA1BZ,CAAA,CA0BY,QA1BZ,GA0BY,KAAA,CAAA,aA1BZ,CAAA,IAAA,EA0BY,uBAAA,CAAA,oBAAA,EA1BZ,MAAA,CAAA,CAAA,GAAA,CA0BY,QA1BZ,SA0BY,aA1BZ,CAAA;EACc,KAAA,EAAA,MAAA,GAAA,SAAA;EAAsC,OAAA,EAAA,MAAA;EAAb,YAAA,EAAA,MAAA;CAChC,EAwBK,uBAAA,CAAA,oBAAA,EAxBL,MAAA,CAAA,CAAA,GAAA,SAAA,sBAAA,CAAA;EAAY,SAAA,EAAA,MAAA;EAgBjB,SAAA,EAAA,MAAA;EAAgD,YAAA,CAAA,EAAA,CAAA,MAAA,GAAA,IAAA,CAAA,GAAA,SAAA;EAAP,IAAA,EAAA,MAAA;EAQtC,UAAA,EAAA,MAAA;EAAO,IAAA,EAAA;IAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,MAAA;EAAA,CAAA;EAAA,SAAA,EAAA,MAAA,EAAA;EAAA,QAAA,EAAA;IAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,MAAA,GAAA,IAAA,GAAA,SAAA;;;;;;;;;;;;;;;;;EAAA,IAAA,EAAA;IAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,MAAA"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { n as LogLevel, t as CookieConfig } from "../../shared-DsWTtQ1-.mjs";
|
|
2
|
+
import { EdgeStoreErrorCodeKey, EdgeStoreRouter, MaybePromise, Provider } from "@edgestore/shared";
|
|
3
|
+
import * as hono_utils_http_status0 from "hono/utils/http-status";
|
|
4
|
+
import * as hono0 from "hono";
|
|
5
|
+
import { Context } from "hono";
|
|
6
|
+
|
|
7
|
+
//#region src/adapters/hono/index.d.ts
|
|
8
|
+
type CreateContextOptions = {
|
|
9
|
+
c: Context;
|
|
10
|
+
};
|
|
11
|
+
type Config<TCtx> = {
|
|
12
|
+
provider?: Provider;
|
|
13
|
+
router: EdgeStoreRouter<TCtx>;
|
|
14
|
+
logLevel?: LogLevel;
|
|
15
|
+
cookieConfig?: CookieConfig;
|
|
16
|
+
} & (TCtx extends Record<string, never> ? object : {
|
|
17
|
+
provider?: Provider;
|
|
18
|
+
router: EdgeStoreRouter<TCtx>;
|
|
19
|
+
createContext: (opts: CreateContextOptions) => MaybePromise<TCtx>;
|
|
20
|
+
cookieConfig?: CookieConfig;
|
|
21
|
+
});
|
|
22
|
+
declare function createEdgeStoreHonoHandler<TCtx>(config: Config<TCtx>): (c: Context) => Promise<(Response & hono0.TypedResponse<"OK", hono_utils_http_status0.ContentfulStatusCode, "text">) | (Response & hono0.TypedResponse<{
|
|
23
|
+
token: string | undefined;
|
|
24
|
+
baseUrl: string;
|
|
25
|
+
providerName: string;
|
|
26
|
+
}, hono_utils_http_status0.ContentfulStatusCode, "json">) | (Response & hono0.TypedResponse<{
|
|
27
|
+
uploadUrl: string;
|
|
28
|
+
accessUrl: string;
|
|
29
|
+
thumbnailUrl?: (string | null) | undefined;
|
|
30
|
+
size: number;
|
|
31
|
+
uploadedAt: string;
|
|
32
|
+
path: {
|
|
33
|
+
[x: string]: string;
|
|
34
|
+
};
|
|
35
|
+
pathOrder: string[];
|
|
36
|
+
metadata: {
|
|
37
|
+
[x: string]: string | null | undefined;
|
|
38
|
+
};
|
|
39
|
+
} | {
|
|
40
|
+
multipart: {
|
|
41
|
+
key: string;
|
|
42
|
+
uploadId: string;
|
|
43
|
+
partSize: number;
|
|
44
|
+
totalParts: number;
|
|
45
|
+
parts: {
|
|
46
|
+
partNumber: number;
|
|
47
|
+
uploadUrl: string;
|
|
48
|
+
}[];
|
|
49
|
+
};
|
|
50
|
+
accessUrl: string;
|
|
51
|
+
thumbnailUrl?: (string | null) | undefined;
|
|
52
|
+
size: number;
|
|
53
|
+
uploadedAt: string;
|
|
54
|
+
path: {
|
|
55
|
+
[x: string]: string;
|
|
56
|
+
};
|
|
57
|
+
pathOrder: string[];
|
|
58
|
+
metadata: {
|
|
59
|
+
[x: string]: string | null | undefined;
|
|
60
|
+
};
|
|
61
|
+
}, hono_utils_http_status0.ContentfulStatusCode, "json">) | (Response & hono0.TypedResponse<{
|
|
62
|
+
multipart: {
|
|
63
|
+
uploadId: string;
|
|
64
|
+
parts: {
|
|
65
|
+
partNumber: number;
|
|
66
|
+
uploadUrl: string;
|
|
67
|
+
}[];
|
|
68
|
+
};
|
|
69
|
+
}, hono_utils_http_status0.ContentfulStatusCode, "json">) | (Response & hono0.TypedResponse<{
|
|
70
|
+
success: boolean;
|
|
71
|
+
}, hono_utils_http_status0.ContentfulStatusCode, "json">) | (Response & hono0.TypedResponse<unknown, hono_utils_http_status0.ContentfulStatusCode, "body">) | (Response & hono0.TypedResponse<{
|
|
72
|
+
message: string;
|
|
73
|
+
code: "FILE_TOO_LARGE";
|
|
74
|
+
details: {
|
|
75
|
+
maxFileSize: number;
|
|
76
|
+
fileSize: number;
|
|
77
|
+
};
|
|
78
|
+
} | {
|
|
79
|
+
message: string;
|
|
80
|
+
code: "MIME_TYPE_NOT_ALLOWED";
|
|
81
|
+
details: {
|
|
82
|
+
allowedMimeTypes: string[];
|
|
83
|
+
mimeType: string;
|
|
84
|
+
};
|
|
85
|
+
} | {
|
|
86
|
+
message: string;
|
|
87
|
+
code: Exclude<EdgeStoreErrorCodeKey, "FILE_TOO_LARGE" | "MIME_TYPE_NOT_ALLOWED">;
|
|
88
|
+
}, 400 | 401 | 403 | 500, "json">)>;
|
|
89
|
+
//#endregion
|
|
90
|
+
export { Config, CreateContextOptions, createEdgeStoreHonoHandler };
|
|
91
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../src/adapters/hono/index.ts"],"sourcesContent":[],"mappings":";;;;;;;KA4BY,oBAAA;KACP;;AADO,KAIA,MAJA,CAAA,IAAA,CAAA,GAAoB;EAIpB,QAAA,CAAM,EACL,QADK;EACL,MAAA,EACH,eADG,CACa,IADb,CAAA;EACa,QAAA,CAAA,EACb,QADa;EAAhB,YAAA,CAAA,EAEO,YAFP;CACG,GAAA,CAER,IAFQ,SAEK,MAFL,CAAA,MAAA,EAAA,KAAA,CAAA,GAAA,MAAA,GAAA;EACI,QAAA,CAAA,EAIA,QAJA;EACZ,MAAA,EAIS,eAJT,CAIyB,IAJzB,CAAA;EAAa,aAAA,EAAA,CAAA,IAAA,EAKU,oBALV,EAAA,GAKmC,YALnC,CAKgD,IALhD,CAAA;EAGD,YAAA,CAAA,EAGI,YAHJ;CACa,CAAA;AAAhB,iBAkBE,0BAlBF,CAAA,IAAA,CAAA,CAAA,MAAA,EAkB2C,MAlB3C,CAkBkD,IAlBlD,CAAA,CAAA,EAAA,CAAA,CAAA,EA0BK,OA1BL,EAAA,GA0BY,OA1BZ,CAAA,CA0BY,QA1BZ,GA0BY,KAAA,CAAA,aA1BZ,CAAA,IAAA,EA0BY,uBAAA,CAAA,oBAAA,EA1BZ,MAAA,CAAA,CAAA,GAAA,CA0BY,QA1BZ,SA0BY,aA1BZ,CAAA;EACc,KAAA,EAAA,MAAA,GAAA,SAAA;EAAsC,OAAA,EAAA,MAAA;EAAb,YAAA,EAAA,MAAA;CAChC,EAwBK,uBAAA,CAAA,oBAAA,EAxBL,MAAA,CAAA,CAAA,GAAA,SAAA,sBAAA,CAAA;EAAY,SAAA,EAAA,MAAA;EAgBjB,SAAA,EAAA,MAAA;EAAgD,YAAA,CAAA,EAAA,CAAA,MAAA,GAAA,IAAA,CAAA,GAAA,SAAA;EAAP,IAAA,EAAA,MAAA;EAQtC,UAAA,EAAA,MAAA;EAAO,IAAA,EAAA;IAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,MAAA;EAAA,CAAA;EAAA,SAAA,EAAA,MAAA,EAAA;EAAA,QAAA,EAAA;IAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,MAAA,GAAA,IAAA,GAAA,SAAA;;;;;;;;;;;;;;;;;EAAA,IAAA,EAAA;IAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,MAAA"}
|