@vendure/core 3.5.2-master-202512190240 → 3.5.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.
@@ -31,5 +31,17 @@ export declare class DefaultSchedulerStrategy implements SchedulerStrategy {
31
31
  private checkForManuallyTriggeredTasks;
32
32
  private entityToReport;
33
33
  private ensureAllTasksAreRegistered;
34
+ /**
35
+ * Attempts to acquire a lock for the given task.
36
+ *
37
+ * For databases that support pessimistic locking (PostgreSQL, MySQL, MariaDB),
38
+ * we use SELECT ... FOR UPDATE to ensure only one worker can acquire the lock.
39
+ * This is necessary because PostgreSQL's MVCC can allow multiple concurrent
40
+ * UPDATE statements to succeed when using a simple "UPDATE ... WHERE lockedAt IS NULL" pattern.
41
+ *
42
+ * For databases that don't support pessimistic locking (SQLite, SQL.js),
43
+ * we fall back to the atomic UPDATE approach which works correctly for single-connection scenarios.
44
+ */
45
+ private tryAcquireLock;
34
46
  private ensureTaskIsRegistered;
35
47
  }
@@ -60,16 +60,8 @@ class DefaultSchedulerStrategy {
60
60
  var _a;
61
61
  await this.ensureTaskIsRegistered(task);
62
62
  await this.staleTaskService.cleanStaleLocksForTask(task);
63
- const taskEntity = await this.connection.rawConnection
64
- .getRepository(scheduled_task_record_entity_1.ScheduledTaskRecord)
65
- .createQueryBuilder('task')
66
- .update()
67
- .set({ lockedAt: new Date() })
68
- .where('taskId = :taskId', { taskId: task.id })
69
- .andWhere('lockedAt IS NULL')
70
- .andWhere('enabled = TRUE')
71
- .execute();
72
- if (!taskEntity.affected) {
63
+ const lockAcquired = await this.tryAcquireLock(task);
64
+ if (!lockAcquired) {
73
65
  return;
74
66
  }
75
67
  vendure_logger_1.Logger.verbose(`Executing scheduled task "${task.id}"`);
@@ -200,6 +192,62 @@ class DefaultSchedulerStrategy {
200
192
  await this.ensureTaskIsRegistered(task.task);
201
193
  }
202
194
  }
195
+ /**
196
+ * Attempts to acquire a lock for the given task.
197
+ *
198
+ * For databases that support pessimistic locking (PostgreSQL, MySQL, MariaDB),
199
+ * we use SELECT ... FOR UPDATE to ensure only one worker can acquire the lock.
200
+ * This is necessary because PostgreSQL's MVCC can allow multiple concurrent
201
+ * UPDATE statements to succeed when using a simple "UPDATE ... WHERE lockedAt IS NULL" pattern.
202
+ *
203
+ * For databases that don't support pessimistic locking (SQLite, SQL.js),
204
+ * we fall back to the atomic UPDATE approach which works correctly for single-connection scenarios.
205
+ */
206
+ async tryAcquireLock(task) {
207
+ const dbType = this.connection.rawConnection.options.type;
208
+ const supportsPessimisticLocking = ['postgres', 'mysql', 'mariadb'].includes(dbType);
209
+ if (supportsPessimisticLocking) {
210
+ // Use a transaction with pessimistic locking to ensure only one worker
211
+ // can acquire the lock.
212
+ return this.connection.rawConnection.transaction(async (manager) => {
213
+ // First, try to select the task row with a FOR UPDATE lock.
214
+ // This will block other transactions trying to select the same row
215
+ // until this transaction commits or rolls back.
216
+ const taskRecord = await manager
217
+ .getRepository(scheduled_task_record_entity_1.ScheduledTaskRecord)
218
+ .createQueryBuilder('task')
219
+ .setLock('pessimistic_write')
220
+ .where('task.taskId = :taskId', { taskId: task.id })
221
+ .andWhere('task.lockedAt IS NULL')
222
+ .andWhere('task.enabled = TRUE')
223
+ .getOne();
224
+ if (!taskRecord) {
225
+ // Task is either already locked, disabled, or doesn't exist
226
+ return false;
227
+ }
228
+ // Now update the lock within the same transaction
229
+ await manager
230
+ .getRepository(scheduled_task_record_entity_1.ScheduledTaskRecord)
231
+ .update({ id: taskRecord.id }, { lockedAt: new Date() });
232
+ return true;
233
+ });
234
+ }
235
+ else {
236
+ // For databases without pessimistic locking support (SQLite, SQL.js),
237
+ // use the atomic UPDATE approach. This works for single-connection scenarios
238
+ // but may have race conditions with multiple connections.
239
+ const result = await this.connection.rawConnection
240
+ .getRepository(scheduled_task_record_entity_1.ScheduledTaskRecord)
241
+ .createQueryBuilder('task')
242
+ .update()
243
+ .set({ lockedAt: new Date() })
244
+ .where('taskId = :taskId', { taskId: task.id })
245
+ .andWhere('lockedAt IS NULL')
246
+ .andWhere('enabled = TRUE')
247
+ .execute();
248
+ return !!result.affected;
249
+ }
250
+ }
203
251
  async ensureTaskIsRegistered(taskOrId) {
204
252
  const taskId = typeof taskOrId === 'string' ? taskOrId : taskOrId.id;
205
253
  const task = this.tasks.get(taskId);
@@ -1 +1 @@
1
- {"version":3,"file":"default-scheduler-strategy.js","sourceRoot":"","sources":["../../../src/plugin/default-scheduler-plugin/default-scheduler-strategy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"default-scheduler-strategy.js","sourceRoot":"","sources":["../../../src/plugin/default-scheduler-plugin/default-scheduler-strategy.ts"],"names":[],"mappings":"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"}
@@ -193,6 +193,33 @@ export declare class ListQueryBuilder implements OnApplicationBootstrap {
193
193
  filterObjectHasProperty<FP extends FilterParameter<VendureEntity>>(filterObject: FP | NullOptionals<FP> | null | undefined, property: keyof FP): boolean;
194
194
  build<T extends VendureEntity>(entity: Type<T>, options?: ListQueryOptions<T>, extendedOptions?: ExtendedListQueryOptions<T>): SelectQueryBuilder<T>;
195
195
  private addNestedWhereClause;
196
+ /**
197
+ * Applies a WHERE condition to the query builder. For conditions that need EXISTS subquery
198
+ * treatment (duplicate custom property fields in _and blocks), generates an EXISTS subquery
199
+ * instead of a simple WHERE clause.
200
+ */
201
+ private applyWhereCondition;
202
+ /**
203
+ * Builds an EXISTS subquery for a custom property condition on a *-to-Many relation.
204
+ * This is necessary because a simple WHERE clause on a joined table cannot express
205
+ * "entity has related item with value A AND entity has related item with value B"
206
+ * when those are in separate rows of the related table.
207
+ *
208
+ * Supports both:
209
+ * - ManyToMany relations (uses junction table)
210
+ * - OneToMany relations (direct foreign key on the related table)
211
+ *
212
+ * @see https://github.com/vendure-ecommerce/vendure/issues/3267
213
+ */
214
+ private buildExistsSubquery;
215
+ /**
216
+ * Extracts the comparison operator from a SQL clause string.
217
+ */
218
+ private extractComparisonOperator;
219
+ /**
220
+ * Builds a WHERE condition clause string for the EXISTS subquery.
221
+ */
222
+ private buildWhereConditionClause;
196
223
  private parseTakeSkipParams;
197
224
  /**
198
225
  * @description
@@ -23,6 +23,11 @@ const connection_utils_1 = require("./connection-utils");
23
23
  const get_calculated_columns_1 = require("./get-calculated-columns");
24
24
  const parse_filter_params_1 = require("./parse-filter-params");
25
25
  const parse_sort_params_1 = require("./parse-sort-params");
26
+ /**
27
+ * Counter for generating unique aliases in EXISTS subqueries.
28
+ * Using a module-level counter ensures uniqueness across all queries in a session.
29
+ */
30
+ let existsSubqueryCounter = 0;
26
31
  /**
27
32
  * @description
28
33
  * This helper class is used when fetching entities the database from queries which return a {@link PaginatedList} type.
@@ -170,6 +175,10 @@ let ListQueryBuilder = class ListQueryBuilder {
170
175
  // join the tables required by calculated columns
171
176
  this.joinCalculatedColumnRelations(qb, entity, options);
172
177
  const { customPropertyMap } = extendedOptions;
178
+ // Store the original customPropertyMap before normalization for EXISTS subquery generation.
179
+ // This is needed because normalizeCustomPropertyMap mutates customPropertyMap, but
180
+ // parseFilterParams needs the original paths to detect *-to-Many relations.
181
+ const originalCustomPropertyMap = customPropertyMap ? Object.assign({}, customPropertyMap) : undefined;
173
182
  if (customPropertyMap) {
174
183
  this.normalizeCustomPropertyMap(customPropertyMap, options, qb);
175
184
  }
@@ -177,21 +186,23 @@ let ListQueryBuilder = class ListQueryBuilder {
177
186
  const sortParams = Object.assign({}, options.sort, extendedOptions.orderBy);
178
187
  this.applyTranslationConditions(qb, entity, sortParams, extendedOptions.ctx);
179
188
  const sort = (0, parse_sort_params_1.parseSortParams)(qb.connection, entity, sortParams, customPropertyMap, qb.alias, customFieldsForType);
180
- const filter = (0, parse_filter_params_1.parseFilterParams)(qb.connection, entity, options.filter, customPropertyMap, qb.alias);
189
+ const filter = (0, parse_filter_params_1.parseFilterParams)({
190
+ connection: qb.connection,
191
+ entity,
192
+ filterParams: options.filter,
193
+ customPropertyMap,
194
+ originalCustomPropertyMap,
195
+ entityAlias: qb.alias,
196
+ });
181
197
  if (filter.length) {
182
198
  const filterOperator = (_d = options.filterOperator) !== null && _d !== void 0 ? _d : generated_types_1.LogicalOperator.AND;
183
199
  qb.andWhere(new typeorm_1.Brackets(qb1 => {
184
200
  for (const condition of filter) {
185
201
  if ('conditions' in condition) {
186
- this.addNestedWhereClause(qb1, condition, filterOperator);
202
+ this.addNestedWhereClause(qb1, condition, filterOperator, qb, entity);
187
203
  }
188
204
  else {
189
- if (filterOperator === generated_types_1.LogicalOperator.AND) {
190
- qb1.andWhere(condition.clause, condition.parameters);
191
- }
192
- else {
193
- qb1.orWhere(condition.clause, condition.parameters);
194
- }
205
+ this.applyWhereCondition(qb1, condition, filterOperator, qb, entity);
195
206
  }
196
207
  }
197
208
  }));
@@ -204,20 +215,15 @@ let ListQueryBuilder = class ListQueryBuilder {
204
215
  qb.orderBy(sort);
205
216
  return qb;
206
217
  }
207
- addNestedWhereClause(qb, whereGroup, parentOperator) {
218
+ addNestedWhereClause(qb, whereGroup, parentOperator, mainQb, entity) {
208
219
  if (whereGroup.conditions.length) {
209
220
  const subQb = new typeorm_1.Brackets(qb1 => {
210
221
  whereGroup.conditions.forEach(condition => {
211
222
  if ('conditions' in condition) {
212
- this.addNestedWhereClause(qb1, condition, whereGroup.operator);
223
+ this.addNestedWhereClause(qb1, condition, whereGroup.operator, mainQb, entity);
213
224
  }
214
225
  else {
215
- if (whereGroup.operator === generated_types_1.LogicalOperator.AND) {
216
- qb1.andWhere(condition.clause, condition.parameters);
217
- }
218
- else {
219
- qb1.orWhere(condition.clause, condition.parameters);
220
- }
226
+ this.applyWhereCondition(qb1, condition, whereGroup.operator, mainQb, entity);
221
227
  }
222
228
  });
223
229
  });
@@ -229,6 +235,213 @@ let ListQueryBuilder = class ListQueryBuilder {
229
235
  }
230
236
  }
231
237
  }
238
+ /**
239
+ * Applies a WHERE condition to the query builder. For conditions that need EXISTS subquery
240
+ * treatment (duplicate custom property fields in _and blocks), generates an EXISTS subquery
241
+ * instead of a simple WHERE clause.
242
+ */
243
+ applyWhereCondition(qb, condition, operator, mainQb, entity) {
244
+ if (condition.isExistsCondition) {
245
+ // Generate EXISTS subquery for duplicate custom property conditions
246
+ const existsClause = this.buildExistsSubquery(condition, mainQb, entity);
247
+ if (existsClause) {
248
+ if (operator === generated_types_1.LogicalOperator.AND) {
249
+ qb.andWhere(existsClause.clause, existsClause.parameters);
250
+ }
251
+ else {
252
+ qb.orWhere(existsClause.clause, existsClause.parameters);
253
+ }
254
+ return;
255
+ }
256
+ }
257
+ // Standard WHERE clause handling
258
+ if (operator === generated_types_1.LogicalOperator.AND) {
259
+ qb.andWhere(condition.clause, condition.parameters);
260
+ }
261
+ else {
262
+ qb.orWhere(condition.clause, condition.parameters);
263
+ }
264
+ }
265
+ /**
266
+ * Builds an EXISTS subquery for a custom property condition on a *-to-Many relation.
267
+ * This is necessary because a simple WHERE clause on a joined table cannot express
268
+ * "entity has related item with value A AND entity has related item with value B"
269
+ * when those are in separate rows of the related table.
270
+ *
271
+ * Supports both:
272
+ * - ManyToMany relations (uses junction table)
273
+ * - OneToMany relations (direct foreign key on the related table)
274
+ *
275
+ * @see https://github.com/vendure-ecommerce/vendure/issues/3267
276
+ */
277
+ buildExistsSubquery(condition, mainQb, entity) {
278
+ var _a, _b, _c;
279
+ if (!condition.isExistsCondition) {
280
+ return null;
281
+ }
282
+ const { customPropertyPath } = condition.isExistsCondition;
283
+ const pathParts = customPropertyPath.split('.');
284
+ if (pathParts.length < 2) {
285
+ return null;
286
+ }
287
+ const relationName = pathParts[0]; // e.g., 'facetValues' or 'orderLines'
288
+ const columnName = pathParts[1]; // e.g., 'id'
289
+ const metadata = (_a = mainQb.expressionMap.mainAlias) === null || _a === void 0 ? void 0 : _a.metadata;
290
+ if (!metadata) {
291
+ return null;
292
+ }
293
+ const relation = metadata.findRelationWithPropertyPath(relationName);
294
+ if (!relation) {
295
+ return null;
296
+ }
297
+ // Get the related entity's table and column info
298
+ const inverseEntityMeta = relation.inverseEntityMetadata;
299
+ const inverseTableName = inverseEntityMeta.tableName;
300
+ // Generate unique alias using counter
301
+ existsSubqueryCounter++;
302
+ const aliasBase = `lqb_exists_${existsSubqueryCounter}`;
303
+ // Determine the comparison operator from the original clause
304
+ const comparisonOperator = this.extractComparisonOperator(condition.clause);
305
+ // Copy all parameters with 'exists_' prefix to ensure uniqueness.
306
+ // This handles operators with multiple params like BETWEEN (arg1_a, arg1_b).
307
+ const parameters = {};
308
+ const paramKeys = Object.keys(condition.parameters);
309
+ for (const key of paramKeys) {
310
+ parameters[`exists_${key}`] = condition.parameters[key];
311
+ }
312
+ // Use the first param key as the base for the WHERE clause construction.
313
+ // For BETWEEN this will be 'exists_arg1' (we strip the _a/_b suffix).
314
+ const baseParamKey = (_c = (_b = paramKeys[0]) === null || _b === void 0 ? void 0 : _b.replace(/_[ab]$/, '')) !== null && _c !== void 0 ? _c : 'arg';
315
+ const newParamKey = `exists_${baseParamKey}`;
316
+ // Helper to escape identifiers for the current database driver (handles PostgreSQL quoting)
317
+ const escapeId = (name) => mainQb.connection.driver.escape(name);
318
+ let existsQuery;
319
+ if (relation.isManyToMany) {
320
+ // ManyToMany: Uses a junction table
321
+ const junctionMeta = relation.junctionEntityMetadata;
322
+ if (!junctionMeta) {
323
+ return null;
324
+ }
325
+ const junctionTableName = junctionMeta.tableName;
326
+ const ownerColumn = junctionMeta.ownerColumns[0];
327
+ const inverseColumn = junctionMeta.inverseColumns[0];
328
+ if (!ownerColumn || !inverseColumn) {
329
+ return null;
330
+ }
331
+ const junctionAlias = aliasBase;
332
+ const relatedAlias = `${aliasBase}_related`;
333
+ const whereCondition = this.buildWhereConditionClause(relatedAlias, columnName, comparisonOperator, newParamKey, escapeId);
334
+ // EXISTS (SELECT 1 FROM junction_table jt
335
+ // INNER JOIN related_table rt ON jt.inverseColumn = rt.id
336
+ // WHERE jt.ownerColumn = main_entity.id AND rt.columnName = :paramValue)
337
+ existsQuery = `EXISTS (
338
+ SELECT 1 FROM ${escapeId(junctionTableName)} ${escapeId(junctionAlias)}
339
+ INNER JOIN ${escapeId(inverseTableName)} ${escapeId(relatedAlias)}
340
+ ON ${escapeId(junctionAlias)}.${escapeId(inverseColumn.databaseName)} = ${escapeId(relatedAlias)}.${escapeId('id')}
341
+ WHERE ${escapeId(junctionAlias)}.${escapeId(ownerColumn.databaseName)} = ${escapeId(mainQb.alias)}.${escapeId('id')} AND ${whereCondition}
342
+ )`;
343
+ }
344
+ else if (relation.isOneToMany) {
345
+ // OneToMany: The related table has a foreign key back to the main entity
346
+ const relatedAlias = aliasBase;
347
+ // Find the foreign key column on the related entity that points back to the main entity
348
+ const inverseRelation = relation.inverseRelation;
349
+ if (!inverseRelation) {
350
+ return null;
351
+ }
352
+ // Get the join columns from the inverse relation (ManyToOne side)
353
+ const joinColumns = inverseRelation.joinColumns;
354
+ if (!joinColumns || joinColumns.length === 0) {
355
+ return null;
356
+ }
357
+ const foreignKeyColumn = joinColumns[0].databaseName;
358
+ if (!foreignKeyColumn) {
359
+ return null;
360
+ }
361
+ const whereCondition = this.buildWhereConditionClause(relatedAlias, columnName, comparisonOperator, newParamKey, escapeId);
362
+ // EXISTS (SELECT 1 FROM related_table rt
363
+ // WHERE rt.foreignKey = main_entity.id AND rt.columnName = :paramValue)
364
+ existsQuery = `EXISTS (
365
+ SELECT 1 FROM ${escapeId(inverseTableName)} ${escapeId(relatedAlias)}
366
+ WHERE ${escapeId(relatedAlias)}.${escapeId(foreignKeyColumn)} = ${escapeId(mainQb.alias)}.${escapeId('id')} AND ${whereCondition}
367
+ )`;
368
+ }
369
+ else {
370
+ // Not a *-to-Many relation, shouldn't happen but fall back gracefully
371
+ return null;
372
+ }
373
+ return {
374
+ clause: existsQuery,
375
+ parameters,
376
+ };
377
+ }
378
+ /**
379
+ * Extracts the comparison operator from a SQL clause string.
380
+ */
381
+ extractComparisonOperator(clause) {
382
+ if (clause.includes('!=')) {
383
+ return '!=';
384
+ }
385
+ else if (clause.includes('>=')) {
386
+ return '>=';
387
+ }
388
+ else if (clause.includes('<=')) {
389
+ return '<=';
390
+ }
391
+ else if (clause.includes('>')) {
392
+ return '>';
393
+ }
394
+ else if (clause.includes('<')) {
395
+ return '<';
396
+ }
397
+ else if (clause.includes(' IN ')) {
398
+ return 'IN';
399
+ }
400
+ else if (clause.includes(' NOT IN ')) {
401
+ return 'NOT IN';
402
+ }
403
+ else if (clause.includes(' ILIKE ')) {
404
+ return 'ILIKE';
405
+ }
406
+ else if (clause.includes(' NOT LIKE ') || clause.includes(' NOT ILIKE ')) {
407
+ return clause.includes('ILIKE') ? 'NOT ILIKE' : 'NOT LIKE';
408
+ }
409
+ else if (clause.includes(' LIKE ')) {
410
+ return 'LIKE';
411
+ }
412
+ else if (clause.includes(' IS NULL')) {
413
+ return 'IS NULL';
414
+ }
415
+ else if (clause.includes(' IS NOT NULL')) {
416
+ return 'IS NOT NULL';
417
+ }
418
+ else if (clause.includes(' BETWEEN ')) {
419
+ return 'BETWEEN';
420
+ }
421
+ return '=';
422
+ }
423
+ /**
424
+ * Builds a WHERE condition clause string for the EXISTS subquery.
425
+ */
426
+ buildWhereConditionClause(alias, columnName, operator, paramKey, escapeId) {
427
+ const col = `${escapeId(alias)}.${escapeId(columnName)}`;
428
+ if (operator === 'IN') {
429
+ return `${col} IN (:...${paramKey})`;
430
+ }
431
+ else if (operator === 'NOT IN') {
432
+ return `${col} NOT IN (:...${paramKey})`;
433
+ }
434
+ else if (operator === 'IS NULL') {
435
+ return `${col} IS NULL`;
436
+ }
437
+ else if (operator === 'IS NOT NULL') {
438
+ return `${col} IS NOT NULL`;
439
+ }
440
+ else if (operator === 'BETWEEN') {
441
+ return `${col} BETWEEN :${paramKey}_a AND :${paramKey}_b`;
442
+ }
443
+ return `${col} ${operator} :${paramKey}`;
444
+ }
232
445
  parseTakeSkipParams(apiType, options, ignoreQueryLimits = false) {
233
446
  var _a;
234
447
  const { shopListQueryLimit, adminListQueryLimit } = this.configService.apiOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"list-query-builder.js","sourceRoot":"","sources":["../../../../src/service/helpers/list-query-builder/list-query-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list-query-builder.js","sourceRoot":"","sources":["../../../../src/service/helpers/list-query-builder/list-query-builder.ts"],"names":[],"mappings":"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"}
@@ -12,11 +12,69 @@ export interface WhereCondition {
12
12
  parameters: {
13
13
  [param: string]: string | number | string[];
14
14
  };
15
+ /**
16
+ * When defined, this condition should be converted to an EXISTS subquery
17
+ * instead of a simple WHERE clause. This is used for custom property fields
18
+ * that map to *-to-Many relations (OneToMany or ManyToMany), where standard
19
+ * JOIN + WHERE semantics cannot correctly express AND logic across multiple
20
+ * related rows.
21
+ *
22
+ * @see https://github.com/vendure-ecommerce/vendure/issues/3267
23
+ */
24
+ isExistsCondition?: {
25
+ /**
26
+ * The custom property key from the customPropertyMap
27
+ */
28
+ customPropertyKey: string;
29
+ /**
30
+ * The original path from customPropertyMap (e.g., 'facetValues.id')
31
+ */
32
+ customPropertyPath: string;
33
+ };
34
+ }
35
+ /**
36
+ * @description
37
+ * Options for the parseFilterParams function.
38
+ */
39
+ export interface ParseFilterParamsOptions<T extends VendureEntity> {
40
+ /**
41
+ * The TypeORM DataSource connection.
42
+ */
43
+ connection: DataSource;
44
+ /**
45
+ * The entity type being queried.
46
+ */
47
+ entity: Type<T>;
48
+ /**
49
+ * The filter parameters from the GraphQL query.
50
+ */
51
+ filterParams?: NullOptionals<FilterParameter<T>> | null;
52
+ /**
53
+ * Map of custom property names to their relation paths (after normalization).
54
+ * Note: This map gets mutated by the ListQueryBuilder's normalizeCustomPropertyMap method.
55
+ */
56
+ customPropertyMap?: {
57
+ [name: string]: string;
58
+ };
59
+ /**
60
+ * Original custom property map before normalization, containing the original relation paths.
61
+ * This is needed to detect *-to-Many relations and to generate EXISTS subqueries with
62
+ * the correct table/column references.
63
+ */
64
+ originalCustomPropertyMap?: {
65
+ [name: string]: string;
66
+ };
67
+ /**
68
+ * The alias used for the main entity in the query.
69
+ */
70
+ entityAlias?: string;
15
71
  }
16
- export declare function parseFilterParams<T extends VendureEntity, FP extends NullOptionals<FilterParameter<T>>, R extends FP extends {
17
- _and: Array<FilterParameter<T>>;
18
- } ? WhereGroup[] : FP extends {
19
- _or: Array<FilterParameter<T>>;
20
- } ? WhereGroup[] : WhereCondition[]>(connection: DataSource, entity: Type<T>, filterParams?: FP | null, customPropertyMap?: {
21
- [name: string]: string;
22
- }, entityAlias?: string): R;
72
+ /**
73
+ * @description
74
+ * Parses filter parameters from a GraphQL query and converts them into SQL WHERE conditions.
75
+ *
76
+ * For custom property fields that map to *-to-Many relations, all conditions will be marked
77
+ * for EXISTS subquery treatment to ensure correct AND semantics when filtering across
78
+ * multiple related rows.
79
+ */
80
+ export declare function parseFilterParams<T extends VendureEntity>(options: ParseFilterParamsOptions<T>): Array<WhereCondition | WhereGroup>;
@@ -7,7 +7,16 @@ const DateUtils_1 = require("typeorm/util/DateUtils");
7
7
  const errors_1 = require("../../../common/error/errors");
8
8
  const connection_utils_1 = require("./connection-utils");
9
9
  const get_calculated_columns_1 = require("./get-calculated-columns");
10
- function parseFilterParams(connection, entity, filterParams, customPropertyMap, entityAlias) {
10
+ /**
11
+ * @description
12
+ * Parses filter parameters from a GraphQL query and converts them into SQL WHERE conditions.
13
+ *
14
+ * For custom property fields that map to *-to-Many relations, all conditions will be marked
15
+ * for EXISTS subquery treatment to ensure correct AND semantics when filtering across
16
+ * multiple related rows.
17
+ */
18
+ function parseFilterParams(options) {
19
+ const { connection, entity, filterParams, customPropertyMap, originalCustomPropertyMap, entityAlias } = options;
11
20
  if (!filterParams) {
12
21
  return [];
13
22
  }
@@ -16,11 +25,17 @@ function parseFilterParams(connection, entity, filterParams, customPropertyMap,
16
25
  const calculatedColumns = (0, get_calculated_columns_1.getCalculatedColumns)(entity);
17
26
  const dbType = connection.options.type;
18
27
  let argIndex = 1;
28
+ // Detect which custom property fields map to *-to-Many relations.
29
+ // All filter conditions on these fields will use EXISTS subqueries for correct AND semantics.
30
+ const toManyRelationCustomProperties = getToManyRelationCustomProperties(connection, entity, originalCustomPropertyMap, filterParams);
19
31
  function buildConditionsForField(key, operation) {
20
32
  const output = [];
21
33
  const calculatedColumnDef = calculatedColumns.find(c => c.name === key);
22
34
  const instruction = calculatedColumnDef === null || calculatedColumnDef === void 0 ? void 0 : calculatedColumnDef.listQuery;
23
35
  const calculatedColumnExpression = instruction === null || instruction === void 0 ? void 0 : instruction.expression;
36
+ // Mark ALL conditions on *-to-Many relation custom properties for EXISTS subquery treatment.
37
+ // This ensures correct AND semantics regardless of how many times the field is used.
38
+ const isToManyCustomProperty = toManyRelationCustomProperties.has(key) && (originalCustomPropertyMap === null || originalCustomPropertyMap === void 0 ? void 0 : originalCustomPropertyMap[key]);
24
39
  for (const [operator, operand] of Object.entries(operation)) {
25
40
  let fieldName;
26
41
  if (columns.find(c => c.propertyName === key)) {
@@ -40,6 +55,13 @@ function parseFilterParams(connection, entity, filterParams, customPropertyMap,
40
55
  throw new errors_1.UserInputError('error.invalid-filter-field');
41
56
  }
42
57
  const condition = buildWhereCondition(fieldName, operator, operand, argIndex, dbType);
58
+ // Mark *-to-Many custom property fields for EXISTS subquery treatment
59
+ if (isToManyCustomProperty) {
60
+ condition.isExistsCondition = {
61
+ customPropertyKey: key,
62
+ customPropertyPath: originalCustomPropertyMap[key],
63
+ };
64
+ }
43
65
  output.push(condition);
44
66
  argIndex++;
45
67
  }
@@ -49,8 +71,9 @@ function parseFilterParams(connection, entity, filterParams, customPropertyMap,
49
71
  const result = [];
50
72
  for (const [key, operation] of Object.entries(param)) {
51
73
  if (key === '_and' || key === '_or') {
74
+ const isAndOperator = key === '_and';
52
75
  result.push({
53
- operator: key === '_and' ? generated_types_1.LogicalOperator.AND : generated_types_1.LogicalOperator.OR,
76
+ operator: isAndOperator ? generated_types_1.LogicalOperator.AND : generated_types_1.LogicalOperator.OR,
54
77
  conditions: operation.map(o => processFilterParameter(o)).flat(),
55
78
  });
56
79
  }
@@ -60,8 +83,66 @@ function parseFilterParams(connection, entity, filterParams, customPropertyMap,
60
83
  }
61
84
  return result;
62
85
  }
63
- const conditions = processFilterParameter(filterParams);
64
- return conditions;
86
+ return processFilterParameter(filterParams);
87
+ }
88
+ /**
89
+ * @description
90
+ * Identifies which custom property keys map to *-to-Many relations (OneToMany or ManyToMany).
91
+ * These fields require EXISTS subqueries for correct AND semantics when filtering across
92
+ * multiple related rows.
93
+ *
94
+ * @see https://github.com/vendure-ecommerce/vendure/issues/3267
95
+ */
96
+ function getToManyRelationCustomProperties(connection, entity, originalCustomPropertyMap, filterParams) {
97
+ const toManyProperties = new Set();
98
+ if (!originalCustomPropertyMap) {
99
+ return toManyProperties;
100
+ }
101
+ const metadata = connection.getMetadata(entity);
102
+ for (const [property, path] of Object.entries(originalCustomPropertyMap)) {
103
+ // Only check properties that are actually being used in filters
104
+ if (!isPropertyUsedInFilter(property, filterParams)) {
105
+ continue;
106
+ }
107
+ // Parse the path to get the relation name (e.g., 'facetValues.id' -> 'facetValues')
108
+ const pathParts = path.split('.');
109
+ if (pathParts.length < 2) {
110
+ continue;
111
+ }
112
+ const relationName = pathParts[0];
113
+ const relationMetadata = metadata.findRelationWithPropertyPath(relationName);
114
+ if (relationMetadata && (relationMetadata.isOneToMany || relationMetadata.isManyToMany)) {
115
+ toManyProperties.add(property);
116
+ }
117
+ }
118
+ return toManyProperties;
119
+ }
120
+ /**
121
+ * Checks if a property is used anywhere in the filter parameters,
122
+ * including nested _and/_or blocks.
123
+ */
124
+ function isPropertyUsedInFilter(property, filter) {
125
+ if (!filter) {
126
+ return false;
127
+ }
128
+ if (filter[property]) {
129
+ return true;
130
+ }
131
+ if (filter._and) {
132
+ for (const nestedFilter of filter._and) {
133
+ if (isPropertyUsedInFilter(property, nestedFilter)) {
134
+ return true;
135
+ }
136
+ }
137
+ }
138
+ if (filter._or) {
139
+ for (const nestedFilter of filter._or) {
140
+ if (isPropertyUsedInFilter(property, nestedFilter)) {
141
+ return true;
142
+ }
143
+ }
144
+ }
145
+ return false;
65
146
  }
66
147
  function buildWhereCondition(fieldName, operator, operand, argIndex, dbType) {
67
148
  switch (operator) {
@@ -1 +1 @@
1
- {"version":3,"file":"parse-filter-params.js","sourceRoot":"","sources":["../../../../src/service/helpers/list-query-builder/parse-filter-params.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse-filter-params.js","sourceRoot":"","sources":["../../../../src/service/helpers/list-query-builder/parse-filter-params.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vendure/core",
3
- "version": "3.5.2-master-202512190240",
3
+ "version": "3.5.2",
4
4
  "description": "A modern, headless ecommerce framework",
5
5
  "repository": {
6
6
  "type": "git",
@@ -49,7 +49,7 @@
49
49
  "@nestjs/platform-express": "^11.0.12",
50
50
  "@nestjs/terminus": "^11.0.0",
51
51
  "@nestjs/typeorm": "^11.0.0",
52
- "@vendure/common": "^3.5.2-master-202512190240",
52
+ "@vendure/common": "3.5.2",
53
53
  "bcrypt": "^5.1.1",
54
54
  "body-parser": "^1.20.2",
55
55
  "cookie-session": "^2.1.0",