@alanizcreative/formation-static 0.0.1 → 0.0.3

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.
Files changed (50) hide show
  1. package/README.md +1 -1
  2. package/cjs/actions/actions.js +1 -1
  3. package/cjs/components/Navigation/Navigation.d.ts +1 -2
  4. package/cjs/components/Navigation/Navigation.js +1 -1
  5. package/cjs/components/Navigation/NavigationTypes.d.ts +0 -17
  6. package/cjs/components/Pagination/Pagination.js +1 -1
  7. package/cjs/components/Pagination/PaginationTypes.d.ts +1 -0
  8. package/cjs/contentful/contentfulDataNormal.js +1 -1
  9. package/cjs/filters/filters.js +1 -1
  10. package/cjs/global/globalTypes.d.ts +1 -1
  11. package/cjs/local/localData.js +1 -1
  12. package/cjs/render/render.d.ts +3 -2
  13. package/cjs/render/render.js +1 -1
  14. package/cjs/render/renderTypes.d.ts +1 -2
  15. package/cjs/serverless/serverless.js +1 -1
  16. package/cjs/store/store.js +1 -1
  17. package/cjs/text/RichText/RichText.js +1 -1
  18. package/cjs/text/RichText/RichTextTypes.d.ts +1 -1
  19. package/cjs/utils/archive/archive.js +1 -1
  20. package/cjs/utils/escape/escape.js +1 -1
  21. package/cjs/utils/image/imageLocal.js +1 -1
  22. package/cjs/utils/json/json.d.ts +2 -2
  23. package/cjs/utils/json/json.js +1 -1
  24. package/cjs/utils/link/link.js +1 -1
  25. package/cjs/wordpress/wordpressDataNormal.js +1 -1
  26. package/lib/actions/actions.js +1 -1
  27. package/lib/components/Navigation/Navigation.d.ts +1 -2
  28. package/lib/components/Navigation/Navigation.js +1 -1
  29. package/lib/components/Navigation/NavigationTypes.d.ts +0 -17
  30. package/lib/components/Pagination/Pagination.js +1 -1
  31. package/lib/components/Pagination/PaginationTypes.d.ts +1 -0
  32. package/lib/contentful/contentfulDataNormal.js +1 -1
  33. package/lib/filters/filters.js +1 -1
  34. package/lib/global/globalTypes.d.ts +1 -1
  35. package/lib/local/localData.js +1 -1
  36. package/lib/render/render.d.ts +3 -2
  37. package/lib/render/render.js +1 -1
  38. package/lib/render/renderTypes.d.ts +1 -2
  39. package/lib/serverless/serverless.js +1 -1
  40. package/lib/store/store.js +1 -1
  41. package/lib/text/RichText/RichText.js +1 -1
  42. package/lib/text/RichText/RichTextTypes.d.ts +1 -1
  43. package/lib/utils/archive/archive.js +1 -1
  44. package/lib/utils/escape/escape.js +1 -1
  45. package/lib/utils/image/imageLocal.js +1 -1
  46. package/lib/utils/json/json.d.ts +2 -2
  47. package/lib/utils/json/json.js +1 -1
  48. package/lib/utils/link/link.js +1 -1
  49. package/lib/wordpress/wordpressDataNormal.js +1 -1
  50. package/package.json +12 -12
package/README.md CHANGED
@@ -138,7 +138,7 @@ npm install -D @alanizcreative/formation-static
138
138
 
139
139
  </details>
140
140
  <details>
141
- <summary>WordPress</summary>
141
+ <summary>Wordpress</summary>
142
142
 
143
143
  - <a href="/src/wordpress/README.md">WordPress</a>
144
144
 
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.setActions=exports.resetActions=exports.doActions=exports.removeAction=exports.addAction=exports.actions=void 0;const set_js_1=require("../utils/set/set.js"),string_js_1=require("../utils/string/string.js"),object_js_1=require("../utils/object/object.js"),function_js_1=require("../utils/function/function.js");let actions=new Map([["renderStart",new Set],["renderEnd",new Set],["renderItemStart",new Set],["renderItemEnd",new Set]]);exports.actions=actions;const addAction=(name,action)=>!(!(0,string_js_1.isStringStrict)(name)||!(0,function_js_1.isFunction)(action))&&((0,set_js_1.isSet)(actions.get(name))||actions.set(name,new Set),actions.get(name)?.add(action),!0);exports.addAction=addAction;const removeAction=(name,action)=>{if(!(0,string_js_1.isStringStrict)(name)||!(0,function_js_1.isFunction)(action))return!1;const actionSet=actions.get(name);return!!(0,set_js_1.isSet)(actionSet)&&actionSet.delete(action)};exports.removeAction=removeAction;const doSequentially=async(callbacks,args)=>{for(const callback of callbacks)await callback(args)},doActions=(name,args,isAsync=!1)=>{const actionSet=actions.get(name);if(!(0,set_js_1.isSetStrict)(actionSet))return;const callbacks=[];for(const callback of actionSet.values())isAsync?callbacks.push(callback):callback(args);isAsync&&doSequentially(callbacks,args).then(result=>result).catch(()=>{})};exports.doActions=doActions;const resetActions=()=>{exports.actions=actions=new Map([["renderStart",new Set],["renderEnd",new Set],["renderItemStart",new Set],["renderItemEnd",new Set]])};exports.resetActions=resetActions;const setActions=args=>{if(!(0,object_js_1.isObjectStrict)(args))return!1;const newActions=Object.entries(args);return!!newActions.length&&(resetActions(),newActions.forEach(([name,action])=>{action&&addAction(name,action)}),!0)};exports.setActions=setActions;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.setActions=exports.resetActions=exports.doActions=exports.removeAction=exports.addAction=exports.actions=void 0;const set_js_1=require("../utils/set/set.js"),string_js_1=require("../utils/string/string.js"),object_js_1=require("../utils/object/object.js"),function_js_1=require("../utils/function/function.js");let actions=new Map([["renderStart",new Set],["renderEnd",new Set],["renderItemStart",new Set],["renderItemEnd",new Set]]);exports.actions=actions;const addAction=(name,action)=>!(!(0,string_js_1.isStringStrict)(name)||!(0,function_js_1.isFunction)(action))&&((0,set_js_1.isSet)(actions.get(name))||actions.set(name,new Set),actions.get(name)?.add(action),!0);exports.addAction=addAction;const removeAction=(name,action)=>{if(!(0,string_js_1.isStringStrict)(name)||!(0,function_js_1.isFunction)(action))return!1;const actionSet=actions.get(name);return!!(0,set_js_1.isSet)(actionSet)&&actionSet.delete(action)};exports.removeAction=removeAction;const doSequentially=async(callbacks,args)=>{for(const callback of callbacks)await callback(args)},doActions=(name,args,isAsync=!1)=>{const actionSet=actions.get(name);if(!(0,set_js_1.isSetStrict)(actionSet))return;const callbacks=[];for(const callback of actionSet.values())isAsync?callbacks.push(callback):callback(args);return isAsync?doSequentially(callbacks,args).then(result=>result):void 0};exports.doActions=doActions;const resetActions=()=>{exports.actions=actions=new Map([["renderStart",new Set],["renderEnd",new Set],["renderItemStart",new Set],["renderItemEnd",new Set]])};exports.resetActions=resetActions;const setActions=args=>{if(!(0,object_js_1.isObjectStrict)(args))return!1;const newActions=Object.entries(args);return!!newActions.length&&(resetActions(),newActions.forEach(([name,action])=>{action&&addAction(name,action)}),!0)};exports.setActions=setActions;
@@ -1,4 +1,4 @@
1
- import type { NavigationProps, NavigationList, NavigationByLocation, NavigationItem, NavigationItemsById, NavigationBreadcrumbItem, NavigationOutputArgs, NavigationBreadcrumbOutputArgs, NavigationByLocationItem } from './NavigationTypes.js';
1
+ import type { NavigationProps, NavigationList, NavigationByLocation, NavigationItem, NavigationItemsById, NavigationOutputArgs, NavigationByLocationItem } from './NavigationTypes.js';
2
2
  declare class Navigation<L extends string = string> {
3
3
  #private;
4
4
  navigations: NavigationList[];
@@ -6,7 +6,6 @@ declare class Navigation<L extends string = string> {
6
6
  init: boolean;
7
7
  constructor(props: NavigationProps);
8
8
  getOutput(location: L, args?: NavigationOutputArgs, maxDepth?: number): string;
9
- getBreadcrumbs(items: NavigationBreadcrumbItem[], args?: NavigationBreadcrumbOutputArgs): string;
10
9
  getItemsById(): NavigationItemsById;
11
10
  getNavigationsByLocation(): NavigationByLocation<L>;
12
11
  getNavigationByLocation(location: L): NavigationByLocationItem | undefined;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Navigation=void 0;const link_js_1=require("../../utils/link/link.js"),array_js_1=require("../../utils/array/array.js"),object_js_1=require("../../utils/object/object.js"),string_js_1=require("../../utils/string/string.js"),function_js_1=require("../../utils/function/function.js"),number_js_1=require("../../utils/number/number.js"),contentType_js_1=require("../../utils/contentType/contentType.js"),archive_js_1=require("../../utils/archive/archive.js");class Navigation{navigations=[];items=[];init=!1;#itemsById=new Map;#navigationsByLocation=new Map;constructor(props){this.init=this.#initialize(props)}#initialize(props){if(!(0,object_js_1.isObjectStrict)(props))return!1;const{navigations:navigations,items:items}=props;return!(!(0,array_js_1.isArrayStrict)(navigations)||!(0,array_js_1.isArrayStrict)(items))&&(this.navigations=navigations,this.items=items,this.items.forEach(item=>{(0,object_js_1.isObjectStrict)(item)&&this.#itemsById.set(item.id,item)}),this.navigations.forEach(nav=>{if(!(0,object_js_1.isObjectStrict)(nav))return;const{title:title,location:location,items:items=[]}=nav,locations=(0,array_js_1.isArrayStrict)(location)?location:[location];(0,string_js_1.isStringStrict)(title)&&(0,array_js_1.isArrayStrict)(items)&&locations.forEach(loc=>{this.#navigationsByLocation.set(loc,{title:title,items:items})})}),!0)}#recurseItemChildren(children,output,currentLink="",currentType=[]){let childCurrent=!1;return children.forEach(child=>{const newItem=this.#getItem(this.#itemsById.get(child?.id||""),currentLink,currentType);if(!newItem)return;const{current:current,archiveCurrent:archiveCurrent}=newItem;(current||archiveCurrent)&&(childCurrent=!0),output.push(newItem)}),childCurrent}#getItem(item,currentLink,currentType=[]){if(!(0,object_js_1.isObjectStrict)(item))return;const{id:id,title:title,link:link,internalLink:internalLink,externalLink:externalLink,children:children}=item;let external=!1;(0,string_js_1.isStringStrict)(externalLink)&&(external=!0);const newLink=(0,string_js_1.isStringStrict)(link)?link:(0,link_js_1.getLink)(internalLink,externalLink),newItem={...item,id:id,title:title,link:newLink,external:external};newLink&&!external&&(newItem.current=newLink===currentLink);const internalId=internalLink?.id;if((0,string_js_1.isStringStrict)(internalId)){let archiveCurrent=!1;for(const type of currentType){if(internalId===(0,archive_js_1.getArchiveMeta)(type,internalLink?.locale).id){archiveCurrent=!0;break}}newItem.archiveCurrent=archiveCurrent}let descendentCurrent=!1;if((0,array_js_1.isArrayStrict)(children)){const newChildren=[];descendentCurrent=this.#recurseItemChildren(children,newChildren,currentLink,currentType),newItem.children=newChildren}return descendentCurrent&&(newItem.descendentCurrent=descendentCurrent),newItem}#getItems(items=[],currentLink,currentType){const resItems=[];return items.forEach(item=>{const newItem=this.#getItem(this.#itemsById.get(item?.id||""),currentLink,currentType);newItem&&resItems.push(newItem)}),resItems}#recurseOutput=(items,output,args,depth=0,maxDepth)=>{if((0,number_js_1.isNumber)(maxDepth)&&depth>maxDepth)return;const dataAttr=(0,string_js_1.isStringStrict)(args.dataAttr)?args.dataAttr:"data-nav",depthAttr=args.depthAttr?` ${dataAttr}-depth="${depth}"`:"",listFilterArgs={args:args,output:output,items:items,depth:depth};(0,function_js_1.isFunction)(args.filterBeforeList)&&args.filterBeforeList(listFilterArgs);const listClasses=(0,string_js_1.isStringStrict)(args.listClass)?` class="${args.listClass}"`:"",listAttrs=(0,string_js_1.isStringStrict)(args.listAttr)?` ${args.listAttr}`:"",listTag=(0,string_js_1.isStringStrict)(args.listTag)?args.listTag:"ul";output.ref+=`<${listTag}${depthAttr}${listClasses}${listAttrs}>`,items.forEach((item,index)=>{const filterArgs={args:args,item:item,output:output,index:index,items:items,depth:depth};(0,function_js_1.isFunction)(args.filterBeforeItem)&&args.filterBeforeItem(filterArgs);const{title:title,link:link,external:external=!1,children:children,current:current=!1,descendentCurrent:descendentCurrent=!1,archiveCurrent:archiveCurrent=!1}=item,itemClasses=(0,string_js_1.isStringStrict)(args.itemClass)?` class="${args.itemClass}"`:"",itemTag=(0,string_js_1.isStringStrict)(args.itemTag)?args.itemTag:"li";let itemAttrs=(0,string_js_1.isStringStrict)(args.itemAttr)?` ${args.itemAttr}`:"";current&&(itemAttrs+=` ${dataAttr}-current`),descendentCurrent&&(itemAttrs+=` ${dataAttr}-descendent-current`),archiveCurrent&&(itemAttrs+=` ${dataAttr}-archive-current`),output.ref+=`<${itemTag}${depthAttr}${itemClasses}${itemAttrs}>`,(0,function_js_1.isFunction)(args.filterBeforeLink)&&args.filterBeforeLink(filterArgs);const linkClassesArr=[];(0,string_js_1.isStringStrict)(args.linkClass)&&linkClassesArr.push(args.linkClass),!external&&(0,string_js_1.isStringStrict)(args.internalLinkClass)&&linkClassesArr.push(args.internalLinkClass);const hasLink=(0,string_js_1.isStringStrict)(link),linkClasses=linkClassesArr.length?` class="${linkClassesArr.join(" ")}"`:"",linkAttrsArr=[hasLink?`href="${link}"`:'type="button"'];(0,string_js_1.isStringStrict)(args.linkAttr)&&linkAttrsArr.push(args.linkAttr),current&&(linkAttrsArr.push(`${dataAttr}-current`),hasLink&&linkAttrsArr.push('aria-current="page"')),descendentCurrent&&linkAttrsArr.push(`${dataAttr}-descendent-current`),archiveCurrent&&linkAttrsArr.push(`${dataAttr}-archive-current`);const linkAttrs=` ${linkAttrsArr.join(" ")}`,linkTag=hasLink?"a":"button";output.ref+=`<${linkTag}${depthAttr}${linkClasses}${linkAttrs}>`,(0,function_js_1.isFunction)(args.filterBeforeLinkText)&&args.filterBeforeLinkText(filterArgs),output.ref+=title,(0,function_js_1.isFunction)(args.filterAfterLinkText)&&args.filterAfterLinkText(filterArgs),output.ref+=`</${linkTag}>`,(0,function_js_1.isFunction)(args.filterAfterLink)&&args.filterAfterLink(filterArgs),(0,array_js_1.isArrayStrict)(children)&&this.#recurseOutput(children,output,args,depth+1,maxDepth),output.ref+=`</${itemTag}>`,(0,function_js_1.isFunction)(args.filterAfterItem)&&args.filterAfterItem(filterArgs)}),output.ref+=`</${listTag}>`,(0,function_js_1.isFunction)(args.filterAfterList)&&args.filterAfterList(listFilterArgs)};getOutput(location,args,maxDepth){const nav=this.#navigationsByLocation.get(location);if(!nav)return"";args=Object.assign({depthAttr:!1},args||{});const items=nav.items,{currentLink:currentLink,currentType:currentType}=args,currLink=(0,string_js_1.isStringStrict)(currentLink)?currentLink:"",currType=((0,array_js_1.isArrayStrict)(currentType)?currentType:[currentType]).map(type=>(0,contentType_js_1.normalizeContentType)(type)),normalizedItems=this.#getItems(items,currLink,currType);if(!normalizedItems.length)return"";const output={ref:""};return this.#recurseOutput(normalizedItems,output,args,0,maxDepth),output.ref}getBreadcrumbs(items,args){if(!(0,array_js_1.isArrayStrict)(items))return"";const current=(args=Object.assign({a11yClass:"a-hide-vis"},args||{})).current,dataAttr=(0,string_js_1.isStringStrict)(args.dataAttr)?args.dataAttr:"data-nav",listClasses=(0,string_js_1.isStringStrict)(args.listClass)?` class="${args.listClass}"`:"",listAttrs=(0,string_js_1.isStringStrict)(args.listAttr)?` ${args.listAttr}`:"",filteredItems=items.filter(item=>!!(0,string_js_1.isStringStrict)(item.title)&&(!!(0,string_js_1.isString)(item.slug)&&(item.slug=(0,link_js_1.getSlug)({id:item.id,slug:item.slug,contentType:item.contentType,itemData:item.internalLink}),!0))),itemClasses=(0,string_js_1.isStringStrict)(args.itemClass)?` class="${args.itemClass}"`:"",itemAttrs=(0,string_js_1.isStringStrict)(args.itemAttr)?` ${args.itemAttr}`:"",lastItemIndex=filteredItems.length-1,itemsArr=filteredItems.map((item,index)=>{const{title:title,slug:slug}=item,link=(0,link_js_1.getPermalink)(slug),output={ref:""},lastLevel=lastItemIndex===index,filterArgs={output:output,lastLevel:lastLevel};output.ref+=`<li${itemClasses}${itemAttrs}${lastLevel?` ${dataAttr}-last`:""}>`,(0,function_js_1.isFunction)(args.filterBeforeLink)&&args.filterBeforeLink(filterArgs);const linkClassesArr=[];(0,string_js_1.isStringStrict)(args.linkClass)&&linkClassesArr.push(args.linkClass),(0,string_js_1.isStringStrict)(args.internalLinkClass)&&linkClassesArr.push(args.internalLinkClass);const linkClasses=linkClassesArr.length?` class="${linkClassesArr.join(" ")}"`:"",linkAttrs=(0,string_js_1.isStringStrict)(args.linkAttr)?` ${args.linkAttr}`:"";return output.ref+=`<a${linkClasses} href="${link}"${linkAttrs}>${title}</a>`,(0,function_js_1.isFunction)(args.filterAfterLink)&&args.filterAfterLink(filterArgs),output.ref+="</li>",output.ref}),currentLabel=(0,string_js_1.isStringStrict)(args.currentLabel)?args.currentLabel:"(current page)",currentClasses=(0,string_js_1.isStringStrict)(args.currentClass)?` class="${args.currentClass}"`:"",a11yClasses=(0,string_js_1.isStringStrict)(args.a11yClass)?` class="${args.a11yClass}"`:"",currentItem=(0,string_js_1.isStringStrict)(current)?`\n <li${itemClasses}${itemAttrs} ${dataAttr}-current>\n <span${currentClasses}>${current}<span${a11yClasses}> ${currentLabel}</span></span>\n </li>\n `:"";return`\n <ol${listClasses}${listAttrs}>\n ${itemsArr.join("")}\n ${currentItem}\n </ol>\n `}getItemsById(){return this.#itemsById}getNavigationsByLocation(){return this.#navigationsByLocation}getNavigationByLocation(location){return this.#navigationsByLocation.get(location)}}exports.Navigation=Navigation;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Navigation=void 0;const link_js_1=require("../../utils/link/link.js"),array_js_1=require("../../utils/array/array.js"),object_js_1=require("../../utils/object/object.js"),string_js_1=require("../../utils/string/string.js"),function_js_1=require("../../utils/function/function.js"),number_js_1=require("../../utils/number/number.js"),contentType_js_1=require("../../utils/contentType/contentType.js"),archive_js_1=require("../../utils/archive/archive.js");class Navigation{navigations=[];items=[];init=!1;#itemsById=new Map;#navigationsByLocation=new Map;constructor(props){this.init=this.#initialize(props)}#initialize(props){if(!(0,object_js_1.isObjectStrict)(props))return!1;const{navigations:navigations,items:items}=props;return!(!(0,array_js_1.isArrayStrict)(navigations)||!(0,array_js_1.isArrayStrict)(items))&&(this.navigations=navigations,this.items=items,this.items.forEach(item=>{(0,object_js_1.isObjectStrict)(item)&&this.#itemsById.set(item.id,item)}),this.navigations.forEach(nav=>{if(!(0,object_js_1.isObjectStrict)(nav))return;const{title:title,location:location,items:items}=nav,locations=(0,array_js_1.isArrayStrict)(location)?location:[location];(0,string_js_1.isStringStrict)(title)&&(0,array_js_1.isArrayStrict)(items)&&locations.forEach(loc=>{this.#navigationsByLocation.set(loc,{title:title,items:items})})}),!0)}#recurseItemChildren(children,output,currentLink="",currentType=[]){let childCurrent=!1;return children.forEach(child=>{const newItem=this.#getItem(this.#itemsById.get(child?.id||""),currentLink,currentType);if(!newItem)return;const{current:current,archiveCurrent:archiveCurrent}=newItem;(current||archiveCurrent)&&(childCurrent=!0),output.push(newItem)}),childCurrent}#getItem(item,currentLink,currentType=[]){if(!(0,object_js_1.isObjectStrict)(item))return;const{id:id,title:title,link:link,internalLink:internalLink,externalLink:externalLink,children:children}=item;let external=!1;(0,string_js_1.isStringStrict)(externalLink)&&(external=!0);const newLink=(0,string_js_1.isStringStrict)(link)?link:(0,link_js_1.getLink)(internalLink,externalLink),newItem={...item,id:id,title:title,link:newLink,external:external};newLink&&!external&&(newItem.current=newLink===currentLink);const internalId=internalLink?.id;if((0,string_js_1.isStringStrict)(internalId)){let archiveCurrent=!1;for(const type of currentType){if(internalId===(0,archive_js_1.getArchiveMeta)(type,internalLink?.locale).id){archiveCurrent=!0;break}}newItem.archiveCurrent=archiveCurrent}let descendentCurrent=!1;if((0,array_js_1.isArrayStrict)(children)){const newChildren=[];descendentCurrent=this.#recurseItemChildren(children,newChildren,currentLink,currentType),newItem.children=newChildren}return descendentCurrent&&(newItem.descendentCurrent=descendentCurrent),newItem}#getItems(items=[],currentLink,currentType){const resItems=[];return items.forEach(item=>{const newItem=this.#getItem(this.#itemsById.get(item?.id||""),currentLink,currentType);newItem&&resItems.push(newItem)}),resItems}#recurseOutput=(items,output,args,depth=0,maxDepth)=>{if((0,number_js_1.isNumber)(maxDepth)&&depth>maxDepth)return;const dataAttr=(0,string_js_1.isStringStrict)(args.dataAttr)?args.dataAttr:"data-nav",depthAttr=args.depthAttr?` ${dataAttr}-depth="${depth}"`:"",listFilterArgs={args:args,output:output,items:items,depth:depth};(0,function_js_1.isFunction)(args.filterBeforeList)&&args.filterBeforeList(listFilterArgs);const listClasses=(0,string_js_1.isStringStrict)(args.listClass)?` class="${args.listClass}"`:"",listAttrs=(0,string_js_1.isStringStrict)(args.listAttr)?` ${args.listAttr}`:"",listTag=(0,string_js_1.isStringStrict)(args.listTag)?args.listTag:"ul";output.ref+=`<${listTag}${depthAttr}${listClasses}${listAttrs}>`,items.forEach((item,index)=>{const filterArgs={args:args,item:item,output:output,index:index,items:items,depth:depth};(0,function_js_1.isFunction)(args.filterBeforeItem)&&args.filterBeforeItem(filterArgs);const{title:title,link:link,external:external=!1,children:children,current:current=!1,descendentCurrent:descendentCurrent=!1,archiveCurrent:archiveCurrent=!1}=item,itemClasses=(0,string_js_1.isStringStrict)(args.itemClass)?` class="${args.itemClass}"`:"",itemTag=(0,string_js_1.isStringStrict)(args.itemTag)?args.itemTag:"li";let itemAttrs=(0,string_js_1.isStringStrict)(args.itemAttr)?` ${args.itemAttr}`:"";current&&(itemAttrs+=` ${dataAttr}-current`),descendentCurrent&&(itemAttrs+=` ${dataAttr}-descendent-current`),archiveCurrent&&(itemAttrs+=` ${dataAttr}-archive-current`),output.ref+=`<${itemTag}${depthAttr}${itemClasses}${itemAttrs}>`,(0,function_js_1.isFunction)(args.filterBeforeLink)&&args.filterBeforeLink(filterArgs);const linkClassesArr=[];(0,string_js_1.isStringStrict)(args.linkClass)&&linkClassesArr.push(args.linkClass),!external&&(0,string_js_1.isStringStrict)(args.internalLinkClass)&&linkClassesArr.push(args.internalLinkClass);const hasLink=(0,string_js_1.isStringStrict)(link),linkClasses=linkClassesArr.length?` class="${linkClassesArr.join(" ")}"`:"",linkAttrsArr=[hasLink?`href="${link}"`:'type="button"'];(0,string_js_1.isStringStrict)(args.linkAttr)&&linkAttrsArr.push(args.linkAttr),current&&(linkAttrsArr.push(`${dataAttr}-current`),hasLink&&linkAttrsArr.push('aria-current="page"')),descendentCurrent&&linkAttrsArr.push(`${dataAttr}-descendent-current`),archiveCurrent&&linkAttrsArr.push(`${dataAttr}-archive-current`);const linkAttrs=` ${linkAttrsArr.join(" ")}`,linkTag=hasLink?"a":"button";output.ref+=`<${linkTag}${depthAttr}${linkClasses}${linkAttrs}>`,(0,function_js_1.isFunction)(args.filterBeforeLinkText)&&args.filterBeforeLinkText(filterArgs),output.ref+=title,(0,function_js_1.isFunction)(args.filterAfterLinkText)&&args.filterAfterLinkText(filterArgs),output.ref+=`</${linkTag}>`,(0,function_js_1.isFunction)(args.filterAfterLink)&&args.filterAfterLink(filterArgs),(0,array_js_1.isArrayStrict)(children)&&this.#recurseOutput(children,output,args,depth+1,maxDepth),output.ref+=`</${itemTag}>`,(0,function_js_1.isFunction)(args.filterAfterItem)&&args.filterAfterItem(filterArgs)}),output.ref+=`</${listTag}>`,(0,function_js_1.isFunction)(args.filterAfterList)&&args.filterAfterList(listFilterArgs)};getOutput(location,args,maxDepth){const nav=this.#navigationsByLocation.get(location);if(!nav)return"";const newArgs={depthAttr:!1,...args},items=nav.items,{currentLink:currentLink,currentType:currentType}=newArgs,currLink=(0,string_js_1.isStringStrict)(currentLink)?currentLink:"",currType=((0,array_js_1.isArrayStrict)(currentType)?currentType:[currentType]).map(type=>(0,contentType_js_1.normalizeContentType)(type)),normalizedItems=this.#getItems(items,currLink,currType);if(!normalizedItems.length)return"";const output={ref:""};return this.#recurseOutput(normalizedItems,output,newArgs,0,maxDepth),output.ref}getItemsById(){return this.#itemsById}getNavigationsByLocation(){return this.#navigationsByLocation}getNavigationByLocation(location){return this.#navigationsByLocation.get(location)}}exports.Navigation=Navigation;
@@ -28,10 +28,6 @@ export interface NavigationItem extends Generic {
28
28
  archiveCurrent?: boolean;
29
29
  }
30
30
  export type NavigationItemsById = Map<string, NavigationItem>;
31
- export interface NavigationBreadcrumbItem extends NavigationItem {
32
- slug: string;
33
- contentType: string;
34
- }
35
31
  export interface NavigationOutputBaseArgs {
36
32
  listClass?: string;
37
33
  listAttr?: string;
@@ -73,16 +69,3 @@ export interface NavigationOutputArgs extends NavigationOutputBaseArgs {
73
69
  filterBeforeLinkText?: NavigationFilter;
74
70
  filterAfterLinkText?: NavigationFilter;
75
71
  }
76
- export interface NavigationBreadcrumbOutputFilterArgs {
77
- output: RefString;
78
- lastLevel: boolean;
79
- }
80
- export type NavigationBreadcrumbOutputFilter = (args: NavigationBreadcrumbOutputFilterArgs) => void;
81
- export interface NavigationBreadcrumbOutputArgs extends NavigationOutputBaseArgs {
82
- current?: string;
83
- currentClass?: string;
84
- currentLabel?: string;
85
- a11yClass?: string;
86
- filterBeforeLink?: NavigationBreadcrumbOutputFilter;
87
- filterAfterLink?: NavigationBreadcrumbOutputFilter;
88
- }
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Pagination=void 0;const object_js_1=require("../../utils/object/object.js"),string_js_1=require("../../utils/string/string.js"),Pagination=props=>{const fallback={output:"",data:{}};if(!(0,object_js_1.isObjectStrict)(props))return fallback;const{total:total=1,display:display=5,current:current=1,filters:filters,url:url,ellipsis:ellipsis,first:first,last:last,prev:prev="",next:next="",firstLabel:firstLabel="First page",lastLabel:lastLabel="Last page",prevLabel:prevLabel="Previous page",nextLabel:nextLabel="Next page",currentLabel:currentLabel="Current page",pageLabel:pageLabel="Page",titleTemplate:titleTemplate="Page %current of %total",args:args}=props,{listClass:listClass,listAttr:listAttr,itemClass:itemClass,itemAttr:itemAttr,linkClass:linkClass,linkAttr:linkAttr,currentClass:currentClass,a11yClass:a11yClass="a-hide-vis",firstClass:firstClass,lastClass:lastClass,prevSpanClass:prevSpanClass,prevLinkClass:prevLinkClass,nextSpanClass:nextSpanClass,nextLinkClass:nextLinkClass}=(0,object_js_1.isObjectStrict)(args)?args:{};if(total<=1||!(0,string_js_1.isStringStrict)(url))return fallback;let output="";const hasFilters=(0,object_js_1.isObjectStrict)(filters);let firstParams={},lastParams={page:total.toString()},prevParams={},nextParams={},currentParams={};const prevPage=current-1,nextPage=current+1<=total?current+1:0;current>1&&(currentParams.page=current.toString()),prevPage>1&&(prevParams.page=prevPage.toString()),nextPage&&(nextParams.page=nextPage.toString()),hasFilters&&(firstParams={...firstParams,...filters},lastParams={...lastParams,...filters},currentParams={...currentParams,...filters},prevParams={...prevParams,...filters},current<total&&(nextParams={...nextParams,...filters}));const lastParamsStr=`?${new URLSearchParams(lastParams).toString()}`;let firstParamsStr=new URLSearchParams(firstParams).toString(),prevParamsStr=new URLSearchParams(prevParams).toString(),nextParamsStr=new URLSearchParams(nextParams).toString(),currentParamsStr=new URLSearchParams(currentParams).toString();firstParamsStr&&(firstParamsStr=`?${firstParamsStr}`),prevParamsStr&&(prevParamsStr=`?${prevParamsStr}`),nextParamsStr&&(nextParamsStr=`?${nextParamsStr}`),currentParamsStr&&(currentParamsStr=`?${currentParamsStr}`);const data={current:current,total:total};nextPage&&(data.next=nextPage),prevPage&&(data.prev=prevPage),currentParamsStr&&(data.currentParams=currentParams),nextParamsStr&&(data.nextParams=nextParams),prevParamsStr&&(data.prevParams=prevParams),firstParamsStr&&(data.firstParams=firstParams),data.lastParams=lastParams,current>1&&(data.title=titleTemplate.replace("%current",current.toString()).replace("%total",total.toString()));const max=display-1,half=Math.ceil(display/2),maxHalf=max/2,center=total>max,limit=center?max:total-1;let start=1;center&&(start=current<max?1:current-maxHalf),start>total-limit&&(start=total-limit);const totalPagesItems=start+limit,listAttrs=[];(0,string_js_1.isStringStrict)(listClass)&&listAttrs.push(`class="${listClass}"`),(0,string_js_1.isStringStrict)(listAttr)&&listAttrs.push(listAttr);const hasEllipsis=(0,string_js_1.isStringStrict)(ellipsis),itemAttrs=`${(0,string_js_1.isStringStrict)(itemClass)?` class="${itemClass}"`:""}${(0,string_js_1.isStringStrict)(itemAttr)?` ${itemAttr}`:""}`;(0,string_js_1.isStringStrict)(first)&&(output+=`\n <li${itemAttrs} data-pag-first>\n <a\n href="${url}${firstParamsStr}"\n aria-label="${firstLabel}"${(0,string_js_1.isStringStrict)(firstClass)?` class="${firstClass}"`:""}\n >\n ${first}\n </a>\n </li>\n `);let prevItem=`<span${(0,string_js_1.isStringStrict)(prevSpanClass)?` class="${prevSpanClass}"`:""}>${prev}</span>`,isPrevLink=!1;current>1&&(isPrevLink=!0,prevItem=`\n <a\n href="${url}${prevParamsStr}"\n aria-label="${prevLabel}"${(0,string_js_1.isStringStrict)(prevLinkClass)?` class="${prevLinkClass}"`:""}\n >\n ${prev}\n </a>\n `),output+=`<li${itemAttrs} data-pag-prev="${isPrevLink?"link":"text"}">${prevItem}</li>`;let ellipsisOutput="";hasEllipsis&&(ellipsisOutput=`<li${itemAttrs} aria-hidden="true" data-pag-ellipsis>${ellipsis}</li>`),center&&current>=limit&&current>half&&(output+=ellipsisOutput);for(let i=start;i<=totalPagesItems;i+=1){const isCurrent=i===current;let content="";if(isCurrent)content=`\n <span${(0,string_js_1.isStringStrict)(currentClass)?` class="${currentClass}"`:""}>\n <span class="${a11yClass}">${currentLabel} </span>\n ${i}\n </span>\n `;else{let params={};i>1&&(params.page=i.toString()),hasFilters&&(params={...params,...filters});let paramsStr=new URLSearchParams(params).toString();paramsStr&&(paramsStr=`?${paramsStr}`),content=`\n <a href="${url}${paramsStr}"${(0,string_js_1.isStringStrict)(linkClass)?` class="${linkClass}"`:""}${(0,string_js_1.isStringStrict)(linkAttr)?` ${linkAttr}`:""}>\n <span class="${a11yClass}">${pageLabel} </span>\n ${i}\n </a>\n `}output+=`<li${itemAttrs}${isCurrent?" data-pag-current":""}>${content}</li>`}center&&current<total-maxHalf&&(output+=ellipsisOutput);let nextItem=`<span${(0,string_js_1.isStringStrict)(nextSpanClass)?` class="${nextSpanClass}"`:""}>${next}</span>`,nextLink=!1;return current<total&&(nextLink=!0,nextItem=`\n <a\n href="${url}${nextParamsStr}"\n aria-label="${nextLabel}"${(0,string_js_1.isStringStrict)(nextLinkClass)?` class="${nextLinkClass}"`:""}\n >\n ${next}\n </a>\n `),output+=`<li${itemAttrs} data-pag-next="${nextLink?"link":"text"}">${nextItem}</li>`,(0,string_js_1.isStringStrict)(last)&&(output+=`\n <li${itemAttrs} data-pag-last>\n <a\n href="${url}${lastParamsStr}"\n aria-label="${lastLabel}"${(0,string_js_1.isStringStrict)(lastClass)?` class="${lastClass}"`:""}\n >\n ${last}\n </a>\n </li>\n `),{output:`\n <ol${listAttrs.length?` ${listAttrs.join(" ")}`:""}>\n ${output}\n </ol>\n `,data:data}};exports.Pagination=Pagination;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Pagination=void 0;const object_js_1=require("../../utils/object/object.js"),string_js_1=require("../../utils/string/string.js"),Pagination=props=>{const fallback={output:"",data:{}};if(!(0,object_js_1.isObjectStrict)(props))return fallback;const{total:total=1,display:display=5,current:current=1,filters:filters,url:url,ellipsis:ellipsis,first:first,last:last,prev:prev="",next:next="",firstLabel:firstLabel="First page",lastLabel:lastLabel="Last page",prevLabel:prevLabel="Previous page",nextLabel:nextLabel="Next page",currentLabel:currentLabel="Current page",pageLabel:pageLabel="Page",titleTemplate:titleTemplate="Page %current of %total",args:args}=props,{listClass:listClass,listAttr:listAttr,itemsWrap:itemsWrap=!0,itemClass:itemClass,itemAttr:itemAttr,linkClass:linkClass,linkAttr:linkAttr,currentClass:currentClass,a11yClass:a11yClass="a-hide-vis",firstClass:firstClass,lastClass:lastClass,prevSpanClass:prevSpanClass,prevLinkClass:prevLinkClass,nextSpanClass:nextSpanClass,nextLinkClass:nextLinkClass}=(0,object_js_1.isObjectStrict)(args)?args:{};if(total<=1||!(0,string_js_1.isStringStrict)(url))return fallback;let output="";const hasFilters=(0,object_js_1.isObjectStrict)(filters);let firstParams={},lastParams={page:total.toString()},prevParams={},nextParams={},currentParams={};const prevPage=current-1,nextPage=current+1<=total?current+1:0;current>1&&(currentParams.page=current.toString()),prevPage>1&&(prevParams.page=prevPage.toString()),nextPage&&(nextParams.page=nextPage.toString()),hasFilters&&(firstParams={...firstParams,...filters},lastParams={...lastParams,...filters},currentParams={...currentParams,...filters},prevParams={...prevParams,...filters},current<total&&(nextParams={...nextParams,...filters}));const lastParamsStr=`?${new URLSearchParams(lastParams).toString()}`;let firstParamsStr=new URLSearchParams(firstParams).toString(),prevParamsStr=new URLSearchParams(prevParams).toString(),nextParamsStr=new URLSearchParams(nextParams).toString(),currentParamsStr=new URLSearchParams(currentParams).toString();firstParamsStr&&(firstParamsStr=`?${firstParamsStr}`),prevParamsStr&&(prevParamsStr=`?${prevParamsStr}`),nextParamsStr&&(nextParamsStr=`?${nextParamsStr}`),currentParamsStr&&(currentParamsStr=`?${currentParamsStr}`);const data={current:current,total:total};nextPage&&(data.next=nextPage),prevPage&&(data.prev=prevPage),currentParamsStr&&(data.currentParams=currentParams),nextParamsStr&&(data.nextParams=nextParams),prevParamsStr&&(data.prevParams=prevParams),firstParamsStr&&(data.firstParams=firstParams),data.lastParams=lastParams,current>1&&(data.title=titleTemplate.replace("%current",current.toString()).replace("%total",total.toString()));const max=display-1,half=Math.ceil(display/2),maxHalf=max/2,center=total>max,limit=center?max:total-1;let start=1;center&&(start=current<max?1:current-maxHalf),start>total-limit&&(start=total-limit);const totalPagesItems=start+limit,listAttrs=[];(0,string_js_1.isStringStrict)(listClass)&&listAttrs.push(`class="${listClass}"`),(0,string_js_1.isStringStrict)(listAttr)&&listAttrs.push(listAttr);const hasEllipsis=(0,string_js_1.isStringStrict)(ellipsis),itemAttrs=`${(0,string_js_1.isStringStrict)(itemClass)?` class="${itemClass}"`:""}${(0,string_js_1.isStringStrict)(itemAttr)?` ${itemAttr}`:""}`;(0,string_js_1.isStringStrict)(first)&&(output+=`\n <li${itemAttrs} data-pag-first>\n <a\n href="${url}${firstParamsStr}"\n aria-label="${firstLabel}"${(0,string_js_1.isStringStrict)(firstClass)?` class="${firstClass}"`:""}\n >\n ${first}\n </a>\n </li>\n `);let prevItem=`<span${(0,string_js_1.isStringStrict)(prevSpanClass)?` class="${prevSpanClass}"`:""}>${prev}</span>`,isPrevLink=!1;current>1&&(isPrevLink=!0,prevItem=`\n <a\n href="${url}${prevParamsStr}"\n aria-label="${prevLabel}"${(0,string_js_1.isStringStrict)(prevLinkClass)?` class="${prevLinkClass}"`:""}\n >\n ${prev}\n </a>\n `),output+=`<li${itemAttrs} data-pag-prev="${isPrevLink?"link":"text"}">${prevItem}</li>`;let ellipsisOutput="";hasEllipsis&&(ellipsisOutput=`<li${itemAttrs} aria-hidden="true" data-pag-ellipsis>${ellipsis}</li>`),center&&current>=limit&&current>half&&(output+=ellipsisOutput);for(let i=start;i<=totalPagesItems;i+=1){const isCurrent=i===current;let content="";if(isCurrent)content=`\n <span${(0,string_js_1.isStringStrict)(currentClass)?` class="${currentClass}"`:""}>\n <span class="${a11yClass}">${currentLabel} </span>\n ${i}\n </span>\n `;else{let params={};i>1&&(params.page=i.toString()),hasFilters&&(params={...params,...filters});let paramsStr=new URLSearchParams(params).toString();paramsStr&&(paramsStr=`?${paramsStr}`),content=`\n <a href="${url}${paramsStr}"${(0,string_js_1.isStringStrict)(linkClass)?` class="${linkClass}"`:""}${(0,string_js_1.isStringStrict)(linkAttr)?` ${linkAttr}`:""}>\n <span class="${a11yClass}">${pageLabel} </span>\n ${i}\n </a>\n `}output+=`<li${itemAttrs}${isCurrent?" data-pag-current":""}>${content}</li>`}center&&current<total-maxHalf&&(output+=ellipsisOutput);let nextItem=`<span${(0,string_js_1.isStringStrict)(nextSpanClass)?` class="${nextSpanClass}"`:""}>${next}</span>`,nextLink=!1;return current<total&&(nextLink=!0,nextItem=`\n <a\n href="${url}${nextParamsStr}"\n aria-label="${nextLabel}"${(0,string_js_1.isStringStrict)(nextLinkClass)?` class="${nextLinkClass}"`:""}\n >\n ${next}\n </a>\n `),output+=`<li${itemAttrs} data-pag-next="${nextLink?"link":"text"}">${nextItem}</li>`,(0,string_js_1.isStringStrict)(last)&&(output+=`\n <li${itemAttrs} data-pag-last>\n <a\n href="${url}${lastParamsStr}"\n aria-label="${lastLabel}"${(0,string_js_1.isStringStrict)(lastClass)?` class="${lastClass}"`:""}\n >\n ${last}\n </a>\n </li>\n `),{output:itemsWrap?`\n <ol${listAttrs.length?` ${listAttrs.join(" ")}`:""}>\n ${output}\n </ol>\n `:output,data:data}};exports.Pagination=Pagination;
@@ -21,6 +21,7 @@ export interface PaginationProps {
21
21
  export interface PaginationArgs {
22
22
  listClass?: string;
23
23
  listAttr?: string;
24
+ itemsWrap?: boolean;
24
25
  itemClass?: string;
25
26
  itemAttr?: string;
26
27
  linkClass?: string;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.normalizeContentfulData=void 0;const contentType_js_1=require("../utils/contentType/contentType.js"),array_js_1=require("../utils/array/array.js"),object_js_1=require("../utils/object/object.js"),string_js_1=require("../utils/string/string.js"),objectUtils_js_1=require("../utils/object/objectUtils.js"),number_js_1=require("../utils/number/number.js"),config_js_1=require("../config/config.js"),getTag=(type="text")=>({br:"br",hr:"hr",paragraph:"p",blockquote:"blockquote",bold:"b",italic:"i",underline:"u",superscript:"sup",subscript:"sub",code:"code",hyperlink:"a","entry-hyperlink":"a","asset-hyperlink":"a","heading-1":"h1","heading-2":"h2","heading-3":"h3","heading-4":"h4","heading-5":"h5","heading-6":"h6","list-item":"li","unordered-list":"ul","ordered-list":"ol",table:"table","table-row":"tr","table-cell":"td","table-header-cell":"th"}[type]||""),normalizeRichText=items=>{const newItems=[];return items.forEach(item=>{if(!(0,object_js_1.isObjectStrict)(item))return;const{nodeType:nodeType,data:data,value:value,marks:marks,content:content}=item,tag=getTag(nodeType);let contentValue,link,internalLink;if((0,string_js_1.isStringStrict)(value)&&(contentValue=value,contentValue=contentValue.replace(/\n/g,"<br>"),(0,array_js_1.isArrayStrict)(marks))){const markTags=marks.map(m=>getTag(m.type));contentValue=`${markTags.map(m=>`<${m}>`).join("")}${value}${markTags.map(m=>`</${m}>`).join("")}`}if((0,string_js_1.isStringStrict)(content)&&(contentValue=content),(0,array_js_1.isArrayStrict)(content)&&(contentValue=normalizeRichText(content)),(0,object_js_1.isObjectStrict)(data)&&(link=(0,string_js_1.isString)(data.uri)?data.uri:"",(0,object_js_1.isObjectStrict)(data.target))){const target=data.target;"entry-hyperlink"!==nodeType&&"embedded-entry-inline"!==nodeType||(internalLink=target);const url=target.fields?.file?.url;"asset-hyperlink"===nodeType&&(0,string_js_1.isString)(url)&&(link=`https:${url}`)}if(!contentValue)return;const newItem={content:contentValue};return(0,string_js_1.isStringStrict)(tag)&&(newItem.tag=tag),(0,string_js_1.isStringStrict)(link)&&(newItem.link=link),(0,object_js_1.isObjectStrict)(internalLink)&&(newItem.internalLink=normalizeItem(internalLink,[],!0)),newItems.push(newItem)}),newItems},normalizeFile=(file,fields)=>{const type=(0,string_js_1.isString)(file.contentType)?file.contentType:"",format=type?type.split("/")[1]:"";return{url:(0,string_js_1.isString)(file.url)?`https:${file.url}`:"",name:(0,string_js_1.isString)(file.fileName)?file.fileName:"",alt:(0,string_js_1.isString)(fields.description)?fields.description:"",width:(0,number_js_1.isNumber)(file.details?.image?.width)?file.details.image.width:0,height:(0,number_js_1.isNumber)(file.details?.image?.height)?file.details.image.height:0,size:(0,number_js_1.isNumber)(file.details?.size)?file.details.size:0,format:"jpeg"===format?"jpg":format,type:type}},normalizeItem=(item,data,isInternalLink=!1)=>{let newItem={};const itemCopy={...item};(0,string_js_1.isString)(itemCopy.sys?.id)&&(newItem.id=itemCopy.sys.id),(0,string_js_1.isStringStrict)(itemCopy.sys?.locale)&&(newItem.locale=itemCopy.sys.locale);let type="";if((0,string_js_1.isString)(itemCopy.sys?.type)&&(type=itemCopy.sys.type),(0,string_js_1.isString)(itemCopy.sys?.contentType?.sys?.id)&&(type=itemCopy.sys.contentType.sys.id),type&&"Link"!==type&&(newItem.contentType=(0,contentType_js_1.normalizeContentType)(type),(0,string_js_1.isString)(config_js_1.config.renderTypes[type])&&(newItem.renderType=config_js_1.config.renderTypes[type])),(0,array_js_1.isArrayStrict)(itemCopy.metadata?.tags)&&(newItem.metadata={tags:itemCopy.metadata.tags.map(t=>({id:(0,string_js_1.isString)(t.sys?.id)?t.sys.id:""}))}),(0,object_js_1.isObjectStrict)(itemCopy.fields)){const fields=itemCopy.fields,file=fields.file;if((0,object_js_1.isObjectStrict)(file))return Object.assign(normalizeFile(file,fields),newItem);(0,objectUtils_js_1.getObjectKeys)(fields).forEach(prop=>{const field=fields[prop];if("content"!==prop||!isInternalLink)if((0,object_js_1.isObjectStrict)(field))if("document"===field.nodeType){const{content:content}=field;(0,array_js_1.isArrayStrict)(content)&&(newItem[prop]=content.map(c=>(0,object_js_1.isObjectStrict)(c)?normalizeItem(c,data,isInternalLink):c))}else newItem[prop]=normalizeItem(field,data,"internalLink"===prop);else(0,array_js_1.isArrayStrict)(field)?newItem[prop]=field.map(f=>(0,object_js_1.isObjectStrict)(f)?normalizeItem(f,data,isInternalLink):f):newItem[prop]=field})}if((0,string_js_1.isString)(itemCopy.nodeType)){const nodeType=itemCopy.nodeType;if("embedded-entry-block"===nodeType||"embedded-asset-block"===nodeType){const content=(0,object_js_1.isObjectStrict)(itemCopy.data?.target)?itemCopy.data.target:{};newItem=normalizeItem(content,data,isInternalLink)}else newItem.renderType="richText",newItem.tag=getTag(itemCopy.nodeType),(0,string_js_1.isString)(itemCopy.content)&&(newItem.content=itemCopy.content),(0,array_js_1.isArrayStrict)(itemCopy.content)&&(newItem.content=normalizeRichText(itemCopy.content))}return newItem},normalizeContentfulData=(data,_newData=[])=>(0,array_js_1.isArrayStrict)(data)?(data.forEach(item=>{(0,object_js_1.isObjectStrict)(item)&&_newData.push(normalizeItem(item,_newData))}),_newData):[];exports.normalizeContentfulData=normalizeContentfulData;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.normalizeContentfulData=void 0;const contentType_js_1=require("../utils/contentType/contentType.js"),array_js_1=require("../utils/array/array.js"),object_js_1=require("../utils/object/object.js"),string_js_1=require("../utils/string/string.js"),objectUtils_js_1=require("../utils/object/objectUtils.js"),number_js_1=require("../utils/number/number.js"),config_js_1=require("../config/config.js"),getTag=(type="text")=>({br:"br",hr:"hr",paragraph:"p",blockquote:"blockquote",bold:"b",italic:"i",underline:"u",superscript:"sup",subscript:"sub",code:"code",hyperlink:"a","entry-hyperlink":"a","asset-hyperlink":"a","heading-1":"h1","heading-2":"h2","heading-3":"h3","heading-4":"h4","heading-5":"h5","heading-6":"h6","list-item":"li","unordered-list":"ul","ordered-list":"ol",table:"table","table-row":"tr","table-cell":"td","table-header-cell":"th"}[type]||""),normalizeRichText=items=>{const newItems=[];return items.forEach(item=>{if(!(0,object_js_1.isObjectStrict)(item))return;const{nodeType:nodeType,data:data,value:value,marks:marks,content:content}=item,tag=getTag(nodeType);let contentValue,link,internalLink;if((0,string_js_1.isStringStrict)(value)&&(contentValue=value,contentValue=contentValue.replace(/\n/g,"<br>"),(0,array_js_1.isArrayStrict)(marks))){const markTags=marks.map(m=>getTag(m.type));contentValue=`${markTags.map(m=>`<${m}>`).join("")}${value}${markTags.map(m=>`</${m}>`).join("")}`}if((0,string_js_1.isStringStrict)(content)&&(contentValue=content),(0,array_js_1.isArrayStrict)(content)&&(contentValue=normalizeRichText(content)),(0,object_js_1.isObjectStrict)(data)&&(link=(0,string_js_1.isString)(data.uri)?data.uri:"",(0,object_js_1.isObjectStrict)(data.target))){const target=data.target;"entry-hyperlink"!==nodeType&&"embedded-entry-inline"!==nodeType||(internalLink=target);const url=target.fields?.file?.url;"asset-hyperlink"===nodeType&&(0,string_js_1.isString)(url)&&(link=`https:${url}`)}if(!contentValue)return;const newItem={content:contentValue};return(0,string_js_1.isStringStrict)(tag)&&(newItem.tag=tag),(0,string_js_1.isStringStrict)(link)&&(newItem.link=link),(0,object_js_1.isObjectStrict)(internalLink)&&(newItem.internalLink=normalizeItem(internalLink,[],!0)),newItems.push(newItem)}),newItems},normalizeFile=(file,fields)=>{const type=(0,string_js_1.isString)(file.contentType)?file.contentType:"",format=type?type.split("/")[1]:"";return{url:(0,string_js_1.isString)(file.url)?`https:${file.url}`:"",name:(0,string_js_1.isString)(file.fileName)?file.fileName:"",alt:(0,string_js_1.isString)(fields.description)?fields.description:"",width:(0,number_js_1.isNumber)(file.details?.image?.width)?file.details.image.width:0,height:(0,number_js_1.isNumber)(file.details?.image?.height)?file.details.image.height:0,size:(0,number_js_1.isNumber)(file.details?.size)?file.details.size:0,format:"jpeg"===format?"jpg":format,type:type}},normalizeItem=(item,data,isInternalLink=!1)=>{let newItem={};const itemCopy={...item};(0,string_js_1.isString)(itemCopy.sys?.id)&&(newItem.id=itemCopy.sys.id),(0,string_js_1.isStringStrict)(itemCopy.sys?.locale)&&(newItem.locale=itemCopy.sys.locale);let type="";if((0,string_js_1.isString)(itemCopy.sys?.type)&&(type=itemCopy.sys.type),(0,string_js_1.isString)(itemCopy.sys?.contentType?.sys?.id)&&(type=itemCopy.sys.contentType.sys.id),type&&"Link"!==type&&(newItem.contentType=(0,contentType_js_1.normalizeContentType)(type),(0,string_js_1.isString)(config_js_1.config.renderTypes[type])&&(newItem.renderType=config_js_1.config.renderTypes[type])),(0,array_js_1.isArrayStrict)(itemCopy.metadata?.tags)&&(newItem.metadata={tags:itemCopy.metadata.tags.map(t=>({id:(0,string_js_1.isString)(t.sys?.id)?t.sys.id:""}))}),(0,object_js_1.isObjectStrict)(itemCopy.fields)){const fields=itemCopy.fields,file=fields.file;if((0,object_js_1.isObjectStrict)(file))return{...normalizeFile(file,fields),...newItem};(0,objectUtils_js_1.getObjectKeys)(fields).forEach(prop=>{const field=fields[prop];if("content"!==prop||!isInternalLink)if((0,object_js_1.isObjectStrict)(field))if("document"===field.nodeType){const{content:content}=field;(0,array_js_1.isArrayStrict)(content)&&(newItem[prop]=content.map(c=>(0,object_js_1.isObjectStrict)(c)?normalizeItem(c,data,isInternalLink):c))}else newItem[prop]=normalizeItem(field,data,"internalLink"===prop);else(0,array_js_1.isArrayStrict)(field)?newItem[prop]=field.map(f=>(0,object_js_1.isObjectStrict)(f)?normalizeItem(f,data,isInternalLink):f):newItem[prop]=field})}if((0,string_js_1.isString)(itemCopy.nodeType)){const nodeType=itemCopy.nodeType;if("embedded-entry-block"===nodeType||"embedded-asset-block"===nodeType){const content=(0,object_js_1.isObjectStrict)(itemCopy.data?.target)?itemCopy.data.target:{};newItem=normalizeItem(content,data,isInternalLink)}else newItem.renderType="richText",newItem.tag=getTag(itemCopy.nodeType),(0,string_js_1.isString)(itemCopy.content)&&(newItem.content=itemCopy.content),(0,array_js_1.isArrayStrict)(itemCopy.content)&&(newItem.content=normalizeRichText(itemCopy.content))}return newItem},normalizeContentfulData=(data,_newData=[])=>(0,array_js_1.isArrayStrict)(data)?(data.forEach(item=>{(0,object_js_1.isObjectStrict)(item)&&_newData.push(normalizeItem(item,_newData))}),_newData):[];exports.normalizeContentfulData=normalizeContentfulData;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.setFilters=exports.resetFilters=exports.applyFilters=exports.removeFilter=exports.addFilter=exports.filters=void 0;const set_js_1=require("../utils/set/set.js"),string_js_1=require("../utils/string/string.js"),object_js_1=require("../utils/object/object.js"),function_js_1=require("../utils/function/function.js");let filters=new Map([["columnProps",new Set],["containerProps",new Set],["formOptionProps",new Set],["formFieldProps",new Set],["formProps",new Set],["richTextProps",new Set],["richTextOutput",new Set],["richTextContentItem",new Set],["richTextContent",new Set],["richTextContentOutput",new Set],["renderItem",new Set],["renderItemData",new Set],["renderContent",new Set],["serverlessResult",new Set],["contactResult",new Set],["cacheData",new Set],["storeData",new Set],["contentfulData",new Set],["wordpressData",new Set],["localData",new Set],["allData",new Set],["slugParts",new Set],["slug",new Set]]);exports.filters=filters;const addFilter=(name,filter)=>!(!(0,string_js_1.isStringStrict)(name)||!(0,function_js_1.isFunction)(filter))&&((0,set_js_1.isSet)(filters.get(name))||filters.set(name,new Set),filters.get(name)?.add(filter),!0);exports.addFilter=addFilter;const removeFilter=(name,filter)=>{if(!(0,string_js_1.isStringStrict)(name)||!(0,function_js_1.isFunction)(filter))return!1;const filterSet=filters.get(name);return!!(0,set_js_1.isSet)(filterSet)&&filterSet.delete(filter)};exports.removeFilter=removeFilter;const applySequentially=async(callbacks,value,args)=>{for(const callback of callbacks)value=await callback(value,args);return value},applyFilters=(name,value,args,isAsync=!1)=>{const filterSet=filters.get(name);if(!(0,set_js_1.isSetStrict)(filterSet))return value;const callbacks=[];for(const callback of filterSet.values())isAsync?callbacks.push(callback):value=callback(value,args);return isAsync?applySequentially(callbacks,value,args).then(newValue=>newValue).catch(()=>value):value};exports.applyFilters=applyFilters;const resetFilters=()=>{exports.filters=filters=new Map([["columnProps",new Set],["containerProps",new Set],["formOptionProps",new Set],["formFieldProps",new Set],["formProps",new Set],["richTextProps",new Set],["richTextOutput",new Set],["richTextContentItem",new Set],["richTextContent",new Set],["richTextContentOutput",new Set],["renderItem",new Set],["renderItemData",new Set],["renderContent",new Set],["serverlessResult",new Set],["contactResult",new Set],["cacheData",new Set],["storeData",new Set],["contentfulData",new Set],["wordpressData",new Set],["localData",new Set],["allData",new Set],["slugParts",new Set],["slug",new Set]])};exports.resetFilters=resetFilters;const setFilters=args=>{if(!(0,object_js_1.isObjectStrict)(args))return!1;const newFilters=Object.entries(args);return!!newFilters.length&&(resetFilters(),newFilters.forEach(([name,filter])=>{filter&&addFilter(name,filter)}),!0)};exports.setFilters=setFilters;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.setFilters=exports.resetFilters=exports.applyFilters=exports.removeFilter=exports.addFilter=exports.filters=void 0;const set_js_1=require("../utils/set/set.js"),string_js_1=require("../utils/string/string.js"),object_js_1=require("../utils/object/object.js"),function_js_1=require("../utils/function/function.js");let filters=new Map([["columnProps",new Set],["containerProps",new Set],["formOptionProps",new Set],["formFieldProps",new Set],["formProps",new Set],["richTextProps",new Set],["richTextOutput",new Set],["richTextContentItem",new Set],["richTextContent",new Set],["richTextContentOutput",new Set],["renderItem",new Set],["renderItemData",new Set],["renderContent",new Set],["serverlessResult",new Set],["contactResult",new Set],["cacheData",new Set],["storeData",new Set],["contentfulData",new Set],["wordpressData",new Set],["localData",new Set],["allData",new Set],["slugParts",new Set],["slug",new Set]]);exports.filters=filters;const addFilter=(name,filter)=>!(!(0,string_js_1.isStringStrict)(name)||!(0,function_js_1.isFunction)(filter))&&((0,set_js_1.isSet)(filters.get(name))||filters.set(name,new Set),filters.get(name)?.add(filter),!0);exports.addFilter=addFilter;const removeFilter=(name,filter)=>{if(!(0,string_js_1.isStringStrict)(name)||!(0,function_js_1.isFunction)(filter))return!1;const filterSet=filters.get(name);return!!(0,set_js_1.isSet)(filterSet)&&filterSet.delete(filter)};exports.removeFilter=removeFilter;const applySequentially=async(callbacks,value,args)=>{for(const callback of callbacks)value=await callback(value,args);return value},applyFilters=(name,value,args,isAsync=!1)=>{const filterSet=filters.get(name);if(!(0,set_js_1.isSetStrict)(filterSet))return value;const callbacks=[];for(const callback of filterSet.values())isAsync?callbacks.push(callback):value=callback(value,args);return isAsync?applySequentially(callbacks,value,args).then(newValue=>newValue):value};exports.applyFilters=applyFilters;const resetFilters=()=>{exports.filters=filters=new Map([["columnProps",new Set],["containerProps",new Set],["formOptionProps",new Set],["formFieldProps",new Set],["formProps",new Set],["richTextProps",new Set],["richTextOutput",new Set],["richTextContentItem",new Set],["richTextContent",new Set],["richTextContentOutput",new Set],["renderItem",new Set],["renderItemData",new Set],["renderContent",new Set],["serverlessResult",new Set],["contactResult",new Set],["cacheData",new Set],["storeData",new Set],["contentfulData",new Set],["wordpressData",new Set],["localData",new Set],["allData",new Set],["slugParts",new Set],["slug",new Set]])};exports.resetFilters=resetFilters;const setFilters=args=>{if(!(0,object_js_1.isObjectStrict)(args))return!1;const newFilters=Object.entries(args);return!!newFilters.length&&(resetFilters(),newFilters.forEach(([name,filter])=>{filter&&addFilter(name,filter)}),!0)};exports.setFilters=setFilters;
@@ -5,7 +5,7 @@ export interface Taxonomy {
5
5
  slug?: string;
6
6
  link?: string;
7
7
  isPage?: boolean;
8
- usePrimaryContentTypeSlug?: boolean;
8
+ useContentTypeSlug?: boolean;
9
9
  }
10
10
  export interface InternalLink extends Generic {
11
11
  id?: string;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getAllLocalData=exports.getLocalData=void 0;const promises_1=require("node:fs/promises"),node_path_1=require("node:path"),object_js_1=require("../utils/object/object.js"),string_js_1=require("../utils/string/string.js"),filters_js_1=require("../filters/filters.js"),json_js_1=require("../utils/json/json.js"),config_js_1=require("../config/config.js"),localDataNormal_js_1=require("./localDataNormal.js"),getLocalData=async args=>{if(!(0,object_js_1.isObjectStrict)(args))throw new Error("No args");const{key:key,refProps:refProps,imageProps:imageProps,unsetProps:unsetProps}=args;if(!(0,string_js_1.isStringStrict)(key))throw new Error("No key");if(config_js_1.config.env.cache){const cacheDataFilterArgs={key:key,type:"get"},cacheData=await(0,filters_js_1.applyFilters)("cacheData",void 0,cacheDataFilterArgs,!0),cacheItems=cacheData?.data;if((0,object_js_1.isObject)(cacheItems))return structuredClone(cacheItems)}const dir=config_js_1.config.local.dir,data={};let hasData=!1;const files=await(0,promises_1.readdir)((0,node_path_1.resolve)(dir));for(const file of files){const fileExt=(0,node_path_1.extname)(file),fileName=(0,node_path_1.basename)(file,fileExt);if(".json"!==fileExt)continue;const fileContents=await(0,promises_1.readFile)((0,node_path_1.resolve)(dir,file),{encoding:"utf8"}),fileJson=(0,json_js_1.getJson)(fileContents);fileJson&&(data[fileName]=fileJson,hasData=!0)}if(!hasData)throw new Error("No data");const newData=(0,localDataNormal_js_1.normalizeLocalData)(data,refProps,imageProps,unsetProps);if(config_js_1.config.env.cache){const cacheDataFilterArgs={key:key,type:"set",data:data};await(0,filters_js_1.applyFilters)("cacheData",{data:newData},cacheDataFilterArgs,!0)}return newData};exports.getLocalData=getLocalData;const getAllLocalData=async args=>{const data=await getLocalData({key:"all_file_data",refProps:args?.refProps,imageProps:args?.imageProps,unsetProps:args?.unsetProps});let allData={navigationItem:[],navigation:[],content:{page:[]}};for(const[,value]of Object.entries(data)){const{contentType:contentType}=value;if(!(0,string_js_1.isStringStrict)(contentType))continue;const isPartial=config_js_1.config.partialTypes.includes(contentType),isWhole=config_js_1.config.wholeTypes.includes(contentType);if(!isPartial&&!isWhole)continue;const val=(0,filters_js_1.applyFilters)("localData",value);isPartial&&(null==allData[contentType]&&(allData[contentType]=[]),allData[contentType].push(val)),isWhole&&(null==allData.content[contentType]&&(allData.content[contentType]=[]),allData.content[contentType].push(val))}return allData=(0,filters_js_1.applyFilters)("allData",allData,{type:"local"}),allData};exports.getAllLocalData=getAllLocalData;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getAllLocalData=exports.getLocalData=void 0;const promises_1=require("node:fs/promises"),node_path_1=require("node:path"),object_js_1=require("../utils/object/object.js"),string_js_1=require("../utils/string/string.js"),filters_js_1=require("../filters/filters.js"),json_js_1=require("../utils/json/json.js"),config_js_1=require("../config/config.js"),localDataNormal_js_1=require("./localDataNormal.js"),getLocalData=async args=>{if(!(0,object_js_1.isObjectStrict)(args))throw new Error("No args");const{key:key,refProps:refProps,imageProps:imageProps,unsetProps:unsetProps}=args;if(!(0,string_js_1.isStringStrict)(key))throw new Error("No key");if(config_js_1.config.env.cache){const cacheDataFilterArgs={key:key,type:"get"},cacheData=await(0,filters_js_1.applyFilters)("cacheData",void 0,cacheDataFilterArgs,!0),cacheItems=cacheData?.data;if((0,object_js_1.isObject)(cacheItems))return structuredClone(cacheItems)}const dir=config_js_1.config.local.dir,data={};let hasData=!1;const files=await(0,promises_1.readdir)((0,node_path_1.resolve)(dir));for(const file of files){const fileExt=(0,node_path_1.extname)(file),fileName=(0,node_path_1.basename)(file,fileExt);if(".json"!==fileExt)continue;const fileContents=await(0,promises_1.readFile)((0,node_path_1.resolve)(dir,file),{encoding:"utf8"});data[fileName]=(0,json_js_1.getJson)(fileContents),hasData=!0}if(!hasData)throw new Error("No data");const newData=(0,localDataNormal_js_1.normalizeLocalData)(data,refProps,imageProps,unsetProps);if(config_js_1.config.env.cache){const cacheDataFilterArgs={key:key,type:"set",data:data};await(0,filters_js_1.applyFilters)("cacheData",{data:newData},cacheDataFilterArgs,!0)}return newData};exports.getLocalData=getLocalData;const getAllLocalData=async args=>{const data=await getLocalData({key:"all_file_data",refProps:args?.refProps,imageProps:args?.imageProps,unsetProps:args?.unsetProps});let allData={navigationItem:[],navigation:[],content:{page:[]}};for(const[,value]of Object.entries(data)){const{contentType:contentType}=value;if(!(0,string_js_1.isStringStrict)(contentType))continue;const isPartial=config_js_1.config.partialTypes.includes(contentType),isWhole=config_js_1.config.wholeTypes.includes(contentType);if(!isPartial&&!isWhole)continue;const val=(0,filters_js_1.applyFilters)("localData",value);isPartial&&(null==allData[contentType]&&(allData[contentType]=[]),allData[contentType].push(val)),isWhole&&(null==allData.content[contentType]&&(allData.content[contentType]=[]),allData.content[contentType].push(val))}return allData=(0,filters_js_1.applyFilters)("allData",allData,{type:"local"}),allData};exports.getAllLocalData=getAllLocalData;
@@ -1,4 +1,4 @@
1
- import type { RenderContentArgs, RenderItemArgs, RenderItemReturn, RenderArgs, RenderReturn, RenderFunctions, RenderLayout, RenderHttpError, RenderNavigation, RenderFunctionsArgs } from './renderTypes.js';
1
+ import type { RenderContentArgs, RenderItem, RenderItemArgs, RenderItemReturn, RenderArgs, RenderReturn, RenderFunctions, RenderLayout, RenderHttpError, RenderNavigation, RenderFunctionsArgs, RenderMeta } from './renderTypes.js';
2
2
  import type { RefString } from '../global/globalTypes.js';
3
3
  declare let renderFunctions: RenderFunctions;
4
4
  declare let renderLayout: RenderLayout;
@@ -6,6 +6,7 @@ declare let renderHttpError: RenderHttpError;
6
6
  declare let renderNavigation: RenderNavigation;
7
7
  declare const setRenderFunctions: (args: RenderFunctionsArgs) => boolean;
8
8
  declare const renderContent: (args: RenderContentArgs, _html?: RefString) => Promise<string>;
9
+ declare const renderMeta: (item: RenderItem) => RenderMeta;
9
10
  declare const renderItem: (args: RenderItemArgs, _contentType?: string) => Promise<RenderItemReturn | null>;
10
11
  declare const render: (args: RenderArgs) => Promise<RenderReturn[] | RenderReturn>;
11
- export { render, renderItem, renderContent, renderFunctions, renderLayout, renderNavigation, renderHttpError, setRenderFunctions };
12
+ export { render, renderItem, renderMeta, renderContent, renderFunctions, renderLayout, renderNavigation, renderHttpError, setRenderFunctions };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.setRenderFunctions=exports.renderHttpError=exports.renderNavigation=exports.renderLayout=exports.renderFunctions=exports.renderContent=exports.renderItem=exports.render=void 0;const actions_js_1=require("../actions/actions.js"),filters_js_1=require("../filters/filters.js"),link_js_1=require("../utils/link/link.js"),string_js_1=require("../utils/string/string.js"),array_js_1=require("../utils/array/array.js"),object_js_1=require("../utils/object/object.js"),function_js_1=require("../utils/function/function.js"),shortcodes_js_1=require("../shortcodes/shortcodes.js"),tag_js_1=require("../utils/tag/tag.js"),store_js_1=require("../store/store.js"),redirects_js_1=require("../redirects/redirects.js"),scripts_js_1=require("../scripts/scripts.js"),config_js_1=require("../config/config.js");let renderFunctions={};exports.renderFunctions=renderFunctions;let renderLayout=()=>"";exports.renderLayout=renderLayout;let renderHttpError=()=>"";exports.renderHttpError=renderHttpError;let renderNavigation=()=>{};exports.renderNavigation=renderNavigation;const setRenderFunctions=args=>{if(!(0,object_js_1.isObjectStrict)(args))return!1;const{functions:functions,layout:layout,navigation:navigation,httpError:httpError}=args;return!(!(0,object_js_1.isObjectStrict)(functions)||!(0,function_js_1.isFunction)(layout))&&(exports.renderFunctions=renderFunctions={...functions},exports.renderLayout=renderLayout=layout,(0,function_js_1.isFunction)(navigation)&&(exports.renderNavigation=renderNavigation=navigation),(0,function_js_1.isFunction)(httpError)&&(exports.renderHttpError=renderHttpError=httpError),!0)};exports.setRenderFunctions=setRenderFunctions;const getContentTemplate=(content,templates=[],named=!1)=>{if(!(0,array_js_1.isArrayStrict)(content))return{content:[],namedContent:{},templates:[]};const namedContent={},newContent=content.map(c=>(named&&(0,string_js_1.isString)(c.name)&&(namedContent[c.name]={...c}),(0,tag_js_1.tagExists)(c,"template")?(templates.push({...c}),{metadata:{tags:[{id:"templateBreak"}]}}):c));return{namedContent:namedContent,content:newContent,templates:structuredClone(templates)}},mapContentTemplate=(templates,content=[],namedContent={},named=!1)=>{if(!(0,array_js_1.isArrayStrict)(templates))return templates;const lastTemplateIndex=templates.length-1;return templates.forEach((t,i)=>{content[0]&&(0,tag_js_1.tagExists)(content[0],"templateBreak")&&content.length>=1&&content.shift();if((0,tag_js_1.tagExists)(t,"templateOptional")&&i===lastTemplateIndex&&!content.length)return void templates.pop();const isSlot=(0,tag_js_1.tagExists)(t,"templateSlot");let children=t.content;if((0,array_js_1.isArrayStrict)(children)&&!isSlot&&!named){let repeat;const newChildren=[...children],repeatIndex=children.findIndex(c=>{const isRepeat=(0,tag_js_1.tagExists)(c,"templateRepeat");return isRepeat&&(repeat=c),isRepeat});if(-1!==repeatIndex&&repeat){let breakIndex=content.findIndex(c=>(0,tag_js_1.tagExists)(c,"templateBreak"));breakIndex=-1===breakIndex?content.length:breakIndex;let insertIndex=repeatIndex;for(let j=insertIndex;j<breakIndex-1;j+=1)newChildren.splice(insertIndex,0,structuredClone(repeat)),insertIndex=j}children=newChildren}if(isSlot&&content.length>=1){let fill=null;return fill=named?namedContent[t.name]:content.shift(),void(fill&&(templates[i]=fill))}(0,array_js_1.isArray)(children)&&templates[i]&&(templates[i].content=mapContentTemplate(children,content,namedContent,named))}),templates},renderContent=async(args,_html={ref:""})=>{if(!(0,object_js_1.isObjectStrict)(args))return _html.ref;const{content:content=[],serverlessData:serverlessData,previewData:previewData,itemData:itemData,itemContains:itemContains=new Set,itemHeadings:itemHeadings=[],parents:parents=[],depth:depth=0}=args;let{headingsIndex:headingsIndex=-1}=args;if(!(0,array_js_1.isArrayStrict)(content))return _html.ref;for(const item of content){if(!(0,object_js_1.isObjectStrict)(item))continue;const props={...item},renderType=(0,string_js_1.isString)(props.renderType)?props.renderType:"",isRichText="richText"===renderType;let childrenArr,children=props.content;if("contentTemplate"===renderType){const isNamed=(0,tag_js_1.tagExists)(item,"templateNamed"),template=getContentTemplate((0,array_js_1.isArray)(props.content)?props.content:[],[],isNamed);children=mapContentTemplate(template.templates,template.content,template.namedContent,isNamed)}let childrenStr="";(0,array_js_1.isArrayStrict)(children)&&!isRichText&&(childrenArr=children),(0,string_js_1.isStringStrict)(children)&&!isRichText&&(childrenStr=children),"content"===renderType&&0===depth&&(headingsIndex=itemHeadings.push([])-1);let renderStart="",renderEnd="",filterType="",filterArgs={};const renderFunction=renderFunctions[renderType];if((0,function_js_1.isFunction)(renderFunction)){childrenArr&&(props.content=void 0);const renderArgs={args:props,parents:parents,itemData:itemData,itemContains:itemContains,serverlessData:serverlessData,previewData:previewData};childrenArr&&(renderArgs.children=childrenArr),"richText"===renderType&&(renderArgs.headings=itemHeadings[headingsIndex]);const renderOutput=await renderFunction(renderArgs);if((0,array_js_1.isArrayStrict)(renderOutput)){const[start,end]=renderOutput;(0,string_js_1.isString)(start)&&(renderStart=start),(0,string_js_1.isString)(end)&&(renderEnd=end)}(0,string_js_1.isString)(renderOutput)&&(renderStart=renderOutput,childrenArr=void 0),itemContains.add(renderType),filterType=renderType,filterArgs={...props,content:void 0}}const renderContentFilterArgs={renderType:filterType,args:filterArgs},[filterRenderStart,filterRenderEnd]=await(0,filters_js_1.applyFilters)("renderContent",[renderStart,renderEnd],renderContentFilterArgs,!0);if(renderStart=filterRenderStart,renderEnd=filterRenderEnd,_html.ref+=renderStart+childrenStr,childrenArr){const parentsCopy=[...parents];renderType&&parentsCopy.unshift({renderType:renderType,args:{...props,content:void 0,parents:void 0}}),await renderContent({content:childrenArr,serverlessData:serverlessData,previewData:previewData,parents:parentsCopy,itemData:itemData,itemContains:itemContains,itemHeadings:itemHeadings,headingsIndex:headingsIndex,depth:depth+1},_html)}_html.ref+=renderEnd}return _html.ref};exports.renderContent=renderContent;const renderItem=async(args,_contentType)=>{if(!(0,object_js_1.isObjectStrict)(args))return null;const{item:item,serverlessData:serverlessData,previewData:previewData}=args;if(!(0,object_js_1.isObjectStrict)(item))return null;const contentType=item.contentType;if(!(0,string_js_1.isStringStrict)(contentType))return null;if("taxonomy"===contentType&&!0!==item.isPage)return null;const id=item.id;if(!(0,string_js_1.isStringStrict)(id))return null;if(!(0,string_js_1.isStringStrict)(item.slug))return null;let serverlessRender=!1;const itemContains=new Set,itemHeadings=[];scripts_js_1.scripts.deps.clear(),scripts_js_1.scripts.item.clear(),scripts_js_1.scripts.meta={},scripts_js_1.styles.deps.clear(),scripts_js_1.styles.item.clear();const renderItemStartArgs={id:id,itemData:{...item},contentType:contentType,itemContains:new Set,itemHeadings:[],serverlessData:serverlessData,previewData:previewData};await(0,actions_js_1.doActions)("renderItemStart",renderItemStartArgs,!0);const title=item.title,meta={title:"",description:"",url:"",image:"",canonical:"",prev:"",next:"",index:!0,isIndex:!1,...item.meta};(0,string_js_1.isStringStrict)(item.metaTitle)&&(meta.title=item.metaTitle),(0,string_js_1.isStringStrict)(item.metaDescription)&&(meta.description=item.metaDescription),(0,string_js_1.isStringStrict)(item.metaImage?.url)&&(meta.image=item.metaImage.url),!(0,string_js_1.isStringStrict)(meta.title)&&(0,string_js_1.isStringStrict)(title)&&(meta.title=title);const slugArgs={id:id,contentType:contentType,slug:item.slug,returnParents:!0,itemData:item,page:0},s=(0,link_js_1.getSlug)(slugArgs,!0),slug=s.slug,slugIsHtml=slug.endsWith(".html"),permalink=(0,link_js_1.getPermalink)(slug,!slugIsHtml),parents=s.parents;meta.url=permalink,meta.canonical=permalink;const taxonomy="term"===contentType?item.taxonomy:"taxonomy"===contentType?item:null;item.baseUrl=permalink,item.baseType=(0,object_js_1.isObjectStrict)(taxonomy)&&(0,array_js_1.isArrayStrict)(taxonomy.contentTypes)?taxonomy.contentTypes:contentType;let formattedSlug="index"!==slug&&""!==slug?`/${slug}/`:"/";slugIsHtml&&(formattedSlug=slug);const index="index"===item.slug;let itemServerlessData;if(meta.isIndex=index,(0,object_js_1.isObjectStrict)(serverlessData)){if(!(serverlessData.path===formattedSlug&&null!=serverlessData.query))return{serverlessRender:!1};itemServerlessData=serverlessData}const itemData={...item};itemData.id=id,itemData.parents=parents,itemData.content=void 0;let contentOutput="";const contentData=item.content;(0,string_js_1.isStringStrict)(contentData)&&(contentOutput=contentData),(0,array_js_1.isArrayStrict)(contentData)&&(contentOutput=await renderContent({content:contentData,serverlessData:itemServerlessData,parents:[],itemData:itemData,itemContains:itemContains,itemHeadings:itemHeadings,previewData:previewData})),contentOutput=await(0,shortcodes_js_1.doShortcodes)(contentOutput,itemData);const pag=itemData.pagination;if((0,object_js_1.isObjectStrict)(pag)){const{currentParams:currentParams,prevParams:prevParams,nextParams:nextParams}=pag,currentParamsStr=new URLSearchParams(currentParams).toString();if(currentParamsStr&&(meta.canonicalParams=`?${currentParamsStr}`),(0,string_js_1.isStringStrict)(pag.title)&&(meta.paginationTitle=pag.title),pag.prev){const prevSlugArgs={...slugArgs,params:prevParams},p=(0,link_js_1.getSlug)(prevSlugArgs,!0);meta.prev=(0,link_js_1.getPermalink)(p.slug,1===pag.prev&&!prevParams)}if(pag.next){const nextSlugArgs={...slugArgs,params:nextParams},n=(0,link_js_1.getSlug)(nextSlugArgs,!0);meta.next=(0,link_js_1.getPermalink)(n.slug,!1)}serverlessRender=!0}const cmsLocales=config_js_1.config.cms.locales,slugData=[id,(0,string_js_1.isStringStrict)(_contentType)?_contentType:contentType];if((0,string_js_1.isStringStrict)(item.locale)&&cmsLocales){const locale=item.locale;cmsLocales.includes(locale)&&locale!==cmsLocales[0]&&slugData.push(locale)}(config_js_1.config.env.dev||config_js_1.config.env.prod&&serverlessRender)&&(0,store_js_1.setStoreItem)("slugs",slugData,slugIsHtml?`/${slug}`:formattedSlug);const layoutArgs={id:id,meta:meta,contentType:contentType,content:contentOutput,slug:formattedSlug,itemContains:itemContains,itemHeadings:itemHeadings,itemData:itemData,serverlessData:serverlessData,previewData:previewData};let layoutOutput=await renderLayout(layoutArgs);const renderItemFilterArgs={id:id,contentType:contentType,slug:formattedSlug,output:layoutOutput,itemData:itemData,itemContains:itemContains,itemHeadings:itemHeadings,serverlessData:serverlessData,previewData:previewData};layoutOutput=await(0,filters_js_1.applyFilters)("renderItem",layoutOutput,renderItemFilterArgs,!0);const renderItemEndArgs={id:id,contentType:contentType,slug:formattedSlug,output:layoutOutput,itemData:itemData,itemContains:itemContains,itemHeadings:itemHeadings,serverlessData:serverlessData,previewData:previewData};return await(0,actions_js_1.doActions)("renderItemEnd",renderItemEndArgs,!0),{serverlessRender:serverlessRender,itemData:itemData,data:{slug:formattedSlug,output:layoutOutput}}};exports.renderItem=renderItem;const render=async args=>{if(!(0,object_js_1.isObjectStrict)(args))return[];const{allData:allData,serverlessData:serverlessData,previewData:previewData}=args,isServerless=null!=serverlessData,isPreview=null!=previewData;if(scripts_js_1.scripts.deps.clear(),scripts_js_1.scripts.item.clear(),scripts_js_1.scripts.meta={},scripts_js_1.styles.deps.clear(),scripts_js_1.styles.item.clear(),!(0,object_js_1.isObjectStrict)(allData))return[];const{redirect:redirect,content:content}=allData;await(0,actions_js_1.doActions)("renderStart",args,!0);const data=[];isServerless||(0,store_js_1.setStoreData)(allData),await renderNavigation({navigations:(0,store_js_1.getStoreItem)("navigations"),items:(0,store_js_1.getStoreItem)("navigationItems")}),(0,redirects_js_1.setRedirects)(redirect);for(const[contentType,contentItems]of Object.entries(content))if((0,array_js_1.isArrayStrict)(contentItems))for(const contentItem of contentItems){const item=await renderItem({item:await(0,filters_js_1.applyFilters)("renderItemData",contentItem,{contentType:contentType},!0),serverlessData:serverlessData,previewData:previewData},contentType);if(!item)continue;const{serverlessRender:serverlessRender=!1,data:itemData}=item;itemData&&(data.push(itemData),serverlessRender&&!isServerless&&(0,store_js_1.setStoreItem)("serverless",["reload"],itemData.slug))}const[outputItem]=data,output=(isServerless||isPreview)&&outputItem?outputItem:data;return await(0,actions_js_1.doActions)("renderEnd",{...args,data:output},!0),output};exports.render=render;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.setRenderFunctions=exports.renderHttpError=exports.renderNavigation=exports.renderLayout=exports.renderFunctions=exports.renderContent=exports.renderMeta=exports.renderItem=exports.render=void 0;const actions_js_1=require("../actions/actions.js"),filters_js_1=require("../filters/filters.js"),link_js_1=require("../utils/link/link.js"),string_js_1=require("../utils/string/string.js"),array_js_1=require("../utils/array/array.js"),object_js_1=require("../utils/object/object.js"),function_js_1=require("../utils/function/function.js"),shortcodes_js_1=require("../shortcodes/shortcodes.js"),tag_js_1=require("../utils/tag/tag.js"),store_js_1=require("../store/store.js"),redirects_js_1=require("../redirects/redirects.js"),scripts_js_1=require("../scripts/scripts.js"),config_js_1=require("../config/config.js");let renderFunctions={};exports.renderFunctions=renderFunctions;let renderLayout=()=>"";exports.renderLayout=renderLayout;let renderHttpError=()=>"";exports.renderHttpError=renderHttpError;let renderNavigation=()=>{};exports.renderNavigation=renderNavigation;const setRenderFunctions=args=>{if(!(0,object_js_1.isObjectStrict)(args))return!1;const{functions:functions,layout:layout,navigation:navigation,httpError:httpError}=args;return!(!(0,object_js_1.isObjectStrict)(functions)||!(0,function_js_1.isFunction)(layout))&&(exports.renderFunctions=renderFunctions={...functions},exports.renderLayout=renderLayout=layout,(0,function_js_1.isFunction)(navigation)&&(exports.renderNavigation=renderNavigation=navigation),(0,function_js_1.isFunction)(httpError)&&(exports.renderHttpError=renderHttpError=httpError),!0)};exports.setRenderFunctions=setRenderFunctions;const getContentTemplate=(content,templates=[],named=!1)=>{if(!(0,array_js_1.isArrayStrict)(content))return{content:[],namedContent:{},templates:[]};const namedContent={},newContent=content.map(c=>(named&&(0,string_js_1.isString)(c.name)&&(namedContent[c.name]={...c}),(0,tag_js_1.tagExists)(c,"template")?(templates.push({...c}),{metadata:{tags:[{id:"templateBreak"}]}}):c));return{namedContent:namedContent,content:newContent,templates:structuredClone(templates)}},mapContentTemplate=(templates,content=[],namedContent={},named=!1)=>{if(!(0,array_js_1.isArrayStrict)(templates))return templates;const lastTemplateIndex=templates.length-1;return templates.forEach((t,i)=>{content[0]&&(0,tag_js_1.tagExists)(content[0],"templateBreak")&&content.length>=1&&content.shift();if((0,tag_js_1.tagExists)(t,"templateOptional")&&i===lastTemplateIndex&&!content.length)return void templates.pop();const isSlot=(0,tag_js_1.tagExists)(t,"templateSlot");let children=t.content;if((0,array_js_1.isArrayStrict)(children)&&!isSlot&&!named){let repeat;const newChildren=[...children],repeatIndex=children.findIndex(c=>{const isRepeat=(0,tag_js_1.tagExists)(c,"templateRepeat");return isRepeat&&(repeat=c),isRepeat});if(-1!==repeatIndex&&repeat){let breakIndex=content.findIndex(c=>(0,tag_js_1.tagExists)(c,"templateBreak"));breakIndex=-1===breakIndex?content.length:breakIndex;let insertIndex=repeatIndex;for(let j=insertIndex;j<breakIndex-1;j+=1)newChildren.splice(insertIndex,0,structuredClone(repeat)),insertIndex=j}children=newChildren}if(isSlot&&content.length>=1){let fill=null;return fill=named?namedContent[t.name]:content.shift(),void(fill&&(templates[i]=fill))}(0,array_js_1.isArray)(children)&&templates[i]&&(templates[i].content=mapContentTemplate(children,content,namedContent,named))}),templates},renderContent=async(args,_html={ref:""})=>{if(!(0,object_js_1.isObjectStrict)(args))return _html.ref;const{content:content,serverlessData:serverlessData,previewData:previewData,itemData:itemData,itemContains:itemContains,itemHeadings:itemHeadings,parents:parents,depth:depth=0}=args;let{headingsIndex:headingsIndex=-1}=args;if(!(0,array_js_1.isArrayStrict)(content))return _html.ref;for(const item of content){if(!(0,object_js_1.isObjectStrict)(item))continue;const props={...item},renderType=(0,string_js_1.isString)(props.renderType)?props.renderType:"",isRichText="richText"===renderType;let childrenArr,children=props.content;if("contentTemplate"===renderType){const isNamed=(0,tag_js_1.tagExists)(item,"templateNamed"),template=getContentTemplate((0,array_js_1.isArray)(props.content)?props.content:[],[],isNamed);children=mapContentTemplate(template.templates,template.content,template.namedContent,isNamed)}let childrenStr="";(0,array_js_1.isArrayStrict)(children)&&!isRichText&&(childrenArr=children),(0,string_js_1.isStringStrict)(children)&&!isRichText&&(childrenStr=children),"content"===renderType&&0===depth&&(headingsIndex=itemHeadings.push([])-1);let renderStart="",renderEnd="",filterType="",filterArgs={};const renderFunction=renderFunctions[renderType];if((0,function_js_1.isFunction)(renderFunction)){childrenArr&&(props.content=void 0);const renderArgs={args:props,parents:parents,itemData:itemData,itemContains:itemContains,serverlessData:serverlessData,previewData:previewData};childrenArr&&(renderArgs.children=childrenArr),"richText"===renderType&&(renderArgs.headings=itemHeadings[headingsIndex]);const renderOutput=await renderFunction(renderArgs);if((0,array_js_1.isArrayStrict)(renderOutput)){const[start,end]=renderOutput;(0,string_js_1.isString)(start)&&(renderStart=start),(0,string_js_1.isString)(end)&&(renderEnd=end)}(0,string_js_1.isString)(renderOutput)&&(renderStart=renderOutput,childrenArr=void 0),itemContains.add(renderType),filterType=renderType,filterArgs={...props,content:void 0}}const renderContentFilterArgs={renderType:filterType,args:filterArgs},[filterRenderStart,filterRenderEnd]=await(0,filters_js_1.applyFilters)("renderContent",[renderStart,renderEnd],renderContentFilterArgs,!0);if(renderStart=filterRenderStart,renderEnd=filterRenderEnd,_html.ref+=renderStart+childrenStr,childrenArr){const parentsCopy=[...parents];renderType&&parentsCopy.unshift({renderType:renderType,args:{...props,content:void 0,parents:void 0}}),await renderContent({content:childrenArr,serverlessData:serverlessData,previewData:previewData,parents:parentsCopy,itemData:itemData,itemContains:itemContains,itemHeadings:itemHeadings,headingsIndex:headingsIndex,depth:depth+1},_html)}_html.ref+=renderEnd}return _html.ref};exports.renderContent=renderContent;const renderMeta=item=>{const{title:title,slug:slug,baseUrl:baseUrl,pagination:pagination}=item,meta={title:title,description:"",url:baseUrl,image:"",canonical:baseUrl,prev:"",next:"",index:!0,isIndex:"index"===slug,...item.meta};if((0,string_js_1.isStringStrict)(item.metaTitle)&&(meta.title=item.metaTitle),(0,string_js_1.isStringStrict)(item.metaDescription)&&(meta.description=item.metaDescription),(0,string_js_1.isStringStrict)(item.metaImage?.url)&&(meta.image=item.metaImage.url),!(0,object_js_1.isObjectStrict)(pagination))return meta;const{title:paginationTitle,prev:paginationPrev,next:paginationNext,currentParams:currentParams,prevParams:prevParams,nextParams:nextParams}=pagination,currentParamsStr=new URLSearchParams(currentParams).toString();if(currentParamsStr&&(meta.canonical=`${baseUrl}?${currentParamsStr}`),(0,string_js_1.isStringStrict)(paginationTitle)&&(meta.paginationTitle=paginationTitle),paginationPrev){const prevParamsStr=new URLSearchParams(prevParams).toString();meta.prev=`${baseUrl}${prevParamsStr?`?${prevParamsStr}`:""}`}if(paginationNext){const nextParamsStr=new URLSearchParams(nextParams).toString();meta.next=`${baseUrl}?${nextParamsStr}`}return meta};exports.renderMeta=renderMeta;const renderItem=async(args,_contentType)=>{if(!(0,object_js_1.isObjectStrict)(args))return null;const{item:item,serverlessData:serverlessData,previewData:previewData}=args;if(!(0,object_js_1.isObjectStrict)(item))return null;const contentType=item.contentType;if(!(0,string_js_1.isStringStrict)(contentType))return null;if("taxonomy"===contentType&&!0!==item.isPage)return null;const id=item.id;if(!(0,string_js_1.isStringStrict)(id))return null;if(!(0,string_js_1.isStringStrict)(item.slug))return null;let serverlessRender=!1;const itemContains=new Set,itemHeadings=[];scripts_js_1.scripts.deps.clear(),scripts_js_1.scripts.item.clear(),scripts_js_1.scripts.meta={},scripts_js_1.styles.deps.clear(),scripts_js_1.styles.item.clear();const renderItemStartArgs={id:id,itemData:{...item},contentType:contentType,itemContains:new Set,itemHeadings:[],serverlessData:serverlessData,previewData:previewData};await(0,actions_js_1.doActions)("renderItemStart",renderItemStartArgs,!0);const slugArgs={id:id,contentType:contentType,slug:item.slug,returnParents:!0,itemData:item,page:0},s=(0,link_js_1.getSlug)(slugArgs,!0),slug=s.slug,slugIsHtml=slug.endsWith(".html"),permalink=(0,link_js_1.getPermalink)(slug,!slugIsHtml),parents=s.parents,taxonomy="term"===contentType?item.taxonomy:"taxonomy"===contentType?item:null;item.baseUrl=permalink,item.baseType=(0,object_js_1.isObjectStrict)(taxonomy)&&(0,array_js_1.isArrayStrict)(taxonomy.contentTypes)?taxonomy.contentTypes:contentType;let itemServerlessData,formattedSlug="index"!==slug&&""!==slug?`/${slug}/`:"/";if(slugIsHtml&&(formattedSlug=slug),(0,object_js_1.isObjectStrict)(serverlessData)){if(!(serverlessData.path===formattedSlug&&null!=serverlessData.query))return{serverlessRender:!1};itemServerlessData=serverlessData}const itemData={...item};itemData.id=id,itemData.parents=parents,itemData.content=void 0;let contentOutput="";const contentData=item.content;(0,string_js_1.isStringStrict)(contentData)&&(contentOutput=contentData),(0,array_js_1.isArrayStrict)(contentData)&&(contentOutput=await renderContent({content:contentData,serverlessData:itemServerlessData,parents:[],itemData:itemData,itemContains:itemContains,itemHeadings:itemHeadings,previewData:previewData})),contentOutput=await(0,shortcodes_js_1.doShortcodes)(contentOutput,itemData),(0,object_js_1.isObjectStrict)(itemData.pagination)&&(serverlessRender=!0);const cmsLocales=config_js_1.config.cms.locales,slugData=[id,(0,string_js_1.isStringStrict)(_contentType)?_contentType:contentType];if((0,string_js_1.isStringStrict)(item.locale)&&cmsLocales){const locale=item.locale;cmsLocales.includes(locale)&&locale!==cmsLocales[0]&&slugData.push(locale)}(config_js_1.config.env.dev||config_js_1.config.env.prod&&serverlessRender)&&(0,store_js_1.setStoreItem)("slugs",slugData,slugIsHtml?`/${slug}`:formattedSlug);const layoutArgs={id:id,meta:renderMeta(itemData),contentType:contentType,content:contentOutput,slug:formattedSlug,itemContains:itemContains,itemHeadings:itemHeadings,itemData:itemData,serverlessData:serverlessData,previewData:previewData};let layoutOutput=await renderLayout(layoutArgs);const renderItemFilterArgs={id:id,contentType:contentType,slug:formattedSlug,output:layoutOutput,itemData:itemData,itemContains:itemContains,itemHeadings:itemHeadings,serverlessData:serverlessData,previewData:previewData};layoutOutput=await(0,filters_js_1.applyFilters)("renderItem",layoutOutput,renderItemFilterArgs,!0);const renderItemEndArgs={id:id,contentType:contentType,slug:formattedSlug,output:layoutOutput,itemData:itemData,itemContains:itemContains,itemHeadings:itemHeadings,serverlessData:serverlessData,previewData:previewData};return await(0,actions_js_1.doActions)("renderItemEnd",renderItemEndArgs,!0),{serverlessRender:serverlessRender,itemData:itemData,data:{slug:formattedSlug,output:layoutOutput}}};exports.renderItem=renderItem;const render=async args=>{if(!(0,object_js_1.isObjectStrict)(args))return[];const{allData:allData,serverlessData:serverlessData,previewData:previewData}=args,isServerless=null!=serverlessData,isPreview=null!=previewData;if(scripts_js_1.scripts.deps.clear(),scripts_js_1.scripts.item.clear(),scripts_js_1.scripts.meta={},scripts_js_1.styles.deps.clear(),scripts_js_1.styles.item.clear(),!(0,object_js_1.isObjectStrict)(allData))return[];const{redirect:redirect,content:content}=allData;await(0,actions_js_1.doActions)("renderStart",args,!0);const data=[];isServerless||(0,store_js_1.setStoreData)(allData),await renderNavigation({navigations:(0,store_js_1.getStoreItem)("navigations"),items:(0,store_js_1.getStoreItem)("navigationItems")}),(0,redirects_js_1.setRedirects)(redirect);for(const[contentType,contentItems]of Object.entries(content))if((0,array_js_1.isArrayStrict)(contentItems))for(const contentItem of contentItems){const item=await renderItem({item:await(0,filters_js_1.applyFilters)("renderItemData",contentItem,{contentType:contentType},!0),serverlessData:serverlessData,previewData:previewData},contentType);if(!item)continue;const{serverlessRender:serverlessRender=!1,data:itemData}=item;itemData&&(data.push(itemData),serverlessRender&&!isServerless&&(0,store_js_1.setStoreItem)("serverless",["reload"],itemData.slug))}const[outputItem]=data,output=(isServerless||isPreview)&&outputItem?outputItem:data;return await(0,actions_js_1.doActions)("renderEnd",{...args,data:output},!0),output};exports.render=render;
@@ -9,7 +9,6 @@ export interface RenderMeta {
9
9
  url?: string;
10
10
  image?: string;
11
11
  canonical?: string;
12
- canonicalParams?: string;
13
12
  prev?: string;
14
13
  next?: string;
15
14
  index?: boolean;
@@ -52,7 +51,7 @@ export interface RenderFile {
52
51
  type?: string;
53
52
  sizes?: Record<number, string>;
54
53
  }
55
- export interface RenderRichText {
54
+ export interface RenderRichText extends Generic {
56
55
  tag?: string;
57
56
  link?: string;
58
57
  internalLink?: InternalLink;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.doServerlessAction=exports.setServerless=exports.serverlessRender=exports.serverlessReload=exports.serverlessPreview=exports.serverlessActions=void 0;const ResponseError_js_1=require("../utils/ResponseError/ResponseError.js"),string_js_1=require("../utils/string/string.js"),object_js_1=require("../utils/object/object.js"),function_js_1=require("../utils/function/function.js"),filters_js_1=require("../filters/filters.js"),render_js_1=require("../render/render.js"),minify_js_1=require("../utils/minify/minify.js"),print_js_1=require("../utils/print/print.js");let serverlessActions={};exports.serverlessActions=serverlessActions;const serverlessPreview=request=>{const{method:method,url:url}=request;if("GET"!==method)return;const{searchParams:searchParams}=new URL(url),contentType=searchParams.get("content_type"),locale=searchParams.get("locale"),id=searchParams.get("preview");if(!(0,string_js_1.isStringStrict)(id)||!(0,string_js_1.isStringStrict)(contentType))return;const previewData={id:id,contentType:contentType};return(0,string_js_1.isStringStrict)(locale)&&(previewData.locale=locale),previewData};exports.serverlessPreview=serverlessPreview;const serverlessReload=(request,allowedParams=["page","filters"])=>{const{method:method,url:url}=request;if("GET"!==method)return;const{searchParams:searchParams,pathname:pathname}=new URL(url),path=pathname,query={};let hasParams=!1;for(const param of allowedParams){const value=searchParams.get(param);(0,string_js_1.isStringStrict)(value)&&(query[param]=value,hasParams=!0)}return hasParams?{query:query,path:path}:void 0};exports.serverlessReload=serverlessReload;const serverlessRender=async(getData,serverlessData,previewData)=>{try{const data=await(0,render_js_1.render)({serverlessData:serverlessData,previewData:previewData,allData:await getData({serverlessData:serverlessData,previewData:previewData})});let html="",status=200;(0,object_js_1.isObjectStrict)(data)&&(html=data.output);const isEmpty=""===html;return isEmpty&&(status=404),isEmpty&&(0,function_js_1.isFunction)(render_js_1.renderHttpError)&&(html=await(0,render_js_1.renderHttpError)({code:status})),new Response((0,minify_js_1.minify)(html),{status:status,headers:{"Content-Type":"text/html;charset=UTF-8"}})}catch(error){(0,print_js_1.print)("[FRM] Error on serverless render",error);const status=500,html=await(0,render_js_1.renderHttpError)({code:status});return new Response(html,{status:status,headers:{"Content-Type":"text/html;charset=UTF-8"}})}};exports.serverlessRender=serverlessRender;const setServerless=actions=>{(0,object_js_1.isObjectStrict)(actions)&&(exports.serverlessActions=serverlessActions={...actions})};exports.setServerless=setServerless;const doServerlessAction=async(request,env,headers,honeypotName)=>{const serverlessHeaders={"Content-Type":"application/json",...headers};try{if("POST"!==request.method)return new Response(JSON.stringify({error:"Method not allowed"}),{status:405,headers:serverlessHeaders});const data=await request.json();if(!(0,object_js_1.isObjectStrict)(data))throw new Error("Data not an object");if((0,string_js_1.isStringStrict)(honeypotName)&&(0,object_js_1.isObjectStrict)(data.inputs?.[honeypotName])){const honeypotValue=data.inputs[honeypotName].value;if((0,string_js_1.isStringStrict)(honeypotValue))return new Response(JSON.stringify({success:""}),{status:200,headers:serverlessHeaders});delete data.inputs[honeypotName]}const action=data.action;if(!(0,string_js_1.isStringStrict)(action))throw new Error("No action");let res=null;const serverlessAction=serverlessActions[action];(0,function_js_1.isFunction)(serverlessAction)&&(res=await serverlessAction(data,request,env));const serverlessResultFilterArgs={data:data,request:request,env:env};if(res=await(0,filters_js_1.applyFilters)("serverlessResult",res,serverlessResultFilterArgs,!0),!res)throw new Error("No result");if(res.error){const errorMessage=res.error.message;throw res.error.response?new ResponseError_js_1.ResponseError(errorMessage,res.error.response):new Error(errorMessage)}const options={status:200,headers:serverlessHeaders};let message="";if(res.success){const{message:successMessage,headers:successHeaders}=res.success;(0,string_js_1.isStringStrict)(successMessage)&&(message=successMessage),(0,object_js_1.isObjectStrict)(successHeaders)&&(options.headers={...options.headers,...successHeaders})}return new Response(JSON.stringify({success:message}),options)}catch(error){(0,print_js_1.print)("[FRM] Error with serverless action",error);let statusCode=500,message=error instanceof Error?error.message:"Unknown error";return error instanceof ResponseError_js_1.ResponseError&&(statusCode=error.response.status,message=error.message),new Response(JSON.stringify({error:message}),{status:statusCode,headers:serverlessHeaders})}};exports.doServerlessAction=doServerlessAction;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.doServerlessAction=exports.setServerless=exports.serverlessRender=exports.serverlessReload=exports.serverlessPreview=exports.serverlessActions=void 0;const ResponseError_js_1=require("../utils/ResponseError/ResponseError.js"),string_js_1=require("../utils/string/string.js"),object_js_1=require("../utils/object/object.js"),function_js_1=require("../utils/function/function.js"),filters_js_1=require("../filters/filters.js"),render_js_1=require("../render/render.js"),minify_js_1=require("../utils/minify/minify.js"),print_js_1=require("../utils/print/print.js");let serverlessActions={};exports.serverlessActions=serverlessActions;const serverlessPreview=request=>{const{url:url}=request,{searchParams:searchParams}=new URL(url),contentType=searchParams.get("content_type"),locale=searchParams.get("locale"),id=searchParams.get("preview");if(!(0,string_js_1.isStringStrict)(id)||!(0,string_js_1.isStringStrict)(contentType))return;const previewData={id:id,contentType:contentType};return(0,string_js_1.isStringStrict)(locale)&&(previewData.locale=locale),previewData};exports.serverlessPreview=serverlessPreview;const serverlessReload=(request,allowedParams=["page","filters"])=>{const{url:url}=request,{searchParams:searchParams,pathname:pathname}=new URL(url),path=pathname,query={};let hasParams=!1;for(const param of allowedParams){const value=searchParams.get(param);(0,string_js_1.isStringStrict)(value)&&(query[param]=value,hasParams=!0)}if(hasParams)return{query:query,path:path}};exports.serverlessReload=serverlessReload;const serverlessRender=async(getData,serverlessData,previewData)=>{try{const data=await(0,render_js_1.render)({serverlessData:serverlessData,previewData:previewData,allData:await getData({serverlessData:serverlessData,previewData:previewData})});let html="",status=200;(0,object_js_1.isObjectStrict)(data)&&(html=data.output);const isEmpty=""===html;return isEmpty&&(status=404),isEmpty&&(0,function_js_1.isFunction)(render_js_1.renderHttpError)&&(html=await(0,render_js_1.renderHttpError)({code:status})),new Response((0,minify_js_1.minify)(html),{status:status,headers:{"Content-Type":"text/html;charset=UTF-8"}})}catch(error){(0,print_js_1.print)("[FRM] Error on serverless render",error);const status=500,html=await(0,render_js_1.renderHttpError)({code:status});return new Response(html,{status:status,headers:{"Content-Type":"text/html;charset=UTF-8"}})}};exports.serverlessRender=serverlessRender;const setServerless=actions=>{(0,object_js_1.isObjectStrict)(actions)&&(exports.serverlessActions=serverlessActions={...actions})};exports.setServerless=setServerless;const doServerlessAction=async(request,env,headers,honeypotName)=>{const serverlessHeaders={"Content-Type":"application/json",...headers};try{if("POST"!==request.method)return new Response(JSON.stringify({error:"Method not allowed"}),{status:405,headers:serverlessHeaders});const data=await request.json();if(!(0,object_js_1.isObjectStrict)(data))throw new Error("Data not an object");if((0,string_js_1.isStringStrict)(honeypotName)&&(0,object_js_1.isObjectStrict)(data.inputs?.[honeypotName])){const honeypotValue=data.inputs[honeypotName].value;if((0,string_js_1.isStringStrict)(honeypotValue))return new Response(JSON.stringify({success:""}),{status:200,headers:serverlessHeaders});delete data.inputs[honeypotName]}const action=data.action;if(!(0,string_js_1.isStringStrict)(action))throw new Error("No action");let res=null;const serverlessAction=serverlessActions[action];(0,function_js_1.isFunction)(serverlessAction)&&(res=await serverlessAction(data,request,env));const serverlessResultFilterArgs={data:data,request:request,env:env};if(res=await(0,filters_js_1.applyFilters)("serverlessResult",res,serverlessResultFilterArgs,!0),!res)throw new Error("No result");if(res.error){const errorMessage=res.error.message;throw res.error.response?new ResponseError_js_1.ResponseError(errorMessage,res.error.response):new Error(errorMessage)}const options={status:200,headers:serverlessHeaders};let message="";if(res.success){const{message:successMessage,headers:successHeaders}=res.success;(0,string_js_1.isStringStrict)(successMessage)&&(message=successMessage),(0,object_js_1.isObjectStrict)(successHeaders)&&(options.headers={...options.headers,...successHeaders})}return new Response(JSON.stringify({success:message}),options)}catch(error){(0,print_js_1.print)("[FRM] Error with serverless action",error);let statusCode=500,message=error instanceof Error?error.message:"Unknown error";return error instanceof ResponseError_js_1.ResponseError&&(statusCode=error.response.status,message=error.message),new Response(JSON.stringify({error:message}),{status:statusCode,headers:serverlessHeaders})}};exports.doServerlessAction=doServerlessAction;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getStoreItem=exports.setStoreItem=exports.setStoreData=exports.setStore=exports.storeDir=exports.store=void 0;const contentType_js_1=require("../utils/contentType/contentType.js"),object_js_1=require("../utils/object/object.js"),string_js_1=require("../utils/string/string.js"),array_js_1=require("../utils/array/array.js"),archive_js_1=require("../utils/archive/archive.js"),config_js_1=require("../config/config.js");let storeDir="lib/store";exports.storeDir=storeDir;const defaultStore={slugs:{},parents:{},navigations:[],navigationItems:[],formMeta:{},archiveMeta:{},imageMeta:{},taxonomies:{},serverless:{}};let store={...defaultStore};exports.store=store;const setStore=(args,dir="lib/store")=>(0,object_js_1.isObjectStrict)(args)?(exports.store=store={...defaultStore,...args},(0,string_js_1.isStringStrict)(dir)&&(exports.storeDir=storeDir=dir),store):store;exports.setStore=setStore;const setStoreItem=(prop,value,subProp)=>!(!(0,string_js_1.isStringStrict)(prop)||!(0,object_js_1.isObject)(value)||null==store[prop])&&((0,string_js_1.isStringStrict)(subProp)?store[prop][subProp]=value:store[prop]=value,!0);exports.setStoreItem=setStoreItem;const setStoreData=allData=>{if(!(0,object_js_1.isObjectStrict)(allData))return!1;const{navigation:navigation,navigationItem:navigationItem,content:content}=allData;store.navigations=(0,array_js_1.isArrayStrict)(navigation)?navigation:[],store.navigationItems=(0,array_js_1.isArrayStrict)(navigationItem)?navigationItem:[];const data={...allData,...content};return config_js_1.config.hierarchicalTypes.forEach(type=>{const items=data[type];(0,array_js_1.isArrayStrict)(items)&&items.forEach(item=>{if(!(0,object_js_1.isObjectStrict)(item))return;const{id:id,parent:parent,archive:archive,slug:slug,title:title,locale:locale}=item;if(!(0,string_js_1.isStringStrict)(id))return;const archiveType=(0,contentType_js_1.normalizeContentType)(archive);if((0,string_js_1.isStringStrict)(archiveType)){const hasLocale=(0,string_js_1.isStringStrict)(locale),archiveMeta=(0,archive_js_1.getArchiveMeta)(archiveType),newArchive={id:id,slug:slug,title:title,contentType:type,...hasLocale?archiveMeta[locale]:archiveMeta};hasLocale?(store.archiveMeta[archiveType]||(store.archiveMeta[archiveType]={}),store.archiveMeta[archiveType][locale]=newArchive):store.archiveMeta[archiveType]=newArchive}if((0,object_js_1.isObjectStrict)(parent)){const parentSlug=parent.slug,parentTitle=parent.title,parentId=parent.id;(0,string_js_1.isStringStrict)(parentSlug)&&(0,string_js_1.isStringStrict)(parentTitle)&&(0,string_js_1.isStringStrict)(parentId)&&(null==store.parents[type]&&(store.parents[type]={}),store.parents[type][id]=[parentId,parentSlug,parentTitle])}})}),!0};exports.setStoreData=setStoreData;const getStoreItem=prop=>store[prop];exports.getStoreItem=getStoreItem;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getStoreItem=exports.setStoreItem=exports.setStoreData=exports.setStore=exports.storeDir=exports.store=void 0;const contentType_js_1=require("../utils/contentType/contentType.js"),object_js_1=require("../utils/object/object.js"),string_js_1=require("../utils/string/string.js"),array_js_1=require("../utils/array/array.js"),archive_js_1=require("../utils/archive/archive.js"),config_js_1=require("../config/config.js");let storeDir="lib/store";exports.storeDir=storeDir;const defaultStore={slugs:Object.create(null),parents:Object.create(null),navigations:[],navigationItems:[],formMeta:Object.create(null),archiveMeta:Object.create(null),imageMeta:Object.create(null),taxonomies:Object.create(null),serverless:Object.create(null)};let store={...defaultStore};exports.store=store;const setStore=(args,dir="lib/store")=>(0,object_js_1.isObjectStrict)(args)?(exports.store=store={...defaultStore,...args},(0,string_js_1.isStringStrict)(dir)&&(exports.storeDir=storeDir=dir),store):store;exports.setStore=setStore;const setStoreItem=(prop,value,subProp)=>!(!(0,string_js_1.isStringStrict)(prop)||!(0,object_js_1.isObject)(value)||null==store[prop])&&((0,string_js_1.isStringStrict)(subProp)?store[prop][subProp]=value:store[prop]=value,!0);exports.setStoreItem=setStoreItem;const setStoreData=allData=>{if(!(0,object_js_1.isObjectStrict)(allData))return!1;const{navigation:navigation,navigationItem:navigationItem,content:content}=allData;store.navigations=(0,array_js_1.isArrayStrict)(navigation)?navigation:[],store.navigationItems=(0,array_js_1.isArrayStrict)(navigationItem)?navigationItem:[];const data={...allData,...content};return config_js_1.config.hierarchicalTypes.forEach(type=>{const items=data[type];(0,array_js_1.isArrayStrict)(items)&&items.forEach(item=>{if(!(0,object_js_1.isObjectStrict)(item))return;const{id:id,parent:parent,archive:archive,slug:slug,title:title,locale:locale}=item;if(!(0,string_js_1.isStringStrict)(id))return;const archiveType=(0,contentType_js_1.normalizeContentType)(archive);if((0,string_js_1.isStringStrict)(archiveType)){const hasLocale=(0,string_js_1.isStringStrict)(locale),archiveMeta=(0,archive_js_1.getArchiveMeta)(archiveType),newArchive={id:id,slug:slug,title:title,contentType:type,...hasLocale?archiveMeta[locale]:archiveMeta};hasLocale?(store.archiveMeta[archiveType]||(store.archiveMeta[archiveType]=Object.create(null)),store.archiveMeta[archiveType][locale]=newArchive):store.archiveMeta[archiveType]=newArchive}if((0,object_js_1.isObjectStrict)(parent)){const parentSlug=parent.slug,parentTitle=parent.title,parentId=parent.id;(0,string_js_1.isStringStrict)(parentSlug)&&(0,string_js_1.isStringStrict)(parentTitle)&&(0,string_js_1.isStringStrict)(parentId)&&(null==store.parents[type]&&(store.parents[type]=Object.create(null)),store.parents[type][id]=[parentId,parentSlug,parentTitle])}})}),!0};exports.setStoreData=setStoreData;const getStoreItem=prop=>store[prop];exports.getStoreItem=getStoreItem;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getPlainText=exports.RichText=void 0;const link_js_1=require("../../utils/link/link.js"),excerpt_js_1=require("../../utils/excerpt/excerpt.js"),filters_js_1=require("../../filters/filters.js"),string_js_1=require("../../utils/string/string.js"),array_js_1=require("../../utils/array/array.js"),object_js_1=require("../../utils/object/object.js"),heading_js_1=require("../../utils/heading/heading.js"),containsShortcode=(tag,content)=>"p"===tag&&"["===content.charAt(0)&&"]"===content.charAt(content.length-1),addDataAttr=(dataAttr=!0,tag="")=>(0,array_js_1.isArrayStrict)(dataAttr)?dataAttr.includes(tag):dataAttr,getContent=args=>{const{content:content=[],props:props,dataAttr:dataAttr=!1}=args;let{_output:_output=""}=args;for(const item of content){const newItem=(0,filters_js_1.applyFilters)("richTextContentItem",item,props),{link:link,attr:attr,internalLink:internalLink,content:itemContent}=newItem;let{tag:tag=""}=newItem,newContent=itemContent;const isSingleTag="br"===tag||"hr"===tag;(0,array_js_1.isArrayStrict)(itemContent)&&(newContent=getContent({content:itemContent,props:props,dataAttr:dataAttr}));const attrs=[];if(addDataAttr(dataAttr,tag)&&attrs.push(`data-rich="${tag}"`),(0,string_js_1.isStringStrict)(attr)&&attrs.push(attr),(0,object_js_1.isObjectStrict)(attr)&&Object.entries(attr).forEach(([key,value])=>{attrs.push(`${key}="${value}"`)}),"a"===tag){let anchorLink=link;internalLink&&(anchorLink=(0,link_js_1.getLink)(internalLink)),(0,string_js_1.isStringStrict)(anchorLink)&&attrs.push(`href="${anchorLink}"`)}let outputStr="";if((0,string_js_1.isString)(newContent)){const richTextContentFilterArgs={args:newItem,props:props};outputStr+=(0,filters_js_1.applyFilters)("richTextContent",newContent,richTextContentFilterArgs)}containsShortcode(tag,outputStr)&&(tag="");let opening="",closing="",inner="";(0,string_js_1.isStringStrict)(tag)&&outputStr.trim()&&!isSingleTag&&(opening=`<${tag}${attrs.length?` ${attrs.join(" ")}`:""}>`,closing=`</${tag}>`,inner=outputStr,outputStr=`${opening}${outputStr}${closing}`),isSingleTag&&(outputStr=`<${tag}>`);const richTextContentOutputArgs={args:newItem,props:props,element:{opening:opening,closing:closing,content:inner}};_output+=(0,filters_js_1.applyFilters)("richTextContentOutput",outputStr,richTextContentOutputArgs)}return _output},getPlainText=(args,_output="")=>{if((0,string_js_1.isString)(args))return args;const content=(0,object_js_1.isObjectStrict)(args)?args.content:args;if(!(0,array_js_1.isArrayStrict)(content))return _output;for(const item of content){const{content:itemContent}=(0,object_js_1.isObjectStrict)(item)?item:{};(0,string_js_1.isString)(itemContent)&&(_output+=itemContent),(0,array_js_1.isArrayStrict)(itemContent)&&(_output=getPlainText({content:itemContent},_output))}return _output};exports.getPlainText=getPlainText;const RichText=props=>{if(!(0,object_js_1.isObjectStrict)(props))return"";props=(0,filters_js_1.applyFilters)("richTextProps",props);const{args:args}=props;if(!(0,object_js_1.isObjectStrict)(args))return"";const{content:content=[],classes:classes,link:link,internalLink:internalLink,textStyle:textStyle,headingStyle:headingStyle,align:align,style:style,attr:attr,dataAttr:dataAttr=!0}=args;let{tag:tag=""}=args;if("hr"===tag||"br"===tag)return`<${tag}>`;const isSectionHeading=(0,heading_js_1.isHeading)(tag),classesArr=[];(0,string_js_1.isStringStrict)(classes)&&classesArr.push(classes),(0,string_js_1.isStringStrict)(textStyle)&&classesArr.push(textStyle),(0,string_js_1.isStringStrict)(headingStyle)&&isSectionHeading&&classesArr.push(headingStyle),(0,string_js_1.isStringStrict)(align)&&classesArr.push(align);const filterProps={...props};filterProps.args.content=void 0;let headingObj,output="",headingStr="";(0,string_js_1.isStringStrict)(content)&&(output=content,headingStr=content),(0,array_js_1.isArrayStrict)(content)&&(headingObj=content,output=getContent({content:content,props:filterProps,dataAttr:dataAttr}));const attrs=[];if(addDataAttr(dataAttr,tag)&&attrs.push(`data-rich="${tag}"`),isSectionHeading){const headingContents=(0,excerpt_js_1.getExcerpt)({limit:10,limitExcerpt:!0,excerpt:headingStr,content:headingObj}),id=headingContents.trim().replace(/&hellip;/g,"").replace(/[^\w\s]|_/g,"").replace(/\s+/g,"-").toLowerCase();headingContents&&id&&(attrs.push(`id="${id}"`),(0,array_js_1.isArray)(props.headings)&&props.headings.push({id:id,title:headingContents,tag:tag}))}if("a"===tag){let anchorLink=link;const inLink=(0,link_js_1.getLink)(internalLink);(0,string_js_1.isStringStrict)(inLink)&&(anchorLink=inLink),(0,string_js_1.isStringStrict)(anchorLink)&&attrs.push(`href="${anchorLink}"`)}classesArr.length&&attrs.push(`class="${classesArr.join(" ")}"`),(0,string_js_1.isStringStrict)(style)&&attrs.push(`style="${style}"`),(0,string_js_1.isStringStrict)(attr)&&attrs.push(attr),(0,object_js_1.isObjectStrict)(attr)&&Object.entries(attr).forEach(([key,value])=>{attrs.push(`${key}="${value}"`)}),containsShortcode(tag,output)&&(tag="");let opening="",closing="",inner="";(0,string_js_1.isStringStrict)(tag)&&output.trim()&&(opening=`<${tag}${attrs.length?` ${attrs.join(" ")}`:""}>`,closing=`</${tag}>`,inner=output,output=`${opening}${output}${closing}`);const richTextOutputArgs={props:filterProps,element:{opening:opening,closing:closing,content:inner}};return(0,filters_js_1.applyFilters)("richTextOutput",output,richTextOutputArgs)};exports.RichText=RichText;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getPlainText=exports.RichText=void 0;const link_js_1=require("../../utils/link/link.js"),excerpt_js_1=require("../../utils/excerpt/excerpt.js"),filters_js_1=require("../../filters/filters.js"),string_js_1=require("../../utils/string/string.js"),array_js_1=require("../../utils/array/array.js"),object_js_1=require("../../utils/object/object.js"),heading_js_1=require("../../utils/heading/heading.js"),containsShortcode=(tag,content)=>"p"===tag&&"["===content.charAt(0)&&"]"===content.charAt(content.length-1),addDataAttr=(dataAttr=!0,tag="")=>(0,array_js_1.isArrayStrict)(dataAttr)?dataAttr.includes(tag):dataAttr,getContent=args=>{const{content:content,props:props,dataAttr:dataAttr}=args;let{_output:_output=""}=args;for(const item of content){const newItem=(0,filters_js_1.applyFilters)("richTextContentItem",item,props),{link:link,attr:attr,internalLink:internalLink,content:itemContent}=newItem;let{tag:tag=""}=newItem,newContent=itemContent;const isSingleTag="br"===tag||"hr"===tag;(0,array_js_1.isArrayStrict)(itemContent)&&(newContent=getContent({content:itemContent,props:props,dataAttr:dataAttr}));const attrs=[];if(addDataAttr(dataAttr,tag)&&attrs.push(`data-rich="${tag}"`),(0,string_js_1.isStringStrict)(attr)&&attrs.push(attr),(0,object_js_1.isObjectStrict)(attr)&&Object.entries(attr).forEach(([key,value])=>{attrs.push(`${key}="${value}"`)}),"a"===tag){let anchorLink=link;internalLink&&(anchorLink=(0,link_js_1.getLink)(internalLink)),(0,string_js_1.isStringStrict)(anchorLink)&&attrs.push(`href="${anchorLink}"`)}let outputStr="";if((0,string_js_1.isString)(newContent)){const richTextContentFilterArgs={args:newItem,props:props};outputStr+=(0,filters_js_1.applyFilters)("richTextContent",newContent,richTextContentFilterArgs)}containsShortcode(tag,outputStr)&&(tag="");let opening="",closing="",inner="";(0,string_js_1.isStringStrict)(tag)&&outputStr.trim()&&!isSingleTag&&(opening=`<${tag}${attrs.length?` ${attrs.join(" ")}`:""}>`,closing=`</${tag}>`,inner=outputStr,outputStr=`${opening}${outputStr}${closing}`),isSingleTag&&(outputStr=`<${tag}>`);const richTextContentOutputArgs={args:newItem,props:props,element:{opening:opening,closing:closing,content:inner}};_output+=(0,filters_js_1.applyFilters)("richTextContentOutput",outputStr,richTextContentOutputArgs)}return _output},getPlainText=(args,_output="")=>{if((0,string_js_1.isString)(args))return args;const content=(0,object_js_1.isObjectStrict)(args)?args.content:args;if(!(0,array_js_1.isArrayStrict)(content))return _output;for(const item of content){const{content:itemContent}=(0,object_js_1.isObjectStrict)(item)?item:{};(0,string_js_1.isString)(itemContent)&&(_output+=itemContent),(0,array_js_1.isArrayStrict)(itemContent)&&(_output=getPlainText({content:itemContent},_output))}return _output};exports.getPlainText=getPlainText;const RichText=props=>{if(!(0,object_js_1.isObjectStrict)(props))return"";props=(0,filters_js_1.applyFilters)("richTextProps",props);const{args:args}=props;if(!(0,object_js_1.isObjectStrict)(args))return"";const{content:content=[],classes:classes,link:link,internalLink:internalLink,textStyle:textStyle,headingStyle:headingStyle,align:align,style:style,attr:attr,dataAttr:dataAttr=!0}=args;let{tag:tag=""}=args;if("hr"===tag||"br"===tag)return`<${tag}>`;const isSectionHeading=(0,heading_js_1.isHeading)(tag),classesArr=[];(0,string_js_1.isStringStrict)(classes)&&classesArr.push(classes),(0,string_js_1.isStringStrict)(textStyle)&&classesArr.push(textStyle),(0,string_js_1.isStringStrict)(headingStyle)&&isSectionHeading&&classesArr.push(headingStyle),(0,string_js_1.isStringStrict)(align)&&classesArr.push(align);const filterProps={...props};filterProps.args.content=void 0;let headingObj,output="",headingStr="";(0,string_js_1.isStringStrict)(content)&&(output=content,headingStr=content),(0,array_js_1.isArrayStrict)(content)&&(headingObj=content,output=getContent({content:content,props:filterProps,dataAttr:dataAttr}));const attrs=[];if(addDataAttr(dataAttr,tag)&&attrs.push(`data-rich="${tag}"`),isSectionHeading){const headingContents=(0,excerpt_js_1.getExcerpt)({limit:10,limitExcerpt:!0,excerpt:headingStr,content:headingObj}),id=headingContents.trim().replace(/&hellip;/g,"").replace(/[^\w\s]|_/g,"").replace(/\s+/g,"-").toLowerCase();headingContents&&id&&(attrs.push(`id="${id}"`),(0,array_js_1.isArray)(props.headings)&&props.headings.push({id:id,title:headingContents,tag:tag}))}if("a"===tag){let anchorLink=link;const inLink=(0,link_js_1.getLink)(internalLink);(0,string_js_1.isStringStrict)(inLink)&&(anchorLink=inLink),(0,string_js_1.isStringStrict)(anchorLink)&&attrs.push(`href="${anchorLink}"`)}classesArr.length&&attrs.push(`class="${classesArr.join(" ")}"`),(0,string_js_1.isStringStrict)(style)&&attrs.push(`style="${style}"`),(0,string_js_1.isStringStrict)(attr)&&attrs.push(attr),(0,object_js_1.isObjectStrict)(attr)&&Object.entries(attr).forEach(([key,value])=>{attrs.push(`${key}="${value}"`)}),containsShortcode(tag,output)&&(tag="");let opening="",closing="",inner="";(0,string_js_1.isStringStrict)(tag)&&output.trim()&&(opening=`<${tag}${attrs.length?` ${attrs.join(" ")}`:""}>`,closing=`</${tag}>`,inner=output,output=`${opening}${output}${closing}`);const richTextOutputArgs={props:filterProps,element:{opening:opening,closing:closing,content:inner}};return(0,filters_js_1.applyFilters)("richTextOutput",output,richTextOutputArgs)};exports.RichText=RichText;
@@ -49,6 +49,6 @@ export interface RichTextOutputFilterArgs {
49
49
  }
50
50
  export type RichTextPropsFilter = (props: RichTextProps) => RichTextProps;
51
51
  export type RichTextOutputFilter = (output: string, args: RichTextContentOutputFilterArgs) => string;
52
- export type RichTextContentItemFilter = (item: RenderRichText, args: RichTextProps) => RenderRichText;
52
+ export type RichTextContentItemFilter = (item: RenderRichText, props: RichTextProps) => RenderRichText;
53
53
  export type RichTextContentFilter = (content: string, args: RichTextContentFilterArgs) => string;
54
54
  export type RichTextContentOutputFilter = (content: string, args: RichTextContentOutputFilterArgs) => string;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getArchiveLabels=exports.getArchiveLink=exports.getTaxonomyInfo=exports.getArchiveInfo=exports.getArchiveMeta=exports.isArchive=exports.isTerm=void 0;const store_js_1=require("../../store/store.js"),object_js_1=require("../object/object.js"),array_js_1=require("../array/array.js"),string_js_1=require("../string/string.js"),boolean_js_1=require("../boolean/boolean.js"),contentType_js_1=require("../contentType/contentType.js"),link_js_1=require("../link/link.js"),isTerm=(contentType,itemData)=>{if(!(0,object_js_1.isObjectStrict)(itemData))return!1;const{contentType:type,taxonomy:taxonomy}=itemData;return!("term"!==type||!(0,object_js_1.isObjectStrict)(taxonomy))&&taxonomy.contentTypes.includes(contentType)};exports.isTerm=isTerm;const isArchive=(contentType,itemData)=>{if(!(0,object_js_1.isObjectStrict)(itemData))return!1;const{archive:archive}=itemData;return archive===contentType||isTerm(contentType,itemData)};exports.isArchive=isArchive;const getArchiveMeta=(contentType,locale)=>{const archiveMeta=(0,store_js_1.getStoreItem)("archiveMeta")[contentType];return(0,object_js_1.isObjectStrict)(archiveMeta)?(0,string_js_1.isStringStrict)(locale)&&(0,object_js_1.isObjectStrict)(archiveMeta[locale])?archiveMeta[locale]:archiveMeta:{}};exports.getArchiveMeta=getArchiveMeta;const getArchiveInfo=(contentType,locale)=>{const value={id:"",slug:"",title:"",contentType:""};if("page"===(contentType=(0,contentType_js_1.normalizeContentType)(contentType)))return value;const{id:id,slug:slug,title:title,contentType:type}=getArchiveMeta(contentType,locale);return value.id=(0,string_js_1.isStringStrict)(id)?id:"",value.slug=(0,string_js_1.isStringStrict)(slug)?slug:"",value.title=(0,string_js_1.isStringStrict)(title)?title:"",value.contentType=(0,string_js_1.isStringStrict)(type)?type:"",value};exports.getArchiveInfo=getArchiveInfo;const getTaxonomyInfo=(contentType,itemData)=>{const value={id:"",slug:"",title:"",contentTypes:[],primaryContentType:"",usePrimaryContentTypeSlug:!0,isPage:!1},taxObj="taxonomy"===contentType?itemData:itemData?.taxonomy;if(!(0,object_js_1.isObjectStrict)(taxObj))return value;const{id:id,slug:slug,link:link,title:title,contentTypes:contentTypes,usePrimaryContentTypeSlug:usePrimaryContentTypeSlug,isPage:isPage}=taxObj,taxonomyTypes=(0,array_js_1.isArrayStrict)(contentTypes)?contentTypes.map(type=>(0,contentType_js_1.normalizeContentType)(type)):[],primaryTaxonomyType=taxonomyTypes[0];return value.id=(0,string_js_1.isStringStrict)(id)?id:"",value.slug=(0,string_js_1.isStringStrict)(slug)?slug:"",value.title=(0,string_js_1.isStringStrict)(title)?title:"",value.contentTypes=taxonomyTypes,value.primaryContentType=(0,string_js_1.isStringStrict)(primaryTaxonomyType)?primaryTaxonomyType:"",value.usePrimaryContentTypeSlug=!(0,boolean_js_1.isBoolean)(usePrimaryContentTypeSlug)||usePrimaryContentTypeSlug,value.isPage=!!(0,boolean_js_1.isBoolean)(isPage)&&isPage,(0,string_js_1.isStringStrict)(link)&&(value.link=link),value};exports.getTaxonomyInfo=getTaxonomyInfo;const getArchiveLink=(contentType,itemData)=>{let slug,title="";const locale=itemData?.locale,taxonomyInfo=getTaxonomyInfo(contentType,itemData),{title:taxonomyTitle,isPage:taxonomyIsPage,contentTypes:taxonomyTypes,usePrimaryContentTypeSlug:taxonomyUseTypeSlug}=taxonomyInfo;"term"===contentType&&taxonomyIsPage&&(slug=(0,link_js_1.getSlug)({slug:"",contentType:contentType,itemData:itemData}),title=taxonomyTitle);const taxonomyType=taxonomyTypes[0],useArchiveType=taxonomyUseTypeSlug&&(0,string_js_1.isStringStrict)(taxonomyType);"taxonomy"===contentType&&useArchiveType&&(contentType=taxonomyType),"term"===contentType&&!taxonomyIsPage&&useArchiveType&&(contentType=taxonomyType);const archiveInfo=getArchiveInfo(contentType,locale),{id:archiveId,slug:archiveSlug,title:archiveTitle,contentType:archiveType}=archiveInfo;return archiveSlug&&archiveId&&(slug=(0,link_js_1.getSlug)({id:archiveId,slug:archiveSlug,contentType:archiveType,itemData:{locale:locale}}),title=getArchiveLabel(contentType,itemData,"plural",archiveTitle)),{title:title,link:(0,string_js_1.isStringStrict)(slug)?(0,link_js_1.getPermalink)(slug):""}};exports.getArchiveLink=getArchiveLink;const getArchiveLabel=(contentType,itemData,labelType="singular",fallback)=>{fallback=(0,string_js_1.isStringStrict)(fallback)?fallback:"singular"===labelType?"Post":"Posts";const label=getArchiveMeta(contentType,itemData?.locale)[labelType];return(0,string_js_1.isStringStrict)(label)?label:fallback},getArchiveLabels=(contentType,itemData)=>{let singular="Post",plural="Posts";const taxonomyInfo=getTaxonomyInfo(contentType,itemData),{title:taxonomyTitle,isPage:taxonomyIsPage,primaryContentType:taxonomyType,usePrimaryContentTypeSlug:taxonomyUseTypeSlug}=taxonomyInfo;if("term"===contentType&&taxonomyIsPage&&(0,string_js_1.isStringStrict)(taxonomyTitle))return{singular:taxonomyTitle,plural:taxonomyTitle};const useArchiveType=taxonomyUseTypeSlug&&(0,string_js_1.isStringStrict)(taxonomyType);return"taxonomy"===contentType&&useArchiveType&&(contentType=taxonomyType),"term"===contentType&&!taxonomyIsPage&&useArchiveType&&(contentType=taxonomyType),(0,string_js_1.isStringStrict)(contentType)&&(contentType=(0,contentType_js_1.normalizeContentType)(contentType),singular=getArchiveLabel(contentType,itemData),plural=getArchiveLabel(contentType,itemData,"plural")),{singular:singular,plural:plural}};exports.getArchiveLabels=getArchiveLabels;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getArchiveLabels=exports.getArchiveLink=exports.getTaxonomyInfo=exports.getArchiveInfo=exports.getArchiveMeta=exports.isArchive=exports.isTerm=void 0;const store_js_1=require("../../store/store.js"),object_js_1=require("../object/object.js"),array_js_1=require("../array/array.js"),string_js_1=require("../string/string.js"),boolean_js_1=require("../boolean/boolean.js"),contentType_js_1=require("../contentType/contentType.js"),link_js_1=require("../link/link.js"),isTerm=(contentType,itemData)=>{if(!(0,object_js_1.isObjectStrict)(itemData))return!1;const{contentType:type,taxonomy:taxonomy}=itemData;return!("term"!==type||!(0,object_js_1.isObjectStrict)(taxonomy))&&taxonomy.contentTypes.includes(contentType)};exports.isTerm=isTerm;const isArchive=(contentType,itemData)=>{if(!(0,object_js_1.isObjectStrict)(itemData))return!1;const{archive:archive}=itemData;return archive===contentType||isTerm(contentType,itemData)};exports.isArchive=isArchive;const getArchiveMeta=(contentType,locale)=>{const archiveMeta=(0,store_js_1.getStoreItem)("archiveMeta")[contentType];return(0,object_js_1.isObjectStrict)(archiveMeta)?(0,string_js_1.isStringStrict)(locale)&&(0,object_js_1.isObjectStrict)(archiveMeta[locale])?archiveMeta[locale]:archiveMeta:{}};exports.getArchiveMeta=getArchiveMeta;const getArchiveInfo=(contentType,locale)=>{const value={id:"",slug:"",title:"",contentType:""};if("page"===(contentType=(0,contentType_js_1.normalizeContentType)(contentType)))return value;const{id:id,slug:slug,title:title,contentType:type}=getArchiveMeta(contentType,locale);return value.id=(0,string_js_1.isStringStrict)(id)?id:"",value.slug=(0,string_js_1.isStringStrict)(slug)?slug:"",value.title=(0,string_js_1.isStringStrict)(title)?title:"",value.contentType=(0,string_js_1.isStringStrict)(type)?type:"",value};exports.getArchiveInfo=getArchiveInfo;const getTaxonomyInfo=(contentType,itemData)=>{const value={id:"",slug:"",title:"",contentTypes:[],primaryContentType:"",useContentTypeSlug:!0,isPage:!1},taxObj="taxonomy"===contentType?itemData:itemData?.taxonomy;if(!(0,object_js_1.isObjectStrict)(taxObj))return value;const{id:id,slug:slug,link:link,title:title,contentTypes:contentTypes,useContentTypeSlug:useContentTypeSlug,isPage:isPage}=taxObj,taxonomyTypes=(0,array_js_1.isArrayStrict)(contentTypes)?contentTypes.map(type=>(0,contentType_js_1.normalizeContentType)(type)):[],primaryTaxonomyType=taxonomyTypes[0];return value.id=(0,string_js_1.isStringStrict)(id)?id:"",value.slug=(0,string_js_1.isStringStrict)(slug)?slug:"",value.title=(0,string_js_1.isStringStrict)(title)?title:"",value.contentTypes=taxonomyTypes,value.primaryContentType=(0,string_js_1.isStringStrict)(primaryTaxonomyType)?primaryTaxonomyType:"",value.useContentTypeSlug=!(0,boolean_js_1.isBoolean)(useContentTypeSlug)||useContentTypeSlug,value.isPage=!!(0,boolean_js_1.isBoolean)(isPage)&&isPage,(0,string_js_1.isStringStrict)(link)&&(value.link=link),value};exports.getTaxonomyInfo=getTaxonomyInfo;const getArchiveLink=(contentType,itemData)=>{let slug,title="";const locale=itemData?.locale,taxonomyInfo=getTaxonomyInfo(contentType,itemData),{title:taxonomyTitle,isPage:taxonomyIsPage,contentTypes:taxonomyTypes,useContentTypeSlug:taxonomyUseTypeSlug}=taxonomyInfo;"term"===contentType&&taxonomyIsPage&&(slug=(0,link_js_1.getSlug)({slug:"",contentType:contentType,itemData:itemData}),title=taxonomyTitle);const taxonomyType=taxonomyTypes[0],useArchiveType=taxonomyUseTypeSlug&&(0,string_js_1.isStringStrict)(taxonomyType);"taxonomy"===contentType&&useArchiveType&&(contentType=taxonomyType),"term"===contentType&&!taxonomyIsPage&&useArchiveType&&(contentType=taxonomyType);const archiveInfo=getArchiveInfo(contentType,locale),{id:archiveId,slug:archiveSlug,title:archiveTitle,contentType:archiveType}=archiveInfo;return archiveSlug&&archiveId&&(slug=(0,link_js_1.getSlug)({id:archiveId,slug:archiveSlug,contentType:archiveType,itemData:{locale:locale}}),title=getArchiveLabel(contentType,itemData,"plural",archiveTitle)),{title:title,link:(0,string_js_1.isStringStrict)(slug)?(0,link_js_1.getPermalink)(slug):""}};exports.getArchiveLink=getArchiveLink;const getArchiveLabel=(contentType,itemData,labelType="singular",fallback)=>{fallback=(0,string_js_1.isStringStrict)(fallback)?fallback:"singular"===labelType?"Post":"Posts";const label=getArchiveMeta(contentType,itemData?.locale)[labelType];return(0,string_js_1.isStringStrict)(label)?label:fallback},getArchiveLabels=(contentType,itemData)=>{let singular="Post",plural="Posts";const taxonomyInfo=getTaxonomyInfo(contentType,itemData),{title:taxonomyTitle,isPage:taxonomyIsPage,primaryContentType:taxonomyType,useContentTypeSlug:taxonomyUseTypeSlug}=taxonomyInfo;if("term"===contentType&&taxonomyIsPage&&(0,string_js_1.isStringStrict)(taxonomyTitle))return{singular:taxonomyTitle,plural:taxonomyTitle};const useArchiveType=taxonomyUseTypeSlug&&(0,string_js_1.isStringStrict)(taxonomyType);return"taxonomy"===contentType&&useArchiveType&&(contentType=taxonomyType),"term"===contentType&&!taxonomyIsPage&&useArchiveType&&(contentType=taxonomyType),(0,string_js_1.isStringStrict)(contentType)&&(contentType=(0,contentType_js_1.normalizeContentType)(contentType),singular=getArchiveLabel(contentType,itemData),plural=getArchiveLabel(contentType,itemData,"plural")),{singular:singular,plural:plural}};exports.getArchiveLabels=getArchiveLabels;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.escape=void 0;const string_js_1=require("../string/string.js"),escape=value=>{if(!(0,string_js_1.isString)(value))throw new TypeError("Value is not a string");return value.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\//g,"&#x2F;").replace(/\\/g,"&#x5C;").replace(/`/g,"&#96;")};exports.escape=escape;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.escape=void 0;const string_js_1=require("../string/string.js"),escape=value=>{if(!(0,string_js_1.isString)(value))throw new TypeError("Value not a string");return value.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\//g,"&#x2F;").replace(/\\/g,"&#x5C;").replace(/`/g,"&#96;")};exports.escape=escape;
@@ -1 +1 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.setLocalImages=void 0;const node_path_1=require("node:path"),promises_1=require("node:fs/promises"),sharp_1=__importDefault(require("sharp")),filePath_js_1=require("../file/filePath.js"),string_js_1=require("../string/string.js"),store_js_1=require("../../store/store.js"),config_js_1=require("../../config/config.js"),setLocalImages=async()=>{const inputDir=config_js_1.config.image.inputDir,outputDir=config_js_1.config.image.outputDir;if(!(0,string_js_1.isStringStrict)(inputDir)||!(0,string_js_1.isStringStrict)(outputDir))throw new Error("No input or output directories");await(0,promises_1.mkdir)((0,node_path_1.resolve)(outputDir),{recursive:!0});const images=[],meta={};for await(const path of(0,filePath_js_1.getFilePaths)(inputDir)){const baseName=(0,node_path_1.basename)(path),ext=(0,node_path_1.extname)(baseName);if(!(0,string_js_1.isStringStrict)(ext))continue;const[base]=baseName.split(ext);if(!(0,string_js_1.isStringStrict)(base?.trim()))continue;let[,folders]=(0,node_path_1.dirname)(path).split(`${inputDir}/`);(0,string_js_1.isStringStrict)(folders)&&folders!==baseName?await(0,promises_1.mkdir)((0,node_path_1.resolve)(outputDir,folders),{recursive:!0}):folders="";const instance=(0,sharp_1.default)(path),metadata=await(0,sharp_1.default)(path).metadata(),stats=await(0,promises_1.stat)(path),{width:width=0,height:height=0,format:fileFormat="jpeg"}=metadata,id=`${folders?`${folders}/`:""}${base}`,format=ext.replace(".","");meta[id]={path:id,name:baseName,type:`image/${fileFormat}`,format:format,size:stats.size,width:width,height:height};let sizes=[...config_js_1.config.image.sizes];sizes.includes(width)||sizes.push(width),sizes=sizes.filter(s=>s<=width),sizes.forEach(size=>{images.push({size:size,format:format,path:(0,node_path_1.resolve)(path),newPath:(0,node_path_1.resolve)(outputDir,folders,`${base}${size!==width?`@${size}`:""}`),instance:instance})})}if(!images.length)throw new Error("No local images to transform");return(0,store_js_1.setStoreItem)("imageMeta",meta),await Promise.all(images.map(async image=>{const{size:size,instance:instance,newPath:newPath,format:format}=image;return await instance.clone().resize(size).toFile(`${newPath}.${format}`),await instance.clone().resize(size).webp({quality:config_js_1.config.image.quality}).toFile(`${newPath}.webp`)}))};exports.setLocalImages=setLocalImages;
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.setLocalImages=void 0;const node_path_1=require("node:path"),promises_1=require("node:fs/promises"),sharp_1=__importDefault(require("sharp")),filePath_js_1=require("../file/filePath.js"),string_js_1=require("../string/string.js"),store_js_1=require("../../store/store.js"),config_js_1=require("../../config/config.js"),setLocalImages=async()=>{const inputDir=config_js_1.config.image.inputDir,outputDir=config_js_1.config.image.outputDir;if(!(0,string_js_1.isStringStrict)(inputDir)||!(0,string_js_1.isStringStrict)(outputDir))throw new Error("No input or output directories");await(0,promises_1.mkdir)((0,node_path_1.resolve)(outputDir),{recursive:!0});const images=[],meta={};for await(const path of(0,filePath_js_1.getFilePaths)(inputDir)){const baseName=(0,node_path_1.basename)(path),ext=(0,node_path_1.extname)(baseName);if(!(0,string_js_1.isStringStrict)(ext))continue;const[base]=baseName.split(ext);if(!(0,string_js_1.isStringStrict)(base?.trim()))continue;let[,folders]=(0,node_path_1.dirname)(path).split(`${inputDir}/`);(0,string_js_1.isStringStrict)(folders)&&folders!==baseName?await(0,promises_1.mkdir)((0,node_path_1.resolve)(outputDir,folders),{recursive:!0}):folders="";const instance=(0,sharp_1.default)(path),metadata=await(0,sharp_1.default)(path).metadata(),stats=await(0,promises_1.stat)(path),{width:width,height:height,format:fileFormat}=metadata,id=`${folders?`${folders}/`:""}${base}`,format=ext.replace(".","");meta[id]={path:id,name:baseName,type:`image/${fileFormat}`,format:format,size:stats.size,width:width,height:height};let sizes=[...config_js_1.config.image.sizes];sizes.includes(width)||sizes.push(width),sizes=sizes.filter(s=>s<=width),sizes.forEach(size=>{images.push({size:size,format:format,path:(0,node_path_1.resolve)(path),newPath:(0,node_path_1.resolve)(outputDir,folders,`${base}${size!==width?`@${size}`:""}`),instance:instance})})}if(!images.length)throw new Error("No local images to transform");return(0,store_js_1.setStoreItem)("imageMeta",meta),await Promise.all(images.map(async image=>{const{size:size,instance:instance,newPath:newPath,format:format}=image;return await instance.clone().resize(size).toFile(`${newPath}.${format}`),await instance.clone().resize(size).webp({quality:config_js_1.config.image.quality}).toFile(`${newPath}.webp`)}))};exports.setLocalImages=setLocalImages;
@@ -1,3 +1,3 @@
1
- declare const getJson: <T extends object>(value: string) => T | undefined;
2
- declare const getJsonFile: <T>(path: string, store?: boolean) => Promise<(object & T) | undefined>;
1
+ declare const getJson: <T extends object>(value: string) => T;
2
+ declare const getJsonFile: <T>(path: string, store?: boolean) => Promise<object & T>;
3
3
  export { getJson, getJsonFile };
@@ -1 +1 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(o,m,k,k2){void 0===k2&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);desc&&!("get"in desc?!m.__esModule:desc.writable||desc.configurable)||(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){void 0===k2&&(k2=k),o[k2]=m[k]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=this&&this.__importStar||function(){var ownKeys=function(o){return ownKeys=Object.getOwnPropertyNames||function(o){var ar=[];for(var k in o)Object.prototype.hasOwnProperty.call(o,k)&&(ar[ar.length]=k);return ar},ownKeys(o)};return function(mod){if(mod&&mod.__esModule)return mod;var result={};if(null!=mod)for(var k=ownKeys(mod),i=0;i<k.length;i++)"default"!==k[i]&&__createBinding(result,mod,k[i]);return __setModuleDefault(result,mod),result}}();Object.defineProperty(exports,"__esModule",{value:!0}),exports.getJsonFile=exports.getJson=void 0;const object_js_1=require("../object/object.js"),path_js_1=require("../path/path.js"),filters_js_1=require("../../filters/filters.js"),getJson=value=>{try{const val=JSON.parse(value);if((0,object_js_1.isObject)(val))return val;throw new Error("Parsed value is not an object")}catch{return}};exports.getJson=getJson;const getJsonFile=async(path,store=!1)=>{let res,newPath=path;try{newPath=store?(0,path_js_1.getPath)(path,"store"):path;const{default:obj}=await Promise.resolve(`${newPath}`).then(s=>__importStar(require(s)));if(!(0,object_js_1.isObject)(obj))throw new Error("No object in json file");res=obj}catch{res=void 0}return store?await(0,filters_js_1.applyFilters)("storeData",res,newPath,!0):res};exports.getJsonFile=getJsonFile;
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(o,m,k,k2){void 0===k2&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);desc&&!("get"in desc?!m.__esModule:desc.writable||desc.configurable)||(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){void 0===k2&&(k2=k),o[k2]=m[k]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=this&&this.__importStar||function(){var ownKeys=function(o){return ownKeys=Object.getOwnPropertyNames||function(o){var ar=[];for(var k in o)Object.prototype.hasOwnProperty.call(o,k)&&(ar[ar.length]=k);return ar},ownKeys(o)};return function(mod){if(mod&&mod.__esModule)return mod;var result={};if(null!=mod)for(var k=ownKeys(mod),i=0;i<k.length;i++)"default"!==k[i]&&__createBinding(result,mod,k[i]);return __setModuleDefault(result,mod),result}}();Object.defineProperty(exports,"__esModule",{value:!0}),exports.getJsonFile=exports.getJson=void 0;const object_js_1=require("../object/object.js"),path_js_1=require("../path/path.js"),filters_js_1=require("../../filters/filters.js"),getJson=value=>{const val=JSON.parse(value);if((0,object_js_1.isObject)(val))return val;throw new Error("Value not an object")};exports.getJson=getJson;const getJsonFile=async(path,store=!1)=>{const newPath=store?(0,path_js_1.getPath)(path,"store"):path,{default:obj}=await Promise.resolve(`${newPath}`).then(s=>__importStar(require(s)));if((0,object_js_1.isObject)(obj))return store?await(0,filters_js_1.applyFilters)("storeData",obj,newPath,!0):obj;throw new Error("No object in JSON file")};exports.getJsonFile=getJsonFile;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getPermalink=exports.getLink=exports.getSlug=void 0;const object_js_1=require("../object/object.js"),string_js_1=require("../string/string.js"),filters_js_1=require("../../filters/filters.js"),archive_js_1=require("../archive/archive.js"),store_js_1=require("../../store/store.js"),config_js_1=require("../../config/config.js"),getParentSlug=(id,contentType,parents,taxonomy,locale)=>{const storeParents=(0,store_js_1.getStoreItem)("parents"),parent=storeParents[contentType]?.[id];if(parent){const[parentId,parentSlug,parentTitle]=parent,newParent={id:parentId,slug:parentSlug,title:parentTitle,contentType:contentType,locale:locale};"term"===contentType&&(newParent.taxonomy=taxonomy),parents.unshift(newParent),getParentSlug(parentId,contentType,parents,taxonomy,locale)}},getSlug=(args,returnParents=!1)=>{const{id:id="",slug:initSlug="",contentType:contentType="page",itemData:itemData,params:params}=(0,object_js_1.isObjectStrict)(args)?args:{};let slug=initSlug,typeSlug="",taxSlug="",parentSlugs="",parts=[];const{hierarchicalTypes:hierarchicalTypes,typeInSlug:typeInSlug,localeInSlug:localeInSlug,taxonomyInSlug:taxonomyInSlug}=config_js_1.config,itemLocale=(0,string_js_1.isStringStrict)(itemData?.locale)?itemData.locale:void 0,hasItemLocale=null!=itemLocale,locale=hasItemLocale?localeInSlug[itemLocale]:"",hasLocale=(0,string_js_1.isStringStrict)(locale),taxonomyInfo=(0,archive_js_1.getTaxonomyInfo)(contentType,itemData),isTaxonomy="taxonomy"===contentType,isTerm="term"===contentType,{id:taxonomyId,slug:taxonomySlug,primaryContentType:taxonomyType,usePrimaryContentTypeSlug:taxonomyUseTypeSlug,isPage:taxonomyIsPage}=taxonomyInfo,archiveType=(0,string_js_1.isStringStrict)(taxonomyType)?taxonomyType:contentType,archiveInfo=(0,archive_js_1.getArchiveInfo)(archiveType,itemLocale),{id:archiveId,slug:archiveSlug,title:archiveTitle,contentType:archiveContentType}=archiveInfo,archiveParents=[];if(archiveSlug&&archiveId&&(typeSlug=archiveSlug,archiveParents.push({contentType:archiveContentType,title:archiveTitle,slug:archiveSlug,id:archiveId,locale:itemLocale})),!isTaxonomy&&!isTerm||taxonomyUseTypeSlug||(typeSlug=""),isTerm&&taxonomySlug&&taxonomyId){taxSlug=taxonomySlug;const taxInSlug=taxonomyInSlug[taxSlug];if((0,string_js_1.isString)(taxInSlug)&&(taxSlug=taxInSlug),(0,object_js_1.isObjectStrict)(taxInSlug)&&hasItemLocale){const localizedTaxSlug=taxInSlug[itemLocale];(0,string_js_1.isString)(localizedTaxSlug)&&(taxSlug=localizedTaxSlug)}taxonomyIsPage&&archiveParents.push({contentType:"taxonomy",locale:itemLocale,...taxonomyInfo})}const contentTypeInSlug=typeInSlug[archiveType];if((0,string_js_1.isString)(contentTypeInSlug)&&(typeSlug=contentTypeInSlug),(0,object_js_1.isObjectStrict)(contentTypeInSlug)&&hasItemLocale){const localizedTypeSlug=contentTypeInSlug[itemLocale];(0,string_js_1.isString)(localizedTypeSlug)&&(typeSlug=localizedTypeSlug)}const isHierarchical=hierarchicalTypes.includes(contentType);let parents=[],hasParents=!1;getParentSlug(isHierarchical?id:archiveId,isHierarchical?contentType:archiveContentType,parents,taxonomyInfo,itemLocale),parents.length&&(parentSlugs=parents.map(({slug:slug})=>slug).join("/"),hasParents=!0),parents=isHierarchical?[...archiveParents,...parents]:[...parents,...archiveParents];const isIndex="index"===slug;if(isIndex&&!returnParents&&(slug=""),hasLocale&&parts.push(locale),hasParents&&!isHierarchical&&parts.push(parentSlugs),typeSlug&&parts.push(typeSlug),taxSlug&&parts.push(taxSlug),hasParents&&isHierarchical&&parts.push(parentSlugs),(0,string_js_1.isStringStrict)(slug)&&!isIndex&&parts.push(slug),parts=(0,filters_js_1.applyFilters)("slugParts",parts,args),params){const paramsStr=new URLSearchParams(params).toString();paramsStr&&parts.push(`?${paramsStr}`)}let fullSlug=parts.length?parts.join("/"):"";if(fullSlug=(0,filters_js_1.applyFilters)("slug",fullSlug,args),returnParents){return{slug:fullSlug,parents:parents}}return fullSlug};exports.getSlug=getSlug;const getPermalink=(slug="",trailingSlash=!0)=>{let url="";if(config_js_1.config.env.prod&&(url=config_js_1.config.env.prodUrl),!(0,string_js_1.isStringStrict)(slug)||"/"===slug)return`${url}/`;const hasStartSlash=slug.startsWith("/"),hasEndSlash=slug.endsWith("/");return hasStartSlash||(slug=`/${slug}`),!hasEndSlash&&trailingSlash&&(slug=`${slug}/`),`${url}${slug}`};exports.getPermalink=getPermalink;const getLink=(internalLink,externalLink)=>{if((0,object_js_1.isObjectStrict)(internalLink)){const slug=internalLink.slug,res=getSlug({id:internalLink.id,contentType:internalLink.contentType,itemData:internalLink,slug:(0,string_js_1.isString)(slug)?slug:""});return getPermalink(res)}return(0,string_js_1.isStringStrict)(externalLink)?externalLink:""};exports.getLink=getLink;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getPermalink=exports.getLink=exports.getSlug=void 0;const object_js_1=require("../object/object.js"),string_js_1=require("../string/string.js"),filters_js_1=require("../../filters/filters.js"),archive_js_1=require("../archive/archive.js"),store_js_1=require("../../store/store.js"),config_js_1=require("../../config/config.js"),getParentSlug=(id,contentType,parents,taxonomy,locale)=>{const storeParents=(0,store_js_1.getStoreItem)("parents"),parent=storeParents[contentType]?.[id];if(parent){const[parentId,parentSlug,parentTitle]=parent,newParent={id:parentId,slug:parentSlug,title:parentTitle,contentType:contentType,locale:locale};"term"===contentType&&(newParent.taxonomy=taxonomy),parents.unshift(newParent),getParentSlug(parentId,contentType,parents,taxonomy,locale)}},getSlug=(args,returnParents=!1)=>{const{id:id="",slug:initSlug="",contentType:contentType="page",itemData:itemData,params:params}=(0,object_js_1.isObjectStrict)(args)?args:{};let slug=initSlug,typeSlug="",taxSlug="",parentSlugs="",parts=[];const{hierarchicalTypes:hierarchicalTypes,typeInSlug:typeInSlug,localeInSlug:localeInSlug,taxonomyInSlug:taxonomyInSlug}=config_js_1.config,itemLocale=(0,string_js_1.isStringStrict)(itemData?.locale)?itemData.locale:void 0,hasItemLocale=null!=itemLocale,locale=hasItemLocale?localeInSlug[itemLocale]:"",hasLocale=(0,string_js_1.isStringStrict)(locale),taxonomyInfo=(0,archive_js_1.getTaxonomyInfo)(contentType,itemData),isTaxonomy="taxonomy"===contentType,isTerm="term"===contentType,{id:taxonomyId,slug:taxonomySlug,primaryContentType:taxonomyType,useContentTypeSlug:taxonomyUseTypeSlug,isPage:taxonomyIsPage}=taxonomyInfo,archiveType=(0,string_js_1.isStringStrict)(taxonomyType)?taxonomyType:contentType,archiveInfo=(0,archive_js_1.getArchiveInfo)(archiveType,itemLocale),{id:archiveId,slug:archiveSlug,title:archiveTitle,contentType:archiveContentType}=archiveInfo,archiveParents=[];if(archiveSlug&&archiveId&&(typeSlug=archiveSlug,archiveParents.push({contentType:archiveContentType,title:archiveTitle,slug:archiveSlug,id:archiveId,locale:itemLocale})),!isTaxonomy&&!isTerm||taxonomyUseTypeSlug||(typeSlug=""),isTerm&&taxonomySlug&&taxonomyId){taxSlug=taxonomySlug;const taxInSlug=taxonomyInSlug[taxSlug];if((0,string_js_1.isString)(taxInSlug)&&(taxSlug=taxInSlug),(0,object_js_1.isObjectStrict)(taxInSlug)&&hasItemLocale){const localizedTaxSlug=taxInSlug[itemLocale];(0,string_js_1.isString)(localizedTaxSlug)&&(taxSlug=localizedTaxSlug)}taxonomyIsPage&&archiveParents.push({contentType:"taxonomy",locale:itemLocale,...taxonomyInfo})}const contentTypeInSlug=typeInSlug[archiveType];if((0,string_js_1.isString)(contentTypeInSlug)&&(typeSlug=contentTypeInSlug),(0,object_js_1.isObjectStrict)(contentTypeInSlug)&&hasItemLocale){const localizedTypeSlug=contentTypeInSlug[itemLocale];(0,string_js_1.isString)(localizedTypeSlug)&&(typeSlug=localizedTypeSlug)}const isHierarchical=hierarchicalTypes.includes(contentType);let parents=[],hasParents=!1;getParentSlug(isHierarchical?id:archiveId,isHierarchical?contentType:archiveContentType,parents,taxonomyInfo,itemLocale),parents.length&&(parentSlugs=parents.map(({slug:slug})=>slug).join("/"),hasParents=!0),parents=isHierarchical?[...archiveParents,...parents]:[...parents,...archiveParents];const isIndex="index"===slug;if(isIndex&&!returnParents&&(slug=""),hasLocale&&parts.push(locale),hasParents&&!isHierarchical&&parts.push(parentSlugs),typeSlug&&parts.push(typeSlug),taxSlug&&parts.push(taxSlug),hasParents&&isHierarchical&&parts.push(parentSlugs),(0,string_js_1.isStringStrict)(slug)&&!isIndex&&parts.push(slug),parts=(0,filters_js_1.applyFilters)("slugParts",parts,args),params){const paramsStr=new URLSearchParams(params).toString();paramsStr&&parts.push(`?${paramsStr}`)}let fullSlug=parts.length?parts.join("/"):"";if(fullSlug=(0,filters_js_1.applyFilters)("slug",fullSlug,args),returnParents){return{slug:fullSlug,parents:parents}}return fullSlug};exports.getSlug=getSlug;const getPermalink=(slug="",trailingSlash=!0)=>{let url="";if(config_js_1.config.env.prod&&(url=config_js_1.config.env.prodUrl),!(0,string_js_1.isStringStrict)(slug)||"/"===slug)return`${url}/`;const hasStartSlash=slug.startsWith("/"),hasEndSlash=slug.endsWith("/");return hasStartSlash||(slug=`/${slug}`),!hasEndSlash&&trailingSlash&&(slug=`${slug}/`),`${url}${slug}`};exports.getPermalink=getPermalink;const getLink=(internalLink,externalLink)=>{if((0,object_js_1.isObjectStrict)(internalLink)){const slug=internalLink.slug,res=getSlug({id:internalLink.id,contentType:internalLink.contentType,itemData:internalLink,slug:(0,string_js_1.isString)(slug)?slug:""});return getPermalink(res)}return(0,string_js_1.isStringStrict)(externalLink)?externalLink:""};exports.getLink=getLink;