@edgestore/server 0.1.5-alpha.0 → 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 (71) 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/aws/index.js +1 -1
  38. package/dist/providers/aws/index.mjs +1 -1
  39. package/dist/providers/azure/index.d.ts +20 -0
  40. package/dist/providers/azure/index.d.ts.map +1 -0
  41. package/dist/providers/azure/index.js +61 -0
  42. package/dist/providers/azure/index.mjs +57 -0
  43. package/dist/providers/edgestore/index.d.ts.map +1 -1
  44. package/dist/providers/edgestore/index.js +10 -3
  45. package/dist/providers/edgestore/index.mjs +10 -3
  46. package/dist/providers/types.d.ts +1 -0
  47. package/dist/providers/types.d.ts.map +1 -1
  48. package/dist/{shared-306c1af2.js → shared-06cb0d86.js} +150 -61
  49. package/dist/{shared-9fad0d51.js → shared-d474acc6.js} +114 -46
  50. package/dist/{shared-6dea9e91.mjs → shared-d7ea66fb.mjs} +141 -52
  51. package/dist/types.d.ts +6 -0
  52. package/dist/types.d.ts.map +1 -1
  53. package/package.json +17 -2
  54. package/providers/azure/index.d.ts +1 -0
  55. package/providers/azure/index.js +1 -0
  56. package/src/adapters/express/index.ts +164 -0
  57. package/src/adapters/next/app/index.ts +63 -20
  58. package/src/adapters/next/pages/index.ts +52 -15
  59. package/src/adapters/shared.ts +142 -40
  60. package/src/core/client/index.ts +233 -51
  61. package/src/core/index.ts +6 -0
  62. package/src/core/sdk/index.ts +7 -1
  63. package/src/libs/errors/EdgeStoreApiClientError.ts +14 -0
  64. package/src/libs/errors/EdgeStoreCredentialsError.ts +1 -2
  65. package/src/libs/errors/EdgeStoreError.ts +74 -7
  66. package/src/libs/logger.ts +44 -0
  67. package/src/providers/aws/index.ts +1 -1
  68. package/src/providers/azure/index.ts +89 -0
  69. package/src/providers/edgestore/index.ts +9 -2
  70. package/src/providers/types.ts +1 -0
  71. package/src/types.ts +8 -0
@@ -1,4 +1,4 @@
1
- import { type EdgeStoreRouter } from '../core/internals/bucketBuilder';
1
+ import { type AnyBuilder, type EdgeStoreRouter } from '../core/internals/bucketBuilder';
2
2
  import { type Provider } from '../providers/types';
3
3
  export declare function init<TCtx>(params: {
4
4
  provider: Provider;
@@ -102,6 +102,24 @@ export declare function deleteFile<TCtx>(params: {
102
102
  ctxToken: string | undefined;
103
103
  body: DeleteFileBody;
104
104
  }): Promise<import("../providers/types").DeleteFileRes>;
105
+ export declare function buildPath(params: {
106
+ fileInfo: RequestUploadBody['fileInfo'];
107
+ bucket: AnyBuilder;
108
+ pathAttrs: {
109
+ ctx: any;
110
+ input: any;
111
+ };
112
+ }): {
113
+ key: string;
114
+ value: string;
115
+ }[];
116
+ export declare function parsePath(path: {
117
+ key: string;
118
+ value: string;
119
+ }[]): {
120
+ parsedPath: Record<string, string>;
121
+ pathOrder: string[];
122
+ };
105
123
  export type InitRes = Awaited<ReturnType<typeof init>>;
106
124
  export type RequestUploadRes = Awaited<ReturnType<typeof requestUpload>>;
107
125
  export type RequestUploadPartsRes = Awaited<ReturnType<typeof requestUploadParts>>;
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/adapters/shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/adapters/shared.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
+ import { type z, type ZodNever } from 'zod';
1
2
  import { type AnyRouter, type Comparison } from '..';
2
- import { type Simplify } from '../../types';
3
+ import { type Prettify, type Simplify } from '../../types';
3
4
  import { type AnyBuilder, type InferBucketPathKeys, type InferBucketPathObject, type InferMetadataObject } from '../internals/bucketBuilder';
4
5
  export type GetFileRes<TBucket extends AnyBuilder> = {
5
6
  url: string;
@@ -8,6 +9,82 @@ export type GetFileRes<TBucket extends AnyBuilder> = {
8
9
  metadata: InferMetadataObject<TBucket>;
9
10
  path: InferBucketPathObject<TBucket>;
10
11
  };
12
+ export type UploadOptions = {
13
+ /**
14
+ * e.g. 'my-file-name.jpg'
15
+ *
16
+ * By default, a unique file name will be generated for each upload.
17
+ * If you want to use a custom file name, you can use this option.
18
+ * If you use the same file name for multiple uploads, the previous file will be overwritten.
19
+ * But it might take some time for the CDN cache to be cleared.
20
+ * So maybe you will keep seeing the old file for a while.
21
+ *
22
+ * If you want to replace an existing file immediately leave the `manualFileName` option empty and use the `replaceTargetUrl` option.
23
+ */
24
+ manualFileName?: string;
25
+ /**
26
+ * Use this to replace an existing file.
27
+ * It will automatically delete the existing file when the upload is complete.
28
+ */
29
+ replaceTargetUrl?: string;
30
+ /**
31
+ * If true, the file needs to be confirmed by using the `confirmUpload` function.
32
+ * If the file is not confirmed within 24 hours, it will be deleted.
33
+ *
34
+ * This is useful for pages where the file is uploaded as soon as it is selected,
35
+ * but the user can leave the page without submitting the form.
36
+ *
37
+ * This avoids unnecessary zombie files in the bucket.
38
+ */
39
+ temporary?: boolean;
40
+ };
41
+ type TextContent = string;
42
+ type BlobContent = {
43
+ blob: Blob;
44
+ extension: string;
45
+ };
46
+ type UrlContent = {
47
+ url: string;
48
+ extension: string;
49
+ };
50
+ export type UploadFileRequest<TBucket extends AnyBuilder> = {
51
+ /**
52
+ * Can be a string, a blob or an url.
53
+ *
54
+ * If it's a string, it will be converted to a blob with the type `text/plain`.
55
+ *
56
+ * @example
57
+ * // string
58
+ * content: "some text"
59
+ *
60
+ * @example
61
+ * // blob
62
+ * content: {
63
+ * blob: new Blob([text], { type: "text/csv" }),
64
+ * extension: "csv",
65
+ * }
66
+ *
67
+ * @example
68
+ * // url
69
+ * content: {
70
+ * url: "https://example.com/my-file.csv",
71
+ * extension: "csv",
72
+ * }
73
+ */
74
+ content: TextContent | BlobContent | UrlContent;
75
+ options?: UploadOptions;
76
+ } & (TBucket['$config']['ctx'] extends Record<string, never> ? {} : {
77
+ ctx: TBucket['$config']['ctx'];
78
+ }) & (TBucket['_def']['input'] extends ZodNever ? {} : {
79
+ input: z.infer<TBucket['_def']['input']>;
80
+ });
81
+ export type UploadFileRes<TBucket extends AnyBuilder> = {
82
+ url: string;
83
+ size: number;
84
+ metadata: InferMetadataObject<TBucket>;
85
+ path: InferBucketPathObject<TBucket>;
86
+ pathOrder: (keyof InferBucketPathObject<TBucket>)[];
87
+ };
11
88
  type Filter<TBucket extends AnyBuilder> = {
12
89
  AND?: Filter<TBucket>[];
13
90
  OR?: Filter<TBucket>[];
@@ -53,7 +130,42 @@ type EdgeStoreClient<TRouter extends AnyRouter> = {
53
130
  url: string;
54
131
  }) => Promise<GetFileRes<TRouter['buckets'][K]>>;
55
132
  /**
56
- * Confirm a temporary file upload.
133
+ * Use this function to upload a file to the bucket directly from your backend.
134
+ *
135
+ * @example
136
+ * ```ts
137
+ * // simple example
138
+ * await backendClient.myBucket.upload({
139
+ * content: "some text",
140
+ * });
141
+ * ```
142
+ *
143
+ * @example
144
+ * ```ts
145
+ * // complete example
146
+ * await backendClient.myBucket.upload({
147
+ * content: {
148
+ * blob: new Blob([text], { type: "text/csv" }),
149
+ * extension: "csv",
150
+ * },
151
+ * options: {
152
+ * temporary: true,
153
+ * replaceTargetUrl: replaceUrl,
154
+ * manualFileName: "test.csv",
155
+ * },
156
+ * ctx: {
157
+ * userId: "123",
158
+ * userRole: "admin",
159
+ * },
160
+ * input: {
161
+ * type: "post",
162
+ * },
163
+ * });
164
+ * ```
165
+ */
166
+ upload: (params: UploadFileRequest<TRouter['buckets'][K]>) => Promise<Prettify<UploadFileRes<TRouter['buckets'][K]>>>;
167
+ /**
168
+ * Confirm a temporary file upload directly from your backend.
57
169
  */
58
170
  confirmUpload: (params: {
59
171
  url: string;
@@ -61,7 +173,7 @@ type EdgeStoreClient<TRouter extends AnyRouter> = {
61
173
  success: boolean;
62
174
  }>;
63
175
  /**
64
- * Programmatically delete a file.
176
+ * Programmatically delete a file directly from your backend.
65
177
  */
66
178
  deleteFile: (params: {
67
179
  url: string;
@@ -74,7 +186,7 @@ type EdgeStoreClient<TRouter extends AnyRouter> = {
74
186
  * You can also filter the results by passing a filter object.
75
187
  * The results are paginated.
76
188
  */
77
- listFiles: (params?: ListFilesRequest<TRouter['buckets'][K]>) => Promise<ListFilesResponse<TRouter['buckets'][K]>>;
189
+ listFiles: (params?: ListFilesRequest<TRouter['buckets'][K]>) => Promise<Prettify<ListFilesResponse<TRouter['buckets'][K]>>>;
78
190
  };
79
191
  };
80
192
  export declare function initEdgeStoreClient<TRouter extends AnyRouter>(config: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/client/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/client/index.ts"],"names":[],"mappings":"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"}
@@ -2,5 +2,7 @@ import { type EdgeStoreRouter } from './internals/bucketBuilder';
2
2
  export * from './client';
3
3
  export * from './sdk';
4
4
  export type { InferBucketPathKeys, InferBucketPathObject, InferMetadataObject, } from './internals/bucketBuilder';
5
+ export type { EdgeStoreErrorCodeKey, EdgeStoreErrorDetails, EdgeStoreJsonResponse, } from '../libs/errors/EdgeStoreError';
6
+ export { EdgeStoreApiClientError } from '../libs/errors/EdgeStoreApiClientError';
5
7
  export type AnyRouter = EdgeStoreRouter<any>;
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,YAAY,EACV,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,YAAY,EACV,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AAEjF,MAAM,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC"}
@@ -2,8 +2,21 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var index = require('../index-50ab9e08.js');
5
+ var shared = require('../shared-06cb0d86.js');
6
+ var index = require('../index-a2e7ca9e.js');
7
+ var _define_property = require('@swc/helpers/_/_define_property');
8
+ require('@panva/hkdf');
9
+ require('cookie');
10
+ require('jose');
11
+ require('uuid');
6
12
 
13
+ // type guard for `content`
14
+ function isTextContent(content) {
15
+ return typeof content === 'string';
16
+ }
17
+ function isBlobContent(content) {
18
+ return typeof content !== 'string' && 'blob' in content;
19
+ }
7
20
  function initEdgeStoreClient(config) {
8
21
  const sdk = index.initEdgeStoreSdk({
9
22
  accessKey: config.accessKey,
@@ -17,6 +30,87 @@ function initEdgeStoreClient(config) {
17
30
  throw new Error(`Bucket ${bucketName} not found`);
18
31
  }
19
32
  const client = {
33
+ async upload (params) {
34
+ const content = params.content;
35
+ const ctx = 'ctx' in params ? params.ctx : {};
36
+ const input = 'input' in params ? params.input : {};
37
+ const { blob, extension } = await (async ()=>{
38
+ if (isTextContent(content)) {
39
+ return {
40
+ blob: new Blob([
41
+ content
42
+ ], {
43
+ type: 'text/plain'
44
+ }),
45
+ extension: 'txt'
46
+ };
47
+ } else if (isBlobContent(content)) {
48
+ return {
49
+ blob: content.blob,
50
+ extension: content.extension
51
+ };
52
+ } else {
53
+ return {
54
+ blob: await getBlobFromUrl(content.url),
55
+ extension: content.extension
56
+ };
57
+ }
58
+ })();
59
+ const path = shared.buildPath({
60
+ bucket,
61
+ pathAttrs: {
62
+ ctx,
63
+ input
64
+ },
65
+ fileInfo: {
66
+ type: blob.type,
67
+ size: blob.size,
68
+ extension,
69
+ temporary: false,
70
+ fileName: params.options?.manualFileName,
71
+ replaceTargetUrl: params.options?.replaceTargetUrl
72
+ }
73
+ });
74
+ const metadata = await bucket._def.metadata({
75
+ ctx,
76
+ input
77
+ });
78
+ const requestUploadRes = await sdk.requestUpload({
79
+ bucketName,
80
+ bucketType: bucket._def.type,
81
+ fileInfo: {
82
+ fileName: params.options?.manualFileName,
83
+ replaceTargetUrl: params.options?.replaceTargetUrl,
84
+ type: blob.type,
85
+ size: blob.size,
86
+ extension,
87
+ isPublic: bucket._def.accessControl === undefined,
88
+ temporary: params.options?.temporary ?? false,
89
+ path,
90
+ metadata
91
+ }
92
+ });
93
+ const { signedUrl, multipart } = requestUploadRes;
94
+ if (multipart) {
95
+ // TODO
96
+ throw new Error('Multipart upload not implemented');
97
+ } else if (signedUrl) {
98
+ await fetch(signedUrl, {
99
+ method: 'PUT',
100
+ body: blob
101
+ });
102
+ } else {
103
+ throw new Error('Missing signedUrl');
104
+ }
105
+ const { parsedPath, pathOrder } = shared.parsePath(path);
106
+ return {
107
+ url: requestUploadRes.accessUrl,
108
+ size: blob.size,
109
+ metadata,
110
+ path: parsedPath,
111
+ pathOrder
112
+ };
113
+ },
20
114
  async getFile (params) {
21
115
  const res = await sdk.getFile(params);
22
116
  return {
@@ -27,39 +121,6 @@ function initEdgeStoreClient(config) {
27
121
  path: res.path
28
122
  };
29
123
  },
30
- // TODO: Replace with `upload`
31
- // async requestUpload(params) {
32
- // const { file, path, metadata, replaceTargetUrl } = params;
33
- // const fileExtension = file.name.includes('.')
34
- // ? file.name.split('.').pop()
35
- // : undefined;
36
- // if (!fileExtension) {
37
- // throw new Error('Missing file extension');
38
- // }
39
- // const parsedPath = Object.keys(bucket._def.path).map((key) => {
40
- // const value = path[key as keyof typeof path];
41
- // if (value === undefined) {
42
- // throw new Error(`Missing path param ${key}`);
43
- // }
44
- // return {
45
- // key,
46
- // value,
47
- // };
48
- // });
49
- // const fileInfo = {
50
- // size: file.size,
51
- // extension: fileExtension,
52
- // isPublic: bucket._def.accessControl === undefined,
53
- // path: parsedPath,
54
- // metadata,
55
- // replaceTargetUrl,
56
- // };
57
- // return await sdk.requestUpload({
58
- // bucketName,
59
- // bucketType: bucket._def.type,
60
- // fileInfo,
61
- // });
62
- // },
63
124
  async confirmUpload (params) {
64
125
  return await sdk.confirmUpload(params);
65
126
  },
@@ -109,7 +170,21 @@ function initEdgeStoreClient(config) {
109
170
  }
110
171
  return url;
111
172
  }
173
+ async function getBlobFromUrl(url) {
174
+ const res = await fetch(url);
175
+ return await res.blob();
176
+ }
177
+
178
+ class EdgeStoreApiClientError extends Error {
179
+ constructor(opts){
180
+ super(opts.response.message);
181
+ _define_property._(this, "data", void 0);
182
+ this.name = 'EdgeStoreApiClientError';
183
+ this.data = opts.response;
184
+ }
185
+ }
112
186
 
113
187
  exports.edgeStoreRawSdk = index.edgeStoreRawSdk;
114
188
  exports.initEdgeStoreSdk = index.initEdgeStoreSdk;
189
+ exports.EdgeStoreApiClientError = EdgeStoreApiClientError;
115
190
  exports.initEdgeStoreClient = initEdgeStoreClient;
@@ -1,6 +1,19 @@
1
- import { i as initEdgeStoreSdk } from '../index-30a3741e.mjs';
2
- export { e as edgeStoreRawSdk, i as initEdgeStoreSdk } from '../index-30a3741e.mjs';
1
+ import { b as buildPath, p as parsePath } from '../shared-d7ea66fb.mjs';
2
+ import { i as initEdgeStoreSdk } from '../index-23d1ede9.mjs';
3
+ export { e as edgeStoreRawSdk, i as initEdgeStoreSdk } from '../index-23d1ede9.mjs';
4
+ import { _ } from '@swc/helpers/_/_define_property';
5
+ import '@panva/hkdf';
6
+ import 'cookie';
7
+ import 'jose';
8
+ import 'uuid';
3
9
 
10
+ // type guard for `content`
11
+ function isTextContent(content) {
12
+ return typeof content === 'string';
13
+ }
14
+ function isBlobContent(content) {
15
+ return typeof content !== 'string' && 'blob' in content;
16
+ }
4
17
  function initEdgeStoreClient(config) {
5
18
  const sdk = initEdgeStoreSdk({
6
19
  accessKey: config.accessKey,
@@ -14,6 +27,87 @@ function initEdgeStoreClient(config) {
14
27
  throw new Error(`Bucket ${bucketName} not found`);
15
28
  }
16
29
  const client = {
30
+ async upload (params) {
31
+ const content = params.content;
32
+ const ctx = 'ctx' in params ? params.ctx : {};
33
+ const input = 'input' in params ? params.input : {};
34
+ const { blob, extension } = await (async ()=>{
35
+ if (isTextContent(content)) {
36
+ return {
37
+ blob: new Blob([
38
+ content
39
+ ], {
40
+ type: 'text/plain'
41
+ }),
42
+ extension: 'txt'
43
+ };
44
+ } else if (isBlobContent(content)) {
45
+ return {
46
+ blob: content.blob,
47
+ extension: content.extension
48
+ };
49
+ } else {
50
+ return {
51
+ blob: await getBlobFromUrl(content.url),
52
+ extension: content.extension
53
+ };
54
+ }
55
+ })();
56
+ const path = buildPath({
57
+ bucket,
58
+ pathAttrs: {
59
+ ctx,
60
+ input
61
+ },
62
+ fileInfo: {
63
+ type: blob.type,
64
+ size: blob.size,
65
+ extension,
66
+ temporary: false,
67
+ fileName: params.options?.manualFileName,
68
+ replaceTargetUrl: params.options?.replaceTargetUrl
69
+ }
70
+ });
71
+ const metadata = await bucket._def.metadata({
72
+ ctx,
73
+ input
74
+ });
75
+ const requestUploadRes = await sdk.requestUpload({
76
+ bucketName,
77
+ bucketType: bucket._def.type,
78
+ fileInfo: {
79
+ fileName: params.options?.manualFileName,
80
+ replaceTargetUrl: params.options?.replaceTargetUrl,
81
+ type: blob.type,
82
+ size: blob.size,
83
+ extension,
84
+ isPublic: bucket._def.accessControl === undefined,
85
+ temporary: params.options?.temporary ?? false,
86
+ path,
87
+ metadata
88
+ }
89
+ });
90
+ const { signedUrl, multipart } = requestUploadRes;
91
+ if (multipart) {
92
+ // TODO
93
+ throw new Error('Multipart upload not implemented');
94
+ } else if (signedUrl) {
95
+ await fetch(signedUrl, {
96
+ method: 'PUT',
97
+ body: blob
98
+ });
99
+ } else {
100
+ throw new Error('Missing signedUrl');
101
+ }
102
+ const { parsedPath, pathOrder } = parsePath(path);
103
+ return {
104
+ url: requestUploadRes.accessUrl,
105
+ size: blob.size,
106
+ metadata,
107
+ path: parsedPath,
108
+ pathOrder
109
+ };
110
+ },
17
111
  async getFile (params) {
18
112
  const res = await sdk.getFile(params);
19
113
  return {
@@ -24,39 +118,6 @@ function initEdgeStoreClient(config) {
24
118
  path: res.path
25
119
  };
26
120
  },
27
- // TODO: Replace with `upload`
28
- // async requestUpload(params) {
29
- // const { file, path, metadata, replaceTargetUrl } = params;
30
- // const fileExtension = file.name.includes('.')
31
- // ? file.name.split('.').pop()
32
- // : undefined;
33
- // if (!fileExtension) {
34
- // throw new Error('Missing file extension');
35
- // }
36
- // const parsedPath = Object.keys(bucket._def.path).map((key) => {
37
- // const value = path[key as keyof typeof path];
38
- // if (value === undefined) {
39
- // throw new Error(`Missing path param ${key}`);
40
- // }
41
- // return {
42
- // key,
43
- // value,
44
- // };
45
- // });
46
- // const fileInfo = {
47
- // size: file.size,
48
- // extension: fileExtension,
49
- // isPublic: bucket._def.accessControl === undefined,
50
- // path: parsedPath,
51
- // metadata,
52
- // replaceTargetUrl,
53
- // };
54
- // return await sdk.requestUpload({
55
- // bucketName,
56
- // bucketType: bucket._def.type,
57
- // fileInfo,
58
- // });
59
- // },
60
121
  async confirmUpload (params) {
61
122
  return await sdk.confirmUpload(params);
62
123
  },
@@ -106,5 +167,18 @@ function initEdgeStoreClient(config) {
106
167
  }
107
168
  return url;
108
169
  }
170
+ async function getBlobFromUrl(url) {
171
+ const res = await fetch(url);
172
+ return await res.blob();
173
+ }
174
+
175
+ class EdgeStoreApiClientError extends Error {
176
+ constructor(opts){
177
+ super(opts.response.message);
178
+ _(this, "data", void 0);
179
+ this.name = 'EdgeStoreApiClientError';
180
+ this.data = opts.response;
181
+ }
182
+ }
109
183
 
110
- export { initEdgeStoreClient };
184
+ export { EdgeStoreApiClientError, initEdgeStoreClient };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/sdk/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/sdk/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,37 @@
1
+ /* eslint-disable @typescript-eslint/no-non-null-assertion */
2
+ const EDGE_STORE_ERROR_CODES = {
3
+ BAD_REQUEST: 400,
4
+ FILE_TOO_LARGE: 400,
5
+ MIME_TYPE_NOT_ALLOWED: 400,
6
+ UNAUTHORIZED: 401,
7
+ UPLOAD_NOT_ALLOWED: 403,
8
+ DELETE_NOT_ALLOWED: 403,
9
+ CREATE_CONTEXT_ERROR: 500,
10
+ SERVER_ERROR: 500,
11
+ };
12
+ class EdgeStoreError extends Error {
13
+ constructor(opts) {
14
+ super(opts.message);
15
+ this.name = 'EdgeStoreError';
16
+ this.code = opts.code;
17
+ this.cause = opts.cause;
18
+ this.level = EDGE_STORE_ERROR_CODES[opts.code] >= 500 ? 'error' : 'warn';
19
+ this.details = 'details' in opts ? opts.details : undefined;
20
+ }
21
+ formattedMessage() {
22
+ return `${this.message}${this.details ? `\n Details: ${JSON.stringify(this.details)}` : ''}${this.cause ? `\n Caused by: ${this.cause.message}` : ''}`;
23
+ }
24
+ formattedJson() {
25
+ return {
26
+ message: this.code === 'SERVER_ERROR' ? 'Internal server error' : this.message,
27
+ code: this.code,
28
+ details: this.details,
29
+ };
30
+ }
31
+ }
32
+
1
33
  const DEFAULT_MESSAGE = `Missing EDGE_STORE_ACCESS_KEY or EDGE_STORE_SECRET_KEY.
2
- This can happen if you are trying to use the vanilla client in your frontend.
3
- The vanilla client should only be used in the backend.`;
34
+ This can happen if you are trying to import something related to the backend of Edge Store in a client component.`;
4
35
  class EdgeStoreCredentialsError extends Error {
5
36
  constructor(message = DEFAULT_MESSAGE) {
6
37
  super(message);
@@ -31,7 +62,10 @@ const edgeStoreRawSdk = {
31
62
  path: bucket._def.path.map((p) => {
32
63
  const paramEntries = Object.entries(p);
33
64
  if (paramEntries[0] === undefined) {
34
- throw new Error('Missing path param');
65
+ throw new EdgeStoreError({
66
+ message: `Empty path param found in: ${JSON.stringify(bucket._def.path)}`,
67
+ code: 'SERVER_ERROR',
68
+ });
35
69
  }
36
70
  const [key, value] = paramEntries[0];
37
71
  return {
@@ -223,4 +257,4 @@ function initEdgeStoreSdk(params) {
223
257
  };
224
258
  }
225
259
 
226
- export { EdgeStoreCredentialsError as E, edgeStoreRawSdk as e, initEdgeStoreSdk as i };
260
+ export { EdgeStoreError as E, EDGE_STORE_ERROR_CODES as a, EdgeStoreCredentialsError as b, edgeStoreRawSdk as e, initEdgeStoreSdk as i };