@jaredwray/fumanchu 4.1.0 → 4.2.0

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/dist/index.cjs CHANGED
@@ -1,11 +1,11 @@
1
- "use strict";var zn=Object.create;var H=Object.defineProperty;var Ln=Object.getOwnPropertyDescriptor;var Pn=Object.getOwnPropertyNames;var Un=Object.getPrototypeOf,In=Object.prototype.hasOwnProperty;var Jn=(n,e)=>{for(var r in e)H(n,r,{get:e[r],enumerable:!0})},B=(n,e,r,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Pn(e))!In.call(n,o)&&o!==r&&H(n,o,{get:()=>e[o],enumerable:!(t=Ln(e,o))||t.enumerable});return n};var a=(n,e,r)=>(r=n!=null?zn(Un(n)):{},B(e||!n||!n.__esModule?H(r,"default",{value:n,enumerable:!0}):r,n)),qn=n=>B(H({},"__esModule",{value:!0}),n);var Ut={};Jn(Ut,{Handlebars:()=>Ct,HelperRegistry:()=>d,createHandlebars:()=>Lt,fumanchu:()=>Pt,handlebars:()=>Mt,helpers:()=>zt});module.exports=qn(Ut);var y=a(require("handlebars"),1);var vn=(n,e)=>Array.isArray(n)?n.slice(e):[],Dn=(n,e)=>Array.isArray(n)?n.slice(0,-e):[],f=n=>n==null?[]:Array.isArray(n)?n:[n],Wn=(n,e)=>{if(Array.isArray(n))return typeof e!="number"?n[0]:n.slice(0,e)},Gn=(n,e)=>{if(!Array.isArray(n)&&typeof n!="string")return;if(typeof e!="number"){let t=n;return t[t.length-1]}let r=Math.abs(e);return n.slice(-r)},Yn=n=>n&&typeof n=="object"&&!Array.isArray(n)?Object.keys(n).length:typeof n=="string"||Array.isArray(n)?n.length:0,Qn=(n,e=", ")=>typeof n=="string"?n:Array.isArray(n)?n.join(e):"",Zn=function(n,e){if(!Array.isArray(n)||!e||typeof e.fn!="function")return e?.inverse?e.inverse(this)??"":"";if(n.length===0)return e.inverse?e.inverse(this)??"":"";let r=n.length,t=e.hash??{},o=e.data?{...e.data}:void 0,s="";for(let i=0;i<r;i++){let p=n[i],g={index:i,total:r,isFirst:i===0,isLast:i===r-1},Mn={...o?{...o}:{},...t,...g},$;p!=null&&typeof p=="object"?$={...p,...t,...g}:$={value:p,...t,...g},s+=e.fn($,{data:Mn})}return s},_=[{name:"after",category:"array",compatibility:["browser","nodejs"],fn:vn},{name:"before",category:"array",compatibility:["browser","nodejs"],fn:Dn},{name:"arrayify",category:"array",compatibility:["browser","nodejs"],fn:f},{name:"first",category:"array",compatibility:["browser","nodejs"],fn:Wn},{name:"last",category:"array",compatibility:["browser","nodejs"],fn:Gn},{name:"length",category:"array",compatibility:["browser","nodejs"],fn:Yn},{name:"join",category:"array",compatibility:["browser","nodejs"],fn:Qn},{name:"forEach",category:"array",compatibility:["browser","nodejs"],fn:Zn}];var C=a(require("fs"),1),M=a(require("path"),1),R=a(require("html-tag"),1),z=a(require("to-gfm-code-block"),1),Kn=(n,e)=>{let r=typeof e=="string"?e:M.default.extname(n).slice(1),t=C.default.readFileSync(n,"utf8");return(r==="markdown"||r==="md")&&(r="markdown",t=t.split("`").join("&#x60")),`${(0,z.default)(t,r).trim()}
2
- `},Vn=n=>(0,R.default)("script",{src:`https://gist.github.com/${n}.js`}),Xn=n=>{if(!n||!n.id)throw new Error("jsfiddle helper expects an `id`");let{id:e,width:r="100%",height:t="300",skin:o="/presentation/",tabs:s="result,js,html,css",allowfullscreen:i="allowfullscreen",frameborder:p="0"}=n,g=`http://jsfiddle.net/${e}/embedded/${s}${o}`;return(0,R.default)("iframe",{width:r,height:t,src:g,allowfullscreen:i,frameborder:p})},L=[{name:"embed",category:"code",compatibility:["nodejs"],fn:Kn},{name:"gist",category:"code",compatibility:["browser","nodejs"],fn:Vn},{name:"jsfiddle",category:"code",compatibility:["browser","nodejs"],fn:Xn}];var ne=n=>n==null?!0:Array.isArray(n)?n.length===0:typeof n=="object"?Object.keys(n).length===0:!1,ee=(n,e,r)=>{if(Array.isArray(n)){let t="";for(let o=0;o<n.length;o++)t+=e(n[o],o);return t}if(n&&typeof n=="object"){let t="";for(let o of Object.keys(n))t+=e(n[o],o);return t}return r?r():""},P=[{name:"isEmpty",category:"collection",compatibility:["browser","nodejs"],fn:ne},{name:"iterate",category:"collection",compatibility:["browser","nodejs"],fn:ee}];var re=(...n)=>n.every(Boolean),te=(n,e,r)=>{switch(e){case"==":return n==r;case"===":return n===r;case"!=":return n!=r;case"!==":return n!==r;case"<":return n<r;case">":return n>r;case"<=":return n<=r;case">=":return n>=r;case"typeof":return typeof n===r;default:throw new Error(`helper {{compare}}: invalid operator: '${e}'`)}},oe=(n,e,r=0)=>n==null?!1:typeof n=="string"||Array.isArray(n)?n.indexOf(e,r)>-1:typeof n=="object"?e in n:!1,se=(...n)=>{for(let e of n)if(e!=null)return e;return""},ie=(n,e)=>n===e,ae=(n,e)=>n>e,ce=(n,e)=>n>=e,pe=(n,e)=>n==null||e==null?!1:Array.isArray(n)||typeof n=="string"?n.indexOf(e)>-1:typeof n=="object"?e in n:!1,U=(n,e)=>{if(!n)return!0;let r=Array.isArray(e)?e:e!=null?[e]:["0","false","nada","nil","nay","nah","negative","no","none","nope","nul","null","nix","nyet","uh-uh","veto","zero"],t=typeof n=="string"?n.toLowerCase():null;for(let o of r)if(o===n||t!=null&&o===t)return!0;return!1},me=n=>U(n),le=n=>!U(n),ye=n=>typeof n=="number"&&n%2===0,ge=(n,e)=>typeof n=="number"&&typeof e=="number"&&e%n===0,fe=n=>typeof n=="number"&&Math.abs(n%2)===1,ue=(n,e)=>n==e,be=(n,e)=>n!=e,de=(n,e)=>n<e,he=(n,e)=>n<=e,we=(n,e)=>!n&&!e,je=n=>!n,ke=(...n)=>n.some(Boolean),He=(n,e)=>n!==e,xe=(n,e)=>n<=e,Oe=(n,e)=>n>=e,Ae=(n,e)=>n<e,Ne=(n,e)=>n>e,I=[{name:"and",category:"comparison",compatibility:["browser","nodejs"],fn:re},{name:"compare",category:"comparison",compatibility:["browser","nodejs"],fn:te},{name:"contains",category:"comparison",compatibility:["browser","nodejs"],fn:oe},{name:"default",category:"comparison",compatibility:["browser","nodejs"],fn:se},{name:"eq",category:"comparison",compatibility:["browser","nodejs"],fn:ie},{name:"gt",category:"comparison",compatibility:["browser","nodejs"],fn:ae},{name:"gte",category:"comparison",compatibility:["browser","nodejs"],fn:ce},{name:"has",category:"comparison",compatibility:["browser","nodejs"],fn:pe},{name:"isFalsey",category:"comparison",compatibility:["browser","nodejs"],fn:me},{name:"isTruthy",category:"comparison",compatibility:["browser","nodejs"],fn:le},{name:"ifEven",category:"comparison",compatibility:["browser","nodejs"],fn:ye},{name:"ifNth",category:"comparison",compatibility:["browser","nodejs"],fn:ge},{name:"ifOdd",category:"comparison",compatibility:["browser","nodejs"],fn:fe},{name:"is",category:"comparison",compatibility:["browser","nodejs"],fn:ue},{name:"isnt",category:"comparison",compatibility:["browser","nodejs"],fn:be},{name:"lt",category:"comparison",compatibility:["browser","nodejs"],fn:de},{name:"lte",category:"comparison",compatibility:["browser","nodejs"],fn:he},{name:"neither",category:"comparison",compatibility:["browser","nodejs"],fn:we},{name:"not",category:"comparison",compatibility:["browser","nodejs"],fn:je},{name:"or",category:"comparison",compatibility:["browser","nodejs"],fn:ke},{name:"unlessEq",category:"comparison",compatibility:["browser","nodejs"],fn:He},{name:"unlessGt",category:"comparison",compatibility:["browser","nodejs"],fn:xe},{name:"unlessLt",category:"comparison",compatibility:["browser","nodejs"],fn:Oe},{name:"unlessGteq",category:"comparison",compatibility:["browser","nodejs"],fn:Ae},{name:"unlessLteq",category:"comparison",compatibility:["browser","nodejs"],fn:Ne}];var q=require("chrono-node"),v=a(require("dayjs"),1),$e=()=>new Date().getFullYear().toString(),J=(n,e)=>{let r=(0,q.parseDate)(n);if(!r)throw new Error(`Unable to parse date: ${n}`);return(0,v.default)(r).format(e)},D=[{name:"year",category:"date",compatibility:["browser","nodejs"],fn:$e},{name:"date",category:"date",compatibility:["browser","nodejs"],fn:J},{name:"moment",category:"date",compatibility:["browser","nodejs"],fn:J}];var x=a(require("fs"),1),W=a(require("path"),1),G=a(require("is-glob"),1),Y=a(require("micromatch"),1),Re=(n,e)=>{if(n==null)return"0 B";let r=typeof n=="number"?n:n.length??0;if(!r)return"0 B";let t=typeof e=="number"?e:2,o=["B","kB","MB","GB","TB","PB","EB","ZB","YB"],s=10**t,i=o.length-1;do{let p=10**(i*3);if(p<=r+1)return`${Math.round(r*s/p)/s} ${o[i]}`}while(--i>=0);return`${r} B`},Se=n=>x.default.readFileSync(n,"utf8"),Ee=n=>!!(n&&typeof n=="object"&&"hash"in n),Te=(n,e)=>{let r=x.default.readdirSync(n).map(o=>W.default.join(n,o)),t=Ee(e)?void 0:e;if(typeof t=="function")return t(r);if(t instanceof RegExp)return r.filter(o=>t.test(o));if(typeof t=="string"){if((0,G.default)(t))return(0,Y.default)(r,t);if(t==="isFile"||t==="isDirectory")return r.filter(o=>{let s=x.default.statSync(o);return t==="isFile"?s.isFile():s.isDirectory()})}return r},Q=[{name:"fileSize",category:"fs",compatibility:["nodejs"],fn:Re},{name:"read",category:"fs",compatibility:["nodejs"],fn:Se},{name:"readdir",category:"fs",compatibility:["nodejs"],fn:Te}];var O=a(require("path"),1),S=a(require("html-tag"),1),Z=a(require("striptags"),1);var u=(n={})=>Object.keys(n).map(e=>`${e}="${String(n[e]).replace(/^['"]|["']$/g,"")}"`).join(" "),Fe=n=>{let e=u(n?.hash??{});return e.trim()?` ${e}`:""},Be=function(n,e){arguments.length<2&&(e=n,n=[]);let r=f(n??[]),t="";return this&&this.options&&(t=this.options.assets||""),e?.hash?.href&&(r=f(e.hash.href)),r.map(o=>{let s=O.default.extname(o),i=o;return/(^\/\/)|(:\/\/)/.test(o)||(i=O.default.posix.join(t,o)),s===".less"?`<link type="text/css" rel="stylesheet/less" href="${i}">`:`<link type="text/css" rel="stylesheet" href="${i}">`}).join(`
3
- `)},_e=n=>{if(n&&typeof n=="object"&&!Array.isArray(n)){let r=u(n.hash??{});return`<script${r?` ${r}`:""}></script>`}return typeof n=="string"?`<script src="${n}"></script>`:f(n).map(r=>O.default.extname(r)===".coffee"?(0,S.default)("script",{type:"text/coffeescript",src:r}):(0,S.default)("script",{src:r})).join(`
4
- `)},Ce=n=>typeof n!="string"?"":(0,Z.default)(n).trim(),Me=(n,e)=>{let r=u(e.hash??{}),t=n.map(s=>typeof s=="string"?s:e.fn(s));return`${r?`<ul ${r}>`:"<ul>"}${t.map(s=>`<li>${s}</li>`).join(`
5
- `)}</ul>`},ze=(n,e)=>{let r=u(e.hash??{}),t=n.map(s=>typeof s=="string"?s:e.fn(s));return`${r?`<ol ${r}>`:"<ol>"}${t.map(s=>`<li>${s}</li>`).join(`
6
- `)}</ol>`},Le=n=>{let e="",r="",t=n.full||!1,o={alt:n.alt,src:n.thumbnail,width:n.size.width,height:n.size.height},s={id:`image-${n.id}`},i={href:t,rel:"thumbnail"};return n.classes&&(n.classes.image&&(o.class=n.classes.image.join(" ")),n.classes.figure&&(s.class=n.classes.figure.join(" ")),n.classes.link&&(i.class=n.classes.link.join(" "))),e+=`<figure ${u(s)}>
1
+ "use strict";var Ln=Object.create;var H=Object.defineProperty;var Pn=Object.getOwnPropertyDescriptor;var Un=Object.getOwnPropertyNames;var In=Object.getPrototypeOf,vn=Object.prototype.hasOwnProperty;var Jn=(n,e)=>{for(var r in e)H(n,r,{get:e[r],enumerable:!0})},B=(n,e,r,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Un(e))!vn.call(n,o)&&o!==r&&H(n,o,{get:()=>e[o],enumerable:!(t=Pn(e,o))||t.enumerable});return n};var a=(n,e,r)=>(r=n!=null?Ln(In(n)):{},B(e||!n||!n.__esModule?H(r,"default",{value:n,enumerable:!0}):r,n)),qn=n=>B(H({},"__esModule",{value:!0}),n);var Ut={};Jn(Ut,{Handlebars:()=>Mt,HelperRegistry:()=>d,createHandlebars:()=>Lt,fumanchu:()=>Pt,handlebars:()=>Ct,helpers:()=>zt});module.exports=qn(Ut);var y=a(require("handlebars"),1);var Dn=(n,e)=>Array.isArray(n)?n.slice(e):[],Wn=(n,e)=>Array.isArray(n)?n.slice(0,-e):[],f=n=>n==null?[]:Array.isArray(n)?n:[n],Gn=(n,e)=>{if(Array.isArray(n))return typeof e!="number"?n[0]:n.slice(0,e)},Yn=(n,e)=>{if(!Array.isArray(n)&&typeof n!="string")return;if(typeof e!="number"){let t=n;return t[t.length-1]}let r=Math.abs(e);return n.slice(-r)},Qn=n=>n&&typeof n=="object"&&!Array.isArray(n)?Object.keys(n).length:typeof n=="string"||Array.isArray(n)?n.length:0,Zn=(n,e=", ")=>typeof n=="string"?n:Array.isArray(n)?n.join(e):"",Kn=function(n,e){if(!Array.isArray(n)||!e||typeof e.fn!="function")return e?.inverse?e.inverse(this)??"":"";if(n.length===0)return e.inverse?e.inverse(this)??"":"";let r=n.length,t=e.hash??{},o=e.data?{...e.data}:void 0,s="";for(let i=0;i<r;i++){let p=n[i],g={index:i,total:r,isFirst:i===0,isLast:i===r-1},zn={...o?{...o}:{},...t,...g},R;p!=null&&typeof p=="object"?R={...p,...t,...g}:R={value:p,...t,...g},s+=e.fn(R,{data:zn})}return s},_=[{name:"after",category:"array",compatibility:["browser","nodejs"],fn:Dn},{name:"before",category:"array",compatibility:["browser","nodejs"],fn:Wn},{name:"arrayify",category:"array",compatibility:["browser","nodejs"],fn:f},{name:"first",category:"array",compatibility:["browser","nodejs"],fn:Gn},{name:"last",category:"array",compatibility:["browser","nodejs"],fn:Yn},{name:"length",category:"array",compatibility:["browser","nodejs"],fn:Qn},{name:"join",category:"array",compatibility:["browser","nodejs"],fn:Zn},{name:"forEach",category:"array",compatibility:["browser","nodejs"],fn:Kn}];var M=a(require("fs"),1),C=a(require("path"),1),S=a(require("html-tag"),1),z=a(require("to-gfm-code-block"),1),Vn=(n,e)=>{let r=typeof e=="string"?e:C.default.extname(n).slice(1),t=M.default.readFileSync(n,"utf8");return(r==="markdown"||r==="md")&&(r="markdown",t=t.split("`").join("&#x60")),`${(0,z.default)(t,r).trim()}
2
+ `},Xn=n=>(0,S.default)("script",{src:`https://gist.github.com/${n}.js`}),ne=n=>{if(!n||!n.id)throw new Error("jsfiddle helper expects an `id`");let{id:e,width:r="100%",height:t="300",skin:o="/presentation/",tabs:s="result,js,html,css",allowfullscreen:i="allowfullscreen",frameborder:p="0"}=n,g=`http://jsfiddle.net/${e}/embedded/${s}${o}`;return(0,S.default)("iframe",{width:r,height:t,src:g,allowfullscreen:i,frameborder:p})},L=[{name:"embed",category:"code",compatibility:["nodejs"],fn:Vn},{name:"gist",category:"code",compatibility:["browser","nodejs"],fn:Xn},{name:"jsfiddle",category:"code",compatibility:["browser","nodejs"],fn:ne}];var ee=n=>n==null?!0:Array.isArray(n)?n.length===0:typeof n=="object"?Object.keys(n).length===0:!1,re=(n,e,r)=>{if(Array.isArray(n)){let t="";for(let o=0;o<n.length;o++)t+=e(n[o],o);return t}if(n&&typeof n=="object"){let t="";for(let o of Object.keys(n))t+=e(n[o],o);return t}return r?r():""},P=[{name:"isEmpty",category:"collection",compatibility:["browser","nodejs"],fn:ee},{name:"iterate",category:"collection",compatibility:["browser","nodejs"],fn:re}];var te=(...n)=>n.every(Boolean),oe=(n,e,r)=>{switch(e){case"==":return n==r;case"===":return n===r;case"!=":return n!=r;case"!==":return n!==r;case"<":return n<r;case">":return n>r;case"<=":return n<=r;case">=":return n>=r;case"typeof":return typeof n===r;default:throw new Error(`helper {{compare}}: invalid operator: '${e}'`)}},se=(n,e,r=0)=>n==null?!1:typeof n=="string"||Array.isArray(n)?n.indexOf(e,r)>-1:typeof n=="object"?e in n:!1,ie=(...n)=>{for(let e of n)if(e!=null)return e;return""},ae=(n,e)=>n===e,ce=(n,e)=>n>e,pe=(n,e)=>n>=e,me=(n,e)=>n==null||e==null?!1:Array.isArray(n)||typeof n=="string"?n.indexOf(e)>-1:typeof n=="object"?e in n:!1,U=(n,e)=>{if(!n)return!0;let r=Array.isArray(e)?e:e!=null?[e]:["0","false","nada","nil","nay","nah","negative","no","none","nope","nul","null","nix","nyet","uh-uh","veto","zero"],t=typeof n=="string"?n.toLowerCase():null;for(let o of r)if(o===n||t!=null&&o===t)return!0;return!1},le=n=>U(n),ye=n=>!U(n),ge=n=>typeof n=="number"&&n%2===0,fe=(n,e)=>typeof n=="number"&&typeof e=="number"&&e%n===0,ue=n=>typeof n=="number"&&Math.abs(n%2)===1,be=(n,e)=>n==e,de=(n,e)=>n!=e,he=(n,e)=>n<e,we=(n,e)=>n<=e,je=(n,e)=>!n&&!e,ke=n=>!n,He=(...n)=>n.some(Boolean),xe=(n,e)=>n!==e,Oe=(n,e)=>n<=e,Ae=(n,e)=>n>=e,Ne=(n,e)=>n<e,$e=(n,e)=>n>e,I=[{name:"and",category:"comparison",compatibility:["browser","nodejs"],fn:te},{name:"compare",category:"comparison",compatibility:["browser","nodejs"],fn:oe},{name:"contains",category:"comparison",compatibility:["browser","nodejs"],fn:se},{name:"default",category:"comparison",compatibility:["browser","nodejs"],fn:ie},{name:"eq",category:"comparison",compatibility:["browser","nodejs"],fn:ae},{name:"gt",category:"comparison",compatibility:["browser","nodejs"],fn:ce},{name:"gte",category:"comparison",compatibility:["browser","nodejs"],fn:pe},{name:"has",category:"comparison",compatibility:["browser","nodejs"],fn:me},{name:"isFalsey",category:"comparison",compatibility:["browser","nodejs"],fn:le},{name:"isTruthy",category:"comparison",compatibility:["browser","nodejs"],fn:ye},{name:"ifEven",category:"comparison",compatibility:["browser","nodejs"],fn:ge},{name:"ifNth",category:"comparison",compatibility:["browser","nodejs"],fn:fe},{name:"ifOdd",category:"comparison",compatibility:["browser","nodejs"],fn:ue},{name:"is",category:"comparison",compatibility:["browser","nodejs"],fn:be},{name:"isnt",category:"comparison",compatibility:["browser","nodejs"],fn:de},{name:"lt",category:"comparison",compatibility:["browser","nodejs"],fn:he},{name:"lte",category:"comparison",compatibility:["browser","nodejs"],fn:we},{name:"neither",category:"comparison",compatibility:["browser","nodejs"],fn:je},{name:"not",category:"comparison",compatibility:["browser","nodejs"],fn:ke},{name:"or",category:"comparison",compatibility:["browser","nodejs"],fn:He},{name:"unlessEq",category:"comparison",compatibility:["browser","nodejs"],fn:xe},{name:"unlessGt",category:"comparison",compatibility:["browser","nodejs"],fn:Oe},{name:"unlessLt",category:"comparison",compatibility:["browser","nodejs"],fn:Ae},{name:"unlessGteq",category:"comparison",compatibility:["browser","nodejs"],fn:Ne},{name:"unlessLteq",category:"comparison",compatibility:["browser","nodejs"],fn:$e}];var J=require("chrono-node"),q=a(require("dayjs"),1),Re=()=>new Date().getFullYear().toString(),v=(n,e)=>{let r=(0,J.parseDate)(n);if(!r)throw new Error(`Unable to parse date: ${n}`);return(0,q.default)(r).format(e)},D=[{name:"year",category:"date",compatibility:["browser","nodejs"],fn:Re},{name:"date",category:"date",compatibility:["browser","nodejs"],fn:v},{name:"moment",category:"date",compatibility:["browser","nodejs"],fn:v}];var x=a(require("fs"),1),W=a(require("path"),1),G=a(require("is-glob"),1),Y=a(require("micromatch"),1),Se=(n,e)=>{if(n==null)return"0 B";let r=typeof n=="number"?n:n.length??0;if(!r)return"0 B";let t=typeof e=="number"?e:2,o=["B","kB","MB","GB","TB","PB","EB","ZB","YB"],s=10**t,i=o.length-1;do{let p=10**(i*3);if(p<=r+1)return`${Math.round(r*s/p)/s} ${o[i]}`}while(--i>=0);return`${r} B`},Ee=n=>x.default.readFileSync(n,"utf8"),Fe=n=>!!(n&&typeof n=="object"&&"hash"in n),Te=(n,e)=>{let r=x.default.readdirSync(n).map(o=>W.default.join(n,o)),t=Fe(e)?void 0:e;if(typeof t=="function")return t(r);if(t instanceof RegExp)return r.filter(o=>t.test(o));if(typeof t=="string"){if((0,G.default)(t))return(0,Y.default)(r,t);if(t==="isFile"||t==="isDirectory")return r.filter(o=>{let s=x.default.statSync(o);return t==="isFile"?s.isFile():s.isDirectory()})}return r},Q=[{name:"fileSize",category:"fs",compatibility:["nodejs"],fn:Se},{name:"read",category:"fs",compatibility:["nodejs"],fn:Ee},{name:"readdir",category:"fs",compatibility:["nodejs"],fn:Te}];var O=a(require("path"),1),E=a(require("html-tag"),1),Z=a(require("striptags"),1);var u=(n={})=>Object.keys(n).map(e=>`${e}="${String(n[e]).replace(/^['"]|["']$/g,"")}"`).join(" "),Be=n=>{let e=u(n?.hash??{});return e.trim()?` ${e}`:""},_e=function(n,e){arguments.length<2&&(e=n,n=[]);let r=f(n??[]),t="";return this&&this.options&&(t=this.options.assets||""),e?.hash?.href&&(r=f(e.hash.href)),r.map(o=>{let s=O.default.extname(o),i=o;return/(^\/\/)|(:\/\/)/.test(o)||(i=O.default.posix.join(t,o)),s===".less"?`<link type="text/css" rel="stylesheet/less" href="${i}">`:`<link type="text/css" rel="stylesheet" href="${i}">`}).join(`
3
+ `)},Me=n=>{if(n&&typeof n=="object"&&!Array.isArray(n)){let r=u(n.hash??{});return`<script${r?` ${r}`:""}></script>`}return typeof n=="string"?`<script src="${n}"></script>`:f(n).map(r=>O.default.extname(r)===".coffee"?(0,E.default)("script",{type:"text/coffeescript",src:r}):(0,E.default)("script",{src:r})).join(`
4
+ `)},Ce=n=>typeof n!="string"?"":(0,Z.default)(n).trim(),ze=(n,e)=>{let r=u(e.hash??{}),t=n.map(s=>typeof s=="string"?s:e.fn(s));return`${r?`<ul ${r}>`:"<ul>"}${t.map(s=>`<li>${s}</li>`).join(`
5
+ `)}</ul>`},Le=(n,e)=>{let r=u(e.hash??{}),t=n.map(s=>typeof s=="string"?s:e.fn(s));return`${r?`<ol ${r}>`:"<ol>"}${t.map(s=>`<li>${s}</li>`).join(`
6
+ `)}</ol>`},Pe=n=>{let e="",r="",t=n.full||!1,o={alt:n.alt,src:n.thumbnail,width:n.size.width,height:n.size.height},s={id:`image-${n.id}`},i={href:t,rel:"thumbnail"};return n.classes&&(n.classes.image&&(o.class=n.classes.image.join(" ")),n.classes.figure&&(s.class=n.classes.figure.join(" ")),n.classes.link&&(i.class=n.classes.link.join(" "))),e+=`<figure ${u(s)}>
7
7
  `,r+=`<img ${u(o)}>
8
8
  `,t?e+=`<a ${u(i)}>
9
9
  ${r}</a>
10
10
  `:e+=r,n.caption&&(e+=`<figcaption>${n.caption}</figcaption>
11
- `),e+="</figure>",e},K=[{name:"attr",category:"html",compatibility:["browser","nodejs"],fn:Fe},{name:"css",category:"html",compatibility:["nodejs"],fn:Be},{name:"js",category:"html",compatibility:["nodejs"],fn:_e},{name:"sanitize",category:"html",compatibility:["browser","nodejs"],fn:Ce},{name:"ul",category:"html",compatibility:["browser","nodejs"],fn:Me},{name:"ol",category:"html",compatibility:["browser","nodejs"],fn:ze},{name:"thumbnailImage",category:"html",compatibility:["browser","nodejs"],fn:Le}];var h=(n,e)=>{if(!n||typeof n!="object")return;let r=Array.isArray(e)?e:e.split("."),t=n;for(let o of r){if(t==null||typeof t!="object")return;t=t[o]}return t},E=(n,e)=>{if(!n||typeof n!="object")return;let r=Array.isArray(e)?e:e.split(".");if(r.length===0)return;let t=n;for(let s=0;s<r.length-1;s++){if(t==null||typeof t!="object")return;t=t[r[s]]}let o=r[r.length-1];if(!(t==null||typeof t!="object"||!(o in t)))return{[o]:t[o]}};var Pe=function(n,e,r){if(e&&typeof e=="object"&&"hash"in e&&r===void 0&&(r=e,e={}),typeof n!="string")throw new Error('{{i18n}} helper expected "key" to be a string');let t={...this,...e,...r?.hash??{}},o=t.language||t.lang;if(typeof o!="string")throw new TypeError('{{i18n}} helper expected "language" to be a string');let s=t[o];if(typeof s>"u")throw new Error(`{{i18n}} helper cannot find language "${o}"`);let i=h(s,n);if(typeof i>"u")throw new Error('{{i18n}} helper cannot find property "'+String(n)+'" for language "'+o+'"');return String(i)},V=[{name:"i18n",category:"i18n",compatibility:["browser","nodejs"],fn:Pe}];var Ue=(n,e,r,t)=>{let o=n>1||n===0?r:e;return t?`${n} ${o}`:o},Ie=n=>{let e=Math.abs(Math.round(Number(n))),r=String(n),t=e%100;if([11,12,13].includes(t))return`${r}th`;switch(e%10){case 1:return`${r}st`;case 2:return`${r}nd`;case 3:return`${r}rd`;default:return`${r}th`}},X=[{name:"inflect",category:"inflection",compatibility:["browser","nodejs"],fn:Ue},{name:"ordinalize",category:"inflection",compatibility:["browser","nodejs"],fn:Ie}];var nn=a(require("logging-helpers"),1),{log:Je,ok:qe,success:ve,info:De,warning:We,warn:Ge,error:Ye,danger:Qe,bold:Ze,_debug:Ke,_inspect:Ve}=nn.default,en=[{name:"log",category:"logging",compatibility:["nodejs"],fn:Je},{name:"ok",category:"logging",compatibility:["nodejs"],fn:qe},{name:"success",category:"logging",compatibility:["nodejs"],fn:ve},{name:"info",category:"logging",compatibility:["nodejs"],fn:De},{name:"warning",category:"logging",compatibility:["nodejs"],fn:We},{name:"warn",category:"logging",compatibility:["nodejs"],fn:Ge},{name:"error",category:"logging",compatibility:["nodejs"],fn:Ye},{name:"danger",category:"logging",compatibility:["nodejs"],fn:Qe},{name:"bold",category:"logging",compatibility:["nodejs"],fn:Ze},{name:"_debug",category:"logging",compatibility:["nodejs"],fn:Ke},{name:"_inspect",category:"logging",compatibility:["nodejs"],fn:Ve}];var T=a(require("micromatch"),1),rn=(n,e,r)=>{let t=typeof e=="string"?e.split(/, */):e;return(0,T.default)(n,t,r)},Xe=(n,e,r)=>T.default.isMatch(n,e,r),nr=(...n)=>(console.log("the {{mm}} helper is depcrecated and will be removed"),console.log("in handlebars-helpers v1.0.0, please use the {{match}}"),console.log("helper instead."),rn(...n)),tn=[{name:"match",category:"match",compatibility:["browser","nodejs"],fn:rn},{name:"isMatch",category:"match",compatibility:["browser","nodejs"],fn:Xe},{name:"mm",category:"match",compatibility:["browser","nodejs"],fn:nr}];var A=n=>typeof n=="number"&&!Number.isNaN(n)||typeof n=="string"&&n.trim()!==""&&!Number.isNaN(Number(n)),c=(n,e="expected a number")=>{if(A(n))return Number(n);throw new TypeError(e)},er=n=>{let e=c(n);return Math.abs(e)},rr=(n,e)=>A(n)&&A(e)?Number(n)+Number(e):"",tr=(...n)=>{let e=n.flat().map(r=>Number(r));return sn(e)/e.length},or=n=>{let e=c(n);return Math.ceil(e)},sr=(n,e)=>{let r=c(n,"expected the first argument to be a number"),t=c(e,"expected the second argument to be a number");return r/t},ir=n=>{let e=c(n);return Math.floor(e)},ar=(n,e)=>{let r=c(n,"expected the first argument to be a number"),t=c(e,"expected the second argument to be a number");return r-t},cr=(n,e)=>{let r=c(n,"expected the first argument to be a number"),t=c(e,"expected the second argument to be a number");return r%t},on=(n,e)=>{let r=c(n,"expected the first argument to be a number"),t=c(e,"expected the second argument to be a number");return r*t},pr=(n,e)=>{let r=c(n,"expected the first argument to be a number"),t=c(e,"expected the second argument to be a number");return r+t},mr=(n,e)=>{let r=c(n,"expected minimum to be a number"),t=c(e,"expected maximum to be a number");return r+Math.floor(Math.random()*(t-r+1))},lr=(n,e)=>n%e,yr=n=>{let e=c(n);return Math.round(e)},gr=(n,e)=>{let r=c(n,"expected the first argument to be a number"),t=c(e,"expected the second argument to be a number");return r-t},sn=(...n)=>{let e=n.flat(),r=0;for(let t of e)A(t)&&(r+=Number(t));return r},fr=(n,e)=>on(n,e),an=[{name:"abs",category:"math",compatibility:["browser","nodejs"],fn:er},{name:"add",category:"math",compatibility:["browser","nodejs"],fn:rr},{name:"avg",category:"math",compatibility:["browser","nodejs"],fn:tr},{name:"ceil",category:"math",compatibility:["browser","nodejs"],fn:or},{name:"divide",category:"math",compatibility:["browser","nodejs"],fn:sr},{name:"floor",category:"math",compatibility:["browser","nodejs"],fn:ir},{name:"minus",category:"math",compatibility:["browser","nodejs"],fn:ar},{name:"modulo",category:"math",compatibility:["browser","nodejs"],fn:cr},{name:"multiply",category:"math",compatibility:["browser","nodejs"],fn:on},{name:"plus",category:"math",compatibility:["browser","nodejs"],fn:pr},{name:"random",category:"math",compatibility:["browser","nodejs"],fn:mr},{name:"remainder",category:"math",compatibility:["browser","nodejs"],fn:lr},{name:"round",category:"math",compatibility:["browser","nodejs"],fn:yr},{name:"subtract",category:"math",compatibility:["browser","nodejs"],fn:gr},{name:"sum",category:"math",compatibility:["browser","nodejs"],fn:sn},{name:"times",category:"math",compatibility:["browser","nodejs"],fn:fr}];var F=a(require("fs"),1),cn=a(require("path"),1),pn=a(require("process"),1),mn=a(require("ent"),1),ln=a(require("handlebars"),1),yn=require("remarkable"),ur=(n,e={})=>{let r={cwd:pn.default.cwd(),...e},t=new yn.Remarkable({breaks:!0,html:!0,langPrefix:"lang-",typographer:!1,xhtmlOut:!1}),o=cn.default.resolve(r.cwd,n),s=n;return F.default.existsSync(o)&&(s=F.default.readFileSync(o,"utf8")),new ln.default.SafeString(mn.default.decode(t.render(s)))},gn=[{name:"md",category:"markdown",compatibility:["nodejs"],fn:ur}];var fn=a(require("handlebars-helper-create-frame"),1),un=a(require("handlebars-utils"),1),bn=a(require("kind-of"),1);var br=fn.default;function dr(n,e,r){return h(un.default.options(this,e,r),n)}function hr(n){return n.fn(this)}var wr=bn.default;function jr(n){return n.hash&&Object.keys(n.hash).length?n.fn(n.hash):n.inverse(this)}var dn=[{name:"frame",category:"misc",compatibility:["browser","nodejs"],fn:br},{name:"option",category:"misc",compatibility:["browser","nodejs"],fn:dr},{name:"noop",category:"misc",compatibility:["browser","nodejs"],fn:hr},{name:"typeOf",category:"misc",compatibility:["browser","nodejs"],fn:wr},{name:"withHash",category:"misc",compatibility:["browser","nodejs"],fn:jr}];var j=n=>typeof n=="number"&&!Number.isNaN(n),kr=(n,e)=>{if(n==null)return"0 B";let r;if(typeof n=="string"){if(r=n.length,!r)return"0 B"}else if(j(n))r=Number(n);else if(typeof n.length=="number"){if(r=n.length,!r)return"0 B"}else return"0 B";let t=typeof e=="number"&&!Number.isNaN(e)?e:2,o=["B","kB","MB","GB","TB","PB","EB","ZB","YB"],s=10**t;for(let i=o.length-1;i>=0;i--){let p=10**(i*3);if(p<=r+1)return`${Math.round(r*s/p)/s} ${o[i]}`}return`${r}`},Hr=n=>n.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g,"$1,"),xr=n=>{let e=n.toString();return`(${e.substr(0,3)}) ${e.substr(3,3)}-${e.substr(6,4)}`},Or=(n,e)=>{let r=j(n)?Number(n):0,o=10**(typeof e=="number"&&!Number.isNaN(e)?e:2),s=["k","m","b","t","q"];for(let i=s.length-1;i>=0;i--){let p=10**((i+1)*3);if(p<=r+1)return`${Math.round(r*o/p)/o}${s[i]}`}return`${r}`},Ar=(n,e)=>{let r=j(n)?Number(n):0,t=typeof e=="number"&&!Number.isNaN(e)?e:0;return Number(r).toExponential(t)},Nr=(n,e)=>{let r=j(n)?Number(n):0,t=typeof e=="number"&&!Number.isNaN(e)?e:0;return Number(r).toFixed(t)},$r=n=>parseFloat(String(n)),Rr=n=>parseInt(String(n),10),Sr=(n,e)=>{let r=j(n)?Number(n):0,t=typeof e=="number"&&!Number.isNaN(e)?e:1;return Number(r).toPrecision(t)},hn=[{name:"bytes",category:"number",compatibility:["browser","nodejs"],fn:kr},{name:"addCommas",category:"number",compatibility:["browser","nodejs"],fn:Hr},{name:"phoneNumber",category:"number",compatibility:["browser","nodejs"],fn:xr},{name:"toAbbr",category:"number",compatibility:["browser","nodejs"],fn:Or},{name:"toExponential",category:"number",compatibility:["browser","nodejs"],fn:Ar},{name:"toFixed",category:"number",compatibility:["browser","nodejs"],fn:Nr},{name:"toFloat",category:"number",compatibility:["browser","nodejs"],fn:$r},{name:"toInt",category:"number",compatibility:["browser","nodejs"],fn:Rr},{name:"toPrecision",category:"number",compatibility:["browser","nodejs"],fn:Sr}];var N=n=>!!(n&&typeof n=="object"&&"hash"in n),wn=(n,e)=>({...n?.data||{},...e}),Er=(...n)=>{let e=[...n];if(e.length&&N(e[e.length-1])){let t=e.pop();e.push(t.hash)}let r={};for(let t of e)t&&typeof t=="object"&&!Array.isArray(t)&&Object.assign(r,t);return r},Tr=(n,e)=>{if(!N(e))return e?.inverse?.(n)??"";let r=wn(e,e.hash||{}),t="";for(let o in n)r.key=o,t+=e.fn(n[o],{data:r});return t},Fr=(n,e)=>{if(!N(e))return e?.inverse?.(n)??"";let r=wn(e,e.hash||{}),t="";for(let o in n)Object.hasOwn(n,o)&&(r.key=o,t+=e.fn(n[o],{data:r}));return t},Br=(...n)=>{let e=[];for(let r of n)(typeof r=="string"||typeof r=="number")&&e.push(r);return e.join(".")},_r=(n,e,r)=>{let t=h(e,n);return r&&typeof r.fn=="function"?t?r.fn(t):r.inverse?.(e):t},Cr=(n,e)=>E(e,n),Mr=(n,e)=>Object.hasOwn(n,e),zr=n=>!!n&&typeof n=="object"&&!Array.isArray(n),jn=n=>JSON.parse(n),kn=(n,e)=>JSON.stringify(n,null,typeof e=="number"?e:0),Lr=(n,...e)=>{let r=[n,...e];if(r.length&&N(r[r.length-1])){let t=r.pop();r.push(t.hash)}return Object.assign(...r)},Pr=jn,Ur=kn,Ir=(n,e,r)=>{let t=f(n),o={};for(let s of t)o=Object.assign({},o,E(e,s));return r&&typeof r.fn=="function"?Object.keys(o).length?r.fn(o):r.inverse?.(e):o},Hn=[{name:"extend",category:"object",compatibility:["browser","nodejs"],fn:Er},{name:"forIn",category:"object",compatibility:["browser","nodejs"],fn:Tr},{name:"forOwn",category:"object",compatibility:["browser","nodejs"],fn:Fr},{name:"toPath",category:"object",compatibility:["browser","nodejs"],fn:Br},{name:"get",category:"object",compatibility:["browser","nodejs"],fn:_r},{name:"getObject",category:"object",compatibility:["browser","nodejs"],fn:Cr},{name:"hasOwn",category:"object",compatibility:["browser","nodejs"],fn:Mr},{name:"isObject",category:"object",compatibility:["browser","nodejs"],fn:zr},{name:"JSONparse",category:"object",compatibility:["browser","nodejs"],fn:jn},{name:"JSONstringify",category:"object",compatibility:["browser","nodejs"],fn:kn},{name:"merge",category:"object",compatibility:["browser","nodejs"],fn:Lr},{name:"parseJSON",category:"object",compatibility:["browser","nodejs"],fn:Pr},{name:"pick",category:"object",compatibility:["browser","nodejs"],fn:Ir},{name:"stringify",category:"object",compatibility:["browser","nodejs"],fn:Ur}];var m=a(require("path"),1),Jr=(n,e,r)=>{let t=Object.prototype.toString.call(r).slice(8,-1).toLowerCase();return`Expected ${n} to be of type ${e}, but got ${t}`},l=(n,e)=>{if(typeof e!="string")throw new TypeError(Jr(n,"string",e));return e},qr=function(n,e){let r=l("filepath",n),t=e?.data?.root?.cwd??this?.cwd??process.cwd();return m.default.resolve(t,r)},vr=n=>{let e=l("filepath",n);return m.default.dirname(e)},Dr=(n,e)=>{let r=l("first path",n),t=l("second path",e);return m.default.relative(m.default.dirname(r),t)},Wr=n=>{let e=l("filepath",n);return m.default.basename(e)},Gr=n=>{let e=l("filepath",n);return m.default.basename(e,m.default.extname(e))},Yr=n=>{let e=l("filepath",n);return m.default.extname(e)},Qr=function(n,...e){let r,t=e[e.length-1];typeof t=="object"&&t&&"data"in t&&(r=e.pop());let s=[r?.data?.root?.cwd??this?.cwd??process.cwd(),l("filepath",n),...e.map((i,p)=>l(`path${p}`,i))];return m.default.resolve(...s)},Zr=(n,e,r)=>{let t=l("filepath",n),o=Number(e),s=Number(r);return t.split(/[\\/]+/).slice(o,s).join("/")},xn=[{name:"absolute",category:"path",compatibility:["nodejs"],fn:qr},{name:"dirname",category:"path",compatibility:["nodejs"],fn:vr},{name:"relative",category:"path",compatibility:["nodejs"],fn:Dr},{name:"basename",category:"path",compatibility:["nodejs"],fn:Wr},{name:"stem",category:"path",compatibility:["nodejs"],fn:Gr},{name:"extname",category:"path",compatibility:["nodejs"],fn:Yr},{name:"resolve",category:"path",compatibility:["nodejs"],fn:Qr},{name:"segments",category:"path",compatibility:["nodejs"],fn:Zr}];var On=a(require("handlebars-utils"),1),Kr=(n,e,r)=>{let t=On.default.options({},e,r);return new RegExp(n,t.flags)},Vr=(n,e)=>{if(typeof n!="string")return!1;if(!(e instanceof RegExp))throw new TypeError("expected a regular expression");return e.test(n)},An=[{name:"toRegex",category:"regex",compatibility:["browser","nodejs"],fn:Kr},{name:"test",category:"regex",compatibility:["browser","nodejs"],fn:Vr}];var Nn=n=>n.trim().replace(/^[-_.\W\s]+|[-_.\W\s]+$/g,""),w=(n,e)=>n.length===1?n.toLowerCase():Nn(n).toLowerCase().replace(/[-_.\W\s]+(\w|$)/g,(t,o)=>e(o)),Xr=(n,e)=>typeof n=="string"&&typeof e=="string"?n+e:n,nt=n=>typeof n=="string"?w(n,e=>e.toUpperCase()):"",$n=n=>typeof n!="string"||n.length===0?"":n.charAt(0).toUpperCase()+n.slice(1),et=n=>typeof n!="string"?"":n.replace(/\w\S*/g,e=>$n(e)),rt=(n,e)=>{if(typeof n!="string")return"";let r="";for(let t=0;t<e;t++)r+="&nbsp;";return r+n+r},tt=n=>typeof n=="string"?Nn(n):"",ot=n=>typeof n=="string"?w(n,e=>`-${e}`):"",st=n=>typeof n=="string"?w(n,e=>`.${e}`):"",Rn=(n,e,r)=>typeof n=="string"?(typeof r!="string"&&(r=""),n.length>e?n.slice(0,e-r.length)+r:n):"",it=(n,e)=>typeof n=="string"?n.length<=e?n:`${Rn(n,e)}\u2026`:"",at=n=>typeof n=="string"?n.split(" ").join("-"):"",ct=n=>typeof n=="string",Sn=n=>typeof n=="object"&&n!==null&&"fn"in n&&typeof n.fn=="function"?String(n.fn()).toLowerCase():typeof n!="string"?"":n.toLowerCase(),pt=(...n)=>Sn(...n),mt=(n,e)=>{if(typeof n!="string")return"";let r=e.length,t=n.indexOf(e,0),o=0;for(;t>-1;)o++,t=n.indexOf(e,t+r);return o},lt=n=>{if(typeof n!="string")return"";let e=w(n,r=>r.toUpperCase());return e.charAt(0).toUpperCase()+e.slice(1)},yt=n=>typeof n=="string"?w(n,e=>`/${e}`):"",gt=(n,e)=>typeof n!="string"?"":(typeof e!="string"&&(e=" "),n.split(e).join("+")),ft=(n,e)=>typeof n=="string"&&typeof e=="string"?e+n:n,ut=(n,e)=>typeof n!="string"?"":typeof e!="string"?n:n.split(e).join(""),bt=(n,e)=>typeof n!="string"?"":typeof e!="string"?n:n.replace(e,""),dt=(n,e,r)=>typeof n!="string"?"":typeof e!="string"?n:(typeof r!="string"&&(r=""),n.split(e).join(r)),ht=(n,e,r)=>typeof n!="string"?"":typeof e!="string"?n:(typeof r!="string"&&(r=""),n.replace(e,r)),wt=n=>typeof n=="string"?n.split("").reverse().join(""):"",jt=n=>typeof n!="string"?"":n.replace(/((?:\S[^.?!]*)[.?!]*)/g,e=>e.charAt(0).toUpperCase()+e.substr(1).toLowerCase()),kt=n=>typeof n=="string"?w(n,e=>`_${e}`):"",Ht=n=>typeof n=="string"?n.trim():"",xt=n=>typeof n=="string"?n.replace(/^\s+/,""):"",Ot=n=>typeof n=="string"?n.replace(/\s+$/,""):"",At=(n,e,r)=>{if(typeof n=="string"&&typeof e=="number"&&Number.isFinite(e)){typeof r!="string"&&(r="...");let t=Math.trunc(e),o=n.split(" ");return t<o.length&&(o=o.slice(0,t)),o.join(" ").trim()+r}return""},Nt=At,En=n=>typeof n=="object"&&n!==null&&"fn"in n&&typeof n.fn=="function"?String(n.fn()).toUpperCase():typeof n!="string"?"":n.toUpperCase(),$t=(...n)=>En(...n),Tn=[{name:"append",category:"string",compatibility:["browser","nodejs"],fn:Xr},{name:"camelcase",category:"string",compatibility:["browser","nodejs"],fn:nt},{name:"capitalize",category:"string",compatibility:["browser","nodejs"],fn:$n},{name:"capitalizeAll",category:"string",compatibility:["browser","nodejs"],fn:et},{name:"center",category:"string",compatibility:["browser","nodejs"],fn:rt},{name:"chop",category:"string",compatibility:["browser","nodejs"],fn:tt},{name:"dashcase",category:"string",compatibility:["browser","nodejs"],fn:ot},{name:"dotcase",category:"string",compatibility:["browser","nodejs"],fn:st},{name:"ellipsis",category:"string",compatibility:["browser","nodejs"],fn:it},{name:"hyphenate",category:"string",compatibility:["browser","nodejs"],fn:at},{name:"isString",category:"string",compatibility:["browser","nodejs"],fn:ct},{name:"lowercase",category:"string",compatibility:["browser","nodejs"],fn:Sn},{name:"downcase",category:"string",compatibility:["browser","nodejs"],fn:pt},{name:"occurrences",category:"string",compatibility:["browser","nodejs"],fn:mt},{name:"pascalcase",category:"string",compatibility:["browser","nodejs"],fn:lt},{name:"pathcase",category:"string",compatibility:["browser","nodejs"],fn:yt},{name:"plusify",category:"string",compatibility:["browser","nodejs"],fn:gt},{name:"prepend",category:"string",compatibility:["browser","nodejs"],fn:ft},{name:"remove",category:"string",compatibility:["browser","nodejs"],fn:ut},{name:"removeFirst",category:"string",compatibility:["browser","nodejs"],fn:bt},{name:"replace",category:"string",compatibility:["browser","nodejs"],fn:dt},{name:"replaceFirst",category:"string",compatibility:["browser","nodejs"],fn:ht},{name:"reverse",category:"string",compatibility:["browser","nodejs"],fn:wt},{name:"sentence",category:"string",compatibility:["browser","nodejs"],fn:jt},{name:"snakecase",category:"string",compatibility:["browser","nodejs"],fn:kt},{name:"trim",category:"string",compatibility:["browser","nodejs"],fn:Ht},{name:"trimLeft",category:"string",compatibility:["browser","nodejs"],fn:xt},{name:"trimRight",category:"string",compatibility:["browser","nodejs"],fn:Ot},{name:"truncate",category:"string",compatibility:["browser","nodejs"],fn:Rn},{name:"truncateWords",category:"string",compatibility:["browser","nodejs"],fn:Nt},{name:"uppercase",category:"string",compatibility:["browser","nodejs"],fn:En},{name:"upcase",category:"string",compatibility:["browser","nodejs"],fn:$t}];var Fn=require("querystring"),b=require("url"),k=["browser","nodejs"],Bn=n=>{if(typeof n=="string")return encodeURIComponent(n)},Rt=n=>{if(typeof n=="string")return(0,Fn.escape)(n)},_n=n=>{if(typeof n=="string")return decodeURIComponent(n)};function St(...n){return Bn.apply(this,n)}function Et(...n){return _n.apply(this,n)}var Tt=(n,e)=>(0,b.resolve)(String(n),String(e)),Ft=n=>(0,b.parse)(String(n)),Bt=n=>{if(typeof n=="string")return n.split("?")[0]},_t=n=>{if(typeof n=="string"){let e=(0,b.parse)(n);return e.protocol="",(0,b.format)(e)}},Cn=[{name:"encodeURI",category:"url",compatibility:k,fn:Bn},{name:"escape",category:"url",compatibility:["nodejs"],fn:Rt},{name:"decodeURI",category:"url",compatibility:k,fn:_n},{name:"url_encode",category:"url",compatibility:k,fn:St},{name:"url_decode",category:"url",compatibility:k,fn:Et},{name:"urlResolve",category:"url",compatibility:["nodejs"],fn:Tt},{name:"urlParse",category:"url",compatibility:["nodejs"],fn:Ft},{name:"stripQuerystring",category:"url",compatibility:k,fn:Bt},{name:"stripProtocol",category:"url",compatibility:["nodejs"],fn:_t}];var d=class{_helpers=[];constructor(){this.init()}get helpers(){return this._helpers}init(){this.registerHelpers(_),this.registerHelpers(P),this.registerHelpers(D),this.registerHelpers(Q),this.registerHelpers(L),this.registerHelpers(gn),this.registerHelpers(K),this.registerHelpers(I),this.registerHelpers(V),this.registerHelpers(X),this.registerHelpers(en),this.registerHelpers(tn),this.registerHelpers(an),this.registerHelpers(dn),this.registerHelpers(hn),this.registerHelpers(xn),this.registerHelpers(An),this.registerHelpers(Tn),this.registerHelpers(Cn),this.registerHelpers(Hn)}register(e){return this.has(e.name)||this._helpers.push(e),!1}registerHelpers(e){for(let r of e)this.register(r)}has(e){return this._helpers.some(r=>r.name===e)}filter(e){let r=this._helpers;return e.names&&(r=r.filter(t=>e.names?.includes(t.name))),e.categories&&(r=r.filter(t=>e.categories?.includes(t.category))),e.compatibility&&(r=r.filter(t=>t.compatibility?.some(o=>e.compatibility?.includes(o)))),r}load(e,r){let t=this._helpers;r&&(t=this.filter(r));for(let o of t)e.registerHelper(o.name,o.fn)}swap(e){for(let r of this._helpers)e.unregisterHelper(r.name),e.registerHelper(r.name,r.fn)}};var Ct=y.default,Mt=y.default.create();function zt(n){new d().load(n.handlebars??n.hbs)}async function Lt(){let n=new d,e=y.default.create();return Object.keys(y.default.partials).length>0&&e.registerPartial(y.default.partials),n.load(e),process.env.NODE_ENV==="development"&&console.warn("createHandlebars will be deprecated in future versions, use `fumanchu` instead."),e}function Pt(n){let e=new d,r=y.default.create();return n?.handlebars?r=n.handlebars:Object.keys(y.default.partials).length>0&&r.registerPartial(y.default.partials),e.load(r),r}0&&(module.exports={Handlebars,HelperRegistry,createHandlebars,fumanchu,handlebars,helpers});
11
+ `),e+="</figure>",e},K=[{name:"attr",category:"html",compatibility:["browser","nodejs"],fn:Be},{name:"css",category:"html",compatibility:["nodejs"],fn:_e},{name:"js",category:"html",compatibility:["nodejs"],fn:Me},{name:"sanitize",category:"html",compatibility:["browser","nodejs"],fn:Ce},{name:"ul",category:"html",compatibility:["browser","nodejs"],fn:ze},{name:"ol",category:"html",compatibility:["browser","nodejs"],fn:Le},{name:"thumbnailImage",category:"html",compatibility:["browser","nodejs"],fn:Pe}];var h=(n,e)=>{if(!n||typeof n!="object")return;let r=Array.isArray(e)?e:e.split("."),t=n;for(let o of r){if(t==null||typeof t!="object")return;t=t[o]}return t},F=(n,e)=>{if(!n||typeof n!="object")return;let r=Array.isArray(e)?e:e.split(".");if(r.length===0)return;let t=n;for(let s=0;s<r.length-1;s++){if(t==null||typeof t!="object")return;t=t[r[s]]}let o=r[r.length-1];if(!(t==null||typeof t!="object"||!(o in t)))return{[o]:t[o]}};var Ue=function(n,e,r){if(e&&typeof e=="object"&&"hash"in e&&r===void 0&&(r=e,e={}),typeof n!="string")throw new Error('{{i18n}} helper expected "key" to be a string');let t={...this,...e,...r?.hash??{}},o=t.language||t.lang;if(typeof o!="string")throw new TypeError('{{i18n}} helper expected "language" to be a string');let s=t[o];if(typeof s>"u")throw new Error(`{{i18n}} helper cannot find language "${o}"`);let i=h(s,n);if(typeof i>"u")throw new Error('{{i18n}} helper cannot find property "'+String(n)+'" for language "'+o+'"');return String(i)},V=[{name:"i18n",category:"i18n",compatibility:["browser","nodejs"],fn:Ue}];var Ie=(n,e,r,t)=>{let o=n>1||n===0?r:e;return t?`${n} ${o}`:o},ve=n=>{let e=Math.abs(Math.round(Number(n))),r=String(n),t=e%100;if([11,12,13].includes(t))return`${r}th`;switch(e%10){case 1:return`${r}st`;case 2:return`${r}nd`;case 3:return`${r}rd`;default:return`${r}th`}},X=[{name:"inflect",category:"inflection",compatibility:["browser","nodejs"],fn:Ie},{name:"ordinalize",category:"inflection",compatibility:["browser","nodejs"],fn:ve}];var nn=a(require("logging-helpers"),1),{log:Je,ok:qe,success:De,info:We,warning:Ge,warn:Ye,error:Qe,danger:Ze,bold:Ke,_debug:Ve,_inspect:Xe}=nn.default,en=[{name:"log",category:"logging",compatibility:["nodejs"],fn:Je},{name:"ok",category:"logging",compatibility:["nodejs"],fn:qe},{name:"success",category:"logging",compatibility:["nodejs"],fn:De},{name:"info",category:"logging",compatibility:["nodejs"],fn:We},{name:"warning",category:"logging",compatibility:["nodejs"],fn:Ge},{name:"warn",category:"logging",compatibility:["nodejs"],fn:Ye},{name:"error",category:"logging",compatibility:["nodejs"],fn:Qe},{name:"danger",category:"logging",compatibility:["nodejs"],fn:Ze},{name:"bold",category:"logging",compatibility:["nodejs"],fn:Ke},{name:"_debug",category:"logging",compatibility:["nodejs"],fn:Ve},{name:"_inspect",category:"logging",compatibility:["nodejs"],fn:Xe}];var T=a(require("micromatch"),1),rn=(n,e,r)=>{let t=typeof e=="string"?e.split(/, */):e;return(0,T.default)(n,t,r)},nr=(n,e,r)=>T.default.isMatch(n,e,r),er=(...n)=>(console.log("the {{mm}} helper is depcrecated and will be removed"),console.log("in handlebars-helpers v1.0.0, please use the {{match}}"),console.log("helper instead."),rn(...n)),tn=[{name:"match",category:"match",compatibility:["browser","nodejs"],fn:rn},{name:"isMatch",category:"match",compatibility:["browser","nodejs"],fn:nr},{name:"mm",category:"match",compatibility:["browser","nodejs"],fn:er}];var A=n=>typeof n=="number"&&!Number.isNaN(n)||typeof n=="string"&&n.trim()!==""&&!Number.isNaN(Number(n)),c=(n,e="expected a number")=>{if(A(n))return Number(n);throw new TypeError(e)},rr=n=>{let e=c(n);return Math.abs(e)},tr=(n,e)=>A(n)&&A(e)?Number(n)+Number(e):"",or=(...n)=>{let e=n.flat().map(r=>Number(r));return sn(e)/e.length},sr=n=>{let e=c(n);return Math.ceil(e)},ir=(n,e)=>{let r=c(n,"expected the first argument to be a number"),t=c(e,"expected the second argument to be a number");return r/t},ar=n=>{let e=c(n);return Math.floor(e)},cr=(n,e)=>{let r=c(n,"expected the first argument to be a number"),t=c(e,"expected the second argument to be a number");return r-t},pr=(n,e)=>{let r=c(n,"expected the first argument to be a number"),t=c(e,"expected the second argument to be a number");return r%t},on=(n,e)=>{let r=c(n,"expected the first argument to be a number"),t=c(e,"expected the second argument to be a number");return r*t},mr=(n,e)=>{let r=c(n,"expected the first argument to be a number"),t=c(e,"expected the second argument to be a number");return r+t},lr=(n,e)=>{let r=c(n,"expected minimum to be a number"),t=c(e,"expected maximum to be a number");return r+Math.floor(Math.random()*(t-r+1))},yr=(n,e)=>n%e,gr=n=>{let e=c(n);return Math.round(e)},fr=(n,e)=>{let r=c(n,"expected the first argument to be a number"),t=c(e,"expected the second argument to be a number");return r-t},sn=(...n)=>{let e=n.flat(),r=0;for(let t of e)A(t)&&(r+=Number(t));return r},ur=(n,e)=>on(n,e),an=[{name:"abs",category:"math",compatibility:["browser","nodejs"],fn:rr},{name:"add",category:"math",compatibility:["browser","nodejs"],fn:tr},{name:"avg",category:"math",compatibility:["browser","nodejs"],fn:or},{name:"ceil",category:"math",compatibility:["browser","nodejs"],fn:sr},{name:"divide",category:"math",compatibility:["browser","nodejs"],fn:ir},{name:"floor",category:"math",compatibility:["browser","nodejs"],fn:ar},{name:"minus",category:"math",compatibility:["browser","nodejs"],fn:cr},{name:"modulo",category:"math",compatibility:["browser","nodejs"],fn:pr},{name:"multiply",category:"math",compatibility:["browser","nodejs"],fn:on},{name:"plus",category:"math",compatibility:["browser","nodejs"],fn:mr},{name:"random",category:"math",compatibility:["browser","nodejs"],fn:lr},{name:"remainder",category:"math",compatibility:["browser","nodejs"],fn:yr},{name:"round",category:"math",compatibility:["browser","nodejs"],fn:gr},{name:"subtract",category:"math",compatibility:["browser","nodejs"],fn:fr},{name:"sum",category:"math",compatibility:["browser","nodejs"],fn:sn},{name:"times",category:"math",compatibility:["browser","nodejs"],fn:ur}];var N=a(require("fs"),1),pn=a(require("path"),1),mn=a(require("process"),1),ln=a(require("ent"),1),yn=a(require("handlebars"),1),gn=require("remarkable"),cn=function(n,e){typeof n=="object"&&n&&"fn"in n&&typeof n.fn=="function"?(e=n,n=n.fn(this)):typeof n!="string"&&(n="");let r={cwd:mn.default.cwd(),...e},t=new gn.Remarkable({breaks:!0,html:!0,langPrefix:"lang-",typographer:!1,xhtmlOut:!1}),o=n;if(o&&o.length>0){let s=pn.default.resolve(r.cwd,o);N.default.existsSync(s)&&N.default.statSync(s).isFile()&&(o=N.default.readFileSync(s,"utf8"))}return new yn.default.SafeString(ln.default.decode(t.render(o)))},fn=[{name:"md",category:"markdown",compatibility:["nodejs"],fn:cn},{name:"markdown",category:"markdown",compatibility:["nodejs"],fn:cn}];var un=a(require("handlebars-helper-create-frame"),1),bn=a(require("handlebars-utils"),1),dn=a(require("kind-of"),1);var br=un.default;function dr(n,e,r){return h(bn.default.options(this,e,r),n)}function hr(n){return n.fn(this)}var wr=dn.default;function jr(n){return n.hash&&Object.keys(n.hash).length?n.fn(n.hash):n.inverse(this)}var hn=[{name:"frame",category:"misc",compatibility:["browser","nodejs"],fn:br},{name:"option",category:"misc",compatibility:["browser","nodejs"],fn:dr},{name:"noop",category:"misc",compatibility:["browser","nodejs"],fn:hr},{name:"typeOf",category:"misc",compatibility:["browser","nodejs"],fn:wr},{name:"withHash",category:"misc",compatibility:["browser","nodejs"],fn:jr}];var j=n=>typeof n=="number"&&!Number.isNaN(n),kr=(n,e)=>{if(n==null)return"0 B";let r;if(typeof n=="string"){if(r=n.length,!r)return"0 B"}else if(j(n))r=Number(n);else if(typeof n.length=="number"){if(r=n.length,!r)return"0 B"}else return"0 B";let t=typeof e=="number"&&!Number.isNaN(e)?e:2,o=["B","kB","MB","GB","TB","PB","EB","ZB","YB"],s=10**t;for(let i=o.length-1;i>=0;i--){let p=10**(i*3);if(p<=r+1)return`${Math.round(r*s/p)/s} ${o[i]}`}return`${r}`},Hr=n=>n.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g,"$1,"),xr=n=>{let e=n.toString();return`(${e.substr(0,3)}) ${e.substr(3,3)}-${e.substr(6,4)}`},Or=(n,e)=>{let r=j(n)?Number(n):0,o=10**(typeof e=="number"&&!Number.isNaN(e)?e:2),s=["k","m","b","t","q"];for(let i=s.length-1;i>=0;i--){let p=10**((i+1)*3);if(p<=r+1)return`${Math.round(r*o/p)/o}${s[i]}`}return`${r}`},Ar=(n,e)=>{let r=j(n)?Number(n):0,t=typeof e=="number"&&!Number.isNaN(e)?e:0;return Number(r).toExponential(t)},Nr=(n,e)=>{let r=j(n)?Number(n):0,t=typeof e=="number"&&!Number.isNaN(e)?e:0;return Number(r).toFixed(t)},$r=n=>parseFloat(String(n)),Rr=n=>parseInt(String(n),10),Sr=(n,e)=>{let r=j(n)?Number(n):0,t=typeof e=="number"&&!Number.isNaN(e)?e:1;return Number(r).toPrecision(t)},wn=[{name:"bytes",category:"number",compatibility:["browser","nodejs"],fn:kr},{name:"addCommas",category:"number",compatibility:["browser","nodejs"],fn:Hr},{name:"phoneNumber",category:"number",compatibility:["browser","nodejs"],fn:xr},{name:"toAbbr",category:"number",compatibility:["browser","nodejs"],fn:Or},{name:"toExponential",category:"number",compatibility:["browser","nodejs"],fn:Ar},{name:"toFixed",category:"number",compatibility:["browser","nodejs"],fn:Nr},{name:"toFloat",category:"number",compatibility:["browser","nodejs"],fn:$r},{name:"toInt",category:"number",compatibility:["browser","nodejs"],fn:Rr},{name:"toPrecision",category:"number",compatibility:["browser","nodejs"],fn:Sr}];var $=n=>!!(n&&typeof n=="object"&&"hash"in n),jn=(n,e)=>({...n?.data||{},...e}),Er=(...n)=>{let e=[...n];if(e.length&&$(e[e.length-1])){let t=e.pop();e.push(t.hash)}let r={};for(let t of e)t&&typeof t=="object"&&!Array.isArray(t)&&Object.assign(r,t);return r},Fr=(n,e)=>{if(!$(e))return e?.inverse?.(n)??"";let r=jn(e,e.hash||{}),t="";for(let o in n)r.key=o,t+=e.fn(n[o],{data:r});return t},Tr=(n,e)=>{if(!$(e))return e?.inverse?.(n)??"";let r=jn(e,e.hash||{}),t="";for(let o in n)Object.hasOwn(n,o)&&(r.key=o,t+=e.fn(n[o],{data:r}));return t},Br=(...n)=>{let e=[];for(let r of n)(typeof r=="string"||typeof r=="number")&&e.push(r);return e.join(".")},_r=(n,e,r)=>{let t=h(e,n);return r&&typeof r.fn=="function"?t?r.fn(t):r.inverse?.(e):t},Mr=(n,e)=>F(e,n),Cr=(n,e)=>Object.hasOwn(n,e),zr=n=>!!n&&typeof n=="object"&&!Array.isArray(n),kn=n=>JSON.parse(n),Hn=(n,e)=>JSON.stringify(n,null,typeof e=="number"?e:0),Lr=(n,...e)=>{let r=[n,...e];if(r.length&&$(r[r.length-1])){let t=r.pop();r.push(t.hash)}return Object.assign(...r)},Pr=kn,Ur=Hn,Ir=(n,e,r)=>{let t=f(n),o={};for(let s of t)o=Object.assign({},o,F(e,s));return r&&typeof r.fn=="function"?Object.keys(o).length?r.fn(o):r.inverse?.(e):o},xn=[{name:"extend",category:"object",compatibility:["browser","nodejs"],fn:Er},{name:"forIn",category:"object",compatibility:["browser","nodejs"],fn:Fr},{name:"forOwn",category:"object",compatibility:["browser","nodejs"],fn:Tr},{name:"toPath",category:"object",compatibility:["browser","nodejs"],fn:Br},{name:"get",category:"object",compatibility:["browser","nodejs"],fn:_r},{name:"getObject",category:"object",compatibility:["browser","nodejs"],fn:Mr},{name:"hasOwn",category:"object",compatibility:["browser","nodejs"],fn:Cr},{name:"isObject",category:"object",compatibility:["browser","nodejs"],fn:zr},{name:"JSONparse",category:"object",compatibility:["browser","nodejs"],fn:kn},{name:"JSONstringify",category:"object",compatibility:["browser","nodejs"],fn:Hn},{name:"merge",category:"object",compatibility:["browser","nodejs"],fn:Lr},{name:"parseJSON",category:"object",compatibility:["browser","nodejs"],fn:Pr},{name:"pick",category:"object",compatibility:["browser","nodejs"],fn:Ir},{name:"stringify",category:"object",compatibility:["browser","nodejs"],fn:Ur}];var m=a(require("path"),1),vr=(n,e,r)=>{let t=Object.prototype.toString.call(r).slice(8,-1).toLowerCase();return`Expected ${n} to be of type ${e}, but got ${t}`},l=(n,e)=>{if(typeof e!="string")throw new TypeError(vr(n,"string",e));return e},Jr=function(n,e){let r=l("filepath",n),t=e?.data?.root?.cwd??this?.cwd??process.cwd();return m.default.resolve(t,r)},qr=n=>{let e=l("filepath",n);return m.default.dirname(e)},Dr=(n,e)=>{let r=l("first path",n),t=l("second path",e);return m.default.relative(m.default.dirname(r),t)},Wr=n=>{let e=l("filepath",n);return m.default.basename(e)},Gr=n=>{let e=l("filepath",n);return m.default.basename(e,m.default.extname(e))},Yr=n=>{let e=l("filepath",n);return m.default.extname(e)},Qr=function(n,...e){let r,t=e[e.length-1];typeof t=="object"&&t&&"data"in t&&(r=e.pop());let s=[r?.data?.root?.cwd??this?.cwd??process.cwd(),l("filepath",n),...e.map((i,p)=>l(`path${p}`,i))];return m.default.resolve(...s)},Zr=(n,e,r)=>{let t=l("filepath",n),o=Number(e),s=Number(r);return t.split(/[\\/]+/).slice(o,s).join("/")},On=[{name:"absolute",category:"path",compatibility:["nodejs"],fn:Jr},{name:"dirname",category:"path",compatibility:["nodejs"],fn:qr},{name:"relative",category:"path",compatibility:["nodejs"],fn:Dr},{name:"basename",category:"path",compatibility:["nodejs"],fn:Wr},{name:"stem",category:"path",compatibility:["nodejs"],fn:Gr},{name:"extname",category:"path",compatibility:["nodejs"],fn:Yr},{name:"resolve",category:"path",compatibility:["nodejs"],fn:Qr},{name:"segments",category:"path",compatibility:["nodejs"],fn:Zr}];var An=a(require("handlebars-utils"),1),Kr=(n,e,r)=>{let t=An.default.options({},e,r);return new RegExp(n,t.flags)},Vr=(n,e)=>{if(typeof n!="string")return!1;if(!(e instanceof RegExp))throw new TypeError("expected a regular expression");return e.test(n)},Nn=[{name:"toRegex",category:"regex",compatibility:["browser","nodejs"],fn:Kr},{name:"test",category:"regex",compatibility:["browser","nodejs"],fn:Vr}];var $n=n=>n.trim().replace(/^[-_.\W\s]+|[-_.\W\s]+$/g,""),w=(n,e)=>n.length===1?n.toLowerCase():$n(n).toLowerCase().replace(/[-_.\W\s]+(\w|$)/g,(t,o)=>e(o)),Xr=(n,e)=>typeof n=="string"&&typeof e=="string"?n+e:n,nt=n=>typeof n=="string"?w(n,e=>e.toUpperCase()):"",Rn=n=>typeof n!="string"||n.length===0?"":n.charAt(0).toUpperCase()+n.slice(1),et=n=>typeof n!="string"?"":n.replace(/\w\S*/g,e=>Rn(e)),rt=(n,e)=>{if(typeof n!="string")return"";let r="";for(let t=0;t<e;t++)r+="&nbsp;";return r+n+r},tt=n=>typeof n=="string"?$n(n):"",ot=n=>typeof n=="string"?w(n,e=>`-${e}`):"",st=n=>typeof n=="string"?w(n,e=>`.${e}`):"",Sn=(n,e,r)=>typeof n=="string"?(typeof r!="string"&&(r=""),n.length>e?n.slice(0,e-r.length)+r:n):"",it=(n,e)=>typeof n=="string"?n.length<=e?n:`${Sn(n,e)}\u2026`:"",at=n=>typeof n=="string"?n.split(" ").join("-"):"",ct=n=>typeof n=="string",En=n=>typeof n=="object"&&n!==null&&"fn"in n&&typeof n.fn=="function"?String(n.fn()).toLowerCase():typeof n!="string"?"":n.toLowerCase(),pt=(...n)=>En(...n),mt=(n,e)=>{if(typeof n!="string")return"";let r=e.length,t=n.indexOf(e,0),o=0;for(;t>-1;)o++,t=n.indexOf(e,t+r);return o},lt=n=>{if(typeof n!="string")return"";let e=w(n,r=>r.toUpperCase());return e.charAt(0).toUpperCase()+e.slice(1)},yt=n=>typeof n=="string"?w(n,e=>`/${e}`):"",gt=(n,e)=>typeof n!="string"?"":(typeof e!="string"&&(e=" "),n.split(e).join("+")),ft=(n,e)=>typeof n=="string"&&typeof e=="string"?e+n:n,ut=(n,e)=>typeof n!="string"?"":typeof e!="string"?n:n.split(e).join(""),bt=(n,e)=>typeof n!="string"?"":typeof e!="string"?n:n.replace(e,""),dt=(n,e,r)=>typeof n!="string"?"":typeof e!="string"?n:(typeof r!="string"&&(r=""),n.split(e).join(r)),ht=(n,e,r)=>typeof n!="string"?"":typeof e!="string"?n:(typeof r!="string"&&(r=""),n.replace(e,r)),wt=n=>typeof n=="string"?n.split("").reverse().join(""):"",jt=n=>typeof n!="string"?"":n.replace(/((?:\S[^.?!]*)[.?!]*)/g,e=>e.charAt(0).toUpperCase()+e.substr(1).toLowerCase()),kt=n=>typeof n=="string"?w(n,e=>`_${e}`):"",Ht=n=>typeof n=="string"?n.trim():"",xt=n=>typeof n=="string"?n.replace(/^\s+/,""):"",Ot=n=>typeof n=="string"?n.replace(/\s+$/,""):"",At=(n,e,r)=>{if(typeof n=="string"&&typeof e=="number"&&Number.isFinite(e)){typeof r!="string"&&(r="...");let t=Math.trunc(e),o=n.split(" ");return t<o.length&&(o=o.slice(0,t)),o.join(" ").trim()+r}return""},Nt=At,Fn=n=>typeof n=="object"&&n!==null&&"fn"in n&&typeof n.fn=="function"?String(n.fn()).toUpperCase():typeof n!="string"?"":n.toUpperCase(),$t=(...n)=>Fn(...n),Tn=[{name:"append",category:"string",compatibility:["browser","nodejs"],fn:Xr},{name:"camelcase",category:"string",compatibility:["browser","nodejs"],fn:nt},{name:"capitalize",category:"string",compatibility:["browser","nodejs"],fn:Rn},{name:"capitalizeAll",category:"string",compatibility:["browser","nodejs"],fn:et},{name:"center",category:"string",compatibility:["browser","nodejs"],fn:rt},{name:"chop",category:"string",compatibility:["browser","nodejs"],fn:tt},{name:"dashcase",category:"string",compatibility:["browser","nodejs"],fn:ot},{name:"dotcase",category:"string",compatibility:["browser","nodejs"],fn:st},{name:"ellipsis",category:"string",compatibility:["browser","nodejs"],fn:it},{name:"hyphenate",category:"string",compatibility:["browser","nodejs"],fn:at},{name:"isString",category:"string",compatibility:["browser","nodejs"],fn:ct},{name:"lowercase",category:"string",compatibility:["browser","nodejs"],fn:En},{name:"downcase",category:"string",compatibility:["browser","nodejs"],fn:pt},{name:"occurrences",category:"string",compatibility:["browser","nodejs"],fn:mt},{name:"pascalcase",category:"string",compatibility:["browser","nodejs"],fn:lt},{name:"pathcase",category:"string",compatibility:["browser","nodejs"],fn:yt},{name:"plusify",category:"string",compatibility:["browser","nodejs"],fn:gt},{name:"prepend",category:"string",compatibility:["browser","nodejs"],fn:ft},{name:"remove",category:"string",compatibility:["browser","nodejs"],fn:ut},{name:"removeFirst",category:"string",compatibility:["browser","nodejs"],fn:bt},{name:"replace",category:"string",compatibility:["browser","nodejs"],fn:dt},{name:"replaceFirst",category:"string",compatibility:["browser","nodejs"],fn:ht},{name:"reverse",category:"string",compatibility:["browser","nodejs"],fn:wt},{name:"sentence",category:"string",compatibility:["browser","nodejs"],fn:jt},{name:"snakecase",category:"string",compatibility:["browser","nodejs"],fn:kt},{name:"trim",category:"string",compatibility:["browser","nodejs"],fn:Ht},{name:"trimLeft",category:"string",compatibility:["browser","nodejs"],fn:xt},{name:"trimRight",category:"string",compatibility:["browser","nodejs"],fn:Ot},{name:"truncate",category:"string",compatibility:["browser","nodejs"],fn:Sn},{name:"truncateWords",category:"string",compatibility:["browser","nodejs"],fn:Nt},{name:"uppercase",category:"string",compatibility:["browser","nodejs"],fn:Fn},{name:"upcase",category:"string",compatibility:["browser","nodejs"],fn:$t}];var Bn=require("querystring"),b=require("url"),k=["browser","nodejs"],_n=n=>{if(typeof n=="string")return encodeURIComponent(n)},Rt=n=>{if(typeof n=="string")return(0,Bn.escape)(n)},Mn=n=>{if(typeof n=="string")return decodeURIComponent(n)};function St(...n){return _n.apply(this,n)}function Et(...n){return Mn.apply(this,n)}var Ft=(n,e)=>(0,b.resolve)(String(n),String(e)),Tt=n=>(0,b.parse)(String(n)),Bt=n=>{if(typeof n=="string")return n.split("?")[0]},_t=n=>{if(typeof n=="string"){let e=(0,b.parse)(n);return e.protocol="",(0,b.format)(e)}},Cn=[{name:"encodeURI",category:"url",compatibility:k,fn:_n},{name:"escape",category:"url",compatibility:["nodejs"],fn:Rt},{name:"decodeURI",category:"url",compatibility:k,fn:Mn},{name:"url_encode",category:"url",compatibility:k,fn:St},{name:"url_decode",category:"url",compatibility:k,fn:Et},{name:"urlResolve",category:"url",compatibility:["nodejs"],fn:Ft},{name:"urlParse",category:"url",compatibility:["nodejs"],fn:Tt},{name:"stripQuerystring",category:"url",compatibility:k,fn:Bt},{name:"stripProtocol",category:"url",compatibility:["nodejs"],fn:_t}];var d=class{_helpers=[];constructor(){this.init()}get helpers(){return this._helpers}init(){this.registerHelpers(_),this.registerHelpers(P),this.registerHelpers(D),this.registerHelpers(Q),this.registerHelpers(L),this.registerHelpers(fn),this.registerHelpers(K),this.registerHelpers(I),this.registerHelpers(V),this.registerHelpers(X),this.registerHelpers(en),this.registerHelpers(tn),this.registerHelpers(an),this.registerHelpers(hn),this.registerHelpers(wn),this.registerHelpers(On),this.registerHelpers(Nn),this.registerHelpers(Tn),this.registerHelpers(Cn),this.registerHelpers(xn)}register(e){return this.has(e.name)||this._helpers.push(e),!1}registerHelpers(e){for(let r of e)this.register(r)}has(e){return this._helpers.some(r=>r.name===e)}filter(e){let r=this._helpers;return e.names&&(r=r.filter(t=>e.names?.includes(t.name))),e.categories&&(r=r.filter(t=>e.categories?.includes(t.category))),e.compatibility&&(r=r.filter(t=>t.compatibility?.some(o=>e.compatibility?.includes(o)))),r}load(e,r){let t=this._helpers;r&&(t=this.filter(r));for(let o of t)e.registerHelper(o.name,o.fn)}swap(e){for(let r of this._helpers)e.unregisterHelper(r.name),e.registerHelper(r.name,r.fn)}};var Mt=y.default,Ct=y.default.create();function zt(n){new d().load(n.handlebars??n.hbs)}async function Lt(){let n=new d,e=y.default.create();return Object.keys(y.default.partials).length>0&&e.registerPartial(y.default.partials),n.load(e),process.env.NODE_ENV==="development"&&console.warn("createHandlebars will be deprecated in future versions, use `fumanchu` instead."),e}function Pt(n){let e=new d,r=y.default.create();return n?.handlebars?r=n.handlebars:Object.keys(y.default.partials).length>0&&r.registerPartial(y.default.partials),e.load(r),r}0&&(module.exports={Handlebars,HelperRegistry,createHandlebars,fumanchu,handlebars,helpers});
package/dist/index.js CHANGED
@@ -1,11 +1,11 @@
1
- import y from"handlebars";var fn=(n,e)=>Array.isArray(n)?n.slice(e):[],un=(n,e)=>Array.isArray(n)?n.slice(0,-e):[],g=n=>n==null?[]:Array.isArray(n)?n:[n],bn=(n,e)=>{if(Array.isArray(n))return typeof e!="number"?n[0]:n.slice(0,e)},dn=(n,e)=>{if(!Array.isArray(n)&&typeof n!="string")return;if(typeof e!="number"){let t=n;return t[t.length-1]}let r=Math.abs(e);return n.slice(-r)},hn=n=>n&&typeof n=="object"&&!Array.isArray(n)?Object.keys(n).length:typeof n=="string"||Array.isArray(n)?n.length:0,wn=(n,e=", ")=>typeof n=="string"?n:Array.isArray(n)?n.join(e):"",jn=function(n,e){if(!Array.isArray(n)||!e||typeof e.fn!="function")return e?.inverse?e.inverse(this)??"":"";if(n.length===0)return e.inverse?e.inverse(this)??"":"";let r=n.length,t=e.hash??{},o=e.data?{...e.data}:void 0,s="";for(let i=0;i<r;i++){let c=n[i],l={index:i,total:r,isFirst:i===0,isLast:i===r-1},gn={...o?{...o}:{},...t,...l},H;c!=null&&typeof c=="object"?H={...c,...t,...l}:H={value:c,...t,...l},s+=e.fn(H,{data:gn})}return s},N=[{name:"after",category:"array",compatibility:["browser","nodejs"],fn},{name:"before",category:"array",compatibility:["browser","nodejs"],fn:un},{name:"arrayify",category:"array",compatibility:["browser","nodejs"],fn:g},{name:"first",category:"array",compatibility:["browser","nodejs"],fn:bn},{name:"last",category:"array",compatibility:["browser","nodejs"],fn:dn},{name:"length",category:"array",compatibility:["browser","nodejs"],fn:hn},{name:"join",category:"array",compatibility:["browser","nodejs"],fn:wn},{name:"forEach",category:"array",compatibility:["browser","nodejs"],fn:jn}];import kn from"fs";import Hn from"path";import $ from"html-tag";import xn from"to-gfm-code-block";var On=(n,e)=>{let r=typeof e=="string"?e:Hn.extname(n).slice(1),t=kn.readFileSync(n,"utf8");return(r==="markdown"||r==="md")&&(r="markdown",t=t.split("`").join("&#x60")),`${xn(t,r).trim()}
2
- `},An=n=>$("script",{src:`https://gist.github.com/${n}.js`}),Nn=n=>{if(!n||!n.id)throw new Error("jsfiddle helper expects an `id`");let{id:e,width:r="100%",height:t="300",skin:o="/presentation/",tabs:s="result,js,html,css",allowfullscreen:i="allowfullscreen",frameborder:c="0"}=n,l=`http://jsfiddle.net/${e}/embedded/${s}${o}`;return $("iframe",{width:r,height:t,src:l,allowfullscreen:i,frameborder:c})},R=[{name:"embed",category:"code",compatibility:["nodejs"],fn:On},{name:"gist",category:"code",compatibility:["browser","nodejs"],fn:An},{name:"jsfiddle",category:"code",compatibility:["browser","nodejs"],fn:Nn}];var $n=n=>n==null?!0:Array.isArray(n)?n.length===0:typeof n=="object"?Object.keys(n).length===0:!1,Rn=(n,e,r)=>{if(Array.isArray(n)){let t="";for(let o=0;o<n.length;o++)t+=e(n[o],o);return t}if(n&&typeof n=="object"){let t="";for(let o of Object.keys(n))t+=e(n[o],o);return t}return r?r():""},S=[{name:"isEmpty",category:"collection",compatibility:["browser","nodejs"],fn:$n},{name:"iterate",category:"collection",compatibility:["browser","nodejs"],fn:Rn}];var Sn=(...n)=>n.every(Boolean),En=(n,e,r)=>{switch(e){case"==":return n==r;case"===":return n===r;case"!=":return n!=r;case"!==":return n!==r;case"<":return n<r;case">":return n>r;case"<=":return n<=r;case">=":return n>=r;case"typeof":return typeof n===r;default:throw new Error(`helper {{compare}}: invalid operator: '${e}'`)}},Tn=(n,e,r=0)=>n==null?!1:typeof n=="string"||Array.isArray(n)?n.indexOf(e,r)>-1:typeof n=="object"?e in n:!1,Fn=(...n)=>{for(let e of n)if(e!=null)return e;return""},Bn=(n,e)=>n===e,_n=(n,e)=>n>e,Cn=(n,e)=>n>=e,Mn=(n,e)=>n==null||e==null?!1:Array.isArray(n)||typeof n=="string"?n.indexOf(e)>-1:typeof n=="object"?e in n:!1,E=(n,e)=>{if(!n)return!0;let r=Array.isArray(e)?e:e!=null?[e]:["0","false","nada","nil","nay","nah","negative","no","none","nope","nul","null","nix","nyet","uh-uh","veto","zero"],t=typeof n=="string"?n.toLowerCase():null;for(let o of r)if(o===n||t!=null&&o===t)return!0;return!1},zn=n=>E(n),Ln=n=>!E(n),Pn=n=>typeof n=="number"&&n%2===0,Un=(n,e)=>typeof n=="number"&&typeof e=="number"&&e%n===0,In=n=>typeof n=="number"&&Math.abs(n%2)===1,Jn=(n,e)=>n==e,qn=(n,e)=>n!=e,vn=(n,e)=>n<e,Dn=(n,e)=>n<=e,Wn=(n,e)=>!n&&!e,Gn=n=>!n,Yn=(...n)=>n.some(Boolean),Qn=(n,e)=>n!==e,Zn=(n,e)=>n<=e,Kn=(n,e)=>n>=e,Vn=(n,e)=>n<e,Xn=(n,e)=>n>e,T=[{name:"and",category:"comparison",compatibility:["browser","nodejs"],fn:Sn},{name:"compare",category:"comparison",compatibility:["browser","nodejs"],fn:En},{name:"contains",category:"comparison",compatibility:["browser","nodejs"],fn:Tn},{name:"default",category:"comparison",compatibility:["browser","nodejs"],fn:Fn},{name:"eq",category:"comparison",compatibility:["browser","nodejs"],fn:Bn},{name:"gt",category:"comparison",compatibility:["browser","nodejs"],fn:_n},{name:"gte",category:"comparison",compatibility:["browser","nodejs"],fn:Cn},{name:"has",category:"comparison",compatibility:["browser","nodejs"],fn:Mn},{name:"isFalsey",category:"comparison",compatibility:["browser","nodejs"],fn:zn},{name:"isTruthy",category:"comparison",compatibility:["browser","nodejs"],fn:Ln},{name:"ifEven",category:"comparison",compatibility:["browser","nodejs"],fn:Pn},{name:"ifNth",category:"comparison",compatibility:["browser","nodejs"],fn:Un},{name:"ifOdd",category:"comparison",compatibility:["browser","nodejs"],fn:In},{name:"is",category:"comparison",compatibility:["browser","nodejs"],fn:Jn},{name:"isnt",category:"comparison",compatibility:["browser","nodejs"],fn:qn},{name:"lt",category:"comparison",compatibility:["browser","nodejs"],fn:vn},{name:"lte",category:"comparison",compatibility:["browser","nodejs"],fn:Dn},{name:"neither",category:"comparison",compatibility:["browser","nodejs"],fn:Wn},{name:"not",category:"comparison",compatibility:["browser","nodejs"],fn:Gn},{name:"or",category:"comparison",compatibility:["browser","nodejs"],fn:Yn},{name:"unlessEq",category:"comparison",compatibility:["browser","nodejs"],fn:Qn},{name:"unlessGt",category:"comparison",compatibility:["browser","nodejs"],fn:Zn},{name:"unlessLt",category:"comparison",compatibility:["browser","nodejs"],fn:Kn},{name:"unlessGteq",category:"comparison",compatibility:["browser","nodejs"],fn:Vn},{name:"unlessLteq",category:"comparison",compatibility:["browser","nodejs"],fn:Xn}];import{parseDate as ne}from"chrono-node";import ee from"dayjs";var re=()=>new Date().getFullYear().toString(),F=(n,e)=>{let r=ne(n);if(!r)throw new Error(`Unable to parse date: ${n}`);return ee(r).format(e)},B=[{name:"year",category:"date",compatibility:["browser","nodejs"],fn:re},{name:"date",category:"date",compatibility:["browser","nodejs"],fn:F},{name:"moment",category:"date",compatibility:["browser","nodejs"],fn:F}];import x from"fs";import te from"path";import oe from"is-glob";import se from"micromatch";var ie=(n,e)=>{if(n==null)return"0 B";let r=typeof n=="number"?n:n.length??0;if(!r)return"0 B";let t=typeof e=="number"?e:2,o=["B","kB","MB","GB","TB","PB","EB","ZB","YB"],s=10**t,i=o.length-1;do{let c=10**(i*3);if(c<=r+1)return`${Math.round(r*s/c)/s} ${o[i]}`}while(--i>=0);return`${r} B`},ae=n=>x.readFileSync(n,"utf8"),ce=n=>!!(n&&typeof n=="object"&&"hash"in n),pe=(n,e)=>{let r=x.readdirSync(n).map(o=>te.join(n,o)),t=ce(e)?void 0:e;if(typeof t=="function")return t(r);if(t instanceof RegExp)return r.filter(o=>t.test(o));if(typeof t=="string"){if(oe(t))return se(r,t);if(t==="isFile"||t==="isDirectory")return r.filter(o=>{let s=x.statSync(o);return t==="isFile"?s.isFile():s.isDirectory()})}return r},_=[{name:"fileSize",category:"fs",compatibility:["nodejs"],fn:ie},{name:"read",category:"fs",compatibility:["nodejs"],fn:ae},{name:"readdir",category:"fs",compatibility:["nodejs"],fn:pe}];import O from"path";import C from"html-tag";import me from"striptags";var f=(n={})=>Object.keys(n).map(e=>`${e}="${String(n[e]).replace(/^['"]|["']$/g,"")}"`).join(" "),le=n=>{let e=f(n?.hash??{});return e.trim()?` ${e}`:""},ye=function(n,e){arguments.length<2&&(e=n,n=[]);let r=g(n??[]),t="";return this&&this.options&&(t=this.options.assets||""),e?.hash?.href&&(r=g(e.hash.href)),r.map(o=>{let s=O.extname(o),i=o;return/(^\/\/)|(:\/\/)/.test(o)||(i=O.posix.join(t,o)),s===".less"?`<link type="text/css" rel="stylesheet/less" href="${i}">`:`<link type="text/css" rel="stylesheet" href="${i}">`}).join(`
3
- `)},ge=n=>{if(n&&typeof n=="object"&&!Array.isArray(n)){let r=f(n.hash??{});return`<script${r?` ${r}`:""}></script>`}return typeof n=="string"?`<script src="${n}"></script>`:g(n).map(r=>O.extname(r)===".coffee"?C("script",{type:"text/coffeescript",src:r}):C("script",{src:r})).join(`
4
- `)},fe=n=>typeof n!="string"?"":me(n).trim(),ue=(n,e)=>{let r=f(e.hash??{}),t=n.map(s=>typeof s=="string"?s:e.fn(s));return`${r?`<ul ${r}>`:"<ul>"}${t.map(s=>`<li>${s}</li>`).join(`
5
- `)}</ul>`},be=(n,e)=>{let r=f(e.hash??{}),t=n.map(s=>typeof s=="string"?s:e.fn(s));return`${r?`<ol ${r}>`:"<ol>"}${t.map(s=>`<li>${s}</li>`).join(`
6
- `)}</ol>`},de=n=>{let e="",r="",t=n.full||!1,o={alt:n.alt,src:n.thumbnail,width:n.size.width,height:n.size.height},s={id:`image-${n.id}`},i={href:t,rel:"thumbnail"};return n.classes&&(n.classes.image&&(o.class=n.classes.image.join(" ")),n.classes.figure&&(s.class=n.classes.figure.join(" ")),n.classes.link&&(i.class=n.classes.link.join(" "))),e+=`<figure ${f(s)}>
1
+ import y from"handlebars";var un=(n,e)=>Array.isArray(n)?n.slice(e):[],bn=(n,e)=>Array.isArray(n)?n.slice(0,-e):[],g=n=>n==null?[]:Array.isArray(n)?n:[n],dn=(n,e)=>{if(Array.isArray(n))return typeof e!="number"?n[0]:n.slice(0,e)},hn=(n,e)=>{if(!Array.isArray(n)&&typeof n!="string")return;if(typeof e!="number"){let t=n;return t[t.length-1]}let r=Math.abs(e);return n.slice(-r)},wn=n=>n&&typeof n=="object"&&!Array.isArray(n)?Object.keys(n).length:typeof n=="string"||Array.isArray(n)?n.length:0,jn=(n,e=", ")=>typeof n=="string"?n:Array.isArray(n)?n.join(e):"",kn=function(n,e){if(!Array.isArray(n)||!e||typeof e.fn!="function")return e?.inverse?e.inverse(this)??"":"";if(n.length===0)return e.inverse?e.inverse(this)??"":"";let r=n.length,t=e.hash??{},o=e.data?{...e.data}:void 0,s="";for(let i=0;i<r;i++){let c=n[i],l={index:i,total:r,isFirst:i===0,isLast:i===r-1},fn={...o?{...o}:{},...t,...l},H;c!=null&&typeof c=="object"?H={...c,...t,...l}:H={value:c,...t,...l},s+=e.fn(H,{data:fn})}return s},$=[{name:"after",category:"array",compatibility:["browser","nodejs"],fn:un},{name:"before",category:"array",compatibility:["browser","nodejs"],fn:bn},{name:"arrayify",category:"array",compatibility:["browser","nodejs"],fn:g},{name:"first",category:"array",compatibility:["browser","nodejs"],fn:dn},{name:"last",category:"array",compatibility:["browser","nodejs"],fn:hn},{name:"length",category:"array",compatibility:["browser","nodejs"],fn:wn},{name:"join",category:"array",compatibility:["browser","nodejs"],fn:jn},{name:"forEach",category:"array",compatibility:["browser","nodejs"],fn:kn}];import Hn from"fs";import xn from"path";import R from"html-tag";import On from"to-gfm-code-block";var An=(n,e)=>{let r=typeof e=="string"?e:xn.extname(n).slice(1),t=Hn.readFileSync(n,"utf8");return(r==="markdown"||r==="md")&&(r="markdown",t=t.split("`").join("&#x60")),`${On(t,r).trim()}
2
+ `},Nn=n=>R("script",{src:`https://gist.github.com/${n}.js`}),$n=n=>{if(!n||!n.id)throw new Error("jsfiddle helper expects an `id`");let{id:e,width:r="100%",height:t="300",skin:o="/presentation/",tabs:s="result,js,html,css",allowfullscreen:i="allowfullscreen",frameborder:c="0"}=n,l=`http://jsfiddle.net/${e}/embedded/${s}${o}`;return R("iframe",{width:r,height:t,src:l,allowfullscreen:i,frameborder:c})},S=[{name:"embed",category:"code",compatibility:["nodejs"],fn:An},{name:"gist",category:"code",compatibility:["browser","nodejs"],fn:Nn},{name:"jsfiddle",category:"code",compatibility:["browser","nodejs"],fn:$n}];var Rn=n=>n==null?!0:Array.isArray(n)?n.length===0:typeof n=="object"?Object.keys(n).length===0:!1,Sn=(n,e,r)=>{if(Array.isArray(n)){let t="";for(let o=0;o<n.length;o++)t+=e(n[o],o);return t}if(n&&typeof n=="object"){let t="";for(let o of Object.keys(n))t+=e(n[o],o);return t}return r?r():""},E=[{name:"isEmpty",category:"collection",compatibility:["browser","nodejs"],fn:Rn},{name:"iterate",category:"collection",compatibility:["browser","nodejs"],fn:Sn}];var En=(...n)=>n.every(Boolean),Fn=(n,e,r)=>{switch(e){case"==":return n==r;case"===":return n===r;case"!=":return n!=r;case"!==":return n!==r;case"<":return n<r;case">":return n>r;case"<=":return n<=r;case">=":return n>=r;case"typeof":return typeof n===r;default:throw new Error(`helper {{compare}}: invalid operator: '${e}'`)}},Tn=(n,e,r=0)=>n==null?!1:typeof n=="string"||Array.isArray(n)?n.indexOf(e,r)>-1:typeof n=="object"?e in n:!1,Bn=(...n)=>{for(let e of n)if(e!=null)return e;return""},_n=(n,e)=>n===e,Mn=(n,e)=>n>e,Cn=(n,e)=>n>=e,zn=(n,e)=>n==null||e==null?!1:Array.isArray(n)||typeof n=="string"?n.indexOf(e)>-1:typeof n=="object"?e in n:!1,F=(n,e)=>{if(!n)return!0;let r=Array.isArray(e)?e:e!=null?[e]:["0","false","nada","nil","nay","nah","negative","no","none","nope","nul","null","nix","nyet","uh-uh","veto","zero"],t=typeof n=="string"?n.toLowerCase():null;for(let o of r)if(o===n||t!=null&&o===t)return!0;return!1},Ln=n=>F(n),Pn=n=>!F(n),Un=n=>typeof n=="number"&&n%2===0,In=(n,e)=>typeof n=="number"&&typeof e=="number"&&e%n===0,vn=n=>typeof n=="number"&&Math.abs(n%2)===1,Jn=(n,e)=>n==e,qn=(n,e)=>n!=e,Dn=(n,e)=>n<e,Wn=(n,e)=>n<=e,Gn=(n,e)=>!n&&!e,Yn=n=>!n,Qn=(...n)=>n.some(Boolean),Zn=(n,e)=>n!==e,Kn=(n,e)=>n<=e,Vn=(n,e)=>n>=e,Xn=(n,e)=>n<e,ne=(n,e)=>n>e,T=[{name:"and",category:"comparison",compatibility:["browser","nodejs"],fn:En},{name:"compare",category:"comparison",compatibility:["browser","nodejs"],fn:Fn},{name:"contains",category:"comparison",compatibility:["browser","nodejs"],fn:Tn},{name:"default",category:"comparison",compatibility:["browser","nodejs"],fn:Bn},{name:"eq",category:"comparison",compatibility:["browser","nodejs"],fn:_n},{name:"gt",category:"comparison",compatibility:["browser","nodejs"],fn:Mn},{name:"gte",category:"comparison",compatibility:["browser","nodejs"],fn:Cn},{name:"has",category:"comparison",compatibility:["browser","nodejs"],fn:zn},{name:"isFalsey",category:"comparison",compatibility:["browser","nodejs"],fn:Ln},{name:"isTruthy",category:"comparison",compatibility:["browser","nodejs"],fn:Pn},{name:"ifEven",category:"comparison",compatibility:["browser","nodejs"],fn:Un},{name:"ifNth",category:"comparison",compatibility:["browser","nodejs"],fn:In},{name:"ifOdd",category:"comparison",compatibility:["browser","nodejs"],fn:vn},{name:"is",category:"comparison",compatibility:["browser","nodejs"],fn:Jn},{name:"isnt",category:"comparison",compatibility:["browser","nodejs"],fn:qn},{name:"lt",category:"comparison",compatibility:["browser","nodejs"],fn:Dn},{name:"lte",category:"comparison",compatibility:["browser","nodejs"],fn:Wn},{name:"neither",category:"comparison",compatibility:["browser","nodejs"],fn:Gn},{name:"not",category:"comparison",compatibility:["browser","nodejs"],fn:Yn},{name:"or",category:"comparison",compatibility:["browser","nodejs"],fn:Qn},{name:"unlessEq",category:"comparison",compatibility:["browser","nodejs"],fn:Zn},{name:"unlessGt",category:"comparison",compatibility:["browser","nodejs"],fn:Kn},{name:"unlessLt",category:"comparison",compatibility:["browser","nodejs"],fn:Vn},{name:"unlessGteq",category:"comparison",compatibility:["browser","nodejs"],fn:Xn},{name:"unlessLteq",category:"comparison",compatibility:["browser","nodejs"],fn:ne}];import{parseDate as ee}from"chrono-node";import re from"dayjs";var te=()=>new Date().getFullYear().toString(),B=(n,e)=>{let r=ee(n);if(!r)throw new Error(`Unable to parse date: ${n}`);return re(r).format(e)},_=[{name:"year",category:"date",compatibility:["browser","nodejs"],fn:te},{name:"date",category:"date",compatibility:["browser","nodejs"],fn:B},{name:"moment",category:"date",compatibility:["browser","nodejs"],fn:B}];import x from"fs";import oe from"path";import se from"is-glob";import ie from"micromatch";var ae=(n,e)=>{if(n==null)return"0 B";let r=typeof n=="number"?n:n.length??0;if(!r)return"0 B";let t=typeof e=="number"?e:2,o=["B","kB","MB","GB","TB","PB","EB","ZB","YB"],s=10**t,i=o.length-1;do{let c=10**(i*3);if(c<=r+1)return`${Math.round(r*s/c)/s} ${o[i]}`}while(--i>=0);return`${r} B`},ce=n=>x.readFileSync(n,"utf8"),pe=n=>!!(n&&typeof n=="object"&&"hash"in n),me=(n,e)=>{let r=x.readdirSync(n).map(o=>oe.join(n,o)),t=pe(e)?void 0:e;if(typeof t=="function")return t(r);if(t instanceof RegExp)return r.filter(o=>t.test(o));if(typeof t=="string"){if(se(t))return ie(r,t);if(t==="isFile"||t==="isDirectory")return r.filter(o=>{let s=x.statSync(o);return t==="isFile"?s.isFile():s.isDirectory()})}return r},M=[{name:"fileSize",category:"fs",compatibility:["nodejs"],fn:ae},{name:"read",category:"fs",compatibility:["nodejs"],fn:ce},{name:"readdir",category:"fs",compatibility:["nodejs"],fn:me}];import O from"path";import C from"html-tag";import le from"striptags";var f=(n={})=>Object.keys(n).map(e=>`${e}="${String(n[e]).replace(/^['"]|["']$/g,"")}"`).join(" "),ye=n=>{let e=f(n?.hash??{});return e.trim()?` ${e}`:""},ge=function(n,e){arguments.length<2&&(e=n,n=[]);let r=g(n??[]),t="";return this&&this.options&&(t=this.options.assets||""),e?.hash?.href&&(r=g(e.hash.href)),r.map(o=>{let s=O.extname(o),i=o;return/(^\/\/)|(:\/\/)/.test(o)||(i=O.posix.join(t,o)),s===".less"?`<link type="text/css" rel="stylesheet/less" href="${i}">`:`<link type="text/css" rel="stylesheet" href="${i}">`}).join(`
3
+ `)},fe=n=>{if(n&&typeof n=="object"&&!Array.isArray(n)){let r=f(n.hash??{});return`<script${r?` ${r}`:""}></script>`}return typeof n=="string"?`<script src="${n}"></script>`:g(n).map(r=>O.extname(r)===".coffee"?C("script",{type:"text/coffeescript",src:r}):C("script",{src:r})).join(`
4
+ `)},ue=n=>typeof n!="string"?"":le(n).trim(),be=(n,e)=>{let r=f(e.hash??{}),t=n.map(s=>typeof s=="string"?s:e.fn(s));return`${r?`<ul ${r}>`:"<ul>"}${t.map(s=>`<li>${s}</li>`).join(`
5
+ `)}</ul>`},de=(n,e)=>{let r=f(e.hash??{}),t=n.map(s=>typeof s=="string"?s:e.fn(s));return`${r?`<ol ${r}>`:"<ol>"}${t.map(s=>`<li>${s}</li>`).join(`
6
+ `)}</ol>`},he=n=>{let e="",r="",t=n.full||!1,o={alt:n.alt,src:n.thumbnail,width:n.size.width,height:n.size.height},s={id:`image-${n.id}`},i={href:t,rel:"thumbnail"};return n.classes&&(n.classes.image&&(o.class=n.classes.image.join(" ")),n.classes.figure&&(s.class=n.classes.figure.join(" ")),n.classes.link&&(i.class=n.classes.link.join(" "))),e+=`<figure ${f(s)}>
7
7
  `,r+=`<img ${f(o)}>
8
8
  `,t?e+=`<a ${f(i)}>
9
9
  ${r}</a>
10
10
  `:e+=r,n.caption&&(e+=`<figcaption>${n.caption}</figcaption>
11
- `),e+="</figure>",e},M=[{name:"attr",category:"html",compatibility:["browser","nodejs"],fn:le},{name:"css",category:"html",compatibility:["nodejs"],fn:ye},{name:"js",category:"html",compatibility:["nodejs"],fn:ge},{name:"sanitize",category:"html",compatibility:["browser","nodejs"],fn:fe},{name:"ul",category:"html",compatibility:["browser","nodejs"],fn:ue},{name:"ol",category:"html",compatibility:["browser","nodejs"],fn:be},{name:"thumbnailImage",category:"html",compatibility:["browser","nodejs"],fn:de}];var u=(n,e)=>{if(!n||typeof n!="object")return;let r=Array.isArray(e)?e:e.split("."),t=n;for(let o of r){if(t==null||typeof t!="object")return;t=t[o]}return t},A=(n,e)=>{if(!n||typeof n!="object")return;let r=Array.isArray(e)?e:e.split(".");if(r.length===0)return;let t=n;for(let s=0;s<r.length-1;s++){if(t==null||typeof t!="object")return;t=t[r[s]]}let o=r[r.length-1];if(!(t==null||typeof t!="object"||!(o in t)))return{[o]:t[o]}};var he=function(n,e,r){if(e&&typeof e=="object"&&"hash"in e&&r===void 0&&(r=e,e={}),typeof n!="string")throw new Error('{{i18n}} helper expected "key" to be a string');let t={...this,...e,...r?.hash??{}},o=t.language||t.lang;if(typeof o!="string")throw new TypeError('{{i18n}} helper expected "language" to be a string');let s=t[o];if(typeof s>"u")throw new Error(`{{i18n}} helper cannot find language "${o}"`);let i=u(s,n);if(typeof i>"u")throw new Error('{{i18n}} helper cannot find property "'+String(n)+'" for language "'+o+'"');return String(i)},z=[{name:"i18n",category:"i18n",compatibility:["browser","nodejs"],fn:he}];var we=(n,e,r,t)=>{let o=n>1||n===0?r:e;return t?`${n} ${o}`:o},je=n=>{let e=Math.abs(Math.round(Number(n))),r=String(n),t=e%100;if([11,12,13].includes(t))return`${r}th`;switch(e%10){case 1:return`${r}st`;case 2:return`${r}nd`;case 3:return`${r}rd`;default:return`${r}th`}},L=[{name:"inflect",category:"inflection",compatibility:["browser","nodejs"],fn:we},{name:"ordinalize",category:"inflection",compatibility:["browser","nodejs"],fn:je}];import ke from"logging-helpers";var{log:He,ok:xe,success:Oe,info:Ae,warning:Ne,warn:$e,error:Re,danger:Se,bold:Ee,_debug:Te,_inspect:Fe}=ke,P=[{name:"log",category:"logging",compatibility:["nodejs"],fn:He},{name:"ok",category:"logging",compatibility:["nodejs"],fn:xe},{name:"success",category:"logging",compatibility:["nodejs"],fn:Oe},{name:"info",category:"logging",compatibility:["nodejs"],fn:Ae},{name:"warning",category:"logging",compatibility:["nodejs"],fn:Ne},{name:"warn",category:"logging",compatibility:["nodejs"],fn:$e},{name:"error",category:"logging",compatibility:["nodejs"],fn:Re},{name:"danger",category:"logging",compatibility:["nodejs"],fn:Se},{name:"bold",category:"logging",compatibility:["nodejs"],fn:Ee},{name:"_debug",category:"logging",compatibility:["nodejs"],fn:Te},{name:"_inspect",category:"logging",compatibility:["nodejs"],fn:Fe}];import U from"micromatch";var I=(n,e,r)=>{let t=typeof e=="string"?e.split(/, */):e;return U(n,t,r)},Be=(n,e,r)=>U.isMatch(n,e,r),_e=(...n)=>(console.log("the {{mm}} helper is depcrecated and will be removed"),console.log("in handlebars-helpers v1.0.0, please use the {{match}}"),console.log("helper instead."),I(...n)),J=[{name:"match",category:"match",compatibility:["browser","nodejs"],fn:I},{name:"isMatch",category:"match",compatibility:["browser","nodejs"],fn:Be},{name:"mm",category:"match",compatibility:["browser","nodejs"],fn:_e}];var j=n=>typeof n=="number"&&!Number.isNaN(n)||typeof n=="string"&&n.trim()!==""&&!Number.isNaN(Number(n)),a=(n,e="expected a number")=>{if(j(n))return Number(n);throw new TypeError(e)},Ce=n=>{let e=a(n);return Math.abs(e)},Me=(n,e)=>j(n)&&j(e)?Number(n)+Number(e):"",ze=(...n)=>{let e=n.flat().map(r=>Number(r));return v(e)/e.length},Le=n=>{let e=a(n);return Math.ceil(e)},Pe=(n,e)=>{let r=a(n,"expected the first argument to be a number"),t=a(e,"expected the second argument to be a number");return r/t},Ue=n=>{let e=a(n);return Math.floor(e)},Ie=(n,e)=>{let r=a(n,"expected the first argument to be a number"),t=a(e,"expected the second argument to be a number");return r-t},Je=(n,e)=>{let r=a(n,"expected the first argument to be a number"),t=a(e,"expected the second argument to be a number");return r%t},q=(n,e)=>{let r=a(n,"expected the first argument to be a number"),t=a(e,"expected the second argument to be a number");return r*t},qe=(n,e)=>{let r=a(n,"expected the first argument to be a number"),t=a(e,"expected the second argument to be a number");return r+t},ve=(n,e)=>{let r=a(n,"expected minimum to be a number"),t=a(e,"expected maximum to be a number");return r+Math.floor(Math.random()*(t-r+1))},De=(n,e)=>n%e,We=n=>{let e=a(n);return Math.round(e)},Ge=(n,e)=>{let r=a(n,"expected the first argument to be a number"),t=a(e,"expected the second argument to be a number");return r-t},v=(...n)=>{let e=n.flat(),r=0;for(let t of e)j(t)&&(r+=Number(t));return r},Ye=(n,e)=>q(n,e),D=[{name:"abs",category:"math",compatibility:["browser","nodejs"],fn:Ce},{name:"add",category:"math",compatibility:["browser","nodejs"],fn:Me},{name:"avg",category:"math",compatibility:["browser","nodejs"],fn:ze},{name:"ceil",category:"math",compatibility:["browser","nodejs"],fn:Le},{name:"divide",category:"math",compatibility:["browser","nodejs"],fn:Pe},{name:"floor",category:"math",compatibility:["browser","nodejs"],fn:Ue},{name:"minus",category:"math",compatibility:["browser","nodejs"],fn:Ie},{name:"modulo",category:"math",compatibility:["browser","nodejs"],fn:Je},{name:"multiply",category:"math",compatibility:["browser","nodejs"],fn:q},{name:"plus",category:"math",compatibility:["browser","nodejs"],fn:qe},{name:"random",category:"math",compatibility:["browser","nodejs"],fn:ve},{name:"remainder",category:"math",compatibility:["browser","nodejs"],fn:De},{name:"round",category:"math",compatibility:["browser","nodejs"],fn:We},{name:"subtract",category:"math",compatibility:["browser","nodejs"],fn:Ge},{name:"sum",category:"math",compatibility:["browser","nodejs"],fn:v},{name:"times",category:"math",compatibility:["browser","nodejs"],fn:Ye}];import W from"fs";import Qe from"path";import Ze from"process";import Ke from"ent";import Ve from"handlebars";import{Remarkable as Xe}from"remarkable";var nr=(n,e={})=>{let r={cwd:Ze.cwd(),...e},t=new Xe({breaks:!0,html:!0,langPrefix:"lang-",typographer:!1,xhtmlOut:!1}),o=Qe.resolve(r.cwd,n),s=n;return W.existsSync(o)&&(s=W.readFileSync(o,"utf8")),new Ve.SafeString(Ke.decode(t.render(s)))},G=[{name:"md",category:"markdown",compatibility:["nodejs"],fn:nr}];import er from"handlebars-helper-create-frame";import rr from"handlebars-utils";import tr from"kind-of";var or=er;function sr(n,e,r){return u(rr.options(this,e,r),n)}function ir(n){return n.fn(this)}var ar=tr;function cr(n){return n.hash&&Object.keys(n.hash).length?n.fn(n.hash):n.inverse(this)}var Y=[{name:"frame",category:"misc",compatibility:["browser","nodejs"],fn:or},{name:"option",category:"misc",compatibility:["browser","nodejs"],fn:sr},{name:"noop",category:"misc",compatibility:["browser","nodejs"],fn:ir},{name:"typeOf",category:"misc",compatibility:["browser","nodejs"],fn:ar},{name:"withHash",category:"misc",compatibility:["browser","nodejs"],fn:cr}];var h=n=>typeof n=="number"&&!Number.isNaN(n),pr=(n,e)=>{if(n==null)return"0 B";let r;if(typeof n=="string"){if(r=n.length,!r)return"0 B"}else if(h(n))r=Number(n);else if(typeof n.length=="number"){if(r=n.length,!r)return"0 B"}else return"0 B";let t=typeof e=="number"&&!Number.isNaN(e)?e:2,o=["B","kB","MB","GB","TB","PB","EB","ZB","YB"],s=10**t;for(let i=o.length-1;i>=0;i--){let c=10**(i*3);if(c<=r+1)return`${Math.round(r*s/c)/s} ${o[i]}`}return`${r}`},mr=n=>n.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g,"$1,"),lr=n=>{let e=n.toString();return`(${e.substr(0,3)}) ${e.substr(3,3)}-${e.substr(6,4)}`},yr=(n,e)=>{let r=h(n)?Number(n):0,o=10**(typeof e=="number"&&!Number.isNaN(e)?e:2),s=["k","m","b","t","q"];for(let i=s.length-1;i>=0;i--){let c=10**((i+1)*3);if(c<=r+1)return`${Math.round(r*o/c)/o}${s[i]}`}return`${r}`},gr=(n,e)=>{let r=h(n)?Number(n):0,t=typeof e=="number"&&!Number.isNaN(e)?e:0;return Number(r).toExponential(t)},fr=(n,e)=>{let r=h(n)?Number(n):0,t=typeof e=="number"&&!Number.isNaN(e)?e:0;return Number(r).toFixed(t)},ur=n=>parseFloat(String(n)),br=n=>parseInt(String(n),10),dr=(n,e)=>{let r=h(n)?Number(n):0,t=typeof e=="number"&&!Number.isNaN(e)?e:1;return Number(r).toPrecision(t)},Q=[{name:"bytes",category:"number",compatibility:["browser","nodejs"],fn:pr},{name:"addCommas",category:"number",compatibility:["browser","nodejs"],fn:mr},{name:"phoneNumber",category:"number",compatibility:["browser","nodejs"],fn:lr},{name:"toAbbr",category:"number",compatibility:["browser","nodejs"],fn:yr},{name:"toExponential",category:"number",compatibility:["browser","nodejs"],fn:gr},{name:"toFixed",category:"number",compatibility:["browser","nodejs"],fn:fr},{name:"toFloat",category:"number",compatibility:["browser","nodejs"],fn:ur},{name:"toInt",category:"number",compatibility:["browser","nodejs"],fn:br},{name:"toPrecision",category:"number",compatibility:["browser","nodejs"],fn:dr}];var k=n=>!!(n&&typeof n=="object"&&"hash"in n),Z=(n,e)=>({...n?.data||{},...e}),hr=(...n)=>{let e=[...n];if(e.length&&k(e[e.length-1])){let t=e.pop();e.push(t.hash)}let r={};for(let t of e)t&&typeof t=="object"&&!Array.isArray(t)&&Object.assign(r,t);return r},wr=(n,e)=>{if(!k(e))return e?.inverse?.(n)??"";let r=Z(e,e.hash||{}),t="";for(let o in n)r.key=o,t+=e.fn(n[o],{data:r});return t},jr=(n,e)=>{if(!k(e))return e?.inverse?.(n)??"";let r=Z(e,e.hash||{}),t="";for(let o in n)Object.hasOwn(n,o)&&(r.key=o,t+=e.fn(n[o],{data:r}));return t},kr=(...n)=>{let e=[];for(let r of n)(typeof r=="string"||typeof r=="number")&&e.push(r);return e.join(".")},Hr=(n,e,r)=>{let t=u(e,n);return r&&typeof r.fn=="function"?t?r.fn(t):r.inverse?.(e):t},xr=(n,e)=>A(e,n),Or=(n,e)=>Object.hasOwn(n,e),Ar=n=>!!n&&typeof n=="object"&&!Array.isArray(n),K=n=>JSON.parse(n),V=(n,e)=>JSON.stringify(n,null,typeof e=="number"?e:0),Nr=(n,...e)=>{let r=[n,...e];if(r.length&&k(r[r.length-1])){let t=r.pop();r.push(t.hash)}return Object.assign(...r)},$r=K,Rr=V,Sr=(n,e,r)=>{let t=g(n),o={};for(let s of t)o=Object.assign({},o,A(e,s));return r&&typeof r.fn=="function"?Object.keys(o).length?r.fn(o):r.inverse?.(e):o},X=[{name:"extend",category:"object",compatibility:["browser","nodejs"],fn:hr},{name:"forIn",category:"object",compatibility:["browser","nodejs"],fn:wr},{name:"forOwn",category:"object",compatibility:["browser","nodejs"],fn:jr},{name:"toPath",category:"object",compatibility:["browser","nodejs"],fn:kr},{name:"get",category:"object",compatibility:["browser","nodejs"],fn:Hr},{name:"getObject",category:"object",compatibility:["browser","nodejs"],fn:xr},{name:"hasOwn",category:"object",compatibility:["browser","nodejs"],fn:Or},{name:"isObject",category:"object",compatibility:["browser","nodejs"],fn:Ar},{name:"JSONparse",category:"object",compatibility:["browser","nodejs"],fn:K},{name:"JSONstringify",category:"object",compatibility:["browser","nodejs"],fn:V},{name:"merge",category:"object",compatibility:["browser","nodejs"],fn:Nr},{name:"parseJSON",category:"object",compatibility:["browser","nodejs"],fn:$r},{name:"pick",category:"object",compatibility:["browser","nodejs"],fn:Sr},{name:"stringify",category:"object",compatibility:["browser","nodejs"],fn:Rr}];import m from"path";var Er=(n,e,r)=>{let t=Object.prototype.toString.call(r).slice(8,-1).toLowerCase();return`Expected ${n} to be of type ${e}, but got ${t}`},p=(n,e)=>{if(typeof e!="string")throw new TypeError(Er(n,"string",e));return e},Tr=function(n,e){let r=p("filepath",n),t=e?.data?.root?.cwd??this?.cwd??process.cwd();return m.resolve(t,r)},Fr=n=>{let e=p("filepath",n);return m.dirname(e)},Br=(n,e)=>{let r=p("first path",n),t=p("second path",e);return m.relative(m.dirname(r),t)},_r=n=>{let e=p("filepath",n);return m.basename(e)},Cr=n=>{let e=p("filepath",n);return m.basename(e,m.extname(e))},Mr=n=>{let e=p("filepath",n);return m.extname(e)},zr=function(n,...e){let r,t=e[e.length-1];typeof t=="object"&&t&&"data"in t&&(r=e.pop());let s=[r?.data?.root?.cwd??this?.cwd??process.cwd(),p("filepath",n),...e.map((i,c)=>p(`path${c}`,i))];return m.resolve(...s)},Lr=(n,e,r)=>{let t=p("filepath",n),o=Number(e),s=Number(r);return t.split(/[\\/]+/).slice(o,s).join("/")},nn=[{name:"absolute",category:"path",compatibility:["nodejs"],fn:Tr},{name:"dirname",category:"path",compatibility:["nodejs"],fn:Fr},{name:"relative",category:"path",compatibility:["nodejs"],fn:Br},{name:"basename",category:"path",compatibility:["nodejs"],fn:_r},{name:"stem",category:"path",compatibility:["nodejs"],fn:Cr},{name:"extname",category:"path",compatibility:["nodejs"],fn:Mr},{name:"resolve",category:"path",compatibility:["nodejs"],fn:zr},{name:"segments",category:"path",compatibility:["nodejs"],fn:Lr}];import Pr from"handlebars-utils";var Ur=(n,e,r)=>{let t=Pr.options({},e,r);return new RegExp(n,t.flags)},Ir=(n,e)=>{if(typeof n!="string")return!1;if(!(e instanceof RegExp))throw new TypeError("expected a regular expression");return e.test(n)},en=[{name:"toRegex",category:"regex",compatibility:["browser","nodejs"],fn:Ur},{name:"test",category:"regex",compatibility:["browser","nodejs"],fn:Ir}];var rn=n=>n.trim().replace(/^[-_.\W\s]+|[-_.\W\s]+$/g,""),b=(n,e)=>n.length===1?n.toLowerCase():rn(n).toLowerCase().replace(/[-_.\W\s]+(\w|$)/g,(t,o)=>e(o)),Jr=(n,e)=>typeof n=="string"&&typeof e=="string"?n+e:n,qr=n=>typeof n=="string"?b(n,e=>e.toUpperCase()):"",tn=n=>typeof n!="string"||n.length===0?"":n.charAt(0).toUpperCase()+n.slice(1),vr=n=>typeof n!="string"?"":n.replace(/\w\S*/g,e=>tn(e)),Dr=(n,e)=>{if(typeof n!="string")return"";let r="";for(let t=0;t<e;t++)r+="&nbsp;";return r+n+r},Wr=n=>typeof n=="string"?rn(n):"",Gr=n=>typeof n=="string"?b(n,e=>`-${e}`):"",Yr=n=>typeof n=="string"?b(n,e=>`.${e}`):"",on=(n,e,r)=>typeof n=="string"?(typeof r!="string"&&(r=""),n.length>e?n.slice(0,e-r.length)+r:n):"",Qr=(n,e)=>typeof n=="string"?n.length<=e?n:`${on(n,e)}\u2026`:"",Zr=n=>typeof n=="string"?n.split(" ").join("-"):"",Kr=n=>typeof n=="string",sn=n=>typeof n=="object"&&n!==null&&"fn"in n&&typeof n.fn=="function"?String(n.fn()).toLowerCase():typeof n!="string"?"":n.toLowerCase(),Vr=(...n)=>sn(...n),Xr=(n,e)=>{if(typeof n!="string")return"";let r=e.length,t=n.indexOf(e,0),o=0;for(;t>-1;)o++,t=n.indexOf(e,t+r);return o},nt=n=>{if(typeof n!="string")return"";let e=b(n,r=>r.toUpperCase());return e.charAt(0).toUpperCase()+e.slice(1)},et=n=>typeof n=="string"?b(n,e=>`/${e}`):"",rt=(n,e)=>typeof n!="string"?"":(typeof e!="string"&&(e=" "),n.split(e).join("+")),tt=(n,e)=>typeof n=="string"&&typeof e=="string"?e+n:n,ot=(n,e)=>typeof n!="string"?"":typeof e!="string"?n:n.split(e).join(""),st=(n,e)=>typeof n!="string"?"":typeof e!="string"?n:n.replace(e,""),it=(n,e,r)=>typeof n!="string"?"":typeof e!="string"?n:(typeof r!="string"&&(r=""),n.split(e).join(r)),at=(n,e,r)=>typeof n!="string"?"":typeof e!="string"?n:(typeof r!="string"&&(r=""),n.replace(e,r)),ct=n=>typeof n=="string"?n.split("").reverse().join(""):"",pt=n=>typeof n!="string"?"":n.replace(/((?:\S[^.?!]*)[.?!]*)/g,e=>e.charAt(0).toUpperCase()+e.substr(1).toLowerCase()),mt=n=>typeof n=="string"?b(n,e=>`_${e}`):"",lt=n=>typeof n=="string"?n.trim():"",yt=n=>typeof n=="string"?n.replace(/^\s+/,""):"",gt=n=>typeof n=="string"?n.replace(/\s+$/,""):"",ft=(n,e,r)=>{if(typeof n=="string"&&typeof e=="number"&&Number.isFinite(e)){typeof r!="string"&&(r="...");let t=Math.trunc(e),o=n.split(" ");return t<o.length&&(o=o.slice(0,t)),o.join(" ").trim()+r}return""},ut=ft,an=n=>typeof n=="object"&&n!==null&&"fn"in n&&typeof n.fn=="function"?String(n.fn()).toUpperCase():typeof n!="string"?"":n.toUpperCase(),bt=(...n)=>an(...n),cn=[{name:"append",category:"string",compatibility:["browser","nodejs"],fn:Jr},{name:"camelcase",category:"string",compatibility:["browser","nodejs"],fn:qr},{name:"capitalize",category:"string",compatibility:["browser","nodejs"],fn:tn},{name:"capitalizeAll",category:"string",compatibility:["browser","nodejs"],fn:vr},{name:"center",category:"string",compatibility:["browser","nodejs"],fn:Dr},{name:"chop",category:"string",compatibility:["browser","nodejs"],fn:Wr},{name:"dashcase",category:"string",compatibility:["browser","nodejs"],fn:Gr},{name:"dotcase",category:"string",compatibility:["browser","nodejs"],fn:Yr},{name:"ellipsis",category:"string",compatibility:["browser","nodejs"],fn:Qr},{name:"hyphenate",category:"string",compatibility:["browser","nodejs"],fn:Zr},{name:"isString",category:"string",compatibility:["browser","nodejs"],fn:Kr},{name:"lowercase",category:"string",compatibility:["browser","nodejs"],fn:sn},{name:"downcase",category:"string",compatibility:["browser","nodejs"],fn:Vr},{name:"occurrences",category:"string",compatibility:["browser","nodejs"],fn:Xr},{name:"pascalcase",category:"string",compatibility:["browser","nodejs"],fn:nt},{name:"pathcase",category:"string",compatibility:["browser","nodejs"],fn:et},{name:"plusify",category:"string",compatibility:["browser","nodejs"],fn:rt},{name:"prepend",category:"string",compatibility:["browser","nodejs"],fn:tt},{name:"remove",category:"string",compatibility:["browser","nodejs"],fn:ot},{name:"removeFirst",category:"string",compatibility:["browser","nodejs"],fn:st},{name:"replace",category:"string",compatibility:["browser","nodejs"],fn:it},{name:"replaceFirst",category:"string",compatibility:["browser","nodejs"],fn:at},{name:"reverse",category:"string",compatibility:["browser","nodejs"],fn:ct},{name:"sentence",category:"string",compatibility:["browser","nodejs"],fn:pt},{name:"snakecase",category:"string",compatibility:["browser","nodejs"],fn:mt},{name:"trim",category:"string",compatibility:["browser","nodejs"],fn:lt},{name:"trimLeft",category:"string",compatibility:["browser","nodejs"],fn:yt},{name:"trimRight",category:"string",compatibility:["browser","nodejs"],fn:gt},{name:"truncate",category:"string",compatibility:["browser","nodejs"],fn:on},{name:"truncateWords",category:"string",compatibility:["browser","nodejs"],fn:ut},{name:"uppercase",category:"string",compatibility:["browser","nodejs"],fn:an},{name:"upcase",category:"string",compatibility:["browser","nodejs"],fn:bt}];import{escape as dt}from"querystring";import{format as ht,parse as pn,resolve as wt}from"url";var w=["browser","nodejs"],mn=n=>{if(typeof n=="string")return encodeURIComponent(n)},jt=n=>{if(typeof n=="string")return dt(n)},ln=n=>{if(typeof n=="string")return decodeURIComponent(n)};function kt(...n){return mn.apply(this,n)}function Ht(...n){return ln.apply(this,n)}var xt=(n,e)=>wt(String(n),String(e)),Ot=n=>pn(String(n)),At=n=>{if(typeof n=="string")return n.split("?")[0]},Nt=n=>{if(typeof n=="string"){let e=pn(n);return e.protocol="",ht(e)}},yn=[{name:"encodeURI",category:"url",compatibility:w,fn:mn},{name:"escape",category:"url",compatibility:["nodejs"],fn:jt},{name:"decodeURI",category:"url",compatibility:w,fn:ln},{name:"url_encode",category:"url",compatibility:w,fn:kt},{name:"url_decode",category:"url",compatibility:w,fn:Ht},{name:"urlResolve",category:"url",compatibility:["nodejs"],fn:xt},{name:"urlParse",category:"url",compatibility:["nodejs"],fn:Ot},{name:"stripQuerystring",category:"url",compatibility:w,fn:At},{name:"stripProtocol",category:"url",compatibility:["nodejs"],fn:Nt}];var d=class{_helpers=[];constructor(){this.init()}get helpers(){return this._helpers}init(){this.registerHelpers(N),this.registerHelpers(S),this.registerHelpers(B),this.registerHelpers(_),this.registerHelpers(R),this.registerHelpers(G),this.registerHelpers(M),this.registerHelpers(T),this.registerHelpers(z),this.registerHelpers(L),this.registerHelpers(P),this.registerHelpers(J),this.registerHelpers(D),this.registerHelpers(Y),this.registerHelpers(Q),this.registerHelpers(nn),this.registerHelpers(en),this.registerHelpers(cn),this.registerHelpers(yn),this.registerHelpers(X)}register(e){return this.has(e.name)||this._helpers.push(e),!1}registerHelpers(e){for(let r of e)this.register(r)}has(e){return this._helpers.some(r=>r.name===e)}filter(e){let r=this._helpers;return e.names&&(r=r.filter(t=>e.names?.includes(t.name))),e.categories&&(r=r.filter(t=>e.categories?.includes(t.category))),e.compatibility&&(r=r.filter(t=>t.compatibility?.some(o=>e.compatibility?.includes(o)))),r}load(e,r){let t=this._helpers;r&&(t=this.filter(r));for(let o of t)e.registerHelper(o.name,o.fn)}swap(e){for(let r of this._helpers)e.unregisterHelper(r.name),e.registerHelper(r.name,r.fn)}};var Vo=y,Xo=y.create();function ns(n){new d().load(n.handlebars??n.hbs)}async function es(){let n=new d,e=y.create();return Object.keys(y.partials).length>0&&e.registerPartial(y.partials),n.load(e),process.env.NODE_ENV==="development"&&console.warn("createHandlebars will be deprecated in future versions, use `fumanchu` instead."),e}function rs(n){let e=new d,r=y.create();return n?.handlebars?r=n.handlebars:Object.keys(y.partials).length>0&&r.registerPartial(y.partials),e.load(r),r}export{Vo as Handlebars,d as HelperRegistry,es as createHandlebars,rs as fumanchu,Xo as handlebars,ns as helpers};
11
+ `),e+="</figure>",e},z=[{name:"attr",category:"html",compatibility:["browser","nodejs"],fn:ye},{name:"css",category:"html",compatibility:["nodejs"],fn:ge},{name:"js",category:"html",compatibility:["nodejs"],fn:fe},{name:"sanitize",category:"html",compatibility:["browser","nodejs"],fn:ue},{name:"ul",category:"html",compatibility:["browser","nodejs"],fn:be},{name:"ol",category:"html",compatibility:["browser","nodejs"],fn:de},{name:"thumbnailImage",category:"html",compatibility:["browser","nodejs"],fn:he}];var u=(n,e)=>{if(!n||typeof n!="object")return;let r=Array.isArray(e)?e:e.split("."),t=n;for(let o of r){if(t==null||typeof t!="object")return;t=t[o]}return t},A=(n,e)=>{if(!n||typeof n!="object")return;let r=Array.isArray(e)?e:e.split(".");if(r.length===0)return;let t=n;for(let s=0;s<r.length-1;s++){if(t==null||typeof t!="object")return;t=t[r[s]]}let o=r[r.length-1];if(!(t==null||typeof t!="object"||!(o in t)))return{[o]:t[o]}};var we=function(n,e,r){if(e&&typeof e=="object"&&"hash"in e&&r===void 0&&(r=e,e={}),typeof n!="string")throw new Error('{{i18n}} helper expected "key" to be a string');let t={...this,...e,...r?.hash??{}},o=t.language||t.lang;if(typeof o!="string")throw new TypeError('{{i18n}} helper expected "language" to be a string');let s=t[o];if(typeof s>"u")throw new Error(`{{i18n}} helper cannot find language "${o}"`);let i=u(s,n);if(typeof i>"u")throw new Error('{{i18n}} helper cannot find property "'+String(n)+'" for language "'+o+'"');return String(i)},L=[{name:"i18n",category:"i18n",compatibility:["browser","nodejs"],fn:we}];var je=(n,e,r,t)=>{let o=n>1||n===0?r:e;return t?`${n} ${o}`:o},ke=n=>{let e=Math.abs(Math.round(Number(n))),r=String(n),t=e%100;if([11,12,13].includes(t))return`${r}th`;switch(e%10){case 1:return`${r}st`;case 2:return`${r}nd`;case 3:return`${r}rd`;default:return`${r}th`}},P=[{name:"inflect",category:"inflection",compatibility:["browser","nodejs"],fn:je},{name:"ordinalize",category:"inflection",compatibility:["browser","nodejs"],fn:ke}];import He from"logging-helpers";var{log:xe,ok:Oe,success:Ae,info:Ne,warning:$e,warn:Re,error:Se,danger:Ee,bold:Fe,_debug:Te,_inspect:Be}=He,U=[{name:"log",category:"logging",compatibility:["nodejs"],fn:xe},{name:"ok",category:"logging",compatibility:["nodejs"],fn:Oe},{name:"success",category:"logging",compatibility:["nodejs"],fn:Ae},{name:"info",category:"logging",compatibility:["nodejs"],fn:Ne},{name:"warning",category:"logging",compatibility:["nodejs"],fn:$e},{name:"warn",category:"logging",compatibility:["nodejs"],fn:Re},{name:"error",category:"logging",compatibility:["nodejs"],fn:Se},{name:"danger",category:"logging",compatibility:["nodejs"],fn:Ee},{name:"bold",category:"logging",compatibility:["nodejs"],fn:Fe},{name:"_debug",category:"logging",compatibility:["nodejs"],fn:Te},{name:"_inspect",category:"logging",compatibility:["nodejs"],fn:Be}];import I from"micromatch";var v=(n,e,r)=>{let t=typeof e=="string"?e.split(/, */):e;return I(n,t,r)},_e=(n,e,r)=>I.isMatch(n,e,r),Me=(...n)=>(console.log("the {{mm}} helper is depcrecated and will be removed"),console.log("in handlebars-helpers v1.0.0, please use the {{match}}"),console.log("helper instead."),v(...n)),J=[{name:"match",category:"match",compatibility:["browser","nodejs"],fn:v},{name:"isMatch",category:"match",compatibility:["browser","nodejs"],fn:_e},{name:"mm",category:"match",compatibility:["browser","nodejs"],fn:Me}];var j=n=>typeof n=="number"&&!Number.isNaN(n)||typeof n=="string"&&n.trim()!==""&&!Number.isNaN(Number(n)),a=(n,e="expected a number")=>{if(j(n))return Number(n);throw new TypeError(e)},Ce=n=>{let e=a(n);return Math.abs(e)},ze=(n,e)=>j(n)&&j(e)?Number(n)+Number(e):"",Le=(...n)=>{let e=n.flat().map(r=>Number(r));return D(e)/e.length},Pe=n=>{let e=a(n);return Math.ceil(e)},Ue=(n,e)=>{let r=a(n,"expected the first argument to be a number"),t=a(e,"expected the second argument to be a number");return r/t},Ie=n=>{let e=a(n);return Math.floor(e)},ve=(n,e)=>{let r=a(n,"expected the first argument to be a number"),t=a(e,"expected the second argument to be a number");return r-t},Je=(n,e)=>{let r=a(n,"expected the first argument to be a number"),t=a(e,"expected the second argument to be a number");return r%t},q=(n,e)=>{let r=a(n,"expected the first argument to be a number"),t=a(e,"expected the second argument to be a number");return r*t},qe=(n,e)=>{let r=a(n,"expected the first argument to be a number"),t=a(e,"expected the second argument to be a number");return r+t},De=(n,e)=>{let r=a(n,"expected minimum to be a number"),t=a(e,"expected maximum to be a number");return r+Math.floor(Math.random()*(t-r+1))},We=(n,e)=>n%e,Ge=n=>{let e=a(n);return Math.round(e)},Ye=(n,e)=>{let r=a(n,"expected the first argument to be a number"),t=a(e,"expected the second argument to be a number");return r-t},D=(...n)=>{let e=n.flat(),r=0;for(let t of e)j(t)&&(r+=Number(t));return r},Qe=(n,e)=>q(n,e),W=[{name:"abs",category:"math",compatibility:["browser","nodejs"],fn:Ce},{name:"add",category:"math",compatibility:["browser","nodejs"],fn:ze},{name:"avg",category:"math",compatibility:["browser","nodejs"],fn:Le},{name:"ceil",category:"math",compatibility:["browser","nodejs"],fn:Pe},{name:"divide",category:"math",compatibility:["browser","nodejs"],fn:Ue},{name:"floor",category:"math",compatibility:["browser","nodejs"],fn:Ie},{name:"minus",category:"math",compatibility:["browser","nodejs"],fn:ve},{name:"modulo",category:"math",compatibility:["browser","nodejs"],fn:Je},{name:"multiply",category:"math",compatibility:["browser","nodejs"],fn:q},{name:"plus",category:"math",compatibility:["browser","nodejs"],fn:qe},{name:"random",category:"math",compatibility:["browser","nodejs"],fn:De},{name:"remainder",category:"math",compatibility:["browser","nodejs"],fn:We},{name:"round",category:"math",compatibility:["browser","nodejs"],fn:Ge},{name:"subtract",category:"math",compatibility:["browser","nodejs"],fn:Ye},{name:"sum",category:"math",compatibility:["browser","nodejs"],fn:D},{name:"times",category:"math",compatibility:["browser","nodejs"],fn:Qe}];import N from"fs";import Ze from"path";import Ke from"process";import Ve from"ent";import Xe from"handlebars";import{Remarkable as nr}from"remarkable";var G=function(n,e){typeof n=="object"&&n&&"fn"in n&&typeof n.fn=="function"?(e=n,n=n.fn(this)):typeof n!="string"&&(n="");let r={cwd:Ke.cwd(),...e},t=new nr({breaks:!0,html:!0,langPrefix:"lang-",typographer:!1,xhtmlOut:!1}),o=n;if(o&&o.length>0){let s=Ze.resolve(r.cwd,o);N.existsSync(s)&&N.statSync(s).isFile()&&(o=N.readFileSync(s,"utf8"))}return new Xe.SafeString(Ve.decode(t.render(o)))},Y=[{name:"md",category:"markdown",compatibility:["nodejs"],fn:G},{name:"markdown",category:"markdown",compatibility:["nodejs"],fn:G}];import er from"handlebars-helper-create-frame";import rr from"handlebars-utils";import tr from"kind-of";var or=er;function sr(n,e,r){return u(rr.options(this,e,r),n)}function ir(n){return n.fn(this)}var ar=tr;function cr(n){return n.hash&&Object.keys(n.hash).length?n.fn(n.hash):n.inverse(this)}var Q=[{name:"frame",category:"misc",compatibility:["browser","nodejs"],fn:or},{name:"option",category:"misc",compatibility:["browser","nodejs"],fn:sr},{name:"noop",category:"misc",compatibility:["browser","nodejs"],fn:ir},{name:"typeOf",category:"misc",compatibility:["browser","nodejs"],fn:ar},{name:"withHash",category:"misc",compatibility:["browser","nodejs"],fn:cr}];var h=n=>typeof n=="number"&&!Number.isNaN(n),pr=(n,e)=>{if(n==null)return"0 B";let r;if(typeof n=="string"){if(r=n.length,!r)return"0 B"}else if(h(n))r=Number(n);else if(typeof n.length=="number"){if(r=n.length,!r)return"0 B"}else return"0 B";let t=typeof e=="number"&&!Number.isNaN(e)?e:2,o=["B","kB","MB","GB","TB","PB","EB","ZB","YB"],s=10**t;for(let i=o.length-1;i>=0;i--){let c=10**(i*3);if(c<=r+1)return`${Math.round(r*s/c)/s} ${o[i]}`}return`${r}`},mr=n=>n.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g,"$1,"),lr=n=>{let e=n.toString();return`(${e.substr(0,3)}) ${e.substr(3,3)}-${e.substr(6,4)}`},yr=(n,e)=>{let r=h(n)?Number(n):0,o=10**(typeof e=="number"&&!Number.isNaN(e)?e:2),s=["k","m","b","t","q"];for(let i=s.length-1;i>=0;i--){let c=10**((i+1)*3);if(c<=r+1)return`${Math.round(r*o/c)/o}${s[i]}`}return`${r}`},gr=(n,e)=>{let r=h(n)?Number(n):0,t=typeof e=="number"&&!Number.isNaN(e)?e:0;return Number(r).toExponential(t)},fr=(n,e)=>{let r=h(n)?Number(n):0,t=typeof e=="number"&&!Number.isNaN(e)?e:0;return Number(r).toFixed(t)},ur=n=>parseFloat(String(n)),br=n=>parseInt(String(n),10),dr=(n,e)=>{let r=h(n)?Number(n):0,t=typeof e=="number"&&!Number.isNaN(e)?e:1;return Number(r).toPrecision(t)},Z=[{name:"bytes",category:"number",compatibility:["browser","nodejs"],fn:pr},{name:"addCommas",category:"number",compatibility:["browser","nodejs"],fn:mr},{name:"phoneNumber",category:"number",compatibility:["browser","nodejs"],fn:lr},{name:"toAbbr",category:"number",compatibility:["browser","nodejs"],fn:yr},{name:"toExponential",category:"number",compatibility:["browser","nodejs"],fn:gr},{name:"toFixed",category:"number",compatibility:["browser","nodejs"],fn:fr},{name:"toFloat",category:"number",compatibility:["browser","nodejs"],fn:ur},{name:"toInt",category:"number",compatibility:["browser","nodejs"],fn:br},{name:"toPrecision",category:"number",compatibility:["browser","nodejs"],fn:dr}];var k=n=>!!(n&&typeof n=="object"&&"hash"in n),K=(n,e)=>({...n?.data||{},...e}),hr=(...n)=>{let e=[...n];if(e.length&&k(e[e.length-1])){let t=e.pop();e.push(t.hash)}let r={};for(let t of e)t&&typeof t=="object"&&!Array.isArray(t)&&Object.assign(r,t);return r},wr=(n,e)=>{if(!k(e))return e?.inverse?.(n)??"";let r=K(e,e.hash||{}),t="";for(let o in n)r.key=o,t+=e.fn(n[o],{data:r});return t},jr=(n,e)=>{if(!k(e))return e?.inverse?.(n)??"";let r=K(e,e.hash||{}),t="";for(let o in n)Object.hasOwn(n,o)&&(r.key=o,t+=e.fn(n[o],{data:r}));return t},kr=(...n)=>{let e=[];for(let r of n)(typeof r=="string"||typeof r=="number")&&e.push(r);return e.join(".")},Hr=(n,e,r)=>{let t=u(e,n);return r&&typeof r.fn=="function"?t?r.fn(t):r.inverse?.(e):t},xr=(n,e)=>A(e,n),Or=(n,e)=>Object.hasOwn(n,e),Ar=n=>!!n&&typeof n=="object"&&!Array.isArray(n),V=n=>JSON.parse(n),X=(n,e)=>JSON.stringify(n,null,typeof e=="number"?e:0),Nr=(n,...e)=>{let r=[n,...e];if(r.length&&k(r[r.length-1])){let t=r.pop();r.push(t.hash)}return Object.assign(...r)},$r=V,Rr=X,Sr=(n,e,r)=>{let t=g(n),o={};for(let s of t)o=Object.assign({},o,A(e,s));return r&&typeof r.fn=="function"?Object.keys(o).length?r.fn(o):r.inverse?.(e):o},nn=[{name:"extend",category:"object",compatibility:["browser","nodejs"],fn:hr},{name:"forIn",category:"object",compatibility:["browser","nodejs"],fn:wr},{name:"forOwn",category:"object",compatibility:["browser","nodejs"],fn:jr},{name:"toPath",category:"object",compatibility:["browser","nodejs"],fn:kr},{name:"get",category:"object",compatibility:["browser","nodejs"],fn:Hr},{name:"getObject",category:"object",compatibility:["browser","nodejs"],fn:xr},{name:"hasOwn",category:"object",compatibility:["browser","nodejs"],fn:Or},{name:"isObject",category:"object",compatibility:["browser","nodejs"],fn:Ar},{name:"JSONparse",category:"object",compatibility:["browser","nodejs"],fn:V},{name:"JSONstringify",category:"object",compatibility:["browser","nodejs"],fn:X},{name:"merge",category:"object",compatibility:["browser","nodejs"],fn:Nr},{name:"parseJSON",category:"object",compatibility:["browser","nodejs"],fn:$r},{name:"pick",category:"object",compatibility:["browser","nodejs"],fn:Sr},{name:"stringify",category:"object",compatibility:["browser","nodejs"],fn:Rr}];import m from"path";var Er=(n,e,r)=>{let t=Object.prototype.toString.call(r).slice(8,-1).toLowerCase();return`Expected ${n} to be of type ${e}, but got ${t}`},p=(n,e)=>{if(typeof e!="string")throw new TypeError(Er(n,"string",e));return e},Fr=function(n,e){let r=p("filepath",n),t=e?.data?.root?.cwd??this?.cwd??process.cwd();return m.resolve(t,r)},Tr=n=>{let e=p("filepath",n);return m.dirname(e)},Br=(n,e)=>{let r=p("first path",n),t=p("second path",e);return m.relative(m.dirname(r),t)},_r=n=>{let e=p("filepath",n);return m.basename(e)},Mr=n=>{let e=p("filepath",n);return m.basename(e,m.extname(e))},Cr=n=>{let e=p("filepath",n);return m.extname(e)},zr=function(n,...e){let r,t=e[e.length-1];typeof t=="object"&&t&&"data"in t&&(r=e.pop());let s=[r?.data?.root?.cwd??this?.cwd??process.cwd(),p("filepath",n),...e.map((i,c)=>p(`path${c}`,i))];return m.resolve(...s)},Lr=(n,e,r)=>{let t=p("filepath",n),o=Number(e),s=Number(r);return t.split(/[\\/]+/).slice(o,s).join("/")},en=[{name:"absolute",category:"path",compatibility:["nodejs"],fn:Fr},{name:"dirname",category:"path",compatibility:["nodejs"],fn:Tr},{name:"relative",category:"path",compatibility:["nodejs"],fn:Br},{name:"basename",category:"path",compatibility:["nodejs"],fn:_r},{name:"stem",category:"path",compatibility:["nodejs"],fn:Mr},{name:"extname",category:"path",compatibility:["nodejs"],fn:Cr},{name:"resolve",category:"path",compatibility:["nodejs"],fn:zr},{name:"segments",category:"path",compatibility:["nodejs"],fn:Lr}];import Pr from"handlebars-utils";var Ur=(n,e,r)=>{let t=Pr.options({},e,r);return new RegExp(n,t.flags)},Ir=(n,e)=>{if(typeof n!="string")return!1;if(!(e instanceof RegExp))throw new TypeError("expected a regular expression");return e.test(n)},rn=[{name:"toRegex",category:"regex",compatibility:["browser","nodejs"],fn:Ur},{name:"test",category:"regex",compatibility:["browser","nodejs"],fn:Ir}];var tn=n=>n.trim().replace(/^[-_.\W\s]+|[-_.\W\s]+$/g,""),b=(n,e)=>n.length===1?n.toLowerCase():tn(n).toLowerCase().replace(/[-_.\W\s]+(\w|$)/g,(t,o)=>e(o)),vr=(n,e)=>typeof n=="string"&&typeof e=="string"?n+e:n,Jr=n=>typeof n=="string"?b(n,e=>e.toUpperCase()):"",on=n=>typeof n!="string"||n.length===0?"":n.charAt(0).toUpperCase()+n.slice(1),qr=n=>typeof n!="string"?"":n.replace(/\w\S*/g,e=>on(e)),Dr=(n,e)=>{if(typeof n!="string")return"";let r="";for(let t=0;t<e;t++)r+="&nbsp;";return r+n+r},Wr=n=>typeof n=="string"?tn(n):"",Gr=n=>typeof n=="string"?b(n,e=>`-${e}`):"",Yr=n=>typeof n=="string"?b(n,e=>`.${e}`):"",sn=(n,e,r)=>typeof n=="string"?(typeof r!="string"&&(r=""),n.length>e?n.slice(0,e-r.length)+r:n):"",Qr=(n,e)=>typeof n=="string"?n.length<=e?n:`${sn(n,e)}\u2026`:"",Zr=n=>typeof n=="string"?n.split(" ").join("-"):"",Kr=n=>typeof n=="string",an=n=>typeof n=="object"&&n!==null&&"fn"in n&&typeof n.fn=="function"?String(n.fn()).toLowerCase():typeof n!="string"?"":n.toLowerCase(),Vr=(...n)=>an(...n),Xr=(n,e)=>{if(typeof n!="string")return"";let r=e.length,t=n.indexOf(e,0),o=0;for(;t>-1;)o++,t=n.indexOf(e,t+r);return o},nt=n=>{if(typeof n!="string")return"";let e=b(n,r=>r.toUpperCase());return e.charAt(0).toUpperCase()+e.slice(1)},et=n=>typeof n=="string"?b(n,e=>`/${e}`):"",rt=(n,e)=>typeof n!="string"?"":(typeof e!="string"&&(e=" "),n.split(e).join("+")),tt=(n,e)=>typeof n=="string"&&typeof e=="string"?e+n:n,ot=(n,e)=>typeof n!="string"?"":typeof e!="string"?n:n.split(e).join(""),st=(n,e)=>typeof n!="string"?"":typeof e!="string"?n:n.replace(e,""),it=(n,e,r)=>typeof n!="string"?"":typeof e!="string"?n:(typeof r!="string"&&(r=""),n.split(e).join(r)),at=(n,e,r)=>typeof n!="string"?"":typeof e!="string"?n:(typeof r!="string"&&(r=""),n.replace(e,r)),ct=n=>typeof n=="string"?n.split("").reverse().join(""):"",pt=n=>typeof n!="string"?"":n.replace(/((?:\S[^.?!]*)[.?!]*)/g,e=>e.charAt(0).toUpperCase()+e.substr(1).toLowerCase()),mt=n=>typeof n=="string"?b(n,e=>`_${e}`):"",lt=n=>typeof n=="string"?n.trim():"",yt=n=>typeof n=="string"?n.replace(/^\s+/,""):"",gt=n=>typeof n=="string"?n.replace(/\s+$/,""):"",ft=(n,e,r)=>{if(typeof n=="string"&&typeof e=="number"&&Number.isFinite(e)){typeof r!="string"&&(r="...");let t=Math.trunc(e),o=n.split(" ");return t<o.length&&(o=o.slice(0,t)),o.join(" ").trim()+r}return""},ut=ft,cn=n=>typeof n=="object"&&n!==null&&"fn"in n&&typeof n.fn=="function"?String(n.fn()).toUpperCase():typeof n!="string"?"":n.toUpperCase(),bt=(...n)=>cn(...n),pn=[{name:"append",category:"string",compatibility:["browser","nodejs"],fn:vr},{name:"camelcase",category:"string",compatibility:["browser","nodejs"],fn:Jr},{name:"capitalize",category:"string",compatibility:["browser","nodejs"],fn:on},{name:"capitalizeAll",category:"string",compatibility:["browser","nodejs"],fn:qr},{name:"center",category:"string",compatibility:["browser","nodejs"],fn:Dr},{name:"chop",category:"string",compatibility:["browser","nodejs"],fn:Wr},{name:"dashcase",category:"string",compatibility:["browser","nodejs"],fn:Gr},{name:"dotcase",category:"string",compatibility:["browser","nodejs"],fn:Yr},{name:"ellipsis",category:"string",compatibility:["browser","nodejs"],fn:Qr},{name:"hyphenate",category:"string",compatibility:["browser","nodejs"],fn:Zr},{name:"isString",category:"string",compatibility:["browser","nodejs"],fn:Kr},{name:"lowercase",category:"string",compatibility:["browser","nodejs"],fn:an},{name:"downcase",category:"string",compatibility:["browser","nodejs"],fn:Vr},{name:"occurrences",category:"string",compatibility:["browser","nodejs"],fn:Xr},{name:"pascalcase",category:"string",compatibility:["browser","nodejs"],fn:nt},{name:"pathcase",category:"string",compatibility:["browser","nodejs"],fn:et},{name:"plusify",category:"string",compatibility:["browser","nodejs"],fn:rt},{name:"prepend",category:"string",compatibility:["browser","nodejs"],fn:tt},{name:"remove",category:"string",compatibility:["browser","nodejs"],fn:ot},{name:"removeFirst",category:"string",compatibility:["browser","nodejs"],fn:st},{name:"replace",category:"string",compatibility:["browser","nodejs"],fn:it},{name:"replaceFirst",category:"string",compatibility:["browser","nodejs"],fn:at},{name:"reverse",category:"string",compatibility:["browser","nodejs"],fn:ct},{name:"sentence",category:"string",compatibility:["browser","nodejs"],fn:pt},{name:"snakecase",category:"string",compatibility:["browser","nodejs"],fn:mt},{name:"trim",category:"string",compatibility:["browser","nodejs"],fn:lt},{name:"trimLeft",category:"string",compatibility:["browser","nodejs"],fn:yt},{name:"trimRight",category:"string",compatibility:["browser","nodejs"],fn:gt},{name:"truncate",category:"string",compatibility:["browser","nodejs"],fn:sn},{name:"truncateWords",category:"string",compatibility:["browser","nodejs"],fn:ut},{name:"uppercase",category:"string",compatibility:["browser","nodejs"],fn:cn},{name:"upcase",category:"string",compatibility:["browser","nodejs"],fn:bt}];import{escape as dt}from"querystring";import{format as ht,parse as mn,resolve as wt}from"url";var w=["browser","nodejs"],ln=n=>{if(typeof n=="string")return encodeURIComponent(n)},jt=n=>{if(typeof n=="string")return dt(n)},yn=n=>{if(typeof n=="string")return decodeURIComponent(n)};function kt(...n){return ln.apply(this,n)}function Ht(...n){return yn.apply(this,n)}var xt=(n,e)=>wt(String(n),String(e)),Ot=n=>mn(String(n)),At=n=>{if(typeof n=="string")return n.split("?")[0]},Nt=n=>{if(typeof n=="string"){let e=mn(n);return e.protocol="",ht(e)}},gn=[{name:"encodeURI",category:"url",compatibility:w,fn:ln},{name:"escape",category:"url",compatibility:["nodejs"],fn:jt},{name:"decodeURI",category:"url",compatibility:w,fn:yn},{name:"url_encode",category:"url",compatibility:w,fn:kt},{name:"url_decode",category:"url",compatibility:w,fn:Ht},{name:"urlResolve",category:"url",compatibility:["nodejs"],fn:xt},{name:"urlParse",category:"url",compatibility:["nodejs"],fn:Ot},{name:"stripQuerystring",category:"url",compatibility:w,fn:At},{name:"stripProtocol",category:"url",compatibility:["nodejs"],fn:Nt}];var d=class{_helpers=[];constructor(){this.init()}get helpers(){return this._helpers}init(){this.registerHelpers($),this.registerHelpers(E),this.registerHelpers(_),this.registerHelpers(M),this.registerHelpers(S),this.registerHelpers(Y),this.registerHelpers(z),this.registerHelpers(T),this.registerHelpers(L),this.registerHelpers(P),this.registerHelpers(U),this.registerHelpers(J),this.registerHelpers(W),this.registerHelpers(Q),this.registerHelpers(Z),this.registerHelpers(en),this.registerHelpers(rn),this.registerHelpers(pn),this.registerHelpers(gn),this.registerHelpers(nn)}register(e){return this.has(e.name)||this._helpers.push(e),!1}registerHelpers(e){for(let r of e)this.register(r)}has(e){return this._helpers.some(r=>r.name===e)}filter(e){let r=this._helpers;return e.names&&(r=r.filter(t=>e.names?.includes(t.name))),e.categories&&(r=r.filter(t=>e.categories?.includes(t.category))),e.compatibility&&(r=r.filter(t=>t.compatibility?.some(o=>e.compatibility?.includes(o)))),r}load(e,r){let t=this._helpers;r&&(t=this.filter(r));for(let o of t)e.registerHelper(o.name,o.fn)}swap(e){for(let r of this._helpers)e.unregisterHelper(r.name),e.registerHelper(r.name,r.fn)}};var Vo=y,Xo=y.create();function ns(n){new d().load(n.handlebars??n.hbs)}async function es(){let n=new d,e=y.create();return Object.keys(y.partials).length>0&&e.registerPartial(y.partials),n.load(e),process.env.NODE_ENV==="development"&&console.warn("createHandlebars will be deprecated in future versions, use `fumanchu` instead."),e}function rs(n){let e=new d,r=y.create();return n?.handlebars?r=n.handlebars:Object.keys(y.partials).length>0&&r.registerPartial(y.partials),e.load(r),r}export{Vo as Handlebars,d as HelperRegistry,es as createHandlebars,rs as fumanchu,Xo as handlebars,ns as helpers};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@jaredwray/fumanchu",
3
3
  "description": "Handlebars + Helpers = Fumanchu",
4
- "version": "4.1.0",
4
+ "version": "4.2.0",
5
5
  "homepage": "https://github.com/jaredwray/fumanchu",
6
6
  "author": "Jared Wray (me@jaredwray.com)",
7
7
  "type": "module",