@elaraai/east-node-io 0.0.1-beta.29 → 0.0.1-beta.30
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/storage/index.d.ts +2 -2
- package/dist/storage/index.js +1 -1
- package/dist/storage/s3.d.ts +36 -29
- package/dist/storage/s3.d.ts.map +1 -1
- package/dist/storage/s3.js +18 -9
- package/dist/storage/s3.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
package/dist/storage/index.d.ts
CHANGED
|
@@ -199,7 +199,7 @@ export declare const Storage: {
|
|
|
199
199
|
* endpoint: variant('none', null),
|
|
200
200
|
* });
|
|
201
201
|
*
|
|
202
|
-
* $.return(Storage.S3.listObjects(config, prefix, 100n));
|
|
202
|
+
* $.return(Storage.S3.listObjects(config, prefix, 100n, variant('none', null)));
|
|
203
203
|
* });
|
|
204
204
|
*
|
|
205
205
|
* const compiled = East.compileAsync(listFiles.toIR(), Storage.S3.Implementation);
|
|
@@ -212,7 +212,7 @@ export declare const Storage: {
|
|
|
212
212
|
readonly accessKeyId: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
|
|
213
213
|
readonly secretAccessKey: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
|
|
214
214
|
readonly endpoint: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
|
|
215
|
-
}>, import("@elaraai/east").StringType, import("@elaraai/east").IntegerType], import("@elaraai/east").StructType<{
|
|
215
|
+
}>, import("@elaraai/east").StringType, import("@elaraai/east").IntegerType, import("@elaraai/east").OptionType<import("@elaraai/east").StringType>], import("@elaraai/east").StructType<{
|
|
216
216
|
readonly objects: import("@elaraai/east").ArrayType<import("@elaraai/east").StructType<{
|
|
217
217
|
readonly key: import("@elaraai/east").StringType;
|
|
218
218
|
readonly size: import("@elaraai/east").IntegerType;
|
package/dist/storage/index.js
CHANGED
|
@@ -173,7 +173,7 @@ export const Storage = {
|
|
|
173
173
|
* endpoint: variant('none', null),
|
|
174
174
|
* });
|
|
175
175
|
*
|
|
176
|
-
* $.return(Storage.S3.listObjects(config, prefix, 100n));
|
|
176
|
+
* $.return(Storage.S3.listObjects(config, prefix, 100n, variant('none', null)));
|
|
177
177
|
* });
|
|
178
178
|
*
|
|
179
179
|
* const compiled = East.compileAsync(listFiles.toIR(), Storage.S3.Implementation);
|
package/dist/storage/s3.d.ts
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
*
|
|
11
11
|
* @packageDocumentation
|
|
12
12
|
*/
|
|
13
|
-
import { BlobType, StringType, IntegerType, NullType } from "@elaraai/east";
|
|
13
|
+
import { BlobType, StringType, IntegerType, NullType, OptionType } from "@elaraai/east";
|
|
14
14
|
import type { PlatformFunction } from "@elaraai/east/internal";
|
|
15
15
|
/**
|
|
16
16
|
* Uploads an object to S3.
|
|
@@ -65,9 +65,9 @@ import type { PlatformFunction } from "@elaraai/east/internal";
|
|
|
65
65
|
export declare const s3_put_object: import("@elaraai/east").AsyncPlatformDefinition<[import("@elaraai/east").StructType<{
|
|
66
66
|
readonly region: StringType;
|
|
67
67
|
readonly bucket: StringType;
|
|
68
|
-
readonly accessKeyId:
|
|
69
|
-
readonly secretAccessKey:
|
|
70
|
-
readonly endpoint:
|
|
68
|
+
readonly accessKeyId: OptionType<StringType>;
|
|
69
|
+
readonly secretAccessKey: OptionType<StringType>;
|
|
70
|
+
readonly endpoint: OptionType<StringType>;
|
|
71
71
|
}>, StringType, BlobType], NullType>;
|
|
72
72
|
/**
|
|
73
73
|
* Downloads an object from S3.
|
|
@@ -118,9 +118,9 @@ export declare const s3_put_object: import("@elaraai/east").AsyncPlatformDefinit
|
|
|
118
118
|
export declare const s3_get_object: import("@elaraai/east").AsyncPlatformDefinition<[import("@elaraai/east").StructType<{
|
|
119
119
|
readonly region: StringType;
|
|
120
120
|
readonly bucket: StringType;
|
|
121
|
-
readonly accessKeyId:
|
|
122
|
-
readonly secretAccessKey:
|
|
123
|
-
readonly endpoint:
|
|
121
|
+
readonly accessKeyId: OptionType<StringType>;
|
|
122
|
+
readonly secretAccessKey: OptionType<StringType>;
|
|
123
|
+
readonly endpoint: OptionType<StringType>;
|
|
124
124
|
}>, StringType], BlobType>;
|
|
125
125
|
/**
|
|
126
126
|
* Retrieves object metadata from S3 without downloading the file.
|
|
@@ -181,15 +181,15 @@ export declare const s3_get_object: import("@elaraai/east").AsyncPlatformDefinit
|
|
|
181
181
|
export declare const s3_head_object: import("@elaraai/east").AsyncPlatformDefinition<[import("@elaraai/east").StructType<{
|
|
182
182
|
readonly region: StringType;
|
|
183
183
|
readonly bucket: StringType;
|
|
184
|
-
readonly accessKeyId:
|
|
185
|
-
readonly secretAccessKey:
|
|
186
|
-
readonly endpoint:
|
|
184
|
+
readonly accessKeyId: OptionType<StringType>;
|
|
185
|
+
readonly secretAccessKey: OptionType<StringType>;
|
|
186
|
+
readonly endpoint: OptionType<StringType>;
|
|
187
187
|
}>, StringType], import("@elaraai/east").StructType<{
|
|
188
188
|
readonly key: StringType;
|
|
189
189
|
readonly size: IntegerType;
|
|
190
190
|
readonly lastModified: import("@elaraai/east").DateTimeType;
|
|
191
|
-
readonly contentType:
|
|
192
|
-
readonly etag:
|
|
191
|
+
readonly contentType: OptionType<StringType>;
|
|
192
|
+
readonly etag: OptionType<StringType>;
|
|
193
193
|
}>>;
|
|
194
194
|
/**
|
|
195
195
|
* Deletes an object from S3.
|
|
@@ -238,15 +238,16 @@ export declare const s3_head_object: import("@elaraai/east").AsyncPlatformDefini
|
|
|
238
238
|
export declare const s3_delete_object: import("@elaraai/east").AsyncPlatformDefinition<[import("@elaraai/east").StructType<{
|
|
239
239
|
readonly region: StringType;
|
|
240
240
|
readonly bucket: StringType;
|
|
241
|
-
readonly accessKeyId:
|
|
242
|
-
readonly secretAccessKey:
|
|
243
|
-
readonly endpoint:
|
|
241
|
+
readonly accessKeyId: OptionType<StringType>;
|
|
242
|
+
readonly secretAccessKey: OptionType<StringType>;
|
|
243
|
+
readonly endpoint: OptionType<StringType>;
|
|
244
244
|
}>, StringType], NullType>;
|
|
245
245
|
/**
|
|
246
246
|
* Lists objects in an S3 bucket with a prefix.
|
|
247
247
|
*
|
|
248
248
|
* Retrieves metadata for objects matching a prefix, with pagination support.
|
|
249
|
-
* Returns up to `maxKeys` objects per request.
|
|
249
|
+
* Returns up to `maxKeys` objects per request. Pass a continuation token
|
|
250
|
+
* from a previous result to fetch the next page.
|
|
250
251
|
*
|
|
251
252
|
* This is a platform function for the East language, enabling S3 object storage
|
|
252
253
|
* operations in East programs running on Node.js.
|
|
@@ -254,6 +255,7 @@ export declare const s3_delete_object: import("@elaraai/east").AsyncPlatformDefi
|
|
|
254
255
|
* @param config - S3 configuration
|
|
255
256
|
* @param prefix - Prefix to filter objects (empty string for all objects)
|
|
256
257
|
* @param maxKeys - Maximum number of objects to return (1-1000)
|
|
258
|
+
* @param continuationToken - Continuation token from a previous list result for pagination (None for first page)
|
|
257
259
|
* @returns List result with objects and pagination info
|
|
258
260
|
*
|
|
259
261
|
* @throws {EastError} When listing fails due to:
|
|
@@ -277,8 +279,12 @@ export declare const s3_delete_object: import("@elaraai/east").AsyncPlatformDefi
|
|
|
277
279
|
* endpoint: East.none(),
|
|
278
280
|
* });
|
|
279
281
|
*
|
|
280
|
-
*
|
|
281
|
-
*
|
|
282
|
+
* // First page
|
|
283
|
+
* const result = $.let(Storage.S3.listObjects(config, "reports/", 100n, East.none()));
|
|
284
|
+
*
|
|
285
|
+
* // Next page using continuation token
|
|
286
|
+
* const page2 = $.let(Storage.S3.listObjects(config, "reports/", 100n, result.continuationToken));
|
|
287
|
+
* return page2.objects;
|
|
282
288
|
* });
|
|
283
289
|
*
|
|
284
290
|
* const compiled = East.compileAsync(listReports.toIR(), Storage.S3.Implementation);
|
|
@@ -287,25 +293,26 @@ export declare const s3_delete_object: import("@elaraai/east").AsyncPlatformDefi
|
|
|
287
293
|
*
|
|
288
294
|
* @remarks
|
|
289
295
|
* - Returns objects sorted by key (lexicographically)
|
|
290
|
-
* -
|
|
296
|
+
* - Pass the `continuationToken` from the result to fetch the next page
|
|
297
|
+
* - When `isTruncated` is false, there are no more pages
|
|
291
298
|
* - maxKeys is clamped to 1-1000 range
|
|
292
299
|
*/
|
|
293
300
|
export declare const s3_list_objects: import("@elaraai/east").AsyncPlatformDefinition<[import("@elaraai/east").StructType<{
|
|
294
301
|
readonly region: StringType;
|
|
295
302
|
readonly bucket: StringType;
|
|
296
|
-
readonly accessKeyId:
|
|
297
|
-
readonly secretAccessKey:
|
|
298
|
-
readonly endpoint:
|
|
299
|
-
}>, StringType, IntegerType], import("@elaraai/east").StructType<{
|
|
303
|
+
readonly accessKeyId: OptionType<StringType>;
|
|
304
|
+
readonly secretAccessKey: OptionType<StringType>;
|
|
305
|
+
readonly endpoint: OptionType<StringType>;
|
|
306
|
+
}>, StringType, IntegerType, OptionType<StringType>], import("@elaraai/east").StructType<{
|
|
300
307
|
readonly objects: import("@elaraai/east").ArrayType<import("@elaraai/east").StructType<{
|
|
301
308
|
readonly key: StringType;
|
|
302
309
|
readonly size: IntegerType;
|
|
303
310
|
readonly lastModified: import("@elaraai/east").DateTimeType;
|
|
304
|
-
readonly contentType:
|
|
305
|
-
readonly etag:
|
|
311
|
+
readonly contentType: OptionType<StringType>;
|
|
312
|
+
readonly etag: OptionType<StringType>;
|
|
306
313
|
}>>;
|
|
307
314
|
readonly isTruncated: import("@elaraai/east").BooleanType;
|
|
308
|
-
readonly continuationToken:
|
|
315
|
+
readonly continuationToken: OptionType<StringType>;
|
|
309
316
|
}>>;
|
|
310
317
|
/**
|
|
311
318
|
* Generates a presigned URL for temporary access to an S3 object.
|
|
@@ -359,9 +366,9 @@ export declare const s3_list_objects: import("@elaraai/east").AsyncPlatformDefin
|
|
|
359
366
|
export declare const s3_presign_url: import("@elaraai/east").AsyncPlatformDefinition<[import("@elaraai/east").StructType<{
|
|
360
367
|
readonly region: StringType;
|
|
361
368
|
readonly bucket: StringType;
|
|
362
|
-
readonly accessKeyId:
|
|
363
|
-
readonly secretAccessKey:
|
|
364
|
-
readonly endpoint:
|
|
369
|
+
readonly accessKeyId: OptionType<StringType>;
|
|
370
|
+
readonly secretAccessKey: OptionType<StringType>;
|
|
371
|
+
readonly endpoint: OptionType<StringType>;
|
|
365
372
|
}>, StringType, IntegerType], StringType>;
|
|
366
373
|
/**
|
|
367
374
|
* Node.js implementation of S3 platform functions.
|
package/dist/storage/s3.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s3.d.ts","sourceRoot":"","sources":["../../src/storage/s3.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AAEH,OAAO,EAAQ,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAW,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"s3.d.ts","sourceRoot":"","sources":["../../src/storage/s3.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AAEH,OAAO,EAAQ,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAW,MAAM,eAAe,CAAC;AAEvG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AA+C/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,eAAO,MAAM,aAAa;;;;;;oCAAsF,CAAC;AAEjH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,eAAO,MAAM,aAAa;;;;;;0BAA4E,CAAC;AACvG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;GAAyF,CAAC;AAErH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,eAAO,MAAM,gBAAgB;;;;;;0BAA+E,CAAC;AAE7G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;GAA2H,CAAC;AAExJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,eAAO,MAAM,cAAc;;;;;;yCAA4F,CAAC;AAExH;;;;;GAKG;AACH,eAAO,MAAM,MAAM,EAAE,gBAAgB,EA8LpC,CAAC"}
|
package/dist/storage/s3.js
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
*
|
|
11
11
|
* @packageDocumentation
|
|
12
12
|
*/
|
|
13
|
-
import { East, BlobType, StringType, IntegerType, NullType, variant } from "@elaraai/east";
|
|
13
|
+
import { East, BlobType, StringType, IntegerType, NullType, OptionType, variant } from "@elaraai/east";
|
|
14
14
|
import { EastError } from "@elaraai/east/internal";
|
|
15
15
|
import { S3Client, PutObjectCommand, GetObjectCommand, DeleteObjectCommand, ListObjectsV2Command, HeadObjectCommand, } from "@aws-sdk/client-s3";
|
|
16
16
|
import { getSignedUrl } from "@aws-sdk/s3-request-presigner";
|
|
@@ -245,7 +245,8 @@ export const s3_delete_object = East.asyncPlatform("s3_delete_object", [S3Config
|
|
|
245
245
|
* Lists objects in an S3 bucket with a prefix.
|
|
246
246
|
*
|
|
247
247
|
* Retrieves metadata for objects matching a prefix, with pagination support.
|
|
248
|
-
* Returns up to `maxKeys` objects per request.
|
|
248
|
+
* Returns up to `maxKeys` objects per request. Pass a continuation token
|
|
249
|
+
* from a previous result to fetch the next page.
|
|
249
250
|
*
|
|
250
251
|
* This is a platform function for the East language, enabling S3 object storage
|
|
251
252
|
* operations in East programs running on Node.js.
|
|
@@ -253,6 +254,7 @@ export const s3_delete_object = East.asyncPlatform("s3_delete_object", [S3Config
|
|
|
253
254
|
* @param config - S3 configuration
|
|
254
255
|
* @param prefix - Prefix to filter objects (empty string for all objects)
|
|
255
256
|
* @param maxKeys - Maximum number of objects to return (1-1000)
|
|
257
|
+
* @param continuationToken - Continuation token from a previous list result for pagination (None for first page)
|
|
256
258
|
* @returns List result with objects and pagination info
|
|
257
259
|
*
|
|
258
260
|
* @throws {EastError} When listing fails due to:
|
|
@@ -276,8 +278,12 @@ export const s3_delete_object = East.asyncPlatform("s3_delete_object", [S3Config
|
|
|
276
278
|
* endpoint: East.none(),
|
|
277
279
|
* });
|
|
278
280
|
*
|
|
279
|
-
*
|
|
280
|
-
*
|
|
281
|
+
* // First page
|
|
282
|
+
* const result = $.let(Storage.S3.listObjects(config, "reports/", 100n, East.none()));
|
|
283
|
+
*
|
|
284
|
+
* // Next page using continuation token
|
|
285
|
+
* const page2 = $.let(Storage.S3.listObjects(config, "reports/", 100n, result.continuationToken));
|
|
286
|
+
* return page2.objects;
|
|
281
287
|
* });
|
|
282
288
|
*
|
|
283
289
|
* const compiled = East.compileAsync(listReports.toIR(), Storage.S3.Implementation);
|
|
@@ -286,10 +292,11 @@ export const s3_delete_object = East.asyncPlatform("s3_delete_object", [S3Config
|
|
|
286
292
|
*
|
|
287
293
|
* @remarks
|
|
288
294
|
* - Returns objects sorted by key (lexicographically)
|
|
289
|
-
* -
|
|
295
|
+
* - Pass the `continuationToken` from the result to fetch the next page
|
|
296
|
+
* - When `isTruncated` is false, there are no more pages
|
|
290
297
|
* - maxKeys is clamped to 1-1000 range
|
|
291
298
|
*/
|
|
292
|
-
export const s3_list_objects = East.asyncPlatform("s3_list_objects", [S3ConfigType, StringType, IntegerType], S3ListResultType);
|
|
299
|
+
export const s3_list_objects = East.asyncPlatform("s3_list_objects", [S3ConfigType, StringType, IntegerType, OptionType(StringType)], S3ListResultType);
|
|
293
300
|
/**
|
|
294
301
|
* Generates a presigned URL for temporary access to an S3 object.
|
|
295
302
|
*
|
|
@@ -438,17 +445,19 @@ export const S3Impl = [
|
|
|
438
445
|
});
|
|
439
446
|
}
|
|
440
447
|
}),
|
|
441
|
-
s3_list_objects.implement(async (config, prefix, maxKeys) => {
|
|
448
|
+
s3_list_objects.implement(async (config, prefix, maxKeys, continuationToken) => {
|
|
442
449
|
try {
|
|
443
450
|
const client = createS3Client(config);
|
|
444
451
|
// Clamp maxKeys to valid range (1-1000)
|
|
445
452
|
const maxKeysNum = Number(maxKeys);
|
|
446
453
|
const clampedMaxKeys = Math.max(1, Math.min(1000, maxKeysNum));
|
|
447
|
-
const
|
|
454
|
+
const commandInput = {
|
|
448
455
|
Bucket: config.bucket,
|
|
449
456
|
Prefix: prefix,
|
|
450
457
|
MaxKeys: clampedMaxKeys,
|
|
451
|
-
|
|
458
|
+
ContinuationToken: continuationToken.type === 'some' ? continuationToken.value : undefined,
|
|
459
|
+
};
|
|
460
|
+
const command = new ListObjectsV2Command(commandInput);
|
|
452
461
|
const response = await client.send(command);
|
|
453
462
|
// Convert S3 objects to East metadata format
|
|
454
463
|
// Note: ContentType is not part of _Object in ListObjectsV2, only in HeadObject/GetObject
|
package/dist/storage/s3.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s3.js","sourceRoot":"","sources":["../../src/storage/s3.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"s3.js","sourceRoot":"","sources":["../../src/storage/s3.ts"],"names":[],"mappings":"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"}
|