@alanizcreative/formation-static 1.3.0-beta.33 → 1.3.0-beta.35

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 (67) hide show
  1. package/cjs/components/Navigation/Navigation.d.ts +1 -3
  2. package/cjs/components/Navigation/Navigation.js +1 -1
  3. package/cjs/components/Navigation/NavigationTypes.d.ts +3 -0
  4. package/cjs/config/configTypes.d.ts +3 -3
  5. package/cjs/contentful/contentfulData.js +1 -1
  6. package/cjs/render/render.d.ts +3 -3
  7. package/cjs/render/render.js +1 -1
  8. package/cjs/render/renderInline.js +1 -1
  9. package/cjs/render/renderTypes.d.ts +4 -11
  10. package/cjs/serverless/Ajax/Ajax.d.ts +2 -2
  11. package/cjs/serverless/Ajax/Ajax.js +1 -1
  12. package/cjs/serverless/Ajax/AjaxTypes.d.ts +4 -3
  13. package/cjs/serverless/serverless.d.ts +9 -5
  14. package/cjs/serverless/serverless.js +1 -1
  15. package/cjs/serverless/serverlessTypes.d.ts +11 -30
  16. package/cjs/store/store.js +1 -1
  17. package/cjs/store/storeTypes.d.ts +8 -8
  18. package/cjs/utils/ResponseError/ResponseError.d.ts +1 -1
  19. package/cjs/utils/ResponseError/ResponseError.js +1 -1
  20. package/cjs/utils/image/image.d.ts +1 -1
  21. package/cjs/utils/image/image.js +1 -1
  22. package/cjs/utils/image/imageTypes.d.ts +1 -0
  23. package/cjs/utils/link/link.js +1 -1
  24. package/cjs/utils/path/path.js +1 -1
  25. package/cjs/wordpress/wordpressData.js +1 -1
  26. package/lib/components/Navigation/Navigation.d.ts +1 -3
  27. package/lib/components/Navigation/Navigation.js +1 -1
  28. package/lib/components/Navigation/NavigationTypes.d.ts +3 -0
  29. package/lib/config/configTypes.d.ts +3 -3
  30. package/lib/contentful/contentfulData.js +1 -1
  31. package/lib/render/render.d.ts +3 -3
  32. package/lib/render/render.js +1 -1
  33. package/lib/render/renderInline.js +1 -1
  34. package/lib/render/renderTypes.d.ts +4 -11
  35. package/lib/serverless/Ajax/Ajax.d.ts +2 -2
  36. package/lib/serverless/Ajax/Ajax.js +1 -1
  37. package/lib/serverless/Ajax/AjaxTypes.d.ts +4 -3
  38. package/lib/serverless/serverless.d.ts +9 -5
  39. package/lib/serverless/serverless.js +1 -1
  40. package/lib/serverless/serverlessTypes.d.ts +11 -30
  41. package/lib/store/store.js +1 -1
  42. package/lib/store/storeTypes.d.ts +8 -8
  43. package/lib/utils/ResponseError/ResponseError.d.ts +1 -1
  44. package/lib/utils/ResponseError/ResponseError.js +1 -1
  45. package/lib/utils/image/image.d.ts +1 -1
  46. package/lib/utils/image/image.js +1 -1
  47. package/lib/utils/image/imageTypes.d.ts +1 -0
  48. package/lib/utils/link/link.js +1 -1
  49. package/lib/utils/path/path.js +1 -1
  50. package/lib/wordpress/wordpressData.js +1 -1
  51. package/package.json +1 -2
  52. package/cjs/serverless/Preview/Preview.d.ts +0 -5
  53. package/cjs/serverless/Preview/Preview.js +0 -1
  54. package/cjs/serverless/Reload/Reload.d.ts +0 -5
  55. package/cjs/serverless/Reload/Reload.js +0 -1
  56. package/cjs/serverless/Reload/ReloadTypes.d.ts +0 -5
  57. package/cjs/serverless/Reload/ReloadTypes.js +0 -1
  58. package/cjs/serverless/serverlessFiles.d.ts +0 -3
  59. package/cjs/serverless/serverlessFiles.js +0 -1
  60. package/lib/serverless/Preview/Preview.d.ts +0 -5
  61. package/lib/serverless/Preview/Preview.js +0 -1
  62. package/lib/serverless/Reload/Reload.d.ts +0 -5
  63. package/lib/serverless/Reload/Reload.js +0 -1
  64. package/lib/serverless/Reload/ReloadTypes.d.ts +0 -5
  65. package/lib/serverless/Reload/ReloadTypes.js +0 -1
  66. package/lib/serverless/serverlessFiles.d.ts +0 -3
  67. package/lib/serverless/serverlessFiles.js +0 -1
@@ -3,12 +3,10 @@ declare class Navigation<L extends string = string> {
3
3
  #private;
4
4
  navigations: NavigationList[];
5
5
  items: NavigationItem[];
6
- currentLink: string;
7
- currentType: string[];
8
6
  init: boolean;
9
7
  constructor(props: NavigationProps);
10
8
  getOutput(location: L, args?: NavigationOutputArgs, maxDepth?: number): string;
11
- getBreadcrumbs(items: NavigationBreadcrumbItem[], current?: string, args?: NavigationBreadcrumbOutputArgs): string;
9
+ getBreadcrumbs(items: NavigationBreadcrumbItem[], args?: NavigationBreadcrumbOutputArgs): string;
12
10
  getItemsById(): NavigationItemsById;
13
11
  getNavigationsByLocation(): NavigationByLocation<L>;
14
12
  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=[];currentLink="";currentType=[];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,currentLink:currentLink,currentType:currentType}=props;return!(!(0,array_js_1.isArrayStrict)(navigations)||!(0,array_js_1.isArrayStrict)(items))&&(this.navigations=navigations,this.items=items,this.currentLink=(0,string_js_1.isStringStrict)(currentLink)?currentLink:"",this.currentType=((0,array_js_1.isArrayStrict)(currentType)?currentType:[currentType]).map((type=>(0,contentType_js_1.normalizeContentType)(type))),this.items.forEach((item=>{item&&this.#itemsById.set(item.id,item)})),this.items.forEach((item=>{const info=this.#getItemInfo(item);info&&this.#itemsById.set(info.id,info)})),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)}#getItemInfo(item){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 props={id:id,title:title,link:(0,string_js_1.isStringStrict)(link)?link:(0,link_js_1.getLink)(internalLink,externalLink),external:external};(0,string_js_1.isStringStrict)(props.link)&&!external&&(props.current=props.link===this.currentLink);const internalId=internalLink?.id;if((0,string_js_1.isStringStrict)(internalId)){let isArchiveCurrent=!1;for(const type of this.currentType){if(internalId===(0,archive_js_1.getArchiveMeta)(type,internalLink?.locale).id){isArchiveCurrent=!0;break}}props.archiveCurrent=isArchiveCurrent}let descendentCurrent=!1;if((0,array_js_1.isArrayStrict)(children)){const storeChildren=[];descendentCurrent=this.#recurseItemChildren(children,storeChildren),props.children=storeChildren}return descendentCurrent&&(props.descendentCurrent=descendentCurrent),{...item,...props}}#recurseItemChildren(children,output){let childCurrent=!1;return children.forEach((child=>{const info=this.#getItemInfo(this.#itemsById.get(child?.id));if(!info)return;const{current:current=!1,archiveCurrent:archiveCurrent=!1}=info;(current||archiveCurrent)&&(childCurrent=!0),output.push(info)})),childCurrent}#getItems(items=[]){const resItems=[];return items.forEach((item=>{if(!(0,object_js_1.isObjectStrict)(item))return;const{id:id}=item,storedItem=this.#itemsById.get(id);storedItem&&resItems.push(storedItem)})),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{title:title,link:link,external:external=!1,children:children,current:current=!1,descendentCurrent:descendentCurrent=!1,archiveCurrent:archiveCurrent=!1}=item,filterArgs={args:args,item:item,output:output,index:index,items:items,depth:depth};(0,function_js_1.isFunction)(args.filterBeforeItem)&&args.filterBeforeItem(filterArgs);const 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 items=nav.items,normalizedItems=this.#getItems(items);if(!normalizedItems.length)return"";args=Object.assign({listTag:"",listClass:"",listAttr:"",itemTag:"",itemClass:"",itemAttr:"",linkClass:"",internalLinkClass:"",linkAttr:"",dataAttr:"",depthAttr:!1,filterBeforeList:()=>{},filterAfterList:()=>{},filterBeforeItem:()=>{},filterAfterItem:()=>{},filterBeforeLink:()=>{},filterAfterLink:()=>{},filterBeforeLinkText:()=>{},filterAfterLinkText:()=>{}},(0,object_js_1.isObjectStrict)(args)?args:{});const output={ref:""};return this.#recurseOutput(normalizedItems,output,args,0,maxDepth),output.ref}getBreadcrumbs(items,current,args){if(!(0,array_js_1.isArrayStrict)(items))return"";args=Object.assign({listClass:"",listAttr:"",itemClass:"",itemAttr:"",linkClass:"",internalLinkClass:"",linkAttr:"",currentClass:"",currentLabel:"",a11yClass:"a-hide-vis",dataAttr:"",filterBeforeLink:()=>{},filterAfterLink:()=>{}},(0,object_js_1.isObjectStrict)(args)?args:{});const 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{title:title,link:link,external:external=!1,children:children,current:current=!1,descendentCurrent:descendentCurrent=!1,archiveCurrent:archiveCurrent=!1}=item,filterArgs={args:args,item:item,output:output,index:index,items:items,depth:depth};(0,function_js_1.isFunction)(args.filterBeforeItem)&&args.filterBeforeItem(filterArgs);const 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;
@@ -60,6 +60,8 @@ export interface NavigationOutputFilterArgs {
60
60
  export type NavigationOutputListFilter = (args: NavigationOutputListFilterArgs) => void;
61
61
  export type NavigationFilter = (args: NavigationOutputFilterArgs) => void;
62
62
  export interface NavigationOutputArgs extends NavigationOutputBaseArgs {
63
+ currentLink?: string;
64
+ currentType?: string | string[];
63
65
  listTag?: string;
64
66
  itemTag?: string;
65
67
  filterBeforeList?: NavigationOutputListFilter;
@@ -77,6 +79,7 @@ export interface NavigationBreadcrumbOutputFilterArgs {
77
79
  }
78
80
  export type NavigationBreadcrumbOutputFilter = (args: NavigationBreadcrumbOutputFilterArgs) => void;
79
81
  export interface NavigationBreadcrumbOutputArgs extends NavigationOutputBaseArgs {
82
+ current?: string;
80
83
  currentClass?: string;
81
84
  currentLabel?: string;
82
85
  a11yClass?: string;
@@ -1,4 +1,4 @@
1
- import type { Source, GenericStrings } from '../global/globalTypes.js';
1
+ import type { Source, GenericStrings, Generic } from '../global/globalTypes.js';
2
2
  export interface ConfigMeta {
3
3
  description: string;
4
4
  image: string;
@@ -40,7 +40,7 @@ export interface ConfigImage {
40
40
  sizes: number[];
41
41
  quality: number;
42
42
  }
43
- export type ConfigFilter = (config: Config, env: GenericStrings | NodeJS.Process['env']) => Config;
43
+ export type ConfigFilter = (config: Config, env: Generic) => Config;
44
44
  export interface Config {
45
45
  namespace: string;
46
46
  source: Source;
@@ -63,4 +63,4 @@ export interface Config {
63
63
  filter: ConfigFilter;
64
64
  }
65
65
  export type ConfigSet = (args: Partial<Config>) => Config;
66
- export type ConfigSetFilter = (env: GenericStrings | NodeJS.Process['env']) => Config;
66
+ export type ConfigSetFilter = (env: Generic) => Config;
@@ -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.getAllContentfulData=exports.getContentfulData=void 0;const contentful_resolve_response_1=__importDefault(require("contentful-resolve-response")),filter_js_1=require("../utils/filter/filter.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"),config_js_1=require("../config/config.js"),store_js_1=require("../store/store.js"),contentfulDataNormal_js_1=require("./contentfulDataNormal.js"),getContentfulData=async(key,params)=>{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,filter_js_1.applyFilters)("cacheData",void 0,cacheDataFilterArgs,!0);if((0,object_js_1.isObject)(cacheData))return structuredClone(cacheData)}const{space:space,devCredential:devCredential,prodCredential:prodCredential,devHost:devHost,prodHost:prodHost,env:env="master"}=config_js_1.config.cms;let accessToken=devCredential,host=devHost;if(config_js_1.config.env.prod&&(accessToken=prodCredential,host=prodHost),!(0,string_js_1.isStringStrict)(space)||!(0,string_js_1.isStringStrict)(accessToken)||!(0,string_js_1.isStringStrict)(host))throw new Error("No credentials");let url=`https://${host}/spaces/${space}/environments/${env}/entries?access_token=${accessToken}`;if((0,object_js_1.isObjectStrict)(params))for(const[key,value]of Object.entries(params))url+=`&${key}=${value.toString()}`;const resp=await fetch(url),data=await resp.json();if(!resp.ok){const message=(0,string_js_1.isStringStrict)(data.message)?data.message:"Bad fetch response";throw new Error(message,{cause:data})}const resolvedData=(0,contentful_resolve_response_1.default)(data),newItems=(0,contentfulDataNormal_js_1.normalizeContentfulData)(resolvedData),{total:total,limit:limit,skip:skip}=data,newData={items:newItems,total:total,limit:limit,skip:skip};if(config_js_1.config.env.cache){const cacheDataFilterArgs={key:key,type:"set",data:data};await(0,filter_js_1.applyFilters)("cacheData",newData,cacheDataFilterArgs,!0)}return newData};exports.getContentfulData=getContentfulData;const getAllContentfulData=async args=>{const{serverlessData:serverlessData,previewData:previewData}=(0,object_js_1.isObjectStrict)(args)?args:{};let allData={navigationItem:[],navigation:[],content:{page:[]}};const isServerless=null!=serverlessData,isPreview=null!=previewData,contentfulDataFilterArgs={serverlessData:serverlessData,previewData:previewData},cmsLocales=config_js_1.config.cms.locales||[],defaultLocale=cmsLocales[0],paramLocales=isPreview?[]:[...cmsLocales];if(0===paramLocales.length&&paramLocales.push(""),isServerless||isPreview){let locale,contentType="",id="";if(isServerless){const item=(0,store_js_1.getStoreItem)("slugs")[serverlessData.path];(0,object_js_1.isObjectStrict)(item)&&(id=(0,string_js_1.isStringStrict)(item.id)?item.id:"",contentType=(0,string_js_1.isStringStrict)(item.contentType)?item.contentType:"",locale=(0,string_js_1.isStringStrict)(item.locale)?item.locale:"")}if(isPreview&&(id=previewData.id,contentType=previewData.contentType,locale=previewData.locale),id){const key=`serverless_${id}_${contentType}`,params={content_type:contentType,"sys.id":id,include:10};locale&&locale!==defaultLocale&&(params.locale=locale,paramLocales[0]=locale);const data=await getContentfulData(key,params),{items:items}=data;(0,array_js_1.isArray)(items)&&(allData.content[contentType]=items)}}if(!isServerless){const partial=config_js_1.config.partialTypes;for(const contentType of partial){const key=`all_${contentType}`;let newItems=[];for(const locale of paramLocales){const params={content_type:contentType};locale&&locale!==defaultLocale&&(params.locale=locale);const newData=await getContentfulData(key,params);let{items:items}=newData;items=(0,filter_js_1.applyFilters)("contentfulData",items,contentfulDataFilterArgs),(0,array_js_1.isArray)(items)&&(newItems=[...newItems,...items])}allData[contentType]=newItems}}if(!isServerless&&!isPreview){const whole=config_js_1.config.wholeTypes;for(const contentType of whole){const key=`all_${contentType}`;let newItems=[];for(const locale of paramLocales){const params={content_type:contentType,include:10};locale&&locale!==defaultLocale&&(params.locale=locale);const newData=await getContentfulData(key,params);let{items:items}=newData;items=(0,filter_js_1.applyFilters)("contentfulData",items,contentfulDataFilterArgs),(0,array_js_1.isArray)(items)&&(newItems=[...newItems,...items])}allData.content[contentType]=newItems}}return allData=(0,filter_js_1.applyFilters)("allData",allData,{type:"contentful",serverlessData:serverlessData,previewData:previewData}),allData};exports.getAllContentfulData=getAllContentfulData;
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getAllContentfulData=exports.getContentfulData=void 0;const contentful_resolve_response_1=__importDefault(require("contentful-resolve-response")),filter_js_1=require("../utils/filter/filter.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"),config_js_1=require("../config/config.js"),store_js_1=require("../store/store.js"),contentfulDataNormal_js_1=require("./contentfulDataNormal.js"),getContentfulData=async(key,params)=>{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,filter_js_1.applyFilters)("cacheData",void 0,cacheDataFilterArgs,!0);if((0,object_js_1.isObject)(cacheData))return structuredClone(cacheData)}const{space:space,devCredential:devCredential,prodCredential:prodCredential,devHost:devHost,prodHost:prodHost,env:env="master"}=config_js_1.config.cms;let accessToken=devCredential,host=devHost;if(config_js_1.config.env.prod&&(accessToken=prodCredential,host=prodHost),!(0,string_js_1.isStringStrict)(space)||!(0,string_js_1.isStringStrict)(accessToken)||!(0,string_js_1.isStringStrict)(host))throw new Error("No credentials");let url=`https://${host}/spaces/${space}/environments/${env}/entries?access_token=${accessToken}`;if((0,object_js_1.isObjectStrict)(params))for(const[key,value]of Object.entries(params))url+=`&${key}=${value.toString()}`;const resp=await fetch(url),data=await resp.json();if(!resp.ok){const message=(0,string_js_1.isStringStrict)(data.message)?data.message:"Bad fetch response";throw new Error(message,{cause:data})}const resolvedData=(0,contentful_resolve_response_1.default)(data),newItems=(0,contentfulDataNormal_js_1.normalizeContentfulData)(resolvedData),{total:total,limit:limit,skip:skip}=data,newData={items:newItems,total:total,limit:limit,skip:skip};if(config_js_1.config.env.cache){const cacheDataFilterArgs={key:key,type:"set",data:data};await(0,filter_js_1.applyFilters)("cacheData",newData,cacheDataFilterArgs,!0)}return newData};exports.getContentfulData=getContentfulData;const getAllContentfulData=async args=>{const{serverlessData:serverlessData,previewData:previewData}=(0,object_js_1.isObjectStrict)(args)?args:{};let allData={navigationItem:[],navigation:[],content:{page:[]}};const isServerless=null!=serverlessData,isPreview=null!=previewData,contentfulDataFilterArgs={serverlessData:serverlessData,previewData:previewData},cmsLocales=config_js_1.config.cms.locales||[],defaultLocale=cmsLocales[0],paramLocales=isPreview?[]:[...cmsLocales];if(0===paramLocales.length&&paramLocales.push(""),isServerless||isPreview){let locale,contentType="",id="";if(isServerless){const item=(0,store_js_1.getStoreItem)("slugs")[serverlessData.path];if((0,array_js_1.isArray)(item)){const[itemId,itemContentType,itemLocale]=item;id=itemId||"",contentType=itemContentType||"",locale=itemLocale||""}}if(isPreview&&(id=previewData.id,contentType=previewData.contentType,locale=previewData.locale),id){const key=`serverless_${id}_${contentType}`,params={content_type:contentType,"sys.id":id,include:10};locale&&locale!==defaultLocale&&(params.locale=locale,paramLocales[0]=locale);const data=await getContentfulData(key,params),{items:items}=data;(0,array_js_1.isArray)(items)&&(allData.content[contentType]=items)}}if(!isServerless){const partial=config_js_1.config.partialTypes;for(const contentType of partial){const key=`all_${contentType}`;let newItems=[];for(const locale of paramLocales){const params={content_type:contentType};locale&&locale!==defaultLocale&&(params.locale=locale);const newData=await getContentfulData(key,params);let{items:items}=newData;items=(0,filter_js_1.applyFilters)("contentfulData",items,contentfulDataFilterArgs),(0,array_js_1.isArray)(items)&&(newItems=[...newItems,...items])}allData[contentType]=newItems}}if(!isServerless&&!isPreview){const whole=config_js_1.config.wholeTypes;for(const contentType of whole){const key=`all_${contentType}`;let newItems=[];for(const locale of paramLocales){const params={content_type:contentType,include:10};locale&&locale!==defaultLocale&&(params.locale=locale);const newData=await getContentfulData(key,params);let{items:items}=newData;items=(0,filter_js_1.applyFilters)("contentfulData",items,contentfulDataFilterArgs),(0,array_js_1.isArray)(items)&&(newItems=[...newItems,...items])}allData.content[contentType]=newItems}}return allData=(0,filter_js_1.applyFilters)("allData",allData,{type:"contentful",serverlessData:serverlessData,previewData:previewData}),allData};exports.getAllContentfulData=getAllContentfulData;
@@ -1,11 +1,11 @@
1
- import type { RenderContentArgs, RenderItemArgs, RenderItemReturn, RenderArgs, RenderReturn, RenderFunctions, RenderLayout, RenderHttpError, RenderNavigations, RenderFunctionsArgs } from './renderTypes.js';
1
+ import type { RenderContentArgs, RenderItemArgs, RenderItemReturn, RenderArgs, RenderReturn, RenderFunctions, RenderLayout, RenderHttpError, RenderNavigation, RenderFunctionsArgs } from './renderTypes.js';
2
2
  import type { RefString } from '../global/globalTypes.js';
3
3
  declare let renderFunctions: RenderFunctions;
4
4
  declare let renderLayout: RenderLayout;
5
5
  declare let renderHttpError: RenderHttpError;
6
- declare let renderNavigations: RenderNavigations;
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
9
  declare const renderItem: (args: RenderItemArgs, _contentType?: string) => Promise<RenderItemReturn | null>;
10
10
  declare const render: (args: RenderArgs) => Promise<RenderReturn[] | RenderReturn>;
11
- export { render, renderItem, renderContent, renderFunctions, renderLayout, renderNavigations, renderHttpError, setRenderFunctions };
11
+ export { render, renderItem, renderContent, renderFunctions, renderLayout, renderNavigation, renderHttpError, setRenderFunctions };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.setRenderFunctions=exports.renderHttpError=exports.renderNavigations=exports.renderLayout=exports.renderFunctions=exports.renderContent=exports.renderItem=exports.render=void 0;const action_js_1=require("../utils/action/action.js"),filter_js_1=require("../utils/filter/filter.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"),number_js_1=require("../utils/number/number.js"),function_js_1=require("../utils/function/function.js"),shortcode_js_1=require("../utils/shortcode/shortcode.js"),tag_js_1=require("../utils/tag/tag.js"),store_js_1=require("../store/store.js"),redirects_js_1=require("../redirects/redirects.js"),serverless_js_1=require("../serverless/serverless.js"),scriptStyle_js_1=require("../utils/scriptStyle/scriptStyle.js"),Container_js_1=require("../layouts/Container/Container.js"),Column_js_1=require("../layouts/Column/Column.js"),Form_js_1=require("../objects/Form/Form.js"),FormField_js_1=require("../objects/Form/FormField.js"),FormOption_js_1=require("../objects/Form/FormOption.js"),RichText_js_1=require("../text/RichText/RichText.js"),config_js_1=require("../config/config.js"),defaultRenderFunctions={container:Container_js_1.Container,column:Column_js_1.Column,form:Form_js_1.Form,formField:FormField_js_1.FormField,formOption:FormOption_js_1.FormOption,richText:RichText_js_1.RichText};let renderFunctions={...defaultRenderFunctions};exports.renderFunctions=renderFunctions;let renderLayout=()=>"";exports.renderLayout=renderLayout;let renderHttpError=()=>"";exports.renderHttpError=renderHttpError;let renderNavigations=()=>{};exports.renderNavigations=renderNavigations;const setRenderFunctions=args=>{if(!(0,object_js_1.isObjectStrict)(args))return!1;const{functions:functions,layout:layout,navigations:navigations,httpError:httpError}=args;return!(!(0,object_js_1.isObjectStrict)(functions)||!(0,function_js_1.isFunction)(layout))&&(exports.renderFunctions=renderFunctions={...defaultRenderFunctions,...functions},exports.renderLayout=renderLayout=layout,(0,function_js_1.isFunction)(navigations)&&(exports.renderNavigations=renderNavigations=navigations),(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=[],navigations:navigations,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,navigations:navigations,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,filter_js_1.applyFilters)("renderContent",[renderStart,renderEnd],renderContentFilterArgs,!0);if((0,string_js_1.isString)(filterRenderStart)&&(renderStart=filterRenderStart),(0,string_js_1.isString)(filterRenderEnd)&&(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,navigations:navigations,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=[];scriptStyle_js_1.scripts.deps.clear(),scriptStyle_js_1.scripts.item.clear(),scriptStyle_js_1.scripts.meta={},scriptStyle_js_1.styles.deps.clear(),scriptStyle_js_1.styles.item.clear();const renderItemStartArgs={id:id,itemData:{...item},contentType:contentType,itemContains:new Set,itemHeadings:[],serverlessData:serverlessData,previewData:previewData};await(0,action_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 taxonomy="term"===contentType?item.taxonomy:"taxonomy"===contentType?item:{},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;item.baseUrl=permalink,meta.url=permalink,meta.canonical=permalink;let formattedSlug="index"!==slug&&""!==slug?`/${slug}/`:"/";slugIsHtml&&(formattedSlug=slug);const cmsLocales=config_js_1.config.cms.locales,slugData={id:id,contentType:(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.locale=locale)}(0,store_js_1.setStoreItem)("slugs",slugData,slugIsHtml?`/${slug}`:formattedSlug);const index="index"===item.slug;let navigations,itemServerlessData;if(meta.isIndex=index,(0,function_js_1.isFunction)(renderNavigations)){let currentType=contentType;(0,object_js_1.isObjectStrict)(taxonomy)&&(0,array_js_1.isArrayStrict)(taxonomy.contentTypes)&&(currentType=taxonomy.contentTypes),navigations=await renderNavigations({navigations:(0,store_js_1.getStoreItem)("navigations"),items:(0,store_js_1.getStoreItem)("navigationItems"),currentLink:permalink,currentType:currentType,title:title,parents:parents})}if((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,navigations:navigations,previewData:previewData})),contentOutput=await(0,shortcode_js_1.doShortcodes)(contentOutput,itemData);const pag=itemData.pagination;if((0,object_js_1.isObjectStrict)(pag)){const{current:current=0,total:total=1,currentFilters:currentFilters,prevFilters:prevFilters,nextFilters:nextFilters}=pag;if(meta.canonicalParams=`${current>1?`?page=${current}`:""}${(0,string_js_1.isString)(currentFilters)?currentFilters:""}`,(0,string_js_1.isStringStrict)(pag.title)&&(meta.paginationTitle=pag.title),(0,number_js_1.isNumber)(pag.prev)&&pag.prev>=1){slugArgs.page=pag.prev;const p=(0,link_js_1.getSlug)(slugArgs,!0);meta.prev=`${(0,link_js_1.getPermalink)(p.slug,1===pag.prev)}${(0,string_js_1.isString)(prevFilters)?prevFilters:""}`}if((0,number_js_1.isNumber)(pag.next)&&pag.next>1&&pag.next<total){slugArgs.page=pag.next;const n=(0,link_js_1.getSlug)(slugArgs,!0);meta.next=`${(0,link_js_1.getPermalink)(n.slug,!1)}${(0,string_js_1.isString)(nextFilters)?nextFilters:""}`}serverlessRender=!0}let layoutOutput="";if((0,function_js_1.isFunction)(renderLayout)){const layoutArgs={id:id,meta:meta,navigations:navigations,contentType:contentType,content:contentOutput,slug:formattedSlug,itemContains:itemContains,itemHeadings:itemHeadings,itemData:itemData,serverlessData:serverlessData,previewData:previewData};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,filter_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,action_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(scriptStyle_js_1.scripts.deps.clear(),scriptStyle_js_1.scripts.item.clear(),scriptStyle_js_1.scripts.meta={},scriptStyle_js_1.styles.deps.clear(),scriptStyle_js_1.styles.item.clear(),!(0,object_js_1.isObjectStrict)(allData))return[];const{redirect:redirect,content:content}=allData;await(0,action_js_1.doActions)("renderStart",args,!0);const data=[];isServerless||(0,store_js_1.setStoreData)(allData),(0,redirects_js_1.setRedirects)(redirect),serverless_js_1.serverlessRoutes.reload=[];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,filter_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&&serverless_js_1.serverlessRoutes.reload.push({path:itemData.slug.replace(/^\/|\/$/gm,"")}))}const[outputItem]=data,output=(isServerless||isPreview)&&outputItem?outputItem:data;return await(0,action_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.renderItem=exports.render=void 0;const action_js_1=require("../utils/action/action.js"),filter_js_1=require("../utils/filter/filter.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"),number_js_1=require("../utils/number/number.js"),function_js_1=require("../utils/function/function.js"),shortcode_js_1=require("../utils/shortcode/shortcode.js"),tag_js_1=require("../utils/tag/tag.js"),store_js_1=require("../store/store.js"),redirects_js_1=require("../redirects/redirects.js"),scriptStyle_js_1=require("../utils/scriptStyle/scriptStyle.js"),Container_js_1=require("../layouts/Container/Container.js"),Column_js_1=require("../layouts/Column/Column.js"),Form_js_1=require("../objects/Form/Form.js"),FormField_js_1=require("../objects/Form/FormField.js"),FormOption_js_1=require("../objects/Form/FormOption.js"),RichText_js_1=require("../text/RichText/RichText.js"),config_js_1=require("../config/config.js"),defaultRenderFunctions={container:Container_js_1.Container,column:Column_js_1.Column,form:Form_js_1.Form,formField:FormField_js_1.FormField,formOption:FormOption_js_1.FormOption,richText:RichText_js_1.RichText};let renderFunctions={...defaultRenderFunctions};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={...defaultRenderFunctions,...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,filter_js_1.applyFilters)("renderContent",[renderStart,renderEnd],renderContentFilterArgs,!0);if((0,string_js_1.isString)(filterRenderStart)&&(renderStart=filterRenderStart),(0,string_js_1.isString)(filterRenderEnd)&&(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=[];scriptStyle_js_1.scripts.deps.clear(),scriptStyle_js_1.scripts.item.clear(),scriptStyle_js_1.scripts.meta={},scriptStyle_js_1.styles.deps.clear(),scriptStyle_js_1.styles.item.clear();const renderItemStartArgs={id:id,itemData:{...item},contentType:contentType,itemContains:new Set,itemHeadings:[],serverlessData:serverlessData,previewData:previewData};await(0,action_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 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)}(0,store_js_1.setStoreItem)("slugs",slugData,slugIsHtml?`/${slug}`:formattedSlug);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,shortcode_js_1.doShortcodes)(contentOutput,itemData);const pag=itemData.pagination;if((0,object_js_1.isObjectStrict)(pag)){const{current:current=0,total:total=1,currentFilters:currentFilters,prevFilters:prevFilters,nextFilters:nextFilters}=pag;if(meta.canonicalParams=`${current>1?`?page=${current}`:""}${(0,string_js_1.isString)(currentFilters)?currentFilters:""}`,(0,string_js_1.isStringStrict)(pag.title)&&(meta.paginationTitle=pag.title),(0,number_js_1.isNumber)(pag.prev)&&pag.prev>=1){slugArgs.page=pag.prev;const p=(0,link_js_1.getSlug)(slugArgs,!0);meta.prev=`${(0,link_js_1.getPermalink)(p.slug,1===pag.prev)}${(0,string_js_1.isString)(prevFilters)?prevFilters:""}`}if((0,number_js_1.isNumber)(pag.next)&&pag.next>1&&pag.next<total){slugArgs.page=pag.next;const n=(0,link_js_1.getSlug)(slugArgs,!0);meta.next=`${(0,link_js_1.getPermalink)(n.slug,!1)}${(0,string_js_1.isString)(nextFilters)?nextFilters:""}`}serverlessRender=!0}let layoutOutput="";if((0,function_js_1.isFunction)(renderLayout)){const layoutArgs={id:id,meta:meta,contentType:contentType,content:contentOutput,slug:formattedSlug,itemContains:itemContains,itemHeadings:itemHeadings,itemData:itemData,serverlessData:serverlessData,previewData:previewData};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,filter_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,action_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(scriptStyle_js_1.scripts.deps.clear(),scriptStyle_js_1.scripts.item.clear(),scriptStyle_js_1.scripts.meta={},scriptStyle_js_1.styles.deps.clear(),scriptStyle_js_1.styles.item.clear(),!(0,object_js_1.isObjectStrict)(allData))return[];const{redirect:redirect,content:content}=allData;await(0,action_js_1.doActions)("renderStart",args,!0);const data=[];isServerless||(0,store_js_1.setStoreData)(allData),(0,function_js_1.isFunction)(renderNavigation)&&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,filter_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,action_js_1.doActions)("renderEnd",{...args,data:output},!0),output};exports.render=render;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.renderInlineItem=exports.renderInlineContent=void 0;const render_js_1=require("./render.js"),object_js_1=require("../utils/object/object.js"),string_js_1=require("../utils/string/string.js"),renderInlineContent=async(content,args)=>await(0,render_js_1.renderContent)({content:content,parents:[],itemData:{},itemContains:new Set,itemHeadings:[],navigations:void 0,...args});exports.renderInlineContent=renderInlineContent;const renderInlineItem=async item=>{if(!(0,object_js_1.isObjectStrict)(item))return"";const res=await(0,render_js_1.renderItem)({item:item});return(0,string_js_1.isString)(res?.data?.output)?res.data.output:""};exports.renderInlineItem=renderInlineItem;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.renderInlineItem=exports.renderInlineContent=void 0;const render_js_1=require("./render.js"),object_js_1=require("../utils/object/object.js"),string_js_1=require("../utils/string/string.js"),renderInlineContent=async(content,args)=>await(0,render_js_1.renderContent)({content:content,parents:[],itemData:{},itemContains:new Set,itemHeadings:[],...args});exports.renderInlineContent=renderInlineContent;const renderInlineItem=async item=>{if(!(0,object_js_1.isObjectStrict)(item))return"";const res=await(0,render_js_1.renderItem)({item:item});return(0,string_js_1.isString)(res?.data?.output)?res.data.output:""};exports.renderInlineItem=renderInlineItem;
@@ -1,6 +1,5 @@
1
- import type { Generic, GenericStrings, InternalLink, Taxonomy, Parent, ParentArgs } from '../global/globalTypes.js';
1
+ import type { Generic, GenericStrings, InternalLink, Taxonomy, ParentArgs } from '../global/globalTypes.js';
2
2
  import type { NavigationList, NavigationItem, NavigationProps } from '../components/Navigation/NavigationTypes.js';
3
- import type { Navigation } from '../components/Navigation/Navigation.js';
4
3
  import type { RichTextHeading } from '../text/RichText/RichTextTypes.js';
5
4
  import type { PaginationData } from '../components/Pagination/PaginationTypes.js';
6
5
  export interface RenderMeta {
@@ -65,11 +64,7 @@ export interface RenderTemplate {
65
64
  namedContent: Record<string, RenderItem>;
66
65
  templates: RenderItem[];
67
66
  }
68
- export interface RenderNavigationsArgs extends NavigationProps {
69
- title?: string;
70
- parents: Parent[];
71
- }
72
- export type RenderNavigations = (args: RenderNavigationsArgs) => Navigation | undefined | Promise<Navigation | undefined>;
67
+ export type RenderNavigation = (args: NavigationProps) => void | Promise<void>;
73
68
  export interface RenderHttpErrorArgs extends Generic {
74
69
  code: number;
75
70
  }
@@ -79,7 +74,6 @@ export interface RenderFunctionArgs<T = any, R = RenderItem, P = ParentArgs, C =
79
74
  parents?: P[];
80
75
  itemData?: R;
81
76
  itemContains?: Set<string>;
82
- navigations?: Navigation;
83
77
  serverlessData?: RenderServerlessData;
84
78
  previewData?: RenderPreviewData;
85
79
  headings?: RichTextHeading[];
@@ -90,13 +84,12 @@ export type RenderFunctions<T = any, R = RenderItem, P = ParentArgs, C = any> =
90
84
  export interface RenderFunctionsArgs {
91
85
  functions: RenderFunctions;
92
86
  layout: RenderLayout;
93
- navigations?: RenderNavigations;
87
+ navigation?: RenderNavigation;
94
88
  httpError?: RenderHttpError;
95
89
  }
96
90
  export interface RenderContentArgs extends RenderBase {
97
91
  content: RenderItem[];
98
92
  parents: ParentArgs[];
99
- navigations?: Navigation;
100
93
  headingsIndex?: number;
101
94
  depth?: number;
102
95
  }
@@ -112,6 +105,7 @@ export interface RenderItem extends Generic, Partial<Taxonomy> {
112
105
  content?: RenderItem[] | string;
113
106
  meta?: RenderMeta;
114
107
  baseUrl?: string;
108
+ baseType?: string | string[];
115
109
  archive?: string;
116
110
  parent?: RenderItem;
117
111
  taxonomy?: Taxonomy;
@@ -150,7 +144,6 @@ export interface RenderItemActionArgs extends RenderBase {
150
144
  export interface RenderLayoutArgs {
151
145
  id: string;
152
146
  meta: RenderMeta;
153
- navigations?: Navigation;
154
147
  contentType: string;
155
148
  content: string;
156
149
  slug: string;
@@ -1,3 +1,3 @@
1
- import type { ServerlessContext, ServerlessSetup } from '../serverlessTypes.js';
2
- declare const Ajax: (context: ServerlessContext, setupServerless: ServerlessSetup) => Promise<Response>;
1
+ import type { Generic } from '../../global/globalTypes.js';
2
+ declare const Ajax: (request: Request, env: Generic) => Promise<Response>;
3
3
  export { Ajax };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Ajax=void 0;const ResponseError_js_1=require("../../utils/ResponseError/ResponseError.js"),filter_js_1=require("../../utils/filter/filter.js"),object_js_1=require("../../utils/object/object.js"),string_js_1=require("../../utils/string/string.js"),number_js_1=require("../../utils/number/number.js"),function_js_1=require("../../utils/function/function.js"),print_js_1=require("../../utils/print/print.js"),config_js_1=require("../../config/config.js"),serverless_js_1=require("../serverless.js"),Ajax=async(context,setupServerless)=>{try{await setupServerless(context,"ajax");const request=context.request,data=await request.json();if(!(0,object_js_1.isObjectStrict)(data))throw new Error("Data not an object");const honeypotName=`${config_js_1.config.namespace}_asi`;if((0,object_js_1.isObjectStrict)(data.inputs?.[honeypotName])){const honeypotValue=data.inputs[honeypotName].value;if((0,string_js_1.isStringStrict)(honeypotValue)){const options={status:200,headers:{"Content-Type":"application/json"}};return new Response(JSON.stringify({success:"Form successully sent"}),options)}delete data.inputs[honeypotName]}const action=data.action;if(!(0,string_js_1.isStringStrict)(action))throw new Error("No action");let res=null;const ajaxFn=serverless_js_1.serverlessActions[action];(0,function_js_1.isFunction)(ajaxFn)&&(res=await ajaxFn(data,context));const ajaxResultFilterArgs={data:data,context:context};if(res=await(0,filter_js_1.applyFilters)("ajaxResult",res,ajaxResultFilterArgs,!0),!res)throw new Error("No result");if(res.error)throw new ResponseError_js_1.ResponseError(res.error.message,res.error.response);const options={status:200,headers:{"Content-Type":"application/json"}};let message="";if(res.success){const{message:successMessage,headers:headers}=res.success;(0,string_js_1.isStringStrict)(successMessage)&&(message=successMessage),(0,object_js_1.isObjectStrict)(headers)&&(options.headers={...options.headers,...headers})}return new Response(JSON.stringify({success:message}),options)}catch(error){(0,print_js_1.print)("[FRM] Error with ajax function",error);let statusCode=500,message=error instanceof Error?error.message:"Unknown error";error instanceof ResponseError_js_1.ResponseError&&((0,number_js_1.isNumber)(error.response?.status)&&(statusCode=error.response.status),(0,string_js_1.isStringStrict)(error.message)&&(message=error.message));const options={status:statusCode,headers:{"Content-Type":"application/json"}};return new Response(JSON.stringify({error:message}),options)}};exports.Ajax=Ajax;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Ajax=void 0;const ResponseError_js_1=require("../../utils/ResponseError/ResponseError.js"),filter_js_1=require("../../utils/filter/filter.js"),object_js_1=require("../../utils/object/object.js"),string_js_1=require("../../utils/string/string.js"),number_js_1=require("../../utils/number/number.js"),function_js_1=require("../../utils/function/function.js"),print_js_1=require("../../utils/print/print.js"),config_js_1=require("../../config/config.js"),serverless_js_1=require("../serverless.js"),Ajax=async(request,env)=>{try{const data=await request.json();if(!(0,object_js_1.isObjectStrict)(data))throw new Error("Data not an object");const honeypotName=`${config_js_1.config.namespace}_asi`;if((0,object_js_1.isObjectStrict)(data.inputs?.[honeypotName])){const honeypotValue=data.inputs[honeypotName].value;if((0,string_js_1.isStringStrict)(honeypotValue)){const options={status:200,headers:{"Content-Type":"application/json"}};return new Response(JSON.stringify({success:"Form successully sent"}),options)}delete data.inputs[honeypotName]}const action=data.action;if(!(0,string_js_1.isStringStrict)(action))throw new Error("No action");let res=null;const ajaxFn=serverless_js_1.serverlessActions[action];(0,function_js_1.isFunction)(ajaxFn)&&(res=await ajaxFn(data,request,env));const ajaxResultFilterArgs={data:data,request:request,env:env};if(res=await(0,filter_js_1.applyFilters)("ajaxResult",res,ajaxResultFilterArgs,!0),!res)throw new Error("No result");if(res.error)throw new ResponseError_js_1.ResponseError(res.error.message,res.error.response);const options={status:200,headers:{"Content-Type":"application/json"}};let message="";if(res.success){const{message:successMessage,headers:headers}=res.success;(0,string_js_1.isStringStrict)(successMessage)&&(message=successMessage),(0,object_js_1.isObjectStrict)(headers)&&(options.headers={...options.headers,...headers})}return new Response(JSON.stringify({success:message}),options)}catch(error){(0,print_js_1.print)("[FRM] Error with ajax function",error);let statusCode=500,message=error instanceof Error?error.message:"Unknown error";error instanceof ResponseError_js_1.ResponseError&&((0,number_js_1.isNumber)(error.response?.status)&&(statusCode=error.response.status),(0,string_js_1.isStringStrict)(error.message)&&(message=error.message));const options={status:statusCode,headers:{"Content-Type":"application/json"}};return new Response(JSON.stringify({error:message}),options)}};exports.Ajax=Ajax;
@@ -1,11 +1,12 @@
1
- import type { GenericStrings } from '../../global/globalTypes.js';
2
- import type { ServerlessActionData, ServerlessContext, ServerlessActionReturn } from '../serverlessTypes.js';
1
+ import type { Generic, GenericStrings } from '../../global/globalTypes.js';
2
+ import type { ServerlessActionData, ServerlessActionReturn } from '../serverlessTypes.js';
3
3
  export interface AjaxResultOptions {
4
4
  status: number;
5
5
  headers?: GenericStrings;
6
6
  }
7
7
  export interface AjaxResultFilterArgs {
8
8
  data: ServerlessActionData;
9
- context: ServerlessContext;
9
+ request: Request;
10
+ env: Generic;
10
11
  }
11
12
  export type AjaxResultFilter = (res: ServerlessActionReturn | null, args: AjaxResultFilterArgs) => Promise<ServerlessActionReturn | null>;
@@ -1,6 +1,10 @@
1
- import type { ServerlessRoutes, ServerlessActions, ServerlessArgs } from './serverlessTypes.js';
2
- declare let serverlessDir: string;
3
- declare let serverlessRoutes: ServerlessRoutes;
1
+ import type { ServerlessActions } from './serverlessTypes.js';
2
+ import type { RenderPreviewData, RenderServerlessData } from '../render/renderTypes.js';
3
+ import type { getAllContentfulData } from '../contentful/contentfulData.js';
4
+ import type { getAllWordPressData } from '../wordpress/wordpressData.js';
4
5
  declare let serverlessActions: ServerlessActions;
5
- declare const setServerless: (args: ServerlessArgs, dir?: string) => boolean;
6
- export { serverlessDir, serverlessRoutes, serverlessActions, setServerless };
6
+ declare const serverlessPreview: (request: Request) => RenderPreviewData | undefined;
7
+ declare const serverlessReload: (request: Request) => RenderServerlessData | undefined;
8
+ declare const serverlessRender: (getData: typeof getAllContentfulData | typeof getAllWordPressData, serverlessData?: RenderServerlessData, previewData?: RenderPreviewData) => Promise<Response>;
9
+ declare const setServerless: (actions?: ServerlessActions) => void;
10
+ export { serverlessActions, serverlessPreview, serverlessReload, serverlessRender, setServerless };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.setServerless=exports.serverlessActions=exports.serverlessRoutes=exports.serverlessDir=void 0;const string_js_1=require("../utils/string/string.js"),object_js_1=require("../utils/object/object.js");let serverlessDir="functions";exports.serverlessDir=serverlessDir;let serverlessRoutes={reload:[]};exports.serverlessRoutes=serverlessRoutes;let serverlessActions={};exports.serverlessActions=serverlessActions;const setServerless=(args,dir="functions")=>{if(!(0,object_js_1.isObjectStrict)(args))return!1;const{actions:actions,routes:routes}=args;return(0,object_js_1.isObjectStrict)(actions)&&(exports.serverlessActions=serverlessActions={...actions}),(0,object_js_1.isObjectStrict)(routes)&&(exports.serverlessRoutes=serverlessRoutes={reload:[],...routes}),(0,string_js_1.isStringStrict)(dir)&&(exports.serverlessDir=serverlessDir=dir),!0};exports.setServerless=setServerless;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.setServerless=exports.serverlessRender=exports.serverlessReload=exports.serverlessPreview=exports.serverlessActions=void 0;const string_js_1=require("../utils/string/string.js"),object_js_1=require("../utils/object/object.js"),function_js_1=require("../utils/function/function.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=>{const{url:url}=request,{searchParams:searchParams,pathname:pathname}=new URL(url),page=searchParams.get("page"),filters=searchParams.get("filters"),path=pathname,query={};let noPage=!1,noFilters=!1;if((0,string_js_1.isStringStrict)(page)?query.page=page:noPage=!0,(0,string_js_1.isStringStrict)(filters)?query.filters=filters:noFilters=!0,!noPage||!noFilters)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;
@@ -1,12 +1,8 @@
1
- import type { EventContext } from '@cloudflare/workers-types';
2
1
  import type { Generic, GenericStrings } from '../global/globalTypes.js';
3
2
  export interface ServerlessRoute {
4
3
  path: string;
5
4
  content?: string;
6
5
  }
7
- export type ServerlessRoutes = Record<string, ServerlessRoute[]>;
8
- export type ServerlessContext = EventContext<GenericStrings, string, unknown>;
9
- export type ServerlessSetup = (context: ServerlessContext, type?: string) => Promise<void> | void;
10
6
  export interface ServerlessActionInput extends Generic {
11
7
  type: string | string[];
12
8
  value: string | boolean | number | string[] | number[];
@@ -18,32 +14,17 @@ export interface ServerlessActionData {
18
14
  action: string;
19
15
  inputs: Record<string, ServerlessActionInput>;
20
16
  }
21
- export interface ServerlessActionReturn {
22
- error?: {
23
- message: string;
24
- response?: Response;
25
- };
26
- success?: {
27
- message: string;
28
- headers?: GenericStrings;
29
- };
17
+ export interface ServerlessActionError {
18
+ message: string;
19
+ response?: Response;
30
20
  }
31
- export type ServerlessAction = (args: ServerlessActionData, context: ServerlessContext) => Promise<ServerlessActionReturn>;
32
- export type ServerlessActions = Record<string, ServerlessAction>;
33
- export interface ServerlessFilesArgs {
34
- dataExport?: string;
35
- dataExportFile?: string;
36
- setupExport?: string;
37
- setupExportFile?: string;
38
- previewExportFile?: string;
39
- reloadExportFile?: string;
40
- ajaxExportFile?: string;
41
- ajaxFile?: string;
42
- previewFile?: string;
43
- reloadFile?: string;
44
- setupFile?: string;
21
+ export interface ServerlessActionSuccess {
22
+ message: string;
23
+ headers?: GenericStrings;
45
24
  }
46
- export interface ServerlessArgs {
47
- actions?: ServerlessActions;
48
- routes?: ServerlessRoutes;
25
+ export interface ServerlessActionReturn {
26
+ error?: ServerlessActionError;
27
+ success?: ServerlessActionSuccess;
49
28
  }
29
+ export type ServerlessAction = (args: ServerlessActionData, request: Request, env: Generic) => Promise<ServerlessActionReturn>;
30
+ export type ServerlessActions = Record<string, ServerlessAction>;
@@ -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:{}};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,locale),newArchive={id:id,slug:slug,title:title,contentType:type,...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]={id:parentId,slug:parentSlug,title: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:{},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,locale),newArchive={id:id,slug:slug,title:title,contentType:type,...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,19 +1,18 @@
1
- import type { Generic, Parent, Taxonomy } from '../global/globalTypes.js';
1
+ import type { Generic, Taxonomy } from '../global/globalTypes.js';
2
2
  import type { NavigationList, NavigationItem } from '../components/Navigation/NavigationTypes.js';
3
3
  import type { ArchiveMeta } from '../utils/archive/archiveTypes.js';
4
4
  import type { ImageProps } from '../utils/image/imageTypes.js';
5
5
  import type { FormMeta } from '../objects/Form/FormTypes.js';
6
- export interface StoreSlug {
7
- contentType: string;
8
- id: string;
9
- locale?: string;
10
- }
11
- export type StoreSlugs = Record<string, StoreSlug>;
12
- export type StoreParents = Record<string, Record<string, Parent>>;
6
+ export type StoreSlugs = Record<string, [string, string, string?]>;
7
+ export type StoreParents = Record<string, Record<string, [string, string, string]>>;
13
8
  export type StoreArchiveMeta = Record<string, ArchiveMeta | Record<string, ArchiveMeta>>;
14
9
  export type StoreFormMeta = Record<string, FormMeta>;
15
10
  export type StoreImageMeta = Record<string, ImageProps>;
16
11
  export type StoreTaxonomies = Record<string, Taxonomy>;
12
+ export type StorePrimitive = string | number | boolean | null | undefined | StorePrimitive[] | {
13
+ [key: string]: StorePrimitive;
14
+ };
15
+ export type StoreServerless<T extends StorePrimitive[]> = Record<string, T>;
17
16
  export interface Store extends Generic {
18
17
  slugs: StoreSlugs;
19
18
  parents: StoreParents;
@@ -23,4 +22,5 @@ export interface Store extends Generic {
23
22
  navigations: NavigationList[];
24
23
  navigationItems: NavigationItem[];
25
24
  taxonomies: StoreTaxonomies;
25
+ serverless: StoreServerless<StorePrimitive[]>;
26
26
  }
@@ -1,5 +1,5 @@
1
1
  declare class ResponseError extends Error {
2
2
  response: Response | undefined;
3
- constructor(message: string, res?: Response);
3
+ constructor(message: string, resp?: Response);
4
4
  }
5
5
  export { ResponseError };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ResponseError=void 0;class ResponseError extends Error{response;constructor(message,res){super(message),this.message=message,res instanceof Response&&(this.response=res)}}exports.ResponseError=ResponseError;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ResponseError=void 0;class ResponseError extends Error{response;constructor(message,resp){super(message),this.message=message,resp instanceof Response&&(this.response=resp)}}exports.ResponseError=ResponseError;
@@ -1,5 +1,5 @@
1
1
  import type { ImageArgs, ImageReturnType, ImageMaxWidthArgs } from './imageTypes.js';
2
2
  declare const getImage: <V extends boolean = false>(args: ImageArgs, returnDetails?: V) => ImageReturnType<V>;
3
- declare const getImageClosestSize: (size: number) => number;
3
+ declare const getImageClosestSize: (size: number, sizes?: number[]) => number;
4
4
  declare const getImageMaxWidth: (args: ImageMaxWidthArgs) => number;
5
5
  export { getImage, getImageClosestSize, getImageMaxWidth };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getImageMaxWidth=exports.getImageClosestSize=exports.getImage=void 0;const config_js_1=require("../../config/config.js"),string_js_1=require("../string/string.js"),array_js_1=require("../array/array.js"),number_js_1=require("../number/number.js"),object_js_1=require("../object/object.js"),dataSource_js_1=require("../dataSource/dataSource.js"),getImage=(args,returnDetails=!1)=>{const{data:data,classes:classes,attr:attr,alt:imageAlt="inherit",width:width="auto",height:height="auto",lazy:lazy=!0,picture:picture=!1,quality:quality=75,source:source=config_js_1.config.source,maxWidth:maxWidth=1200,viewportWidth:viewportWidth=100,format:format="webp"}=(0,object_js_1.isObjectStrict)(args)?args:{},fallback=returnDetails?{output:"",aspectRatio:0,naturalWidth:0,naturalHeight:0,src:"",srcFallback:"",srcset:[],sizes:""}:"";if(!(0,object_js_1.isObjectStrict)(data))return fallback;const{path:path="",alt:dataAlt="",width:naturalWidth=1,height:naturalHeight=1,format:naturalFormat="jpg"}=data;let{url:url=config_js_1.config.image.remoteUrl}=data,alt="inherit"===imageAlt?dataAlt:imageAlt;(0,string_js_1.isStringStrict)(alt)||(alt="");const isLocal="local"===source,isRemote=dataSource_js_1.dataSource.isContentful(source)||"remote"===source,isWordpress=dataSource_js_1.dataSource.isWordPress(source);if(isLocal){if(!(0,string_js_1.isStringStrict)(path))return fallback;url=`${config_js_1.config.image.localUrl}/${path}`}const aspectRatio=naturalHeight/naturalWidth,aspectRatioReverse=naturalWidth/naturalHeight;let w=naturalWidth,h=naturalHeight;(0,number_js_1.isNumber)(width)&&(w=width,h=(0,string_js_1.isString)(height)?w*aspectRatio:height),(0,number_js_1.isNumber)(height)&&(h=height,w=(0,string_js_1.isString)(width)?h*aspectRatioReverse:width),w>maxWidth&&(w=Math.round(maxWidth),h=Math.round(w*aspectRatio));let src=url,srcFallback=url;if(isLocal&&(src=`${url}.${format}`,srcFallback=`${url}.${naturalFormat}`),isRemote){const params=`&q=${quality}&w=${w}&h=${h}`;src=`${url}?fm=${format}${params}`,srcFallback=`${url}?fm=${naturalFormat}${params}`}const sizes=`(min-width: ${w/16}rem) ${w/16}rem, ${viewportWidth}vw`,srcsetFallback=[];let srcset=[...config_js_1.config.image.sizes];srcset.includes(w)||srcset.push(w),srcset=srcset.filter((s=>s<=w)),srcset.sort(((a,b)=>a-b));const srcsetSource=[];srcset.forEach((s=>{if(isLocal){const base=`${url}${s!==naturalWidth?`@${s}`:""}`;srcsetFallback.push(`${base}.${naturalFormat} ${s}w`),srcsetSource.push(`${base}.${format} ${s}w`)}if(isRemote){const params=`&q=${quality}&w=${s}&h=${Math.round(s*aspectRatio)} ${s}w`;srcsetFallback.push(`${url}?fm=${naturalFormat}${params}`),srcsetSource.push(`${url}?fm=${format}${params}`)}if(isWordpress){const sizeUrl=data.sizes?.[s];(0,string_js_1.isStringStrict)(sizeUrl)&&srcsetSource.push(`${sizeUrl} ${s}w`)}}));let sourceOutput="";picture&&(sourceOutput=`<source srcset="${srcsetSource.join(", ")}" sizes="${sizes}" type="image/${format}">`);let eagerHackOutput="";lazy||(eagerHackOutput=`\n <img\n alt=""\n role="presentation"\n aria-hidden="true"\n src="data:image/svg+xml;charset=utf-8,%3Csvg height='${h}' width='${w}' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="pointerEvents: none; position: absolute; top: 0; left: 0; width: 100%; height: 100%"\n >\n `);const output=`\n ${eagerHackOutput}\n ${sourceOutput}\n <img\n ${(0,string_js_1.isStringStrict)(classes)?` class="${classes}"`:""}\n alt="${alt}"\n src="${picture?srcFallback:src}"\n srcset="${picture?srcsetFallback.join(", "):srcsetSource.join(", ")}"\n sizes="${sizes}"\n width="${w}"\n height="${h}"\n ${(0,string_js_1.isStringStrict)(attr)?` ${attr}`:""}\n ${lazy?' loading="lazy" decoding="async"':' loading="eager"'}\n >\n `;return returnDetails?{output:output,aspectRatio:aspectRatio,naturalWidth:naturalWidth,naturalHeight:naturalHeight,src:src,srcFallback:srcFallback,srcset:srcsetSource,sizes:sizes}:output};exports.getImage=getImage;const getImageClosestSize=size=>[...config_js_1.config.image.sizes].reduce(((prev,curr)=>Math.abs(curr-size)<=Math.abs(prev-size)?curr:prev));exports.getImageClosestSize=getImageClosestSize;const getImageMaxWidth=args=>{if(!(0,object_js_1.isObjectStrict)(args))return 0;const{parents:parents,widths:widths,maxWidths:maxWidths,breakpoints:breakpoints,source:source=config_js_1.config.source}=args;if(!((0,array_js_1.isArrayStrict)(parents)&&(0,object_js_1.isObjectStrict)(widths)&&(0,object_js_1.isObjectStrict)(maxWidths)&&(0,array_js_1.isArrayStrict)(breakpoints)))return 0;const w=[];let m=0;if(parents.forEach((parent=>{if(!(0,object_js_1.isObjectStrict)(parent))return;const{renderType:renderType,args:args}=parent;if((0,object_js_1.isObjectStrict)(args)){if("column"===renderType){const{width:width="Default",widthSmall:widthSmall="Default",widthMedium:widthMedium="Default",widthLarge:widthLarge="Default"}=args;w[0]=(0,number_js_1.isNumber)(widths[width])&&widths[width]>0?widths[width]:1,w[1]=(0,number_js_1.isNumber)(widths[widthSmall])&&widths[widthSmall]>0?widths[widthSmall]:w[0],w[2]=(0,number_js_1.isNumber)(widths[widthMedium])&&widths[widthMedium]>0?widths[widthMedium]:w[1],w[3]=(0,number_js_1.isNumber)(widths[widthLarge])&&widths[widthLarge]>0?widths[widthLarge]:w[2]}if("container"===renderType){const{maxWidth:maxWidth="Default"}=args;m=(0,number_js_1.isNumber)(maxWidths[maxWidth])?maxWidths[maxWidth]:0}}})),!w.length&&0===m)return 0;const bk=[...breakpoints],calc=[];let lastW=1;bk.forEach(((b,i)=>{const wd=w[i];(0,number_js_1.isNumber)(wd)&&(lastW=wd,m>0&&b>m?calc.push(wd*m):calc.push(wd*b))})),m>0&&calc.push(lastW*m);const res=2*Math.max(...calc);return"local"===source?getImageClosestSize(res):res};exports.getImageMaxWidth=getImageMaxWidth;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getImageMaxWidth=exports.getImageClosestSize=exports.getImage=void 0;const config_js_1=require("../../config/config.js"),string_js_1=require("../string/string.js"),array_js_1=require("../array/array.js"),number_js_1=require("../number/number.js"),object_js_1=require("../object/object.js"),dataSource_js_1=require("../dataSource/dataSource.js"),getImageUrl=(url,format,quality,width,height,params)=>{const urlObj=new URL(url);return Object.entries(params).forEach((([key,value])=>{let val=value;"%format"===val&&(val=format),"%quality"===val&&(val=`${quality}`),"%width"===val&&(val=`${width}`),"%height"===val&&(val=`${height}`),urlObj.searchParams.set(key,val)})),urlObj.toString()},getImage=(args,returnDetails=!1)=>{const{data:data,classes:classes,attr:attr,alt:imageAlt="inherit",width:width="auto",height:height="auto",lazy:lazy=!0,picture:picture=!1,quality:quality=75,source:source=config_js_1.config.source,maxWidth:maxWidth=1200,viewportWidth:viewportWidth=100,format:format="webp",params:params={fm:"%format",q:"%quality",w:"%width",h:"%height"}}=(0,object_js_1.isObjectStrict)(args)?args:{},fallback=returnDetails?{output:"",aspectRatio:0,naturalWidth:0,naturalHeight:0,src:"",srcFallback:"",srcset:[],sizes:""}:"";if(!(0,object_js_1.isObjectStrict)(data))return fallback;const{path:path="",alt:dataAlt="",width:naturalWidth=1,height:naturalHeight=1,format:naturalFormat="jpg",sizes:dataSizes}=data;let{url:url=config_js_1.config.image.remoteUrl}=data,alt="inherit"===imageAlt?dataAlt:imageAlt;(0,string_js_1.isStringStrict)(alt)||(alt="");const isLocal="local"===source,isRemote=dataSource_js_1.dataSource.isContentful(source)||"remote"===source,isWordpress=dataSource_js_1.dataSource.isWordPress(source);if(isLocal){if(!(0,string_js_1.isStringStrict)(path))return fallback;url=`${config_js_1.config.image.localUrl}/${path}`}const aspectRatio=naturalHeight/naturalWidth,aspectRatioReverse=naturalWidth/naturalHeight;let w=naturalWidth,h=naturalHeight;if((0,number_js_1.isNumber)(width)&&(w=width,h=(0,string_js_1.isString)(height)?w*aspectRatio:height),(0,number_js_1.isNumber)(height)&&(h=height,w=(0,string_js_1.isString)(width)?h*aspectRatioReverse:width),w>maxWidth&&(w=Math.round(maxWidth),h=Math.round(w*aspectRatio)),isWordpress&&dataSizes&&!dataSizes[w]){const isNatural=w===naturalWidth;isNatural||(w=getImageClosestSize(w,Object.keys(dataSizes).map((s=>parseInt(s,10)))),h=Math.round(w*aspectRatio)),isNatural&&(dataSizes[w]=url)}let src=url,srcFallback=url;isLocal&&(src=`${url}.${format}`,srcFallback=`${url}.${naturalFormat}`),isRemote&&(src=getImageUrl(url,format,quality,w,h,params),srcFallback=getImageUrl(url,naturalFormat,quality,w,h,params));const sizes=`(min-width: ${w/16}rem) ${w/16}rem, ${viewportWidth}vw`,srcsetFallback=[];let srcset=[...config_js_1.config.image.sizes];srcset.includes(w)||srcset.push(w),srcset=srcset.filter((s=>s<=w)),srcset.sort(((a,b)=>a-b));const srcsetSource=[];srcset.forEach((s=>{if(isLocal){const base=`${url}${s!==naturalWidth?`@${s}`:""}`;srcsetFallback.push(`${base}.${naturalFormat} ${s}w`),srcsetSource.push(`${base}.${format} ${s}w`)}if(isRemote){const sizeHeight=Math.round(s*aspectRatio);srcsetFallback.push(getImageUrl(url,naturalFormat,quality,s,sizeHeight,params)+` ${s}w`),srcsetSource.push(getImageUrl(url,format,quality,s,sizeHeight,params)+` ${s}w`)}if(isWordpress){const sizeUrl=dataSizes?.[s];(0,string_js_1.isStringStrict)(sizeUrl)&&srcsetSource.push(`${sizeUrl} ${s}w`)}}));let sourceOutput="";picture&&(sourceOutput=`<source srcset="${srcsetSource.join(", ")}" sizes="${sizes}" type="image/${format}">`);let eagerHackOutput="";lazy||(eagerHackOutput=`\n <img\n alt=""\n role="presentation"\n aria-hidden="true"\n src="data:image/svg+xml;charset=utf-8,%3Csvg height='${h}' width='${w}' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="pointerEvents: none; position: absolute; top: 0; left: 0; width: 100%; height: 100%"\n >\n `);const output=`\n ${eagerHackOutput}\n ${sourceOutput}\n <img\n ${(0,string_js_1.isStringStrict)(classes)?` class="${classes}"`:""}\n alt="${alt}"\n src="${picture?srcFallback:src}"\n srcset="${picture?srcsetFallback.join(", "):srcsetSource.join(", ")}"\n sizes="${sizes}"\n width="${w}"\n height="${h}"\n ${(0,string_js_1.isStringStrict)(attr)?` ${attr}`:""}\n ${lazy?' loading="lazy" decoding="async"':' loading="eager"'}\n >\n `;return returnDetails?{output:output,aspectRatio:aspectRatio,naturalWidth:naturalWidth,naturalHeight:naturalHeight,src:src,srcFallback:srcFallback,srcset:srcsetSource,sizes:sizes}:output};exports.getImage=getImage;const getImageClosestSize=(size,sizes=[])=>(sizes.length||(sizes=config_js_1.config.image.sizes),[...sizes].reduce(((prev,curr)=>Math.abs(curr-size)<=Math.abs(prev-size)?curr:prev)));exports.getImageClosestSize=getImageClosestSize;const getImageMaxWidth=args=>{if(!(0,object_js_1.isObjectStrict)(args))return 0;const{parents:parents,widths:widths,maxWidths:maxWidths,breakpoints:breakpoints,source:source=config_js_1.config.source}=args;if(!((0,array_js_1.isArrayStrict)(parents)&&(0,object_js_1.isObjectStrict)(widths)&&(0,object_js_1.isObjectStrict)(maxWidths)&&(0,array_js_1.isArrayStrict)(breakpoints)))return 0;const w=[];let m=0;if(parents.forEach((parent=>{if(!(0,object_js_1.isObjectStrict)(parent))return;const{renderType:renderType,args:args}=parent;if((0,object_js_1.isObjectStrict)(args)){if("column"===renderType){const{width:width="Default",widthSmall:widthSmall="Default",widthMedium:widthMedium="Default",widthLarge:widthLarge="Default"}=args;w[0]=(0,number_js_1.isNumber)(widths[width])&&widths[width]>0?widths[width]:1,w[1]=(0,number_js_1.isNumber)(widths[widthSmall])&&widths[widthSmall]>0?widths[widthSmall]:w[0],w[2]=(0,number_js_1.isNumber)(widths[widthMedium])&&widths[widthMedium]>0?widths[widthMedium]:w[1],w[3]=(0,number_js_1.isNumber)(widths[widthLarge])&&widths[widthLarge]>0?widths[widthLarge]:w[2]}if("container"===renderType){const{maxWidth:maxWidth="Default"}=args;m=(0,number_js_1.isNumber)(maxWidths[maxWidth])?maxWidths[maxWidth]:0}}})),!w.length&&0===m)return 0;const bk=[...breakpoints],calc=[];let lastW=1;bk.forEach(((b,i)=>{const wd=w[i];(0,number_js_1.isNumber)(wd)&&(lastW=wd,m>0&&b>m?calc.push(wd*m):calc.push(wd*b))})),m>0&&calc.push(lastW*m);const res=2*Math.max(...calc);return"local"===source?getImageClosestSize(res):res};exports.getImageMaxWidth=getImageMaxWidth;
@@ -17,6 +17,7 @@ export interface ImageArgs {
17
17
  maxWidth?: number;
18
18
  viewportWidth?: number;
19
19
  format?: string;
20
+ params?: Record<string, string>;
20
21
  }
21
22
  export interface ImageReturn {
22
23
  output: string;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getPermalink=exports.getLink=exports.getSlug=void 0;const number_js_1=require("../number/number.js"),object_js_1=require("../object/object.js"),string_js_1=require("../string/string.js"),filter_js_1=require("../filter/filter.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 newParent={...parent,contentType:contentType,locale:locale};"term"===contentType&&(newParent.taxonomy=taxonomy),parents.unshift(newParent),getParentSlug(parent.id,contentType,parents,taxonomy,locale)}},getSlug=(args,returnParents=!1)=>{const{id:id="",page:page=0,slug:initSlug="",contentType:contentType="page",itemData:itemData}=(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;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,filter_js_1.applyFilters)("slugParts",parts,args);let fullSlug=`${parts.length?parts.join("/"):""}${(0,number_js_1.isNumber)(page)&&page>1?`/?page=${page}`:""}`;if(fullSlug=(0,filter_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 number_js_1=require("../number/number.js"),object_js_1=require("../object/object.js"),string_js_1=require("../string/string.js"),filter_js_1=require("../filter/filter.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="",page:page=0,slug:initSlug="",contentType:contentType="page",itemData:itemData}=(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;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,filter_js_1.applyFilters)("slugParts",parts,args);let fullSlug=`${parts.length?parts.join("/"):""}${(0,number_js_1.isNumber)(page)&&page>1?`/?page=${page}`:""}`;if(fullSlug=(0,filter_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 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getPathDepth=exports.getPath=void 0;const string_js_1=require("../string/string.js"),config_js_1=require("../../config/config.js"),store_js_1=require("../../store/store.js"),serverless_js_1=require("../../serverless/serverless.js"),getPath=(file,type)=>{const root=config_js_1.config.env.dir;if(!(0,string_js_1.isStringStrict)(root)||!(0,string_js_1.isStringStrict)(file))return"";let append=file;if("store"===type){const dir=store_js_1.storeDir;(0,string_js_1.isStringStrict)(dir)&&(append=`${dir}/${file}.json`)}if("serverless"===type){const dir=serverless_js_1.serverlessDir;(0,string_js_1.isStringStrict)(dir)&&(append=`${dir}/${file}.js`)}return`${root}${root.endsWith("/")?"":"/"}${append}`};exports.getPath=getPath;const getPathDepth=(path="")=>{if(!(0,string_js_1.isStringStrict)(path))return"";let pathDepth=path.split("/");return pathDepth.pop(),pathDepth=pathDepth.map((()=>"../")),pathDepth.join("")};exports.getPathDepth=getPathDepth;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getPathDepth=exports.getPath=void 0;const string_js_1=require("../string/string.js"),config_js_1=require("../../config/config.js"),store_js_1=require("../../store/store.js"),getPath=(file,type)=>{const root=config_js_1.config.env.dir;if(!(0,string_js_1.isStringStrict)(root)||!(0,string_js_1.isStringStrict)(file))return"";let append=file;if("store"===type){const dir=store_js_1.storeDir;(0,string_js_1.isStringStrict)(dir)&&(append=`${dir}/${file}.json`)}return`${root}${root.endsWith("/")?"":"/"}${append}`};exports.getPath=getPath;const getPathDepth=(path="")=>{if(!(0,string_js_1.isStringStrict)(path))return"";let pathDepth=path.split("/");return pathDepth.pop(),pathDepth=pathDepth.map((()=>"../")),pathDepth.join("")};exports.getPathDepth=getPathDepth;