@open-mercato/shared 0.6.7-develop.6600.1.49a5df927f → 0.6.7-develop.6603.1.78e5b7a65d

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.
@@ -45,7 +45,7 @@ import { createProfiler, shouldEnableProfiler } from "@open-mercato/shared/lib/p
45
45
  import { getTranslationOverlayPlugin } from "@open-mercato/shared/lib/localization/overlay-plugin";
46
46
  import { applyResponseEnrichers, applyResponseEnricherToRecord, resolveListCacheEnricherPlan } from "./enricher-runner.js";
47
47
  import { runApiInterceptorsAfter, runApiInterceptorsBefore } from "./interceptor-runner.js";
48
- import { mergeIdFilter, parseIdsParam } from "./ids.js";
48
+ import { mergeIdFilter, parseIdsParam, isIdsParamProvided } from "./ids.js";
49
49
  import { mergeAdvancedFilters } from "./advanced-filter-integration.js";
50
50
  import { parseExtensionHeaders } from "../umes/extension-headers.js";
51
51
  import { createGenericOptimisticLockReader } from "./optimistic-lock.js";
@@ -975,6 +975,7 @@ function makeCrudRoute(opts) {
975
975
  ...interceptorRequest.query ?? {}
976
976
  };
977
977
  const parsedIds = parseIdsParam(queryParams.ids);
978
+ const idsParamProvided = isIdsParamProvided(queryParams.ids);
978
979
  await opts.hooks?.beforeList?.(validated, ctx);
979
980
  profiler.mark("before_list_hook");
980
981
  const availableFormats = resolveAvailableExportFormats(opts.list);
@@ -1155,7 +1156,7 @@ function makeCrudRoute(opts) {
1155
1156
  const page = exportRequested ? { page: 1, pageSize: exportPageSize } : { page: requestedPage, pageSize: requestedPageSize };
1156
1157
  const baseFilters = exportFullRequested ? {} : opts.list.buildFilters ? await opts.list.buildFilters(validated, ctx) : {};
1157
1158
  const filters = exportFullRequested ? baseFilters : mergeAdvancedFilters(baseFilters, validated);
1158
- const mergedFilters = exportFullRequested ? filters : mergeIdFilter(filters, parsedIds);
1159
+ const mergedFilters = exportFullRequested ? filters : mergeIdFilter(filters, parsedIds, { idsParamProvided });
1159
1160
  const withDeleted = parseBooleanToken(queryParams.withDeleted) === true;
1160
1161
  profiler.mark("filters_ready", { withDeleted });
1161
1162
  if (ormCfg.orgField && ctx.organizationIds && ctx.organizationIds.length === 0 && !opts.list?.omitAutomaticTenantOrgScope) {
@@ -1412,7 +1413,7 @@ function makeCrudRoute(opts) {
1412
1413
  }
1413
1414
  const fallbackBaseFilters = exportFullRequested ? {} : opts.list.buildFilters ? await opts.list.buildFilters(validated, ctx) : {};
1414
1415
  const fallbackFilters = exportFullRequested ? fallbackBaseFilters : mergeAdvancedFilters(fallbackBaseFilters, validated);
1415
- const mergedFallbackFilters = exportFullRequested ? fallbackFilters : mergeIdFilter(fallbackFilters, parsedIds);
1416
+ const mergedFallbackFilters = exportFullRequested ? fallbackFilters : mergeIdFilter(fallbackFilters, parsedIds, { idsParamProvided });
1416
1417
  const ormFilters = translateFiltersForOrm(
1417
1418
  mergedFallbackFilters,
1418
1419
  em,