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

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 (115) hide show
  1. package/README.md +38 -0
  2. package/dist/compression/gzip.d.ts +108 -0
  3. package/dist/compression/gzip.d.ts.map +1 -0
  4. package/dist/compression/gzip.js +153 -0
  5. package/dist/compression/gzip.js.map +1 -0
  6. package/dist/compression/index.d.ts +308 -0
  7. package/dist/compression/index.d.ts.map +1 -0
  8. package/dist/compression/index.js +289 -0
  9. package/dist/compression/index.js.map +1 -0
  10. package/dist/compression/tar.d.ts +115 -0
  11. package/dist/compression/tar.d.ts.map +1 -0
  12. package/dist/compression/tar.js +254 -0
  13. package/dist/compression/tar.js.map +1 -0
  14. package/dist/compression/types.d.ts +124 -0
  15. package/dist/compression/types.d.ts.map +1 -0
  16. package/dist/compression/types.js +106 -0
  17. package/dist/compression/types.js.map +1 -0
  18. package/dist/compression/zip.d.ts +121 -0
  19. package/dist/compression/zip.d.ts.map +1 -0
  20. package/dist/compression/zip.js +200 -0
  21. package/dist/compression/zip.js.map +1 -0
  22. package/dist/connection/index.d.ts +78 -0
  23. package/dist/connection/index.d.ts.map +1 -0
  24. package/dist/connection/index.js +134 -0
  25. package/dist/connection/index.js.map +1 -0
  26. package/dist/format/index.d.ts +421 -0
  27. package/dist/format/index.d.ts.map +1 -0
  28. package/dist/format/index.js +326 -0
  29. package/dist/format/index.js.map +1 -0
  30. package/dist/format/types.d.ts +176 -0
  31. package/dist/format/types.d.ts.map +1 -0
  32. package/dist/format/types.js +122 -0
  33. package/dist/format/types.js.map +1 -0
  34. package/dist/format/xlsx.d.ts +178 -0
  35. package/dist/format/xlsx.d.ts.map +1 -0
  36. package/dist/format/xlsx.js +313 -0
  37. package/dist/format/xlsx.js.map +1 -0
  38. package/dist/format/xml.d.ts +302 -0
  39. package/dist/format/xml.d.ts.map +1 -0
  40. package/dist/format/xml.js +602 -0
  41. package/dist/format/xml.js.map +1 -0
  42. package/dist/index.d.ts +25 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +32 -0
  45. package/dist/index.js.map +1 -0
  46. package/dist/nosql/index.d.ts +503 -0
  47. package/dist/nosql/index.d.ts.map +1 -0
  48. package/dist/nosql/index.js +483 -0
  49. package/dist/nosql/index.js.map +1 -0
  50. package/dist/nosql/mongodb.d.ts +306 -0
  51. package/dist/nosql/mongodb.d.ts.map +1 -0
  52. package/dist/nosql/mongodb.js +552 -0
  53. package/dist/nosql/mongodb.js.map +1 -0
  54. package/dist/nosql/redis.d.ts +268 -0
  55. package/dist/nosql/redis.d.ts.map +1 -0
  56. package/dist/nosql/redis.js +371 -0
  57. package/dist/nosql/redis.js.map +1 -0
  58. package/dist/nosql/types.d.ts +70 -0
  59. package/dist/nosql/types.d.ts.map +1 -0
  60. package/dist/nosql/types.js +79 -0
  61. package/dist/nosql/types.js.map +1 -0
  62. package/dist/platform.d.ts +12 -0
  63. package/dist/platform.d.ts.map +1 -0
  64. package/dist/platform.js +51 -0
  65. package/dist/platform.js.map +1 -0
  66. package/dist/sql/index.d.ts +777 -0
  67. package/dist/sql/index.d.ts.map +1 -0
  68. package/dist/sql/index.js +515 -0
  69. package/dist/sql/index.js.map +1 -0
  70. package/dist/sql/mysql.d.ts +238 -0
  71. package/dist/sql/mysql.d.ts.map +1 -0
  72. package/dist/sql/mysql.js +396 -0
  73. package/dist/sql/mysql.js.map +1 -0
  74. package/dist/sql/postgres.d.ts +237 -0
  75. package/dist/sql/postgres.d.ts.map +1 -0
  76. package/dist/sql/postgres.js +381 -0
  77. package/dist/sql/postgres.js.map +1 -0
  78. package/dist/sql/sqlite.d.ts +217 -0
  79. package/dist/sql/sqlite.d.ts.map +1 -0
  80. package/dist/sql/sqlite.js +366 -0
  81. package/dist/sql/sqlite.js.map +1 -0
  82. package/dist/sql/types.d.ts +205 -0
  83. package/dist/sql/types.d.ts.map +1 -0
  84. package/dist/sql/types.js +175 -0
  85. package/dist/sql/types.js.map +1 -0
  86. package/dist/storage/index.d.ts +304 -0
  87. package/dist/storage/index.d.ts.map +1 -0
  88. package/dist/storage/index.js +234 -0
  89. package/dist/storage/index.js.map +1 -0
  90. package/dist/storage/s3.d.ts +373 -0
  91. package/dist/storage/s3.d.ts.map +1 -0
  92. package/dist/storage/s3.js +502 -0
  93. package/dist/storage/s3.js.map +1 -0
  94. package/dist/storage/types.d.ts +117 -0
  95. package/dist/storage/types.d.ts.map +1 -0
  96. package/dist/storage/types.js +94 -0
  97. package/dist/storage/types.js.map +1 -0
  98. package/dist/transfer/ftp.d.ts +333 -0
  99. package/dist/transfer/ftp.d.ts.map +1 -0
  100. package/dist/transfer/ftp.js +437 -0
  101. package/dist/transfer/ftp.js.map +1 -0
  102. package/dist/transfer/index.d.ts +456 -0
  103. package/dist/transfer/index.d.ts.map +1 -0
  104. package/dist/transfer/index.js +414 -0
  105. package/dist/transfer/index.js.map +1 -0
  106. package/dist/transfer/sftp.d.ts +333 -0
  107. package/dist/transfer/sftp.d.ts.map +1 -0
  108. package/dist/transfer/sftp.js +436 -0
  109. package/dist/transfer/sftp.js.map +1 -0
  110. package/dist/transfer/types.d.ts +108 -0
  111. package/dist/transfer/types.d.ts.map +1 -0
  112. package/dist/transfer/types.js +110 -0
  113. package/dist/transfer/types.js.map +1 -0
  114. package/dist/tsconfig.tsbuildinfo +1 -0
  115. package/package.json +17 -9
@@ -0,0 +1,306 @@
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
+ * MongoDB platform functions for East Node IO.
7
+ *
8
+ * Provides MongoDB document database operations for East programs,
9
+ * including find, insert, update, and delete operations with BSON-compatible values.
10
+ *
11
+ * @packageDocumentation
12
+ */
13
+ import { DictType, StringType, IntegerType, ArrayType, OptionType, NullType } from "@elaraai/east";
14
+ import type { PlatformFunction } from "@elaraai/east/internal";
15
+ /**
16
+ * BSON document type (dictionary mapping strings to BSON values).
17
+ *
18
+ * Used for MongoDB documents in queries, inserts, and updates.
19
+ */
20
+ export declare const BsonDocumentType: DictType<StringType, import("@elaraai/east").RecursiveType<import("@elaraai/east").EastType>>;
21
+ /**
22
+ * Connects to a MongoDB server.
23
+ *
24
+ * Creates a connection to a MongoDB server and returns an opaque handle
25
+ * for use in document operations.
26
+ *
27
+ * @param config - MongoDB connection configuration
28
+ * @returns Connection handle (opaque string)
29
+ *
30
+ * @throws {EastError} When connection fails (location: "mongodb_connect")
31
+ *
32
+ * @example
33
+ * ```ts
34
+ * import { East, StringType } from "@elaraai/east";
35
+ * import { NoSQL } from "@elaraai/east-node-io";
36
+ *
37
+ * const testConnect = East.function([], StringType, $ => {
38
+ * const config = $.let({
39
+ * uri: "mongodb://localhost:27017",
40
+ * database: "myapp",
41
+ * collection: "users",
42
+ * });
43
+ * const conn = $.let(NoSQL.MongoDB.connect(config));
44
+ * $(NoSQL.MongoDB.close(conn));
45
+ * return $.return(conn);
46
+ * });
47
+ *
48
+ * const compiled = East.compileAsync(testConnect.toIR(), NoSQL.MongoDB.Implementation);
49
+ * const handle = await compiled(); // Returns connection handle string
50
+ * ```
51
+ */
52
+ export declare const mongodb_connect: import("@elaraai/east").AsyncPlatformDefinition<[import("@elaraai/east").StructType<{
53
+ uri: StringType;
54
+ database: StringType;
55
+ collection: StringType;
56
+ }>], StringType>;
57
+ /**
58
+ * Finds a single document in MongoDB.
59
+ *
60
+ * Searches for a document matching the query object.
61
+ * Returns None if no document is found.
62
+ *
63
+ * @param handle - Connection handle from mongodb_connect()
64
+ * @param query - Query object to match documents
65
+ * @returns Option containing the document, or None if not found
66
+ *
67
+ * @throws {EastError} When operation fails (location: "mongodb_find_one")
68
+ *
69
+ * @example
70
+ * ```ts
71
+ * import { East, StringType, OptionType, variant } from "@elaraai/east";
72
+ * import { NoSQL } from "@elaraai/east-node-io";
73
+ *
74
+ * const findUser = East.function([StringType], OptionType(NoSQL.MongoDB.Types.BsonDocument), ($, username) => {
75
+ * const config = $.let({
76
+ * uri: "mongodb://localhost:27017",
77
+ * database: "myapp",
78
+ * collection: "users",
79
+ * });
80
+ * const conn = $.let(NoSQL.MongoDB.connect(config));
81
+ * const query = $.let(new Map([["username", variant('String', username)]]), NoSQL.MongoDB.Types.BsonDocument);
82
+ * const user = $.let(NoSQL.MongoDB.findOne(conn, query));
83
+ * $(NoSQL.MongoDB.close(conn));
84
+ * return $.return(user);
85
+ * });
86
+ *
87
+ * const compiled = East.compileAsync(findUser.toIR(), NoSQL.MongoDB.Implementation);
88
+ * await compiled("alice"); // variant('some', document) or variant('none', null)
89
+ * ```
90
+ */
91
+ export declare const mongodb_find_one: import("@elaraai/east").AsyncPlatformDefinition<[StringType, DictType<StringType, import("@elaraai/east").RecursiveType<import("@elaraai/east").EastType>>], OptionType<DictType<StringType, import("@elaraai/east").RecursiveType<import("@elaraai/east").EastType>>>>;
92
+ /**
93
+ * Finds multiple documents in MongoDB.
94
+ *
95
+ * Searches for documents matching the query object with optional
96
+ * limit and skip for pagination.
97
+ *
98
+ * @param handle - Connection handle from mongodb_connect()
99
+ * @param query - Query object to match documents
100
+ * @param options - Find options (limit, skip)
101
+ * @returns Array of matching documents
102
+ *
103
+ * @throws {EastError} When operation fails (location: "mongodb_find_many")
104
+ *
105
+ * @example
106
+ * ```ts
107
+ * import { East, ArrayType, variant } from "@elaraai/east";
108
+ * import { NoSQL } from "@elaraai/east-node-io";
109
+ *
110
+ * const findAllUsers = East.function([], ArrayType(NoSQL.MongoDB.Types.BsonDocument), $ => {
111
+ * const config = $.let({
112
+ * uri: "mongodb://localhost:27017",
113
+ * database: "myapp",
114
+ * collection: "users",
115
+ * });
116
+ * const conn = $.let(NoSQL.MongoDB.connect(config));
117
+ * const query = $.let(new Map(), NoSQL.MongoDB.Types.BsonDocument);
118
+ * const options = $.let({ limit: variant('some', 10n), skip: variant('none', null) });
119
+ * const users = $.let(NoSQL.MongoDB.findMany(conn, query, options));
120
+ * $(NoSQL.MongoDB.close(conn));
121
+ * return $.return(users);
122
+ * });
123
+ *
124
+ * const compiled = East.compileAsync(findAllUsers.toIR(), NoSQL.MongoDB.Implementation);
125
+ * await compiled(); // [doc1, doc2, ...]
126
+ * ```
127
+ */
128
+ export declare const mongodb_find_many: import("@elaraai/east").AsyncPlatformDefinition<[StringType, DictType<StringType, import("@elaraai/east").RecursiveType<import("@elaraai/east").EastType>>, import("@elaraai/east").StructType<{
129
+ limit: OptionType<IntegerType>;
130
+ skip: OptionType<IntegerType>;
131
+ }>], ArrayType<DictType<StringType, import("@elaraai/east").RecursiveType<import("@elaraai/east").EastType>>>>;
132
+ /**
133
+ * Inserts a document into MongoDB.
134
+ *
135
+ * Inserts a new document into the collection.
136
+ * Returns the inserted document's _id as a string.
137
+ *
138
+ * @param handle - Connection handle from mongodb_connect()
139
+ * @param document - Document to insert
140
+ * @returns The inserted document's _id
141
+ *
142
+ * @throws {EastError} When operation fails (location: "mongodb_insert_one")
143
+ *
144
+ * @example
145
+ * ```ts
146
+ * import { East, StringType, variant } from "@elaraai/east";
147
+ * import { NoSQL } from "@elaraai/east-node-io";
148
+ *
149
+ * const createUser = East.function([StringType, StringType], StringType, ($, username, email) => {
150
+ * const config = $.let({
151
+ * uri: "mongodb://localhost:27017",
152
+ * database: "myapp",
153
+ * collection: "users",
154
+ * });
155
+ * const conn = $.let(NoSQL.MongoDB.connect(config));
156
+ * const document = $.let(new Map([
157
+ * ["username", variant('String', username)],
158
+ * ["email", variant('String', email)],
159
+ * ]), NoSQL.MongoDB.Types.BsonDocument);
160
+ * const id = $.let(NoSQL.MongoDB.insertOne(conn, document));
161
+ * $(NoSQL.MongoDB.close(conn));
162
+ * return $.return(id);
163
+ * });
164
+ *
165
+ * const compiled = East.compileAsync(createUser.toIR(), NoSQL.MongoDB.Implementation);
166
+ * await compiled("alice", "alice@example.com"); // "507f1f77bcf86cd799439011"
167
+ * ```
168
+ */
169
+ export declare const mongodb_insert_one: import("@elaraai/east").AsyncPlatformDefinition<[StringType, DictType<StringType, import("@elaraai/east").RecursiveType<import("@elaraai/east").EastType>>], StringType>;
170
+ /**
171
+ * Updates a document in MongoDB.
172
+ *
173
+ * Updates a single document matching the query with the update operations.
174
+ * Returns the number of documents modified (0 or 1).
175
+ *
176
+ * @param handle - Connection handle from mongodb_connect()
177
+ * @param query - Query object to match document
178
+ * @param update - Update operations object
179
+ * @returns Number of documents modified
180
+ *
181
+ * @throws {EastError} When operation fails (location: "mongodb_update_one")
182
+ *
183
+ * @example
184
+ * ```ts
185
+ * import { East, StringType, IntegerType, variant } from "@elaraai/east";
186
+ * import { NoSQL } from "@elaraai/east-node-io";
187
+ *
188
+ * const updateEmail = East.function([StringType, StringType], IntegerType, ($, username, newEmail) => {
189
+ * const config = $.let({
190
+ * uri: "mongodb://localhost:27017",
191
+ * database: "myapp",
192
+ * collection: "users",
193
+ * });
194
+ * const conn = $.let(NoSQL.MongoDB.connect(config));
195
+ * const query = $.let(new Map([["username", variant('String', username)]]), NoSQL.MongoDB.Types.BsonDocument);
196
+ * const update = $.let(new Map([["email", variant('String', newEmail)]]), NoSQL.MongoDB.Types.BsonDocument);
197
+ * const modified = $.let(NoSQL.MongoDB.updateOne(conn, query, update));
198
+ * $(NoSQL.MongoDB.close(conn));
199
+ * return $.return(modified);
200
+ * });
201
+ *
202
+ * const compiled = East.compileAsync(updateEmail.toIR(), NoSQL.MongoDB.Implementation);
203
+ * await compiled("alice", "newemail@example.com"); // 1n (updated) or 0n (not found)
204
+ * ```
205
+ */
206
+ export declare const mongodb_update_one: import("@elaraai/east").AsyncPlatformDefinition<[StringType, DictType<StringType, import("@elaraai/east").RecursiveType<import("@elaraai/east").EastType>>, DictType<StringType, import("@elaraai/east").RecursiveType<import("@elaraai/east").EastType>>], IntegerType>;
207
+ /**
208
+ * Deletes a document from MongoDB.
209
+ *
210
+ * Deletes a single document matching the query object.
211
+ * Returns the number of documents deleted (0 or 1).
212
+ *
213
+ * @param handle - Connection handle from mongodb_connect()
214
+ * @param query - Query object to match document
215
+ * @returns Number of documents deleted
216
+ *
217
+ * @throws {EastError} When operation fails (location: "mongodb_delete_one")
218
+ *
219
+ * @example
220
+ * ```ts
221
+ * import { East, StringType, IntegerType, variant } from "@elaraai/east";
222
+ * import { NoSQL } from "@elaraai/east-node-io";
223
+ *
224
+ * const deleteUser = East.function([StringType], IntegerType, ($, username) => {
225
+ * const config = $.let({
226
+ * uri: "mongodb://localhost:27017",
227
+ * database: "myapp",
228
+ * collection: "users",
229
+ * });
230
+ * const conn = $.let(NoSQL.MongoDB.connect(config));
231
+ * const query = $.let(new Map([["username", variant('String', username)]]), NoSQL.MongoDB.Types.BsonDocument);
232
+ * const deleted = $.let(NoSQL.MongoDB.deleteOne(conn, query));
233
+ * $(NoSQL.MongoDB.close(conn));
234
+ * return $.return(deleted);
235
+ * });
236
+ *
237
+ * const compiled = East.compileAsync(deleteUser.toIR(), NoSQL.MongoDB.Implementation);
238
+ * await compiled("alice"); // 1n (deleted) or 0n (not found)
239
+ * ```
240
+ */
241
+ export declare const mongodb_delete_one: import("@elaraai/east").AsyncPlatformDefinition<[StringType, DictType<StringType, import("@elaraai/east").RecursiveType<import("@elaraai/east").EastType>>], IntegerType>;
242
+ /**
243
+ * Deletes multiple documents from MongoDB.
244
+ *
245
+ * Deletes all documents matching the query object.
246
+ * Returns the number of documents deleted.
247
+ *
248
+ * @param handle - Connection handle from mongodb_connect()
249
+ * @param query - Query object to match documents (empty query matches all)
250
+ * @returns Number of documents deleted
251
+ *
252
+ * @throws {EastError} When operation fails (location: "mongodb_delete_many")
253
+ *
254
+ * @internal
255
+ */
256
+ export declare const mongodb_delete_many: import("@elaraai/east").AsyncPlatformDefinition<[StringType, DictType<StringType, import("@elaraai/east").RecursiveType<import("@elaraai/east").EastType>>], IntegerType>;
257
+ /**
258
+ * Closes a MongoDB connection.
259
+ *
260
+ * Closes the MongoDB connection and releases all resources.
261
+ *
262
+ * @param handle - Connection handle from mongodb_connect()
263
+ * @returns Null on success
264
+ *
265
+ * @throws {EastError} When handle is invalid (location: "mongodb_close")
266
+ *
267
+ * @example
268
+ * ```ts
269
+ * import { East, NullType } from "@elaraai/east";
270
+ * import { NoSQL } from "@elaraai/east-node-io";
271
+ *
272
+ * const cleanup = East.function([], NullType, $ => {
273
+ * const config = $.let({
274
+ * uri: "mongodb://localhost:27017",
275
+ * database: "myapp",
276
+ * collection: "users",
277
+ * });
278
+ * const conn = $.let(NoSQL.MongoDB.connect(config));
279
+ * // ... do work ...
280
+ * $(NoSQL.MongoDB.close(conn));
281
+ * return $.return(null);
282
+ * });
283
+ *
284
+ * const compiled = East.compileAsync(cleanup.toIR(), NoSQL.MongoDB.Implementation);
285
+ * await compiled();
286
+ * ```
287
+ */
288
+ export declare const mongodb_close: import("@elaraai/east").AsyncPlatformDefinition<[StringType], NullType>;
289
+ /**
290
+ * Closes all active MongoDB connections.
291
+ *
292
+ * Utility function for test cleanup. Closes all open connection handles,
293
+ * useful for ensuring cleanup even when tests fail.
294
+ *
295
+ * @returns Null on success
296
+ *
297
+ * @internal
298
+ */
299
+ export declare const mongodb_close_all: import("@elaraai/east").AsyncPlatformDefinition<[], NullType>;
300
+ /**
301
+ * Node.js implementation of MongoDB platform functions.
302
+ *
303
+ * Pass this to East.compileAsync() to enable MongoDB operations.
304
+ */
305
+ export declare const MongoDBImpl: PlatformFunction[];
306
+ //# sourceMappingURL=mongodb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongodb.d.ts","sourceRoot":"","sources":["../../src/nosql/mongodb.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AAEH,OAAO,EAAQ,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAA8E,MAAM,eAAe,CAAC;AAErL,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAM/D;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,+FAAsC,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,eAAe;;;;gBAAiF,CAAC;AAE9G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,eAAO,MAAM,gBAAgB,yQAAiH,CAAC;AAE/I;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,eAAO,MAAM,iBAAiB;;;8GAAuI,CAAC;AAEtK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,eAAO,MAAM,kBAAkB,0KAAiG,CAAC;AAEjI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,eAAO,MAAM,kBAAkB,0QAAoH,CAAC;AAEpJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,eAAO,MAAM,kBAAkB,2KAAkG,CAAC;AAElI;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,mBAAmB,2KAAmG,CAAC;AAEpI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,aAAa,yEAAwE,CAAC;AAEnG;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,+DAAwD,CAAC;AAqEvF;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,gBAAgB,EA+NzC,CAAC"}