@beignet/provider-storage-s3 0.0.1 → 0.0.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,34 @@
1
1
  # @beignet/provider-storage-s3
2
2
 
3
+ ## 0.0.3
4
+
5
+ ### Patch Changes
6
+
7
+ - 4cb1784: Add first-class upload router primitives, a typed browser upload client, a
8
+ React upload adapter, Next.js upload route helper, S3-compatible direct upload
9
+ signing, devtools upload watcher support, an upload generator, and a
10
+ first-class `beignet make feature` command with optional policy, event, job,
11
+ and upload artifacts for the standard vertical slice. Add first-class job retry
12
+ helpers, outbox retry policy integration, and job retry/dead-letter devtools
13
+ events. Add a Next.js outbox drain route helper and doctor warnings for
14
+ serverless background-work footguns.
15
+ - Updated dependencies [3160184]
16
+ - Updated dependencies [254ef6d]
17
+ - Updated dependencies [4cb1784]
18
+ - Updated dependencies [8bd9085]
19
+ - @beignet/core@0.0.3
20
+
21
+ ## 0.0.2
22
+
23
+ ### Patch Changes
24
+
25
+ - Updated dependencies [90b29ad]
26
+ - Updated dependencies [07fa19c]
27
+ - Updated dependencies [08bae67]
28
+ - Updated dependencies [730a818]
29
+ - Updated dependencies [a79f60c]
30
+ - @beignet/core@0.0.2
31
+
3
32
  ## 0.0.1
4
33
 
5
34
  - Initial Beignet release under the `@beignet` npm scope.
package/README.md CHANGED
@@ -96,6 +96,35 @@ const object = await ctx.ports.storage.get("avatars/user_123.png");
96
96
  const url = await ctx.ports.storage.publicUrl("avatars/user_123.png");
97
97
  ```
98
98
 
99
+ ## Direct upload signer
100
+
101
+ Use `createS3UploadSigner(...)` with `@beignet/core/uploads` when browsers
102
+ should upload directly to S3 or an S3-compatible service:
103
+
104
+ ```typescript
105
+ import { createUploadRouter } from "@beignet/core/uploads";
106
+ import { createS3UploadSigner } from "@beignet/provider-storage-s3";
107
+
108
+ const uploadRouter = createUploadRouter({
109
+ uploads: postUploads,
110
+ ctx: () => server.createContextFromNext(),
111
+ storage: server.ports.storage,
112
+ signer: createS3UploadSigner({
113
+ bucket: "my-app-assets",
114
+ region: "auto",
115
+ endpoint: "https://<account-id>.r2.cloudflarestorage.com",
116
+ credentials: {
117
+ accessKeyId: process.env.R2_ACCESS_KEY_ID!,
118
+ secretAccessKey: process.env.R2_SECRET_ACCESS_KEY!,
119
+ },
120
+ keyPrefix: "production",
121
+ }),
122
+ });
123
+ ```
124
+
125
+ The signer returns presigned PUT URLs with the content type, cache control, and
126
+ Beignet storage metadata headers the browser must send.
127
+
99
128
  ## Visibility
100
129
 
101
130
  `visibility` is stored as reserved object metadata so `publicUrl(...)` can
@@ -132,9 +161,10 @@ helpers apply the configured `STORAGE_S3_KEY_PREFIX`.
132
161
  ## Devtools
133
162
 
134
163
  When `ctx.ports.devtools` is installed, the provider records storage
135
- operations under the `storage` watcher. Events include operation name, key,
136
- bucket, duration, object size, visibility, and whether a lookup hit. Object
137
- bodies and metadata values are never recorded.
164
+ operations under the `storage` watcher and direct upload signing under the
165
+ `uploads` watcher. Events include operation name, key, bucket, duration, object
166
+ size, visibility, and whether a lookup hit. Object bodies and metadata values
167
+ are never recorded.
138
168
 
139
169
  ## License
140
170
 
package/dist/index.d.ts CHANGED
@@ -1,7 +1,11 @@
1
- import { S3Client, type S3ClientConfig } from "@aws-sdk/client-s3";
1
+ import { PutObjectCommand, S3Client, type S3ClientConfig } from "@aws-sdk/client-s3";
2
2
  import type { StoragePort } from "@beignet/core/ports";
3
3
  import { type ProviderInstrumentationTarget } from "@beignet/core/providers";
4
+ import type { UploadSignerPort } from "@beignet/core/uploads";
4
5
  import { z } from "zod";
6
+ /**
7
+ * Storage port types re-exported for S3 storage consumers.
8
+ */
5
9
  export type { StorageBody, StorageMetadata, StorageObject, StorageObjectBody, StoragePort, StorageVisibility, } from "@beignet/core/ports";
6
10
  declare const S3StorageConfigSchema: z.ZodObject<{
7
11
  BUCKET: z.ZodString;
@@ -17,8 +21,17 @@ declare const S3StorageConfigSchema: z.ZodObject<{
17
21
  }>, z.ZodTransform<boolean, "true" | "false">>>;
18
22
  KEY_PREFIX: z.ZodOptional<z.ZodString>;
19
23
  }, z.core.$strip>;
24
+ /**
25
+ * S3 storage provider config loaded from `STORAGE_S3_*` env vars.
26
+ */
20
27
  export type S3StorageConfig = z.infer<typeof S3StorageConfigSchema>;
28
+ /**
29
+ * Minimal S3-compatible client shape required by this provider.
30
+ */
21
31
  export type S3StorageClient = Pick<S3Client, "send">;
32
+ /**
33
+ * Options for creating an S3-compatible storage port directly.
34
+ */
22
35
  export interface S3StorageOptions {
23
36
  /**
24
37
  * S3 bucket name.
@@ -69,6 +82,32 @@ export interface S3StorageOptions {
69
82
  */
70
83
  instrumentation?: ProviderInstrumentationTarget;
71
84
  }
85
+ /**
86
+ * Options for creating an S3-compatible direct upload signer.
87
+ */
88
+ export interface S3UploadSignerOptions extends S3StorageOptions {
89
+ /**
90
+ * Number of seconds before generated direct upload URLs expire.
91
+ *
92
+ * @default 900
93
+ */
94
+ expiresInSeconds?: number;
95
+ /**
96
+ * Clock used for deterministic tests.
97
+ */
98
+ now?: () => Date;
99
+ /**
100
+ * Test hook for replacing AWS SDK signing.
101
+ */
102
+ signUrl?: (args: {
103
+ client: S3StorageClient;
104
+ command: PutObjectCommand;
105
+ expiresInSeconds: number;
106
+ }) => Promise<string> | string;
107
+ }
108
+ /**
109
+ * Options for creating an env-backed S3-compatible storage provider.
110
+ */
72
111
  export interface S3StorageProviderOptions extends Omit<S3StorageOptions, "bucket" | "client" | "instrumentation"> {
73
112
  /**
74
113
  * Provider name. Defaults to "storage-s3".
@@ -83,9 +122,32 @@ export interface S3StorageProviderOptions extends Omit<S3StorageOptions, "bucket
83
122
  */
84
123
  createClient?: (config: S3StorageConfig) => S3StorageClient;
85
124
  }
125
+ /**
126
+ * Create a storage port backed by S3 or an S3-compatible object store.
127
+ *
128
+ * Supports AWS S3, Cloudflare R2, MinIO, Spaces, and similar stores by passing
129
+ * `endpoint`, `forcePathStyle`, credentials, and optional `keyPrefix`.
130
+ */
86
131
  export declare function createS3Storage(options: S3StorageOptions): StoragePort;
132
+ /**
133
+ * Create an S3-compatible direct upload signer.
134
+ *
135
+ * The signer creates presigned PUT URLs for AWS S3, Cloudflare R2, MinIO,
136
+ * Spaces, and similar object stores. Use it with `createUploadRouter(...)`
137
+ * from `@beignet/core/uploads`.
138
+ */
139
+ export declare function createS3UploadSigner(options: S3UploadSignerOptions): UploadSignerPort;
140
+ /**
141
+ * Ports contributed by the S3 storage provider.
142
+ */
87
143
  export interface S3StorageProviderPorts {
144
+ /**
145
+ * Beignet storage port backed by S3-compatible storage.
146
+ */
88
147
  storage: StoragePort;
148
+ /**
149
+ * Raw client and key helpers for escape-hatch integrations.
150
+ */
89
151
  s3Storage: {
90
152
  client: S3StorageClient;
91
153
  bucket: string;
@@ -94,6 +156,12 @@ export interface S3StorageProviderPorts {
94
156
  objectPrefix(prefix: string): string;
95
157
  };
96
158
  }
159
+ /**
160
+ * Create an env-backed S3-compatible storage provider.
161
+ *
162
+ * Reads `STORAGE_S3_*` env vars, contributes `ports.storage`, and exposes
163
+ * `ports.s3Storage` for raw client access and key-prefix helpers.
164
+ */
97
165
  export declare function createS3StorageProvider(options?: S3StorageProviderOptions): import("@beignet/core/providers").ServiceProvider<unknown, z.ZodObject<{
98
166
  ACCESS_KEY_ID: z.ZodOptional<z.ZodString>;
99
167
  SECRET_ACCESS_KEY: z.ZodOptional<z.ZodString>;
@@ -120,6 +188,9 @@ export declare function createS3StorageProvider(options?: S3StorageProviderOptio
120
188
  objectPrefix(prefix: string): string;
121
189
  };
122
190
  }>;
191
+ /**
192
+ * Default env-backed S3-compatible storage provider.
193
+ */
123
194
  export declare const s3StorageProvider: import("@beignet/core/providers").ServiceProvider<unknown, z.ZodObject<{
124
195
  ACCESS_KEY_ID: z.ZodOptional<z.ZodString>;
125
196
  SECRET_ACCESS_KEY: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,QAAQ,EACR,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAKV,WAAW,EAEZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAGL,KAAK,6BAA6B,EACnC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,YAAY,EACV,WAAW,EACX,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAQ7B,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;iBAUzB,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAErD,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;IAEzB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,WAAW,CAAC,EAAE;QACZ,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IAEF;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,YAAY,CAAC,EAAE,IAAI,CACjB,cAAc,EACd,QAAQ,GAAG,UAAU,GAAG,aAAa,GAAG,gBAAgB,CACzD,CAAC;IAEF;;;OAGG;IACH,eAAe,CAAC,EAAE,6BAA6B,CAAC;CACjD;AAED,MAAM,WAAW,wBACf,SAAQ,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,QAAQ,GAAG,iBAAiB,CAAC;IACvE;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,eAAe,CAAC;CAC7D;AAuWD,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,WAAW,CAmTtE;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,WAAW,CAAC;IACrB,SAAS,EAAE;QACT,MAAM,EAAE,eAAe,CAAC;QACxB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;QAC/B,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;KACtC,CAAC;CACH;AAED,wBAAgB,uBAAuB,CACrC,OAAO,GAAE,wBAA6B;;;;;;;;;;;;;;;;;;;;;;;;;GA+FvC;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;EAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,gBAAgB,EAChB,QAAQ,EACR,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAKV,WAAW,EAEZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAGL,KAAK,6BAA6B,EACnC,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,YAAY,EACV,WAAW,EACX,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAQ7B,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;iBAUzB,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;IAEzB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,WAAW,CAAC,EAAE;QACZ,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IAEF;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,YAAY,CAAC,EAAE,IAAI,CACjB,cAAc,EACd,QAAQ,GAAG,UAAU,GAAG,aAAa,GAAG,gBAAgB,CACzD,CAAC;IAEF;;;OAGG;IACH,eAAe,CAAC,EAAE,6BAA6B,CAAC;CACjD;AAED;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,gBAAgB;IAC7D;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE;QACf,MAAM,EAAE,eAAe,CAAC;QACxB,OAAO,EAAE,gBAAgB,CAAC;QAC1B,gBAAgB,EAAE,MAAM,CAAC;KAC1B,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,wBACf,SAAQ,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,QAAQ,GAAG,iBAAiB,CAAC;IACvE;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,eAAe,CAAC;CAC7D;AAgXD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,WAAW,CAmTtE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,qBAAqB,GAC7B,gBAAgB,CA0FlB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,OAAO,EAAE,WAAW,CAAC;IACrB;;OAEG;IACH,SAAS,EAAE;QACT,MAAM,EAAE,eAAe,CAAC;QACxB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;QAC/B,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;KACtC,CAAC;CACH;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,GAAE,wBAA6B;;;;;;;;;;;;;;;;;;;;;;;;;GA+FvC;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;EAA4B,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { Readable } from "node:stream";
2
2
  import { DeleteObjectCommand, GetObjectCommand, HeadObjectCommand, PutObjectCommand, S3Client, } from "@aws-sdk/client-s3";
3
+ import { getSignedUrl } from "@aws-sdk/s3-request-presigner";
3
4
  import { createProvider, createProviderInstrumentation, } from "@beignet/core/providers";
4
5
  import { z } from "zod";
5
6
  const visibilityMetadataKey = "beignet-visibility";
@@ -244,6 +245,12 @@ function metadataForPut(metadata, visibility) {
244
245
  [visibilityMetadataKey]: visibility,
245
246
  };
246
247
  }
248
+ function metadataHeaders(metadata) {
249
+ return Object.fromEntries(Object.entries(metadata).map(([key, value]) => [
250
+ `x-amz-meta-${key.toLowerCase()}`,
251
+ value,
252
+ ]));
253
+ }
247
254
  function objectFromHead(key, output) {
248
255
  return {
249
256
  key,
@@ -285,6 +292,12 @@ function createDefaultClient(options) {
285
292
  : {}),
286
293
  });
287
294
  }
295
+ /**
296
+ * Create a storage port backed by S3 or an S3-compatible object store.
297
+ *
298
+ * Supports AWS S3, Cloudflare R2, MinIO, Spaces, and similar stores by passing
299
+ * `endpoint`, `forcePathStyle`, credentials, and optional `keyPrefix`.
300
+ */
288
301
  export function createS3Storage(options) {
289
302
  const client = options.client ?? createDefaultClient(options);
290
303
  const keyPrefix = normalizeKeyPrefix(options.keyPrefix);
@@ -560,6 +573,99 @@ export function createS3Storage(options) {
560
573
  },
561
574
  };
562
575
  }
576
+ /**
577
+ * Create an S3-compatible direct upload signer.
578
+ *
579
+ * The signer creates presigned PUT URLs for AWS S3, Cloudflare R2, MinIO,
580
+ * Spaces, and similar object stores. Use it with `createUploadRouter(...)`
581
+ * from `@beignet/core/uploads`.
582
+ */
583
+ export function createS3UploadSigner(options) {
584
+ const client = options.client ?? createDefaultClient(options);
585
+ const keyPrefix = normalizeKeyPrefix(options.keyPrefix);
586
+ const expiresInSeconds = options.expiresInSeconds ?? 900;
587
+ const now = options.now ?? (() => new Date());
588
+ const instrumentation = createProviderInstrumentation(options.instrumentation, {
589
+ providerName: "storage-s3",
590
+ watcher: "uploads",
591
+ });
592
+ return {
593
+ async sign(args) {
594
+ const startedAt = Date.now();
595
+ const s3Key = objectKey(keyPrefix, args.key);
596
+ const metadata = metadataForPut(args.storage.metadata, args.storage.visibility);
597
+ const command = new PutObjectCommand({
598
+ Bucket: options.bucket,
599
+ Key: s3Key,
600
+ ContentType: args.file.contentType,
601
+ ...(args.storage.cacheControl !== undefined
602
+ ? { CacheControl: args.storage.cacheControl }
603
+ : {}),
604
+ Metadata: metadata,
605
+ });
606
+ try {
607
+ const url = await (options.signUrl
608
+ ? options.signUrl({ client, command, expiresInSeconds })
609
+ : getSignedUrl(client, command, {
610
+ expiresIn: expiresInSeconds,
611
+ }));
612
+ const expiresAt = new Date(now().getTime() + expiresInSeconds * 1000).toISOString();
613
+ instrumentation.custom({
614
+ name: "upload.sign.completed",
615
+ label: "Upload signed",
616
+ summary: args.uploadName,
617
+ details: {
618
+ provider: "s3",
619
+ uploadName: args.uploadName,
620
+ uploadId: args.uploadId,
621
+ key: args.key,
622
+ s3Key,
623
+ bucket: options.bucket,
624
+ contentType: args.file.contentType,
625
+ expiresInSeconds,
626
+ durationMs: Date.now() - startedAt,
627
+ },
628
+ });
629
+ return {
630
+ method: "PUT",
631
+ url,
632
+ headers: {
633
+ "content-type": args.file.contentType,
634
+ ...(args.storage.cacheControl !== undefined
635
+ ? { "cache-control": args.storage.cacheControl }
636
+ : {}),
637
+ ...metadataHeaders(metadata),
638
+ },
639
+ expiresAt,
640
+ };
641
+ }
642
+ catch (error) {
643
+ instrumentation.custom({
644
+ name: "upload.sign.failed",
645
+ label: "Upload sign failed",
646
+ summary: args.uploadName,
647
+ details: {
648
+ provider: "s3",
649
+ uploadName: args.uploadName,
650
+ uploadId: args.uploadId,
651
+ key: args.key,
652
+ s3Key,
653
+ bucket: options.bucket,
654
+ durationMs: Date.now() - startedAt,
655
+ error: errorMessage(error),
656
+ },
657
+ });
658
+ throw error;
659
+ }
660
+ },
661
+ };
662
+ }
663
+ /**
664
+ * Create an env-backed S3-compatible storage provider.
665
+ *
666
+ * Reads `STORAGE_S3_*` env vars, contributes `ports.storage`, and exposes
667
+ * `ports.s3Storage` for raw client access and key-prefix helpers.
668
+ */
563
669
  export function createS3StorageProvider(options = {}) {
564
670
  const ConfigSchema = S3StorageConfigSchema.extend({
565
671
  BUCKET: options.bucket !== undefined
@@ -639,5 +745,8 @@ export function createS3StorageProvider(options = {}) {
639
745
  },
640
746
  });
641
747
  }
748
+ /**
749
+ * Default env-backed S3-compatible storage provider.
750
+ */
642
751
  export const s3StorageProvider = createS3StorageProvider();
643
752
  //# 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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@beignet/provider-storage-s3",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "type": "module",
5
5
  "description": "S3-compatible object storage provider for Beignet",
6
6
  "main": "./dist/index.js",
@@ -55,8 +55,9 @@
55
55
  },
56
56
  "dependencies": {
57
57
  "@aws-sdk/client-s3": "^3.955.0",
58
- "zod": "^4.0.0",
59
- "@beignet/core": "*"
58
+ "@aws-sdk/s3-request-presigner": "^3.955.0",
59
+ "@beignet/core": "*",
60
+ "zod": "^4.0.0"
60
61
  },
61
62
  "devDependencies": {
62
63
  "@beignet/devtools": "*",
package/src/index.ts CHANGED
@@ -7,6 +7,7 @@ import {
7
7
  S3Client,
8
8
  type S3ClientConfig,
9
9
  } from "@aws-sdk/client-s3";
10
+ import { getSignedUrl } from "@aws-sdk/s3-request-presigner";
10
11
  import type {
11
12
  StorageBody,
12
13
  StorageMetadata,
@@ -20,8 +21,12 @@ import {
20
21
  createProviderInstrumentation,
21
22
  type ProviderInstrumentationTarget,
22
23
  } from "@beignet/core/providers";
24
+ import type { UploadSignerPort } from "@beignet/core/uploads";
23
25
  import { z } from "zod";
24
26
 
27
+ /**
28
+ * Storage port types re-exported for S3 storage consumers.
29
+ */
25
30
  export type {
26
31
  StorageBody,
27
32
  StorageMetadata,
@@ -49,10 +54,19 @@ const S3StorageConfigSchema = z.object({
49
54
  KEY_PREFIX: z.string().optional(),
50
55
  });
51
56
 
57
+ /**
58
+ * S3 storage provider config loaded from `STORAGE_S3_*` env vars.
59
+ */
52
60
  export type S3StorageConfig = z.infer<typeof S3StorageConfigSchema>;
53
61
 
62
+ /**
63
+ * Minimal S3-compatible client shape required by this provider.
64
+ */
54
65
  export type S3StorageClient = Pick<S3Client, "send">;
55
66
 
67
+ /**
68
+ * Options for creating an S3-compatible storage port directly.
69
+ */
56
70
  export interface S3StorageOptions {
57
71
  /**
58
72
  * S3 bucket name.
@@ -116,6 +130,33 @@ export interface S3StorageOptions {
116
130
  instrumentation?: ProviderInstrumentationTarget;
117
131
  }
118
132
 
133
+ /**
134
+ * Options for creating an S3-compatible direct upload signer.
135
+ */
136
+ export interface S3UploadSignerOptions extends S3StorageOptions {
137
+ /**
138
+ * Number of seconds before generated direct upload URLs expire.
139
+ *
140
+ * @default 900
141
+ */
142
+ expiresInSeconds?: number;
143
+ /**
144
+ * Clock used for deterministic tests.
145
+ */
146
+ now?: () => Date;
147
+ /**
148
+ * Test hook for replacing AWS SDK signing.
149
+ */
150
+ signUrl?: (args: {
151
+ client: S3StorageClient;
152
+ command: PutObjectCommand;
153
+ expiresInSeconds: number;
154
+ }) => Promise<string> | string;
155
+ }
156
+
157
+ /**
158
+ * Options for creating an env-backed S3-compatible storage provider.
159
+ */
119
160
  export interface S3StorageProviderOptions
120
161
  extends Omit<S3StorageOptions, "bucket" | "client" | "instrumentation"> {
121
162
  /**
@@ -430,6 +471,15 @@ function metadataForPut(
430
471
  };
431
472
  }
432
473
 
474
+ function metadataHeaders(metadata: StorageMetadata): Record<string, string> {
475
+ return Object.fromEntries(
476
+ Object.entries(metadata).map(([key, value]) => [
477
+ `x-amz-meta-${key.toLowerCase()}`,
478
+ value,
479
+ ]),
480
+ );
481
+ }
482
+
433
483
  function objectFromHead(
434
484
  key: string,
435
485
  output: {
@@ -491,6 +541,12 @@ function createDefaultClient(options: S3StorageOptions): S3StorageClient {
491
541
  });
492
542
  }
493
543
 
544
+ /**
545
+ * Create a storage port backed by S3 or an S3-compatible object store.
546
+ *
547
+ * Supports AWS S3, Cloudflare R2, MinIO, Spaces, and similar stores by passing
548
+ * `endpoint`, `forcePathStyle`, credentials, and optional `keyPrefix`.
549
+ */
494
550
  export function createS3Storage(options: S3StorageOptions): StoragePort {
495
551
  const client = options.client ?? createDefaultClient(options);
496
552
  const keyPrefix = normalizeKeyPrefix(options.keyPrefix);
@@ -800,8 +856,118 @@ export function createS3Storage(options: S3StorageOptions): StoragePort {
800
856
  };
801
857
  }
802
858
 
859
+ /**
860
+ * Create an S3-compatible direct upload signer.
861
+ *
862
+ * The signer creates presigned PUT URLs for AWS S3, Cloudflare R2, MinIO,
863
+ * Spaces, and similar object stores. Use it with `createUploadRouter(...)`
864
+ * from `@beignet/core/uploads`.
865
+ */
866
+ export function createS3UploadSigner(
867
+ options: S3UploadSignerOptions,
868
+ ): UploadSignerPort {
869
+ const client = options.client ?? createDefaultClient(options);
870
+ const keyPrefix = normalizeKeyPrefix(options.keyPrefix);
871
+ const expiresInSeconds = options.expiresInSeconds ?? 900;
872
+ const now = options.now ?? (() => new Date());
873
+ const instrumentation = createProviderInstrumentation(
874
+ options.instrumentation,
875
+ {
876
+ providerName: "storage-s3",
877
+ watcher: "uploads",
878
+ },
879
+ );
880
+
881
+ return {
882
+ async sign(args) {
883
+ const startedAt = Date.now();
884
+ const s3Key = objectKey(keyPrefix, args.key);
885
+ const metadata = metadataForPut(
886
+ args.storage.metadata,
887
+ args.storage.visibility,
888
+ );
889
+ const command = new PutObjectCommand({
890
+ Bucket: options.bucket,
891
+ Key: s3Key,
892
+ ContentType: args.file.contentType,
893
+ ...(args.storage.cacheControl !== undefined
894
+ ? { CacheControl: args.storage.cacheControl }
895
+ : {}),
896
+ Metadata: metadata,
897
+ });
898
+
899
+ try {
900
+ const url = await (options.signUrl
901
+ ? options.signUrl({ client, command, expiresInSeconds })
902
+ : getSignedUrl(client as never, command, {
903
+ expiresIn: expiresInSeconds,
904
+ }));
905
+ const expiresAt = new Date(
906
+ now().getTime() + expiresInSeconds * 1000,
907
+ ).toISOString();
908
+
909
+ instrumentation.custom({
910
+ name: "upload.sign.completed",
911
+ label: "Upload signed",
912
+ summary: args.uploadName,
913
+ details: {
914
+ provider: "s3",
915
+ uploadName: args.uploadName,
916
+ uploadId: args.uploadId,
917
+ key: args.key,
918
+ s3Key,
919
+ bucket: options.bucket,
920
+ contentType: args.file.contentType,
921
+ expiresInSeconds,
922
+ durationMs: Date.now() - startedAt,
923
+ },
924
+ });
925
+
926
+ return {
927
+ method: "PUT",
928
+ url,
929
+ headers: {
930
+ "content-type": args.file.contentType,
931
+ ...(args.storage.cacheControl !== undefined
932
+ ? { "cache-control": args.storage.cacheControl }
933
+ : {}),
934
+ ...metadataHeaders(metadata),
935
+ },
936
+ expiresAt,
937
+ };
938
+ } catch (error) {
939
+ instrumentation.custom({
940
+ name: "upload.sign.failed",
941
+ label: "Upload sign failed",
942
+ summary: args.uploadName,
943
+ details: {
944
+ provider: "s3",
945
+ uploadName: args.uploadName,
946
+ uploadId: args.uploadId,
947
+ key: args.key,
948
+ s3Key,
949
+ bucket: options.bucket,
950
+ durationMs: Date.now() - startedAt,
951
+ error: errorMessage(error),
952
+ },
953
+ });
954
+ throw error;
955
+ }
956
+ },
957
+ };
958
+ }
959
+
960
+ /**
961
+ * Ports contributed by the S3 storage provider.
962
+ */
803
963
  export interface S3StorageProviderPorts {
964
+ /**
965
+ * Beignet storage port backed by S3-compatible storage.
966
+ */
804
967
  storage: StoragePort;
968
+ /**
969
+ * Raw client and key helpers for escape-hatch integrations.
970
+ */
805
971
  s3Storage: {
806
972
  client: S3StorageClient;
807
973
  bucket: string;
@@ -811,6 +977,12 @@ export interface S3StorageProviderPorts {
811
977
  };
812
978
  }
813
979
 
980
+ /**
981
+ * Create an env-backed S3-compatible storage provider.
982
+ *
983
+ * Reads `STORAGE_S3_*` env vars, contributes `ports.storage`, and exposes
984
+ * `ports.s3Storage` for raw client access and key-prefix helpers.
985
+ */
814
986
  export function createS3StorageProvider(
815
987
  options: S3StorageProviderOptions = {},
816
988
  ) {
@@ -909,4 +1081,7 @@ export function createS3StorageProvider(
909
1081
  });
910
1082
  }
911
1083
 
1084
+ /**
1085
+ * Default env-backed S3-compatible storage provider.
1086
+ */
912
1087
  export const s3StorageProvider = createS3StorageProvider();