@procedures/s3 0.0.0-stage → 0.1.0

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 (80) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/LICENSE +21 -0
  3. package/README.md +886 -2
  4. package/dist/.tsbuildinfo +1 -0
  5. package/dist/index.d.ts +18 -0
  6. package/dist/index.d.ts.map +1 -0
  7. package/dist/index.js +21 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/module.d.ts +16 -0
  10. package/dist/module.d.ts.map +1 -0
  11. package/dist/module.js +151 -0
  12. package/dist/module.js.map +1 -0
  13. package/dist/procedures/s3/delete.d.ts +26 -0
  14. package/dist/procedures/s3/delete.d.ts.map +1 -0
  15. package/dist/procedures/s3/delete.js +40 -0
  16. package/dist/procedures/s3/delete.js.map +1 -0
  17. package/dist/procedures/s3/download.d.ts +36 -0
  18. package/dist/procedures/s3/download.d.ts.map +1 -0
  19. package/dist/procedures/s3/download.js +143 -0
  20. package/dist/procedures/s3/download.js.map +1 -0
  21. package/dist/procedures/s3/index.d.ts +13 -0
  22. package/dist/procedures/s3/index.d.ts.map +1 -0
  23. package/dist/procedures/s3/index.js +13 -0
  24. package/dist/procedures/s3/index.js.map +1 -0
  25. package/dist/procedures/s3/list-all.d.ts +24 -0
  26. package/dist/procedures/s3/list-all.d.ts.map +1 -0
  27. package/dist/procedures/s3/list-all.js +57 -0
  28. package/dist/procedures/s3/list-all.js.map +1 -0
  29. package/dist/procedures/s3/list.d.ts +28 -0
  30. package/dist/procedures/s3/list.d.ts.map +1 -0
  31. package/dist/procedures/s3/list.js +56 -0
  32. package/dist/procedures/s3/list.js.map +1 -0
  33. package/dist/procedures/s3/multipart-abort.d.ts +21 -0
  34. package/dist/procedures/s3/multipart-abort.d.ts.map +1 -0
  35. package/dist/procedures/s3/multipart-abort.js +33 -0
  36. package/dist/procedures/s3/multipart-abort.js.map +1 -0
  37. package/dist/procedures/s3/multipart-complete.d.ts +26 -0
  38. package/dist/procedures/s3/multipart-complete.d.ts.map +1 -0
  39. package/dist/procedures/s3/multipart-complete.js +51 -0
  40. package/dist/procedures/s3/multipart-complete.js.map +1 -0
  41. package/dist/procedures/s3/multipart-init.d.ts +24 -0
  42. package/dist/procedures/s3/multipart-init.d.ts.map +1 -0
  43. package/dist/procedures/s3/multipart-init.js +42 -0
  44. package/dist/procedures/s3/multipart-init.js.map +1 -0
  45. package/dist/procedures/s3/multipart-upload.d.ts +24 -0
  46. package/dist/procedures/s3/multipart-upload.d.ts.map +1 -0
  47. package/dist/procedures/s3/multipart-upload.js +44 -0
  48. package/dist/procedures/s3/multipart-upload.js.map +1 -0
  49. package/dist/procedures/s3/upload.d.ts +30 -0
  50. package/dist/procedures/s3/upload.d.ts.map +1 -0
  51. package/dist/procedures/s3/upload.js +50 -0
  52. package/dist/procedures/s3/upload.js.map +1 -0
  53. package/dist/register.d.ts +8 -0
  54. package/dist/register.d.ts.map +1 -0
  55. package/dist/register.js +14 -0
  56. package/dist/register.js.map +1 -0
  57. package/dist/s3-client.d.ts +38 -0
  58. package/dist/s3-client.d.ts.map +1 -0
  59. package/dist/s3-client.js +83 -0
  60. package/dist/s3-client.js.map +1 -0
  61. package/dist/types.d.ts +198 -0
  62. package/dist/types.d.ts.map +1 -0
  63. package/dist/types.js +197 -0
  64. package/dist/types.js.map +1 -0
  65. package/package.json +77 -3
  66. package/src/index.ts +73 -0
  67. package/src/module.ts +211 -0
  68. package/src/procedures/s3/delete.ts +45 -0
  69. package/src/procedures/s3/download.ts +155 -0
  70. package/src/procedures/s3/index.ts +13 -0
  71. package/src/procedures/s3/list-all.ts +63 -0
  72. package/src/procedures/s3/list.ts +63 -0
  73. package/src/procedures/s3/multipart-abort.ts +40 -0
  74. package/src/procedures/s3/multipart-complete.ts +58 -0
  75. package/src/procedures/s3/multipart-init.ts +50 -0
  76. package/src/procedures/s3/multipart-upload.ts +53 -0
  77. package/src/procedures/s3/upload.ts +56 -0
  78. package/src/register.ts +17 -0
  79. package/src/s3-client.ts +94 -0
  80. package/src/types.ts +425 -0
@@ -0,0 +1,198 @@
1
+ /**
2
+ * Type definitions for client-s3 procedures
3
+ *
4
+ * AWS S3 operations: upload, download, list, delete, multipart upload
5
+ * Credentials are loaded from environment variables (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)
6
+ */
7
+ import { z } from "zod";
8
+ export interface S3Config {
9
+ /** AWS region (from AWS_REGION env var, defaults to us-east-1) */
10
+ region: string;
11
+ /** Optional custom endpoint (for MinIO, LocalStack, etc.) */
12
+ endpoint?: string | undefined;
13
+ /**
14
+ * Access key ID (from AWS_ACCESS_KEY_ID env var).
15
+ * Optional: when absent, the AWS SDK default credential provider chain
16
+ * (SSO, IAM roles/IMDS, shared config profiles, etc.) is used instead.
17
+ */
18
+ accessKeyId?: string | undefined;
19
+ /** Secret access key (from AWS_SECRET_ACCESS_KEY env var). Optional; see accessKeyId. */
20
+ secretAccessKey?: string | undefined;
21
+ /**
22
+ * Session token (from AWS_SESSION_TOKEN env var) for STS/SSO temporary
23
+ * credentials. Present only alongside a temporary access key/secret pair.
24
+ */
25
+ sessionToken?: string | undefined;
26
+ }
27
+ export declare const S3UploadInputSchema: z.ZodObject<{
28
+ bucket: z.ZodString;
29
+ key: z.ZodString;
30
+ body: z.ZodString;
31
+ contentType: z.ZodOptional<z.ZodString>;
32
+ base64: z.ZodOptional<z.ZodBoolean>;
33
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
34
+ }>;
35
+ export type S3UploadInput = z.infer<typeof S3UploadInputSchema>;
36
+ export interface S3UploadOutput {
37
+ /** ETag of uploaded object */
38
+ etag: string;
39
+ /** Version ID if bucket versioning is enabled */
40
+ versionId?: string | undefined;
41
+ /** Full S3 URI */
42
+ location: string;
43
+ }
44
+ export declare const S3DownloadInputSchema: z.ZodObject<{
45
+ bucket: z.ZodString;
46
+ key: z.ZodString;
47
+ encoding: z.ZodOptional<z.ZodString>;
48
+ versionId: z.ZodOptional<z.ZodString>;
49
+ destPath: z.ZodOptional<z.ZodString>;
50
+ maxBytes: z.ZodOptional<z.ZodNumber>;
51
+ }>;
52
+ export type S3DownloadInput = z.infer<typeof S3DownloadInputSchema>;
53
+ export interface S3DownloadOutput {
54
+ /** Object content (string if encoding specified, base64 otherwise); empty when destPath was given */
55
+ body: string;
56
+ /** The file the object was written to, when destPath was given */
57
+ path?: string | undefined;
58
+ /** Content length in bytes */
59
+ contentLength: number;
60
+ /** Content type */
61
+ contentType?: string | undefined;
62
+ /** ETag of object */
63
+ etag?: string | undefined;
64
+ /** Last modified date as ISO string */
65
+ lastModified?: string | undefined;
66
+ }
67
+ export declare const S3ListInputSchema: z.ZodObject<{
68
+ bucket: z.ZodString;
69
+ prefix: z.ZodOptional<z.ZodString>;
70
+ maxKeys: z.ZodOptional<z.ZodNumber>;
71
+ continuationToken: z.ZodOptional<z.ZodString>;
72
+ delimiter: z.ZodOptional<z.ZodString>;
73
+ }>;
74
+ export type S3ListInput = z.infer<typeof S3ListInputSchema>;
75
+ export interface S3ListObject {
76
+ /** Object key */
77
+ key: string;
78
+ /** Size in bytes */
79
+ size: number;
80
+ /** Last modified date as ISO string */
81
+ lastModified: string;
82
+ /** ETag */
83
+ etag: string;
84
+ /** Storage class */
85
+ storageClass?: string | undefined;
86
+ }
87
+ export interface S3ListOutput {
88
+ /** List of objects */
89
+ contents: S3ListObject[];
90
+ /** Common prefixes (when using delimiter) */
91
+ commonPrefixes: string[];
92
+ /** Whether there are more results */
93
+ isTruncated: boolean;
94
+ /** Token for next page of results */
95
+ nextContinuationToken?: string | undefined;
96
+ /** Number of keys returned */
97
+ keyCount: number;
98
+ }
99
+ export declare const S3ListAllInputSchema: z.ZodObject<{
100
+ bucket: z.ZodString;
101
+ prefix: z.ZodOptional<z.ZodString>;
102
+ maxKeys: z.ZodOptional<z.ZodNumber>;
103
+ delimiter: z.ZodOptional<z.ZodString>;
104
+ }>;
105
+ export type S3ListAllInput = z.infer<typeof S3ListAllInputSchema>;
106
+ export interface S3ListAllOutput {
107
+ /** All objects across every page (not capped at 1000) */
108
+ contents: S3ListObject[];
109
+ /** Deduplicated common prefixes across all pages (when using delimiter) */
110
+ commonPrefixes: string[];
111
+ /** Total number of keys returned */
112
+ keyCount: number;
113
+ /** Number of underlying ListObjectsV2 requests made */
114
+ pageCount: number;
115
+ }
116
+ export declare const S3DeleteInputSchema: z.ZodObject<{
117
+ bucket: z.ZodString;
118
+ key: z.ZodString;
119
+ versionId: z.ZodOptional<z.ZodString>;
120
+ }>;
121
+ export type S3DeleteInput = z.infer<typeof S3DeleteInputSchema>;
122
+ export interface S3DeleteOutput {
123
+ /** Whether deletion was successful */
124
+ deleted: boolean;
125
+ /** Delete marker if versioning enabled */
126
+ deleteMarker?: boolean | undefined;
127
+ /** Version ID of delete marker */
128
+ versionId?: string | undefined;
129
+ }
130
+ export declare const S3MultipartInitInputSchema: z.ZodObject<{
131
+ bucket: z.ZodString;
132
+ key: z.ZodString;
133
+ contentType: z.ZodOptional<z.ZodString>;
134
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
135
+ }>;
136
+ export type S3MultipartInitInput = z.infer<typeof S3MultipartInitInputSchema>;
137
+ export interface S3MultipartInitOutput {
138
+ /** Upload ID for subsequent part uploads */
139
+ uploadId: string;
140
+ /** Bucket name */
141
+ bucket: string;
142
+ /** Object key */
143
+ key: string;
144
+ }
145
+ export declare const S3MultipartUploadInputSchema: z.ZodObject<{
146
+ bucket: z.ZodString;
147
+ key: z.ZodString;
148
+ uploadId: z.ZodString;
149
+ partNumber: z.ZodNumber;
150
+ body: z.ZodString;
151
+ }>;
152
+ export type S3MultipartUploadInput = z.infer<typeof S3MultipartUploadInputSchema>;
153
+ export interface S3MultipartUploadOutput {
154
+ /** ETag of uploaded part */
155
+ etag: string;
156
+ /** Part number */
157
+ partNumber: number;
158
+ }
159
+ export declare const S3MultipartCompleteInputSchema: z.ZodObject<{
160
+ bucket: z.ZodString;
161
+ key: z.ZodString;
162
+ uploadId: z.ZodString;
163
+ parts: z.ZodArray<z.ZodObject<{
164
+ etag: z.ZodString;
165
+ partNumber: z.ZodNumber;
166
+ }>>;
167
+ }>;
168
+ export type S3MultipartCompleteInput = z.infer<typeof S3MultipartCompleteInputSchema>;
169
+ export interface S3MultipartCompleteOutput {
170
+ /** Location URL of completed object */
171
+ location: string;
172
+ /** Bucket name */
173
+ bucket: string;
174
+ /** Object key */
175
+ key: string;
176
+ /** ETag of completed object */
177
+ etag: string;
178
+ }
179
+ export declare const S3MultipartAbortInputSchema: z.ZodObject<{
180
+ bucket: z.ZodString;
181
+ key: z.ZodString;
182
+ uploadId: z.ZodString;
183
+ }>;
184
+ export type S3MultipartAbortInput = z.infer<typeof S3MultipartAbortInputSchema>;
185
+ export interface S3MultipartAbortOutput {
186
+ /** Whether abort was successful */
187
+ aborted: boolean;
188
+ }
189
+ export declare const S3UploadOutputSchema: z.ZodType<S3UploadOutput>;
190
+ export declare const S3DownloadOutputSchema: z.ZodType<S3DownloadOutput>;
191
+ export declare const S3ListOutputSchema: z.ZodType<S3ListOutput>;
192
+ export declare const S3ListAllOutputSchema: z.ZodType<S3ListAllOutput>;
193
+ export declare const S3DeleteOutputSchema: z.ZodType<S3DeleteOutput>;
194
+ export declare const S3MultipartInitOutputSchema: z.ZodType<S3MultipartInitOutput>;
195
+ export declare const S3MultipartUploadOutputSchema: z.ZodType<S3MultipartUploadOutput>;
196
+ export declare const S3MultipartCompleteOutputSchema: z.ZodType<S3MultipartCompleteOutput>;
197
+ export declare const S3MultipartAbortOutputSchema: z.ZodType<S3MultipartAbortOutput>;
198
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,197 @@
1
+ /**
2
+ * Type definitions for client-s3 procedures
3
+ *
4
+ * AWS S3 operations: upload, download, list, delete, multipart upload
5
+ * Credentials are loaded from environment variables (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)
6
+ */
7
+ import { z } from "zod";
8
+ // =============================================================================
9
+ // s3.upload Types
10
+ // =============================================================================
11
+ export const S3UploadInputSchema = z.object({
12
+ /** S3 bucket name */
13
+ bucket: z.string().describe("S3 bucket name"),
14
+ /** Object key (path in bucket) */
15
+ key: z.string().describe("Object key (path in bucket)"),
16
+ /** Content to upload - string or base64 encoded binary */
17
+ body: z.string().describe("Content to upload - string or base64 encoded binary"),
18
+ /** Content type (e.g., "application/json", "text/plain") */
19
+ contentType: z.string().optional().describe("Content type (e.g., \"application/json\", \"text/plain\")"),
20
+ /** If true, body is base64 encoded binary data */
21
+ base64: z.boolean().optional().describe("If true, body is base64 encoded binary data"),
22
+ /** Optional metadata key-value pairs */
23
+ metadata: z.record(z.string(), z.string()).optional().describe("Optional metadata key-value pairs"),
24
+ });
25
+ // =============================================================================
26
+ // s3.download Types
27
+ // =============================================================================
28
+ export const S3DownloadInputSchema = z.object({
29
+ /** S3 bucket name */
30
+ bucket: z.string().describe("S3 bucket name"),
31
+ /** Object key (path in bucket) */
32
+ key: z.string().describe("Object key (path in bucket)"),
33
+ /** Encoding for text content (utf8, ascii, etc.) - omit for base64 binary */
34
+ encoding: z.string().optional().describe("Encoding for text content (utf8, ascii, etc.) - omit for base64 binary"),
35
+ /** Specific version to download */
36
+ versionId: z.string().optional().describe("Specific version to download"),
37
+ /** Write the object to this file instead of returning it (streams to disk: no size limit, no base64) */
38
+ destPath: z.string().optional().describe("Write the object to this file instead of returning it (streams to disk: no size limit, no base64)"),
39
+ /** Largest object to load into memory when destPath is not set (default: 64 MiB) */
40
+ maxBytes: z.number().int().positive().optional().describe("Largest object to load into memory when destPath is not set (default: 64 MiB)"),
41
+ });
42
+ // =============================================================================
43
+ // s3.list Types
44
+ // =============================================================================
45
+ export const S3ListInputSchema = z.object({
46
+ /** S3 bucket name */
47
+ bucket: z.string().describe("S3 bucket name"),
48
+ /** Filter objects by prefix */
49
+ prefix: z.string().optional().describe("Filter objects by prefix"),
50
+ /** Maximum number of keys to return (default 1000) */
51
+ maxKeys: z.number().optional().describe("Maximum number of keys to return (default 1000)"),
52
+ /** Continuation token for pagination */
53
+ continuationToken: z.string().optional().describe("Continuation token for pagination"),
54
+ /** Delimiter for hierarchical listing (e.g., "/") */
55
+ delimiter: z.string().optional().describe("Delimiter for hierarchical listing (e.g., \"/\")"),
56
+ });
57
+ // =============================================================================
58
+ // s3.listAll Types
59
+ // =============================================================================
60
+ export const S3ListAllInputSchema = z.object({
61
+ /** S3 bucket name */
62
+ bucket: z.string().describe("S3 bucket name"),
63
+ /** Filter objects by prefix */
64
+ prefix: z.string().optional().describe("Filter objects by prefix"),
65
+ /** Page size for each underlying request (default/max 1000); paging is automatic */
66
+ maxKeys: z.number().optional().describe("Page size for each underlying request (default/max 1000); paging is automatic"),
67
+ /** Delimiter for hierarchical listing (e.g., "/") */
68
+ delimiter: z.string().optional().describe("Delimiter for hierarchical listing (e.g., \"/\")"),
69
+ });
70
+ // =============================================================================
71
+ // s3.delete Types
72
+ // =============================================================================
73
+ export const S3DeleteInputSchema = z.object({
74
+ /** S3 bucket name */
75
+ bucket: z.string().describe("S3 bucket name"),
76
+ /** Object key (path in bucket) */
77
+ key: z.string().describe("Object key (path in bucket)"),
78
+ /** Specific version to delete */
79
+ versionId: z.string().optional().describe("Specific version to delete"),
80
+ });
81
+ // =============================================================================
82
+ // s3.multipart.init Types
83
+ // =============================================================================
84
+ export const S3MultipartInitInputSchema = z.object({
85
+ /** S3 bucket name */
86
+ bucket: z.string().describe("S3 bucket name"),
87
+ /** Object key (path in bucket) */
88
+ key: z.string().describe("Object key (path in bucket)"),
89
+ /** Content type */
90
+ contentType: z.string().optional().describe("Content type"),
91
+ /** Optional metadata */
92
+ metadata: z.record(z.string(), z.string()).optional().describe("Optional metadata"),
93
+ });
94
+ // =============================================================================
95
+ // s3.multipart.upload Types
96
+ // =============================================================================
97
+ export const S3MultipartUploadInputSchema = z.object({
98
+ /** S3 bucket name */
99
+ bucket: z.string().describe("S3 bucket name"),
100
+ /** Object key */
101
+ key: z.string().describe("Object key"),
102
+ /** Upload ID from init */
103
+ uploadId: z.string().describe("Upload ID from init"),
104
+ /** Part number (1-10000) */
105
+ partNumber: z.number().min(1).max(10000).describe("Part number (1-10000)"),
106
+ /** Part content - base64 encoded */
107
+ body: z.string().describe("Part content - base64 encoded"),
108
+ });
109
+ // =============================================================================
110
+ // s3.multipart.complete Types
111
+ // =============================================================================
112
+ export const S3MultipartCompleteInputSchema = z.object({
113
+ /** S3 bucket name */
114
+ bucket: z.string().describe("S3 bucket name"),
115
+ /** Object key */
116
+ key: z.string().describe("Object key"),
117
+ /** Upload ID from init */
118
+ uploadId: z.string().describe("Upload ID from init"),
119
+ /** Parts to complete (etag and partNumber) */
120
+ parts: z.array(z.object({
121
+ etag: z.string(),
122
+ partNumber: z.number(),
123
+ })).describe("Parts to complete (etag and partNumber)"),
124
+ });
125
+ // =============================================================================
126
+ // s3.multipart.abort Types
127
+ // =============================================================================
128
+ export const S3MultipartAbortInputSchema = z.object({
129
+ /** S3 bucket name */
130
+ bucket: z.string().describe("S3 bucket name"),
131
+ /** Object key */
132
+ key: z.string().describe("Object key"),
133
+ /** Upload ID to abort */
134
+ uploadId: z.string().describe("Upload ID to abort"),
135
+ });
136
+ // =============================================================================
137
+ // Output schemas (roadmap 2.1)
138
+ // =============================================================================
139
+ // Loose objects: a field that a schema does not name stays in the result (a strict schema would
140
+ // remove it when the output is validated).
141
+ export const S3UploadOutputSchema = z.looseObject({
142
+ etag: z.string().describe("The ETag of the object, without quotes"),
143
+ versionId: z.string().optional().describe("The version id, when the bucket has versioning"),
144
+ location: z.string().describe("The S3 URI of the object (s3://bucket/key)"),
145
+ });
146
+ export const S3DownloadOutputSchema = z.looseObject({
147
+ body: z.string().describe("The content: text with an encoding, base64 without one, empty with destPath"),
148
+ path: z.string().optional().describe("The file that holds the object, with destPath"),
149
+ contentLength: z.number().describe("The size of the object, in bytes"),
150
+ contentType: z.string().optional().describe("The content type"),
151
+ etag: z.string().optional().describe("The ETag of the object, without quotes"),
152
+ lastModified: z.string().optional().describe("The time of the last change (ISO 8601)"),
153
+ });
154
+ const listObject = z.looseObject({
155
+ key: z.string().describe("The object key"),
156
+ size: z.number().describe("The size, in bytes"),
157
+ lastModified: z.string().describe("The time of the last change (ISO 8601)"),
158
+ etag: z.string().describe("The ETag, without quotes"),
159
+ storageClass: z.string().optional().describe("The storage class"),
160
+ });
161
+ export const S3ListOutputSchema = z.looseObject({
162
+ contents: z.array(listObject).describe("The objects of the page"),
163
+ commonPrefixes: z.array(z.string()).describe("The common prefixes (with a delimiter)"),
164
+ isTruncated: z.boolean().describe("True when more pages exist"),
165
+ nextContinuationToken: z.string().optional().describe("The token of the next page"),
166
+ keyCount: z.number().describe("The number of keys on the page"),
167
+ });
168
+ export const S3ListAllOutputSchema = z.looseObject({
169
+ contents: z.array(listObject).describe("The objects of all pages"),
170
+ commonPrefixes: z.array(z.string()).describe("The common prefixes of all pages (with a delimiter)"),
171
+ keyCount: z.number().describe("The number of keys"),
172
+ pageCount: z.number().describe("The number of list requests"),
173
+ });
174
+ export const S3DeleteOutputSchema = z.looseObject({
175
+ deleted: z.boolean().describe("True when the delete succeeded"),
176
+ deleteMarker: z.boolean().optional().describe("True when versioning made a delete marker"),
177
+ versionId: z.string().optional().describe("The version id of the delete marker"),
178
+ });
179
+ export const S3MultipartInitOutputSchema = z.looseObject({
180
+ uploadId: z.string().describe("The upload id: the part uploads and complete take it"),
181
+ bucket: z.string().describe("The bucket"),
182
+ key: z.string().describe("The object key"),
183
+ });
184
+ export const S3MultipartUploadOutputSchema = z.looseObject({
185
+ etag: z.string().describe("The ETag of the part, without quotes: complete takes it"),
186
+ partNumber: z.number().describe("The part number"),
187
+ });
188
+ export const S3MultipartCompleteOutputSchema = z.looseObject({
189
+ location: z.string().describe("The location of the object"),
190
+ bucket: z.string().describe("The bucket"),
191
+ key: z.string().describe("The object key"),
192
+ etag: z.string().describe("The ETag of the object, without quotes"),
193
+ });
194
+ export const S3MultipartAbortOutputSchema = z.looseObject({
195
+ aborted: z.boolean().describe("True when the upload was aborted"),
196
+ });
197
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,80 @@
1
1
  {
2
+ "$schema": "https://json.schemastore.org/package",
2
3
  "name": "@procedures/s3",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
4
+ "version": "0.1.0",
5
+ "description": "AWS S3 as typed procedures: upload, download with safe part files, list, delete and multipart uploads.",
6
+ "keywords": [
7
+ "s3",
8
+ "aws",
9
+ "storage",
10
+ "upload",
11
+ "procedures"
12
+ ],
13
+ "homepage": "https://mark1russell7.github.io/client/",
14
+ "bugs": {
15
+ "url": "https://github.com/mark1russell7/client/issues"
16
+ },
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "git+https://github.com/mark1russell7/client.git",
20
+ "directory": "packages/client-s3"
21
+ },
22
+ "license": "MIT",
23
+ "author": "Mark Russell (https://github.com/mark1russell7)",
24
+ "type": "module",
25
+ "main": "./dist/index.js",
26
+ "types": "./dist/index.d.ts",
27
+ "exports": {
28
+ ".": {
29
+ "types": "./dist/index.d.ts",
30
+ "import": "./dist/index.js"
31
+ },
32
+ "./module": {
33
+ "types": "./dist/module.d.ts",
34
+ "import": "./dist/module.js"
35
+ },
36
+ "./register.js": {
37
+ "import": "./dist/register.js"
38
+ }
39
+ },
40
+ "files": [
41
+ "dist",
42
+ "src",
43
+ "!src/**/*.test.ts",
44
+ "!src/**/*.test.tsx",
45
+ "!src/**/__tests__",
46
+ "CHANGELOG.md"
47
+ ],
48
+ "sideEffects": [
49
+ "./dist/index.js",
50
+ "./dist/register.js"
51
+ ],
52
+ "engines": {
53
+ "node": ">=22"
54
+ },
55
+ "publishConfig": {
56
+ "access": "public",
57
+ "provenance": true
58
+ },
59
+ "dependencies": {
60
+ "@aws-sdk/client-s3": "^3.705.0",
61
+ "@procedures/client": "0.1.0",
62
+ "zod": "^4.6.5"
63
+ },
64
+ "devDependencies": {
65
+ "typescript": "^7.0.2",
66
+ "@types/node": "^22.0.0",
67
+ "@mark1russell7/cue": "^1.0.0",
68
+ "vitest": "^5.0.3"
69
+ },
70
+ "client": {
71
+ "procedures": "./dist/register.js"
72
+ },
73
+ "scripts": {
74
+ "build": "tsc -b",
75
+ "typecheck": "tsc --noEmit",
76
+ "clean": "rm -rf dist .tsbuildinfo",
77
+ "test": "vitest run",
78
+ "test:watch": "vitest"
79
+ }
6
80
  }
package/src/index.ts ADDED
@@ -0,0 +1,73 @@
1
+ /**
2
+ * client-s3 - AWS S3 procedures for the client ecosystem
3
+ *
4
+ * Provides upload, download, list, delete, and multipart upload operations.
5
+ * Credentials are loaded from environment variables (all optional — when the
6
+ * static keys are absent the AWS SDK default credential provider chain is used):
7
+ * - AWS_ACCESS_KEY_ID (optional; pair with AWS_SECRET_ACCESS_KEY)
8
+ * - AWS_SECRET_ACCESS_KEY (optional)
9
+ * - AWS_SESSION_TOKEN (optional, for STS/SSO temporary credentials)
10
+ * - AWS_REGION (optional, defaults to us-east-1)
11
+ * - S3_ENDPOINT (optional, for MinIO/LocalStack)
12
+ */
13
+
14
+ // Importing the package registers its procedures, as in the other client packages (BUGS-2026-07 H18)
15
+ import "./register.js";
16
+
17
+ // Re-export types
18
+ export type {
19
+ S3Config,
20
+ S3UploadInput,
21
+ S3UploadOutput,
22
+ S3DownloadInput,
23
+ S3DownloadOutput,
24
+ S3ListInput,
25
+ S3ListOutput,
26
+ S3ListObject,
27
+ S3ListAllInput,
28
+ S3ListAllOutput,
29
+ S3DeleteInput,
30
+ S3DeleteOutput,
31
+ S3MultipartInitInput,
32
+ S3MultipartInitOutput,
33
+ S3MultipartUploadInput,
34
+ S3MultipartUploadOutput,
35
+ S3MultipartCompleteInput,
36
+ S3MultipartCompleteOutput,
37
+ S3MultipartAbortInput,
38
+ S3MultipartAbortOutput,
39
+ } from "./types.js";
40
+
41
+ // Re-export schemas for external use
42
+ export {
43
+ S3UploadInputSchema,
44
+ S3DownloadInputSchema,
45
+ S3ListInputSchema,
46
+ S3ListAllInputSchema,
47
+ S3DeleteInputSchema,
48
+ S3MultipartInitInputSchema,
49
+ S3MultipartUploadInputSchema,
50
+ S3MultipartCompleteInputSchema,
51
+ S3MultipartAbortInputSchema,
52
+ } from "./types.js";
53
+
54
+ // Re-export S3 client utilities
55
+ export {
56
+ getS3Config,
57
+ createS3Client,
58
+ getS3Client,
59
+ resetS3Client,
60
+ } from "./s3-client.js";
61
+
62
+ // Re-export procedure implementations for direct use
63
+ export {
64
+ s3Upload,
65
+ s3Download,
66
+ s3List,
67
+ s3ListAll,
68
+ s3Delete,
69
+ s3MultipartInit,
70
+ s3MultipartUpload,
71
+ s3MultipartComplete,
72
+ s3MultipartAbort,
73
+ } from "./procedures/s3/index.js";