@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.
- package/dist/agents/agents.service.d.ts +8 -2
- package/dist/agents/agents.service.js +5 -0
- package/dist/agents/agents.service.js.map +1 -1
- package/dist/agents/types/agents.types.d.ts +2 -0
- package/dist/agents/types/agents.types.js.map +1 -1
- package/dist/agents/vector-store-adapter.js +5 -5
- package/dist/agents/vector-store-adapter.js.map +1 -1
- package/dist/api/services/appApi.service.d.ts +3 -3
- package/dist/api/services/appApi.service.js.map +1 -1
- package/dist/api/services/productsApi.service.d.ts +1 -1
- package/dist/api/services/productsApi.service.js +20 -13
- package/dist/api/services/productsApi.service.js.map +1 -1
- package/dist/api/services/secretsApi.service.d.ts +12 -0
- package/dist/api/services/secretsApi.service.js +30 -2
- package/dist/api/services/secretsApi.service.js.map +1 -1
- package/dist/api/services/workspaceApi.service.d.ts +8 -0
- package/dist/api/services/workspaceApi.service.js +20 -0
- package/dist/api/services/workspaceApi.service.js.map +1 -1
- package/dist/api/urls.d.ts +2 -0
- package/dist/api/urls.js +10 -15
- package/dist/api/urls.js.map +1 -1
- package/dist/api/utils/auth.utils.d.ts +1 -3
- package/dist/api/utils/auth.utils.js.map +1 -1
- package/dist/apps/utils/oauth-manager.js +27 -3
- package/dist/apps/utils/oauth-manager.js.map +1 -1
- package/dist/brokers/brokers.service.d.ts +8 -0
- package/dist/brokers/brokers.service.js +50 -4
- package/dist/brokers/brokers.service.js.map +1 -1
- package/dist/brokers/types/index.d.ts +26 -0
- package/dist/brokers/utils/providers/kafka.service.d.ts +7 -0
- package/dist/brokers/utils/providers/kafka.service.js +102 -23
- package/dist/brokers/utils/providers/kafka.service.js.map +1 -1
- package/dist/brokers/utils/providers/rabbitmq.service.d.ts +2 -1
- package/dist/brokers/utils/providers/rabbitmq.service.js +99 -15
- package/dist/brokers/utils/providers/rabbitmq.service.js.map +1 -1
- package/dist/database/adapters/cassandra.adapter.d.ts +1 -0
- package/dist/database/adapters/cassandra.adapter.js +100 -44
- package/dist/database/adapters/cassandra.adapter.js.map +1 -1
- package/dist/database/adapters/dynamodb.adapter.d.ts +1 -0
- package/dist/database/adapters/dynamodb.adapter.js +89 -20
- package/dist/database/adapters/dynamodb.adapter.js.map +1 -1
- package/dist/database/adapters/mongodb.adapter.d.ts +1 -0
- package/dist/database/adapters/mongodb.adapter.js +123 -45
- package/dist/database/adapters/mongodb.adapter.js.map +1 -1
- package/dist/database/adapters/mysql.adapter.d.ts +1 -0
- package/dist/database/adapters/mysql.adapter.js +125 -48
- package/dist/database/adapters/mysql.adapter.js.map +1 -1
- package/dist/database/adapters/postgresql.adapter.d.ts +5 -0
- package/dist/database/adapters/postgresql.adapter.js +151 -50
- package/dist/database/adapters/postgresql.adapter.js.map +1 -1
- package/dist/database/databases.service.d.ts +15 -1
- package/dist/database/databases.service.js +143 -2
- package/dist/database/databases.service.js.map +1 -1
- package/dist/database/operators/aggregation-builder.d.ts +11 -8
- package/dist/database/operators/aggregation-builder.js +184 -89
- package/dist/database/operators/aggregation-builder.js.map +1 -1
- package/dist/database/operators/query-builder.d.ts +23 -19
- package/dist/database/operators/query-builder.js +77 -45
- package/dist/database/operators/query-builder.js.map +1 -1
- package/dist/database/types/aggregation.interface.d.ts +21 -15
- package/dist/database/types/query.interface.d.ts +27 -21
- package/dist/database/types/write.interface.d.ts +20 -12
- package/dist/graph/adapters/arangodb.adapter.js +61 -22
- package/dist/graph/adapters/arangodb.adapter.js.map +1 -1
- package/dist/graph/adapters/memgraph.adapter.js +22 -16
- package/dist/graph/adapters/memgraph.adapter.js.map +1 -1
- package/dist/graph/adapters/neo4j.adapter.js +51 -21
- package/dist/graph/adapters/neo4j.adapter.js.map +1 -1
- package/dist/graph/adapters/neptune.adapter.js +32 -16
- package/dist/graph/adapters/neptune.adapter.js.map +1 -1
- package/dist/graph/graphs.service.d.ts +24 -2
- package/dist/graph/graphs.service.js +238 -28
- package/dist/graph/graphs.service.js.map +1 -1
- package/dist/graph/types/connection.interface.d.ts +8 -0
- package/dist/graph/types/query.interface.d.ts +21 -14
- package/dist/index.d.ts +367 -20
- package/dist/index.js +510 -48
- package/dist/index.js.map +1 -1
- package/dist/inputs/inputs.service.d.ts +1 -1
- package/dist/notifications/notifications.service.d.ts +7 -2
- package/dist/notifications/notifications.service.js +2 -0
- package/dist/notifications/notifications.service.js.map +1 -1
- package/dist/processor/services/processor.service.d.ts +5 -1
- package/dist/processor/services/processor.service.js +35 -2
- package/dist/processor/services/processor.service.js.map +1 -1
- package/dist/products/services/products.service.d.ts +76 -2
- package/dist/products/services/products.service.js +984 -27
- package/dist/products/services/products.service.js.map +1 -1
- package/dist/products/validators/joi-validators/create.productAgent.validator.js +52 -4
- package/dist/products/validators/joi-validators/create.productAgent.validator.js.map +1 -1
- package/dist/products/validators/joi-validators/create.productGraph.validator.js +2 -0
- package/dist/products/validators/joi-validators/create.productGraph.validator.js.map +1 -1
- package/dist/products/validators/joi-validators/create.productMessageBrokers.validator.js +1 -7
- package/dist/products/validators/joi-validators/create.productMessageBrokers.validator.js.map +1 -1
- package/dist/products/validators/joi-validators/create.productVector.validator.js +4 -4
- package/dist/products/validators/joi-validators/create.productVector.validator.js.map +1 -1
- package/dist/products/validators/joi-validators/update.productGraph.validator.js +2 -0
- package/dist/products/validators/joi-validators/update.productGraph.validator.js.map +1 -1
- package/dist/resilience/fallback.service.d.ts +4 -1
- package/dist/resilience/fallback.service.js +8 -10
- package/dist/resilience/fallback.service.js.map +1 -1
- package/dist/resilience/healthcheck.service.d.ts +6 -1
- package/dist/resilience/healthcheck.service.js +9 -0
- package/dist/resilience/healthcheck.service.js.map +1 -1
- package/dist/resilience/quota.service.d.ts +4 -1
- package/dist/resilience/quota.service.js +2 -0
- package/dist/resilience/quota.service.js.map +1 -1
- package/dist/resilience/resilience.service.d.ts +4 -1
- package/dist/resilience/resilience.service.js.map +1 -1
- package/dist/secrets/secrets.service.d.ts +11 -1
- package/dist/secrets/secrets.service.js +109 -10
- package/dist/secrets/secrets.service.js.map +1 -1
- package/dist/storage/storage.service.d.ts +4 -1
- package/dist/storage/storage.service.js +6 -1
- package/dist/storage/storage.service.js.map +1 -1
- package/dist/test/index.js +1 -3
- package/dist/test/index.js.map +1 -1
- package/dist/test/test.broker.kafka.d.ts +1 -0
- package/dist/test/test.broker.kafka.js +172 -0
- package/dist/test/test.broker.kafka.js.map +1 -0
- package/dist/test/test.broker.nats.d.ts +1 -0
- package/dist/test/test.broker.nats.js +193 -0
- package/dist/test/test.broker.nats.js.map +1 -0
- package/dist/test/test.broker.pubsub.d.ts +1 -0
- package/dist/test/test.broker.pubsub.js +171 -0
- package/dist/test/test.broker.pubsub.js.map +1 -0
- package/dist/test/test.broker.rabbitmq.d.ts +1 -0
- package/dist/test/test.broker.rabbitmq.js +164 -0
- package/dist/test/test.broker.rabbitmq.js.map +1 -0
- package/dist/test/test.broker.redis.d.ts +1 -0
- package/dist/test/test.broker.redis.js +168 -0
- package/dist/test/test.broker.redis.js.map +1 -0
- package/dist/test/test.broker.sqs.d.ts +1 -0
- package/dist/test/test.broker.sqs.js +158 -0
- package/dist/test/test.broker.sqs.js.map +1 -0
- package/dist/test/test.caches.d.ts +1 -0
- package/dist/test/test.caches.js +231 -0
- package/dist/test/test.caches.js.map +1 -0
- package/dist/test/test.database.dynamo.d.ts +1 -0
- package/dist/test/test.database.dynamo.js +265 -0
- package/dist/test/test.database.dynamo.js.map +1 -0
- package/dist/test/test.database.js +2 -2
- package/dist/test/test.database.js.map +1 -1
- package/dist/test/test.database.mongo.d.ts +1 -0
- package/dist/test/test.database.mongo.js +371 -0
- package/dist/test/test.database.mongo.js.map +1 -0
- package/dist/test/test.database.mysql.d.ts +1 -0
- package/dist/test/test.database.mysql.js +415 -0
- package/dist/test/test.database.mysql.js.map +1 -0
- package/dist/test/test.database.postgres.d.ts +1 -0
- package/dist/test/test.database.postgres.js +412 -0
- package/dist/test/test.database.postgres.js.map +1 -0
- package/dist/test/test.email.brevo.d.ts +1 -0
- package/dist/test/test.email.brevo.js +326 -0
- package/dist/test/test.email.brevo.js.map +1 -0
- package/dist/test/test.email.mailgun.d.ts +1 -0
- package/dist/test/test.email.mailgun.js +352 -0
- package/dist/test/test.email.mailgun.js.map +1 -0
- package/dist/test/test.email.postmark.d.ts +1 -0
- package/dist/test/test.email.postmark.js +316 -0
- package/dist/test/test.email.postmark.js.map +1 -0
- package/dist/test/test.email.sendgrid.d.ts +1 -0
- package/dist/test/test.email.sendgrid.js +365 -0
- package/dist/test/test.email.sendgrid.js.map +1 -0
- package/dist/test/test.email.smtp.d.ts +1 -0
- package/dist/test/test.email.smtp.js +323 -0
- package/dist/test/test.email.smtp.js.map +1 -0
- package/dist/test/test.graph.arangodb.d.ts +1 -0
- package/dist/test/test.graph.arangodb.js +358 -0
- package/dist/test/test.graph.arangodb.js.map +1 -0
- package/dist/test/test.graph.memgraph.d.ts +1 -0
- package/dist/test/test.graph.memgraph.js +320 -0
- package/dist/test/test.graph.memgraph.js.map +1 -0
- package/dist/test/test.graph.neo4j.d.ts +1 -0
- package/dist/test/test.graph.neo4j.js +218 -0
- package/dist/test/test.graph.neo4j.js.map +1 -0
- package/dist/test/test.graph.neptune.d.ts +1 -0
- package/dist/test/test.graph.neptune.js +331 -0
- package/dist/test/test.graph.neptune.js.map +1 -0
- package/dist/test/test.notifications.d.ts +1 -0
- package/dist/test/test.notifications.js +198 -0
- package/dist/test/test.notifications.js.map +1 -0
- package/dist/test/test.push.expo.d.ts +1 -0
- package/dist/test/test.push.expo.js +442 -0
- package/dist/test/test.push.expo.js.map +1 -0
- package/dist/test/test.push.firebase.d.ts +1 -0
- package/dist/test/test.push.firebase.js +409 -0
- package/dist/test/test.push.firebase.js.map +1 -0
- package/dist/test/test.session.d.ts +1 -0
- package/dist/test/test.session.js +299 -0
- package/dist/test/test.session.js.map +1 -0
- package/dist/test/test.sms.nexmo.d.ts +1 -0
- package/dist/test/test.sms.nexmo.js +278 -0
- package/dist/test/test.sms.nexmo.js.map +1 -0
- package/dist/test/test.sms.twilio.d.ts +1 -0
- package/dist/test/test.sms.twilio.js +275 -0
- package/dist/test/test.sms.twilio.js.map +1 -0
- package/dist/test/test.storage.js +169 -299
- package/dist/test/test.storage.js.map +1 -1
- package/dist/test/test.vector.pinecone.d.ts +1 -0
- package/dist/test/test.vector.pinecone.js +238 -0
- package/dist/test/test.vector.pinecone.js.map +1 -0
- package/dist/test/test.vector.qdrant.d.ts +1 -0
- package/dist/test/test.vector.qdrant.js +307 -0
- package/dist/test/test.vector.qdrant.js.map +1 -0
- package/dist/test/test.vector.weaviate.d.ts +1 -0
- package/dist/test/test.vector.weaviate.js +325 -0
- package/dist/test/test.vector.weaviate.js.map +1 -0
- package/dist/types/appBuilder.types.d.ts +6 -2
- package/dist/types/enums.d.ts +2 -0
- package/dist/types/enums.js +2 -0
- package/dist/types/enums.js.map +1 -1
- package/dist/types/index.types.d.ts +2 -4
- package/dist/types/index.types.js +0 -1
- package/dist/types/index.types.js.map +1 -1
- package/dist/types/processor.types.d.ts +18 -0
- package/dist/types/productsBuilder.types.d.ts +19 -15
- package/dist/types/productsBuilder.types.js.map +1 -1
- package/dist/types/requests.types.d.ts +2 -0
- package/dist/utils/index.js +23 -4
- package/dist/utils/index.js.map +1 -1
- package/dist/vector/adapters/base.adapter.d.ts +1 -1
- package/dist/vector/adapters/memory.adapter.d.ts +1 -1
- package/dist/vector/adapters/memory.adapter.js +1 -1
- package/dist/vector/adapters/memory.adapter.js.map +1 -1
- package/dist/vector/adapters/pinecone.adapter.d.ts +1 -1
- package/dist/vector/adapters/pinecone.adapter.js +1 -1
- package/dist/vector/adapters/pinecone.adapter.js.map +1 -1
- package/dist/vector/adapters/qdrant.adapter.d.ts +1 -1
- package/dist/vector/adapters/qdrant.adapter.js +1 -1
- package/dist/vector/adapters/qdrant.adapter.js.map +1 -1
- package/dist/vector/adapters/weaviate.adapter.d.ts +1 -1
- package/dist/vector/adapters/weaviate.adapter.js +1 -1
- package/dist/vector/adapters/weaviate.adapter.js.map +1 -1
- package/dist/vector/index.d.ts +2 -2
- package/dist/vector/index.js +2 -2
- package/dist/vector/utils/vector-error.js +0 -1
- package/dist/vector/utils/vector-error.js.map +1 -1
- package/dist/vector/vector-database.service.d.ts +9 -6
- package/dist/vector/vector-database.service.js +7 -6
- package/dist/vector/vector-database.service.js.map +1 -1
- package/dist/vector/vector.service.d.ts +3 -3
- package/dist/vector/vector.service.js +12 -9
- package/dist/vector/vector.service.js.map +1 -1
- package/dist/workflows/workflow-executor.d.ts +4 -1
- package/dist/workflows/workflow-executor.js +10 -2
- package/dist/workflows/workflow-executor.js.map +1 -1
- package/dist/workflows/workflows.service.d.ts +8 -2
- package/dist/workflows/workflows.service.js +66 -41
- package/dist/workflows/workflows.service.js.map +1 -1
- package/package.json +29 -4
|
@@ -271,29 +271,38 @@ class AggregationBuilder {
|
|
|
271
271
|
};
|
|
272
272
|
}
|
|
273
273
|
buildMongoAggregationField(alias, operation) {
|
|
274
|
-
|
|
275
|
-
|
|
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: [`$${
|
|
287
|
+
return { [alias]: { $sum: { $cond: [{ $ne: [`$${count}`, null] }, 1, 0] } } };
|
|
279
288
|
}
|
|
280
|
-
if (
|
|
281
|
-
return { [alias]: { $sum: `$${
|
|
289
|
+
if (sum !== undefined) {
|
|
290
|
+
return { [alias]: { $sum: `$${sum}` } };
|
|
282
291
|
}
|
|
283
|
-
if (
|
|
284
|
-
return { [alias]: { $avg: `$${
|
|
292
|
+
if (avg !== undefined) {
|
|
293
|
+
return { [alias]: { $avg: `$${avg}` } };
|
|
285
294
|
}
|
|
286
|
-
if (
|
|
287
|
-
return { [alias]: { $min: `$${
|
|
295
|
+
if (min !== undefined) {
|
|
296
|
+
return { [alias]: { $min: `$${min}` } };
|
|
288
297
|
}
|
|
289
|
-
if (
|
|
290
|
-
return { [alias]: { $max: `$${
|
|
298
|
+
if (max !== undefined) {
|
|
299
|
+
return { [alias]: { $max: `$${max}` } };
|
|
291
300
|
}
|
|
292
|
-
if (
|
|
293
|
-
return { [alias]: { $push: `$${
|
|
301
|
+
if (arrayAgg !== undefined) {
|
|
302
|
+
return { [alias]: { $push: `$${arrayAgg}` } };
|
|
294
303
|
}
|
|
295
|
-
if (
|
|
296
|
-
const opts = (
|
|
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
|
-
|
|
306
|
-
|
|
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 (
|
|
311
|
-
const
|
|
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 (
|
|
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
|
-
|
|
336
|
-
|
|
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 '$
|
|
340
|
-
case '$
|
|
360
|
+
case '$ne':
|
|
361
|
+
case '$not':
|
|
341
362
|
result.$ne = val;
|
|
342
363
|
break;
|
|
343
|
-
case '$
|
|
364
|
+
case '$gt':
|
|
344
365
|
result.$gt = val;
|
|
345
366
|
break;
|
|
346
|
-
case '$
|
|
367
|
+
case '$gte':
|
|
347
368
|
result.$gte = val;
|
|
348
369
|
break;
|
|
349
|
-
case '$
|
|
370
|
+
case '$lt':
|
|
350
371
|
result.$lt = val;
|
|
351
372
|
break;
|
|
352
|
-
case '$
|
|
373
|
+
case '$lte':
|
|
353
374
|
result.$lte = val;
|
|
354
375
|
break;
|
|
355
|
-
case '$
|
|
376
|
+
case '$in':
|
|
356
377
|
result.$in = val;
|
|
357
378
|
break;
|
|
358
|
-
case '$
|
|
379
|
+
case '$nin':
|
|
380
|
+
case '$not_in':
|
|
359
381
|
result.$nin = val;
|
|
360
382
|
break;
|
|
361
|
-
case '$
|
|
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 '$
|
|
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 '$
|
|
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 '$
|
|
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 '$
|
|
411
|
+
case '$between':
|
|
388
412
|
const [min, max] = val;
|
|
389
413
|
result.$gte = min;
|
|
390
414
|
result.$lte = max;
|
|
391
415
|
break;
|
|
392
|
-
case '$
|
|
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
|
-
|
|
490
|
-
|
|
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.$
|
|
494
|
-
return `SUM(${this.escapeIdentifier(operation.$
|
|
532
|
+
if (operation.$sum !== undefined) {
|
|
533
|
+
return `SUM(${this.escapeIdentifier(operation.$sum, dbType)}) AS ${escapedAlias}`;
|
|
495
534
|
}
|
|
496
|
-
if (operation.$
|
|
497
|
-
return `AVG(${this.escapeIdentifier(operation.$
|
|
535
|
+
if (operation.$avg !== undefined) {
|
|
536
|
+
return `AVG(${this.escapeIdentifier(operation.$avg, dbType)}) AS ${escapedAlias}`;
|
|
498
537
|
}
|
|
499
|
-
if (operation.$
|
|
500
|
-
return `MIN(${this.escapeIdentifier(operation.$
|
|
538
|
+
if (operation.$min !== undefined) {
|
|
539
|
+
return `MIN(${this.escapeIdentifier(operation.$min, dbType)}) AS ${escapedAlias}`;
|
|
501
540
|
}
|
|
502
|
-
if (operation.$
|
|
503
|
-
return `MAX(${this.escapeIdentifier(operation.$
|
|
541
|
+
if (operation.$max !== undefined) {
|
|
542
|
+
return `MAX(${this.escapeIdentifier(operation.$max, dbType)}) AS ${escapedAlias}`;
|
|
504
543
|
}
|
|
505
|
-
if (operation.$
|
|
506
|
-
return this.buildStringAggregation(alias, operation.$
|
|
544
|
+
if (operation.$stringAgg !== undefined) {
|
|
545
|
+
return this.buildStringAggregation(alias, operation.$stringAgg, dbType);
|
|
507
546
|
}
|
|
508
|
-
if (operation.$
|
|
509
|
-
return this.buildStringAggregation(alias, operation.$
|
|
547
|
+
if (operation.$groupConcat !== undefined) {
|
|
548
|
+
return this.buildStringAggregation(alias, operation.$groupConcat, dbType);
|
|
510
549
|
}
|
|
511
|
-
if (operation.$
|
|
550
|
+
if (operation.$arrayAgg !== undefined) {
|
|
512
551
|
if (dbType === 'postgresql') {
|
|
513
|
-
return `ARRAY_AGG(${this.escapeIdentifier(operation.$
|
|
552
|
+
return `ARRAY_AGG(${this.escapeIdentifier(operation.$arrayAgg, dbType)}) AS ${escapedAlias}`;
|
|
514
553
|
}
|
|
515
554
|
// Not supported in MySQL/Cassandra
|
|
516
|
-
throw new Error(`$
|
|
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
|
-
|
|
552
|
-
|
|
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 (
|
|
562
|
-
const
|
|
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 (
|
|
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
|
-
|
|
604
|
-
|
|
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 '$
|
|
607
|
-
case '$NOT':
|
|
662
|
+
case '$ne':
|
|
608
663
|
return { clause: `${escapedField} != ${placeholder}`, params: [value] };
|
|
609
|
-
case '$
|
|
664
|
+
case '$gt':
|
|
610
665
|
return { clause: `${escapedField} > ${placeholder}`, params: [value] };
|
|
611
|
-
case '$
|
|
666
|
+
case '$gte':
|
|
612
667
|
return { clause: `${escapedField} >= ${placeholder}`, params: [value] };
|
|
613
|
-
case '$
|
|
668
|
+
case '$lt':
|
|
614
669
|
return { clause: `${escapedField} < ${placeholder}`, params: [value] };
|
|
615
|
-
case '$
|
|
670
|
+
case '$lte':
|
|
616
671
|
return { clause: `${escapedField} <= ${placeholder}`, params: [value] };
|
|
617
|
-
case '$
|
|
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 '$
|
|
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 '$
|
|
686
|
+
case '$like':
|
|
628
687
|
return { clause: `${escapedField} LIKE ${placeholder}`, params: [value] };
|
|
629
|
-
case '$
|
|
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 '$
|
|
693
|
+
case '$isnull':
|
|
694
|
+
case '$is_null':
|
|
635
695
|
return { clause: `${escapedField} IS ${value ? 'NULL' : 'NOT NULL'}`, params: [] };
|
|
636
|
-
case '$
|
|
696
|
+
case '$isnotnull':
|
|
697
|
+
case '$is_not_null':
|
|
637
698
|
return { clause: `${escapedField} IS ${value ? 'NOT NULL' : 'NULL'}`, params: [] };
|
|
638
|
-
case '$
|
|
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
|
-
|
|
675
|
-
|
|
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 '$
|
|
769
|
+
case '$gte':
|
|
678
770
|
return { clause: `${escapedAlias} >= ${placeholder}`, params: [value] };
|
|
679
|
-
case '$
|
|
771
|
+
case '$lt':
|
|
680
772
|
return { clause: `${escapedAlias} < ${placeholder}`, params: [value] };
|
|
681
|
-
case '$
|
|
773
|
+
case '$lte':
|
|
682
774
|
return { clause: `${escapedAlias} <= ${placeholder}`, params: [value] };
|
|
683
|
-
case '$
|
|
775
|
+
case '$eq':
|
|
684
776
|
return { clause: `${escapedAlias} = ${placeholder}`, params: [value] };
|
|
685
|
-
case '$
|
|
777
|
+
case '$ne':
|
|
686
778
|
return { clause: `${escapedAlias} != ${placeholder}`, params: [value] };
|
|
687
|
-
case '$
|
|
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
|
-
$
|
|
738
|
-
$
|
|
739
|
-
$
|
|
740
|
-
$
|
|
741
|
-
$
|
|
742
|
-
$
|
|
743
|
-
$
|
|
744
|
-
$
|
|
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 $
|
|
36
|
-
readonly $
|
|
37
|
-
readonly $
|
|
38
|
-
readonly $
|
|
39
|
-
readonly $
|
|
40
|
-
readonly $
|
|
41
|
-
readonly $
|
|
42
|
-
readonly $
|
|
43
|
-
readonly $
|
|
44
|
-
readonly $
|
|
45
|
-
readonly $
|
|
46
|
-
readonly $
|
|
47
|
-
readonly $
|
|
48
|
-
readonly $
|
|
49
|
-
readonly $
|
|
50
|
-
readonly $
|
|
51
|
-
readonly $
|
|
52
|
-
readonly $
|
|
53
|
-
readonly $
|
|
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;
|