@edgestore/server 0.3.3 → 0.5.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/README.md +3 -3
- package/adapters/astro/index.d.ts +1 -0
- package/adapters/astro/index.js +1 -0
- package/adapters/fastify/index.d.ts +1 -0
- package/adapters/fastify/index.js +1 -0
- package/adapters/hono/index.d.ts +1 -0
- package/adapters/hono/index.js +1 -0
- package/adapters/remix/index.d.ts +1 -0
- package/adapters/remix/index.js +1 -0
- package/dist/adapters/astro/index.d.ts +14 -0
- package/dist/adapters/astro/index.d.ts.map +1 -0
- package/dist/adapters/astro/index.js +183 -0
- package/dist/adapters/astro/index.mjs +179 -0
- package/dist/adapters/express/index.js +4 -4
- package/dist/adapters/express/index.mjs +4 -4
- package/dist/adapters/fastify/index.d.ts +18 -0
- package/dist/adapters/fastify/index.d.ts.map +1 -0
- package/dist/adapters/fastify/index.js +147 -0
- package/dist/adapters/fastify/index.mjs +143 -0
- package/dist/adapters/hono/index.d.ts +82 -0
- package/dist/adapters/hono/index.d.ts.map +1 -0
- package/dist/adapters/hono/index.js +137 -0
- package/dist/adapters/hono/index.mjs +133 -0
- package/dist/adapters/next/app/index.js +4 -4
- package/dist/adapters/next/app/index.mjs +4 -4
- package/dist/adapters/next/pages/index.js +4 -4
- package/dist/adapters/next/pages/index.mjs +4 -4
- package/dist/adapters/remix/index.d.ts +18 -0
- package/dist/adapters/remix/index.d.ts.map +1 -0
- package/dist/adapters/remix/index.js +158 -0
- package/dist/adapters/remix/index.mjs +154 -0
- package/dist/adapters/shared.d.ts +2 -0
- package/dist/adapters/shared.d.ts.map +1 -1
- package/dist/adapters/start/index.d.ts.map +1 -1
- package/dist/adapters/start/index.js +4 -4
- package/dist/adapters/start/index.mjs +4 -4
- package/dist/core/client/index.d.ts +1 -1
- package/dist/core/client/index.d.ts.map +1 -1
- package/dist/core/index.js +3 -3
- package/dist/core/index.mjs +4 -4
- package/dist/core/sdk/index.d.ts +4 -4
- package/dist/core/sdk/index.d.ts.map +1 -1
- package/dist/{index-28efdacf.mjs → index-2848cb40.mjs} +4 -3
- package/dist/{index-beed799d.js → index-421c502f.js} +4 -3
- package/dist/{index-4491caf0.js → index-7b259533.js} +6 -5
- package/dist/libs/logger.d.ts +1 -1
- package/dist/libs/logger.d.ts.map +1 -1
- package/dist/providers/aws/index.d.ts.map +1 -1
- package/dist/providers/aws/index.js +7 -2
- package/dist/providers/aws/index.mjs +7 -2
- package/dist/providers/azure/index.d.ts.map +1 -1
- package/dist/providers/azure/index.js +6 -1
- package/dist/providers/azure/index.mjs +6 -1
- package/dist/providers/edgestore/index.d.ts.map +1 -1
- package/dist/providers/edgestore/index.js +13 -6
- package/dist/providers/edgestore/index.mjs +10 -3
- package/dist/{shared-83f288f6.js → shared-25dbfab4.js} +19 -6
- package/dist/{shared-039276af.mjs → shared-4b199b96.mjs} +17 -5
- package/dist/{shared-7c700083.js → shared-685c8a0c.js} +18 -4
- package/dist/{utils-5819d5e1.js → utils-0aab6e3b.js} +3 -1
- package/dist/{utils-f6f56d38.mjs → utils-7349adab.mjs} +3 -1
- package/dist/{utils-461a2e3b.js → utils-b3d35894.js} +3 -2
- package/package.json +31 -8
- package/src/adapters/astro/index.ts +222 -0
- package/src/adapters/express/index.ts +1 -1
- package/src/adapters/fastify/index.ts +205 -0
- package/src/adapters/hono/index.ts +195 -0
- package/src/adapters/next/app/index.ts +1 -1
- package/src/adapters/next/pages/index.ts +1 -1
- package/src/adapters/remix/index.ts +201 -0
- package/src/adapters/shared.ts +21 -4
- package/src/adapters/start/index.ts +1 -1
- package/src/core/client/index.ts +11 -3
- package/src/core/sdk/index.ts +4 -3
- package/src/libs/errors/EdgeStoreCredentialsError.ts +1 -1
- package/src/libs/logger.ts +4 -3
- package/src/providers/aws/index.ts +8 -7
- package/src/providers/azure/index.ts +5 -4
- package/src/providers/edgestore/index.ts +8 -3
- package/adapters/index.d.ts +0 -1
- package/adapters/index.js +0 -1
- package/providers/index.d.ts +0 -1
- package/providers/index.js +0 -1
|
@@ -5,10 +5,15 @@ 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');
|
|
9
|
+
require('@edgestore/shared');
|
|
10
|
+
require('@panva/hkdf');
|
|
11
|
+
require('cookie');
|
|
12
|
+
require('jose');
|
|
8
13
|
|
|
9
14
|
function AWSProvider(options) {
|
|
10
|
-
const { accessKeyId =
|
|
11
|
-
const baseUrl = options?.baseUrl ??
|
|
15
|
+
const { accessKeyId = shared.getEnv('ES_AWS_ACCESS_KEY_ID'), secretAccessKey = shared.getEnv('ES_AWS_SECRET_ACCESS_KEY'), region = shared.getEnv('ES_AWS_REGION'), bucketName = shared.getEnv('ES_AWS_BUCKET_NAME'), endpoint = shared.getEnv('ES_AWS_ENDPOINT'), forcePathStyle = shared.getEnv('ES_AWS_FORCE_PATH_STYLE') === 'true' } = options ?? {};
|
|
16
|
+
const baseUrl = options?.baseUrl ?? shared.getEnv('EDGE_STORE_BASE_URL') ?? (endpoint ? `${endpoint}/${bucketName}` : `https://${bucketName}.s3.${region}.amazonaws.com`);
|
|
12
17
|
const credentials = accessKeyId && secretAccessKey ? {
|
|
13
18
|
accessKeyId,
|
|
14
19
|
secretAccessKey
|
|
@@ -1,10 +1,15 @@
|
|
|
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';
|
|
5
|
+
import '@edgestore/shared';
|
|
6
|
+
import '@panva/hkdf';
|
|
7
|
+
import 'cookie';
|
|
8
|
+
import 'jose';
|
|
4
9
|
|
|
5
10
|
function AWSProvider(options) {
|
|
6
|
-
const { accessKeyId =
|
|
7
|
-
const baseUrl = options?.baseUrl ??
|
|
11
|
+
const { accessKeyId = getEnv('ES_AWS_ACCESS_KEY_ID'), secretAccessKey = getEnv('ES_AWS_SECRET_ACCESS_KEY'), region = getEnv('ES_AWS_REGION'), bucketName = getEnv('ES_AWS_BUCKET_NAME'), endpoint = getEnv('ES_AWS_ENDPOINT'), forcePathStyle = getEnv('ES_AWS_FORCE_PATH_STYLE') === 'true' } = options ?? {};
|
|
12
|
+
const baseUrl = options?.baseUrl ?? getEnv('EDGE_STORE_BASE_URL') ?? (endpoint ? `${endpoint}/${bucketName}` : `https://${bucketName}.s3.${region}.amazonaws.com`);
|
|
8
13
|
const credentials = accessKeyId && secretAccessKey ? {
|
|
9
14
|
accessKeyId,
|
|
10
15
|
secretAccessKey
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/azure/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/azure/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAIlD;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ,CAoEtE"}
|
|
@@ -4,9 +4,14 @@ 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');
|
|
8
|
+
require('@edgestore/shared');
|
|
9
|
+
require('@panva/hkdf');
|
|
10
|
+
require('cookie');
|
|
11
|
+
require('jose');
|
|
7
12
|
|
|
8
13
|
function AzureProvider(options) {
|
|
9
|
-
const { storageAccountName =
|
|
14
|
+
const { storageAccountName = shared.getEnv('ES_AZURE_ACCOUNT_NAME'), sasToken = shared.getEnv('ES_AZURE_SAS_TOKEN'), containerName = shared.getEnv('ES_AZURE_CONTAINER_NAME'), customBaseUrl = shared.getEnv('ES_AZURE_BASE_URL') } = options ?? {};
|
|
10
15
|
const baseUrl = customBaseUrl ?? `https://${storageAccountName}.blob.core.windows.net`;
|
|
11
16
|
const blobServiceClient = new storageBlob.BlobServiceClient(`${baseUrl}?${sasToken}`);
|
|
12
17
|
const containerClient = blobServiceClient.getContainerClient(containerName ?? '');
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import { BlobServiceClient } from '@azure/storage-blob';
|
|
2
2
|
import { v4 } from 'uuid';
|
|
3
|
+
import { g as getEnv } from '../../shared-4b199b96.mjs';
|
|
4
|
+
import '@edgestore/shared';
|
|
5
|
+
import '@panva/hkdf';
|
|
6
|
+
import 'cookie';
|
|
7
|
+
import 'jose';
|
|
3
8
|
|
|
4
9
|
function AzureProvider(options) {
|
|
5
|
-
const { storageAccountName =
|
|
10
|
+
const { storageAccountName = getEnv('ES_AZURE_ACCOUNT_NAME'), sasToken = getEnv('ES_AZURE_SAS_TOKEN'), containerName = getEnv('ES_AZURE_CONTAINER_NAME'), customBaseUrl = getEnv('ES_AZURE_BASE_URL') } = options ?? {};
|
|
6
11
|
const baseUrl = customBaseUrl ?? `https://${storageAccountName}.blob.core.windows.net`;
|
|
7
12
|
const blobServiceClient = new BlobServiceClient(`${baseUrl}?${sasToken}`);
|
|
8
13
|
const containerClient = blobServiceClient.getContainerClient(containerName ?? '');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/edgestore/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/edgestore/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,mBAAmB,CAAC;AAO3B,MAAM,MAAM,wBAAwB,GAAG;IACrC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,iBAAiB,CAC/B,OAAO,CAAC,EAAE,wBAAwB,GACjC,QAAQ,CAoJV"}
|
|
@@ -2,13 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var shared = require('@edgestore/shared');
|
|
6
|
-
var
|
|
5
|
+
var shared$1 = require('@edgestore/shared');
|
|
6
|
+
var shared = require('../../shared-685c8a0c.js');
|
|
7
|
+
var index = require('../../index-7b259533.js');
|
|
8
|
+
require('@panva/hkdf');
|
|
9
|
+
require('cookie');
|
|
10
|
+
require('jose');
|
|
11
|
+
require('uuid');
|
|
7
12
|
|
|
8
13
|
const DEFAULT_BASE_URL = 'https://files.edgestore.dev';
|
|
9
14
|
function EdgeStoreProvider(options) {
|
|
10
|
-
const { accessKey =
|
|
11
|
-
|
|
15
|
+
const { accessKey = shared.getEnv('EDGE_STORE_ACCESS_KEY') ?? // @ts-expect-error - In Vite/Astro, the env variables are available on `import.meta`.
|
|
16
|
+
undefined?.EDGE_STORE_ACCESS_KEY, secretKey = shared.getEnv('EDGE_STORE_SECRET_KEY') ?? // @ts-expect-error - In Vite/Astro, the env variables are available on `import.meta`.
|
|
17
|
+
undefined?.EDGE_STORE_SECRET_KEY } = options ?? {};
|
|
18
|
+
const baseUrl = shared.getEnv('EDGE_STORE_BASE_URL') ?? DEFAULT_BASE_URL;
|
|
12
19
|
if (!accessKey || !secretKey) {
|
|
13
20
|
throw new index.EdgeStoreCredentialsError();
|
|
14
21
|
}
|
|
@@ -82,7 +89,7 @@ function EdgeStoreProvider(options) {
|
|
|
82
89
|
thumbnailUrl: res.thumbnailUrl
|
|
83
90
|
};
|
|
84
91
|
} else {
|
|
85
|
-
throw new shared.EdgeStoreError({
|
|
92
|
+
throw new shared$1.EdgeStoreError({
|
|
86
93
|
message: 'Could not get upload url',
|
|
87
94
|
code: 'SERVER_ERROR'
|
|
88
95
|
});
|
|
@@ -100,7 +107,7 @@ function EdgeStoreProvider(options) {
|
|
|
100
107
|
thumbnailUrl: res.thumbnailUrl
|
|
101
108
|
};
|
|
102
109
|
}
|
|
103
|
-
throw new shared.EdgeStoreError({
|
|
110
|
+
throw new shared$1.EdgeStoreError({
|
|
104
111
|
message: 'Could not get upload url',
|
|
105
112
|
code: 'SERVER_ERROR'
|
|
106
113
|
});
|
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
import { EdgeStoreError } from '@edgestore/shared';
|
|
2
|
-
import {
|
|
2
|
+
import { g as getEnv } from '../../shared-4b199b96.mjs';
|
|
3
|
+
import { E as EdgeStoreCredentialsError, i as initEdgeStoreSdk } from '../../index-2848cb40.mjs';
|
|
4
|
+
import '@panva/hkdf';
|
|
5
|
+
import 'cookie';
|
|
6
|
+
import 'jose';
|
|
7
|
+
import 'uuid';
|
|
3
8
|
|
|
4
9
|
const DEFAULT_BASE_URL = 'https://files.edgestore.dev';
|
|
5
10
|
function EdgeStoreProvider(options) {
|
|
6
|
-
const { accessKey =
|
|
7
|
-
|
|
11
|
+
const { accessKey = getEnv('EDGE_STORE_ACCESS_KEY') ?? // @ts-expect-error - In Vite/Astro, the env variables are available on `import.meta`.
|
|
12
|
+
import.meta.env?.EDGE_STORE_ACCESS_KEY, secretKey = getEnv('EDGE_STORE_SECRET_KEY') ?? // @ts-expect-error - In Vite/Astro, the env variables are available on `import.meta`.
|
|
13
|
+
import.meta.env?.EDGE_STORE_SECRET_KEY } = options ?? {};
|
|
14
|
+
const baseUrl = getEnv('EDGE_STORE_BASE_URL') ?? DEFAULT_BASE_URL;
|
|
8
15
|
if (!accessKey || !secretKey) {
|
|
9
16
|
throw new EdgeStoreCredentialsError();
|
|
10
17
|
}
|
|
@@ -166,7 +166,7 @@ async function requestUpload(params) {
|
|
|
166
166
|
return {
|
|
167
167
|
...requestUploadRes,
|
|
168
168
|
size: fileInfo.size,
|
|
169
|
-
uploadedAt: new Date().toISOString(),
|
|
169
|
+
uploadedAt: new Date().toISOString(), // TODO: maybe delete this field since it's not the actual upload time
|
|
170
170
|
path: parsedPath,
|
|
171
171
|
pathOrder,
|
|
172
172
|
metadata,
|
|
@@ -290,7 +290,7 @@ async function deleteFile(params) {
|
|
|
290
290
|
return res;
|
|
291
291
|
}
|
|
292
292
|
async function encryptJWT(ctx) {
|
|
293
|
-
const secret =
|
|
293
|
+
const secret = getEnv('EDGE_STORE_JWT_SECRET') ?? getEnv('EDGE_STORE_SECRET_KEY');
|
|
294
294
|
if (!secret) {
|
|
295
295
|
throw new EdgeStoreError({
|
|
296
296
|
message: 'EDGE_STORE_JWT_SECRET or EDGE_STORE_SECRET_KEY is not defined',
|
|
@@ -306,7 +306,7 @@ async function encryptJWT(ctx) {
|
|
|
306
306
|
.encrypt(encryptionSecret);
|
|
307
307
|
}
|
|
308
308
|
async function decryptJWT(token) {
|
|
309
|
-
const secret =
|
|
309
|
+
const secret = getEnv('EDGE_STORE_JWT_SECRET') ?? getEnv('EDGE_STORE_SECRET_KEY');
|
|
310
310
|
if (!secret) {
|
|
311
311
|
throw new EdgeStoreError({
|
|
312
312
|
message: 'EDGE_STORE_JWT_SECRET or EDGE_STORE_SECRET_KEY is not defined',
|
|
@@ -320,7 +320,7 @@ async function decryptJWT(token) {
|
|
|
320
320
|
return payload;
|
|
321
321
|
}
|
|
322
322
|
async function getDerivedEncryptionKey(secret) {
|
|
323
|
-
return await hkdf('sha256', secret, '', '
|
|
323
|
+
return await hkdf('sha256', secret, '', 'EdgeStore Generated Encryption Key', 32);
|
|
324
324
|
}
|
|
325
325
|
function buildPath(params) {
|
|
326
326
|
const { bucket } = params;
|
|
@@ -375,7 +375,7 @@ async function getContext(token) {
|
|
|
375
375
|
* so that we can delete or confirm the upload.
|
|
376
376
|
*/
|
|
377
377
|
function unproxyUrl(url) {
|
|
378
|
-
if (
|
|
378
|
+
if (isDev() && url.startsWith('http://')) {
|
|
379
379
|
// get the url param from the query string
|
|
380
380
|
const urlParam = new URL(url).searchParams.get('url');
|
|
381
381
|
if (urlParam) {
|
|
@@ -384,5 +384,18 @@ function unproxyUrl(url) {
|
|
|
384
384
|
}
|
|
385
385
|
return url;
|
|
386
386
|
}
|
|
387
|
+
function getEnv(key) {
|
|
388
|
+
if (typeof process !== 'undefined' && process.env) {
|
|
389
|
+
// @ts-expect-error - In Vite/Astro, the env variables are available on `import.meta`.
|
|
390
|
+
return process.env[key] ?? import.meta.env?.[key];
|
|
391
|
+
}
|
|
392
|
+
// @ts-expect-error - In Vite/Astro, the env variables are available on `import.meta`.
|
|
393
|
+
return import.meta.env?.[key];
|
|
394
|
+
}
|
|
395
|
+
function isDev() {
|
|
396
|
+
return (process?.env?.NODE_ENV === 'development' ||
|
|
397
|
+
// @ts-expect-error - In Vite/Astro, the env variables are available on `import.meta`.
|
|
398
|
+
import.meta.env?.DEV);
|
|
399
|
+
}
|
|
387
400
|
|
|
388
|
-
export {
|
|
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 };
|
|
@@ -319,7 +319,7 @@ async function deleteFile(params) {
|
|
|
319
319
|
return res;
|
|
320
320
|
}
|
|
321
321
|
async function encryptJWT(ctx) {
|
|
322
|
-
const secret =
|
|
322
|
+
const secret = getEnv('EDGE_STORE_JWT_SECRET') ?? getEnv('EDGE_STORE_SECRET_KEY');
|
|
323
323
|
if (!secret) {
|
|
324
324
|
throw new EdgeStoreError({
|
|
325
325
|
message: 'EDGE_STORE_JWT_SECRET or EDGE_STORE_SECRET_KEY is not defined',
|
|
@@ -333,7 +333,7 @@ async function encryptJWT(ctx) {
|
|
|
333
333
|
}).setIssuedAt().setExpirationTime(Date.now() / 1000 + DEFAULT_MAX_AGE).setJti(v4()).encrypt(encryptionSecret);
|
|
334
334
|
}
|
|
335
335
|
async function decryptJWT(token) {
|
|
336
|
-
const secret =
|
|
336
|
+
const secret = getEnv('EDGE_STORE_JWT_SECRET') ?? getEnv('EDGE_STORE_SECRET_KEY');
|
|
337
337
|
if (!secret) {
|
|
338
338
|
throw new EdgeStoreError({
|
|
339
339
|
message: 'EDGE_STORE_JWT_SECRET or EDGE_STORE_SECRET_KEY is not defined',
|
|
@@ -347,7 +347,7 @@ async function decryptJWT(token) {
|
|
|
347
347
|
return payload;
|
|
348
348
|
}
|
|
349
349
|
async function getDerivedEncryptionKey(secret) {
|
|
350
|
-
return await hkdf('sha256', secret, '', '
|
|
350
|
+
return await hkdf('sha256', secret, '', 'EdgeStore Generated Encryption Key', 32);
|
|
351
351
|
}
|
|
352
352
|
function buildPath(params) {
|
|
353
353
|
const { bucket } = params;
|
|
@@ -399,7 +399,7 @@ async function getContext(token) {
|
|
|
399
399
|
* This function is used to get the original URL,
|
|
400
400
|
* so that we can delete or confirm the upload.
|
|
401
401
|
*/ function unproxyUrl(url) {
|
|
402
|
-
if (
|
|
402
|
+
if (isDev() && url.startsWith('http://')) {
|
|
403
403
|
// get the url param from the query string
|
|
404
404
|
const urlParam = new URL(url).searchParams.get('url');
|
|
405
405
|
if (urlParam) {
|
|
@@ -408,5 +408,17 @@ async function getContext(token) {
|
|
|
408
408
|
}
|
|
409
409
|
return url;
|
|
410
410
|
}
|
|
411
|
+
function getEnv(key) {
|
|
412
|
+
if (typeof process !== 'undefined' && process.env) {
|
|
413
|
+
// @ts-expect-error - In Vite/Astro, the env variables are available on `import.meta`.
|
|
414
|
+
return process.env[key] ?? import.meta.env?.[key];
|
|
415
|
+
}
|
|
416
|
+
// @ts-expect-error - In Vite/Astro, the env variables are available on `import.meta`.
|
|
417
|
+
return import.meta.env?.[key];
|
|
418
|
+
}
|
|
419
|
+
function isDev() {
|
|
420
|
+
return process?.env?.NODE_ENV === 'development' || // @ts-expect-error - In Vite/Astro, the env variables are available on `import.meta`.
|
|
421
|
+
import.meta.env?.DEV;
|
|
422
|
+
}
|
|
411
423
|
|
|
412
|
-
export {
|
|
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 };
|
|
@@ -321,7 +321,7 @@ async function deleteFile(params) {
|
|
|
321
321
|
return res;
|
|
322
322
|
}
|
|
323
323
|
async function encryptJWT(ctx) {
|
|
324
|
-
const secret =
|
|
324
|
+
const secret = getEnv('EDGE_STORE_JWT_SECRET') ?? getEnv('EDGE_STORE_SECRET_KEY');
|
|
325
325
|
if (!secret) {
|
|
326
326
|
throw new shared.EdgeStoreError({
|
|
327
327
|
message: 'EDGE_STORE_JWT_SECRET or EDGE_STORE_SECRET_KEY is not defined',
|
|
@@ -335,7 +335,7 @@ async function encryptJWT(ctx) {
|
|
|
335
335
|
}).setIssuedAt().setExpirationTime(Date.now() / 1000 + DEFAULT_MAX_AGE).setJti(uuid.v4()).encrypt(encryptionSecret);
|
|
336
336
|
}
|
|
337
337
|
async function decryptJWT(token) {
|
|
338
|
-
const secret =
|
|
338
|
+
const secret = getEnv('EDGE_STORE_JWT_SECRET') ?? getEnv('EDGE_STORE_SECRET_KEY');
|
|
339
339
|
if (!secret) {
|
|
340
340
|
throw new shared.EdgeStoreError({
|
|
341
341
|
message: 'EDGE_STORE_JWT_SECRET or EDGE_STORE_SECRET_KEY is not defined',
|
|
@@ -349,7 +349,7 @@ async function decryptJWT(token) {
|
|
|
349
349
|
return payload;
|
|
350
350
|
}
|
|
351
351
|
async function getDerivedEncryptionKey(secret) {
|
|
352
|
-
return await hkdf.hkdf('sha256', secret, '', '
|
|
352
|
+
return await hkdf.hkdf('sha256', secret, '', 'EdgeStore Generated Encryption Key', 32);
|
|
353
353
|
}
|
|
354
354
|
function buildPath(params) {
|
|
355
355
|
const { bucket } = params;
|
|
@@ -401,7 +401,7 @@ async function getContext(token) {
|
|
|
401
401
|
* This function is used to get the original URL,
|
|
402
402
|
* so that we can delete or confirm the upload.
|
|
403
403
|
*/ function unproxyUrl(url) {
|
|
404
|
-
if (
|
|
404
|
+
if (isDev() && url.startsWith('http://')) {
|
|
405
405
|
// get the url param from the query string
|
|
406
406
|
const urlParam = new URL(url).searchParams.get('url');
|
|
407
407
|
if (urlParam) {
|
|
@@ -410,12 +410,26 @@ async function getContext(token) {
|
|
|
410
410
|
}
|
|
411
411
|
return url;
|
|
412
412
|
}
|
|
413
|
+
function getEnv(key) {
|
|
414
|
+
if (typeof process !== 'undefined' && process.env) {
|
|
415
|
+
// @ts-expect-error - In Vite/Astro, the env variables are available on `import.meta`.
|
|
416
|
+
return process.env[key] ?? undefined?.[key];
|
|
417
|
+
}
|
|
418
|
+
// @ts-expect-error - In Vite/Astro, the env variables are available on `import.meta`.
|
|
419
|
+
return undefined?.[key];
|
|
420
|
+
}
|
|
421
|
+
function isDev() {
|
|
422
|
+
return process?.env?.NODE_ENV === 'development' || // @ts-expect-error - In Vite/Astro, the env variables are available on `import.meta`.
|
|
423
|
+
undefined?.DEV;
|
|
424
|
+
}
|
|
413
425
|
|
|
414
426
|
exports.buildPath = buildPath;
|
|
415
427
|
exports.completeMultipartUpload = completeMultipartUpload;
|
|
416
428
|
exports.confirmUpload = confirmUpload;
|
|
417
429
|
exports.deleteFile = deleteFile;
|
|
430
|
+
exports.getEnv = getEnv;
|
|
418
431
|
exports.init = init;
|
|
432
|
+
exports.isDev = isDev;
|
|
419
433
|
exports.parsePath = parsePath;
|
|
420
434
|
exports.requestUpload = requestUpload;
|
|
421
435
|
exports.requestUploadParts = requestUploadParts;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var shared = require('./shared-685c8a0c.js');
|
|
4
|
+
|
|
3
5
|
/* eslint-disable no-console */ function _define_property(obj, key, value) {
|
|
4
6
|
if (key in obj) {
|
|
5
7
|
Object.defineProperty(obj, key, {
|
|
@@ -46,7 +48,7 @@ class Logger {
|
|
|
46
48
|
}
|
|
47
49
|
constructor(logLevel){
|
|
48
50
|
_define_property(this, "logLevel", void 0);
|
|
49
|
-
this.logLevel = logLevel ?? (
|
|
51
|
+
this.logLevel = logLevel ?? (shared.isDev() ? 'info' : 'error');
|
|
50
52
|
}
|
|
51
53
|
}
|
|
52
54
|
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { i as isDev } from './shared-4b199b96.mjs';
|
|
2
|
+
|
|
1
3
|
/* eslint-disable no-console */ function _define_property(obj, key, value) {
|
|
2
4
|
if (key in obj) {
|
|
3
5
|
Object.defineProperty(obj, key, {
|
|
@@ -44,7 +46,7 @@ class Logger {
|
|
|
44
46
|
}
|
|
45
47
|
constructor(logLevel){
|
|
46
48
|
_define_property(this, "logLevel", void 0);
|
|
47
|
-
this.logLevel = logLevel ?? (
|
|
49
|
+
this.logLevel = logLevel ?? (isDev() ? 'info' : 'error');
|
|
48
50
|
}
|
|
49
51
|
}
|
|
50
52
|
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { i as isDev } from './shared-25dbfab4.js';
|
|
2
|
+
|
|
1
3
|
/* eslint-disable no-console */
|
|
2
4
|
const logLevel = ['debug', 'info', 'warn', 'error', 'none'];
|
|
3
5
|
class Logger {
|
|
4
6
|
constructor(logLevel) {
|
|
5
|
-
this.logLevel =
|
|
6
|
-
logLevel ?? (process.env.NODE_ENV === 'production' ? 'error' : 'info');
|
|
7
|
+
this.logLevel = logLevel ?? (isDev() ? 'info' : 'error');
|
|
7
8
|
}
|
|
8
9
|
shouldLog(level) {
|
|
9
10
|
return logLevel.indexOf(level) >= logLevel.indexOf(this.logLevel);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@edgestore/server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.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",
|
|
@@ -37,11 +37,26 @@
|
|
|
37
37
|
"require": "./dist/core/index.js",
|
|
38
38
|
"default": "./dist/core/index.js"
|
|
39
39
|
},
|
|
40
|
+
"./adapters/astro": {
|
|
41
|
+
"import": "./dist/adapters/astro/index.mjs",
|
|
42
|
+
"require": "./dist/adapters/astro/index.js",
|
|
43
|
+
"default": "./dist/adapters/astro/index.js"
|
|
44
|
+
},
|
|
40
45
|
"./adapters/express": {
|
|
41
46
|
"import": "./dist/adapters/express/index.mjs",
|
|
42
47
|
"require": "./dist/adapters/express/index.js",
|
|
43
48
|
"default": "./dist/adapters/express/index.js"
|
|
44
49
|
},
|
|
50
|
+
"./adapters/fastify": {
|
|
51
|
+
"import": "./dist/adapters/fastify/index.mjs",
|
|
52
|
+
"require": "./dist/adapters/fastify/index.js",
|
|
53
|
+
"default": "./dist/adapters/fastify/index.js"
|
|
54
|
+
},
|
|
55
|
+
"./adapters/hono": {
|
|
56
|
+
"import": "./dist/adapters/hono/index.mjs",
|
|
57
|
+
"require": "./dist/adapters/hono/index.js",
|
|
58
|
+
"default": "./dist/adapters/hono/index.js"
|
|
59
|
+
},
|
|
45
60
|
"./adapters/next/pages": {
|
|
46
61
|
"import": "./dist/adapters/next/pages/index.mjs",
|
|
47
62
|
"require": "./dist/adapters/next/pages/index.js",
|
|
@@ -52,6 +67,11 @@
|
|
|
52
67
|
"require": "./dist/adapters/next/app/index.js",
|
|
53
68
|
"default": "./dist/adapters/next/app/index.js"
|
|
54
69
|
},
|
|
70
|
+
"./adapters/remix": {
|
|
71
|
+
"import": "./dist/adapters/remix/index.mjs",
|
|
72
|
+
"require": "./dist/adapters/remix/index.js",
|
|
73
|
+
"default": "./dist/adapters/remix/index.js"
|
|
74
|
+
},
|
|
55
75
|
"./adapters/start": {
|
|
56
76
|
"import": "./dist/adapters/start/index.mjs",
|
|
57
77
|
"require": "./dist/adapters/start/index.js",
|
|
@@ -89,7 +109,7 @@
|
|
|
89
109
|
},
|
|
90
110
|
"license": "MIT",
|
|
91
111
|
"dependencies": {
|
|
92
|
-
"@edgestore/shared": "0.
|
|
112
|
+
"@edgestore/shared": "0.5.0",
|
|
93
113
|
"@panva/hkdf": "^1.0.4",
|
|
94
114
|
"cookie": "^0.5.0",
|
|
95
115
|
"jose": "^4.13.1",
|
|
@@ -120,13 +140,16 @@
|
|
|
120
140
|
"@aws-sdk/s3-request-presigner": "^3.420.0",
|
|
121
141
|
"@azure/storage-blob": "^12.17.0",
|
|
122
142
|
"@types/cookie": "^0.5.1",
|
|
123
|
-
"@types/node": "^
|
|
143
|
+
"@types/node": "^20",
|
|
124
144
|
"@types/uuid": "^9.0.1",
|
|
125
|
-
"
|
|
126
|
-
"
|
|
127
|
-
"
|
|
128
|
-
"
|
|
145
|
+
"astro": "^5.7.12",
|
|
146
|
+
"fastify": "^5.3.2",
|
|
147
|
+
"hono": "^4.7.9",
|
|
148
|
+
"next": "^15.2.4",
|
|
149
|
+
"react": "^19.0.0",
|
|
150
|
+
"react-dom": "^19.0.0",
|
|
151
|
+
"typescript": "^5",
|
|
129
152
|
"zod": "3.21.4"
|
|
130
153
|
},
|
|
131
|
-
"gitHead": "
|
|
154
|
+
"gitHead": "1bc997b2797e026d6661b9964e74c6e117dba352"
|
|
132
155
|
}
|