@edgestore/server 0.0.0-alpha.12

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 +86 -0
  2. package/adapters/next/app/index.d.ts +1 -0
  3. package/adapters/next/app/index.js +1 -0
  4. package/adapters/next/index.d.ts +1 -0
  5. package/adapters/next/index.js +1 -0
  6. package/adapters/next/pages/index.d.ts +1 -0
  7. package/adapters/next/pages/index.js +1 -0
  8. package/core/index.d.ts +1 -0
  9. package/core/index.js +1 -0
  10. package/dist/adapters/imageTypes.d.ts +2 -0
  11. package/dist/adapters/imageTypes.d.ts.map +1 -0
  12. package/dist/adapters/next/app/index.d.ts +14 -0
  13. package/dist/adapters/next/app/index.d.ts.map +1 -0
  14. package/dist/adapters/next/app/index.js +95 -0
  15. package/dist/adapters/next/app/index.mjs +91 -0
  16. package/dist/adapters/next/pages/index.d.ts +15 -0
  17. package/dist/adapters/next/pages/index.d.ts.map +1 -0
  18. package/dist/adapters/next/pages/index.js +69 -0
  19. package/dist/adapters/next/pages/index.mjs +65 -0
  20. package/dist/adapters/shared.d.ts +79 -0
  21. package/dist/adapters/shared.d.ts.map +1 -0
  22. package/dist/core/client/index.d.ts +81 -0
  23. package/dist/core/client/index.d.ts.map +1 -0
  24. package/dist/core/index.d.ts +6 -0
  25. package/dist/core/index.d.ts.map +1 -0
  26. package/dist/core/index.js +96 -0
  27. package/dist/core/index.mjs +91 -0
  28. package/dist/core/internals/bucketBuilder.d.ts +199 -0
  29. package/dist/core/internals/bucketBuilder.d.ts.map +1 -0
  30. package/dist/core/internals/createPathParamProxy.d.ts +21 -0
  31. package/dist/core/internals/createPathParamProxy.d.ts.map +1 -0
  32. package/dist/core/sdk/index.d.ts +200 -0
  33. package/dist/core/sdk/index.d.ts.map +1 -0
  34. package/dist/index-3999aae6.js +187 -0
  35. package/dist/index-3cc4d530.js +183 -0
  36. package/dist/index-ca41982b.mjs +183 -0
  37. package/dist/index.d.ts +2 -0
  38. package/dist/index.d.ts.map +1 -0
  39. package/dist/index.js +213 -0
  40. package/dist/index.mjs +209 -0
  41. package/dist/libs/errors/EdgeStoreCredentialsError.d.ts +5 -0
  42. package/dist/libs/errors/EdgeStoreCredentialsError.d.ts.map +1 -0
  43. package/dist/libs/errors/EdgeStoreError.d.ts +16 -0
  44. package/dist/libs/errors/EdgeStoreError.d.ts.map +1 -0
  45. package/dist/providers/aws/index.d.ts +9 -0
  46. package/dist/providers/aws/index.d.ts.map +1 -0
  47. package/dist/providers/aws/index.js +81 -0
  48. package/dist/providers/aws/index.mjs +77 -0
  49. package/dist/providers/edgestore/index.d.ts +8 -0
  50. package/dist/providers/edgestore/index.d.ts.map +1 -0
  51. package/dist/providers/edgestore/index.js +121 -0
  52. package/dist/providers/edgestore/index.mjs +117 -0
  53. package/dist/providers/index.d.ts +3 -0
  54. package/dist/providers/index.d.ts.map +1 -0
  55. package/dist/providers/types.d.ts +91 -0
  56. package/dist/providers/types.d.ts.map +1 -0
  57. package/dist/shared-43667670.mjs +232 -0
  58. package/dist/shared-6bef8919.js +227 -0
  59. package/dist/shared-f7607e44.js +239 -0
  60. package/dist/types.d.ts +88 -0
  61. package/dist/types.d.ts.map +1 -0
  62. package/package.json +96 -0
  63. package/providers/aws/index.d.ts +1 -0
  64. package/providers/aws/index.js +1 -0
  65. package/providers/edgestore/index.d.ts +1 -0
  66. package/providers/edgestore/index.js +1 -0
  67. package/src/adapters/imageTypes.ts +10 -0
  68. package/src/adapters/next/app/index.ts +111 -0
  69. package/src/adapters/next/pages/index.ts +84 -0
  70. package/src/adapters/shared.ts +306 -0
  71. package/src/core/client/index.ts +202 -0
  72. package/src/core/index.ts +10 -0
  73. package/src/core/internals/bucketBuilder.ts +462 -0
  74. package/src/core/internals/createPathParamProxy.ts +40 -0
  75. package/src/core/sdk/index.ts +381 -0
  76. package/src/index.ts +1 -0
  77. package/src/libs/errors/EdgeStoreCredentialsError.ts +12 -0
  78. package/src/libs/errors/EdgeStoreError.ts +25 -0
  79. package/src/providers/aws/index.ts +109 -0
  80. package/src/providers/edgestore/index.ts +140 -0
  81. package/src/providers/index.ts +2 -0
  82. package/src/providers/types.ts +107 -0
  83. package/src/types.ts +139 -0
@@ -0,0 +1,96 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var index = require('../index-3999aae6.js');
6
+
7
+ function initEdgeStoreClient(config) {
8
+ const sdk = index.initEdgeStoreSdk({
9
+ accessKey: config.accessKey,
10
+ secretKey: config.secretKey
11
+ });
12
+ return new Proxy({}, {
13
+ get (_target, key) {
14
+ const bucketName = key;
15
+ const bucket = config.router.buckets[bucketName];
16
+ if (!bucket) {
17
+ throw new Error(`Bucket ${bucketName} not found`);
18
+ }
19
+ const client = {
20
+ async getFile (params) {
21
+ const res = await sdk.getFile(params);
22
+ return {
23
+ url: res.url,
24
+ size: res.size,
25
+ uploadedAt: new Date(res.uploadedAt),
26
+ metadata: res.metadata,
27
+ path: res.path
28
+ };
29
+ },
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
+ async deleteFile (params) {
64
+ return await sdk.deleteFile({
65
+ ...params
66
+ });
67
+ },
68
+ async listFiles (params) {
69
+ const res = await sdk.listFiles({
70
+ bucketName,
71
+ ...params
72
+ });
73
+ const files = res.data.map((file)=>{
74
+ return {
75
+ url: file.url,
76
+ thumbnailUrl: file.thumbnailUrl,
77
+ size: file.size,
78
+ uploadedAt: new Date(file.uploadedAt),
79
+ metadata: file.metadata,
80
+ path: file.path
81
+ };
82
+ });
83
+ return {
84
+ data: files,
85
+ pagination: res.pagination
86
+ };
87
+ }
88
+ };
89
+ return client;
90
+ }
91
+ });
92
+ }
93
+
94
+ exports.edgeStoreRawSdk = index.edgeStoreRawSdk;
95
+ exports.initEdgeStoreSdk = index.initEdgeStoreSdk;
96
+ exports.initEdgeStoreClient = initEdgeStoreClient;
@@ -0,0 +1,91 @@
1
+ import { i as initEdgeStoreSdk } from '../index-ca41982b.mjs';
2
+ export { e as edgeStoreRawSdk, i as initEdgeStoreSdk } from '../index-ca41982b.mjs';
3
+
4
+ function initEdgeStoreClient(config) {
5
+ const sdk = initEdgeStoreSdk({
6
+ accessKey: config.accessKey,
7
+ secretKey: config.secretKey
8
+ });
9
+ return new Proxy({}, {
10
+ get (_target, key) {
11
+ const bucketName = key;
12
+ const bucket = config.router.buckets[bucketName];
13
+ if (!bucket) {
14
+ throw new Error(`Bucket ${bucketName} not found`);
15
+ }
16
+ const client = {
17
+ async getFile (params) {
18
+ const res = await sdk.getFile(params);
19
+ return {
20
+ url: res.url,
21
+ size: res.size,
22
+ uploadedAt: new Date(res.uploadedAt),
23
+ metadata: res.metadata,
24
+ path: res.path
25
+ };
26
+ },
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
+ async deleteFile (params) {
61
+ return await sdk.deleteFile({
62
+ ...params
63
+ });
64
+ },
65
+ async listFiles (params) {
66
+ const res = await sdk.listFiles({
67
+ bucketName,
68
+ ...params
69
+ });
70
+ const files = res.data.map((file)=>{
71
+ return {
72
+ url: file.url,
73
+ thumbnailUrl: file.thumbnailUrl,
74
+ size: file.size,
75
+ uploadedAt: new Date(file.uploadedAt),
76
+ metadata: file.metadata,
77
+ path: file.path
78
+ };
79
+ });
80
+ return {
81
+ data: files,
82
+ pagination: res.pagination
83
+ };
84
+ }
85
+ };
86
+ return client;
87
+ }
88
+ });
89
+ }
90
+
91
+ export { initEdgeStoreClient };
@@ -0,0 +1,199 @@
1
+ import { z } from 'zod';
2
+ import { KeysOfUnion, MaybePromise, Simplify } from '../../types';
3
+ type Merge<TType, TWith> = {
4
+ [TKey in keyof TType | keyof TWith]?: TKey extends keyof TType ? TKey extends keyof TWith ? TType[TKey] & TWith[TKey] : TType[TKey] : TWith[TKey & keyof TWith];
5
+ };
6
+ type OverwriteIfDefined<TType, TWith> = UnsetMarker extends TType ? TWith : Simplify<TType & TWith>;
7
+ type ConvertStringToFunction<TType> = {
8
+ [K in keyof TType]: TType[K] extends object ? Simplify<ConvertStringToFunction<TType[K]>> : () => string;
9
+ };
10
+ type UnionToIntersection<TType> = (TType extends any ? (k: TType) => void : never) extends (k: infer I) => void ? I : never;
11
+ export type InferBucketPathKeys<TBucket extends Builder<any, AnyDef>> = KeysOfUnion<TBucket['_def']['path'][number]>;
12
+ type InferBucketPathKeysFromDef<TDef extends AnyDef> = KeysOfUnion<TDef['path'][number]>;
13
+ export type InferMetadataObject<TBucket extends Builder<any, AnyDef>> = TBucket['_def']['metadata'] extends (...args: any) => any ? Awaited<ReturnType<TBucket['_def']['metadata']>> : TBucket['_def']['metadata'] extends ((...args: any) => any) | undefined ? any : never;
14
+ type InferMetadataObjectFromDef<TDef extends AnyDef> = TDef['metadata'] extends (...args: any) => any ? Awaited<ReturnType<TDef['metadata']>> : TDef['metadata'] extends ((...args: any) => any) | undefined ? any : never;
15
+ export type AnyContext = Record<string, string | undefined | null>;
16
+ export type AnyInput = z.AnyZodObject;
17
+ export type AnyPath = Record<string, () => string>[];
18
+ type PathParam<TPath extends AnyPath> = {
19
+ path: keyof UnionToIntersection<TPath[number]>;
20
+ };
21
+ declare const unsetMarker: unique symbol;
22
+ type UnsetMarker = typeof unsetMarker;
23
+ type Conditions<TPath extends AnyPath> = {
24
+ eq?: string | PathParam<TPath>;
25
+ lt?: string | PathParam<TPath>;
26
+ lte?: string | PathParam<TPath>;
27
+ gt?: string | PathParam<TPath>;
28
+ gte?: string | PathParam<TPath>;
29
+ contains?: string | PathParam<TPath>;
30
+ in?: string | PathParam<TPath> | (string | PathParam<TPath>)[];
31
+ not?: string | PathParam<TPath> | Conditions<TPath>;
32
+ };
33
+ export type AccessControlSchema<TCtx, TDef extends AnyDef> = Merge<{
34
+ [TKey in keyof TCtx]?: string | PathParam<TDef['path']> | Conditions<TDef['path']>;
35
+ }, {
36
+ OR?: AccessControlSchema<TCtx, TDef>[];
37
+ AND?: AccessControlSchema<TCtx, TDef>[];
38
+ NOT?: AccessControlSchema<TCtx, TDef>[];
39
+ }>;
40
+ type FileInfo = {
41
+ size: number;
42
+ type: string;
43
+ extension: string;
44
+ replaceTargetUrl?: string;
45
+ };
46
+ type BeforeUploadFn<TCtx, TDef extends AnyDef> = (params: {
47
+ ctx: TCtx;
48
+ input: z.infer<TDef['input']>;
49
+ fileInfo: FileInfo;
50
+ }) => MaybePromise<boolean>;
51
+ type BeforeDeleteFn<TCtx, TDef extends AnyDef> = (params: {
52
+ ctx: TCtx;
53
+ file: {
54
+ url: string;
55
+ size: number;
56
+ uploadedAt: Date;
57
+ path: {
58
+ [TKey in InferBucketPathKeysFromDef<TDef>]: string;
59
+ };
60
+ metadata: InferMetadataObjectFromDef<TDef>;
61
+ };
62
+ }) => MaybePromise<boolean>;
63
+ type AnyMetadata = Record<string, string | undefined | null>;
64
+ type MetadataFn<TCtx, TDef extends AnyDef, TMetadata extends AnyMetadata> = (params: {
65
+ ctx: TCtx;
66
+ input: z.infer<TDef['input']>;
67
+ }) => MaybePromise<TMetadata>;
68
+ type Def<TInput extends AnyInput, TPath extends AnyPath> = {
69
+ type: any;
70
+ input: TInput;
71
+ path: TPath;
72
+ metadata?: MetadataFn<any, any, any>;
73
+ accessControl?: AccessControlSchema<any, any>;
74
+ beforeUpload?: BeforeUploadFn<any, any>;
75
+ beforeDelete?: BeforeDeleteFn<any, any>;
76
+ };
77
+ type AnyDef = Def<any, any>;
78
+ type Builder<TCtx, TDef extends AnyDef> = {
79
+ /** only used for types */
80
+ $config: {
81
+ ctx: TCtx;
82
+ };
83
+ /**
84
+ * @internal
85
+ */
86
+ _def: TDef;
87
+ input<TInput extends AnyInput>(input: TInput): Builder<TCtx, {
88
+ type: TDef['type'];
89
+ input: OverwriteIfDefined<TDef['input'], TInput>;
90
+ path: TDef['path'];
91
+ metadata: TDef['metadata'];
92
+ accessControl: TDef['accessControl'];
93
+ beforeUpload: TDef['beforeUpload'];
94
+ beforeDelete: TDef['beforeDelete'];
95
+ }>;
96
+ path<TParams extends AnyPath>(pathResolver: (params: {
97
+ ctx: Simplify<ConvertStringToFunction<TCtx>>;
98
+ input: Simplify<ConvertStringToFunction<z.infer<TDef['input']>>>;
99
+ }) => [...TParams]): Builder<TCtx, {
100
+ type: TDef['type'];
101
+ input: TDef['input'];
102
+ path: TParams;
103
+ metadata: TDef['metadata'];
104
+ accessControl: TDef['accessControl'];
105
+ beforeUpload: TDef['beforeUpload'];
106
+ beforeDelete: TDef['beforeDelete'];
107
+ }>;
108
+ metadata<TMetadata extends AnyMetadata>(metadata: MetadataFn<TCtx, TDef, TMetadata>): Builder<TCtx, {
109
+ type: TDef['type'];
110
+ input: TDef['input'];
111
+ path: TDef['path'];
112
+ metadata: MetadataFn<any, any, TMetadata>;
113
+ accessControl: TDef['accessControl'];
114
+ beforeUpload: TDef['beforeUpload'];
115
+ beforeDelete: TDef['beforeDelete'];
116
+ }>;
117
+ accessControl(accessControl: AccessControlSchema<TCtx, TDef>): Builder<TCtx, {
118
+ type: TDef['type'];
119
+ input: TDef['input'];
120
+ path: TDef['path'];
121
+ metadata: TDef['metadata'];
122
+ accessControl: AccessControlSchema<any, any>;
123
+ beforeUpload: TDef['beforeUpload'];
124
+ beforeDelete: TDef['beforeDelete'];
125
+ }>;
126
+ beforeUpload(beforeUpload: BeforeUploadFn<TCtx, TDef>): Builder<TCtx, {
127
+ type: TDef['type'];
128
+ input: TDef['input'];
129
+ path: TDef['path'];
130
+ metadata: TDef['metadata'];
131
+ accessControl: TDef['accessControl'];
132
+ beforeUpload: BeforeUploadFn<any, any>;
133
+ beforeDelete: TDef['beforeDelete'];
134
+ }>;
135
+ beforeDelete(beforeDelete: BeforeDeleteFn<TCtx, TDef>): Builder<TCtx, {
136
+ type: TDef['type'];
137
+ input: TDef['input'];
138
+ path: TDef['path'];
139
+ metadata: TDef['metadata'];
140
+ accessControl: TDef['accessControl'];
141
+ beforeUpload: TDef['beforeUpload'];
142
+ beforeDelete: BeforeDeleteFn<any, any>;
143
+ }>;
144
+ };
145
+ export type AnyBuilder = Builder<any, AnyDef>;
146
+ declare class EdgeStoreBuilder<TCtx = object> {
147
+ context<TNewContext extends AnyContext>(): EdgeStoreBuilder<TNewContext>;
148
+ create(): {
149
+ /**
150
+ * Builder object for creating an image bucket
151
+ */
152
+ imageBucket: Builder<TCtx, {
153
+ type: "IMAGE";
154
+ input: typeof unsetMarker;
155
+ path: typeof unsetMarker;
156
+ metadata?: MetadataFn<any, any, any> | undefined;
157
+ accessControl?: AccessControlSchema<any, any> | undefined;
158
+ beforeUpload?: BeforeUploadFn<any, any> | undefined;
159
+ beforeDelete?: BeforeDeleteFn<any, any> | undefined;
160
+ }>;
161
+ /**
162
+ * Builder object for creating a file bucket
163
+ */
164
+ fileBucket: Builder<TCtx, {
165
+ type: "FILE";
166
+ input: typeof unsetMarker;
167
+ path: typeof unsetMarker;
168
+ metadata?: MetadataFn<any, any, any> | undefined;
169
+ accessControl?: AccessControlSchema<any, any> | undefined;
170
+ beforeUpload?: BeforeUploadFn<any, any> | undefined;
171
+ beforeDelete?: BeforeDeleteFn<any, any> | undefined;
172
+ }>;
173
+ /**
174
+ * Create a router
175
+ */
176
+ router: <TBuckets extends Record<string, Builder<TCtx, AnyDef>>>(buckets: TBuckets) => {
177
+ $config: {
178
+ ctx: TCtx;
179
+ };
180
+ buckets: TBuckets;
181
+ };
182
+ };
183
+ }
184
+ export type EdgeStoreRouter<TCtx> = {
185
+ /**
186
+ * Only used for types
187
+ * @internal
188
+ */
189
+ $config: {
190
+ ctx: TCtx;
191
+ };
192
+ buckets: Record<string, Builder<TCtx, AnyDef>>;
193
+ };
194
+ /**
195
+ * Initialize EdgeStore - be done exactly once per backend
196
+ */
197
+ export declare const initEdgeStore: EdgeStoreBuilder<object>;
198
+ export {};
199
+ //# sourceMappingURL=bucketBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bucketBuilder.d.ts","sourceRoot":"","sources":["../../../src/core/internals/bucketBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ type RecursivePathProxy = {
2
+ (): string;
3
+ ctx: any;
4
+ input: any;
5
+ };
6
+ /**
7
+ * Creates a Proxy that prints the path to the property when called.
8
+ *
9
+ * Example:
10
+ *
11
+ * ```ts
12
+ * const pathParamProxy = createPathParamProxy();
13
+ * console.log(pathParamProxy.ctx.user.id());
14
+ * // Logs: "ctx.user.id"
15
+ * console.log(pathParamProxy.input.type());
16
+ * // Logs: "input.type"
17
+ * ```
18
+ */
19
+ export declare function createPathParamProxy(): RecursivePathProxy;
20
+ export {};
21
+ //# sourceMappingURL=createPathParamProxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createPathParamProxy.d.ts","sourceRoot":"","sources":["../../../src/core/internals/createPathParamProxy.ts"],"names":[],"mappings":"AAAA,KAAK,kBAAkB,GAAG;IACxB,IAAI,MAAM,CAAC;IACX,GAAG,EAAE,GAAG,CAAC;IACT,KAAK,EAAE,GAAG,CAAC;CACZ,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,IAAI,kBAAkB,CAoBzD"}
@@ -0,0 +1,200 @@
1
+ import { AnyRouter } from '..';
2
+ import { AnyContext } from '../internals/bucketBuilder';
3
+ type FileInfoForUpload = {
4
+ size: number;
5
+ extension: string;
6
+ isPublic: boolean;
7
+ path: {
8
+ key: string;
9
+ value: string;
10
+ }[];
11
+ metadata?: {
12
+ [key: string]: string;
13
+ };
14
+ replaceTargetUrl?: string;
15
+ };
16
+ export type SimpleOperator = 'eq' | 'neq' | 'gt' | 'gte' | 'lt' | 'lte' | 'startsWith' | 'endsWith';
17
+ export type Comparison<TType = string> = TType | Partial<{
18
+ [K in SimpleOperator]: TType;
19
+ } & {
20
+ between: [TType, TType];
21
+ }>;
22
+ type ListFilesFilter = {
23
+ AND?: ListFilesFilter[];
24
+ OR?: ListFilesFilter[];
25
+ uploadedAt?: Comparison<Date>;
26
+ path?: Partial<{
27
+ [key: string]: Comparison;
28
+ }>;
29
+ metadata?: Partial<{
30
+ [key: string]: Comparison;
31
+ }>;
32
+ };
33
+ type Pagination = {
34
+ currentPage: number;
35
+ pageSize: number;
36
+ };
37
+ export declare const edgeStoreRawSdk: {
38
+ getToken(params: {
39
+ accessKey: string;
40
+ secretKey: string;
41
+ ctx: AnyContext;
42
+ router: AnyRouter;
43
+ }): Promise<string>;
44
+ getFile({ accessKey, secretKey, url, }: {
45
+ accessKey: string;
46
+ secretKey: string;
47
+ url: string;
48
+ }): Promise<{
49
+ url: string;
50
+ size: number;
51
+ uploadedAt: string;
52
+ path: Record<string, string>;
53
+ metadata: Record<string, string>;
54
+ }>;
55
+ requestUpload({ accessKey, secretKey, bucketName, bucketType, fileInfo, multipart, }: {
56
+ accessKey: string;
57
+ secretKey: string;
58
+ bucketName: string;
59
+ bucketType: string;
60
+ fileInfo: FileInfoForUpload;
61
+ multipart?: {
62
+ parts: number[];
63
+ } | undefined;
64
+ }): Promise<{
65
+ multipart: {
66
+ uploadId: string;
67
+ parts: {
68
+ partNumber: number;
69
+ signedUrl: string;
70
+ }[];
71
+ } | undefined;
72
+ signedUrl: string | undefined;
73
+ accessUrl: string;
74
+ }>;
75
+ requestUploadParts({ accessKey, secretKey, key, multipart, }: {
76
+ accessKey: string;
77
+ secretKey: string;
78
+ key: string;
79
+ multipart: {
80
+ uploadId?: string;
81
+ parts: number[];
82
+ };
83
+ }): Promise<{
84
+ multipart: {
85
+ uploadId: string;
86
+ parts: {
87
+ partNumber: number;
88
+ signedUrl: string;
89
+ }[];
90
+ };
91
+ }>;
92
+ deleteFile({ accessKey, secretKey, url, }: {
93
+ accessKey: string;
94
+ secretKey: string;
95
+ url: string;
96
+ }): Promise<{
97
+ success: boolean;
98
+ }>;
99
+ listFiles({ accessKey, secretKey, bucketName, filter, pagination, }: {
100
+ accessKey: string;
101
+ secretKey: string;
102
+ bucketName: string;
103
+ filter?: ListFilesFilter | undefined;
104
+ pagination?: Pagination | undefined;
105
+ }): Promise<{
106
+ data: {
107
+ url: string;
108
+ thumbnailUrl: string | null;
109
+ size: number;
110
+ uploadedAt: string;
111
+ path: Record<string, string>;
112
+ metadata: Record<string, string>;
113
+ }[];
114
+ pagination: {
115
+ currentPage: number;
116
+ pageSize: number;
117
+ totalPages: number;
118
+ totalCount: number;
119
+ };
120
+ }>;
121
+ };
122
+ export declare function initEdgeStoreSdk(params: {
123
+ accessKey?: string;
124
+ secretKey?: string;
125
+ }): {
126
+ getToken(params: {
127
+ ctx: AnyContext;
128
+ router: AnyRouter;
129
+ }): Promise<string>;
130
+ getFile({ url }: {
131
+ url: string;
132
+ }): Promise<{
133
+ url: string;
134
+ size: number;
135
+ uploadedAt: string;
136
+ path: Record<string, string>;
137
+ metadata: Record<string, string>;
138
+ }>;
139
+ requestUpload({ bucketName, bucketType, fileInfo, multipart, }: {
140
+ bucketName: string;
141
+ bucketType: string;
142
+ fileInfo: FileInfoForUpload;
143
+ multipart?: {
144
+ parts: number[];
145
+ } | undefined;
146
+ }): Promise<{
147
+ multipart: {
148
+ uploadId: string;
149
+ parts: {
150
+ partNumber: number;
151
+ signedUrl: string;
152
+ }[];
153
+ } | undefined;
154
+ signedUrl: string | undefined;
155
+ accessUrl: string;
156
+ }>;
157
+ requestUploadParts({ key, multipart, }: {
158
+ key: string;
159
+ multipart: {
160
+ uploadId?: string;
161
+ parts: number[];
162
+ };
163
+ }): Promise<{
164
+ multipart: {
165
+ uploadId: string;
166
+ parts: {
167
+ partNumber: number;
168
+ signedUrl: string;
169
+ }[];
170
+ };
171
+ }>;
172
+ deleteFile({ url }: {
173
+ url: string;
174
+ }): Promise<{
175
+ success: boolean;
176
+ }>;
177
+ listFiles(params: {
178
+ bucketName: string;
179
+ filter?: ListFilesFilter;
180
+ pagination?: Pagination;
181
+ }): Promise<{
182
+ data: {
183
+ url: string;
184
+ thumbnailUrl: string | null;
185
+ size: number;
186
+ uploadedAt: string;
187
+ path: Record<string, string>;
188
+ metadata: Record<string, string>;
189
+ }[];
190
+ pagination: {
191
+ currentPage: number;
192
+ pageSize: number;
193
+ totalPages: number;
194
+ totalCount: number;
195
+ };
196
+ }>;
197
+ };
198
+ export type EdgeStoreSdk = ReturnType<typeof initEdgeStoreSdk>;
199
+ export {};
200
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/sdk/index.ts"],"names":[],"mappings":"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"}