@eventcatalog/core 4.0.3 → 4.0.4

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.
@@ -36,7 +36,7 @@ module.exports = __toCommonJS(analytics_exports);
36
36
  var import_os = __toESM(require("os"), 1);
37
37
 
38
38
  // package.json
39
- var version = "4.0.3";
39
+ var version = "4.0.4";
40
40
 
41
41
  // src/constants.ts
42
42
  var VERSION = version;
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  raiseEvent
3
- } from "../chunk-5OGYWSP3.js";
4
- import "../chunk-K54LSZNF.js";
3
+ } from "../chunk-QYEAFNQS.js";
4
+ import "../chunk-VG53ZMUK.js";
5
5
  export {
6
6
  raiseEvent
7
7
  };
@@ -140,7 +140,7 @@ var verifyRequiredFieldsAreInCatalogConfigFile = async (projectDirectory) => {
140
140
  var import_os = __toESM(require("os"), 1);
141
141
 
142
142
  // package.json
143
- var version = "4.0.3";
143
+ var version = "4.0.4";
144
144
 
145
145
  // src/constants.ts
146
146
  var VERSION = version;
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  log_build_default
3
- } from "../chunk-UXP5LLH2.js";
4
- import "../chunk-5OGYWSP3.js";
3
+ } from "../chunk-B577BDMM.js";
4
+ import "../chunk-QYEAFNQS.js";
5
5
  import "../chunk-DAOXTQVS.js";
6
- import "../chunk-K54LSZNF.js";
6
+ import "../chunk-VG53ZMUK.js";
7
7
  import "../chunk-6QENHZZP.js";
8
8
  export {
9
9
  log_build_default as default
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  raiseEvent
3
- } from "./chunk-5OGYWSP3.js";
3
+ } from "./chunk-QYEAFNQS.js";
4
4
  import {
5
5
  countResources,
6
6
  serializeCounts
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  logger
3
- } from "./chunk-2CTETYS7.js";
3
+ } from "./chunk-UQH6BDUK.js";
4
4
  import {
5
5
  cleanup,
6
6
  getEventCatalogConfigFile
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  VERSION
3
- } from "./chunk-K54LSZNF.js";
3
+ } from "./chunk-VG53ZMUK.js";
4
4
 
5
5
  // src/analytics/analytics.js
6
6
  import os from "os";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  VERSION
3
- } from "./chunk-K54LSZNF.js";
3
+ } from "./chunk-VG53ZMUK.js";
4
4
 
5
5
  // src/utils/cli-logger.ts
6
6
  import pc from "picocolors";
@@ -1,5 +1,5 @@
1
1
  // package.json
2
- var version = "4.0.3";
2
+ var version = "4.0.4";
3
3
 
4
4
  // src/constants.ts
5
5
  var VERSION = version;
@@ -25,7 +25,7 @@ __export(constants_exports, {
25
25
  module.exports = __toCommonJS(constants_exports);
26
26
 
27
27
  // package.json
28
- var version = "4.0.3";
28
+ var version = "4.0.4";
29
29
 
30
30
  // src/constants.ts
31
31
  var VERSION = version;
package/dist/constants.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  VERSION
3
- } from "./chunk-K54LSZNF.js";
3
+ } from "./chunk-VG53ZMUK.js";
4
4
  export {
5
5
  VERSION
6
6
  };
@@ -144,7 +144,7 @@ var verifyRequiredFieldsAreInCatalogConfigFile = async (projectDirectory) => {
144
144
  var import_picocolors = __toESM(require("picocolors"), 1);
145
145
 
146
146
  // package.json
147
- var version = "4.0.3";
147
+ var version = "4.0.4";
148
148
 
149
149
  // src/constants.ts
150
150
  var VERSION = version;
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  log_build_default
3
- } from "./chunk-UXP5LLH2.js";
3
+ } from "./chunk-B577BDMM.js";
4
4
  import {
5
5
  runMigrations
6
6
  } from "./chunk-XUAF2H54.js";
7
7
  import "./chunk-CA4U2JP7.js";
8
8
  import {
9
9
  generate
10
- } from "./chunk-63J5GUOH.js";
10
+ } from "./chunk-EHVNV53Y.js";
11
11
  import {
12
12
  logger
13
- } from "./chunk-2CTETYS7.js";
13
+ } from "./chunk-UQH6BDUK.js";
14
14
  import {
15
15
  resolve_catalog_dependencies_default
16
16
  } from "./chunk-LHR4G2UO.js";
@@ -20,7 +20,7 @@ import {
20
20
  import {
21
21
  watch
22
22
  } from "./chunk-O3Y2G6CY.js";
23
- import "./chunk-5OGYWSP3.js";
23
+ import "./chunk-QYEAFNQS.js";
24
24
  import "./chunk-DAOXTQVS.js";
25
25
  import {
26
26
  catalogToAstro
@@ -28,7 +28,7 @@ import {
28
28
  import "./chunk-VC6VUJIX.js";
29
29
  import {
30
30
  VERSION
31
- } from "./chunk-K54LSZNF.js";
31
+ } from "./chunk-VG53ZMUK.js";
32
32
  import {
33
33
  linkCoreNodeModules,
34
34
  resolveInstalledCoreNodeModules
package/dist/generate.cjs CHANGED
@@ -108,7 +108,7 @@ var getEventCatalogConfigFile = async (projectDirectory) => {
108
108
  var import_picocolors = __toESM(require("picocolors"), 1);
109
109
 
110
110
  // package.json
111
- var version = "4.0.3";
111
+ var version = "4.0.4";
112
112
 
113
113
  // src/constants.ts
114
114
  var VERSION = version;
package/dist/generate.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  generate
3
- } from "./chunk-63J5GUOH.js";
4
- import "./chunk-2CTETYS7.js";
5
- import "./chunk-K54LSZNF.js";
3
+ } from "./chunk-EHVNV53Y.js";
4
+ import "./chunk-UQH6BDUK.js";
5
+ import "./chunk-VG53ZMUK.js";
6
6
  import "./chunk-6QENHZZP.js";
7
7
  export {
8
8
  generate
@@ -36,7 +36,7 @@ module.exports = __toCommonJS(cli_logger_exports);
36
36
  var import_picocolors = __toESM(require("picocolors"), 1);
37
37
 
38
38
  // package.json
39
- var version = "4.0.3";
39
+ var version = "4.0.4";
40
40
 
41
41
  // src/constants.ts
42
42
  var VERSION = version;
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  logger
3
- } from "../chunk-2CTETYS7.js";
4
- import "../chunk-K54LSZNF.js";
3
+ } from "../chunk-UQH6BDUK.js";
4
+ import "../chunk-VG53ZMUK.js";
5
5
  export {
6
6
  logger
7
7
  };
@@ -20,6 +20,7 @@ import { resolveIconUrl } from '@utils/icon';
20
20
  import { FilterDropdown, CheckboxItem } from './FilterComponents';
21
21
  import { getDiscoverColumns } from './columns';
22
22
  import { formatAdrStatus, type AdrStatus } from '@utils/collections/adr-constants';
23
+ import { buildDiscoverFilterSearch, filterKnownValues, parseDiscoverFilterSearch } from './url-filters';
23
24
 
24
25
  export type CollectionType =
25
26
  | 'agents'
@@ -161,6 +162,9 @@ const AgentProviderIcon = ({ provider, className }: { provider: string; classNam
161
162
  return <img src={providerIconUrls.default} alt="" className={className} loading="lazy" />;
162
163
  };
163
164
 
165
+ const areStringArraysEqual = (left: string[], right: string[]) =>
166
+ left.length === right.length && left.every((value, index) => value === right[index]);
167
+
164
168
  export function DiscoverTable<T extends DiscoverTableData>({
165
169
  data: initialData,
166
170
  collectionType,
@@ -185,34 +189,6 @@ export function DiscoverTable<T extends DiscoverTableData>({
185
189
  () => getDiscoverColumns(collectionType, tableConfiguration ?? { columns: {} }),
186
190
  [collectionType, tableConfiguration]
187
191
  );
188
- const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([]);
189
- const [sorting, setSorting] = useState<SortingState>([]);
190
- const [tableFilter, setTableFilter] = useState('');
191
- const PAGE_SIZE_OPTIONS = [10, 25, 50, 100];
192
- const PAGE_SIZE_STORAGE_KEY = 'eventcatalog-discover-page-size';
193
- const [pageSize, setPageSize] = useState<number>(() => {
194
- if (typeof window === 'undefined') return 10;
195
- const stored = Number(window.localStorage.getItem(PAGE_SIZE_STORAGE_KEY));
196
- return PAGE_SIZE_OPTIONS.includes(stored) ? stored : 10;
197
- });
198
- useEffect(() => {
199
- if (typeof window !== 'undefined') {
200
- window.localStorage.setItem(PAGE_SIZE_STORAGE_KEY, String(pageSize));
201
- }
202
- }, [pageSize]);
203
- const [showOnlyLatest, setShowOnlyLatest] = useState(true);
204
- const [onlyShowDrafts, setOnlyShowDrafts] = useState(false);
205
- const [selectedDomains, setSelectedDomains] = useState<string[]>([]);
206
- const [selectedOwners, setSelectedOwners] = useState<string[]>([]);
207
- const [selectedProducers, setSelectedProducers] = useState<string[]>([]);
208
- const [selectedConsumers, setSelectedConsumers] = useState<string[]>([]);
209
- const [selectedAgentProviders, setSelectedAgentProviders] = useState<string[]>([]);
210
- const [selectedAgentModels, setSelectedAgentModels] = useState<string[]>([]);
211
- const [selectedBadges, setSelectedBadges] = useState<string[]>([]);
212
- const [selectedProperties, setSelectedProperties] = useState<string[]>([]);
213
- const [selectedStatuses, setSelectedStatuses] = useState<string[]>([]);
214
- const selectedKind = collectionKinds.find((kind) => kind.id === collectionType);
215
-
216
192
  // Collect unique badges from all items
217
193
  const allBadges = useMemo(() => {
218
194
  const badgeMap = new Map<string, { content: string; backgroundColor?: string; textColor?: string; count: number }>();
@@ -234,6 +210,168 @@ export function DiscoverTable<T extends DiscoverTableData>({
234
210
  });
235
211
  return Array.from(badgeMap.values()).sort((a, b) => b.count - a.count);
236
212
  }, [initialData]);
213
+ const statusCounts = useMemo(() => {
214
+ const counts: Record<string, number> = {};
215
+ initialData.forEach((item) => {
216
+ const status = item.data.status;
217
+ if (status) counts[status] = (counts[status] || 0) + 1;
218
+ });
219
+ return counts;
220
+ }, [initialData]);
221
+
222
+ const statusOptions = useMemo(
223
+ () =>
224
+ Object.keys(statusCounts)
225
+ .map((status) => ({
226
+ id: status,
227
+ name: formatAdrStatus(status as AdrStatus),
228
+ count: statusCounts[status],
229
+ }))
230
+ .sort((a, b) => a.name.localeCompare(b.name)),
231
+ [statusCounts]
232
+ );
233
+ const [initialUrlFilters] = useState(() =>
234
+ parseDiscoverFilterSearch(typeof window === 'undefined' ? '' : window.location.search)
235
+ );
236
+ const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([]);
237
+ const [sorting, setSorting] = useState<SortingState>([]);
238
+ const [tableFilter, setTableFilter] = useState(initialUrlFilters.q);
239
+ const PAGE_SIZE_OPTIONS = [10, 25, 50, 100];
240
+ const PAGE_SIZE_STORAGE_KEY = 'eventcatalog-discover-page-size';
241
+ const [pageSize, setPageSize] = useState<number>(() => {
242
+ if (typeof window === 'undefined') return 10;
243
+ const stored = Number(window.localStorage.getItem(PAGE_SIZE_STORAGE_KEY));
244
+ return PAGE_SIZE_OPTIONS.includes(stored) ? stored : 10;
245
+ });
246
+ useEffect(() => {
247
+ if (typeof window !== 'undefined') {
248
+ window.localStorage.setItem(PAGE_SIZE_STORAGE_KEY, String(pageSize));
249
+ }
250
+ }, [pageSize]);
251
+ const [showOnlyLatest, setShowOnlyLatest] = useState(initialUrlFilters.showOnlyLatest);
252
+ const [onlyShowDrafts, setOnlyShowDrafts] = useState(initialUrlFilters.onlyShowDrafts);
253
+ const [selectedDomains, setSelectedDomains] = useState<string[]>(() =>
254
+ showDomainsFilter ? filterKnownValues(initialUrlFilters.domains, new Set(domains.map((domain) => domain.id))) : []
255
+ );
256
+ const [selectedOwners, setSelectedOwners] = useState<string[]>(() =>
257
+ showOwnersFilter ? filterKnownValues(initialUrlFilters.owners, new Set(owners.map((owner) => owner.id))) : []
258
+ );
259
+ const [selectedProducers, setSelectedProducers] = useState<string[]>(() =>
260
+ showProducersFilter ? filterKnownValues(initialUrlFilters.producers, new Set(producers.map((producer) => producer.id))) : []
261
+ );
262
+ const [selectedConsumers, setSelectedConsumers] = useState<string[]>(() =>
263
+ showConsumersFilter ? filterKnownValues(initialUrlFilters.consumers, new Set(consumers.map((consumer) => consumer.id))) : []
264
+ );
265
+ const [selectedAgentProviders, setSelectedAgentProviders] = useState<string[]>(() =>
266
+ collectionType === 'agents'
267
+ ? filterKnownValues(initialUrlFilters.agentProviders, new Set(agentProviders.map((provider) => provider.id)))
268
+ : []
269
+ );
270
+ const [selectedAgentModels, setSelectedAgentModels] = useState<string[]>(() =>
271
+ collectionType === 'agents'
272
+ ? filterKnownValues(initialUrlFilters.agentModels, new Set(agentModels.map((model) => model.id)))
273
+ : []
274
+ );
275
+ const [selectedBadges, setSelectedBadges] = useState<string[]>(() =>
276
+ filterKnownValues(initialUrlFilters.badges, new Set(allBadges.map((badge) => badge.content)))
277
+ );
278
+ const [selectedProperties, setSelectedProperties] = useState<string[]>(() =>
279
+ filterKnownValues(initialUrlFilters.properties, new Set(propertyOptions.map((property) => property.id)))
280
+ );
281
+ const [selectedStatuses, setSelectedStatuses] = useState<string[]>(() =>
282
+ collectionType === 'adrs'
283
+ ? filterKnownValues(initialUrlFilters.statuses, new Set(statusOptions.map((status) => status.id)))
284
+ : []
285
+ );
286
+ const selectedKind = collectionKinds.find((kind) => kind.id === collectionType);
287
+ const knownFilterValues = useMemo(
288
+ () => ({
289
+ domains: showDomainsFilter ? new Set(domains.map((domain) => domain.id)) : new Set<string>(),
290
+ owners: showOwnersFilter ? new Set(owners.map((owner) => owner.id)) : new Set<string>(),
291
+ producers: showProducersFilter ? new Set(producers.map((producer) => producer.id)) : new Set<string>(),
292
+ consumers: showConsumersFilter ? new Set(consumers.map((consumer) => consumer.id)) : new Set<string>(),
293
+ agentProviders: collectionType === 'agents' ? new Set(agentProviders.map((provider) => provider.id)) : new Set<string>(),
294
+ agentModels: collectionType === 'agents' ? new Set(agentModels.map((model) => model.id)) : new Set<string>(),
295
+ badges: new Set(allBadges.map((badge) => badge.content)),
296
+ properties: new Set(propertyOptions.map((property) => property.id)),
297
+ statuses: collectionType === 'adrs' ? new Set(statusOptions.map((status) => status.id)) : new Set<string>(),
298
+ }),
299
+ [
300
+ agentModels,
301
+ agentProviders,
302
+ allBadges,
303
+ collectionType,
304
+ consumers,
305
+ domains,
306
+ owners,
307
+ producers,
308
+ propertyOptions,
309
+ showConsumersFilter,
310
+ showDomainsFilter,
311
+ showOwnersFilter,
312
+ showProducersFilter,
313
+ statusOptions,
314
+ ]
315
+ );
316
+ const currentUrlFilters = useMemo(
317
+ () => ({
318
+ q: tableFilter,
319
+ domains: selectedDomains,
320
+ owners: selectedOwners,
321
+ producers: selectedProducers,
322
+ consumers: selectedConsumers,
323
+ agentProviders: selectedAgentProviders,
324
+ agentModels: selectedAgentModels,
325
+ badges: selectedBadges,
326
+ properties: selectedProperties,
327
+ statuses: selectedStatuses,
328
+ showOnlyLatest,
329
+ onlyShowDrafts,
330
+ }),
331
+ [
332
+ onlyShowDrafts,
333
+ selectedAgentModels,
334
+ selectedAgentProviders,
335
+ selectedBadges,
336
+ selectedConsumers,
337
+ selectedDomains,
338
+ selectedOwners,
339
+ selectedProducers,
340
+ selectedProperties,
341
+ selectedStatuses,
342
+ showOnlyLatest,
343
+ tableFilter,
344
+ ]
345
+ );
346
+
347
+ useEffect(() => {
348
+ const pruneState = (values: string[], knownValues: Set<string>) => {
349
+ const nextValues = filterKnownValues(values, knownValues);
350
+ return areStringArraysEqual(values, nextValues) ? values : nextValues;
351
+ };
352
+
353
+ setSelectedDomains((values) => pruneState(values, knownFilterValues.domains));
354
+ setSelectedOwners((values) => pruneState(values, knownFilterValues.owners));
355
+ setSelectedProducers((values) => pruneState(values, knownFilterValues.producers));
356
+ setSelectedConsumers((values) => pruneState(values, knownFilterValues.consumers));
357
+ setSelectedAgentProviders((values) => pruneState(values, knownFilterValues.agentProviders));
358
+ setSelectedAgentModels((values) => pruneState(values, knownFilterValues.agentModels));
359
+ setSelectedBadges((values) => pruneState(values, knownFilterValues.badges));
360
+ setSelectedProperties((values) => pruneState(values, knownFilterValues.properties));
361
+ setSelectedStatuses((values) => pruneState(values, knownFilterValues.statuses));
362
+ }, [knownFilterValues]);
363
+
364
+ useEffect(() => {
365
+ if (typeof window === 'undefined') return;
366
+
367
+ const nextSearch = buildDiscoverFilterSearch(currentUrlFilters, window.location.search);
368
+ const nextUrl = `${window.location.pathname}${nextSearch}${window.location.hash}`;
369
+ const currentUrl = `${window.location.pathname}${window.location.search}${window.location.hash}`;
370
+
371
+ if (nextUrl !== currentUrl) {
372
+ window.history.replaceState(window.history.state, '', nextUrl);
373
+ }
374
+ }, [currentUrlFilters]);
237
375
 
238
376
  // Filter data based on all filter states
239
377
  const filteredData = useMemo(() => {
@@ -514,27 +652,6 @@ export function DiscoverTable<T extends DiscoverTableData>({
514
652
  return counts;
515
653
  }, [initialData]);
516
654
 
517
- const statusCounts = useMemo(() => {
518
- const counts: Record<string, number> = {};
519
- initialData.forEach((item) => {
520
- const status = item.data.status;
521
- if (status) counts[status] = (counts[status] || 0) + 1;
522
- });
523
- return counts;
524
- }, [initialData]);
525
-
526
- const statusOptions = useMemo(
527
- () =>
528
- Object.keys(statusCounts)
529
- .map((status) => ({
530
- id: status,
531
- name: formatAdrStatus(status as AdrStatus),
532
- count: statusCounts[status],
533
- }))
534
- .sort((a, b) => a.name.localeCompare(b.name)),
535
- [statusCounts]
536
- );
537
-
538
655
  const toggleDomain = (domainId: string) => {
539
656
  setSelectedDomains((prev) => (prev.includes(domainId) ? prev.filter((id) => id !== domainId) : [...prev, domainId]));
540
657
  };
@@ -576,7 +693,7 @@ export function DiscoverTable<T extends DiscoverTableData>({
576
693
  const navigateToKind = (kindId: CollectionType) => {
577
694
  const selectedKind = collectionKinds.find((kind) => kind.id === kindId);
578
695
  if (!selectedKind || selectedKind.id === collectionType) return;
579
- window.location.href = selectedKind.href;
696
+ window.location.href = `${selectedKind.href}${buildDiscoverFilterSearch(currentUrlFilters)}`;
580
697
  };
581
698
 
582
699
  const clearAllFilters = () => {
@@ -606,7 +723,8 @@ export function DiscoverTable<T extends DiscoverTableData>({
606
723
  selectedStatuses.length +
607
724
  selectedProperties.length +
608
725
  (!showOnlyLatest ? 1 : 0) +
609
- (onlyShowDrafts ? 1 : 0);
726
+ (onlyShowDrafts ? 1 : 0) +
727
+ (tableFilter ? 1 : 0);
610
728
 
611
729
  // Get selected domain names for display
612
730
  const selectedDomainNames = selectedDomains.map((id) => domains.find((d) => d.id === id)?.name || id);
@@ -0,0 +1,85 @@
1
+ export interface DiscoverFilterQueryState {
2
+ q: string;
3
+ domains: string[];
4
+ owners: string[];
5
+ producers: string[];
6
+ consumers: string[];
7
+ agentProviders: string[];
8
+ agentModels: string[];
9
+ badges: string[];
10
+ properties: string[];
11
+ statuses: string[];
12
+ showOnlyLatest: boolean;
13
+ onlyShowDrafts: boolean;
14
+ }
15
+
16
+ const FILTER_PARAM_NAMES = [
17
+ 'q',
18
+ 'domain',
19
+ 'owner',
20
+ 'producer',
21
+ 'consumer',
22
+ 'agentProvider',
23
+ 'agentModel',
24
+ 'badge',
25
+ 'property',
26
+ 'status',
27
+ 'latest',
28
+ 'drafts',
29
+ ];
30
+
31
+ const uniqueNonEmpty = (values: string[]) => Array.from(new Set(values.map((value) => value.trim()).filter(Boolean)));
32
+
33
+ const getValues = (params: URLSearchParams, paramName: string) => uniqueNonEmpty(params.getAll(paramName));
34
+
35
+ const isFalse = (value: string | null) => value === 'false' || value === '0';
36
+
37
+ const isTrue = (value: string | null) => value === 'true' || value === '1';
38
+
39
+ export const parseDiscoverFilterSearch = (search: string): DiscoverFilterQueryState => {
40
+ const params = new URLSearchParams(search);
41
+
42
+ return {
43
+ q: params.get('q')?.trim() ?? '',
44
+ domains: getValues(params, 'domain'),
45
+ owners: getValues(params, 'owner'),
46
+ producers: getValues(params, 'producer'),
47
+ consumers: getValues(params, 'consumer'),
48
+ agentProviders: getValues(params, 'agentProvider'),
49
+ agentModels: getValues(params, 'agentModel'),
50
+ badges: getValues(params, 'badge'),
51
+ properties: getValues(params, 'property'),
52
+ statuses: getValues(params, 'status'),
53
+ showOnlyLatest: !isFalse(params.get('latest')),
54
+ onlyShowDrafts: isTrue(params.get('drafts')),
55
+ };
56
+ };
57
+
58
+ export const filterKnownValues = (values: string[], knownValues: Set<string>) => values.filter((value) => knownValues.has(value));
59
+
60
+ export const buildDiscoverFilterSearch = (filters: DiscoverFilterQueryState, currentSearch = '') => {
61
+ const params = new URLSearchParams(currentSearch);
62
+ FILTER_PARAM_NAMES.forEach((paramName) => params.delete(paramName));
63
+
64
+ const appendValues = (paramName: string, values: string[]) => {
65
+ uniqueNonEmpty(values).forEach((value) => params.append(paramName, value));
66
+ };
67
+
68
+ const q = filters.q.trim();
69
+ if (q) params.set('q', q);
70
+ appendValues('domain', filters.domains);
71
+ appendValues('owner', filters.owners);
72
+ appendValues('producer', filters.producers);
73
+ appendValues('consumer', filters.consumers);
74
+ appendValues('agentProvider', filters.agentProviders);
75
+ appendValues('agentModel', filters.agentModels);
76
+ appendValues('badge', filters.badges);
77
+ appendValues('property', filters.properties);
78
+ appendValues('status', filters.statuses);
79
+
80
+ if (!filters.showOnlyLatest) params.set('latest', 'false');
81
+ if (filters.onlyShowDrafts) params.set('drafts', 'true');
82
+
83
+ const search = params.toString();
84
+ return search ? `?${search}` : '';
85
+ };
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  },
8
8
  "license": "SEE LICENSE IN LICENSE",
9
9
  "type": "module",
10
- "version": "4.0.3",
10
+ "version": "4.0.4",
11
11
  "publishConfig": {
12
12
  "access": "public"
13
13
  },