@jaredwray/fumanchu 4.7.1 → 4.7.2
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.browser.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let c=require("@cacheable/memory"),l=require("handlebars");l=s(l,1);let u=require("chrono-node"),d=require("dayjs");d=s(d,1);let f=require("dayjs/plugin/isBetween.js");f=s(f,1);let p=require("dayjs/plugin/relativeTime.js");p=s(p,1);let m=require("dayjs/plugin/timezone.js");m=s(m,1);let h=require("dayjs/plugin/utc.js");h=s(h,1);let g=require("micromatch");g=s(g,1);let _=require("markdown-it");_=s(_,1);var ee=class{_helpers=[];constructor(){this.init()}get helpers(){return this._helpers}init(){}register(e){return this.has(e.name)?!1:(this._helpers.push(e),!0)}registerHelpers(e){for(let t of e)this.register(t)}has(e){return this._helpers.some(t=>t.name===e)}filter(e){let t=this._helpers;if(e.names){let n=e.names;t=t.filter(e=>n.includes(e.name))}if(e.categories){let n=e.categories;t=t.filter(e=>n.includes(e.category))}if(e.compatibility){let n=e.compatibility;t=t.filter(e=>e.compatibility?.some(e=>n.includes(e)))}return t}load(e,t){let n=this._helpers;t&&(n=this.filter(t));for(let t of n)e.registerHelper(t.name,t.fn)}swap(e){for(let t of this._helpers)e.registerHelper(t.name,t.fn)}};const te=(e,t)=>Array.isArray(e)?e.slice(t):[],ne=(e,t)=>Array.isArray(e)?e.slice(0,-t):[],v=e=>e==null?[]:Array.isArray(e)?e:[e],re=(e,t)=>{if(Array.isArray(e))return typeof t==`number`?e.slice(0,t):e[0]},ie=(e,t)=>{if(!Array.isArray(e)&&typeof e!=`string`)return;if(typeof t!=`number`){let t=e;return t[t.length-1]}let n=Math.abs(t);return e.slice(-n)},y=e=>e&&typeof e==`object`&&!Array.isArray(e)?Object.keys(e).length:typeof e==`string`||Array.isArray(e)?e.length:0,ae=[{name:`after`,category:`array`,compatibility:[`browser`,`nodejs`],fn:te},{name:`before`,category:`array`,compatibility:[`browser`,`nodejs`],fn:ne},{name:`arrayify`,category:`array`,compatibility:[`browser`,`nodejs`],fn:v},{name:`first`,category:`array`,compatibility:[`browser`,`nodejs`],fn:re},{name:`last`,category:`array`,compatibility:[`browser`,`nodejs`],fn:ie},{name:`length`,category:`array`,compatibility:[`browser`,`nodejs`],fn:y},{name:`join`,category:`array`,compatibility:[`browser`,`nodejs`],fn:(e,t=`, `)=>typeof e==`string`?e:Array.isArray(e)?e.join(t):``},{name:`forEach`,category:`array`,compatibility:[`browser`,`nodejs`],fn:function(e,t){if(!Array.isArray(e)||!t||typeof t.fn!=`function`)return t?.inverse?t.inverse(this)??``:``;if(e.length===0)return t.inverse?t.inverse(this)??``:``;let n=e.length,r=t.hash??{},i=t.data?{...t.data}:void 0,a=``;for(let o=0;o<n;o++){let s=e[o],c={index:o,total:n,isFirst:o===0,isLast:o===n-1},l={...i?{...i}:{},...r,...c},u;u=typeof s==`object`&&s?{...s,...r,...c}:{value:s,...r,...c},a+=t.fn(u,{data:l})}return a}},{name:`inArray`,category:`array`,compatibility:[`browser`,`nodejs`],fn:function(e,t,n){if(!Array.isArray(e)||!n)return``;let r=e.includes(t);return r&&n.fn?n.fn(this):!r&&n.inverse?n.inverse(this):``}},{name:`isArray`,category:`array`,compatibility:[`browser`,`nodejs`],fn:e=>Array.isArray(e)},{name:`itemAt`,category:`array`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{if(Array.isArray(e))return e[t]}},{name:`equalsLength`,category:`array`,compatibility:[`browser`,`nodejs`],fn:function(e,t,n){let r=y(e)===t;return n&&(n.fn||n.inverse)?r&&n.fn?n.fn(this):!r&&n.inverse?n.inverse(this):``:r}},{name:`some`,category:`array`,compatibility:[`browser`,`nodejs`],fn:function(e,t,n){if(!Array.isArray(e)||typeof t!=`function`||!n)return n?.inverse?n.inverse(this)??``:``;let r=e.some(t);return r&&n.fn?n.fn(this):!r&&n.inverse?n.inverse(this):``}},{name:`eachIndex`,category:`array`,compatibility:[`browser`,`nodejs`],fn:function(e,t){if(!Array.isArray(e)||!t||typeof t.fn!=`function`)return t?.inverse?t.inverse(this)??``:``;if(e.length===0)return t.inverse?t.inverse(this)??``:``;let n=``;for(let r=0;r<e.length;r++){let i={item:e[r],index:r};n+=t.fn(i)}return n}},{name:`withAfter`,category:`array`,compatibility:[`browser`,`nodejs`],fn:function(e,t,n){if(!Array.isArray(e)||!n||typeof n.fn!=`function`)return``;let r=e.slice(t+1);if(r.length===0)return n.inverse?n.inverse(this)??``:``;let i=``;for(let e of r)i+=n.fn(e);return i}},{name:`withBefore`,category:`array`,compatibility:[`browser`,`nodejs`],fn:function(e,t,n){if(!Array.isArray(e)||!n||typeof n.fn!=`function`)return``;let r=e.slice(0,t);if(r.length===0)return n.inverse?n.inverse(this)??``:``;let i=``;for(let e of r)i+=n.fn(e);return i}},{name:`withFirst`,category:`array`,compatibility:[`browser`,`nodejs`],fn:function(e,t,n){let r=1,i=n;if(typeof t==`object`&&t&&!Array.isArray(t)?i=t:typeof t==`number`&&(r=t),!Array.isArray(e)||!i||typeof i.fn!=`function`)return``;if(e.length===0)return i.inverse?i.inverse(this)??``:``;let a=e.slice(0,r),o=``;for(let e of a)o+=i.fn(e);return o}},{name:`withLast`,category:`array`,compatibility:[`browser`,`nodejs`],fn:function(e,t,n){let r=1,i=n;if(typeof t==`object`&&t&&!Array.isArray(t)?i=t:typeof t==`number`&&(r=t),!Array.isArray(e)||!i||typeof i.fn!=`function`)return``;if(e.length===0)return i.inverse?i.inverse(this)??``:``;let a=e.slice(-r),o=``;for(let e of a)o+=i.fn(e);return o}},{name:`withGroup`,category:`array`,compatibility:[`browser`,`nodejs`],fn:function(e,t,n){if(!Array.isArray(e)||typeof t!=`number`||t<=0||!n||typeof n.fn!=`function`)return``;if(e.length===0)return n.inverse?n.inverse(this)??``:``;let r=``,i=[];for(let n=0;n<e.length;n+=t)i.push(e.slice(n,n+t));for(let e of i)r+=n.fn(e);return r}},{name:`withSort`,category:`array`,compatibility:[`browser`,`nodejs`],fn:function(e,t,n){let r,i=n;if(typeof t==`object`&&t&&!Array.isArray(t)?i=t:typeof t==`string`&&(r=t),!Array.isArray(e)||!i||typeof i.fn!=`function`)return``;if(e.length===0)return i.inverse?i.inverse(this)??``:``;let a=[...e];r?a.sort((e,t)=>{let n=e?.[r],i=t?.[r];return n===i?0:n==null?1:i==null?-1:typeof n==`string`&&typeof i==`string`?n.localeCompare(i):n<i?-1:1}):a.sort((e,t)=>e===t?0:e==null?1:t==null?-1:typeof e==`string`&&typeof t==`string`?e.localeCompare(t):e<t?-1:1),(i.hash?.reverse===!0||i.hash?.reverse===`true`)&&a.reverse();let o=``;for(let e of a)o+=i.fn(e);return o}},{name:`filter`,category:`array`,compatibility:[`browser`,`nodejs`],fn:function(e,t,n){if(!Array.isArray(e)||!n)return n?.inverse?n.inverse(this)??``:``;let r=e.filter(e=>e===t);return r.length>0&&n.fn?n.fn(this):r.length===0&&n.inverse?n.inverse(this):``}},{name:`map`,category:`array`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>!Array.isArray(e)||typeof t!=`function`?[]:e.map(t)},{name:`pluck`,category:`array`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>!Array.isArray(e)||typeof t!=`string`?[]:e.map(e=>{if(typeof e!=`object`||!e)return;let n=t.split(`.`),r=e;for(let e of n){if(typeof r!=`object`||!r)return;r=r[e]}return r})},{name:`reverse`,category:`array`,compatibility:[`browser`,`nodejs`],fn:e=>{if(typeof e==`string`)return e.split(``).reverse().join(``);if(Array.isArray(e))return[...e].reverse()}},{name:`sort`,category:`array`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{if(!Array.isArray(e))return[];let n=[...e];return typeof t==`function`?n.sort(t):typeof t==`string`?n.sort((e,n)=>{let r=e?.[t],i=n?.[t];return r===i?0:r==null?1:i==null?-1:typeof r==`string`&&typeof i==`string`?r.localeCompare(i):r<i?-1:1}):n.sort((e,t)=>e===t?0:e==null?1:t==null?-1:typeof e==`string`&&typeof t==`string`?e.localeCompare(t):e<t?-1:1),n}},{name:`sortBy`,category:`array`,compatibility:[`browser`,`nodejs`],fn:(e,...t)=>{if(!Array.isArray(e)||t.length===0)return[];let n=[...e];return n.sort((e,n)=>{for(let r of t){let t=e?.[r],i=n?.[r];if(t!==i){if(t==null)return 1;if(i==null)return-1;if(typeof t==`string`&&typeof i==`string`){let e=t.localeCompare(i);if(e!==0)return e}else return t<i?-1:1}}return 0}),n}},{name:`unique`,category:`array`,compatibility:[`browser`,`nodejs`],fn:function(e,t){if(!Array.isArray(e))return t?t.inverse?t.inverse(this)??``:``:[];let n=[...new Set(e)];if(!t)return n;if(n.length===0&&t.inverse)return t.inverse(this);if(n.length>0&&t.fn){let e=``;for(let r of n)e+=t.fn(r);return e}return``}}],oe=e=>e!==void 0&&(e===`/`||e===`!`||e===`?`||/[a-zA-Z]/.test(e)),se=e=>{let t=``,n=!1,r=!1,i=null;for(let a=0;a<e.length;a++){let o=e[a];if(r){o===`-`&&e[a+1]===`-`&&e[a+2]===`>`&&(r=!1,a+=2);continue}if(n){i?o===i&&(i=null):o===`"`||o===`'`?i=o:o===`>`&&(n=!1);continue}if(o===`<`){if(e[a+1]===`!`&&e[a+2]===`-`&&e[a+3]===`-`){r=!0,a+=3;continue}if(oe(e[a+1])){n=!0;continue}}t+=o}return t},ce=new Set([`area`,`base`,`br`,`col`,`command`,`embed`,`hr`,`img`,`input`,`keygen`,`link`,`meta`,`param`,`source`,`track`,`wbr`,`circle`,`ellipse`,`line`,`path`,`polygon`,`polyline`,`rect`,`stop`,`use`]),b=(e,t={},n=``)=>{let r=`<${e}`;for(let[e,n]of Object.entries(t))n===!0?r+=` ${e}`:(typeof n==`string`||typeof n==`number`)&&(r+=` ${e}="${le(String(n))}"`);return ce.has(e.toLowerCase())?`${r}>`:`${r}>${ue(n)}</${e}>`},le=e=>e.replace(/&/g,`&`).replace(/"/g,`"`).replace(/</g,`<`).replace(/>/g,`>`),ue=e=>e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`),x=(e={})=>Object.keys(e).map(t=>`${t}="${String(e[t]).replace(/^['"]|["']$/g,``)}"`).join(` `),de=[{name:`attr`,category:`html`,compatibility:[`browser`,`nodejs`],fn:e=>{let t=x(e?.hash??{});return t.trim()?` ${t}`:``}},{name:`sanitize`,category:`html`,compatibility:[`browser`,`nodejs`],fn:e=>typeof e==`string`?se(e).trim():``},{name:`ul`,category:`html`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{let n=x(t.hash??{}),r=e.map(e=>typeof e==`string`?e:t.fn(e));return`${n?`<ul ${n}>`:`<ul>`}${r.map(e=>`<li>${e}</li>`).join(`
|
|
2
2
|
`)}</ul>`}},{name:`ol`,category:`html`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{let n=x(t.hash??{}),r=e.map(e=>typeof e==`string`?e:t.fn(e));return`${n?`<ol ${n}>`:`<ol>`}${r.map(e=>`<li>${e}</li>`).join(`
|
|
3
|
-
`)}</ol>`}},{name:`thumbnailImage`,category:`html`,compatibility:[`browser`,`nodejs`],fn:e=>{let t=``,n=``,r=e.full||!1,i={alt:e.alt,src:e.thumbnail,width:e.size.width,height:e.size.height},a={id:`image-${e.id}`},o={href:r,rel:`thumbnail`};return e.classes&&(e.classes.image&&(i.class=e.classes.image.join(` `)),e.classes.figure&&(a.class=e.classes.figure.join(` `)),e.classes.link&&(o.class=e.classes.link.join(` `))),t+=`<figure ${x(a)}>\n`,n+=`<img ${x(i)}>\n`,r?t+=`<a ${x(o)}>\n${n}</a>\n`:t+=n,e.caption&&(t+=`<figcaption>${e.caption}</figcaption>\n`),t+=`</figure>`,t}}],fe=[{name:`gist`,category:`code`,compatibility:[`browser`,`nodejs`],fn:e=>b(`script`,{src:`https://gist.github.com/${e}.js`})},{name:`jsfiddle`,category:`code`,compatibility:[`browser`,`nodejs`],fn:e=>{if(!e?.id)throw Error("jsfiddle helper expects an `id`");let{id:t,width:n=`100%`,height:r=`300`,skin:i=`/presentation/`,tabs:a=`result,js,html,css`,allowfullscreen:o=`allowfullscreen`,frameborder:s=`0`}=e;return b(`iframe`,{width:n,height:r,src:`http://jsfiddle.net/${t}/embedded/${a}${i}`,allowfullscreen:o,frameborder:s})}}],pe=[{name:`isEmpty`,category:`collection`,compatibility:[`browser`,`nodejs`],fn:e=>e==null?!0:Array.isArray(e)?e.length===0:typeof e==`object`?Object.keys(e).length===0:!1},{name:`iterate`,category:`collection`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{if(Array.isArray(e)){let n=``;for(let r=0;r<e.length;r++)n+=t(e[r],r);return n}if(e&&typeof e==`object`){let n=``;for(let r of Object.keys(e))n+=t(e[r],r);return n}return n?n():``}}],me=(...e)=>e.every(Boolean),he=(e,t,n)=>{switch(t){case`==`:return e==n;case`===`:return e===n;case`!=`:return e!=n;case`!==`:return e!==n;case`<`:return e<n;case`>`:return e>n;case`<=`:return e<=n;case`>=`:return e>=n;case`typeof`:return typeof e===n;default:throw Error(`helper {{compare}}: invalid operator: '${t}'`)}},ge=(e,t,n=0)=>e==null?!1:typeof e==`string`||Array.isArray(e)?e.indexOf(t,n)>-1:typeof e==`object`?t in e:!1,_e=(...e)=>{for(let t of e)if(t!=null)return t;return``},ve=(e,t)=>e===t,ye=(e,t)=>e>t,be=(e,t)=>e>=t,xe=(e,t)=>e==null||t==null?!1:Array.isArray(e)||typeof e==`string`?e.indexOf(t)>-1:typeof e==`object`?t in e:!1,S=(e,t)=>{if(!e)return!0;let n=Array.isArray(t)?t:t==null?[`0`,`false`,`nada`,`nil`,`nay`,`nah`,`negative`,`no`,`none`,`nope`,`nul`,`null`,`nix`,`nyet`,`uh-uh`,`veto`,`zero`]:[t],r=typeof e==`string`?e.toLowerCase():null;for(let t of n)if(t===e||r!=null&&t===r)return!0;return!1},Se=[{name:`and`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:me},{name:`compare`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:he},{name:`contains`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:ge},{name:`default`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:_e},{name:`eq`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:ve},{name:`gt`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:ye},{name:`gte`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:be},{name:`has`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:xe},{name:`isFalsey`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:e=>S(e)},{name:`isTruthy`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:e=>!S(e)},{name:`ifEven`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:e=>typeof e==`number`&&e%2==0},{name:`ifNth`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>typeof e==`number`&&typeof t==`number`&&t%e===0},{name:`ifOdd`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:e=>typeof e==`number`&&Math.abs(e%2)===1},{name:`is`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>e==t},{name:`isnt`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>e!=t},{name:`lt`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>e<t},{name:`lte`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>e<=t},{name:`neither`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>!e&&!t},{name:`not`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:e=>!e},{name:`or`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(...e)=>e.some(Boolean)},{name:`unlessEq`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>e!==t},{name:`unlessGt`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>e<=t},{name:`unlessLt`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>e>=t},{name:`unlessGteq`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>e<t},{name:`unlessLteq`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>e>t}];d.default.extend(p.default),d.default.extend(f.default),d.default.extend(h.default),d.default.extend(m.default);const C=e=>{if(!e)return(0,d.default)();if(typeof e==`string`){let t=(0,u.parseDate)(e);return t?(0,d.default)(t):(0,d.default)(e)}return(0,d.default)(e)},Ce=()=>new Date().getFullYear().toString(),w=e=>e.replace(/yyyy/g,`YYYY`).replace(/yy/g,`YY`).replace(/dd/g,`DD`).replace(/mm/g,`MM`).replace(/hh/g,`HH`),T=(e,t)=>{let n=t||`YYYY-MM-DD`,r=C(e);if(!r.isValid())throw Error(`Unable to parse date: ${e}`);let i=w(n);return r.format(i)},we=()=>Date.now().toString(),Te=e=>{let t=w(e||`YYYY-MM-DD HH:mm:ss`);return(0,d.default)().format(t)},E=e=>{let t=C(e);if(!t.isValid())throw Error(`Unable to parse date: ${e}`);return t.fromNow()},Ee=[{name:`year`,category:`date`,compatibility:[`browser`,`nodejs`],fn:Ce},{name:`date`,category:`date`,compatibility:[`browser`,`nodejs`],fn:T},{name:`moment`,category:`date`,compatibility:[`browser`,`nodejs`],fn:T},{name:`timestamp`,category:`date`,compatibility:[`browser`,`nodejs`],fn:we},{name:`now`,category:`date`,compatibility:[`browser`,`nodejs`],fn:Te},{name:`fromNow`,category:`date`,compatibility:[`browser`,`nodejs`],fn:E},{name:`toNow`,category:`date`,compatibility:[`browser`,`nodejs`],fn:e=>{let t=C(e);if(!t.isValid())throw Error(`Unable to parse date: ${e}`);return t.toNow()}},{name:`ago`,category:`date`,compatibility:[`browser`,`nodejs`],fn:e=>E(e)},{name:`dateAdd`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{let r=C(e);if(!r.isValid())throw Error(`Unable to parse date: ${e}`);return r.add(t,n).format(`YYYY-MM-DD HH:mm:ss`)}},{name:`dateSubtract`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{let r=C(e);if(!r.isValid())throw Error(`Unable to parse date: ${e}`);return r.subtract(t,n).format(`YYYY-MM-DD HH:mm:ss`)}},{name:`startOf`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{let n=C(e);if(!n.isValid())throw Error(`Unable to parse date: ${e}`);return n.startOf(t).format(`YYYY-MM-DD HH:mm:ss`)}},{name:`endOf`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{let n=C(e);if(!n.isValid())throw Error(`Unable to parse date: ${e}`);return n.endOf(t).format(`YYYY-MM-DD HH:mm:ss`)}},{name:`isBefore`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{let n=C(e),r=C(t);if(!n.isValid()||!r.isValid())throw Error(`Unable to parse dates: ${e}, ${t}`);return n.isBefore(r)}},{name:`isAfter`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{let n=C(e),r=C(t);if(!n.isValid()||!r.isValid())throw Error(`Unable to parse dates: ${e}, ${t}`);return n.isAfter(r)}},{name:`isSame`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{let r=C(e),i=C(t);if(!r.isValid()||!i.isValid())throw Error(`Unable to parse dates: ${e}, ${t}`);return r.isSame(i,n)}},{name:`isBetween`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{let r=C(e),i=C(t),a=C(n);if(!r.isValid()||!i.isValid()||!a.isValid())throw Error(`Unable to parse dates: ${e}, ${t}, ${n}`);return r.isBetween(i,a,null,`[]`)}},{name:`diff`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{let r=C(e),i=C(t);if(!r.isValid()||!i.isValid())throw Error(`Unable to parse dates: ${e}, ${t}`);return r.diff(i,n)}},{name:`toISOString`,category:`date`,compatibility:[`browser`,`nodejs`],fn:e=>{let t=C(e);if(!t.isValid())throw Error(`Unable to parse date: ${e}`);return t.toISOString()}},{name:`dateTimezone`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{let r=w(n||`YYYY-MM-DD HH:mm:ss`),i=C(e);if(!i.isValid())throw Error(`Unable to parse date: ${e}`);return i.tz(t).format(r)}},{name:`dateLocale`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{let r=w(n||`YYYY-MM-DD HH:mm:ss`),i=C(e);if(!i.isValid())throw Error(`Unable to parse date: ${e}`);return i.locale(t).format(r)}}],D=(e,t)=>{if(!e||typeof e!=`object`)return;let n=Array.isArray(t)?t:t.split(`.`),r=e;for(let e of n){if(typeof r!=`object`||!r)return;r=r[e]}return r},O=(e,t)=>{if(!e||typeof e!=`object`)return;let n=Array.isArray(t)?t:t.split(`.`);if(n.length===0)return;let r=e;for(let e=0;e<n.length-1;e++){if(typeof r!=`object`||!r)return;r=r[n[e]]}let i=n[n.length-1];if(!(typeof r!=`object`||!r||!(i in r)))return{[i]:r[i]}},k=(e,t,n)=>{let r={};return e&&typeof e==`object`&&e.options&&Object.assign(r,e.options),t&&typeof t==`object`&&(`hash`in t?Object.assign(r,t.hash):Object.assign(r,t)),n&&typeof n==`object`&&(`hash`in n?Object.assign(r,n.hash):Object.assign(r,n)),r},De=[{name:`i18n`,category:`i18n`,compatibility:[`browser`,`nodejs`],fn:function(e,t,n){if(t&&typeof t==`object`&&`hash`in t&&n===void 0&&(n=t,t={}),typeof e!=`string`)throw Error(`{{i18n}} helper expected "key" to be a string`);let r={...this,...t,...n?.hash??{}},i=r.language||r.lang;if(typeof i!=`string`)throw TypeError(`{{i18n}} helper expected "language" to be a string`);let a=r[i];if(a===void 0)throw Error(`{{i18n}} helper cannot find language "${i}"`);let o=D(a,e);if(o===void 0)throw Error(`{{i18n}} helper cannot find property "`+String(e)+`" for language "`+i+`"`);return String(o)}}],Oe=[{name:`inflect`,category:`inflection`,compatibility:[`browser`,`nodejs`],fn:(e,t,n,r)=>{let i=e>1||e===0?n:t;return r?`${e} ${i}`:i}},{name:`ordinalize`,category:`inflection`,compatibility:[`browser`,`nodejs`],fn:e=>{let t=Math.abs(Math.round(Number(e))),n=String(e),r=t%100;if([11,12,13].includes(r))return`${n}th`;switch(t%10){case 1:return`${n}st`;case 2:return`${n}nd`;case 3:return`${n}rd`;default:return`${n}th`}}}],A=(e,t,n)=>{let r=typeof t==`string`?t.split(/, */):t;return(0,g.default)(typeof e==`string`?[e]:e,r,n)},ke=[{name:`match`,category:`match`,compatibility:[`browser`,`nodejs`],fn:A},{name:`isMatch`,category:`match`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>g.default.isMatch(e,t,n)},{name:`mm`,category:`match`,compatibility:[`browser`,`nodejs`],fn:(...e)=>(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.`),A(...e))}],j=e=>typeof e==`number`&&!Number.isNaN(e)||typeof e==`string`&&e.trim()!==``&&!Number.isNaN(Number(e)),M=(e,t=`expected a number`)=>{if(j(e))return Number(e);throw TypeError(t)},Ae=e=>{let t=M(e);return Math.abs(t)},je=(e,t)=>j(e)&&j(t)?Number(e)+Number(t):``,Me=(...e)=>{let t=e.flat().map(e=>Number(e));return P(t)/t.length},Ne=e=>{let t=M(e);return Math.ceil(t)},Pe=(e,t)=>M(e,`expected the first argument to be a number`)/M(t,`expected the second argument to be a number`),Fe=e=>{let t=M(e);return Math.floor(t)},Ie=(e,t)=>M(e,`expected the first argument to be a number`)-M(t,`expected the second argument to be a number`),Le=(e,t)=>M(e,`expected the first argument to be a number`)%M(t,`expected the second argument to be a number`),N=(e,t)=>M(e,`expected the first argument to be a number`)*M(t,`expected the second argument to be a number`),Re=(e,t)=>M(e,`expected the first argument to be a number`)+M(t,`expected the second argument to be a number`),ze=(e,t)=>{let n=M(e,`expected minimum to be a number`),r=M(t,`expected maximum to be a number`);return n+Math.floor(Math.random()*(r-n+1))},Be=(e,t)=>e%t,Ve=e=>{let t=M(e);return Math.round(t)},He=(e,t)=>M(e,`expected the first argument to be a number`)-M(t,`expected the second argument to be a number`),P=(...e)=>{let t=e.flat(),n=0;for(let e of t)j(e)&&(n+=Number(e));return n},Ue=[{name:`abs`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Ae},{name:`add`,category:`math`,compatibility:[`browser`,`nodejs`],fn:je},{name:`avg`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Me},{name:`ceil`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Ne},{name:`divide`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Pe},{name:`floor`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Fe},{name:`minus`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Ie},{name:`modulo`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Le},{name:`multiply`,category:`math`,compatibility:[`browser`,`nodejs`],fn:N},{name:`plus`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Re},{name:`random`,category:`math`,compatibility:[`browser`,`nodejs`],fn:ze},{name:`remainder`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Be},{name:`round`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Ve},{name:`subtract`,category:`math`,compatibility:[`browser`,`nodejs`],fn:He},{name:`sum`,category:`math`,compatibility:[`browser`,`nodejs`],fn:P},{name:`times`,category:`math`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>N(e,t)}],We=new _.default({breaks:!0,html:!0,langPrefix:`lang-`,typographer:!1,xhtmlOut:!1});function Ge(e){return new l.default.SafeString(We.render(e))}const F=function(e,t){return typeof e==`object`&&e&&`fn`in e&&typeof e.fn==`function`?e=e.fn(this):typeof e!=`string`&&(e=``),Ge(e)},Ke=[{name:`md`,category:`markdown`,compatibility:[`browser`,`nodejs`],fn:F},{name:`markdown`,category:`markdown`,compatibility:[`browser`,`nodejs`],fn:F}],I=Object.prototype.toString;function L(e){return typeof e.constructor==`function`?e.constructor.name:null}function qe(e){return L(e)===`GeneratorFunction`}function Je(e){return typeof e.throw==`function`&&typeof e.return==`function`&&typeof e.next==`function`}function Ye(e){return typeof e.toDateString==`function`&&typeof e.getDate==`function`&&typeof e.setDate==`function`}function Xe(e){return typeof e.message==`string`&&e.constructor&&typeof e.constructor.stackTraceLimit==`number`}function Ze(e){return typeof e.flags==`string`&&typeof e.ignoreCase==`boolean`&&typeof e.multiline==`boolean`&&typeof e.global==`boolean`}function Qe(e){if(e===void 0)return`undefined`;if(e===null)return`null`;let t=typeof e;if(t===`boolean`)return`boolean`;if(t===`string`)return`string`;if(t===`number`)return`number`;if(t===`symbol`)return`symbol`;if(t===`bigint`)return`bigint`;if(t===`function`)return qe(e)?`generatorfunction`:`function`;if(Array.isArray(e))return`array`;if(typeof Buffer<`u`&&Buffer.isBuffer?.(e))return`buffer`;if(typeof e.length==`number`&&I.call(e)===`[object Arguments]`)return`arguments`;if(e instanceof Date||Ye(e))return`date`;if(e instanceof Error||Xe(e))return`error`;if(e instanceof RegExp||Ze(e))return`regexp`;switch(L(e)){case`Promise`:return`promise`;case`WeakMap`:return`weakmap`;case`WeakSet`:return`weakset`;case`Map`:return`map`;case`Set`:return`set`;case`Int8Array`:return`int8array`;case`Uint8Array`:return`uint8array`;case`Uint8ClampedArray`:return`uint8clampedarray`;case`Int16Array`:return`int16array`;case`Uint16Array`:return`uint16array`;case`Int32Array`:return`int32array`;case`Uint32Array`:return`uint32array`;case`Float32Array`:return`float32array`;case`Float64Array`:return`float64array`}if(Je(e))return`generator`;let n=I.call(e);switch(n){case`[object Object]`:return`object`;case`[object Map Iterator]`:return`mapiterator`;case`[object Set Iterator]`:return`setiterator`;case`[object String Iterator]`:return`stringiterator`;case`[object Array Iterator]`:return`arrayiterator`}return n.slice(8,-1).toLowerCase().replace(/\s/g,``)}function $e(e,t){typeof e==`object`&&e&&`hash`in e&&(t=e,e=t.data);let n=l.default.createFrame(e||{});return(typeof t!=`object`||!t)&&(t={}),t.hash&&typeof t.hash==`object`&&Object.assign(n,t.hash),t.fn(this,{data:n})}function et(e,t,n){return D(k(this,t,n),e)}function tt(e){return e.fn(this)}const nt=Qe;function rt(e){return e.hash&&Object.keys(e.hash).length?e.fn(e.hash):e.inverse(this)}const it=[{name:`frame`,category:`misc`,compatibility:[`browser`,`nodejs`],fn:$e},{name:`option`,category:`misc`,compatibility:[`browser`,`nodejs`],fn:et},{name:`noop`,category:`misc`,compatibility:[`browser`,`nodejs`],fn:tt},{name:`typeOf`,category:`misc`,compatibility:[`browser`,`nodejs`],fn:nt},{name:`withHash`,category:`misc`,compatibility:[`browser`,`nodejs`],fn:rt}],R=e=>typeof e==`number`&&!Number.isNaN(e),at=[{name:`bytes`,category:`number`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{if(e==null)return`0 B`;let n;if(typeof e==`string`){if(n=e.length,!n)return`0 B`}else if(R(e))n=Number(e);else if(typeof e.length==`number`){if(n=e.length,!n)return`0 B`}else return`0 B`;let r=typeof t==`number`&&!Number.isNaN(t)?t:2,i=[`B`,`kB`,`MB`,`GB`,`TB`,`PB`,`EB`,`ZB`,`YB`],a=10**r;for(let e=i.length-1;e>=0;e--){let t=10**(e*3);if(t<=n+1)return`${Math.round(n*a/t)/a} ${i[e]}`}return`${n}`}},{name:`addCommas`,category:`number`,compatibility:[`browser`,`nodejs`],fn:e=>e.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g,`$1,`)},{name:`phoneNumber`,category:`number`,compatibility:[`browser`,`nodejs`],fn:e=>{let t=e.toString();return`(${t.substr(0,3)}) ${t.substr(3,3)}-${t.substr(6,4)}`}},{name:`toAbbr`,category:`number`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{let n=R(e)?Number(e):0,r=10**(typeof t==`number`&&!Number.isNaN(t)?t:2),i=[`k`,`m`,`b`,`t`,`q`];for(let e=i.length-1;e>=0;e--){let t=10**((e+1)*3);if(t<=n+1)return`${Math.round(n*r/t)/r}${i[e]}`}return`${n}`}},{name:`toExponential`,category:`number`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{let n=R(e)?Number(e):0,r=typeof t==`number`&&!Number.isNaN(t)?t:0;return Number(n).toExponential(r)}},{name:`toFixed`,category:`number`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{let n=R(e)?Number(e):0,r=typeof t==`number`&&!Number.isNaN(t)?t:0;return Number(n).toFixed(r)}},{name:`toFloat`,category:`number`,compatibility:[`browser`,`nodejs`],fn:e=>parseFloat(String(e))},{name:`toInt`,category:`number`,compatibility:[`browser`,`nodejs`],fn:e=>parseInt(String(e),10)},{name:`toPrecision`,category:`number`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{let n=R(e)?Number(e):0,r=typeof t==`number`&&!Number.isNaN(t)?t:1;return Number(n).toPrecision(r)}}],z=e=>!!(e&&typeof e==`object`&&`hash`in e),B=(e,t)=>({...e?.data||{},...t}),ot=(...e)=>{let t=[...e];if(t.length&&z(t[t.length-1])){let e=t.pop();t.push(e.hash)}let n={};for(let e of t)e&&typeof e==`object`&&!Array.isArray(e)&&Object.assign(n,e);return n},st=(e,t)=>{if(!z(t))return t?.inverse?.(e)??``;let n=B(t,t.hash||{}),r=``;for(let i in e)n.key=i,r+=t.fn(e[i],{data:n});return r},ct=(e,t)=>{if(!z(t))return t?.inverse?.(e)??``;let n=B(t,t.hash||{}),r=``;for(let i in e)Object.hasOwn(e,i)&&(n.key=i,r+=t.fn(e[i],{data:n}));return r},lt=(...e)=>{let t=[];for(let n of e)(typeof n==`string`||typeof n==`number`)&&t.push(n);return t.join(`.`)},ut=(e,t,n)=>{let r=D(t,e);return n&&typeof n.fn==`function`?r?n.fn(r):n.inverse?.(t):r},dt=(e,t)=>O(t,e),ft=(e,t)=>Object.hasOwn(e,t),pt=e=>!!e&&typeof e==`object`&&!Array.isArray(e),V=e=>JSON.parse(e),H=(e,t)=>JSON.stringify(e,null,typeof t==`number`?t:0),mt=[{name:`extend`,category:`object`,compatibility:[`browser`,`nodejs`],fn:ot},{name:`forIn`,category:`object`,compatibility:[`browser`,`nodejs`],fn:st},{name:`forOwn`,category:`object`,compatibility:[`browser`,`nodejs`],fn:ct},{name:`toPath`,category:`object`,compatibility:[`browser`,`nodejs`],fn:lt},{name:`get`,category:`object`,compatibility:[`browser`,`nodejs`],fn:ut},{name:`getObject`,category:`object`,compatibility:[`browser`,`nodejs`],fn:dt},{name:`hasOwn`,category:`object`,compatibility:[`browser`,`nodejs`],fn:ft},{name:`isObject`,category:`object`,compatibility:[`browser`,`nodejs`],fn:pt},{name:`JSONparse`,category:`object`,compatibility:[`browser`,`nodejs`],fn:V},{name:`JSONstringify`,category:`object`,compatibility:[`browser`,`nodejs`],fn:H},{name:`merge`,category:`object`,compatibility:[`browser`,`nodejs`],fn:(e,...t)=>{let n=[e,...t];if(n.length&&z(n[n.length-1])){let e=n.pop();n.push(e.hash)}return Object.assign(n[0],...n.slice(1))}},{name:`parseJSON`,category:`object`,compatibility:[`browser`,`nodejs`],fn:V},{name:`pick`,category:`object`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{let r=v(e),i={};for(let e of r)i=Object.assign({},i,O(t,e));return n&&typeof n.fn==`function`?Object.keys(i).length?n.fn(i):n.inverse?.(t):i}},{name:`stringify`,category:`object`,compatibility:[`browser`,`nodejs`],fn:H}],ht=[{name:`toRegex`,category:`regex`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{let r=k({},t,n);return new RegExp(e,r.flags)}},{name:`test`,category:`regex`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{if(typeof e!=`string`)return!1;if(!(t instanceof RegExp))throw TypeError(`expected a regular expression`);return t.test(e)}}],U=e=>e.trim().replace(/^[-_.\W\s]+|[-_.\W\s]+$/g,``),W=(e,t)=>e.length===1?e.toLowerCase():U(e).toLowerCase().replace(/[-_.\W\s]+(\w|$)/g,(e,n)=>t(n)),gt=(e,t)=>typeof e==`string`&&typeof t==`string`?e+t:e,_t=e=>typeof e==`string`?W(e,e=>e.toUpperCase()):``,G=e=>typeof e!=`string`||e.length===0?``:e.charAt(0).toUpperCase()+e.slice(1),vt=e=>typeof e==`string`?e.replace(/\w\S*/g,e=>G(e)):``,yt=(e,t)=>{if(typeof e!=`string`)return``;let n=``;for(let e=0;e<t;e++)n+=` `;return n+e+n},bt=e=>typeof e==`string`?U(e):``,xt=e=>typeof e==`string`?W(e,e=>`-${e}`):``,St=e=>typeof e==`string`?W(e,e=>`.${e}`):``,K=(e,t,n)=>typeof e==`string`?(typeof n!=`string`&&(n=``),e.length>t?e.slice(0,t-n.length)+n:e):``,Ct=(e,t)=>typeof e==`string`?e.length<=t?e:`${K(e,t)}…`:``,wt=e=>typeof e==`string`?e.split(` `).join(`-`):``,Tt=e=>typeof e==`string`,q=e=>typeof e==`object`&&e&&`fn`in e&&typeof e.fn==`function`?String(e.fn()).toLowerCase():typeof e==`string`?e.toLowerCase():``,Et=e=>q(e),Dt=(e,t)=>{if(typeof e!=`string`)return``;let n=t.length,r=e.indexOf(t,0),i=0;for(;r>-1;)i++,r=e.indexOf(t,r+n);return i},Ot=e=>{if(typeof e!=`string`)return``;let t=W(e,e=>e.toUpperCase());return t.charAt(0).toUpperCase()+t.slice(1)},kt=e=>typeof e==`string`?W(e,e=>`/${e}`):``,At=(e,t)=>typeof e==`string`?(typeof t!=`string`&&(t=` `),e.split(t).join(`+`)):``,jt=(e,t)=>typeof e==`string`&&typeof t==`string`?t+e:e,Mt=(e,t)=>typeof e==`string`?typeof t==`string`?e.split(t).join(``):e:``,Nt=(e,t)=>typeof e==`string`?typeof t==`string`?e.replace(t,``):e:``,Pt=(e,t,n)=>typeof e==`string`?typeof t==`string`?(typeof n!=`string`&&(n=``),e.split(t).join(n)):e:``,Ft=(e,t,n)=>typeof e==`string`?typeof t==`string`?(typeof n!=`string`&&(n=``),e.replace(t,n)):e:``,It=e=>typeof e==`string`?e.split(``).reverse().join(``):``,Lt=e=>typeof e==`string`?e.replace(/((?:\S[^.?!]*)[.?!]*)/g,e=>e.charAt(0).toUpperCase()+e.substr(1).toLowerCase()):``,Rt=e=>typeof e==`string`?W(e,e=>`_${e}`):``,J=e=>typeof e==`string`?e.trim():``,zt=e=>typeof e==`string`?e.replace(/^\s+/,``):``,Bt=e=>typeof e==`string`?e.replace(/\s+$/,``):``,Vt=(e,t,n)=>{if(typeof e==`string`&&typeof t==`number`&&Number.isFinite(t)){typeof n!=`string`&&(n=`...`);let r=Math.trunc(t),i=e.split(` `);return r<i.length&&(i=i.slice(0,r)),i.join(` `).trim()+n}return``},Y=e=>typeof e==`object`&&e&&`fn`in e&&typeof e.fn==`function`?String(e.fn()).toUpperCase():typeof e==`string`?e.toUpperCase():``,Ht=[{name:`append`,category:`string`,compatibility:[`browser`,`nodejs`],fn:gt},{name:`camelcase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:_t},{name:`capitalize`,category:`string`,compatibility:[`browser`,`nodejs`],fn:G},{name:`capitalizeAll`,category:`string`,compatibility:[`browser`,`nodejs`],fn:vt},{name:`center`,category:`string`,compatibility:[`browser`,`nodejs`],fn:yt},{name:`chop`,category:`string`,compatibility:[`browser`,`nodejs`],fn:bt},{name:`dashcase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:xt},{name:`dotcase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:St},{name:`ellipsis`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Ct},{name:`hyphenate`,category:`string`,compatibility:[`browser`,`nodejs`],fn:wt},{name:`isString`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Tt},{name:`lowercase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:q},{name:`downcase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Et},{name:`occurrences`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Dt},{name:`pascalcase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Ot},{name:`pathcase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:kt},{name:`plusify`,category:`string`,compatibility:[`browser`,`nodejs`],fn:At},{name:`prepend`,category:`string`,compatibility:[`browser`,`nodejs`],fn:jt},{name:`remove`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Mt},{name:`removeFirst`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Nt},{name:`replace`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Pt},{name:`replaceFirst`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Ft},{name:`reverse`,category:`string`,compatibility:[`browser`,`nodejs`],fn:It},{name:`sentence`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Lt},{name:`snakecase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Rt},{name:`trim`,category:`string`,compatibility:[`browser`,`nodejs`],fn:J},{name:`trimLeft`,category:`string`,compatibility:[`browser`,`nodejs`],fn:zt},{name:`trimRight`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Bt},{name:`truncate`,category:`string`,compatibility:[`browser`,`nodejs`],fn:K},{name:`truncateWords`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Vt},{name:`uppercase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Y},{name:`upcase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:e=>Y(e)},{name:`split`,category:`string`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>typeof e==`string`?(typeof t!=`string`&&(t=``),e.split(t)):``},{name:`startsWith`,category:`string`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>typeof e!=`string`||typeof t!=`string`?!1:t.startsWith(e)},{name:`titleize`,category:`string`,compatibility:[`browser`,`nodejs`],fn:e=>typeof e==`string`?e.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()):``},{name:`raw`,category:`string`,compatibility:[`browser`,`nodejs`],fn:e=>e&&typeof e.fn==`function`?e.fn():``}],X=[`browser`,`nodejs`],Z=e=>{if(typeof e==`string`)return encodeURIComponent(e)},Q=e=>{if(typeof e==`string`)return decodeURIComponent(e)};function Ut(...e){return Z.apply(this,e)}function Wt(...e){return Q.apply(this,e)}const Gt=[{name:`encodeURI`,category:`url`,compatibility:X,fn:Z},{name:`decodeURI`,category:`url`,compatibility:X,fn:Q},{name:`url_encode`,category:`url`,compatibility:X,fn:Ut},{name:`url_decode`,category:`url`,compatibility:X,fn:Wt},{name:`stripQuerystring`,category:`url`,compatibility:X,fn:e=>{if(typeof e==`string`)return e.split(`?`)[0]}}];var $=class extends ee{init(){this.registerHelpers(ae),this.registerHelpers(pe),this.registerHelpers(Ee),this.registerHelpers(fe),this.registerHelpers(de),this.registerHelpers(Se),this.registerHelpers(De),this.registerHelpers(Oe),this.registerHelpers(ke),this.registerHelpers(Ue),this.registerHelpers(Ke),this.registerHelpers(it),this.registerHelpers(at),this.registerHelpers(ht),this.registerHelpers(Ht),this.registerHelpers(Gt),this.registerHelpers(mt)}};const Kt=l.default,qt=l.default.create();function Jt(e){new $().load(e.handlebars??e.hbs)}async function Yt(){let e=new $,t=l.default.create();return Object.keys(l.default.partials).length>0&&t.registerPartial(l.default.partials),e.load(t),typeof process<`u`&&process.env?.NODE_ENV===`development`&&console.warn("createHandlebars will be deprecated in future versions, use `fumanchu` instead."),t}function Xt(e){let t=new $,n=l.default.create();if(e?.handlebars?n=e.handlebars:Object.keys(l.default.partials).length>0&&n.registerPartial(l.default.partials),t.load(n),e?.caching){let t;t=e.caching instanceof c.CacheableMemory?e.caching:typeof e.caching==`object`?new c.CacheableMemory({useClone:!1,...e.caching}):new c.CacheableMemory({useClone:!1});let r=n.compile.bind(n);n.compile=(e,n)=>{let i=n?`${e}\0${JSON.stringify(n)}`:e,a=t.get(i);if(a)return a;let o=r(e,n);return t.set(i,o),o}}return n}exports.CacheableMemory=c.CacheableMemory,exports.Handlebars=Kt,exports.HelperRegistry=$,exports.createHandlebars=Yt,exports.fumanchu=Xt,exports.handlebars=qt,exports.helpers=Jt;
|
|
3
|
+
`)}</ol>`}},{name:`thumbnailImage`,category:`html`,compatibility:[`browser`,`nodejs`],fn:e=>{let t=``,n=``,r=e.full||!1,i={alt:e.alt,src:e.thumbnail,width:e.size.width,height:e.size.height},a={id:`image-${e.id}`},o={href:r,rel:`thumbnail`};return e.classes&&(e.classes.image&&(i.class=e.classes.image.join(` `)),e.classes.figure&&(a.class=e.classes.figure.join(` `)),e.classes.link&&(o.class=e.classes.link.join(` `))),t+=`<figure ${x(a)}>\n`,n+=`<img ${x(i)}>\n`,r?t+=`<a ${x(o)}>\n${n}</a>\n`:t+=n,e.caption&&(t+=`<figcaption>${e.caption}</figcaption>\n`),t+=`</figure>`,t}}],fe=[{name:`gist`,category:`code`,compatibility:[`browser`,`nodejs`],fn:e=>b(`script`,{src:`https://gist.github.com/${e}.js`})},{name:`jsfiddle`,category:`code`,compatibility:[`browser`,`nodejs`],fn:e=>{if(!e?.id)throw Error("jsfiddle helper expects an `id`");let{id:t,width:n=`100%`,height:r=`300`,skin:i=`/presentation/`,tabs:a=`result,js,html,css`,allowfullscreen:o=`allowfullscreen`,frameborder:s=`0`}=e;return b(`iframe`,{width:n,height:r,src:`http://jsfiddle.net/${t}/embedded/${a}${i}`,allowfullscreen:o,frameborder:s})}}],pe=[{name:`isEmpty`,category:`collection`,compatibility:[`browser`,`nodejs`],fn:e=>e==null?!0:Array.isArray(e)?e.length===0:typeof e==`object`&&Object.keys(e).length===0},{name:`iterate`,category:`collection`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{if(Array.isArray(e)){let n=``;for(let r=0;r<e.length;r++)n+=t(e[r],r);return n}if(e&&typeof e==`object`){let n=``;for(let r of Object.keys(e))n+=t(e[r],r);return n}return n?n():``}}],me=(...e)=>e.every(Boolean),he=(e,t,n)=>{switch(t){case`==`:return e==n;case`===`:return e===n;case`!=`:return e!=n;case`!==`:return e!==n;case`<`:return e<n;case`>`:return e>n;case`<=`:return e<=n;case`>=`:return e>=n;case`typeof`:return typeof e===n;default:throw Error(`helper {{compare}}: invalid operator: '${t}'`)}},ge=(e,t,n=0)=>e==null?!1:typeof e==`string`||Array.isArray(e)?e.indexOf(t,n)>-1:typeof e==`object`&&t in e,_e=(...e)=>{for(let t of e)if(t!=null)return t;return``},ve=(e,t)=>e===t,ye=(e,t)=>e>t,be=(e,t)=>e>=t,xe=(e,t)=>e==null||t==null?!1:Array.isArray(e)||typeof e==`string`?e.indexOf(t)>-1:typeof e==`object`&&t in e,S=(e,t)=>{if(!e)return!0;let n=Array.isArray(t)?t:t==null?[`0`,`false`,`nada`,`nil`,`nay`,`nah`,`negative`,`no`,`none`,`nope`,`nul`,`null`,`nix`,`nyet`,`uh-uh`,`veto`,`zero`]:[t],r=typeof e==`string`?e.toLowerCase():null;for(let t of n)if(t===e||r!=null&&t===r)return!0;return!1},Se=[{name:`and`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:me},{name:`compare`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:he},{name:`contains`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:ge},{name:`default`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:_e},{name:`eq`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:ve},{name:`gt`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:ye},{name:`gte`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:be},{name:`has`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:xe},{name:`isFalsey`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:e=>S(e)},{name:`isTruthy`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:e=>!S(e)},{name:`ifEven`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:e=>typeof e==`number`&&e%2==0},{name:`ifNth`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>typeof e==`number`&&typeof t==`number`&&t%e===0},{name:`ifOdd`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:e=>typeof e==`number`&&Math.abs(e%2)===1},{name:`is`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>e==t},{name:`isnt`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>e!=t},{name:`lt`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>e<t},{name:`lte`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>e<=t},{name:`neither`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>!e&&!t},{name:`not`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:e=>!e},{name:`or`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(...e)=>e.some(Boolean)},{name:`unlessEq`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>e!==t},{name:`unlessGt`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>e<=t},{name:`unlessLt`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>e>=t},{name:`unlessGteq`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>e<t},{name:`unlessLteq`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>e>t}];d.default.extend(p.default),d.default.extend(f.default),d.default.extend(h.default),d.default.extend(m.default);const C=e=>{if(!e)return(0,d.default)();if(typeof e==`string`){let t=(0,u.parseDate)(e);return t?(0,d.default)(t):(0,d.default)(e)}return(0,d.default)(e)},Ce=()=>new Date().getFullYear().toString(),w=e=>e.replace(/yyyy/g,`YYYY`).replace(/yy/g,`YY`).replace(/dd/g,`DD`).replace(/mm/g,`MM`).replace(/hh/g,`HH`),T=(e,t)=>{let n=t||`YYYY-MM-DD`,r=C(e);if(!r.isValid())throw Error(`Unable to parse date: ${e}`);let i=w(n);return r.format(i)},we=()=>Date.now().toString(),Te=e=>{let t=w(e||`YYYY-MM-DD HH:mm:ss`);return(0,d.default)().format(t)},E=e=>{let t=C(e);if(!t.isValid())throw Error(`Unable to parse date: ${e}`);return t.fromNow()},Ee=[{name:`year`,category:`date`,compatibility:[`browser`,`nodejs`],fn:Ce},{name:`date`,category:`date`,compatibility:[`browser`,`nodejs`],fn:T},{name:`moment`,category:`date`,compatibility:[`browser`,`nodejs`],fn:T},{name:`timestamp`,category:`date`,compatibility:[`browser`,`nodejs`],fn:we},{name:`now`,category:`date`,compatibility:[`browser`,`nodejs`],fn:Te},{name:`fromNow`,category:`date`,compatibility:[`browser`,`nodejs`],fn:E},{name:`toNow`,category:`date`,compatibility:[`browser`,`nodejs`],fn:e=>{let t=C(e);if(!t.isValid())throw Error(`Unable to parse date: ${e}`);return t.toNow()}},{name:`ago`,category:`date`,compatibility:[`browser`,`nodejs`],fn:e=>E(e)},{name:`dateAdd`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{let r=C(e);if(!r.isValid())throw Error(`Unable to parse date: ${e}`);return r.add(t,n).format(`YYYY-MM-DD HH:mm:ss`)}},{name:`dateSubtract`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{let r=C(e);if(!r.isValid())throw Error(`Unable to parse date: ${e}`);return r.subtract(t,n).format(`YYYY-MM-DD HH:mm:ss`)}},{name:`startOf`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{let n=C(e);if(!n.isValid())throw Error(`Unable to parse date: ${e}`);return n.startOf(t).format(`YYYY-MM-DD HH:mm:ss`)}},{name:`endOf`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{let n=C(e);if(!n.isValid())throw Error(`Unable to parse date: ${e}`);return n.endOf(t).format(`YYYY-MM-DD HH:mm:ss`)}},{name:`isBefore`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{let n=C(e),r=C(t);if(!n.isValid()||!r.isValid())throw Error(`Unable to parse dates: ${e}, ${t}`);return n.isBefore(r)}},{name:`isAfter`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{let n=C(e),r=C(t);if(!n.isValid()||!r.isValid())throw Error(`Unable to parse dates: ${e}, ${t}`);return n.isAfter(r)}},{name:`isSame`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{let r=C(e),i=C(t);if(!r.isValid()||!i.isValid())throw Error(`Unable to parse dates: ${e}, ${t}`);return r.isSame(i,n)}},{name:`isBetween`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{let r=C(e),i=C(t),a=C(n);if(!r.isValid()||!i.isValid()||!a.isValid())throw Error(`Unable to parse dates: ${e}, ${t}, ${n}`);return r.isBetween(i,a,null,`[]`)}},{name:`diff`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{let r=C(e),i=C(t);if(!r.isValid()||!i.isValid())throw Error(`Unable to parse dates: ${e}, ${t}`);return r.diff(i,n)}},{name:`toISOString`,category:`date`,compatibility:[`browser`,`nodejs`],fn:e=>{let t=C(e);if(!t.isValid())throw Error(`Unable to parse date: ${e}`);return t.toISOString()}},{name:`dateTimezone`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{let r=w(n||`YYYY-MM-DD HH:mm:ss`),i=C(e);if(!i.isValid())throw Error(`Unable to parse date: ${e}`);return i.tz(t).format(r)}},{name:`dateLocale`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{let r=w(n||`YYYY-MM-DD HH:mm:ss`),i=C(e);if(!i.isValid())throw Error(`Unable to parse date: ${e}`);return i.locale(t).format(r)}}],D=(e,t)=>{if(!e||typeof e!=`object`)return;let n=Array.isArray(t)?t:t.split(`.`),r=e;for(let e of n){if(typeof r!=`object`||!r)return;r=r[e]}return r},O=(e,t)=>{if(!e||typeof e!=`object`)return;let n=Array.isArray(t)?t:t.split(`.`);if(n.length===0)return;let r=e;for(let e=0;e<n.length-1;e++){if(typeof r!=`object`||!r)return;r=r[n[e]]}let i=n[n.length-1];if(!(typeof r!=`object`||!r||!(i in r)))return{[i]:r[i]}},k=(e,t,n)=>{let r={};return e&&typeof e==`object`&&e.options&&Object.assign(r,e.options),t&&typeof t==`object`&&(`hash`in t?Object.assign(r,t.hash):Object.assign(r,t)),n&&typeof n==`object`&&(`hash`in n?Object.assign(r,n.hash):Object.assign(r,n)),r},De=[{name:`i18n`,category:`i18n`,compatibility:[`browser`,`nodejs`],fn:function(e,t,n){if(t&&typeof t==`object`&&`hash`in t&&n===void 0&&(n=t,t={}),typeof e!=`string`)throw Error(`{{i18n}} helper expected "key" to be a string`);let r={...this,...t,...n?.hash??{}},i=r.language||r.lang;if(typeof i!=`string`)throw TypeError(`{{i18n}} helper expected "language" to be a string`);let a=r[i];if(a===void 0)throw Error(`{{i18n}} helper cannot find language "${i}"`);let o=D(a,e);if(o===void 0)throw Error(`{{i18n}} helper cannot find property "`+String(e)+`" for language "`+i+`"`);return String(o)}}],Oe=[{name:`inflect`,category:`inflection`,compatibility:[`browser`,`nodejs`],fn:(e,t,n,r)=>{let i=e>1||e===0?n:t;return r?`${e} ${i}`:i}},{name:`ordinalize`,category:`inflection`,compatibility:[`browser`,`nodejs`],fn:e=>{let t=Math.abs(Math.round(Number(e))),n=String(e),r=t%100;if([11,12,13].includes(r))return`${n}th`;switch(t%10){case 1:return`${n}st`;case 2:return`${n}nd`;case 3:return`${n}rd`;default:return`${n}th`}}}],A=(e,t,n)=>{let r=typeof t==`string`?t.split(/, */):t;return(0,g.default)(typeof e==`string`?[e]:e,r,n)},ke=[{name:`match`,category:`match`,compatibility:[`browser`,`nodejs`],fn:A},{name:`isMatch`,category:`match`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>g.default.isMatch(e,t,n)},{name:`mm`,category:`match`,compatibility:[`browser`,`nodejs`],fn:(...e)=>(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.`),A(...e))}],j=e=>typeof e==`number`&&!Number.isNaN(e)||typeof e==`string`&&e.trim()!==``&&!Number.isNaN(Number(e)),M=(e,t=`expected a number`)=>{if(j(e))return Number(e);throw TypeError(t)},Ae=e=>{let t=M(e);return Math.abs(t)},je=(e,t)=>j(e)&&j(t)?Number(e)+Number(t):``,Me=(...e)=>{let t=e.flat().map(e=>Number(e));return P(t)/t.length},Ne=e=>{let t=M(e);return Math.ceil(t)},Pe=(e,t)=>M(e,`expected the first argument to be a number`)/M(t,`expected the second argument to be a number`),Fe=e=>{let t=M(e);return Math.floor(t)},Ie=(e,t)=>M(e,`expected the first argument to be a number`)-M(t,`expected the second argument to be a number`),Le=(e,t)=>M(e,`expected the first argument to be a number`)%M(t,`expected the second argument to be a number`),N=(e,t)=>M(e,`expected the first argument to be a number`)*M(t,`expected the second argument to be a number`),Re=(e,t)=>M(e,`expected the first argument to be a number`)+M(t,`expected the second argument to be a number`),ze=(e,t)=>{let n=M(e,`expected minimum to be a number`),r=M(t,`expected maximum to be a number`);return n+Math.floor(Math.random()*(r-n+1))},Be=(e,t)=>e%t,Ve=e=>{let t=M(e);return Math.round(t)},He=(e,t)=>M(e,`expected the first argument to be a number`)-M(t,`expected the second argument to be a number`),P=(...e)=>{let t=e.flat(),n=0;for(let e of t)j(e)&&(n+=Number(e));return n},Ue=[{name:`abs`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Ae},{name:`add`,category:`math`,compatibility:[`browser`,`nodejs`],fn:je},{name:`avg`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Me},{name:`ceil`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Ne},{name:`divide`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Pe},{name:`floor`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Fe},{name:`minus`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Ie},{name:`modulo`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Le},{name:`multiply`,category:`math`,compatibility:[`browser`,`nodejs`],fn:N},{name:`plus`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Re},{name:`random`,category:`math`,compatibility:[`browser`,`nodejs`],fn:ze},{name:`remainder`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Be},{name:`round`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Ve},{name:`subtract`,category:`math`,compatibility:[`browser`,`nodejs`],fn:He},{name:`sum`,category:`math`,compatibility:[`browser`,`nodejs`],fn:P},{name:`times`,category:`math`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>N(e,t)}],We=new _.default({breaks:!0,html:!0,langPrefix:`lang-`,typographer:!1,xhtmlOut:!1});function Ge(e){return new l.default.SafeString(We.render(e))}const F=function(e,t){return typeof e==`object`&&e&&`fn`in e&&typeof e.fn==`function`?e=e.fn(this):typeof e!=`string`&&(e=``),Ge(e)},Ke=[{name:`md`,category:`markdown`,compatibility:[`browser`,`nodejs`],fn:F},{name:`markdown`,category:`markdown`,compatibility:[`browser`,`nodejs`],fn:F}],I=Object.prototype.toString;function L(e){return typeof e.constructor==`function`?e.constructor.name:null}function qe(e){return L(e)===`GeneratorFunction`}function Je(e){return typeof e.throw==`function`&&typeof e.return==`function`&&typeof e.next==`function`}function Ye(e){return typeof e.toDateString==`function`&&typeof e.getDate==`function`&&typeof e.setDate==`function`}function Xe(e){return typeof e.message==`string`&&e.constructor&&typeof e.constructor.stackTraceLimit==`number`}function Ze(e){return typeof e.flags==`string`&&typeof e.ignoreCase==`boolean`&&typeof e.multiline==`boolean`&&typeof e.global==`boolean`}function Qe(e){if(e===void 0)return`undefined`;if(e===null)return`null`;let t=typeof e;if(t===`boolean`)return`boolean`;if(t===`string`)return`string`;if(t===`number`)return`number`;if(t===`symbol`)return`symbol`;if(t===`bigint`)return`bigint`;if(t===`function`)return qe(e)?`generatorfunction`:`function`;if(Array.isArray(e))return`array`;if(typeof Buffer<`u`&&Buffer.isBuffer?.(e))return`buffer`;if(typeof e.length==`number`&&I.call(e)===`[object Arguments]`)return`arguments`;if(e instanceof Date||Ye(e))return`date`;if(e instanceof Error||Xe(e))return`error`;if(e instanceof RegExp||Ze(e))return`regexp`;switch(L(e)){case`Promise`:return`promise`;case`WeakMap`:return`weakmap`;case`WeakSet`:return`weakset`;case`Map`:return`map`;case`Set`:return`set`;case`Int8Array`:return`int8array`;case`Uint8Array`:return`uint8array`;case`Uint8ClampedArray`:return`uint8clampedarray`;case`Int16Array`:return`int16array`;case`Uint16Array`:return`uint16array`;case`Int32Array`:return`int32array`;case`Uint32Array`:return`uint32array`;case`Float32Array`:return`float32array`;case`Float64Array`:return`float64array`}if(Je(e))return`generator`;let n=I.call(e);switch(n){case`[object Object]`:return`object`;case`[object Map Iterator]`:return`mapiterator`;case`[object Set Iterator]`:return`setiterator`;case`[object String Iterator]`:return`stringiterator`;case`[object Array Iterator]`:return`arrayiterator`}return n.slice(8,-1).toLowerCase().replace(/\s/g,``)}function $e(e,t){typeof e==`object`&&e&&`hash`in e&&(t=e,e=t.data);let n=l.default.createFrame(e||{});return(typeof t!=`object`||!t)&&(t={}),t.hash&&typeof t.hash==`object`&&Object.assign(n,t.hash),t.fn(this,{data:n})}function et(e,t,n){return D(k(this,t,n),e)}function tt(e){return e.fn(this)}const nt=Qe;function rt(e){return e.hash&&Object.keys(e.hash).length?e.fn(e.hash):e.inverse(this)}const it=[{name:`frame`,category:`misc`,compatibility:[`browser`,`nodejs`],fn:$e},{name:`option`,category:`misc`,compatibility:[`browser`,`nodejs`],fn:et},{name:`noop`,category:`misc`,compatibility:[`browser`,`nodejs`],fn:tt},{name:`typeOf`,category:`misc`,compatibility:[`browser`,`nodejs`],fn:nt},{name:`withHash`,category:`misc`,compatibility:[`browser`,`nodejs`],fn:rt}],R=e=>typeof e==`number`&&!Number.isNaN(e),at=[{name:`bytes`,category:`number`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{if(e==null)return`0 B`;let n;if(typeof e==`string`){if(n=e.length,!n)return`0 B`}else if(R(e))n=Number(e);else if(typeof e.length==`number`){if(n=e.length,!n)return`0 B`}else return`0 B`;let r=typeof t==`number`&&!Number.isNaN(t)?t:2,i=[`B`,`kB`,`MB`,`GB`,`TB`,`PB`,`EB`,`ZB`,`YB`],a=10**r;for(let e=i.length-1;e>=0;e--){let t=10**(e*3);if(t<=n+1)return`${Math.round(n*a/t)/a} ${i[e]}`}return`${n}`}},{name:`addCommas`,category:`number`,compatibility:[`browser`,`nodejs`],fn:e=>e.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g,`$1,`)},{name:`phoneNumber`,category:`number`,compatibility:[`browser`,`nodejs`],fn:e=>{let t=e.toString();return`(${t.substr(0,3)}) ${t.substr(3,3)}-${t.substr(6,4)}`}},{name:`toAbbr`,category:`number`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{let n=R(e)?Number(e):0,r=10**(typeof t==`number`&&!Number.isNaN(t)?t:2),i=[`k`,`m`,`b`,`t`,`q`];for(let e=i.length-1;e>=0;e--){let t=10**((e+1)*3);if(t<=n+1)return`${Math.round(n*r/t)/r}${i[e]}`}return`${n}`}},{name:`toExponential`,category:`number`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{let n=R(e)?Number(e):0,r=typeof t==`number`&&!Number.isNaN(t)?t:0;return Number(n).toExponential(r)}},{name:`toFixed`,category:`number`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{let n=R(e)?Number(e):0,r=typeof t==`number`&&!Number.isNaN(t)?t:0;return Number(n).toFixed(r)}},{name:`toFloat`,category:`number`,compatibility:[`browser`,`nodejs`],fn:e=>parseFloat(String(e))},{name:`toInt`,category:`number`,compatibility:[`browser`,`nodejs`],fn:e=>parseInt(String(e),10)},{name:`toPrecision`,category:`number`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{let n=R(e)?Number(e):0,r=typeof t==`number`&&!Number.isNaN(t)?t:1;return Number(n).toPrecision(r)}}],z=e=>!!(e&&typeof e==`object`&&`hash`in e),B=(e,t)=>({...e?.data||{},...t}),ot=(...e)=>{let t=[...e];if(t.length&&z(t[t.length-1])){let e=t.pop();t.push(e.hash)}let n={};for(let e of t)e&&typeof e==`object`&&!Array.isArray(e)&&Object.assign(n,e);return n},st=(e,t)=>{if(!z(t))return t?.inverse?.(e)??``;let n=B(t,t.hash||{}),r=``;for(let i in e)n.key=i,r+=t.fn(e[i],{data:n});return r},ct=(e,t)=>{if(!z(t))return t?.inverse?.(e)??``;let n=B(t,t.hash||{}),r=``;for(let i in e)Object.hasOwn(e,i)&&(n.key=i,r+=t.fn(e[i],{data:n}));return r},lt=(...e)=>{let t=[];for(let n of e)(typeof n==`string`||typeof n==`number`)&&t.push(n);return t.join(`.`)},ut=(e,t,n)=>{let r=D(t,e);return n&&typeof n.fn==`function`?r?n.fn(r):n.inverse?.(t):r},dt=(e,t)=>O(t,e),ft=(e,t)=>Object.hasOwn(e,t),pt=e=>!!e&&typeof e==`object`&&!Array.isArray(e),V=e=>JSON.parse(e),H=(e,t)=>JSON.stringify(e,null,typeof t==`number`?t:0),mt=[{name:`extend`,category:`object`,compatibility:[`browser`,`nodejs`],fn:ot},{name:`forIn`,category:`object`,compatibility:[`browser`,`nodejs`],fn:st},{name:`forOwn`,category:`object`,compatibility:[`browser`,`nodejs`],fn:ct},{name:`toPath`,category:`object`,compatibility:[`browser`,`nodejs`],fn:lt},{name:`get`,category:`object`,compatibility:[`browser`,`nodejs`],fn:ut},{name:`getObject`,category:`object`,compatibility:[`browser`,`nodejs`],fn:dt},{name:`hasOwn`,category:`object`,compatibility:[`browser`,`nodejs`],fn:ft},{name:`isObject`,category:`object`,compatibility:[`browser`,`nodejs`],fn:pt},{name:`JSONparse`,category:`object`,compatibility:[`browser`,`nodejs`],fn:V},{name:`JSONstringify`,category:`object`,compatibility:[`browser`,`nodejs`],fn:H},{name:`merge`,category:`object`,compatibility:[`browser`,`nodejs`],fn:(e,...t)=>{let n=[e,...t];if(n.length&&z(n[n.length-1])){let e=n.pop();n.push(e.hash)}return Object.assign(n[0],...n.slice(1))}},{name:`parseJSON`,category:`object`,compatibility:[`browser`,`nodejs`],fn:V},{name:`pick`,category:`object`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{let r=v(e),i={};for(let e of r)i=Object.assign({},i,O(t,e));return n&&typeof n.fn==`function`?Object.keys(i).length?n.fn(i):n.inverse?.(t):i}},{name:`stringify`,category:`object`,compatibility:[`browser`,`nodejs`],fn:H}],ht=[{name:`toRegex`,category:`regex`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{let r=k({},t,n);return new RegExp(e,r.flags)}},{name:`test`,category:`regex`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{if(typeof e!=`string`)return!1;if(!(t instanceof RegExp))throw TypeError(`expected a regular expression`);return t.test(e)}}],U=e=>e.trim().replace(/^[-_.\W\s]+|[-_.\W\s]+$/g,``),W=(e,t)=>e.length===1?e.toLowerCase():U(e).toLowerCase().replace(/[-_.\W\s]+(\w|$)/g,(e,n)=>t(n)),gt=(e,t)=>typeof e==`string`&&typeof t==`string`?e+t:e,_t=e=>typeof e==`string`?W(e,e=>e.toUpperCase()):``,G=e=>typeof e!=`string`||e.length===0?``:e.charAt(0).toUpperCase()+e.slice(1),vt=e=>typeof e==`string`?e.replace(/\w\S*/g,e=>G(e)):``,yt=(e,t)=>{if(typeof e!=`string`)return``;let n=``;for(let e=0;e<t;e++)n+=` `;return n+e+n},bt=e=>typeof e==`string`?U(e):``,xt=e=>typeof e==`string`?W(e,e=>`-${e}`):``,St=e=>typeof e==`string`?W(e,e=>`.${e}`):``,K=(e,t,n)=>typeof e==`string`?(typeof n!=`string`&&(n=``),e.length>t?e.slice(0,t-n.length)+n:e):``,Ct=(e,t)=>typeof e==`string`?e.length<=t?e:`${K(e,t)}…`:``,wt=e=>typeof e==`string`?e.split(` `).join(`-`):``,Tt=e=>typeof e==`string`,q=e=>typeof e==`object`&&e&&`fn`in e&&typeof e.fn==`function`?String(e.fn()).toLowerCase():typeof e==`string`?e.toLowerCase():``,Et=e=>q(e),Dt=(e,t)=>{if(typeof e!=`string`)return``;let n=t.length,r=e.indexOf(t,0),i=0;for(;r>-1;)i++,r=e.indexOf(t,r+n);return i},Ot=e=>{if(typeof e!=`string`)return``;let t=W(e,e=>e.toUpperCase());return t.charAt(0).toUpperCase()+t.slice(1)},kt=e=>typeof e==`string`?W(e,e=>`/${e}`):``,At=(e,t)=>typeof e==`string`?(typeof t!=`string`&&(t=` `),e.split(t).join(`+`)):``,jt=(e,t)=>typeof e==`string`&&typeof t==`string`?t+e:e,Mt=(e,t)=>typeof e==`string`?typeof t==`string`?e.split(t).join(``):e:``,Nt=(e,t)=>typeof e==`string`?typeof t==`string`?e.replace(t,``):e:``,Pt=(e,t,n)=>typeof e==`string`?typeof t==`string`?(typeof n!=`string`&&(n=``),e.split(t).join(n)):e:``,Ft=(e,t,n)=>typeof e==`string`?typeof t==`string`?(typeof n!=`string`&&(n=``),e.replace(t,n)):e:``,It=e=>typeof e==`string`?e.split(``).reverse().join(``):``,Lt=e=>typeof e==`string`?e.replace(/((?:\S[^.?!]*)[.?!]*)/g,e=>e.charAt(0).toUpperCase()+e.substr(1).toLowerCase()):``,Rt=e=>typeof e==`string`?W(e,e=>`_${e}`):``,J=e=>typeof e==`string`?e.trim():``,zt=e=>typeof e==`string`?e.replace(/^\s+/,``):``,Bt=e=>typeof e==`string`?e.replace(/\s+$/,``):``,Vt=(e,t,n)=>{if(typeof e==`string`&&typeof t==`number`&&Number.isFinite(t)){typeof n!=`string`&&(n=`...`);let r=Math.trunc(t),i=e.split(` `);return r<i.length&&(i=i.slice(0,r)),i.join(` `).trim()+n}return``},Y=e=>typeof e==`object`&&e&&`fn`in e&&typeof e.fn==`function`?String(e.fn()).toUpperCase():typeof e==`string`?e.toUpperCase():``,Ht=[{name:`append`,category:`string`,compatibility:[`browser`,`nodejs`],fn:gt},{name:`camelcase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:_t},{name:`capitalize`,category:`string`,compatibility:[`browser`,`nodejs`],fn:G},{name:`capitalizeAll`,category:`string`,compatibility:[`browser`,`nodejs`],fn:vt},{name:`center`,category:`string`,compatibility:[`browser`,`nodejs`],fn:yt},{name:`chop`,category:`string`,compatibility:[`browser`,`nodejs`],fn:bt},{name:`dashcase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:xt},{name:`dotcase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:St},{name:`ellipsis`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Ct},{name:`hyphenate`,category:`string`,compatibility:[`browser`,`nodejs`],fn:wt},{name:`isString`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Tt},{name:`lowercase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:q},{name:`downcase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Et},{name:`occurrences`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Dt},{name:`pascalcase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Ot},{name:`pathcase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:kt},{name:`plusify`,category:`string`,compatibility:[`browser`,`nodejs`],fn:At},{name:`prepend`,category:`string`,compatibility:[`browser`,`nodejs`],fn:jt},{name:`remove`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Mt},{name:`removeFirst`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Nt},{name:`replace`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Pt},{name:`replaceFirst`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Ft},{name:`reverse`,category:`string`,compatibility:[`browser`,`nodejs`],fn:It},{name:`sentence`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Lt},{name:`snakecase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Rt},{name:`trim`,category:`string`,compatibility:[`browser`,`nodejs`],fn:J},{name:`trimLeft`,category:`string`,compatibility:[`browser`,`nodejs`],fn:zt},{name:`trimRight`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Bt},{name:`truncate`,category:`string`,compatibility:[`browser`,`nodejs`],fn:K},{name:`truncateWords`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Vt},{name:`uppercase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Y},{name:`upcase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:e=>Y(e)},{name:`split`,category:`string`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>typeof e==`string`?(typeof t!=`string`&&(t=``),e.split(t)):``},{name:`startsWith`,category:`string`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>typeof e!=`string`||typeof t!=`string`?!1:t.startsWith(e)},{name:`titleize`,category:`string`,compatibility:[`browser`,`nodejs`],fn:e=>typeof e==`string`?e.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()):``},{name:`raw`,category:`string`,compatibility:[`browser`,`nodejs`],fn:e=>e&&typeof e.fn==`function`?e.fn():``}],X=[`browser`,`nodejs`],Z=e=>{if(typeof e==`string`)return encodeURIComponent(e)},Q=e=>{if(typeof e==`string`)return decodeURIComponent(e)};function Ut(...e){return Z.apply(this,e)}function Wt(...e){return Q.apply(this,e)}const Gt=[{name:`encodeURI`,category:`url`,compatibility:X,fn:Z},{name:`decodeURI`,category:`url`,compatibility:X,fn:Q},{name:`url_encode`,category:`url`,compatibility:X,fn:Ut},{name:`url_decode`,category:`url`,compatibility:X,fn:Wt},{name:`stripQuerystring`,category:`url`,compatibility:X,fn:e=>{if(typeof e==`string`)return e.split(`?`)[0]}}];var $=class extends ee{init(){this.registerHelpers(ae),this.registerHelpers(pe),this.registerHelpers(Ee),this.registerHelpers(fe),this.registerHelpers(de),this.registerHelpers(Se),this.registerHelpers(De),this.registerHelpers(Oe),this.registerHelpers(ke),this.registerHelpers(Ue),this.registerHelpers(Ke),this.registerHelpers(it),this.registerHelpers(at),this.registerHelpers(ht),this.registerHelpers(Ht),this.registerHelpers(Gt),this.registerHelpers(mt)}};const Kt=l.default,qt=l.default.create();function Jt(e){new $().load(e.handlebars??e.hbs)}async function Yt(){let e=new $,t=l.default.create();return Object.keys(l.default.partials).length>0&&t.registerPartial(l.default.partials),e.load(t),typeof process<`u`&&process.env?.NODE_ENV===`development`&&console.warn("createHandlebars will be deprecated in future versions, use `fumanchu` instead."),t}function Xt(e){let t=new $,n=l.default.create();if(e?.handlebars?n=e.handlebars:Object.keys(l.default.partials).length>0&&n.registerPartial(l.default.partials),t.load(n),e?.caching){let t;t=e.caching instanceof c.CacheableMemory?e.caching:typeof e.caching==`object`?new c.CacheableMemory({useClone:!1,...e.caching}):new c.CacheableMemory({useClone:!1});let r=n.compile.bind(n);n.compile=(e,n)=>{let i=n?`${e}\0${JSON.stringify(n)}`:e,a=t.get(i);if(a)return a;let o=r(e,n);return t.set(i,o),o}}return n}exports.CacheableMemory=c.CacheableMemory,exports.Handlebars=Kt,exports.HelperRegistry=$,exports.createHandlebars=Yt,exports.fumanchu=Xt,exports.handlebars=qt,exports.helpers=Jt;
|
package/dist/index.browser.d.cts
CHANGED
package/dist/index.browser.d.mts
CHANGED
package/dist/index.browser.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import{CacheableMemory as e}from"@cacheable/memory";import t from"handlebars";import{parseDate as n}from"chrono-node";import r from"dayjs";import i from"dayjs/plugin/isBetween.js";import a from"dayjs/plugin/relativeTime.js";import o from"dayjs/plugin/timezone.js";import s from"dayjs/plugin/utc.js";import c from"micromatch";import l from"markdown-it";var u=class{_helpers=[];constructor(){this.init()}get helpers(){return this._helpers}init(){}register(e){return this.has(e.name)?!1:(this._helpers.push(e),!0)}registerHelpers(e){for(let t of e)this.register(t)}has(e){return this._helpers.some(t=>t.name===e)}filter(e){let t=this._helpers;if(e.names){let n=e.names;t=t.filter(e=>n.includes(e.name))}if(e.categories){let n=e.categories;t=t.filter(e=>n.includes(e.category))}if(e.compatibility){let n=e.compatibility;t=t.filter(e=>e.compatibility?.some(e=>n.includes(e)))}return t}load(e,t){let n=this._helpers;t&&(n=this.filter(t));for(let t of n)e.registerHelper(t.name,t.fn)}swap(e){for(let t of this._helpers)e.registerHelper(t.name,t.fn)}};const ee=(e,t)=>Array.isArray(e)?e.slice(t):[],te=(e,t)=>Array.isArray(e)?e.slice(0,-t):[],d=e=>e==null?[]:Array.isArray(e)?e:[e],f=(e,t)=>{if(Array.isArray(e))return typeof t==`number`?e.slice(0,t):e[0]},ne=(e,t)=>{if(!Array.isArray(e)&&typeof e!=`string`)return;if(typeof t!=`number`){let t=e;return t[t.length-1]}let n=Math.abs(t);return e.slice(-n)},p=e=>e&&typeof e==`object`&&!Array.isArray(e)?Object.keys(e).length:typeof e==`string`||Array.isArray(e)?e.length:0,re=[{name:`after`,category:`array`,compatibility:[`browser`,`nodejs`],fn:ee},{name:`before`,category:`array`,compatibility:[`browser`,`nodejs`],fn:te},{name:`arrayify`,category:`array`,compatibility:[`browser`,`nodejs`],fn:d},{name:`first`,category:`array`,compatibility:[`browser`,`nodejs`],fn:f},{name:`last`,category:`array`,compatibility:[`browser`,`nodejs`],fn:ne},{name:`length`,category:`array`,compatibility:[`browser`,`nodejs`],fn:p},{name:`join`,category:`array`,compatibility:[`browser`,`nodejs`],fn:(e,t=`, `)=>typeof e==`string`?e:Array.isArray(e)?e.join(t):``},{name:`forEach`,category:`array`,compatibility:[`browser`,`nodejs`],fn:function(e,t){if(!Array.isArray(e)||!t||typeof t.fn!=`function`)return t?.inverse?t.inverse(this)??``:``;if(e.length===0)return t.inverse?t.inverse(this)??``:``;let n=e.length,r=t.hash??{},i=t.data?{...t.data}:void 0,a=``;for(let o=0;o<n;o++){let s=e[o],c={index:o,total:n,isFirst:o===0,isLast:o===n-1},l={...i?{...i}:{},...r,...c},u;u=typeof s==`object`&&s?{...s,...r,...c}:{value:s,...r,...c},a+=t.fn(u,{data:l})}return a}},{name:`inArray`,category:`array`,compatibility:[`browser`,`nodejs`],fn:function(e,t,n){if(!Array.isArray(e)||!n)return``;let r=e.includes(t);return r&&n.fn?n.fn(this):!r&&n.inverse?n.inverse(this):``}},{name:`isArray`,category:`array`,compatibility:[`browser`,`nodejs`],fn:e=>Array.isArray(e)},{name:`itemAt`,category:`array`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{if(Array.isArray(e))return e[t]}},{name:`equalsLength`,category:`array`,compatibility:[`browser`,`nodejs`],fn:function(e,t,n){let r=p(e)===t;return n&&(n.fn||n.inverse)?r&&n.fn?n.fn(this):!r&&n.inverse?n.inverse(this):``:r}},{name:`some`,category:`array`,compatibility:[`browser`,`nodejs`],fn:function(e,t,n){if(!Array.isArray(e)||typeof t!=`function`||!n)return n?.inverse?n.inverse(this)??``:``;let r=e.some(t);return r&&n.fn?n.fn(this):!r&&n.inverse?n.inverse(this):``}},{name:`eachIndex`,category:`array`,compatibility:[`browser`,`nodejs`],fn:function(e,t){if(!Array.isArray(e)||!t||typeof t.fn!=`function`)return t?.inverse?t.inverse(this)??``:``;if(e.length===0)return t.inverse?t.inverse(this)??``:``;let n=``;for(let r=0;r<e.length;r++){let i={item:e[r],index:r};n+=t.fn(i)}return n}},{name:`withAfter`,category:`array`,compatibility:[`browser`,`nodejs`],fn:function(e,t,n){if(!Array.isArray(e)||!n||typeof n.fn!=`function`)return``;let r=e.slice(t+1);if(r.length===0)return n.inverse?n.inverse(this)??``:``;let i=``;for(let e of r)i+=n.fn(e);return i}},{name:`withBefore`,category:`array`,compatibility:[`browser`,`nodejs`],fn:function(e,t,n){if(!Array.isArray(e)||!n||typeof n.fn!=`function`)return``;let r=e.slice(0,t);if(r.length===0)return n.inverse?n.inverse(this)??``:``;let i=``;for(let e of r)i+=n.fn(e);return i}},{name:`withFirst`,category:`array`,compatibility:[`browser`,`nodejs`],fn:function(e,t,n){let r=1,i=n;if(typeof t==`object`&&t&&!Array.isArray(t)?i=t:typeof t==`number`&&(r=t),!Array.isArray(e)||!i||typeof i.fn!=`function`)return``;if(e.length===0)return i.inverse?i.inverse(this)??``:``;let a=e.slice(0,r),o=``;for(let e of a)o+=i.fn(e);return o}},{name:`withLast`,category:`array`,compatibility:[`browser`,`nodejs`],fn:function(e,t,n){let r=1,i=n;if(typeof t==`object`&&t&&!Array.isArray(t)?i=t:typeof t==`number`&&(r=t),!Array.isArray(e)||!i||typeof i.fn!=`function`)return``;if(e.length===0)return i.inverse?i.inverse(this)??``:``;let a=e.slice(-r),o=``;for(let e of a)o+=i.fn(e);return o}},{name:`withGroup`,category:`array`,compatibility:[`browser`,`nodejs`],fn:function(e,t,n){if(!Array.isArray(e)||typeof t!=`number`||t<=0||!n||typeof n.fn!=`function`)return``;if(e.length===0)return n.inverse?n.inverse(this)??``:``;let r=``,i=[];for(let n=0;n<e.length;n+=t)i.push(e.slice(n,n+t));for(let e of i)r+=n.fn(e);return r}},{name:`withSort`,category:`array`,compatibility:[`browser`,`nodejs`],fn:function(e,t,n){let r,i=n;if(typeof t==`object`&&t&&!Array.isArray(t)?i=t:typeof t==`string`&&(r=t),!Array.isArray(e)||!i||typeof i.fn!=`function`)return``;if(e.length===0)return i.inverse?i.inverse(this)??``:``;let a=[...e];r?a.sort((e,t)=>{let n=e?.[r],i=t?.[r];return n===i?0:n==null?1:i==null?-1:typeof n==`string`&&typeof i==`string`?n.localeCompare(i):n<i?-1:1}):a.sort((e,t)=>e===t?0:e==null?1:t==null?-1:typeof e==`string`&&typeof t==`string`?e.localeCompare(t):e<t?-1:1),(i.hash?.reverse===!0||i.hash?.reverse===`true`)&&a.reverse();let o=``;for(let e of a)o+=i.fn(e);return o}},{name:`filter`,category:`array`,compatibility:[`browser`,`nodejs`],fn:function(e,t,n){if(!Array.isArray(e)||!n)return n?.inverse?n.inverse(this)??``:``;let r=e.filter(e=>e===t);return r.length>0&&n.fn?n.fn(this):r.length===0&&n.inverse?n.inverse(this):``}},{name:`map`,category:`array`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>!Array.isArray(e)||typeof t!=`function`?[]:e.map(t)},{name:`pluck`,category:`array`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>!Array.isArray(e)||typeof t!=`string`?[]:e.map(e=>{if(typeof e!=`object`||!e)return;let n=t.split(`.`),r=e;for(let e of n){if(typeof r!=`object`||!r)return;r=r[e]}return r})},{name:`reverse`,category:`array`,compatibility:[`browser`,`nodejs`],fn:e=>{if(typeof e==`string`)return e.split(``).reverse().join(``);if(Array.isArray(e))return[...e].reverse()}},{name:`sort`,category:`array`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{if(!Array.isArray(e))return[];let n=[...e];return typeof t==`function`?n.sort(t):typeof t==`string`?n.sort((e,n)=>{let r=e?.[t],i=n?.[t];return r===i?0:r==null?1:i==null?-1:typeof r==`string`&&typeof i==`string`?r.localeCompare(i):r<i?-1:1}):n.sort((e,t)=>e===t?0:e==null?1:t==null?-1:typeof e==`string`&&typeof t==`string`?e.localeCompare(t):e<t?-1:1),n}},{name:`sortBy`,category:`array`,compatibility:[`browser`,`nodejs`],fn:(e,...t)=>{if(!Array.isArray(e)||t.length===0)return[];let n=[...e];return n.sort((e,n)=>{for(let r of t){let t=e?.[r],i=n?.[r];if(t!==i){if(t==null)return 1;if(i==null)return-1;if(typeof t==`string`&&typeof i==`string`){let e=t.localeCompare(i);if(e!==0)return e}else return t<i?-1:1}}return 0}),n}},{name:`unique`,category:`array`,compatibility:[`browser`,`nodejs`],fn:function(e,t){if(!Array.isArray(e))return t?t.inverse?t.inverse(this)??``:``:[];let n=[...new Set(e)];if(!t)return n;if(n.length===0&&t.inverse)return t.inverse(this);if(n.length>0&&t.fn){let e=``;for(let r of n)e+=t.fn(r);return e}return``}}],ie=e=>e!==void 0&&(e===`/`||e===`!`||e===`?`||/[a-zA-Z]/.test(e)),ae=e=>{let t=``,n=!1,r=!1,i=null;for(let a=0;a<e.length;a++){let o=e[a];if(r){o===`-`&&e[a+1]===`-`&&e[a+2]===`>`&&(r=!1,a+=2);continue}if(n){i?o===i&&(i=null):o===`"`||o===`'`?i=o:o===`>`&&(n=!1);continue}if(o===`<`){if(e[a+1]===`!`&&e[a+2]===`-`&&e[a+3]===`-`){r=!0,a+=3;continue}if(ie(e[a+1])){n=!0;continue}}t+=o}return t},oe=new Set([`area`,`base`,`br`,`col`,`command`,`embed`,`hr`,`img`,`input`,`keygen`,`link`,`meta`,`param`,`source`,`track`,`wbr`,`circle`,`ellipse`,`line`,`path`,`polygon`,`polyline`,`rect`,`stop`,`use`]),m=(e,t={},n=``)=>{let r=`<${e}`;for(let[e,n]of Object.entries(t))n===!0?r+=` ${e}`:(typeof n==`string`||typeof n==`number`)&&(r+=` ${e}="${h(String(n))}"`);return oe.has(e.toLowerCase())?`${r}>`:`${r}>${g(n)}</${e}>`},h=e=>e.replace(/&/g,`&`).replace(/"/g,`"`).replace(/</g,`<`).replace(/>/g,`>`),g=e=>e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`),_=(e={})=>Object.keys(e).map(t=>`${t}="${String(e[t]).replace(/^['"]|["']$/g,``)}"`).join(` `),v=[{name:`attr`,category:`html`,compatibility:[`browser`,`nodejs`],fn:e=>{let t=_(e?.hash??{});return t.trim()?` ${t}`:``}},{name:`sanitize`,category:`html`,compatibility:[`browser`,`nodejs`],fn:e=>typeof e==`string`?ae(e).trim():``},{name:`ul`,category:`html`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{let n=_(t.hash??{}),r=e.map(e=>typeof e==`string`?e:t.fn(e));return`${n?`<ul ${n}>`:`<ul>`}${r.map(e=>`<li>${e}</li>`).join(`
|
|
2
2
|
`)}</ul>`}},{name:`ol`,category:`html`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{let n=_(t.hash??{}),r=e.map(e=>typeof e==`string`?e:t.fn(e));return`${n?`<ol ${n}>`:`<ol>`}${r.map(e=>`<li>${e}</li>`).join(`
|
|
3
|
-
`)}</ol>`}},{name:`thumbnailImage`,category:`html`,compatibility:[`browser`,`nodejs`],fn:e=>{let t=``,n=``,r=e.full||!1,i={alt:e.alt,src:e.thumbnail,width:e.size.width,height:e.size.height},a={id:`image-${e.id}`},o={href:r,rel:`thumbnail`};return e.classes&&(e.classes.image&&(i.class=e.classes.image.join(` `)),e.classes.figure&&(a.class=e.classes.figure.join(` `)),e.classes.link&&(o.class=e.classes.link.join(` `))),t+=`<figure ${_(a)}>\n`,n+=`<img ${_(i)}>\n`,r?t+=`<a ${_(o)}>\n${n}</a>\n`:t+=n,e.caption&&(t+=`<figcaption>${e.caption}</figcaption>\n`),t+=`</figure>`,t}}],se=[{name:`gist`,category:`code`,compatibility:[`browser`,`nodejs`],fn:e=>m(`script`,{src:`https://gist.github.com/${e}.js`})},{name:`jsfiddle`,category:`code`,compatibility:[`browser`,`nodejs`],fn:e=>{if(!e?.id)throw Error("jsfiddle helper expects an `id`");let{id:t,width:n=`100%`,height:r=`300`,skin:i=`/presentation/`,tabs:a=`result,js,html,css`,allowfullscreen:o=`allowfullscreen`,frameborder:s=`0`}=e;return m(`iframe`,{width:n,height:r,src:`http://jsfiddle.net/${t}/embedded/${a}${i}`,allowfullscreen:o,frameborder:s})}}],ce=[{name:`isEmpty`,category:`collection`,compatibility:[`browser`,`nodejs`],fn:e=>e==null?!0:Array.isArray(e)?e.length===0:typeof e==`object`?Object.keys(e).length===0:!1},{name:`iterate`,category:`collection`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{if(Array.isArray(e)){let n=``;for(let r=0;r<e.length;r++)n+=t(e[r],r);return n}if(e&&typeof e==`object`){let n=``;for(let r of Object.keys(e))n+=t(e[r],r);return n}return n?n():``}}],le=(...e)=>e.every(Boolean),ue=(e,t,n)=>{switch(t){case`==`:return e==n;case`===`:return e===n;case`!=`:return e!=n;case`!==`:return e!==n;case`<`:return e<n;case`>`:return e>n;case`<=`:return e<=n;case`>=`:return e>=n;case`typeof`:return typeof e===n;default:throw Error(`helper {{compare}}: invalid operator: '${t}'`)}},de=(e,t,n=0)=>e==null?!1:typeof e==`string`||Array.isArray(e)?e.indexOf(t,n)>-1:typeof e==`object`?t in e:!1,fe=(...e)=>{for(let t of e)if(t!=null)return t;return``},pe=(e,t)=>e===t,me=(e,t)=>e>t,he=(e,t)=>e>=t,ge=(e,t)=>e==null||t==null?!1:Array.isArray(e)||typeof e==`string`?e.indexOf(t)>-1:typeof e==`object`?t in e:!1,y=(e,t)=>{if(!e)return!0;let n=Array.isArray(t)?t:t==null?[`0`,`false`,`nada`,`nil`,`nay`,`nah`,`negative`,`no`,`none`,`nope`,`nul`,`null`,`nix`,`nyet`,`uh-uh`,`veto`,`zero`]:[t],r=typeof e==`string`?e.toLowerCase():null;for(let t of n)if(t===e||r!=null&&t===r)return!0;return!1},_e=[{name:`and`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:le},{name:`compare`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:ue},{name:`contains`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:de},{name:`default`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:fe},{name:`eq`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:pe},{name:`gt`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:me},{name:`gte`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:he},{name:`has`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:ge},{name:`isFalsey`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:e=>y(e)},{name:`isTruthy`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:e=>!y(e)},{name:`ifEven`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:e=>typeof e==`number`&&e%2==0},{name:`ifNth`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>typeof e==`number`&&typeof t==`number`&&t%e===0},{name:`ifOdd`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:e=>typeof e==`number`&&Math.abs(e%2)===1},{name:`is`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>e==t},{name:`isnt`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>e!=t},{name:`lt`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>e<t},{name:`lte`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>e<=t},{name:`neither`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>!e&&!t},{name:`not`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:e=>!e},{name:`or`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(...e)=>e.some(Boolean)},{name:`unlessEq`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>e!==t},{name:`unlessGt`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>e<=t},{name:`unlessLt`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>e>=t},{name:`unlessGteq`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>e<t},{name:`unlessLteq`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>e>t}];r.extend(a),r.extend(i),r.extend(s),r.extend(o);const b=e=>e?r(typeof e==`string`&&n(e)||e):r(),ve=()=>new Date().getFullYear().toString(),x=e=>e.replace(/yyyy/g,`YYYY`).replace(/yy/g,`YY`).replace(/dd/g,`DD`).replace(/mm/g,`MM`).replace(/hh/g,`HH`),S=(e,t)=>{let n=t||`YYYY-MM-DD`,r=b(e);if(!r.isValid())throw Error(`Unable to parse date: ${e}`);let i=x(n);return r.format(i)},ye=()=>Date.now().toString(),be=e=>{let t=x(e||`YYYY-MM-DD HH:mm:ss`);return r().format(t)},C=e=>{let t=b(e);if(!t.isValid())throw Error(`Unable to parse date: ${e}`);return t.fromNow()},xe=[{name:`year`,category:`date`,compatibility:[`browser`,`nodejs`],fn:ve},{name:`date`,category:`date`,compatibility:[`browser`,`nodejs`],fn:S},{name:`moment`,category:`date`,compatibility:[`browser`,`nodejs`],fn:S},{name:`timestamp`,category:`date`,compatibility:[`browser`,`nodejs`],fn:ye},{name:`now`,category:`date`,compatibility:[`browser`,`nodejs`],fn:be},{name:`fromNow`,category:`date`,compatibility:[`browser`,`nodejs`],fn:C},{name:`toNow`,category:`date`,compatibility:[`browser`,`nodejs`],fn:e=>{let t=b(e);if(!t.isValid())throw Error(`Unable to parse date: ${e}`);return t.toNow()}},{name:`ago`,category:`date`,compatibility:[`browser`,`nodejs`],fn:e=>C(e)},{name:`dateAdd`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{let r=b(e);if(!r.isValid())throw Error(`Unable to parse date: ${e}`);return r.add(t,n).format(`YYYY-MM-DD HH:mm:ss`)}},{name:`dateSubtract`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{let r=b(e);if(!r.isValid())throw Error(`Unable to parse date: ${e}`);return r.subtract(t,n).format(`YYYY-MM-DD HH:mm:ss`)}},{name:`startOf`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{let n=b(e);if(!n.isValid())throw Error(`Unable to parse date: ${e}`);return n.startOf(t).format(`YYYY-MM-DD HH:mm:ss`)}},{name:`endOf`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{let n=b(e);if(!n.isValid())throw Error(`Unable to parse date: ${e}`);return n.endOf(t).format(`YYYY-MM-DD HH:mm:ss`)}},{name:`isBefore`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{let n=b(e),r=b(t);if(!n.isValid()||!r.isValid())throw Error(`Unable to parse dates: ${e}, ${t}`);return n.isBefore(r)}},{name:`isAfter`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{let n=b(e),r=b(t);if(!n.isValid()||!r.isValid())throw Error(`Unable to parse dates: ${e}, ${t}`);return n.isAfter(r)}},{name:`isSame`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{let r=b(e),i=b(t);if(!r.isValid()||!i.isValid())throw Error(`Unable to parse dates: ${e}, ${t}`);return r.isSame(i,n)}},{name:`isBetween`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{let r=b(e),i=b(t),a=b(n);if(!r.isValid()||!i.isValid()||!a.isValid())throw Error(`Unable to parse dates: ${e}, ${t}, ${n}`);return r.isBetween(i,a,null,`[]`)}},{name:`diff`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{let r=b(e),i=b(t);if(!r.isValid()||!i.isValid())throw Error(`Unable to parse dates: ${e}, ${t}`);return r.diff(i,n)}},{name:`toISOString`,category:`date`,compatibility:[`browser`,`nodejs`],fn:e=>{let t=b(e);if(!t.isValid())throw Error(`Unable to parse date: ${e}`);return t.toISOString()}},{name:`dateTimezone`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{let r=x(n||`YYYY-MM-DD HH:mm:ss`),i=b(e);if(!i.isValid())throw Error(`Unable to parse date: ${e}`);return i.tz(t).format(r)}},{name:`dateLocale`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{let r=x(n||`YYYY-MM-DD HH:mm:ss`),i=b(e);if(!i.isValid())throw Error(`Unable to parse date: ${e}`);return i.locale(t).format(r)}}],w=(e,t)=>{if(!e||typeof e!=`object`)return;let n=Array.isArray(t)?t:t.split(`.`),r=e;for(let e of n){if(typeof r!=`object`||!r)return;r=r[e]}return r},T=(e,t)=>{if(!e||typeof e!=`object`)return;let n=Array.isArray(t)?t:t.split(`.`);if(n.length===0)return;let r=e;for(let e=0;e<n.length-1;e++){if(typeof r!=`object`||!r)return;r=r[n[e]]}let i=n[n.length-1];if(!(typeof r!=`object`||!r||!(i in r)))return{[i]:r[i]}},E=(e,t,n)=>{let r={};return e&&typeof e==`object`&&e.options&&Object.assign(r,e.options),t&&typeof t==`object`&&(`hash`in t?Object.assign(r,t.hash):Object.assign(r,t)),n&&typeof n==`object`&&(`hash`in n?Object.assign(r,n.hash):Object.assign(r,n)),r},D=[{name:`i18n`,category:`i18n`,compatibility:[`browser`,`nodejs`],fn:function(e,t,n){if(t&&typeof t==`object`&&`hash`in t&&n===void 0&&(n=t,t={}),typeof e!=`string`)throw Error(`{{i18n}} helper expected "key" to be a string`);let r={...this,...t,...n?.hash??{}},i=r.language||r.lang;if(typeof i!=`string`)throw TypeError(`{{i18n}} helper expected "language" to be a string`);let a=r[i];if(a===void 0)throw Error(`{{i18n}} helper cannot find language "${i}"`);let o=w(a,e);if(o===void 0)throw Error(`{{i18n}} helper cannot find property "`+String(e)+`" for language "`+i+`"`);return String(o)}}],O=[{name:`inflect`,category:`inflection`,compatibility:[`browser`,`nodejs`],fn:(e,t,n,r)=>{let i=e>1||e===0?n:t;return r?`${e} ${i}`:i}},{name:`ordinalize`,category:`inflection`,compatibility:[`browser`,`nodejs`],fn:e=>{let t=Math.abs(Math.round(Number(e))),n=String(e),r=t%100;if([11,12,13].includes(r))return`${n}th`;switch(t%10){case 1:return`${n}st`;case 2:return`${n}nd`;case 3:return`${n}rd`;default:return`${n}th`}}}],k=(e,t,n)=>{let r=typeof t==`string`?t.split(/, */):t;return c(typeof e==`string`?[e]:e,r,n)},A=[{name:`match`,category:`match`,compatibility:[`browser`,`nodejs`],fn:k},{name:`isMatch`,category:`match`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>c.isMatch(e,t,n)},{name:`mm`,category:`match`,compatibility:[`browser`,`nodejs`],fn:(...e)=>(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.`),k(...e))}],j=e=>typeof e==`number`&&!Number.isNaN(e)||typeof e==`string`&&e.trim()!==``&&!Number.isNaN(Number(e)),M=(e,t=`expected a number`)=>{if(j(e))return Number(e);throw TypeError(t)},Se=e=>{let t=M(e);return Math.abs(t)},Ce=(e,t)=>j(e)&&j(t)?Number(e)+Number(t):``,we=(...e)=>{let t=e.flat().map(e=>Number(e));return P(t)/t.length},Te=e=>{let t=M(e);return Math.ceil(t)},Ee=(e,t)=>M(e,`expected the first argument to be a number`)/M(t,`expected the second argument to be a number`),De=e=>{let t=M(e);return Math.floor(t)},Oe=(e,t)=>M(e,`expected the first argument to be a number`)-M(t,`expected the second argument to be a number`),ke=(e,t)=>M(e,`expected the first argument to be a number`)%M(t,`expected the second argument to be a number`),N=(e,t)=>M(e,`expected the first argument to be a number`)*M(t,`expected the second argument to be a number`),Ae=(e,t)=>M(e,`expected the first argument to be a number`)+M(t,`expected the second argument to be a number`),je=(e,t)=>{let n=M(e,`expected minimum to be a number`),r=M(t,`expected maximum to be a number`);return n+Math.floor(Math.random()*(r-n+1))},Me=(e,t)=>e%t,Ne=e=>{let t=M(e);return Math.round(t)},Pe=(e,t)=>M(e,`expected the first argument to be a number`)-M(t,`expected the second argument to be a number`),P=(...e)=>{let t=e.flat(),n=0;for(let e of t)j(e)&&(n+=Number(e));return n},Fe=[{name:`abs`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Se},{name:`add`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Ce},{name:`avg`,category:`math`,compatibility:[`browser`,`nodejs`],fn:we},{name:`ceil`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Te},{name:`divide`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Ee},{name:`floor`,category:`math`,compatibility:[`browser`,`nodejs`],fn:De},{name:`minus`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Oe},{name:`modulo`,category:`math`,compatibility:[`browser`,`nodejs`],fn:ke},{name:`multiply`,category:`math`,compatibility:[`browser`,`nodejs`],fn:N},{name:`plus`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Ae},{name:`random`,category:`math`,compatibility:[`browser`,`nodejs`],fn:je},{name:`remainder`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Me},{name:`round`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Ne},{name:`subtract`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Pe},{name:`sum`,category:`math`,compatibility:[`browser`,`nodejs`],fn:P},{name:`times`,category:`math`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>N(e,t)}],Ie=new l({breaks:!0,html:!0,langPrefix:`lang-`,typographer:!1,xhtmlOut:!1});function Le(e){return new t.SafeString(Ie.render(e))}const F=function(e,t){return typeof e==`object`&&e&&`fn`in e&&typeof e.fn==`function`?e=e.fn(this):typeof e!=`string`&&(e=``),Le(e)},Re=[{name:`md`,category:`markdown`,compatibility:[`browser`,`nodejs`],fn:F},{name:`markdown`,category:`markdown`,compatibility:[`browser`,`nodejs`],fn:F}],I=Object.prototype.toString;function L(e){return typeof e.constructor==`function`?e.constructor.name:null}function ze(e){return L(e)===`GeneratorFunction`}function Be(e){return typeof e.throw==`function`&&typeof e.return==`function`&&typeof e.next==`function`}function Ve(e){return typeof e.toDateString==`function`&&typeof e.getDate==`function`&&typeof e.setDate==`function`}function He(e){return typeof e.message==`string`&&e.constructor&&typeof e.constructor.stackTraceLimit==`number`}function Ue(e){return typeof e.flags==`string`&&typeof e.ignoreCase==`boolean`&&typeof e.multiline==`boolean`&&typeof e.global==`boolean`}function We(e){if(e===void 0)return`undefined`;if(e===null)return`null`;let t=typeof e;if(t===`boolean`)return`boolean`;if(t===`string`)return`string`;if(t===`number`)return`number`;if(t===`symbol`)return`symbol`;if(t===`bigint`)return`bigint`;if(t===`function`)return ze(e)?`generatorfunction`:`function`;if(Array.isArray(e))return`array`;if(typeof Buffer<`u`&&Buffer.isBuffer?.(e))return`buffer`;if(typeof e.length==`number`&&I.call(e)===`[object Arguments]`)return`arguments`;if(e instanceof Date||Ve(e))return`date`;if(e instanceof Error||He(e))return`error`;if(e instanceof RegExp||Ue(e))return`regexp`;switch(L(e)){case`Promise`:return`promise`;case`WeakMap`:return`weakmap`;case`WeakSet`:return`weakset`;case`Map`:return`map`;case`Set`:return`set`;case`Int8Array`:return`int8array`;case`Uint8Array`:return`uint8array`;case`Uint8ClampedArray`:return`uint8clampedarray`;case`Int16Array`:return`int16array`;case`Uint16Array`:return`uint16array`;case`Int32Array`:return`int32array`;case`Uint32Array`:return`uint32array`;case`Float32Array`:return`float32array`;case`Float64Array`:return`float64array`}if(Be(e))return`generator`;let n=I.call(e);switch(n){case`[object Object]`:return`object`;case`[object Map Iterator]`:return`mapiterator`;case`[object Set Iterator]`:return`setiterator`;case`[object String Iterator]`:return`stringiterator`;case`[object Array Iterator]`:return`arrayiterator`}return n.slice(8,-1).toLowerCase().replace(/\s/g,``)}function Ge(e,n){typeof e==`object`&&e&&`hash`in e&&(n=e,e=n.data);let r=t.createFrame(e||{});return(typeof n!=`object`||!n)&&(n={}),n.hash&&typeof n.hash==`object`&&Object.assign(r,n.hash),n.fn(this,{data:r})}function Ke(e,t,n){return w(E(this,t,n),e)}function qe(e){return e.fn(this)}const Je=We;function Ye(e){return e.hash&&Object.keys(e.hash).length?e.fn(e.hash):e.inverse(this)}const Xe=[{name:`frame`,category:`misc`,compatibility:[`browser`,`nodejs`],fn:Ge},{name:`option`,category:`misc`,compatibility:[`browser`,`nodejs`],fn:Ke},{name:`noop`,category:`misc`,compatibility:[`browser`,`nodejs`],fn:qe},{name:`typeOf`,category:`misc`,compatibility:[`browser`,`nodejs`],fn:Je},{name:`withHash`,category:`misc`,compatibility:[`browser`,`nodejs`],fn:Ye}],R=e=>typeof e==`number`&&!Number.isNaN(e),Ze=[{name:`bytes`,category:`number`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{if(e==null)return`0 B`;let n;if(typeof e==`string`){if(n=e.length,!n)return`0 B`}else if(R(e))n=Number(e);else if(typeof e.length==`number`){if(n=e.length,!n)return`0 B`}else return`0 B`;let r=typeof t==`number`&&!Number.isNaN(t)?t:2,i=[`B`,`kB`,`MB`,`GB`,`TB`,`PB`,`EB`,`ZB`,`YB`],a=10**r;for(let e=i.length-1;e>=0;e--){let t=10**(e*3);if(t<=n+1)return`${Math.round(n*a/t)/a} ${i[e]}`}return`${n}`}},{name:`addCommas`,category:`number`,compatibility:[`browser`,`nodejs`],fn:e=>e.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g,`$1,`)},{name:`phoneNumber`,category:`number`,compatibility:[`browser`,`nodejs`],fn:e=>{let t=e.toString();return`(${t.substr(0,3)}) ${t.substr(3,3)}-${t.substr(6,4)}`}},{name:`toAbbr`,category:`number`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{let n=R(e)?Number(e):0,r=10**(typeof t==`number`&&!Number.isNaN(t)?t:2),i=[`k`,`m`,`b`,`t`,`q`];for(let e=i.length-1;e>=0;e--){let t=10**((e+1)*3);if(t<=n+1)return`${Math.round(n*r/t)/r}${i[e]}`}return`${n}`}},{name:`toExponential`,category:`number`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{let n=R(e)?Number(e):0,r=typeof t==`number`&&!Number.isNaN(t)?t:0;return Number(n).toExponential(r)}},{name:`toFixed`,category:`number`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{let n=R(e)?Number(e):0,r=typeof t==`number`&&!Number.isNaN(t)?t:0;return Number(n).toFixed(r)}},{name:`toFloat`,category:`number`,compatibility:[`browser`,`nodejs`],fn:e=>parseFloat(String(e))},{name:`toInt`,category:`number`,compatibility:[`browser`,`nodejs`],fn:e=>parseInt(String(e),10)},{name:`toPrecision`,category:`number`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{let n=R(e)?Number(e):0,r=typeof t==`number`&&!Number.isNaN(t)?t:1;return Number(n).toPrecision(r)}}],z=e=>!!(e&&typeof e==`object`&&`hash`in e),B=(e,t)=>({...e?.data||{},...t}),Qe=(...e)=>{let t=[...e];if(t.length&&z(t[t.length-1])){let e=t.pop();t.push(e.hash)}let n={};for(let e of t)e&&typeof e==`object`&&!Array.isArray(e)&&Object.assign(n,e);return n},$e=(e,t)=>{if(!z(t))return t?.inverse?.(e)??``;let n=B(t,t.hash||{}),r=``;for(let i in e)n.key=i,r+=t.fn(e[i],{data:n});return r},et=(e,t)=>{if(!z(t))return t?.inverse?.(e)??``;let n=B(t,t.hash||{}),r=``;for(let i in e)Object.hasOwn(e,i)&&(n.key=i,r+=t.fn(e[i],{data:n}));return r},tt=(...e)=>{let t=[];for(let n of e)(typeof n==`string`||typeof n==`number`)&&t.push(n);return t.join(`.`)},nt=(e,t,n)=>{let r=w(t,e);return n&&typeof n.fn==`function`?r?n.fn(r):n.inverse?.(t):r},rt=(e,t)=>T(t,e),it=(e,t)=>Object.hasOwn(e,t),at=e=>!!e&&typeof e==`object`&&!Array.isArray(e),V=e=>JSON.parse(e),H=(e,t)=>JSON.stringify(e,null,typeof t==`number`?t:0),ot=[{name:`extend`,category:`object`,compatibility:[`browser`,`nodejs`],fn:Qe},{name:`forIn`,category:`object`,compatibility:[`browser`,`nodejs`],fn:$e},{name:`forOwn`,category:`object`,compatibility:[`browser`,`nodejs`],fn:et},{name:`toPath`,category:`object`,compatibility:[`browser`,`nodejs`],fn:tt},{name:`get`,category:`object`,compatibility:[`browser`,`nodejs`],fn:nt},{name:`getObject`,category:`object`,compatibility:[`browser`,`nodejs`],fn:rt},{name:`hasOwn`,category:`object`,compatibility:[`browser`,`nodejs`],fn:it},{name:`isObject`,category:`object`,compatibility:[`browser`,`nodejs`],fn:at},{name:`JSONparse`,category:`object`,compatibility:[`browser`,`nodejs`],fn:V},{name:`JSONstringify`,category:`object`,compatibility:[`browser`,`nodejs`],fn:H},{name:`merge`,category:`object`,compatibility:[`browser`,`nodejs`],fn:(e,...t)=>{let n=[e,...t];if(n.length&&z(n[n.length-1])){let e=n.pop();n.push(e.hash)}return Object.assign(n[0],...n.slice(1))}},{name:`parseJSON`,category:`object`,compatibility:[`browser`,`nodejs`],fn:V},{name:`pick`,category:`object`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{let r=d(e),i={};for(let e of r)i=Object.assign({},i,T(t,e));return n&&typeof n.fn==`function`?Object.keys(i).length?n.fn(i):n.inverse?.(t):i}},{name:`stringify`,category:`object`,compatibility:[`browser`,`nodejs`],fn:H}],st=[{name:`toRegex`,category:`regex`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{let r=E({},t,n);return new RegExp(e,r.flags)}},{name:`test`,category:`regex`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{if(typeof e!=`string`)return!1;if(!(t instanceof RegExp))throw TypeError(`expected a regular expression`);return t.test(e)}}],U=e=>e.trim().replace(/^[-_.\W\s]+|[-_.\W\s]+$/g,``),W=(e,t)=>e.length===1?e.toLowerCase():U(e).toLowerCase().replace(/[-_.\W\s]+(\w|$)/g,(e,n)=>t(n)),ct=(e,t)=>typeof e==`string`&&typeof t==`string`?e+t:e,lt=e=>typeof e==`string`?W(e,e=>e.toUpperCase()):``,G=e=>typeof e!=`string`||e.length===0?``:e.charAt(0).toUpperCase()+e.slice(1),ut=e=>typeof e==`string`?e.replace(/\w\S*/g,e=>G(e)):``,dt=(e,t)=>{if(typeof e!=`string`)return``;let n=``;for(let e=0;e<t;e++)n+=` `;return n+e+n},ft=e=>typeof e==`string`?U(e):``,pt=e=>typeof e==`string`?W(e,e=>`-${e}`):``,mt=e=>typeof e==`string`?W(e,e=>`.${e}`):``,K=(e,t,n)=>typeof e==`string`?(typeof n!=`string`&&(n=``),e.length>t?e.slice(0,t-n.length)+n:e):``,ht=(e,t)=>typeof e==`string`?e.length<=t?e:`${K(e,t)}…`:``,gt=e=>typeof e==`string`?e.split(` `).join(`-`):``,_t=e=>typeof e==`string`,q=e=>typeof e==`object`&&e&&`fn`in e&&typeof e.fn==`function`?String(e.fn()).toLowerCase():typeof e==`string`?e.toLowerCase():``,vt=e=>q(e),yt=(e,t)=>{if(typeof e!=`string`)return``;let n=t.length,r=e.indexOf(t,0),i=0;for(;r>-1;)i++,r=e.indexOf(t,r+n);return i},bt=e=>{if(typeof e!=`string`)return``;let t=W(e,e=>e.toUpperCase());return t.charAt(0).toUpperCase()+t.slice(1)},xt=e=>typeof e==`string`?W(e,e=>`/${e}`):``,St=(e,t)=>typeof e==`string`?(typeof t!=`string`&&(t=` `),e.split(t).join(`+`)):``,Ct=(e,t)=>typeof e==`string`&&typeof t==`string`?t+e:e,wt=(e,t)=>typeof e==`string`?typeof t==`string`?e.split(t).join(``):e:``,Tt=(e,t)=>typeof e==`string`?typeof t==`string`?e.replace(t,``):e:``,Et=(e,t,n)=>typeof e==`string`?typeof t==`string`?(typeof n!=`string`&&(n=``),e.split(t).join(n)):e:``,Dt=(e,t,n)=>typeof e==`string`?typeof t==`string`?(typeof n!=`string`&&(n=``),e.replace(t,n)):e:``,Ot=e=>typeof e==`string`?e.split(``).reverse().join(``):``,kt=e=>typeof e==`string`?e.replace(/((?:\S[^.?!]*)[.?!]*)/g,e=>e.charAt(0).toUpperCase()+e.substr(1).toLowerCase()):``,At=e=>typeof e==`string`?W(e,e=>`_${e}`):``,jt=e=>typeof e==`string`?e.trim():``,J=e=>typeof e==`string`?e.replace(/^\s+/,``):``,Mt=e=>typeof e==`string`?e.replace(/\s+$/,``):``,Nt=(e,t,n)=>{if(typeof e==`string`&&typeof t==`number`&&Number.isFinite(t)){typeof n!=`string`&&(n=`...`);let r=Math.trunc(t),i=e.split(` `);return r<i.length&&(i=i.slice(0,r)),i.join(` `).trim()+n}return``},Y=e=>typeof e==`object`&&e&&`fn`in e&&typeof e.fn==`function`?String(e.fn()).toUpperCase():typeof e==`string`?e.toUpperCase():``,Pt=[{name:`append`,category:`string`,compatibility:[`browser`,`nodejs`],fn:ct},{name:`camelcase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:lt},{name:`capitalize`,category:`string`,compatibility:[`browser`,`nodejs`],fn:G},{name:`capitalizeAll`,category:`string`,compatibility:[`browser`,`nodejs`],fn:ut},{name:`center`,category:`string`,compatibility:[`browser`,`nodejs`],fn:dt},{name:`chop`,category:`string`,compatibility:[`browser`,`nodejs`],fn:ft},{name:`dashcase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:pt},{name:`dotcase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:mt},{name:`ellipsis`,category:`string`,compatibility:[`browser`,`nodejs`],fn:ht},{name:`hyphenate`,category:`string`,compatibility:[`browser`,`nodejs`],fn:gt},{name:`isString`,category:`string`,compatibility:[`browser`,`nodejs`],fn:_t},{name:`lowercase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:q},{name:`downcase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:vt},{name:`occurrences`,category:`string`,compatibility:[`browser`,`nodejs`],fn:yt},{name:`pascalcase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:bt},{name:`pathcase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:xt},{name:`plusify`,category:`string`,compatibility:[`browser`,`nodejs`],fn:St},{name:`prepend`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Ct},{name:`remove`,category:`string`,compatibility:[`browser`,`nodejs`],fn:wt},{name:`removeFirst`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Tt},{name:`replace`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Et},{name:`replaceFirst`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Dt},{name:`reverse`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Ot},{name:`sentence`,category:`string`,compatibility:[`browser`,`nodejs`],fn:kt},{name:`snakecase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:At},{name:`trim`,category:`string`,compatibility:[`browser`,`nodejs`],fn:jt},{name:`trimLeft`,category:`string`,compatibility:[`browser`,`nodejs`],fn:J},{name:`trimRight`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Mt},{name:`truncate`,category:`string`,compatibility:[`browser`,`nodejs`],fn:K},{name:`truncateWords`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Nt},{name:`uppercase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Y},{name:`upcase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:e=>Y(e)},{name:`split`,category:`string`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>typeof e==`string`?(typeof t!=`string`&&(t=``),e.split(t)):``},{name:`startsWith`,category:`string`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>typeof e!=`string`||typeof t!=`string`?!1:t.startsWith(e)},{name:`titleize`,category:`string`,compatibility:[`browser`,`nodejs`],fn:e=>typeof e==`string`?e.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()):``},{name:`raw`,category:`string`,compatibility:[`browser`,`nodejs`],fn:e=>e&&typeof e.fn==`function`?e.fn():``}],X=[`browser`,`nodejs`],Z=e=>{if(typeof e==`string`)return encodeURIComponent(e)},Q=e=>{if(typeof e==`string`)return decodeURIComponent(e)};function Ft(...e){return Z.apply(this,e)}function It(...e){return Q.apply(this,e)}const Lt=[{name:`encodeURI`,category:`url`,compatibility:X,fn:Z},{name:`decodeURI`,category:`url`,compatibility:X,fn:Q},{name:`url_encode`,category:`url`,compatibility:X,fn:Ft},{name:`url_decode`,category:`url`,compatibility:X,fn:It},{name:`stripQuerystring`,category:`url`,compatibility:X,fn:e=>{if(typeof e==`string`)return e.split(`?`)[0]}}];var $=class extends u{init(){this.registerHelpers(re),this.registerHelpers(ce),this.registerHelpers(xe),this.registerHelpers(se),this.registerHelpers(v),this.registerHelpers(_e),this.registerHelpers(D),this.registerHelpers(O),this.registerHelpers(A),this.registerHelpers(Fe),this.registerHelpers(Re),this.registerHelpers(Xe),this.registerHelpers(Ze),this.registerHelpers(st),this.registerHelpers(Pt),this.registerHelpers(Lt),this.registerHelpers(ot)}};const Rt=t,zt=t.create();function Bt(e){new $().load(e.handlebars??e.hbs)}async function Vt(){let e=new $,n=t.create();return Object.keys(t.partials).length>0&&n.registerPartial(t.partials),e.load(n),n}function Ht(n){let r=new $,i=t.create();if(n?.handlebars?i=n.handlebars:Object.keys(t.partials).length>0&&i.registerPartial(t.partials),r.load(i),n?.caching){let t;t=n.caching instanceof e?n.caching:typeof n.caching==`object`?new e({useClone:!1,...n.caching}):new e({useClone:!1});let r=i.compile.bind(i);i.compile=(e,n)=>{let i=n?`${e}\0${JSON.stringify(n)}`:e,a=t.get(i);if(a)return a;let o=r(e,n);return t.set(i,o),o}}return i}export{e as CacheableMemory,Rt as Handlebars,$ as HelperRegistry,Vt as createHandlebars,Ht as fumanchu,zt as handlebars,Bt as helpers};
|
|
3
|
+
`)}</ol>`}},{name:`thumbnailImage`,category:`html`,compatibility:[`browser`,`nodejs`],fn:e=>{let t=``,n=``,r=e.full||!1,i={alt:e.alt,src:e.thumbnail,width:e.size.width,height:e.size.height},a={id:`image-${e.id}`},o={href:r,rel:`thumbnail`};return e.classes&&(e.classes.image&&(i.class=e.classes.image.join(` `)),e.classes.figure&&(a.class=e.classes.figure.join(` `)),e.classes.link&&(o.class=e.classes.link.join(` `))),t+=`<figure ${_(a)}>\n`,n+=`<img ${_(i)}>\n`,r?t+=`<a ${_(o)}>\n${n}</a>\n`:t+=n,e.caption&&(t+=`<figcaption>${e.caption}</figcaption>\n`),t+=`</figure>`,t}}],se=[{name:`gist`,category:`code`,compatibility:[`browser`,`nodejs`],fn:e=>m(`script`,{src:`https://gist.github.com/${e}.js`})},{name:`jsfiddle`,category:`code`,compatibility:[`browser`,`nodejs`],fn:e=>{if(!e?.id)throw Error("jsfiddle helper expects an `id`");let{id:t,width:n=`100%`,height:r=`300`,skin:i=`/presentation/`,tabs:a=`result,js,html,css`,allowfullscreen:o=`allowfullscreen`,frameborder:s=`0`}=e;return m(`iframe`,{width:n,height:r,src:`http://jsfiddle.net/${t}/embedded/${a}${i}`,allowfullscreen:o,frameborder:s})}}],ce=[{name:`isEmpty`,category:`collection`,compatibility:[`browser`,`nodejs`],fn:e=>e==null?!0:Array.isArray(e)?e.length===0:typeof e==`object`&&Object.keys(e).length===0},{name:`iterate`,category:`collection`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{if(Array.isArray(e)){let n=``;for(let r=0;r<e.length;r++)n+=t(e[r],r);return n}if(e&&typeof e==`object`){let n=``;for(let r of Object.keys(e))n+=t(e[r],r);return n}return n?n():``}}],le=(...e)=>e.every(Boolean),ue=(e,t,n)=>{switch(t){case`==`:return e==n;case`===`:return e===n;case`!=`:return e!=n;case`!==`:return e!==n;case`<`:return e<n;case`>`:return e>n;case`<=`:return e<=n;case`>=`:return e>=n;case`typeof`:return typeof e===n;default:throw Error(`helper {{compare}}: invalid operator: '${t}'`)}},de=(e,t,n=0)=>e==null?!1:typeof e==`string`||Array.isArray(e)?e.indexOf(t,n)>-1:typeof e==`object`&&t in e,fe=(...e)=>{for(let t of e)if(t!=null)return t;return``},pe=(e,t)=>e===t,me=(e,t)=>e>t,he=(e,t)=>e>=t,ge=(e,t)=>e==null||t==null?!1:Array.isArray(e)||typeof e==`string`?e.indexOf(t)>-1:typeof e==`object`&&t in e,y=(e,t)=>{if(!e)return!0;let n=Array.isArray(t)?t:t==null?[`0`,`false`,`nada`,`nil`,`nay`,`nah`,`negative`,`no`,`none`,`nope`,`nul`,`null`,`nix`,`nyet`,`uh-uh`,`veto`,`zero`]:[t],r=typeof e==`string`?e.toLowerCase():null;for(let t of n)if(t===e||r!=null&&t===r)return!0;return!1},_e=[{name:`and`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:le},{name:`compare`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:ue},{name:`contains`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:de},{name:`default`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:fe},{name:`eq`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:pe},{name:`gt`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:me},{name:`gte`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:he},{name:`has`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:ge},{name:`isFalsey`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:e=>y(e)},{name:`isTruthy`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:e=>!y(e)},{name:`ifEven`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:e=>typeof e==`number`&&e%2==0},{name:`ifNth`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>typeof e==`number`&&typeof t==`number`&&t%e===0},{name:`ifOdd`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:e=>typeof e==`number`&&Math.abs(e%2)===1},{name:`is`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>e==t},{name:`isnt`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>e!=t},{name:`lt`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>e<t},{name:`lte`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>e<=t},{name:`neither`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>!e&&!t},{name:`not`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:e=>!e},{name:`or`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(...e)=>e.some(Boolean)},{name:`unlessEq`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>e!==t},{name:`unlessGt`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>e<=t},{name:`unlessLt`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>e>=t},{name:`unlessGteq`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>e<t},{name:`unlessLteq`,category:`comparison`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>e>t}];r.extend(a),r.extend(i),r.extend(s),r.extend(o);const b=e=>e?r(typeof e==`string`&&n(e)||e):r(),ve=()=>new Date().getFullYear().toString(),x=e=>e.replace(/yyyy/g,`YYYY`).replace(/yy/g,`YY`).replace(/dd/g,`DD`).replace(/mm/g,`MM`).replace(/hh/g,`HH`),S=(e,t)=>{let n=t||`YYYY-MM-DD`,r=b(e);if(!r.isValid())throw Error(`Unable to parse date: ${e}`);let i=x(n);return r.format(i)},ye=()=>Date.now().toString(),be=e=>{let t=x(e||`YYYY-MM-DD HH:mm:ss`);return r().format(t)},C=e=>{let t=b(e);if(!t.isValid())throw Error(`Unable to parse date: ${e}`);return t.fromNow()},xe=[{name:`year`,category:`date`,compatibility:[`browser`,`nodejs`],fn:ve},{name:`date`,category:`date`,compatibility:[`browser`,`nodejs`],fn:S},{name:`moment`,category:`date`,compatibility:[`browser`,`nodejs`],fn:S},{name:`timestamp`,category:`date`,compatibility:[`browser`,`nodejs`],fn:ye},{name:`now`,category:`date`,compatibility:[`browser`,`nodejs`],fn:be},{name:`fromNow`,category:`date`,compatibility:[`browser`,`nodejs`],fn:C},{name:`toNow`,category:`date`,compatibility:[`browser`,`nodejs`],fn:e=>{let t=b(e);if(!t.isValid())throw Error(`Unable to parse date: ${e}`);return t.toNow()}},{name:`ago`,category:`date`,compatibility:[`browser`,`nodejs`],fn:e=>C(e)},{name:`dateAdd`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{let r=b(e);if(!r.isValid())throw Error(`Unable to parse date: ${e}`);return r.add(t,n).format(`YYYY-MM-DD HH:mm:ss`)}},{name:`dateSubtract`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{let r=b(e);if(!r.isValid())throw Error(`Unable to parse date: ${e}`);return r.subtract(t,n).format(`YYYY-MM-DD HH:mm:ss`)}},{name:`startOf`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{let n=b(e);if(!n.isValid())throw Error(`Unable to parse date: ${e}`);return n.startOf(t).format(`YYYY-MM-DD HH:mm:ss`)}},{name:`endOf`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{let n=b(e);if(!n.isValid())throw Error(`Unable to parse date: ${e}`);return n.endOf(t).format(`YYYY-MM-DD HH:mm:ss`)}},{name:`isBefore`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{let n=b(e),r=b(t);if(!n.isValid()||!r.isValid())throw Error(`Unable to parse dates: ${e}, ${t}`);return n.isBefore(r)}},{name:`isAfter`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{let n=b(e),r=b(t);if(!n.isValid()||!r.isValid())throw Error(`Unable to parse dates: ${e}, ${t}`);return n.isAfter(r)}},{name:`isSame`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{let r=b(e),i=b(t);if(!r.isValid()||!i.isValid())throw Error(`Unable to parse dates: ${e}, ${t}`);return r.isSame(i,n)}},{name:`isBetween`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{let r=b(e),i=b(t),a=b(n);if(!r.isValid()||!i.isValid()||!a.isValid())throw Error(`Unable to parse dates: ${e}, ${t}, ${n}`);return r.isBetween(i,a,null,`[]`)}},{name:`diff`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{let r=b(e),i=b(t);if(!r.isValid()||!i.isValid())throw Error(`Unable to parse dates: ${e}, ${t}`);return r.diff(i,n)}},{name:`toISOString`,category:`date`,compatibility:[`browser`,`nodejs`],fn:e=>{let t=b(e);if(!t.isValid())throw Error(`Unable to parse date: ${e}`);return t.toISOString()}},{name:`dateTimezone`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{let r=x(n||`YYYY-MM-DD HH:mm:ss`),i=b(e);if(!i.isValid())throw Error(`Unable to parse date: ${e}`);return i.tz(t).format(r)}},{name:`dateLocale`,category:`date`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{let r=x(n||`YYYY-MM-DD HH:mm:ss`),i=b(e);if(!i.isValid())throw Error(`Unable to parse date: ${e}`);return i.locale(t).format(r)}}],w=(e,t)=>{if(!e||typeof e!=`object`)return;let n=Array.isArray(t)?t:t.split(`.`),r=e;for(let e of n){if(typeof r!=`object`||!r)return;r=r[e]}return r},T=(e,t)=>{if(!e||typeof e!=`object`)return;let n=Array.isArray(t)?t:t.split(`.`);if(n.length===0)return;let r=e;for(let e=0;e<n.length-1;e++){if(typeof r!=`object`||!r)return;r=r[n[e]]}let i=n[n.length-1];if(!(typeof r!=`object`||!r||!(i in r)))return{[i]:r[i]}},E=(e,t,n)=>{let r={};return e&&typeof e==`object`&&e.options&&Object.assign(r,e.options),t&&typeof t==`object`&&(`hash`in t?Object.assign(r,t.hash):Object.assign(r,t)),n&&typeof n==`object`&&(`hash`in n?Object.assign(r,n.hash):Object.assign(r,n)),r},D=[{name:`i18n`,category:`i18n`,compatibility:[`browser`,`nodejs`],fn:function(e,t,n){if(t&&typeof t==`object`&&`hash`in t&&n===void 0&&(n=t,t={}),typeof e!=`string`)throw Error(`{{i18n}} helper expected "key" to be a string`);let r={...this,...t,...n?.hash??{}},i=r.language||r.lang;if(typeof i!=`string`)throw TypeError(`{{i18n}} helper expected "language" to be a string`);let a=r[i];if(a===void 0)throw Error(`{{i18n}} helper cannot find language "${i}"`);let o=w(a,e);if(o===void 0)throw Error(`{{i18n}} helper cannot find property "`+String(e)+`" for language "`+i+`"`);return String(o)}}],O=[{name:`inflect`,category:`inflection`,compatibility:[`browser`,`nodejs`],fn:(e,t,n,r)=>{let i=e>1||e===0?n:t;return r?`${e} ${i}`:i}},{name:`ordinalize`,category:`inflection`,compatibility:[`browser`,`nodejs`],fn:e=>{let t=Math.abs(Math.round(Number(e))),n=String(e),r=t%100;if([11,12,13].includes(r))return`${n}th`;switch(t%10){case 1:return`${n}st`;case 2:return`${n}nd`;case 3:return`${n}rd`;default:return`${n}th`}}}],k=(e,t,n)=>{let r=typeof t==`string`?t.split(/, */):t;return c(typeof e==`string`?[e]:e,r,n)},A=[{name:`match`,category:`match`,compatibility:[`browser`,`nodejs`],fn:k},{name:`isMatch`,category:`match`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>c.isMatch(e,t,n)},{name:`mm`,category:`match`,compatibility:[`browser`,`nodejs`],fn:(...e)=>(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.`),k(...e))}],j=e=>typeof e==`number`&&!Number.isNaN(e)||typeof e==`string`&&e.trim()!==``&&!Number.isNaN(Number(e)),M=(e,t=`expected a number`)=>{if(j(e))return Number(e);throw TypeError(t)},Se=e=>{let t=M(e);return Math.abs(t)},Ce=(e,t)=>j(e)&&j(t)?Number(e)+Number(t):``,we=(...e)=>{let t=e.flat().map(e=>Number(e));return P(t)/t.length},Te=e=>{let t=M(e);return Math.ceil(t)},Ee=(e,t)=>M(e,`expected the first argument to be a number`)/M(t,`expected the second argument to be a number`),De=e=>{let t=M(e);return Math.floor(t)},Oe=(e,t)=>M(e,`expected the first argument to be a number`)-M(t,`expected the second argument to be a number`),ke=(e,t)=>M(e,`expected the first argument to be a number`)%M(t,`expected the second argument to be a number`),N=(e,t)=>M(e,`expected the first argument to be a number`)*M(t,`expected the second argument to be a number`),Ae=(e,t)=>M(e,`expected the first argument to be a number`)+M(t,`expected the second argument to be a number`),je=(e,t)=>{let n=M(e,`expected minimum to be a number`),r=M(t,`expected maximum to be a number`);return n+Math.floor(Math.random()*(r-n+1))},Me=(e,t)=>e%t,Ne=e=>{let t=M(e);return Math.round(t)},Pe=(e,t)=>M(e,`expected the first argument to be a number`)-M(t,`expected the second argument to be a number`),P=(...e)=>{let t=e.flat(),n=0;for(let e of t)j(e)&&(n+=Number(e));return n},Fe=[{name:`abs`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Se},{name:`add`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Ce},{name:`avg`,category:`math`,compatibility:[`browser`,`nodejs`],fn:we},{name:`ceil`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Te},{name:`divide`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Ee},{name:`floor`,category:`math`,compatibility:[`browser`,`nodejs`],fn:De},{name:`minus`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Oe},{name:`modulo`,category:`math`,compatibility:[`browser`,`nodejs`],fn:ke},{name:`multiply`,category:`math`,compatibility:[`browser`,`nodejs`],fn:N},{name:`plus`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Ae},{name:`random`,category:`math`,compatibility:[`browser`,`nodejs`],fn:je},{name:`remainder`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Me},{name:`round`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Ne},{name:`subtract`,category:`math`,compatibility:[`browser`,`nodejs`],fn:Pe},{name:`sum`,category:`math`,compatibility:[`browser`,`nodejs`],fn:P},{name:`times`,category:`math`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>N(e,t)}],Ie=new l({breaks:!0,html:!0,langPrefix:`lang-`,typographer:!1,xhtmlOut:!1});function Le(e){return new t.SafeString(Ie.render(e))}const F=function(e,t){return typeof e==`object`&&e&&`fn`in e&&typeof e.fn==`function`?e=e.fn(this):typeof e!=`string`&&(e=``),Le(e)},Re=[{name:`md`,category:`markdown`,compatibility:[`browser`,`nodejs`],fn:F},{name:`markdown`,category:`markdown`,compatibility:[`browser`,`nodejs`],fn:F}],I=Object.prototype.toString;function L(e){return typeof e.constructor==`function`?e.constructor.name:null}function ze(e){return L(e)===`GeneratorFunction`}function Be(e){return typeof e.throw==`function`&&typeof e.return==`function`&&typeof e.next==`function`}function Ve(e){return typeof e.toDateString==`function`&&typeof e.getDate==`function`&&typeof e.setDate==`function`}function He(e){return typeof e.message==`string`&&e.constructor&&typeof e.constructor.stackTraceLimit==`number`}function Ue(e){return typeof e.flags==`string`&&typeof e.ignoreCase==`boolean`&&typeof e.multiline==`boolean`&&typeof e.global==`boolean`}function We(e){if(e===void 0)return`undefined`;if(e===null)return`null`;let t=typeof e;if(t===`boolean`)return`boolean`;if(t===`string`)return`string`;if(t===`number`)return`number`;if(t===`symbol`)return`symbol`;if(t===`bigint`)return`bigint`;if(t===`function`)return ze(e)?`generatorfunction`:`function`;if(Array.isArray(e))return`array`;if(typeof Buffer<`u`&&Buffer.isBuffer?.(e))return`buffer`;if(typeof e.length==`number`&&I.call(e)===`[object Arguments]`)return`arguments`;if(e instanceof Date||Ve(e))return`date`;if(e instanceof Error||He(e))return`error`;if(e instanceof RegExp||Ue(e))return`regexp`;switch(L(e)){case`Promise`:return`promise`;case`WeakMap`:return`weakmap`;case`WeakSet`:return`weakset`;case`Map`:return`map`;case`Set`:return`set`;case`Int8Array`:return`int8array`;case`Uint8Array`:return`uint8array`;case`Uint8ClampedArray`:return`uint8clampedarray`;case`Int16Array`:return`int16array`;case`Uint16Array`:return`uint16array`;case`Int32Array`:return`int32array`;case`Uint32Array`:return`uint32array`;case`Float32Array`:return`float32array`;case`Float64Array`:return`float64array`}if(Be(e))return`generator`;let n=I.call(e);switch(n){case`[object Object]`:return`object`;case`[object Map Iterator]`:return`mapiterator`;case`[object Set Iterator]`:return`setiterator`;case`[object String Iterator]`:return`stringiterator`;case`[object Array Iterator]`:return`arrayiterator`}return n.slice(8,-1).toLowerCase().replace(/\s/g,``)}function Ge(e,n){typeof e==`object`&&e&&`hash`in e&&(n=e,e=n.data);let r=t.createFrame(e||{});return(typeof n!=`object`||!n)&&(n={}),n.hash&&typeof n.hash==`object`&&Object.assign(r,n.hash),n.fn(this,{data:r})}function Ke(e,t,n){return w(E(this,t,n),e)}function qe(e){return e.fn(this)}const Je=We;function Ye(e){return e.hash&&Object.keys(e.hash).length?e.fn(e.hash):e.inverse(this)}const Xe=[{name:`frame`,category:`misc`,compatibility:[`browser`,`nodejs`],fn:Ge},{name:`option`,category:`misc`,compatibility:[`browser`,`nodejs`],fn:Ke},{name:`noop`,category:`misc`,compatibility:[`browser`,`nodejs`],fn:qe},{name:`typeOf`,category:`misc`,compatibility:[`browser`,`nodejs`],fn:Je},{name:`withHash`,category:`misc`,compatibility:[`browser`,`nodejs`],fn:Ye}],R=e=>typeof e==`number`&&!Number.isNaN(e),Ze=[{name:`bytes`,category:`number`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{if(e==null)return`0 B`;let n;if(typeof e==`string`){if(n=e.length,!n)return`0 B`}else if(R(e))n=Number(e);else if(typeof e.length==`number`){if(n=e.length,!n)return`0 B`}else return`0 B`;let r=typeof t==`number`&&!Number.isNaN(t)?t:2,i=[`B`,`kB`,`MB`,`GB`,`TB`,`PB`,`EB`,`ZB`,`YB`],a=10**r;for(let e=i.length-1;e>=0;e--){let t=10**(e*3);if(t<=n+1)return`${Math.round(n*a/t)/a} ${i[e]}`}return`${n}`}},{name:`addCommas`,category:`number`,compatibility:[`browser`,`nodejs`],fn:e=>e.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g,`$1,`)},{name:`phoneNumber`,category:`number`,compatibility:[`browser`,`nodejs`],fn:e=>{let t=e.toString();return`(${t.substr(0,3)}) ${t.substr(3,3)}-${t.substr(6,4)}`}},{name:`toAbbr`,category:`number`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{let n=R(e)?Number(e):0,r=10**(typeof t==`number`&&!Number.isNaN(t)?t:2),i=[`k`,`m`,`b`,`t`,`q`];for(let e=i.length-1;e>=0;e--){let t=10**((e+1)*3);if(t<=n+1)return`${Math.round(n*r/t)/r}${i[e]}`}return`${n}`}},{name:`toExponential`,category:`number`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{let n=R(e)?Number(e):0,r=typeof t==`number`&&!Number.isNaN(t)?t:0;return Number(n).toExponential(r)}},{name:`toFixed`,category:`number`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{let n=R(e)?Number(e):0,r=typeof t==`number`&&!Number.isNaN(t)?t:0;return Number(n).toFixed(r)}},{name:`toFloat`,category:`number`,compatibility:[`browser`,`nodejs`],fn:e=>parseFloat(String(e))},{name:`toInt`,category:`number`,compatibility:[`browser`,`nodejs`],fn:e=>parseInt(String(e),10)},{name:`toPrecision`,category:`number`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{let n=R(e)?Number(e):0,r=typeof t==`number`&&!Number.isNaN(t)?t:1;return Number(n).toPrecision(r)}}],z=e=>!!(e&&typeof e==`object`&&`hash`in e),B=(e,t)=>({...e?.data||{},...t}),Qe=(...e)=>{let t=[...e];if(t.length&&z(t[t.length-1])){let e=t.pop();t.push(e.hash)}let n={};for(let e of t)e&&typeof e==`object`&&!Array.isArray(e)&&Object.assign(n,e);return n},$e=(e,t)=>{if(!z(t))return t?.inverse?.(e)??``;let n=B(t,t.hash||{}),r=``;for(let i in e)n.key=i,r+=t.fn(e[i],{data:n});return r},et=(e,t)=>{if(!z(t))return t?.inverse?.(e)??``;let n=B(t,t.hash||{}),r=``;for(let i in e)Object.hasOwn(e,i)&&(n.key=i,r+=t.fn(e[i],{data:n}));return r},tt=(...e)=>{let t=[];for(let n of e)(typeof n==`string`||typeof n==`number`)&&t.push(n);return t.join(`.`)},nt=(e,t,n)=>{let r=w(t,e);return n&&typeof n.fn==`function`?r?n.fn(r):n.inverse?.(t):r},rt=(e,t)=>T(t,e),it=(e,t)=>Object.hasOwn(e,t),at=e=>!!e&&typeof e==`object`&&!Array.isArray(e),V=e=>JSON.parse(e),H=(e,t)=>JSON.stringify(e,null,typeof t==`number`?t:0),ot=[{name:`extend`,category:`object`,compatibility:[`browser`,`nodejs`],fn:Qe},{name:`forIn`,category:`object`,compatibility:[`browser`,`nodejs`],fn:$e},{name:`forOwn`,category:`object`,compatibility:[`browser`,`nodejs`],fn:et},{name:`toPath`,category:`object`,compatibility:[`browser`,`nodejs`],fn:tt},{name:`get`,category:`object`,compatibility:[`browser`,`nodejs`],fn:nt},{name:`getObject`,category:`object`,compatibility:[`browser`,`nodejs`],fn:rt},{name:`hasOwn`,category:`object`,compatibility:[`browser`,`nodejs`],fn:it},{name:`isObject`,category:`object`,compatibility:[`browser`,`nodejs`],fn:at},{name:`JSONparse`,category:`object`,compatibility:[`browser`,`nodejs`],fn:V},{name:`JSONstringify`,category:`object`,compatibility:[`browser`,`nodejs`],fn:H},{name:`merge`,category:`object`,compatibility:[`browser`,`nodejs`],fn:(e,...t)=>{let n=[e,...t];if(n.length&&z(n[n.length-1])){let e=n.pop();n.push(e.hash)}return Object.assign(n[0],...n.slice(1))}},{name:`parseJSON`,category:`object`,compatibility:[`browser`,`nodejs`],fn:V},{name:`pick`,category:`object`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{let r=d(e),i={};for(let e of r)i=Object.assign({},i,T(t,e));return n&&typeof n.fn==`function`?Object.keys(i).length?n.fn(i):n.inverse?.(t):i}},{name:`stringify`,category:`object`,compatibility:[`browser`,`nodejs`],fn:H}],st=[{name:`toRegex`,category:`regex`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>{let r=E({},t,n);return new RegExp(e,r.flags)}},{name:`test`,category:`regex`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>{if(typeof e!=`string`)return!1;if(!(t instanceof RegExp))throw TypeError(`expected a regular expression`);return t.test(e)}}],U=e=>e.trim().replace(/^[-_.\W\s]+|[-_.\W\s]+$/g,``),W=(e,t)=>e.length===1?e.toLowerCase():U(e).toLowerCase().replace(/[-_.\W\s]+(\w|$)/g,(e,n)=>t(n)),ct=(e,t)=>typeof e==`string`&&typeof t==`string`?e+t:e,lt=e=>typeof e==`string`?W(e,e=>e.toUpperCase()):``,G=e=>typeof e!=`string`||e.length===0?``:e.charAt(0).toUpperCase()+e.slice(1),ut=e=>typeof e==`string`?e.replace(/\w\S*/g,e=>G(e)):``,dt=(e,t)=>{if(typeof e!=`string`)return``;let n=``;for(let e=0;e<t;e++)n+=` `;return n+e+n},ft=e=>typeof e==`string`?U(e):``,pt=e=>typeof e==`string`?W(e,e=>`-${e}`):``,mt=e=>typeof e==`string`?W(e,e=>`.${e}`):``,K=(e,t,n)=>typeof e==`string`?(typeof n!=`string`&&(n=``),e.length>t?e.slice(0,t-n.length)+n:e):``,ht=(e,t)=>typeof e==`string`?e.length<=t?e:`${K(e,t)}…`:``,gt=e=>typeof e==`string`?e.split(` `).join(`-`):``,_t=e=>typeof e==`string`,q=e=>typeof e==`object`&&e&&`fn`in e&&typeof e.fn==`function`?String(e.fn()).toLowerCase():typeof e==`string`?e.toLowerCase():``,vt=e=>q(e),yt=(e,t)=>{if(typeof e!=`string`)return``;let n=t.length,r=e.indexOf(t,0),i=0;for(;r>-1;)i++,r=e.indexOf(t,r+n);return i},bt=e=>{if(typeof e!=`string`)return``;let t=W(e,e=>e.toUpperCase());return t.charAt(0).toUpperCase()+t.slice(1)},xt=e=>typeof e==`string`?W(e,e=>`/${e}`):``,St=(e,t)=>typeof e==`string`?(typeof t!=`string`&&(t=` `),e.split(t).join(`+`)):``,Ct=(e,t)=>typeof e==`string`&&typeof t==`string`?t+e:e,wt=(e,t)=>typeof e==`string`?typeof t==`string`?e.split(t).join(``):e:``,Tt=(e,t)=>typeof e==`string`?typeof t==`string`?e.replace(t,``):e:``,Et=(e,t,n)=>typeof e==`string`?typeof t==`string`?(typeof n!=`string`&&(n=``),e.split(t).join(n)):e:``,Dt=(e,t,n)=>typeof e==`string`?typeof t==`string`?(typeof n!=`string`&&(n=``),e.replace(t,n)):e:``,Ot=e=>typeof e==`string`?e.split(``).reverse().join(``):``,kt=e=>typeof e==`string`?e.replace(/((?:\S[^.?!]*)[.?!]*)/g,e=>e.charAt(0).toUpperCase()+e.substr(1).toLowerCase()):``,At=e=>typeof e==`string`?W(e,e=>`_${e}`):``,jt=e=>typeof e==`string`?e.trim():``,J=e=>typeof e==`string`?e.replace(/^\s+/,``):``,Mt=e=>typeof e==`string`?e.replace(/\s+$/,``):``,Nt=(e,t,n)=>{if(typeof e==`string`&&typeof t==`number`&&Number.isFinite(t)){typeof n!=`string`&&(n=`...`);let r=Math.trunc(t),i=e.split(` `);return r<i.length&&(i=i.slice(0,r)),i.join(` `).trim()+n}return``},Y=e=>typeof e==`object`&&e&&`fn`in e&&typeof e.fn==`function`?String(e.fn()).toUpperCase():typeof e==`string`?e.toUpperCase():``,Pt=[{name:`append`,category:`string`,compatibility:[`browser`,`nodejs`],fn:ct},{name:`camelcase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:lt},{name:`capitalize`,category:`string`,compatibility:[`browser`,`nodejs`],fn:G},{name:`capitalizeAll`,category:`string`,compatibility:[`browser`,`nodejs`],fn:ut},{name:`center`,category:`string`,compatibility:[`browser`,`nodejs`],fn:dt},{name:`chop`,category:`string`,compatibility:[`browser`,`nodejs`],fn:ft},{name:`dashcase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:pt},{name:`dotcase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:mt},{name:`ellipsis`,category:`string`,compatibility:[`browser`,`nodejs`],fn:ht},{name:`hyphenate`,category:`string`,compatibility:[`browser`,`nodejs`],fn:gt},{name:`isString`,category:`string`,compatibility:[`browser`,`nodejs`],fn:_t},{name:`lowercase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:q},{name:`downcase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:vt},{name:`occurrences`,category:`string`,compatibility:[`browser`,`nodejs`],fn:yt},{name:`pascalcase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:bt},{name:`pathcase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:xt},{name:`plusify`,category:`string`,compatibility:[`browser`,`nodejs`],fn:St},{name:`prepend`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Ct},{name:`remove`,category:`string`,compatibility:[`browser`,`nodejs`],fn:wt},{name:`removeFirst`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Tt},{name:`replace`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Et},{name:`replaceFirst`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Dt},{name:`reverse`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Ot},{name:`sentence`,category:`string`,compatibility:[`browser`,`nodejs`],fn:kt},{name:`snakecase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:At},{name:`trim`,category:`string`,compatibility:[`browser`,`nodejs`],fn:jt},{name:`trimLeft`,category:`string`,compatibility:[`browser`,`nodejs`],fn:J},{name:`trimRight`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Mt},{name:`truncate`,category:`string`,compatibility:[`browser`,`nodejs`],fn:K},{name:`truncateWords`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Nt},{name:`uppercase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:Y},{name:`upcase`,category:`string`,compatibility:[`browser`,`nodejs`],fn:e=>Y(e)},{name:`split`,category:`string`,compatibility:[`browser`,`nodejs`],fn:(e,t)=>typeof e==`string`?(typeof t!=`string`&&(t=``),e.split(t)):``},{name:`startsWith`,category:`string`,compatibility:[`browser`,`nodejs`],fn:(e,t,n)=>typeof e!=`string`||typeof t!=`string`?!1:t.startsWith(e)},{name:`titleize`,category:`string`,compatibility:[`browser`,`nodejs`],fn:e=>typeof e==`string`?e.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()):``},{name:`raw`,category:`string`,compatibility:[`browser`,`nodejs`],fn:e=>e&&typeof e.fn==`function`?e.fn():``}],X=[`browser`,`nodejs`],Z=e=>{if(typeof e==`string`)return encodeURIComponent(e)},Q=e=>{if(typeof e==`string`)return decodeURIComponent(e)};function Ft(...e){return Z.apply(this,e)}function It(...e){return Q.apply(this,e)}const Lt=[{name:`encodeURI`,category:`url`,compatibility:X,fn:Z},{name:`decodeURI`,category:`url`,compatibility:X,fn:Q},{name:`url_encode`,category:`url`,compatibility:X,fn:Ft},{name:`url_decode`,category:`url`,compatibility:X,fn:It},{name:`stripQuerystring`,category:`url`,compatibility:X,fn:e=>{if(typeof e==`string`)return e.split(`?`)[0]}}];var $=class extends u{init(){this.registerHelpers(re),this.registerHelpers(ce),this.registerHelpers(xe),this.registerHelpers(se),this.registerHelpers(v),this.registerHelpers(_e),this.registerHelpers(D),this.registerHelpers(O),this.registerHelpers(A),this.registerHelpers(Fe),this.registerHelpers(Re),this.registerHelpers(Xe),this.registerHelpers(Ze),this.registerHelpers(st),this.registerHelpers(Pt),this.registerHelpers(Lt),this.registerHelpers(ot)}};const Rt=t,zt=t.create();function Bt(e){new $().load(e.handlebars??e.hbs)}async function Vt(){let e=new $,n=t.create();return Object.keys(t.partials).length>0&&n.registerPartial(t.partials),e.load(n),n}function Ht(n){let r=new $,i=t.create();if(n?.handlebars?i=n.handlebars:Object.keys(t.partials).length>0&&i.registerPartial(t.partials),r.load(i),n?.caching){let t;t=n.caching instanceof e?n.caching:typeof n.caching==`object`?new e({useClone:!1,...n.caching}):new e({useClone:!1});let r=i.compile.bind(i);i.compile=(e,n)=>{let i=n?`${e}\0${JSON.stringify(n)}`:e,a=t.get(i);if(a)return a;let o=r(e,n);return t.set(i,o),o}}return i}export{e as CacheableMemory,Rt as Handlebars,$ as HelperRegistry,Vt as createHandlebars,Ht as fumanchu,zt as handlebars,Bt as helpers};
|
package/dist/index.node.d.cts
CHANGED
package/dist/index.node.d.mts
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jaredwray/fumanchu",
|
|
3
3
|
"description": "Handlebars + Helpers = Fumanchu",
|
|
4
|
-
"version": "4.7.
|
|
4
|
+
"version": "4.7.2",
|
|
5
5
|
"homepage": "https://github.com/jaredwray/fumanchu",
|
|
6
6
|
"author": "Jared Wray (me@jaredwray.com)",
|
|
7
7
|
"type": "module",
|
|
@@ -79,30 +79,30 @@
|
|
|
79
79
|
"license"
|
|
80
80
|
],
|
|
81
81
|
"dependencies": {
|
|
82
|
-
"@cacheable/memory": "^2.0
|
|
83
|
-
"chrono-node": "2.
|
|
82
|
+
"@cacheable/memory": "^2.2.0",
|
|
83
|
+
"chrono-node": "2.10.1",
|
|
84
84
|
"dayjs": "^1.11.21",
|
|
85
85
|
"handlebars": "^4.7.9",
|
|
86
|
-
"markdown-it": "^14.
|
|
86
|
+
"markdown-it": "^14.3.0",
|
|
87
87
|
"micromatch": "^4.0.8"
|
|
88
88
|
},
|
|
89
89
|
"devDependencies": {
|
|
90
|
-
"@biomejs/biome": "^2.5.
|
|
90
|
+
"@biomejs/biome": "^2.5.5",
|
|
91
91
|
"@faker-js/faker": "^10.5.0",
|
|
92
92
|
"@monstermann/tinybench-pretty-printer": "^0.3.0",
|
|
93
93
|
"@types/markdown-it": "^14.1.2",
|
|
94
94
|
"@types/micromatch": "^4.0.10",
|
|
95
|
-
"@types/node": "^24.13.
|
|
96
|
-
"@vitest/coverage-v8": "^4.1.
|
|
97
|
-
"docula": "^2.
|
|
95
|
+
"@types/node": "^24.13.3",
|
|
96
|
+
"@vitest/coverage-v8": "^4.1.10",
|
|
97
|
+
"docula": "^2.2.0",
|
|
98
98
|
"dotenv": "^17.4.2",
|
|
99
|
-
"happy-dom": "^20.
|
|
99
|
+
"happy-dom": "^20.11.1",
|
|
100
100
|
"rimraf": "^6.1.3",
|
|
101
101
|
"tinybench": "^6.0.2",
|
|
102
|
-
"tsdown": "^0.22.
|
|
103
|
-
"tsx": "^4.
|
|
102
|
+
"tsdown": "^0.22.13",
|
|
103
|
+
"tsx": "^4.23.1",
|
|
104
104
|
"typescript": "^6.0.3",
|
|
105
|
-
"vitest": "^4.1.
|
|
105
|
+
"vitest": "^4.1.10"
|
|
106
106
|
},
|
|
107
107
|
"contributors": [
|
|
108
108
|
"Jared Wray (https://jaredwray.com)",
|