@varity-labs/types 2.0.0-alpha.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.
@@ -0,0 +1,473 @@
1
+ /**
2
+ * Varity S3-Compatible Storage Types
3
+ *
4
+ * Type definitions for S3-compatible storage backends including:
5
+ * - AWS S3
6
+ * - MinIO
7
+ * - DigitalOcean Spaces
8
+ * - Cloudflare R2
9
+ * - Any S3-API compatible storage
10
+ */
11
+ import { StorageResult } from './storage';
12
+ /**
13
+ * S3-compatible storage configuration
14
+ */
15
+ export interface S3CompatibleConfig {
16
+ /** S3 endpoint (e.g., 's3.varity.io', 's3.amazonaws.com', 'minio.example.com:9000') */
17
+ endpoint: string;
18
+ /** AWS access key ID or equivalent */
19
+ accessKeyId: string;
20
+ /** AWS secret access key or equivalent */
21
+ secretAccessKey: string;
22
+ /** AWS region (e.g., 'us-east-1') */
23
+ region?: string;
24
+ /** Default bucket name */
25
+ bucket: string;
26
+ /** Use SSL/TLS for connections */
27
+ useSSL?: boolean;
28
+ /** Custom port (default: 443 for SSL, 80 for non-SSL) */
29
+ port?: number;
30
+ /** Use path-style addressing (true for MinIO, false for AWS S3) */
31
+ pathStyle?: boolean;
32
+ /** Session token (for temporary credentials) */
33
+ sessionToken?: string;
34
+ /** Force path style (override auto-detection) */
35
+ forcePathStyle?: boolean;
36
+ /** S3 accelerate endpoint */
37
+ useAccelerateEndpoint?: boolean;
38
+ /** Custom user agent */
39
+ userAgent?: string;
40
+ /** Request timeout in milliseconds */
41
+ timeout?: number;
42
+ }
43
+ /**
44
+ * S3 upload result with S3-specific metadata
45
+ */
46
+ export interface S3UploadResult extends StorageResult {
47
+ /** S3 object key */
48
+ s3Key: string;
49
+ /** Bucket name */
50
+ bucket: string;
51
+ /** AWS region */
52
+ region?: string;
53
+ /** ETag returned by S3 */
54
+ etag: string;
55
+ /** Version ID (if versioning enabled) */
56
+ versionId?: string;
57
+ /** Server-side encryption method */
58
+ serverSideEncryption?: 'AES256' | 'aws:kms' | 'aws:kms:dsse';
59
+ /** KMS key ID (if using KMS encryption) */
60
+ kmsKeyId?: string;
61
+ /** Expiration rule ID (if lifecycle policy applies) */
62
+ expiration?: string;
63
+ /** Storage class used */
64
+ storageClass?: S3StorageClass;
65
+ }
66
+ /**
67
+ * S3 multipart upload session
68
+ */
69
+ export interface S3MultipartUpload {
70
+ /** Upload ID from S3 */
71
+ uploadId: string;
72
+ /** Bucket name */
73
+ bucket: string;
74
+ /** Object key */
75
+ key: string;
76
+ /** Uploaded parts */
77
+ parts: S3UploadPart[];
78
+ /** Upload initiated timestamp */
79
+ initiated: Date;
80
+ /** Initiator information */
81
+ initiator?: {
82
+ id: string;
83
+ displayName: string;
84
+ };
85
+ }
86
+ /**
87
+ * S3 multipart upload part
88
+ */
89
+ export interface S3UploadPart {
90
+ /** Part number (1-10000) */
91
+ partNumber: number;
92
+ /** ETag for this part */
93
+ etag: string;
94
+ /** Part size in bytes */
95
+ size: number;
96
+ /** Last modified timestamp */
97
+ lastModified?: Date;
98
+ }
99
+ /**
100
+ * Options for S3 multipart upload
101
+ */
102
+ export interface S3MultipartUploadOptions {
103
+ /** Part size in bytes (default: 5MB, min: 5MB, max: 5GB) */
104
+ partSize?: number;
105
+ /** Number of concurrent part uploads */
106
+ concurrency?: number;
107
+ /** Whether to leave incomplete upload on error */
108
+ leavePartsOnError?: boolean;
109
+ /** Server-side encryption */
110
+ serverSideEncryption?: 'AES256' | 'aws:kms';
111
+ /** KMS key ID (if using KMS) */
112
+ kmsKeyId?: string;
113
+ /** Storage class */
114
+ storageClass?: S3StorageClass;
115
+ /** Metadata */
116
+ metadata?: Record<string, string>;
117
+ /** Tags */
118
+ tags?: Record<string, string>;
119
+ }
120
+ /**
121
+ * S3 list objects response
122
+ */
123
+ export interface S3ListObjectsResult {
124
+ /** Array of objects */
125
+ objects: S3Object[];
126
+ /** Whether results are truncated */
127
+ isTruncated: boolean;
128
+ /** Continuation token for next page */
129
+ continuationToken?: string;
130
+ /** Next continuation token */
131
+ nextContinuationToken?: string;
132
+ /** Common prefixes (for delimiter-based listing) */
133
+ commonPrefixes?: string[];
134
+ /** Key count */
135
+ keyCount?: number;
136
+ /** Max keys requested */
137
+ maxKeys?: number;
138
+ /** Prefix used in request */
139
+ prefix?: string;
140
+ /** Delimiter used in request */
141
+ delimiter?: string;
142
+ }
143
+ /**
144
+ * S3 object metadata
145
+ */
146
+ export interface S3Object {
147
+ /** Object key */
148
+ key: string;
149
+ /** Size in bytes */
150
+ size: number;
151
+ /** Last modified timestamp */
152
+ lastModified: Date;
153
+ /** ETag */
154
+ etag: string;
155
+ /** Storage class */
156
+ storageClass?: S3StorageClass;
157
+ /** Owner information */
158
+ owner?: {
159
+ id: string;
160
+ displayName: string;
161
+ };
162
+ /** Checksum algorithm */
163
+ checksumAlgorithm?: 'CRC32' | 'CRC32C' | 'SHA1' | 'SHA256';
164
+ /** Restore status (for archived objects) */
165
+ restoreStatus?: S3RestoreStatus;
166
+ }
167
+ /**
168
+ * S3 object restore status
169
+ */
170
+ export interface S3RestoreStatus {
171
+ /** Whether restore is in progress */
172
+ isRestoreInProgress: boolean;
173
+ /** Restore expiry date */
174
+ restoreExpiryDate?: Date;
175
+ }
176
+ /**
177
+ * S3 bucket configuration
178
+ */
179
+ export interface S3Bucket {
180
+ /** Bucket name */
181
+ name: string;
182
+ /** Creation date */
183
+ creationDate: Date;
184
+ /** AWS region */
185
+ region?: string;
186
+ /** Bucket location constraint */
187
+ locationConstraint?: string;
188
+ }
189
+ /**
190
+ * S3 bucket versioning configuration
191
+ */
192
+ export interface S3BucketVersioning {
193
+ /** Versioning status */
194
+ status: 'Enabled' | 'Suspended';
195
+ /** MFA delete status */
196
+ mfaDelete?: 'Enabled' | 'Disabled';
197
+ }
198
+ /**
199
+ * S3 bucket lifecycle rule
200
+ */
201
+ export interface S3LifecycleRule {
202
+ /** Rule ID */
203
+ id: string;
204
+ /** Rule status */
205
+ status: 'Enabled' | 'Disabled';
206
+ /** Object key prefix filter */
207
+ prefix?: string;
208
+ /** Tag filters */
209
+ tags?: Record<string, string>;
210
+ /** Transitions between storage classes */
211
+ transitions?: S3Transition[];
212
+ /** Expiration configuration */
213
+ expiration?: S3Expiration;
214
+ /** Non-current version transitions */
215
+ noncurrentVersionTransitions?: S3NoncurrentVersionTransition[];
216
+ /** Non-current version expiration */
217
+ noncurrentVersionExpiration?: S3NoncurrentVersionExpiration;
218
+ /** Abort incomplete multipart upload */
219
+ abortIncompleteMultipartUpload?: {
220
+ daysAfterInitiation: number;
221
+ };
222
+ }
223
+ /**
224
+ * S3 storage class transition
225
+ */
226
+ export interface S3Transition {
227
+ /** Days after object creation */
228
+ days?: number;
229
+ /** Specific date */
230
+ date?: Date;
231
+ /** Target storage class */
232
+ storageClass: S3StorageClass;
233
+ }
234
+ /**
235
+ * S3 object expiration
236
+ */
237
+ export interface S3Expiration {
238
+ /** Days after object creation */
239
+ days?: number;
240
+ /** Specific date */
241
+ date?: Date;
242
+ /** Expire delete markers */
243
+ expiredObjectDeleteMarker?: boolean;
244
+ }
245
+ /**
246
+ * S3 non-current version transition
247
+ */
248
+ export interface S3NoncurrentVersionTransition {
249
+ /** Days after becoming non-current */
250
+ noncurrentDays: number;
251
+ /** Target storage class */
252
+ storageClass: S3StorageClass;
253
+ /** Newer versions to retain */
254
+ newerNoncurrentVersions?: number;
255
+ }
256
+ /**
257
+ * S3 non-current version expiration
258
+ */
259
+ export interface S3NoncurrentVersionExpiration {
260
+ /** Days after becoming non-current */
261
+ noncurrentDays: number;
262
+ /** Newer versions to retain */
263
+ newerNoncurrentVersions?: number;
264
+ }
265
+ /**
266
+ * S3 storage classes
267
+ */
268
+ export declare enum S3StorageClass {
269
+ /** Standard storage (frequent access) */
270
+ STANDARD = "STANDARD",
271
+ /** Reduced redundancy (deprecated) */
272
+ REDUCED_REDUNDANCY = "REDUCED_REDUNDANCY",
273
+ /** Infrequent access */
274
+ STANDARD_IA = "STANDARD_IA",
275
+ /** One zone infrequent access */
276
+ ONEZONE_IA = "ONEZONE_IA",
277
+ /** Intelligent tiering */
278
+ INTELLIGENT_TIERING = "INTELLIGENT_TIERING",
279
+ /** Glacier instant retrieval */
280
+ GLACIER_IR = "GLACIER_IR",
281
+ /** Glacier flexible retrieval */
282
+ GLACIER = "GLACIER",
283
+ /** Glacier deep archive */
284
+ DEEP_ARCHIVE = "DEEP_ARCHIVE",
285
+ /** Outposts */
286
+ OUTPOSTS = "OUTPOSTS",
287
+ /** Express One Zone */
288
+ EXPRESS_ONEZONE = "EXPRESS_ONEZONE"
289
+ }
290
+ /**
291
+ * S3 canned ACLs
292
+ */
293
+ export declare enum S3ACL {
294
+ /** Owner gets full control */
295
+ PRIVATE = "private",
296
+ /** Owner gets full control, public gets read */
297
+ PUBLIC_READ = "public-read",
298
+ /** Owner gets full control, public gets read and write */
299
+ PUBLIC_READ_WRITE = "public-read-write",
300
+ /** Owner gets full control, authenticated users get read */
301
+ AUTHENTICATED_READ = "authenticated-read",
302
+ /** Object owner gets full control, bucket owner gets read */
303
+ BUCKET_OWNER_READ = "bucket-owner-read",
304
+ /** Object owner and bucket owner get full control */
305
+ BUCKET_OWNER_FULL_CONTROL = "bucket-owner-full-control",
306
+ /** Log delivery write permission */
307
+ LOG_DELIVERY_WRITE = "log-delivery-write"
308
+ }
309
+ /**
310
+ * S3 bucket policy
311
+ */
312
+ export interface S3BucketPolicy {
313
+ /** Policy version */
314
+ version: string;
315
+ /** Policy ID */
316
+ id?: string;
317
+ /** Policy statements */
318
+ statements: S3PolicyStatement[];
319
+ }
320
+ /**
321
+ * S3 policy statement
322
+ */
323
+ export interface S3PolicyStatement {
324
+ /** Statement ID */
325
+ sid?: string;
326
+ /** Effect (Allow or Deny) */
327
+ effect: 'Allow' | 'Deny';
328
+ /** Principal (user/role/service) */
329
+ principal: string | string[] | {
330
+ [key: string]: string | string[];
331
+ };
332
+ /** Action(s) */
333
+ action: string | string[];
334
+ /** Resource(s) */
335
+ resource: string | string[];
336
+ /** Condition */
337
+ condition?: Record<string, Record<string, string | string[]>>;
338
+ }
339
+ /**
340
+ * S3 CORS configuration
341
+ */
342
+ export interface S3CORSConfiguration {
343
+ /** CORS rules */
344
+ corsRules: S3CORSRule[];
345
+ }
346
+ /**
347
+ * S3 CORS rule
348
+ */
349
+ export interface S3CORSRule {
350
+ /** Allowed origins */
351
+ allowedOrigins: string[];
352
+ /** Allowed methods */
353
+ allowedMethods: ('GET' | 'PUT' | 'POST' | 'DELETE' | 'HEAD')[];
354
+ /** Allowed headers */
355
+ allowedHeaders?: string[];
356
+ /** Exposed headers */
357
+ exposeHeaders?: string[];
358
+ /** Max age in seconds */
359
+ maxAgeSeconds?: number;
360
+ }
361
+ /**
362
+ * Options for generating presigned URLs
363
+ */
364
+ export interface S3PresignedUrlOptions {
365
+ /** Expiration time in seconds */
366
+ expiresIn: number;
367
+ /** HTTP method */
368
+ method?: 'GET' | 'PUT' | 'DELETE' | 'HEAD';
369
+ /** Response headers to override */
370
+ responseHeaders?: {
371
+ contentType?: string;
372
+ contentDisposition?: string;
373
+ cacheControl?: string;
374
+ contentEncoding?: string;
375
+ contentLanguage?: string;
376
+ expires?: Date;
377
+ };
378
+ /** Request headers (for PUT) */
379
+ requestHeaders?: Record<string, string>;
380
+ /** Version ID (for versioned objects) */
381
+ versionId?: string;
382
+ }
383
+ /**
384
+ * Presigned URL result
385
+ */
386
+ export interface S3PresignedUrl {
387
+ /** Presigned URL */
388
+ url: string;
389
+ /** Expiration timestamp */
390
+ expiresAt: Date;
391
+ /** HTTP method */
392
+ method: string;
393
+ /** Headers to include in request */
394
+ headers?: Record<string, string>;
395
+ }
396
+ /**
397
+ * Server-side encryption configuration
398
+ */
399
+ export interface S3ServerSideEncryption {
400
+ /** Encryption type */
401
+ type: 'AES256' | 'aws:kms' | 'aws:kms:dsse';
402
+ /** KMS key ID (for KMS encryption) */
403
+ kmsKeyId?: string;
404
+ /** KMS encryption context */
405
+ kmsEncryptionContext?: Record<string, string>;
406
+ /** Bucket key enabled */
407
+ bucketKeyEnabled?: boolean;
408
+ }
409
+ /**
410
+ * S3 object lock configuration
411
+ */
412
+ export interface S3ObjectLock {
413
+ /** Lock mode */
414
+ mode: 'GOVERNANCE' | 'COMPLIANCE';
415
+ /** Retain until date */
416
+ retainUntilDate?: Date;
417
+ /** Legal hold */
418
+ legalHold?: 'ON' | 'OFF';
419
+ }
420
+ /**
421
+ * S3 replication configuration
422
+ */
423
+ export interface S3ReplicationConfiguration {
424
+ /** IAM role ARN */
425
+ role: string;
426
+ /** Replication rules */
427
+ rules: S3ReplicationRule[];
428
+ }
429
+ /**
430
+ * S3 replication rule
431
+ */
432
+ export interface S3ReplicationRule {
433
+ /** Rule ID */
434
+ id?: string;
435
+ /** Priority */
436
+ priority?: number;
437
+ /** Rule status */
438
+ status: 'Enabled' | 'Disabled';
439
+ /** Prefix filter */
440
+ prefix?: string;
441
+ /** Tag filters */
442
+ tags?: Record<string, string>;
443
+ /** Destination configuration */
444
+ destination: S3ReplicationDestination;
445
+ /** Delete marker replication */
446
+ deleteMarkerReplication?: {
447
+ status: 'Enabled' | 'Disabled';
448
+ };
449
+ }
450
+ /**
451
+ * S3 replication destination
452
+ */
453
+ export interface S3ReplicationDestination {
454
+ /** Destination bucket ARN */
455
+ bucket: string;
456
+ /** Storage class */
457
+ storageClass?: S3StorageClass;
458
+ /** Replication time control */
459
+ replicationTime?: {
460
+ status: 'Enabled' | 'Disabled';
461
+ time: {
462
+ minutes: number;
463
+ };
464
+ };
465
+ /** Metrics */
466
+ metrics?: {
467
+ status: 'Enabled' | 'Disabled';
468
+ eventThreshold: {
469
+ minutes: number;
470
+ };
471
+ };
472
+ }
473
+ //# sourceMappingURL=s3-compatible.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"s3-compatible.d.ts","sourceRoot":"","sources":["../src/s3-compatible.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Varity S3-Compatible Storage Types
3
+ *
4
+ * Type definitions for S3-compatible storage backends including:
5
+ * - AWS S3
6
+ * - MinIO
7
+ * - DigitalOcean Spaces
8
+ * - Cloudflare R2
9
+ * - Any S3-API compatible storage
10
+ */
11
+ // ============================================================================
12
+ // S3 Storage Classes
13
+ // ============================================================================
14
+ /**
15
+ * S3 storage classes
16
+ */
17
+ export var S3StorageClass;
18
+ (function (S3StorageClass) {
19
+ /** Standard storage (frequent access) */
20
+ S3StorageClass["STANDARD"] = "STANDARD";
21
+ /** Reduced redundancy (deprecated) */
22
+ S3StorageClass["REDUCED_REDUNDANCY"] = "REDUCED_REDUNDANCY";
23
+ /** Infrequent access */
24
+ S3StorageClass["STANDARD_IA"] = "STANDARD_IA";
25
+ /** One zone infrequent access */
26
+ S3StorageClass["ONEZONE_IA"] = "ONEZONE_IA";
27
+ /** Intelligent tiering */
28
+ S3StorageClass["INTELLIGENT_TIERING"] = "INTELLIGENT_TIERING";
29
+ /** Glacier instant retrieval */
30
+ S3StorageClass["GLACIER_IR"] = "GLACIER_IR";
31
+ /** Glacier flexible retrieval */
32
+ S3StorageClass["GLACIER"] = "GLACIER";
33
+ /** Glacier deep archive */
34
+ S3StorageClass["DEEP_ARCHIVE"] = "DEEP_ARCHIVE";
35
+ /** Outposts */
36
+ S3StorageClass["OUTPOSTS"] = "OUTPOSTS";
37
+ /** Express One Zone */
38
+ S3StorageClass["EXPRESS_ONEZONE"] = "EXPRESS_ONEZONE";
39
+ })(S3StorageClass || (S3StorageClass = {}));
40
+ // ============================================================================
41
+ // S3 Access Control
42
+ // ============================================================================
43
+ /**
44
+ * S3 canned ACLs
45
+ */
46
+ export var S3ACL;
47
+ (function (S3ACL) {
48
+ /** Owner gets full control */
49
+ S3ACL["PRIVATE"] = "private";
50
+ /** Owner gets full control, public gets read */
51
+ S3ACL["PUBLIC_READ"] = "public-read";
52
+ /** Owner gets full control, public gets read and write */
53
+ S3ACL["PUBLIC_READ_WRITE"] = "public-read-write";
54
+ /** Owner gets full control, authenticated users get read */
55
+ S3ACL["AUTHENTICATED_READ"] = "authenticated-read";
56
+ /** Object owner gets full control, bucket owner gets read */
57
+ S3ACL["BUCKET_OWNER_READ"] = "bucket-owner-read";
58
+ /** Object owner and bucket owner get full control */
59
+ S3ACL["BUCKET_OWNER_FULL_CONTROL"] = "bucket-owner-full-control";
60
+ /** Log delivery write permission */
61
+ S3ACL["LOG_DELIVERY_WRITE"] = "log-delivery-write";
62
+ })(S3ACL || (S3ACL = {}));
63
+ // NOTE: Types are declared above and exported via interface/enum declarations