@procedures/s3 0.2.3 → 0.3.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.
package/dist/index.d.ts CHANGED
@@ -11,8 +11,8 @@
11
11
  * - S3_ENDPOINT (optional, for MinIO/LocalStack)
12
12
  */
13
13
  export * from "./module.js";
14
- export type { S3Config, S3UploadInput, S3UploadOutput, S3DownloadInput, S3DownloadOutput, S3ListInput, S3ListOutput, S3ListObject, S3ListAllInput, S3ListAllOutput, S3DeleteInput, S3DeleteOutput, S3MultipartInitInput, S3MultipartInitOutput, S3MultipartUploadInput, S3MultipartUploadOutput, S3MultipartCompleteInput, S3MultipartCompleteOutput, S3MultipartAbortInput, S3MultipartAbortOutput, } from "./types.js";
15
- export { S3UploadInputSchema, S3DownloadInputSchema, S3ListInputSchema, S3ListAllInputSchema, S3DeleteInputSchema, S3MultipartInitInputSchema, S3MultipartUploadInputSchema, S3MultipartCompleteInputSchema, S3MultipartAbortInputSchema, } from "./types.js";
14
+ export type { S3Config, S3UploadInput, S3UploadOutput, S3DownloadInput, S3DownloadOutput, S3ListInput, S3ListOutput, S3ListObject, S3ListAllInput, S3ListAllOutput, S3DeleteInput, S3DeleteOutput, S3MultipartInitInput, S3MultipartInitOutput, S3MultipartUploadInput, S3MultipartUploadOutput, S3MultipartCompleteInput, S3MultipartCompleteOutput, S3MultipartAbortInput, S3MultipartAbortOutput, S3HeadInput, S3HeadOutput, S3CopyInput, S3CopyOutput, S3PresignInput, S3PresignOutput, } from "./types.js";
15
+ export { S3UploadInputSchema, S3DownloadInputSchema, S3ListInputSchema, S3ListAllInputSchema, S3DeleteInputSchema, S3MultipartInitInputSchema, S3MultipartUploadInputSchema, S3MultipartCompleteInputSchema, S3MultipartAbortInputSchema, S3HeadInputSchema, S3CopyInputSchema, S3PresignInputSchema, MAX_PRESIGN_SECONDS, } from "./types.js";
16
16
  export { getS3Config, createS3Client, getS3Client, resetS3Client, } from "./s3-client.js";
17
- export { s3Upload, s3Download, s3List, s3ListAll, s3Delete, s3MultipartInit, s3MultipartUpload, s3MultipartComplete, s3MultipartAbort, } from "./procedures/s3/index.js";
17
+ export { s3Upload, s3Download, s3List, s3ListAll, s3Delete, s3MultipartInit, s3MultipartUpload, s3MultipartComplete, s3MultipartAbort, s3Head, s3Copy, s3Presign, } from "./procedures/s3/index.js";
18
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,cAAc,aAAa,CAAC;AAG5B,YAAY,EACV,QAAQ,EACR,aAAa,EACb,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,eAAe,EACf,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,0BAA0B,EAC1B,4BAA4B,EAC5B,8BAA8B,EAC9B,2BAA2B,GAC5B,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,WAAW,EACX,cAAc,EACd,WAAW,EACX,aAAa,GACd,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,QAAQ,EACR,UAAU,EACV,MAAM,EACN,SAAS,EACT,QAAQ,EACR,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,cAAc,aAAa,CAAC;AAG5B,YAAY,EACV,QAAQ,EACR,aAAa,EACb,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,eAAe,EACf,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACtB,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,cAAc,EACd,eAAe,GAChB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,0BAA0B,EAC1B,4BAA4B,EAC5B,8BAA8B,EAC9B,2BAA2B,EAC3B,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,WAAW,EACX,cAAc,EACd,WAAW,EACX,aAAa,GACd,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,QAAQ,EACR,UAAU,EACV,MAAM,EACN,SAAS,EACT,QAAQ,EACR,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,MAAM,EACN,MAAM,EACN,SAAS,GACV,MAAM,0BAA0B,CAAC"}
package/dist/index.js CHANGED
@@ -12,9 +12,9 @@
12
12
  */
13
13
  export * from "./module.js";
14
14
  // Re-export schemas for external use
15
- export { S3UploadInputSchema, S3DownloadInputSchema, S3ListInputSchema, S3ListAllInputSchema, S3DeleteInputSchema, S3MultipartInitInputSchema, S3MultipartUploadInputSchema, S3MultipartCompleteInputSchema, S3MultipartAbortInputSchema, } from "./types.js";
15
+ export { S3UploadInputSchema, S3DownloadInputSchema, S3ListInputSchema, S3ListAllInputSchema, S3DeleteInputSchema, S3MultipartInitInputSchema, S3MultipartUploadInputSchema, S3MultipartCompleteInputSchema, S3MultipartAbortInputSchema, S3HeadInputSchema, S3CopyInputSchema, S3PresignInputSchema, MAX_PRESIGN_SECONDS, } from "./types.js";
16
16
  // Re-export S3 client utilities
17
17
  export { getS3Config, createS3Client, getS3Client, resetS3Client, } from "./s3-client.js";
18
18
  // Re-export procedure implementations for direct use
19
- export { s3Upload, s3Download, s3List, s3ListAll, s3Delete, s3MultipartInit, s3MultipartUpload, s3MultipartComplete, s3MultipartAbort, } from "./procedures/s3/index.js";
19
+ export { s3Upload, s3Download, s3List, s3ListAll, s3Delete, s3MultipartInit, s3MultipartUpload, s3MultipartComplete, s3MultipartAbort, s3Head, s3Copy, s3Presign, } from "./procedures/s3/index.js";
20
20
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,cAAc,aAAa,CAAC;AA0B5B,qCAAqC;AACrC,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,0BAA0B,EAC1B,4BAA4B,EAC5B,8BAA8B,EAC9B,2BAA2B,GAC5B,MAAM,YAAY,CAAC;AAEpB,gCAAgC;AAChC,OAAO,EACL,WAAW,EACX,cAAc,EACd,WAAW,EACX,aAAa,GACd,MAAM,gBAAgB,CAAC;AAExB,qDAAqD;AACrD,OAAO,EACL,QAAQ,EACR,UAAU,EACV,MAAM,EACN,SAAS,EACT,QAAQ,EACR,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,cAAc,aAAa,CAAC;AAgC5B,qCAAqC;AACrC,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,0BAA0B,EAC1B,4BAA4B,EAC5B,8BAA8B,EAC9B,2BAA2B,EAC3B,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,gCAAgC;AAChC,OAAO,EACL,WAAW,EACX,cAAc,EACd,WAAW,EACX,aAAa,GACd,MAAM,gBAAgB,CAAC;AAExB,qDAAqD;AACrD,OAAO,EACL,QAAQ,EACR,UAAU,EACV,MAAM,EACN,SAAS,EACT,QAAQ,EACR,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,MAAM,EACN,MAAM,EACN,SAAS,GACV,MAAM,0BAA0B,CAAC"}
package/dist/module.d.ts CHANGED
@@ -3,7 +3,8 @@
3
3
  *
4
4
  * Procedure Registration for S3 operations
5
5
  *
6
- * Provides s3.upload, s3.download, s3.list, s3.delete, and s3.multipart.* procedures.
6
+ * Provides s3.upload, s3.download, s3.list, s3.delete, s3.head, s3.copy, s3.presign, and
7
+ * s3.multipart.* procedures.
7
8
  * Credentials are loaded from environment variables (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY).
8
9
  */
9
10
  import { type ProcedureModule, type ProcedureRegistry } from "@procedures/client";
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAA6C,KAAK,eAAe,EAAuC,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAuMlK;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,eAUnB,CAAC;eAEU,QAAQ;AAEvB;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,GAAE,iBAAsC,GAAG,IAAI,CAE3F"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAA6C,KAAK,eAAe,EAAuC,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAsQlK;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,eAanB,CAAC;eAEU,QAAQ;AAEvB;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,GAAE,iBAAsC,GAAG,IAAI,CAE3F"}
package/dist/module.js CHANGED
@@ -3,12 +3,17 @@
3
3
  *
4
4
  * Procedure Registration for S3 operations
5
5
  *
6
- * Provides s3.upload, s3.download, s3.list, s3.delete, and s3.multipart.* procedures.
6
+ * Provides s3.upload, s3.download, s3.list, s3.delete, s3.head, s3.copy, s3.presign, and
7
+ * s3.multipart.* procedures.
7
8
  * Credentials are loaded from environment variables (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY).
8
9
  */
9
10
  import { createProcedure, zodAdapter, defineModule, PROCEDURE_REGISTRY, registerModules } from "@procedures/client";
10
11
  import { s3Upload, s3Download, s3List, s3ListAll, s3Delete, s3MultipartInit, s3MultipartUpload, s3MultipartComplete, s3MultipartAbort, } from "./procedures/s3/index.js";
11
12
  import { S3UploadInputSchema, S3DownloadInputSchema, S3ListInputSchema, S3ListAllInputSchema, S3DeleteInputSchema, S3MultipartInitInputSchema, S3MultipartUploadInputSchema, S3MultipartCompleteInputSchema, S3MultipartAbortInputSchema, S3UploadOutputSchema, S3DownloadOutputSchema, S3ListOutputSchema, S3ListAllOutputSchema, S3DeleteOutputSchema, S3MultipartInitOutputSchema, S3MultipartUploadOutputSchema, S3MultipartCompleteOutputSchema, S3MultipartAbortOutputSchema, } from "./types.js";
13
+ import { s3Head } from "./procedures/s3/head.js";
14
+ import { s3Copy } from "./procedures/s3/copy.js";
15
+ import { s3Presign } from "./procedures/s3/presign.js";
16
+ import { S3HeadInputSchema, S3HeadOutputSchema, S3CopyInputSchema, S3CopyOutputSchema, S3PresignInputSchema, S3PresignOutputSchema, } from "./types.js";
12
17
  // =============================================================================
13
18
  // Procedures
14
19
  // =============================================================================
@@ -143,6 +148,48 @@ const s3MultipartAbortProcedure = createProcedure()
143
148
  return s3MultipartAbort(input);
144
149
  })
145
150
  .build();
151
+ // s3.head, s3.copy and s3.presign (roadmap R44)
152
+ const s3HeadProcedure = createProcedure()
153
+ .path(["s3", "head"])
154
+ .input(zodAdapter(S3HeadInputSchema))
155
+ .output(zodAdapter(S3HeadOutputSchema))
156
+ .meta({
157
+ description: "The metadata of an object, without its content (exists: false for a 404)",
158
+ effects: { reads: ["s3", "network"], writes: [] },
159
+ shorts: { bucket: "b", key: "k" },
160
+ output: "json",
161
+ })
162
+ .handler(async (input) => s3Head(input))
163
+ .build();
164
+ const s3CopyProcedure = createProcedure()
165
+ .path(["s3", "copy"])
166
+ .input(zodAdapter(S3CopyInputSchema))
167
+ .output(zodAdapter(S3CopyOutputSchema))
168
+ .meta({
169
+ description: "Copy an object inside S3 (it replaces the destination, unless overwrite is false)",
170
+ // The copy replaces the object of the destination key: destructive. The same input gives the
171
+ // same object again, so a second call changes nothing more.
172
+ effects: { reads: ["s3", "network"], writes: ["s3", "network"], destructive: true, idempotent: true },
173
+ shorts: { bucket: "b", key: "k" },
174
+ output: "json",
175
+ })
176
+ .handler(async (input) => s3Copy(input))
177
+ .build();
178
+ const s3PresignProcedure = createProcedure()
179
+ .path(["s3", "presign"])
180
+ .input(zodAdapter(S3PresignInputSchema))
181
+ .output(zodAdapter(S3PresignOutputSchema))
182
+ .meta({
183
+ description: "A presigned URL for a GET or a PUT of an object, with an expiry in seconds",
184
+ // It sends no request to S3. It reads the credentials: the environment, the AWS files of the
185
+ // host (fs) or the instance metadata service (network). A call that cannot change s3 gets no
186
+ // PUT URL (see presign.ts).
187
+ effects: { reads: ["fs", "network"], writes: [] },
188
+ shorts: { bucket: "b", key: "k", method: "m", expiresIn: "e" },
189
+ output: "json",
190
+ })
191
+ .handler(async (input, ctx) => s3Presign(input, ctx.capability))
192
+ .build();
146
193
  // =============================================================================
147
194
  // Registration
148
195
  // =============================================================================
@@ -160,6 +207,9 @@ export const s3Module = defineModule("@procedures/s3", [
160
207
  s3MultipartUploadProcedure,
161
208
  s3MultipartCompleteProcedure,
162
209
  s3MultipartAbortProcedure,
210
+ s3HeadProcedure,
211
+ s3CopyProcedure,
212
+ s3PresignProcedure,
163
213
  ]);
164
214
  export default s3Module;
165
215
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * s3.copy procedure (roadmap R44)
3
+ *
4
+ * Copy an object inside S3 (CopyObject): the bytes do not pass through the host. The copy
5
+ * replaces the object of the destination key, as S3 does. With `overwrite: false`, the request
6
+ * has `If-None-Match: *`, and S3 refuses it with 412 when the destination key exists.
7
+ *
8
+ * One CopyObject request copies an object of at most 5 GiB. A larger object needs a multipart
9
+ * copy, which this procedure does not do.
10
+ */
11
+ import type { S3CopyInput, S3CopyOutput } from "../../types.js";
12
+ /**
13
+ * The value of the header `x-amz-copy-source`: the bucket and the URL-encoded key, with the
14
+ * version id of the source when the input gives one.
15
+ */
16
+ export declare function copySource(bucket: string, key: string, versionId?: string): string;
17
+ /**
18
+ * Copy an object
19
+ */
20
+ export declare function s3Copy(input: S3CopyInput): Promise<S3CopyOutput>;
21
+ //# sourceMappingURL=copy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copy.d.ts","sourceRoot":"","sources":["../../../src/procedures/s3/copy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEhE;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAGlF;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAoBtE"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * s3.copy procedure (roadmap R44)
3
+ *
4
+ * Copy an object inside S3 (CopyObject): the bytes do not pass through the host. The copy
5
+ * replaces the object of the destination key, as S3 does. With `overwrite: false`, the request
6
+ * has `If-None-Match: *`, and S3 refuses it with 412 when the destination key exists.
7
+ *
8
+ * One CopyObject request copies an object of at most 5 GiB. A larger object needs a multipart
9
+ * copy, which this procedure does not do.
10
+ */
11
+ import { CopyObjectCommand } from "@aws-sdk/client-s3";
12
+ import { getS3Client } from "../../s3-client.js";
13
+ /**
14
+ * The value of the header `x-amz-copy-source`: the bucket and the URL-encoded key, with the
15
+ * version id of the source when the input gives one.
16
+ */
17
+ export function copySource(bucket, key, versionId) {
18
+ const encodedKey = key.split("/").map(encodeURIComponent).join("/");
19
+ return `${bucket}/${encodedKey}${versionId ? `?versionId=${encodeURIComponent(versionId)}` : ""}`;
20
+ }
21
+ /**
22
+ * Copy an object
23
+ */
24
+ export async function s3Copy(input) {
25
+ const replace = input.contentType !== undefined || input.metadata !== undefined;
26
+ const response = await getS3Client().send(new CopyObjectCommand({
27
+ Bucket: input.bucket,
28
+ Key: input.key,
29
+ CopySource: copySource(input.sourceBucket ?? input.bucket, input.sourceKey, input.sourceVersionId),
30
+ ...(input.overwrite === false ? { IfNoneMatch: "*" } : {}),
31
+ ...(replace ? { MetadataDirective: "REPLACE", ContentType: input.contentType, Metadata: input.metadata } : {}),
32
+ }));
33
+ const output = {
34
+ etag: response.CopyObjectResult?.ETag?.replace(/"/g, "") ?? "",
35
+ location: `s3://${input.bucket}/${input.key}`,
36
+ };
37
+ const lastModified = response.CopyObjectResult?.LastModified;
38
+ if (lastModified !== undefined)
39
+ output.lastModified = lastModified.toISOString();
40
+ if (response.VersionId !== undefined)
41
+ output.versionId = response.VersionId;
42
+ if (response.CopySourceVersionId !== undefined)
43
+ output.sourceVersionId = response.CopySourceVersionId;
44
+ return output;
45
+ }
46
+ //# sourceMappingURL=copy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copy.js","sourceRoot":"","sources":["../../../src/procedures/s3/copy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,MAAc,EAAE,GAAW,EAAE,SAAkB;IACxE,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpE,OAAO,GAAG,MAAM,IAAI,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,cAAc,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACpG,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,KAAkB;IAC7C,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC;IAChF,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC,IAAI,CACvC,IAAI,iBAAiB,CAAC;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,eAAe,CAAC;QAClG,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,SAAkB,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxH,CAAC,CACH,CAAC;IACF,MAAM,MAAM,GAAiB;QAC3B,IAAI,EAAE,QAAQ,CAAC,gBAAgB,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE;QAC9D,QAAQ,EAAE,QAAQ,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,EAAE;KAC9C,CAAC;IACF,MAAM,YAAY,GAAG,QAAQ,CAAC,gBAAgB,EAAE,YAAY,CAAC;IAC7D,IAAI,YAAY,KAAK,SAAS;QAAE,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;IACjF,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS;QAAE,MAAM,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;IAC5E,IAAI,QAAQ,CAAC,mBAAmB,KAAK,SAAS;QAAE,MAAM,CAAC,eAAe,GAAG,QAAQ,CAAC,mBAAmB,CAAC;IACtG,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * s3.head procedure (roadmap R44)
3
+ *
4
+ * The metadata of an object, without its content (a HEAD request). A 404 gives `exists: false`.
5
+ * A HEAD response has no body, so S3 cannot tell a missing key from a missing bucket: the two
6
+ * give `exists: false`.
7
+ */
8
+ import type { S3HeadInput, S3HeadOutput } from "../../types.js";
9
+ /**
10
+ * The metadata of an object
11
+ */
12
+ export declare function s3Head(input: S3HeadInput): Promise<S3HeadOutput>;
13
+ //# sourceMappingURL=head.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"head.d.ts","sourceRoot":"","sources":["../../../src/procedures/s3/head.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAQhE;;GAEG;AACH,wBAAsB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAiBtE"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * s3.head procedure (roadmap R44)
3
+ *
4
+ * The metadata of an object, without its content (a HEAD request). A 404 gives `exists: false`.
5
+ * A HEAD response has no body, so S3 cannot tell a missing key from a missing bucket: the two
6
+ * give `exists: false`.
7
+ */
8
+ import { HeadObjectCommand } from "@aws-sdk/client-s3";
9
+ import { getS3Client } from "../../s3-client.js";
10
+ /** True for the answer 404 of S3: the SDK names it `NotFound` (or `NoSuchKey`). */
11
+ function isNotFound(error) {
12
+ const failure = error;
13
+ return failure.name === "NotFound" || failure.name === "NoSuchKey" || failure.$metadata?.httpStatusCode === 404;
14
+ }
15
+ /**
16
+ * The metadata of an object
17
+ */
18
+ export async function s3Head(input) {
19
+ let response;
20
+ try {
21
+ response = await getS3Client().send(new HeadObjectCommand({ Bucket: input.bucket, Key: input.key, VersionId: input.versionId }));
22
+ }
23
+ catch (error) {
24
+ if (isNotFound(error))
25
+ return { exists: false };
26
+ throw error;
27
+ }
28
+ const output = { exists: true };
29
+ if (response.ContentLength !== undefined)
30
+ output.contentLength = response.ContentLength;
31
+ if (response.ContentType !== undefined)
32
+ output.contentType = response.ContentType;
33
+ if (response.ETag !== undefined)
34
+ output.etag = response.ETag.replace(/"/g, "");
35
+ if (response.LastModified !== undefined)
36
+ output.lastModified = response.LastModified.toISOString();
37
+ if (response.VersionId !== undefined)
38
+ output.versionId = response.VersionId;
39
+ if (response.StorageClass !== undefined)
40
+ output.storageClass = response.StorageClass;
41
+ if (response.Metadata !== undefined)
42
+ output.metadata = response.Metadata;
43
+ return output;
44
+ }
45
+ //# sourceMappingURL=head.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"head.js","sourceRoot":"","sources":["../../../src/procedures/s3/head.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,mFAAmF;AACnF,SAAS,UAAU,CAAC,KAAc;IAChC,MAAM,OAAO,GAAG,KAAmE,CAAC;IACpF,OAAO,OAAO,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,SAAS,EAAE,cAAc,KAAK,GAAG,CAAC;AAClH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,KAAkB;IAC7C,IAAI,QAAQ,CAAC;IACb,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACnI,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAChD,MAAM,KAAK,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAiB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC9C,IAAI,QAAQ,CAAC,aAAa,KAAK,SAAS;QAAE,MAAM,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC;IACxF,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS;QAAE,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;IAClF,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS;QAAE,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC/E,IAAI,QAAQ,CAAC,YAAY,KAAK,SAAS;QAAE,MAAM,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;IACnG,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS;QAAE,MAAM,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;IAC5E,IAAI,QAAQ,CAAC,YAAY,KAAK,SAAS;QAAE,MAAM,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;IACrF,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS;QAAE,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;IACzE,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -10,4 +10,7 @@ export { s3MultipartInit } from "./multipart-init.js";
10
10
  export { s3MultipartUpload } from "./multipart-upload.js";
11
11
  export { s3MultipartComplete } from "./multipart-complete.js";
12
12
  export { s3MultipartAbort } from "./multipart-abort.js";
13
+ export { s3Head } from "./head.js";
14
+ export { s3Copy } from "./copy.js";
15
+ export { s3Presign } from "./presign.js";
13
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/procedures/s3/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/procedures/s3/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
@@ -10,4 +10,7 @@ export { s3MultipartInit } from "./multipart-init.js";
10
10
  export { s3MultipartUpload } from "./multipart-upload.js";
11
11
  export { s3MultipartComplete } from "./multipart-complete.js";
12
12
  export { s3MultipartAbort } from "./multipart-abort.js";
13
+ export { s3Head } from "./head.js";
14
+ export { s3Copy } from "./copy.js";
15
+ export { s3Presign } from "./presign.js";
13
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/procedures/s3/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/procedures/s3/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * s3.presign procedure (roadmap R44)
3
+ *
4
+ * A presigned URL for a GET (download) or a PUT (upload) of one object. The procedure signs the
5
+ * URL with the credentials of the S3 client (Signature Version 4). It sends no request to S3.
6
+ *
7
+ * Effects: the procedure changes nothing. It reads the credentials: the environment, the AWS
8
+ * files of the host, or the instance metadata service of the default credential chain. So it
9
+ * declares `reads: ["fs", "network"]` and `writes: []`.
10
+ *
11
+ * A PUT URL lets its holder write the object without the host. So a call that cannot change S3
12
+ * (its capability does not permit the writes of `s3.upload`, or permits no destructive call)
13
+ * gets no PUT URL: the procedure refuses it with FORBIDDEN.
14
+ */
15
+ import { type Capability } from "@procedures/client";
16
+ import type { S3PresignInput, S3PresignOutput } from "../../types.js";
17
+ /** The default expiry of a presigned URL: 15 minutes. */
18
+ export declare const DEFAULT_PRESIGN_SECONDS = 900;
19
+ /** True when a capability permits the writes of an upload. No capability: no limit. */
20
+ export declare function permitsUpload(capability: Capability | undefined): boolean;
21
+ /**
22
+ * A presigned URL for a GET or a PUT of an object
23
+ */
24
+ export declare function s3Presign(input: S3PresignInput, capability?: Capability): Promise<S3PresignOutput>;
25
+ //# sourceMappingURL=presign.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presign.d.ts","sourceRoot":"","sources":["../../../src/procedures/s3/presign.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAAmB,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtE,yDAAyD;AACzD,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAK3C,uFAAuF;AACvF,wBAAgB,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAMzE;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,cAAc,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,CAoBxG"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * s3.presign procedure (roadmap R44)
3
+ *
4
+ * A presigned URL for a GET (download) or a PUT (upload) of one object. The procedure signs the
5
+ * URL with the credentials of the S3 client (Signature Version 4). It sends no request to S3.
6
+ *
7
+ * Effects: the procedure changes nothing. It reads the credentials: the environment, the AWS
8
+ * files of the host, or the instance metadata service of the default credential chain. So it
9
+ * declares `reads: ["fs", "network"]` and `writes: []`.
10
+ *
11
+ * A PUT URL lets its holder write the object without the host. So a call that cannot change S3
12
+ * (its capability does not permit the writes of `s3.upload`, or permits no destructive call)
13
+ * gets no PUT URL: the procedure refuses it with FORBIDDEN.
14
+ */
15
+ import { GetObjectCommand, PutObjectCommand } from "@aws-sdk/client-s3";
16
+ import { getSignedUrl } from "@aws-sdk/s3-request-presigner";
17
+ import { InvocationError } from "@procedures/client";
18
+ import { getS3Client } from "../../s3-client.js";
19
+ /** The default expiry of a presigned URL: 15 minutes. */
20
+ export const DEFAULT_PRESIGN_SECONDS = 900;
21
+ /** The writes of `s3.upload`: a capability must permit them for a PUT URL. */
22
+ const UPLOAD_WRITES = ["s3", "network"];
23
+ /** True when a capability permits the writes of an upload. No capability: no limit. */
24
+ export function permitsUpload(capability) {
25
+ const permitted = capability?.effects;
26
+ if (!permitted)
27
+ return true;
28
+ if (permitted.destructive === false)
29
+ return false;
30
+ const writes = permitted.writes;
31
+ return writes === undefined || writes === "any" || UPLOAD_WRITES.every((name) => writes.includes(name));
32
+ }
33
+ /**
34
+ * A presigned URL for a GET or a PUT of an object
35
+ */
36
+ export async function s3Presign(input, capability) {
37
+ const method = input.method ?? "GET";
38
+ const expiresIn = input.expiresIn ?? DEFAULT_PRESIGN_SECONDS;
39
+ if (method === "PUT" && !permitsUpload(capability)) {
40
+ throw new InvocationError("FORBIDDEN", "s3.presign: a PUT URL lets its holder write the object, and this call cannot change s3", ["s3", "presign"], "effects-exceeded");
41
+ }
42
+ const command = method === "PUT"
43
+ ? new PutObjectCommand({ Bucket: input.bucket, Key: input.key, ContentType: input.contentType })
44
+ : new GetObjectCommand({ Bucket: input.bucket, Key: input.key, VersionId: input.versionId });
45
+ // The time of the signature: the URL expires expiresIn seconds after it
46
+ const signedAt = new Date();
47
+ signedAt.setMilliseconds(0);
48
+ const url = await getSignedUrl(getS3Client(), command, { expiresIn, signingDate: signedAt });
49
+ return { url, method, expiresIn, expiresAt: new Date(signedAt.getTime() + expiresIn * 1000).toISOString() };
50
+ }
51
+ //# sourceMappingURL=presign.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presign.js","sourceRoot":"","sources":["../../../src/procedures/s3/presign.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAmB,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,yDAAyD;AACzD,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAE3C,8EAA8E;AAC9E,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAExC,uFAAuF;AACvF,MAAM,UAAU,aAAa,CAAC,UAAkC;IAC9D,MAAM,SAAS,GAAG,UAAU,EAAE,OAAO,CAAC;IACtC,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,IAAI,SAAS,CAAC,WAAW,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IAClD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IAChC,OAAO,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,KAAK,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1G,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,KAAqB,EAAE,UAAuB;IAC5E,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC;IACrC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,uBAAuB,CAAC;IAC7D,IAAI,MAAM,KAAK,KAAK,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,eAAe,CACvB,WAAW,EACX,wFAAwF,EACxF,CAAC,IAAI,EAAE,SAAS,CAAC,EACjB,kBAAkB,CACnB,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GACX,MAAM,KAAK,KAAK;QACd,CAAC,CAAC,IAAI,gBAAgB,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;QAChG,CAAC,CAAC,IAAI,gBAAgB,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;IACjG,wEAAwE;IACxE,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;IAC5B,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC7F,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;AAC9G,CAAC"}
package/dist/types.d.ts CHANGED
@@ -195,4 +195,86 @@ export declare const S3MultipartInitOutputSchema: z.ZodType<S3MultipartInitOutpu
195
195
  export declare const S3MultipartUploadOutputSchema: z.ZodType<S3MultipartUploadOutput>;
196
196
  export declare const S3MultipartCompleteOutputSchema: z.ZodType<S3MultipartCompleteOutput>;
197
197
  export declare const S3MultipartAbortOutputSchema: z.ZodType<S3MultipartAbortOutput>;
198
+ export interface S3HeadInput {
199
+ /** The bucket */
200
+ bucket: string;
201
+ /** The object key */
202
+ key: string;
203
+ /** A version of the object (default: the current version) */
204
+ versionId?: string | undefined;
205
+ }
206
+ export interface S3HeadOutput {
207
+ /** False when S3 answers 404: the key or the bucket does not exist */
208
+ exists: boolean;
209
+ /** The size of the object, in bytes */
210
+ contentLength?: number | undefined;
211
+ contentType?: string | undefined;
212
+ /** The ETag, without quotes */
213
+ etag?: string | undefined;
214
+ /** The time of the last change (ISO 8601) */
215
+ lastModified?: string | undefined;
216
+ versionId?: string | undefined;
217
+ storageClass?: string | undefined;
218
+ /** The user metadata of the object */
219
+ metadata?: Record<string, string> | undefined;
220
+ }
221
+ export declare const S3HeadInputSchema: z.ZodType<S3HeadInput>;
222
+ export declare const S3HeadOutputSchema: z.ZodType<S3HeadOutput>;
223
+ export interface S3CopyInput {
224
+ /** The bucket of the source (default: the bucket of the destination) */
225
+ sourceBucket?: string | undefined;
226
+ /** The key of the source */
227
+ sourceKey: string;
228
+ /** A version of the source (default: the current version) */
229
+ sourceVersionId?: string | undefined;
230
+ /** The bucket of the destination */
231
+ bucket: string;
232
+ /** The key of the destination */
233
+ key: string;
234
+ /** False: S3 refuses the copy when the destination key exists. The default is true. */
235
+ overwrite?: boolean | undefined;
236
+ /** A new content type. With it or with metadata, the copy replaces the metadata of the source. */
237
+ contentType?: string | undefined;
238
+ /** New user metadata. With it or with contentType, the copy replaces the metadata of the source. */
239
+ metadata?: Record<string, string> | undefined;
240
+ }
241
+ export interface S3CopyOutput {
242
+ /** The ETag of the copy, without quotes */
243
+ etag: string;
244
+ /** The time of the last change of the copy (ISO 8601) */
245
+ lastModified?: string | undefined;
246
+ /** The version id of the copy, when the bucket has versioning */
247
+ versionId?: string | undefined;
248
+ /** The version id of the source, when its bucket has versioning */
249
+ sourceVersionId?: string | undefined;
250
+ /** The S3 URI of the copy */
251
+ location: string;
252
+ }
253
+ export declare const S3CopyInputSchema: z.ZodType<S3CopyInput>;
254
+ export declare const S3CopyOutputSchema: z.ZodType<S3CopyOutput>;
255
+ /** The longest expiry of a presigned URL: 7 days, the limit of Signature Version 4. */
256
+ export declare const MAX_PRESIGN_SECONDS: number;
257
+ export interface S3PresignInput {
258
+ bucket: string;
259
+ key: string;
260
+ /** GET (download) or PUT (upload). The default is GET. */
261
+ method?: "GET" | "PUT" | undefined;
262
+ /** The seconds until the URL expires (default 900, the most 604800) */
263
+ expiresIn?: number | undefined;
264
+ /** PUT only: the content type that the upload must send */
265
+ contentType?: string | undefined;
266
+ /** GET only: a version of the object */
267
+ versionId?: string | undefined;
268
+ }
269
+ export interface S3PresignOutput {
270
+ /** The presigned URL */
271
+ url: string;
272
+ method: "GET" | "PUT";
273
+ /** The seconds until the URL expires */
274
+ expiresIn: number;
275
+ /** The time at which the URL expires (ISO 8601) */
276
+ expiresAt: string;
277
+ }
278
+ export declare const S3PresignInputSchema: z.ZodType<S3PresignInput>;
279
+ export declare const S3PresignOutputSchema: z.ZodType<S3PresignOutput>;
198
280
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -194,4 +194,58 @@ export const S3MultipartCompleteOutputSchema = z.looseObject({
194
194
  export const S3MultipartAbortOutputSchema = z.looseObject({
195
195
  aborted: z.boolean().describe("True when the upload was aborted"),
196
196
  });
197
+ export const S3HeadInputSchema = z.object({
198
+ bucket: z.string().min(1).describe("The bucket"),
199
+ key: z.string().min(1).describe("The object key"),
200
+ versionId: z.string().optional().describe("A version of the object (default: the current version)"),
201
+ });
202
+ export const S3HeadOutputSchema = z.looseObject({
203
+ exists: z.boolean().describe("False when S3 answers 404: the key or the bucket does not exist"),
204
+ contentLength: z.number().optional().describe("The size of the object, in bytes"),
205
+ contentType: z.string().optional().describe("The content type"),
206
+ etag: z.string().optional().describe("The ETag of the object, without quotes"),
207
+ lastModified: z.string().optional().describe("The time of the last change (ISO 8601)"),
208
+ versionId: z.string().optional().describe("The version id, when the bucket has versioning"),
209
+ storageClass: z.string().optional().describe("The storage class (S3 gives none for STANDARD)"),
210
+ metadata: z.record(z.string(), z.string()).optional().describe("The user metadata of the object"),
211
+ });
212
+ export const S3CopyInputSchema = z.object({
213
+ sourceBucket: z.string().min(1).optional().describe("The bucket of the source (default: the bucket of the destination)"),
214
+ sourceKey: z.string().min(1).describe("The key of the source"),
215
+ sourceVersionId: z.string().optional().describe("A version of the source (default: the current version)"),
216
+ bucket: z.string().min(1).describe("The bucket of the destination"),
217
+ key: z.string().min(1).describe("The key of the destination"),
218
+ overwrite: z.boolean().optional().describe("False: S3 refuses the copy when the destination key exists. The default is true."),
219
+ contentType: z.string().optional().describe("A new content type: the copy then replaces the metadata of the source"),
220
+ metadata: z.record(z.string(), z.string()).optional().describe("New user metadata: the copy then replaces the metadata of the source"),
221
+ });
222
+ export const S3CopyOutputSchema = z.looseObject({
223
+ etag: z.string().describe("The ETag of the copy, without quotes"),
224
+ lastModified: z.string().optional().describe("The time of the last change of the copy (ISO 8601)"),
225
+ versionId: z.string().optional().describe("The version id of the copy, when the bucket has versioning"),
226
+ sourceVersionId: z.string().optional().describe("The version id of the source, when its bucket has versioning"),
227
+ location: z.string().describe("The S3 URI of the copy (s3://bucket/key)"),
228
+ });
229
+ /** The longest expiry of a presigned URL: 7 days, the limit of Signature Version 4. */
230
+ export const MAX_PRESIGN_SECONDS = 7 * 24 * 60 * 60;
231
+ export const S3PresignInputSchema = z.object({
232
+ bucket: z.string().min(1).describe("The bucket"),
233
+ key: z.string().min(1).describe("The object key"),
234
+ method: z.enum(["GET", "PUT"]).optional().describe("GET (download) or PUT (upload). The default is GET."),
235
+ expiresIn: z
236
+ .number()
237
+ .int()
238
+ .min(1)
239
+ .max(MAX_PRESIGN_SECONDS)
240
+ .optional()
241
+ .describe(`The seconds until the URL expires (default 900, the most ${MAX_PRESIGN_SECONDS})`),
242
+ contentType: z.string().optional().describe("PUT only: the content type that the upload must send"),
243
+ versionId: z.string().optional().describe("GET only: a version of the object"),
244
+ });
245
+ export const S3PresignOutputSchema = z.looseObject({
246
+ url: z.string().describe("The presigned URL"),
247
+ method: z.enum(["GET", "PUT"]).describe("The HTTP method of the URL"),
248
+ expiresIn: z.number().describe("The seconds until the URL expires"),
249
+ expiresAt: z.string().describe("The time at which the URL expires (ISO 8601)"),
250
+ });
197
251
  //# sourceMappingURL=types.js.map