@websolutespa/bom-core 1.8.7 → 1.8.9

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/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @websolutespa/bom-core
2
2
 
3
+ ## 1.8.9
4
+
5
+ ### Patch Changes
6
+
7
+ - Added: isMenu assertions
8
+
9
+ ## 1.8.8
10
+
11
+ ### Patch Changes
12
+
13
+ - f343ad7: Modified: RouteService collectRoutes
14
+
3
15
  ## 1.8.7
4
16
 
5
17
  ### Patch Changes
package/dist/index.d.ts CHANGED
@@ -94,13 +94,15 @@ type User = Record<string, unknown> & {
94
94
  id: string;
95
95
  email: string;
96
96
  };
97
- type UserRole = 'admin' | 'editor' | 'user' | string;
97
+ type UserRole = ('admin' | 'editor' | 'guest' | 'user') & string;
98
98
  type UserWithRoles = User & {
99
99
  roles: UserRole[];
100
100
  };
101
101
  type IEndUser = UserWithRoles & {
102
102
  email: string;
103
103
  consentPreferences: IConsentPreference[];
104
+ createdAt: string;
105
+ updatedAt: string;
104
106
  };
105
107
 
106
108
  type IAction = Record<string, unknown> & {
@@ -110,7 +112,6 @@ type IAction = Record<string, unknown> & {
110
112
  consentsRevoked?: boolean;
111
113
  consentsRevokedDate?: string | Date;
112
114
  endUser: IEndUser;
113
- loggedEndUser?: IEndUser;
114
115
  email?: string;
115
116
  password?: string;
116
117
  createdAt?: string;
@@ -477,6 +478,11 @@ type IMenuCustom = Record<string, unknown> & {
477
478
  type IMenuItem = IMenuCategory | IMenuGroup | IMenuLink | IMenuPage | IMenuRoute;
478
479
  type IMenuHref = IMenuCategory | IMenuLink | IMenuPage | IMenuRoute;
479
480
  declare function isMenuHref(item: IMenuItem): item is IMenuHref;
481
+ declare function isMenuCategory(item: IMenuItem): item is IMenuCategory;
482
+ declare function isMenuGroup(item: IMenuItem): item is IMenuGroup;
483
+ declare function isMenuLink(item: IMenuItem): item is IMenuLink;
484
+ declare function isMenuPage(item: IMenuItem): item is IMenuPage;
485
+ declare function isMenuRoute(item: IMenuItem): item is IMenuRoute;
480
486
  type IMenu = {
481
487
  id: string;
482
488
  items: IMenuItem[];
@@ -542,12 +548,8 @@ type ILayout = {
542
548
  tree?: IRouteLink;
543
549
  };
544
550
 
545
- type IUndecoratedNav<T> = T & {
546
- nav?: IUndecoratedMenuPage;
547
- };
548
- type IDecoratedNav<T> = T & {
549
- nav?: IMenuPage;
550
- };
551
+ type IUndecoratedNav = IUndecoratedMenuPage;
552
+ type IDecoratedNav = IMenuPage;
551
553
 
552
554
  type Pagination = {
553
555
  hasNextPage: boolean;
@@ -1265,12 +1267,6 @@ declare function isRelation(item: unknown): item is IPageRelation;
1265
1267
  * @returns True if the item is an undecorated menu item, false otherwise.
1266
1268
  */
1267
1269
  declare function isUndecoratedMenuItem(item: unknown): item is IUndecoratedMenuItem;
1268
- /**
1269
- * Checks if the given item is an undecorated navigation.
1270
- * @param item The item to check.
1271
- * @returns True if the item is an undecorated navigation, false otherwise.
1272
- */
1273
- declare function isUndecoratedNav<T>(item: unknown): item is IUndecoratedNav<T>;
1274
1270
  /**
1275
1271
  * Checks if the given item is an undecorated menu category.
1276
1272
  * @param item The item to check.
@@ -1283,6 +1279,12 @@ declare function isUndecoratedMenuCategory(item: unknown): item is IUndecoratedM
1283
1279
  * @returns True if the item is an undecorated menu page, false otherwise.
1284
1280
  */
1285
1281
  declare function isUndecoratedMenuPage(item: unknown): item is IUndecoratedMenuPage;
1282
+ /**
1283
+ * Checks if the given item is an undecorated navigation.
1284
+ * @param item The item to check.
1285
+ * @returns True if the item is an undecorated navigation, false otherwise.
1286
+ */
1287
+ declare function isUndecoratedNav(item: unknown): item is IUndecoratedNav;
1286
1288
 
1287
1289
  /**
1288
1290
  * Generates a random UUID (Universally Unique Identifier) in version 4 format.
@@ -1303,4 +1305,4 @@ declare function asServerProps(props: any): any;
1303
1305
  declare function awaitAll(array: any, callback: (item: any, index: number) => Promise<any>): Promise<any[]>;
1304
1306
  declare function merge(target: any, source: any): any;
1305
1307
 
1306
- export { DeepPartial, Dynamic, FetchError, FetchRequestOptions, FetchService, FindParams, FindWhereParams, IAction, IActionEmailData, IAnchor, ICategorized, ICategory, ICategoryItem, IClassName, IClassNameCollection, IClassNameValue, ICollectionDescription, IComponent, IConfig, IConsentPreference, IContextBaseParams, IContextParams, IDecoratedNav, IEmailConfig, IEndUser, IEntity, IEquatable, IFeature, IFeatureType, IImageResize, ILabel, ILayout, ILegalNotice, ILetter, ILocale, ILocaleId, ILocalizable, ILocalized, ILocalizedString, IMarket, IMedia, IMediaImage, IMediaInfo, IMediaJson, IMediaPdf, IMediaType, IMediaVideo, IMemoryStore, IMenu, IMenuBase, IMenuCategory, IMenuCustom, IMenuGroup, IMenuHref, IMenuItem, IMenuLink, IMenuPage, IMenuRoute, INamedEntity, IOption, IOverride, IOverrideReturnValue, IOverrideValue, IPackages, IPage, IPageItem, IPageRelation, IPageRelationResult, IPageUnresolvedRelation, IPagedResult, IPaginationResult, IPartial, IPreference, IPrettify, IQuerable, IRedirect, IRoute, IRouteCanonical, IRouteLink, IRouteParams, ISchema, ISerializedCollection, ISerializedStore, IServerSideContext, IServerSideSplatContext, IStaticContext, IStore, ITemplate, ITitledEntity, IUndecoratedMenu, IUndecoratedMenuBase, IUndecoratedMenuCategory, IUndecoratedMenuCustom, IUndecoratedMenuGroup, IUndecoratedMenuItem, IUndecoratedMenuLink, IUndecoratedMenuPage, IUndecoratedNav, ImageStrategy, Json, JsonService, LiteralUnion, Logger, LoggerLevel, MenuCategoryStrategy, NextApiRequestCookies, Operator, PageProps, Pagination, PreviewData, Primitive, QueryParams, RedirectReason, RequireAtLeastOne, RouteStrategy, SchemaType, ServerSidePropsContext, StaticPropsContext, User, UserRole, UserWithRoles, ValueOf, Where, WhereAndOr, WhereBase, WhereField, arrayShuffle, asCategoryId, asEntityId, asEquatable, asEquatableNumber, asEquatableString, asServerProps, asSortedOptions, awaitAll, base64ToString, camelToSnakeCase, cloneItem, collectFeatureTypes, collectFeatureTypes__, collectOptions, collectRoutes, consoleWarn, decryptImageResize, deepMerge, defaultLocale, defaultMarket, eachCategorized, eachMarketLocale, encryptImageToken, enumToList, findCategoryInCategories, findChildCategories, findRouteOfCategory, findRoutesOfCategory, getCategorySegments, getCategorySegmentsByCategory, getClassNames, getCollectionDescription, getEnv, getHost, getIsDevelopment, getIsProduction, getOrigin, getParentCategoriesById, getParentCategory, getProto, getRootCategory, getRouteHref, httpDelete, httpFetch, httpGet, httpPatch, httpPost, httpPut, isArray, isBrowser, isDevelopment, isEntity, isEquatable, isHeaders, isIncomingHttpHeaders, isLocalizedString, isMediaImage, isMediaJson, isMediaPdf, isMediaVideo, isMenuHref, isNotNullString, isNumber, isObject, isProduction, isPromise, isRelation, isReservedCollectionDescription, isStage, isString, isUndecoratedMenuCategory, isUndecoratedMenuItem, isUndecoratedMenuPage, isUndecoratedNav, isUnresolvedRelation, isValidCollectionDescription, isValidString, localize, localizeItem, localizeValue, localizedToString, merge, pascalCaseToCamelCase, pascalCaseToCharCase, pascalCaseToKebabCase, pascalCaseToSnakeCase, qsDeserialize, qsDeserializeRaw, qsSerialize, qsSerializeRaw, resolveMediaType, stringToBase64, toCamelCase, toCharCase, toDisplayName, toFindParams, toKebabCase, toPascalCase, toPluralName, toSnakeCase, toTitleCase, toValidCollectionName, unknownCaseToPascalCase, uuidv4, withSchema };
1308
+ export { DeepPartial, Dynamic, FetchError, FetchRequestOptions, FetchService, FindParams, FindWhereParams, IAction, IActionEmailData, IAnchor, ICategorized, ICategory, ICategoryItem, IClassName, IClassNameCollection, IClassNameValue, ICollectionDescription, IComponent, IConfig, IConsentPreference, IContextBaseParams, IContextParams, IDecoratedNav, IEmailConfig, IEndUser, IEntity, IEquatable, IFeature, IFeatureType, IImageResize, ILabel, ILayout, ILegalNotice, ILetter, ILocale, ILocaleId, ILocalizable, ILocalized, ILocalizedString, IMarket, IMedia, IMediaImage, IMediaInfo, IMediaJson, IMediaPdf, IMediaType, IMediaVideo, IMemoryStore, IMenu, IMenuBase, IMenuCategory, IMenuCustom, IMenuGroup, IMenuHref, IMenuItem, IMenuLink, IMenuPage, IMenuRoute, INamedEntity, IOption, IOverride, IOverrideReturnValue, IOverrideValue, IPackages, IPage, IPageItem, IPageRelation, IPageRelationResult, IPageUnresolvedRelation, IPagedResult, IPaginationResult, IPartial, IPreference, IPrettify, IQuerable, IRedirect, IRoute, IRouteCanonical, IRouteLink, IRouteParams, ISchema, ISerializedCollection, ISerializedStore, IServerSideContext, IServerSideSplatContext, IStaticContext, IStore, ITemplate, ITitledEntity, IUndecoratedMenu, IUndecoratedMenuBase, IUndecoratedMenuCategory, IUndecoratedMenuCustom, IUndecoratedMenuGroup, IUndecoratedMenuItem, IUndecoratedMenuLink, IUndecoratedMenuPage, IUndecoratedNav, ImageStrategy, Json, JsonService, LiteralUnion, Logger, LoggerLevel, MenuCategoryStrategy, NextApiRequestCookies, Operator, PageProps, Pagination, PreviewData, Primitive, QueryParams, RedirectReason, RequireAtLeastOne, RouteStrategy, SchemaType, ServerSidePropsContext, StaticPropsContext, User, UserRole, UserWithRoles, ValueOf, Where, WhereAndOr, WhereBase, WhereField, arrayShuffle, asCategoryId, asEntityId, asEquatable, asEquatableNumber, asEquatableString, asServerProps, asSortedOptions, awaitAll, base64ToString, camelToSnakeCase, cloneItem, collectFeatureTypes, collectFeatureTypes__, collectOptions, collectRoutes, consoleWarn, decryptImageResize, deepMerge, defaultLocale, defaultMarket, eachCategorized, eachMarketLocale, encryptImageToken, enumToList, findCategoryInCategories, findChildCategories, findRouteOfCategory, findRoutesOfCategory, getCategorySegments, getCategorySegmentsByCategory, getClassNames, getCollectionDescription, getEnv, getHost, getIsDevelopment, getIsProduction, getOrigin, getParentCategoriesById, getParentCategory, getProto, getRootCategory, getRouteHref, httpDelete, httpFetch, httpGet, httpPatch, httpPost, httpPut, isArray, isBrowser, isDevelopment, isEntity, isEquatable, isHeaders, isIncomingHttpHeaders, isLocalizedString, isMediaImage, isMediaJson, isMediaPdf, isMediaVideo, isMenuCategory, isMenuGroup, isMenuHref, isMenuLink, isMenuPage, isMenuRoute, isNotNullString, isNumber, isObject, isProduction, isPromise, isRelation, isReservedCollectionDescription, isStage, isString, isUndecoratedMenuCategory, isUndecoratedMenuItem, isUndecoratedMenuPage, isUndecoratedNav, isUnresolvedRelation, isValidCollectionDescription, isValidString, localize, localizeItem, localizeValue, localizedToString, merge, pascalCaseToCamelCase, pascalCaseToCharCase, pascalCaseToKebabCase, pascalCaseToSnakeCase, qsDeserialize, qsDeserializeRaw, qsSerialize, qsSerializeRaw, resolveMediaType, stringToBase64, toCamelCase, toCharCase, toDisplayName, toFindParams, toKebabCase, toPascalCase, toPluralName, toSnakeCase, toTitleCase, toValidCollectionName, unknownCaseToPascalCase, uuidv4, withSchema };
package/dist/index.js CHANGED
@@ -98,7 +98,12 @@ __export(src_exports, {
98
98
  isMediaJson: () => isMediaJson,
99
99
  isMediaPdf: () => isMediaPdf,
100
100
  isMediaVideo: () => isMediaVideo,
101
+ isMenuCategory: () => isMenuCategory,
102
+ isMenuGroup: () => isMenuGroup,
101
103
  isMenuHref: () => isMenuHref,
104
+ isMenuLink: () => isMenuLink,
105
+ isMenuPage: () => isMenuPage,
106
+ isMenuRoute: () => isMenuRoute,
102
107
  isNotNullString: () => isNotNullString,
103
108
  isNumber: () => isNumber,
104
109
  isObject: () => isObject,
@@ -188,15 +193,15 @@ function isRelation(item) {
188
193
  function isUndecoratedMenuItem(item) {
189
194
  return isObject(item) && (item.type === "category" && isEquatable(item.category) || item.type === "page" && isEquatable(item.page.value));
190
195
  }
191
- function isUndecoratedNav(item) {
192
- return isObject(item) && isUndecoratedMenuPage(item.nav);
193
- }
194
196
  function isUndecoratedMenuCategory(item) {
195
197
  return isObject(item) && item.type === "category" && isNotNullString(item.category) && item.id === void 0 && item.href === void 0;
196
198
  }
197
199
  function isUndecoratedMenuPage(item) {
198
200
  return isObject(item) && item.type === "page" && isObject(item.page) && isNotNullString(item.page.relationTo) && isEquatable(item.page.value);
199
201
  }
202
+ function isUndecoratedNav(item) {
203
+ return isUndecoratedMenuPage(item);
204
+ }
200
205
 
201
206
  // src/utils/asEquatable.ts
202
207
  function asEquatable(value) {
@@ -725,7 +730,7 @@ async function httpDelete(url, options = {}) {
725
730
 
726
731
  // src/image/image.ts
727
732
  function getSecret() {
728
- return process.env.IMAGE_SECRET || "The sun sets over the calm ocean";
733
+ return process.env.IMAGE_SECRET || "IMAGE_SECRET";
729
734
  }
730
735
  function textToArrayBuffer_(text) {
731
736
  const encoder = new TextEncoder();
@@ -1399,43 +1404,20 @@ function collectRoutes(store, categories, markets, locales, medias) {
1399
1404
  if (Boolean(item.isDefault) === false) {
1400
1405
  slugs.push({ slug: item.slug });
1401
1406
  }
1402
- if (rootCategory && item.category === rootCategory.id) {
1403
- const defaultLocale2 = locales.find((x) => x.isDefault) || locales[0];
1404
- const defaultMarket2 = markets.find((x) => x.isDefault) || markets[0];
1405
- const defaultMarketLocale = defaultMarket2 && defaultMarket2.defaultLanguage ? asEntityId(defaultMarket2.defaultLanguage) : defaultLocale2.id;
1406
- const title = localize(item.title, defaultMarketLocale);
1407
- const pickedProps = getPickedProps(item);
1408
- const route = {
1409
- ...pickedProps,
1410
- resolvedCategory: rootCategory.id,
1411
- id: "/",
1412
- market: defaultMarket2.id,
1413
- locale: defaultMarketLocale,
1414
- page: item.id,
1415
- schema: key,
1416
- title
1417
- };
1418
- const mediaId = typeof item.media === "string" ? item.media : void 0;
1419
- if (Array.isArray(medias) && mediaId) {
1420
- const media = item.media && medias.find((x) => x.id === mediaId);
1421
- if (media) {
1422
- route.media = media;
1423
- }
1424
- }
1425
- routes.push(route);
1426
- }
1407
+ const defaultLocale2 = locales.find((x) => x.isDefault) || locales[0];
1408
+ const defaultMarket2 = markets.find((x) => x.isDefault) || markets[0];
1409
+ const defaultMarketLocale = defaultMarket2 && defaultMarket2.defaultLanguage ? asEntityId(defaultMarket2.defaultLanguage) : defaultLocale2.id;
1410
+ const isRootCategory = rootCategory && item.category === rootCategory.id && item.isDefault;
1427
1411
  eachMarketLocale(markets, locales, (market, locale, markets2, locales2) => {
1428
1412
  if (!item.markets || item.markets.includes(market.id)) {
1429
1413
  const title = localize(item.title, locale.id);
1430
1414
  const id = getRouteHref(slugs, market, locale, markets2, locales2);
1431
- if (!id) {
1432
- return;
1433
- }
1415
+ const isDefaultRootCategory = isRootCategory && market.id === defaultMarket2.id && locale.id === defaultMarketLocale;
1434
1416
  const pickedProps = getPickedProps(item);
1435
1417
  const route = {
1436
1418
  ...pickedProps,
1437
1419
  resolvedCategory: visibleCategory.id,
1438
- id,
1420
+ id: isDefaultRootCategory ? "/" : id,
1439
1421
  locale: locale.id,
1440
1422
  market: market.id,
1441
1423
  page: item.id,
@@ -1583,6 +1565,21 @@ function isMediaPdf(media) {
1583
1565
  function isMenuHref(item) {
1584
1566
  return ["category", "link", "page", "route"].includes(item.type);
1585
1567
  }
1568
+ function isMenuCategory(item) {
1569
+ return item.type === "category";
1570
+ }
1571
+ function isMenuGroup(item) {
1572
+ return item.type === "group";
1573
+ }
1574
+ function isMenuLink(item) {
1575
+ return item.type === "link";
1576
+ }
1577
+ function isMenuPage(item) {
1578
+ return item.type === "page";
1579
+ }
1580
+ function isMenuRoute(item) {
1581
+ return item.type === "route";
1582
+ }
1586
1583
  var MenuCategoryStrategy = /* @__PURE__ */ ((MenuCategoryStrategy2) => {
1587
1584
  MenuCategoryStrategy2["Default"] = "default";
1588
1585
  MenuCategoryStrategy2["ExcludeHidden"] = "exclude-hidden";
@@ -1677,7 +1674,12 @@ var RedirectReason = /* @__PURE__ */ ((RedirectReason2) => {
1677
1674
  isMediaJson,
1678
1675
  isMediaPdf,
1679
1676
  isMediaVideo,
1677
+ isMenuCategory,
1678
+ isMenuGroup,
1680
1679
  isMenuHref,
1680
+ isMenuLink,
1681
+ isMenuPage,
1682
+ isMenuRoute,
1681
1683
  isNotNullString,
1682
1684
  isNumber,
1683
1685
  isObject,
package/dist/index.mjs CHANGED
@@ -40,15 +40,15 @@ function isRelation(item) {
40
40
  function isUndecoratedMenuItem(item) {
41
41
  return isObject(item) && (item.type === "category" && isEquatable(item.category) || item.type === "page" && isEquatable(item.page.value));
42
42
  }
43
- function isUndecoratedNav(item) {
44
- return isObject(item) && isUndecoratedMenuPage(item.nav);
45
- }
46
43
  function isUndecoratedMenuCategory(item) {
47
44
  return isObject(item) && item.type === "category" && isNotNullString(item.category) && item.id === void 0 && item.href === void 0;
48
45
  }
49
46
  function isUndecoratedMenuPage(item) {
50
47
  return isObject(item) && item.type === "page" && isObject(item.page) && isNotNullString(item.page.relationTo) && isEquatable(item.page.value);
51
48
  }
49
+ function isUndecoratedNav(item) {
50
+ return isUndecoratedMenuPage(item);
51
+ }
52
52
 
53
53
  // src/utils/asEquatable.ts
54
54
  function asEquatable(value) {
@@ -577,7 +577,7 @@ async function httpDelete(url, options = {}) {
577
577
 
578
578
  // src/image/image.ts
579
579
  function getSecret() {
580
- return process.env.IMAGE_SECRET || "The sun sets over the calm ocean";
580
+ return process.env.IMAGE_SECRET || "IMAGE_SECRET";
581
581
  }
582
582
  function textToArrayBuffer_(text) {
583
583
  const encoder = new TextEncoder();
@@ -1251,43 +1251,20 @@ function collectRoutes(store, categories, markets, locales, medias) {
1251
1251
  if (Boolean(item.isDefault) === false) {
1252
1252
  slugs.push({ slug: item.slug });
1253
1253
  }
1254
- if (rootCategory && item.category === rootCategory.id) {
1255
- const defaultLocale2 = locales.find((x) => x.isDefault) || locales[0];
1256
- const defaultMarket2 = markets.find((x) => x.isDefault) || markets[0];
1257
- const defaultMarketLocale = defaultMarket2 && defaultMarket2.defaultLanguage ? asEntityId(defaultMarket2.defaultLanguage) : defaultLocale2.id;
1258
- const title = localize(item.title, defaultMarketLocale);
1259
- const pickedProps = getPickedProps(item);
1260
- const route = {
1261
- ...pickedProps,
1262
- resolvedCategory: rootCategory.id,
1263
- id: "/",
1264
- market: defaultMarket2.id,
1265
- locale: defaultMarketLocale,
1266
- page: item.id,
1267
- schema: key,
1268
- title
1269
- };
1270
- const mediaId = typeof item.media === "string" ? item.media : void 0;
1271
- if (Array.isArray(medias) && mediaId) {
1272
- const media = item.media && medias.find((x) => x.id === mediaId);
1273
- if (media) {
1274
- route.media = media;
1275
- }
1276
- }
1277
- routes.push(route);
1278
- }
1254
+ const defaultLocale2 = locales.find((x) => x.isDefault) || locales[0];
1255
+ const defaultMarket2 = markets.find((x) => x.isDefault) || markets[0];
1256
+ const defaultMarketLocale = defaultMarket2 && defaultMarket2.defaultLanguage ? asEntityId(defaultMarket2.defaultLanguage) : defaultLocale2.id;
1257
+ const isRootCategory = rootCategory && item.category === rootCategory.id && item.isDefault;
1279
1258
  eachMarketLocale(markets, locales, (market, locale, markets2, locales2) => {
1280
1259
  if (!item.markets || item.markets.includes(market.id)) {
1281
1260
  const title = localize(item.title, locale.id);
1282
1261
  const id = getRouteHref(slugs, market, locale, markets2, locales2);
1283
- if (!id) {
1284
- return;
1285
- }
1262
+ const isDefaultRootCategory = isRootCategory && market.id === defaultMarket2.id && locale.id === defaultMarketLocale;
1286
1263
  const pickedProps = getPickedProps(item);
1287
1264
  const route = {
1288
1265
  ...pickedProps,
1289
1266
  resolvedCategory: visibleCategory.id,
1290
- id,
1267
+ id: isDefaultRootCategory ? "/" : id,
1291
1268
  locale: locale.id,
1292
1269
  market: market.id,
1293
1270
  page: item.id,
@@ -1435,6 +1412,21 @@ function isMediaPdf(media) {
1435
1412
  function isMenuHref(item) {
1436
1413
  return ["category", "link", "page", "route"].includes(item.type);
1437
1414
  }
1415
+ function isMenuCategory(item) {
1416
+ return item.type === "category";
1417
+ }
1418
+ function isMenuGroup(item) {
1419
+ return item.type === "group";
1420
+ }
1421
+ function isMenuLink(item) {
1422
+ return item.type === "link";
1423
+ }
1424
+ function isMenuPage(item) {
1425
+ return item.type === "page";
1426
+ }
1427
+ function isMenuRoute(item) {
1428
+ return item.type === "route";
1429
+ }
1438
1430
  var MenuCategoryStrategy = /* @__PURE__ */ ((MenuCategoryStrategy2) => {
1439
1431
  MenuCategoryStrategy2["Default"] = "default";
1440
1432
  MenuCategoryStrategy2["ExcludeHidden"] = "exclude-hidden";
@@ -1528,7 +1520,12 @@ export {
1528
1520
  isMediaJson,
1529
1521
  isMediaPdf,
1530
1522
  isMediaVideo,
1523
+ isMenuCategory,
1524
+ isMenuGroup,
1531
1525
  isMenuHref,
1526
+ isMenuLink,
1527
+ isMenuPage,
1528
+ isMenuRoute,
1532
1529
  isNotNullString,
1533
1530
  isNumber,
1534
1531
  isObject,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@websolutespa/bom-core",
3
- "version": "1.8.7",
3
+ "version": "1.8.9",
4
4
  "description": "Core module of the BOM Repository",
5
5
  "keywords": [
6
6
  "bom",