@elaraai/east-node-io 0.0.1-beta.9 → 1.0.0

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.
Files changed (180) hide show
  1. package/CLA.md +1 -1
  2. package/CONTRIBUTING.md +3 -3
  3. package/LICENSE.md +31 -0
  4. package/README.md +56 -19
  5. package/dist/{compression → src/compression}/gzip.d.ts +1 -1
  6. package/dist/src/compression/gzip.d.ts.map +1 -0
  7. package/dist/{compression → src/compression}/gzip.js +3 -3
  8. package/dist/src/compression/gzip.js.map +1 -0
  9. package/dist/{compression → src/compression}/index.d.ts +16 -16
  10. package/dist/src/compression/index.d.ts.map +1 -0
  11. package/dist/src/compression/index.js.map +1 -0
  12. package/dist/{compression → src/compression}/tar.d.ts +2 -2
  13. package/dist/src/compression/tar.d.ts.map +1 -0
  14. package/dist/{compression → src/compression}/tar.js +7 -7
  15. package/dist/src/compression/tar.js.map +1 -0
  16. package/dist/{compression → src/compression}/types.d.ts +10 -10
  17. package/dist/src/compression/types.d.ts.map +1 -0
  18. package/dist/src/compression/types.js.map +1 -0
  19. package/dist/{compression → src/compression}/zip.d.ts +3 -3
  20. package/dist/src/compression/zip.d.ts.map +1 -0
  21. package/dist/{compression → src/compression}/zip.js +4 -4
  22. package/dist/src/compression/zip.js.map +1 -0
  23. package/dist/src/connection/index.d.ts.map +1 -0
  24. package/dist/{connection → src/connection}/index.js +2 -2
  25. package/dist/src/connection/index.js.map +1 -0
  26. package/dist/{format → src/format}/index.d.ts +77 -77
  27. package/dist/src/format/index.d.ts.map +1 -0
  28. package/dist/src/format/index.js.map +1 -0
  29. package/dist/{format → src/format}/types.d.ts +53 -53
  30. package/dist/src/format/types.d.ts.map +1 -0
  31. package/dist/src/format/types.js.map +1 -0
  32. package/dist/{format → src/format}/xlsx.d.ts +20 -20
  33. package/dist/src/format/xlsx.d.ts.map +1 -0
  34. package/dist/{format → src/format}/xlsx.js +6 -6
  35. package/dist/src/format/xlsx.js.map +1 -0
  36. package/dist/{format → src/format}/xml.d.ts +54 -54
  37. package/dist/src/format/xml.d.ts.map +1 -0
  38. package/dist/{format → src/format}/xml.js +14 -14
  39. package/dist/src/format/xml.js.map +1 -0
  40. package/dist/src/index.d.ts.map +1 -0
  41. package/dist/src/index.js.map +1 -0
  42. package/dist/{nosql → src/nosql}/index.d.ts +20 -20
  43. package/dist/src/nosql/index.d.ts.map +1 -0
  44. package/dist/src/nosql/index.js.map +1 -0
  45. package/dist/{nosql → src/nosql}/mongodb.d.ts +5 -5
  46. package/dist/src/nosql/mongodb.d.ts.map +1 -0
  47. package/dist/{nosql → src/nosql}/mongodb.js +8 -8
  48. package/dist/src/nosql/mongodb.js.map +1 -0
  49. package/dist/{nosql → src/nosql}/redis.d.ts +5 -5
  50. package/dist/src/nosql/redis.d.ts.map +1 -0
  51. package/dist/{nosql → src/nosql}/redis.js +6 -6
  52. package/dist/src/nosql/redis.js.map +1 -0
  53. package/dist/{nosql → src/nosql}/types.d.ts +10 -10
  54. package/dist/src/nosql/types.d.ts.map +1 -0
  55. package/dist/src/nosql/types.js.map +1 -0
  56. package/dist/src/platform.d.ts.map +1 -0
  57. package/dist/{platform.js → src/platform.js} +2 -0
  58. package/dist/src/platform.js.map +1 -0
  59. package/dist/src/sql/access.d.ts +243 -0
  60. package/dist/src/sql/access.d.ts.map +1 -0
  61. package/dist/src/sql/access.js +427 -0
  62. package/dist/src/sql/access.js.map +1 -0
  63. package/dist/src/sql/index.d.ts +1112 -0
  64. package/dist/src/sql/index.d.ts.map +1 -0
  65. package/dist/{sql → src/sql}/index.js +296 -4
  66. package/dist/src/sql/index.js.map +1 -0
  67. package/dist/{sql → src/sql}/mysql.d.ts +110 -32
  68. package/dist/src/sql/mysql.d.ts.map +1 -0
  69. package/dist/{sql → src/sql}/mysql.js +207 -6
  70. package/dist/src/sql/mysql.js.map +1 -0
  71. package/dist/{sql → src/sql}/postgres.d.ts +110 -32
  72. package/dist/src/sql/postgres.d.ts.map +1 -0
  73. package/dist/{sql → src/sql}/postgres.js +199 -6
  74. package/dist/src/sql/postgres.js.map +1 -0
  75. package/dist/{sql → src/sql}/sqlite.d.ts +108 -30
  76. package/dist/src/sql/sqlite.d.ts.map +1 -0
  77. package/dist/{sql → src/sql}/sqlite.js +209 -6
  78. package/dist/src/sql/sqlite.js.map +1 -0
  79. package/dist/src/sql/types.d.ts +269 -0
  80. package/dist/src/sql/types.d.ts.map +1 -0
  81. package/dist/{sql → src/sql}/types.js +65 -1
  82. package/dist/src/sql/types.js.map +1 -0
  83. package/dist/{storage → src/storage}/index.d.ts +63 -63
  84. package/dist/src/storage/index.d.ts.map +1 -0
  85. package/dist/{storage → src/storage}/index.js +1 -1
  86. package/dist/src/storage/index.js.map +1 -0
  87. package/dist/{storage → src/storage}/s3.d.ts +56 -49
  88. package/dist/src/storage/s3.d.ts.map +1 -0
  89. package/dist/{storage → src/storage}/s3.js +24 -15
  90. package/dist/src/storage/s3.js.map +1 -0
  91. package/dist/{storage → src/storage}/types.d.ts +18 -18
  92. package/dist/src/storage/types.d.ts.map +1 -0
  93. package/dist/src/storage/types.js.map +1 -0
  94. package/dist/{transfer → src/transfer}/ftp.d.ts +10 -10
  95. package/dist/src/transfer/ftp.d.ts.map +1 -0
  96. package/dist/{transfer → src/transfer}/ftp.js +6 -6
  97. package/dist/src/transfer/ftp.js.map +1 -0
  98. package/dist/{transfer → src/transfer}/index.d.ts +40 -40
  99. package/dist/src/transfer/index.d.ts.map +1 -0
  100. package/dist/src/transfer/index.js.map +1 -0
  101. package/dist/{transfer → src/transfer}/sftp.d.ts +10 -10
  102. package/dist/src/transfer/sftp.d.ts.map +1 -0
  103. package/dist/{transfer → src/transfer}/sftp.js +6 -6
  104. package/dist/src/transfer/sftp.js.map +1 -0
  105. package/dist/{transfer → src/transfer}/types.d.ts +15 -15
  106. package/dist/src/transfer/types.d.ts.map +1 -0
  107. package/dist/src/transfer/types.js.map +1 -0
  108. package/package.json +35 -54
  109. package/dist/compression/gzip.d.ts.map +0 -1
  110. package/dist/compression/gzip.js.map +0 -1
  111. package/dist/compression/index.d.ts.map +0 -1
  112. package/dist/compression/index.js.map +0 -1
  113. package/dist/compression/tar.d.ts.map +0 -1
  114. package/dist/compression/tar.js.map +0 -1
  115. package/dist/compression/types.d.ts.map +0 -1
  116. package/dist/compression/types.js.map +0 -1
  117. package/dist/compression/zip.d.ts.map +0 -1
  118. package/dist/compression/zip.js.map +0 -1
  119. package/dist/connection/index.d.ts.map +0 -1
  120. package/dist/connection/index.js.map +0 -1
  121. package/dist/format/index.d.ts.map +0 -1
  122. package/dist/format/index.js.map +0 -1
  123. package/dist/format/types.d.ts.map +0 -1
  124. package/dist/format/types.js.map +0 -1
  125. package/dist/format/xlsx.d.ts.map +0 -1
  126. package/dist/format/xlsx.js.map +0 -1
  127. package/dist/format/xml.d.ts.map +0 -1
  128. package/dist/format/xml.js.map +0 -1
  129. package/dist/index.d.ts.map +0 -1
  130. package/dist/index.js.map +0 -1
  131. package/dist/nosql/index.d.ts.map +0 -1
  132. package/dist/nosql/index.js.map +0 -1
  133. package/dist/nosql/mongodb.d.ts.map +0 -1
  134. package/dist/nosql/mongodb.js.map +0 -1
  135. package/dist/nosql/redis.d.ts.map +0 -1
  136. package/dist/nosql/redis.js.map +0 -1
  137. package/dist/nosql/types.d.ts.map +0 -1
  138. package/dist/nosql/types.js.map +0 -1
  139. package/dist/platform.d.ts.map +0 -1
  140. package/dist/platform.js.map +0 -1
  141. package/dist/sql/index.d.ts +0 -777
  142. package/dist/sql/index.d.ts.map +0 -1
  143. package/dist/sql/index.js.map +0 -1
  144. package/dist/sql/mysql.d.ts.map +0 -1
  145. package/dist/sql/mysql.js.map +0 -1
  146. package/dist/sql/postgres.d.ts.map +0 -1
  147. package/dist/sql/postgres.js.map +0 -1
  148. package/dist/sql/sqlite.d.ts.map +0 -1
  149. package/dist/sql/sqlite.js.map +0 -1
  150. package/dist/sql/types.d.ts +0 -205
  151. package/dist/sql/types.d.ts.map +0 -1
  152. package/dist/sql/types.js.map +0 -1
  153. package/dist/storage/index.d.ts.map +0 -1
  154. package/dist/storage/index.js.map +0 -1
  155. package/dist/storage/s3.d.ts.map +0 -1
  156. package/dist/storage/s3.js.map +0 -1
  157. package/dist/storage/types.d.ts.map +0 -1
  158. package/dist/storage/types.js.map +0 -1
  159. package/dist/transfer/ftp.d.ts.map +0 -1
  160. package/dist/transfer/ftp.js.map +0 -1
  161. package/dist/transfer/index.d.ts.map +0 -1
  162. package/dist/transfer/index.js.map +0 -1
  163. package/dist/transfer/sftp.d.ts.map +0 -1
  164. package/dist/transfer/sftp.js.map +0 -1
  165. package/dist/transfer/types.d.ts.map +0 -1
  166. package/dist/transfer/types.js.map +0 -1
  167. package/dist/tsconfig.tsbuildinfo +0 -1
  168. /package/dist/{compression → src/compression}/index.js +0 -0
  169. /package/dist/{compression → src/compression}/types.js +0 -0
  170. /package/dist/{connection → src/connection}/index.d.ts +0 -0
  171. /package/dist/{format → src/format}/index.js +0 -0
  172. /package/dist/{format → src/format}/types.js +0 -0
  173. /package/dist/{index.d.ts → src/index.d.ts} +0 -0
  174. /package/dist/{index.js → src/index.js} +0 -0
  175. /package/dist/{nosql → src/nosql}/index.js +0 -0
  176. /package/dist/{nosql → src/nosql}/types.js +0 -0
  177. /package/dist/{platform.d.ts → src/platform.d.ts} +0 -0
  178. /package/dist/{storage → src/storage}/types.js +0 -0
  179. /package/dist/{transfer → src/transfer}/index.js +0 -0
  180. /package/dist/{transfer → src/transfer}/types.js +0 -0
@@ -76,11 +76,11 @@ export declare const Storage: {
76
76
  * ```
77
77
  */
78
78
  readonly putObject: import("@elaraai/east").AsyncPlatformDefinition<[import("@elaraai/east").StructType<{
79
- region: import("@elaraai/east").StringType;
80
- bucket: import("@elaraai/east").StringType;
81
- accessKeyId: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
82
- secretAccessKey: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
83
- endpoint: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
79
+ readonly region: import("@elaraai/east").StringType;
80
+ readonly bucket: import("@elaraai/east").StringType;
81
+ readonly accessKeyId: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
82
+ readonly secretAccessKey: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
83
+ readonly endpoint: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
84
84
  }>, import("@elaraai/east").StringType, import("@elaraai/east").BlobType], import("@elaraai/east").NullType>;
85
85
  /**
86
86
  * Downloads an object from S3.
@@ -107,11 +107,11 @@ export declare const Storage: {
107
107
  * ```
108
108
  */
109
109
  readonly getObject: import("@elaraai/east").AsyncPlatformDefinition<[import("@elaraai/east").StructType<{
110
- region: import("@elaraai/east").StringType;
111
- bucket: import("@elaraai/east").StringType;
112
- accessKeyId: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
113
- secretAccessKey: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
114
- endpoint: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
110
+ readonly region: import("@elaraai/east").StringType;
111
+ readonly bucket: import("@elaraai/east").StringType;
112
+ readonly accessKeyId: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
113
+ readonly secretAccessKey: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
114
+ readonly endpoint: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
115
115
  }>, import("@elaraai/east").StringType], import("@elaraai/east").BlobType>;
116
116
  /**
117
117
  * Retrieves object metadata without downloading.
@@ -139,17 +139,17 @@ export declare const Storage: {
139
139
  * ```
140
140
  */
141
141
  readonly headObject: import("@elaraai/east").AsyncPlatformDefinition<[import("@elaraai/east").StructType<{
142
- region: import("@elaraai/east").StringType;
143
- bucket: import("@elaraai/east").StringType;
144
- accessKeyId: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
145
- secretAccessKey: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
146
- endpoint: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
142
+ readonly region: import("@elaraai/east").StringType;
143
+ readonly bucket: import("@elaraai/east").StringType;
144
+ readonly accessKeyId: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
145
+ readonly secretAccessKey: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
146
+ readonly endpoint: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
147
147
  }>, import("@elaraai/east").StringType], import("@elaraai/east").StructType<{
148
- key: import("@elaraai/east").StringType;
149
- size: import("@elaraai/east").IntegerType;
150
- lastModified: import("@elaraai/east").DateTimeType;
151
- contentType: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
152
- etag: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
148
+ readonly key: import("@elaraai/east").StringType;
149
+ readonly size: import("@elaraai/east").IntegerType;
150
+ readonly lastModified: import("@elaraai/east").DateTimeType;
151
+ readonly contentType: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
152
+ readonly etag: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
153
153
  }>>;
154
154
  /**
155
155
  * Deletes an object from S3.
@@ -176,11 +176,11 @@ export declare const Storage: {
176
176
  * ```
177
177
  */
178
178
  readonly deleteObject: import("@elaraai/east").AsyncPlatformDefinition<[import("@elaraai/east").StructType<{
179
- region: import("@elaraai/east").StringType;
180
- bucket: import("@elaraai/east").StringType;
181
- accessKeyId: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
182
- secretAccessKey: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
183
- endpoint: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
179
+ readonly region: import("@elaraai/east").StringType;
180
+ readonly bucket: import("@elaraai/east").StringType;
181
+ readonly accessKeyId: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
182
+ readonly secretAccessKey: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
183
+ readonly endpoint: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
184
184
  }>, import("@elaraai/east").StringType], import("@elaraai/east").NullType>;
185
185
  /**
186
186
  * Lists objects in an S3 bucket with a prefix.
@@ -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);
@@ -207,21 +207,21 @@ export declare const Storage: {
207
207
  * ```
208
208
  */
209
209
  readonly listObjects: import("@elaraai/east").AsyncPlatformDefinition<[import("@elaraai/east").StructType<{
210
- region: import("@elaraai/east").StringType;
211
- bucket: import("@elaraai/east").StringType;
212
- accessKeyId: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
213
- secretAccessKey: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
214
- endpoint: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
215
- }>, import("@elaraai/east").StringType, import("@elaraai/east").IntegerType], import("@elaraai/east").StructType<{
216
- objects: import("@elaraai/east").ArrayType<import("@elaraai/east").StructType<{
217
- key: import("@elaraai/east").StringType;
218
- size: import("@elaraai/east").IntegerType;
219
- lastModified: import("@elaraai/east").DateTimeType;
220
- contentType: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
221
- etag: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
210
+ readonly region: import("@elaraai/east").StringType;
211
+ readonly bucket: import("@elaraai/east").StringType;
212
+ readonly accessKeyId: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
213
+ readonly secretAccessKey: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
214
+ readonly endpoint: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
215
+ }>, import("@elaraai/east").StringType, import("@elaraai/east").IntegerType, import("@elaraai/east").OptionType<import("@elaraai/east").StringType>], import("@elaraai/east").StructType<{
216
+ readonly objects: import("@elaraai/east").ArrayType<import("@elaraai/east").StructType<{
217
+ readonly key: import("@elaraai/east").StringType;
218
+ readonly size: import("@elaraai/east").IntegerType;
219
+ readonly lastModified: import("@elaraai/east").DateTimeType;
220
+ readonly contentType: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
221
+ readonly etag: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
222
222
  }>>;
223
- isTruncated: import("@elaraai/east").BooleanType;
224
- continuationToken: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
223
+ readonly isTruncated: import("@elaraai/east").BooleanType;
224
+ readonly continuationToken: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
225
225
  }>>;
226
226
  /**
227
227
  * Generates a presigned URL for temporary access to an S3 object.
@@ -248,11 +248,11 @@ export declare const Storage: {
248
248
  * ```
249
249
  */
250
250
  readonly presignUrl: import("@elaraai/east").AsyncPlatformDefinition<[import("@elaraai/east").StructType<{
251
- region: import("@elaraai/east").StringType;
252
- bucket: import("@elaraai/east").StringType;
253
- accessKeyId: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
254
- secretAccessKey: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
255
- endpoint: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
251
+ readonly region: import("@elaraai/east").StringType;
252
+ readonly bucket: import("@elaraai/east").StringType;
253
+ readonly accessKeyId: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
254
+ readonly secretAccessKey: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
255
+ readonly endpoint: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
256
256
  }>, import("@elaraai/east").StringType, import("@elaraai/east").IntegerType], import("@elaraai/east").StringType>;
257
257
  /**
258
258
  * Node.js implementation of S3 platform functions.
@@ -268,35 +268,35 @@ export declare const Storage: {
268
268
  * S3 connection configuration type.
269
269
  */
270
270
  readonly Config: import("@elaraai/east").StructType<{
271
- region: import("@elaraai/east").StringType;
272
- bucket: import("@elaraai/east").StringType;
273
- accessKeyId: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
274
- secretAccessKey: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
275
- endpoint: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
271
+ readonly region: import("@elaraai/east").StringType;
272
+ readonly bucket: import("@elaraai/east").StringType;
273
+ readonly accessKeyId: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
274
+ readonly secretAccessKey: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
275
+ readonly endpoint: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
276
276
  }>;
277
277
  /**
278
278
  * S3 object metadata type.
279
279
  */
280
280
  readonly ObjectMetadata: import("@elaraai/east").StructType<{
281
- key: import("@elaraai/east").StringType;
282
- size: import("@elaraai/east").IntegerType;
283
- lastModified: import("@elaraai/east").DateTimeType;
284
- contentType: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
285
- etag: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
281
+ readonly key: import("@elaraai/east").StringType;
282
+ readonly size: import("@elaraai/east").IntegerType;
283
+ readonly lastModified: import("@elaraai/east").DateTimeType;
284
+ readonly contentType: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
285
+ readonly etag: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
286
286
  }>;
287
287
  /**
288
288
  * S3 list objects result type.
289
289
  */
290
290
  readonly ListResult: import("@elaraai/east").StructType<{
291
- objects: import("@elaraai/east").ArrayType<import("@elaraai/east").StructType<{
292
- key: import("@elaraai/east").StringType;
293
- size: import("@elaraai/east").IntegerType;
294
- lastModified: import("@elaraai/east").DateTimeType;
295
- contentType: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
296
- etag: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
291
+ readonly objects: import("@elaraai/east").ArrayType<import("@elaraai/east").StructType<{
292
+ readonly key: import("@elaraai/east").StringType;
293
+ readonly size: import("@elaraai/east").IntegerType;
294
+ readonly lastModified: import("@elaraai/east").DateTimeType;
295
+ readonly contentType: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
296
+ readonly etag: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
297
297
  }>>;
298
- isTruncated: import("@elaraai/east").BooleanType;
299
- continuationToken: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
298
+ readonly isTruncated: import("@elaraai/east").BooleanType;
299
+ readonly continuationToken: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
300
300
  }>;
301
301
  };
302
302
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AAGH,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAkB3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,OAAO;IAChB;;;;;OAKG;;QAEC;;;;;;;;;;;;;;;;;;;;;;;WAuBG;;;;;;;;QAGH;;;;;;;;;;;;;;;;;;;;;;;WAuBG;;;;;;;;QAGH;;;;;;;;;;;;;;;;;;;;;;;;WAwBG;;;;;;;;;;;;;;QAGH;;;;;;;;;;;;;;;;;;;;;;;WAuBG;;;;;;;;QAGH;;;;;;;;;;;;;;;;;;;;;;;WAuBG;;;;;;;;;;;;;;;;;;QAGH;;;;;;;;;;;;;;;;;;;;;;;WAuBG;;;;;;;;QAGH;;;;WAIG;;QAGH;;WAEG;;YAEC;;eAEG;;;;;;;;YAGH;;eAEG;;;;;;;;YAGH;;eAEG;;;;;;;;;;;;;;CAIL,CAAC"}
@@ -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);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/storage/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AAEH,4BAA4B;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAE3B,6BAA6B;AAC7B,OAAO,EACH,aAAa,EACb,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,MAAM,EACT,MAAM,SAAS,CAAC;AACjB,OAAO,EACH,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EACnB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG;IACnB;;;;;OAKG;IACH,EAAE,EAAE;QACA;;;;;;;;;;;;;;;;;;;;;;;WAuBG;QACH,SAAS,EAAE,aAAa;QAExB;;;;;;;;;;;;;;;;;;;;;;;WAuBG;QACH,SAAS,EAAE,aAAa;QAExB;;;;;;;;;;;;;;;;;;;;;;;;WAwBG;QACH,UAAU,EAAE,cAAc;QAE1B;;;;;;;;;;;;;;;;;;;;;;;WAuBG;QACH,YAAY,EAAE,gBAAgB;QAE9B;;;;;;;;;;;;;;;;;;;;;;;WAuBG;QACH,WAAW,EAAE,eAAe;QAE5B;;;;;;;;;;;;;;;;;;;;;;;WAuBG;QACH,UAAU,EAAE,cAAc;QAE1B;;;;WAIG;QACH,cAAc,EAAE,MAAM;QAEtB;;WAEG;QACH,KAAK,EAAE;YACH;;eAEG;YACH,MAAM,EAAE,YAAY;YAEpB;;eAEG;YACH,cAAc,EAAE,oBAAoB;YAEpC;;eAEG;YACH,UAAU,EAAE,gBAAgB;SAC/B;KACJ;CACK,CAAC"}
@@ -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.
@@ -63,11 +63,11 @@ import type { PlatformFunction } from "@elaraai/east/internal";
63
63
  * - All operations are asynchronous (use East.compileAsync)
64
64
  */
65
65
  export declare const s3_put_object: import("@elaraai/east").AsyncPlatformDefinition<[import("@elaraai/east").StructType<{
66
- region: StringType;
67
- bucket: StringType;
68
- accessKeyId: import("@elaraai/east").OptionType<StringType>;
69
- secretAccessKey: import("@elaraai/east").OptionType<StringType>;
70
- endpoint: import("@elaraai/east").OptionType<StringType>;
66
+ readonly region: StringType;
67
+ readonly bucket: StringType;
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.
@@ -116,11 +116,11 @@ export declare const s3_put_object: import("@elaraai/east").AsyncPlatformDefinit
116
116
  * - Streams large objects automatically
117
117
  */
118
118
  export declare const s3_get_object: import("@elaraai/east").AsyncPlatformDefinition<[import("@elaraai/east").StructType<{
119
- region: StringType;
120
- bucket: StringType;
121
- accessKeyId: import("@elaraai/east").OptionType<StringType>;
122
- secretAccessKey: import("@elaraai/east").OptionType<StringType>;
123
- endpoint: import("@elaraai/east").OptionType<StringType>;
119
+ readonly region: StringType;
120
+ readonly bucket: StringType;
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.
@@ -179,17 +179,17 @@ export declare const s3_get_object: import("@elaraai/east").AsyncPlatformDefinit
179
179
  * - Use this to implement efficient sync/caching logic
180
180
  */
181
181
  export declare const s3_head_object: import("@elaraai/east").AsyncPlatformDefinition<[import("@elaraai/east").StructType<{
182
- region: StringType;
183
- bucket: StringType;
184
- accessKeyId: import("@elaraai/east").OptionType<StringType>;
185
- secretAccessKey: import("@elaraai/east").OptionType<StringType>;
186
- endpoint: import("@elaraai/east").OptionType<StringType>;
182
+ readonly region: StringType;
183
+ readonly bucket: StringType;
184
+ readonly accessKeyId: OptionType<StringType>;
185
+ readonly secretAccessKey: OptionType<StringType>;
186
+ readonly endpoint: OptionType<StringType>;
187
187
  }>, StringType], import("@elaraai/east").StructType<{
188
- key: StringType;
189
- size: IntegerType;
190
- lastModified: import("@elaraai/east").DateTimeType;
191
- contentType: import("@elaraai/east").OptionType<StringType>;
192
- etag: import("@elaraai/east").OptionType<StringType>;
188
+ readonly key: StringType;
189
+ readonly size: IntegerType;
190
+ readonly lastModified: import("@elaraai/east").DateTimeType;
191
+ readonly contentType: OptionType<StringType>;
192
+ readonly etag: OptionType<StringType>;
193
193
  }>>;
194
194
  /**
195
195
  * Deletes an object from S3.
@@ -236,17 +236,18 @@ export declare const s3_head_object: import("@elaraai/east").AsyncPlatformDefini
236
236
  * - Does not delete versioned objects (only current version)
237
237
  */
238
238
  export declare const s3_delete_object: import("@elaraai/east").AsyncPlatformDefinition<[import("@elaraai/east").StructType<{
239
- region: StringType;
240
- bucket: StringType;
241
- accessKeyId: import("@elaraai/east").OptionType<StringType>;
242
- secretAccessKey: import("@elaraai/east").OptionType<StringType>;
243
- endpoint: import("@elaraai/east").OptionType<StringType>;
239
+ readonly region: StringType;
240
+ readonly bucket: StringType;
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
- * const result = $.let(Storage.S3.listObjects(config, "reports/", 100n));
281
- * return result.objects;
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
- * - Use continuationToken from result to fetch next page
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
- region: StringType;
295
- bucket: StringType;
296
- accessKeyId: import("@elaraai/east").OptionType<StringType>;
297
- secretAccessKey: import("@elaraai/east").OptionType<StringType>;
298
- endpoint: import("@elaraai/east").OptionType<StringType>;
299
- }>, StringType, IntegerType], import("@elaraai/east").StructType<{
300
- objects: import("@elaraai/east").ArrayType<import("@elaraai/east").StructType<{
301
- key: StringType;
302
- size: IntegerType;
303
- lastModified: import("@elaraai/east").DateTimeType;
304
- contentType: import("@elaraai/east").OptionType<StringType>;
305
- etag: import("@elaraai/east").OptionType<StringType>;
301
+ readonly region: StringType;
302
+ readonly bucket: StringType;
303
+ readonly accessKeyId: OptionType<StringType>;
304
+ readonly secretAccessKey: OptionType<StringType>;
305
+ readonly endpoint: OptionType<StringType>;
306
+ }>, StringType, IntegerType, OptionType<StringType>], import("@elaraai/east").StructType<{
307
+ readonly objects: import("@elaraai/east").ArrayType<import("@elaraai/east").StructType<{
308
+ readonly key: StringType;
309
+ readonly size: IntegerType;
310
+ readonly lastModified: import("@elaraai/east").DateTimeType;
311
+ readonly contentType: OptionType<StringType>;
312
+ readonly etag: OptionType<StringType>;
306
313
  }>>;
307
- isTruncated: import("@elaraai/east").BooleanType;
308
- continuationToken: import("@elaraai/east").OptionType<StringType>;
314
+ readonly isTruncated: import("@elaraai/east").BooleanType;
315
+ readonly continuationToken: OptionType<StringType>;
309
316
  }>>;
310
317
  /**
311
318
  * Generates a presigned URL for temporary access to an S3 object.
@@ -357,11 +364,11 @@ export declare const s3_list_objects: import("@elaraai/east").AsyncPlatformDefin
357
364
  * - Maximum expiration: 7 days (604800 seconds)
358
365
  */
359
366
  export declare const s3_presign_url: import("@elaraai/east").AsyncPlatformDefinition<[import("@elaraai/east").StructType<{
360
- region: StringType;
361
- bucket: StringType;
362
- accessKeyId: import("@elaraai/east").OptionType<StringType>;
363
- secretAccessKey: import("@elaraai/east").OptionType<StringType>;
364
- endpoint: import("@elaraai/east").OptionType<StringType>;
367
+ readonly region: StringType;
368
+ readonly bucket: StringType;
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.
@@ -0,0 +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,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"}
@@ -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
- * const result = $.let(Storage.S3.listObjects(config, "reports/", 100n));
280
- * return result.objects;
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
- * - Use continuationToken from result to fetch next page
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
  *
@@ -360,7 +367,7 @@ export const S3Impl = [
360
367
  }
361
368
  catch (err) {
362
369
  throw new EastError(`S3 putObject failed: ${err.message}`, {
363
- location: { filename: "s3_put_object", line: 0n, column: 0n },
370
+ location: [{ filename: "s3_put_object", line: 0n, column: 0n }],
364
371
  cause: err
365
372
  });
366
373
  }
@@ -393,7 +400,7 @@ export const S3Impl = [
393
400
  }
394
401
  catch (err) {
395
402
  throw new EastError(`S3 getObject failed: ${err.message}`, {
396
- location: { filename: "s3_get_object", line: 0n, column: 0n },
403
+ location: [{ filename: "s3_get_object", line: 0n, column: 0n }],
397
404
  cause: err
398
405
  });
399
406
  }
@@ -416,7 +423,7 @@ export const S3Impl = [
416
423
  }
417
424
  catch (err) {
418
425
  throw new EastError(`S3 headObject failed: ${err.message}`, {
419
- location: { filename: "s3_head_object", line: 0n, column: 0n },
426
+ location: [{ filename: "s3_head_object", line: 0n, column: 0n }],
420
427
  cause: err
421
428
  });
422
429
  }
@@ -433,22 +440,24 @@ export const S3Impl = [
433
440
  }
434
441
  catch (err) {
435
442
  throw new EastError(`S3 deleteObject failed: ${err.message}`, {
436
- location: { filename: "s3_delete_object", line: 0n, column: 0n },
443
+ location: [{ filename: "s3_delete_object", line: 0n, column: 0n }],
437
444
  cause: err
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 command = new ListObjectsV2Command({
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
@@ -471,7 +480,7 @@ export const S3Impl = [
471
480
  }
472
481
  catch (err) {
473
482
  throw new EastError(`S3 listObjects failed: ${err.message}`, {
474
- location: { filename: "s3_list_objects", line: 0n, column: 0n },
483
+ location: [{ filename: "s3_list_objects", line: 0n, column: 0n }],
475
484
  cause: err
476
485
  });
477
486
  }
@@ -493,7 +502,7 @@ export const S3Impl = [
493
502
  }
494
503
  catch (err) {
495
504
  throw new EastError(`S3 presignUrl failed: ${err.message}`, {
496
- location: { filename: "s3_presign_url", line: 0n, column: 0n },
505
+ location: [{ filename: "s3_presign_url", line: 0n, column: 0n }],
497
506
  cause: err
498
507
  });
499
508
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"s3.js","sourceRoot":"","sources":["../../../src/storage/s3.ts"],"names":[],"mappings":"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"}