@procedures/s3 0.9.0 → 0.9.1
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/CHANGELOG.md +16 -0
- package/README.md +6 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +12 -0
- package/dist/module.js.map +1 -1
- package/package.json +3 -2
- package/src/module.ts +16 -1
package/dist/module.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAA+D,KAAK,eAAe,EAAuC,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAqRpL;;;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
|
@@ -32,6 +32,16 @@ const s3UploadProcedure = createProcedure()
|
|
|
32
32
|
return s3Upload(input);
|
|
33
33
|
})
|
|
34
34
|
.build();
|
|
35
|
+
// =============================================================================
|
|
36
|
+
// The rules under a root of the files (roadmap R33, tracker item O36)
|
|
37
|
+
// =============================================================================
|
|
38
|
+
/** `s3.download`: under a root, the file of `destPath` is in the root. Without it, the object stays in memory. */
|
|
39
|
+
const DOWNLOAD_IN_A_ROOT = { paths: ["destPath"] };
|
|
40
|
+
/**
|
|
41
|
+
* `s3.presign`: no input names a file. Its file reads are the AWS credentials of the host, as for
|
|
42
|
+
* each `s3.*` procedure, so a root has nothing to examine.
|
|
43
|
+
*/
|
|
44
|
+
const PRESIGN_IN_A_ROOT = {};
|
|
35
45
|
const s3DownloadProcedure = createProcedure()
|
|
36
46
|
.path(["s3", "download"])
|
|
37
47
|
.input(zodAdapter(S3DownloadInputSchema))
|
|
@@ -40,6 +50,7 @@ const s3DownloadProcedure = createProcedure()
|
|
|
40
50
|
description: "Download content from S3 bucket",
|
|
41
51
|
// With destPath, it replaces the file at that path
|
|
42
52
|
effects: { reads: ["s3", "network"], writes: ["fs"], idempotent: true },
|
|
53
|
+
fsRoot: DOWNLOAD_IN_A_ROOT,
|
|
43
54
|
shorts: { bucket: "b", key: "k", encoding: "e" },
|
|
44
55
|
output: "json",
|
|
45
56
|
})
|
|
@@ -185,6 +196,7 @@ const s3PresignProcedure = createProcedure()
|
|
|
185
196
|
// host (fs) or the instance metadata service (network). A call that cannot change s3 gets no
|
|
186
197
|
// PUT URL (see presign.ts).
|
|
187
198
|
effects: { reads: ["fs", "network"], writes: [] },
|
|
199
|
+
fsRoot: PRESIGN_IN_A_ROOT,
|
|
188
200
|
shorts: { bucket: "b", key: "k", method: "m", expiresIn: "e" },
|
|
189
201
|
output: "json",
|
|
190
202
|
})
|
package/dist/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package",
|
|
3
3
|
"name": "@procedures/s3",
|
|
4
|
-
"version": "0.9.
|
|
4
|
+
"version": "0.9.1",
|
|
5
5
|
"description": "AWS S3 as typed procedures: upload, download with safe part files, list, head, copy, presigned URLs, delete and multipart uploads.",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"s3",
|
|
@@ -62,10 +62,11 @@
|
|
|
62
62
|
"dependencies": {
|
|
63
63
|
"@aws-sdk/client-s3": "^3.705.0",
|
|
64
64
|
"@aws-sdk/s3-request-presigner": "3.1147.0",
|
|
65
|
-
"@procedures/client": "0.9.
|
|
65
|
+
"@procedures/client": "0.9.1",
|
|
66
66
|
"zod": "^4.6.5"
|
|
67
67
|
},
|
|
68
68
|
"devDependencies": {
|
|
69
|
+
"@procedures/fs": "0.9.1",
|
|
69
70
|
"typescript": "^7.0.2",
|
|
70
71
|
"@types/node": "^22.0.0",
|
|
71
72
|
"@mark1russell7/cue": "^1.0.0",
|
package/src/module.ts
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* Credentials are loaded from environment variables (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY).
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import { createProcedure, zodAdapter, defineModule, type ProcedureModule, PROCEDURE_REGISTRY, registerModules, type ProcedureRegistry } from "@procedures/client";
|
|
11
|
+
import { createProcedure, zodAdapter, defineModule, type FsRootRules, type ProcedureModule, PROCEDURE_REGISTRY, registerModules, type ProcedureRegistry } from "@procedures/client";
|
|
12
12
|
import {
|
|
13
13
|
s3Upload,
|
|
14
14
|
s3Download,
|
|
@@ -96,6 +96,19 @@ const s3UploadProcedure = createProcedure()
|
|
|
96
96
|
})
|
|
97
97
|
.build();
|
|
98
98
|
|
|
99
|
+
// =============================================================================
|
|
100
|
+
// The rules under a root of the files (roadmap R33, tracker item O36)
|
|
101
|
+
// =============================================================================
|
|
102
|
+
|
|
103
|
+
/** `s3.download`: under a root, the file of `destPath` is in the root. Without it, the object stays in memory. */
|
|
104
|
+
const DOWNLOAD_IN_A_ROOT: FsRootRules = { paths: ["destPath"] };
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* `s3.presign`: no input names a file. Its file reads are the AWS credentials of the host, as for
|
|
108
|
+
* each `s3.*` procedure, so a root has nothing to examine.
|
|
109
|
+
*/
|
|
110
|
+
const PRESIGN_IN_A_ROOT: FsRootRules = {};
|
|
111
|
+
|
|
99
112
|
const s3DownloadProcedure = createProcedure()
|
|
100
113
|
.path(["s3", "download"])
|
|
101
114
|
.input(zodAdapter<S3DownloadInput>(S3DownloadInputSchema))
|
|
@@ -104,6 +117,7 @@ const s3DownloadProcedure = createProcedure()
|
|
|
104
117
|
description: "Download content from S3 bucket",
|
|
105
118
|
// With destPath, it replaces the file at that path
|
|
106
119
|
effects: { reads: ["s3", "network"], writes: ["fs"], idempotent: true },
|
|
120
|
+
fsRoot: DOWNLOAD_IN_A_ROOT,
|
|
107
121
|
shorts: { bucket: "b", key: "k", encoding: "e" },
|
|
108
122
|
output: "json",
|
|
109
123
|
})
|
|
@@ -260,6 +274,7 @@ const s3PresignProcedure = createProcedure()
|
|
|
260
274
|
// host (fs) or the instance metadata service (network). A call that cannot change s3 gets no
|
|
261
275
|
// PUT URL (see presign.ts).
|
|
262
276
|
effects: { reads: ["fs", "network"], writes: [] },
|
|
277
|
+
fsRoot: PRESIGN_IN_A_ROOT,
|
|
263
278
|
shorts: { bucket: "b", key: "k", method: "m", expiresIn: "e" },
|
|
264
279
|
output: "json",
|
|
265
280
|
})
|