@elaraai/east-node-io 0.0.1-beta.1 → 0.0.1-beta.2

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 (114) hide show
  1. package/dist/compression/gzip.d.ts +108 -0
  2. package/dist/compression/gzip.d.ts.map +1 -0
  3. package/dist/compression/gzip.js +153 -0
  4. package/dist/compression/gzip.js.map +1 -0
  5. package/dist/compression/index.d.ts +308 -0
  6. package/dist/compression/index.d.ts.map +1 -0
  7. package/dist/compression/index.js +289 -0
  8. package/dist/compression/index.js.map +1 -0
  9. package/dist/compression/tar.d.ts +115 -0
  10. package/dist/compression/tar.d.ts.map +1 -0
  11. package/dist/compression/tar.js +254 -0
  12. package/dist/compression/tar.js.map +1 -0
  13. package/dist/compression/types.d.ts +124 -0
  14. package/dist/compression/types.d.ts.map +1 -0
  15. package/dist/compression/types.js +106 -0
  16. package/dist/compression/types.js.map +1 -0
  17. package/dist/compression/zip.d.ts +121 -0
  18. package/dist/compression/zip.d.ts.map +1 -0
  19. package/dist/compression/zip.js +200 -0
  20. package/dist/compression/zip.js.map +1 -0
  21. package/dist/connection/index.d.ts +78 -0
  22. package/dist/connection/index.d.ts.map +1 -0
  23. package/dist/connection/index.js +134 -0
  24. package/dist/connection/index.js.map +1 -0
  25. package/dist/format/csv.d.ts +210 -0
  26. package/dist/format/csv.d.ts.map +1 -0
  27. package/dist/format/csv.js +729 -0
  28. package/dist/format/csv.js.map +1 -0
  29. package/dist/format/index.d.ts +641 -0
  30. package/dist/format/index.d.ts.map +1 -0
  31. package/dist/format/index.js +463 -0
  32. package/dist/format/index.js.map +1 -0
  33. package/dist/format/types.d.ts +176 -0
  34. package/dist/format/types.d.ts.map +1 -0
  35. package/dist/format/types.js +122 -0
  36. package/dist/format/types.js.map +1 -0
  37. package/dist/format/xlsx.d.ts +178 -0
  38. package/dist/format/xlsx.d.ts.map +1 -0
  39. package/dist/format/xlsx.js +313 -0
  40. package/dist/format/xlsx.js.map +1 -0
  41. package/dist/format/xml.d.ts +302 -0
  42. package/dist/format/xml.d.ts.map +1 -0
  43. package/dist/format/xml.js +602 -0
  44. package/dist/format/xml.js.map +1 -0
  45. package/dist/index.d.ts +25 -0
  46. package/dist/index.d.ts.map +1 -0
  47. package/dist/index.js +32 -0
  48. package/dist/index.js.map +1 -0
  49. package/dist/nosql/index.d.ts +503 -0
  50. package/dist/nosql/index.d.ts.map +1 -0
  51. package/dist/nosql/index.js +483 -0
  52. package/dist/nosql/index.js.map +1 -0
  53. package/dist/nosql/mongodb.d.ts +306 -0
  54. package/dist/nosql/mongodb.d.ts.map +1 -0
  55. package/dist/nosql/mongodb.js +552 -0
  56. package/dist/nosql/mongodb.js.map +1 -0
  57. package/dist/nosql/redis.d.ts +268 -0
  58. package/dist/nosql/redis.d.ts.map +1 -0
  59. package/dist/nosql/redis.js +371 -0
  60. package/dist/nosql/redis.js.map +1 -0
  61. package/dist/nosql/types.d.ts +70 -0
  62. package/dist/nosql/types.d.ts.map +1 -0
  63. package/dist/nosql/types.js +79 -0
  64. package/dist/nosql/types.js.map +1 -0
  65. package/dist/sql/index.d.ts +777 -0
  66. package/dist/sql/index.d.ts.map +1 -0
  67. package/dist/sql/index.js +515 -0
  68. package/dist/sql/index.js.map +1 -0
  69. package/dist/sql/mysql.d.ts +238 -0
  70. package/dist/sql/mysql.d.ts.map +1 -0
  71. package/dist/sql/mysql.js +396 -0
  72. package/dist/sql/mysql.js.map +1 -0
  73. package/dist/sql/postgres.d.ts +237 -0
  74. package/dist/sql/postgres.d.ts.map +1 -0
  75. package/dist/sql/postgres.js +381 -0
  76. package/dist/sql/postgres.js.map +1 -0
  77. package/dist/sql/sqlite.d.ts +217 -0
  78. package/dist/sql/sqlite.d.ts.map +1 -0
  79. package/dist/sql/sqlite.js +366 -0
  80. package/dist/sql/sqlite.js.map +1 -0
  81. package/dist/sql/types.d.ts +205 -0
  82. package/dist/sql/types.d.ts.map +1 -0
  83. package/dist/sql/types.js +175 -0
  84. package/dist/sql/types.js.map +1 -0
  85. package/dist/storage/index.d.ts +304 -0
  86. package/dist/storage/index.d.ts.map +1 -0
  87. package/dist/storage/index.js +234 -0
  88. package/dist/storage/index.js.map +1 -0
  89. package/dist/storage/s3.d.ts +373 -0
  90. package/dist/storage/s3.d.ts.map +1 -0
  91. package/dist/storage/s3.js +502 -0
  92. package/dist/storage/s3.js.map +1 -0
  93. package/dist/storage/types.d.ts +117 -0
  94. package/dist/storage/types.d.ts.map +1 -0
  95. package/dist/storage/types.js +94 -0
  96. package/dist/storage/types.js.map +1 -0
  97. package/dist/transfer/ftp.d.ts +333 -0
  98. package/dist/transfer/ftp.d.ts.map +1 -0
  99. package/dist/transfer/ftp.js +437 -0
  100. package/dist/transfer/ftp.js.map +1 -0
  101. package/dist/transfer/index.d.ts +456 -0
  102. package/dist/transfer/index.d.ts.map +1 -0
  103. package/dist/transfer/index.js +414 -0
  104. package/dist/transfer/index.js.map +1 -0
  105. package/dist/transfer/sftp.d.ts +333 -0
  106. package/dist/transfer/sftp.d.ts.map +1 -0
  107. package/dist/transfer/sftp.js +436 -0
  108. package/dist/transfer/sftp.js.map +1 -0
  109. package/dist/transfer/types.d.ts +108 -0
  110. package/dist/transfer/types.d.ts.map +1 -0
  111. package/dist/transfer/types.js +110 -0
  112. package/dist/transfer/types.js.map +1 -0
  113. package/dist/tsconfig.tsbuildinfo +1 -0
  114. package/package.json +6 -6
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+ /**
6
+ * Gzip compression platform functions for East Node IO.
7
+ *
8
+ * Provides gzip compression and decompression operations for East programs,
9
+ * enabling efficient data compression using the gzip format (RFC 1952).
10
+ *
11
+ * @packageDocumentation
12
+ */
13
+ import { BlobType } from "@elaraai/east";
14
+ import type { PlatformFunction } from "@elaraai/east/internal";
15
+ /**
16
+ * Compresses data using gzip compression.
17
+ *
18
+ * Applies gzip compression (RFC 1952) to binary data, producing a compressed
19
+ * blob that can be decompressed with {@link gzip_decompress}. The compression
20
+ * level can be controlled via options (0-9, where 0 is no compression and 9
21
+ * is maximum compression).
22
+ *
23
+ * This is a platform function for the East language, enabling gzip compression
24
+ * in East programs running on Node.js.
25
+ *
26
+ * @param data - Uncompressed data to compress
27
+ * @param options - Compression options (level)
28
+ * @returns Compressed data as gzip blob
29
+ *
30
+ * @throws {EastError} When compression fails due to:
31
+ * - Invalid compression level (location: "gzip_compress")
32
+ * - Memory allocation errors (location: "gzip_compress")
33
+ * - Internal zlib errors (location: "gzip_compress")
34
+ *
35
+ * @example
36
+ * ```ts
37
+ * import { East, BlobType, StringType } from "@elaraai/east";
38
+ * import { Compression } from "@elaraai/east-node-io";
39
+ *
40
+ * const compressText = East.function([StringType], BlobType, ($, text) => {
41
+ * const data = $.let(text.encodeUtf8());
42
+ * const options = $.let({
43
+ * level: { tag: "some", value: 9n },
44
+ * });
45
+ * const compressed = $.let(Compression.Gzip.compress(data, options));
46
+ * return $.return(compressed);
47
+ * });
48
+ *
49
+ * const compiled = East.compileAsync(compressText.toIR(), Compression.Gzip.Implementation);
50
+ * const result = await compiled("Hello, World!"); // Compressed gzip blob
51
+ * ```
52
+ *
53
+ * @remarks
54
+ * - Uses Node.js built-in zlib for compression
55
+ * - Default compression level is 6 if not specified
56
+ * - Level 0 stores data without compression
57
+ * - Higher levels (7-9) provide better compression but are slower
58
+ * - All operations are asynchronous (use East.compileAsync)
59
+ */
60
+ export declare const gzip_compress: import("@elaraai/east").AsyncPlatformDefinition<[BlobType, import("@elaraai/east").StructType<{
61
+ level: import("@elaraai/east").OptionType<import("@elaraai/east").IntegerType>;
62
+ }>], BlobType>;
63
+ /**
64
+ * Decompresses gzip-compressed data.
65
+ *
66
+ * Decompresses data that was compressed using gzip (RFC 1952), restoring the
67
+ * original uncompressed data. The input must be valid gzip format.
68
+ *
69
+ * This is a platform function for the East language, enabling gzip decompression
70
+ * in East programs running on Node.js.
71
+ *
72
+ * @param compressed - Gzip-compressed data
73
+ * @returns Decompressed original data
74
+ *
75
+ * @throws {EastError} When decompression fails due to:
76
+ * - Invalid gzip format (location: "gzip_decompress")
77
+ * - Corrupted compressed data (location: "gzip_decompress")
78
+ * - Memory allocation errors (location: "gzip_decompress")
79
+ * - Internal zlib errors (location: "gzip_decompress")
80
+ *
81
+ * @example
82
+ * ```ts
83
+ * import { East, BlobType, StringType } from "@elaraai/east";
84
+ * import { Compression } from "@elaraai/east-node-io";
85
+ *
86
+ * const decompressText = East.function([BlobType], StringType, ($, compressed) => {
87
+ * const decompressed = $.let(Compression.Gzip.decompress(compressed));
88
+ * const text = $.let(decompressed.decodeUtf8());
89
+ * return $.return(text);
90
+ * });
91
+ *
92
+ * const compiled = East.compileAsync(decompressText.toIR(), Compression.Gzip.Implementation);
93
+ * const result = await compiled(compressedBlob); // "Hello, World!"
94
+ * ```
95
+ *
96
+ * @remarks
97
+ * - Uses Node.js built-in zlib for decompression
98
+ * - Automatically detects gzip header and validates format
99
+ * - All operations are asynchronous (use East.compileAsync)
100
+ */
101
+ export declare const gzip_decompress: import("@elaraai/east").AsyncPlatformDefinition<[BlobType], BlobType>;
102
+ /**
103
+ * Node.js implementation of Gzip platform functions.
104
+ *
105
+ * Pass this array to {@link East.compileAsync} to enable gzip compression operations.
106
+ */
107
+ export declare const GzipImpl: PlatformFunction[];
108
+ //# sourceMappingURL=gzip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gzip.d.ts","sourceRoot":"","sources":["../../src/compression/gzip.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AAEH,OAAO,EAAQ,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAU/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,eAAO,MAAM,aAAa;;cAA6E,CAAC;AAExG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,eAAO,MAAM,eAAe,uEAA8D,CAAC;AAE3F;;;;GAIG;AACH,eAAO,MAAM,QAAQ,EAAE,gBAAgB,EA6CtC,CAAC"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+ /**
6
+ * Gzip compression platform functions for East Node IO.
7
+ *
8
+ * Provides gzip compression and decompression operations for East programs,
9
+ * enabling efficient data compression using the gzip format (RFC 1952).
10
+ *
11
+ * @packageDocumentation
12
+ */
13
+ import { East, BlobType } from "@elaraai/east";
14
+ import { EastError } from "@elaraai/east/internal";
15
+ import { gzip as nodeGzip, gunzip as nodeGunzip } from "node:zlib";
16
+ import { promisify } from "node:util";
17
+ import { GzipOptionsType } from "./types.js";
18
+ // Promisify zlib functions
19
+ const gzipAsync = promisify(nodeGzip);
20
+ const gunzipAsync = promisify(nodeGunzip);
21
+ /**
22
+ * Compresses data using gzip compression.
23
+ *
24
+ * Applies gzip compression (RFC 1952) to binary data, producing a compressed
25
+ * blob that can be decompressed with {@link gzip_decompress}. The compression
26
+ * level can be controlled via options (0-9, where 0 is no compression and 9
27
+ * is maximum compression).
28
+ *
29
+ * This is a platform function for the East language, enabling gzip compression
30
+ * in East programs running on Node.js.
31
+ *
32
+ * @param data - Uncompressed data to compress
33
+ * @param options - Compression options (level)
34
+ * @returns Compressed data as gzip blob
35
+ *
36
+ * @throws {EastError} When compression fails due to:
37
+ * - Invalid compression level (location: "gzip_compress")
38
+ * - Memory allocation errors (location: "gzip_compress")
39
+ * - Internal zlib errors (location: "gzip_compress")
40
+ *
41
+ * @example
42
+ * ```ts
43
+ * import { East, BlobType, StringType } from "@elaraai/east";
44
+ * import { Compression } from "@elaraai/east-node-io";
45
+ *
46
+ * const compressText = East.function([StringType], BlobType, ($, text) => {
47
+ * const data = $.let(text.encodeUtf8());
48
+ * const options = $.let({
49
+ * level: { tag: "some", value: 9n },
50
+ * });
51
+ * const compressed = $.let(Compression.Gzip.compress(data, options));
52
+ * return $.return(compressed);
53
+ * });
54
+ *
55
+ * const compiled = East.compileAsync(compressText.toIR(), Compression.Gzip.Implementation);
56
+ * const result = await compiled("Hello, World!"); // Compressed gzip blob
57
+ * ```
58
+ *
59
+ * @remarks
60
+ * - Uses Node.js built-in zlib for compression
61
+ * - Default compression level is 6 if not specified
62
+ * - Level 0 stores data without compression
63
+ * - Higher levels (7-9) provide better compression but are slower
64
+ * - All operations are asynchronous (use East.compileAsync)
65
+ */
66
+ export const gzip_compress = East.asyncPlatform("gzip_compress", [BlobType, GzipOptionsType], BlobType);
67
+ /**
68
+ * Decompresses gzip-compressed data.
69
+ *
70
+ * Decompresses data that was compressed using gzip (RFC 1952), restoring the
71
+ * original uncompressed data. The input must be valid gzip format.
72
+ *
73
+ * This is a platform function for the East language, enabling gzip decompression
74
+ * in East programs running on Node.js.
75
+ *
76
+ * @param compressed - Gzip-compressed data
77
+ * @returns Decompressed original data
78
+ *
79
+ * @throws {EastError} When decompression fails due to:
80
+ * - Invalid gzip format (location: "gzip_decompress")
81
+ * - Corrupted compressed data (location: "gzip_decompress")
82
+ * - Memory allocation errors (location: "gzip_decompress")
83
+ * - Internal zlib errors (location: "gzip_decompress")
84
+ *
85
+ * @example
86
+ * ```ts
87
+ * import { East, BlobType, StringType } from "@elaraai/east";
88
+ * import { Compression } from "@elaraai/east-node-io";
89
+ *
90
+ * const decompressText = East.function([BlobType], StringType, ($, compressed) => {
91
+ * const decompressed = $.let(Compression.Gzip.decompress(compressed));
92
+ * const text = $.let(decompressed.decodeUtf8());
93
+ * return $.return(text);
94
+ * });
95
+ *
96
+ * const compiled = East.compileAsync(decompressText.toIR(), Compression.Gzip.Implementation);
97
+ * const result = await compiled(compressedBlob); // "Hello, World!"
98
+ * ```
99
+ *
100
+ * @remarks
101
+ * - Uses Node.js built-in zlib for decompression
102
+ * - Automatically detects gzip header and validates format
103
+ * - All operations are asynchronous (use East.compileAsync)
104
+ */
105
+ export const gzip_decompress = East.asyncPlatform("gzip_decompress", [BlobType], BlobType);
106
+ /**
107
+ * Node.js implementation of Gzip platform functions.
108
+ *
109
+ * Pass this array to {@link East.compileAsync} to enable gzip compression operations.
110
+ */
111
+ export const GzipImpl = [
112
+ gzip_compress.implement(async (data, options) => {
113
+ try {
114
+ // Extract compression level (default to 6)
115
+ const level = options.level.type === "some"
116
+ ? Number(options.level.value)
117
+ : 6;
118
+ // Validate level
119
+ if (level < 0 || level > 9) {
120
+ throw new EastError(`Invalid compression level: ${level}. Must be 0-9.`, {
121
+ location: { filename: "gzip_compress", line: 0n, column: 0n }
122
+ });
123
+ }
124
+ // Compress using zlib
125
+ const compressed = await gzipAsync(data, { level });
126
+ return new Uint8Array(compressed);
127
+ }
128
+ catch (err) {
129
+ if (err instanceof EastError)
130
+ throw err;
131
+ throw new EastError(`Gzip compression failed: ${err.message}`, {
132
+ location: { filename: "gzip_compress", line: 0n, column: 0n },
133
+ cause: err
134
+ });
135
+ }
136
+ }),
137
+ gzip_decompress.implement(async (compressed) => {
138
+ try {
139
+ // Decompress using zlib
140
+ const decompressed = await gunzipAsync(compressed);
141
+ return new Uint8Array(decompressed);
142
+ }
143
+ catch (err) {
144
+ if (err instanceof EastError)
145
+ throw err;
146
+ throw new EastError(`Gzip decompression failed: ${err.message}`, {
147
+ location: { filename: "gzip_decompress", line: 0n, column: 0n },
148
+ cause: err
149
+ });
150
+ }
151
+ }),
152
+ ];
153
+ //# sourceMappingURL=gzip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gzip.js","sourceRoot":"","sources":["../../src/compression/gzip.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,308 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+ /**
6
+ * Compression platform functions for East Node IO.
7
+ *
8
+ * Provides functions for compressing and decompressing data using various
9
+ * formats like gzip, zip, and tar.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * import { East, BlobType, StringType } from "@elaraai/east";
14
+ * import { Compression } from "@elaraai/east-node-io";
15
+ *
16
+ * const compressText = East.function([StringType], BlobType, ($, text) => {
17
+ * const data = $.let(text.encodeUtf8());
18
+ * const options = $.let({
19
+ * level: { tag: "some", value: 9n },
20
+ * });
21
+ * const compressed = $.let(Compression.Gzip.compress(data, options));
22
+ * return $.return(compressed);
23
+ * });
24
+ *
25
+ * const compiled = East.compileAsync(compressText.toIR(), Compression.Gzip.Implementation);
26
+ * await compiled("Hello, World!"); // Compressed gzip blob
27
+ * ```
28
+ *
29
+ * @packageDocumentation
30
+ */
31
+ export * from "./types.js";
32
+ export { gzip_compress, gzip_decompress, GzipImpl } from "./gzip.js";
33
+ export { zip_compress, zip_decompress, ZipImpl } from "./zip.js";
34
+ export { tar_create, tar_extract, TarImpl } from "./tar.js";
35
+ /**
36
+ * Compression platform functions grouped by compression type.
37
+ *
38
+ * Provides organized access to compression-specific operations for compressing
39
+ * and decompressing data in East programs.
40
+ *
41
+ * @example
42
+ * ```ts
43
+ * import { East, BlobType, StringType } from "@elaraai/east";
44
+ * import { Compression } from "@elaraai/east-node-io";
45
+ *
46
+ * const compressAndDecompress = East.function([StringType], StringType, ($, text) => {
47
+ * const data = $.let(text.encodeUtf8());
48
+ * const options = $.let({
49
+ * level: { tag: "some", value: 9n },
50
+ * });
51
+ *
52
+ * const compressed = $.let(Compression.Gzip.compress(data, options));
53
+ * const decompressed = $.let(Compression.Gzip.decompress(compressed));
54
+ * const result = $.let(decompressed.decodeUtf8());
55
+ * return $.return(result);
56
+ * });
57
+ *
58
+ * const compiled = East.compileAsync(compressAndDecompress.toIR(), Compression.Gzip.Implementation);
59
+ * await compiled("Hello, World!"); // "Hello, World!"
60
+ * ```
61
+ */
62
+ export declare const Compression: {
63
+ /**
64
+ * Gzip compression operations.
65
+ *
66
+ * Provides functions for compressing and decompressing data using gzip (RFC 1952).
67
+ */
68
+ readonly Gzip: {
69
+ /**
70
+ * Compresses data using gzip compression.
71
+ *
72
+ * @example
73
+ * ```ts
74
+ * import { East, BlobType, StringType } from "@elaraai/east";
75
+ * import { Compression } from "@elaraai/east-node-io";
76
+ *
77
+ * const compressText = East.function([StringType], BlobType, ($, text) => {
78
+ * const data = $.let(text.encodeUtf8());
79
+ * const options = $.let({
80
+ * level: { tag: "some", value: 9n },
81
+ * });
82
+ * const compressed = $.let(Compression.Gzip.compress(data, options));
83
+ * return $.return(compressed);
84
+ * });
85
+ *
86
+ * const compiled = East.compileAsync(compressText.toIR(), Compression.Gzip.Implementation);
87
+ * await compiled("Hello, World!");
88
+ * ```
89
+ */
90
+ readonly compress: import("@elaraai/east").AsyncPlatformDefinition<[import("@elaraai/east").BlobType, import("@elaraai/east").StructType<{
91
+ level: import("@elaraai/east").OptionType<import("@elaraai/east").IntegerType>;
92
+ }>], import("@elaraai/east").BlobType>;
93
+ /**
94
+ * Decompresses gzip-compressed data.
95
+ *
96
+ * @example
97
+ * ```ts
98
+ * import { East, BlobType, StringType } from "@elaraai/east";
99
+ * import { Compression } from "@elaraai/east-node-io";
100
+ *
101
+ * const decompressText = East.function([BlobType], StringType, ($, compressed) => {
102
+ * const decompressed = $.let(Compression.Gzip.decompress(compressed));
103
+ * const text = $.let(decompressed.decodeUtf8());
104
+ * return $.return(text);
105
+ * });
106
+ *
107
+ * const compiled = East.compileAsync(decompressText.toIR(), Compression.Gzip.Implementation);
108
+ * await compiled(compressedBlob);
109
+ * ```
110
+ */
111
+ readonly decompress: import("@elaraai/east").AsyncPlatformDefinition<[import("@elaraai/east").BlobType], import("@elaraai/east").BlobType>;
112
+ /**
113
+ * Node.js implementation of Gzip platform functions.
114
+ *
115
+ * Pass this to {@link East.compileAsync} to enable gzip operations.
116
+ */
117
+ readonly Implementation: import("@elaraai/east/internal").PlatformFunction[];
118
+ /**
119
+ * Type definitions for Gzip operations.
120
+ */
121
+ readonly Types: {
122
+ /**
123
+ * Compression level (0-9).
124
+ */
125
+ readonly Level: import("@elaraai/east").IntegerType;
126
+ /**
127
+ * Gzip compression options.
128
+ */
129
+ readonly Options: import("@elaraai/east").StructType<{
130
+ level: import("@elaraai/east").OptionType<import("@elaraai/east").IntegerType>;
131
+ }>;
132
+ };
133
+ };
134
+ /**
135
+ * ZIP archive operations.
136
+ *
137
+ * Provides functions for creating and extracting ZIP archives with multiple files.
138
+ */
139
+ readonly Zip: {
140
+ /**
141
+ * Creates a ZIP archive from a list of files.
142
+ *
143
+ * @example
144
+ * ```ts
145
+ * import { East, BlobType, StringType } from "@elaraai/east";
146
+ * import { Compression } from "@elaraai/east-node-io";
147
+ *
148
+ * const createZip = East.function([StringType, StringType], BlobType, ($, file1, file2) => {
149
+ * const entries = $.let([
150
+ * { name: "file1.txt", data: file1.encodeUtf8() },
151
+ * { name: "file2.txt", data: file2.encodeUtf8() },
152
+ * ]);
153
+ * const options = $.let({
154
+ * level: { tag: "some", value: 9n },
155
+ * });
156
+ * const zipBlob = $.let(Compression.Zip.compress(entries, options));
157
+ * return $.return(zipBlob);
158
+ * });
159
+ *
160
+ * const compiled = East.compileAsync(createZip.toIR(), Compression.Zip.Implementation);
161
+ * await compiled("Hello", "World");
162
+ * ```
163
+ */
164
+ readonly compress: import("@elaraai/east").PlatformDefinition<[import("@elaraai/east").ArrayType<import("@elaraai/east").StructType<{
165
+ name: import("@elaraai/east").StringType;
166
+ data: import("@elaraai/east").BlobType;
167
+ }>>, import("@elaraai/east").StructType<{
168
+ level: import("@elaraai/east").OptionType<import("@elaraai/east").IntegerType>;
169
+ }>], import("@elaraai/east").BlobType>;
170
+ /**
171
+ * Extracts files from a ZIP archive.
172
+ *
173
+ * @example
174
+ * ```ts
175
+ * import { East, BlobType, DictType, StringType } from "@elaraai/east";
176
+ * import { Compression } from "@elaraai/east-node-io";
177
+ *
178
+ * const extractZip = East.function([BlobType], DictType(StringType, BlobType), ($, zipBlob) => {
179
+ * const files = $.let(Compression.Zip.decompress(zipBlob));
180
+ * return $.return(files);
181
+ * });
182
+ *
183
+ * const compiled = East.compileAsync(extractZip.toIR(), Compression.Zip.Implementation);
184
+ * await compiled(zipBlob);
185
+ * ```
186
+ */
187
+ readonly decompress: import("@elaraai/east").PlatformDefinition<[import("@elaraai/east").BlobType], import("@elaraai/east").DictType<import("@elaraai/east").StringType, import("@elaraai/east").BlobType>>;
188
+ /**
189
+ * Node.js implementation of ZIP platform functions.
190
+ *
191
+ * Pass this to {@link East.compileAsync} to enable ZIP operations.
192
+ */
193
+ readonly Implementation: import("@elaraai/east/internal").PlatformFunction[];
194
+ /**
195
+ * Type definitions for ZIP operations.
196
+ */
197
+ readonly Types: {
198
+ /**
199
+ * Compression level (0-9).
200
+ */
201
+ readonly Level: import("@elaraai/east").IntegerType;
202
+ /**
203
+ * ZIP compression options.
204
+ */
205
+ readonly Options: import("@elaraai/east").StructType<{
206
+ level: import("@elaraai/east").OptionType<import("@elaraai/east").IntegerType>;
207
+ }>;
208
+ /**
209
+ * Entry in a ZIP archive.
210
+ */
211
+ readonly Entry: import("@elaraai/east").StructType<{
212
+ name: import("@elaraai/east").StringType;
213
+ data: import("@elaraai/east").BlobType;
214
+ }>;
215
+ /**
216
+ * List of entries for creating a ZIP archive.
217
+ */
218
+ readonly Entries: import("@elaraai/east").ArrayType<import("@elaraai/east").StructType<{
219
+ name: import("@elaraai/east").StringType;
220
+ data: import("@elaraai/east").BlobType;
221
+ }>>;
222
+ /**
223
+ * Extracted files from a ZIP archive.
224
+ */
225
+ readonly Extracted: import("@elaraai/east").DictType<import("@elaraai/east").StringType, import("@elaraai/east").BlobType>;
226
+ };
227
+ };
228
+ /**
229
+ * TAR archive operations.
230
+ *
231
+ * Provides functions for creating and extracting TAR archives (without compression).
232
+ */
233
+ readonly Tar: {
234
+ /**
235
+ * Creates a TAR archive from a list of files.
236
+ *
237
+ * @example
238
+ * ```ts
239
+ * import { East, BlobType, StringType } from "@elaraai/east";
240
+ * import { Compression } from "@elaraai/east-node-io";
241
+ *
242
+ * const createTar = East.function([StringType, StringType], BlobType, ($, file1, file2) => {
243
+ * const entries = $.let([
244
+ * { name: "file1.txt", data: file1.encodeUtf8() },
245
+ * { name: "file2.txt", data: file2.encodeUtf8() },
246
+ * ]);
247
+ * const tarBlob = $.let(Compression.Tar.create(entries));
248
+ * return $.return(tarBlob);
249
+ * });
250
+ *
251
+ * const compiled = East.compileAsync(createTar.toIR(), Compression.Tar.Implementation);
252
+ * await compiled("Hello", "World");
253
+ * ```
254
+ */
255
+ readonly create: import("@elaraai/east").AsyncPlatformDefinition<[import("@elaraai/east").ArrayType<import("@elaraai/east").StructType<{
256
+ name: import("@elaraai/east").StringType;
257
+ data: import("@elaraai/east").BlobType;
258
+ }>>], import("@elaraai/east").BlobType>;
259
+ /**
260
+ * Extracts files from a TAR archive.
261
+ *
262
+ * @example
263
+ * ```ts
264
+ * import { East, BlobType, DictType, StringType } from "@elaraai/east";
265
+ * import { Compression } from "@elaraai/east-node-io";
266
+ *
267
+ * const extractTar = East.function([BlobType], DictType(StringType, BlobType), ($, tarBlob) => {
268
+ * const files = $.let(Compression.Tar.extract(tarBlob));
269
+ * return $.return(files);
270
+ * });
271
+ *
272
+ * const compiled = East.compileAsync(extractTar.toIR(), Compression.Tar.Implementation);
273
+ * await compiled(tarBlob);
274
+ * ```
275
+ */
276
+ readonly extract: import("@elaraai/east").AsyncPlatformDefinition<[import("@elaraai/east").BlobType], import("@elaraai/east").DictType<import("@elaraai/east").StringType, import("@elaraai/east").BlobType>>;
277
+ /**
278
+ * Node.js implementation of TAR platform functions.
279
+ *
280
+ * Pass this to {@link East.compileAsync} to enable TAR operations.
281
+ */
282
+ readonly Implementation: import("@elaraai/east/internal").PlatformFunction[];
283
+ /**
284
+ * Type definitions for TAR operations.
285
+ */
286
+ readonly Types: {
287
+ /**
288
+ * Entry in a TAR archive.
289
+ */
290
+ readonly Entry: import("@elaraai/east").StructType<{
291
+ name: import("@elaraai/east").StringType;
292
+ data: import("@elaraai/east").BlobType;
293
+ }>;
294
+ /**
295
+ * List of entries for creating a TAR archive.
296
+ */
297
+ readonly Entries: import("@elaraai/east").ArrayType<import("@elaraai/east").StructType<{
298
+ name: import("@elaraai/east").StringType;
299
+ data: import("@elaraai/east").BlobType;
300
+ }>>;
301
+ /**
302
+ * Extracted files from a TAR archive.
303
+ */
304
+ readonly Extracted: import("@elaraai/east").DictType<import("@elaraai/east").StringType, import("@elaraai/east").BlobType>;
305
+ };
306
+ };
307
+ };
308
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/compression/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,cAAc,YAAY,CAAC;AAG3B,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAmB5D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,WAAW;IACpB;;;;OAIG;;QAEC;;;;;;;;;;;;;;;;;;;;WAoBG;;;;QAGH;;;;;;;;;;;;;;;;;WAiBG;;QAGH;;;;WAIG;;QAGH;;WAEG;;YAEC;;eAEG;;YAGH;;eAEG;;;;;;IAKX;;;;OAIG;;QAEC;;;;;;;;;;;;;;;;;;;;;;;WAuBG;;;;;;;QAGH;;;;;;;;;;;;;;;;WAgBG;;QAGH;;;;WAIG;;QAGH;;WAEG;;YAEC;;eAEG;;YAGH;;eAEG;;;;YAGH;;eAEG;;;;;YAGH;;eAEG;;;;;YAGH;;eAEG;;;;IAKX;;;;OAIG;;QAEC;;;;;;;;;;;;;;;;;;;;WAoBG;;;;;QAGH;;;;;;;;;;;;;;;;WAgBG;;QAGH;;;;WAIG;;QAGH;;WAEG;;YAEC;;eAEG;;;;;YAGH;;eAEG;;;;;YAGH;;eAEG;;;;CAIL,CAAC"}