@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,130 @@
1
+ /**
2
+ * Common TypeScript Types for Varity SDK
3
+ *
4
+ * Provides type-safe alternatives to `any` for common patterns.
5
+ * Use these types to improve type safety across the codebase.
6
+ */
7
+ /**
8
+ * JSON-serializable value
9
+ * Use this instead of `any` for data that will be JSON serialized/deserialized
10
+ */
11
+ export type JSONValue = string | number | boolean | null | JSONValue[] | {
12
+ [key: string]: JSONValue;
13
+ };
14
+ /**
15
+ * JSON object (key-value pairs)
16
+ * Use this for objects with unknown keys but JSON-serializable values
17
+ */
18
+ export type JSONObject = {
19
+ [key: string]: JSONValue;
20
+ };
21
+ /**
22
+ * JSON array
23
+ * Use this for arrays with unknown structure but JSON-serializable values
24
+ */
25
+ export type JSONArray = JSONValue[];
26
+ /**
27
+ * Record with string keys and unknown values
28
+ * Use this for objects when you truly don't know the value types
29
+ * but know keys are strings
30
+ */
31
+ export type StringRecord = Record<string, unknown>;
32
+ /**
33
+ * Metadata object (commonly used across Varity types)
34
+ * String keys with any JSON-serializable value
35
+ */
36
+ export type Metadata = Record<string, JSONValue>;
37
+ /**
38
+ * Error with message property (for catch blocks)
39
+ * Use this to safely type errors in catch blocks
40
+ */
41
+ export interface ErrorWithMessage {
42
+ message: string;
43
+ }
44
+ /**
45
+ * Type guard to check if error has a message
46
+ */
47
+ export declare function isErrorWithMessage(error: unknown): error is ErrorWithMessage;
48
+ /**
49
+ * Convert unknown error to Error instance
50
+ * Use this in catch blocks to safely get an Error object
51
+ */
52
+ export declare function toError(error: unknown): Error;
53
+ /**
54
+ * Get error message from unknown error
55
+ * Use this in catch blocks when you just need the message
56
+ */
57
+ export declare function getErrorMessage(error: unknown): string;
58
+ /**
59
+ * Callback function type with unknown parameters
60
+ * Use this instead of (...args: any[]) => any
61
+ */
62
+ export type Callback<T = void> = (...args: unknown[]) => T;
63
+ /**
64
+ * Async callback function type
65
+ */
66
+ export type AsyncCallback<T = void> = (...args: unknown[]) => Promise<T>;
67
+ /**
68
+ * Event handler type for React and DOM events
69
+ * Use this for generic event handlers
70
+ */
71
+ export type EventHandler<E = Event> = (event: E) => void;
72
+ /**
73
+ * Async event handler type
74
+ */
75
+ export type AsyncEventHandler<E = Event> = (event: E) => Promise<void>;
76
+ /**
77
+ * Constructor type for classes
78
+ * Use this when you need to pass a class constructor
79
+ */
80
+ export type Constructor<T = unknown> = new (...args: unknown[]) => T;
81
+ /**
82
+ * Abstract constructor type
83
+ */
84
+ export type AbstractConstructor<T = unknown> = abstract new (...args: unknown[]) => T;
85
+ /**
86
+ * Function type with unknown parameters and return type
87
+ * Use this for truly generic functions
88
+ */
89
+ export type AnyFunction = (...args: unknown[]) => unknown;
90
+ /**
91
+ * Promise or value (for functions that can be sync or async)
92
+ */
93
+ export type MaybePromise<T> = T | Promise<T>;
94
+ /**
95
+ * Nullable type (value or null)
96
+ */
97
+ export type Nullable<T> = T | null;
98
+ /**
99
+ * Optional type (value or undefined)
100
+ */
101
+ export type Optional<T> = T | undefined;
102
+ /**
103
+ * Maybe type (value, null, or undefined)
104
+ */
105
+ export type Maybe<T> = T | null | undefined;
106
+ /**
107
+ * Deep partial - makes all properties optional recursively
108
+ */
109
+ export type DeepPartial<T> = T extends object ? {
110
+ [P in keyof T]?: DeepPartial<T[P]>;
111
+ } : T;
112
+ /**
113
+ * Deep readonly - makes all properties readonly recursively
114
+ */
115
+ export type DeepReadonly<T> = T extends object ? {
116
+ readonly [P in keyof T]: DeepReadonly<T[P]>;
117
+ } : T;
118
+ /**
119
+ * Require at least one property from a type
120
+ */
121
+ export type RequireAtLeastOne<T, Keys extends keyof T = keyof T> = Pick<T, Exclude<keyof T, Keys>> & {
122
+ [K in Keys]-?: Required<Pick<T, K>> & Partial<Pick<T, Exclude<Keys, K>>>;
123
+ }[Keys];
124
+ /**
125
+ * Require exactly one property from a type
126
+ */
127
+ export type RequireExactlyOne<T, Keys extends keyof T = keyof T> = Pick<T, Exclude<keyof T, Keys>> & {
128
+ [K in Keys]-?: Required<Pick<T, K>> & Partial<Record<Exclude<Keys, K>, undefined>>;
129
+ }[Keys];
130
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"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"}
package/dist/common.js ADDED
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Common TypeScript Types for Varity SDK
3
+ *
4
+ * Provides type-safe alternatives to `any` for common patterns.
5
+ * Use these types to improve type safety across the codebase.
6
+ */
7
+ /**
8
+ * Type guard to check if error has a message
9
+ */
10
+ export function isErrorWithMessage(error) {
11
+ return (typeof error === 'object' &&
12
+ error !== null &&
13
+ 'message' in error &&
14
+ typeof error.message === 'string');
15
+ }
16
+ /**
17
+ * Convert unknown error to Error instance
18
+ * Use this in catch blocks to safely get an Error object
19
+ */
20
+ export function toError(error) {
21
+ if (error instanceof Error)
22
+ return error;
23
+ if (isErrorWithMessage(error))
24
+ return new Error(error.message);
25
+ try {
26
+ return new Error(JSON.stringify(error));
27
+ }
28
+ catch {
29
+ return new Error(String(error));
30
+ }
31
+ }
32
+ /**
33
+ * Get error message from unknown error
34
+ * Use this in catch blocks when you just need the message
35
+ */
36
+ export function getErrorMessage(error) {
37
+ if (error instanceof Error)
38
+ return error.message;
39
+ if (isErrorWithMessage(error))
40
+ return error.message;
41
+ try {
42
+ return JSON.stringify(error);
43
+ }
44
+ catch {
45
+ return String(error);
46
+ }
47
+ }
@@ -0,0 +1,500 @@
1
+ /**
2
+ * Varity GCS-Compatible Storage Types
3
+ *
4
+ * Type definitions for Google Cloud Storage compatible backends including:
5
+ * - Google Cloud Storage (GCS)
6
+ * - GCS-compatible APIs
7
+ * - Migration from GCS to Varity
8
+ */
9
+ import { StorageResult } from './storage';
10
+ /**
11
+ * Google Cloud Storage compatible configuration
12
+ */
13
+ export interface GCSCompatibleConfig {
14
+ /** GCS endpoint (default: 'storage.googleapis.com') */
15
+ endpoint?: string;
16
+ /** Google Cloud project ID */
17
+ projectId: string;
18
+ /** Authentication credentials */
19
+ credentials: GCSCredentials;
20
+ /** Default bucket name */
21
+ bucket: string;
22
+ /** API endpoint override */
23
+ apiEndpoint?: string;
24
+ /** Custom user agent */
25
+ userAgent?: string;
26
+ /** Request timeout in milliseconds */
27
+ timeout?: number;
28
+ /** Retry configuration */
29
+ retry?: {
30
+ maxRetries: number;
31
+ initialDelayMs: number;
32
+ maxDelayMs: number;
33
+ };
34
+ }
35
+ /**
36
+ * GCS authentication credentials
37
+ */
38
+ export interface GCSCredentials {
39
+ /** Credential type */
40
+ type: 'service_account' | 'oauth2' | 'api_key' | 'external_account';
41
+ /** Service account email */
42
+ clientEmail?: string;
43
+ /** Service account private key (PEM format) */
44
+ privateKey?: string;
45
+ /** Private key ID */
46
+ privateKeyId?: string;
47
+ /** OAuth2 access token */
48
+ accessToken?: string;
49
+ /** OAuth2 refresh token */
50
+ refreshToken?: string;
51
+ /** OAuth2 client ID */
52
+ clientId?: string;
53
+ /** OAuth2 client secret */
54
+ clientSecret?: string;
55
+ /** Token expiry timestamp */
56
+ expiryDate?: number;
57
+ /** API key (for public access) */
58
+ apiKey?: string;
59
+ /** External account configuration */
60
+ externalAccount?: GCSExternalAccountConfig;
61
+ }
62
+ /**
63
+ * GCS external account configuration (workload identity federation)
64
+ */
65
+ export interface GCSExternalAccountConfig {
66
+ /** Audience */
67
+ audience: string;
68
+ /** Subject token type */
69
+ subjectTokenType: string;
70
+ /** Token URL */
71
+ tokenUrl: string;
72
+ /** Service account impersonation URL */
73
+ serviceAccountImpersonationUrl?: string;
74
+ /** Credential source */
75
+ credentialSource: {
76
+ file?: string;
77
+ url?: string;
78
+ headers?: Record<string, string>;
79
+ format?: {
80
+ type: 'json' | 'text';
81
+ subjectTokenFieldName?: string;
82
+ };
83
+ };
84
+ }
85
+ /**
86
+ * GCS upload result
87
+ */
88
+ export interface GCSUploadResult extends StorageResult {
89
+ /** Object name in GCS */
90
+ gcsName: string;
91
+ /** Bucket name */
92
+ bucket: string;
93
+ /** Object generation (version) */
94
+ generation: string;
95
+ /** Metadata generation */
96
+ metageneration: string;
97
+ /** Content type */
98
+ contentType: string;
99
+ /** MD5 hash (base64) */
100
+ md5Hash: string;
101
+ /** CRC32C checksum (base64) */
102
+ crc32c: string;
103
+ /** Storage class */
104
+ storageClass?: GCSStorageClass;
105
+ /** Time created */
106
+ timeCreated: Date;
107
+ /** Time updated */
108
+ updated: Date;
109
+ /** KMS key name (if encrypted) */
110
+ kmsKeyName?: string;
111
+ /** Customer-supplied encryption key SHA256 */
112
+ customerEncryption?: {
113
+ encryptionAlgorithm: string;
114
+ keySha256: string;
115
+ };
116
+ }
117
+ /**
118
+ * GCS resumable upload session
119
+ */
120
+ export interface GCSResumableUpload {
121
+ /** Resumable upload session URI */
122
+ sessionUri: string;
123
+ /** Bucket name */
124
+ bucket: string;
125
+ /** Object name */
126
+ name: string;
127
+ /** Bytes uploaded so far */
128
+ uploadedBytes: number;
129
+ /** Total bytes (if known) */
130
+ totalBytes?: number;
131
+ /** Upload ID */
132
+ uploadId: string;
133
+ /** Expiration time */
134
+ expiresAt?: Date;
135
+ }
136
+ /**
137
+ * Options for GCS resumable upload
138
+ */
139
+ export interface GCSResumableUploadOptions {
140
+ /** Chunk size in bytes (must be multiple of 256KB) */
141
+ chunkSize?: number;
142
+ /** Content type */
143
+ contentType?: string;
144
+ /** Metadata */
145
+ metadata?: Record<string, string>;
146
+ /** Predefined ACL */
147
+ predefinedAcl?: GCSPredefinedACL;
148
+ /** Storage class */
149
+ storageClass?: GCSStorageClass;
150
+ /** Customer-supplied encryption key */
151
+ encryptionKey?: any;
152
+ /** KMS key name */
153
+ kmsKeyName?: string;
154
+ /** Generation match precondition */
155
+ ifGenerationMatch?: string;
156
+ /** Metageneration match precondition */
157
+ ifMetagenerationMatch?: string;
158
+ }
159
+ /**
160
+ * GCS list objects response
161
+ */
162
+ export interface GCSListObjectsResult {
163
+ /** Array of objects */
164
+ items: GCSObject[];
165
+ /** Next page token */
166
+ nextPageToken?: string;
167
+ /** Prefixes (for delimiter-based listing) */
168
+ prefixes?: string[];
169
+ /** Kind (always 'storage#objects') */
170
+ kind: string;
171
+ }
172
+ /**
173
+ * GCS object metadata
174
+ */
175
+ export interface GCSObject {
176
+ /** Object name */
177
+ name: string;
178
+ /** Bucket name */
179
+ bucket: string;
180
+ /** Object generation */
181
+ generation: string;
182
+ /** Metadata generation */
183
+ metageneration: string;
184
+ /** Size in bytes (as string) */
185
+ size: string;
186
+ /** Content type */
187
+ contentType: string;
188
+ /** Time created */
189
+ timeCreated: Date;
190
+ /** Time updated */
191
+ updated: Date;
192
+ /** Time deleted (if soft-deleted) */
193
+ timeDeleted?: Date;
194
+ /** MD5 hash (base64) */
195
+ md5Hash: string;
196
+ /** CRC32C checksum (base64) */
197
+ crc32c: string;
198
+ /** ETag */
199
+ etag: string;
200
+ /** Storage class */
201
+ storageClass: GCSStorageClass;
202
+ /** Owner */
203
+ owner?: {
204
+ entity: string;
205
+ entityId: string;
206
+ };
207
+ /** Custom metadata */
208
+ metadata?: Record<string, string>;
209
+ /** ACL */
210
+ acl?: GCSObjectAccessControl[];
211
+ /** Content encoding */
212
+ contentEncoding?: string;
213
+ /** Content disposition */
214
+ contentDisposition?: string;
215
+ /** Content language */
216
+ contentLanguage?: string;
217
+ /** Cache control */
218
+ cacheControl?: string;
219
+ /** Custom time */
220
+ customTime?: Date;
221
+ /** Event-based hold */
222
+ eventBasedHold?: boolean;
223
+ /** Temporary hold */
224
+ temporaryHold?: boolean;
225
+ /** Retention expiration time */
226
+ retentionExpirationTime?: Date;
227
+ /** KMS key name */
228
+ kmsKeyName?: string;
229
+ /** Customer encryption */
230
+ customerEncryption?: {
231
+ encryptionAlgorithm: string;
232
+ keySha256: string;
233
+ };
234
+ }
235
+ /**
236
+ * GCS object access control
237
+ */
238
+ export interface GCSObjectAccessControl {
239
+ /** Kind */
240
+ kind: string;
241
+ /** Entity */
242
+ entity: string;
243
+ /** Role */
244
+ role: 'OWNER' | 'READER' | 'WRITER';
245
+ /** Email */
246
+ email?: string;
247
+ /** Entity ID */
248
+ entityId?: string;
249
+ /** Domain */
250
+ domain?: string;
251
+ /** Project team */
252
+ projectTeam?: {
253
+ projectNumber: string;
254
+ team: string;
255
+ };
256
+ /** ETag */
257
+ etag?: string;
258
+ }
259
+ /**
260
+ * GCS bucket metadata
261
+ */
262
+ export interface GCSBucket {
263
+ /** Bucket name */
264
+ name: string;
265
+ /** Bucket location */
266
+ location: string;
267
+ /** Storage class */
268
+ storageClass: GCSStorageClass;
269
+ /** Time created */
270
+ timeCreated: Date;
271
+ /** Time updated */
272
+ updated: Date;
273
+ /** Project number */
274
+ projectNumber: string;
275
+ /** Metageneration */
276
+ metageneration: string;
277
+ /** ETag */
278
+ etag: string;
279
+ /** Labels */
280
+ labels?: Record<string, string>;
281
+ /** Lifecycle configuration */
282
+ lifecycle?: GCSBucketLifecycle;
283
+ /** CORS configuration */
284
+ cors?: GCSCORSConfiguration[];
285
+ /** Default event-based hold */
286
+ defaultEventBasedHold?: boolean;
287
+ /** Retention policy */
288
+ retentionPolicy?: GCSRetentionPolicy;
289
+ /** Versioning */
290
+ versioning?: {
291
+ enabled: boolean;
292
+ };
293
+ /** Website configuration */
294
+ website?: {
295
+ mainPageSuffix?: string;
296
+ notFoundPage?: string;
297
+ };
298
+ /** Logging */
299
+ logging?: {
300
+ logBucket: string;
301
+ logObjectPrefix: string;
302
+ };
303
+ /** Encryption */
304
+ encryption?: {
305
+ defaultKmsKeyName: string;
306
+ };
307
+ /** IAM configuration */
308
+ iamConfiguration?: {
309
+ uniformBucketLevelAccess?: {
310
+ enabled: boolean;
311
+ lockedTime?: Date;
312
+ };
313
+ publicAccessPrevention?: 'enforced' | 'inherited';
314
+ };
315
+ }
316
+ /**
317
+ * GCS bucket lifecycle configuration
318
+ */
319
+ export interface GCSBucketLifecycle {
320
+ /** Lifecycle rules */
321
+ rule: GCSLifecycleRule[];
322
+ }
323
+ /**
324
+ * GCS lifecycle rule
325
+ */
326
+ export interface GCSLifecycleRule {
327
+ /** Action */
328
+ action: {
329
+ type: 'Delete' | 'SetStorageClass' | 'AbortIncompleteMultipartUpload';
330
+ storageClass?: GCSStorageClass;
331
+ };
332
+ /** Condition */
333
+ condition: {
334
+ age?: number;
335
+ createdBefore?: string;
336
+ customTimeBefore?: string;
337
+ daysSinceCustomTime?: number;
338
+ daysSinceNoncurrentTime?: number;
339
+ isLive?: boolean;
340
+ matchesPrefix?: string[];
341
+ matchesSuffix?: string[];
342
+ matchesStorageClass?: GCSStorageClass[];
343
+ noncurrentTimeBefore?: string;
344
+ numNewerVersions?: number;
345
+ };
346
+ }
347
+ /**
348
+ * GCS retention policy
349
+ */
350
+ export interface GCSRetentionPolicy {
351
+ /** Retention period in seconds */
352
+ retentionPeriod: string;
353
+ /** Effective time */
354
+ effectiveTime: Date;
355
+ /** Is locked */
356
+ isLocked: boolean;
357
+ }
358
+ /**
359
+ * GCS storage classes
360
+ */
361
+ export declare enum GCSStorageClass {
362
+ /** Standard storage */
363
+ STANDARD = "STANDARD",
364
+ /** Nearline storage (30-day minimum) */
365
+ NEARLINE = "NEARLINE",
366
+ /** Coldline storage (90-day minimum) */
367
+ COLDLINE = "COLDLINE",
368
+ /** Archive storage (365-day minimum) */
369
+ ARCHIVE = "ARCHIVE",
370
+ /** Durable reduced availability (deprecated) */
371
+ DURABLE_REDUCED_AVAILABILITY = "DURABLE_REDUCED_AVAILABILITY"
372
+ }
373
+ /**
374
+ * GCS predefined ACLs
375
+ */
376
+ export declare enum GCSPredefinedACL {
377
+ /** Owner gets full control */
378
+ PRIVATE = "private",
379
+ /** Owner gets full control, all users get read */
380
+ PUBLIC_READ = "publicRead",
381
+ /** Owner gets full control, all users get read and write */
382
+ PUBLIC_READ_WRITE = "publicReadWrite",
383
+ /** Owner gets full control, authenticated users get read */
384
+ AUTHENTICATED_READ = "authenticatedRead",
385
+ /** Object owner gets full control, bucket owner gets read */
386
+ BUCKET_OWNER_READ = "bucketOwnerRead",
387
+ /** Object owner and bucket owner get full control */
388
+ BUCKET_OWNER_FULL_CONTROL = "bucketOwnerFullControl",
389
+ /** Project team owners get full control */
390
+ PROJECT_PRIVATE = "projectPrivate"
391
+ }
392
+ /**
393
+ * GCS bucket ACL
394
+ */
395
+ export interface GCSBucketAccessControl {
396
+ /** Kind */
397
+ kind: string;
398
+ /** Entity */
399
+ entity: string;
400
+ /** Role */
401
+ role: 'OWNER' | 'READER' | 'WRITER';
402
+ /** Email */
403
+ email?: string;
404
+ /** Entity ID */
405
+ entityId?: string;
406
+ /** Domain */
407
+ domain?: string;
408
+ /** Project team */
409
+ projectTeam?: {
410
+ projectNumber: string;
411
+ team: string;
412
+ };
413
+ /** ETag */
414
+ etag?: string;
415
+ }
416
+ /**
417
+ * GCS CORS configuration
418
+ */
419
+ export interface GCSCORSConfiguration {
420
+ /** Max age in seconds */
421
+ maxAgeSeconds?: number;
422
+ /** Allowed methods */
423
+ method?: string[];
424
+ /** Allowed origins */
425
+ origin?: string[];
426
+ /** Response headers */
427
+ responseHeader?: string[];
428
+ }
429
+ /**
430
+ * Options for generating signed URLs
431
+ */
432
+ export interface GCSSignedUrlOptions {
433
+ /** Expiration time */
434
+ expires: Date | number;
435
+ /** HTTP method */
436
+ method?: 'GET' | 'PUT' | 'POST' | 'DELETE' | 'HEAD';
437
+ /** Content type */
438
+ contentType?: string;
439
+ /** Content MD5 */
440
+ contentMd5?: string;
441
+ /** Extension headers */
442
+ extensionHeaders?: Record<string, string>;
443
+ /** Query parameters */
444
+ queryParams?: Record<string, string>;
445
+ /** Version (v2 or v4) */
446
+ version?: 'v2' | 'v4';
447
+ /** Virtual hosted style */
448
+ virtualHostedStyle?: boolean;
449
+ /** Bucket-bound hostname */
450
+ bucketBoundHostname?: string;
451
+ }
452
+ /**
453
+ * Signed URL result
454
+ */
455
+ export interface GCSSignedUrl {
456
+ /** Signed URL */
457
+ url: string;
458
+ /** Expiration timestamp */
459
+ expiresAt: Date;
460
+ /** HTTP method */
461
+ method: string;
462
+ }
463
+ /**
464
+ * GCS notification configuration
465
+ */
466
+ export interface GCSNotification {
467
+ /** Notification ID */
468
+ id: string;
469
+ /** Topic (Pub/Sub topic) */
470
+ topic: string;
471
+ /** Event types */
472
+ event_types?: string[];
473
+ /** Custom attributes */
474
+ custom_attributes?: Record<string, string>;
475
+ /** Object name prefix */
476
+ object_name_prefix?: string;
477
+ /** Payload format */
478
+ payload_format?: 'JSON_API_V1' | 'NONE';
479
+ /** ETag */
480
+ etag?: string;
481
+ }
482
+ /**
483
+ * GCS customer-supplied encryption key
484
+ */
485
+ export interface GCSCustomerEncryption {
486
+ /** Encryption algorithm */
487
+ encryptionAlgorithm: 'AES256';
488
+ /** Base64-encoded encryption key */
489
+ key: string;
490
+ /** Base64-encoded SHA256 of the key */
491
+ keySha256: string;
492
+ }
493
+ /**
494
+ * GCS KMS encryption
495
+ */
496
+ export interface GCSKMSEncryption {
497
+ /** KMS key name */
498
+ kmsKeyName: string;
499
+ }
500
+ //# sourceMappingURL=gcs-compatible.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gcs-compatible.d.ts","sourceRoot":"","sources":["../src/gcs-compatible.ts"],"names":[],"mappings":"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"}