@edgestore/server 0.1.5-alpha.1 → 0.1.5-alpha.10

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 (65) hide show
  1. package/adapters/express/index.d.ts +1 -0
  2. package/adapters/express/index.js +1 -0
  3. package/dist/adapters/express/index.d.ts +20 -0
  4. package/dist/adapters/express/index.d.ts.map +1 -0
  5. package/dist/adapters/express/index.js +117 -0
  6. package/dist/adapters/express/index.mjs +113 -0
  7. package/dist/adapters/next/app/index.d.ts +5 -3
  8. package/dist/adapters/next/app/index.d.ts.map +1 -1
  9. package/dist/adapters/next/app/index.js +45 -16
  10. package/dist/adapters/next/app/index.mjs +44 -15
  11. package/dist/adapters/next/pages/index.d.ts +5 -3
  12. package/dist/adapters/next/pages/index.d.ts.map +1 -1
  13. package/dist/adapters/next/pages/index.js +37 -13
  14. package/dist/adapters/next/pages/index.mjs +36 -12
  15. package/dist/adapters/shared.d.ts +19 -1
  16. package/dist/adapters/shared.d.ts.map +1 -1
  17. package/dist/core/client/index.d.ts +116 -4
  18. package/dist/core/client/index.d.ts.map +1 -1
  19. package/dist/core/index.d.ts +2 -0
  20. package/dist/core/index.d.ts.map +1 -1
  21. package/dist/core/index.js +109 -34
  22. package/dist/core/index.mjs +110 -36
  23. package/dist/core/sdk/index.d.ts.map +1 -1
  24. package/dist/{index-f33a00fb.js → index-0c401ce1.js} +38 -4
  25. package/dist/{index-50ab9e08.js → index-23d1ede9.mjs} +42 -7
  26. package/dist/{index-30a3741e.mjs → index-a2e7ca9e.js} +49 -4
  27. package/dist/libs/errors/EdgeStoreApiClientError.d.ts +8 -0
  28. package/dist/libs/errors/EdgeStoreApiClientError.d.ts.map +1 -0
  29. package/dist/libs/errors/EdgeStoreCredentialsError.d.ts.map +1 -1
  30. package/dist/libs/errors/EdgeStoreError.d.ts +36 -4
  31. package/dist/libs/errors/EdgeStoreError.d.ts.map +1 -1
  32. package/dist/libs/logger.d.ts +13 -0
  33. package/dist/libs/logger.d.ts.map +1 -0
  34. package/dist/logger-7ea2248c.mjs +40 -0
  35. package/dist/logger-b530a3e1.js +42 -0
  36. package/dist/logger-e0066db9.js +33 -0
  37. package/dist/providers/azure/index.d.ts +20 -0
  38. package/dist/providers/azure/index.d.ts.map +1 -0
  39. package/dist/providers/azure/index.js +61 -0
  40. package/dist/providers/azure/index.mjs +57 -0
  41. package/dist/providers/edgestore/index.d.ts.map +1 -1
  42. package/dist/providers/edgestore/index.js +10 -3
  43. package/dist/providers/edgestore/index.mjs +10 -3
  44. package/dist/{shared-306c1af2.js → shared-06cb0d86.js} +150 -61
  45. package/dist/{shared-9fad0d51.js → shared-d474acc6.js} +114 -46
  46. package/dist/{shared-6dea9e91.mjs → shared-d7ea66fb.mjs} +141 -52
  47. package/dist/types.d.ts +6 -0
  48. package/dist/types.d.ts.map +1 -1
  49. package/package.json +17 -2
  50. package/providers/azure/index.d.ts +1 -0
  51. package/providers/azure/index.js +1 -0
  52. package/src/adapters/express/index.ts +164 -0
  53. package/src/adapters/next/app/index.ts +63 -20
  54. package/src/adapters/next/pages/index.ts +52 -15
  55. package/src/adapters/shared.ts +142 -40
  56. package/src/core/client/index.ts +233 -51
  57. package/src/core/index.ts +6 -0
  58. package/src/core/sdk/index.ts +7 -1
  59. package/src/libs/errors/EdgeStoreApiClientError.ts +14 -0
  60. package/src/libs/errors/EdgeStoreCredentialsError.ts +1 -2
  61. package/src/libs/errors/EdgeStoreError.ts +74 -7
  62. package/src/libs/logger.ts +44 -0
  63. package/src/providers/azure/index.ts +89 -0
  64. package/src/providers/edgestore/index.ts +9 -2
  65. package/src/types.ts +8 -0
@@ -0,0 +1 @@
1
+ export * from '../../dist/adapters/express';
@@ -0,0 +1 @@
1
+ module.exports = require('../../dist/adapters/express');
@@ -0,0 +1,20 @@
1
+ import { type Request, type Response } from 'express';
2
+ import { type EdgeStoreRouter } from '../../core/internals/bucketBuilder';
3
+ import { type LogLevel } from '../../libs/logger';
4
+ import { type Provider } from '../../providers/types';
5
+ import { type MaybePromise } from '../../types';
6
+ export type CreateContextOptions = {
7
+ req: Request;
8
+ res: Response;
9
+ };
10
+ export type Config<TCtx> = {
11
+ provider?: Provider;
12
+ router: EdgeStoreRouter<TCtx>;
13
+ logLevel?: LogLevel;
14
+ } & (TCtx extends Record<string, never> ? object : {
15
+ provider?: Provider;
16
+ router: EdgeStoreRouter<TCtx>;
17
+ createContext: (opts: CreateContextOptions) => MaybePromise<TCtx>;
18
+ });
19
+ export declare function createEdgeStoreExpressHandler<TCtx>(config: Config<TCtx>): (req: Request, res: Response) => Promise<void>;
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/express/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAK1E,OAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAehD,MAAM,MAAM,oBAAoB,GAAG;IACjC,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,EAAE,QAAQ,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,MAAM,CAAC,IAAI,IAAI;IACzB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;IAC9B,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,GAAG,CAAC,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACnC,MAAM,GACN;IACE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;IAC9B,aAAa,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;CACnE,CAAC,CAAC;AAMP,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,SAMnD,OAAO,OAAO,QAAQ,mBAgH1C"}
@@ -0,0 +1,117 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var index = require('../../index-a2e7ca9e.js');
6
+ var logger = require('../../logger-b530a3e1.js');
7
+ var providers_edgestore_index = require('../../providers/edgestore/index.js');
8
+ var shared = require('../../shared-06cb0d86.js');
9
+ require('@swc/helpers/_/_define_property');
10
+ require('@panva/hkdf');
11
+ require('cookie');
12
+ require('jose');
13
+ require('uuid');
14
+
15
+ function createEdgeStoreExpressHandler(config) {
16
+ const { provider = providers_edgestore_index.EdgeStoreProvider() } = config;
17
+ const log = new logger.Logger(config.logLevel);
18
+ globalThis._EDGE_STORE_LOGGER = log;
19
+ log.debug('Creating Edge Store Express handler');
20
+ return async (req, res)=>{
21
+ try {
22
+ if (req.url?.includes?.('/health')) {
23
+ res.send('OK');
24
+ } else if (req.url?.includes?.('/init')) {
25
+ let ctx = {};
26
+ try {
27
+ ctx = 'createContext' in config ? await config.createContext({
28
+ req,
29
+ res
30
+ }) : {};
31
+ } catch (err) {
32
+ throw new index.EdgeStoreError({
33
+ message: 'Error creating context',
34
+ code: 'CREATE_CONTEXT_ERROR',
35
+ cause: err instanceof Error ? err : undefined
36
+ });
37
+ }
38
+ const { newCookies, token, baseUrl } = await shared.init({
39
+ ctx,
40
+ provider,
41
+ router: config.router
42
+ });
43
+ res.setHeader('Set-Cookie', newCookies);
44
+ res.json({
45
+ token,
46
+ baseUrl
47
+ });
48
+ } else if (req.url?.includes?.('/request-upload')) {
49
+ res.json(await shared.requestUpload({
50
+ provider,
51
+ router: config.router,
52
+ body: req.body,
53
+ ctxToken: req.cookies['edgestore-ctx']
54
+ }));
55
+ } else if (req.url?.includes?.('/request-upload-parts')) {
56
+ res.json(await shared.requestUploadParts({
57
+ provider,
58
+ router: config.router,
59
+ body: req.body,
60
+ ctxToken: req.cookies['edgestore-ctx']
61
+ }));
62
+ } else if (req.url?.includes?.('/complete-multipart-upload')) {
63
+ await shared.completeMultipartUpload({
64
+ provider,
65
+ router: config.router,
66
+ body: req.body,
67
+ ctxToken: req.cookies['edgestore-ctx']
68
+ });
69
+ res.status(200).end();
70
+ } else if (req.url?.includes?.('/confirm-upload')) {
71
+ res.json(await shared.confirmUpload({
72
+ provider,
73
+ router: config.router,
74
+ body: req.body,
75
+ ctxToken: req.cookies['edgestore-ctx']
76
+ }));
77
+ } else if (req.url?.includes?.('/delete-file')) {
78
+ res.json(await shared.deleteFile({
79
+ provider,
80
+ router: config.router,
81
+ body: req.body,
82
+ ctxToken: req.cookies['edgestore-ctx']
83
+ }));
84
+ } else if (req.url?.includes?.('/proxy-file')) {
85
+ const { url } = req.query;
86
+ if (typeof url === 'string') {
87
+ const proxyRes = await fetch(url, {
88
+ headers: {
89
+ cookie: req.headers.cookie ?? ''
90
+ }
91
+ });
92
+ const data = await proxyRes.arrayBuffer();
93
+ res.setHeader('Content-Type', proxyRes.headers.get('Content-Type') ?? 'application/octet-stream');
94
+ res.end(Buffer.from(data));
95
+ } else {
96
+ res.status(400).end();
97
+ }
98
+ } else {
99
+ res.status(404).end();
100
+ }
101
+ } catch (err) {
102
+ if (err instanceof index.EdgeStoreError) {
103
+ log[err.level](err.formattedMessage());
104
+ if (err.cause) log[err.level](err.cause);
105
+ res.status(index.EDGE_STORE_ERROR_CODES[err.code]).json(err.formattedJson());
106
+ } else {
107
+ log.error(err);
108
+ res.status(500).send(new index.EdgeStoreError({
109
+ message: 'Internal Server Error',
110
+ code: 'SERVER_ERROR'
111
+ }).formattedJson());
112
+ }
113
+ }
114
+ };
115
+ }
116
+
117
+ exports.createEdgeStoreExpressHandler = createEdgeStoreExpressHandler;
@@ -0,0 +1,113 @@
1
+ import { E as EdgeStoreError, a as EDGE_STORE_ERROR_CODES } from '../../index-23d1ede9.mjs';
2
+ import { L as Logger } from '../../logger-7ea2248c.mjs';
3
+ import { EdgeStoreProvider } from '../../providers/edgestore/index.mjs';
4
+ import { i as init, r as requestUpload, a as requestUploadParts, c as completeMultipartUpload, d as confirmUpload, e as deleteFile } from '../../shared-d7ea66fb.mjs';
5
+ import '@swc/helpers/_/_define_property';
6
+ import '@panva/hkdf';
7
+ import 'cookie';
8
+ import 'jose';
9
+ import 'uuid';
10
+
11
+ function createEdgeStoreExpressHandler(config) {
12
+ const { provider = EdgeStoreProvider() } = config;
13
+ const log = new Logger(config.logLevel);
14
+ globalThis._EDGE_STORE_LOGGER = log;
15
+ log.debug('Creating Edge Store Express handler');
16
+ return async (req, res)=>{
17
+ try {
18
+ if (req.url?.includes?.('/health')) {
19
+ res.send('OK');
20
+ } else if (req.url?.includes?.('/init')) {
21
+ let ctx = {};
22
+ try {
23
+ ctx = 'createContext' in config ? await config.createContext({
24
+ req,
25
+ res
26
+ }) : {};
27
+ } catch (err) {
28
+ throw new EdgeStoreError({
29
+ message: 'Error creating context',
30
+ code: 'CREATE_CONTEXT_ERROR',
31
+ cause: err instanceof Error ? err : undefined
32
+ });
33
+ }
34
+ const { newCookies, token, baseUrl } = await init({
35
+ ctx,
36
+ provider,
37
+ router: config.router
38
+ });
39
+ res.setHeader('Set-Cookie', newCookies);
40
+ res.json({
41
+ token,
42
+ baseUrl
43
+ });
44
+ } else if (req.url?.includes?.('/request-upload')) {
45
+ res.json(await requestUpload({
46
+ provider,
47
+ router: config.router,
48
+ body: req.body,
49
+ ctxToken: req.cookies['edgestore-ctx']
50
+ }));
51
+ } else if (req.url?.includes?.('/request-upload-parts')) {
52
+ res.json(await requestUploadParts({
53
+ provider,
54
+ router: config.router,
55
+ body: req.body,
56
+ ctxToken: req.cookies['edgestore-ctx']
57
+ }));
58
+ } else if (req.url?.includes?.('/complete-multipart-upload')) {
59
+ await completeMultipartUpload({
60
+ provider,
61
+ router: config.router,
62
+ body: req.body,
63
+ ctxToken: req.cookies['edgestore-ctx']
64
+ });
65
+ res.status(200).end();
66
+ } else if (req.url?.includes?.('/confirm-upload')) {
67
+ res.json(await confirmUpload({
68
+ provider,
69
+ router: config.router,
70
+ body: req.body,
71
+ ctxToken: req.cookies['edgestore-ctx']
72
+ }));
73
+ } else if (req.url?.includes?.('/delete-file')) {
74
+ res.json(await deleteFile({
75
+ provider,
76
+ router: config.router,
77
+ body: req.body,
78
+ ctxToken: req.cookies['edgestore-ctx']
79
+ }));
80
+ } else if (req.url?.includes?.('/proxy-file')) {
81
+ const { url } = req.query;
82
+ if (typeof url === 'string') {
83
+ const proxyRes = await fetch(url, {
84
+ headers: {
85
+ cookie: req.headers.cookie ?? ''
86
+ }
87
+ });
88
+ const data = await proxyRes.arrayBuffer();
89
+ res.setHeader('Content-Type', proxyRes.headers.get('Content-Type') ?? 'application/octet-stream');
90
+ res.end(Buffer.from(data));
91
+ } else {
92
+ res.status(400).end();
93
+ }
94
+ } else {
95
+ res.status(404).end();
96
+ }
97
+ } catch (err) {
98
+ if (err instanceof EdgeStoreError) {
99
+ log[err.level](err.formattedMessage());
100
+ if (err.cause) log[err.level](err.cause);
101
+ res.status(EDGE_STORE_ERROR_CODES[err.code]).json(err.formattedJson());
102
+ } else {
103
+ log.error(err);
104
+ res.status(500).send(new EdgeStoreError({
105
+ message: 'Internal Server Error',
106
+ code: 'SERVER_ERROR'
107
+ }).formattedJson());
108
+ }
109
+ }
110
+ };
111
+ }
112
+
113
+ export { createEdgeStoreExpressHandler };
@@ -1,17 +1,19 @@
1
1
  import { type NextRequest } from 'next/server';
2
2
  import { type EdgeStoreRouter } from '../../../core/internals/bucketBuilder';
3
+ import { type LogLevel } from '../../../libs/logger';
3
4
  import { type Provider } from '../../../providers/types';
4
5
  import { type MaybePromise } from '../../../types';
5
6
  export type CreateContextOptions = {
6
7
  req: NextRequest;
7
8
  };
8
- export type Config<TCtx> = TCtx extends Record<string, never> ? {
9
+ export type Config<TCtx> = {
9
10
  provider?: Provider;
10
11
  router: EdgeStoreRouter<TCtx>;
11
- } : {
12
+ logLevel?: LogLevel;
13
+ } & (TCtx extends Record<string, never> ? object : {
12
14
  provider?: Provider;
13
15
  router: EdgeStoreRouter<TCtx>;
14
16
  createContext: (opts: CreateContextOptions) => MaybePromise<TCtx>;
15
- };
17
+ });
16
18
  export declare function createEdgeStoreNextHandler<TCtx>(config: Config<TCtx>): (req: NextRequest) => Promise<Response>;
17
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapters/next/app/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAK7E,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAenD,MAAM,MAAM,oBAAoB,GAAG;IACjC,GAAG,EAAE,WAAW,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,MAAM,CAAC,IAAI,IAAI,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACzD;IACE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;CAC/B,GACD;IACE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;IAC9B,aAAa,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;CACnE,CAAC;AAEN,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,SAEhD,WAAW,uBAqI/B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapters/next/app/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAK7E,OAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAenD,MAAM,MAAM,oBAAoB,GAAG;IACjC,GAAG,EAAE,WAAW,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,MAAM,CAAC,IAAI,IAAI;IACzB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;IAC9B,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,GAAG,CAAC,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACnC,MAAM,GACN;IACE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;IAC9B,aAAa,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;CACnE,CAAC,CAAC;AAMP,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,SAMhD,WAAW,uBAqK/B"}
@@ -2,23 +2,44 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var shared = require('../../../shared-306c1af2.js');
5
+ var index = require('../../../index-a2e7ca9e.js');
6
+ var logger = require('../../../logger-b530a3e1.js');
6
7
  var providers_edgestore_index = require('../../../providers/edgestore/index.js');
8
+ var shared = require('../../../shared-06cb0d86.js');
9
+ require('@swc/helpers/_/_define_property');
7
10
  require('@panva/hkdf');
8
11
  require('cookie');
9
12
  require('jose');
10
13
  require('uuid');
11
- require('@swc/helpers/_/_define_property');
12
- require('../../../index-50ab9e08.js');
13
14
 
14
15
  function createEdgeStoreNextHandler(config) {
15
16
  const { provider = providers_edgestore_index.EdgeStoreProvider() } = config;
17
+ const log = new logger.Logger(config.logLevel);
18
+ globalThis._EDGE_STORE_LOGGER = log;
19
+ log.debug('Creating Edge Store Next handler (app adapter)');
16
20
  return async (req)=>{
17
21
  try {
18
- if (req.nextUrl.pathname.endsWith('/init')) {
19
- const ctx = 'createContext' in config ? await config.createContext({
20
- req
21
- }) : {};
22
+ if (!('nextUrl' in req)) throw new index.EdgeStoreError({
23
+ message: 'Error running the app adapter. Make sure you are importing the correct adapter in your router configuration',
24
+ code: 'SERVER_ERROR'
25
+ });
26
+ if (req.nextUrl.pathname.endsWith('/health')) {
27
+ return new Response('OK', {
28
+ status: 200
29
+ });
30
+ } else if (req.nextUrl.pathname.endsWith('/init')) {
31
+ let ctx = {};
32
+ try {
33
+ ctx = 'createContext' in config ? await config.createContext({
34
+ req
35
+ }) : {};
36
+ } catch (err) {
37
+ throw new index.EdgeStoreError({
38
+ message: 'Error creating context',
39
+ code: 'CREATE_CONTEXT_ERROR',
40
+ cause: err instanceof Error ? err : undefined
41
+ });
42
+ }
22
43
  const { newCookies, token, baseUrl } = await shared.init({
23
44
  ctx,
24
45
  provider,
@@ -125,17 +146,25 @@ function createEdgeStoreNextHandler(config) {
125
146
  });
126
147
  }
127
148
  } catch (err) {
128
- if (err instanceof shared.EdgeStoreError) {
129
- return new Response(err.message, {
130
- status: shared.EDGE_STORE_ERROR_CODES[err.code]
131
- });
132
- } else if (err instanceof Error) {
133
- return new Response(err.message, {
134
- status: 500
149
+ if (err instanceof index.EdgeStoreError) {
150
+ log[err.level](err.formattedMessage());
151
+ if (err.cause) log[err.level](err.cause);
152
+ return new Response(JSON.stringify(err.formattedJson()), {
153
+ status: index.EDGE_STORE_ERROR_CODES[err.code],
154
+ headers: {
155
+ 'Content-Type': 'application/json'
156
+ }
135
157
  });
136
158
  }
137
- return new Response('Internal server error', {
138
- status: 500
159
+ log.error(err);
160
+ return new Response(JSON.stringify(new index.EdgeStoreError({
161
+ message: 'Internal server error',
162
+ code: 'SERVER_ERROR'
163
+ }).formattedJson()), {
164
+ status: 500,
165
+ headers: {
166
+ 'Content-Type': 'application/json'
167
+ }
139
168
  });
140
169
  }
141
170
  };
@@ -1,20 +1,41 @@
1
- import { i as init, r as requestUpload, a as requestUploadParts, c as completeMultipartUpload, b as confirmUpload, d as deleteFile, E as EdgeStoreError, e as EDGE_STORE_ERROR_CODES } from '../../../shared-6dea9e91.mjs';
1
+ import { E as EdgeStoreError, a as EDGE_STORE_ERROR_CODES } from '../../../index-23d1ede9.mjs';
2
+ import { L as Logger } from '../../../logger-7ea2248c.mjs';
2
3
  import { EdgeStoreProvider } from '../../../providers/edgestore/index.mjs';
4
+ import { i as init, r as requestUpload, a as requestUploadParts, c as completeMultipartUpload, d as confirmUpload, e as deleteFile } from '../../../shared-d7ea66fb.mjs';
5
+ import '@swc/helpers/_/_define_property';
3
6
  import '@panva/hkdf';
4
7
  import 'cookie';
5
8
  import 'jose';
6
9
  import 'uuid';
7
- import '@swc/helpers/_/_define_property';
8
- import '../../../index-30a3741e.mjs';
9
10
 
10
11
  function createEdgeStoreNextHandler(config) {
11
12
  const { provider = EdgeStoreProvider() } = config;
13
+ const log = new Logger(config.logLevel);
14
+ globalThis._EDGE_STORE_LOGGER = log;
15
+ log.debug('Creating Edge Store Next handler (app adapter)');
12
16
  return async (req)=>{
13
17
  try {
14
- if (req.nextUrl.pathname.endsWith('/init')) {
15
- const ctx = 'createContext' in config ? await config.createContext({
16
- req
17
- }) : {};
18
+ if (!('nextUrl' in req)) throw new EdgeStoreError({
19
+ message: 'Error running the app adapter. Make sure you are importing the correct adapter in your router configuration',
20
+ code: 'SERVER_ERROR'
21
+ });
22
+ if (req.nextUrl.pathname.endsWith('/health')) {
23
+ return new Response('OK', {
24
+ status: 200
25
+ });
26
+ } else if (req.nextUrl.pathname.endsWith('/init')) {
27
+ let ctx = {};
28
+ try {
29
+ ctx = 'createContext' in config ? await config.createContext({
30
+ req
31
+ }) : {};
32
+ } catch (err) {
33
+ throw new EdgeStoreError({
34
+ message: 'Error creating context',
35
+ code: 'CREATE_CONTEXT_ERROR',
36
+ cause: err instanceof Error ? err : undefined
37
+ });
38
+ }
18
39
  const { newCookies, token, baseUrl } = await init({
19
40
  ctx,
20
41
  provider,
@@ -122,16 +143,24 @@ function createEdgeStoreNextHandler(config) {
122
143
  }
123
144
  } catch (err) {
124
145
  if (err instanceof EdgeStoreError) {
125
- return new Response(err.message, {
126
- status: EDGE_STORE_ERROR_CODES[err.code]
127
- });
128
- } else if (err instanceof Error) {
129
- return new Response(err.message, {
130
- status: 500
146
+ log[err.level](err.formattedMessage());
147
+ if (err.cause) log[err.level](err.cause);
148
+ return new Response(JSON.stringify(err.formattedJson()), {
149
+ status: EDGE_STORE_ERROR_CODES[err.code],
150
+ headers: {
151
+ 'Content-Type': 'application/json'
152
+ }
131
153
  });
132
154
  }
133
- return new Response('Internal server error', {
134
- status: 500
155
+ log.error(err);
156
+ return new Response(JSON.stringify(new EdgeStoreError({
157
+ message: 'Internal server error',
158
+ code: 'SERVER_ERROR'
159
+ }).formattedJson()), {
160
+ status: 500,
161
+ headers: {
162
+ 'Content-Type': 'application/json'
163
+ }
135
164
  });
136
165
  }
137
166
  };
@@ -1,18 +1,20 @@
1
1
  import { type NextApiRequest, type NextApiResponse } from 'next/types';
2
2
  import { type EdgeStoreRouter } from '../../../core/internals/bucketBuilder';
3
+ import { type LogLevel } from '../../../libs/logger';
3
4
  import { type Provider } from '../../../providers/types';
4
5
  import { type MaybePromise } from '../../../types';
5
6
  export type CreateContextOptions = {
6
7
  req: NextApiRequest;
7
8
  res: NextApiResponse;
8
9
  };
9
- export type Config<TCtx> = TCtx extends Record<string, never> ? {
10
+ export type Config<TCtx> = {
10
11
  provider?: Provider;
11
12
  router: EdgeStoreRouter<TCtx>;
12
- } : {
13
+ logLevel?: LogLevel;
14
+ } & (TCtx extends Record<string, never> ? object : {
13
15
  provider?: Provider;
14
16
  router: EdgeStoreRouter<TCtx>;
15
17
  createContext: (opts: CreateContextOptions) => MaybePromise<TCtx>;
16
- };
18
+ });
17
19
  export declare function createEdgeStoreNextHandler<TCtx>(config: Config<TCtx>): (req: NextApiRequest, res: NextApiResponse) => Promise<void>;
18
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapters/next/pages/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAK7E,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAenD,MAAM,MAAM,oBAAoB,GAAG;IACjC,GAAG,EAAE,cAAc,CAAC;IACpB,GAAG,EAAE,eAAe,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,MAAM,CAAC,IAAI,IAAI,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACzD;IACE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;CAC/B,GACD;IACE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;IAC9B,aAAa,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;CACnE,CAAC;AAEN,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,SAEhD,cAAc,OAAO,eAAe,mBA4FxD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapters/next/pages/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAK7E,OAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAenD,MAAM,MAAM,oBAAoB,GAAG;IACjC,GAAG,EAAE,cAAc,CAAC;IACpB,GAAG,EAAE,eAAe,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,MAAM,CAAC,IAAI,IAAI;IACzB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;IAC9B,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,GAAG,CAAC,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACnC,MAAM,GACN;IACE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;IAC9B,aAAa,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;CACnE,CAAC,CAAC;AAMP,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,SAMhD,cAAc,OAAO,eAAe,mBAsHxD"}
@@ -2,24 +2,43 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var shared = require('../../../shared-306c1af2.js');
5
+ var index = require('../../../index-a2e7ca9e.js');
6
+ var logger = require('../../../logger-b530a3e1.js');
6
7
  var providers_edgestore_index = require('../../../providers/edgestore/index.js');
8
+ var shared = require('../../../shared-06cb0d86.js');
9
+ require('@swc/helpers/_/_define_property');
7
10
  require('@panva/hkdf');
8
11
  require('cookie');
9
12
  require('jose');
10
13
  require('uuid');
11
- require('@swc/helpers/_/_define_property');
12
- require('../../../index-50ab9e08.js');
13
14
 
14
15
  function createEdgeStoreNextHandler(config) {
15
16
  const { provider = providers_edgestore_index.EdgeStoreProvider() } = config;
17
+ const log = new logger.Logger(config.logLevel);
18
+ globalThis._EDGE_STORE_LOGGER = log;
19
+ log.debug('Creating Edge Store Next handler (pages adapter)');
16
20
  return async (req, res)=>{
17
21
  try {
18
- if (req.url?.includes?.('/init')) {
19
- const ctx = 'createContext' in config ? await config.createContext({
20
- req,
21
- res
22
- }) : {};
22
+ if (!('json' in res)) throw new index.EdgeStoreError({
23
+ message: 'Error running the pages adapter. Make sure you are importing the correct adapter in your router configuration',
24
+ code: 'SERVER_ERROR'
25
+ });
26
+ if (req.url?.includes?.('/health')) {
27
+ res.send('OK');
28
+ } else if (req.url?.includes?.('/init')) {
29
+ let ctx = {};
30
+ try {
31
+ ctx = 'createContext' in config ? await config.createContext({
32
+ req,
33
+ res
34
+ }) : {};
35
+ } catch (err) {
36
+ throw new index.EdgeStoreError({
37
+ message: 'Error creating context',
38
+ code: 'CREATE_CONTEXT_ERROR',
39
+ cause: err instanceof Error ? err : undefined
40
+ });
41
+ }
23
42
  const { newCookies, token, baseUrl } = await shared.init({
24
43
  ctx,
25
44
  provider,
@@ -84,12 +103,17 @@ function createEdgeStoreNextHandler(config) {
84
103
  res.status(404).end();
85
104
  }
86
105
  } catch (err) {
87
- if (err instanceof shared.EdgeStoreError) {
88
- res.status(shared.EDGE_STORE_ERROR_CODES[err.code]).send(err.message);
89
- } else if (err instanceof Error) {
90
- res.status(500).send(err.message);
106
+ if (err instanceof index.EdgeStoreError) {
107
+ log[err.level](err.formattedMessage());
108
+ if (err.cause) log[err.level](err.cause);
109
+ res.status(index.EDGE_STORE_ERROR_CODES[err.code]).json(err.formattedJson());
110
+ } else {
111
+ log.error(err);
112
+ res.status(500).send(new index.EdgeStoreError({
113
+ message: 'Internal Server Error',
114
+ code: 'SERVER_ERROR'
115
+ }).formattedJson());
91
116
  }
92
- res.status(500).send('Internal server error');
93
117
  }
94
118
  };
95
119
  }
@@ -1,21 +1,40 @@
1
- import { i as init, r as requestUpload, a as requestUploadParts, c as completeMultipartUpload, b as confirmUpload, d as deleteFile, E as EdgeStoreError, e as EDGE_STORE_ERROR_CODES } from '../../../shared-6dea9e91.mjs';
1
+ import { E as EdgeStoreError, a as EDGE_STORE_ERROR_CODES } from '../../../index-23d1ede9.mjs';
2
+ import { L as Logger } from '../../../logger-7ea2248c.mjs';
2
3
  import { EdgeStoreProvider } from '../../../providers/edgestore/index.mjs';
4
+ import { i as init, r as requestUpload, a as requestUploadParts, c as completeMultipartUpload, d as confirmUpload, e as deleteFile } from '../../../shared-d7ea66fb.mjs';
5
+ import '@swc/helpers/_/_define_property';
3
6
  import '@panva/hkdf';
4
7
  import 'cookie';
5
8
  import 'jose';
6
9
  import 'uuid';
7
- import '@swc/helpers/_/_define_property';
8
- import '../../../index-30a3741e.mjs';
9
10
 
10
11
  function createEdgeStoreNextHandler(config) {
11
12
  const { provider = EdgeStoreProvider() } = config;
13
+ const log = new Logger(config.logLevel);
14
+ globalThis._EDGE_STORE_LOGGER = log;
15
+ log.debug('Creating Edge Store Next handler (pages adapter)');
12
16
  return async (req, res)=>{
13
17
  try {
14
- if (req.url?.includes?.('/init')) {
15
- const ctx = 'createContext' in config ? await config.createContext({
16
- req,
17
- res
18
- }) : {};
18
+ if (!('json' in res)) throw new EdgeStoreError({
19
+ message: 'Error running the pages adapter. Make sure you are importing the correct adapter in your router configuration',
20
+ code: 'SERVER_ERROR'
21
+ });
22
+ if (req.url?.includes?.('/health')) {
23
+ res.send('OK');
24
+ } else if (req.url?.includes?.('/init')) {
25
+ let ctx = {};
26
+ try {
27
+ ctx = 'createContext' in config ? await config.createContext({
28
+ req,
29
+ res
30
+ }) : {};
31
+ } catch (err) {
32
+ throw new EdgeStoreError({
33
+ message: 'Error creating context',
34
+ code: 'CREATE_CONTEXT_ERROR',
35
+ cause: err instanceof Error ? err : undefined
36
+ });
37
+ }
19
38
  const { newCookies, token, baseUrl } = await init({
20
39
  ctx,
21
40
  provider,
@@ -81,11 +100,16 @@ function createEdgeStoreNextHandler(config) {
81
100
  }
82
101
  } catch (err) {
83
102
  if (err instanceof EdgeStoreError) {
84
- res.status(EDGE_STORE_ERROR_CODES[err.code]).send(err.message);
85
- } else if (err instanceof Error) {
86
- res.status(500).send(err.message);
103
+ log[err.level](err.formattedMessage());
104
+ if (err.cause) log[err.level](err.cause);
105
+ res.status(EDGE_STORE_ERROR_CODES[err.code]).json(err.formattedJson());
106
+ } else {
107
+ log.error(err);
108
+ res.status(500).send(new EdgeStoreError({
109
+ message: 'Internal Server Error',
110
+ code: 'SERVER_ERROR'
111
+ }).formattedJson());
87
112
  }
88
- res.status(500).send('Internal server error');
89
113
  }
90
114
  };
91
115
  }