@alanizcreative/formation-static 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -1
- package/cjs/actions/actions.js +1 -1
- package/cjs/filters/filters.js +1 -1
- package/cjs/local/localData.js +1 -1
- package/cjs/render/render.d.ts +3 -2
- package/cjs/render/render.js +1 -1
- package/cjs/render/renderTypes.d.ts +0 -1
- package/cjs/store/store.js +1 -1
- package/cjs/utils/escape/escape.js +1 -1
- package/cjs/utils/json/json.d.ts +2 -2
- package/cjs/utils/json/json.js +1 -1
- package/lib/actions/actions.js +1 -1
- package/lib/filters/filters.js +1 -1
- package/lib/local/localData.js +1 -1
- package/lib/render/render.d.ts +3 -2
- package/lib/render/render.js +1 -1
- package/lib/render/renderTypes.d.ts +0 -1
- package/lib/store/store.js +1 -1
- package/lib/utils/escape/escape.js +1 -1
- package/lib/utils/json/json.d.ts +2 -2
- package/lib/utils/json/json.js +1 -1
- package/package.json +1 -1
- package/cjs/utils/proto/proto.d.ts +0 -2
- package/cjs/utils/proto/proto.js +0 -1
- package/lib/utils/proto/proto.d.ts +0 -2
- package/lib/utils/proto/proto.js +0 -1
package/README.md
CHANGED
|
@@ -130,7 +130,6 @@ npm install -D @alanizcreative/formation-static
|
|
|
130
130
|
- <a href="/src/utils/object/README.md">Object</a>
|
|
131
131
|
- <a href="/src/utils/path/README.md">Path</a>
|
|
132
132
|
- <a href="/src/utils/print/README.md">Print</a>
|
|
133
|
-
- <a href="/src/utils/proto/README.md">Proto</a>
|
|
134
133
|
- <a href="/src/utils/ResponseError/README.md">Response Error</a>
|
|
135
134
|
- <a href="/src/utils/set/README.md">Set</a>
|
|
136
135
|
- <a href="/src/utils/string/README.md">String</a>
|
package/cjs/actions/actions.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.setActions=exports.resetActions=exports.doActions=exports.removeAction=exports.addAction=exports.actions=void 0;const set_js_1=require("../utils/set/set.js"),string_js_1=require("../utils/string/string.js"),object_js_1=require("../utils/object/object.js"),function_js_1=require("../utils/function/function.js");let actions=new Map([["renderStart",new Set],["renderEnd",new Set],["renderItemStart",new Set],["renderItemEnd",new Set]]);exports.actions=actions;const addAction=(name,action)=>!(!(0,string_js_1.isStringStrict)(name)||!(0,function_js_1.isFunction)(action))&&((0,set_js_1.isSet)(actions.get(name))||actions.set(name,new Set),actions.get(name)?.add(action),!0);exports.addAction=addAction;const removeAction=(name,action)=>{if(!(0,string_js_1.isStringStrict)(name)||!(0,function_js_1.isFunction)(action))return!1;const actionSet=actions.get(name);return!!(0,set_js_1.isSet)(actionSet)&&actionSet.delete(action)};exports.removeAction=removeAction;const doSequentially=async(callbacks,args)=>{for(const callback of callbacks)await callback(args)},doActions=(name,args,isAsync=!1)=>{const actionSet=actions.get(name);if(!(0,set_js_1.isSetStrict)(actionSet))return;const callbacks=[];for(const callback of actionSet.values())isAsync?callbacks.push(callback):callback(args);isAsync
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.setActions=exports.resetActions=exports.doActions=exports.removeAction=exports.addAction=exports.actions=void 0;const set_js_1=require("../utils/set/set.js"),string_js_1=require("../utils/string/string.js"),object_js_1=require("../utils/object/object.js"),function_js_1=require("../utils/function/function.js");let actions=new Map([["renderStart",new Set],["renderEnd",new Set],["renderItemStart",new Set],["renderItemEnd",new Set]]);exports.actions=actions;const addAction=(name,action)=>!(!(0,string_js_1.isStringStrict)(name)||!(0,function_js_1.isFunction)(action))&&((0,set_js_1.isSet)(actions.get(name))||actions.set(name,new Set),actions.get(name)?.add(action),!0);exports.addAction=addAction;const removeAction=(name,action)=>{if(!(0,string_js_1.isStringStrict)(name)||!(0,function_js_1.isFunction)(action))return!1;const actionSet=actions.get(name);return!!(0,set_js_1.isSet)(actionSet)&&actionSet.delete(action)};exports.removeAction=removeAction;const doSequentially=async(callbacks,args)=>{for(const callback of callbacks)await callback(args)},doActions=(name,args,isAsync=!1)=>{const actionSet=actions.get(name);if(!(0,set_js_1.isSetStrict)(actionSet))return;const callbacks=[];for(const callback of actionSet.values())isAsync?callbacks.push(callback):callback(args);return isAsync?doSequentially(callbacks,args).then(result=>result):void 0};exports.doActions=doActions;const resetActions=()=>{exports.actions=actions=new Map([["renderStart",new Set],["renderEnd",new Set],["renderItemStart",new Set],["renderItemEnd",new Set]])};exports.resetActions=resetActions;const setActions=args=>{if(!(0,object_js_1.isObjectStrict)(args))return!1;const newActions=Object.entries(args);return!!newActions.length&&(resetActions(),newActions.forEach(([name,action])=>{action&&addAction(name,action)}),!0)};exports.setActions=setActions;
|
package/cjs/filters/filters.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.setFilters=exports.resetFilters=exports.applyFilters=exports.removeFilter=exports.addFilter=exports.filters=void 0;const set_js_1=require("../utils/set/set.js"),string_js_1=require("../utils/string/string.js"),object_js_1=require("../utils/object/object.js"),function_js_1=require("../utils/function/function.js");let filters=new Map([["columnProps",new Set],["containerProps",new Set],["formOptionProps",new Set],["formFieldProps",new Set],["formProps",new Set],["richTextProps",new Set],["richTextOutput",new Set],["richTextContentItem",new Set],["richTextContent",new Set],["richTextContentOutput",new Set],["renderItem",new Set],["renderItemData",new Set],["renderContent",new Set],["serverlessResult",new Set],["contactResult",new Set],["cacheData",new Set],["storeData",new Set],["contentfulData",new Set],["wordpressData",new Set],["localData",new Set],["allData",new Set],["slugParts",new Set],["slug",new Set]]);exports.filters=filters;const addFilter=(name,filter)=>!(!(0,string_js_1.isStringStrict)(name)||!(0,function_js_1.isFunction)(filter))&&((0,set_js_1.isSet)(filters.get(name))||filters.set(name,new Set),filters.get(name)?.add(filter),!0);exports.addFilter=addFilter;const removeFilter=(name,filter)=>{if(!(0,string_js_1.isStringStrict)(name)||!(0,function_js_1.isFunction)(filter))return!1;const filterSet=filters.get(name);return!!(0,set_js_1.isSet)(filterSet)&&filterSet.delete(filter)};exports.removeFilter=removeFilter;const applySequentially=async(callbacks,value,args)=>{for(const callback of callbacks)value=await callback(value,args);return value},applyFilters=(name,value,args,isAsync=!1)=>{const filterSet=filters.get(name);if(!(0,set_js_1.isSetStrict)(filterSet))return value;const callbacks=[];for(const callback of filterSet.values())isAsync?callbacks.push(callback):value=callback(value,args);return isAsync?applySequentially(callbacks,value,args).then(newValue=>newValue)
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.setFilters=exports.resetFilters=exports.applyFilters=exports.removeFilter=exports.addFilter=exports.filters=void 0;const set_js_1=require("../utils/set/set.js"),string_js_1=require("../utils/string/string.js"),object_js_1=require("../utils/object/object.js"),function_js_1=require("../utils/function/function.js");let filters=new Map([["columnProps",new Set],["containerProps",new Set],["formOptionProps",new Set],["formFieldProps",new Set],["formProps",new Set],["richTextProps",new Set],["richTextOutput",new Set],["richTextContentItem",new Set],["richTextContent",new Set],["richTextContentOutput",new Set],["renderItem",new Set],["renderItemData",new Set],["renderContent",new Set],["serverlessResult",new Set],["contactResult",new Set],["cacheData",new Set],["storeData",new Set],["contentfulData",new Set],["wordpressData",new Set],["localData",new Set],["allData",new Set],["slugParts",new Set],["slug",new Set]]);exports.filters=filters;const addFilter=(name,filter)=>!(!(0,string_js_1.isStringStrict)(name)||!(0,function_js_1.isFunction)(filter))&&((0,set_js_1.isSet)(filters.get(name))||filters.set(name,new Set),filters.get(name)?.add(filter),!0);exports.addFilter=addFilter;const removeFilter=(name,filter)=>{if(!(0,string_js_1.isStringStrict)(name)||!(0,function_js_1.isFunction)(filter))return!1;const filterSet=filters.get(name);return!!(0,set_js_1.isSet)(filterSet)&&filterSet.delete(filter)};exports.removeFilter=removeFilter;const applySequentially=async(callbacks,value,args)=>{for(const callback of callbacks)value=await callback(value,args);return value},applyFilters=(name,value,args,isAsync=!1)=>{const filterSet=filters.get(name);if(!(0,set_js_1.isSetStrict)(filterSet))return value;const callbacks=[];for(const callback of filterSet.values())isAsync?callbacks.push(callback):value=callback(value,args);return isAsync?applySequentially(callbacks,value,args).then(newValue=>newValue):value};exports.applyFilters=applyFilters;const resetFilters=()=>{exports.filters=filters=new Map([["columnProps",new Set],["containerProps",new Set],["formOptionProps",new Set],["formFieldProps",new Set],["formProps",new Set],["richTextProps",new Set],["richTextOutput",new Set],["richTextContentItem",new Set],["richTextContent",new Set],["richTextContentOutput",new Set],["renderItem",new Set],["renderItemData",new Set],["renderContent",new Set],["serverlessResult",new Set],["contactResult",new Set],["cacheData",new Set],["storeData",new Set],["contentfulData",new Set],["wordpressData",new Set],["localData",new Set],["allData",new Set],["slugParts",new Set],["slug",new Set]])};exports.resetFilters=resetFilters;const setFilters=args=>{if(!(0,object_js_1.isObjectStrict)(args))return!1;const newFilters=Object.entries(args);return!!newFilters.length&&(resetFilters(),newFilters.forEach(([name,filter])=>{filter&&addFilter(name,filter)}),!0)};exports.setFilters=setFilters;
|
package/cjs/local/localData.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getAllLocalData=exports.getLocalData=void 0;const promises_1=require("node:fs/promises"),node_path_1=require("node:path"),object_js_1=require("../utils/object/object.js"),string_js_1=require("../utils/string/string.js"),filters_js_1=require("../filters/filters.js"),json_js_1=require("../utils/json/json.js"),config_js_1=require("../config/config.js"),localDataNormal_js_1=require("./localDataNormal.js"),getLocalData=async args=>{if(!(0,object_js_1.isObjectStrict)(args))throw new Error("No args");const{key:key,refProps:refProps,imageProps:imageProps,unsetProps:unsetProps}=args;if(!(0,string_js_1.isStringStrict)(key))throw new Error("No key");if(config_js_1.config.env.cache){const cacheDataFilterArgs={key:key,type:"get"},cacheData=await(0,filters_js_1.applyFilters)("cacheData",void 0,cacheDataFilterArgs,!0),cacheItems=cacheData?.data;if((0,object_js_1.isObject)(cacheItems))return structuredClone(cacheItems)}const dir=config_js_1.config.local.dir,data={};let hasData=!1;const files=await(0,promises_1.readdir)((0,node_path_1.resolve)(dir));for(const file of files){const fileExt=(0,node_path_1.extname)(file),fileName=(0,node_path_1.basename)(file,fileExt);if(".json"!==fileExt)continue;const fileContents=await(0,promises_1.readFile)((0,node_path_1.resolve)(dir,file),{encoding:"utf8"})
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getAllLocalData=exports.getLocalData=void 0;const promises_1=require("node:fs/promises"),node_path_1=require("node:path"),object_js_1=require("../utils/object/object.js"),string_js_1=require("../utils/string/string.js"),filters_js_1=require("../filters/filters.js"),json_js_1=require("../utils/json/json.js"),config_js_1=require("../config/config.js"),localDataNormal_js_1=require("./localDataNormal.js"),getLocalData=async args=>{if(!(0,object_js_1.isObjectStrict)(args))throw new Error("No args");const{key:key,refProps:refProps,imageProps:imageProps,unsetProps:unsetProps}=args;if(!(0,string_js_1.isStringStrict)(key))throw new Error("No key");if(config_js_1.config.env.cache){const cacheDataFilterArgs={key:key,type:"get"},cacheData=await(0,filters_js_1.applyFilters)("cacheData",void 0,cacheDataFilterArgs,!0),cacheItems=cacheData?.data;if((0,object_js_1.isObject)(cacheItems))return structuredClone(cacheItems)}const dir=config_js_1.config.local.dir,data={};let hasData=!1;const files=await(0,promises_1.readdir)((0,node_path_1.resolve)(dir));for(const file of files){const fileExt=(0,node_path_1.extname)(file),fileName=(0,node_path_1.basename)(file,fileExt);if(".json"!==fileExt)continue;const fileContents=await(0,promises_1.readFile)((0,node_path_1.resolve)(dir,file),{encoding:"utf8"});data[fileName]=(0,json_js_1.getJson)(fileContents),hasData=!0}if(!hasData)throw new Error("No data");const newData=(0,localDataNormal_js_1.normalizeLocalData)(data,refProps,imageProps,unsetProps);if(config_js_1.config.env.cache){const cacheDataFilterArgs={key:key,type:"set",data:data};await(0,filters_js_1.applyFilters)("cacheData",{data:newData},cacheDataFilterArgs,!0)}return newData};exports.getLocalData=getLocalData;const getAllLocalData=async args=>{const data=await getLocalData({key:"all_file_data",refProps:args?.refProps,imageProps:args?.imageProps,unsetProps:args?.unsetProps});let allData={navigationItem:[],navigation:[],content:{page:[]}};for(const[,value]of Object.entries(data)){const{contentType:contentType}=value;if(!(0,string_js_1.isStringStrict)(contentType))continue;const isPartial=config_js_1.config.partialTypes.includes(contentType),isWhole=config_js_1.config.wholeTypes.includes(contentType);if(!isPartial&&!isWhole)continue;const val=(0,filters_js_1.applyFilters)("localData",value);isPartial&&(null==allData[contentType]&&(allData[contentType]=[]),allData[contentType].push(val)),isWhole&&(null==allData.content[contentType]&&(allData.content[contentType]=[]),allData.content[contentType].push(val))}return allData=(0,filters_js_1.applyFilters)("allData",allData,{type:"local"}),allData};exports.getAllLocalData=getAllLocalData;
|
package/cjs/render/render.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { RenderContentArgs, RenderItemArgs, RenderItemReturn, RenderArgs, RenderReturn, RenderFunctions, RenderLayout, RenderHttpError, RenderNavigation, RenderFunctionsArgs } from './renderTypes.js';
|
|
1
|
+
import type { RenderContentArgs, RenderItem, RenderItemArgs, RenderItemReturn, RenderArgs, RenderReturn, RenderFunctions, RenderLayout, RenderHttpError, RenderNavigation, RenderFunctionsArgs, RenderMeta } from './renderTypes.js';
|
|
2
2
|
import type { RefString } from '../global/globalTypes.js';
|
|
3
3
|
declare let renderFunctions: RenderFunctions;
|
|
4
4
|
declare let renderLayout: RenderLayout;
|
|
@@ -6,6 +6,7 @@ declare let renderHttpError: RenderHttpError;
|
|
|
6
6
|
declare let renderNavigation: RenderNavigation;
|
|
7
7
|
declare const setRenderFunctions: (args: RenderFunctionsArgs) => boolean;
|
|
8
8
|
declare const renderContent: (args: RenderContentArgs, _html?: RefString) => Promise<string>;
|
|
9
|
+
declare const renderMeta: (item: RenderItem) => RenderMeta;
|
|
9
10
|
declare const renderItem: (args: RenderItemArgs, _contentType?: string) => Promise<RenderItemReturn | null>;
|
|
10
11
|
declare const render: (args: RenderArgs) => Promise<RenderReturn[] | RenderReturn>;
|
|
11
|
-
export { render, renderItem, renderContent, renderFunctions, renderLayout, renderNavigation, renderHttpError, setRenderFunctions };
|
|
12
|
+
export { render, renderItem, renderMeta, renderContent, renderFunctions, renderLayout, renderNavigation, renderHttpError, setRenderFunctions };
|
package/cjs/render/render.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.setRenderFunctions=exports.renderHttpError=exports.renderNavigation=exports.renderLayout=exports.renderFunctions=exports.renderContent=exports.renderItem=exports.render=void 0;const actions_js_1=require("../actions/actions.js"),filters_js_1=require("../filters/filters.js"),link_js_1=require("../utils/link/link.js"),string_js_1=require("../utils/string/string.js"),array_js_1=require("../utils/array/array.js"),object_js_1=require("../utils/object/object.js"),function_js_1=require("../utils/function/function.js"),shortcodes_js_1=require("../shortcodes/shortcodes.js"),tag_js_1=require("../utils/tag/tag.js"),store_js_1=require("../store/store.js"),redirects_js_1=require("../redirects/redirects.js"),scripts_js_1=require("../scripts/scripts.js"),config_js_1=require("../config/config.js");let renderFunctions={};exports.renderFunctions=renderFunctions;let renderLayout=()=>"";exports.renderLayout=renderLayout;let renderHttpError=()=>"";exports.renderHttpError=renderHttpError;let renderNavigation=()=>{};exports.renderNavigation=renderNavigation;const setRenderFunctions=args=>{if(!(0,object_js_1.isObjectStrict)(args))return!1;const{functions:functions,layout:layout,navigation:navigation,httpError:httpError}=args;return!(!(0,object_js_1.isObjectStrict)(functions)||!(0,function_js_1.isFunction)(layout))&&(exports.renderFunctions=renderFunctions={...functions},exports.renderLayout=renderLayout=layout,(0,function_js_1.isFunction)(navigation)&&(exports.renderNavigation=renderNavigation=navigation),(0,function_js_1.isFunction)(httpError)&&(exports.renderHttpError=renderHttpError=httpError),!0)};exports.setRenderFunctions=setRenderFunctions;const getContentTemplate=(content,templates=[],named=!1)=>{if(!(0,array_js_1.isArrayStrict)(content))return{content:[],namedContent:{},templates:[]};const namedContent={},newContent=content.map(c=>(named&&(0,string_js_1.isString)(c.name)&&(namedContent[c.name]={...c}),(0,tag_js_1.tagExists)(c,"template")?(templates.push({...c}),{metadata:{tags:[{id:"templateBreak"}]}}):c));return{namedContent:namedContent,content:newContent,templates:structuredClone(templates)}},mapContentTemplate=(templates,content=[],namedContent={},named=!1)=>{if(!(0,array_js_1.isArrayStrict)(templates))return templates;const lastTemplateIndex=templates.length-1;return templates.forEach((t,i)=>{content[0]&&(0,tag_js_1.tagExists)(content[0],"templateBreak")&&content.length>=1&&content.shift();if((0,tag_js_1.tagExists)(t,"templateOptional")&&i===lastTemplateIndex&&!content.length)return void templates.pop();const isSlot=(0,tag_js_1.tagExists)(t,"templateSlot");let children=t.content;if((0,array_js_1.isArrayStrict)(children)&&!isSlot&&!named){let repeat;const newChildren=[...children],repeatIndex=children.findIndex(c=>{const isRepeat=(0,tag_js_1.tagExists)(c,"templateRepeat");return isRepeat&&(repeat=c),isRepeat});if(-1!==repeatIndex&&repeat){let breakIndex=content.findIndex(c=>(0,tag_js_1.tagExists)(c,"templateBreak"));breakIndex=-1===breakIndex?content.length:breakIndex;let insertIndex=repeatIndex;for(let j=insertIndex;j<breakIndex-1;j+=1)newChildren.splice(insertIndex,0,structuredClone(repeat)),insertIndex=j}children=newChildren}if(isSlot&&content.length>=1){let fill=null;return fill=named?namedContent[t.name]:content.shift(),void(fill&&(templates[i]=fill))}(0,array_js_1.isArray)(children)&&templates[i]&&(templates[i].content=mapContentTemplate(children,content,namedContent,named))}),templates},renderContent=async(args,_html={ref:""})=>{if(!(0,object_js_1.isObjectStrict)(args))return _html.ref;const{content:content,serverlessData:serverlessData,previewData:previewData,itemData:itemData,itemContains:itemContains,itemHeadings:itemHeadings,parents:parents,depth:depth=0}=args;let{headingsIndex:headingsIndex=-1}=args;if(!(0,array_js_1.isArrayStrict)(content))return _html.ref;for(const item of content){if(!(0,object_js_1.isObjectStrict)(item))continue;const props={...item},renderType=(0,string_js_1.isString)(props.renderType)?props.renderType:"",isRichText="richText"===renderType;let childrenArr,children=props.content;if("contentTemplate"===renderType){const isNamed=(0,tag_js_1.tagExists)(item,"templateNamed"),template=getContentTemplate((0,array_js_1.isArray)(props.content)?props.content:[],[],isNamed);children=mapContentTemplate(template.templates,template.content,template.namedContent,isNamed)}let childrenStr="";(0,array_js_1.isArrayStrict)(children)&&!isRichText&&(childrenArr=children),(0,string_js_1.isStringStrict)(children)&&!isRichText&&(childrenStr=children),"content"===renderType&&0===depth&&(headingsIndex=itemHeadings.push([])-1);let renderStart="",renderEnd="",filterType="",filterArgs={};const renderFunction=renderFunctions[renderType];if((0,function_js_1.isFunction)(renderFunction)){childrenArr&&(props.content=void 0);const renderArgs={args:props,parents:parents,itemData:itemData,itemContains:itemContains,serverlessData:serverlessData,previewData:previewData};childrenArr&&(renderArgs.children=childrenArr),"richText"===renderType&&(renderArgs.headings=itemHeadings[headingsIndex]);const renderOutput=await renderFunction(renderArgs);if((0,array_js_1.isArrayStrict)(renderOutput)){const[start,end]=renderOutput;(0,string_js_1.isString)(start)&&(renderStart=start),(0,string_js_1.isString)(end)&&(renderEnd=end)}(0,string_js_1.isString)(renderOutput)&&(renderStart=renderOutput,childrenArr=void 0),itemContains.add(renderType),filterType=renderType,filterArgs={...props,content:void 0}}const renderContentFilterArgs={renderType:filterType,args:filterArgs},[filterRenderStart,filterRenderEnd]=await(0,filters_js_1.applyFilters)("renderContent",[renderStart,renderEnd],renderContentFilterArgs,!0);if(renderStart=filterRenderStart,renderEnd=filterRenderEnd,_html.ref+=renderStart+childrenStr,childrenArr){const parentsCopy=[...parents];renderType&&parentsCopy.unshift({renderType:renderType,args:{...props,content:void 0,parents:void 0}}),await renderContent({content:childrenArr,serverlessData:serverlessData,previewData:previewData,parents:parentsCopy,itemData:itemData,itemContains:itemContains,itemHeadings:itemHeadings,headingsIndex:headingsIndex,depth:depth+1},_html)}_html.ref+=renderEnd}return _html.ref};exports.renderContent=renderContent;const renderItem=async(args,_contentType)=>{if(!(0,object_js_1.isObjectStrict)(args))return null;const{item:item,serverlessData:serverlessData,previewData:previewData}=args;if(!(0,object_js_1.isObjectStrict)(item))return null;const contentType=item.contentType;if(!(0,string_js_1.isStringStrict)(contentType))return null;if("taxonomy"===contentType&&!0!==item.isPage)return null;const id=item.id;if(!(0,string_js_1.isStringStrict)(id))return null;if(!(0,string_js_1.isStringStrict)(item.slug))return null;let serverlessRender=!1;const itemContains=new Set,itemHeadings=[];scripts_js_1.scripts.deps.clear(),scripts_js_1.scripts.item.clear(),scripts_js_1.scripts.meta={},scripts_js_1.styles.deps.clear(),scripts_js_1.styles.item.clear();const renderItemStartArgs={id:id,itemData:{...item},contentType:contentType,itemContains:new Set,itemHeadings:[],serverlessData:serverlessData,previewData:previewData};await(0,actions_js_1.doActions)("renderItemStart",renderItemStartArgs,!0);const title=item.title,meta={title:"",description:"",url:"",image:"",canonical:"",prev:"",next:"",index:!0,isIndex:!1,...item.meta};(0,string_js_1.isStringStrict)(item.metaTitle)&&(meta.title=item.metaTitle),(0,string_js_1.isStringStrict)(item.metaDescription)&&(meta.description=item.metaDescription),(0,string_js_1.isStringStrict)(item.metaImage?.url)&&(meta.image=item.metaImage.url),!(0,string_js_1.isStringStrict)(meta.title)&&(0,string_js_1.isStringStrict)(title)&&(meta.title=title);const slugArgs={id:id,contentType:contentType,slug:item.slug,returnParents:!0,itemData:item,page:0},s=(0,link_js_1.getSlug)(slugArgs,!0),slug=s.slug,slugIsHtml=slug.endsWith(".html"),permalink=(0,link_js_1.getPermalink)(slug,!slugIsHtml),parents=s.parents;meta.url=permalink,meta.canonical=permalink;const taxonomy="term"===contentType?item.taxonomy:"taxonomy"===contentType?item:null;item.baseUrl=permalink,item.baseType=(0,object_js_1.isObjectStrict)(taxonomy)&&(0,array_js_1.isArrayStrict)(taxonomy.contentTypes)?taxonomy.contentTypes:contentType;let formattedSlug="index"!==slug&&""!==slug?`/${slug}/`:"/";slugIsHtml&&(formattedSlug=slug);const index="index"===item.slug;let itemServerlessData;if(meta.isIndex=index,(0,object_js_1.isObjectStrict)(serverlessData)){if(!(serverlessData.path===formattedSlug&&null!=serverlessData.query))return{serverlessRender:!1};itemServerlessData=serverlessData}const itemData={...item};itemData.id=id,itemData.parents=parents,itemData.content=void 0;let contentOutput="";const contentData=item.content;(0,string_js_1.isStringStrict)(contentData)&&(contentOutput=contentData),(0,array_js_1.isArrayStrict)(contentData)&&(contentOutput=await renderContent({content:contentData,serverlessData:itemServerlessData,parents:[],itemData:itemData,itemContains:itemContains,itemHeadings:itemHeadings,previewData:previewData})),contentOutput=await(0,shortcodes_js_1.doShortcodes)(contentOutput,itemData);const pag=itemData.pagination;if((0,object_js_1.isObjectStrict)(pag)){const{currentParams:currentParams,prevParams:prevParams,nextParams:nextParams}=pag,currentParamsStr=new URLSearchParams(currentParams).toString();if(currentParamsStr&&(meta.canonicalParams=`?${currentParamsStr}`),(0,string_js_1.isStringStrict)(pag.title)&&(meta.paginationTitle=pag.title),pag.prev){const prevSlugArgs={...slugArgs,params:prevParams},p=(0,link_js_1.getSlug)(prevSlugArgs,!0);meta.prev=(0,link_js_1.getPermalink)(p.slug,1===pag.prev&&!prevParams)}if(pag.next){const nextSlugArgs={...slugArgs,params:nextParams},n=(0,link_js_1.getSlug)(nextSlugArgs,!0);meta.next=(0,link_js_1.getPermalink)(n.slug,!1)}serverlessRender=!0}const cmsLocales=config_js_1.config.cms.locales,slugData=[id,(0,string_js_1.isStringStrict)(_contentType)?_contentType:contentType];if((0,string_js_1.isStringStrict)(item.locale)&&cmsLocales){const locale=item.locale;cmsLocales.includes(locale)&&locale!==cmsLocales[0]&&slugData.push(locale)}(config_js_1.config.env.dev||config_js_1.config.env.prod&&serverlessRender)&&(0,store_js_1.setStoreItem)("slugs",slugData,slugIsHtml?`/${slug}`:formattedSlug);const layoutArgs={id:id,meta:meta,contentType:contentType,content:contentOutput,slug:formattedSlug,itemContains:itemContains,itemHeadings:itemHeadings,itemData:itemData,serverlessData:serverlessData,previewData:previewData};let layoutOutput=await renderLayout(layoutArgs);const renderItemFilterArgs={id:id,contentType:contentType,slug:formattedSlug,output:layoutOutput,itemData:itemData,itemContains:itemContains,itemHeadings:itemHeadings,serverlessData:serverlessData,previewData:previewData};layoutOutput=await(0,filters_js_1.applyFilters)("renderItem",layoutOutput,renderItemFilterArgs,!0);const renderItemEndArgs={id:id,contentType:contentType,slug:formattedSlug,output:layoutOutput,itemData:itemData,itemContains:itemContains,itemHeadings:itemHeadings,serverlessData:serverlessData,previewData:previewData};return await(0,actions_js_1.doActions)("renderItemEnd",renderItemEndArgs,!0),{serverlessRender:serverlessRender,itemData:itemData,data:{slug:formattedSlug,output:layoutOutput}}};exports.renderItem=renderItem;const render=async args=>{if(!(0,object_js_1.isObjectStrict)(args))return[];const{allData:allData,serverlessData:serverlessData,previewData:previewData}=args,isServerless=null!=serverlessData,isPreview=null!=previewData;if(scripts_js_1.scripts.deps.clear(),scripts_js_1.scripts.item.clear(),scripts_js_1.scripts.meta={},scripts_js_1.styles.deps.clear(),scripts_js_1.styles.item.clear(),!(0,object_js_1.isObjectStrict)(allData))return[];const{redirect:redirect,content:content}=allData;await(0,actions_js_1.doActions)("renderStart",args,!0);const data=[];isServerless||(0,store_js_1.setStoreData)(allData),await renderNavigation({navigations:(0,store_js_1.getStoreItem)("navigations"),items:(0,store_js_1.getStoreItem)("navigationItems")}),(0,redirects_js_1.setRedirects)(redirect);for(const[contentType,contentItems]of Object.entries(content))if((0,array_js_1.isArrayStrict)(contentItems))for(const contentItem of contentItems){const item=await renderItem({item:await(0,filters_js_1.applyFilters)("renderItemData",contentItem,{contentType:contentType},!0),serverlessData:serverlessData,previewData:previewData},contentType);if(!item)continue;const{serverlessRender:serverlessRender=!1,data:itemData}=item;itemData&&(data.push(itemData),serverlessRender&&!isServerless&&(0,store_js_1.setStoreItem)("serverless",["reload"],itemData.slug))}const[outputItem]=data,output=(isServerless||isPreview)&&outputItem?outputItem:data;return await(0,actions_js_1.doActions)("renderEnd",{...args,data:output},!0),output};exports.render=render;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.setRenderFunctions=exports.renderHttpError=exports.renderNavigation=exports.renderLayout=exports.renderFunctions=exports.renderContent=exports.renderMeta=exports.renderItem=exports.render=void 0;const actions_js_1=require("../actions/actions.js"),filters_js_1=require("../filters/filters.js"),link_js_1=require("../utils/link/link.js"),string_js_1=require("../utils/string/string.js"),array_js_1=require("../utils/array/array.js"),object_js_1=require("../utils/object/object.js"),function_js_1=require("../utils/function/function.js"),shortcodes_js_1=require("../shortcodes/shortcodes.js"),tag_js_1=require("../utils/tag/tag.js"),store_js_1=require("../store/store.js"),redirects_js_1=require("../redirects/redirects.js"),scripts_js_1=require("../scripts/scripts.js"),config_js_1=require("../config/config.js");let renderFunctions={};exports.renderFunctions=renderFunctions;let renderLayout=()=>"";exports.renderLayout=renderLayout;let renderHttpError=()=>"";exports.renderHttpError=renderHttpError;let renderNavigation=()=>{};exports.renderNavigation=renderNavigation;const setRenderFunctions=args=>{if(!(0,object_js_1.isObjectStrict)(args))return!1;const{functions:functions,layout:layout,navigation:navigation,httpError:httpError}=args;return!(!(0,object_js_1.isObjectStrict)(functions)||!(0,function_js_1.isFunction)(layout))&&(exports.renderFunctions=renderFunctions={...functions},exports.renderLayout=renderLayout=layout,(0,function_js_1.isFunction)(navigation)&&(exports.renderNavigation=renderNavigation=navigation),(0,function_js_1.isFunction)(httpError)&&(exports.renderHttpError=renderHttpError=httpError),!0)};exports.setRenderFunctions=setRenderFunctions;const getContentTemplate=(content,templates=[],named=!1)=>{if(!(0,array_js_1.isArrayStrict)(content))return{content:[],namedContent:{},templates:[]};const namedContent={},newContent=content.map(c=>(named&&(0,string_js_1.isString)(c.name)&&(namedContent[c.name]={...c}),(0,tag_js_1.tagExists)(c,"template")?(templates.push({...c}),{metadata:{tags:[{id:"templateBreak"}]}}):c));return{namedContent:namedContent,content:newContent,templates:structuredClone(templates)}},mapContentTemplate=(templates,content=[],namedContent={},named=!1)=>{if(!(0,array_js_1.isArrayStrict)(templates))return templates;const lastTemplateIndex=templates.length-1;return templates.forEach((t,i)=>{content[0]&&(0,tag_js_1.tagExists)(content[0],"templateBreak")&&content.length>=1&&content.shift();if((0,tag_js_1.tagExists)(t,"templateOptional")&&i===lastTemplateIndex&&!content.length)return void templates.pop();const isSlot=(0,tag_js_1.tagExists)(t,"templateSlot");let children=t.content;if((0,array_js_1.isArrayStrict)(children)&&!isSlot&&!named){let repeat;const newChildren=[...children],repeatIndex=children.findIndex(c=>{const isRepeat=(0,tag_js_1.tagExists)(c,"templateRepeat");return isRepeat&&(repeat=c),isRepeat});if(-1!==repeatIndex&&repeat){let breakIndex=content.findIndex(c=>(0,tag_js_1.tagExists)(c,"templateBreak"));breakIndex=-1===breakIndex?content.length:breakIndex;let insertIndex=repeatIndex;for(let j=insertIndex;j<breakIndex-1;j+=1)newChildren.splice(insertIndex,0,structuredClone(repeat)),insertIndex=j}children=newChildren}if(isSlot&&content.length>=1){let fill=null;return fill=named?namedContent[t.name]:content.shift(),void(fill&&(templates[i]=fill))}(0,array_js_1.isArray)(children)&&templates[i]&&(templates[i].content=mapContentTemplate(children,content,namedContent,named))}),templates},renderContent=async(args,_html={ref:""})=>{if(!(0,object_js_1.isObjectStrict)(args))return _html.ref;const{content:content,serverlessData:serverlessData,previewData:previewData,itemData:itemData,itemContains:itemContains,itemHeadings:itemHeadings,parents:parents,depth:depth=0}=args;let{headingsIndex:headingsIndex=-1}=args;if(!(0,array_js_1.isArrayStrict)(content))return _html.ref;for(const item of content){if(!(0,object_js_1.isObjectStrict)(item))continue;const props={...item},renderType=(0,string_js_1.isString)(props.renderType)?props.renderType:"",isRichText="richText"===renderType;let childrenArr,children=props.content;if("contentTemplate"===renderType){const isNamed=(0,tag_js_1.tagExists)(item,"templateNamed"),template=getContentTemplate((0,array_js_1.isArray)(props.content)?props.content:[],[],isNamed);children=mapContentTemplate(template.templates,template.content,template.namedContent,isNamed)}let childrenStr="";(0,array_js_1.isArrayStrict)(children)&&!isRichText&&(childrenArr=children),(0,string_js_1.isStringStrict)(children)&&!isRichText&&(childrenStr=children),"content"===renderType&&0===depth&&(headingsIndex=itemHeadings.push([])-1);let renderStart="",renderEnd="",filterType="",filterArgs={};const renderFunction=renderFunctions[renderType];if((0,function_js_1.isFunction)(renderFunction)){childrenArr&&(props.content=void 0);const renderArgs={args:props,parents:parents,itemData:itemData,itemContains:itemContains,serverlessData:serverlessData,previewData:previewData};childrenArr&&(renderArgs.children=childrenArr),"richText"===renderType&&(renderArgs.headings=itemHeadings[headingsIndex]);const renderOutput=await renderFunction(renderArgs);if((0,array_js_1.isArrayStrict)(renderOutput)){const[start,end]=renderOutput;(0,string_js_1.isString)(start)&&(renderStart=start),(0,string_js_1.isString)(end)&&(renderEnd=end)}(0,string_js_1.isString)(renderOutput)&&(renderStart=renderOutput,childrenArr=void 0),itemContains.add(renderType),filterType=renderType,filterArgs={...props,content:void 0}}const renderContentFilterArgs={renderType:filterType,args:filterArgs},[filterRenderStart,filterRenderEnd]=await(0,filters_js_1.applyFilters)("renderContent",[renderStart,renderEnd],renderContentFilterArgs,!0);if(renderStart=filterRenderStart,renderEnd=filterRenderEnd,_html.ref+=renderStart+childrenStr,childrenArr){const parentsCopy=[...parents];renderType&&parentsCopy.unshift({renderType:renderType,args:{...props,content:void 0,parents:void 0}}),await renderContent({content:childrenArr,serverlessData:serverlessData,previewData:previewData,parents:parentsCopy,itemData:itemData,itemContains:itemContains,itemHeadings:itemHeadings,headingsIndex:headingsIndex,depth:depth+1},_html)}_html.ref+=renderEnd}return _html.ref};exports.renderContent=renderContent;const renderMeta=item=>{const{title:title,slug:slug,baseUrl:baseUrl,pagination:pagination}=item,meta={title:title,description:"",url:baseUrl,image:"",canonical:baseUrl,prev:"",next:"",index:!0,isIndex:"index"===slug,...item.meta};if((0,string_js_1.isStringStrict)(item.metaTitle)&&(meta.title=item.metaTitle),(0,string_js_1.isStringStrict)(item.metaDescription)&&(meta.description=item.metaDescription),(0,string_js_1.isStringStrict)(item.metaImage?.url)&&(meta.image=item.metaImage.url),!(0,object_js_1.isObjectStrict)(pagination))return meta;const{title:paginationTitle,prev:paginationPrev,next:paginationNext,currentParams:currentParams,prevParams:prevParams,nextParams:nextParams}=pagination,currentParamsStr=new URLSearchParams(currentParams).toString();if(currentParamsStr&&(meta.canonical=`${baseUrl}?${currentParamsStr}`),(0,string_js_1.isStringStrict)(paginationTitle)&&(meta.paginationTitle=paginationTitle),paginationPrev){const prevParamsStr=new URLSearchParams(prevParams).toString();meta.prev=`${baseUrl}${prevParamsStr?`?${prevParamsStr}`:""}`}if(paginationNext){const nextParamsStr=new URLSearchParams(nextParams).toString();meta.next=`${baseUrl}?${nextParamsStr}`}return meta};exports.renderMeta=renderMeta;const renderItem=async(args,_contentType)=>{if(!(0,object_js_1.isObjectStrict)(args))return null;const{item:item,serverlessData:serverlessData,previewData:previewData}=args;if(!(0,object_js_1.isObjectStrict)(item))return null;const contentType=item.contentType;if(!(0,string_js_1.isStringStrict)(contentType))return null;if("taxonomy"===contentType&&!0!==item.isPage)return null;const id=item.id;if(!(0,string_js_1.isStringStrict)(id))return null;if(!(0,string_js_1.isStringStrict)(item.slug))return null;let serverlessRender=!1;const itemContains=new Set,itemHeadings=[];scripts_js_1.scripts.deps.clear(),scripts_js_1.scripts.item.clear(),scripts_js_1.scripts.meta={},scripts_js_1.styles.deps.clear(),scripts_js_1.styles.item.clear();const renderItemStartArgs={id:id,itemData:{...item},contentType:contentType,itemContains:new Set,itemHeadings:[],serverlessData:serverlessData,previewData:previewData};await(0,actions_js_1.doActions)("renderItemStart",renderItemStartArgs,!0);const slugArgs={id:id,contentType:contentType,slug:item.slug,returnParents:!0,itemData:item,page:0},s=(0,link_js_1.getSlug)(slugArgs,!0),slug=s.slug,slugIsHtml=slug.endsWith(".html"),permalink=(0,link_js_1.getPermalink)(slug,!slugIsHtml),parents=s.parents,taxonomy="term"===contentType?item.taxonomy:"taxonomy"===contentType?item:null;item.baseUrl=permalink,item.baseType=(0,object_js_1.isObjectStrict)(taxonomy)&&(0,array_js_1.isArrayStrict)(taxonomy.contentTypes)?taxonomy.contentTypes:contentType;let itemServerlessData,formattedSlug="index"!==slug&&""!==slug?`/${slug}/`:"/";if(slugIsHtml&&(formattedSlug=slug),(0,object_js_1.isObjectStrict)(serverlessData)){if(!(serverlessData.path===formattedSlug&&null!=serverlessData.query))return{serverlessRender:!1};itemServerlessData=serverlessData}const itemData={...item};itemData.id=id,itemData.parents=parents,itemData.content=void 0;let contentOutput="";const contentData=item.content;(0,string_js_1.isStringStrict)(contentData)&&(contentOutput=contentData),(0,array_js_1.isArrayStrict)(contentData)&&(contentOutput=await renderContent({content:contentData,serverlessData:itemServerlessData,parents:[],itemData:itemData,itemContains:itemContains,itemHeadings:itemHeadings,previewData:previewData})),contentOutput=await(0,shortcodes_js_1.doShortcodes)(contentOutput,itemData),(0,object_js_1.isObjectStrict)(itemData.pagination)&&(serverlessRender=!0);const cmsLocales=config_js_1.config.cms.locales,slugData=[id,(0,string_js_1.isStringStrict)(_contentType)?_contentType:contentType];if((0,string_js_1.isStringStrict)(item.locale)&&cmsLocales){const locale=item.locale;cmsLocales.includes(locale)&&locale!==cmsLocales[0]&&slugData.push(locale)}(config_js_1.config.env.dev||config_js_1.config.env.prod&&serverlessRender)&&(0,store_js_1.setStoreItem)("slugs",slugData,slugIsHtml?`/${slug}`:formattedSlug);const layoutArgs={id:id,meta:renderMeta(itemData),contentType:contentType,content:contentOutput,slug:formattedSlug,itemContains:itemContains,itemHeadings:itemHeadings,itemData:itemData,serverlessData:serverlessData,previewData:previewData};let layoutOutput=await renderLayout(layoutArgs);const renderItemFilterArgs={id:id,contentType:contentType,slug:formattedSlug,output:layoutOutput,itemData:itemData,itemContains:itemContains,itemHeadings:itemHeadings,serverlessData:serverlessData,previewData:previewData};layoutOutput=await(0,filters_js_1.applyFilters)("renderItem",layoutOutput,renderItemFilterArgs,!0);const renderItemEndArgs={id:id,contentType:contentType,slug:formattedSlug,output:layoutOutput,itemData:itemData,itemContains:itemContains,itemHeadings:itemHeadings,serverlessData:serverlessData,previewData:previewData};return await(0,actions_js_1.doActions)("renderItemEnd",renderItemEndArgs,!0),{serverlessRender:serverlessRender,itemData:itemData,data:{slug:formattedSlug,output:layoutOutput}}};exports.renderItem=renderItem;const render=async args=>{if(!(0,object_js_1.isObjectStrict)(args))return[];const{allData:allData,serverlessData:serverlessData,previewData:previewData}=args,isServerless=null!=serverlessData,isPreview=null!=previewData;if(scripts_js_1.scripts.deps.clear(),scripts_js_1.scripts.item.clear(),scripts_js_1.scripts.meta={},scripts_js_1.styles.deps.clear(),scripts_js_1.styles.item.clear(),!(0,object_js_1.isObjectStrict)(allData))return[];const{redirect:redirect,content:content}=allData;await(0,actions_js_1.doActions)("renderStart",args,!0);const data=[];isServerless||(0,store_js_1.setStoreData)(allData),await renderNavigation({navigations:(0,store_js_1.getStoreItem)("navigations"),items:(0,store_js_1.getStoreItem)("navigationItems")}),(0,redirects_js_1.setRedirects)(redirect);for(const[contentType,contentItems]of Object.entries(content))if((0,array_js_1.isArrayStrict)(contentItems))for(const contentItem of contentItems){const item=await renderItem({item:await(0,filters_js_1.applyFilters)("renderItemData",contentItem,{contentType:contentType},!0),serverlessData:serverlessData,previewData:previewData},contentType);if(!item)continue;const{serverlessRender:serverlessRender=!1,data:itemData}=item;itemData&&(data.push(itemData),serverlessRender&&!isServerless&&(0,store_js_1.setStoreItem)("serverless",["reload"],itemData.slug))}const[outputItem]=data,output=(isServerless||isPreview)&&outputItem?outputItem:data;return await(0,actions_js_1.doActions)("renderEnd",{...args,data:output},!0),output};exports.render=render;
|
package/cjs/store/store.js
CHANGED
|
@@ -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"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getStoreItem=exports.setStoreItem=exports.setStoreData=exports.setStore=exports.storeDir=exports.store=void 0;const contentType_js_1=require("../utils/contentType/contentType.js"),object_js_1=require("../utils/object/object.js"),string_js_1=require("../utils/string/string.js"),array_js_1=require("../utils/array/array.js"),archive_js_1=require("../utils/archive/archive.js"),config_js_1=require("../config/config.js");let storeDir="lib/store";exports.storeDir=storeDir;const defaultStore={slugs:Object.create(null),parents:Object.create(null),navigations:[],navigationItems:[],formMeta:Object.create(null),archiveMeta:Object.create(null),imageMeta:Object.create(null),taxonomies:Object.create(null),serverless:Object.create(null)};let store={...defaultStore};exports.store=store;const setStore=(args,dir="lib/store")=>(0,object_js_1.isObjectStrict)(args)?(exports.store=store={...defaultStore,...args},(0,string_js_1.isStringStrict)(dir)&&(exports.storeDir=storeDir=dir),store):store;exports.setStore=setStore;const setStoreItem=(prop,value,subProp)=>!(!(0,string_js_1.isStringStrict)(prop)||!(0,object_js_1.isObject)(value)||null==store[prop])&&((0,string_js_1.isStringStrict)(subProp)?store[prop][subProp]=value:store[prop]=value,!0);exports.setStoreItem=setStoreItem;const setStoreData=allData=>{if(!(0,object_js_1.isObjectStrict)(allData))return!1;const{navigation:navigation,navigationItem:navigationItem,content:content}=allData;store.navigations=(0,array_js_1.isArrayStrict)(navigation)?navigation:[],store.navigationItems=(0,array_js_1.isArrayStrict)(navigationItem)?navigationItem:[];const data={...allData,...content};return config_js_1.config.hierarchicalTypes.forEach(type=>{const items=data[type];(0,array_js_1.isArrayStrict)(items)&&items.forEach(item=>{if(!(0,object_js_1.isObjectStrict)(item))return;const{id:id,parent:parent,archive:archive,slug:slug,title:title,locale:locale}=item;if(!(0,string_js_1.isStringStrict)(id))return;const archiveType=(0,contentType_js_1.normalizeContentType)(archive);if((0,string_js_1.isStringStrict)(archiveType)){const hasLocale=(0,string_js_1.isStringStrict)(locale),archiveMeta=(0,archive_js_1.getArchiveMeta)(archiveType),newArchive={id:id,slug:slug,title:title,contentType:type,...hasLocale?archiveMeta[locale]:archiveMeta};hasLocale?(store.archiveMeta[archiveType]||(store.archiveMeta[archiveType]=Object.create(null)),store.archiveMeta[archiveType][locale]=newArchive):store.archiveMeta[archiveType]=newArchive}if((0,object_js_1.isObjectStrict)(parent)){const parentSlug=parent.slug,parentTitle=parent.title,parentId=parent.id;(0,string_js_1.isStringStrict)(parentSlug)&&(0,string_js_1.isStringStrict)(parentTitle)&&(0,string_js_1.isStringStrict)(parentId)&&(null==store.parents[type]&&(store.parents[type]=Object.create(null)),store.parents[type][id]=[parentId,parentSlug,parentTitle])}})}),!0};exports.setStoreData=setStoreData;const getStoreItem=prop=>store[prop];exports.getStoreItem=getStoreItem;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.escape=void 0;const string_js_1=require("../string/string.js"),escape=value=>{if(!(0,string_js_1.isString)(value))throw new TypeError("Value
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.escape=void 0;const string_js_1=require("../string/string.js"),escape=value=>{if(!(0,string_js_1.isString)(value))throw new TypeError("Value not a string");return value.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">").replace(/\//g,"/").replace(/\\/g,"\").replace(/`/g,"`")};exports.escape=escape;
|
package/cjs/utils/json/json.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
declare const getJson: <T extends object>(value: string) => T
|
|
2
|
-
declare const getJsonFile: <T>(path: string, store?: boolean) => Promise<
|
|
1
|
+
declare const getJson: <T extends object>(value: string) => T;
|
|
2
|
+
declare const getJsonFile: <T>(path: string, store?: boolean) => Promise<object & T>;
|
|
3
3
|
export { getJson, getJsonFile };
|
package/cjs/utils/json/json.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(o,m,k,k2){void 0===k2&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);desc&&!("get"in desc?!m.__esModule:desc.writable||desc.configurable)||(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){void 0===k2&&(k2=k),o[k2]=m[k]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=this&&this.__importStar||function(){var ownKeys=function(o){return ownKeys=Object.getOwnPropertyNames||function(o){var ar=[];for(var k in o)Object.prototype.hasOwnProperty.call(o,k)&&(ar[ar.length]=k);return ar},ownKeys(o)};return function(mod){if(mod&&mod.__esModule)return mod;var result={};if(null!=mod)for(var k=ownKeys(mod),i=0;i<k.length;i++)"default"!==k[i]&&__createBinding(result,mod,k[i]);return __setModuleDefault(result,mod),result}}();Object.defineProperty(exports,"__esModule",{value:!0}),exports.getJsonFile=exports.getJson=void 0;const object_js_1=require("../object/object.js"),path_js_1=require("../path/path.js"),filters_js_1=require("../../filters/filters.js"),getJson=value=>{
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(o,m,k,k2){void 0===k2&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);desc&&!("get"in desc?!m.__esModule:desc.writable||desc.configurable)||(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){void 0===k2&&(k2=k),o[k2]=m[k]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=this&&this.__importStar||function(){var ownKeys=function(o){return ownKeys=Object.getOwnPropertyNames||function(o){var ar=[];for(var k in o)Object.prototype.hasOwnProperty.call(o,k)&&(ar[ar.length]=k);return ar},ownKeys(o)};return function(mod){if(mod&&mod.__esModule)return mod;var result={};if(null!=mod)for(var k=ownKeys(mod),i=0;i<k.length;i++)"default"!==k[i]&&__createBinding(result,mod,k[i]);return __setModuleDefault(result,mod),result}}();Object.defineProperty(exports,"__esModule",{value:!0}),exports.getJsonFile=exports.getJson=void 0;const object_js_1=require("../object/object.js"),path_js_1=require("../path/path.js"),filters_js_1=require("../../filters/filters.js"),getJson=value=>{const val=JSON.parse(value);if((0,object_js_1.isObject)(val))return val;throw new Error("Value not an object")};exports.getJson=getJson;const getJsonFile=async(path,store=!1)=>{const newPath=store?(0,path_js_1.getPath)(path,"store"):path,{default:obj}=await Promise.resolve(`${newPath}`).then(s=>__importStar(require(s)));if((0,object_js_1.isObject)(obj))return store?await(0,filters_js_1.applyFilters)("storeData",obj,newPath,!0):obj;throw new Error("No object in JSON file")};exports.getJsonFile=getJsonFile;
|
package/lib/actions/actions.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{isSet,isSetStrict}from"../utils/set/set.js";import{isStringStrict}from"../utils/string/string.js";import{isObjectStrict}from"../utils/object/object.js";import{isFunction}from"../utils/function/function.js";let actions=new Map([["renderStart",new Set],["renderEnd",new Set],["renderItemStart",new Set],["renderItemEnd",new Set]]);const addAction=(name,action)=>!(!isStringStrict(name)||!isFunction(action))&&(isSet(actions.get(name))||actions.set(name,new Set),actions.get(name)?.add(action),!0),removeAction=(name,action)=>{if(!isStringStrict(name)||!isFunction(action))return!1;const actionSet=actions.get(name);return!!isSet(actionSet)&&actionSet.delete(action)},doSequentially=async(callbacks,args)=>{for(const callback of callbacks)await callback(args)},doActions=(name,args,isAsync=!1)=>{const actionSet=actions.get(name);if(!isSetStrict(actionSet))return;const callbacks=[];for(const callback of actionSet.values())isAsync?callbacks.push(callback):callback(args);isAsync
|
|
1
|
+
import{isSet,isSetStrict}from"../utils/set/set.js";import{isStringStrict}from"../utils/string/string.js";import{isObjectStrict}from"../utils/object/object.js";import{isFunction}from"../utils/function/function.js";let actions=new Map([["renderStart",new Set],["renderEnd",new Set],["renderItemStart",new Set],["renderItemEnd",new Set]]);const addAction=(name,action)=>!(!isStringStrict(name)||!isFunction(action))&&(isSet(actions.get(name))||actions.set(name,new Set),actions.get(name)?.add(action),!0),removeAction=(name,action)=>{if(!isStringStrict(name)||!isFunction(action))return!1;const actionSet=actions.get(name);return!!isSet(actionSet)&&actionSet.delete(action)},doSequentially=async(callbacks,args)=>{for(const callback of callbacks)await callback(args)},doActions=(name,args,isAsync=!1)=>{const actionSet=actions.get(name);if(!isSetStrict(actionSet))return;const callbacks=[];for(const callback of actionSet.values())isAsync?callbacks.push(callback):callback(args);return isAsync?doSequentially(callbacks,args).then(result=>result):void 0},resetActions=()=>{actions=new Map([["renderStart",new Set],["renderEnd",new Set],["renderItemStart",new Set],["renderItemEnd",new Set]])},setActions=args=>{if(!isObjectStrict(args))return!1;const newActions=Object.entries(args);return!!newActions.length&&(resetActions(),newActions.forEach(([name,action])=>{action&&addAction(name,action)}),!0)};export{actions,addAction,removeAction,doActions,resetActions,setActions};
|
package/lib/filters/filters.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{isSet,isSetStrict}from"../utils/set/set.js";import{isStringStrict}from"../utils/string/string.js";import{isObjectStrict}from"../utils/object/object.js";import{isFunction}from"../utils/function/function.js";let filters=new Map([["columnProps",new Set],["containerProps",new Set],["formOptionProps",new Set],["formFieldProps",new Set],["formProps",new Set],["richTextProps",new Set],["richTextOutput",new Set],["richTextContentItem",new Set],["richTextContent",new Set],["richTextContentOutput",new Set],["renderItem",new Set],["renderItemData",new Set],["renderContent",new Set],["serverlessResult",new Set],["contactResult",new Set],["cacheData",new Set],["storeData",new Set],["contentfulData",new Set],["wordpressData",new Set],["localData",new Set],["allData",new Set],["slugParts",new Set],["slug",new Set]]);const addFilter=(name,filter)=>!(!isStringStrict(name)||!isFunction(filter))&&(isSet(filters.get(name))||filters.set(name,new Set),filters.get(name)?.add(filter),!0),removeFilter=(name,filter)=>{if(!isStringStrict(name)||!isFunction(filter))return!1;const filterSet=filters.get(name);return!!isSet(filterSet)&&filterSet.delete(filter)},applySequentially=async(callbacks,value,args)=>{for(const callback of callbacks)value=await callback(value,args);return value},applyFilters=(name,value,args,isAsync=!1)=>{const filterSet=filters.get(name);if(!isSetStrict(filterSet))return value;const callbacks=[];for(const callback of filterSet.values())isAsync?callbacks.push(callback):value=callback(value,args);return isAsync?applySequentially(callbacks,value,args).then(newValue=>newValue)
|
|
1
|
+
import{isSet,isSetStrict}from"../utils/set/set.js";import{isStringStrict}from"../utils/string/string.js";import{isObjectStrict}from"../utils/object/object.js";import{isFunction}from"../utils/function/function.js";let filters=new Map([["columnProps",new Set],["containerProps",new Set],["formOptionProps",new Set],["formFieldProps",new Set],["formProps",new Set],["richTextProps",new Set],["richTextOutput",new Set],["richTextContentItem",new Set],["richTextContent",new Set],["richTextContentOutput",new Set],["renderItem",new Set],["renderItemData",new Set],["renderContent",new Set],["serverlessResult",new Set],["contactResult",new Set],["cacheData",new Set],["storeData",new Set],["contentfulData",new Set],["wordpressData",new Set],["localData",new Set],["allData",new Set],["slugParts",new Set],["slug",new Set]]);const addFilter=(name,filter)=>!(!isStringStrict(name)||!isFunction(filter))&&(isSet(filters.get(name))||filters.set(name,new Set),filters.get(name)?.add(filter),!0),removeFilter=(name,filter)=>{if(!isStringStrict(name)||!isFunction(filter))return!1;const filterSet=filters.get(name);return!!isSet(filterSet)&&filterSet.delete(filter)},applySequentially=async(callbacks,value,args)=>{for(const callback of callbacks)value=await callback(value,args);return value},applyFilters=(name,value,args,isAsync=!1)=>{const filterSet=filters.get(name);if(!isSetStrict(filterSet))return value;const callbacks=[];for(const callback of filterSet.values())isAsync?callbacks.push(callback):value=callback(value,args);return isAsync?applySequentially(callbacks,value,args).then(newValue=>newValue):value},resetFilters=()=>{filters=new Map([["columnProps",new Set],["containerProps",new Set],["formOptionProps",new Set],["formFieldProps",new Set],["formProps",new Set],["richTextProps",new Set],["richTextOutput",new Set],["richTextContentItem",new Set],["richTextContent",new Set],["richTextContentOutput",new Set],["renderItem",new Set],["renderItemData",new Set],["renderContent",new Set],["serverlessResult",new Set],["contactResult",new Set],["cacheData",new Set],["storeData",new Set],["contentfulData",new Set],["wordpressData",new Set],["localData",new Set],["allData",new Set],["slugParts",new Set],["slug",new Set]])},setFilters=args=>{if(!isObjectStrict(args))return!1;const newFilters=Object.entries(args);return!!newFilters.length&&(resetFilters(),newFilters.forEach(([name,filter])=>{filter&&addFilter(name,filter)}),!0)};export{filters,addFilter,removeFilter,applyFilters,resetFilters,setFilters};
|
package/lib/local/localData.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{readdir,readFile}from"node:fs/promises";import{extname,basename,resolve}from"node:path";import{isObject,isObjectStrict}from"../utils/object/object.js";import{isStringStrict}from"../utils/string/string.js";import{applyFilters}from"../filters/filters.js";import{getJson}from"../utils/json/json.js";import{config}from"../config/config.js";import{normalizeLocalData}from"./localDataNormal.js";const getLocalData=async args=>{if(!isObjectStrict(args))throw new Error("No args");const{key:key,refProps:refProps,imageProps:imageProps,unsetProps:unsetProps}=args;if(!isStringStrict(key))throw new Error("No key");if(config.env.cache){const cacheDataFilterArgs={key:key,type:"get"},cacheData=await applyFilters("cacheData",void 0,cacheDataFilterArgs,!0),cacheItems=cacheData?.data;if(isObject(cacheItems))return structuredClone(cacheItems)}const dir=config.local.dir,data={};let hasData=!1;const files=await readdir(resolve(dir));for(const file of files){const fileExt=extname(file),fileName=basename(file,fileExt);if(".json"!==fileExt)continue;const fileContents=await readFile(resolve(dir,file),{encoding:"utf8"})
|
|
1
|
+
import{readdir,readFile}from"node:fs/promises";import{extname,basename,resolve}from"node:path";import{isObject,isObjectStrict}from"../utils/object/object.js";import{isStringStrict}from"../utils/string/string.js";import{applyFilters}from"../filters/filters.js";import{getJson}from"../utils/json/json.js";import{config}from"../config/config.js";import{normalizeLocalData}from"./localDataNormal.js";const getLocalData=async args=>{if(!isObjectStrict(args))throw new Error("No args");const{key:key,refProps:refProps,imageProps:imageProps,unsetProps:unsetProps}=args;if(!isStringStrict(key))throw new Error("No key");if(config.env.cache){const cacheDataFilterArgs={key:key,type:"get"},cacheData=await applyFilters("cacheData",void 0,cacheDataFilterArgs,!0),cacheItems=cacheData?.data;if(isObject(cacheItems))return structuredClone(cacheItems)}const dir=config.local.dir,data={};let hasData=!1;const files=await readdir(resolve(dir));for(const file of files){const fileExt=extname(file),fileName=basename(file,fileExt);if(".json"!==fileExt)continue;const fileContents=await readFile(resolve(dir,file),{encoding:"utf8"});data[fileName]=getJson(fileContents),hasData=!0}if(!hasData)throw new Error("No data");const newData=normalizeLocalData(data,refProps,imageProps,unsetProps);if(config.env.cache){const cacheDataFilterArgs={key:key,type:"set",data:data};await applyFilters("cacheData",{data:newData},cacheDataFilterArgs,!0)}return newData},getAllLocalData=async args=>{const data=await getLocalData({key:"all_file_data",refProps:args?.refProps,imageProps:args?.imageProps,unsetProps:args?.unsetProps});let allData={navigationItem:[],navigation:[],content:{page:[]}};for(const[,value]of Object.entries(data)){const{contentType:contentType}=value;if(!isStringStrict(contentType))continue;const isPartial=config.partialTypes.includes(contentType),isWhole=config.wholeTypes.includes(contentType);if(!isPartial&&!isWhole)continue;const val=applyFilters("localData",value);isPartial&&(null==allData[contentType]&&(allData[contentType]=[]),allData[contentType].push(val)),isWhole&&(null==allData.content[contentType]&&(allData.content[contentType]=[]),allData.content[contentType].push(val))}return allData=applyFilters("allData",allData,{type:"local"}),allData};export{getLocalData,getAllLocalData};
|
package/lib/render/render.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { RenderContentArgs, RenderItemArgs, RenderItemReturn, RenderArgs, RenderReturn, RenderFunctions, RenderLayout, RenderHttpError, RenderNavigation, RenderFunctionsArgs } from './renderTypes.js';
|
|
1
|
+
import type { RenderContentArgs, RenderItem, RenderItemArgs, RenderItemReturn, RenderArgs, RenderReturn, RenderFunctions, RenderLayout, RenderHttpError, RenderNavigation, RenderFunctionsArgs, RenderMeta } from './renderTypes.js';
|
|
2
2
|
import type { RefString } from '../global/globalTypes.js';
|
|
3
3
|
declare let renderFunctions: RenderFunctions;
|
|
4
4
|
declare let renderLayout: RenderLayout;
|
|
@@ -6,6 +6,7 @@ declare let renderHttpError: RenderHttpError;
|
|
|
6
6
|
declare let renderNavigation: RenderNavigation;
|
|
7
7
|
declare const setRenderFunctions: (args: RenderFunctionsArgs) => boolean;
|
|
8
8
|
declare const renderContent: (args: RenderContentArgs, _html?: RefString) => Promise<string>;
|
|
9
|
+
declare const renderMeta: (item: RenderItem) => RenderMeta;
|
|
9
10
|
declare const renderItem: (args: RenderItemArgs, _contentType?: string) => Promise<RenderItemReturn | null>;
|
|
10
11
|
declare const render: (args: RenderArgs) => Promise<RenderReturn[] | RenderReturn>;
|
|
11
|
-
export { render, renderItem, renderContent, renderFunctions, renderLayout, renderNavigation, renderHttpError, setRenderFunctions };
|
|
12
|
+
export { render, renderItem, renderMeta, renderContent, renderFunctions, renderLayout, renderNavigation, renderHttpError, setRenderFunctions };
|
package/lib/render/render.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{doActions}from"../actions/actions.js";import{applyFilters}from"../filters/filters.js";import{getSlug,getPermalink}from"../utils/link/link.js";import{isString,isStringStrict}from"../utils/string/string.js";import{isArray,isArrayStrict}from"../utils/array/array.js";import{isObjectStrict}from"../utils/object/object.js";import{isFunction}from"../utils/function/function.js";import{doShortcodes}from"../shortcodes/shortcodes.js";import{tagExists}from"../utils/tag/tag.js";import{setStoreData,setStoreItem,getStoreItem}from"../store/store.js";import{setRedirects}from"../redirects/redirects.js";import{scripts,styles}from"../scripts/scripts.js";import{config}from"../config/config.js";let renderFunctions={},renderLayout=()=>"",renderHttpError=()=>"",renderNavigation=()=>{};const setRenderFunctions=args=>{if(!isObjectStrict(args))return!1;const{functions:functions,layout:layout,navigation:navigation,httpError:httpError}=args;return!(!isObjectStrict(functions)||!isFunction(layout))&&(renderFunctions={...functions},renderLayout=layout,isFunction(navigation)&&(renderNavigation=navigation),isFunction(httpError)&&(renderHttpError=httpError),!0)},getContentTemplate=(content,templates=[],named=!1)=>{if(!isArrayStrict(content))return{content:[],namedContent:{},templates:[]};const namedContent={},newContent=content.map(c=>(named&&isString(c.name)&&(namedContent[c.name]={...c}),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(!isArrayStrict(templates))return templates;const lastTemplateIndex=templates.length-1;return templates.forEach((t,i)=>{content[0]&&tagExists(content[0],"templateBreak")&&content.length>=1&&content.shift();if(tagExists(t,"templateOptional")&&i===lastTemplateIndex&&!content.length)return void templates.pop();const isSlot=tagExists(t,"templateSlot");let children=t.content;if(isArrayStrict(children)&&!isSlot&&!named){let repeat;const newChildren=[...children],repeatIndex=children.findIndex(c=>{const isRepeat=tagExists(c,"templateRepeat");return isRepeat&&(repeat=c),isRepeat});if(-1!==repeatIndex&&repeat){let breakIndex=content.findIndex(c=>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))}isArray(children)&&templates[i]&&(templates[i].content=mapContentTemplate(children,content,namedContent,named))}),templates},renderContent=async(args,_html={ref:""})=>{if(!isObjectStrict(args))return _html.ref;const{content:content,serverlessData:serverlessData,previewData:previewData,itemData:itemData,itemContains:itemContains,itemHeadings:itemHeadings,parents:parents,depth:depth=0}=args;let{headingsIndex:headingsIndex=-1}=args;if(!isArrayStrict(content))return _html.ref;for(const item of content){if(!isObjectStrict(item))continue;const props={...item},renderType=isString(props.renderType)?props.renderType:"",isRichText="richText"===renderType;let childrenArr,children=props.content;if("contentTemplate"===renderType){const isNamed=tagExists(item,"templateNamed"),template=getContentTemplate(isArray(props.content)?props.content:[],[],isNamed);children=mapContentTemplate(template.templates,template.content,template.namedContent,isNamed)}let childrenStr="";isArrayStrict(children)&&!isRichText&&(childrenArr=children),isStringStrict(children)&&!isRichText&&(childrenStr=children),"content"===renderType&&0===depth&&(headingsIndex=itemHeadings.push([])-1);let renderStart="",renderEnd="",filterType="",filterArgs={};const renderFunction=renderFunctions[renderType];if(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(isArrayStrict(renderOutput)){const[start,end]=renderOutput;isString(start)&&(renderStart=start),isString(end)&&(renderEnd=end)}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 applyFilters("renderContent",[renderStart,renderEnd],renderContentFilterArgs,!0);if(renderStart=filterRenderStart,renderEnd=filterRenderEnd,_html.ref+=renderStart+childrenStr,childrenArr){const parentsCopy=[...parents];renderType&&parentsCopy.unshift({renderType:renderType,args:{...props,content:void 0,parents:void 0}}),await renderContent({content:childrenArr,serverlessData:serverlessData,previewData:previewData,parents:parentsCopy,itemData:itemData,itemContains:itemContains,itemHeadings:itemHeadings,headingsIndex:headingsIndex,depth:depth+1},_html)}_html.ref+=renderEnd}return _html.ref},renderItem=async(args,_contentType)=>{if(!isObjectStrict(args))return null;const{item:item,serverlessData:serverlessData,previewData:previewData}=args;if(!isObjectStrict(item))return null;const contentType=item.contentType;if(!isStringStrict(contentType))return null;if("taxonomy"===contentType&&!0!==item.isPage)return null;const id=item.id;if(!isStringStrict(id))return null;if(!isStringStrict(item.slug))return null;let serverlessRender=!1;const itemContains=new Set,itemHeadings=[];scripts.deps.clear(),scripts.item.clear(),scripts.meta={},styles.deps.clear(),styles.item.clear();const renderItemStartArgs={id:id,itemData:{...item},contentType:contentType,itemContains:new Set,itemHeadings:[],serverlessData:serverlessData,previewData:previewData};await doActions("renderItemStart",renderItemStartArgs,!0);const title=item.title,meta={title:"",description:"",url:"",image:"",canonical:"",prev:"",next:"",index:!0,isIndex:!1,...item.meta};isStringStrict(item.metaTitle)&&(meta.title=item.metaTitle),isStringStrict(item.metaDescription)&&(meta.description=item.metaDescription),isStringStrict(item.metaImage?.url)&&(meta.image=item.metaImage.url),!isStringStrict(meta.title)&&isStringStrict(title)&&(meta.title=title);const slugArgs={id:id,contentType:contentType,slug:item.slug,returnParents:!0,itemData:item,page:0},s=getSlug(slugArgs,!0),slug=s.slug,slugIsHtml=slug.endsWith(".html"),permalink=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=isObjectStrict(taxonomy)&&isArrayStrict(taxonomy.contentTypes)?taxonomy.contentTypes:contentType;let formattedSlug="index"!==slug&&""!==slug?`/${slug}/`:"/";slugIsHtml&&(formattedSlug=slug);const index="index"===item.slug;let itemServerlessData;if(meta.isIndex=index,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;isStringStrict(contentData)&&(contentOutput=contentData),isArrayStrict(contentData)&&(contentOutput=await renderContent({content:contentData,serverlessData:itemServerlessData,parents:[],itemData:itemData,itemContains:itemContains,itemHeadings:itemHeadings,previewData:previewData})),contentOutput=await doShortcodes(contentOutput,itemData);const pag=itemData.pagination;if(isObjectStrict(pag)){const{currentParams:currentParams,prevParams:prevParams,nextParams:nextParams}=pag,currentParamsStr=new URLSearchParams(currentParams).toString();if(currentParamsStr&&(meta.canonicalParams=`?${currentParamsStr}`),isStringStrict(pag.title)&&(meta.paginationTitle=pag.title),pag.prev){const prevSlugArgs={...slugArgs,params:prevParams},p=getSlug(prevSlugArgs,!0);meta.prev=getPermalink(p.slug,1===pag.prev&&!prevParams)}if(pag.next){const nextSlugArgs={...slugArgs,params:nextParams},n=getSlug(nextSlugArgs,!0);meta.next=getPermalink(n.slug,!1)}serverlessRender=!0}const cmsLocales=config.cms.locales,slugData=[id,isStringStrict(_contentType)?_contentType:contentType];if(isStringStrict(item.locale)&&cmsLocales){const locale=item.locale;cmsLocales.includes(locale)&&locale!==cmsLocales[0]&&slugData.push(locale)}(config.env.dev||config.env.prod&&serverlessRender)&&setStoreItem("slugs",slugData,slugIsHtml?`/${slug}`:formattedSlug);const layoutArgs={id:id,meta:meta,contentType:contentType,content:contentOutput,slug:formattedSlug,itemContains:itemContains,itemHeadings:itemHeadings,itemData:itemData,serverlessData:serverlessData,previewData:previewData};let layoutOutput=await renderLayout(layoutArgs);const renderItemFilterArgs={id:id,contentType:contentType,slug:formattedSlug,output:layoutOutput,itemData:itemData,itemContains:itemContains,itemHeadings:itemHeadings,serverlessData:serverlessData,previewData:previewData};layoutOutput=await 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 doActions("renderItemEnd",renderItemEndArgs,!0),{serverlessRender:serverlessRender,itemData:itemData,data:{slug:formattedSlug,output:layoutOutput}}},render=async args=>{if(!isObjectStrict(args))return[];const{allData:allData,serverlessData:serverlessData,previewData:previewData}=args,isServerless=null!=serverlessData,isPreview=null!=previewData;if(scripts.deps.clear(),scripts.item.clear(),scripts.meta={},styles.deps.clear(),styles.item.clear(),!isObjectStrict(allData))return[];const{redirect:redirect,content:content}=allData;await doActions("renderStart",args,!0);const data=[];isServerless||setStoreData(allData),await renderNavigation({navigations:getStoreItem("navigations"),items:getStoreItem("navigationItems")}),setRedirects(redirect);for(const[contentType,contentItems]of Object.entries(content))if(isArrayStrict(contentItems))for(const contentItem of contentItems){const item=await renderItem({item:await 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&&setStoreItem("serverless",["reload"],itemData.slug))}const[outputItem]=data,output=(isServerless||isPreview)&&outputItem?outputItem:data;return await doActions("renderEnd",{...args,data:output},!0),output};export{render,renderItem,renderContent,renderFunctions,renderLayout,renderNavigation,renderHttpError,setRenderFunctions};
|
|
1
|
+
import{doActions}from"../actions/actions.js";import{applyFilters}from"../filters/filters.js";import{getSlug,getPermalink}from"../utils/link/link.js";import{isString,isStringStrict}from"../utils/string/string.js";import{isArray,isArrayStrict}from"../utils/array/array.js";import{isObjectStrict}from"../utils/object/object.js";import{isFunction}from"../utils/function/function.js";import{doShortcodes}from"../shortcodes/shortcodes.js";import{tagExists}from"../utils/tag/tag.js";import{setStoreData,setStoreItem,getStoreItem}from"../store/store.js";import{setRedirects}from"../redirects/redirects.js";import{scripts,styles}from"../scripts/scripts.js";import{config}from"../config/config.js";let renderFunctions={},renderLayout=()=>"",renderHttpError=()=>"",renderNavigation=()=>{};const setRenderFunctions=args=>{if(!isObjectStrict(args))return!1;const{functions:functions,layout:layout,navigation:navigation,httpError:httpError}=args;return!(!isObjectStrict(functions)||!isFunction(layout))&&(renderFunctions={...functions},renderLayout=layout,isFunction(navigation)&&(renderNavigation=navigation),isFunction(httpError)&&(renderHttpError=httpError),!0)},getContentTemplate=(content,templates=[],named=!1)=>{if(!isArrayStrict(content))return{content:[],namedContent:{},templates:[]};const namedContent={},newContent=content.map(c=>(named&&isString(c.name)&&(namedContent[c.name]={...c}),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(!isArrayStrict(templates))return templates;const lastTemplateIndex=templates.length-1;return templates.forEach((t,i)=>{content[0]&&tagExists(content[0],"templateBreak")&&content.length>=1&&content.shift();if(tagExists(t,"templateOptional")&&i===lastTemplateIndex&&!content.length)return void templates.pop();const isSlot=tagExists(t,"templateSlot");let children=t.content;if(isArrayStrict(children)&&!isSlot&&!named){let repeat;const newChildren=[...children],repeatIndex=children.findIndex(c=>{const isRepeat=tagExists(c,"templateRepeat");return isRepeat&&(repeat=c),isRepeat});if(-1!==repeatIndex&&repeat){let breakIndex=content.findIndex(c=>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))}isArray(children)&&templates[i]&&(templates[i].content=mapContentTemplate(children,content,namedContent,named))}),templates},renderContent=async(args,_html={ref:""})=>{if(!isObjectStrict(args))return _html.ref;const{content:content,serverlessData:serverlessData,previewData:previewData,itemData:itemData,itemContains:itemContains,itemHeadings:itemHeadings,parents:parents,depth:depth=0}=args;let{headingsIndex:headingsIndex=-1}=args;if(!isArrayStrict(content))return _html.ref;for(const item of content){if(!isObjectStrict(item))continue;const props={...item},renderType=isString(props.renderType)?props.renderType:"",isRichText="richText"===renderType;let childrenArr,children=props.content;if("contentTemplate"===renderType){const isNamed=tagExists(item,"templateNamed"),template=getContentTemplate(isArray(props.content)?props.content:[],[],isNamed);children=mapContentTemplate(template.templates,template.content,template.namedContent,isNamed)}let childrenStr="";isArrayStrict(children)&&!isRichText&&(childrenArr=children),isStringStrict(children)&&!isRichText&&(childrenStr=children),"content"===renderType&&0===depth&&(headingsIndex=itemHeadings.push([])-1);let renderStart="",renderEnd="",filterType="",filterArgs={};const renderFunction=renderFunctions[renderType];if(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(isArrayStrict(renderOutput)){const[start,end]=renderOutput;isString(start)&&(renderStart=start),isString(end)&&(renderEnd=end)}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 applyFilters("renderContent",[renderStart,renderEnd],renderContentFilterArgs,!0);if(renderStart=filterRenderStart,renderEnd=filterRenderEnd,_html.ref+=renderStart+childrenStr,childrenArr){const parentsCopy=[...parents];renderType&&parentsCopy.unshift({renderType:renderType,args:{...props,content:void 0,parents:void 0}}),await renderContent({content:childrenArr,serverlessData:serverlessData,previewData:previewData,parents:parentsCopy,itemData:itemData,itemContains:itemContains,itemHeadings:itemHeadings,headingsIndex:headingsIndex,depth:depth+1},_html)}_html.ref+=renderEnd}return _html.ref},renderMeta=item=>{const{title:title,slug:slug,baseUrl:baseUrl,pagination:pagination}=item,meta={title:title,description:"",url:baseUrl,image:"",canonical:baseUrl,prev:"",next:"",index:!0,isIndex:"index"===slug,...item.meta};if(isStringStrict(item.metaTitle)&&(meta.title=item.metaTitle),isStringStrict(item.metaDescription)&&(meta.description=item.metaDescription),isStringStrict(item.metaImage?.url)&&(meta.image=item.metaImage.url),!isObjectStrict(pagination))return meta;const{title:paginationTitle,prev:paginationPrev,next:paginationNext,currentParams:currentParams,prevParams:prevParams,nextParams:nextParams}=pagination,currentParamsStr=new URLSearchParams(currentParams).toString();if(currentParamsStr&&(meta.canonical=`${baseUrl}?${currentParamsStr}`),isStringStrict(paginationTitle)&&(meta.paginationTitle=paginationTitle),paginationPrev){const prevParamsStr=new URLSearchParams(prevParams).toString();meta.prev=`${baseUrl}${prevParamsStr?`?${prevParamsStr}`:""}`}if(paginationNext){const nextParamsStr=new URLSearchParams(nextParams).toString();meta.next=`${baseUrl}?${nextParamsStr}`}return meta},renderItem=async(args,_contentType)=>{if(!isObjectStrict(args))return null;const{item:item,serverlessData:serverlessData,previewData:previewData}=args;if(!isObjectStrict(item))return null;const contentType=item.contentType;if(!isStringStrict(contentType))return null;if("taxonomy"===contentType&&!0!==item.isPage)return null;const id=item.id;if(!isStringStrict(id))return null;if(!isStringStrict(item.slug))return null;let serverlessRender=!1;const itemContains=new Set,itemHeadings=[];scripts.deps.clear(),scripts.item.clear(),scripts.meta={},styles.deps.clear(),styles.item.clear();const renderItemStartArgs={id:id,itemData:{...item},contentType:contentType,itemContains:new Set,itemHeadings:[],serverlessData:serverlessData,previewData:previewData};await doActions("renderItemStart",renderItemStartArgs,!0);const slugArgs={id:id,contentType:contentType,slug:item.slug,returnParents:!0,itemData:item,page:0},s=getSlug(slugArgs,!0),slug=s.slug,slugIsHtml=slug.endsWith(".html"),permalink=getPermalink(slug,!slugIsHtml),parents=s.parents,taxonomy="term"===contentType?item.taxonomy:"taxonomy"===contentType?item:null;item.baseUrl=permalink,item.baseType=isObjectStrict(taxonomy)&&isArrayStrict(taxonomy.contentTypes)?taxonomy.contentTypes:contentType;let itemServerlessData,formattedSlug="index"!==slug&&""!==slug?`/${slug}/`:"/";if(slugIsHtml&&(formattedSlug=slug),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;isStringStrict(contentData)&&(contentOutput=contentData),isArrayStrict(contentData)&&(contentOutput=await renderContent({content:contentData,serverlessData:itemServerlessData,parents:[],itemData:itemData,itemContains:itemContains,itemHeadings:itemHeadings,previewData:previewData})),contentOutput=await doShortcodes(contentOutput,itemData),isObjectStrict(itemData.pagination)&&(serverlessRender=!0);const cmsLocales=config.cms.locales,slugData=[id,isStringStrict(_contentType)?_contentType:contentType];if(isStringStrict(item.locale)&&cmsLocales){const locale=item.locale;cmsLocales.includes(locale)&&locale!==cmsLocales[0]&&slugData.push(locale)}(config.env.dev||config.env.prod&&serverlessRender)&&setStoreItem("slugs",slugData,slugIsHtml?`/${slug}`:formattedSlug);const layoutArgs={id:id,meta:renderMeta(itemData),contentType:contentType,content:contentOutput,slug:formattedSlug,itemContains:itemContains,itemHeadings:itemHeadings,itemData:itemData,serverlessData:serverlessData,previewData:previewData};let layoutOutput=await renderLayout(layoutArgs);const renderItemFilterArgs={id:id,contentType:contentType,slug:formattedSlug,output:layoutOutput,itemData:itemData,itemContains:itemContains,itemHeadings:itemHeadings,serverlessData:serverlessData,previewData:previewData};layoutOutput=await 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 doActions("renderItemEnd",renderItemEndArgs,!0),{serverlessRender:serverlessRender,itemData:itemData,data:{slug:formattedSlug,output:layoutOutput}}},render=async args=>{if(!isObjectStrict(args))return[];const{allData:allData,serverlessData:serverlessData,previewData:previewData}=args,isServerless=null!=serverlessData,isPreview=null!=previewData;if(scripts.deps.clear(),scripts.item.clear(),scripts.meta={},styles.deps.clear(),styles.item.clear(),!isObjectStrict(allData))return[];const{redirect:redirect,content:content}=allData;await doActions("renderStart",args,!0);const data=[];isServerless||setStoreData(allData),await renderNavigation({navigations:getStoreItem("navigations"),items:getStoreItem("navigationItems")}),setRedirects(redirect);for(const[contentType,contentItems]of Object.entries(content))if(isArrayStrict(contentItems))for(const contentItem of contentItems){const item=await renderItem({item:await 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&&setStoreItem("serverless",["reload"],itemData.slug))}const[outputItem]=data,output=(isServerless||isPreview)&&outputItem?outputItem:data;return await doActions("renderEnd",{...args,data:output},!0),output};export{render,renderItem,renderMeta,renderContent,renderFunctions,renderLayout,renderNavigation,renderHttpError,setRenderFunctions};
|
package/lib/store/store.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{normalizeContentType}from"../utils/contentType/contentType.js";import{isObject,isObjectStrict}from"../utils/object/object.js";import{isStringStrict}from"../utils/string/string.js";import{isArrayStrict}from"../utils/array/array.js";import{
|
|
1
|
+
import{normalizeContentType}from"../utils/contentType/contentType.js";import{isObject,isObjectStrict}from"../utils/object/object.js";import{isStringStrict}from"../utils/string/string.js";import{isArrayStrict}from"../utils/array/array.js";import{getArchiveMeta}from"../utils/archive/archive.js";import{config}from"../config/config.js";let storeDir="lib/store";const defaultStore={slugs:Object.create(null),parents:Object.create(null),navigations:[],navigationItems:[],formMeta:Object.create(null),archiveMeta:Object.create(null),imageMeta:Object.create(null),taxonomies:Object.create(null),serverless:Object.create(null)};let store={...defaultStore};const setStore=(args,dir="lib/store")=>isObjectStrict(args)?(store={...defaultStore,...args},isStringStrict(dir)&&(storeDir=dir),store):store,setStoreItem=(prop,value,subProp)=>!(!isStringStrict(prop)||!isObject(value)||null==store[prop])&&(isStringStrict(subProp)?store[prop][subProp]=value:store[prop]=value,!0),setStoreData=allData=>{if(!isObjectStrict(allData))return!1;const{navigation:navigation,navigationItem:navigationItem,content:content}=allData;store.navigations=isArrayStrict(navigation)?navigation:[],store.navigationItems=isArrayStrict(navigationItem)?navigationItem:[];const data={...allData,...content};return config.hierarchicalTypes.forEach(type=>{const items=data[type];isArrayStrict(items)&&items.forEach(item=>{if(!isObjectStrict(item))return;const{id:id,parent:parent,archive:archive,slug:slug,title:title,locale:locale}=item;if(!isStringStrict(id))return;const archiveType=normalizeContentType(archive);if(isStringStrict(archiveType)){const hasLocale=isStringStrict(locale),archiveMeta=getArchiveMeta(archiveType),newArchive={id:id,slug:slug,title:title,contentType:type,...hasLocale?archiveMeta[locale]:archiveMeta};hasLocale?(store.archiveMeta[archiveType]||(store.archiveMeta[archiveType]=Object.create(null)),store.archiveMeta[archiveType][locale]=newArchive):store.archiveMeta[archiveType]=newArchive}if(isObjectStrict(parent)){const parentSlug=parent.slug,parentTitle=parent.title,parentId=parent.id;isStringStrict(parentSlug)&&isStringStrict(parentTitle)&&isStringStrict(parentId)&&(null==store.parents[type]&&(store.parents[type]=Object.create(null)),store.parents[type][id]=[parentId,parentSlug,parentTitle])}})}),!0},getStoreItem=prop=>store[prop];export{store,storeDir,setStore,setStoreData,setStoreItem,getStoreItem};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{isString}from"../string/string.js";const escape=value=>{if(!isString(value))throw new TypeError("Value
|
|
1
|
+
import{isString}from"../string/string.js";const escape=value=>{if(!isString(value))throw new TypeError("Value not a string");return value.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">").replace(/\//g,"/").replace(/\\/g,"\").replace(/`/g,"`")};export{escape};
|
package/lib/utils/json/json.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
declare const getJson: <T extends object>(value: string) => T
|
|
2
|
-
declare const getJsonFile: <T>(path: string, store?: boolean) => Promise<
|
|
1
|
+
declare const getJson: <T extends object>(value: string) => T;
|
|
2
|
+
declare const getJsonFile: <T>(path: string, store?: boolean) => Promise<object & T>;
|
|
3
3
|
export { getJson, getJsonFile };
|
package/lib/utils/json/json.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{isObject}from"../object/object.js";import{getPath}from"../path/path.js";import{applyFilters}from"../../filters/filters.js";const getJson=value=>{
|
|
1
|
+
import{isObject}from"../object/object.js";import{getPath}from"../path/path.js";import{applyFilters}from"../../filters/filters.js";const getJson=value=>{const val=JSON.parse(value);if(isObject(val))return val;throw new Error("Value not an object")},getJsonFile=async(path,store=!1)=>{const newPath=store?getPath(path,"store"):path,{default:obj}=await import(newPath);if(isObject(obj))return store?await applyFilters("storeData",obj,newPath,!0):obj;throw new Error("No object in JSON file")};export{getJson,getJsonFile};
|
package/package.json
CHANGED
package/cjs/utils/proto/proto.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.isProto=void 0;const isProto=value=>new Set(["__proto__","constructor","prototype"]).has(value);exports.isProto=isProto;
|
package/lib/utils/proto/proto.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const isProto=value=>new Set(["__proto__","constructor","prototype"]).has(value);export{isProto};
|