@effect-aws/client-s3 1.6.0 → 1.9.3

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 (68) hide show
  1. package/Errors/package.json +6 -0
  2. package/S3ClientInstance/package.json +6 -0
  3. package/S3Service/package.json +6 -0
  4. package/S3ServiceConfig/package.json +6 -0
  5. package/{lib → dist/cjs}/Errors.d.ts +6 -10
  6. package/dist/cjs/Errors.d.ts.map +1 -0
  7. package/dist/cjs/Errors.js +23 -0
  8. package/dist/cjs/Errors.js.map +1 -0
  9. package/dist/cjs/S3ClientInstance.d.ts +24 -0
  10. package/dist/cjs/S3ClientInstance.d.ts.map +1 -0
  11. package/dist/cjs/S3ClientInstance.js +50 -0
  12. package/dist/cjs/S3ClientInstance.js.map +1 -0
  13. package/{lib → dist/cjs}/S3Service.d.ts +17 -137
  14. package/dist/cjs/S3Service.d.ts.map +1 -0
  15. package/dist/cjs/S3Service.js +164 -0
  16. package/dist/cjs/S3Service.js.map +1 -0
  17. package/dist/cjs/S3ServiceConfig.d.ts +25 -0
  18. package/dist/cjs/S3ServiceConfig.d.ts.map +1 -0
  19. package/dist/cjs/S3ServiceConfig.js +35 -0
  20. package/dist/cjs/S3ServiceConfig.js.map +1 -0
  21. package/dist/cjs/index.d.ts +39 -0
  22. package/dist/cjs/index.d.ts.map +1 -0
  23. package/dist/cjs/index.js +56 -0
  24. package/dist/cjs/index.js.map +1 -0
  25. package/dist/dts/Errors.d.ts +25 -0
  26. package/dist/dts/Errors.d.ts.map +1 -0
  27. package/dist/dts/S3ClientInstance.d.ts +24 -0
  28. package/dist/dts/S3ClientInstance.d.ts.map +1 -0
  29. package/dist/dts/S3Service.d.ts +446 -0
  30. package/dist/dts/S3Service.d.ts.map +1 -0
  31. package/dist/dts/S3ServiceConfig.d.ts +25 -0
  32. package/dist/dts/S3ServiceConfig.d.ts.map +1 -0
  33. package/dist/dts/index.d.ts +39 -0
  34. package/dist/dts/index.d.ts.map +1 -0
  35. package/dist/esm/Errors.js +20 -0
  36. package/dist/esm/Errors.js.map +1 -0
  37. package/dist/esm/S3ClientInstance.js +23 -0
  38. package/dist/esm/S3ClientInstance.js.map +1 -0
  39. package/dist/esm/S3Service.js +137 -0
  40. package/dist/esm/S3Service.js.map +1 -0
  41. package/dist/esm/S3ServiceConfig.js +31 -0
  42. package/dist/esm/S3ServiceConfig.js.map +1 -0
  43. package/dist/esm/index.js +27 -0
  44. package/dist/esm/index.js.map +1 -0
  45. package/dist/esm/package.json +4 -0
  46. package/package.json +61 -44
  47. package/src/Errors.ts +56 -0
  48. package/src/S3ClientInstance.ts +33 -0
  49. package/src/S3Service.ts +1584 -0
  50. package/src/S3ServiceConfig.ts +51 -0
  51. package/src/index.ts +44 -0
  52. package/CHANGELOG.md +0 -137
  53. package/docgen.json +0 -8
  54. package/lib/Errors.js +0 -22
  55. package/lib/S3ClientInstance.d.ts +0 -31
  56. package/lib/S3ClientInstance.js +0 -57
  57. package/lib/S3ClientInstanceConfig.d.ts +0 -23
  58. package/lib/S3ClientInstanceConfig.js +0 -44
  59. package/lib/S3Service.js +0 -192
  60. package/lib/esm/Errors.js +0 -19
  61. package/lib/esm/S3ClientInstance.js +0 -30
  62. package/lib/esm/S3ClientInstanceConfig.js +0 -40
  63. package/lib/esm/S3Service.js +0 -188
  64. package/lib/esm/index.js +0 -5
  65. package/lib/index.d.ts +0 -4
  66. package/lib/index.js +0 -21
  67. package/project.json +0 -77
  68. package/vitest.config.ts +0 -3
@@ -0,0 +1,137 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import { AbortMultipartUploadCommand, CompleteMultipartUploadCommand, CopyObjectCommand, CreateBucketCommand, CreateBucketMetadataTableConfigurationCommand, CreateMultipartUploadCommand, CreateSessionCommand, DeleteBucketAnalyticsConfigurationCommand, DeleteBucketCommand, DeleteBucketCorsCommand, DeleteBucketEncryptionCommand, DeleteBucketIntelligentTieringConfigurationCommand, DeleteBucketInventoryConfigurationCommand, DeleteBucketLifecycleCommand, DeleteBucketMetadataTableConfigurationCommand, DeleteBucketMetricsConfigurationCommand, DeleteBucketOwnershipControlsCommand, DeleteBucketPolicyCommand, DeleteBucketReplicationCommand, DeleteBucketTaggingCommand, DeleteBucketWebsiteCommand, DeleteObjectCommand, DeleteObjectsCommand, DeleteObjectTaggingCommand, DeletePublicAccessBlockCommand, GetBucketAccelerateConfigurationCommand, GetBucketAclCommand, GetBucketAnalyticsConfigurationCommand, GetBucketCorsCommand, GetBucketEncryptionCommand, GetBucketIntelligentTieringConfigurationCommand, GetBucketInventoryConfigurationCommand, GetBucketLifecycleConfigurationCommand, GetBucketLocationCommand, GetBucketLoggingCommand, GetBucketMetadataTableConfigurationCommand, GetBucketMetricsConfigurationCommand, GetBucketNotificationConfigurationCommand, GetBucketOwnershipControlsCommand, GetBucketPolicyCommand, GetBucketPolicyStatusCommand, GetBucketReplicationCommand, GetBucketRequestPaymentCommand, GetBucketTaggingCommand, GetBucketVersioningCommand, GetBucketWebsiteCommand, GetObjectAclCommand, GetObjectAttributesCommand, GetObjectCommand, GetObjectLegalHoldCommand, GetObjectLockConfigurationCommand, GetObjectRetentionCommand, GetObjectTaggingCommand, GetObjectTorrentCommand, GetPublicAccessBlockCommand, HeadBucketCommand, HeadObjectCommand, ListBucketAnalyticsConfigurationsCommand, ListBucketIntelligentTieringConfigurationsCommand, ListBucketInventoryConfigurationsCommand, ListBucketMetricsConfigurationsCommand, ListBucketsCommand, ListDirectoryBucketsCommand, ListMultipartUploadsCommand, ListObjectsCommand, ListObjectsV2Command, ListObjectVersionsCommand, ListPartsCommand, PutBucketAccelerateConfigurationCommand, PutBucketAclCommand, PutBucketAnalyticsConfigurationCommand, PutBucketCorsCommand, PutBucketEncryptionCommand, PutBucketIntelligentTieringConfigurationCommand, PutBucketInventoryConfigurationCommand, PutBucketLifecycleConfigurationCommand, PutBucketLoggingCommand, PutBucketMetricsConfigurationCommand, PutBucketNotificationConfigurationCommand, PutBucketOwnershipControlsCommand, PutBucketPolicyCommand, PutBucketReplicationCommand, PutBucketRequestPaymentCommand, PutBucketTaggingCommand, PutBucketVersioningCommand, PutBucketWebsiteCommand, PutObjectAclCommand, PutObjectCommand, PutObjectLegalHoldCommand, PutObjectLockConfigurationCommand, PutObjectRetentionCommand, PutObjectTaggingCommand, PutPublicAccessBlockCommand, RestoreObjectCommand, SelectObjectContentCommand, UploadPartCommand, UploadPartCopyCommand, WriteGetObjectResponseCommand, } from "@aws-sdk/client-s3";
5
+ import { getSignedUrl } from "@aws-sdk/s3-request-presigner";
6
+ import { Service } from "@effect-aws/commons";
7
+ import { Effect, Layer } from "effect";
8
+ import * as Instance from "./S3ClientInstance.js";
9
+ import * as S3ServiceConfig from "./S3ServiceConfig.js";
10
+ const commands = {
11
+ AbortMultipartUploadCommand,
12
+ CompleteMultipartUploadCommand,
13
+ CopyObjectCommand,
14
+ CreateBucketCommand,
15
+ CreateBucketMetadataTableConfigurationCommand,
16
+ CreateMultipartUploadCommand,
17
+ CreateSessionCommand,
18
+ DeleteBucketCommand,
19
+ DeleteBucketAnalyticsConfigurationCommand,
20
+ DeleteBucketCorsCommand,
21
+ DeleteBucketEncryptionCommand,
22
+ DeleteBucketIntelligentTieringConfigurationCommand,
23
+ DeleteBucketInventoryConfigurationCommand,
24
+ DeleteBucketLifecycleCommand,
25
+ DeleteBucketMetadataTableConfigurationCommand,
26
+ DeleteBucketMetricsConfigurationCommand,
27
+ DeleteBucketOwnershipControlsCommand,
28
+ DeleteBucketPolicyCommand,
29
+ DeleteBucketReplicationCommand,
30
+ DeleteBucketTaggingCommand,
31
+ DeleteBucketWebsiteCommand,
32
+ DeleteObjectCommand,
33
+ DeleteObjectTaggingCommand,
34
+ DeleteObjectsCommand,
35
+ DeletePublicAccessBlockCommand,
36
+ GetBucketAccelerateConfigurationCommand,
37
+ GetBucketAclCommand,
38
+ GetBucketAnalyticsConfigurationCommand,
39
+ GetBucketCorsCommand,
40
+ GetBucketEncryptionCommand,
41
+ GetBucketIntelligentTieringConfigurationCommand,
42
+ GetBucketInventoryConfigurationCommand,
43
+ GetBucketLifecycleConfigurationCommand,
44
+ GetBucketLocationCommand,
45
+ GetBucketLoggingCommand,
46
+ GetBucketMetadataTableConfigurationCommand,
47
+ GetBucketMetricsConfigurationCommand,
48
+ GetBucketNotificationConfigurationCommand,
49
+ GetBucketOwnershipControlsCommand,
50
+ GetBucketPolicyCommand,
51
+ GetBucketPolicyStatusCommand,
52
+ GetBucketReplicationCommand,
53
+ GetBucketRequestPaymentCommand,
54
+ GetBucketTaggingCommand,
55
+ GetBucketVersioningCommand,
56
+ GetBucketWebsiteCommand,
57
+ GetObjectCommand,
58
+ GetObjectAclCommand,
59
+ GetObjectAttributesCommand,
60
+ GetObjectLegalHoldCommand,
61
+ GetObjectLockConfigurationCommand,
62
+ GetObjectRetentionCommand,
63
+ GetObjectTaggingCommand,
64
+ GetObjectTorrentCommand,
65
+ GetPublicAccessBlockCommand,
66
+ HeadBucketCommand,
67
+ HeadObjectCommand,
68
+ ListBucketAnalyticsConfigurationsCommand,
69
+ ListBucketIntelligentTieringConfigurationsCommand,
70
+ ListBucketInventoryConfigurationsCommand,
71
+ ListBucketMetricsConfigurationsCommand,
72
+ ListBucketsCommand,
73
+ ListDirectoryBucketsCommand,
74
+ ListMultipartUploadsCommand,
75
+ ListObjectVersionsCommand,
76
+ ListObjectsCommand,
77
+ ListObjectsV2Command,
78
+ ListPartsCommand,
79
+ PutBucketAccelerateConfigurationCommand,
80
+ PutBucketAclCommand,
81
+ PutBucketAnalyticsConfigurationCommand,
82
+ PutBucketCorsCommand,
83
+ PutBucketEncryptionCommand,
84
+ PutBucketIntelligentTieringConfigurationCommand,
85
+ PutBucketInventoryConfigurationCommand,
86
+ PutBucketLifecycleConfigurationCommand,
87
+ PutBucketLoggingCommand,
88
+ PutBucketMetricsConfigurationCommand,
89
+ PutBucketNotificationConfigurationCommand,
90
+ PutBucketOwnershipControlsCommand,
91
+ PutBucketPolicyCommand,
92
+ PutBucketReplicationCommand,
93
+ PutBucketRequestPaymentCommand,
94
+ PutBucketTaggingCommand,
95
+ PutBucketVersioningCommand,
96
+ PutBucketWebsiteCommand,
97
+ PutObjectCommand,
98
+ PutObjectAclCommand,
99
+ PutObjectLegalHoldCommand,
100
+ PutObjectLockConfigurationCommand,
101
+ PutObjectRetentionCommand,
102
+ PutObjectTaggingCommand,
103
+ PutPublicAccessBlockCommand,
104
+ RestoreObjectCommand,
105
+ SelectObjectContentCommand,
106
+ UploadPartCommand,
107
+ UploadPartCopyCommand,
108
+ WriteGetObjectResponseCommand,
109
+ };
110
+ /**
111
+ * @since 1.0.0
112
+ * @category constructors
113
+ */
114
+ export const makeS3Service = Effect.gen(function* () {
115
+ const client = yield* Instance.S3ClientInstance;
116
+ return Service.fromCommandsAndServiceFn(commands, (CommandCtor) => (args, options) => options?.presigned
117
+ ? Effect.gen(function* () {
118
+ const config = yield* S3ServiceConfig.toS3ClientConfig;
119
+ return yield* Effect.tryPromise({
120
+ try: () => getSignedUrl(client, new CommandCtor(args, config), options),
121
+ catch: Service.catchServiceExceptions(),
122
+ });
123
+ })
124
+ : Service.makeServiceFn(client, CommandCtor, {
125
+ resolveClientConfig: S3ServiceConfig.toS3ClientConfig,
126
+ })(args, options));
127
+ });
128
+ /**
129
+ * @since 1.0.0
130
+ * @category models
131
+ */
132
+ export class S3Service extends Effect.Tag("@effect-aws/client-s3/S3Service")() {
133
+ static defaultLayer = Layer.effect(this, makeS3Service).pipe(Layer.provide(Instance.layer));
134
+ static layer = (config) => Layer.effect(this, makeS3Service).pipe(Layer.provide(Instance.layer), Layer.provide(S3ServiceConfig.setS3ServiceConfig(config)));
135
+ static baseLayer = (evaluate) => Layer.effect(this, makeS3Service).pipe(Layer.provide(Layer.effect(Instance.S3ClientInstance, Effect.map(S3ServiceConfig.toS3ClientConfig, evaluate))));
136
+ }
137
+ //# sourceMappingURL=S3Service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"S3Service.js","sourceRoot":"","sources":["../../src/S3Service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { ServiceLogger } from "@effect-aws/commons";
2
+ import { Effect, FiberRef, Layer } from "effect";
3
+ import { dual } from "effect/Function";
4
+ import { globalValue } from "effect/GlobalValue";
5
+ /**
6
+ * @since 1.0.0
7
+ * @category s3 service config
8
+ */
9
+ const currentS3ServiceConfig = globalValue("@effect-aws/client-s3/currentS3ServiceConfig", () => FiberRef.unsafeMake({}));
10
+ /**
11
+ * @since 1.0.0
12
+ * @category s3 service config
13
+ */
14
+ export const withS3ServiceConfig = dual(2, (effect, config) => Effect.locally(effect, currentS3ServiceConfig, config));
15
+ /**
16
+ * @since 1.0.0
17
+ * @category s3 service config
18
+ */
19
+ export const setS3ServiceConfig = (config) => Layer.locallyScoped(currentS3ServiceConfig, config);
20
+ /**
21
+ * @since 1.0.0
22
+ * @category adapters
23
+ */
24
+ export const toS3ClientConfig = Effect.gen(function* () {
25
+ const { logger: serviceLogger, ...config } = yield* FiberRef.get(currentS3ServiceConfig);
26
+ const logger = serviceLogger === true
27
+ ? yield* ServiceLogger.toClientLogger(ServiceLogger.defaultServiceLogger)
28
+ : (serviceLogger ? yield* ServiceLogger.toClientLogger(ServiceLogger.make(serviceLogger)) : undefined);
29
+ return { logger, ...config };
30
+ });
31
+ //# sourceMappingURL=S3ServiceConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"S3ServiceConfig.js","sourceRoot":"","sources":["../../src/S3ServiceConfig.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD;;;GAGG;AACH,MAAM,sBAAsB,GAAG,WAAW,CACxC,8CAA8C,EAC9C,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAmB,EAAE,CAAC,CAChD,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAG5B,IAAI,CACN,CAAC,EACD,CAAU,MAA8B,EAAE,MAAwB,EAA0B,EAAE,CAC5F,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,sBAAsB,EAAE,MAAM,CAAC,CACzD,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAwB,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;AAEpH;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAkC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IACjF,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IAEzF,MAAM,MAAM,GAAG,aAAa,KAAK,IAAI;QACnC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,cAAc,CAAC,aAAa,CAAC,oBAAoB,CAAC;QACzE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAEzG,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;AAC/B,CAAC,CAAC,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import { S3Service } from "./S3Service.js";
5
+ /**
6
+ * @since 1.0.0
7
+ */
8
+ export * from "./Errors.js";
9
+ /**
10
+ * @since 1.0.0
11
+ */
12
+ export * as S3ClientInstance from "./S3ClientInstance.js";
13
+ /**
14
+ * @since 1.0.0
15
+ */
16
+ export * as S3ServiceConfig from "./S3ServiceConfig.js";
17
+ /**
18
+ * @since 1.0.0
19
+ */
20
+ export * from "./S3Service.js";
21
+ /**
22
+ * @since 1.0.0
23
+ * @category exports
24
+ * @alias S3Service
25
+ */
26
+ export const S3 = S3Service;
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;GAEG;AACH,cAAc,aAAa,CAAC;AAE5B;;GAEG;AACH,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAC;AAE1D;;GAEG;AACH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAC;AAExD;;GAEG;AACH,cAAc,gBAAgB,CAAC;AAe/B;;;;GAIG;AACH,MAAM,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC"}
@@ -0,0 +1,4 @@
1
+ {
2
+ "type": "module",
3
+ "sideEffects": []
4
+ }
package/package.json CHANGED
@@ -1,56 +1,73 @@
1
1
  {
2
2
  "name": "@effect-aws/client-s3",
3
+ "version": "1.9.3",
4
+ "description": "Effectful AWS S3 client",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "github:floydspace/effect-aws",
9
+ "directory": "packages/client-s3"
10
+ },
11
+ "sideEffects": [],
3
12
  "author": {
4
13
  "name": "Victor Korzunin",
5
- "email": "ifloydrose@gmail.com",
6
- "organization": false
7
- },
8
- "devDependencies": {
9
- "@types/node": "^18",
10
- "@typescript-eslint/eslint-plugin": "^7",
11
- "@typescript-eslint/parser": "^7",
12
- "aws-sdk-client-mock": "^4.0.2",
13
- "aws-sdk-client-mock-vitest": "^4.0.0",
14
- "effect": "3.0.0",
15
- "eslint": "^8",
16
- "eslint-config-prettier": "^9.1.0",
17
- "eslint-import-resolver-typescript": "^3.6.1",
18
- "eslint-plugin-import": "^2.29.1",
19
- "eslint-plugin-prettier": "^5.2.1",
20
- "prettier": "^3.2.5",
21
- "typescript": "^5.4.2",
22
- "vitest": "^2.0.5"
23
- },
24
- "peerDependencies": {
25
- "effect": ">=3.0.0 <4.0.0"
14
+ "email": "ifloydrose@gmail.com"
26
15
  },
16
+ "homepage": "https://floydspace.github.io/effect-aws/docs/client-s3",
27
17
  "dependencies": {
28
18
  "@aws-sdk/client-s3": "^3",
29
19
  "@aws-sdk/s3-request-presigner": "^3",
30
- "@aws-sdk/types": "^3"
20
+ "@aws-sdk/types": "^3",
21
+ "@effect-aws/commons": "^0.2.0"
31
22
  },
32
- "main": "lib/index.js",
33
- "license": "MIT",
34
- "homepage": "https://floydspace.github.io/effect-aws",
35
- "publishConfig": {
36
- "access": "public"
23
+ "peerDependencies": {
24
+ "effect": ">=3.0.4 <4.0.0"
37
25
  },
38
- "version": "1.6.0",
39
- "types": "lib/index.d.ts",
40
- "module": "lib/esm/index.js",
41
- "sideEffects": [],
42
- "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\".",
43
- "scripts": {
44
- "build": "npx projen build",
45
- "compile": "npx projen compile",
46
- "default": "npx projen default",
47
- "eslint": "npx projen eslint",
48
- "package": "npx projen package",
49
- "post-compile": "npx projen post-compile",
50
- "pre-compile": "npx projen pre-compile",
51
- "test": "npx projen test",
52
- "test:watch": "npx projen test:watch",
53
- "watch": "npx projen watch",
54
- "docgen": "docgen"
26
+ "main": "./dist/cjs/index.js",
27
+ "module": "./dist/esm/index.js",
28
+ "types": "./dist/dts/index.d.ts",
29
+ "exports": {
30
+ "./package.json": "./package.json",
31
+ ".": {
32
+ "types": "./dist/dts/index.d.ts",
33
+ "import": "./dist/esm/index.js",
34
+ "default": "./dist/cjs/index.js"
35
+ },
36
+ "./Errors": {
37
+ "types": "./dist/dts/Errors.d.ts",
38
+ "import": "./dist/esm/Errors.js",
39
+ "default": "./dist/cjs/Errors.js"
40
+ },
41
+ "./S3ClientInstance": {
42
+ "types": "./dist/dts/S3ClientInstance.d.ts",
43
+ "import": "./dist/esm/S3ClientInstance.js",
44
+ "default": "./dist/cjs/S3ClientInstance.js"
45
+ },
46
+ "./S3Service": {
47
+ "types": "./dist/dts/S3Service.d.ts",
48
+ "import": "./dist/esm/S3Service.js",
49
+ "default": "./dist/cjs/S3Service.js"
50
+ },
51
+ "./S3ServiceConfig": {
52
+ "types": "./dist/dts/S3ServiceConfig.d.ts",
53
+ "import": "./dist/esm/S3ServiceConfig.js",
54
+ "default": "./dist/cjs/S3ServiceConfig.js"
55
+ }
56
+ },
57
+ "typesVersions": {
58
+ "*": {
59
+ "Errors": [
60
+ "./dist/dts/Errors.d.ts"
61
+ ],
62
+ "S3ClientInstance": [
63
+ "./dist/dts/S3ClientInstance.d.ts"
64
+ ],
65
+ "S3Service": [
66
+ "./dist/dts/S3Service.d.ts"
67
+ ],
68
+ "S3ServiceConfig": [
69
+ "./dist/dts/S3ServiceConfig.d.ts"
70
+ ]
71
+ }
55
72
  }
56
73
  }
package/src/Errors.ts ADDED
@@ -0,0 +1,56 @@
1
+ import type {
2
+ BucketAlreadyExists,
3
+ BucketAlreadyOwnedByYou,
4
+ EncryptionTypeMismatch,
5
+ InvalidObjectState,
6
+ InvalidRequest,
7
+ InvalidWriteOffset,
8
+ NoSuchBucket,
9
+ NoSuchKey,
10
+ NoSuchUpload,
11
+ NotFound,
12
+ ObjectAlreadyInActiveTierError as ObjectAlreadyInActiveTierException,
13
+ ObjectNotInActiveTierError as ObjectNotInActiveTierException,
14
+ S3ServiceException,
15
+ TooManyParts,
16
+ } from "@aws-sdk/client-s3";
17
+ import type { TaggedException } from "@effect-aws/commons";
18
+ import { SdkError as CommonSdkError } from "@effect-aws/commons";
19
+ import { Data } from "effect";
20
+
21
+ export const AllServiceErrors = [
22
+ "BucketAlreadyExists",
23
+ "BucketAlreadyOwnedByYou",
24
+ "EncryptionTypeMismatch",
25
+ "InvalidObjectState",
26
+ "InvalidRequest",
27
+ "InvalidWriteOffset",
28
+ "NoSuchBucket",
29
+ "NoSuchKey",
30
+ "NoSuchUpload",
31
+ "NotFound",
32
+ "ObjectAlreadyInActiveTierError",
33
+ "ObjectNotInActiveTierError",
34
+ "TooManyParts",
35
+ ] as const;
36
+
37
+ export type BucketAlreadyExistsError = TaggedException<BucketAlreadyExists>;
38
+ export type BucketAlreadyOwnedByYouError = TaggedException<BucketAlreadyOwnedByYou>;
39
+ export type EncryptionTypeMismatchError = TaggedException<EncryptionTypeMismatch>;
40
+ export type InvalidObjectStateError = TaggedException<InvalidObjectState>;
41
+ export type InvalidRequestError = TaggedException<InvalidRequest>;
42
+ export type InvalidWriteOffsetError = TaggedException<InvalidWriteOffset>;
43
+ export type NoSuchBucketError = TaggedException<NoSuchBucket>;
44
+ export type NoSuchKeyError = TaggedException<NoSuchKey>;
45
+ export type NoSuchUploadError = TaggedException<NoSuchUpload>;
46
+ export type NotFoundError = TaggedException<NotFound>;
47
+ export type ObjectAlreadyInActiveTierError = TaggedException<ObjectAlreadyInActiveTierException>;
48
+ export type ObjectNotInActiveTierError = TaggedException<ObjectNotInActiveTierException>;
49
+ export type TooManyPartsError = TaggedException<TooManyParts>;
50
+
51
+ export type S3ServiceError = TaggedException<
52
+ S3ServiceException & { name: "S3ServiceError" }
53
+ >;
54
+ export const S3ServiceError = Data.tagged<S3ServiceError>("S3ServiceError");
55
+ export type SdkError = CommonSdkError;
56
+ export const SdkError = CommonSdkError;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import { S3Client } from "@aws-sdk/client-s3";
5
+ import { Context, Effect, Layer } from "effect";
6
+ import * as S3ServiceConfig from "./S3ServiceConfig.js";
7
+
8
+ /**
9
+ * @since 1.0.0
10
+ * @category tags
11
+ */
12
+ export class S3ClientInstance extends Context.Tag(
13
+ "@effect-aws/client-s3/S3ClientInstance",
14
+ )<S3ClientInstance, S3Client>() {}
15
+
16
+ /**
17
+ * @since 1.0.0
18
+ * @category constructors
19
+ */
20
+ export const make = Effect.flatMap(
21
+ S3ServiceConfig.toS3ClientConfig,
22
+ (config) =>
23
+ Effect.acquireRelease(
24
+ Effect.sync(() => new S3Client(config)),
25
+ (client) => Effect.sync(() => client.destroy()),
26
+ ),
27
+ );
28
+
29
+ /**
30
+ * @since 1.0.0
31
+ * @category layers
32
+ */
33
+ export const layer = Layer.scoped(S3ClientInstance, make);