@uploadista/data-store-s3 0.0.9 → 0.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -1,5 +1,7 @@
1
- import { Effect } from "effect";
2
- import { S3ClientConfig } from "@aws-sdk/client-s3";
1
+ import { DataStore, UploadFile, UploadFileKVStore } from "@uploadista/core/types";
2
+ import { Context, Effect } from "effect";
3
+ import AWS, { S3ClientConfig } from "@aws-sdk/client-s3";
4
+ import { UploadistaError } from "@uploadista/core/errors";
3
5
 
4
6
  //#region src/types.d.ts
5
7
  type S3StoreOptions = {
@@ -27,11 +29,55 @@ type S3StoreOptions = {
27
29
  bucket: string;
28
30
  };
29
31
  };
32
+ type S3OperationContext = {
33
+ uploadId: string;
34
+ bucket: string;
35
+ key: string;
36
+ partNumber?: number;
37
+ partSize?: number;
38
+ contentType?: string;
39
+ cacheControl?: string;
40
+ };
41
+ type MultipartUploadInfo = {
42
+ uploadId: string;
43
+ bucket: string;
44
+ key: string;
45
+ };
30
46
  type S3StoreConfig = S3StoreOptions;
31
47
  //#endregion
48
+ //#region src/services/s3-client.service.d.ts
49
+ declare const S3ClientService_base: Context.TagClass<S3ClientService, "S3ClientService", {
50
+ readonly bucket: string;
51
+ readonly getObject: (key: string) => Effect.Effect<ReadableStream, UploadistaError>;
52
+ readonly headObject: (key: string) => Effect.Effect<number | undefined, UploadistaError>;
53
+ readonly putObject: (key: string, body: Uint8Array) => Effect.Effect<string, UploadistaError>;
54
+ readonly deleteObject: (key: string) => Effect.Effect<void, UploadistaError>;
55
+ readonly deleteObjects: (keys: string[]) => Effect.Effect<AWS.DeleteObjectsCommandOutput, UploadistaError>;
56
+ readonly createMultipartUpload: (context: S3OperationContext) => Effect.Effect<MultipartUploadInfo, UploadistaError>;
57
+ readonly uploadPart: (context: S3OperationContext & {
58
+ partNumber: number;
59
+ data: Uint8Array;
60
+ }) => Effect.Effect<string, UploadistaError>;
61
+ readonly completeMultipartUpload: (context: S3OperationContext, parts: Array<AWS.Part>) => Effect.Effect<string | undefined, UploadistaError>;
62
+ readonly abortMultipartUpload: (context: S3OperationContext) => Effect.Effect<void, UploadistaError>;
63
+ readonly listParts: (context: S3OperationContext & {
64
+ partNumberMarker?: string;
65
+ }) => Effect.Effect<{
66
+ parts: AWS.Part[];
67
+ isTruncated: boolean;
68
+ nextPartNumberMarker?: string;
69
+ }, UploadistaError>;
70
+ readonly listMultipartUploads: (keyMarker?: string, uploadIdMarker?: string) => Effect.Effect<AWS.ListMultipartUploadsCommandOutput, UploadistaError>;
71
+ readonly getIncompletePart: (id: string) => Effect.Effect<ReadableStream | undefined, UploadistaError>;
72
+ readonly getIncompletePartSize: (id: string) => Effect.Effect<number | undefined, UploadistaError>;
73
+ readonly putIncompletePart: (id: string, data: Uint8Array) => Effect.Effect<string, UploadistaError>;
74
+ readonly deleteIncompletePart: (id: string) => Effect.Effect<void, UploadistaError>;
75
+ }>;
76
+ declare class S3ClientService extends S3ClientService_base {}
77
+ //#endregion
32
78
  //#region src/s3-store.d.ts
33
- declare function createS3Store(config: S3StoreConfig): Effect.Effect<DataStore<UploadFile>, unknown, unknown>;
34
- declare const s3Store: (options: S3StoreConfig) => Effect.Effect<DataStore<UploadFile>, unknown, unknown>;
79
+ declare function createS3Store(config: S3StoreConfig): Effect.Effect<DataStore<UploadFile>, never, S3ClientService | UploadFileKVStore>;
80
+ declare const s3Store: (options: S3StoreConfig) => Effect.Effect<DataStore<UploadFile>, never, UploadFileKVStore>;
35
81
  //#endregion
36
82
  export { createS3Store, s3Store };
37
83
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../src/types.ts","../src/s3-store.ts"],"sourcesContent":[],"mappings":";;;;AAUY,KAAA,cAAA,GAAc;EAkFd,WAAA,EAAA,MAAa;;;;AClCzB;;EAAmD,QAAA,CAAA,EAAA,MAAA;EAAA;;;AAi9BnD;;EAA8C,WAAA,CAAA,EAAA,MAAA;EAAA;;;;;;;kBD3+B5B;;;;KA4DN,aAAA,GAAgB;;;iBClCZ,aAAA,SAAsB,gBAAa,MAAA,CAAA,OAAA,UAAA;cAi9BtC,mBAAoB,kBAAa,MAAA,CAAA,OAAA,UAAA"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/types.ts","../src/services/s3-client.service.ts","../src/s3-store.ts"],"sourcesContent":[],"mappings":"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"}
package/dist/index.d.mts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { UploadistaError } from "@uploadista/core/errors";
2
- import "@uploadista/core/types";
3
- import { Effect } from "effect";
4
- import { S3ClientConfig } from "@aws-sdk/client-s3";
2
+ import { DataStore, UploadFile, UploadFileKVStore } from "@uploadista/core/types";
3
+ import { Context, Effect, Layer } from "effect";
4
+ import AWS, { S3ClientConfig } from "@aws-sdk/client-s3";
5
5
 
6
6
  //#region src/types.d.ts
7
7
  type S3StoreOptions = {
@@ -29,11 +29,55 @@ type S3StoreOptions = {
29
29
  bucket: string;
30
30
  };
31
31
  };
32
+ type S3OperationContext = {
33
+ uploadId: string;
34
+ bucket: string;
35
+ key: string;
36
+ partNumber?: number;
37
+ partSize?: number;
38
+ contentType?: string;
39
+ cacheControl?: string;
40
+ };
41
+ type MultipartUploadInfo = {
42
+ uploadId: string;
43
+ bucket: string;
44
+ key: string;
45
+ };
32
46
  type S3StoreConfig = S3StoreOptions;
33
47
  //#endregion
48
+ //#region src/services/s3-client.service.d.ts
49
+ declare const S3ClientService_base: Context.TagClass<S3ClientService, "S3ClientService", {
50
+ readonly bucket: string;
51
+ readonly getObject: (key: string) => Effect.Effect<ReadableStream, UploadistaError>;
52
+ readonly headObject: (key: string) => Effect.Effect<number | undefined, UploadistaError>;
53
+ readonly putObject: (key: string, body: Uint8Array) => Effect.Effect<string, UploadistaError>;
54
+ readonly deleteObject: (key: string) => Effect.Effect<void, UploadistaError>;
55
+ readonly deleteObjects: (keys: string[]) => Effect.Effect<AWS.DeleteObjectsCommandOutput, UploadistaError>;
56
+ readonly createMultipartUpload: (context: S3OperationContext) => Effect.Effect<MultipartUploadInfo, UploadistaError>;
57
+ readonly uploadPart: (context: S3OperationContext & {
58
+ partNumber: number;
59
+ data: Uint8Array;
60
+ }) => Effect.Effect<string, UploadistaError>;
61
+ readonly completeMultipartUpload: (context: S3OperationContext, parts: Array<AWS.Part>) => Effect.Effect<string | undefined, UploadistaError>;
62
+ readonly abortMultipartUpload: (context: S3OperationContext) => Effect.Effect<void, UploadistaError>;
63
+ readonly listParts: (context: S3OperationContext & {
64
+ partNumberMarker?: string;
65
+ }) => Effect.Effect<{
66
+ parts: AWS.Part[];
67
+ isTruncated: boolean;
68
+ nextPartNumberMarker?: string;
69
+ }, UploadistaError>;
70
+ readonly listMultipartUploads: (keyMarker?: string, uploadIdMarker?: string) => Effect.Effect<AWS.ListMultipartUploadsCommandOutput, UploadistaError>;
71
+ readonly getIncompletePart: (id: string) => Effect.Effect<ReadableStream | undefined, UploadistaError>;
72
+ readonly getIncompletePartSize: (id: string) => Effect.Effect<number | undefined, UploadistaError>;
73
+ readonly putIncompletePart: (id: string, data: Uint8Array) => Effect.Effect<string, UploadistaError>;
74
+ readonly deleteIncompletePart: (id: string) => Effect.Effect<void, UploadistaError>;
75
+ }>;
76
+ declare class S3ClientService extends S3ClientService_base {}
77
+ //#endregion
34
78
  //#region src/s3-store.d.ts
35
- declare function createS3Store(config: S3StoreConfig): Effect.Effect<DataStore<UploadFile>, unknown, unknown>;
36
- declare const s3Store: (options: S3StoreConfig) => Effect.Effect<DataStore<UploadFile>, unknown, unknown>;
79
+ declare function createS3Store(config: S3StoreConfig): Effect.Effect<DataStore<UploadFile>, never, S3ClientService | UploadFileKVStore>;
80
+ declare const s3Store: (options: S3StoreConfig) => Effect.Effect<DataStore<UploadFile>, never, UploadFileKVStore>;
37
81
  //#endregion
38
82
  export { createS3Store, s3Store };
39
83
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/s3-store.ts"],"sourcesContent":[],"mappings":";;;;;;KAUY,cAAA;;EAAA;AAkFZ;;;;EClCgB,QAAA,CAAA,EAAA,MAAa;EAAS;;;;;EAi9BzB,WAOZ,CAAA,EAAA,MAAA;EAPgC;;;EAAa,iBAAA,CAAA,EAAA,MAAA;EAAA,OAAA,CAAA,EAAA,OAAA;;;kBD3+B5B;;;;KA4DN,aAAA,GAAgB;;;iBClCZ,aAAA,SAAsB,gBAAa,MAAA,CAAA,OAAA,UAAA;cAi9BtC,mBAAoB,kBAAa,MAAA,CAAA,OAAA,UAAA"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/services/s3-client.service.ts","../src/s3-store.ts"],"sourcesContent":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,27 +1,28 @@
1
1
  {
2
2
  "name": "@uploadista/data-store-s3",
3
3
  "type": "module",
4
- "version": "0.0.9",
4
+ "version": "0.0.11",
5
5
  "description": "AWS S3 data store for Uploadista",
6
6
  "license": "MIT",
7
7
  "author": "Uploadista",
8
8
  "exports": {
9
9
  ".": {
10
- "types": "./dist/index.d.ts",
11
- "import": "./dist/index.js",
12
- "default": "./dist/index.js"
10
+ "types": "./dist/index.d.mts",
11
+ "import": "./dist/index.mjs",
12
+ "require": "./dist/index.cjs",
13
+ "default": "./dist/index.mjs"
13
14
  }
14
15
  },
15
16
  "dependencies": {
16
17
  "@aws-sdk/client-s3": "3.922.0",
17
18
  "effect": "3.19.0",
18
- "@uploadista/core": "0.0.9",
19
- "@uploadista/observability": "0.0.9"
19
+ "@uploadista/core": "0.0.11",
20
+ "@uploadista/observability": "0.0.11"
20
21
  },
21
22
  "devDependencies": {
22
23
  "tsdown": "0.16.0",
23
24
  "vitest": "4.0.7",
24
- "@uploadista/typescript-config": "0.0.9"
25
+ "@uploadista/typescript-config": "0.0.11"
25
26
  },
26
27
  "scripts": {
27
28
  "build": "tsdown",