@ductape/sdk 0.0.4-v59 → 0.0.4-v60

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 (251) hide show
  1. package/dist/agents/agents.service.d.ts +8 -2
  2. package/dist/agents/agents.service.js +5 -0
  3. package/dist/agents/agents.service.js.map +1 -1
  4. package/dist/agents/types/agents.types.d.ts +2 -0
  5. package/dist/agents/types/agents.types.js.map +1 -1
  6. package/dist/agents/vector-store-adapter.js +5 -5
  7. package/dist/agents/vector-store-adapter.js.map +1 -1
  8. package/dist/api/services/appApi.service.d.ts +3 -3
  9. package/dist/api/services/appApi.service.js.map +1 -1
  10. package/dist/api/services/productsApi.service.d.ts +1 -1
  11. package/dist/api/services/productsApi.service.js +20 -13
  12. package/dist/api/services/productsApi.service.js.map +1 -1
  13. package/dist/api/services/secretsApi.service.d.ts +12 -0
  14. package/dist/api/services/secretsApi.service.js +30 -2
  15. package/dist/api/services/secretsApi.service.js.map +1 -1
  16. package/dist/api/services/workspaceApi.service.d.ts +8 -0
  17. package/dist/api/services/workspaceApi.service.js +20 -0
  18. package/dist/api/services/workspaceApi.service.js.map +1 -1
  19. package/dist/api/urls.d.ts +2 -0
  20. package/dist/api/urls.js +10 -15
  21. package/dist/api/urls.js.map +1 -1
  22. package/dist/api/utils/auth.utils.d.ts +1 -3
  23. package/dist/api/utils/auth.utils.js.map +1 -1
  24. package/dist/apps/utils/oauth-manager.js +27 -3
  25. package/dist/apps/utils/oauth-manager.js.map +1 -1
  26. package/dist/brokers/brokers.service.d.ts +8 -0
  27. package/dist/brokers/brokers.service.js +50 -4
  28. package/dist/brokers/brokers.service.js.map +1 -1
  29. package/dist/brokers/types/index.d.ts +26 -0
  30. package/dist/brokers/utils/providers/kafka.service.d.ts +7 -0
  31. package/dist/brokers/utils/providers/kafka.service.js +102 -23
  32. package/dist/brokers/utils/providers/kafka.service.js.map +1 -1
  33. package/dist/brokers/utils/providers/rabbitmq.service.d.ts +2 -1
  34. package/dist/brokers/utils/providers/rabbitmq.service.js +99 -15
  35. package/dist/brokers/utils/providers/rabbitmq.service.js.map +1 -1
  36. package/dist/database/adapters/cassandra.adapter.d.ts +1 -0
  37. package/dist/database/adapters/cassandra.adapter.js +100 -44
  38. package/dist/database/adapters/cassandra.adapter.js.map +1 -1
  39. package/dist/database/adapters/dynamodb.adapter.d.ts +1 -0
  40. package/dist/database/adapters/dynamodb.adapter.js +89 -20
  41. package/dist/database/adapters/dynamodb.adapter.js.map +1 -1
  42. package/dist/database/adapters/mongodb.adapter.d.ts +1 -0
  43. package/dist/database/adapters/mongodb.adapter.js +123 -45
  44. package/dist/database/adapters/mongodb.adapter.js.map +1 -1
  45. package/dist/database/adapters/mysql.adapter.d.ts +1 -0
  46. package/dist/database/adapters/mysql.adapter.js +125 -48
  47. package/dist/database/adapters/mysql.adapter.js.map +1 -1
  48. package/dist/database/adapters/postgresql.adapter.d.ts +5 -0
  49. package/dist/database/adapters/postgresql.adapter.js +151 -50
  50. package/dist/database/adapters/postgresql.adapter.js.map +1 -1
  51. package/dist/database/databases.service.d.ts +15 -1
  52. package/dist/database/databases.service.js +143 -2
  53. package/dist/database/databases.service.js.map +1 -1
  54. package/dist/database/operators/aggregation-builder.d.ts +11 -8
  55. package/dist/database/operators/aggregation-builder.js +184 -89
  56. package/dist/database/operators/aggregation-builder.js.map +1 -1
  57. package/dist/database/operators/query-builder.d.ts +23 -19
  58. package/dist/database/operators/query-builder.js +77 -45
  59. package/dist/database/operators/query-builder.js.map +1 -1
  60. package/dist/database/types/aggregation.interface.d.ts +21 -15
  61. package/dist/database/types/query.interface.d.ts +27 -21
  62. package/dist/database/types/write.interface.d.ts +20 -12
  63. package/dist/graph/adapters/arangodb.adapter.js +61 -22
  64. package/dist/graph/adapters/arangodb.adapter.js.map +1 -1
  65. package/dist/graph/adapters/memgraph.adapter.js +22 -16
  66. package/dist/graph/adapters/memgraph.adapter.js.map +1 -1
  67. package/dist/graph/adapters/neo4j.adapter.js +51 -21
  68. package/dist/graph/adapters/neo4j.adapter.js.map +1 -1
  69. package/dist/graph/adapters/neptune.adapter.js +32 -16
  70. package/dist/graph/adapters/neptune.adapter.js.map +1 -1
  71. package/dist/graph/graphs.service.d.ts +24 -2
  72. package/dist/graph/graphs.service.js +238 -28
  73. package/dist/graph/graphs.service.js.map +1 -1
  74. package/dist/graph/types/connection.interface.d.ts +8 -0
  75. package/dist/graph/types/query.interface.d.ts +21 -14
  76. package/dist/index.d.ts +367 -20
  77. package/dist/index.js +510 -48
  78. package/dist/index.js.map +1 -1
  79. package/dist/inputs/inputs.service.d.ts +1 -1
  80. package/dist/notifications/notifications.service.d.ts +7 -2
  81. package/dist/notifications/notifications.service.js +2 -0
  82. package/dist/notifications/notifications.service.js.map +1 -1
  83. package/dist/processor/services/processor.service.d.ts +5 -1
  84. package/dist/processor/services/processor.service.js +35 -2
  85. package/dist/processor/services/processor.service.js.map +1 -1
  86. package/dist/products/services/products.service.d.ts +76 -2
  87. package/dist/products/services/products.service.js +984 -27
  88. package/dist/products/services/products.service.js.map +1 -1
  89. package/dist/products/validators/joi-validators/create.productAgent.validator.js +52 -4
  90. package/dist/products/validators/joi-validators/create.productAgent.validator.js.map +1 -1
  91. package/dist/products/validators/joi-validators/create.productGraph.validator.js +2 -0
  92. package/dist/products/validators/joi-validators/create.productGraph.validator.js.map +1 -1
  93. package/dist/products/validators/joi-validators/create.productMessageBrokers.validator.js +1 -7
  94. package/dist/products/validators/joi-validators/create.productMessageBrokers.validator.js.map +1 -1
  95. package/dist/products/validators/joi-validators/create.productVector.validator.js +4 -4
  96. package/dist/products/validators/joi-validators/create.productVector.validator.js.map +1 -1
  97. package/dist/products/validators/joi-validators/update.productGraph.validator.js +2 -0
  98. package/dist/products/validators/joi-validators/update.productGraph.validator.js.map +1 -1
  99. package/dist/resilience/fallback.service.d.ts +4 -1
  100. package/dist/resilience/fallback.service.js +8 -10
  101. package/dist/resilience/fallback.service.js.map +1 -1
  102. package/dist/resilience/healthcheck.service.d.ts +6 -1
  103. package/dist/resilience/healthcheck.service.js +9 -0
  104. package/dist/resilience/healthcheck.service.js.map +1 -1
  105. package/dist/resilience/quota.service.d.ts +4 -1
  106. package/dist/resilience/quota.service.js +2 -0
  107. package/dist/resilience/quota.service.js.map +1 -1
  108. package/dist/resilience/resilience.service.d.ts +4 -1
  109. package/dist/resilience/resilience.service.js.map +1 -1
  110. package/dist/secrets/secrets.service.d.ts +11 -1
  111. package/dist/secrets/secrets.service.js +109 -10
  112. package/dist/secrets/secrets.service.js.map +1 -1
  113. package/dist/storage/storage.service.d.ts +4 -1
  114. package/dist/storage/storage.service.js +6 -1
  115. package/dist/storage/storage.service.js.map +1 -1
  116. package/dist/test/index.js +1 -3
  117. package/dist/test/index.js.map +1 -1
  118. package/dist/test/test.broker.kafka.d.ts +1 -0
  119. package/dist/test/test.broker.kafka.js +172 -0
  120. package/dist/test/test.broker.kafka.js.map +1 -0
  121. package/dist/test/test.broker.nats.d.ts +1 -0
  122. package/dist/test/test.broker.nats.js +193 -0
  123. package/dist/test/test.broker.nats.js.map +1 -0
  124. package/dist/test/test.broker.pubsub.d.ts +1 -0
  125. package/dist/test/test.broker.pubsub.js +171 -0
  126. package/dist/test/test.broker.pubsub.js.map +1 -0
  127. package/dist/test/test.broker.rabbitmq.d.ts +1 -0
  128. package/dist/test/test.broker.rabbitmq.js +164 -0
  129. package/dist/test/test.broker.rabbitmq.js.map +1 -0
  130. package/dist/test/test.broker.redis.d.ts +1 -0
  131. package/dist/test/test.broker.redis.js +168 -0
  132. package/dist/test/test.broker.redis.js.map +1 -0
  133. package/dist/test/test.broker.sqs.d.ts +1 -0
  134. package/dist/test/test.broker.sqs.js +158 -0
  135. package/dist/test/test.broker.sqs.js.map +1 -0
  136. package/dist/test/test.caches.d.ts +1 -0
  137. package/dist/test/test.caches.js +231 -0
  138. package/dist/test/test.caches.js.map +1 -0
  139. package/dist/test/test.database.dynamo.d.ts +1 -0
  140. package/dist/test/test.database.dynamo.js +265 -0
  141. package/dist/test/test.database.dynamo.js.map +1 -0
  142. package/dist/test/test.database.js +2 -2
  143. package/dist/test/test.database.js.map +1 -1
  144. package/dist/test/test.database.mongo.d.ts +1 -0
  145. package/dist/test/test.database.mongo.js +371 -0
  146. package/dist/test/test.database.mongo.js.map +1 -0
  147. package/dist/test/test.database.mysql.d.ts +1 -0
  148. package/dist/test/test.database.mysql.js +415 -0
  149. package/dist/test/test.database.mysql.js.map +1 -0
  150. package/dist/test/test.database.postgres.d.ts +1 -0
  151. package/dist/test/test.database.postgres.js +412 -0
  152. package/dist/test/test.database.postgres.js.map +1 -0
  153. package/dist/test/test.email.brevo.d.ts +1 -0
  154. package/dist/test/test.email.brevo.js +326 -0
  155. package/dist/test/test.email.brevo.js.map +1 -0
  156. package/dist/test/test.email.mailgun.d.ts +1 -0
  157. package/dist/test/test.email.mailgun.js +352 -0
  158. package/dist/test/test.email.mailgun.js.map +1 -0
  159. package/dist/test/test.email.postmark.d.ts +1 -0
  160. package/dist/test/test.email.postmark.js +316 -0
  161. package/dist/test/test.email.postmark.js.map +1 -0
  162. package/dist/test/test.email.sendgrid.d.ts +1 -0
  163. package/dist/test/test.email.sendgrid.js +365 -0
  164. package/dist/test/test.email.sendgrid.js.map +1 -0
  165. package/dist/test/test.email.smtp.d.ts +1 -0
  166. package/dist/test/test.email.smtp.js +323 -0
  167. package/dist/test/test.email.smtp.js.map +1 -0
  168. package/dist/test/test.graph.arangodb.d.ts +1 -0
  169. package/dist/test/test.graph.arangodb.js +358 -0
  170. package/dist/test/test.graph.arangodb.js.map +1 -0
  171. package/dist/test/test.graph.memgraph.d.ts +1 -0
  172. package/dist/test/test.graph.memgraph.js +320 -0
  173. package/dist/test/test.graph.memgraph.js.map +1 -0
  174. package/dist/test/test.graph.neo4j.d.ts +1 -0
  175. package/dist/test/test.graph.neo4j.js +218 -0
  176. package/dist/test/test.graph.neo4j.js.map +1 -0
  177. package/dist/test/test.graph.neptune.d.ts +1 -0
  178. package/dist/test/test.graph.neptune.js +331 -0
  179. package/dist/test/test.graph.neptune.js.map +1 -0
  180. package/dist/test/test.notifications.d.ts +1 -0
  181. package/dist/test/test.notifications.js +198 -0
  182. package/dist/test/test.notifications.js.map +1 -0
  183. package/dist/test/test.push.expo.d.ts +1 -0
  184. package/dist/test/test.push.expo.js +442 -0
  185. package/dist/test/test.push.expo.js.map +1 -0
  186. package/dist/test/test.push.firebase.d.ts +1 -0
  187. package/dist/test/test.push.firebase.js +409 -0
  188. package/dist/test/test.push.firebase.js.map +1 -0
  189. package/dist/test/test.session.d.ts +1 -0
  190. package/dist/test/test.session.js +299 -0
  191. package/dist/test/test.session.js.map +1 -0
  192. package/dist/test/test.sms.nexmo.d.ts +1 -0
  193. package/dist/test/test.sms.nexmo.js +278 -0
  194. package/dist/test/test.sms.nexmo.js.map +1 -0
  195. package/dist/test/test.sms.twilio.d.ts +1 -0
  196. package/dist/test/test.sms.twilio.js +275 -0
  197. package/dist/test/test.sms.twilio.js.map +1 -0
  198. package/dist/test/test.storage.js +169 -299
  199. package/dist/test/test.storage.js.map +1 -1
  200. package/dist/test/test.vector.pinecone.d.ts +1 -0
  201. package/dist/test/test.vector.pinecone.js +238 -0
  202. package/dist/test/test.vector.pinecone.js.map +1 -0
  203. package/dist/test/test.vector.qdrant.d.ts +1 -0
  204. package/dist/test/test.vector.qdrant.js +307 -0
  205. package/dist/test/test.vector.qdrant.js.map +1 -0
  206. package/dist/test/test.vector.weaviate.d.ts +1 -0
  207. package/dist/test/test.vector.weaviate.js +325 -0
  208. package/dist/test/test.vector.weaviate.js.map +1 -0
  209. package/dist/types/appBuilder.types.d.ts +6 -2
  210. package/dist/types/enums.d.ts +2 -0
  211. package/dist/types/enums.js +2 -0
  212. package/dist/types/enums.js.map +1 -1
  213. package/dist/types/index.types.d.ts +2 -4
  214. package/dist/types/index.types.js +0 -1
  215. package/dist/types/index.types.js.map +1 -1
  216. package/dist/types/processor.types.d.ts +18 -0
  217. package/dist/types/productsBuilder.types.d.ts +19 -15
  218. package/dist/types/productsBuilder.types.js.map +1 -1
  219. package/dist/types/requests.types.d.ts +2 -0
  220. package/dist/utils/index.js +23 -4
  221. package/dist/utils/index.js.map +1 -1
  222. package/dist/vector/adapters/base.adapter.d.ts +1 -1
  223. package/dist/vector/adapters/memory.adapter.d.ts +1 -1
  224. package/dist/vector/adapters/memory.adapter.js +1 -1
  225. package/dist/vector/adapters/memory.adapter.js.map +1 -1
  226. package/dist/vector/adapters/pinecone.adapter.d.ts +1 -1
  227. package/dist/vector/adapters/pinecone.adapter.js +1 -1
  228. package/dist/vector/adapters/pinecone.adapter.js.map +1 -1
  229. package/dist/vector/adapters/qdrant.adapter.d.ts +1 -1
  230. package/dist/vector/adapters/qdrant.adapter.js +1 -1
  231. package/dist/vector/adapters/qdrant.adapter.js.map +1 -1
  232. package/dist/vector/adapters/weaviate.adapter.d.ts +1 -1
  233. package/dist/vector/adapters/weaviate.adapter.js +1 -1
  234. package/dist/vector/adapters/weaviate.adapter.js.map +1 -1
  235. package/dist/vector/index.d.ts +2 -2
  236. package/dist/vector/index.js +2 -2
  237. package/dist/vector/utils/vector-error.js +0 -1
  238. package/dist/vector/utils/vector-error.js.map +1 -1
  239. package/dist/vector/vector-database.service.d.ts +9 -6
  240. package/dist/vector/vector-database.service.js +7 -6
  241. package/dist/vector/vector-database.service.js.map +1 -1
  242. package/dist/vector/vector.service.d.ts +3 -3
  243. package/dist/vector/vector.service.js +12 -9
  244. package/dist/vector/vector.service.js.map +1 -1
  245. package/dist/workflows/workflow-executor.d.ts +4 -1
  246. package/dist/workflows/workflow-executor.js +10 -2
  247. package/dist/workflows/workflow-executor.js.map +1 -1
  248. package/dist/workflows/workflows.service.d.ts +8 -2
  249. package/dist/workflows/workflows.service.js +66 -41
  250. package/dist/workflows/workflows.service.js.map +1 -1
  251. package/package.json +29 -4
@@ -271,29 +271,38 @@ class AggregationBuilder {
271
271
  };
272
272
  }
273
273
  buildMongoAggregationField(alias, operation) {
274
- if (operation.$COUNT !== undefined) {
275
- if (operation.$COUNT === '*') {
274
+ // Support both lowercase (new) and uppercase (legacy) operators
275
+ const count = operation.$count;
276
+ const sum = operation.$sum;
277
+ const avg = operation.$avg;
278
+ const min = operation.$min;
279
+ const max = operation.$max;
280
+ const arrayAgg = operation.$arrayAgg;
281
+ const stringAgg = operation.$stringAgg;
282
+ const groupConcat = operation.$groupConcat;
283
+ if (count !== undefined) {
284
+ if (count === '*') {
276
285
  return { [alias]: { $sum: 1 } };
277
286
  }
278
- return { [alias]: { $sum: { $cond: [{ $ne: [`$${operation.$COUNT}`, null] }, 1, 0] } } };
287
+ return { [alias]: { $sum: { $cond: [{ $ne: [`$${count}`, null] }, 1, 0] } } };
279
288
  }
280
- if (operation.$SUM !== undefined) {
281
- return { [alias]: { $sum: `$${operation.$SUM}` } };
289
+ if (sum !== undefined) {
290
+ return { [alias]: { $sum: `$${sum}` } };
282
291
  }
283
- if (operation.$AVG !== undefined) {
284
- return { [alias]: { $avg: `$${operation.$AVG}` } };
292
+ if (avg !== undefined) {
293
+ return { [alias]: { $avg: `$${avg}` } };
285
294
  }
286
- if (operation.$MIN !== undefined) {
287
- return { [alias]: { $min: `$${operation.$MIN}` } };
295
+ if (min !== undefined) {
296
+ return { [alias]: { $min: `$${min}` } };
288
297
  }
289
- if (operation.$MAX !== undefined) {
290
- return { [alias]: { $max: `$${operation.$MAX}` } };
298
+ if (max !== undefined) {
299
+ return { [alias]: { $max: `$${max}` } };
291
300
  }
292
- if (operation.$ARRAY_AGG !== undefined) {
293
- return { [alias]: { $push: `$${operation.$ARRAY_AGG}` } };
301
+ if (arrayAgg !== undefined) {
302
+ return { [alias]: { $push: `$${arrayAgg}` } };
294
303
  }
295
- if (operation.$STRING_AGG !== undefined || operation.$GROUP_CONCAT !== undefined) {
296
- const opts = (operation.$STRING_AGG || operation.$GROUP_CONCAT);
304
+ if (stringAgg !== undefined || groupConcat !== undefined) {
305
+ const opts = (stringAgg || groupConcat);
297
306
  // MongoDB doesn't have direct string aggregation, collect as array and join later
298
307
  return { [alias]: { $push: `$${opts.column}` } };
299
308
  }
@@ -302,17 +311,21 @@ class AggregationBuilder {
302
311
  buildMongoMatch(where) {
303
312
  const match = {};
304
313
  for (const [key, value] of Object.entries(where)) {
305
- if (key === '$AND') {
306
- const andConditions = Object.entries(value).map(([k, v]) => this.buildMongoMatch({ [k]: v }));
314
+ // Normalize key to lowercase for comparison (support both cases for backwards compatibility)
315
+ const normalizedKey = key.toLowerCase();
316
+ if (normalizedKey === '$and') {
317
+ const conditions = Array.isArray(value) ? value : Object.entries(value).map(([k, v]) => ({ [k]: v }));
318
+ const andConditions = conditions.map((cond) => this.buildMongoMatch(cond));
307
319
  match.$and = andConditions;
308
320
  continue;
309
321
  }
310
- if (key === '$OR') {
311
- const orConditions = Object.entries(value).map(([k, v]) => this.buildMongoMatch({ [k]: v }));
322
+ if (normalizedKey === '$or') {
323
+ const conditions = Array.isArray(value) ? value : Object.entries(value).map(([k, v]) => ({ [k]: v }));
324
+ const orConditions = conditions.map((cond) => this.buildMongoMatch(cond));
312
325
  match.$or = orConditions;
313
326
  continue;
314
327
  }
315
- if (key === '$NOT') {
328
+ if (normalizedKey === '$not') {
316
329
  const notCondition = this.buildMongoMatch(value);
317
330
  // Wrap each condition in $not
318
331
  for (const [field, cond] of Object.entries(notCondition)) {
@@ -320,6 +333,12 @@ class AggregationBuilder {
320
333
  }
321
334
  continue;
322
335
  }
336
+ if (normalizedKey === '$nor') {
337
+ const conditions = Array.isArray(value) ? value : [value];
338
+ const norConditions = conditions.map((cond) => this.buildMongoMatch(cond));
339
+ match.$nor = norConditions;
340
+ continue;
341
+ }
323
342
  if (value !== null && typeof value === 'object' && !Array.isArray(value) && !(value instanceof Date)) {
324
343
  match[key] = this.translateMongoOperators(value);
325
344
  }
@@ -332,43 +351,47 @@ class AggregationBuilder {
332
351
  translateMongoOperators(conditions) {
333
352
  const result = {};
334
353
  for (const [op, val] of Object.entries(conditions)) {
335
- switch (op) {
336
- case '$EQ':
354
+ // Normalize operator to lowercase for comparison (support both cases for backwards compatibility)
355
+ const normalizedOp = op.toLowerCase();
356
+ switch (normalizedOp) {
357
+ case '$eq':
337
358
  result.$eq = val;
338
359
  break;
339
- case '$NE':
340
- case '$NOT':
360
+ case '$ne':
361
+ case '$not':
341
362
  result.$ne = val;
342
363
  break;
343
- case '$GT':
364
+ case '$gt':
344
365
  result.$gt = val;
345
366
  break;
346
- case '$GTE':
367
+ case '$gte':
347
368
  result.$gte = val;
348
369
  break;
349
- case '$LT':
370
+ case '$lt':
350
371
  result.$lt = val;
351
372
  break;
352
- case '$LTE':
373
+ case '$lte':
353
374
  result.$lte = val;
354
375
  break;
355
- case '$IN':
376
+ case '$in':
356
377
  result.$in = val;
357
378
  break;
358
- case '$NOT_IN':
379
+ case '$nin':
380
+ case '$not_in':
359
381
  result.$nin = val;
360
382
  break;
361
- case '$LIKE':
383
+ case '$like':
362
384
  // Convert SQL LIKE to MongoDB regex
363
385
  const likePattern = String(val).replace(/%/g, '.*').replace(/_/g, '.');
364
386
  result.$regex = `^${likePattern}$`;
365
387
  break;
366
- case '$ILIKE':
388
+ case '$ilike':
367
389
  const ilikePattern = String(val).replace(/%/g, '.*').replace(/_/g, '.');
368
390
  result.$regex = `^${ilikePattern}$`;
369
391
  result.$options = 'i';
370
392
  break;
371
- case '$IS_NULL':
393
+ case '$isnull':
394
+ case '$is_null':
372
395
  if (val) {
373
396
  result.$eq = null;
374
397
  }
@@ -376,7 +399,8 @@ class AggregationBuilder {
376
399
  result.$ne = null;
377
400
  }
378
401
  break;
379
- case '$IS_NOT_NULL':
402
+ case '$isnotnull':
403
+ case '$is_not_null':
380
404
  if (val) {
381
405
  result.$ne = null;
382
406
  }
@@ -384,14 +408,28 @@ class AggregationBuilder {
384
408
  result.$eq = null;
385
409
  }
386
410
  break;
387
- case '$BETWEEN':
411
+ case '$between':
388
412
  const [min, max] = val;
389
413
  result.$gte = min;
390
414
  result.$lte = max;
391
415
  break;
392
- case '$CONTAINS':
416
+ case '$contains':
393
417
  result.$elemMatch = { $eq: val };
394
418
  break;
419
+ case '$regex':
420
+ if (typeof val === 'string') {
421
+ result.$regex = val;
422
+ }
423
+ else if (val instanceof RegExp) {
424
+ result.$regex = val.source;
425
+ if (val.flags) {
426
+ result.$options = val.flags;
427
+ }
428
+ }
429
+ break;
430
+ case '$exists':
431
+ result.$exists = val;
432
+ break;
395
433
  default:
396
434
  result[op] = val;
397
435
  }
@@ -486,34 +524,35 @@ class AggregationBuilder {
486
524
  }
487
525
  buildSingleAggregation(alias, operation, dbType) {
488
526
  const escapedAlias = this.escapeIdentifier(alias, dbType);
489
- if (operation.$COUNT !== undefined) {
490
- const col = operation.$COUNT === '*' ? '*' : this.escapeIdentifier(operation.$COUNT, dbType);
527
+ // Support lowercase operators (Mongoose/MongoDB style)
528
+ if (operation.$count !== undefined) {
529
+ const col = operation.$count === '*' ? '*' : this.escapeIdentifier(operation.$count, dbType);
491
530
  return `COUNT(${col}) AS ${escapedAlias}`;
492
531
  }
493
- if (operation.$SUM !== undefined) {
494
- return `SUM(${this.escapeIdentifier(operation.$SUM, dbType)}) AS ${escapedAlias}`;
532
+ if (operation.$sum !== undefined) {
533
+ return `SUM(${this.escapeIdentifier(operation.$sum, dbType)}) AS ${escapedAlias}`;
495
534
  }
496
- if (operation.$AVG !== undefined) {
497
- return `AVG(${this.escapeIdentifier(operation.$AVG, dbType)}) AS ${escapedAlias}`;
535
+ if (operation.$avg !== undefined) {
536
+ return `AVG(${this.escapeIdentifier(operation.$avg, dbType)}) AS ${escapedAlias}`;
498
537
  }
499
- if (operation.$MIN !== undefined) {
500
- return `MIN(${this.escapeIdentifier(operation.$MIN, dbType)}) AS ${escapedAlias}`;
538
+ if (operation.$min !== undefined) {
539
+ return `MIN(${this.escapeIdentifier(operation.$min, dbType)}) AS ${escapedAlias}`;
501
540
  }
502
- if (operation.$MAX !== undefined) {
503
- return `MAX(${this.escapeIdentifier(operation.$MAX, dbType)}) AS ${escapedAlias}`;
541
+ if (operation.$max !== undefined) {
542
+ return `MAX(${this.escapeIdentifier(operation.$max, dbType)}) AS ${escapedAlias}`;
504
543
  }
505
- if (operation.$STRING_AGG !== undefined) {
506
- return this.buildStringAggregation(alias, operation.$STRING_AGG, dbType);
544
+ if (operation.$stringAgg !== undefined) {
545
+ return this.buildStringAggregation(alias, operation.$stringAgg, dbType);
507
546
  }
508
- if (operation.$GROUP_CONCAT !== undefined) {
509
- return this.buildStringAggregation(alias, operation.$GROUP_CONCAT, dbType);
547
+ if (operation.$groupConcat !== undefined) {
548
+ return this.buildStringAggregation(alias, operation.$groupConcat, dbType);
510
549
  }
511
- if (operation.$ARRAY_AGG !== undefined) {
550
+ if (operation.$arrayAgg !== undefined) {
512
551
  if (dbType === 'postgresql') {
513
- return `ARRAY_AGG(${this.escapeIdentifier(operation.$ARRAY_AGG, dbType)}) AS ${escapedAlias}`;
552
+ return `ARRAY_AGG(${this.escapeIdentifier(operation.$arrayAgg, dbType)}) AS ${escapedAlias}`;
514
553
  }
515
554
  // Not supported in MySQL/Cassandra
516
- throw new Error(`$ARRAY_AGG is not supported for ${dbType}`);
555
+ throw new Error(`$arrayAgg is not supported for ${dbType}`);
517
556
  }
518
557
  return null;
519
558
  }
@@ -548,8 +587,11 @@ class AggregationBuilder {
548
587
  const params = [];
549
588
  let paramIndex = startIndex;
550
589
  for (const [key, value] of Object.entries(where)) {
551
- if (key === '$AND') {
552
- const andResults = Object.entries(value).map(([k, v]) => this.buildWhereClause({ [k]: v }, dbType, paramIndex));
590
+ // Normalize key to lowercase for comparison (support both cases for backwards compatibility)
591
+ const normalizedKey = key.toLowerCase();
592
+ if (normalizedKey === '$and') {
593
+ const conditions = Array.isArray(value) ? value : Object.entries(value).map(([k, v]) => ({ [k]: v }));
594
+ const andResults = conditions.map((cond) => this.buildWhereClause(cond, dbType, paramIndex));
553
595
  const andClauses = andResults.map(r => r.clause);
554
596
  andResults.forEach(r => {
555
597
  params.push(...r.params);
@@ -558,8 +600,9 @@ class AggregationBuilder {
558
600
  clauses.push(`(${andClauses.join(' AND ')})`);
559
601
  continue;
560
602
  }
561
- if (key === '$OR') {
562
- const orResults = Object.entries(value).map(([k, v]) => this.buildWhereClause({ [k]: v }, dbType, paramIndex));
603
+ if (normalizedKey === '$or') {
604
+ const conditions = Array.isArray(value) ? value : Object.entries(value).map(([k, v]) => ({ [k]: v }));
605
+ const orResults = conditions.map((cond) => this.buildWhereClause(cond, dbType, paramIndex));
563
606
  const orClauses = orResults.map(r => r.clause);
564
607
  orResults.forEach(r => {
565
608
  params.push(...r.params);
@@ -568,13 +611,24 @@ class AggregationBuilder {
568
611
  clauses.push(`(${orClauses.join(' OR ')})`);
569
612
  continue;
570
613
  }
571
- if (key === '$NOT') {
614
+ if (normalizedKey === '$not') {
572
615
  const notResult = this.buildWhereClause(value, dbType, paramIndex);
573
616
  clauses.push(`NOT (${notResult.clause})`);
574
617
  params.push(...notResult.params);
575
618
  paramIndex += notResult.params.length;
576
619
  continue;
577
620
  }
621
+ if (normalizedKey === '$nor') {
622
+ const conditions = Array.isArray(value) ? value : [value];
623
+ const norResults = conditions.map((cond) => this.buildWhereClause(cond, dbType, paramIndex));
624
+ const norClauses = norResults.map(r => r.clause);
625
+ norResults.forEach(r => {
626
+ params.push(...r.params);
627
+ paramIndex += r.params.length;
628
+ });
629
+ clauses.push(`NOT (${norClauses.join(' OR ')})`);
630
+ continue;
631
+ }
578
632
  if (value !== null && typeof value === 'object' && !Array.isArray(value) && !(value instanceof Date)) {
579
633
  for (const [op, opValue] of Object.entries(value)) {
580
634
  const result = this.buildComparisonClause(key, op, opValue, dbType, paramIndex);
@@ -600,42 +654,49 @@ class AggregationBuilder {
600
654
  buildComparisonClause(field, operator, value, dbType, paramIndex) {
601
655
  const escapedField = this.escapeIdentifier(field, dbType);
602
656
  const placeholder = this.getPlaceholder(dbType, paramIndex);
603
- switch (operator) {
604
- case '$EQ':
657
+ // Normalize operator to lowercase for comparison (support both cases for backwards compatibility)
658
+ const op = operator.toLowerCase();
659
+ switch (op) {
660
+ case '$eq':
605
661
  return { clause: `${escapedField} = ${placeholder}`, params: [value] };
606
- case '$NE':
607
- case '$NOT':
662
+ case '$ne':
608
663
  return { clause: `${escapedField} != ${placeholder}`, params: [value] };
609
- case '$GT':
664
+ case '$gt':
610
665
  return { clause: `${escapedField} > ${placeholder}`, params: [value] };
611
- case '$GTE':
666
+ case '$gte':
612
667
  return { clause: `${escapedField} >= ${placeholder}`, params: [value] };
613
- case '$LT':
668
+ case '$lt':
614
669
  return { clause: `${escapedField} < ${placeholder}`, params: [value] };
615
- case '$LTE':
670
+ case '$lte':
616
671
  return { clause: `${escapedField} <= ${placeholder}`, params: [value] };
617
- case '$IN':
672
+ case '$in':
618
673
  if (dbType === 'postgresql') {
619
674
  return { clause: `${escapedField} = ANY(${placeholder})`, params: [value] };
620
675
  }
676
+ else if (dbType === 'cassandra') {
677
+ return { clause: `${escapedField} IN ${placeholder}`, params: [value] };
678
+ }
621
679
  return { clause: `${escapedField} IN (${placeholder})`, params: [value] };
622
- case '$NOT_IN':
680
+ case '$nin':
681
+ case '$not_in':
623
682
  if (dbType === 'postgresql') {
624
683
  return { clause: `${escapedField} != ALL(${placeholder})`, params: [value] };
625
684
  }
626
685
  return { clause: `${escapedField} NOT IN (${placeholder})`, params: [value] };
627
- case '$LIKE':
686
+ case '$like':
628
687
  return { clause: `${escapedField} LIKE ${placeholder}`, params: [value] };
629
- case '$ILIKE':
688
+ case '$ilike':
630
689
  if (dbType === 'postgresql') {
631
690
  return { clause: `${escapedField} ILIKE ${placeholder}`, params: [value] };
632
691
  }
633
692
  return { clause: `LOWER(${escapedField}) LIKE LOWER(${placeholder})`, params: [value] };
634
- case '$IS_NULL':
693
+ case '$isnull':
694
+ case '$is_null':
635
695
  return { clause: `${escapedField} IS ${value ? 'NULL' : 'NOT NULL'}`, params: [] };
636
- case '$IS_NOT_NULL':
696
+ case '$isnotnull':
697
+ case '$is_not_null':
637
698
  return { clause: `${escapedField} IS ${value ? 'NOT NULL' : 'NULL'}`, params: [] };
638
- case '$BETWEEN':
699
+ case '$between':
639
700
  const [min, max] = value;
640
701
  if (dbType === 'postgresql') {
641
702
  return {
@@ -647,6 +708,35 @@ class AggregationBuilder {
647
708
  clause: `${escapedField} BETWEEN ? AND ?`,
648
709
  params: [min, max],
649
710
  };
711
+ case '$contains':
712
+ if (dbType === 'postgresql') {
713
+ return { clause: `${escapedField} @> ${placeholder}`, params: [value] };
714
+ }
715
+ else if (dbType === 'cassandra') {
716
+ return { clause: `${escapedField} CONTAINS ${placeholder}`, params: [value] };
717
+ }
718
+ return { clause: `JSON_CONTAINS(${escapedField}, ${placeholder})`, params: [JSON.stringify(value)] };
719
+ case '$containedby':
720
+ case '$contained_by':
721
+ if (dbType === 'postgresql') {
722
+ return { clause: `${escapedField} <@ ${placeholder}`, params: [value] };
723
+ }
724
+ throw new Error(`$containedBy is not supported for ${dbType}`);
725
+ case '$overlaps':
726
+ if (dbType === 'postgresql') {
727
+ return { clause: `${escapedField} && ${placeholder}`, params: [value] };
728
+ }
729
+ throw new Error(`$overlaps is not supported for ${dbType}`);
730
+ case '$regex':
731
+ if (dbType === 'postgresql') {
732
+ return { clause: `${escapedField} ~ ${placeholder}`, params: [value] };
733
+ }
734
+ else if (dbType === 'mysql' || dbType === 'mariadb') {
735
+ return { clause: `${escapedField} REGEXP ${placeholder}`, params: [value] };
736
+ }
737
+ throw new Error(`$regex is not supported for ${dbType}`);
738
+ case '$exists':
739
+ return { clause: `${escapedField} IS ${value ? 'NOT NULL' : 'NULL'}`, params: [] };
650
740
  default:
651
741
  throw new Error(`Unknown operator: ${operator}`);
652
742
  }
@@ -671,20 +761,22 @@ class AggregationBuilder {
671
761
  buildHavingCondition(alias, operator, value, dbType, paramIndex) {
672
762
  const escapedAlias = this.escapeIdentifier(alias, dbType);
673
763
  const placeholder = this.getPlaceholder(dbType, paramIndex);
674
- switch (operator) {
675
- case '$GT':
764
+ // Normalize operator to lowercase for comparison (support both cases for backwards compatibility)
765
+ const op = operator.toLowerCase();
766
+ switch (op) {
767
+ case '$gt':
676
768
  return { clause: `${escapedAlias} > ${placeholder}`, params: [value] };
677
- case '$GTE':
769
+ case '$gte':
678
770
  return { clause: `${escapedAlias} >= ${placeholder}`, params: [value] };
679
- case '$LT':
771
+ case '$lt':
680
772
  return { clause: `${escapedAlias} < ${placeholder}`, params: [value] };
681
- case '$LTE':
773
+ case '$lte':
682
774
  return { clause: `${escapedAlias} <= ${placeholder}`, params: [value] };
683
- case '$EQ':
775
+ case '$eq':
684
776
  return { clause: `${escapedAlias} = ${placeholder}`, params: [value] };
685
- case '$NE':
777
+ case '$ne':
686
778
  return { clause: `${escapedAlias} != ${placeholder}`, params: [value] };
687
- case '$BETWEEN':
779
+ case '$between':
688
780
  const [min, max] = value;
689
781
  if (dbType === 'postgresql') {
690
782
  return {
@@ -732,15 +824,18 @@ class AggregationBuilder {
732
824
  exports.AggregationBuilder = AggregationBuilder;
733
825
  /**
734
826
  * Export aggregation operators for external use
827
+ * Uses lowercase naming convention to match Mongoose/MongoDB style
735
828
  */
736
829
  exports.AggregationOperators = {
737
- $COUNT: '$COUNT',
738
- $SUM: '$SUM',
739
- $AVG: '$AVG',
740
- $MIN: '$MIN',
741
- $MAX: '$MAX',
742
- $STRING_AGG: '$STRING_AGG',
743
- $GROUP_CONCAT: '$GROUP_CONCAT',
744
- $ARRAY_AGG: '$ARRAY_AGG',
830
+ $count: '$count',
831
+ $sum: '$sum',
832
+ $avg: '$avg',
833
+ $min: '$min',
834
+ $max: '$max',
835
+ $stringAgg: '$stringAgg',
836
+ $groupConcat: '$groupConcat',
837
+ $arrayAgg: '$arrayAgg',
838
+ $first: '$first',
839
+ $last: '$last',
745
840
  };
746
841
  //# sourceMappingURL=aggregation-builder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"aggregation-builder.js","sourceRoot":"","sources":["../../../src/database/operators/aggregation-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aggregation-builder.js","sourceRoot":"","sources":["../../../src/database/operators/aggregation-builder.ts"],"names":[],"mappings":"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"}
@@ -30,26 +30,30 @@ export declare class QueryBuilder {
30
30
  }
31
31
  /**
32
32
  * Export operators for external use
33
+ * Uses lowercase naming convention to match Mongoose/MongoDB style
33
34
  */
34
35
  export declare const Operators: {
35
- readonly $EQ: "$EQ";
36
- readonly $NE: "$NE";
37
- readonly $GT: "$GT";
38
- readonly $GTE: "$GTE";
39
- readonly $LT: "$LT";
40
- readonly $LTE: "$LTE";
41
- readonly $IN: "$IN";
42
- readonly $NOT_IN: "$NOT_IN";
43
- readonly $LIKE: "$LIKE";
44
- readonly $ILIKE: "$ILIKE";
45
- readonly $IS_NULL: "$IS_NULL";
46
- readonly $IS_NOT_NULL: "$IS_NOT_NULL";
47
- readonly $BETWEEN: "$BETWEEN";
48
- readonly $CONTAINS: "$CONTAINS";
49
- readonly $CONTAINED_BY: "$CONTAINED_BY";
50
- readonly $OVERLAPS: "$OVERLAPS";
51
- readonly $AND: "$AND";
52
- readonly $OR: "$OR";
53
- readonly $NOT: "$NOT";
36
+ readonly $eq: "$eq";
37
+ readonly $ne: "$ne";
38
+ readonly $gt: "$gt";
39
+ readonly $gte: "$gte";
40
+ readonly $lt: "$lt";
41
+ readonly $lte: "$lte";
42
+ readonly $in: "$in";
43
+ readonly $nin: "$nin";
44
+ readonly $like: "$like";
45
+ readonly $ilike: "$ilike";
46
+ readonly $isNull: "$isNull";
47
+ readonly $isNotNull: "$isNotNull";
48
+ readonly $between: "$between";
49
+ readonly $regex: "$regex";
50
+ readonly $exists: "$exists";
51
+ readonly $contains: "$contains";
52
+ readonly $containedBy: "$containedBy";
53
+ readonly $overlaps: "$overlaps";
54
+ readonly $and: "$and";
55
+ readonly $or: "$or";
56
+ readonly $not: "$not";
57
+ readonly $nor: "$nor";
54
58
  };
55
59
  export type OperatorType = keyof typeof Operators;