@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.
Files changed (83) hide show
  1. package/README.md +3 -3
  2. package/adapters/astro/index.d.ts +1 -0
  3. package/adapters/astro/index.js +1 -0
  4. package/adapters/fastify/index.d.ts +1 -0
  5. package/adapters/fastify/index.js +1 -0
  6. package/adapters/hono/index.d.ts +1 -0
  7. package/adapters/hono/index.js +1 -0
  8. package/adapters/remix/index.d.ts +1 -0
  9. package/adapters/remix/index.js +1 -0
  10. package/dist/adapters/astro/index.d.ts +14 -0
  11. package/dist/adapters/astro/index.d.ts.map +1 -0
  12. package/dist/adapters/astro/index.js +183 -0
  13. package/dist/adapters/astro/index.mjs +179 -0
  14. package/dist/adapters/express/index.js +4 -4
  15. package/dist/adapters/express/index.mjs +4 -4
  16. package/dist/adapters/fastify/index.d.ts +18 -0
  17. package/dist/adapters/fastify/index.d.ts.map +1 -0
  18. package/dist/adapters/fastify/index.js +147 -0
  19. package/dist/adapters/fastify/index.mjs +143 -0
  20. package/dist/adapters/hono/index.d.ts +82 -0
  21. package/dist/adapters/hono/index.d.ts.map +1 -0
  22. package/dist/adapters/hono/index.js +137 -0
  23. package/dist/adapters/hono/index.mjs +133 -0
  24. package/dist/adapters/next/app/index.js +4 -4
  25. package/dist/adapters/next/app/index.mjs +4 -4
  26. package/dist/adapters/next/pages/index.js +4 -4
  27. package/dist/adapters/next/pages/index.mjs +4 -4
  28. package/dist/adapters/remix/index.d.ts +18 -0
  29. package/dist/adapters/remix/index.d.ts.map +1 -0
  30. package/dist/adapters/remix/index.js +158 -0
  31. package/dist/adapters/remix/index.mjs +154 -0
  32. package/dist/adapters/shared.d.ts +2 -0
  33. package/dist/adapters/shared.d.ts.map +1 -1
  34. package/dist/adapters/start/index.d.ts.map +1 -1
  35. package/dist/adapters/start/index.js +4 -4
  36. package/dist/adapters/start/index.mjs +4 -4
  37. package/dist/core/client/index.d.ts +1 -1
  38. package/dist/core/client/index.d.ts.map +1 -1
  39. package/dist/core/index.js +3 -3
  40. package/dist/core/index.mjs +4 -4
  41. package/dist/core/sdk/index.d.ts +4 -4
  42. package/dist/core/sdk/index.d.ts.map +1 -1
  43. package/dist/{index-28efdacf.mjs → index-2848cb40.mjs} +4 -3
  44. package/dist/{index-beed799d.js → index-421c502f.js} +4 -3
  45. package/dist/{index-4491caf0.js → index-7b259533.js} +6 -5
  46. package/dist/libs/logger.d.ts +1 -1
  47. package/dist/libs/logger.d.ts.map +1 -1
  48. package/dist/providers/aws/index.d.ts.map +1 -1
  49. package/dist/providers/aws/index.js +7 -2
  50. package/dist/providers/aws/index.mjs +7 -2
  51. package/dist/providers/azure/index.d.ts.map +1 -1
  52. package/dist/providers/azure/index.js +6 -1
  53. package/dist/providers/azure/index.mjs +6 -1
  54. package/dist/providers/edgestore/index.d.ts.map +1 -1
  55. package/dist/providers/edgestore/index.js +13 -6
  56. package/dist/providers/edgestore/index.mjs +10 -3
  57. package/dist/{shared-83f288f6.js → shared-25dbfab4.js} +19 -6
  58. package/dist/{shared-039276af.mjs → shared-4b199b96.mjs} +17 -5
  59. package/dist/{shared-7c700083.js → shared-685c8a0c.js} +18 -4
  60. package/dist/{utils-5819d5e1.js → utils-0aab6e3b.js} +3 -1
  61. package/dist/{utils-f6f56d38.mjs → utils-7349adab.mjs} +3 -1
  62. package/dist/{utils-461a2e3b.js → utils-b3d35894.js} +3 -2
  63. package/package.json +31 -8
  64. package/src/adapters/astro/index.ts +222 -0
  65. package/src/adapters/express/index.ts +1 -1
  66. package/src/adapters/fastify/index.ts +205 -0
  67. package/src/adapters/hono/index.ts +195 -0
  68. package/src/adapters/next/app/index.ts +1 -1
  69. package/src/adapters/next/pages/index.ts +1 -1
  70. package/src/adapters/remix/index.ts +201 -0
  71. package/src/adapters/shared.ts +21 -4
  72. package/src/adapters/start/index.ts +1 -1
  73. package/src/core/client/index.ts +11 -3
  74. package/src/core/sdk/index.ts +4 -3
  75. package/src/libs/errors/EdgeStoreCredentialsError.ts +1 -1
  76. package/src/libs/logger.ts +4 -3
  77. package/src/providers/aws/index.ts +8 -7
  78. package/src/providers/azure/index.ts +5 -4
  79. package/src/providers/edgestore/index.ts +8 -3
  80. package/adapters/index.d.ts +0 -1
  81. package/adapters/index.js +0 -1
  82. package/providers/index.d.ts +0 -1
  83. 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 = process.env.ES_AWS_ACCESS_KEY_ID, secretAccessKey = process.env.ES_AWS_SECRET_ACCESS_KEY, region = process.env.ES_AWS_REGION, bucketName = process.env.ES_AWS_BUCKET_NAME, endpoint = process.env.ES_AWS_ENDPOINT, forcePathStyle = process.env.ES_AWS_FORCE_PATH_STYLE === 'true' } = options ?? {};
11
- const baseUrl = options?.baseUrl ?? process.env.EDGE_STORE_BASE_URL ?? (endpoint ? `${endpoint}/${bucketName}` : `https://${bucketName}.s3.${region}.amazonaws.com`);
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 = process.env.ES_AWS_ACCESS_KEY_ID, secretAccessKey = process.env.ES_AWS_SECRET_ACCESS_KEY, region = process.env.ES_AWS_REGION, bucketName = process.env.ES_AWS_BUCKET_NAME, endpoint = process.env.ES_AWS_ENDPOINT, forcePathStyle = process.env.ES_AWS_FORCE_PATH_STYLE === 'true' } = options ?? {};
7
- const baseUrl = options?.baseUrl ?? process.env.EDGE_STORE_BASE_URL ?? (endpoint ? `${endpoint}/${bucketName}` : `https://${bucketName}.s3.${region}.amazonaws.com`);
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;AAGlD;;;;;;;;;;;;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"}
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 = process.env.ES_AZURE_ACCOUNT_NAME, sasToken = process.env.ES_AZURE_SAS_TOKEN, containerName = process.env.ES_AZURE_CONTAINER_NAME, customBaseUrl = process.env.ES_AZURE_BASE_URL } = options ?? {};
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 = process.env.ES_AZURE_ACCOUNT_NAME, sasToken = process.env.ES_AZURE_SAS_TOKEN, containerName = process.env.ES_AZURE_CONTAINER_NAME, customBaseUrl = process.env.ES_AZURE_BASE_URL } = options ?? {};
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;AAM3B,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,CAgJV"}
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 index = require('../../index-4491caf0.js');
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 = process.env.EDGE_STORE_ACCESS_KEY, secretKey = process.env.EDGE_STORE_SECRET_KEY } = options ?? {};
11
- const baseUrl = process.env.EDGE_STORE_BASE_URL ?? DEFAULT_BASE_URL;
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 { E as EdgeStoreCredentialsError, i as initEdgeStoreSdk } from '../../index-28efdacf.mjs';
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 = process.env.EDGE_STORE_ACCESS_KEY, secretKey = process.env.EDGE_STORE_SECRET_KEY } = options ?? {};
7
- const baseUrl = process.env.EDGE_STORE_BASE_URL ?? DEFAULT_BASE_URL;
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 = process.env.EDGE_STORE_JWT_SECRET ?? process.env.EDGE_STORE_SECRET_KEY;
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 = process.env.EDGE_STORE_JWT_SECRET ?? process.env.EDGE_STORE_SECRET_KEY;
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, '', 'Edge Store Generated Encryption Key', 32);
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 (process.env.NODE_ENV === 'development' && url.startsWith('http://')) {
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 { requestUploadParts as a, buildPath as b, completeMultipartUpload as c, confirmUpload as d, deleteFile as e, init as i, parsePath as p, requestUpload as r };
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 = process.env.EDGE_STORE_JWT_SECRET ?? process.env.EDGE_STORE_SECRET_KEY;
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 = process.env.EDGE_STORE_JWT_SECRET ?? process.env.EDGE_STORE_SECRET_KEY;
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, '', 'Edge Store Generated Encryption Key', 32);
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 (process.env.NODE_ENV === 'development' && url.startsWith('http://')) {
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 { requestUploadParts as a, buildPath as b, completeMultipartUpload as c, confirmUpload as d, deleteFile as e, init as i, parsePath as p, requestUpload as r };
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 = process.env.EDGE_STORE_JWT_SECRET ?? process.env.EDGE_STORE_SECRET_KEY;
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 = process.env.EDGE_STORE_JWT_SECRET ?? process.env.EDGE_STORE_SECRET_KEY;
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, '', 'Edge Store Generated Encryption Key', 32);
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 (process.env.NODE_ENV === 'development' && url.startsWith('http://')) {
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 ?? (process.env.NODE_ENV === 'production' ? 'error' : 'info');
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 ?? (process.env.NODE_ENV === 'production' ? 'error' : 'info');
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.3",
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.3.3",
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": "^18.11.18",
143
+ "@types/node": "^20",
124
144
  "@types/uuid": "^9.0.1",
125
- "next": "^13.4.9",
126
- "react": "^18.2.0",
127
- "react-dom": "^18.2.0",
128
- "typescript": "^5.1.6",
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": "9bc2c36ee2463f79c26cb39cfc69dc77b7569a21"
154
+ "gitHead": "1bc997b2797e026d6661b9964e74c6e117dba352"
132
155
  }