@donotdev/core 0.0.5 → 0.0.7

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/next/index.js CHANGED
@@ -1,7 +1,7 @@
1
- var ga=Object.create;var Qr=Object.defineProperty;var pa=Object.getOwnPropertyDescriptor;var ma=Object.getOwnPropertyNames;var ba=Object.getPrototypeOf,va=Object.prototype.hasOwnProperty;var H=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var Zr=(t,e)=>()=>(t&&(e=t(t=0)),e);var j=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var wa=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of ma(e))!va.call(t,i)&&i!==r&&Qr(t,i,{get:()=>e[i],enumerable:!(s=pa(e,i))||s.enumerable});return t};var ya=(t,e,r)=>(r=t!=null?ga(ba(t)):{},wa(e||!t||!t.__esModule?Qr(r,"default",{value:t,enumerable:!0}):r,t));function ss(t,e=null){let r=ce[t];if(!r)throw new Error(`Unknown pattern type: ${t}`);return e&&r.framework?{...r,framework:r.framework.map(s=>`${e}/${s}`)}:r}function Ft(t){return es[t]||es.base}var wt,ts,ge,Xe,lr,_e,Nt,ce,It,rs,cr,hr,es,Q=Zr(()=>{"use strict";g();wt={HOMEPAGE_FILE:"HomePage.tsx",HOMEPAGE_PATH:"/",HOMEPAGE_COMPONENT:"HomePage"},ts={available:["auth","oauth","billing","crud"],packageNames:{auth:"@donotdev/auth",oauth:"@donotdev/oauth",billing:"@donotdev/billing",crud:"@donotdev/crud"},hooks:{auth:["useAuth"],oauth:["useOAuth","useOAuthPartner","useOAuthConnection"],billing:["useStripeBilling","useStripeCheckout"],crud:["useCrud","useCrudCollection"]}},ge={routes:"routes",themes:"themes",i18n:"i18n",assets:"assets",env:"env"},Xe={next:{middleware:"middleware.ts",routeManifest:"public/route-manifest.json",assetManifest:"public/asset-manifest.json",utilities:"src/styles/utilities.generated.css",appPages:"src/app",appLayout:"src/app/layout.tsx",configRoute:"src/config/dndev-config-route.js",configTheme:"src/config/dndev-config-theme.js",configI18n:"src/config/dndev-config-i18n.js",configPwa:"src/config/dndev-config-pwa.js",configAsset:"src/config/dndev-config-asset.js",configSeo:"src/config/dndev-config-seo.js",configServer:"src/config/dndev-config-server.js"},vite:{routeInspection:"src/routes.generated.log",themeInspection:"src/themes.generated.log",i18nInspection:"src/i18n.generated.log",assetInspection:"src/assets.generated.log",envInspection:"src/env.generated.log"},manifests:{route:"route-manifest.json",theme:"theme-manifest.json",i18n:"i18n-manifest.json",asset:"asset-manifest.json",feature:"feature-manifest.json",env:"env-manifest.json"}},lr={package:"@donotdev/ui",assetsPath:"packages/ui/assets",browserTargets:["> 1%","last 2 versions","Firefox ESR","not dead","not op_mini all"]},_e={public:"public",fonts:"fonts",nodeModules:"node_modules",packages:"packages",core:"core",ui:"ui"},Nt={SOURCE_ROOT:"packages/core/i18n",SOURCE_LOCALES:"packages/core/i18n/locales",SOURCE_EAGER:"packages/core/i18n/locales/eager",SOURCE_LAZY:"packages/core/i18n/locales/lazy",PUBLISHED_ROOT:"i18n",PUBLISHED_LOCALES:"i18n/locales",PUBLISHED_EAGER:"i18n/locales/eager",PUBLISHED_LAZY:"i18n/locales/lazy"},ce={routes:{consumer:["src/**/*Page.tsx","src/pages/**/*Page.tsx"],exclude:["**/node_modules/**","**/dist/**","**/build/**","**/*.test.tsx","**/*.stories.tsx"],extensions:[".tsx"]},css:{consumer:["src/**/*.css"],themes:["src/**/*.css"],extensions:[".css",".scss",".sass"],framework:["packages/ui/src/**/*.css","packages/core/components/src/**/*.css","packages/core/templates/src/**/*.css"]},i18n:{eager:["src/locales/*_*.json"],lazy:["src/**/locales/*_*.json","!src/locales/*_*.json"],framework:{eager:[`${Nt.SOURCE_EAGER}/*_*.json`],lazy:[`${Nt.SOURCE_LAZY}/*_*.json`]},extensions:[".json"]},assets:{consumer:["public/**/*"],fallback:["manifest.json"],modern:["logo.svg","favicon.svg","apple-touch-icon.png","android-chrome-192x192.png","android-chrome-512x512.png"],patterns:["favicon.svg","favicon.ico","favicon-*.png","logo.svg","logo.png","logo.webp","logo.avif","apple-touch-icon*.png","android-chrome-*.png","manifest.json"],fonts:["fonts/**/*.woff2","fonts/**/*.woff","fonts/**/*.ttf"],framework:["packages/ui/assets/**/*"]},pwa:{consumer:["public/manifest.json","public/service-worker.js","public/sw.js","public/icon-192x192.png","public/icon-512x512.png","public/favicon.ico","public/favicon.svg","public/apple-touch-icon.png","public/logo.svg"],exclude:["**/node_modules/**","**/dist/**","**/build/**"],extensions:[".json",".js",".png",".svg",".ico"],framework:["packages/ui/assets/**/*"]},globalIgnore:["**/node_modules/**","**/dist/**","**/build/**","**/.git/**","**/coverage/**","**/test/**"]},It={mandatoryIncludes:["react","react-dom","react-router-dom","zustand","lucide-react","valibot","i18next","i18next-browser-languagedetector","i18next-http-backend","react-i18next","@tanstack/react-query","react-helmet-async","@donotdev/core","@donotdev/components","@donotdev/ui","@donotdev/templates","@donotdev/firebase"],optionalFeatures:["@donotdev/adv-comps","@donotdev/auth","@donotdev/billing","@donotdev/crud","@donotdev/oauth","shiki"],coreBundled:["@donotdev/types","@donotdev/utils","@donotdev/stores","@donotdev/schemas","@donotdev/hooks","@donotdev/i18n","@donotdev/config"],componentsBundled:["class-variance-authority","clsx","lucide-react","react-day-picker"],radixUIPattern:"@radix-ui/",buildTools:["esbuild","@esbuild/win32-x64","@esbuild/darwin-x64","@esbuild/linux-x64","@esbuild/darwin-arm64","@esbuild/linux-arm64","vite","rollup","rollup-plugin-visualizer","@vitejs/plugin-react","vite-tsconfig-paths","vite-plugin-pwa","vite-plugin-compression2","vite-plugin-node-polyfills","fsevents","postcss","postcss-import","postcss-nesting","autoprefixer"],buildTimePackages:[],largeOptional:["@sentry/react","framer-motion","stripe","@tanstack/react-query","shiki","sharp","semver","file-type"]},rs=["firebase-admin","gcp-metadata","google-logging-utils","payload","undici","@fastify/busboy","image-size","@donotdev/tooling","fs","path","crypto","net","tls","http","https","child_process","os","util","stream","buffer","events","querystring","url","zlib","assert","constants","domain","punycode","string_decoder","timers","tty","vm","worker_threads","cluster","dgram","dns","http2","inspector","module","perf_hooks","process","readline","repl","trace_events","v8","wasi"],cr={selectors:{class:/\.([a-zA-Z0-9-]+)/g,variable:/--[a-zA-Z0-9-]+/g,keyframe:/@keyframes\s+([a-zA-Z0-9-]+)/g},themes:{themeClass:/(?::root\.|\.)([a-z][a-z0-9-]+)\s*\{([\s\S]*?)\}/gim,themeLabel:/--theme-label\s*:\s*['"]([^'"]+)['"]/,themeIcon:/--theme-icon\s*:\s*['"]([^'"]+)['"]/,themeIsDark:/--theme-is-dark\s*:\s*(0|1)/}},hr=[{name:"light",displayName:"Light",icon:"Sun",isDark:!1}],es={base:{absolute:!0,onlyFiles:!0,ignore:ce.globalIgnore},css:{absolute:!0,onlyFiles:!0,ignore:[...ce.globalIgnore,"**/*.test.css"]},routes:{absolute:!0,onlyFiles:!0,ignore:[...ce.globalIgnore,"**/*.test.tsx","**/*.stories.tsx"]},i18n:{absolute:!0,onlyFiles:!0,ignore:ce.globalIgnore},assets:{absolute:!0,onlyFiles:!0,ignore:ce.globalIgnore}}});import{createRequire as Pa}from"node:module";import{fileURLToPath as xa}from"node:url";import{dirname as Ra,resolve as yu}from"node:path";import{Buffer as b}from"node:buffer";import p from"node:process";var $a,w,y,g=Zr(()=>{"use strict";$a=Pa(import.meta.url),w=xa(import.meta.url),y=Ra(w);typeof globalThis<"u"&&(globalThis.require=$a,globalThis.__filename=w,globalThis.__dirname=y,globalThis.Buffer=b,globalThis.process=p,typeof global>"u"&&(globalThis.global=globalThis))});var be=j((nf,ps)=>{g();var gs=t=>typeof t<"u"&&t!==null,Oa=t=>typeof t=="object",Ma=t=>Object.prototype.toString.call(t)==="[object Object]",za=t=>typeof t=="function",Ba=t=>typeof t=="boolean",Ua=t=>t instanceof b,qa=t=>{if(gs(t))switch(t.constructor){case Uint8Array:case Uint8ClampedArray:case Int8Array:case Uint16Array:case Int16Array:case Uint32Array:case Int32Array:case Float32Array:case Float64Array:return!0}return!1},Ga=t=>t instanceof ArrayBuffer,Ha=t=>typeof t=="string"&&t.length>0,Wa=t=>typeof t=="number"&&!Number.isNaN(t),Va=t=>Number.isInteger(t),Xa=(t,e,r)=>t>=e&&t<=r,Ja=(t,e)=>e.includes(t),Ka=(t,e,r)=>new Error(`Expected ${e} for ${t} but received ${r} of type ${typeof r}`),Ya=(t,e)=>(e.message=t.message,e);ps.exports={defined:gs,object:Oa,plainObject:Ma,fn:za,bool:Ba,buffer:Ua,typedArray:qa,arrayBuffer:Ga,string:Ha,number:Wa,integer:Va,inRange:Xa,inArray:Ja,invalidParameterError:Ka,nativeError:Ya}});var vs=j((of,bs)=>{"use strict";g();var ms=()=>p.platform==="linux",jt=null,Qa=()=>{if(!jt)if(ms()&&p.report){let t=p.report.excludeNetwork;p.report.excludeNetwork=!0,jt=p.report.getReport(),p.report.excludeNetwork=t}else jt={};return jt};bs.exports={isLinux:ms,getReport:Qa}});var ys=j((cf,ws)=>{"use strict";g();var tt=H("fs"),Za="/usr/bin/ldd",eo="/proc/self/exe",Dt=2048,to=t=>{let e=tt.openSync(t,"r"),r=b.alloc(Dt),s=tt.readSync(e,r,0,Dt,0);return tt.close(e,()=>{}),r.subarray(0,s)},ro=t=>new Promise((e,r)=>{tt.open(t,"r",(s,i)=>{if(s)r(s);else{let n=b.alloc(Dt);tt.read(i,n,0,Dt,0,(a,o)=>{e(n.subarray(0,o)),tt.close(i,()=>{})})}})});ws.exports={LDD_PATH:Za,SELF_PATH:eo,readFileSync:to,readFile:ro}});var Ps=j((uf,Es)=>{"use strict";g();var so=t=>{if(t.length<64||t.readUInt32BE(0)!==2135247942||t.readUInt8(4)!==2||t.readUInt8(5)!==1)return null;let e=t.readUInt32LE(32),r=t.readUInt16LE(54),s=t.readUInt16LE(56);for(let i=0;i<s;i++){let n=e+i*r;if(t.readUInt32LE(n)===3){let o=t.readUInt32LE(n+8),c=t.readUInt32LE(n+32);return t.subarray(o,o+c).toString().replace(/\0.*$/g,"")}}return null};Es.exports={interpreterPath:so}});var Lt=j((df,zs)=>{"use strict";g();var Rs=H("child_process"),{isLinux:rt,getReport:$s}=vs(),{LDD_PATH:Tt,SELF_PATH:ks,readFile:dr,readFileSync:gr}=ys(),{interpreterPath:Ss}=Ps(),ve,we,ye,As="getconf GNU_LIBC_VERSION 2>&1 || true; ldd --version 2>&1 || true",Oe="",_s=()=>Oe||new Promise(t=>{Rs.exec(As,(e,r)=>{Oe=e?" ":r,t(Oe)})}),Ns=()=>{if(!Oe)try{Oe=Rs.execSync(As,{encoding:"utf8"})}catch{Oe=" "}return Oe},Fe="glibc",Is=/LIBC[a-z0-9 \-).]*?(\d+\.\d+)/i,Je="musl",io=t=>t.includes("libc.musl-")||t.includes("ld-musl-"),Fs=()=>{let t=$s();return t.header&&t.header.glibcVersionRuntime?Fe:Array.isArray(t.sharedObjects)&&t.sharedObjects.some(io)?Je:null},Cs=t=>{let[e,r]=t.split(/[\r\n]+/);return e&&e.includes(Fe)?Fe:r&&r.includes(Je)?Je:null},js=t=>{if(t){if(t.includes("/ld-musl-"))return Je;if(t.includes("/ld-linux-"))return Fe}return null},Ds=t=>(t=t.toString(),t.includes("musl")?Je:t.includes("GNU C Library")?Fe:null),no=async()=>{if(we!==void 0)return we;we=null;try{let t=await dr(Tt);we=Ds(t)}catch{}return we},ao=()=>{if(we!==void 0)return we;we=null;try{let t=gr(Tt);we=Ds(t)}catch{}return we},oo=async()=>{if(ve!==void 0)return ve;ve=null;try{let t=await dr(ks),e=Ss(t);ve=js(e)}catch{}return ve},lo=()=>{if(ve!==void 0)return ve;ve=null;try{let t=gr(ks),e=Ss(t);ve=js(e)}catch{}return ve},Ts=async()=>{let t=null;if(rt()&&(t=await oo(),!t&&(t=await no(),t||(t=Fs()),!t))){let e=await _s();t=Cs(e)}return t},Ls=()=>{let t=null;if(rt()&&(t=lo(),!t&&(t=ao(),t||(t=Fs()),!t))){let e=Ns();t=Cs(e)}return t},co=async()=>rt()&&await Ts()!==Fe,ho=()=>rt()&&Ls()!==Fe,uo=async()=>{if(ye!==void 0)return ye;ye=null;try{let e=(await dr(Tt)).match(Is);e&&(ye=e[1])}catch{}return ye},fo=()=>{if(ye!==void 0)return ye;ye=null;try{let e=gr(Tt).match(Is);e&&(ye=e[1])}catch{}return ye},Os=()=>{let t=$s();return t.header&&t.header.glibcVersionRuntime?t.header.glibcVersionRuntime:null},xs=t=>t.trim().split(/\s+/)[1],Ms=t=>{let[e,r,s]=t.split(/[\r\n]+/);return e&&e.includes(Fe)?xs(e):r&&s&&r.includes(Je)?xs(s):null},go=async()=>{let t=null;if(rt()&&(t=await uo(),t||(t=Os()),!t)){let e=await _s();t=Ms(e)}return t},po=()=>{let t=null;if(rt()&&(t=fo(),t||(t=Os()),!t)){let e=Ns();t=Ms(e)}return t};zs.exports={GLIBC:Fe,MUSL:Je,family:Ts,familySync:Ls,isNonGlibcLinux:co,isNonGlibcLinuxSync:ho,version:go,versionSync:po}});var Et=j((pf,Bs)=>{"use strict";g();var mo=typeof p=="object"&&p.env&&p.env.NODE_DEBUG&&/\bsemver\b/i.test(p.env.NODE_DEBUG)?(...t)=>{}:()=>{};Bs.exports=mo});var Ot=j((bf,Us)=>{"use strict";g();var bo="2.0.0",vo=Number.MAX_SAFE_INTEGER||9007199254740991,wo=16,yo=250,Eo=["major","premajor","minor","preminor","patch","prepatch","prerelease"];Us.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:wo,MAX_SAFE_BUILD_LENGTH:yo,MAX_SAFE_INTEGER:vo,RELEASE_TYPES:Eo,SEMVER_SPEC_VERSION:bo,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var Pt=j((Ee,qs)=>{"use strict";g();var{MAX_SAFE_COMPONENT_LENGTH:pr,MAX_SAFE_BUILD_LENGTH:Po,MAX_LENGTH:xo}=Ot(),Ro=Et();Ee=qs.exports={};var $o=Ee.re=[],ko=Ee.safeRe=[],_=Ee.src=[],So=Ee.safeSrc=[],N=Ee.t={},Ao=0,mr="[a-zA-Z0-9-]",_o=[["\\s",1],["\\d",xo],[mr,Po]],No=t=>{for(let[e,r]of _o)t=t.split(`${e}*`).join(`${e}{0,${r}}`).split(`${e}+`).join(`${e}{1,${r}}`);return t},C=(t,e,r)=>{let s=No(e),i=Ao++;Ro(t,i,e),N[t]=i,_[i]=e,So[i]=s,$o[i]=new RegExp(e,r?"g":void 0),ko[i]=new RegExp(s,r?"g":void 0)};C("NUMERICIDENTIFIER","0|[1-9]\\d*");C("NUMERICIDENTIFIERLOOSE","\\d+");C("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${mr}*`);C("MAINVERSION",`(${_[N.NUMERICIDENTIFIER]})\\.(${_[N.NUMERICIDENTIFIER]})\\.(${_[N.NUMERICIDENTIFIER]})`);C("MAINVERSIONLOOSE",`(${_[N.NUMERICIDENTIFIERLOOSE]})\\.(${_[N.NUMERICIDENTIFIERLOOSE]})\\.(${_[N.NUMERICIDENTIFIERLOOSE]})`);C("PRERELEASEIDENTIFIER",`(?:${_[N.NONNUMERICIDENTIFIER]}|${_[N.NUMERICIDENTIFIER]})`);C("PRERELEASEIDENTIFIERLOOSE",`(?:${_[N.NONNUMERICIDENTIFIER]}|${_[N.NUMERICIDENTIFIERLOOSE]})`);C("PRERELEASE",`(?:-(${_[N.PRERELEASEIDENTIFIER]}(?:\\.${_[N.PRERELEASEIDENTIFIER]})*))`);C("PRERELEASELOOSE",`(?:-?(${_[N.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${_[N.PRERELEASEIDENTIFIERLOOSE]})*))`);C("BUILDIDENTIFIER",`${mr}+`);C("BUILD",`(?:\\+(${_[N.BUILDIDENTIFIER]}(?:\\.${_[N.BUILDIDENTIFIER]})*))`);C("FULLPLAIN",`v?${_[N.MAINVERSION]}${_[N.PRERELEASE]}?${_[N.BUILD]}?`);C("FULL",`^${_[N.FULLPLAIN]}$`);C("LOOSEPLAIN",`[v=\\s]*${_[N.MAINVERSIONLOOSE]}${_[N.PRERELEASELOOSE]}?${_[N.BUILD]}?`);C("LOOSE",`^${_[N.LOOSEPLAIN]}$`);C("GTLT","((?:<|>)?=?)");C("XRANGEIDENTIFIERLOOSE",`${_[N.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);C("XRANGEIDENTIFIER",`${_[N.NUMERICIDENTIFIER]}|x|X|\\*`);C("XRANGEPLAIN",`[v=\\s]*(${_[N.XRANGEIDENTIFIER]})(?:\\.(${_[N.XRANGEIDENTIFIER]})(?:\\.(${_[N.XRANGEIDENTIFIER]})(?:${_[N.PRERELEASE]})?${_[N.BUILD]}?)?)?`);C("XRANGEPLAINLOOSE",`[v=\\s]*(${_[N.XRANGEIDENTIFIERLOOSE]})(?:\\.(${_[N.XRANGEIDENTIFIERLOOSE]})(?:\\.(${_[N.XRANGEIDENTIFIERLOOSE]})(?:${_[N.PRERELEASELOOSE]})?${_[N.BUILD]}?)?)?`);C("XRANGE",`^${_[N.GTLT]}\\s*${_[N.XRANGEPLAIN]}$`);C("XRANGELOOSE",`^${_[N.GTLT]}\\s*${_[N.XRANGEPLAINLOOSE]}$`);C("COERCEPLAIN",`(^|[^\\d])(\\d{1,${pr}})(?:\\.(\\d{1,${pr}}))?(?:\\.(\\d{1,${pr}}))?`);C("COERCE",`${_[N.COERCEPLAIN]}(?:$|[^\\d])`);C("COERCEFULL",_[N.COERCEPLAIN]+`(?:${_[N.PRERELEASE]})?(?:${_[N.BUILD]})?(?:$|[^\\d])`);C("COERCERTL",_[N.COERCE],!0);C("COERCERTLFULL",_[N.COERCEFULL],!0);C("LONETILDE","(?:~>?)");C("TILDETRIM",`(\\s*)${_[N.LONETILDE]}\\s+`,!0);Ee.tildeTrimReplace="$1~";C("TILDE",`^${_[N.LONETILDE]}${_[N.XRANGEPLAIN]}$`);C("TILDELOOSE",`^${_[N.LONETILDE]}${_[N.XRANGEPLAINLOOSE]}$`);C("LONECARET","(?:\\^)");C("CARETTRIM",`(\\s*)${_[N.LONECARET]}\\s+`,!0);Ee.caretTrimReplace="$1^";C("CARET",`^${_[N.LONECARET]}${_[N.XRANGEPLAIN]}$`);C("CARETLOOSE",`^${_[N.LONECARET]}${_[N.XRANGEPLAINLOOSE]}$`);C("COMPARATORLOOSE",`^${_[N.GTLT]}\\s*(${_[N.LOOSEPLAIN]})$|^$`);C("COMPARATOR",`^${_[N.GTLT]}\\s*(${_[N.FULLPLAIN]})$|^$`);C("COMPARATORTRIM",`(\\s*)${_[N.GTLT]}\\s*(${_[N.LOOSEPLAIN]}|${_[N.XRANGEPLAIN]})`,!0);Ee.comparatorTrimReplace="$1$2$3";C("HYPHENRANGE",`^\\s*(${_[N.XRANGEPLAIN]})\\s+-\\s+(${_[N.XRANGEPLAIN]})\\s*$`);C("HYPHENRANGELOOSE",`^\\s*(${_[N.XRANGEPLAINLOOSE]})\\s+-\\s+(${_[N.XRANGEPLAINLOOSE]})\\s*$`);C("STAR","(<|>)?=?\\s*\\*");C("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");C("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var Mt=j((yf,Gs)=>{"use strict";g();var Io=Object.freeze({loose:!0}),Fo=Object.freeze({}),Co=t=>t?typeof t!="object"?Io:t:Fo;Gs.exports=Co});var Xs=j((Pf,Vs)=>{"use strict";g();var Hs=/^[0-9]+$/,Ws=(t,e)=>{if(typeof t=="number"&&typeof e=="number")return t===e?0:t<e?-1:1;let r=Hs.test(t),s=Hs.test(e);return r&&s&&(t=+t,e=+e),t===e?0:r&&!s?-1:s&&!r?1:t<e?-1:1},jo=(t,e)=>Ws(e,t);Vs.exports={compareIdentifiers:Ws,rcompareIdentifiers:jo}});var st=j((Rf,Ks)=>{"use strict";g();var zt=Et(),{MAX_LENGTH:Js,MAX_SAFE_INTEGER:Bt}=Ot(),{safeRe:Ut,t:qt}=Pt(),Do=Mt(),{compareIdentifiers:br}=Xs(),vr=class t{constructor(e,r){if(r=Do(r),e instanceof t){if(e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>Js)throw new TypeError(`version is longer than ${Js} characters`);zt("SemVer",e,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let s=e.trim().match(r.loose?Ut[qt.LOOSE]:Ut[qt.FULL]);if(!s)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+s[1],this.minor=+s[2],this.patch=+s[3],this.major>Bt||this.major<0)throw new TypeError("Invalid major version");if(this.minor>Bt||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>Bt||this.patch<0)throw new TypeError("Invalid patch version");s[4]?this.prerelease=s[4].split(".").map(i=>{if(/^[0-9]+$/.test(i)){let n=+i;if(n>=0&&n<Bt)return n}return i}):this.prerelease=[],this.build=s[5]?s[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(zt("SemVer.compare",this.version,this.options,e),!(e instanceof t)){if(typeof e=="string"&&e===this.version)return 0;e=new t(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof t||(e=new t(e,this.options)),this.major<e.major?-1:this.major>e.major?1:this.minor<e.minor?-1:this.minor>e.minor?1:this.patch<e.patch?-1:this.patch>e.patch?1:0}comparePre(e){if(e instanceof t||(e=new t(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let r=0;do{let s=this.prerelease[r],i=e.prerelease[r];if(zt("prerelease compare",r,s,i),s===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(s===void 0)return-1;if(s===i)continue;return br(s,i)}while(++r)}compareBuild(e){e instanceof t||(e=new t(e,this.options));let r=0;do{let s=this.build[r],i=e.build[r];if(zt("build compare",r,s,i),s===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(s===void 0)return-1;if(s===i)continue;return br(s,i)}while(++r)}inc(e,r,s){if(e.startsWith("pre")){if(!r&&s===!1)throw new Error("invalid increment argument: identifier is empty");if(r){let i=`-${r}`.match(this.options.loose?Ut[qt.PRERELEASELOOSE]:Ut[qt.PRERELEASE]);if(!i||i[1]!==r)throw new Error(`invalid identifier: ${r}`)}}switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",r,s);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",r,s);break;case"prepatch":this.prerelease.length=0,this.inc("patch",r,s),this.inc("pre",r,s);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",r,s),this.inc("pre",r,s);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let i=Number(s)?1:0;if(this.prerelease.length===0)this.prerelease=[i];else{let n=this.prerelease.length;for(;--n>=0;)typeof this.prerelease[n]=="number"&&(this.prerelease[n]++,n=-2);if(n===-1){if(r===this.prerelease.join(".")&&s===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(i)}}if(r){let n=[r,i];s===!1&&(n=[r]),br(this.prerelease[0],r)===0?isNaN(this.prerelease[1])&&(this.prerelease=n):this.prerelease=n}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};Ks.exports=vr});var Zs=j((kf,Qs)=>{"use strict";g();var Ys=st(),To=(t,e,r=!1)=>{if(t instanceof Ys)return t;try{return new Ys(t,e)}catch(s){if(!r)return null;throw s}};Qs.exports=To});var ti=j((Af,ei)=>{"use strict";g();var Lo=st(),Oo=Zs(),{safeRe:Gt,t:Ht}=Pt(),Mo=(t,e)=>{if(t instanceof Lo)return t;if(typeof t=="number"&&(t=String(t)),typeof t!="string")return null;e=e||{};let r=null;if(!e.rtl)r=t.match(e.includePrerelease?Gt[Ht.COERCEFULL]:Gt[Ht.COERCE]);else{let c=e.includePrerelease?Gt[Ht.COERCERTLFULL]:Gt[Ht.COERCERTL],u;for(;(u=c.exec(t))&&(!r||r.index+r[0].length!==t.length);)(!r||u.index+u[0].length!==r.index+r[0].length)&&(r=u),c.lastIndex=u.index+u[1].length+u[2].length;c.lastIndex=-1}if(r===null)return null;let s=r[2],i=r[3]||"0",n=r[4]||"0",a=e.includePrerelease&&r[5]?`-${r[5]}`:"",o=e.includePrerelease&&r[6]?`+${r[6]}`:"";return Oo(`${s}.${i}.${n}${a}${o}`,e)};ei.exports=Mo});var Ke=j((Nf,si)=>{"use strict";g();var ri=st(),zo=(t,e,r)=>new ri(t,r).compare(new ri(e,r));si.exports=zo});var wr=j((Ff,ii)=>{"use strict";g();var Bo=Ke(),Uo=(t,e,r)=>Bo(t,e,r)>=0;ii.exports=Uo});var ai=j((jf,ni)=>{"use strict";g();var yr=class{constructor(){this.max=1e3,this.map=new Map}get(e){let r=this.map.get(e);if(r!==void 0)return this.map.delete(e),this.map.set(e,r),r}delete(e){return this.map.delete(e)}set(e,r){if(!this.delete(e)&&r!==void 0){if(this.map.size>=this.max){let i=this.map.keys().next().value;this.delete(i)}this.map.set(e,r)}return this}};ni.exports=yr});var li=j((Tf,oi)=>{"use strict";g();var qo=Ke(),Go=(t,e,r)=>qo(t,e,r)===0;oi.exports=Go});var hi=j((Of,ci)=>{"use strict";g();var Ho=Ke(),Wo=(t,e,r)=>Ho(t,e,r)!==0;ci.exports=Wo});var fi=j((zf,ui)=>{"use strict";g();var Vo=Ke(),Xo=(t,e,r)=>Vo(t,e,r)>0;ui.exports=Xo});var gi=j((Uf,di)=>{"use strict";g();var Jo=Ke(),Ko=(t,e,r)=>Jo(t,e,r)<0;di.exports=Ko});var mi=j((Gf,pi)=>{"use strict";g();var Yo=Ke(),Qo=(t,e,r)=>Yo(t,e,r)<=0;pi.exports=Qo});var vi=j((Wf,bi)=>{"use strict";g();var Zo=li(),el=hi(),tl=fi(),rl=wr(),sl=gi(),il=mi(),nl=(t,e,r,s)=>{switch(e){case"===":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t===r;case"!==":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t!==r;case"":case"=":case"==":return Zo(t,r,s);case"!=":return el(t,r,s);case">":return tl(t,r,s);case">=":return rl(t,r,s);case"<":return sl(t,r,s);case"<=":return il(t,r,s);default:throw new TypeError(`Invalid operator: ${e}`)}};bi.exports=nl});var $i=j((Xf,Ri)=>{"use strict";g();var xt=Symbol("SemVer ANY"),xr=class t{static get ANY(){return xt}constructor(e,r){if(r=wi(r),e instanceof t){if(e.loose===!!r.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),Pr("comparator",e,r),this.options=r,this.loose=!!r.loose,this.parse(e),this.semver===xt?this.value="":this.value=this.operator+this.semver.version,Pr("comp",this)}parse(e){let r=this.options.loose?yi[Ei.COMPARATORLOOSE]:yi[Ei.COMPARATOR],s=e.match(r);if(!s)throw new TypeError(`Invalid comparator: ${e}`);this.operator=s[1]!==void 0?s[1]:"",this.operator==="="&&(this.operator=""),s[2]?this.semver=new Pi(s[2],this.options.loose):this.semver=xt}toString(){return this.value}test(e){if(Pr("Comparator.test",e,this.options.loose),this.semver===xt||e===xt)return!0;if(typeof e=="string")try{e=new Pi(e,this.options)}catch{return!1}return Er(e,this.operator,this.semver,this.options)}intersects(e,r){if(!(e instanceof t))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new xi(e.value,r).test(this.value):e.operator===""?e.value===""?!0:new xi(this.value,r).test(e.semver):(r=wi(r),r.includePrerelease&&(this.value==="<0.0.0-0"||e.value==="<0.0.0-0")||!r.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||Er(this.semver,"<",e.semver,r)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||Er(this.semver,">",e.semver,r)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};Ri.exports=xr;var wi=Mt(),{safeRe:yi,t:Ei}=Pt(),Er=vi(),Pr=Et(),Pi=st(),xi=Rr()});var Rr=j((Kf,_i)=>{"use strict";g();var al=/\s+/g,$r=class t{constructor(e,r){if(r=ll(r),e instanceof t)return e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease?e:new t(e.raw,r);if(e instanceof kr)return this.raw=e.value,this.set=[[e]],this.formatted=void 0,this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=e.trim().replace(al," "),this.set=this.raw.split("||").map(s=>this.parseRange(s.trim())).filter(s=>s.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let s=this.set[0];if(this.set=this.set.filter(i=>!Si(i[0])),this.set.length===0)this.set=[s];else if(this.set.length>1){for(let i of this.set)if(i.length===1&&pl(i[0])){this.set=[i];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let e=0;e<this.set.length;e++){e>0&&(this.formatted+="||");let r=this.set[e];for(let s=0;s<r.length;s++)s>0&&(this.formatted+=" "),this.formatted+=r[s].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(e){let s=((this.options.includePrerelease&&dl)|(this.options.loose&&gl))+":"+e,i=ki.get(s);if(i)return i;let n=this.options.loose,a=n?ee[Z.HYPHENRANGELOOSE]:ee[Z.HYPHENRANGE];e=e.replace(a,$l(this.options.includePrerelease)),G("hyphen replace",e),e=e.replace(ee[Z.COMPARATORTRIM],hl),G("comparator trim",e),e=e.replace(ee[Z.TILDETRIM],ul),G("tilde trim",e),e=e.replace(ee[Z.CARETTRIM],fl),G("caret trim",e);let o=e.split(" ").map(m=>ml(m,this.options)).join(" ").split(/\s+/).map(m=>Rl(m,this.options));n&&(o=o.filter(m=>(G("loose invalid filter",m,this.options),!!m.match(ee[Z.COMPARATORLOOSE])))),G("range list",o);let c=new Map,u=o.map(m=>new kr(m,this.options));for(let m of u){if(Si(m))return[m];c.set(m.value,m)}c.size>1&&c.has("")&&c.delete("");let f=[...c.values()];return ki.set(s,f),f}intersects(e,r){if(!(e instanceof t))throw new TypeError("a Range is required");return this.set.some(s=>Ai(s,r)&&e.set.some(i=>Ai(i,r)&&s.every(n=>i.every(a=>n.intersects(a,r)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new cl(e,this.options)}catch{return!1}for(let r=0;r<this.set.length;r++)if(kl(this.set[r],e,this.options))return!0;return!1}};_i.exports=$r;var ol=ai(),ki=new ol,ll=Mt(),kr=$i(),G=Et(),cl=st(),{safeRe:ee,t:Z,comparatorTrimReplace:hl,tildeTrimReplace:ul,caretTrimReplace:fl}=Pt(),{FLAG_INCLUDE_PRERELEASE:dl,FLAG_LOOSE:gl}=Ot(),Si=t=>t.value==="<0.0.0-0",pl=t=>t.value==="",Ai=(t,e)=>{let r=!0,s=t.slice(),i=s.pop();for(;r&&s.length;)r=s.every(n=>i.intersects(n,e)),i=s.pop();return r},ml=(t,e)=>(t=t.replace(ee[Z.BUILD],""),G("comp",t,e),t=wl(t,e),G("caret",t),t=bl(t,e),G("tildes",t),t=El(t,e),G("xrange",t),t=xl(t,e),G("stars",t),t),te=t=>!t||t.toLowerCase()==="x"||t==="*",bl=(t,e)=>t.trim().split(/\s+/).map(r=>vl(r,e)).join(" "),vl=(t,e)=>{let r=e.loose?ee[Z.TILDELOOSE]:ee[Z.TILDE];return t.replace(r,(s,i,n,a,o)=>{G("tilde",t,s,i,n,a,o);let c;return te(i)?c="":te(n)?c=`>=${i}.0.0 <${+i+1}.0.0-0`:te(a)?c=`>=${i}.${n}.0 <${i}.${+n+1}.0-0`:o?(G("replaceTilde pr",o),c=`>=${i}.${n}.${a}-${o} <${i}.${+n+1}.0-0`):c=`>=${i}.${n}.${a} <${i}.${+n+1}.0-0`,G("tilde return",c),c})},wl=(t,e)=>t.trim().split(/\s+/).map(r=>yl(r,e)).join(" "),yl=(t,e)=>{G("caret",t,e);let r=e.loose?ee[Z.CARETLOOSE]:ee[Z.CARET],s=e.includePrerelease?"-0":"";return t.replace(r,(i,n,a,o,c)=>{G("caret",t,i,n,a,o,c);let u;return te(n)?u="":te(a)?u=`>=${n}.0.0${s} <${+n+1}.0.0-0`:te(o)?n==="0"?u=`>=${n}.${a}.0${s} <${n}.${+a+1}.0-0`:u=`>=${n}.${a}.0${s} <${+n+1}.0.0-0`:c?(G("replaceCaret pr",c),n==="0"?a==="0"?u=`>=${n}.${a}.${o}-${c} <${n}.${a}.${+o+1}-0`:u=`>=${n}.${a}.${o}-${c} <${n}.${+a+1}.0-0`:u=`>=${n}.${a}.${o}-${c} <${+n+1}.0.0-0`):(G("no pr"),n==="0"?a==="0"?u=`>=${n}.${a}.${o}${s} <${n}.${a}.${+o+1}-0`:u=`>=${n}.${a}.${o}${s} <${n}.${+a+1}.0-0`:u=`>=${n}.${a}.${o} <${+n+1}.0.0-0`),G("caret return",u),u})},El=(t,e)=>(G("replaceXRanges",t,e),t.split(/\s+/).map(r=>Pl(r,e)).join(" ")),Pl=(t,e)=>{t=t.trim();let r=e.loose?ee[Z.XRANGELOOSE]:ee[Z.XRANGE];return t.replace(r,(s,i,n,a,o,c)=>{G("xRange",t,s,i,n,a,o,c);let u=te(n),f=u||te(a),m=f||te(o),v=m;return i==="="&&v&&(i=""),c=e.includePrerelease?"-0":"",u?i===">"||i==="<"?s="<0.0.0-0":s="*":i&&v?(f&&(a=0),o=0,i===">"?(i=">=",f?(n=+n+1,a=0,o=0):(a=+a+1,o=0)):i==="<="&&(i="<",f?n=+n+1:a=+a+1),i==="<"&&(c="-0"),s=`${i+n}.${a}.${o}${c}`):f?s=`>=${n}.0.0${c} <${+n+1}.0.0-0`:m&&(s=`>=${n}.${a}.0${c} <${n}.${+a+1}.0-0`),G("xRange return",s),s})},xl=(t,e)=>(G("replaceStars",t,e),t.trim().replace(ee[Z.STAR],"")),Rl=(t,e)=>(G("replaceGTE0",t,e),t.trim().replace(ee[e.includePrerelease?Z.GTE0PRE:Z.GTE0],"")),$l=t=>(e,r,s,i,n,a,o,c,u,f,m,v)=>(te(s)?r="":te(i)?r=`>=${s}.0.0${t?"-0":""}`:te(n)?r=`>=${s}.${i}.0${t?"-0":""}`:a?r=`>=${r}`:r=`>=${r}${t?"-0":""}`,te(u)?c="":te(f)?c=`<${+u+1}.0.0-0`:te(m)?c=`<${u}.${+f+1}.0-0`:v?c=`<=${u}.${f}.${m}-${v}`:t?c=`<${u}.${f}.${+m+1}-0`:c=`<=${c}`,`${r} ${c}`.trim()),kl=(t,e,r)=>{for(let s=0;s<t.length;s++)if(!t[s].test(e))return!1;if(e.prerelease.length&&!r.includePrerelease){for(let s=0;s<t.length;s++)if(G(t[s].semver),t[s].semver!==kr.ANY&&t[s].semver.prerelease.length>0){let i=t[s].semver;if(i.major===e.major&&i.minor===e.minor&&i.patch===e.patch)return!0}return!1}return!0}});var Ii=j((Qf,Ni)=>{"use strict";g();var Sl=Rr(),Al=(t,e,r)=>{try{e=new Sl(e,r)}catch{return!1}return e.test(t)};Ni.exports=Al});var Sr=j((ed,_l)=>{_l.exports={name:"sharp",description:"High performance Node.js image processing, the fastest module to resize JPEG, PNG, WebP, GIF, AVIF and TIFF images",version:"0.34.5",author:"Lovell Fuller <npm@lovell.info>",homepage:"https://sharp.pixelplumbing.com",contributors:["Pierre Inglebert <pierre.inglebert@gmail.com>","Jonathan Ong <jonathanrichardong@gmail.com>","Chanon Sajjamanochai <chanon.s@gmail.com>","Juliano Julio <julianojulio@gmail.com>","Daniel Gasienica <daniel@gasienica.ch>","Julian Walker <julian@fiftythree.com>","Amit Pitaru <pitaru.amit@gmail.com>","Brandon Aaron <hello.brandon@aaron.sh>","Andreas Lind <andreas@one.com>","Maurus Cuelenaere <mcuelenaere@gmail.com>","Linus Unneb\xE4ck <linus@folkdatorn.se>","Victor Mateevitsi <mvictoras@gmail.com>","Alaric Holloway <alaric.holloway@gmail.com>","Bernhard K. Weisshuhn <bkw@codingforce.com>","Chris Riley <criley@primedia.com>","David Carley <dacarley@gmail.com>","John Tobin <john@limelightmobileinc.com>","Kenton Gray <kentongray@gmail.com>","Felix B\xFCnemann <Felix.Buenemann@gmail.com>","Samy Al Zahrani <samyalzahrany@gmail.com>","Chintan Thakkar <lemnisk8@gmail.com>","F. Orlando Galashan <frulo@gmx.de>","Kleis Auke Wolthuizen <info@kleisauke.nl>","Matt Hirsch <mhirsch@media.mit.edu>","Matthias Thoemmes <thoemmes@gmail.com>","Patrick Paskaris <patrick@paskaris.gr>","J\xE9r\xE9my Lal <kapouer@melix.org>","Rahul Nanwani <r.nanwani@gmail.com>","Alice Monday <alice0meta@gmail.com>","Kristo Jorgenson <kristo.jorgenson@gmail.com>","YvesBos <yves_bos@outlook.com>","Guy Maliar <guy@tailorbrands.com>","Nicolas Coden <nicolas@ncoden.fr>","Matt Parrish <matt.r.parrish@gmail.com>","Marcel Bretschneider <marcel.bretschneider@gmail.com>","Matthew McEachen <matthew+github@mceachen.org>","Jarda Kot\u011B\u0161ovec <jarda.kotesovec@gmail.com>","Kenric D'Souza <kenric.dsouza@gmail.com>","Oleh Aleinyk <oleg.aleynik@gmail.com>","Marcel Bretschneider <marcel.bretschneider@gmail.com>","Andrea Bianco <andrea.bianco@unibas.ch>","Rik Heywood <rik@rik.org>","Thomas Parisot <hi@oncletom.io>","Nathan Graves <nathanrgraves+github@gmail.com>","Tom Lokhorst <tom@lokhorst.eu>","Espen Hovlandsdal <espen@hovlandsdal.com>","Sylvain Dumont <sylvain.dumont35@gmail.com>","Alun Davies <alun.owain.davies@googlemail.com>","Aidan Hoolachan <ajhoolachan21@gmail.com>","Axel Eirola <axel.eirola@iki.fi>","Freezy <freezy@xbmc.org>","Daiz <taneli.vatanen@gmail.com>","Julian Aubourg <j@ubourg.net>","Keith Belovay <keith@picthrive.com>","Michael B. Klein <mbklein@gmail.com>","Jordan Prudhomme <jordan@raboland.fr>","Ilya Ovdin <iovdin@gmail.com>","Andargor <andargor@yahoo.com>","Paul Neave <paul.neave@gmail.com>","Brendan Kennedy <brenwken@gmail.com>","Brychan Bennett-Odlum <git@brychan.io>","Edward Silverton <e.silverton@gmail.com>","Roman Malieiev <aromaleev@gmail.com>","Tomas Szabo <tomas.szabo@deftomat.com>","Robert O'Rourke <robert@o-rourke.org>","Guillermo Alfonso Varela Chouci\xF1o <guillevch@gmail.com>","Christian Flintrup <chr@gigahost.dk>","Manan Jadhav <manan@motionden.com>","Leon Radley <leon@radley.se>","alza54 <alza54@thiocod.in>","Jacob Smith <jacob@frende.me>","Michael Nutt <michael@nutt.im>","Brad Parham <baparham@gmail.com>","Taneli Vatanen <taneli.vatanen@gmail.com>","Joris Dugu\xE9 <zaruike10@gmail.com>","Chris Banks <christopher.bradley.banks@gmail.com>","Ompal Singh <ompal.hitm09@gmail.com>","Brodan <christopher.hranj@gmail.com>","Ankur Parihar <ankur.github@gmail.com>","Brahim Ait elhaj <brahima@gmail.com>","Mart Jansink <m.jansink@gmail.com>","Lachlan Newman <lachnewman007@gmail.com>","Dennis Beatty <dennis@dcbeatty.com>","Ingvar Stepanyan <me@rreverser.com>","Don Denton <don@happycollision.com>"],scripts:{build:"node install/build.js",install:"node install/check.js || npm run build",clean:"rm -rf src/build/ .nyc_output/ coverage/ test/fixtures/output.*",test:"npm run lint && npm run test-unit",lint:"npm run lint-cpp && npm run lint-js && npm run lint-types","lint-cpp":"cpplint --quiet src/*.h src/*.cc","lint-js":"biome lint","lint-types":"tsd --files ./test/types/sharp.test-d.ts","test-leak":"./test/leak/leak.sh","test-unit":"node --experimental-test-coverage test/unit.mjs","package-from-local-build":"node npm/from-local-build.js","package-release-notes":"node npm/release-notes.js","docs-build":"node docs/build.mjs","docs-serve":"cd docs && npm start","docs-publish":"cd docs && npm run build && npx firebase-tools deploy --project pixelplumbing --only hosting:pixelplumbing-sharp"},type:"commonjs",main:"lib/index.js",types:"lib/index.d.ts",files:["install","lib","src/*.{cc,h,gyp}"],repository:{type:"git",url:"git://github.com/lovell/sharp.git"},keywords:["jpeg","png","webp","avif","tiff","gif","svg","jp2","dzi","image","resize","thumbnail","crop","embed","libvips","vips"],dependencies:{"@img/colour":"^1.0.0","detect-libc":"^2.1.2",semver:"^7.7.3"},optionalDependencies:{"@img/sharp-darwin-arm64":"0.34.5","@img/sharp-darwin-x64":"0.34.5","@img/sharp-libvips-darwin-arm64":"1.2.4","@img/sharp-libvips-darwin-x64":"1.2.4","@img/sharp-libvips-linux-arm":"1.2.4","@img/sharp-libvips-linux-arm64":"1.2.4","@img/sharp-libvips-linux-ppc64":"1.2.4","@img/sharp-libvips-linux-riscv64":"1.2.4","@img/sharp-libvips-linux-s390x":"1.2.4","@img/sharp-libvips-linux-x64":"1.2.4","@img/sharp-libvips-linuxmusl-arm64":"1.2.4","@img/sharp-libvips-linuxmusl-x64":"1.2.4","@img/sharp-linux-arm":"0.34.5","@img/sharp-linux-arm64":"0.34.5","@img/sharp-linux-ppc64":"0.34.5","@img/sharp-linux-riscv64":"0.34.5","@img/sharp-linux-s390x":"0.34.5","@img/sharp-linux-x64":"0.34.5","@img/sharp-linuxmusl-arm64":"0.34.5","@img/sharp-linuxmusl-x64":"0.34.5","@img/sharp-wasm32":"0.34.5","@img/sharp-win32-arm64":"0.34.5","@img/sharp-win32-ia32":"0.34.5","@img/sharp-win32-x64":"0.34.5"},devDependencies:{"@biomejs/biome":"^2.3.4","@cpplint/cli":"^0.1.0","@emnapi/runtime":"^1.7.0","@img/sharp-libvips-dev":"1.2.4","@img/sharp-libvips-dev-wasm32":"1.2.4","@img/sharp-libvips-win32-arm64":"1.2.4","@img/sharp-libvips-win32-ia32":"1.2.4","@img/sharp-libvips-win32-x64":"1.2.4","@types/node":"*",emnapi:"^1.7.0","exif-reader":"^2.0.2","extract-zip":"^2.0.1",icc:"^3.0.0","jsdoc-to-markdown":"^9.1.3","node-addon-api":"^8.5.0","node-gyp":"^11.5.0","tar-fs":"^3.1.1",tsd:"^0.33.0"},license:"Apache-2.0",engines:{node:"^18.17.0 || ^20.3.0 || >=21.0.0"},config:{libvips:">=8.17.3"},funding:{url:"https://opencollective.com/libvips"}}});var _r=j((td,Bi)=>{g();var{spawnSync:Wt}=H("node:child_process"),{createHash:Nl}=H("node:crypto"),Di=ti(),Il=wr(),Fl=Ii(),Fi=Lt(),{config:Cl,engines:Ci,optionalDependencies:jl}=Sr(),Dl=p.env.npm_package_config_libvips||Cl.libvips,Ti=Di(Dl).version,Tl=["darwin-arm64","darwin-x64","linux-arm","linux-arm64","linux-ppc64","linux-riscv64","linux-s390x","linux-x64","linuxmusl-arm64","linuxmusl-x64","win32-arm64","win32-ia32","win32-x64"],Vt={encoding:"utf8",shell:!0},Ll=t=>{t instanceof Error},Li=()=>Fi.isNonGlibcLinuxSync()?Fi.familySync():"",Ol=()=>`${p.platform}${Li()}-${p.arch}`,it=()=>{if(Oi())return"wasm32";let{npm_config_arch:t,npm_config_platform:e,npm_config_libc:r}=p.env,s=typeof r=="string"?r:Li();return`${e||p.platform}${s}-${t||p.arch}`},Ml=()=>{try{return H(`@img/sharp-libvips-dev-${it()}/include`)}catch{try{return H("@img/sharp-libvips-dev/include")}catch{}}return""},zl=()=>{try{return H("@img/sharp-libvips-dev/cplusplus")}catch{}return""},Bl=()=>{try{return H(`@img/sharp-libvips-dev-${it()}/lib`)}catch{try{return H(`@img/sharp-libvips-${it()}/lib`)}catch{}}return""},Ul=()=>{if(p.release?.name==="node"&&p.versions&&!Fl(p.versions.node,Ci.node))return{found:p.versions.node,expected:Ci.node}},Oi=()=>{let{CC:t}=p.env;return!!t?.endsWith("/emcc")},ql=()=>p.platform==="darwin"&&p.arch==="x64"?(Wt("sysctl sysctl.proc_translated",Vt).stdout||"").trim()==="sysctl.proc_translated: 1":!1,ji=t=>Nl("sha512").update(t).digest("hex"),Gl=()=>{try{let t=ji(`imgsharp-libvips-${it()}`),e=Di(jl[`@img/sharp-libvips-${it()}`],{includePrerelease:!0}).version;return ji(`${t}npm:${e}`).slice(0,10)}catch{}return""},Hl=()=>Wt(`node-gyp rebuild --directory=src ${Oi()?"--nodedir=emscripten":""}`,{...Vt,stdio:"inherit"}).status,Mi=()=>p.platform!=="win32"?(Wt("pkg-config --modversion vips-cpp",{...Vt,env:{...p.env,PKG_CONFIG_PATH:zi()}}).stdout||"").trim():"",zi=()=>p.platform!=="win32"?[(Wt('which brew >/dev/null 2>&1 && brew environment --plain | grep PKG_CONFIG_LIBDIR | cut -d" " -f2',Vt).stdout||"").trim(),p.env.PKG_CONFIG_PATH,"/usr/local/lib/pkgconfig","/usr/lib/pkgconfig","/usr/local/libdata/pkgconfig","/usr/libdata/pkgconfig"].filter(Boolean).join(":"):"",Ar=(t,e,r)=>(r&&r(`Detected ${e}, skipping search for globally-installed libvips`),t),Wl=t=>{if(p.env.SHARP_IGNORE_GLOBAL_LIBVIPS)return Ar(!1,"SHARP_IGNORE_GLOBAL_LIBVIPS",t);if(p.env.SHARP_FORCE_GLOBAL_LIBVIPS)return Ar(!0,"SHARP_FORCE_GLOBAL_LIBVIPS",t);if(ql())return Ar(!1,"Rosetta",t);let e=Mi();return!!e&&Il(e,Ti)};Bi.exports={minimumLibvipsVersion:Ti,prebuiltPlatforms:Tl,buildPlatformArch:it,buildSharpLibvipsIncludeDir:Ml,buildSharpLibvipsCPlusPlusDir:zl,buildSharpLibvipsLibDir:Bl,isUnsupportedNodeRuntime:Ul,runtimePlatformArch:Ol,log:Ll,yarnLocator:Gl,spawnRebuild:Hl,globalLibvipsVersion:Mi,pkgConfigPath:zi,useGlobalLibvips:Wl}});var $t=j((id,qi)=>{g();var{familySync:Vl,versionSync:Xl}=Lt(),{runtimePlatformArch:Jl,isUnsupportedNodeRuntime:Ui,prebuiltPlatforms:Kl,minimumLibvipsVersion:Yl}=_r(),Ye=Jl(),Ql=[`../src/build/Release/sharp-${Ye}.node`,"../src/build/Release/sharp-wasm32.node",`@img/sharp-${Ye}/sharp.node`,"@img/sharp-wasm32/sharp.node"],Nr,nt,Rt=[];for(Nr of Ql)try{nt=H(Nr);break}catch(t){Rt.push(t)}if(nt&&Nr.startsWith("@img/sharp-linux-x64")&&!nt._isUsingX64V2()){let t=new Error("Prebuilt binaries for linux-x64 require v2 microarchitecture");t.code="Unsupported CPU",Rt.push(t),nt=null}if(nt)qi.exports=nt;else{let[t,e,r]=["linux","darwin","win32"].map(n=>Ye.startsWith(n)),s=[`Could not load the "sharp" module using the ${Ye} runtime`];Rt.forEach(n=>{n.code!=="MODULE_NOT_FOUND"&&s.push(`${n.code}: ${n.message}`)});let i=Rt.map(n=>n.message).join(" ");if(s.push("Possible solutions:"),Ui()){let{found:n,expected:a}=Ui();s.push("- Please upgrade Node.js:",` Found ${n}`,` Requires ${a}`)}else if(Kl.includes(Ye)){let[n,a]=Ye.split("-"),o=n.endsWith("musl")?" --libc=musl":"";s.push("- Ensure optional dependencies can be installed:"," npm install --include=optional sharp","- Ensure your package manager supports multi-platform installation:"," See https://sharp.pixelplumbing.com/install#cross-platform","- Add platform-specific dependencies:",` npm install --os=${n.replace("musl","")}${o} --cpu=${a} sharp`)}else s.push(`- Manually install libvips >= ${Yl}`,"- Add experimental WebAssembly-based dependencies:"," npm install --cpu=wasm32 sharp"," npm install @img/sharp-wasm32");if(t&&/(symbol not found|CXXABI_)/i.test(i))try{let{config:n}=H(`@img/sharp-libvips-${Ye}/package`),a=`${Vl()} ${Xl()}`,o=`${n.musl?"musl":"glibc"} ${n.musl||n.glibc}`;s.push("- Update your OS:",` Found ${a}`,` Requires ${o}`)}catch{}throw t&&/\/snap\/core[0-9]{2}/.test(i)&&s.push("- Remove the Node.js Snap, which does not support native modules"," snap remove node"),e&&/Incompatible library version/.test(i)&&s.push("- Update Homebrew:"," brew update && brew upgrade vips"),Rt.some(n=>n.code==="ERR_DLOPEN_DISABLED")&&s.push("- Run Node.js without using the --no-addons flag"),r&&/The specified procedure could not be found/.test(i)&&s.push("- Using the canvas package on Windows?"," See https://sharp.pixelplumbing.com/install#canvas-and-windows","- Check for outdated versions of sharp in the dependency tree:"," npm ls sharp"),s.push("- Consult the installation documentation:"," See https://sharp.pixelplumbing.com/install"),new Error(s.join(`
2
- `))}});var Hi=j((od,Gi)=>{g();var Zl=H("node:util"),Ir=H("node:stream"),ec=be();$t();var tc=Zl.debuglog("sharp"),rc=t=>{Qe.queue.emit("change",t)},Qe=function(t,e){if(arguments.length===1&&!ec.defined(t))throw new Error("Invalid input");return this instanceof Qe?(Ir.Duplex.call(this),this.options={topOffsetPre:-1,leftOffsetPre:-1,widthPre:-1,heightPre:-1,topOffsetPost:-1,leftOffsetPost:-1,widthPost:-1,heightPost:-1,width:-1,height:-1,canvas:"crop",position:0,resizeBackground:[0,0,0,255],angle:0,rotationAngle:0,rotationBackground:[0,0,0,255],rotateBefore:!1,orientBefore:!1,flip:!1,flop:!1,extendTop:0,extendBottom:0,extendLeft:0,extendRight:0,extendBackground:[0,0,0,255],extendWith:"background",withoutEnlargement:!1,withoutReduction:!1,affineMatrix:[],affineBackground:[0,0,0,255],affineIdx:0,affineIdy:0,affineOdx:0,affineOdy:0,affineInterpolator:this.constructor.interpolators.bilinear,kernel:"lanczos3",fastShrinkOnLoad:!0,tint:[-1,0,0,0],flatten:!1,flattenBackground:[0,0,0],unflatten:!1,negate:!1,negateAlpha:!0,medianSize:0,blurSigma:0,precision:"integer",minAmpl:.2,sharpenSigma:0,sharpenM1:1,sharpenM2:2,sharpenX1:2,sharpenY2:10,sharpenY3:20,threshold:0,thresholdGrayscale:!0,trimBackground:[],trimThreshold:-1,trimLineArt:!1,dilateWidth:0,erodeWidth:0,gamma:0,gammaOut:0,greyscale:!1,normalise:!1,normaliseLower:1,normaliseUpper:99,claheWidth:0,claheHeight:0,claheMaxSlope:3,brightness:1,saturation:1,hue:0,lightness:0,booleanBufferIn:null,booleanFileIn:"",joinChannelIn:[],extractChannel:-1,removeAlpha:!1,ensureAlpha:-1,colourspace:"srgb",colourspacePipeline:"last",composite:[],fileOut:"",formatOut:"input",streamOut:!1,keepMetadata:0,withMetadataOrientation:-1,withMetadataDensity:0,withIccProfile:"",withExif:{},withExifMerge:!0,withXmp:"",resolveWithObject:!1,loop:-1,delay:[],jpegQuality:80,jpegProgressive:!1,jpegChromaSubsampling:"4:2:0",jpegTrellisQuantisation:!1,jpegOvershootDeringing:!1,jpegOptimiseScans:!1,jpegOptimiseCoding:!0,jpegQuantisationTable:0,pngProgressive:!1,pngCompressionLevel:6,pngAdaptiveFiltering:!1,pngPalette:!1,pngQuality:100,pngEffort:7,pngBitdepth:8,pngDither:1,jp2Quality:80,jp2TileHeight:512,jp2TileWidth:512,jp2Lossless:!1,jp2ChromaSubsampling:"4:4:4",webpQuality:80,webpAlphaQuality:100,webpLossless:!1,webpNearLossless:!1,webpSmartSubsample:!1,webpSmartDeblock:!1,webpPreset:"default",webpEffort:4,webpMinSize:!1,webpMixed:!1,gifBitdepth:8,gifEffort:7,gifDither:1,gifInterFrameMaxError:0,gifInterPaletteMaxError:3,gifKeepDuplicateFrames:!1,gifReuse:!0,gifProgressive:!1,tiffQuality:80,tiffCompression:"jpeg",tiffBigtiff:!1,tiffPredictor:"horizontal",tiffPyramid:!1,tiffMiniswhite:!1,tiffBitdepth:8,tiffTile:!1,tiffTileHeight:256,tiffTileWidth:256,tiffXres:1,tiffYres:1,tiffResolutionUnit:"inch",heifQuality:50,heifLossless:!1,heifCompression:"av1",heifEffort:4,heifChromaSubsampling:"4:4:4",heifBitdepth:8,jxlDistance:1,jxlDecodingTier:0,jxlEffort:7,jxlLossless:!1,rawDepth:"uchar",tileSize:256,tileOverlap:0,tileContainer:"fs",tileLayout:"dz",tileFormat:"last",tileDepth:"last",tileAngle:0,tileSkipBlanks:-1,tileBackground:[255,255,255,255],tileCentre:!1,tileId:"https://example.com/iiif",tileBasename:"",timeoutSeconds:0,linearA:[],linearB:[],pdfBackground:[255,255,255,255],debuglog:r=>{this.emit("warning",r),tc(r)},queueListener:rc},this.options.input=this._createInputDescriptor(t,e,{allowStream:!0}),this):new Qe(t,e)};Object.setPrototypeOf(Qe.prototype,Ir.Duplex.prototype);Object.setPrototypeOf(Qe,Ir.Duplex);function sc(){let t=this.constructor.call(),{debuglog:e,queueListener:r,...s}=this.options;return t.options=structuredClone(s),t.options.debuglog=e,t.options.queueListener=r,this._isStreamInput()&&this.on("finish",()=>{this._flattenBufferIn(),t.options.input.buffer=this.options.input.buffer,t.emit("finish")}),t}Object.assign(Qe.prototype,{clone:sc});Gi.exports=Qe});var Xi=j((cd,Vi)=>{g();var h=be(),Me=$t(),ic={left:"low",top:"low",low:"low",center:"centre",centre:"centre",right:"high",bottom:"high",high:"high"},nc=["failOn","limitInputPixels","unlimited","animated","autoOrient","density","ignoreIcc","page","pages","sequentialRead","jp2","openSlide","pdf","raw","svg","tiff","failOnError","openSlideLevel","pdfBackground","tiffSubifd"];function Wi(t){let e=nc.filter(r=>h.defined(t[r])).map(r=>[r,t[r]]);return e.length?Object.fromEntries(e):void 0}function ac(t,e,r){let s={autoOrient:!1,failOn:"warning",limitInputPixels:268402689,ignoreIcc:!1,unlimited:!1,sequentialRead:!0};if(h.string(t))s.file=t;else if(h.buffer(t)){if(t.length===0)throw Error("Input Buffer is empty");s.buffer=t}else if(h.arrayBuffer(t)){if(t.byteLength===0)throw Error("Input bit Array is empty");s.buffer=b.from(t,0,t.byteLength)}else if(h.typedArray(t)){if(t.length===0)throw Error("Input Bit Array is empty");s.buffer=b.from(t.buffer,t.byteOffset,t.byteLength)}else if(h.plainObject(t)&&!h.defined(e))e=t,Wi(e)&&(s.buffer=[]);else if(!h.defined(t)&&!h.defined(e)&&h.object(r)&&r.allowStream)s.buffer=[];else if(Array.isArray(t))if(t.length>1)if(!this.options.joining)this.options.joining=!0,this.options.join=t.map(i=>this._createInputDescriptor(i));else throw new Error("Recursive join is unsupported");else throw new Error("Expected at least two images to join");else throw new Error(`Unsupported input '${t}' of type ${typeof t}${h.defined(e)?` when also providing options of type ${typeof e}`:""}`);if(h.object(e)){if(h.defined(e.failOnError))if(h.bool(e.failOnError))s.failOn=e.failOnError?"warning":"none";else throw h.invalidParameterError("failOnError","boolean",e.failOnError);if(h.defined(e.failOn))if(h.string(e.failOn)&&h.inArray(e.failOn,["none","truncated","error","warning"]))s.failOn=e.failOn;else throw h.invalidParameterError("failOn","one of: none, truncated, error, warning",e.failOn);if(h.defined(e.autoOrient))if(h.bool(e.autoOrient))s.autoOrient=e.autoOrient;else throw h.invalidParameterError("autoOrient","boolean",e.autoOrient);if(h.defined(e.density))if(h.inRange(e.density,1,1e5))s.density=e.density;else throw h.invalidParameterError("density","number between 1 and 100000",e.density);if(h.defined(e.ignoreIcc))if(h.bool(e.ignoreIcc))s.ignoreIcc=e.ignoreIcc;else throw h.invalidParameterError("ignoreIcc","boolean",e.ignoreIcc);if(h.defined(e.limitInputPixels))if(h.bool(e.limitInputPixels))s.limitInputPixels=e.limitInputPixels?16383**2:0;else if(h.integer(e.limitInputPixels)&&h.inRange(e.limitInputPixels,0,Number.MAX_SAFE_INTEGER))s.limitInputPixels=e.limitInputPixels;else throw h.invalidParameterError("limitInputPixels","positive integer",e.limitInputPixels);if(h.defined(e.unlimited))if(h.bool(e.unlimited))s.unlimited=e.unlimited;else throw h.invalidParameterError("unlimited","boolean",e.unlimited);if(h.defined(e.sequentialRead))if(h.bool(e.sequentialRead))s.sequentialRead=e.sequentialRead;else throw h.invalidParameterError("sequentialRead","boolean",e.sequentialRead);if(h.defined(e.raw)){if(h.object(e.raw)&&h.integer(e.raw.width)&&e.raw.width>0&&h.integer(e.raw.height)&&e.raw.height>0&&h.integer(e.raw.channels)&&h.inRange(e.raw.channels,1,4))switch(s.rawWidth=e.raw.width,s.rawHeight=e.raw.height,s.rawChannels=e.raw.channels,t.constructor){case Uint8Array:case Uint8ClampedArray:s.rawDepth="uchar";break;case Int8Array:s.rawDepth="char";break;case Uint16Array:s.rawDepth="ushort";break;case Int16Array:s.rawDepth="short";break;case Uint32Array:s.rawDepth="uint";break;case Int32Array:s.rawDepth="int";break;case Float32Array:s.rawDepth="float";break;case Float64Array:s.rawDepth="double";break;default:s.rawDepth="uchar";break}else throw new Error("Expected width, height and channels for raw pixel input");if(s.rawPremultiplied=!1,h.defined(e.raw.premultiplied))if(h.bool(e.raw.premultiplied))s.rawPremultiplied=e.raw.premultiplied;else throw h.invalidParameterError("raw.premultiplied","boolean",e.raw.premultiplied);if(s.rawPageHeight=0,h.defined(e.raw.pageHeight))if(h.integer(e.raw.pageHeight)&&e.raw.pageHeight>0&&e.raw.pageHeight<=e.raw.height){if(e.raw.height%e.raw.pageHeight!==0)throw new Error(`Expected raw.height ${e.raw.height} to be a multiple of raw.pageHeight ${e.raw.pageHeight}`);s.rawPageHeight=e.raw.pageHeight}else throw h.invalidParameterError("raw.pageHeight","positive integer",e.raw.pageHeight)}if(h.defined(e.animated))if(h.bool(e.animated))s.pages=e.animated?-1:1;else throw h.invalidParameterError("animated","boolean",e.animated);if(h.defined(e.pages))if(h.integer(e.pages)&&h.inRange(e.pages,-1,1e5))s.pages=e.pages;else throw h.invalidParameterError("pages","integer between -1 and 100000",e.pages);if(h.defined(e.page))if(h.integer(e.page)&&h.inRange(e.page,0,1e5))s.page=e.page;else throw h.invalidParameterError("page","integer between 0 and 100000",e.page);if(h.object(e.openSlide)&&h.defined(e.openSlide.level))if(h.integer(e.openSlide.level)&&h.inRange(e.openSlide.level,0,256))s.openSlideLevel=e.openSlide.level;else throw h.invalidParameterError("openSlide.level","integer between 0 and 256",e.openSlide.level);else if(h.defined(e.level))if(h.integer(e.level)&&h.inRange(e.level,0,256))s.openSlideLevel=e.level;else throw h.invalidParameterError("level","integer between 0 and 256",e.level);if(h.object(e.tiff)&&h.defined(e.tiff.subifd))if(h.integer(e.tiff.subifd)&&h.inRange(e.tiff.subifd,-1,1e5))s.tiffSubifd=e.tiff.subifd;else throw h.invalidParameterError("tiff.subifd","integer between -1 and 100000",e.tiff.subifd);else if(h.defined(e.subifd))if(h.integer(e.subifd)&&h.inRange(e.subifd,-1,1e5))s.tiffSubifd=e.subifd;else throw h.invalidParameterError("subifd","integer between -1 and 100000",e.subifd);if(h.object(e.svg)){if(h.defined(e.svg.stylesheet))if(h.string(e.svg.stylesheet))s.svgStylesheet=e.svg.stylesheet;else throw h.invalidParameterError("svg.stylesheet","string",e.svg.stylesheet);if(h.defined(e.svg.highBitdepth))if(h.bool(e.svg.highBitdepth))s.svgHighBitdepth=e.svg.highBitdepth;else throw h.invalidParameterError("svg.highBitdepth","boolean",e.svg.highBitdepth)}if(h.object(e.pdf)&&h.defined(e.pdf.background)?s.pdfBackground=this._getBackgroundColourOption(e.pdf.background):h.defined(e.pdfBackground)&&(s.pdfBackground=this._getBackgroundColourOption(e.pdfBackground)),h.object(e.jp2)&&h.defined(e.jp2.oneshot))if(h.bool(e.jp2.oneshot))s.jp2Oneshot=e.jp2.oneshot;else throw h.invalidParameterError("jp2.oneshot","boolean",e.jp2.oneshot);if(h.defined(e.create))if(h.object(e.create)&&h.integer(e.create.width)&&e.create.width>0&&h.integer(e.create.height)&&e.create.height>0&&h.integer(e.create.channels)){if(s.createWidth=e.create.width,s.createHeight=e.create.height,s.createChannels=e.create.channels,s.createPageHeight=0,h.defined(e.create.pageHeight))if(h.integer(e.create.pageHeight)&&e.create.pageHeight>0&&e.create.pageHeight<=e.create.height){if(e.create.height%e.create.pageHeight!==0)throw new Error(`Expected create.height ${e.create.height} to be a multiple of create.pageHeight ${e.create.pageHeight}`);s.createPageHeight=e.create.pageHeight}else throw h.invalidParameterError("create.pageHeight","positive integer",e.create.pageHeight);if(h.defined(e.create.noise)){if(!h.object(e.create.noise))throw new Error("Expected noise to be an object");if(e.create.noise.type!=="gaussian")throw new Error("Only gaussian noise is supported at the moment");if(s.createNoiseType=e.create.noise.type,!h.inRange(e.create.channels,1,4))throw h.invalidParameterError("create.channels","number between 1 and 4",e.create.channels);if(s.createNoiseMean=128,h.defined(e.create.noise.mean))if(h.number(e.create.noise.mean)&&h.inRange(e.create.noise.mean,0,1e4))s.createNoiseMean=e.create.noise.mean;else throw h.invalidParameterError("create.noise.mean","number between 0 and 10000",e.create.noise.mean);if(s.createNoiseSigma=30,h.defined(e.create.noise.sigma))if(h.number(e.create.noise.sigma)&&h.inRange(e.create.noise.sigma,0,1e4))s.createNoiseSigma=e.create.noise.sigma;else throw h.invalidParameterError("create.noise.sigma","number between 0 and 10000",e.create.noise.sigma)}else if(h.defined(e.create.background)){if(!h.inRange(e.create.channels,3,4))throw h.invalidParameterError("create.channels","number between 3 and 4",e.create.channels);s.createBackground=this._getBackgroundColourOption(e.create.background)}else throw new Error("Expected valid noise or background to create a new input image");delete s.buffer}else throw new Error("Expected valid width, height and channels to create a new input image");if(h.defined(e.text))if(h.object(e.text)&&h.string(e.text.text)){if(s.textValue=e.text.text,h.defined(e.text.height)&&h.defined(e.text.dpi))throw new Error("Expected only one of dpi or height");if(h.defined(e.text.font))if(h.string(e.text.font))s.textFont=e.text.font;else throw h.invalidParameterError("text.font","string",e.text.font);if(h.defined(e.text.fontfile))if(h.string(e.text.fontfile))s.textFontfile=e.text.fontfile;else throw h.invalidParameterError("text.fontfile","string",e.text.fontfile);if(h.defined(e.text.width))if(h.integer(e.text.width)&&e.text.width>0)s.textWidth=e.text.width;else throw h.invalidParameterError("text.width","positive integer",e.text.width);if(h.defined(e.text.height))if(h.integer(e.text.height)&&e.text.height>0)s.textHeight=e.text.height;else throw h.invalidParameterError("text.height","positive integer",e.text.height);if(h.defined(e.text.align))if(h.string(e.text.align)&&h.string(this.constructor.align[e.text.align]))s.textAlign=this.constructor.align[e.text.align];else throw h.invalidParameterError("text.align","valid alignment",e.text.align);if(h.defined(e.text.justify))if(h.bool(e.text.justify))s.textJustify=e.text.justify;else throw h.invalidParameterError("text.justify","boolean",e.text.justify);if(h.defined(e.text.dpi))if(h.integer(e.text.dpi)&&h.inRange(e.text.dpi,1,1e6))s.textDpi=e.text.dpi;else throw h.invalidParameterError("text.dpi","integer between 1 and 1000000",e.text.dpi);if(h.defined(e.text.rgba))if(h.bool(e.text.rgba))s.textRgba=e.text.rgba;else throw h.invalidParameterError("text.rgba","bool",e.text.rgba);if(h.defined(e.text.spacing))if(h.integer(e.text.spacing)&&h.inRange(e.text.spacing,-1e6,1e6))s.textSpacing=e.text.spacing;else throw h.invalidParameterError("text.spacing","integer between -1000000 and 1000000",e.text.spacing);if(h.defined(e.text.wrap))if(h.string(e.text.wrap)&&h.inArray(e.text.wrap,["word","char","word-char","none"]))s.textWrap=e.text.wrap;else throw h.invalidParameterError("text.wrap","one of: word, char, word-char, none",e.text.wrap);delete s.buffer}else throw new Error("Expected a valid string to create an image with text.");if(h.defined(e.join))if(h.defined(this.options.join)){if(h.defined(e.join.animated))if(h.bool(e.join.animated))s.joinAnimated=e.join.animated;else throw h.invalidParameterError("join.animated","boolean",e.join.animated);if(h.defined(e.join.across))if(h.integer(e.join.across)&&h.inRange(e.join.across,1,1e6))s.joinAcross=e.join.across;else throw h.invalidParameterError("join.across","integer between 1 and 100000",e.join.across);if(h.defined(e.join.shim))if(h.integer(e.join.shim)&&h.inRange(e.join.shim,0,1e6))s.joinShim=e.join.shim;else throw h.invalidParameterError("join.shim","integer between 0 and 100000",e.join.shim);if(h.defined(e.join.background)&&(s.joinBackground=this._getBackgroundColourOption(e.join.background)),h.defined(e.join.halign))if(h.string(e.join.halign)&&h.string(this.constructor.align[e.join.halign]))s.joinHalign=this.constructor.align[e.join.halign];else throw h.invalidParameterError("join.halign","valid alignment",e.join.halign);if(h.defined(e.join.valign))if(h.string(e.join.valign)&&h.string(this.constructor.align[e.join.valign]))s.joinValign=this.constructor.align[e.join.valign];else throw h.invalidParameterError("join.valign","valid alignment",e.join.valign)}else throw new Error("Expected input to be an array of images to join")}else if(h.defined(e))throw new Error(`Invalid input options ${e}`);return s}function oc(t,e,r){Array.isArray(this.options.input.buffer)?h.buffer(t)?(this.options.input.buffer.length===0&&this.on("finish",()=>{this.streamInFinished=!0}),this.options.input.buffer.push(t),r()):r(new Error("Non-Buffer data on Writable Stream")):r(new Error("Unexpected data on Writable Stream"))}function lc(){this._isStreamInput()&&(this.options.input.buffer=b.concat(this.options.input.buffer))}function cc(){return Array.isArray(this.options.input.buffer)}function hc(t){let e=Error();return h.fn(t)?(this._isStreamInput()?this.on("finish",()=>{this._flattenBufferIn(),Me.metadata(this.options,(r,s)=>{r?t(h.nativeError(r,e)):t(null,s)})}):Me.metadata(this.options,(r,s)=>{r?t(h.nativeError(r,e)):t(null,s)}),this):this._isStreamInput()?new Promise((r,s)=>{let i=()=>{this._flattenBufferIn(),Me.metadata(this.options,(n,a)=>{n?s(h.nativeError(n,e)):r(a)})};this.writableFinished?i():this.once("finish",i)}):new Promise((r,s)=>{Me.metadata(this.options,(i,n)=>{i?s(h.nativeError(i,e)):r(n)})})}function uc(t){let e=Error();return h.fn(t)?(this._isStreamInput()?this.on("finish",()=>{this._flattenBufferIn(),Me.stats(this.options,(r,s)=>{r?t(h.nativeError(r,e)):t(null,s)})}):Me.stats(this.options,(r,s)=>{r?t(h.nativeError(r,e)):t(null,s)}),this):this._isStreamInput()?new Promise((r,s)=>{this.on("finish",function(){this._flattenBufferIn(),Me.stats(this.options,(i,n)=>{i?s(h.nativeError(i,e)):r(n)})})}):new Promise((r,s)=>{Me.stats(this.options,(i,n)=>{i?s(h.nativeError(i,e)):r(n)})})}Vi.exports=t=>{Object.assign(t.prototype,{_inputOptionsFromObject:Wi,_createInputDescriptor:ac,_write:oc,_flattenBufferIn:lc,_isStreamInput:cc,metadata:hc,stats:uc}),t.align=ic}});var en=j((ud,Zi)=>{g();var F=be(),Ki={center:0,centre:0,north:1,east:2,south:3,west:4,northeast:5,southeast:6,southwest:7,northwest:8},Yi={top:1,right:2,bottom:3,left:4,"right top":5,"right bottom":6,"left bottom":7,"left top":8},Ji={background:"background",copy:"copy",repeat:"repeat",mirror:"mirror"},Qi={entropy:16,attention:17},Fr={nearest:"nearest",linear:"linear",cubic:"cubic",mitchell:"mitchell",lanczos2:"lanczos2",lanczos3:"lanczos3",mks2013:"mks2013",mks2021:"mks2021"},fc={contain:"contain",cover:"cover",fill:"fill",inside:"inside",outside:"outside"},dc={contain:"embed",cover:"crop",fill:"ignore_aspect",inside:"max",outside:"min"};function Cr(t){return t.angle%360!==0||t.rotationAngle!==0}function Xt(t){return t.width!==-1||t.height!==-1}function gc(t,e,r){if(Xt(this.options)&&this.options.debuglog("ignoring previous resize options"),this.options.widthPost!==-1&&this.options.debuglog("operation order will be: extract, resize, extract"),F.defined(t))if(F.object(t)&&!F.defined(r))r=t;else if(F.integer(t)&&t>0)this.options.width=t;else throw F.invalidParameterError("width","positive integer",t);else this.options.width=-1;if(F.defined(e))if(F.integer(e)&&e>0)this.options.height=e;else throw F.invalidParameterError("height","positive integer",e);else this.options.height=-1;if(F.object(r)){if(F.defined(r.width))if(F.integer(r.width)&&r.width>0)this.options.width=r.width;else throw F.invalidParameterError("width","positive integer",r.width);if(F.defined(r.height))if(F.integer(r.height)&&r.height>0)this.options.height=r.height;else throw F.invalidParameterError("height","positive integer",r.height);if(F.defined(r.fit)){let s=dc[r.fit];if(F.string(s))this.options.canvas=s;else throw F.invalidParameterError("fit","valid fit",r.fit)}if(F.defined(r.position)){let s=F.integer(r.position)?r.position:Qi[r.position]||Yi[r.position]||Ki[r.position];if(F.integer(s)&&(F.inRange(s,0,8)||F.inRange(s,16,17)))this.options.position=s;else throw F.invalidParameterError("position","valid position/gravity/strategy",r.position)}if(this._setBackgroundColourOption("resizeBackground",r.background),F.defined(r.kernel))if(F.string(Fr[r.kernel]))this.options.kernel=Fr[r.kernel];else throw F.invalidParameterError("kernel","valid kernel name",r.kernel);F.defined(r.withoutEnlargement)&&this._setBooleanOption("withoutEnlargement",r.withoutEnlargement),F.defined(r.withoutReduction)&&this._setBooleanOption("withoutReduction",r.withoutReduction),F.defined(r.fastShrinkOnLoad)&&this._setBooleanOption("fastShrinkOnLoad",r.fastShrinkOnLoad)}return Cr(this.options)&&Xt(this.options)&&(this.options.rotateBefore=!0),this}function pc(t){if(F.integer(t)&&t>0)this.options.extendTop=t,this.options.extendBottom=t,this.options.extendLeft=t,this.options.extendRight=t;else if(F.object(t)){if(F.defined(t.top))if(F.integer(t.top)&&t.top>=0)this.options.extendTop=t.top;else throw F.invalidParameterError("top","positive integer",t.top);if(F.defined(t.bottom))if(F.integer(t.bottom)&&t.bottom>=0)this.options.extendBottom=t.bottom;else throw F.invalidParameterError("bottom","positive integer",t.bottom);if(F.defined(t.left))if(F.integer(t.left)&&t.left>=0)this.options.extendLeft=t.left;else throw F.invalidParameterError("left","positive integer",t.left);if(F.defined(t.right))if(F.integer(t.right)&&t.right>=0)this.options.extendRight=t.right;else throw F.invalidParameterError("right","positive integer",t.right);if(this._setBackgroundColourOption("extendBackground",t.background),F.defined(t.extendWith))if(F.string(Ji[t.extendWith]))this.options.extendWith=Ji[t.extendWith];else throw F.invalidParameterError("extendWith","one of: background, copy, repeat, mirror",t.extendWith)}else throw F.invalidParameterError("extend","integer or object",t);return this}function mc(t){let e=Xt(this.options)||this.options.widthPre!==-1?"Post":"Pre";return this.options[`width${e}`]!==-1&&this.options.debuglog("ignoring previous extract options"),["left","top","width","height"].forEach(function(r){let s=t[r];if(F.integer(s)&&s>=0)this.options[r+(r==="left"||r==="top"?"Offset":"")+e]=s;else throw F.invalidParameterError(r,"integer",s)},this),Cr(this.options)&&!Xt(this.options)&&(this.options.widthPre===-1||this.options.widthPost===-1)&&(this.options.rotateBefore=!0),this.options.input.autoOrient&&(this.options.orientBefore=!0),this}function bc(t){if(this.options.trimThreshold=10,F.defined(t))if(F.object(t)){if(F.defined(t.background)&&this._setBackgroundColourOption("trimBackground",t.background),F.defined(t.threshold))if(F.number(t.threshold)&&t.threshold>=0)this.options.trimThreshold=t.threshold;else throw F.invalidParameterError("threshold","positive number",t.threshold);F.defined(t.lineArt)&&this._setBooleanOption("trimLineArt",t.lineArt)}else throw F.invalidParameterError("trim","object",t);return Cr(this.options)&&(this.options.rotateBefore=!0),this}Zi.exports=t=>{Object.assign(t.prototype,{resize:gc,extend:pc,extract:mc,trim:bc}),t.gravity=Ki,t.strategy=Qi,t.kernel=Fr,t.fit=fc,t.position=Yi}});var rn=j((dd,tn)=>{g();var q=be(),jr={clear:"clear",source:"source",over:"over",in:"in",out:"out",atop:"atop",dest:"dest","dest-over":"dest-over","dest-in":"dest-in","dest-out":"dest-out","dest-atop":"dest-atop",xor:"xor",add:"add",saturate:"saturate",multiply:"multiply",screen:"screen",overlay:"overlay",darken:"darken",lighten:"lighten","colour-dodge":"colour-dodge","color-dodge":"colour-dodge","colour-burn":"colour-burn","color-burn":"colour-burn","hard-light":"hard-light","soft-light":"soft-light",difference:"difference",exclusion:"exclusion"};function vc(t){if(!Array.isArray(t))throw q.invalidParameterError("images to composite","array",t);return this.options.composite=t.map(e=>{if(!q.object(e))throw q.invalidParameterError("image to composite","object",e);let r=this._inputOptionsFromObject(e),s={input:this._createInputDescriptor(e.input,r,{allowStream:!1}),blend:"over",tile:!1,left:0,top:0,hasOffset:!1,gravity:0,premultiplied:!1};if(q.defined(e.blend))if(q.string(jr[e.blend]))s.blend=jr[e.blend];else throw q.invalidParameterError("blend","valid blend name",e.blend);if(q.defined(e.tile))if(q.bool(e.tile))s.tile=e.tile;else throw q.invalidParameterError("tile","boolean",e.tile);if(q.defined(e.left))if(q.integer(e.left))s.left=e.left;else throw q.invalidParameterError("left","integer",e.left);if(q.defined(e.top))if(q.integer(e.top))s.top=e.top;else throw q.invalidParameterError("top","integer",e.top);if(q.defined(e.top)!==q.defined(e.left))throw new Error("Expected both left and top to be set");if(s.hasOffset=q.integer(e.top)&&q.integer(e.left),q.defined(e.gravity))if(q.integer(e.gravity)&&q.inRange(e.gravity,0,8))s.gravity=e.gravity;else if(q.string(e.gravity)&&q.integer(this.constructor.gravity[e.gravity]))s.gravity=this.constructor.gravity[e.gravity];else throw q.invalidParameterError("gravity","valid gravity",e.gravity);if(q.defined(e.premultiplied))if(q.bool(e.premultiplied))s.premultiplied=e.premultiplied;else throw q.invalidParameterError("premultiplied","boolean",e.premultiplied);return s}),this}tn.exports=t=>{t.prototype.composite=vc,t.blend=jr}});var ln=j((pd,on)=>{g();var d=be(),sn={integer:"integer",float:"float",approximate:"approximate"};function wc(t,e){if(!d.defined(t))return this.autoOrient();if((this.options.angle||this.options.rotationAngle)&&(this.options.debuglog("ignoring previous rotate options"),this.options.angle=0,this.options.rotationAngle=0),d.integer(t)&&!(t%90))this.options.angle=t;else if(d.number(t))this.options.rotationAngle=t,d.object(e)&&e.background&&this._setBackgroundColourOption("rotationBackground",e.background);else throw d.invalidParameterError("angle","numeric",t);return this}function yc(){return this.options.input.autoOrient=!0,this}function Ec(t){return this.options.flip=d.bool(t)?t:!0,this}function Pc(t){return this.options.flop=d.bool(t)?t:!0,this}function xc(t,e){let r=[].concat(...t);if(r.length===4&&r.every(d.number))this.options.affineMatrix=r;else throw d.invalidParameterError("matrix","1x4 or 2x2 array",t);if(d.defined(e))if(d.object(e)){if(this._setBackgroundColourOption("affineBackground",e.background),d.defined(e.idx))if(d.number(e.idx))this.options.affineIdx=e.idx;else throw d.invalidParameterError("options.idx","number",e.idx);if(d.defined(e.idy))if(d.number(e.idy))this.options.affineIdy=e.idy;else throw d.invalidParameterError("options.idy","number",e.idy);if(d.defined(e.odx))if(d.number(e.odx))this.options.affineOdx=e.odx;else throw d.invalidParameterError("options.odx","number",e.odx);if(d.defined(e.ody))if(d.number(e.ody))this.options.affineOdy=e.ody;else throw d.invalidParameterError("options.ody","number",e.ody);if(d.defined(e.interpolator))if(d.inArray(e.interpolator,Object.values(this.constructor.interpolators)))this.options.affineInterpolator=e.interpolator;else throw d.invalidParameterError("options.interpolator","valid interpolator name",e.interpolator)}else throw d.invalidParameterError("options","object",e);return this}function Rc(t,e,r){if(!d.defined(t))this.options.sharpenSigma=-1;else if(d.bool(t))this.options.sharpenSigma=t?-1:0;else if(d.number(t)&&d.inRange(t,.01,1e4)){if(this.options.sharpenSigma=t,d.defined(e))if(d.number(e)&&d.inRange(e,0,1e4))this.options.sharpenM1=e;else throw d.invalidParameterError("flat","number between 0 and 10000",e);if(d.defined(r))if(d.number(r)&&d.inRange(r,0,1e4))this.options.sharpenM2=r;else throw d.invalidParameterError("jagged","number between 0 and 10000",r)}else if(d.plainObject(t)){if(d.number(t.sigma)&&d.inRange(t.sigma,1e-6,10))this.options.sharpenSigma=t.sigma;else throw d.invalidParameterError("options.sigma","number between 0.000001 and 10",t.sigma);if(d.defined(t.m1))if(d.number(t.m1)&&d.inRange(t.m1,0,1e6))this.options.sharpenM1=t.m1;else throw d.invalidParameterError("options.m1","number between 0 and 1000000",t.m1);if(d.defined(t.m2))if(d.number(t.m2)&&d.inRange(t.m2,0,1e6))this.options.sharpenM2=t.m2;else throw d.invalidParameterError("options.m2","number between 0 and 1000000",t.m2);if(d.defined(t.x1))if(d.number(t.x1)&&d.inRange(t.x1,0,1e6))this.options.sharpenX1=t.x1;else throw d.invalidParameterError("options.x1","number between 0 and 1000000",t.x1);if(d.defined(t.y2))if(d.number(t.y2)&&d.inRange(t.y2,0,1e6))this.options.sharpenY2=t.y2;else throw d.invalidParameterError("options.y2","number between 0 and 1000000",t.y2);if(d.defined(t.y3))if(d.number(t.y3)&&d.inRange(t.y3,0,1e6))this.options.sharpenY3=t.y3;else throw d.invalidParameterError("options.y3","number between 0 and 1000000",t.y3)}else throw d.invalidParameterError("sigma","number between 0.01 and 10000",t);return this}function $c(t){if(!d.defined(t))this.options.medianSize=3;else if(d.integer(t)&&d.inRange(t,1,1e3))this.options.medianSize=t;else throw d.invalidParameterError("size","integer between 1 and 1000",t);return this}function kc(t){let e;if(d.number(t))e=t;else if(d.plainObject(t)){if(!d.number(t.sigma))throw d.invalidParameterError("options.sigma","number between 0.3 and 1000",e);if(e=t.sigma,"precision"in t)if(d.string(sn[t.precision]))this.options.precision=sn[t.precision];else throw d.invalidParameterError("precision","one of: integer, float, approximate",t.precision);if("minAmplitude"in t)if(d.number(t.minAmplitude)&&d.inRange(t.minAmplitude,.001,1))this.options.minAmpl=t.minAmplitude;else throw d.invalidParameterError("minAmplitude","number between 0.001 and 1",t.minAmplitude)}if(!d.defined(t))this.options.blurSigma=-1;else if(d.bool(t))this.options.blurSigma=t?-1:0;else if(d.number(e)&&d.inRange(e,.3,1e3))this.options.blurSigma=e;else throw d.invalidParameterError("sigma","number between 0.3 and 1000",e);return this}function nn(t){if(!d.defined(t))this.options.dilateWidth=1;else if(d.integer(t)&&t>0)this.options.dilateWidth=t;else throw d.invalidParameterError("dilate","positive integer",nn);return this}function an(t){if(!d.defined(t))this.options.erodeWidth=1;else if(d.integer(t)&&t>0)this.options.erodeWidth=t;else throw d.invalidParameterError("erode","positive integer",an);return this}function Sc(t){return this.options.flatten=d.bool(t)?t:!0,d.object(t)&&this._setBackgroundColourOption("flattenBackground",t.background),this}function Ac(){return this.options.unflatten=!0,this}function _c(t,e){if(!d.defined(t))this.options.gamma=2.2;else if(d.number(t)&&d.inRange(t,1,3))this.options.gamma=t;else throw d.invalidParameterError("gamma","number between 1.0 and 3.0",t);if(!d.defined(e))this.options.gammaOut=this.options.gamma;else if(d.number(e)&&d.inRange(e,1,3))this.options.gammaOut=e;else throw d.invalidParameterError("gammaOut","number between 1.0 and 3.0",e);return this}function Nc(t){if(this.options.negate=d.bool(t)?t:!0,d.plainObject(t)&&"alpha"in t)if(d.bool(t.alpha))this.options.negateAlpha=t.alpha;else throw d.invalidParameterError("alpha","should be boolean value",t.alpha);return this}function Ic(t){if(d.plainObject(t)){if(d.defined(t.lower))if(d.number(t.lower)&&d.inRange(t.lower,0,99))this.options.normaliseLower=t.lower;else throw d.invalidParameterError("lower","number between 0 and 99",t.lower);if(d.defined(t.upper))if(d.number(t.upper)&&d.inRange(t.upper,1,100))this.options.normaliseUpper=t.upper;else throw d.invalidParameterError("upper","number between 1 and 100",t.upper)}if(this.options.normaliseLower>=this.options.normaliseUpper)throw d.invalidParameterError("range","lower to be less than upper",`${this.options.normaliseLower} >= ${this.options.normaliseUpper}`);return this.options.normalise=!0,this}function Fc(t){return this.normalise(t)}function Cc(t){if(d.plainObject(t)){if(d.integer(t.width)&&t.width>0)this.options.claheWidth=t.width;else throw d.invalidParameterError("width","integer greater than zero",t.width);if(d.integer(t.height)&&t.height>0)this.options.claheHeight=t.height;else throw d.invalidParameterError("height","integer greater than zero",t.height);if(d.defined(t.maxSlope))if(d.integer(t.maxSlope)&&d.inRange(t.maxSlope,0,100))this.options.claheMaxSlope=t.maxSlope;else throw d.invalidParameterError("maxSlope","integer between 0 and 100",t.maxSlope)}else throw d.invalidParameterError("options","plain object",t);return this}function jc(t){if(!d.object(t)||!Array.isArray(t.kernel)||!d.integer(t.width)||!d.integer(t.height)||!d.inRange(t.width,3,1001)||!d.inRange(t.height,3,1001)||t.height*t.width!==t.kernel.length)throw new Error("Invalid convolution kernel");return d.integer(t.scale)||(t.scale=t.kernel.reduce((e,r)=>e+r,0)),t.scale<1&&(t.scale=1),d.integer(t.offset)||(t.offset=0),this.options.convKernel=t,this}function Dc(t,e){if(!d.defined(t))this.options.threshold=128;else if(d.bool(t))this.options.threshold=t?128:0;else if(d.integer(t)&&d.inRange(t,0,255))this.options.threshold=t;else throw d.invalidParameterError("threshold","integer between 0 and 255",t);return!d.object(e)||e.greyscale===!0||e.grayscale===!0?this.options.thresholdGrayscale=!0:this.options.thresholdGrayscale=!1,this}function Tc(t,e,r){if(this.options.boolean=this._createInputDescriptor(t,r),d.string(e)&&d.inArray(e,["and","or","eor"]))this.options.booleanOp=e;else throw d.invalidParameterError("operator","one of: and, or, eor",e);return this}function Lc(t,e){if(!d.defined(t)&&d.number(e)?t=1:d.number(t)&&!d.defined(e)&&(e=0),!d.defined(t))this.options.linearA=[];else if(d.number(t))this.options.linearA=[t];else if(Array.isArray(t)&&t.length&&t.every(d.number))this.options.linearA=t;else throw d.invalidParameterError("a","number or array of numbers",t);if(!d.defined(e))this.options.linearB=[];else if(d.number(e))this.options.linearB=[e];else if(Array.isArray(e)&&e.length&&e.every(d.number))this.options.linearB=e;else throw d.invalidParameterError("b","number or array of numbers",e);if(this.options.linearA.length!==this.options.linearB.length)throw new Error("Expected a and b to be arrays of the same length");return this}function Oc(t){if(!Array.isArray(t))throw d.invalidParameterError("inputMatrix","array",t);if(t.length!==3&&t.length!==4)throw d.invalidParameterError("inputMatrix","3x3 or 4x4 array",t.length);let e=t.flat().map(Number);if(e.length!==9&&e.length!==16)throw d.invalidParameterError("inputMatrix","cardinality of 9 or 16",e.length);return this.options.recombMatrix=e,this}function Mc(t){if(!d.plainObject(t))throw d.invalidParameterError("options","plain object",t);if("brightness"in t)if(d.number(t.brightness)&&t.brightness>=0)this.options.brightness=t.brightness;else throw d.invalidParameterError("brightness","number above zero",t.brightness);if("saturation"in t)if(d.number(t.saturation)&&t.saturation>=0)this.options.saturation=t.saturation;else throw d.invalidParameterError("saturation","number above zero",t.saturation);if("hue"in t)if(d.integer(t.hue))this.options.hue=t.hue%360;else throw d.invalidParameterError("hue","number",t.hue);if("lightness"in t)if(d.number(t.lightness))this.options.lightness=t.lightness;else throw d.invalidParameterError("lightness","number",t.lightness);return this}on.exports=t=>{Object.assign(t.prototype,{autoOrient:yc,rotate:wc,flip:Ec,flop:Pc,affine:xc,sharpen:Rc,erode:an,dilate:nn,median:$c,blur:kc,flatten:Sc,unflatten:Ac,gamma:_c,negate:Nc,normalise:Ic,normalize:Fc,clahe:Cc,convolve:jc,threshold:Dc,boolean:Tc,linear:Lc,recomb:Oc,modulate:Mc})}});var gn=j((bd,dn)=>{g();var Or=Object.defineProperty,zc=Object.getOwnPropertyDescriptor,Bc=Object.getOwnPropertyNames,Uc=Object.prototype.hasOwnProperty,qc=(t,e)=>{for(var r in e)Or(t,r,{get:e[r],enumerable:!0})},Gc=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Bc(e))!Uc.call(t,i)&&i!==r&&Or(t,i,{get:()=>e[i],enumerable:!(s=zc(e,i))||s.enumerable});return t},Hc=t=>Gc(Or({},"__esModule",{value:!0}),t),cn={};qc(cn,{default:()=>nh});dn.exports=Hc(cn);var Pe={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},hn=Object.create(null);for(let t in Pe)Object.hasOwn(Pe,t)&&(hn[Pe[t]]=t);var ie={to:{},get:{}};ie.get=function(t){let e=t.slice(0,3).toLowerCase(),r,s;switch(e){case"hsl":{r=ie.get.hsl(t),s="hsl";break}case"hwb":{r=ie.get.hwb(t),s="hwb";break}default:{r=ie.get.rgb(t),s="rgb";break}}return r?{model:s,value:r}:null};ie.get.rgb=function(t){if(!t)return null;let e=/^#([a-f\d]{3,4})$/i,r=/^#([a-f\d]{6})([a-f\d]{2})?$/i,s=/^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[\s,|/]\s*([+-]?[\d.]+)(%?)\s*)?\)$/,i=/^rgba?\(\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*(?:[\s,|/]\s*([+-]?[\d.]+)(%?)\s*)?\)$/,n=/^(\w+)$/,a=[0,0,0,1],o,c,u;if(o=t.match(r)){for(u=o[2],o=o[1],c=0;c<3;c++){let f=c*2;a[c]=Number.parseInt(o.slice(f,f+2),16)}u&&(a[3]=Number.parseInt(u,16)/255)}else if(o=t.match(e)){for(o=o[1],u=o[3],c=0;c<3;c++)a[c]=Number.parseInt(o[c]+o[c],16);u&&(a[3]=Number.parseInt(u+u,16)/255)}else if(o=t.match(s)){for(c=0;c<3;c++)a[c]=Number.parseInt(o[c+1],10);o[4]&&(a[3]=o[5]?Number.parseFloat(o[4])*.01:Number.parseFloat(o[4]))}else if(o=t.match(i)){for(c=0;c<3;c++)a[c]=Math.round(Number.parseFloat(o[c+1])*2.55);o[4]&&(a[3]=o[5]?Number.parseFloat(o[4])*.01:Number.parseFloat(o[4]))}else return(o=t.match(n))?o[1]==="transparent"?[0,0,0,0]:Object.hasOwn(Pe,o[1])?(a=Pe[o[1]],a[3]=1,a):null:null;for(c=0;c<3;c++)a[c]=ze(a[c],0,255);return a[3]=ze(a[3],0,1),a};ie.get.hsl=function(t){if(!t)return null;let e=/^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*(?:[,|/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,r=t.match(e);if(r){let s=Number.parseFloat(r[4]),i=(Number.parseFloat(r[1])%360+360)%360,n=ze(Number.parseFloat(r[2]),0,100),a=ze(Number.parseFloat(r[3]),0,100),o=ze(Number.isNaN(s)?1:s,0,1);return[i,n,a,o]}return null};ie.get.hwb=function(t){if(!t)return null;let e=/^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*[\s,]\s*([+-]?[\d.]+)%\s*[\s,]\s*([+-]?[\d.]+)%\s*(?:[\s,]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,r=t.match(e);if(r){let s=Number.parseFloat(r[4]),i=(Number.parseFloat(r[1])%360+360)%360,n=ze(Number.parseFloat(r[2]),0,100),a=ze(Number.parseFloat(r[3]),0,100),o=ze(Number.isNaN(s)?1:s,0,1);return[i,n,a,o]}return null};ie.to.hex=function(...t){return"#"+Jt(t[0])+Jt(t[1])+Jt(t[2])+(t[3]<1?Jt(Math.round(t[3]*255)):"")};ie.to.rgb=function(...t){return t.length<4||t[3]===1?"rgb("+Math.round(t[0])+", "+Math.round(t[1])+", "+Math.round(t[2])+")":"rgba("+Math.round(t[0])+", "+Math.round(t[1])+", "+Math.round(t[2])+", "+t[3]+")"};ie.to.rgb.percent=function(...t){let e=Math.round(t[0]/255*100),r=Math.round(t[1]/255*100),s=Math.round(t[2]/255*100);return t.length<4||t[3]===1?"rgb("+e+"%, "+r+"%, "+s+"%)":"rgba("+e+"%, "+r+"%, "+s+"%, "+t[3]+")"};ie.to.hsl=function(...t){return t.length<4||t[3]===1?"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)":"hsla("+t[0]+", "+t[1]+"%, "+t[2]+"%, "+t[3]+")"};ie.to.hwb=function(...t){let e="";return t.length>=4&&t[3]!==1&&(e=", "+t[3]),"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+e+")"};ie.to.keyword=function(...t){return hn[t.slice(0,3)]};function ze(t,e,r){return Math.min(Math.max(e,t),r)}function Jt(t){let e=Math.round(t).toString(16).toUpperCase();return e.length<2?"0"+e:e}var at=ie,un={};for(let t of Object.keys(Pe))un[Pe[t]]=t;var A={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},oklab:{channels:3,labels:["okl","oka","okb"]},lch:{channels:3,labels:"lch"},oklch:{channels:3,labels:["okl","okc","okh"]},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}},Ze=A,Ce=(6/29)**3;function lt(t){let e=t>.0031308?1.055*t**.4166666666666667-.055:t*12.92;return Math.min(Math.max(0,e),1)}function ct(t){return t>.04045?((t+.055)/1.055)**2.4:t/12.92}for(let t of Object.keys(A)){if(!("channels"in A[t]))throw new Error("missing channels property: "+t);if(!("labels"in A[t]))throw new Error("missing channel labels property: "+t);if(A[t].labels.length!==A[t].channels)throw new Error("channel and label counts mismatch: "+t);let{channels:e,labels:r}=A[t];delete A[t].channels,delete A[t].labels,Object.defineProperty(A[t],"channels",{value:e}),Object.defineProperty(A[t],"labels",{value:r})}A.rgb.hsl=function(t){let e=t[0]/255,r=t[1]/255,s=t[2]/255,i=Math.min(e,r,s),n=Math.max(e,r,s),a=n-i,o,c;switch(n){case i:{o=0;break}case e:{o=(r-s)/a;break}case r:{o=2+(s-e)/a;break}case s:{o=4+(e-r)/a;break}}o=Math.min(o*60,360),o<0&&(o+=360);let u=(i+n)/2;return n===i?c=0:u<=.5?c=a/(n+i):c=a/(2-n-i),[o,c*100,u*100]};A.rgb.hsv=function(t){let e,r,s,i,n,a=t[0]/255,o=t[1]/255,c=t[2]/255,u=Math.max(a,o,c),f=u-Math.min(a,o,c),m=function(v){return(u-v)/6/f+1/2};if(f===0)i=0,n=0;else{switch(n=f/u,e=m(a),r=m(o),s=m(c),u){case a:{i=s-r;break}case o:{i=1/3+e-s;break}case c:{i=2/3+r-e;break}}i<0?i+=1:i>1&&(i-=1)}return[i*360,n*100,u*100]};A.rgb.hwb=function(t){let e=t[0],r=t[1],s=t[2],i=A.rgb.hsl(t)[0],n=1/255*Math.min(e,Math.min(r,s));return s=1-1/255*Math.max(e,Math.max(r,s)),[i,n*100,s*100]};A.rgb.oklab=function(t){let e=ct(t[0]/255),r=ct(t[1]/255),s=ct(t[2]/255),i=Math.cbrt(.4122214708*e+.5363325363*r+.0514459929*s),n=Math.cbrt(.2119034982*e+.6806995451*r+.1073969566*s),a=Math.cbrt(.0883024619*e+.2817188376*r+.6299787005*s),o=.2104542553*i+.793617785*n-.0040720468*a,c=1.9779984951*i-2.428592205*n+.4505937099*a,u=.0259040371*i+.7827717662*n-.808675766*a;return[o*100,c*100,u*100]};A.rgb.cmyk=function(t){let e=t[0]/255,r=t[1]/255,s=t[2]/255,i=Math.min(1-e,1-r,1-s),n=(1-e-i)/(1-i)||0,a=(1-r-i)/(1-i)||0,o=(1-s-i)/(1-i)||0;return[n*100,a*100,o*100,i*100]};function Wc(t,e){return(t[0]-e[0])**2+(t[1]-e[1])**2+(t[2]-e[2])**2}A.rgb.keyword=function(t){let e=un[t];if(e)return e;let r=Number.POSITIVE_INFINITY,s;for(let i of Object.keys(Pe)){let n=Pe[i],a=Wc(t,n);a<r&&(r=a,s=i)}return s};A.keyword.rgb=function(t){return Pe[t]};A.rgb.xyz=function(t){let e=ct(t[0]/255),r=ct(t[1]/255),s=ct(t[2]/255),i=e*.4124564+r*.3575761+s*.1804375,n=e*.2126729+r*.7151522+s*.072175,a=e*.0193339+r*.119192+s*.9503041;return[i*100,n*100,a*100]};A.rgb.lab=function(t){let e=A.rgb.xyz(t),r=e[0],s=e[1],i=e[2];r/=95.047,s/=100,i/=108.883,r=r>Ce?r**(1/3):7.787*r+16/116,s=s>Ce?s**(1/3):7.787*s+16/116,i=i>Ce?i**(1/3):7.787*i+16/116;let n=116*s-16,a=500*(r-s),o=200*(s-i);return[n,a,o]};A.hsl.rgb=function(t){let e=t[0]/360,r=t[1]/100,s=t[2]/100,i,n;if(r===0)return n=s*255,[n,n,n];let a=s<.5?s*(1+r):s+r-s*r,o=2*s-a,c=[0,0,0];for(let u=0;u<3;u++)i=e+1/3*-(u-1),i<0&&i++,i>1&&i--,6*i<1?n=o+(a-o)*6*i:2*i<1?n=a:3*i<2?n=o+(a-o)*(2/3-i)*6:n=o,c[u]=n*255;return c};A.hsl.hsv=function(t){let e=t[0],r=t[1]/100,s=t[2]/100,i=r,n=Math.max(s,.01);s*=2,r*=s<=1?s:2-s,i*=n<=1?n:2-n;let a=(s+r)/2,o=s===0?2*i/(n+i):2*r/(s+r);return[e,o*100,a*100]};A.hsv.rgb=function(t){let e=t[0]/60,r=t[1]/100,s=t[2]/100,i=Math.floor(e)%6,n=e-Math.floor(e),a=255*s*(1-r),o=255*s*(1-r*n),c=255*s*(1-r*(1-n));switch(s*=255,i){case 0:return[s,c,a];case 1:return[o,s,a];case 2:return[a,s,c];case 3:return[a,o,s];case 4:return[c,a,s];case 5:return[s,a,o]}};A.hsv.hsl=function(t){let e=t[0],r=t[1]/100,s=t[2]/100,i=Math.max(s,.01),n,a;a=(2-r)*s;let o=(2-r)*i;return n=r*i,n/=o<=1?o:2-o,n=n||0,a/=2,[e,n*100,a*100]};A.hwb.rgb=function(t){let e=t[0]/360,r=t[1]/100,s=t[2]/100,i=r+s,n;i>1&&(r/=i,s/=i);let a=Math.floor(6*e),o=1-s;n=6*e-a,(a&1)!==0&&(n=1-n);let c=r+n*(o-r),u,f,m;switch(a){default:case 6:case 0:{u=o,f=c,m=r;break}case 1:{u=c,f=o,m=r;break}case 2:{u=r,f=o,m=c;break}case 3:{u=r,f=c,m=o;break}case 4:{u=c,f=r,m=o;break}case 5:{u=o,f=r,m=c;break}}return[u*255,f*255,m*255]};A.cmyk.rgb=function(t){let e=t[0]/100,r=t[1]/100,s=t[2]/100,i=t[3]/100,n=1-Math.min(1,e*(1-i)+i),a=1-Math.min(1,r*(1-i)+i),o=1-Math.min(1,s*(1-i)+i);return[n*255,a*255,o*255]};A.xyz.rgb=function(t){let e=t[0]/100,r=t[1]/100,s=t[2]/100,i,n,a;return i=e*3.2404542+r*-1.5371385+s*-.4985314,n=e*-.969266+r*1.8760108+s*.041556,a=e*.0556434+r*-.2040259+s*1.0572252,i=lt(i),n=lt(n),a=lt(a),[i*255,n*255,a*255]};A.xyz.lab=function(t){let e=t[0],r=t[1],s=t[2];e/=95.047,r/=100,s/=108.883,e=e>Ce?e**(1/3):7.787*e+16/116,r=r>Ce?r**(1/3):7.787*r+16/116,s=s>Ce?s**(1/3):7.787*s+16/116;let i=116*r-16,n=500*(e-r),a=200*(r-s);return[i,n,a]};A.xyz.oklab=function(t){let e=t[0]/100,r=t[1]/100,s=t[2]/100,i=Math.cbrt(.8189330101*e+.3618667424*r-.1288597137*s),n=Math.cbrt(.0329845436*e+.9293118715*r+.0361456387*s),a=Math.cbrt(.0482003018*e+.2643662691*r+.633851707*s),o=.2104542553*i+.793617785*n-.0040720468*a,c=1.9779984951*i-2.428592205*n+.4505937099*a,u=.0259040371*i+.7827717662*n-.808675766*a;return[o*100,c*100,u*100]};A.oklab.oklch=function(t){return A.lab.lch(t)};A.oklab.xyz=function(t){let e=t[0]/100,r=t[1]/100,s=t[2]/100,i=(.999999998*e+.396337792*r+.215803758*s)**3,n=(1.000000008*e-.105561342*r-.063854175*s)**3,a=(1.000000055*e-.089484182*r-1.291485538*s)**3,o=1.227013851*i-.55779998*n+.281256149*a,c=-.040580178*i+1.11225687*n-.071676679*a,u=-.076381285*i-.421481978*n+1.58616322*a;return[o*100,c*100,u*100]};A.oklab.rgb=function(t){let e=t[0]/100,r=t[1]/100,s=t[2]/100,i=(e+.3963377774*r+.2158037573*s)**3,n=(e-.1055613458*r-.0638541728*s)**3,a=(e-.0894841775*r-1.291485548*s)**3,o=lt(4.0767416621*i-3.3077115913*n+.2309699292*a),c=lt(-1.2684380046*i+2.6097574011*n-.3413193965*a),u=lt(-.0041960863*i-.7034186147*n+1.707614701*a);return[o*255,c*255,u*255]};A.oklch.oklab=function(t){return A.lch.lab(t)};A.lab.xyz=function(t){let e=t[0],r=t[1],s=t[2],i,n,a;n=(e+16)/116,i=r/500+n,a=n-s/200;let o=n**3,c=i**3,u=a**3;return n=o>Ce?o:(n-16/116)/7.787,i=c>Ce?c:(i-16/116)/7.787,a=u>Ce?u:(a-16/116)/7.787,i*=95.047,n*=100,a*=108.883,[i,n,a]};A.lab.lch=function(t){let e=t[0],r=t[1],s=t[2],i;i=Math.atan2(s,r)*360/2/Math.PI,i<0&&(i+=360);let a=Math.sqrt(r*r+s*s);return[e,a,i]};A.lch.lab=function(t){let e=t[0],r=t[1],i=t[2]/360*2*Math.PI,n=r*Math.cos(i),a=r*Math.sin(i);return[e,n,a]};A.rgb.ansi16=function(t,e=null){let[r,s,i]=t,n=e===null?A.rgb.hsv(t)[2]:e;if(n=Math.round(n/50),n===0)return 30;let a=30+(Math.round(i/255)<<2|Math.round(s/255)<<1|Math.round(r/255));return n===2&&(a+=60),a};A.hsv.ansi16=function(t){return A.rgb.ansi16(A.hsv.rgb(t),t[2])};A.rgb.ansi256=function(t){let e=t[0],r=t[1],s=t[2];return e>>4===r>>4&&r>>4===s>>4?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(r/255*5)+Math.round(s/255*5)};A.ansi16.rgb=function(t){t=t[0];let e=t%10;if(e===0||e===7)return t>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let r=(Math.trunc(t>50)+1)*.5,s=(e&1)*r*255,i=(e>>1&1)*r*255,n=(e>>2&1)*r*255;return[s,i,n]};A.ansi256.rgb=function(t){if(t=t[0],t>=232){let n=(t-232)*10+8;return[n,n,n]}t-=16;let e,r=Math.floor(t/36)/5*255,s=Math.floor((e=t%36)/6)/5*255,i=e%6/5*255;return[r,s,i]};A.rgb.hex=function(t){let r=(((Math.round(t[0])&255)<<16)+((Math.round(t[1])&255)<<8)+(Math.round(t[2])&255)).toString(16).toUpperCase();return"000000".slice(r.length)+r};A.hex.rgb=function(t){let e=t.toString(16).match(/[a-f\d]{6}|[a-f\d]{3}/i);if(!e)return[0,0,0];let r=e[0];e[0].length===3&&(r=[...r].map(o=>o+o).join(""));let s=Number.parseInt(r,16),i=s>>16&255,n=s>>8&255,a=s&255;return[i,n,a]};A.rgb.hcg=function(t){let e=t[0]/255,r=t[1]/255,s=t[2]/255,i=Math.max(Math.max(e,r),s),n=Math.min(Math.min(e,r),s),a=i-n,o,c=a<1?n/(1-a):0;return a<=0?o=0:i===e?o=(r-s)/a%6:i===r?o=2+(s-e)/a:o=4+(e-r)/a,o/=6,o%=1,[o*360,a*100,c*100]};A.hsl.hcg=function(t){let e=t[1]/100,r=t[2]/100,s=r<.5?2*e*r:2*e*(1-r),i=0;return s<1&&(i=(r-.5*s)/(1-s)),[t[0],s*100,i*100]};A.hsv.hcg=function(t){let e=t[1]/100,r=t[2]/100,s=e*r,i=0;return s<1&&(i=(r-s)/(1-s)),[t[0],s*100,i*100]};A.hcg.rgb=function(t){let e=t[0]/360,r=t[1]/100,s=t[2]/100;if(r===0)return[s*255,s*255,s*255];let i=[0,0,0],n=e%1*6,a=n%1,o=1-a,c=0;switch(Math.floor(n)){case 0:{i[0]=1,i[1]=a,i[2]=0;break}case 1:{i[0]=o,i[1]=1,i[2]=0;break}case 2:{i[0]=0,i[1]=1,i[2]=a;break}case 3:{i[0]=0,i[1]=o,i[2]=1;break}case 4:{i[0]=a,i[1]=0,i[2]=1;break}default:i[0]=1,i[1]=0,i[2]=o}return c=(1-r)*s,[(r*i[0]+c)*255,(r*i[1]+c)*255,(r*i[2]+c)*255]};A.hcg.hsv=function(t){let e=t[1]/100,r=t[2]/100,s=e+r*(1-e),i=0;return s>0&&(i=e/s),[t[0],i*100,s*100]};A.hcg.hsl=function(t){let e=t[1]/100,s=t[2]/100*(1-e)+.5*e,i=0;return s>0&&s<.5?i=e/(2*s):s>=.5&&s<1&&(i=e/(2*(1-s))),[t[0],i*100,s*100]};A.hcg.hwb=function(t){let e=t[1]/100,r=t[2]/100,s=e+r*(1-e);return[t[0],(s-e)*100,(1-s)*100]};A.hwb.hcg=function(t){let e=t[1]/100,s=1-t[2]/100,i=s-e,n=0;return i<1&&(n=(s-i)/(1-i)),[t[0],i*100,n*100]};A.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]};A.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]};A.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]};A.gray.hsl=function(t){return[0,0,t[0]]};A.gray.hsv=A.gray.hsl;A.gray.hwb=function(t){return[0,100,t[0]]};A.gray.cmyk=function(t){return[0,0,0,t[0]]};A.gray.lab=function(t){return[t[0],0,0]};A.gray.hex=function(t){let e=Math.round(t[0]/100*255)&255,s=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".slice(s.length)+s};A.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]};function Vc(){let t={},e=Object.keys(Ze);for(let{length:r}=e,s=0;s<r;s++)t[e[s]]={distance:-1,parent:null};return t}function Xc(t){let e=Vc(),r=[t];for(e[t].distance=0;r.length>0;){let s=r.pop(),i=Object.keys(Ze[s]);for(let{length:n}=i,a=0;a<n;a++){let o=i[a],c=e[o];c.distance===-1&&(c.distance=e[s].distance+1,c.parent=s,r.unshift(o))}}return e}function Jc(t,e){return function(r){return e(t(r))}}function Kc(t,e){let r=[e[t].parent,t],s=Ze[e[t].parent][t],i=e[t].parent;for(;e[i].parent;)r.unshift(e[i].parent),s=Jc(Ze[e[i].parent][i],s),i=e[i].parent;return s.conversion=r,s}function Yc(t){let e=Xc(t),r={},s=Object.keys(e);for(let{length:i}=s,n=0;n<i;n++){let a=s[n];e[a].parent!==null&&(r[a]=Kc(a,e))}return r}var Qc=Yc,ot={},Zc=Object.keys(Ze);function eh(t){let e=function(...r){let s=r[0];return s==null?s:(s.length>1&&(r=s),t(r))};return"conversion"in t&&(e.conversion=t.conversion),e}function th(t){let e=function(...r){let s=r[0];if(s==null)return s;s.length>1&&(r=s);let i=t(r);if(typeof i=="object")for(let{length:n}=i,a=0;a<n;a++)i[a]=Math.round(i[a]);return i};return"conversion"in t&&(e.conversion=t.conversion),e}for(let t of Zc){ot[t]={},Object.defineProperty(ot[t],"channels",{value:Ze[t].channels}),Object.defineProperty(ot[t],"labels",{value:Ze[t].labels});let e=Qc(t),r=Object.keys(e);for(let s of r){let i=e[s];ot[t][s]=th(i),ot[t][s].raw=eh(i)}}var ae=ot,fn=["keyword","gray","hex"],Dr={};for(let t of Object.keys(ae))Dr[[...ae[t].labels].sort().join("")]=t;var Tr={};function K(t,e){if(!(this instanceof K))return new K(t,e);if(e&&e in fn&&(e=null),e&&!(e in ae))throw new Error("Unknown model: "+e);let r,s;if(t==null)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if(t instanceof K)this.model=t.model,this.color=[...t.color],this.valpha=t.valpha;else if(typeof t=="string"){let i=at.get(t);if(i===null)throw new Error("Unable to parse color from string: "+t);this.model=i.model,s=ae[this.model].channels,this.color=i.value.slice(0,s),this.valpha=typeof i.value[s]=="number"?i.value[s]:1}else if(t.length>0){this.model=e||"rgb",s=ae[this.model].channels;let i=Array.prototype.slice.call(t,0,s);this.color=Lr(i,s),this.valpha=typeof t[s]=="number"?t[s]:1}else if(typeof t=="number")this.model="rgb",this.color=[t>>16&255,t>>8&255,t&255],this.valpha=1;else{this.valpha=1;let i=Object.keys(t);"alpha"in t&&(i.splice(i.indexOf("alpha"),1),this.valpha=typeof t.alpha=="number"?t.alpha:0);let n=i.sort().join("");if(!(n in Dr))throw new Error("Unable to parse color from object: "+JSON.stringify(t));this.model=Dr[n];let{labels:a}=ae[this.model],o=[];for(r=0;r<a.length;r++)o.push(t[a[r]]);this.color=Lr(o)}if(Tr[this.model])for(s=ae[this.model].channels,r=0;r<s;r++){let i=Tr[this.model][r];i&&(this.color[r]=i(this.color[r]))}this.valpha=Math.max(0,Math.min(1,this.valpha)),Object.freeze&&Object.freeze(this)}K.prototype={toString(){return this.string()},toJSON(){return this[this.model]()},string(t){let e=this.model in at.to?this:this.rgb();e=e.round(typeof t=="number"?t:1);let r=e.valpha===1?e.color:[...e.color,this.valpha];return at.to[e.model](...r)},percentString(t){let e=this.rgb().round(typeof t=="number"?t:1),r=e.valpha===1?e.color:[...e.color,this.valpha];return at.to.rgb.percent(...r)},array(){return this.valpha===1?[...this.color]:[...this.color,this.valpha]},object(){let t={},{channels:e}=ae[this.model],{labels:r}=ae[this.model];for(let s=0;s<e;s++)t[r[s]]=this.color[s];return this.valpha!==1&&(t.alpha=this.valpha),t},unitArray(){let t=this.rgb().color;return t[0]/=255,t[1]/=255,t[2]/=255,this.valpha!==1&&t.push(this.valpha),t},unitObject(){let t=this.rgb().object();return t.r/=255,t.g/=255,t.b/=255,this.valpha!==1&&(t.alpha=this.valpha),t},round(t){return t=Math.max(t||0,0),new K([...this.color.map(sh(t)),this.valpha],this.model)},alpha(t){return t!==void 0?new K([...this.color,Math.max(0,Math.min(1,t))],this.model):this.valpha},red:W("rgb",0,X(255)),green:W("rgb",1,X(255)),blue:W("rgb",2,X(255)),hue:W(["hsl","hsv","hsl","hwb","hcg"],0,t=>(t%360+360)%360),saturationl:W("hsl",1,X(100)),lightness:W("hsl",2,X(100)),saturationv:W("hsv",1,X(100)),value:W("hsv",2,X(100)),chroma:W("hcg",1,X(100)),gray:W("hcg",2,X(100)),white:W("hwb",1,X(100)),wblack:W("hwb",2,X(100)),cyan:W("cmyk",0,X(100)),magenta:W("cmyk",1,X(100)),yellow:W("cmyk",2,X(100)),black:W("cmyk",3,X(100)),x:W("xyz",0,X(95.047)),y:W("xyz",1,X(100)),z:W("xyz",2,X(108.833)),l:W("lab",0,X(100)),a:W("lab",1),b:W("lab",2),keyword(t){return t!==void 0?new K(t):ae[this.model].keyword(this.color)},hex(t){return t!==void 0?new K(t):at.to.hex(...this.rgb().round().color)},hexa(t){if(t!==void 0)return new K(t);let e=this.rgb().round().color,r=Math.round(this.valpha*255).toString(16).toUpperCase();return r.length===1&&(r="0"+r),at.to.hex(...e)+r},rgbNumber(){let t=this.rgb().color;return(t[0]&255)<<16|(t[1]&255)<<8|t[2]&255},luminosity(){let t=this.rgb().color,e=[];for(let[r,s]of t.entries()){let i=s/255;e[r]=i<=.04045?i/12.92:((i+.055)/1.055)**2.4}return .2126*e[0]+.7152*e[1]+.0722*e[2]},contrast(t){let e=this.luminosity(),r=t.luminosity();return e>r?(e+.05)/(r+.05):(r+.05)/(e+.05)},level(t){let e=this.contrast(t);return e>=7?"AAA":e>=4.5?"AA":""},isDark(){let t=this.rgb().color;return(t[0]*2126+t[1]*7152+t[2]*722)/1e4<128},isLight(){return!this.isDark()},negate(){let t=this.rgb();for(let e=0;e<3;e++)t.color[e]=255-t.color[e];return t},lighten(t){let e=this.hsl();return e.color[2]+=e.color[2]*t,e},darken(t){let e=this.hsl();return e.color[2]-=e.color[2]*t,e},saturate(t){let e=this.hsl();return e.color[1]+=e.color[1]*t,e},desaturate(t){let e=this.hsl();return e.color[1]-=e.color[1]*t,e},whiten(t){let e=this.hwb();return e.color[1]+=e.color[1]*t,e},blacken(t){let e=this.hwb();return e.color[2]+=e.color[2]*t,e},grayscale(){let t=this.rgb().color,e=t[0]*.3+t[1]*.59+t[2]*.11;return K.rgb(e,e,e)},fade(t){return this.alpha(this.valpha-this.valpha*t)},opaquer(t){return this.alpha(this.valpha+this.valpha*t)},rotate(t){let e=this.hsl(),r=e.color[0];return r=(r+t)%360,r=r<0?360+r:r,e.color[0]=r,e},mix(t,e){if(!t||!t.rgb)throw new Error('Argument to "mix" was not a Color instance, but rather an instance of '+typeof t);let r=t.rgb(),s=this.rgb(),i=e===void 0?.5:e,n=2*i-1,a=r.alpha()-s.alpha(),o=((n*a===-1?n:(n+a)/(1+n*a))+1)/2,c=1-o;return K.rgb(o*r.red()+c*s.red(),o*r.green()+c*s.green(),o*r.blue()+c*s.blue(),r.alpha()*i+s.alpha()*(1-i))}};for(let t of Object.keys(ae)){if(fn.includes(t))continue;let{channels:e}=ae[t];K.prototype[t]=function(...r){return this.model===t?new K(this):r.length>0?new K(r,t):new K([...ih(ae[this.model][t].raw(this.color)),this.valpha],t)},K[t]=function(...r){let s=r[0];return typeof s=="number"&&(s=Lr(r,e)),new K(s,t)}}function rh(t,e){return Number(t.toFixed(e))}function sh(t){return function(e){return rh(e,t)}}function W(t,e,r){t=Array.isArray(t)?t:[t];for(let s of t)(Tr[s]||=[])[e]=r;return t=t[0],function(s){let i;return s!==void 0?(r&&(s=r(s)),i=this[t](),i.color[e]=s,i):(i=this[t]().color[e],r&&(i=r(i)),i)}}function X(t){return function(e){return Math.max(0,Math.min(t,e))}}function ih(t){return Array.isArray(t)?t:[t]}function Lr(t,e){for(let r=0;r<e;r++)typeof t[r]!="number"&&(t[r]=0);return t}var nh=K});var mn=j((wd,pn)=>{g();pn.exports=gn().default});var yn=j((Ed,wn)=>{g();var ah=mn(),je=be(),bn={multiband:"multiband","b-w":"b-w",bw:"b-w",cmyk:"cmyk",srgb:"srgb"};function oh(t){return this._setBackgroundColourOption("tint",t),this}function lh(t){return this.options.greyscale=je.bool(t)?t:!0,this}function ch(t){return this.greyscale(t)}function hh(t){if(!je.string(t))throw je.invalidParameterError("colourspace","string",t);return this.options.colourspacePipeline=t,this}function uh(t){return this.pipelineColourspace(t)}function fh(t){if(!je.string(t))throw je.invalidParameterError("colourspace","string",t);return this.options.colourspace=t,this}function dh(t){return this.toColourspace(t)}function vn(t){if(je.object(t)||je.string(t)&&t.length>=3&&t.length<=200){let e=ah(t);return[e.red(),e.green(),e.blue(),Math.round(e.alpha()*255)]}else throw je.invalidParameterError("background","object or string",t)}function gh(t,e){je.defined(e)&&(this.options[t]=vn(e))}wn.exports=t=>{Object.assign(t.prototype,{tint:oh,greyscale:lh,grayscale:ch,pipelineColourspace:hh,pipelineColorspace:uh,toColourspace:fh,toColorspace:dh,_getBackgroundColourOption:vn,_setBackgroundColourOption:gh}),t.colourspace=bn,t.colorspace=bn}});var Pn=j((xd,En)=>{g();var xe=be(),ph={and:"and",or:"or",eor:"eor"};function mh(){return this.options.removeAlpha=!0,this}function bh(t){if(xe.defined(t))if(xe.number(t)&&xe.inRange(t,0,1))this.options.ensureAlpha=t;else throw xe.invalidParameterError("alpha","number between 0 and 1",t);else this.options.ensureAlpha=1;return this}function vh(t){let e={red:0,green:1,blue:2,alpha:3};if(Object.keys(e).includes(t)&&(t=e[t]),xe.integer(t)&&xe.inRange(t,0,4))this.options.extractChannel=t;else throw xe.invalidParameterError("channel","integer or one of: red, green, blue, alpha",t);return this}function wh(t,e){return Array.isArray(t)?t.forEach(function(r){this.options.joinChannelIn.push(this._createInputDescriptor(r,e))},this):this.options.joinChannelIn.push(this._createInputDescriptor(t,e)),this}function yh(t){if(xe.string(t)&&xe.inArray(t,["and","or","eor"]))this.options.bandBoolOp=t;else throw xe.invalidParameterError("boolOp","one of: and, or, eor",t);return this}En.exports=t=>{Object.assign(t.prototype,{removeAlpha:mh,ensureAlpha:bh,extractChannel:vh,joinChannel:wh,bandbool:yh}),t.bool=ph}});var Sn=j(($d,kn)=>{g();var Mr=H("node:path"),l=be(),ht=$t(),xn=new Map([["heic","heif"],["heif","heif"],["avif","avif"],["jpeg","jpeg"],["jpg","jpeg"],["jpe","jpeg"],["tile","tile"],["dz","tile"],["png","png"],["raw","raw"],["tiff","tiff"],["tif","tiff"],["webp","webp"],["gif","gif"],["jp2","jp2"],["jpx","jp2"],["j2k","jp2"],["j2c","jp2"],["jxl","jxl"]]),Eh=/\.(jp[2x]|j2[kc])$/i,Rn=()=>new Error("JP2 output requires libvips with support for OpenJPEG"),$n=t=>1<<31-Math.clz32(Math.ceil(Math.log2(t)));function Ph(t,e){let r;if(l.string(t)?l.string(this.options.input.file)&&Mr.resolve(this.options.input.file)===Mr.resolve(t)?r=new Error("Cannot use same file for input and output"):Eh.test(Mr.extname(t))&&!this.constructor.format.jp2k.output.file&&(r=Rn()):r=new Error("Missing output file path"),r)if(l.fn(e))e(r);else return Promise.reject(r);else{this.options.fileOut=t;let s=Error();return this._pipeline(e,s)}return this}function xh(t,e){l.object(t)?this._setBooleanOption("resolveWithObject",t.resolveWithObject):this.options.resolveWithObject&&(this.options.resolveWithObject=!1),this.options.fileOut="";let r=Error();return this._pipeline(l.fn(t)?t:e,r)}function Rh(){return this.options.keepMetadata|=1,this}function $h(t){if(l.object(t))for(let[e,r]of Object.entries(t))if(l.object(r))for(let[s,i]of Object.entries(r))if(l.string(i))this.options.withExif[`exif-${e.toLowerCase()}-${s}`]=i;else throw l.invalidParameterError(`${e}.${s}`,"string",i);else throw l.invalidParameterError(e,"object",r);else throw l.invalidParameterError("exif","object",t);return this.options.withExifMerge=!1,this.keepExif()}function kh(t){return this.withExif(t),this.options.withExifMerge=!0,this}function Sh(){return this.options.keepMetadata|=8,this}function Ah(t,e){if(l.string(t))this.options.withIccProfile=t;else throw l.invalidParameterError("icc","string",t);if(this.keepIccProfile(),l.object(e)&&l.defined(e.attach))if(l.bool(e.attach))e.attach||(this.options.keepMetadata&=-9);else throw l.invalidParameterError("attach","boolean",e.attach);return this}function _h(){return this.options.keepMetadata|=2,this}function Nh(t){if(l.string(t)&&t.length>0)this.options.withXmp=t,this.options.keepMetadata|=2;else throw l.invalidParameterError("xmp","non-empty string",t);return this}function Ih(){return this.options.keepMetadata=31,this}function Fh(t){if(this.keepMetadata(),this.withIccProfile("srgb"),l.object(t)){if(l.defined(t.orientation))if(l.integer(t.orientation)&&l.inRange(t.orientation,1,8))this.options.withMetadataOrientation=t.orientation;else throw l.invalidParameterError("orientation","integer between 1 and 8",t.orientation);if(l.defined(t.density))if(l.number(t.density)&&t.density>0)this.options.withMetadataDensity=t.density;else throw l.invalidParameterError("density","positive number",t.density);l.defined(t.icc)&&this.withIccProfile(t.icc),l.defined(t.exif)&&this.withExifMerge(t.exif)}return this}function Ch(t,e){let r=xn.get((l.object(t)&&l.string(t.id)?t.id:t).toLowerCase());if(!r)throw l.invalidParameterError("format",`one of: ${[...xn.keys()].join(", ")}`,t);return this[r](e)}function jh(t){if(l.object(t)){if(l.defined(t.quality))if(l.integer(t.quality)&&l.inRange(t.quality,1,100))this.options.jpegQuality=t.quality;else throw l.invalidParameterError("quality","integer between 1 and 100",t.quality);if(l.defined(t.progressive)&&this._setBooleanOption("jpegProgressive",t.progressive),l.defined(t.chromaSubsampling))if(l.string(t.chromaSubsampling)&&l.inArray(t.chromaSubsampling,["4:2:0","4:4:4"]))this.options.jpegChromaSubsampling=t.chromaSubsampling;else throw l.invalidParameterError("chromaSubsampling","one of: 4:2:0, 4:4:4",t.chromaSubsampling);let e=l.bool(t.optimizeCoding)?t.optimizeCoding:t.optimiseCoding;if(l.defined(e)&&this._setBooleanOption("jpegOptimiseCoding",e),l.defined(t.mozjpeg))if(l.bool(t.mozjpeg))t.mozjpeg&&(this.options.jpegTrellisQuantisation=!0,this.options.jpegOvershootDeringing=!0,this.options.jpegOptimiseScans=!0,this.options.jpegProgressive=!0,this.options.jpegQuantisationTable=3);else throw l.invalidParameterError("mozjpeg","boolean",t.mozjpeg);let r=l.bool(t.trellisQuantization)?t.trellisQuantization:t.trellisQuantisation;l.defined(r)&&this._setBooleanOption("jpegTrellisQuantisation",r),l.defined(t.overshootDeringing)&&this._setBooleanOption("jpegOvershootDeringing",t.overshootDeringing);let s=l.bool(t.optimizeScans)?t.optimizeScans:t.optimiseScans;l.defined(s)&&(this._setBooleanOption("jpegOptimiseScans",s),s&&(this.options.jpegProgressive=!0));let i=l.number(t.quantizationTable)?t.quantizationTable:t.quantisationTable;if(l.defined(i))if(l.integer(i)&&l.inRange(i,0,8))this.options.jpegQuantisationTable=i;else throw l.invalidParameterError("quantisationTable","integer between 0 and 8",i)}return this._updateFormatOut("jpeg",t)}function Dh(t){if(l.object(t)){if(l.defined(t.progressive)&&this._setBooleanOption("pngProgressive",t.progressive),l.defined(t.compressionLevel))if(l.integer(t.compressionLevel)&&l.inRange(t.compressionLevel,0,9))this.options.pngCompressionLevel=t.compressionLevel;else throw l.invalidParameterError("compressionLevel","integer between 0 and 9",t.compressionLevel);l.defined(t.adaptiveFiltering)&&this._setBooleanOption("pngAdaptiveFiltering",t.adaptiveFiltering);let e=t.colours||t.colors;if(l.defined(e))if(l.integer(e)&&l.inRange(e,2,256))this.options.pngBitdepth=$n(e);else throw l.invalidParameterError("colours","integer between 2 and 256",e);if(l.defined(t.palette)?this._setBooleanOption("pngPalette",t.palette):[t.quality,t.effort,t.colours,t.colors,t.dither].some(l.defined)&&this._setBooleanOption("pngPalette",!0),this.options.pngPalette){if(l.defined(t.quality))if(l.integer(t.quality)&&l.inRange(t.quality,0,100))this.options.pngQuality=t.quality;else throw l.invalidParameterError("quality","integer between 0 and 100",t.quality);if(l.defined(t.effort))if(l.integer(t.effort)&&l.inRange(t.effort,1,10))this.options.pngEffort=t.effort;else throw l.invalidParameterError("effort","integer between 1 and 10",t.effort);if(l.defined(t.dither))if(l.number(t.dither)&&l.inRange(t.dither,0,1))this.options.pngDither=t.dither;else throw l.invalidParameterError("dither","number between 0.0 and 1.0",t.dither)}}return this._updateFormatOut("png",t)}function Th(t){if(l.object(t)){if(l.defined(t.quality))if(l.integer(t.quality)&&l.inRange(t.quality,1,100))this.options.webpQuality=t.quality;else throw l.invalidParameterError("quality","integer between 1 and 100",t.quality);if(l.defined(t.alphaQuality))if(l.integer(t.alphaQuality)&&l.inRange(t.alphaQuality,0,100))this.options.webpAlphaQuality=t.alphaQuality;else throw l.invalidParameterError("alphaQuality","integer between 0 and 100",t.alphaQuality);if(l.defined(t.lossless)&&this._setBooleanOption("webpLossless",t.lossless),l.defined(t.nearLossless)&&this._setBooleanOption("webpNearLossless",t.nearLossless),l.defined(t.smartSubsample)&&this._setBooleanOption("webpSmartSubsample",t.smartSubsample),l.defined(t.smartDeblock)&&this._setBooleanOption("webpSmartDeblock",t.smartDeblock),l.defined(t.preset))if(l.string(t.preset)&&l.inArray(t.preset,["default","photo","picture","drawing","icon","text"]))this.options.webpPreset=t.preset;else throw l.invalidParameterError("preset","one of: default, photo, picture, drawing, icon, text",t.preset);if(l.defined(t.effort))if(l.integer(t.effort)&&l.inRange(t.effort,0,6))this.options.webpEffort=t.effort;else throw l.invalidParameterError("effort","integer between 0 and 6",t.effort);l.defined(t.minSize)&&this._setBooleanOption("webpMinSize",t.minSize),l.defined(t.mixed)&&this._setBooleanOption("webpMixed",t.mixed)}return zr(t,this.options),this._updateFormatOut("webp",t)}function Lh(t){if(l.object(t)){l.defined(t.reuse)&&this._setBooleanOption("gifReuse",t.reuse),l.defined(t.progressive)&&this._setBooleanOption("gifProgressive",t.progressive);let e=t.colours||t.colors;if(l.defined(e))if(l.integer(e)&&l.inRange(e,2,256))this.options.gifBitdepth=$n(e);else throw l.invalidParameterError("colours","integer between 2 and 256",e);if(l.defined(t.effort))if(l.number(t.effort)&&l.inRange(t.effort,1,10))this.options.gifEffort=t.effort;else throw l.invalidParameterError("effort","integer between 1 and 10",t.effort);if(l.defined(t.dither))if(l.number(t.dither)&&l.inRange(t.dither,0,1))this.options.gifDither=t.dither;else throw l.invalidParameterError("dither","number between 0.0 and 1.0",t.dither);if(l.defined(t.interFrameMaxError))if(l.number(t.interFrameMaxError)&&l.inRange(t.interFrameMaxError,0,32))this.options.gifInterFrameMaxError=t.interFrameMaxError;else throw l.invalidParameterError("interFrameMaxError","number between 0.0 and 32.0",t.interFrameMaxError);if(l.defined(t.interPaletteMaxError))if(l.number(t.interPaletteMaxError)&&l.inRange(t.interPaletteMaxError,0,256))this.options.gifInterPaletteMaxError=t.interPaletteMaxError;else throw l.invalidParameterError("interPaletteMaxError","number between 0.0 and 256.0",t.interPaletteMaxError);if(l.defined(t.keepDuplicateFrames))if(l.bool(t.keepDuplicateFrames))this._setBooleanOption("gifKeepDuplicateFrames",t.keepDuplicateFrames);else throw l.invalidParameterError("keepDuplicateFrames","boolean",t.keepDuplicateFrames)}return zr(t,this.options),this._updateFormatOut("gif",t)}function Oh(t){if(!this.constructor.format.jp2k.output.buffer)throw Rn();if(l.object(t)){if(l.defined(t.quality))if(l.integer(t.quality)&&l.inRange(t.quality,1,100))this.options.jp2Quality=t.quality;else throw l.invalidParameterError("quality","integer between 1 and 100",t.quality);if(l.defined(t.lossless))if(l.bool(t.lossless))this.options.jp2Lossless=t.lossless;else throw l.invalidParameterError("lossless","boolean",t.lossless);if(l.defined(t.tileWidth))if(l.integer(t.tileWidth)&&l.inRange(t.tileWidth,1,32768))this.options.jp2TileWidth=t.tileWidth;else throw l.invalidParameterError("tileWidth","integer between 1 and 32768",t.tileWidth);if(l.defined(t.tileHeight))if(l.integer(t.tileHeight)&&l.inRange(t.tileHeight,1,32768))this.options.jp2TileHeight=t.tileHeight;else throw l.invalidParameterError("tileHeight","integer between 1 and 32768",t.tileHeight);if(l.defined(t.chromaSubsampling))if(l.string(t.chromaSubsampling)&&l.inArray(t.chromaSubsampling,["4:2:0","4:4:4"]))this.options.jp2ChromaSubsampling=t.chromaSubsampling;else throw l.invalidParameterError("chromaSubsampling","one of: 4:2:0, 4:4:4",t.chromaSubsampling)}return this._updateFormatOut("jp2",t)}function zr(t,e){if(l.object(t)&&l.defined(t.loop))if(l.integer(t.loop)&&l.inRange(t.loop,0,65535))e.loop=t.loop;else throw l.invalidParameterError("loop","integer between 0 and 65535",t.loop);if(l.object(t)&&l.defined(t.delay))if(l.integer(t.delay)&&l.inRange(t.delay,0,65535))e.delay=[t.delay];else if(Array.isArray(t.delay)&&t.delay.every(l.integer)&&t.delay.every(r=>l.inRange(r,0,65535)))e.delay=t.delay;else throw l.invalidParameterError("delay","integer or an array of integers between 0 and 65535",t.delay)}function Mh(t){if(l.object(t)){if(l.defined(t.quality))if(l.integer(t.quality)&&l.inRange(t.quality,1,100))this.options.tiffQuality=t.quality;else throw l.invalidParameterError("quality","integer between 1 and 100",t.quality);if(l.defined(t.bitdepth))if(l.integer(t.bitdepth)&&l.inArray(t.bitdepth,[1,2,4,8]))this.options.tiffBitdepth=t.bitdepth;else throw l.invalidParameterError("bitdepth","1, 2, 4 or 8",t.bitdepth);if(l.defined(t.tile)&&this._setBooleanOption("tiffTile",t.tile),l.defined(t.tileWidth))if(l.integer(t.tileWidth)&&t.tileWidth>0)this.options.tiffTileWidth=t.tileWidth;else throw l.invalidParameterError("tileWidth","integer greater than zero",t.tileWidth);if(l.defined(t.tileHeight))if(l.integer(t.tileHeight)&&t.tileHeight>0)this.options.tiffTileHeight=t.tileHeight;else throw l.invalidParameterError("tileHeight","integer greater than zero",t.tileHeight);if(l.defined(t.miniswhite)&&this._setBooleanOption("tiffMiniswhite",t.miniswhite),l.defined(t.pyramid)&&this._setBooleanOption("tiffPyramid",t.pyramid),l.defined(t.xres))if(l.number(t.xres)&&t.xres>0)this.options.tiffXres=t.xres;else throw l.invalidParameterError("xres","number greater than zero",t.xres);if(l.defined(t.yres))if(l.number(t.yres)&&t.yres>0)this.options.tiffYres=t.yres;else throw l.invalidParameterError("yres","number greater than zero",t.yres);if(l.defined(t.compression))if(l.string(t.compression)&&l.inArray(t.compression,["none","jpeg","deflate","packbits","ccittfax4","lzw","webp","zstd","jp2k"]))this.options.tiffCompression=t.compression;else throw l.invalidParameterError("compression","one of: none, jpeg, deflate, packbits, ccittfax4, lzw, webp, zstd, jp2k",t.compression);if(l.defined(t.bigtiff)&&this._setBooleanOption("tiffBigtiff",t.bigtiff),l.defined(t.predictor))if(l.string(t.predictor)&&l.inArray(t.predictor,["none","horizontal","float"]))this.options.tiffPredictor=t.predictor;else throw l.invalidParameterError("predictor","one of: none, horizontal, float",t.predictor);if(l.defined(t.resolutionUnit))if(l.string(t.resolutionUnit)&&l.inArray(t.resolutionUnit,["inch","cm"]))this.options.tiffResolutionUnit=t.resolutionUnit;else throw l.invalidParameterError("resolutionUnit","one of: inch, cm",t.resolutionUnit)}return this._updateFormatOut("tiff",t)}function zh(t){return this.heif({...t,compression:"av1"})}function Bh(t){if(l.object(t)){if(l.string(t.compression)&&l.inArray(t.compression,["av1","hevc"]))this.options.heifCompression=t.compression;else throw l.invalidParameterError("compression","one of: av1, hevc",t.compression);if(l.defined(t.quality))if(l.integer(t.quality)&&l.inRange(t.quality,1,100))this.options.heifQuality=t.quality;else throw l.invalidParameterError("quality","integer between 1 and 100",t.quality);if(l.defined(t.lossless))if(l.bool(t.lossless))this.options.heifLossless=t.lossless;else throw l.invalidParameterError("lossless","boolean",t.lossless);if(l.defined(t.effort))if(l.integer(t.effort)&&l.inRange(t.effort,0,9))this.options.heifEffort=t.effort;else throw l.invalidParameterError("effort","integer between 0 and 9",t.effort);if(l.defined(t.chromaSubsampling))if(l.string(t.chromaSubsampling)&&l.inArray(t.chromaSubsampling,["4:2:0","4:4:4"]))this.options.heifChromaSubsampling=t.chromaSubsampling;else throw l.invalidParameterError("chromaSubsampling","one of: 4:2:0, 4:4:4",t.chromaSubsampling);if(l.defined(t.bitdepth))if(l.integer(t.bitdepth)&&l.inArray(t.bitdepth,[8,10,12])){if(t.bitdepth!==8&&this.constructor.versions.heif)throw l.invalidParameterError("bitdepth when using prebuilt binaries",8,t.bitdepth);this.options.heifBitdepth=t.bitdepth}else throw l.invalidParameterError("bitdepth","8, 10 or 12",t.bitdepth)}else throw l.invalidParameterError("options","Object",t);return this._updateFormatOut("heif",t)}function Uh(t){if(l.object(t)){if(l.defined(t.quality))if(l.integer(t.quality)&&l.inRange(t.quality,1,100))this.options.jxlDistance=t.quality>=30?.1+(100-t.quality)*.09:53/3e3*t.quality*t.quality-23/20*t.quality+25;else throw l.invalidParameterError("quality","integer between 1 and 100",t.quality);else if(l.defined(t.distance))if(l.number(t.distance)&&l.inRange(t.distance,0,15))this.options.jxlDistance=t.distance;else throw l.invalidParameterError("distance","number between 0.0 and 15.0",t.distance);if(l.defined(t.decodingTier))if(l.integer(t.decodingTier)&&l.inRange(t.decodingTier,0,4))this.options.jxlDecodingTier=t.decodingTier;else throw l.invalidParameterError("decodingTier","integer between 0 and 4",t.decodingTier);if(l.defined(t.lossless))if(l.bool(t.lossless))this.options.jxlLossless=t.lossless;else throw l.invalidParameterError("lossless","boolean",t.lossless);if(l.defined(t.effort))if(l.integer(t.effort)&&l.inRange(t.effort,1,9))this.options.jxlEffort=t.effort;else throw l.invalidParameterError("effort","integer between 1 and 9",t.effort)}return zr(t,this.options),this._updateFormatOut("jxl",t)}function qh(t){if(l.object(t)&&l.defined(t.depth))if(l.string(t.depth)&&l.inArray(t.depth,["char","uchar","short","ushort","int","uint","float","complex","double","dpcomplex"]))this.options.rawDepth=t.depth;else throw l.invalidParameterError("depth","one of: char, uchar, short, ushort, int, uint, float, complex, double, dpcomplex",t.depth);return this._updateFormatOut("raw")}function Gh(t){if(l.object(t)){if(l.defined(t.size))if(l.integer(t.size)&&l.inRange(t.size,1,8192))this.options.tileSize=t.size;else throw l.invalidParameterError("size","integer between 1 and 8192",t.size);if(l.defined(t.overlap))if(l.integer(t.overlap)&&l.inRange(t.overlap,0,8192)){if(t.overlap>this.options.tileSize)throw l.invalidParameterError("overlap",`<= size (${this.options.tileSize})`,t.overlap);this.options.tileOverlap=t.overlap}else throw l.invalidParameterError("overlap","integer between 0 and 8192",t.overlap);if(l.defined(t.container))if(l.string(t.container)&&l.inArray(t.container,["fs","zip"]))this.options.tileContainer=t.container;else throw l.invalidParameterError("container","one of: fs, zip",t.container);if(l.defined(t.layout))if(l.string(t.layout)&&l.inArray(t.layout,["dz","google","iiif","iiif3","zoomify"]))this.options.tileLayout=t.layout;else throw l.invalidParameterError("layout","one of: dz, google, iiif, iiif3, zoomify",t.layout);if(l.defined(t.angle))if(l.integer(t.angle)&&!(t.angle%90))this.options.tileAngle=t.angle;else throw l.invalidParameterError("angle","positive/negative multiple of 90",t.angle);if(this._setBackgroundColourOption("tileBackground",t.background),l.defined(t.depth))if(l.string(t.depth)&&l.inArray(t.depth,["onepixel","onetile","one"]))this.options.tileDepth=t.depth;else throw l.invalidParameterError("depth","one of: onepixel, onetile, one",t.depth);if(l.defined(t.skipBlanks))if(l.integer(t.skipBlanks)&&l.inRange(t.skipBlanks,-1,65535))this.options.tileSkipBlanks=t.skipBlanks;else throw l.invalidParameterError("skipBlanks","integer between -1 and 255/65535",t.skipBlanks);else l.defined(t.layout)&&t.layout==="google"&&(this.options.tileSkipBlanks=5);let e=l.bool(t.center)?t.center:t.centre;if(l.defined(e)&&this._setBooleanOption("tileCentre",e),l.defined(t.id))if(l.string(t.id))this.options.tileId=t.id;else throw l.invalidParameterError("id","string",t.id);if(l.defined(t.basename))if(l.string(t.basename))this.options.tileBasename=t.basename;else throw l.invalidParameterError("basename","string",t.basename)}if(l.inArray(this.options.formatOut,["jpeg","png","webp"]))this.options.tileFormat=this.options.formatOut;else if(this.options.formatOut!=="input")throw l.invalidParameterError("format","one of: jpeg, png, webp",this.options.formatOut);return this._updateFormatOut("dz")}function Hh(t){if(!l.plainObject(t))throw l.invalidParameterError("options","object",t);if(l.integer(t.seconds)&&l.inRange(t.seconds,0,3600))this.options.timeoutSeconds=t.seconds;else throw l.invalidParameterError("seconds","integer between 0 and 3600",t.seconds);return this}function Wh(t,e){return l.object(e)&&e.force===!1||(this.options.formatOut=t),this}function Vh(t,e){if(l.bool(e))this.options[t]=e;else throw l.invalidParameterError(t,"boolean",e)}function Xh(){if(!this.options.streamOut){this.options.streamOut=!0;let t=Error();this._pipeline(void 0,t)}}function Jh(t,e){return typeof t=="function"?(this._isStreamInput()?this.on("finish",()=>{this._flattenBufferIn(),ht.pipeline(this.options,(r,s,i)=>{r?t(l.nativeError(r,e)):t(null,s,i)})}):ht.pipeline(this.options,(r,s,i)=>{r?t(l.nativeError(r,e)):t(null,s,i)}),this):this.options.streamOut?(this._isStreamInput()?(this.once("finish",()=>{this._flattenBufferIn(),ht.pipeline(this.options,(r,s,i)=>{r?this.emit("error",l.nativeError(r,e)):(this.emit("info",i),this.push(s)),this.push(null),this.on("end",()=>this.emit("close"))})}),this.streamInFinished&&this.emit("finish")):ht.pipeline(this.options,(r,s,i)=>{r?this.emit("error",l.nativeError(r,e)):(this.emit("info",i),this.push(s)),this.push(null),this.on("end",()=>this.emit("close"))}),this):this._isStreamInput()?new Promise((r,s)=>{this.once("finish",()=>{this._flattenBufferIn(),ht.pipeline(this.options,(i,n,a)=>{i?s(l.nativeError(i,e)):this.options.resolveWithObject?r({data:n,info:a}):r(n)})})}):new Promise((r,s)=>{ht.pipeline(this.options,(i,n,a)=>{i?s(l.nativeError(i,e)):this.options.resolveWithObject?r({data:n,info:a}):r(n)})})}kn.exports=t=>{Object.assign(t.prototype,{toFile:Ph,toBuffer:xh,keepExif:Rh,withExif:$h,withExifMerge:kh,keepIccProfile:Sh,withIccProfile:Ah,keepXmp:_h,withXmp:Nh,keepMetadata:Ih,withMetadata:Fh,toFormat:Ch,jpeg:jh,jp2:Oh,png:Dh,webp:Th,tiff:Mh,avif:zh,heif:Bh,jxl:Uh,gif:Lh,raw:qh,tile:Gh,timeout:Hh,_updateFormatOut:Wh,_setBooleanOption:Vh,_read:Xh,_pipeline:Jh})}});var In=j((Sd,Nn)=>{g();var Kh=H("node:events"),Kt=Lt(),ue=be(),{runtimePlatformArch:Yh}=_r(),re=$t(),An=Yh(),Br=re.libvipsVersion(),Be=re.format();Be.heif.output.alias=["avif","heic"];Be.jpeg.output.alias=["jpe","jpg"];Be.tiff.output.alias=["tif"];Be.jp2k.output.alias=["j2c","j2k","jp2","jpx"];var Qh={nearest:"nearest",bilinear:"bilinear",bicubic:"bicubic",locallyBoundedBicubic:"lbb",nohalo:"nohalo",vertexSplitQuadraticBasisSpline:"vsqbs"},ut={vips:Br.semver};if(!Br.isGlobal)if(Br.isWasm)try{ut=H("@img/sharp-wasm32/versions")}catch{}else try{ut=H(`@img/sharp-${An}/versions`)}catch{try{ut=H(`@img/sharp-libvips-${An}/versions`)}catch{}}ut.sharp=Sr().version;ut.heif&&Be.heif&&(Be.heif.input.fileSuffix=[".avif"],Be.heif.output.alias=["avif"]);function _n(t){return ue.bool(t)?t?re.cache(50,20,100):re.cache(0,0,0):ue.object(t)?re.cache(t.memory,t.files,t.items):re.cache()}_n(!0);function Zh(t){return re.concurrency(ue.integer(t)?t:null)}Kt.familySync()===Kt.GLIBC&&!re._isUsingJemalloc()?re.concurrency(1):Kt.familySync()===Kt.MUSL&&re.concurrency()===1024&&re.concurrency(H("node:os").availableParallelism());var eu=new Kh.EventEmitter;function tu(){return re.counters()}function ru(t){return re.simd(ue.bool(t)?t:null)}function su(t){if(ue.object(t))if(Array.isArray(t.operation)&&t.operation.every(ue.string))re.block(t.operation,!0);else throw ue.invalidParameterError("operation","Array<string>",t.operation);else throw ue.invalidParameterError("options","object",t)}function iu(t){if(ue.object(t))if(Array.isArray(t.operation)&&t.operation.every(ue.string))re.block(t.operation,!1);else throw ue.invalidParameterError("operation","Array<string>",t.operation);else throw ue.invalidParameterError("options","object",t)}Nn.exports=t=>{t.cache=_n,t.concurrency=Zh,t.counters=tu,t.simd=ru,t.format=Be,t.interpolators=Qh,t.versions=ut,t.queue=eu,t.block=su,t.unblock=iu}});var Cn=j((Nd,Fn)=>{g();var De=Hi();Xi()(De);en()(De);rn()(De);ln()(De);yn()(De);Pn()(De);Sn()(De);In()(De);Fn.exports=De});g();g();Q();g();var yt={debug:!1,verbose:p.env.CI!=="true",features:{},generateManifest:!0,routes:{disabled:!1,debug:!1,routingMode:"app",generateMiddleware:!0},themes:{debug:!1},i18n:{debug:!1,fallbackLanguage:"en"},assets:{debug:!1,copyFonts:!0},pwa:{debug:!1},seo:{disabled:!1,debug:!1,generateRobotsTxt:!0,generateSitemap:!0,crawlDelay:1},serverShim:{enabled:!0,debug:!1},discovery:{debug:!1,verbose:!1,cacheTimeout:6e4,fileLogging:!1,logDir:".dndev-logs"}};function is(t,e){let r={...t};return e&&Object.keys(e).forEach(s=>{e[s]&&typeof e[s]=="object"&&!Array.isArray(e[s])?r[s]=is(t[s]||{},e[s]):r[s]=e[s]}),r}function ns(t={}){return is(yt,t)}function as(t){let{features:e={},routes:r={},themes:s={},i18n:i={},assets:n={},pwa:a={},seo:o={},serverShim:c={},discovery:u={},generateManifest:f,debug:m,verbose:v,...I}=t,L=p.env.NODE_ENV==="production"?"production":"development";return{generateManifest:f,debug:m,verbose:v,mode:L,isDev:L==="development",routeOptions:r,themeOptions:s,i18nOptions:i,assetOptions:n,featureOptions:e,pwaOptions:a,seoOptions:o,serverShimOptions:c,discoveryOptions:u,nextConfigOptions:I}}g();import*as ne from"@clack/prompts";g();import{createRequire as ka}from"node:module";import{resolve as Ct,join as Ne,dirname as Le,relative as os,normalize as Sa,sep as ls,extname as Aa}from"node:path";import{fileURLToPath as _a}from"node:url";import*as T from"node:fs";Q();import Na from"fast-glob";var et={getGlobOptionsFor:Ft||void 0,SCAN_PATTERNS:ce||void 0,getPatternsFor:ss||void 0,I18N_PATHS:Nt||void 0},J={error:(t,e)=>{},warn:(t,e)=>{},info:t=>{}};function cs(t,e){return t().catch(r=>{throw new Error(`${e}: ${r instanceof Error?r.message:String(r)}`)})}var hs={CLI:"packages/cli",COMPONENTS:"packages/core/components",CONFIG:"packages/core/config",CORE:"packages/core",CRUD:"packages/core/crud",FEATURES:"packages/features",HOOKS:"packages/core/hooks",I18N:"packages/core/i18n",SCHEMAS:"packages/core/schemas",STORES:"packages/core/stores",TEMPLATES:"packages/templates",TOOLING:"packages/tooling",TYPES:"packages/core/types",UI:"packages/ui",UTILS:"packages/core/utils",AUTH:"packages/features/auth",BILLING:"packages/features/billing",OAUTH:"packages/features/oauth",FIREBASE:"packages/providers/firebase",FUNCTIONS:"packages/functions"},V=class t{static _instance=null;options;_repoRoot;_appRoot=null;static getInstance(e={}){return t._instance||(t._instance=new t(e)),t._instance}static _reset(){t._instance=null}constructor(e={}){if(t._instance)return t._instance;this.options={maxLevels:e.maxLevels??10,customMarkers:e.customMarkers||[],cache:e.cache??!1,debug:e.debug??!1};try{let r=p.cwd();if(!r)throw new Error("PathResolver: process.cwd() returned undefined. This should never happen.");this._repoRoot=this._findRepoRoot(r)}catch(r){throw new Error(`PathResolver constructor failed: ${r instanceof Error?r.message:String(r)}. cwd: ${p.cwd()}`)}this._appRoot=null,t._instance=this}normalizePath(e){if(!e)return"";try{return Sa(e).split(ls).join("/")}catch{return String(e).split(ls).join("/")}}getRelativePath(e){let r=this.getAppRoot(),s=os(r,e);return this.normalizePath(s)}getBasename(e){if(!e)return"";let s=this.normalizePath(e).split("/");return s[s.length-1]||""}getDirname(e){return e?this.normalizePath(Le(e)):""}resolvePackage(e,r=null){try{let s=r||this.getAppRoot(),n=ka(Ne(s,"package.json")).resolve(e);return this.normalizePath(n)}catch{return null}}resolveFrameworkPackage(e,r=null){let s=this.resolvePackage(`${e}/package.json`,r);if(s)return this.getDirname(s);if(this.isMonorepo()&&e.startsWith("@donotdev/")){let a=e.replace("@donotdev/",""),o=this.resolveRepoPath(`packages/${a}`);if(this.pathExists(o))return o;if(["auth","billing","crud","oauth"].includes(a)){let c=this.resolveRepoPath(`packages/features/${a}`);if(this.pathExists(c))return c}if(a==="firebase"){let c=this.resolveRepoPath(`packages/providers/${a}`);if(this.pathExists(c))return c}}let i=this.resolveAppPath(`node_modules/${e}`);if(this.pathExists(i))return i;let n=this.resolveRepoPath(`node_modules/${e}`);return this.pathExists(n)?n:null}resolvePackageAsset(e,r=null){return this.resolvePackage(e,r)}resolveAppPath(e){let r=this.getAppRoot(),s=Ct(r,e);return this.normalizePath(s)}resolveRepoPath(e){let r=this.getRepoRoot(),s=this.normalizePath(e),i=Ct(r,s);return this.normalizePath(i)}resolvePath(e,r){let s=this.normalizePath(r),i=this.normalizePath(e),n=Ct(s,i);return this.normalizePath(n)}createImportPath(e){return"./"+this.getRelativePath(e)}getFileInfo(e){try{let r=T.statSync(e);return{absolutePath:this.normalizePath(e),relativePath:this.getRelativePath(e),importPath:this.createImportPath(e),size:r.size,isFile:r.isFile(),isDirectory:r.isDirectory()}}catch{return null}}_detectFormat(e,r){return r&&r!=="auto"?r:Aa(e).toLowerCase()===".json"?"json":"text"}async read(e,r={}){let{format:s="auto",encoding:i="utf8"}=r,n=this._detectFormat(e,s);try{if(n==="buffer")return await T.promises.readFile(e);let a=await T.promises.readFile(e,i),o=this.stripBom(a);return n==="json"?JSON.parse(o):o}catch(a){return this.options.debug&&J.warn(`Failed to read file: ${e}`,a),null}}readSync(e,r={}){let{format:s="auto",encoding:i="utf8"}=r,n=this._detectFormat(e,s);try{if(n==="buffer")return T.readFileSync(e);let a=T.readFileSync(e,i),o=this.stripBom(a);return n==="json"?JSON.parse(o):o}catch(a){return this.options.debug&&J.warn(`Failed to read file: ${e}`,a),null}}async write(e,r,s={}){let{format:i="auto",overwrite:n=!1,dryRun:a=!1,verbose:o=!1}=s,c=this.normalizePath(e),u=this.normalizePath(Le(c)),f=this.pathExists(c);if(f&&!n)return o&&J.info(`Skipping existing file: ${c}`),!1;if(a)return J.info(`[DRY RUN] Would write file: ${c}`),!0;try{await T.promises.mkdir(u,{recursive:!0})}catch(I){if(I?.code!=="EEXIST")throw I}let m=this._detectFormat(e,i),v;b.isBuffer(r)?v=r:m==="json"&&typeof r=="object"?v=JSON.stringify(r,null,2):v=String(r);try{return await cs(async()=>(b.isBuffer(v)?await T.promises.writeFile(c,v):await T.promises.writeFile(c,v,"utf8"),o&&J.info(`${f?"Updated":"Created"} file: ${c}`),!0),`Failed to write file: ${c}`)}catch{return!1}}writeSync(e,r,s={}){let{format:i="auto",overwrite:n=!1,dryRun:a=!1,verbose:o=!1}=s,c=this.normalizePath(e),u=this.normalizePath(Le(c)),f=this.pathExists(c);if(f&&!n)return o&&J.info(`Skipping existing file: ${c}`),!1;if(a)return J.info(`[DRY RUN] Would write file: ${c}`),!0;try{T.mkdirSync(u,{recursive:!0})}catch(I){if(I?.code!=="EEXIST")throw I}let m=this._detectFormat(e,i),v;b.isBuffer(r)?v=r:m==="json"&&typeof r=="object"?v=JSON.stringify(r,null,2):v=String(r);try{return b.isBuffer(v)?T.writeFileSync(c,v):T.writeFileSync(c,v,"utf8"),o&&J.info(`${f?"Updated":"Created"} file: ${c}`),!0}catch(I){throw new Error(`Failed to write file: ${c}: ${I instanceof Error?I.message:String(I)}`)}}async copy(e,r,s={}){let{overwrite:i=!1,dryRun:n=!1,verbose:a=!1}=s,o=this.normalizePath(r),c=this.pathExists(o);if(c&&!i)return a&&J.info(`Skipping existing file: ${o}`),!1;if(n)return J.info(`[DRY RUN] Would copy file: ${o}`),!0;let u=this.normalizePath(Le(o));try{await T.promises.mkdir(u,{recursive:!0})}catch(f){if(f?.code!=="EEXIST")throw f}try{return await cs(async()=>(await T.promises.copyFile(e,o),a&&J.info(`${c?"Updated":"Created"} file: ${o}`),!0),`Failed to copy file from ${e} to ${o}`)}catch{return!1}}copySync(e,r,s={}){let{overwrite:i=!1,dryRun:n=!1,verbose:a=!1}=s,o=this.normalizePath(r),c=this.pathExists(o);if(c&&!i)return a&&J.info(`Skipping existing file: ${o}`),!1;if(n)return J.info(`[DRY RUN] Would copy file: ${o}`),!0;let u=this.normalizePath(Le(o));try{T.mkdirSync(u,{recursive:!0})}catch(f){if(f?.code!=="EEXIST")throw f}try{return T.copyFileSync(e,o),a&&J.info(`${c?"Updated":"Created"} file: ${o}`),!0}catch{return!1}}pathExists(e,r=!1){try{return T.existsSync(e)}catch(s){return r||J.error(`Error checking path existence: ${e}`,s),!1}}mkdir(e){try{let r=e.startsWith("/")||e.match(/^[A-Z]:/)?this.normalizePath(e):this.resolveAppPath(e);return T.existsSync(r)||T.mkdirSync(r,{recursive:!0}),!0}catch{return!1}}readdirSync(e,r){try{return T.readdirSync(e,r)}catch(s){return this.options.debug&&J.warn(`Failed to read directory: ${e}`,s),r&&typeof r=="object"&&"withFileTypes"in r&&r.withFileTypes?[]:[]}}statSync(e){try{return T.statSync(e)}catch(r){return this.options.debug&&J.warn(`Failed to stat file: ${e}`,r),null}}lstatSync(e){try{return T.lstatSync(e)}catch(r){return this.options.debug&&J.warn(`Failed to lstat file: ${e}`,r),null}}async ensureDir(e){try{await T.promises.mkdir(e,{recursive:!0})}catch(r){if(r?.code!=="EEXIST")throw r}}ensureDirSync(e){try{T.mkdirSync(e,{recursive:!0})}catch(r){if(r?.code!=="EEXIST")throw r}}async remove(e){await T.promises.rm(e,{recursive:!0,force:!0})}removeSync(e){T.rmSync(e,{recursive:!0,force:!0})}async readdir(e,r){return T.promises.readdir(e,r)}stripBom(e){return e.charCodeAt(0)===65279?e.slice(1):e}getRepoRoot(){return this._repoRoot||p.cwd()}getAppRoot(){return this._appRoot?this._appRoot:this._repoRoot}setAppRoot(e){if(!e)throw new Error("PathResolver.setAppRoot: root cannot be undefined or null");this._appRoot=this.normalizePath(e)}isMonorepo(){let e=Ne(this._repoRoot,"packages");return this.pathExists(e)}isWithinApp(e){let r=this.normalizePath(Ct(e)),s=this.getAppRoot(),i=os(s,r),n=this.normalizePath(i);return!n.startsWith("../")&&!n.startsWith("/")}async findFiles(e,r,s={}){let i=this.normalizePath(Ne(e,r)),n=this.getAppRoot(),a=this.normalizePath(n),o=i.startsWith(a)?i.slice(a.length+1):i,c={absolute:!0,onlyFiles:!0,braceExpansion:!0,extglob:!0,globstar:!0,cwd:n,ignore:et.SCAN_PATTERNS?.globalIgnore||["**/node_modules/**","**/dist/**","**/build/**","**/.git/**"]};return await this._globWithNormalization([o],{...c,...s})}clearCache(){}async _resolveFrameworkI18nPattern(e){let r=et.I18N_PATHS;if(!r)return null;let s=e.replace(r.SOURCE_ROOT+"/",""),i=this.resolveFrameworkPackage("@donotdev/core");if(!i)return null;let n=this.normalizePath(Ne(i,r.PUBLISHED_ROOT,s)),a=n.replace(/\/[^/]*\*.*$/,"");return this.pathExists(a),n}async _globWithNormalization(e,r){return(await Na(e,r)).map(i=>{let n=typeof i=="string"?i:i.path;return this.normalizePath(n)})}async resolveFiles(e,r="css"){if(!e||typeof e!="object")return{frameworkFiles:[],consumerFiles:[]};if(r==="i18n")return{frameworkFiles:[],consumerFiles:[]};if(Array.isArray(e.framework)||(e.framework=[]),!Array.isArray(e.consumer))return{frameworkFiles:[],consumerFiles:[]};let s=[...e.framework,...e.consumer];for(let f of s)if(typeof f!="string"||f.trim()==="")return{frameworkFiles:[],consumerFiles:[]};let i=this.getAppRoot(),n=et.getGlobOptionsFor?et.getGlobOptionsFor(r):{ignore:["**/node_modules/**","**/dist/**","**/build/**"]},a=this.normalizePath(i),o=e.framework.map(f=>{let m=this.normalizePath(f);return m.startsWith(a)?m.slice(a.length+1):m}),c=e.consumer.map(f=>{let m=this.normalizePath(f);return m.startsWith(a)?m.slice(a.length+1):m}),u={...n,onlyFiles:!0,absolute:!0,braceExpansion:!0,extglob:!0,globstar:!0,cwd:i};try{let f=o.length>0?await this._globWithNormalization(o,u):[],m=await this._globWithNormalization(c,u);return{frameworkFiles:f,consumerFiles:m}}catch{return this.options.debug,{frameworkFiles:[],consumerFiles:[]}}}async resolvePatterns(e){if(!et.getPatternsFor)return{framework:[],consumer:[],all:[]};let r=this.getAppRoot(),s=this.getRepoRoot();if(e==="i18n"&&(!r||r===s))throw new Error(`Cannot resolve i18n patterns: appRoot not set (appRoot: ${r}, repoRoot: ${s}). Ensure configResolved hook has run before discovery.`);let i=et.getPatternsFor(e),n=this.isMonorepo();if(e==="i18n"){let c=i,u={eager:c.eager.map(f=>f.startsWith("!")?"!"+this.resolveAppPath(f.slice(1)):this.resolveAppPath(f)),lazy:c.lazy.map(f=>f.startsWith("!")?"!"+this.resolveAppPath(f.slice(1)):this.resolveAppPath(f)),framework:{eager:n?(c.framework?.eager||[]).map(f=>this.resolveRepoPath(f)).filter(Boolean):await Promise.all((c.framework?.eager||[]).map(f=>this._resolveFrameworkI18nPattern(f))).then(f=>f.filter(Boolean)),lazy:n?(c.framework?.lazy||[]).map(f=>this.resolveRepoPath(f)).filter(Boolean):await Promise.all((c.framework?.lazy||[]).map(f=>this._resolveFrameworkI18nPattern(f))).then(f=>f.filter(Boolean))},all:[]};return u.all=[...u.eager,...u.lazy,...u.framework.eager,...u.framework.lazy],u}let a=i,o={framework:n?(a.framework||[]).map(c=>this.resolveRepoPath(c)).filter(Boolean):[],consumer:(a.consumer||[]).map(c=>this.resolveAppPath(c)),all:[]};return o.all=[...o.consumer,...o.framework],o}getEmptyModulePath(){let e=Le(_a(import.meta.url));return this.normalizePath(Ne(e,"../vite/empty.js"))}_findRepoRoot(e){let r=this.normalizePath(e),s=0,i=this.options.maxLevels;for(;s<i;){let n=this.normalizePath(Ne(r,hs.TOOLING)),a=this.normalizePath(Ne(r,hs.CORE));if(this.pathExists(n)&&this.pathExists(a))return r;let o=Ne(r,"apps");if(this.pathExists(o)&&this.statSync(o)?.isDirectory())return this.normalizePath(r);let c=this.normalizePath(Ne(r,"package.json"));if(this.pathExists(c)&&this.normalizePath(Le(r))===r)return r;let u=this.normalizePath(Le(r));if(u===r)break;r=u,s++}return this.normalizePath(e)}};var de={reset:"\x1B[0m",green:"\x1B[32m",brightGreen:"\x1B[92m",red:"\x1B[31m",brightRed:"\x1B[91m",yellow:"\x1B[33m",brightYellow:"\x1B[93m",blue:"\x1B[34m",cyan:"\x1B[36m",brightCyan:"\x1B[96m",gray:"\x1B[90m",white:"\x1B[37m"};function Ia(){return p.env.NO_COLOR?!1:p.platform==="win32"?!0:p.stdout.isTTY===!0}function pe(t,e){return Ia()?`${e}${t}${de.reset}`:t}function me(t,e,r,s={}){let{logDir:i=".dndev-logs",fileLogging:n=!1}=s,a=V.getInstance(),o=null;if(n){let f=a.resolveAppPath(i);a.pathExists(f)||a.mkdir(f),o=a.resolveAppPath(`${i}/${t.replace(/[^a-zA-Z0-9]/g,"-")}.log`);let m=`=== ${t} Log Started at ${new Date().toISOString()} ===
1
+ var ga=Object.create;var Qr=Object.defineProperty;var pa=Object.getOwnPropertyDescriptor;var ma=Object.getOwnPropertyNames;var ba=Object.getPrototypeOf,va=Object.prototype.hasOwnProperty;var H=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var Zr=(t,e)=>()=>(t&&(e=t(t=0)),e);var j=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var wa=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of ma(e))!va.call(t,i)&&i!==r&&Qr(t,i,{get:()=>e[i],enumerable:!(s=pa(e,i))||s.enumerable});return t};var ya=(t,e,r)=>(r=t!=null?ga(ba(t)):{},wa(e||!t||!t.__esModule?Qr(r,"default",{value:t,enumerable:!0}):r,t));function ss(t,e=null){let r=ce[t];if(!r)throw new Error(`Unknown pattern type: ${t}`);return e&&r.framework?{...r,framework:r.framework.map(s=>`${e}/${s}`)}:r}function Ft(t){return es[t]||es.base}var wt,ts,ge,Xe,lr,Ae,Nt,ce,It,rs,cr,hr,es,Q=Zr(()=>{"use strict";g();wt={HOMEPAGE_FILE:"HomePage.tsx",HOMEPAGE_PATH:"/",HOMEPAGE_COMPONENT:"HomePage"},ts={available:["auth","oauth","billing","crud"],packageNames:{auth:"@donotdev/auth",oauth:"@donotdev/oauth",billing:"@donotdev/billing",crud:"@donotdev/crud"},hooks:{auth:["useAuth"],oauth:["useOAuth","useOAuthPartner","useOAuthConnection"],billing:["useStripeBilling","useStripeCheckout"],crud:["useCrud","useCrudCollection"]}},ge={routes:"routes",themes:"themes",i18n:"i18n",assets:"assets",env:"env"},Xe={next:{middleware:"middleware.ts",routeManifest:"public/route-manifest.json",assetManifest:"public/asset-manifest.json",utilities:"src/styles/utilities.generated.css",appPages:"src/app",appLayout:"src/app/layout.tsx",configRoute:"src/config/dndev-config-route.js",configTheme:"src/config/dndev-config-theme.js",configI18n:"src/config/dndev-config-i18n.js",configPwa:"src/config/dndev-config-pwa.js",configAsset:"src/config/dndev-config-asset.js",configSeo:"src/config/dndev-config-seo.js",configServer:"src/config/dndev-config-server.js"},vite:{routeInspection:"src/routes.generated.log",themeInspection:"src/themes.generated.log",i18nInspection:"src/i18n.generated.log",assetInspection:"src/assets.generated.log",envInspection:"src/env.generated.log"},manifests:{route:"route-manifest.json",theme:"theme-manifest.json",i18n:"i18n-manifest.json",asset:"asset-manifest.json",feature:"feature-manifest.json",env:"env-manifest.json"}},lr={package:"@donotdev/ui",assetsPath:"packages/ui/assets",browserTargets:["> 1%","last 2 versions","Firefox ESR","not dead","not op_mini all"]},Ae={public:"public",fonts:"fonts",nodeModules:"node_modules",packages:"packages",core:"core",ui:"ui"},Nt={SOURCE_ROOT:"packages/core/i18n",SOURCE_LOCALES:"packages/core/i18n/locales",SOURCE_EAGER:"packages/core/i18n/locales/eager",SOURCE_LAZY:"packages/core/i18n/locales/lazy",PUBLISHED_ROOT:"i18n",PUBLISHED_LOCALES:"i18n/locales",PUBLISHED_EAGER:"i18n/locales/eager",PUBLISHED_LAZY:"i18n/locales/lazy"},ce={routes:{consumer:["src/**/*Page.tsx","src/pages/**/*Page.tsx"],exclude:["**/node_modules/**","**/dist/**","**/build/**","**/*.test.tsx","**/*.stories.tsx"],extensions:[".tsx"]},css:{consumer:["src/**/*.css"],themes:["src/**/*.css"],extensions:[".css",".scss",".sass"],framework:["packages/ui/src/**/*.css","packages/core/components/src/**/*.css","packages/core/templates/src/**/*.css"]},i18n:{eager:["src/locales/*_*.json"],lazy:["src/**/locales/*_*.json","!src/locales/*_*.json"],framework:{eager:[`${Nt.SOURCE_EAGER}/*_*.json`],lazy:[`${Nt.SOURCE_LAZY}/*_*.json`]},extensions:[".json"]},assets:{consumer:["public/**/*"],fallback:["manifest.json"],modern:["logo.svg","favicon.svg","apple-touch-icon.png","android-chrome-192x192.png","android-chrome-512x512.png"],patterns:["favicon.svg","favicon.ico","favicon-*.png","logo.svg","logo.png","logo.webp","logo.avif","apple-touch-icon*.png","android-chrome-*.png","manifest.json"],fonts:["fonts/**/*.woff2","fonts/**/*.woff","fonts/**/*.ttf"],framework:["packages/ui/assets/**/*"]},pwa:{consumer:["public/manifest.json","public/service-worker.js","public/sw.js","public/icon-192x192.png","public/icon-512x512.png","public/favicon.ico","public/favicon.svg","public/apple-touch-icon.png","public/logo.svg"],exclude:["**/node_modules/**","**/dist/**","**/build/**"],extensions:[".json",".js",".png",".svg",".ico"],framework:["packages/ui/assets/**/*"]},globalIgnore:["**/node_modules/**","**/dist/**","**/build/**","**/.git/**","**/coverage/**","**/test/**"]},It={mandatoryIncludes:["react","react-dom","react-router-dom","zustand","lucide-react","valibot","i18next","i18next-browser-languagedetector","i18next-http-backend","react-i18next","@tanstack/react-query","react-helmet-async","@donotdev/core","@donotdev/components","@donotdev/ui","@donotdev/templates","@donotdev/firebase"],optionalFeatures:["@donotdev/adv-comps","@donotdev/auth","@donotdev/billing","@donotdev/crud","@donotdev/oauth","shiki"],coreBundled:["@donotdev/types","@donotdev/utils","@donotdev/stores","@donotdev/schemas","@donotdev/hooks","@donotdev/i18n","@donotdev/config"],componentsBundled:["class-variance-authority","clsx","lucide-react","react-day-picker"],radixUIPattern:"@radix-ui/",buildTools:["esbuild","@esbuild/win32-x64","@esbuild/darwin-x64","@esbuild/linux-x64","@esbuild/darwin-arm64","@esbuild/linux-arm64","vite","rollup","rollup-plugin-visualizer","@vitejs/plugin-react","vite-tsconfig-paths","vite-plugin-pwa","vite-plugin-compression2","vite-plugin-node-polyfills","fsevents","postcss","postcss-import","postcss-nesting","autoprefixer"],buildTimePackages:[],largeOptional:["@sentry/react","framer-motion","stripe","@tanstack/react-query","shiki","sharp","semver","file-type"]},rs=["firebase-admin","gcp-metadata","google-logging-utils","payload","undici","@fastify/busboy","image-size","@donotdev/tooling","fs","path","crypto","net","tls","http","https","child_process","os","util","stream","buffer","events","querystring","url","zlib","assert","constants","domain","punycode","string_decoder","timers","tty","vm","worker_threads","cluster","dgram","dns","http2","inspector","module","perf_hooks","process","readline","repl","trace_events","v8","wasi"],cr={selectors:{class:/\.([a-zA-Z0-9-]+)/g,variable:/--[a-zA-Z0-9-]+/g,keyframe:/@keyframes\s+([a-zA-Z0-9-]+)/g},themes:{themeClass:/(?::root\.|\.)([a-z][a-z0-9-]+)\s*\{([\s\S]*?)\}/gim,themeLabel:/--theme-label\s*:\s*['"]([^'"]+)['"]/,themeIcon:/--theme-icon\s*:\s*['"]([^'"]+)['"]/,themeIsDark:/--theme-is-dark\s*:\s*(0|1)/}},hr=[{name:"light",displayName:"Light",icon:"Sun",isDark:!1}],es={base:{absolute:!0,onlyFiles:!0,ignore:ce.globalIgnore},css:{absolute:!0,onlyFiles:!0,ignore:[...ce.globalIgnore,"**/*.test.css"]},routes:{absolute:!0,onlyFiles:!0,ignore:[...ce.globalIgnore,"**/*.test.tsx","**/*.stories.tsx"]},i18n:{absolute:!0,onlyFiles:!0,ignore:ce.globalIgnore},assets:{absolute:!0,onlyFiles:!0,ignore:ce.globalIgnore}}});import{createRequire as Pa}from"node:module";import{fileURLToPath as xa}from"node:url";import{dirname as Ra,resolve as yu}from"node:path";import{Buffer as b}from"node:buffer";import p from"node:process";var $a,w,y,g=Zr(()=>{"use strict";$a=Pa(import.meta.url),w=xa(import.meta.url),y=Ra(w);typeof globalThis<"u"&&(globalThis.require=$a,globalThis.__filename=w,globalThis.__dirname=y,globalThis.Buffer=b,globalThis.process=p,typeof global>"u"&&(globalThis.global=globalThis))});var be=j((nf,ps)=>{g();var gs=t=>typeof t<"u"&&t!==null,Oa=t=>typeof t=="object",Ma=t=>Object.prototype.toString.call(t)==="[object Object]",za=t=>typeof t=="function",Ba=t=>typeof t=="boolean",Ua=t=>t instanceof b,qa=t=>{if(gs(t))switch(t.constructor){case Uint8Array:case Uint8ClampedArray:case Int8Array:case Uint16Array:case Int16Array:case Uint32Array:case Int32Array:case Float32Array:case Float64Array:return!0}return!1},Ga=t=>t instanceof ArrayBuffer,Ha=t=>typeof t=="string"&&t.length>0,Wa=t=>typeof t=="number"&&!Number.isNaN(t),Va=t=>Number.isInteger(t),Xa=(t,e,r)=>t>=e&&t<=r,Ja=(t,e)=>e.includes(t),Ka=(t,e,r)=>new Error(`Expected ${e} for ${t} but received ${r} of type ${typeof r}`),Ya=(t,e)=>(e.message=t.message,e);ps.exports={defined:gs,object:Oa,plainObject:Ma,fn:za,bool:Ba,buffer:Ua,typedArray:qa,arrayBuffer:Ga,string:Ha,number:Wa,integer:Va,inRange:Xa,inArray:Ja,invalidParameterError:Ka,nativeError:Ya}});var vs=j((of,bs)=>{"use strict";g();var ms=()=>p.platform==="linux",jt=null,Qa=()=>{if(!jt)if(ms()&&p.report){let t=p.report.excludeNetwork;p.report.excludeNetwork=!0,jt=p.report.getReport(),p.report.excludeNetwork=t}else jt={};return jt};bs.exports={isLinux:ms,getReport:Qa}});var ys=j((cf,ws)=>{"use strict";g();var tt=H("fs"),Za="/usr/bin/ldd",eo="/proc/self/exe",Dt=2048,to=t=>{let e=tt.openSync(t,"r"),r=b.alloc(Dt),s=tt.readSync(e,r,0,Dt,0);return tt.close(e,()=>{}),r.subarray(0,s)},ro=t=>new Promise((e,r)=>{tt.open(t,"r",(s,i)=>{if(s)r(s);else{let n=b.alloc(Dt);tt.read(i,n,0,Dt,0,(a,o)=>{e(n.subarray(0,o)),tt.close(i,()=>{})})}})});ws.exports={LDD_PATH:Za,SELF_PATH:eo,readFileSync:to,readFile:ro}});var Ps=j((uf,Es)=>{"use strict";g();var so=t=>{if(t.length<64||t.readUInt32BE(0)!==2135247942||t.readUInt8(4)!==2||t.readUInt8(5)!==1)return null;let e=t.readUInt32LE(32),r=t.readUInt16LE(54),s=t.readUInt16LE(56);for(let i=0;i<s;i++){let n=e+i*r;if(t.readUInt32LE(n)===3){let o=t.readUInt32LE(n+8),c=t.readUInt32LE(n+32);return t.subarray(o,o+c).toString().replace(/\0.*$/g,"")}}return null};Es.exports={interpreterPath:so}});var Lt=j((df,zs)=>{"use strict";g();var Rs=H("child_process"),{isLinux:rt,getReport:$s}=vs(),{LDD_PATH:Tt,SELF_PATH:ks,readFile:dr,readFileSync:gr}=ys(),{interpreterPath:Ss}=Ps(),ve,we,ye,As="getconf GNU_LIBC_VERSION 2>&1 || true; ldd --version 2>&1 || true",Le="",_s=()=>Le||new Promise(t=>{Rs.exec(As,(e,r)=>{Le=e?" ":r,t(Le)})}),Ns=()=>{if(!Le)try{Le=Rs.execSync(As,{encoding:"utf8"})}catch{Le=" "}return Le},Ie="glibc",Is=/LIBC[a-z0-9 \-).]*?(\d+\.\d+)/i,Je="musl",io=t=>t.includes("libc.musl-")||t.includes("ld-musl-"),Fs=()=>{let t=$s();return t.header&&t.header.glibcVersionRuntime?Ie:Array.isArray(t.sharedObjects)&&t.sharedObjects.some(io)?Je:null},Cs=t=>{let[e,r]=t.split(/[\r\n]+/);return e&&e.includes(Ie)?Ie:r&&r.includes(Je)?Je:null},js=t=>{if(t){if(t.includes("/ld-musl-"))return Je;if(t.includes("/ld-linux-"))return Ie}return null},Ds=t=>(t=t.toString(),t.includes("musl")?Je:t.includes("GNU C Library")?Ie:null),no=async()=>{if(we!==void 0)return we;we=null;try{let t=await dr(Tt);we=Ds(t)}catch{}return we},ao=()=>{if(we!==void 0)return we;we=null;try{let t=gr(Tt);we=Ds(t)}catch{}return we},oo=async()=>{if(ve!==void 0)return ve;ve=null;try{let t=await dr(ks),e=Ss(t);ve=js(e)}catch{}return ve},lo=()=>{if(ve!==void 0)return ve;ve=null;try{let t=gr(ks),e=Ss(t);ve=js(e)}catch{}return ve},Ts=async()=>{let t=null;if(rt()&&(t=await oo(),!t&&(t=await no(),t||(t=Fs()),!t))){let e=await _s();t=Cs(e)}return t},Ls=()=>{let t=null;if(rt()&&(t=lo(),!t&&(t=ao(),t||(t=Fs()),!t))){let e=Ns();t=Cs(e)}return t},co=async()=>rt()&&await Ts()!==Ie,ho=()=>rt()&&Ls()!==Ie,uo=async()=>{if(ye!==void 0)return ye;ye=null;try{let e=(await dr(Tt)).match(Is);e&&(ye=e[1])}catch{}return ye},fo=()=>{if(ye!==void 0)return ye;ye=null;try{let e=gr(Tt).match(Is);e&&(ye=e[1])}catch{}return ye},Os=()=>{let t=$s();return t.header&&t.header.glibcVersionRuntime?t.header.glibcVersionRuntime:null},xs=t=>t.trim().split(/\s+/)[1],Ms=t=>{let[e,r,s]=t.split(/[\r\n]+/);return e&&e.includes(Ie)?xs(e):r&&s&&r.includes(Je)?xs(s):null},go=async()=>{let t=null;if(rt()&&(t=await uo(),t||(t=Os()),!t)){let e=await _s();t=Ms(e)}return t},po=()=>{let t=null;if(rt()&&(t=fo(),t||(t=Os()),!t)){let e=Ns();t=Ms(e)}return t};zs.exports={GLIBC:Ie,MUSL:Je,family:Ts,familySync:Ls,isNonGlibcLinux:co,isNonGlibcLinuxSync:ho,version:go,versionSync:po}});var Et=j((pf,Bs)=>{"use strict";g();var mo=typeof p=="object"&&p.env&&p.env.NODE_DEBUG&&/\bsemver\b/i.test(p.env.NODE_DEBUG)?(...t)=>{}:()=>{};Bs.exports=mo});var Ot=j((bf,Us)=>{"use strict";g();var bo="2.0.0",vo=Number.MAX_SAFE_INTEGER||9007199254740991,wo=16,yo=250,Eo=["major","premajor","minor","preminor","patch","prepatch","prerelease"];Us.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:wo,MAX_SAFE_BUILD_LENGTH:yo,MAX_SAFE_INTEGER:vo,RELEASE_TYPES:Eo,SEMVER_SPEC_VERSION:bo,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var Pt=j((Ee,qs)=>{"use strict";g();var{MAX_SAFE_COMPONENT_LENGTH:pr,MAX_SAFE_BUILD_LENGTH:Po,MAX_LENGTH:xo}=Ot(),Ro=Et();Ee=qs.exports={};var $o=Ee.re=[],ko=Ee.safeRe=[],_=Ee.src=[],So=Ee.safeSrc=[],N=Ee.t={},Ao=0,mr="[a-zA-Z0-9-]",_o=[["\\s",1],["\\d",xo],[mr,Po]],No=t=>{for(let[e,r]of _o)t=t.split(`${e}*`).join(`${e}{0,${r}}`).split(`${e}+`).join(`${e}{1,${r}}`);return t},C=(t,e,r)=>{let s=No(e),i=Ao++;Ro(t,i,e),N[t]=i,_[i]=e,So[i]=s,$o[i]=new RegExp(e,r?"g":void 0),ko[i]=new RegExp(s,r?"g":void 0)};C("NUMERICIDENTIFIER","0|[1-9]\\d*");C("NUMERICIDENTIFIERLOOSE","\\d+");C("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${mr}*`);C("MAINVERSION",`(${_[N.NUMERICIDENTIFIER]})\\.(${_[N.NUMERICIDENTIFIER]})\\.(${_[N.NUMERICIDENTIFIER]})`);C("MAINVERSIONLOOSE",`(${_[N.NUMERICIDENTIFIERLOOSE]})\\.(${_[N.NUMERICIDENTIFIERLOOSE]})\\.(${_[N.NUMERICIDENTIFIERLOOSE]})`);C("PRERELEASEIDENTIFIER",`(?:${_[N.NONNUMERICIDENTIFIER]}|${_[N.NUMERICIDENTIFIER]})`);C("PRERELEASEIDENTIFIERLOOSE",`(?:${_[N.NONNUMERICIDENTIFIER]}|${_[N.NUMERICIDENTIFIERLOOSE]})`);C("PRERELEASE",`(?:-(${_[N.PRERELEASEIDENTIFIER]}(?:\\.${_[N.PRERELEASEIDENTIFIER]})*))`);C("PRERELEASELOOSE",`(?:-?(${_[N.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${_[N.PRERELEASEIDENTIFIERLOOSE]})*))`);C("BUILDIDENTIFIER",`${mr}+`);C("BUILD",`(?:\\+(${_[N.BUILDIDENTIFIER]}(?:\\.${_[N.BUILDIDENTIFIER]})*))`);C("FULLPLAIN",`v?${_[N.MAINVERSION]}${_[N.PRERELEASE]}?${_[N.BUILD]}?`);C("FULL",`^${_[N.FULLPLAIN]}$`);C("LOOSEPLAIN",`[v=\\s]*${_[N.MAINVERSIONLOOSE]}${_[N.PRERELEASELOOSE]}?${_[N.BUILD]}?`);C("LOOSE",`^${_[N.LOOSEPLAIN]}$`);C("GTLT","((?:<|>)?=?)");C("XRANGEIDENTIFIERLOOSE",`${_[N.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);C("XRANGEIDENTIFIER",`${_[N.NUMERICIDENTIFIER]}|x|X|\\*`);C("XRANGEPLAIN",`[v=\\s]*(${_[N.XRANGEIDENTIFIER]})(?:\\.(${_[N.XRANGEIDENTIFIER]})(?:\\.(${_[N.XRANGEIDENTIFIER]})(?:${_[N.PRERELEASE]})?${_[N.BUILD]}?)?)?`);C("XRANGEPLAINLOOSE",`[v=\\s]*(${_[N.XRANGEIDENTIFIERLOOSE]})(?:\\.(${_[N.XRANGEIDENTIFIERLOOSE]})(?:\\.(${_[N.XRANGEIDENTIFIERLOOSE]})(?:${_[N.PRERELEASELOOSE]})?${_[N.BUILD]}?)?)?`);C("XRANGE",`^${_[N.GTLT]}\\s*${_[N.XRANGEPLAIN]}$`);C("XRANGELOOSE",`^${_[N.GTLT]}\\s*${_[N.XRANGEPLAINLOOSE]}$`);C("COERCEPLAIN",`(^|[^\\d])(\\d{1,${pr}})(?:\\.(\\d{1,${pr}}))?(?:\\.(\\d{1,${pr}}))?`);C("COERCE",`${_[N.COERCEPLAIN]}(?:$|[^\\d])`);C("COERCEFULL",_[N.COERCEPLAIN]+`(?:${_[N.PRERELEASE]})?(?:${_[N.BUILD]})?(?:$|[^\\d])`);C("COERCERTL",_[N.COERCE],!0);C("COERCERTLFULL",_[N.COERCEFULL],!0);C("LONETILDE","(?:~>?)");C("TILDETRIM",`(\\s*)${_[N.LONETILDE]}\\s+`,!0);Ee.tildeTrimReplace="$1~";C("TILDE",`^${_[N.LONETILDE]}${_[N.XRANGEPLAIN]}$`);C("TILDELOOSE",`^${_[N.LONETILDE]}${_[N.XRANGEPLAINLOOSE]}$`);C("LONECARET","(?:\\^)");C("CARETTRIM",`(\\s*)${_[N.LONECARET]}\\s+`,!0);Ee.caretTrimReplace="$1^";C("CARET",`^${_[N.LONECARET]}${_[N.XRANGEPLAIN]}$`);C("CARETLOOSE",`^${_[N.LONECARET]}${_[N.XRANGEPLAINLOOSE]}$`);C("COMPARATORLOOSE",`^${_[N.GTLT]}\\s*(${_[N.LOOSEPLAIN]})$|^$`);C("COMPARATOR",`^${_[N.GTLT]}\\s*(${_[N.FULLPLAIN]})$|^$`);C("COMPARATORTRIM",`(\\s*)${_[N.GTLT]}\\s*(${_[N.LOOSEPLAIN]}|${_[N.XRANGEPLAIN]})`,!0);Ee.comparatorTrimReplace="$1$2$3";C("HYPHENRANGE",`^\\s*(${_[N.XRANGEPLAIN]})\\s+-\\s+(${_[N.XRANGEPLAIN]})\\s*$`);C("HYPHENRANGELOOSE",`^\\s*(${_[N.XRANGEPLAINLOOSE]})\\s+-\\s+(${_[N.XRANGEPLAINLOOSE]})\\s*$`);C("STAR","(<|>)?=?\\s*\\*");C("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");C("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var Mt=j((yf,Gs)=>{"use strict";g();var Io=Object.freeze({loose:!0}),Fo=Object.freeze({}),Co=t=>t?typeof t!="object"?Io:t:Fo;Gs.exports=Co});var Xs=j((Pf,Vs)=>{"use strict";g();var Hs=/^[0-9]+$/,Ws=(t,e)=>{if(typeof t=="number"&&typeof e=="number")return t===e?0:t<e?-1:1;let r=Hs.test(t),s=Hs.test(e);return r&&s&&(t=+t,e=+e),t===e?0:r&&!s?-1:s&&!r?1:t<e?-1:1},jo=(t,e)=>Ws(e,t);Vs.exports={compareIdentifiers:Ws,rcompareIdentifiers:jo}});var st=j((Rf,Ks)=>{"use strict";g();var zt=Et(),{MAX_LENGTH:Js,MAX_SAFE_INTEGER:Bt}=Ot(),{safeRe:Ut,t:qt}=Pt(),Do=Mt(),{compareIdentifiers:br}=Xs(),vr=class t{constructor(e,r){if(r=Do(r),e instanceof t){if(e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>Js)throw new TypeError(`version is longer than ${Js} characters`);zt("SemVer",e,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let s=e.trim().match(r.loose?Ut[qt.LOOSE]:Ut[qt.FULL]);if(!s)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+s[1],this.minor=+s[2],this.patch=+s[3],this.major>Bt||this.major<0)throw new TypeError("Invalid major version");if(this.minor>Bt||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>Bt||this.patch<0)throw new TypeError("Invalid patch version");s[4]?this.prerelease=s[4].split(".").map(i=>{if(/^[0-9]+$/.test(i)){let n=+i;if(n>=0&&n<Bt)return n}return i}):this.prerelease=[],this.build=s[5]?s[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(zt("SemVer.compare",this.version,this.options,e),!(e instanceof t)){if(typeof e=="string"&&e===this.version)return 0;e=new t(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof t||(e=new t(e,this.options)),this.major<e.major?-1:this.major>e.major?1:this.minor<e.minor?-1:this.minor>e.minor?1:this.patch<e.patch?-1:this.patch>e.patch?1:0}comparePre(e){if(e instanceof t||(e=new t(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let r=0;do{let s=this.prerelease[r],i=e.prerelease[r];if(zt("prerelease compare",r,s,i),s===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(s===void 0)return-1;if(s===i)continue;return br(s,i)}while(++r)}compareBuild(e){e instanceof t||(e=new t(e,this.options));let r=0;do{let s=this.build[r],i=e.build[r];if(zt("build compare",r,s,i),s===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(s===void 0)return-1;if(s===i)continue;return br(s,i)}while(++r)}inc(e,r,s){if(e.startsWith("pre")){if(!r&&s===!1)throw new Error("invalid increment argument: identifier is empty");if(r){let i=`-${r}`.match(this.options.loose?Ut[qt.PRERELEASELOOSE]:Ut[qt.PRERELEASE]);if(!i||i[1]!==r)throw new Error(`invalid identifier: ${r}`)}}switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",r,s);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",r,s);break;case"prepatch":this.prerelease.length=0,this.inc("patch",r,s),this.inc("pre",r,s);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",r,s),this.inc("pre",r,s);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let i=Number(s)?1:0;if(this.prerelease.length===0)this.prerelease=[i];else{let n=this.prerelease.length;for(;--n>=0;)typeof this.prerelease[n]=="number"&&(this.prerelease[n]++,n=-2);if(n===-1){if(r===this.prerelease.join(".")&&s===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(i)}}if(r){let n=[r,i];s===!1&&(n=[r]),br(this.prerelease[0],r)===0?isNaN(this.prerelease[1])&&(this.prerelease=n):this.prerelease=n}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};Ks.exports=vr});var Zs=j((kf,Qs)=>{"use strict";g();var Ys=st(),To=(t,e,r=!1)=>{if(t instanceof Ys)return t;try{return new Ys(t,e)}catch(s){if(!r)return null;throw s}};Qs.exports=To});var ti=j((Af,ei)=>{"use strict";g();var Lo=st(),Oo=Zs(),{safeRe:Gt,t:Ht}=Pt(),Mo=(t,e)=>{if(t instanceof Lo)return t;if(typeof t=="number"&&(t=String(t)),typeof t!="string")return null;e=e||{};let r=null;if(!e.rtl)r=t.match(e.includePrerelease?Gt[Ht.COERCEFULL]:Gt[Ht.COERCE]);else{let c=e.includePrerelease?Gt[Ht.COERCERTLFULL]:Gt[Ht.COERCERTL],u;for(;(u=c.exec(t))&&(!r||r.index+r[0].length!==t.length);)(!r||u.index+u[0].length!==r.index+r[0].length)&&(r=u),c.lastIndex=u.index+u[1].length+u[2].length;c.lastIndex=-1}if(r===null)return null;let s=r[2],i=r[3]||"0",n=r[4]||"0",a=e.includePrerelease&&r[5]?`-${r[5]}`:"",o=e.includePrerelease&&r[6]?`+${r[6]}`:"";return Oo(`${s}.${i}.${n}${a}${o}`,e)};ei.exports=Mo});var Ke=j((Nf,si)=>{"use strict";g();var ri=st(),zo=(t,e,r)=>new ri(t,r).compare(new ri(e,r));si.exports=zo});var wr=j((Ff,ii)=>{"use strict";g();var Bo=Ke(),Uo=(t,e,r)=>Bo(t,e,r)>=0;ii.exports=Uo});var ai=j((jf,ni)=>{"use strict";g();var yr=class{constructor(){this.max=1e3,this.map=new Map}get(e){let r=this.map.get(e);if(r!==void 0)return this.map.delete(e),this.map.set(e,r),r}delete(e){return this.map.delete(e)}set(e,r){if(!this.delete(e)&&r!==void 0){if(this.map.size>=this.max){let i=this.map.keys().next().value;this.delete(i)}this.map.set(e,r)}return this}};ni.exports=yr});var li=j((Tf,oi)=>{"use strict";g();var qo=Ke(),Go=(t,e,r)=>qo(t,e,r)===0;oi.exports=Go});var hi=j((Of,ci)=>{"use strict";g();var Ho=Ke(),Wo=(t,e,r)=>Ho(t,e,r)!==0;ci.exports=Wo});var fi=j((zf,ui)=>{"use strict";g();var Vo=Ke(),Xo=(t,e,r)=>Vo(t,e,r)>0;ui.exports=Xo});var gi=j((Uf,di)=>{"use strict";g();var Jo=Ke(),Ko=(t,e,r)=>Jo(t,e,r)<0;di.exports=Ko});var mi=j((Gf,pi)=>{"use strict";g();var Yo=Ke(),Qo=(t,e,r)=>Yo(t,e,r)<=0;pi.exports=Qo});var vi=j((Wf,bi)=>{"use strict";g();var Zo=li(),el=hi(),tl=fi(),rl=wr(),sl=gi(),il=mi(),nl=(t,e,r,s)=>{switch(e){case"===":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t===r;case"!==":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t!==r;case"":case"=":case"==":return Zo(t,r,s);case"!=":return el(t,r,s);case">":return tl(t,r,s);case">=":return rl(t,r,s);case"<":return sl(t,r,s);case"<=":return il(t,r,s);default:throw new TypeError(`Invalid operator: ${e}`)}};bi.exports=nl});var $i=j((Xf,Ri)=>{"use strict";g();var xt=Symbol("SemVer ANY"),xr=class t{static get ANY(){return xt}constructor(e,r){if(r=wi(r),e instanceof t){if(e.loose===!!r.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),Pr("comparator",e,r),this.options=r,this.loose=!!r.loose,this.parse(e),this.semver===xt?this.value="":this.value=this.operator+this.semver.version,Pr("comp",this)}parse(e){let r=this.options.loose?yi[Ei.COMPARATORLOOSE]:yi[Ei.COMPARATOR],s=e.match(r);if(!s)throw new TypeError(`Invalid comparator: ${e}`);this.operator=s[1]!==void 0?s[1]:"",this.operator==="="&&(this.operator=""),s[2]?this.semver=new Pi(s[2],this.options.loose):this.semver=xt}toString(){return this.value}test(e){if(Pr("Comparator.test",e,this.options.loose),this.semver===xt||e===xt)return!0;if(typeof e=="string")try{e=new Pi(e,this.options)}catch{return!1}return Er(e,this.operator,this.semver,this.options)}intersects(e,r){if(!(e instanceof t))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new xi(e.value,r).test(this.value):e.operator===""?e.value===""?!0:new xi(this.value,r).test(e.semver):(r=wi(r),r.includePrerelease&&(this.value==="<0.0.0-0"||e.value==="<0.0.0-0")||!r.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||Er(this.semver,"<",e.semver,r)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||Er(this.semver,">",e.semver,r)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};Ri.exports=xr;var wi=Mt(),{safeRe:yi,t:Ei}=Pt(),Er=vi(),Pr=Et(),Pi=st(),xi=Rr()});var Rr=j((Kf,_i)=>{"use strict";g();var al=/\s+/g,$r=class t{constructor(e,r){if(r=ll(r),e instanceof t)return e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease?e:new t(e.raw,r);if(e instanceof kr)return this.raw=e.value,this.set=[[e]],this.formatted=void 0,this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=e.trim().replace(al," "),this.set=this.raw.split("||").map(s=>this.parseRange(s.trim())).filter(s=>s.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let s=this.set[0];if(this.set=this.set.filter(i=>!Si(i[0])),this.set.length===0)this.set=[s];else if(this.set.length>1){for(let i of this.set)if(i.length===1&&pl(i[0])){this.set=[i];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let e=0;e<this.set.length;e++){e>0&&(this.formatted+="||");let r=this.set[e];for(let s=0;s<r.length;s++)s>0&&(this.formatted+=" "),this.formatted+=r[s].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(e){let s=((this.options.includePrerelease&&dl)|(this.options.loose&&gl))+":"+e,i=ki.get(s);if(i)return i;let n=this.options.loose,a=n?ee[Z.HYPHENRANGELOOSE]:ee[Z.HYPHENRANGE];e=e.replace(a,$l(this.options.includePrerelease)),G("hyphen replace",e),e=e.replace(ee[Z.COMPARATORTRIM],hl),G("comparator trim",e),e=e.replace(ee[Z.TILDETRIM],ul),G("tilde trim",e),e=e.replace(ee[Z.CARETTRIM],fl),G("caret trim",e);let o=e.split(" ").map(m=>ml(m,this.options)).join(" ").split(/\s+/).map(m=>Rl(m,this.options));n&&(o=o.filter(m=>(G("loose invalid filter",m,this.options),!!m.match(ee[Z.COMPARATORLOOSE])))),G("range list",o);let c=new Map,u=o.map(m=>new kr(m,this.options));for(let m of u){if(Si(m))return[m];c.set(m.value,m)}c.size>1&&c.has("")&&c.delete("");let f=[...c.values()];return ki.set(s,f),f}intersects(e,r){if(!(e instanceof t))throw new TypeError("a Range is required");return this.set.some(s=>Ai(s,r)&&e.set.some(i=>Ai(i,r)&&s.every(n=>i.every(a=>n.intersects(a,r)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new cl(e,this.options)}catch{return!1}for(let r=0;r<this.set.length;r++)if(kl(this.set[r],e,this.options))return!0;return!1}};_i.exports=$r;var ol=ai(),ki=new ol,ll=Mt(),kr=$i(),G=Et(),cl=st(),{safeRe:ee,t:Z,comparatorTrimReplace:hl,tildeTrimReplace:ul,caretTrimReplace:fl}=Pt(),{FLAG_INCLUDE_PRERELEASE:dl,FLAG_LOOSE:gl}=Ot(),Si=t=>t.value==="<0.0.0-0",pl=t=>t.value==="",Ai=(t,e)=>{let r=!0,s=t.slice(),i=s.pop();for(;r&&s.length;)r=s.every(n=>i.intersects(n,e)),i=s.pop();return r},ml=(t,e)=>(t=t.replace(ee[Z.BUILD],""),G("comp",t,e),t=wl(t,e),G("caret",t),t=bl(t,e),G("tildes",t),t=El(t,e),G("xrange",t),t=xl(t,e),G("stars",t),t),te=t=>!t||t.toLowerCase()==="x"||t==="*",bl=(t,e)=>t.trim().split(/\s+/).map(r=>vl(r,e)).join(" "),vl=(t,e)=>{let r=e.loose?ee[Z.TILDELOOSE]:ee[Z.TILDE];return t.replace(r,(s,i,n,a,o)=>{G("tilde",t,s,i,n,a,o);let c;return te(i)?c="":te(n)?c=`>=${i}.0.0 <${+i+1}.0.0-0`:te(a)?c=`>=${i}.${n}.0 <${i}.${+n+1}.0-0`:o?(G("replaceTilde pr",o),c=`>=${i}.${n}.${a}-${o} <${i}.${+n+1}.0-0`):c=`>=${i}.${n}.${a} <${i}.${+n+1}.0-0`,G("tilde return",c),c})},wl=(t,e)=>t.trim().split(/\s+/).map(r=>yl(r,e)).join(" "),yl=(t,e)=>{G("caret",t,e);let r=e.loose?ee[Z.CARETLOOSE]:ee[Z.CARET],s=e.includePrerelease?"-0":"";return t.replace(r,(i,n,a,o,c)=>{G("caret",t,i,n,a,o,c);let u;return te(n)?u="":te(a)?u=`>=${n}.0.0${s} <${+n+1}.0.0-0`:te(o)?n==="0"?u=`>=${n}.${a}.0${s} <${n}.${+a+1}.0-0`:u=`>=${n}.${a}.0${s} <${+n+1}.0.0-0`:c?(G("replaceCaret pr",c),n==="0"?a==="0"?u=`>=${n}.${a}.${o}-${c} <${n}.${a}.${+o+1}-0`:u=`>=${n}.${a}.${o}-${c} <${n}.${+a+1}.0-0`:u=`>=${n}.${a}.${o}-${c} <${+n+1}.0.0-0`):(G("no pr"),n==="0"?a==="0"?u=`>=${n}.${a}.${o}${s} <${n}.${a}.${+o+1}-0`:u=`>=${n}.${a}.${o}${s} <${n}.${+a+1}.0-0`:u=`>=${n}.${a}.${o} <${+n+1}.0.0-0`),G("caret return",u),u})},El=(t,e)=>(G("replaceXRanges",t,e),t.split(/\s+/).map(r=>Pl(r,e)).join(" ")),Pl=(t,e)=>{t=t.trim();let r=e.loose?ee[Z.XRANGELOOSE]:ee[Z.XRANGE];return t.replace(r,(s,i,n,a,o,c)=>{G("xRange",t,s,i,n,a,o,c);let u=te(n),f=u||te(a),m=f||te(o),v=m;return i==="="&&v&&(i=""),c=e.includePrerelease?"-0":"",u?i===">"||i==="<"?s="<0.0.0-0":s="*":i&&v?(f&&(a=0),o=0,i===">"?(i=">=",f?(n=+n+1,a=0,o=0):(a=+a+1,o=0)):i==="<="&&(i="<",f?n=+n+1:a=+a+1),i==="<"&&(c="-0"),s=`${i+n}.${a}.${o}${c}`):f?s=`>=${n}.0.0${c} <${+n+1}.0.0-0`:m&&(s=`>=${n}.${a}.0${c} <${n}.${+a+1}.0-0`),G("xRange return",s),s})},xl=(t,e)=>(G("replaceStars",t,e),t.trim().replace(ee[Z.STAR],"")),Rl=(t,e)=>(G("replaceGTE0",t,e),t.trim().replace(ee[e.includePrerelease?Z.GTE0PRE:Z.GTE0],"")),$l=t=>(e,r,s,i,n,a,o,c,u,f,m,v)=>(te(s)?r="":te(i)?r=`>=${s}.0.0${t?"-0":""}`:te(n)?r=`>=${s}.${i}.0${t?"-0":""}`:a?r=`>=${r}`:r=`>=${r}${t?"-0":""}`,te(u)?c="":te(f)?c=`<${+u+1}.0.0-0`:te(m)?c=`<${u}.${+f+1}.0-0`:v?c=`<=${u}.${f}.${m}-${v}`:t?c=`<${u}.${f}.${+m+1}-0`:c=`<=${c}`,`${r} ${c}`.trim()),kl=(t,e,r)=>{for(let s=0;s<t.length;s++)if(!t[s].test(e))return!1;if(e.prerelease.length&&!r.includePrerelease){for(let s=0;s<t.length;s++)if(G(t[s].semver),t[s].semver!==kr.ANY&&t[s].semver.prerelease.length>0){let i=t[s].semver;if(i.major===e.major&&i.minor===e.minor&&i.patch===e.patch)return!0}return!1}return!0}});var Ii=j((Qf,Ni)=>{"use strict";g();var Sl=Rr(),Al=(t,e,r)=>{try{e=new Sl(e,r)}catch{return!1}return e.test(t)};Ni.exports=Al});var Sr=j((ed,_l)=>{_l.exports={name:"sharp",description:"High performance Node.js image processing, the fastest module to resize JPEG, PNG, WebP, GIF, AVIF and TIFF images",version:"0.34.5",author:"Lovell Fuller <npm@lovell.info>",homepage:"https://sharp.pixelplumbing.com",contributors:["Pierre Inglebert <pierre.inglebert@gmail.com>","Jonathan Ong <jonathanrichardong@gmail.com>","Chanon Sajjamanochai <chanon.s@gmail.com>","Juliano Julio <julianojulio@gmail.com>","Daniel Gasienica <daniel@gasienica.ch>","Julian Walker <julian@fiftythree.com>","Amit Pitaru <pitaru.amit@gmail.com>","Brandon Aaron <hello.brandon@aaron.sh>","Andreas Lind <andreas@one.com>","Maurus Cuelenaere <mcuelenaere@gmail.com>","Linus Unneb\xE4ck <linus@folkdatorn.se>","Victor Mateevitsi <mvictoras@gmail.com>","Alaric Holloway <alaric.holloway@gmail.com>","Bernhard K. Weisshuhn <bkw@codingforce.com>","Chris Riley <criley@primedia.com>","David Carley <dacarley@gmail.com>","John Tobin <john@limelightmobileinc.com>","Kenton Gray <kentongray@gmail.com>","Felix B\xFCnemann <Felix.Buenemann@gmail.com>","Samy Al Zahrani <samyalzahrany@gmail.com>","Chintan Thakkar <lemnisk8@gmail.com>","F. Orlando Galashan <frulo@gmx.de>","Kleis Auke Wolthuizen <info@kleisauke.nl>","Matt Hirsch <mhirsch@media.mit.edu>","Matthias Thoemmes <thoemmes@gmail.com>","Patrick Paskaris <patrick@paskaris.gr>","J\xE9r\xE9my Lal <kapouer@melix.org>","Rahul Nanwani <r.nanwani@gmail.com>","Alice Monday <alice0meta@gmail.com>","Kristo Jorgenson <kristo.jorgenson@gmail.com>","YvesBos <yves_bos@outlook.com>","Guy Maliar <guy@tailorbrands.com>","Nicolas Coden <nicolas@ncoden.fr>","Matt Parrish <matt.r.parrish@gmail.com>","Marcel Bretschneider <marcel.bretschneider@gmail.com>","Matthew McEachen <matthew+github@mceachen.org>","Jarda Kot\u011B\u0161ovec <jarda.kotesovec@gmail.com>","Kenric D'Souza <kenric.dsouza@gmail.com>","Oleh Aleinyk <oleg.aleynik@gmail.com>","Marcel Bretschneider <marcel.bretschneider@gmail.com>","Andrea Bianco <andrea.bianco@unibas.ch>","Rik Heywood <rik@rik.org>","Thomas Parisot <hi@oncletom.io>","Nathan Graves <nathanrgraves+github@gmail.com>","Tom Lokhorst <tom@lokhorst.eu>","Espen Hovlandsdal <espen@hovlandsdal.com>","Sylvain Dumont <sylvain.dumont35@gmail.com>","Alun Davies <alun.owain.davies@googlemail.com>","Aidan Hoolachan <ajhoolachan21@gmail.com>","Axel Eirola <axel.eirola@iki.fi>","Freezy <freezy@xbmc.org>","Daiz <taneli.vatanen@gmail.com>","Julian Aubourg <j@ubourg.net>","Keith Belovay <keith@picthrive.com>","Michael B. Klein <mbklein@gmail.com>","Jordan Prudhomme <jordan@raboland.fr>","Ilya Ovdin <iovdin@gmail.com>","Andargor <andargor@yahoo.com>","Paul Neave <paul.neave@gmail.com>","Brendan Kennedy <brenwken@gmail.com>","Brychan Bennett-Odlum <git@brychan.io>","Edward Silverton <e.silverton@gmail.com>","Roman Malieiev <aromaleev@gmail.com>","Tomas Szabo <tomas.szabo@deftomat.com>","Robert O'Rourke <robert@o-rourke.org>","Guillermo Alfonso Varela Chouci\xF1o <guillevch@gmail.com>","Christian Flintrup <chr@gigahost.dk>","Manan Jadhav <manan@motionden.com>","Leon Radley <leon@radley.se>","alza54 <alza54@thiocod.in>","Jacob Smith <jacob@frende.me>","Michael Nutt <michael@nutt.im>","Brad Parham <baparham@gmail.com>","Taneli Vatanen <taneli.vatanen@gmail.com>","Joris Dugu\xE9 <zaruike10@gmail.com>","Chris Banks <christopher.bradley.banks@gmail.com>","Ompal Singh <ompal.hitm09@gmail.com>","Brodan <christopher.hranj@gmail.com>","Ankur Parihar <ankur.github@gmail.com>","Brahim Ait elhaj <brahima@gmail.com>","Mart Jansink <m.jansink@gmail.com>","Lachlan Newman <lachnewman007@gmail.com>","Dennis Beatty <dennis@dcbeatty.com>","Ingvar Stepanyan <me@rreverser.com>","Don Denton <don@happycollision.com>"],scripts:{build:"node install/build.js",install:"node install/check.js || npm run build",clean:"rm -rf src/build/ .nyc_output/ coverage/ test/fixtures/output.*",test:"npm run lint && npm run test-unit",lint:"npm run lint-cpp && npm run lint-js && npm run lint-types","lint-cpp":"cpplint --quiet src/*.h src/*.cc","lint-js":"biome lint","lint-types":"tsd --files ./test/types/sharp.test-d.ts","test-leak":"./test/leak/leak.sh","test-unit":"node --experimental-test-coverage test/unit.mjs","package-from-local-build":"node npm/from-local-build.js","package-release-notes":"node npm/release-notes.js","docs-build":"node docs/build.mjs","docs-serve":"cd docs && npm start","docs-publish":"cd docs && npm run build && npx firebase-tools deploy --project pixelplumbing --only hosting:pixelplumbing-sharp"},type:"commonjs",main:"lib/index.js",types:"lib/index.d.ts",files:["install","lib","src/*.{cc,h,gyp}"],repository:{type:"git",url:"git://github.com/lovell/sharp.git"},keywords:["jpeg","png","webp","avif","tiff","gif","svg","jp2","dzi","image","resize","thumbnail","crop","embed","libvips","vips"],dependencies:{"@img/colour":"^1.0.0","detect-libc":"^2.1.2",semver:"^7.7.3"},optionalDependencies:{"@img/sharp-darwin-arm64":"0.34.5","@img/sharp-darwin-x64":"0.34.5","@img/sharp-libvips-darwin-arm64":"1.2.4","@img/sharp-libvips-darwin-x64":"1.2.4","@img/sharp-libvips-linux-arm":"1.2.4","@img/sharp-libvips-linux-arm64":"1.2.4","@img/sharp-libvips-linux-ppc64":"1.2.4","@img/sharp-libvips-linux-riscv64":"1.2.4","@img/sharp-libvips-linux-s390x":"1.2.4","@img/sharp-libvips-linux-x64":"1.2.4","@img/sharp-libvips-linuxmusl-arm64":"1.2.4","@img/sharp-libvips-linuxmusl-x64":"1.2.4","@img/sharp-linux-arm":"0.34.5","@img/sharp-linux-arm64":"0.34.5","@img/sharp-linux-ppc64":"0.34.5","@img/sharp-linux-riscv64":"0.34.5","@img/sharp-linux-s390x":"0.34.5","@img/sharp-linux-x64":"0.34.5","@img/sharp-linuxmusl-arm64":"0.34.5","@img/sharp-linuxmusl-x64":"0.34.5","@img/sharp-wasm32":"0.34.5","@img/sharp-win32-arm64":"0.34.5","@img/sharp-win32-ia32":"0.34.5","@img/sharp-win32-x64":"0.34.5"},devDependencies:{"@biomejs/biome":"^2.3.4","@cpplint/cli":"^0.1.0","@emnapi/runtime":"^1.7.0","@img/sharp-libvips-dev":"1.2.4","@img/sharp-libvips-dev-wasm32":"1.2.4","@img/sharp-libvips-win32-arm64":"1.2.4","@img/sharp-libvips-win32-ia32":"1.2.4","@img/sharp-libvips-win32-x64":"1.2.4","@types/node":"*",emnapi:"^1.7.0","exif-reader":"^2.0.2","extract-zip":"^2.0.1",icc:"^3.0.0","jsdoc-to-markdown":"^9.1.3","node-addon-api":"^8.5.0","node-gyp":"^11.5.0","tar-fs":"^3.1.1",tsd:"^0.33.0"},license:"Apache-2.0",engines:{node:"^18.17.0 || ^20.3.0 || >=21.0.0"},config:{libvips:">=8.17.3"},funding:{url:"https://opencollective.com/libvips"}}});var _r=j((td,Bi)=>{g();var{spawnSync:Wt}=H("node:child_process"),{createHash:Nl}=H("node:crypto"),Di=ti(),Il=wr(),Fl=Ii(),Fi=Lt(),{config:Cl,engines:Ci,optionalDependencies:jl}=Sr(),Dl=p.env.npm_package_config_libvips||Cl.libvips,Ti=Di(Dl).version,Tl=["darwin-arm64","darwin-x64","linux-arm","linux-arm64","linux-ppc64","linux-riscv64","linux-s390x","linux-x64","linuxmusl-arm64","linuxmusl-x64","win32-arm64","win32-ia32","win32-x64"],Vt={encoding:"utf8",shell:!0},Ll=t=>{t instanceof Error},Li=()=>Fi.isNonGlibcLinuxSync()?Fi.familySync():"",Ol=()=>`${p.platform}${Li()}-${p.arch}`,it=()=>{if(Oi())return"wasm32";let{npm_config_arch:t,npm_config_platform:e,npm_config_libc:r}=p.env,s=typeof r=="string"?r:Li();return`${e||p.platform}${s}-${t||p.arch}`},Ml=()=>{try{return H(`@img/sharp-libvips-dev-${it()}/include`)}catch{try{return H("@img/sharp-libvips-dev/include")}catch{}}return""},zl=()=>{try{return H("@img/sharp-libvips-dev/cplusplus")}catch{}return""},Bl=()=>{try{return H(`@img/sharp-libvips-dev-${it()}/lib`)}catch{try{return H(`@img/sharp-libvips-${it()}/lib`)}catch{}}return""},Ul=()=>{if(p.release?.name==="node"&&p.versions&&!Fl(p.versions.node,Ci.node))return{found:p.versions.node,expected:Ci.node}},Oi=()=>{let{CC:t}=p.env;return!!t?.endsWith("/emcc")},ql=()=>p.platform==="darwin"&&p.arch==="x64"?(Wt("sysctl sysctl.proc_translated",Vt).stdout||"").trim()==="sysctl.proc_translated: 1":!1,ji=t=>Nl("sha512").update(t).digest("hex"),Gl=()=>{try{let t=ji(`imgsharp-libvips-${it()}`),e=Di(jl[`@img/sharp-libvips-${it()}`],{includePrerelease:!0}).version;return ji(`${t}npm:${e}`).slice(0,10)}catch{}return""},Hl=()=>Wt(`node-gyp rebuild --directory=src ${Oi()?"--nodedir=emscripten":""}`,{...Vt,stdio:"inherit"}).status,Mi=()=>p.platform!=="win32"?(Wt("pkg-config --modversion vips-cpp",{...Vt,env:{...p.env,PKG_CONFIG_PATH:zi()}}).stdout||"").trim():"",zi=()=>p.platform!=="win32"?[(Wt('which brew >/dev/null 2>&1 && brew environment --plain | grep PKG_CONFIG_LIBDIR | cut -d" " -f2',Vt).stdout||"").trim(),p.env.PKG_CONFIG_PATH,"/usr/local/lib/pkgconfig","/usr/lib/pkgconfig","/usr/local/libdata/pkgconfig","/usr/libdata/pkgconfig"].filter(Boolean).join(":"):"",Ar=(t,e,r)=>(r&&r(`Detected ${e}, skipping search for globally-installed libvips`),t),Wl=t=>{if(p.env.SHARP_IGNORE_GLOBAL_LIBVIPS)return Ar(!1,"SHARP_IGNORE_GLOBAL_LIBVIPS",t);if(p.env.SHARP_FORCE_GLOBAL_LIBVIPS)return Ar(!0,"SHARP_FORCE_GLOBAL_LIBVIPS",t);if(ql())return Ar(!1,"Rosetta",t);let e=Mi();return!!e&&Il(e,Ti)};Bi.exports={minimumLibvipsVersion:Ti,prebuiltPlatforms:Tl,buildPlatformArch:it,buildSharpLibvipsIncludeDir:Ml,buildSharpLibvipsCPlusPlusDir:zl,buildSharpLibvipsLibDir:Bl,isUnsupportedNodeRuntime:Ul,runtimePlatformArch:Ol,log:Ll,yarnLocator:Gl,spawnRebuild:Hl,globalLibvipsVersion:Mi,pkgConfigPath:zi,useGlobalLibvips:Wl}});var $t=j((id,qi)=>{g();var{familySync:Vl,versionSync:Xl}=Lt(),{runtimePlatformArch:Jl,isUnsupportedNodeRuntime:Ui,prebuiltPlatforms:Kl,minimumLibvipsVersion:Yl}=_r(),Ye=Jl(),Ql=[`../src/build/Release/sharp-${Ye}.node`,"../src/build/Release/sharp-wasm32.node",`@img/sharp-${Ye}/sharp.node`,"@img/sharp-wasm32/sharp.node"],Nr,nt,Rt=[];for(Nr of Ql)try{nt=H(Nr);break}catch(t){Rt.push(t)}if(nt&&Nr.startsWith("@img/sharp-linux-x64")&&!nt._isUsingX64V2()){let t=new Error("Prebuilt binaries for linux-x64 require v2 microarchitecture");t.code="Unsupported CPU",Rt.push(t),nt=null}if(nt)qi.exports=nt;else{let[t,e,r]=["linux","darwin","win32"].map(n=>Ye.startsWith(n)),s=[`Could not load the "sharp" module using the ${Ye} runtime`];Rt.forEach(n=>{n.code!=="MODULE_NOT_FOUND"&&s.push(`${n.code}: ${n.message}`)});let i=Rt.map(n=>n.message).join(" ");if(s.push("Possible solutions:"),Ui()){let{found:n,expected:a}=Ui();s.push("- Please upgrade Node.js:",` Found ${n}`,` Requires ${a}`)}else if(Kl.includes(Ye)){let[n,a]=Ye.split("-"),o=n.endsWith("musl")?" --libc=musl":"";s.push("- Ensure optional dependencies can be installed:"," npm install --include=optional sharp","- Ensure your package manager supports multi-platform installation:"," See https://sharp.pixelplumbing.com/install#cross-platform","- Add platform-specific dependencies:",` npm install --os=${n.replace("musl","")}${o} --cpu=${a} sharp`)}else s.push(`- Manually install libvips >= ${Yl}`,"- Add experimental WebAssembly-based dependencies:"," npm install --cpu=wasm32 sharp"," npm install @img/sharp-wasm32");if(t&&/(symbol not found|CXXABI_)/i.test(i))try{let{config:n}=H(`@img/sharp-libvips-${Ye}/package`),a=`${Vl()} ${Xl()}`,o=`${n.musl?"musl":"glibc"} ${n.musl||n.glibc}`;s.push("- Update your OS:",` Found ${a}`,` Requires ${o}`)}catch{}throw t&&/\/snap\/core[0-9]{2}/.test(i)&&s.push("- Remove the Node.js Snap, which does not support native modules"," snap remove node"),e&&/Incompatible library version/.test(i)&&s.push("- Update Homebrew:"," brew update && brew upgrade vips"),Rt.some(n=>n.code==="ERR_DLOPEN_DISABLED")&&s.push("- Run Node.js without using the --no-addons flag"),r&&/The specified procedure could not be found/.test(i)&&s.push("- Using the canvas package on Windows?"," See https://sharp.pixelplumbing.com/install#canvas-and-windows","- Check for outdated versions of sharp in the dependency tree:"," npm ls sharp"),s.push("- Consult the installation documentation:"," See https://sharp.pixelplumbing.com/install"),new Error(s.join(`
2
+ `))}});var Hi=j((od,Gi)=>{g();var Zl=H("node:util"),Ir=H("node:stream"),ec=be();$t();var tc=Zl.debuglog("sharp"),rc=t=>{Qe.queue.emit("change",t)},Qe=function(t,e){if(arguments.length===1&&!ec.defined(t))throw new Error("Invalid input");return this instanceof Qe?(Ir.Duplex.call(this),this.options={topOffsetPre:-1,leftOffsetPre:-1,widthPre:-1,heightPre:-1,topOffsetPost:-1,leftOffsetPost:-1,widthPost:-1,heightPost:-1,width:-1,height:-1,canvas:"crop",position:0,resizeBackground:[0,0,0,255],angle:0,rotationAngle:0,rotationBackground:[0,0,0,255],rotateBefore:!1,orientBefore:!1,flip:!1,flop:!1,extendTop:0,extendBottom:0,extendLeft:0,extendRight:0,extendBackground:[0,0,0,255],extendWith:"background",withoutEnlargement:!1,withoutReduction:!1,affineMatrix:[],affineBackground:[0,0,0,255],affineIdx:0,affineIdy:0,affineOdx:0,affineOdy:0,affineInterpolator:this.constructor.interpolators.bilinear,kernel:"lanczos3",fastShrinkOnLoad:!0,tint:[-1,0,0,0],flatten:!1,flattenBackground:[0,0,0],unflatten:!1,negate:!1,negateAlpha:!0,medianSize:0,blurSigma:0,precision:"integer",minAmpl:.2,sharpenSigma:0,sharpenM1:1,sharpenM2:2,sharpenX1:2,sharpenY2:10,sharpenY3:20,threshold:0,thresholdGrayscale:!0,trimBackground:[],trimThreshold:-1,trimLineArt:!1,dilateWidth:0,erodeWidth:0,gamma:0,gammaOut:0,greyscale:!1,normalise:!1,normaliseLower:1,normaliseUpper:99,claheWidth:0,claheHeight:0,claheMaxSlope:3,brightness:1,saturation:1,hue:0,lightness:0,booleanBufferIn:null,booleanFileIn:"",joinChannelIn:[],extractChannel:-1,removeAlpha:!1,ensureAlpha:-1,colourspace:"srgb",colourspacePipeline:"last",composite:[],fileOut:"",formatOut:"input",streamOut:!1,keepMetadata:0,withMetadataOrientation:-1,withMetadataDensity:0,withIccProfile:"",withExif:{},withExifMerge:!0,withXmp:"",resolveWithObject:!1,loop:-1,delay:[],jpegQuality:80,jpegProgressive:!1,jpegChromaSubsampling:"4:2:0",jpegTrellisQuantisation:!1,jpegOvershootDeringing:!1,jpegOptimiseScans:!1,jpegOptimiseCoding:!0,jpegQuantisationTable:0,pngProgressive:!1,pngCompressionLevel:6,pngAdaptiveFiltering:!1,pngPalette:!1,pngQuality:100,pngEffort:7,pngBitdepth:8,pngDither:1,jp2Quality:80,jp2TileHeight:512,jp2TileWidth:512,jp2Lossless:!1,jp2ChromaSubsampling:"4:4:4",webpQuality:80,webpAlphaQuality:100,webpLossless:!1,webpNearLossless:!1,webpSmartSubsample:!1,webpSmartDeblock:!1,webpPreset:"default",webpEffort:4,webpMinSize:!1,webpMixed:!1,gifBitdepth:8,gifEffort:7,gifDither:1,gifInterFrameMaxError:0,gifInterPaletteMaxError:3,gifKeepDuplicateFrames:!1,gifReuse:!0,gifProgressive:!1,tiffQuality:80,tiffCompression:"jpeg",tiffBigtiff:!1,tiffPredictor:"horizontal",tiffPyramid:!1,tiffMiniswhite:!1,tiffBitdepth:8,tiffTile:!1,tiffTileHeight:256,tiffTileWidth:256,tiffXres:1,tiffYres:1,tiffResolutionUnit:"inch",heifQuality:50,heifLossless:!1,heifCompression:"av1",heifEffort:4,heifChromaSubsampling:"4:4:4",heifBitdepth:8,jxlDistance:1,jxlDecodingTier:0,jxlEffort:7,jxlLossless:!1,rawDepth:"uchar",tileSize:256,tileOverlap:0,tileContainer:"fs",tileLayout:"dz",tileFormat:"last",tileDepth:"last",tileAngle:0,tileSkipBlanks:-1,tileBackground:[255,255,255,255],tileCentre:!1,tileId:"https://example.com/iiif",tileBasename:"",timeoutSeconds:0,linearA:[],linearB:[],pdfBackground:[255,255,255,255],debuglog:r=>{this.emit("warning",r),tc(r)},queueListener:rc},this.options.input=this._createInputDescriptor(t,e,{allowStream:!0}),this):new Qe(t,e)};Object.setPrototypeOf(Qe.prototype,Ir.Duplex.prototype);Object.setPrototypeOf(Qe,Ir.Duplex);function sc(){let t=this.constructor.call(),{debuglog:e,queueListener:r,...s}=this.options;return t.options=structuredClone(s),t.options.debuglog=e,t.options.queueListener=r,this._isStreamInput()&&this.on("finish",()=>{this._flattenBufferIn(),t.options.input.buffer=this.options.input.buffer,t.emit("finish")}),t}Object.assign(Qe.prototype,{clone:sc});Gi.exports=Qe});var Xi=j((cd,Vi)=>{g();var h=be(),Oe=$t(),ic={left:"low",top:"low",low:"low",center:"centre",centre:"centre",right:"high",bottom:"high",high:"high"},nc=["failOn","limitInputPixels","unlimited","animated","autoOrient","density","ignoreIcc","page","pages","sequentialRead","jp2","openSlide","pdf","raw","svg","tiff","failOnError","openSlideLevel","pdfBackground","tiffSubifd"];function Wi(t){let e=nc.filter(r=>h.defined(t[r])).map(r=>[r,t[r]]);return e.length?Object.fromEntries(e):void 0}function ac(t,e,r){let s={autoOrient:!1,failOn:"warning",limitInputPixels:268402689,ignoreIcc:!1,unlimited:!1,sequentialRead:!0};if(h.string(t))s.file=t;else if(h.buffer(t)){if(t.length===0)throw Error("Input Buffer is empty");s.buffer=t}else if(h.arrayBuffer(t)){if(t.byteLength===0)throw Error("Input bit Array is empty");s.buffer=b.from(t,0,t.byteLength)}else if(h.typedArray(t)){if(t.length===0)throw Error("Input Bit Array is empty");s.buffer=b.from(t.buffer,t.byteOffset,t.byteLength)}else if(h.plainObject(t)&&!h.defined(e))e=t,Wi(e)&&(s.buffer=[]);else if(!h.defined(t)&&!h.defined(e)&&h.object(r)&&r.allowStream)s.buffer=[];else if(Array.isArray(t))if(t.length>1)if(!this.options.joining)this.options.joining=!0,this.options.join=t.map(i=>this._createInputDescriptor(i));else throw new Error("Recursive join is unsupported");else throw new Error("Expected at least two images to join");else throw new Error(`Unsupported input '${t}' of type ${typeof t}${h.defined(e)?` when also providing options of type ${typeof e}`:""}`);if(h.object(e)){if(h.defined(e.failOnError))if(h.bool(e.failOnError))s.failOn=e.failOnError?"warning":"none";else throw h.invalidParameterError("failOnError","boolean",e.failOnError);if(h.defined(e.failOn))if(h.string(e.failOn)&&h.inArray(e.failOn,["none","truncated","error","warning"]))s.failOn=e.failOn;else throw h.invalidParameterError("failOn","one of: none, truncated, error, warning",e.failOn);if(h.defined(e.autoOrient))if(h.bool(e.autoOrient))s.autoOrient=e.autoOrient;else throw h.invalidParameterError("autoOrient","boolean",e.autoOrient);if(h.defined(e.density))if(h.inRange(e.density,1,1e5))s.density=e.density;else throw h.invalidParameterError("density","number between 1 and 100000",e.density);if(h.defined(e.ignoreIcc))if(h.bool(e.ignoreIcc))s.ignoreIcc=e.ignoreIcc;else throw h.invalidParameterError("ignoreIcc","boolean",e.ignoreIcc);if(h.defined(e.limitInputPixels))if(h.bool(e.limitInputPixels))s.limitInputPixels=e.limitInputPixels?16383**2:0;else if(h.integer(e.limitInputPixels)&&h.inRange(e.limitInputPixels,0,Number.MAX_SAFE_INTEGER))s.limitInputPixels=e.limitInputPixels;else throw h.invalidParameterError("limitInputPixels","positive integer",e.limitInputPixels);if(h.defined(e.unlimited))if(h.bool(e.unlimited))s.unlimited=e.unlimited;else throw h.invalidParameterError("unlimited","boolean",e.unlimited);if(h.defined(e.sequentialRead))if(h.bool(e.sequentialRead))s.sequentialRead=e.sequentialRead;else throw h.invalidParameterError("sequentialRead","boolean",e.sequentialRead);if(h.defined(e.raw)){if(h.object(e.raw)&&h.integer(e.raw.width)&&e.raw.width>0&&h.integer(e.raw.height)&&e.raw.height>0&&h.integer(e.raw.channels)&&h.inRange(e.raw.channels,1,4))switch(s.rawWidth=e.raw.width,s.rawHeight=e.raw.height,s.rawChannels=e.raw.channels,t.constructor){case Uint8Array:case Uint8ClampedArray:s.rawDepth="uchar";break;case Int8Array:s.rawDepth="char";break;case Uint16Array:s.rawDepth="ushort";break;case Int16Array:s.rawDepth="short";break;case Uint32Array:s.rawDepth="uint";break;case Int32Array:s.rawDepth="int";break;case Float32Array:s.rawDepth="float";break;case Float64Array:s.rawDepth="double";break;default:s.rawDepth="uchar";break}else throw new Error("Expected width, height and channels for raw pixel input");if(s.rawPremultiplied=!1,h.defined(e.raw.premultiplied))if(h.bool(e.raw.premultiplied))s.rawPremultiplied=e.raw.premultiplied;else throw h.invalidParameterError("raw.premultiplied","boolean",e.raw.premultiplied);if(s.rawPageHeight=0,h.defined(e.raw.pageHeight))if(h.integer(e.raw.pageHeight)&&e.raw.pageHeight>0&&e.raw.pageHeight<=e.raw.height){if(e.raw.height%e.raw.pageHeight!==0)throw new Error(`Expected raw.height ${e.raw.height} to be a multiple of raw.pageHeight ${e.raw.pageHeight}`);s.rawPageHeight=e.raw.pageHeight}else throw h.invalidParameterError("raw.pageHeight","positive integer",e.raw.pageHeight)}if(h.defined(e.animated))if(h.bool(e.animated))s.pages=e.animated?-1:1;else throw h.invalidParameterError("animated","boolean",e.animated);if(h.defined(e.pages))if(h.integer(e.pages)&&h.inRange(e.pages,-1,1e5))s.pages=e.pages;else throw h.invalidParameterError("pages","integer between -1 and 100000",e.pages);if(h.defined(e.page))if(h.integer(e.page)&&h.inRange(e.page,0,1e5))s.page=e.page;else throw h.invalidParameterError("page","integer between 0 and 100000",e.page);if(h.object(e.openSlide)&&h.defined(e.openSlide.level))if(h.integer(e.openSlide.level)&&h.inRange(e.openSlide.level,0,256))s.openSlideLevel=e.openSlide.level;else throw h.invalidParameterError("openSlide.level","integer between 0 and 256",e.openSlide.level);else if(h.defined(e.level))if(h.integer(e.level)&&h.inRange(e.level,0,256))s.openSlideLevel=e.level;else throw h.invalidParameterError("level","integer between 0 and 256",e.level);if(h.object(e.tiff)&&h.defined(e.tiff.subifd))if(h.integer(e.tiff.subifd)&&h.inRange(e.tiff.subifd,-1,1e5))s.tiffSubifd=e.tiff.subifd;else throw h.invalidParameterError("tiff.subifd","integer between -1 and 100000",e.tiff.subifd);else if(h.defined(e.subifd))if(h.integer(e.subifd)&&h.inRange(e.subifd,-1,1e5))s.tiffSubifd=e.subifd;else throw h.invalidParameterError("subifd","integer between -1 and 100000",e.subifd);if(h.object(e.svg)){if(h.defined(e.svg.stylesheet))if(h.string(e.svg.stylesheet))s.svgStylesheet=e.svg.stylesheet;else throw h.invalidParameterError("svg.stylesheet","string",e.svg.stylesheet);if(h.defined(e.svg.highBitdepth))if(h.bool(e.svg.highBitdepth))s.svgHighBitdepth=e.svg.highBitdepth;else throw h.invalidParameterError("svg.highBitdepth","boolean",e.svg.highBitdepth)}if(h.object(e.pdf)&&h.defined(e.pdf.background)?s.pdfBackground=this._getBackgroundColourOption(e.pdf.background):h.defined(e.pdfBackground)&&(s.pdfBackground=this._getBackgroundColourOption(e.pdfBackground)),h.object(e.jp2)&&h.defined(e.jp2.oneshot))if(h.bool(e.jp2.oneshot))s.jp2Oneshot=e.jp2.oneshot;else throw h.invalidParameterError("jp2.oneshot","boolean",e.jp2.oneshot);if(h.defined(e.create))if(h.object(e.create)&&h.integer(e.create.width)&&e.create.width>0&&h.integer(e.create.height)&&e.create.height>0&&h.integer(e.create.channels)){if(s.createWidth=e.create.width,s.createHeight=e.create.height,s.createChannels=e.create.channels,s.createPageHeight=0,h.defined(e.create.pageHeight))if(h.integer(e.create.pageHeight)&&e.create.pageHeight>0&&e.create.pageHeight<=e.create.height){if(e.create.height%e.create.pageHeight!==0)throw new Error(`Expected create.height ${e.create.height} to be a multiple of create.pageHeight ${e.create.pageHeight}`);s.createPageHeight=e.create.pageHeight}else throw h.invalidParameterError("create.pageHeight","positive integer",e.create.pageHeight);if(h.defined(e.create.noise)){if(!h.object(e.create.noise))throw new Error("Expected noise to be an object");if(e.create.noise.type!=="gaussian")throw new Error("Only gaussian noise is supported at the moment");if(s.createNoiseType=e.create.noise.type,!h.inRange(e.create.channels,1,4))throw h.invalidParameterError("create.channels","number between 1 and 4",e.create.channels);if(s.createNoiseMean=128,h.defined(e.create.noise.mean))if(h.number(e.create.noise.mean)&&h.inRange(e.create.noise.mean,0,1e4))s.createNoiseMean=e.create.noise.mean;else throw h.invalidParameterError("create.noise.mean","number between 0 and 10000",e.create.noise.mean);if(s.createNoiseSigma=30,h.defined(e.create.noise.sigma))if(h.number(e.create.noise.sigma)&&h.inRange(e.create.noise.sigma,0,1e4))s.createNoiseSigma=e.create.noise.sigma;else throw h.invalidParameterError("create.noise.sigma","number between 0 and 10000",e.create.noise.sigma)}else if(h.defined(e.create.background)){if(!h.inRange(e.create.channels,3,4))throw h.invalidParameterError("create.channels","number between 3 and 4",e.create.channels);s.createBackground=this._getBackgroundColourOption(e.create.background)}else throw new Error("Expected valid noise or background to create a new input image");delete s.buffer}else throw new Error("Expected valid width, height and channels to create a new input image");if(h.defined(e.text))if(h.object(e.text)&&h.string(e.text.text)){if(s.textValue=e.text.text,h.defined(e.text.height)&&h.defined(e.text.dpi))throw new Error("Expected only one of dpi or height");if(h.defined(e.text.font))if(h.string(e.text.font))s.textFont=e.text.font;else throw h.invalidParameterError("text.font","string",e.text.font);if(h.defined(e.text.fontfile))if(h.string(e.text.fontfile))s.textFontfile=e.text.fontfile;else throw h.invalidParameterError("text.fontfile","string",e.text.fontfile);if(h.defined(e.text.width))if(h.integer(e.text.width)&&e.text.width>0)s.textWidth=e.text.width;else throw h.invalidParameterError("text.width","positive integer",e.text.width);if(h.defined(e.text.height))if(h.integer(e.text.height)&&e.text.height>0)s.textHeight=e.text.height;else throw h.invalidParameterError("text.height","positive integer",e.text.height);if(h.defined(e.text.align))if(h.string(e.text.align)&&h.string(this.constructor.align[e.text.align]))s.textAlign=this.constructor.align[e.text.align];else throw h.invalidParameterError("text.align","valid alignment",e.text.align);if(h.defined(e.text.justify))if(h.bool(e.text.justify))s.textJustify=e.text.justify;else throw h.invalidParameterError("text.justify","boolean",e.text.justify);if(h.defined(e.text.dpi))if(h.integer(e.text.dpi)&&h.inRange(e.text.dpi,1,1e6))s.textDpi=e.text.dpi;else throw h.invalidParameterError("text.dpi","integer between 1 and 1000000",e.text.dpi);if(h.defined(e.text.rgba))if(h.bool(e.text.rgba))s.textRgba=e.text.rgba;else throw h.invalidParameterError("text.rgba","bool",e.text.rgba);if(h.defined(e.text.spacing))if(h.integer(e.text.spacing)&&h.inRange(e.text.spacing,-1e6,1e6))s.textSpacing=e.text.spacing;else throw h.invalidParameterError("text.spacing","integer between -1000000 and 1000000",e.text.spacing);if(h.defined(e.text.wrap))if(h.string(e.text.wrap)&&h.inArray(e.text.wrap,["word","char","word-char","none"]))s.textWrap=e.text.wrap;else throw h.invalidParameterError("text.wrap","one of: word, char, word-char, none",e.text.wrap);delete s.buffer}else throw new Error("Expected a valid string to create an image with text.");if(h.defined(e.join))if(h.defined(this.options.join)){if(h.defined(e.join.animated))if(h.bool(e.join.animated))s.joinAnimated=e.join.animated;else throw h.invalidParameterError("join.animated","boolean",e.join.animated);if(h.defined(e.join.across))if(h.integer(e.join.across)&&h.inRange(e.join.across,1,1e6))s.joinAcross=e.join.across;else throw h.invalidParameterError("join.across","integer between 1 and 100000",e.join.across);if(h.defined(e.join.shim))if(h.integer(e.join.shim)&&h.inRange(e.join.shim,0,1e6))s.joinShim=e.join.shim;else throw h.invalidParameterError("join.shim","integer between 0 and 100000",e.join.shim);if(h.defined(e.join.background)&&(s.joinBackground=this._getBackgroundColourOption(e.join.background)),h.defined(e.join.halign))if(h.string(e.join.halign)&&h.string(this.constructor.align[e.join.halign]))s.joinHalign=this.constructor.align[e.join.halign];else throw h.invalidParameterError("join.halign","valid alignment",e.join.halign);if(h.defined(e.join.valign))if(h.string(e.join.valign)&&h.string(this.constructor.align[e.join.valign]))s.joinValign=this.constructor.align[e.join.valign];else throw h.invalidParameterError("join.valign","valid alignment",e.join.valign)}else throw new Error("Expected input to be an array of images to join")}else if(h.defined(e))throw new Error(`Invalid input options ${e}`);return s}function oc(t,e,r){Array.isArray(this.options.input.buffer)?h.buffer(t)?(this.options.input.buffer.length===0&&this.on("finish",()=>{this.streamInFinished=!0}),this.options.input.buffer.push(t),r()):r(new Error("Non-Buffer data on Writable Stream")):r(new Error("Unexpected data on Writable Stream"))}function lc(){this._isStreamInput()&&(this.options.input.buffer=b.concat(this.options.input.buffer))}function cc(){return Array.isArray(this.options.input.buffer)}function hc(t){let e=Error();return h.fn(t)?(this._isStreamInput()?this.on("finish",()=>{this._flattenBufferIn(),Oe.metadata(this.options,(r,s)=>{r?t(h.nativeError(r,e)):t(null,s)})}):Oe.metadata(this.options,(r,s)=>{r?t(h.nativeError(r,e)):t(null,s)}),this):this._isStreamInput()?new Promise((r,s)=>{let i=()=>{this._flattenBufferIn(),Oe.metadata(this.options,(n,a)=>{n?s(h.nativeError(n,e)):r(a)})};this.writableFinished?i():this.once("finish",i)}):new Promise((r,s)=>{Oe.metadata(this.options,(i,n)=>{i?s(h.nativeError(i,e)):r(n)})})}function uc(t){let e=Error();return h.fn(t)?(this._isStreamInput()?this.on("finish",()=>{this._flattenBufferIn(),Oe.stats(this.options,(r,s)=>{r?t(h.nativeError(r,e)):t(null,s)})}):Oe.stats(this.options,(r,s)=>{r?t(h.nativeError(r,e)):t(null,s)}),this):this._isStreamInput()?new Promise((r,s)=>{this.on("finish",function(){this._flattenBufferIn(),Oe.stats(this.options,(i,n)=>{i?s(h.nativeError(i,e)):r(n)})})}):new Promise((r,s)=>{Oe.stats(this.options,(i,n)=>{i?s(h.nativeError(i,e)):r(n)})})}Vi.exports=t=>{Object.assign(t.prototype,{_inputOptionsFromObject:Wi,_createInputDescriptor:ac,_write:oc,_flattenBufferIn:lc,_isStreamInput:cc,metadata:hc,stats:uc}),t.align=ic}});var en=j((ud,Zi)=>{g();var F=be(),Ki={center:0,centre:0,north:1,east:2,south:3,west:4,northeast:5,southeast:6,southwest:7,northwest:8},Yi={top:1,right:2,bottom:3,left:4,"right top":5,"right bottom":6,"left bottom":7,"left top":8},Ji={background:"background",copy:"copy",repeat:"repeat",mirror:"mirror"},Qi={entropy:16,attention:17},Fr={nearest:"nearest",linear:"linear",cubic:"cubic",mitchell:"mitchell",lanczos2:"lanczos2",lanczos3:"lanczos3",mks2013:"mks2013",mks2021:"mks2021"},fc={contain:"contain",cover:"cover",fill:"fill",inside:"inside",outside:"outside"},dc={contain:"embed",cover:"crop",fill:"ignore_aspect",inside:"max",outside:"min"};function Cr(t){return t.angle%360!==0||t.rotationAngle!==0}function Xt(t){return t.width!==-1||t.height!==-1}function gc(t,e,r){if(Xt(this.options)&&this.options.debuglog("ignoring previous resize options"),this.options.widthPost!==-1&&this.options.debuglog("operation order will be: extract, resize, extract"),F.defined(t))if(F.object(t)&&!F.defined(r))r=t;else if(F.integer(t)&&t>0)this.options.width=t;else throw F.invalidParameterError("width","positive integer",t);else this.options.width=-1;if(F.defined(e))if(F.integer(e)&&e>0)this.options.height=e;else throw F.invalidParameterError("height","positive integer",e);else this.options.height=-1;if(F.object(r)){if(F.defined(r.width))if(F.integer(r.width)&&r.width>0)this.options.width=r.width;else throw F.invalidParameterError("width","positive integer",r.width);if(F.defined(r.height))if(F.integer(r.height)&&r.height>0)this.options.height=r.height;else throw F.invalidParameterError("height","positive integer",r.height);if(F.defined(r.fit)){let s=dc[r.fit];if(F.string(s))this.options.canvas=s;else throw F.invalidParameterError("fit","valid fit",r.fit)}if(F.defined(r.position)){let s=F.integer(r.position)?r.position:Qi[r.position]||Yi[r.position]||Ki[r.position];if(F.integer(s)&&(F.inRange(s,0,8)||F.inRange(s,16,17)))this.options.position=s;else throw F.invalidParameterError("position","valid position/gravity/strategy",r.position)}if(this._setBackgroundColourOption("resizeBackground",r.background),F.defined(r.kernel))if(F.string(Fr[r.kernel]))this.options.kernel=Fr[r.kernel];else throw F.invalidParameterError("kernel","valid kernel name",r.kernel);F.defined(r.withoutEnlargement)&&this._setBooleanOption("withoutEnlargement",r.withoutEnlargement),F.defined(r.withoutReduction)&&this._setBooleanOption("withoutReduction",r.withoutReduction),F.defined(r.fastShrinkOnLoad)&&this._setBooleanOption("fastShrinkOnLoad",r.fastShrinkOnLoad)}return Cr(this.options)&&Xt(this.options)&&(this.options.rotateBefore=!0),this}function pc(t){if(F.integer(t)&&t>0)this.options.extendTop=t,this.options.extendBottom=t,this.options.extendLeft=t,this.options.extendRight=t;else if(F.object(t)){if(F.defined(t.top))if(F.integer(t.top)&&t.top>=0)this.options.extendTop=t.top;else throw F.invalidParameterError("top","positive integer",t.top);if(F.defined(t.bottom))if(F.integer(t.bottom)&&t.bottom>=0)this.options.extendBottom=t.bottom;else throw F.invalidParameterError("bottom","positive integer",t.bottom);if(F.defined(t.left))if(F.integer(t.left)&&t.left>=0)this.options.extendLeft=t.left;else throw F.invalidParameterError("left","positive integer",t.left);if(F.defined(t.right))if(F.integer(t.right)&&t.right>=0)this.options.extendRight=t.right;else throw F.invalidParameterError("right","positive integer",t.right);if(this._setBackgroundColourOption("extendBackground",t.background),F.defined(t.extendWith))if(F.string(Ji[t.extendWith]))this.options.extendWith=Ji[t.extendWith];else throw F.invalidParameterError("extendWith","one of: background, copy, repeat, mirror",t.extendWith)}else throw F.invalidParameterError("extend","integer or object",t);return this}function mc(t){let e=Xt(this.options)||this.options.widthPre!==-1?"Post":"Pre";return this.options[`width${e}`]!==-1&&this.options.debuglog("ignoring previous extract options"),["left","top","width","height"].forEach(function(r){let s=t[r];if(F.integer(s)&&s>=0)this.options[r+(r==="left"||r==="top"?"Offset":"")+e]=s;else throw F.invalidParameterError(r,"integer",s)},this),Cr(this.options)&&!Xt(this.options)&&(this.options.widthPre===-1||this.options.widthPost===-1)&&(this.options.rotateBefore=!0),this.options.input.autoOrient&&(this.options.orientBefore=!0),this}function bc(t){if(this.options.trimThreshold=10,F.defined(t))if(F.object(t)){if(F.defined(t.background)&&this._setBackgroundColourOption("trimBackground",t.background),F.defined(t.threshold))if(F.number(t.threshold)&&t.threshold>=0)this.options.trimThreshold=t.threshold;else throw F.invalidParameterError("threshold","positive number",t.threshold);F.defined(t.lineArt)&&this._setBooleanOption("trimLineArt",t.lineArt)}else throw F.invalidParameterError("trim","object",t);return Cr(this.options)&&(this.options.rotateBefore=!0),this}Zi.exports=t=>{Object.assign(t.prototype,{resize:gc,extend:pc,extract:mc,trim:bc}),t.gravity=Ki,t.strategy=Qi,t.kernel=Fr,t.fit=fc,t.position=Yi}});var rn=j((dd,tn)=>{g();var q=be(),jr={clear:"clear",source:"source",over:"over",in:"in",out:"out",atop:"atop",dest:"dest","dest-over":"dest-over","dest-in":"dest-in","dest-out":"dest-out","dest-atop":"dest-atop",xor:"xor",add:"add",saturate:"saturate",multiply:"multiply",screen:"screen",overlay:"overlay",darken:"darken",lighten:"lighten","colour-dodge":"colour-dodge","color-dodge":"colour-dodge","colour-burn":"colour-burn","color-burn":"colour-burn","hard-light":"hard-light","soft-light":"soft-light",difference:"difference",exclusion:"exclusion"};function vc(t){if(!Array.isArray(t))throw q.invalidParameterError("images to composite","array",t);return this.options.composite=t.map(e=>{if(!q.object(e))throw q.invalidParameterError("image to composite","object",e);let r=this._inputOptionsFromObject(e),s={input:this._createInputDescriptor(e.input,r,{allowStream:!1}),blend:"over",tile:!1,left:0,top:0,hasOffset:!1,gravity:0,premultiplied:!1};if(q.defined(e.blend))if(q.string(jr[e.blend]))s.blend=jr[e.blend];else throw q.invalidParameterError("blend","valid blend name",e.blend);if(q.defined(e.tile))if(q.bool(e.tile))s.tile=e.tile;else throw q.invalidParameterError("tile","boolean",e.tile);if(q.defined(e.left))if(q.integer(e.left))s.left=e.left;else throw q.invalidParameterError("left","integer",e.left);if(q.defined(e.top))if(q.integer(e.top))s.top=e.top;else throw q.invalidParameterError("top","integer",e.top);if(q.defined(e.top)!==q.defined(e.left))throw new Error("Expected both left and top to be set");if(s.hasOffset=q.integer(e.top)&&q.integer(e.left),q.defined(e.gravity))if(q.integer(e.gravity)&&q.inRange(e.gravity,0,8))s.gravity=e.gravity;else if(q.string(e.gravity)&&q.integer(this.constructor.gravity[e.gravity]))s.gravity=this.constructor.gravity[e.gravity];else throw q.invalidParameterError("gravity","valid gravity",e.gravity);if(q.defined(e.premultiplied))if(q.bool(e.premultiplied))s.premultiplied=e.premultiplied;else throw q.invalidParameterError("premultiplied","boolean",e.premultiplied);return s}),this}tn.exports=t=>{t.prototype.composite=vc,t.blend=jr}});var ln=j((pd,on)=>{g();var d=be(),sn={integer:"integer",float:"float",approximate:"approximate"};function wc(t,e){if(!d.defined(t))return this.autoOrient();if((this.options.angle||this.options.rotationAngle)&&(this.options.debuglog("ignoring previous rotate options"),this.options.angle=0,this.options.rotationAngle=0),d.integer(t)&&!(t%90))this.options.angle=t;else if(d.number(t))this.options.rotationAngle=t,d.object(e)&&e.background&&this._setBackgroundColourOption("rotationBackground",e.background);else throw d.invalidParameterError("angle","numeric",t);return this}function yc(){return this.options.input.autoOrient=!0,this}function Ec(t){return this.options.flip=d.bool(t)?t:!0,this}function Pc(t){return this.options.flop=d.bool(t)?t:!0,this}function xc(t,e){let r=[].concat(...t);if(r.length===4&&r.every(d.number))this.options.affineMatrix=r;else throw d.invalidParameterError("matrix","1x4 or 2x2 array",t);if(d.defined(e))if(d.object(e)){if(this._setBackgroundColourOption("affineBackground",e.background),d.defined(e.idx))if(d.number(e.idx))this.options.affineIdx=e.idx;else throw d.invalidParameterError("options.idx","number",e.idx);if(d.defined(e.idy))if(d.number(e.idy))this.options.affineIdy=e.idy;else throw d.invalidParameterError("options.idy","number",e.idy);if(d.defined(e.odx))if(d.number(e.odx))this.options.affineOdx=e.odx;else throw d.invalidParameterError("options.odx","number",e.odx);if(d.defined(e.ody))if(d.number(e.ody))this.options.affineOdy=e.ody;else throw d.invalidParameterError("options.ody","number",e.ody);if(d.defined(e.interpolator))if(d.inArray(e.interpolator,Object.values(this.constructor.interpolators)))this.options.affineInterpolator=e.interpolator;else throw d.invalidParameterError("options.interpolator","valid interpolator name",e.interpolator)}else throw d.invalidParameterError("options","object",e);return this}function Rc(t,e,r){if(!d.defined(t))this.options.sharpenSigma=-1;else if(d.bool(t))this.options.sharpenSigma=t?-1:0;else if(d.number(t)&&d.inRange(t,.01,1e4)){if(this.options.sharpenSigma=t,d.defined(e))if(d.number(e)&&d.inRange(e,0,1e4))this.options.sharpenM1=e;else throw d.invalidParameterError("flat","number between 0 and 10000",e);if(d.defined(r))if(d.number(r)&&d.inRange(r,0,1e4))this.options.sharpenM2=r;else throw d.invalidParameterError("jagged","number between 0 and 10000",r)}else if(d.plainObject(t)){if(d.number(t.sigma)&&d.inRange(t.sigma,1e-6,10))this.options.sharpenSigma=t.sigma;else throw d.invalidParameterError("options.sigma","number between 0.000001 and 10",t.sigma);if(d.defined(t.m1))if(d.number(t.m1)&&d.inRange(t.m1,0,1e6))this.options.sharpenM1=t.m1;else throw d.invalidParameterError("options.m1","number between 0 and 1000000",t.m1);if(d.defined(t.m2))if(d.number(t.m2)&&d.inRange(t.m2,0,1e6))this.options.sharpenM2=t.m2;else throw d.invalidParameterError("options.m2","number between 0 and 1000000",t.m2);if(d.defined(t.x1))if(d.number(t.x1)&&d.inRange(t.x1,0,1e6))this.options.sharpenX1=t.x1;else throw d.invalidParameterError("options.x1","number between 0 and 1000000",t.x1);if(d.defined(t.y2))if(d.number(t.y2)&&d.inRange(t.y2,0,1e6))this.options.sharpenY2=t.y2;else throw d.invalidParameterError("options.y2","number between 0 and 1000000",t.y2);if(d.defined(t.y3))if(d.number(t.y3)&&d.inRange(t.y3,0,1e6))this.options.sharpenY3=t.y3;else throw d.invalidParameterError("options.y3","number between 0 and 1000000",t.y3)}else throw d.invalidParameterError("sigma","number between 0.01 and 10000",t);return this}function $c(t){if(!d.defined(t))this.options.medianSize=3;else if(d.integer(t)&&d.inRange(t,1,1e3))this.options.medianSize=t;else throw d.invalidParameterError("size","integer between 1 and 1000",t);return this}function kc(t){let e;if(d.number(t))e=t;else if(d.plainObject(t)){if(!d.number(t.sigma))throw d.invalidParameterError("options.sigma","number between 0.3 and 1000",e);if(e=t.sigma,"precision"in t)if(d.string(sn[t.precision]))this.options.precision=sn[t.precision];else throw d.invalidParameterError("precision","one of: integer, float, approximate",t.precision);if("minAmplitude"in t)if(d.number(t.minAmplitude)&&d.inRange(t.minAmplitude,.001,1))this.options.minAmpl=t.minAmplitude;else throw d.invalidParameterError("minAmplitude","number between 0.001 and 1",t.minAmplitude)}if(!d.defined(t))this.options.blurSigma=-1;else if(d.bool(t))this.options.blurSigma=t?-1:0;else if(d.number(e)&&d.inRange(e,.3,1e3))this.options.blurSigma=e;else throw d.invalidParameterError("sigma","number between 0.3 and 1000",e);return this}function nn(t){if(!d.defined(t))this.options.dilateWidth=1;else if(d.integer(t)&&t>0)this.options.dilateWidth=t;else throw d.invalidParameterError("dilate","positive integer",nn);return this}function an(t){if(!d.defined(t))this.options.erodeWidth=1;else if(d.integer(t)&&t>0)this.options.erodeWidth=t;else throw d.invalidParameterError("erode","positive integer",an);return this}function Sc(t){return this.options.flatten=d.bool(t)?t:!0,d.object(t)&&this._setBackgroundColourOption("flattenBackground",t.background),this}function Ac(){return this.options.unflatten=!0,this}function _c(t,e){if(!d.defined(t))this.options.gamma=2.2;else if(d.number(t)&&d.inRange(t,1,3))this.options.gamma=t;else throw d.invalidParameterError("gamma","number between 1.0 and 3.0",t);if(!d.defined(e))this.options.gammaOut=this.options.gamma;else if(d.number(e)&&d.inRange(e,1,3))this.options.gammaOut=e;else throw d.invalidParameterError("gammaOut","number between 1.0 and 3.0",e);return this}function Nc(t){if(this.options.negate=d.bool(t)?t:!0,d.plainObject(t)&&"alpha"in t)if(d.bool(t.alpha))this.options.negateAlpha=t.alpha;else throw d.invalidParameterError("alpha","should be boolean value",t.alpha);return this}function Ic(t){if(d.plainObject(t)){if(d.defined(t.lower))if(d.number(t.lower)&&d.inRange(t.lower,0,99))this.options.normaliseLower=t.lower;else throw d.invalidParameterError("lower","number between 0 and 99",t.lower);if(d.defined(t.upper))if(d.number(t.upper)&&d.inRange(t.upper,1,100))this.options.normaliseUpper=t.upper;else throw d.invalidParameterError("upper","number between 1 and 100",t.upper)}if(this.options.normaliseLower>=this.options.normaliseUpper)throw d.invalidParameterError("range","lower to be less than upper",`${this.options.normaliseLower} >= ${this.options.normaliseUpper}`);return this.options.normalise=!0,this}function Fc(t){return this.normalise(t)}function Cc(t){if(d.plainObject(t)){if(d.integer(t.width)&&t.width>0)this.options.claheWidth=t.width;else throw d.invalidParameterError("width","integer greater than zero",t.width);if(d.integer(t.height)&&t.height>0)this.options.claheHeight=t.height;else throw d.invalidParameterError("height","integer greater than zero",t.height);if(d.defined(t.maxSlope))if(d.integer(t.maxSlope)&&d.inRange(t.maxSlope,0,100))this.options.claheMaxSlope=t.maxSlope;else throw d.invalidParameterError("maxSlope","integer between 0 and 100",t.maxSlope)}else throw d.invalidParameterError("options","plain object",t);return this}function jc(t){if(!d.object(t)||!Array.isArray(t.kernel)||!d.integer(t.width)||!d.integer(t.height)||!d.inRange(t.width,3,1001)||!d.inRange(t.height,3,1001)||t.height*t.width!==t.kernel.length)throw new Error("Invalid convolution kernel");return d.integer(t.scale)||(t.scale=t.kernel.reduce((e,r)=>e+r,0)),t.scale<1&&(t.scale=1),d.integer(t.offset)||(t.offset=0),this.options.convKernel=t,this}function Dc(t,e){if(!d.defined(t))this.options.threshold=128;else if(d.bool(t))this.options.threshold=t?128:0;else if(d.integer(t)&&d.inRange(t,0,255))this.options.threshold=t;else throw d.invalidParameterError("threshold","integer between 0 and 255",t);return!d.object(e)||e.greyscale===!0||e.grayscale===!0?this.options.thresholdGrayscale=!0:this.options.thresholdGrayscale=!1,this}function Tc(t,e,r){if(this.options.boolean=this._createInputDescriptor(t,r),d.string(e)&&d.inArray(e,["and","or","eor"]))this.options.booleanOp=e;else throw d.invalidParameterError("operator","one of: and, or, eor",e);return this}function Lc(t,e){if(!d.defined(t)&&d.number(e)?t=1:d.number(t)&&!d.defined(e)&&(e=0),!d.defined(t))this.options.linearA=[];else if(d.number(t))this.options.linearA=[t];else if(Array.isArray(t)&&t.length&&t.every(d.number))this.options.linearA=t;else throw d.invalidParameterError("a","number or array of numbers",t);if(!d.defined(e))this.options.linearB=[];else if(d.number(e))this.options.linearB=[e];else if(Array.isArray(e)&&e.length&&e.every(d.number))this.options.linearB=e;else throw d.invalidParameterError("b","number or array of numbers",e);if(this.options.linearA.length!==this.options.linearB.length)throw new Error("Expected a and b to be arrays of the same length");return this}function Oc(t){if(!Array.isArray(t))throw d.invalidParameterError("inputMatrix","array",t);if(t.length!==3&&t.length!==4)throw d.invalidParameterError("inputMatrix","3x3 or 4x4 array",t.length);let e=t.flat().map(Number);if(e.length!==9&&e.length!==16)throw d.invalidParameterError("inputMatrix","cardinality of 9 or 16",e.length);return this.options.recombMatrix=e,this}function Mc(t){if(!d.plainObject(t))throw d.invalidParameterError("options","plain object",t);if("brightness"in t)if(d.number(t.brightness)&&t.brightness>=0)this.options.brightness=t.brightness;else throw d.invalidParameterError("brightness","number above zero",t.brightness);if("saturation"in t)if(d.number(t.saturation)&&t.saturation>=0)this.options.saturation=t.saturation;else throw d.invalidParameterError("saturation","number above zero",t.saturation);if("hue"in t)if(d.integer(t.hue))this.options.hue=t.hue%360;else throw d.invalidParameterError("hue","number",t.hue);if("lightness"in t)if(d.number(t.lightness))this.options.lightness=t.lightness;else throw d.invalidParameterError("lightness","number",t.lightness);return this}on.exports=t=>{Object.assign(t.prototype,{autoOrient:yc,rotate:wc,flip:Ec,flop:Pc,affine:xc,sharpen:Rc,erode:an,dilate:nn,median:$c,blur:kc,flatten:Sc,unflatten:Ac,gamma:_c,negate:Nc,normalise:Ic,normalize:Fc,clahe:Cc,convolve:jc,threshold:Dc,boolean:Tc,linear:Lc,recomb:Oc,modulate:Mc})}});var gn=j((bd,dn)=>{g();var Or=Object.defineProperty,zc=Object.getOwnPropertyDescriptor,Bc=Object.getOwnPropertyNames,Uc=Object.prototype.hasOwnProperty,qc=(t,e)=>{for(var r in e)Or(t,r,{get:e[r],enumerable:!0})},Gc=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Bc(e))!Uc.call(t,i)&&i!==r&&Or(t,i,{get:()=>e[i],enumerable:!(s=zc(e,i))||s.enumerable});return t},Hc=t=>Gc(Or({},"__esModule",{value:!0}),t),cn={};qc(cn,{default:()=>nh});dn.exports=Hc(cn);var Pe={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},hn=Object.create(null);for(let t in Pe)Object.hasOwn(Pe,t)&&(hn[Pe[t]]=t);var ie={to:{},get:{}};ie.get=function(t){let e=t.slice(0,3).toLowerCase(),r,s;switch(e){case"hsl":{r=ie.get.hsl(t),s="hsl";break}case"hwb":{r=ie.get.hwb(t),s="hwb";break}default:{r=ie.get.rgb(t),s="rgb";break}}return r?{model:s,value:r}:null};ie.get.rgb=function(t){if(!t)return null;let e=/^#([a-f\d]{3,4})$/i,r=/^#([a-f\d]{6})([a-f\d]{2})?$/i,s=/^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[\s,|/]\s*([+-]?[\d.]+)(%?)\s*)?\)$/,i=/^rgba?\(\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*(?:[\s,|/]\s*([+-]?[\d.]+)(%?)\s*)?\)$/,n=/^(\w+)$/,a=[0,0,0,1],o,c,u;if(o=t.match(r)){for(u=o[2],o=o[1],c=0;c<3;c++){let f=c*2;a[c]=Number.parseInt(o.slice(f,f+2),16)}u&&(a[3]=Number.parseInt(u,16)/255)}else if(o=t.match(e)){for(o=o[1],u=o[3],c=0;c<3;c++)a[c]=Number.parseInt(o[c]+o[c],16);u&&(a[3]=Number.parseInt(u+u,16)/255)}else if(o=t.match(s)){for(c=0;c<3;c++)a[c]=Number.parseInt(o[c+1],10);o[4]&&(a[3]=o[5]?Number.parseFloat(o[4])*.01:Number.parseFloat(o[4]))}else if(o=t.match(i)){for(c=0;c<3;c++)a[c]=Math.round(Number.parseFloat(o[c+1])*2.55);o[4]&&(a[3]=o[5]?Number.parseFloat(o[4])*.01:Number.parseFloat(o[4]))}else return(o=t.match(n))?o[1]==="transparent"?[0,0,0,0]:Object.hasOwn(Pe,o[1])?(a=Pe[o[1]],a[3]=1,a):null:null;for(c=0;c<3;c++)a[c]=Me(a[c],0,255);return a[3]=Me(a[3],0,1),a};ie.get.hsl=function(t){if(!t)return null;let e=/^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*(?:[,|/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,r=t.match(e);if(r){let s=Number.parseFloat(r[4]),i=(Number.parseFloat(r[1])%360+360)%360,n=Me(Number.parseFloat(r[2]),0,100),a=Me(Number.parseFloat(r[3]),0,100),o=Me(Number.isNaN(s)?1:s,0,1);return[i,n,a,o]}return null};ie.get.hwb=function(t){if(!t)return null;let e=/^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*[\s,]\s*([+-]?[\d.]+)%\s*[\s,]\s*([+-]?[\d.]+)%\s*(?:[\s,]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,r=t.match(e);if(r){let s=Number.parseFloat(r[4]),i=(Number.parseFloat(r[1])%360+360)%360,n=Me(Number.parseFloat(r[2]),0,100),a=Me(Number.parseFloat(r[3]),0,100),o=Me(Number.isNaN(s)?1:s,0,1);return[i,n,a,o]}return null};ie.to.hex=function(...t){return"#"+Jt(t[0])+Jt(t[1])+Jt(t[2])+(t[3]<1?Jt(Math.round(t[3]*255)):"")};ie.to.rgb=function(...t){return t.length<4||t[3]===1?"rgb("+Math.round(t[0])+", "+Math.round(t[1])+", "+Math.round(t[2])+")":"rgba("+Math.round(t[0])+", "+Math.round(t[1])+", "+Math.round(t[2])+", "+t[3]+")"};ie.to.rgb.percent=function(...t){let e=Math.round(t[0]/255*100),r=Math.round(t[1]/255*100),s=Math.round(t[2]/255*100);return t.length<4||t[3]===1?"rgb("+e+"%, "+r+"%, "+s+"%)":"rgba("+e+"%, "+r+"%, "+s+"%, "+t[3]+")"};ie.to.hsl=function(...t){return t.length<4||t[3]===1?"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)":"hsla("+t[0]+", "+t[1]+"%, "+t[2]+"%, "+t[3]+")"};ie.to.hwb=function(...t){let e="";return t.length>=4&&t[3]!==1&&(e=", "+t[3]),"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+e+")"};ie.to.keyword=function(...t){return hn[t.slice(0,3)]};function Me(t,e,r){return Math.min(Math.max(e,t),r)}function Jt(t){let e=Math.round(t).toString(16).toUpperCase();return e.length<2?"0"+e:e}var at=ie,un={};for(let t of Object.keys(Pe))un[Pe[t]]=t;var A={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},oklab:{channels:3,labels:["okl","oka","okb"]},lch:{channels:3,labels:"lch"},oklch:{channels:3,labels:["okl","okc","okh"]},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}},Ze=A,Fe=(6/29)**3;function lt(t){let e=t>.0031308?1.055*t**.4166666666666667-.055:t*12.92;return Math.min(Math.max(0,e),1)}function ct(t){return t>.04045?((t+.055)/1.055)**2.4:t/12.92}for(let t of Object.keys(A)){if(!("channels"in A[t]))throw new Error("missing channels property: "+t);if(!("labels"in A[t]))throw new Error("missing channel labels property: "+t);if(A[t].labels.length!==A[t].channels)throw new Error("channel and label counts mismatch: "+t);let{channels:e,labels:r}=A[t];delete A[t].channels,delete A[t].labels,Object.defineProperty(A[t],"channels",{value:e}),Object.defineProperty(A[t],"labels",{value:r})}A.rgb.hsl=function(t){let e=t[0]/255,r=t[1]/255,s=t[2]/255,i=Math.min(e,r,s),n=Math.max(e,r,s),a=n-i,o,c;switch(n){case i:{o=0;break}case e:{o=(r-s)/a;break}case r:{o=2+(s-e)/a;break}case s:{o=4+(e-r)/a;break}}o=Math.min(o*60,360),o<0&&(o+=360);let u=(i+n)/2;return n===i?c=0:u<=.5?c=a/(n+i):c=a/(2-n-i),[o,c*100,u*100]};A.rgb.hsv=function(t){let e,r,s,i,n,a=t[0]/255,o=t[1]/255,c=t[2]/255,u=Math.max(a,o,c),f=u-Math.min(a,o,c),m=function(v){return(u-v)/6/f+1/2};if(f===0)i=0,n=0;else{switch(n=f/u,e=m(a),r=m(o),s=m(c),u){case a:{i=s-r;break}case o:{i=1/3+e-s;break}case c:{i=2/3+r-e;break}}i<0?i+=1:i>1&&(i-=1)}return[i*360,n*100,u*100]};A.rgb.hwb=function(t){let e=t[0],r=t[1],s=t[2],i=A.rgb.hsl(t)[0],n=1/255*Math.min(e,Math.min(r,s));return s=1-1/255*Math.max(e,Math.max(r,s)),[i,n*100,s*100]};A.rgb.oklab=function(t){let e=ct(t[0]/255),r=ct(t[1]/255),s=ct(t[2]/255),i=Math.cbrt(.4122214708*e+.5363325363*r+.0514459929*s),n=Math.cbrt(.2119034982*e+.6806995451*r+.1073969566*s),a=Math.cbrt(.0883024619*e+.2817188376*r+.6299787005*s),o=.2104542553*i+.793617785*n-.0040720468*a,c=1.9779984951*i-2.428592205*n+.4505937099*a,u=.0259040371*i+.7827717662*n-.808675766*a;return[o*100,c*100,u*100]};A.rgb.cmyk=function(t){let e=t[0]/255,r=t[1]/255,s=t[2]/255,i=Math.min(1-e,1-r,1-s),n=(1-e-i)/(1-i)||0,a=(1-r-i)/(1-i)||0,o=(1-s-i)/(1-i)||0;return[n*100,a*100,o*100,i*100]};function Wc(t,e){return(t[0]-e[0])**2+(t[1]-e[1])**2+(t[2]-e[2])**2}A.rgb.keyword=function(t){let e=un[t];if(e)return e;let r=Number.POSITIVE_INFINITY,s;for(let i of Object.keys(Pe)){let n=Pe[i],a=Wc(t,n);a<r&&(r=a,s=i)}return s};A.keyword.rgb=function(t){return Pe[t]};A.rgb.xyz=function(t){let e=ct(t[0]/255),r=ct(t[1]/255),s=ct(t[2]/255),i=e*.4124564+r*.3575761+s*.1804375,n=e*.2126729+r*.7151522+s*.072175,a=e*.0193339+r*.119192+s*.9503041;return[i*100,n*100,a*100]};A.rgb.lab=function(t){let e=A.rgb.xyz(t),r=e[0],s=e[1],i=e[2];r/=95.047,s/=100,i/=108.883,r=r>Fe?r**(1/3):7.787*r+16/116,s=s>Fe?s**(1/3):7.787*s+16/116,i=i>Fe?i**(1/3):7.787*i+16/116;let n=116*s-16,a=500*(r-s),o=200*(s-i);return[n,a,o]};A.hsl.rgb=function(t){let e=t[0]/360,r=t[1]/100,s=t[2]/100,i,n;if(r===0)return n=s*255,[n,n,n];let a=s<.5?s*(1+r):s+r-s*r,o=2*s-a,c=[0,0,0];for(let u=0;u<3;u++)i=e+1/3*-(u-1),i<0&&i++,i>1&&i--,6*i<1?n=o+(a-o)*6*i:2*i<1?n=a:3*i<2?n=o+(a-o)*(2/3-i)*6:n=o,c[u]=n*255;return c};A.hsl.hsv=function(t){let e=t[0],r=t[1]/100,s=t[2]/100,i=r,n=Math.max(s,.01);s*=2,r*=s<=1?s:2-s,i*=n<=1?n:2-n;let a=(s+r)/2,o=s===0?2*i/(n+i):2*r/(s+r);return[e,o*100,a*100]};A.hsv.rgb=function(t){let e=t[0]/60,r=t[1]/100,s=t[2]/100,i=Math.floor(e)%6,n=e-Math.floor(e),a=255*s*(1-r),o=255*s*(1-r*n),c=255*s*(1-r*(1-n));switch(s*=255,i){case 0:return[s,c,a];case 1:return[o,s,a];case 2:return[a,s,c];case 3:return[a,o,s];case 4:return[c,a,s];case 5:return[s,a,o]}};A.hsv.hsl=function(t){let e=t[0],r=t[1]/100,s=t[2]/100,i=Math.max(s,.01),n,a;a=(2-r)*s;let o=(2-r)*i;return n=r*i,n/=o<=1?o:2-o,n=n||0,a/=2,[e,n*100,a*100]};A.hwb.rgb=function(t){let e=t[0]/360,r=t[1]/100,s=t[2]/100,i=r+s,n;i>1&&(r/=i,s/=i);let a=Math.floor(6*e),o=1-s;n=6*e-a,(a&1)!==0&&(n=1-n);let c=r+n*(o-r),u,f,m;switch(a){default:case 6:case 0:{u=o,f=c,m=r;break}case 1:{u=c,f=o,m=r;break}case 2:{u=r,f=o,m=c;break}case 3:{u=r,f=c,m=o;break}case 4:{u=c,f=r,m=o;break}case 5:{u=o,f=r,m=c;break}}return[u*255,f*255,m*255]};A.cmyk.rgb=function(t){let e=t[0]/100,r=t[1]/100,s=t[2]/100,i=t[3]/100,n=1-Math.min(1,e*(1-i)+i),a=1-Math.min(1,r*(1-i)+i),o=1-Math.min(1,s*(1-i)+i);return[n*255,a*255,o*255]};A.xyz.rgb=function(t){let e=t[0]/100,r=t[1]/100,s=t[2]/100,i,n,a;return i=e*3.2404542+r*-1.5371385+s*-.4985314,n=e*-.969266+r*1.8760108+s*.041556,a=e*.0556434+r*-.2040259+s*1.0572252,i=lt(i),n=lt(n),a=lt(a),[i*255,n*255,a*255]};A.xyz.lab=function(t){let e=t[0],r=t[1],s=t[2];e/=95.047,r/=100,s/=108.883,e=e>Fe?e**(1/3):7.787*e+16/116,r=r>Fe?r**(1/3):7.787*r+16/116,s=s>Fe?s**(1/3):7.787*s+16/116;let i=116*r-16,n=500*(e-r),a=200*(r-s);return[i,n,a]};A.xyz.oklab=function(t){let e=t[0]/100,r=t[1]/100,s=t[2]/100,i=Math.cbrt(.8189330101*e+.3618667424*r-.1288597137*s),n=Math.cbrt(.0329845436*e+.9293118715*r+.0361456387*s),a=Math.cbrt(.0482003018*e+.2643662691*r+.633851707*s),o=.2104542553*i+.793617785*n-.0040720468*a,c=1.9779984951*i-2.428592205*n+.4505937099*a,u=.0259040371*i+.7827717662*n-.808675766*a;return[o*100,c*100,u*100]};A.oklab.oklch=function(t){return A.lab.lch(t)};A.oklab.xyz=function(t){let e=t[0]/100,r=t[1]/100,s=t[2]/100,i=(.999999998*e+.396337792*r+.215803758*s)**3,n=(1.000000008*e-.105561342*r-.063854175*s)**3,a=(1.000000055*e-.089484182*r-1.291485538*s)**3,o=1.227013851*i-.55779998*n+.281256149*a,c=-.040580178*i+1.11225687*n-.071676679*a,u=-.076381285*i-.421481978*n+1.58616322*a;return[o*100,c*100,u*100]};A.oklab.rgb=function(t){let e=t[0]/100,r=t[1]/100,s=t[2]/100,i=(e+.3963377774*r+.2158037573*s)**3,n=(e-.1055613458*r-.0638541728*s)**3,a=(e-.0894841775*r-1.291485548*s)**3,o=lt(4.0767416621*i-3.3077115913*n+.2309699292*a),c=lt(-1.2684380046*i+2.6097574011*n-.3413193965*a),u=lt(-.0041960863*i-.7034186147*n+1.707614701*a);return[o*255,c*255,u*255]};A.oklch.oklab=function(t){return A.lch.lab(t)};A.lab.xyz=function(t){let e=t[0],r=t[1],s=t[2],i,n,a;n=(e+16)/116,i=r/500+n,a=n-s/200;let o=n**3,c=i**3,u=a**3;return n=o>Fe?o:(n-16/116)/7.787,i=c>Fe?c:(i-16/116)/7.787,a=u>Fe?u:(a-16/116)/7.787,i*=95.047,n*=100,a*=108.883,[i,n,a]};A.lab.lch=function(t){let e=t[0],r=t[1],s=t[2],i;i=Math.atan2(s,r)*360/2/Math.PI,i<0&&(i+=360);let a=Math.sqrt(r*r+s*s);return[e,a,i]};A.lch.lab=function(t){let e=t[0],r=t[1],i=t[2]/360*2*Math.PI,n=r*Math.cos(i),a=r*Math.sin(i);return[e,n,a]};A.rgb.ansi16=function(t,e=null){let[r,s,i]=t,n=e===null?A.rgb.hsv(t)[2]:e;if(n=Math.round(n/50),n===0)return 30;let a=30+(Math.round(i/255)<<2|Math.round(s/255)<<1|Math.round(r/255));return n===2&&(a+=60),a};A.hsv.ansi16=function(t){return A.rgb.ansi16(A.hsv.rgb(t),t[2])};A.rgb.ansi256=function(t){let e=t[0],r=t[1],s=t[2];return e>>4===r>>4&&r>>4===s>>4?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(r/255*5)+Math.round(s/255*5)};A.ansi16.rgb=function(t){t=t[0];let e=t%10;if(e===0||e===7)return t>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let r=(Math.trunc(t>50)+1)*.5,s=(e&1)*r*255,i=(e>>1&1)*r*255,n=(e>>2&1)*r*255;return[s,i,n]};A.ansi256.rgb=function(t){if(t=t[0],t>=232){let n=(t-232)*10+8;return[n,n,n]}t-=16;let e,r=Math.floor(t/36)/5*255,s=Math.floor((e=t%36)/6)/5*255,i=e%6/5*255;return[r,s,i]};A.rgb.hex=function(t){let r=(((Math.round(t[0])&255)<<16)+((Math.round(t[1])&255)<<8)+(Math.round(t[2])&255)).toString(16).toUpperCase();return"000000".slice(r.length)+r};A.hex.rgb=function(t){let e=t.toString(16).match(/[a-f\d]{6}|[a-f\d]{3}/i);if(!e)return[0,0,0];let r=e[0];e[0].length===3&&(r=[...r].map(o=>o+o).join(""));let s=Number.parseInt(r,16),i=s>>16&255,n=s>>8&255,a=s&255;return[i,n,a]};A.rgb.hcg=function(t){let e=t[0]/255,r=t[1]/255,s=t[2]/255,i=Math.max(Math.max(e,r),s),n=Math.min(Math.min(e,r),s),a=i-n,o,c=a<1?n/(1-a):0;return a<=0?o=0:i===e?o=(r-s)/a%6:i===r?o=2+(s-e)/a:o=4+(e-r)/a,o/=6,o%=1,[o*360,a*100,c*100]};A.hsl.hcg=function(t){let e=t[1]/100,r=t[2]/100,s=r<.5?2*e*r:2*e*(1-r),i=0;return s<1&&(i=(r-.5*s)/(1-s)),[t[0],s*100,i*100]};A.hsv.hcg=function(t){let e=t[1]/100,r=t[2]/100,s=e*r,i=0;return s<1&&(i=(r-s)/(1-s)),[t[0],s*100,i*100]};A.hcg.rgb=function(t){let e=t[0]/360,r=t[1]/100,s=t[2]/100;if(r===0)return[s*255,s*255,s*255];let i=[0,0,0],n=e%1*6,a=n%1,o=1-a,c=0;switch(Math.floor(n)){case 0:{i[0]=1,i[1]=a,i[2]=0;break}case 1:{i[0]=o,i[1]=1,i[2]=0;break}case 2:{i[0]=0,i[1]=1,i[2]=a;break}case 3:{i[0]=0,i[1]=o,i[2]=1;break}case 4:{i[0]=a,i[1]=0,i[2]=1;break}default:i[0]=1,i[1]=0,i[2]=o}return c=(1-r)*s,[(r*i[0]+c)*255,(r*i[1]+c)*255,(r*i[2]+c)*255]};A.hcg.hsv=function(t){let e=t[1]/100,r=t[2]/100,s=e+r*(1-e),i=0;return s>0&&(i=e/s),[t[0],i*100,s*100]};A.hcg.hsl=function(t){let e=t[1]/100,s=t[2]/100*(1-e)+.5*e,i=0;return s>0&&s<.5?i=e/(2*s):s>=.5&&s<1&&(i=e/(2*(1-s))),[t[0],i*100,s*100]};A.hcg.hwb=function(t){let e=t[1]/100,r=t[2]/100,s=e+r*(1-e);return[t[0],(s-e)*100,(1-s)*100]};A.hwb.hcg=function(t){let e=t[1]/100,s=1-t[2]/100,i=s-e,n=0;return i<1&&(n=(s-i)/(1-i)),[t[0],i*100,n*100]};A.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]};A.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]};A.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]};A.gray.hsl=function(t){return[0,0,t[0]]};A.gray.hsv=A.gray.hsl;A.gray.hwb=function(t){return[0,100,t[0]]};A.gray.cmyk=function(t){return[0,0,0,t[0]]};A.gray.lab=function(t){return[t[0],0,0]};A.gray.hex=function(t){let e=Math.round(t[0]/100*255)&255,s=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".slice(s.length)+s};A.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]};function Vc(){let t={},e=Object.keys(Ze);for(let{length:r}=e,s=0;s<r;s++)t[e[s]]={distance:-1,parent:null};return t}function Xc(t){let e=Vc(),r=[t];for(e[t].distance=0;r.length>0;){let s=r.pop(),i=Object.keys(Ze[s]);for(let{length:n}=i,a=0;a<n;a++){let o=i[a],c=e[o];c.distance===-1&&(c.distance=e[s].distance+1,c.parent=s,r.unshift(o))}}return e}function Jc(t,e){return function(r){return e(t(r))}}function Kc(t,e){let r=[e[t].parent,t],s=Ze[e[t].parent][t],i=e[t].parent;for(;e[i].parent;)r.unshift(e[i].parent),s=Jc(Ze[e[i].parent][i],s),i=e[i].parent;return s.conversion=r,s}function Yc(t){let e=Xc(t),r={},s=Object.keys(e);for(let{length:i}=s,n=0;n<i;n++){let a=s[n];e[a].parent!==null&&(r[a]=Kc(a,e))}return r}var Qc=Yc,ot={},Zc=Object.keys(Ze);function eh(t){let e=function(...r){let s=r[0];return s==null?s:(s.length>1&&(r=s),t(r))};return"conversion"in t&&(e.conversion=t.conversion),e}function th(t){let e=function(...r){let s=r[0];if(s==null)return s;s.length>1&&(r=s);let i=t(r);if(typeof i=="object")for(let{length:n}=i,a=0;a<n;a++)i[a]=Math.round(i[a]);return i};return"conversion"in t&&(e.conversion=t.conversion),e}for(let t of Zc){ot[t]={},Object.defineProperty(ot[t],"channels",{value:Ze[t].channels}),Object.defineProperty(ot[t],"labels",{value:Ze[t].labels});let e=Qc(t),r=Object.keys(e);for(let s of r){let i=e[s];ot[t][s]=th(i),ot[t][s].raw=eh(i)}}var ae=ot,fn=["keyword","gray","hex"],Dr={};for(let t of Object.keys(ae))Dr[[...ae[t].labels].sort().join("")]=t;var Tr={};function K(t,e){if(!(this instanceof K))return new K(t,e);if(e&&e in fn&&(e=null),e&&!(e in ae))throw new Error("Unknown model: "+e);let r,s;if(t==null)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if(t instanceof K)this.model=t.model,this.color=[...t.color],this.valpha=t.valpha;else if(typeof t=="string"){let i=at.get(t);if(i===null)throw new Error("Unable to parse color from string: "+t);this.model=i.model,s=ae[this.model].channels,this.color=i.value.slice(0,s),this.valpha=typeof i.value[s]=="number"?i.value[s]:1}else if(t.length>0){this.model=e||"rgb",s=ae[this.model].channels;let i=Array.prototype.slice.call(t,0,s);this.color=Lr(i,s),this.valpha=typeof t[s]=="number"?t[s]:1}else if(typeof t=="number")this.model="rgb",this.color=[t>>16&255,t>>8&255,t&255],this.valpha=1;else{this.valpha=1;let i=Object.keys(t);"alpha"in t&&(i.splice(i.indexOf("alpha"),1),this.valpha=typeof t.alpha=="number"?t.alpha:0);let n=i.sort().join("");if(!(n in Dr))throw new Error("Unable to parse color from object: "+JSON.stringify(t));this.model=Dr[n];let{labels:a}=ae[this.model],o=[];for(r=0;r<a.length;r++)o.push(t[a[r]]);this.color=Lr(o)}if(Tr[this.model])for(s=ae[this.model].channels,r=0;r<s;r++){let i=Tr[this.model][r];i&&(this.color[r]=i(this.color[r]))}this.valpha=Math.max(0,Math.min(1,this.valpha)),Object.freeze&&Object.freeze(this)}K.prototype={toString(){return this.string()},toJSON(){return this[this.model]()},string(t){let e=this.model in at.to?this:this.rgb();e=e.round(typeof t=="number"?t:1);let r=e.valpha===1?e.color:[...e.color,this.valpha];return at.to[e.model](...r)},percentString(t){let e=this.rgb().round(typeof t=="number"?t:1),r=e.valpha===1?e.color:[...e.color,this.valpha];return at.to.rgb.percent(...r)},array(){return this.valpha===1?[...this.color]:[...this.color,this.valpha]},object(){let t={},{channels:e}=ae[this.model],{labels:r}=ae[this.model];for(let s=0;s<e;s++)t[r[s]]=this.color[s];return this.valpha!==1&&(t.alpha=this.valpha),t},unitArray(){let t=this.rgb().color;return t[0]/=255,t[1]/=255,t[2]/=255,this.valpha!==1&&t.push(this.valpha),t},unitObject(){let t=this.rgb().object();return t.r/=255,t.g/=255,t.b/=255,this.valpha!==1&&(t.alpha=this.valpha),t},round(t){return t=Math.max(t||0,0),new K([...this.color.map(sh(t)),this.valpha],this.model)},alpha(t){return t!==void 0?new K([...this.color,Math.max(0,Math.min(1,t))],this.model):this.valpha},red:W("rgb",0,X(255)),green:W("rgb",1,X(255)),blue:W("rgb",2,X(255)),hue:W(["hsl","hsv","hsl","hwb","hcg"],0,t=>(t%360+360)%360),saturationl:W("hsl",1,X(100)),lightness:W("hsl",2,X(100)),saturationv:W("hsv",1,X(100)),value:W("hsv",2,X(100)),chroma:W("hcg",1,X(100)),gray:W("hcg",2,X(100)),white:W("hwb",1,X(100)),wblack:W("hwb",2,X(100)),cyan:W("cmyk",0,X(100)),magenta:W("cmyk",1,X(100)),yellow:W("cmyk",2,X(100)),black:W("cmyk",3,X(100)),x:W("xyz",0,X(95.047)),y:W("xyz",1,X(100)),z:W("xyz",2,X(108.833)),l:W("lab",0,X(100)),a:W("lab",1),b:W("lab",2),keyword(t){return t!==void 0?new K(t):ae[this.model].keyword(this.color)},hex(t){return t!==void 0?new K(t):at.to.hex(...this.rgb().round().color)},hexa(t){if(t!==void 0)return new K(t);let e=this.rgb().round().color,r=Math.round(this.valpha*255).toString(16).toUpperCase();return r.length===1&&(r="0"+r),at.to.hex(...e)+r},rgbNumber(){let t=this.rgb().color;return(t[0]&255)<<16|(t[1]&255)<<8|t[2]&255},luminosity(){let t=this.rgb().color,e=[];for(let[r,s]of t.entries()){let i=s/255;e[r]=i<=.04045?i/12.92:((i+.055)/1.055)**2.4}return .2126*e[0]+.7152*e[1]+.0722*e[2]},contrast(t){let e=this.luminosity(),r=t.luminosity();return e>r?(e+.05)/(r+.05):(r+.05)/(e+.05)},level(t){let e=this.contrast(t);return e>=7?"AAA":e>=4.5?"AA":""},isDark(){let t=this.rgb().color;return(t[0]*2126+t[1]*7152+t[2]*722)/1e4<128},isLight(){return!this.isDark()},negate(){let t=this.rgb();for(let e=0;e<3;e++)t.color[e]=255-t.color[e];return t},lighten(t){let e=this.hsl();return e.color[2]+=e.color[2]*t,e},darken(t){let e=this.hsl();return e.color[2]-=e.color[2]*t,e},saturate(t){let e=this.hsl();return e.color[1]+=e.color[1]*t,e},desaturate(t){let e=this.hsl();return e.color[1]-=e.color[1]*t,e},whiten(t){let e=this.hwb();return e.color[1]+=e.color[1]*t,e},blacken(t){let e=this.hwb();return e.color[2]+=e.color[2]*t,e},grayscale(){let t=this.rgb().color,e=t[0]*.3+t[1]*.59+t[2]*.11;return K.rgb(e,e,e)},fade(t){return this.alpha(this.valpha-this.valpha*t)},opaquer(t){return this.alpha(this.valpha+this.valpha*t)},rotate(t){let e=this.hsl(),r=e.color[0];return r=(r+t)%360,r=r<0?360+r:r,e.color[0]=r,e},mix(t,e){if(!t||!t.rgb)throw new Error('Argument to "mix" was not a Color instance, but rather an instance of '+typeof t);let r=t.rgb(),s=this.rgb(),i=e===void 0?.5:e,n=2*i-1,a=r.alpha()-s.alpha(),o=((n*a===-1?n:(n+a)/(1+n*a))+1)/2,c=1-o;return K.rgb(o*r.red()+c*s.red(),o*r.green()+c*s.green(),o*r.blue()+c*s.blue(),r.alpha()*i+s.alpha()*(1-i))}};for(let t of Object.keys(ae)){if(fn.includes(t))continue;let{channels:e}=ae[t];K.prototype[t]=function(...r){return this.model===t?new K(this):r.length>0?new K(r,t):new K([...ih(ae[this.model][t].raw(this.color)),this.valpha],t)},K[t]=function(...r){let s=r[0];return typeof s=="number"&&(s=Lr(r,e)),new K(s,t)}}function rh(t,e){return Number(t.toFixed(e))}function sh(t){return function(e){return rh(e,t)}}function W(t,e,r){t=Array.isArray(t)?t:[t];for(let s of t)(Tr[s]||=[])[e]=r;return t=t[0],function(s){let i;return s!==void 0?(r&&(s=r(s)),i=this[t](),i.color[e]=s,i):(i=this[t]().color[e],r&&(i=r(i)),i)}}function X(t){return function(e){return Math.max(0,Math.min(t,e))}}function ih(t){return Array.isArray(t)?t:[t]}function Lr(t,e){for(let r=0;r<e;r++)typeof t[r]!="number"&&(t[r]=0);return t}var nh=K});var mn=j((wd,pn)=>{g();pn.exports=gn().default});var yn=j((Ed,wn)=>{g();var ah=mn(),Ce=be(),bn={multiband:"multiband","b-w":"b-w",bw:"b-w",cmyk:"cmyk",srgb:"srgb"};function oh(t){return this._setBackgroundColourOption("tint",t),this}function lh(t){return this.options.greyscale=Ce.bool(t)?t:!0,this}function ch(t){return this.greyscale(t)}function hh(t){if(!Ce.string(t))throw Ce.invalidParameterError("colourspace","string",t);return this.options.colourspacePipeline=t,this}function uh(t){return this.pipelineColourspace(t)}function fh(t){if(!Ce.string(t))throw Ce.invalidParameterError("colourspace","string",t);return this.options.colourspace=t,this}function dh(t){return this.toColourspace(t)}function vn(t){if(Ce.object(t)||Ce.string(t)&&t.length>=3&&t.length<=200){let e=ah(t);return[e.red(),e.green(),e.blue(),Math.round(e.alpha()*255)]}else throw Ce.invalidParameterError("background","object or string",t)}function gh(t,e){Ce.defined(e)&&(this.options[t]=vn(e))}wn.exports=t=>{Object.assign(t.prototype,{tint:oh,greyscale:lh,grayscale:ch,pipelineColourspace:hh,pipelineColorspace:uh,toColourspace:fh,toColorspace:dh,_getBackgroundColourOption:vn,_setBackgroundColourOption:gh}),t.colourspace=bn,t.colorspace=bn}});var Pn=j((xd,En)=>{g();var xe=be(),ph={and:"and",or:"or",eor:"eor"};function mh(){return this.options.removeAlpha=!0,this}function bh(t){if(xe.defined(t))if(xe.number(t)&&xe.inRange(t,0,1))this.options.ensureAlpha=t;else throw xe.invalidParameterError("alpha","number between 0 and 1",t);else this.options.ensureAlpha=1;return this}function vh(t){let e={red:0,green:1,blue:2,alpha:3};if(Object.keys(e).includes(t)&&(t=e[t]),xe.integer(t)&&xe.inRange(t,0,4))this.options.extractChannel=t;else throw xe.invalidParameterError("channel","integer or one of: red, green, blue, alpha",t);return this}function wh(t,e){return Array.isArray(t)?t.forEach(function(r){this.options.joinChannelIn.push(this._createInputDescriptor(r,e))},this):this.options.joinChannelIn.push(this._createInputDescriptor(t,e)),this}function yh(t){if(xe.string(t)&&xe.inArray(t,["and","or","eor"]))this.options.bandBoolOp=t;else throw xe.invalidParameterError("boolOp","one of: and, or, eor",t);return this}En.exports=t=>{Object.assign(t.prototype,{removeAlpha:mh,ensureAlpha:bh,extractChannel:vh,joinChannel:wh,bandbool:yh}),t.bool=ph}});var Sn=j(($d,kn)=>{g();var Mr=H("node:path"),l=be(),ht=$t(),xn=new Map([["heic","heif"],["heif","heif"],["avif","avif"],["jpeg","jpeg"],["jpg","jpeg"],["jpe","jpeg"],["tile","tile"],["dz","tile"],["png","png"],["raw","raw"],["tiff","tiff"],["tif","tiff"],["webp","webp"],["gif","gif"],["jp2","jp2"],["jpx","jp2"],["j2k","jp2"],["j2c","jp2"],["jxl","jxl"]]),Eh=/\.(jp[2x]|j2[kc])$/i,Rn=()=>new Error("JP2 output requires libvips with support for OpenJPEG"),$n=t=>1<<31-Math.clz32(Math.ceil(Math.log2(t)));function Ph(t,e){let r;if(l.string(t)?l.string(this.options.input.file)&&Mr.resolve(this.options.input.file)===Mr.resolve(t)?r=new Error("Cannot use same file for input and output"):Eh.test(Mr.extname(t))&&!this.constructor.format.jp2k.output.file&&(r=Rn()):r=new Error("Missing output file path"),r)if(l.fn(e))e(r);else return Promise.reject(r);else{this.options.fileOut=t;let s=Error();return this._pipeline(e,s)}return this}function xh(t,e){l.object(t)?this._setBooleanOption("resolveWithObject",t.resolveWithObject):this.options.resolveWithObject&&(this.options.resolveWithObject=!1),this.options.fileOut="";let r=Error();return this._pipeline(l.fn(t)?t:e,r)}function Rh(){return this.options.keepMetadata|=1,this}function $h(t){if(l.object(t))for(let[e,r]of Object.entries(t))if(l.object(r))for(let[s,i]of Object.entries(r))if(l.string(i))this.options.withExif[`exif-${e.toLowerCase()}-${s}`]=i;else throw l.invalidParameterError(`${e}.${s}`,"string",i);else throw l.invalidParameterError(e,"object",r);else throw l.invalidParameterError("exif","object",t);return this.options.withExifMerge=!1,this.keepExif()}function kh(t){return this.withExif(t),this.options.withExifMerge=!0,this}function Sh(){return this.options.keepMetadata|=8,this}function Ah(t,e){if(l.string(t))this.options.withIccProfile=t;else throw l.invalidParameterError("icc","string",t);if(this.keepIccProfile(),l.object(e)&&l.defined(e.attach))if(l.bool(e.attach))e.attach||(this.options.keepMetadata&=-9);else throw l.invalidParameterError("attach","boolean",e.attach);return this}function _h(){return this.options.keepMetadata|=2,this}function Nh(t){if(l.string(t)&&t.length>0)this.options.withXmp=t,this.options.keepMetadata|=2;else throw l.invalidParameterError("xmp","non-empty string",t);return this}function Ih(){return this.options.keepMetadata=31,this}function Fh(t){if(this.keepMetadata(),this.withIccProfile("srgb"),l.object(t)){if(l.defined(t.orientation))if(l.integer(t.orientation)&&l.inRange(t.orientation,1,8))this.options.withMetadataOrientation=t.orientation;else throw l.invalidParameterError("orientation","integer between 1 and 8",t.orientation);if(l.defined(t.density))if(l.number(t.density)&&t.density>0)this.options.withMetadataDensity=t.density;else throw l.invalidParameterError("density","positive number",t.density);l.defined(t.icc)&&this.withIccProfile(t.icc),l.defined(t.exif)&&this.withExifMerge(t.exif)}return this}function Ch(t,e){let r=xn.get((l.object(t)&&l.string(t.id)?t.id:t).toLowerCase());if(!r)throw l.invalidParameterError("format",`one of: ${[...xn.keys()].join(", ")}`,t);return this[r](e)}function jh(t){if(l.object(t)){if(l.defined(t.quality))if(l.integer(t.quality)&&l.inRange(t.quality,1,100))this.options.jpegQuality=t.quality;else throw l.invalidParameterError("quality","integer between 1 and 100",t.quality);if(l.defined(t.progressive)&&this._setBooleanOption("jpegProgressive",t.progressive),l.defined(t.chromaSubsampling))if(l.string(t.chromaSubsampling)&&l.inArray(t.chromaSubsampling,["4:2:0","4:4:4"]))this.options.jpegChromaSubsampling=t.chromaSubsampling;else throw l.invalidParameterError("chromaSubsampling","one of: 4:2:0, 4:4:4",t.chromaSubsampling);let e=l.bool(t.optimizeCoding)?t.optimizeCoding:t.optimiseCoding;if(l.defined(e)&&this._setBooleanOption("jpegOptimiseCoding",e),l.defined(t.mozjpeg))if(l.bool(t.mozjpeg))t.mozjpeg&&(this.options.jpegTrellisQuantisation=!0,this.options.jpegOvershootDeringing=!0,this.options.jpegOptimiseScans=!0,this.options.jpegProgressive=!0,this.options.jpegQuantisationTable=3);else throw l.invalidParameterError("mozjpeg","boolean",t.mozjpeg);let r=l.bool(t.trellisQuantization)?t.trellisQuantization:t.trellisQuantisation;l.defined(r)&&this._setBooleanOption("jpegTrellisQuantisation",r),l.defined(t.overshootDeringing)&&this._setBooleanOption("jpegOvershootDeringing",t.overshootDeringing);let s=l.bool(t.optimizeScans)?t.optimizeScans:t.optimiseScans;l.defined(s)&&(this._setBooleanOption("jpegOptimiseScans",s),s&&(this.options.jpegProgressive=!0));let i=l.number(t.quantizationTable)?t.quantizationTable:t.quantisationTable;if(l.defined(i))if(l.integer(i)&&l.inRange(i,0,8))this.options.jpegQuantisationTable=i;else throw l.invalidParameterError("quantisationTable","integer between 0 and 8",i)}return this._updateFormatOut("jpeg",t)}function Dh(t){if(l.object(t)){if(l.defined(t.progressive)&&this._setBooleanOption("pngProgressive",t.progressive),l.defined(t.compressionLevel))if(l.integer(t.compressionLevel)&&l.inRange(t.compressionLevel,0,9))this.options.pngCompressionLevel=t.compressionLevel;else throw l.invalidParameterError("compressionLevel","integer between 0 and 9",t.compressionLevel);l.defined(t.adaptiveFiltering)&&this._setBooleanOption("pngAdaptiveFiltering",t.adaptiveFiltering);let e=t.colours||t.colors;if(l.defined(e))if(l.integer(e)&&l.inRange(e,2,256))this.options.pngBitdepth=$n(e);else throw l.invalidParameterError("colours","integer between 2 and 256",e);if(l.defined(t.palette)?this._setBooleanOption("pngPalette",t.palette):[t.quality,t.effort,t.colours,t.colors,t.dither].some(l.defined)&&this._setBooleanOption("pngPalette",!0),this.options.pngPalette){if(l.defined(t.quality))if(l.integer(t.quality)&&l.inRange(t.quality,0,100))this.options.pngQuality=t.quality;else throw l.invalidParameterError("quality","integer between 0 and 100",t.quality);if(l.defined(t.effort))if(l.integer(t.effort)&&l.inRange(t.effort,1,10))this.options.pngEffort=t.effort;else throw l.invalidParameterError("effort","integer between 1 and 10",t.effort);if(l.defined(t.dither))if(l.number(t.dither)&&l.inRange(t.dither,0,1))this.options.pngDither=t.dither;else throw l.invalidParameterError("dither","number between 0.0 and 1.0",t.dither)}}return this._updateFormatOut("png",t)}function Th(t){if(l.object(t)){if(l.defined(t.quality))if(l.integer(t.quality)&&l.inRange(t.quality,1,100))this.options.webpQuality=t.quality;else throw l.invalidParameterError("quality","integer between 1 and 100",t.quality);if(l.defined(t.alphaQuality))if(l.integer(t.alphaQuality)&&l.inRange(t.alphaQuality,0,100))this.options.webpAlphaQuality=t.alphaQuality;else throw l.invalidParameterError("alphaQuality","integer between 0 and 100",t.alphaQuality);if(l.defined(t.lossless)&&this._setBooleanOption("webpLossless",t.lossless),l.defined(t.nearLossless)&&this._setBooleanOption("webpNearLossless",t.nearLossless),l.defined(t.smartSubsample)&&this._setBooleanOption("webpSmartSubsample",t.smartSubsample),l.defined(t.smartDeblock)&&this._setBooleanOption("webpSmartDeblock",t.smartDeblock),l.defined(t.preset))if(l.string(t.preset)&&l.inArray(t.preset,["default","photo","picture","drawing","icon","text"]))this.options.webpPreset=t.preset;else throw l.invalidParameterError("preset","one of: default, photo, picture, drawing, icon, text",t.preset);if(l.defined(t.effort))if(l.integer(t.effort)&&l.inRange(t.effort,0,6))this.options.webpEffort=t.effort;else throw l.invalidParameterError("effort","integer between 0 and 6",t.effort);l.defined(t.minSize)&&this._setBooleanOption("webpMinSize",t.minSize),l.defined(t.mixed)&&this._setBooleanOption("webpMixed",t.mixed)}return zr(t,this.options),this._updateFormatOut("webp",t)}function Lh(t){if(l.object(t)){l.defined(t.reuse)&&this._setBooleanOption("gifReuse",t.reuse),l.defined(t.progressive)&&this._setBooleanOption("gifProgressive",t.progressive);let e=t.colours||t.colors;if(l.defined(e))if(l.integer(e)&&l.inRange(e,2,256))this.options.gifBitdepth=$n(e);else throw l.invalidParameterError("colours","integer between 2 and 256",e);if(l.defined(t.effort))if(l.number(t.effort)&&l.inRange(t.effort,1,10))this.options.gifEffort=t.effort;else throw l.invalidParameterError("effort","integer between 1 and 10",t.effort);if(l.defined(t.dither))if(l.number(t.dither)&&l.inRange(t.dither,0,1))this.options.gifDither=t.dither;else throw l.invalidParameterError("dither","number between 0.0 and 1.0",t.dither);if(l.defined(t.interFrameMaxError))if(l.number(t.interFrameMaxError)&&l.inRange(t.interFrameMaxError,0,32))this.options.gifInterFrameMaxError=t.interFrameMaxError;else throw l.invalidParameterError("interFrameMaxError","number between 0.0 and 32.0",t.interFrameMaxError);if(l.defined(t.interPaletteMaxError))if(l.number(t.interPaletteMaxError)&&l.inRange(t.interPaletteMaxError,0,256))this.options.gifInterPaletteMaxError=t.interPaletteMaxError;else throw l.invalidParameterError("interPaletteMaxError","number between 0.0 and 256.0",t.interPaletteMaxError);if(l.defined(t.keepDuplicateFrames))if(l.bool(t.keepDuplicateFrames))this._setBooleanOption("gifKeepDuplicateFrames",t.keepDuplicateFrames);else throw l.invalidParameterError("keepDuplicateFrames","boolean",t.keepDuplicateFrames)}return zr(t,this.options),this._updateFormatOut("gif",t)}function Oh(t){if(!this.constructor.format.jp2k.output.buffer)throw Rn();if(l.object(t)){if(l.defined(t.quality))if(l.integer(t.quality)&&l.inRange(t.quality,1,100))this.options.jp2Quality=t.quality;else throw l.invalidParameterError("quality","integer between 1 and 100",t.quality);if(l.defined(t.lossless))if(l.bool(t.lossless))this.options.jp2Lossless=t.lossless;else throw l.invalidParameterError("lossless","boolean",t.lossless);if(l.defined(t.tileWidth))if(l.integer(t.tileWidth)&&l.inRange(t.tileWidth,1,32768))this.options.jp2TileWidth=t.tileWidth;else throw l.invalidParameterError("tileWidth","integer between 1 and 32768",t.tileWidth);if(l.defined(t.tileHeight))if(l.integer(t.tileHeight)&&l.inRange(t.tileHeight,1,32768))this.options.jp2TileHeight=t.tileHeight;else throw l.invalidParameterError("tileHeight","integer between 1 and 32768",t.tileHeight);if(l.defined(t.chromaSubsampling))if(l.string(t.chromaSubsampling)&&l.inArray(t.chromaSubsampling,["4:2:0","4:4:4"]))this.options.jp2ChromaSubsampling=t.chromaSubsampling;else throw l.invalidParameterError("chromaSubsampling","one of: 4:2:0, 4:4:4",t.chromaSubsampling)}return this._updateFormatOut("jp2",t)}function zr(t,e){if(l.object(t)&&l.defined(t.loop))if(l.integer(t.loop)&&l.inRange(t.loop,0,65535))e.loop=t.loop;else throw l.invalidParameterError("loop","integer between 0 and 65535",t.loop);if(l.object(t)&&l.defined(t.delay))if(l.integer(t.delay)&&l.inRange(t.delay,0,65535))e.delay=[t.delay];else if(Array.isArray(t.delay)&&t.delay.every(l.integer)&&t.delay.every(r=>l.inRange(r,0,65535)))e.delay=t.delay;else throw l.invalidParameterError("delay","integer or an array of integers between 0 and 65535",t.delay)}function Mh(t){if(l.object(t)){if(l.defined(t.quality))if(l.integer(t.quality)&&l.inRange(t.quality,1,100))this.options.tiffQuality=t.quality;else throw l.invalidParameterError("quality","integer between 1 and 100",t.quality);if(l.defined(t.bitdepth))if(l.integer(t.bitdepth)&&l.inArray(t.bitdepth,[1,2,4,8]))this.options.tiffBitdepth=t.bitdepth;else throw l.invalidParameterError("bitdepth","1, 2, 4 or 8",t.bitdepth);if(l.defined(t.tile)&&this._setBooleanOption("tiffTile",t.tile),l.defined(t.tileWidth))if(l.integer(t.tileWidth)&&t.tileWidth>0)this.options.tiffTileWidth=t.tileWidth;else throw l.invalidParameterError("tileWidth","integer greater than zero",t.tileWidth);if(l.defined(t.tileHeight))if(l.integer(t.tileHeight)&&t.tileHeight>0)this.options.tiffTileHeight=t.tileHeight;else throw l.invalidParameterError("tileHeight","integer greater than zero",t.tileHeight);if(l.defined(t.miniswhite)&&this._setBooleanOption("tiffMiniswhite",t.miniswhite),l.defined(t.pyramid)&&this._setBooleanOption("tiffPyramid",t.pyramid),l.defined(t.xres))if(l.number(t.xres)&&t.xres>0)this.options.tiffXres=t.xres;else throw l.invalidParameterError("xres","number greater than zero",t.xres);if(l.defined(t.yres))if(l.number(t.yres)&&t.yres>0)this.options.tiffYres=t.yres;else throw l.invalidParameterError("yres","number greater than zero",t.yres);if(l.defined(t.compression))if(l.string(t.compression)&&l.inArray(t.compression,["none","jpeg","deflate","packbits","ccittfax4","lzw","webp","zstd","jp2k"]))this.options.tiffCompression=t.compression;else throw l.invalidParameterError("compression","one of: none, jpeg, deflate, packbits, ccittfax4, lzw, webp, zstd, jp2k",t.compression);if(l.defined(t.bigtiff)&&this._setBooleanOption("tiffBigtiff",t.bigtiff),l.defined(t.predictor))if(l.string(t.predictor)&&l.inArray(t.predictor,["none","horizontal","float"]))this.options.tiffPredictor=t.predictor;else throw l.invalidParameterError("predictor","one of: none, horizontal, float",t.predictor);if(l.defined(t.resolutionUnit))if(l.string(t.resolutionUnit)&&l.inArray(t.resolutionUnit,["inch","cm"]))this.options.tiffResolutionUnit=t.resolutionUnit;else throw l.invalidParameterError("resolutionUnit","one of: inch, cm",t.resolutionUnit)}return this._updateFormatOut("tiff",t)}function zh(t){return this.heif({...t,compression:"av1"})}function Bh(t){if(l.object(t)){if(l.string(t.compression)&&l.inArray(t.compression,["av1","hevc"]))this.options.heifCompression=t.compression;else throw l.invalidParameterError("compression","one of: av1, hevc",t.compression);if(l.defined(t.quality))if(l.integer(t.quality)&&l.inRange(t.quality,1,100))this.options.heifQuality=t.quality;else throw l.invalidParameterError("quality","integer between 1 and 100",t.quality);if(l.defined(t.lossless))if(l.bool(t.lossless))this.options.heifLossless=t.lossless;else throw l.invalidParameterError("lossless","boolean",t.lossless);if(l.defined(t.effort))if(l.integer(t.effort)&&l.inRange(t.effort,0,9))this.options.heifEffort=t.effort;else throw l.invalidParameterError("effort","integer between 0 and 9",t.effort);if(l.defined(t.chromaSubsampling))if(l.string(t.chromaSubsampling)&&l.inArray(t.chromaSubsampling,["4:2:0","4:4:4"]))this.options.heifChromaSubsampling=t.chromaSubsampling;else throw l.invalidParameterError("chromaSubsampling","one of: 4:2:0, 4:4:4",t.chromaSubsampling);if(l.defined(t.bitdepth))if(l.integer(t.bitdepth)&&l.inArray(t.bitdepth,[8,10,12])){if(t.bitdepth!==8&&this.constructor.versions.heif)throw l.invalidParameterError("bitdepth when using prebuilt binaries",8,t.bitdepth);this.options.heifBitdepth=t.bitdepth}else throw l.invalidParameterError("bitdepth","8, 10 or 12",t.bitdepth)}else throw l.invalidParameterError("options","Object",t);return this._updateFormatOut("heif",t)}function Uh(t){if(l.object(t)){if(l.defined(t.quality))if(l.integer(t.quality)&&l.inRange(t.quality,1,100))this.options.jxlDistance=t.quality>=30?.1+(100-t.quality)*.09:53/3e3*t.quality*t.quality-23/20*t.quality+25;else throw l.invalidParameterError("quality","integer between 1 and 100",t.quality);else if(l.defined(t.distance))if(l.number(t.distance)&&l.inRange(t.distance,0,15))this.options.jxlDistance=t.distance;else throw l.invalidParameterError("distance","number between 0.0 and 15.0",t.distance);if(l.defined(t.decodingTier))if(l.integer(t.decodingTier)&&l.inRange(t.decodingTier,0,4))this.options.jxlDecodingTier=t.decodingTier;else throw l.invalidParameterError("decodingTier","integer between 0 and 4",t.decodingTier);if(l.defined(t.lossless))if(l.bool(t.lossless))this.options.jxlLossless=t.lossless;else throw l.invalidParameterError("lossless","boolean",t.lossless);if(l.defined(t.effort))if(l.integer(t.effort)&&l.inRange(t.effort,1,9))this.options.jxlEffort=t.effort;else throw l.invalidParameterError("effort","integer between 1 and 9",t.effort)}return zr(t,this.options),this._updateFormatOut("jxl",t)}function qh(t){if(l.object(t)&&l.defined(t.depth))if(l.string(t.depth)&&l.inArray(t.depth,["char","uchar","short","ushort","int","uint","float","complex","double","dpcomplex"]))this.options.rawDepth=t.depth;else throw l.invalidParameterError("depth","one of: char, uchar, short, ushort, int, uint, float, complex, double, dpcomplex",t.depth);return this._updateFormatOut("raw")}function Gh(t){if(l.object(t)){if(l.defined(t.size))if(l.integer(t.size)&&l.inRange(t.size,1,8192))this.options.tileSize=t.size;else throw l.invalidParameterError("size","integer between 1 and 8192",t.size);if(l.defined(t.overlap))if(l.integer(t.overlap)&&l.inRange(t.overlap,0,8192)){if(t.overlap>this.options.tileSize)throw l.invalidParameterError("overlap",`<= size (${this.options.tileSize})`,t.overlap);this.options.tileOverlap=t.overlap}else throw l.invalidParameterError("overlap","integer between 0 and 8192",t.overlap);if(l.defined(t.container))if(l.string(t.container)&&l.inArray(t.container,["fs","zip"]))this.options.tileContainer=t.container;else throw l.invalidParameterError("container","one of: fs, zip",t.container);if(l.defined(t.layout))if(l.string(t.layout)&&l.inArray(t.layout,["dz","google","iiif","iiif3","zoomify"]))this.options.tileLayout=t.layout;else throw l.invalidParameterError("layout","one of: dz, google, iiif, iiif3, zoomify",t.layout);if(l.defined(t.angle))if(l.integer(t.angle)&&!(t.angle%90))this.options.tileAngle=t.angle;else throw l.invalidParameterError("angle","positive/negative multiple of 90",t.angle);if(this._setBackgroundColourOption("tileBackground",t.background),l.defined(t.depth))if(l.string(t.depth)&&l.inArray(t.depth,["onepixel","onetile","one"]))this.options.tileDepth=t.depth;else throw l.invalidParameterError("depth","one of: onepixel, onetile, one",t.depth);if(l.defined(t.skipBlanks))if(l.integer(t.skipBlanks)&&l.inRange(t.skipBlanks,-1,65535))this.options.tileSkipBlanks=t.skipBlanks;else throw l.invalidParameterError("skipBlanks","integer between -1 and 255/65535",t.skipBlanks);else l.defined(t.layout)&&t.layout==="google"&&(this.options.tileSkipBlanks=5);let e=l.bool(t.center)?t.center:t.centre;if(l.defined(e)&&this._setBooleanOption("tileCentre",e),l.defined(t.id))if(l.string(t.id))this.options.tileId=t.id;else throw l.invalidParameterError("id","string",t.id);if(l.defined(t.basename))if(l.string(t.basename))this.options.tileBasename=t.basename;else throw l.invalidParameterError("basename","string",t.basename)}if(l.inArray(this.options.formatOut,["jpeg","png","webp"]))this.options.tileFormat=this.options.formatOut;else if(this.options.formatOut!=="input")throw l.invalidParameterError("format","one of: jpeg, png, webp",this.options.formatOut);return this._updateFormatOut("dz")}function Hh(t){if(!l.plainObject(t))throw l.invalidParameterError("options","object",t);if(l.integer(t.seconds)&&l.inRange(t.seconds,0,3600))this.options.timeoutSeconds=t.seconds;else throw l.invalidParameterError("seconds","integer between 0 and 3600",t.seconds);return this}function Wh(t,e){return l.object(e)&&e.force===!1||(this.options.formatOut=t),this}function Vh(t,e){if(l.bool(e))this.options[t]=e;else throw l.invalidParameterError(t,"boolean",e)}function Xh(){if(!this.options.streamOut){this.options.streamOut=!0;let t=Error();this._pipeline(void 0,t)}}function Jh(t,e){return typeof t=="function"?(this._isStreamInput()?this.on("finish",()=>{this._flattenBufferIn(),ht.pipeline(this.options,(r,s,i)=>{r?t(l.nativeError(r,e)):t(null,s,i)})}):ht.pipeline(this.options,(r,s,i)=>{r?t(l.nativeError(r,e)):t(null,s,i)}),this):this.options.streamOut?(this._isStreamInput()?(this.once("finish",()=>{this._flattenBufferIn(),ht.pipeline(this.options,(r,s,i)=>{r?this.emit("error",l.nativeError(r,e)):(this.emit("info",i),this.push(s)),this.push(null),this.on("end",()=>this.emit("close"))})}),this.streamInFinished&&this.emit("finish")):ht.pipeline(this.options,(r,s,i)=>{r?this.emit("error",l.nativeError(r,e)):(this.emit("info",i),this.push(s)),this.push(null),this.on("end",()=>this.emit("close"))}),this):this._isStreamInput()?new Promise((r,s)=>{this.once("finish",()=>{this._flattenBufferIn(),ht.pipeline(this.options,(i,n,a)=>{i?s(l.nativeError(i,e)):this.options.resolveWithObject?r({data:n,info:a}):r(n)})})}):new Promise((r,s)=>{ht.pipeline(this.options,(i,n,a)=>{i?s(l.nativeError(i,e)):this.options.resolveWithObject?r({data:n,info:a}):r(n)})})}kn.exports=t=>{Object.assign(t.prototype,{toFile:Ph,toBuffer:xh,keepExif:Rh,withExif:$h,withExifMerge:kh,keepIccProfile:Sh,withIccProfile:Ah,keepXmp:_h,withXmp:Nh,keepMetadata:Ih,withMetadata:Fh,toFormat:Ch,jpeg:jh,jp2:Oh,png:Dh,webp:Th,tiff:Mh,avif:zh,heif:Bh,jxl:Uh,gif:Lh,raw:qh,tile:Gh,timeout:Hh,_updateFormatOut:Wh,_setBooleanOption:Vh,_read:Xh,_pipeline:Jh})}});var In=j((Sd,Nn)=>{g();var Kh=H("node:events"),Kt=Lt(),ue=be(),{runtimePlatformArch:Yh}=_r(),re=$t(),An=Yh(),Br=re.libvipsVersion(),ze=re.format();ze.heif.output.alias=["avif","heic"];ze.jpeg.output.alias=["jpe","jpg"];ze.tiff.output.alias=["tif"];ze.jp2k.output.alias=["j2c","j2k","jp2","jpx"];var Qh={nearest:"nearest",bilinear:"bilinear",bicubic:"bicubic",locallyBoundedBicubic:"lbb",nohalo:"nohalo",vertexSplitQuadraticBasisSpline:"vsqbs"},ut={vips:Br.semver};if(!Br.isGlobal)if(Br.isWasm)try{ut=H("@img/sharp-wasm32/versions")}catch{}else try{ut=H(`@img/sharp-${An}/versions`)}catch{try{ut=H(`@img/sharp-libvips-${An}/versions`)}catch{}}ut.sharp=Sr().version;ut.heif&&ze.heif&&(ze.heif.input.fileSuffix=[".avif"],ze.heif.output.alias=["avif"]);function _n(t){return ue.bool(t)?t?re.cache(50,20,100):re.cache(0,0,0):ue.object(t)?re.cache(t.memory,t.files,t.items):re.cache()}_n(!0);function Zh(t){return re.concurrency(ue.integer(t)?t:null)}Kt.familySync()===Kt.GLIBC&&!re._isUsingJemalloc()?re.concurrency(1):Kt.familySync()===Kt.MUSL&&re.concurrency()===1024&&re.concurrency(H("node:os").availableParallelism());var eu=new Kh.EventEmitter;function tu(){return re.counters()}function ru(t){return re.simd(ue.bool(t)?t:null)}function su(t){if(ue.object(t))if(Array.isArray(t.operation)&&t.operation.every(ue.string))re.block(t.operation,!0);else throw ue.invalidParameterError("operation","Array<string>",t.operation);else throw ue.invalidParameterError("options","object",t)}function iu(t){if(ue.object(t))if(Array.isArray(t.operation)&&t.operation.every(ue.string))re.block(t.operation,!1);else throw ue.invalidParameterError("operation","Array<string>",t.operation);else throw ue.invalidParameterError("options","object",t)}Nn.exports=t=>{t.cache=_n,t.concurrency=Zh,t.counters=tu,t.simd=ru,t.format=ze,t.interpolators=Qh,t.versions=ut,t.queue=eu,t.block=su,t.unblock=iu}});var Cn=j((Nd,Fn)=>{g();var je=Hi();Xi()(je);en()(je);rn()(je);ln()(je);yn()(je);Pn()(je);Sn()(je);In()(je);Fn.exports=je});g();g();Q();g();var yt={debug:!1,verbose:p.env.CI!=="true",features:{},generateManifest:!0,routes:{disabled:!1,debug:!1,routingMode:"app",generateMiddleware:!0},themes:{debug:!1},i18n:{debug:!1,fallbackLanguage:"en"},assets:{debug:!1,copyFonts:!0},pwa:{debug:!1},seo:{disabled:!1,debug:!1,generateRobotsTxt:!0,generateSitemap:!0,crawlDelay:1},serverShim:{enabled:!0,debug:!1},discovery:{debug:!1,verbose:!1,cacheTimeout:6e4,fileLogging:!1,logDir:".dndev-logs"}};function is(t,e){let r={...t};return e&&Object.keys(e).forEach(s=>{e[s]&&typeof e[s]=="object"&&!Array.isArray(e[s])?r[s]=is(t[s]||{},e[s]):r[s]=e[s]}),r}function ns(t={}){return is(yt,t)}function as(t){let{features:e={},routes:r={},themes:s={},i18n:i={},assets:n={},pwa:a={},seo:o={},serverShim:c={},discovery:u={},generateManifest:f,debug:m,verbose:v,...I}=t,L=p.env.NODE_ENV==="production"?"production":"development";return{generateManifest:f,debug:m,verbose:v,mode:L,isDev:L==="development",routeOptions:r,themeOptions:s,i18nOptions:i,assetOptions:n,featureOptions:e,pwaOptions:a,seoOptions:o,serverShimOptions:c,discoveryOptions:u,nextConfigOptions:I}}g();import*as ne from"@clack/prompts";g();import{createRequire as ka}from"node:module";import{resolve as Ct,join as _e,dirname as Te,relative as os,normalize as Sa,sep as ls,extname as Aa}from"node:path";import{fileURLToPath as _a}from"node:url";import*as T from"node:fs";Q();import Na from"fast-glob";var et={getGlobOptionsFor:Ft||void 0,SCAN_PATTERNS:ce||void 0,getPatternsFor:ss||void 0,I18N_PATHS:Nt||void 0},J={error:(t,e)=>{},warn:(t,e)=>{},info:t=>{}};function cs(t,e){return t().catch(r=>{throw new Error(`${e}: ${r instanceof Error?r.message:String(r)}`)})}var hs={CLI:"packages/cli",COMPONENTS:"packages/core/components",CONFIG:"packages/core/config",CORE:"packages/core",CRUD:"packages/core/crud",FEATURES:"packages/features",HOOKS:"packages/core/hooks",I18N:"packages/core/i18n",SCHEMAS:"packages/core/schemas",STORES:"packages/core/stores",TEMPLATES:"packages/templates",TOOLING:"packages/tooling",TYPES:"packages/core/types",UI:"packages/ui",UTILS:"packages/core/utils",AUTH:"packages/features/auth",BILLING:"packages/features/billing",OAUTH:"packages/features/oauth",FIREBASE:"packages/providers/firebase",FUNCTIONS:"packages/functions"},V=class t{static _instance=null;options;_repoRoot;_appRoot=null;static getInstance(e={}){return t._instance||(t._instance=new t(e)),t._instance}static _reset(){t._instance=null}constructor(e={}){if(t._instance)return t._instance;this.options={maxLevels:e.maxLevels??10,customMarkers:e.customMarkers||[],cache:e.cache??!1,debug:e.debug??!1};try{let r=p.cwd();if(!r)throw new Error("PathResolver: process.cwd() returned undefined. This should never happen.");this._repoRoot=this._findRepoRoot(r)}catch(r){throw new Error(`PathResolver constructor failed: ${r instanceof Error?r.message:String(r)}. cwd: ${p.cwd()}`)}this._appRoot=null,t._instance=this}normalizePath(e){if(!e)return"";try{return Sa(e).split(ls).join("/")}catch{return String(e).split(ls).join("/")}}getRelativePath(e){let r=this.getAppRoot(),s=os(r,e);return this.normalizePath(s)}getBasename(e){if(!e)return"";let s=this.normalizePath(e).split("/");return s[s.length-1]||""}getDirname(e){return e?this.normalizePath(Te(e)):""}resolvePackage(e,r=null){try{let s=r||this.getAppRoot(),n=ka(_e(s,"package.json")).resolve(e);return this.normalizePath(n)}catch{return null}}resolveFrameworkPackage(e,r=null){let s=this.resolvePackage(`${e}/package.json`,r);if(s)return this.getDirname(s);if(this.isMonorepo()&&e.startsWith("@donotdev/")){let a=e.replace("@donotdev/",""),o=this.resolveRepoPath(`packages/${a}`);if(this.pathExists(o))return o;if(["auth","billing","crud","oauth"].includes(a)){let c=this.resolveRepoPath(`packages/features/${a}`);if(this.pathExists(c))return c}if(a==="firebase"){let c=this.resolveRepoPath(`packages/providers/${a}`);if(this.pathExists(c))return c}}let i=this.resolveAppPath(`node_modules/${e}`);if(this.pathExists(i))return i;let n=this.resolveRepoPath(`node_modules/${e}`);return this.pathExists(n)?n:null}resolvePackageAsset(e,r=null){return this.resolvePackage(e,r)}resolveAppPath(e){let r=this.getAppRoot(),s=Ct(r,e);return this.normalizePath(s)}resolveRepoPath(e){let r=this.getRepoRoot(),s=this.normalizePath(e),i=Ct(r,s);return this.normalizePath(i)}resolvePath(e,r){let s=this.normalizePath(r),i=this.normalizePath(e),n=Ct(s,i);return this.normalizePath(n)}createImportPath(e){return"./"+this.getRelativePath(e)}getFileInfo(e){try{let r=T.statSync(e);return{absolutePath:this.normalizePath(e),relativePath:this.getRelativePath(e),importPath:this.createImportPath(e),size:r.size,isFile:r.isFile(),isDirectory:r.isDirectory()}}catch{return null}}_detectFormat(e,r){return r&&r!=="auto"?r:Aa(e).toLowerCase()===".json"?"json":"text"}async read(e,r={}){let{format:s="auto",encoding:i="utf8"}=r,n=this._detectFormat(e,s);try{if(n==="buffer")return await T.promises.readFile(e);let a=await T.promises.readFile(e,i),o=this.stripBom(a);return n==="json"?JSON.parse(o):o}catch(a){return this.options.debug&&J.warn(`Failed to read file: ${e}`,a),null}}readSync(e,r={}){let{format:s="auto",encoding:i="utf8"}=r,n=this._detectFormat(e,s);try{if(n==="buffer")return T.readFileSync(e);let a=T.readFileSync(e,i),o=this.stripBom(a);return n==="json"?JSON.parse(o):o}catch(a){return this.options.debug&&J.warn(`Failed to read file: ${e}`,a),null}}async write(e,r,s={}){let{format:i="auto",overwrite:n=!1,dryRun:a=!1,verbose:o=!1}=s,c=this.normalizePath(e),u=this.normalizePath(Te(c)),f=this.pathExists(c);if(f&&!n)return o&&J.info(`Skipping existing file: ${c}`),!1;if(a)return J.info(`[DRY RUN] Would write file: ${c}`),!0;try{await T.promises.mkdir(u,{recursive:!0})}catch(I){if(I?.code!=="EEXIST")throw I}let m=this._detectFormat(e,i),v;b.isBuffer(r)?v=r:m==="json"&&typeof r=="object"?v=JSON.stringify(r,null,2):v=String(r);try{return await cs(async()=>(b.isBuffer(v)?await T.promises.writeFile(c,v):await T.promises.writeFile(c,v,"utf8"),o&&J.info(`${f?"Updated":"Created"} file: ${c}`),!0),`Failed to write file: ${c}`)}catch{return!1}}writeSync(e,r,s={}){let{format:i="auto",overwrite:n=!1,dryRun:a=!1,verbose:o=!1}=s,c=this.normalizePath(e),u=this.normalizePath(Te(c)),f=this.pathExists(c);if(f&&!n)return o&&J.info(`Skipping existing file: ${c}`),!1;if(a)return J.info(`[DRY RUN] Would write file: ${c}`),!0;try{T.mkdirSync(u,{recursive:!0})}catch(I){if(I?.code!=="EEXIST")throw I}let m=this._detectFormat(e,i),v;b.isBuffer(r)?v=r:m==="json"&&typeof r=="object"?v=JSON.stringify(r,null,2):v=String(r);try{return b.isBuffer(v)?T.writeFileSync(c,v):T.writeFileSync(c,v,"utf8"),o&&J.info(`${f?"Updated":"Created"} file: ${c}`),!0}catch(I){throw new Error(`Failed to write file: ${c}: ${I instanceof Error?I.message:String(I)}`)}}async copy(e,r,s={}){let{overwrite:i=!1,dryRun:n=!1,verbose:a=!1}=s,o=this.normalizePath(r),c=this.pathExists(o);if(c&&!i)return a&&J.info(`Skipping existing file: ${o}`),!1;if(n)return J.info(`[DRY RUN] Would copy file: ${o}`),!0;let u=this.normalizePath(Te(o));try{await T.promises.mkdir(u,{recursive:!0})}catch(f){if(f?.code!=="EEXIST")throw f}try{return await cs(async()=>(await T.promises.copyFile(e,o),a&&J.info(`${c?"Updated":"Created"} file: ${o}`),!0),`Failed to copy file from ${e} to ${o}`)}catch{return!1}}copySync(e,r,s={}){let{overwrite:i=!1,dryRun:n=!1,verbose:a=!1}=s,o=this.normalizePath(r),c=this.pathExists(o);if(c&&!i)return a&&J.info(`Skipping existing file: ${o}`),!1;if(n)return J.info(`[DRY RUN] Would copy file: ${o}`),!0;let u=this.normalizePath(Te(o));try{T.mkdirSync(u,{recursive:!0})}catch(f){if(f?.code!=="EEXIST")throw f}try{return T.copyFileSync(e,o),a&&J.info(`${c?"Updated":"Created"} file: ${o}`),!0}catch{return!1}}pathExists(e,r=!1){try{return T.existsSync(e)}catch(s){return r||J.error(`Error checking path existence: ${e}`,s),!1}}mkdir(e){try{let r=e.startsWith("/")||e.match(/^[A-Z]:/)?this.normalizePath(e):this.resolveAppPath(e);return T.existsSync(r)||T.mkdirSync(r,{recursive:!0}),!0}catch{return!1}}readdirSync(e,r){try{return T.readdirSync(e,r)}catch(s){return this.options.debug&&J.warn(`Failed to read directory: ${e}`,s),r&&typeof r=="object"&&"withFileTypes"in r&&r.withFileTypes?[]:[]}}statSync(e){try{return T.statSync(e)}catch(r){return this.options.debug&&J.warn(`Failed to stat file: ${e}`,r),null}}lstatSync(e){try{return T.lstatSync(e)}catch(r){return this.options.debug&&J.warn(`Failed to lstat file: ${e}`,r),null}}async ensureDir(e){try{await T.promises.mkdir(e,{recursive:!0})}catch(r){if(r?.code!=="EEXIST")throw r}}ensureDirSync(e){try{T.mkdirSync(e,{recursive:!0})}catch(r){if(r?.code!=="EEXIST")throw r}}async remove(e){await T.promises.rm(e,{recursive:!0,force:!0})}removeSync(e){T.rmSync(e,{recursive:!0,force:!0})}async readdir(e,r){return T.promises.readdir(e,r)}stripBom(e){return e.charCodeAt(0)===65279?e.slice(1):e}getRepoRoot(){return this._repoRoot||p.cwd()}getAppRoot(){return this._appRoot?this._appRoot:this._repoRoot}setAppRoot(e){if(!e)throw new Error("PathResolver.setAppRoot: root cannot be undefined or null");this._appRoot=this.normalizePath(e)}isMonorepo(){let e=_e(this._repoRoot,"packages");return this.pathExists(e)}isWithinApp(e){let r=this.normalizePath(Ct(e)),s=this.getAppRoot(),i=os(s,r),n=this.normalizePath(i);return!n.startsWith("../")&&!n.startsWith("/")}async findFiles(e,r,s={}){let i=this.normalizePath(_e(e,r)),n=this.getAppRoot(),a=this.normalizePath(n),o=i.startsWith(a)?i.slice(a.length+1):i,c={absolute:!0,onlyFiles:!0,braceExpansion:!0,extglob:!0,globstar:!0,cwd:n,ignore:et.SCAN_PATTERNS?.globalIgnore||["**/node_modules/**","**/dist/**","**/build/**","**/.git/**"]};return await this._globWithNormalization([o],{...c,...s})}clearCache(){}async _resolveFrameworkI18nPattern(e){let r=et.I18N_PATHS;if(!r)return null;let s=e.replace(r.SOURCE_ROOT+"/",""),i=this.resolveFrameworkPackage("@donotdev/core");if(!i)return null;let n=this.normalizePath(_e(i,r.PUBLISHED_ROOT,s)),a=n.replace(/\/[^/]*\*.*$/,"");return this.pathExists(a),n}async _globWithNormalization(e,r){return(await Na(e,r)).map(i=>{let n=typeof i=="string"?i:i.path;return this.normalizePath(n)})}async resolveFiles(e,r="css"){if(!e||typeof e!="object")return{frameworkFiles:[],consumerFiles:[]};if(r==="i18n")return{frameworkFiles:[],consumerFiles:[]};if(Array.isArray(e.framework)||(e.framework=[]),!Array.isArray(e.consumer))return{frameworkFiles:[],consumerFiles:[]};let s=[...e.framework,...e.consumer];for(let f of s)if(typeof f!="string"||f.trim()==="")return{frameworkFiles:[],consumerFiles:[]};let i=this.getAppRoot(),n=et.getGlobOptionsFor?et.getGlobOptionsFor(r):{ignore:["**/node_modules/**","**/dist/**","**/build/**"]},a=this.normalizePath(i),o=e.framework.map(f=>{let m=this.normalizePath(f);return m.startsWith(a)?m.slice(a.length+1):m}),c=e.consumer.map(f=>{let m=this.normalizePath(f);return m.startsWith(a)?m.slice(a.length+1):m}),u={...n,onlyFiles:!0,absolute:!0,braceExpansion:!0,extglob:!0,globstar:!0,cwd:i};try{let f=o.length>0?await this._globWithNormalization(o,u):[],m=await this._globWithNormalization(c,u);return{frameworkFiles:f,consumerFiles:m}}catch{return this.options.debug,{frameworkFiles:[],consumerFiles:[]}}}async resolvePatterns(e){if(!et.getPatternsFor)return{framework:[],consumer:[],all:[]};let r=this.getAppRoot(),s=this.getRepoRoot();if(e==="i18n"&&(!r||r===s))throw new Error(`Cannot resolve i18n patterns: appRoot not set (appRoot: ${r}, repoRoot: ${s}). Ensure configResolved hook has run before discovery.`);let i=et.getPatternsFor(e),n=this.isMonorepo();if(e==="i18n"){let c=i,u={eager:c.eager.map(f=>f.startsWith("!")?"!"+this.resolveAppPath(f.slice(1)):this.resolveAppPath(f)),lazy:c.lazy.map(f=>f.startsWith("!")?"!"+this.resolveAppPath(f.slice(1)):this.resolveAppPath(f)),framework:{eager:n?(c.framework?.eager||[]).map(f=>this.resolveRepoPath(f)).filter(Boolean):await Promise.all((c.framework?.eager||[]).map(f=>this._resolveFrameworkI18nPattern(f))).then(f=>f.filter(Boolean)),lazy:n?(c.framework?.lazy||[]).map(f=>this.resolveRepoPath(f)).filter(Boolean):await Promise.all((c.framework?.lazy||[]).map(f=>this._resolveFrameworkI18nPattern(f))).then(f=>f.filter(Boolean))},all:[]};return u.all=[...u.eager,...u.lazy,...u.framework.eager,...u.framework.lazy],u}let a=i,o={framework:n?(a.framework||[]).map(c=>this.resolveRepoPath(c)).filter(Boolean):[],consumer:(a.consumer||[]).map(c=>this.resolveAppPath(c)),all:[]};return o.all=[...o.consumer,...o.framework],o}getEmptyModulePath(){let e=Te(_a(import.meta.url));return this.normalizePath(_e(e,"../vite/empty.js"))}_findRepoRoot(e){let r=this.normalizePath(e),s=0,i=this.options.maxLevels;for(;s<i;){let n=this.normalizePath(_e(r,hs.TOOLING)),a=this.normalizePath(_e(r,hs.CORE));if(this.pathExists(n)&&this.pathExists(a))return r;let o=_e(r,"apps");if(this.pathExists(o)&&this.statSync(o)?.isDirectory())return this.normalizePath(r);let c=this.normalizePath(_e(r,"package.json"));if(this.pathExists(c)&&this.normalizePath(Te(r))===r)return r;let u=this.normalizePath(Te(r));if(u===r)break;r=u,s++}return this.normalizePath(e)}};var de={reset:"\x1B[0m",green:"\x1B[32m",brightGreen:"\x1B[92m",red:"\x1B[31m",brightRed:"\x1B[91m",yellow:"\x1B[33m",brightYellow:"\x1B[93m",blue:"\x1B[34m",cyan:"\x1B[36m",brightCyan:"\x1B[96m",gray:"\x1B[90m",white:"\x1B[37m"};function Ia(){return p.env.NO_COLOR?!1:p.platform==="win32"?!0:p.stdout.isTTY===!0}function pe(t,e){return Ia()?`${e}${t}${de.reset}`:t}function me(t,e,r,s={}){let{logDir:i=".dndev-logs",fileLogging:n=!1}=s,a=V.getInstance(),o=null;if(n){let f=a.resolveAppPath(i);a.pathExists(f)||a.mkdir(f),o=a.resolveAppPath(`${i}/${t.replace(/[^a-zA-Z0-9]/g,"-")}.log`);let m=`=== ${t} Log Started at ${new Date().toISOString()} ===
3
3
  `;a.writeSync(o,m)}let c=(f,m,v)=>{if(o){let I=new Date().toISOString(),L=v.length>0?" "+v.map(oe=>typeof oe=="object"?JSON.stringify(oe,null,2):String(oe)).join(" "):"",B=`${I} [${f}] ${m}${L}
4
- `;a.appendFile(o,B)}},u=(f,m)=>{if(m.length===0)return f;let v=m.map(I=>typeof I=="object"?JSON.stringify(I,null,2):String(I)).join(" ");return`${f} ${v}`};return{debug:(f,...m)=>{e&&(n?c("DEBUG",f,m):ne.log.message(pe(u(f,m),de.gray)))},verbose:(f,...m)=>{r&&(n?c("VERBOSE",f,m):ne.log.message(u(f,m)))},info:(f,...m)=>{n?c("INFO",f,m):ne.log.info(pe(u(f,m),de.brightCyan))},warn:(f,...m)=>{e&&n?c("WARN",f,m):ne.log.warn(pe(u(f,m),de.brightYellow))},error:(f,...m)=>{e&&n?c("ERROR",f,m):ne.log.error(pe(u(f,m),de.brightRed))},success:(f,...m)=>{e&&n?c("SUCCESS",f,m):ne.log.success(pe(u(f,m),de.brightGreen))},when:(f,m="debug")=>(v,...I)=>{if(f){let L=u(v,I);switch(m){case"verbose":r&&(ne.log.message(L),c("VERBOSE",v,I));break;case"info":ne.log.info(pe(L,de.brightCyan)),c("INFO",v,I);break;case"warn":ne.log.warn(pe(L,de.brightYellow)),c("WARN",v,I);break;case"error":ne.log.error(pe(L,de.brightRed)),c("ERROR",v,I);break;case"success":ne.log.success(pe(L,de.brightGreen)),c("SUCCESS",v,I);break;default:e&&(ne.log.message(pe(L,de.gray)),c("DEBUG",v,I))}}},getLogFilePath:()=>o}}g();Q();import{readFileSync as Fa}from"node:fs";import{join as Ca}from"node:path";import{createRequire as ja}from"node:module";var Da=ja(import.meta.url);function Ta(t){if(!t)return[];try{let e=Ca(t,"package.json"),r=JSON.parse(Fa(e,"utf8")),s=new Set;if(r.peerDependenciesMeta)for(let[i,n]of Object.entries(r.peerDependenciesMeta))n?.optional&&s.add(i);if(r.optionalDependencies)for(let i of Object.keys(r.optionalDependencies))s.add(i);return Array.from(s)}catch{return[]}}function La(t){let e=It.optionalFeatures||[],r=Ta(t);return[...new Set([...e,...r])]}function ur(t){let e=La(t),r=[],s=[];for(let i of e)try{Da.resolve(i,{paths:[t||p.cwd()]}),s.push(i)}catch{r.push(i)}return{missing:r,installed:s}}g();Q();async function fr(){try{let t=V.getInstance(),e=t.resolveAppPath("node_modules/next/package.json");return t.readSync(e,{format:"json"})?.version||"15.0.0"}catch{return"15.0.0"}}async function us(){let t=await fr();return parseInt(t.split(".")[0],10)>=15}function fs(){try{let t=V.getInstance(),e=t.resolveAppPath("package.json"),r=t.readSync(e,{format:"json"});if(!r)return[];let s={...r.dependencies,...r.devDependencies};return Object.keys(s).filter(n=>n.startsWith("@donotdev/")).filter(n=>!It.buildTimePackages.includes(n)).sort()}catch{return[]}}function Ie(t){return t&&typeof t=="object"&&!Array.isArray(t)}g();function ds({logger:t,debug:e=!1}={}){let r=V.getInstance(),s=!1,i=null;if(p.env.DNDEV_APP_ROOT?(i=r.normalizePath(p.env.DNDEV_APP_ROOT),r.pathExists(i)?(r.setAppRoot(i),s=!0,e&&t&&t.debug(`App root set from DNDEV_APP_ROOT: ${i}`)):t&&t.warn(`DNDEV_APP_ROOT path does not exist: ${i}`)):e&&t&&t.debug("DNDEV_APP_ROOT env var not set"),!s){if(r.getRepoRoot()){let a=r.resolveRepoPath("apps");if(r.pathExists(a))try{let o=p.cwd(),c=r.normalizePath(o);if(c.includes("/apps/")){let u=c.indexOf("/apps/"),m=c.substring(u+6).split("/")[0];if(m){let v=r.resolveRepoPath(`apps/${m}`),I=r.resolveRepoPath(`apps/${m}/next.config.js`);r.pathExists(I)&&(i=v,r.setAppRoot(i),s=!0,e&&t&&t.debug(`App root detected from process.cwd(): ${i}`))}}}catch{}}!s&&!i&&(i=p.cwd(),r.setAppRoot(i),s=!0,e&&t&&t.debug(`App root fallback to process.cwd(): ${i}`))}return{appRoot:i,appRootSet:s}}g();g();g();Q();var se=class{constructor(e,r={}){this.options={...r,...this.getHandlerDefaults()},this.logger=me(`Next${this.getHandlerName()}Handler`,this.options.debug,this.options.verbose),this.pathResolver=V.getInstance(),this.configRoot=this.pathResolver.getAppRoot(),this.discovery=this.createDiscovery(e),this.initialize()}getHandlerDefaults(){return{}}logDiscoveryResults(e){}createDiscovery(e){let r={...yt.discovery,...this.options};return new e(this.pathResolver,r)}initialize(){}setAppRoot(e){this.configRoot=e,this.pathResolver.setAppRoot(e)}createNextConfig(){return(e={})=>(this.options.debug&&this.logger.debug(`${this.getHandlerName()} handler initialized`),{...e,webpack:(r,s)=>{let{dev:i,isServer:n,webpack:a}=s;return this.applyViteIgnorePlugin(r,a),this._generateFiles(),e.webpack?e.webpack(r,s):r},rewrites:async function(){try{let r=e.rewrites?await e.rewrites():[],s=this.getAPIRewrites();return this.mergeRewrites(r,s)}catch(r){return this.logger.error(`${this.getHandlerName()} handler failed to merge rewrites: ${r.message}`),this.logger.error(`Stack: ${r.stack||"No stack trace available"}`),[]}}.bind(this)})}async generateFiles(){try{let e=await this.getDiscoveryData();return this.options.verbose&&this.logDiscoveryResults(e),await this.generateConfigFile(e),this.options.generateManifest&&await this.generateManifest(e),await this.generateSpecificFiles(e),this.getHandlerName()==="Route"&&await this.generateNextEnvTypes(),this.logger.debug(`Generated ${this.getHandlerName()}: ${this.getGenerationSummary(e)}`),e}catch(e){throw this.logger.error(`${this.getHandlerName()} handler failed to generate files: ${e.message}`),this.logger.error(`Stack: ${e.stack||"No stack trace available"}`),e}}async generateConfigFile(e){let r=this.getHandlerName().toLowerCase(),s=Xe.next[`config${r.charAt(0).toUpperCase()}${r.slice(1)}`];if(!s)throw new Error(`No config path defined for ${r} handler. Add config${r.charAt(0).toUpperCase()}${r.slice(1)} to GENERATED_PATHS.next in constants.js`);let i=this.generateConfigContent(e);this.writeGeneratedFile(s,i,`DnDev ${r} config`)}generateConfigContent(e){let r=this.getHandlerName().toLowerCase(),s=ge[r]||r;return`// Auto-generated DnDev config by @donotdev/config
4
+ `;a.appendFile(o,B)}},u=(f,m)=>{if(m.length===0)return f;let v=m.map(I=>typeof I=="object"?JSON.stringify(I,null,2):String(I)).join(" ");return`${f} ${v}`};return{debug:(f,...m)=>{e&&(n?c("DEBUG",f,m):ne.log.message(pe(u(f,m),de.gray)))},verbose:(f,...m)=>{r&&(n?c("VERBOSE",f,m):ne.log.message(u(f,m)))},info:(f,...m)=>{n?c("INFO",f,m):ne.log.info(pe(u(f,m),de.brightCyan))},warn:(f,...m)=>{e&&n?c("WARN",f,m):ne.log.warn(pe(u(f,m),de.brightYellow))},error:(f,...m)=>{e&&n?c("ERROR",f,m):ne.log.error(pe(u(f,m),de.brightRed))},success:(f,...m)=>{e&&n?c("SUCCESS",f,m):ne.log.success(pe(u(f,m),de.brightGreen))},when:(f,m="debug")=>(v,...I)=>{if(f){let L=u(v,I);switch(m){case"verbose":r&&(ne.log.message(L),c("VERBOSE",v,I));break;case"info":ne.log.info(pe(L,de.brightCyan)),c("INFO",v,I);break;case"warn":ne.log.warn(pe(L,de.brightYellow)),c("WARN",v,I);break;case"error":ne.log.error(pe(L,de.brightRed)),c("ERROR",v,I);break;case"success":ne.log.success(pe(L,de.brightGreen)),c("SUCCESS",v,I);break;default:e&&(ne.log.message(pe(L,de.gray)),c("DEBUG",v,I))}}},getLogFilePath:()=>o}}g();Q();import{readFileSync as Fa}from"node:fs";import{join as Ca}from"node:path";import{createRequire as ja}from"node:module";var Da=ja(import.meta.url);function Ta(t){if(!t)return[];try{let e=Ca(t,"package.json"),r=JSON.parse(Fa(e,"utf8")),s=new Set;if(r.peerDependenciesMeta)for(let[i,n]of Object.entries(r.peerDependenciesMeta))n?.optional&&s.add(i);if(r.optionalDependencies)for(let i of Object.keys(r.optionalDependencies))s.add(i);return Array.from(s)}catch{return[]}}function La(t){let e=It.optionalFeatures||[],r=Ta(t);return[...new Set([...e,...r])]}function ur(t){let e=La(t),r=[],s=[];for(let i of e)try{Da.resolve(i,{paths:[t||p.cwd()]}),s.push(i)}catch{r.push(i)}return{missing:r,installed:s}}g();Q();async function fr(){try{let t=V.getInstance(),e=t.resolveAppPath("node_modules/next/package.json");return t.readSync(e,{format:"json"})?.version||"15.0.0"}catch{return"15.0.0"}}async function us(){let t=await fr();return parseInt(t.split(".")[0],10)>=15}function fs(){try{let t=V.getInstance(),e=t.resolveAppPath("package.json"),r=t.readSync(e,{format:"json"});if(!r)return[];let s={...r.dependencies,...r.devDependencies};return Object.keys(s).filter(n=>n.startsWith("@donotdev/")).filter(n=>!It.buildTimePackages.includes(n)).sort()}catch{return[]}}function Ne(t){return t&&typeof t=="object"&&!Array.isArray(t)}g();function ds({logger:t,debug:e=!1}={}){let r=V.getInstance(),s=!1,i=null;if(p.env.DNDEV_APP_ROOT?(i=r.normalizePath(p.env.DNDEV_APP_ROOT),r.pathExists(i)?(r.setAppRoot(i),s=!0,e&&t&&t.debug(`App root set from DNDEV_APP_ROOT: ${i}`)):t&&t.warn(`DNDEV_APP_ROOT path does not exist: ${i}`)):e&&t&&t.debug("DNDEV_APP_ROOT env var not set"),!s){if(r.getRepoRoot()){let a=r.resolveRepoPath("apps");if(r.pathExists(a))try{let o=p.cwd(),c=r.normalizePath(o);if(c.includes("/apps/")){let u=c.indexOf("/apps/"),m=c.substring(u+6).split("/")[0];if(m){let v=r.resolveRepoPath(`apps/${m}`),I=r.resolveRepoPath(`apps/${m}/next.config.js`);r.pathExists(I)&&(i=v,r.setAppRoot(i),s=!0,e&&t&&t.debug(`App root detected from process.cwd(): ${i}`))}}}catch{}}!s&&!i&&(i=p.cwd(),r.setAppRoot(i),s=!0,e&&t&&t.debug(`App root fallback to process.cwd(): ${i}`))}return{appRoot:i,appRootSet:s}}g();g();g();Q();var se=class{constructor(e,r={}){this.options={...r,...this.getHandlerDefaults()},this.logger=me(`Next${this.getHandlerName()}Handler`,this.options.debug,this.options.verbose),this.pathResolver=V.getInstance(),this.configRoot=this.pathResolver.getAppRoot(),this.discovery=this.createDiscovery(e),this.initialize()}getHandlerDefaults(){return{}}logDiscoveryResults(e){}createDiscovery(e){let r={...yt.discovery,...this.options};return new e(this.pathResolver,r)}initialize(){}setAppRoot(e){this.configRoot=e,this.pathResolver.setAppRoot(e)}createNextConfig(){return(e={})=>(this.options.debug&&this.logger.debug(`${this.getHandlerName()} handler initialized`),{...e,webpack:(r,s)=>{let{dev:i,isServer:n,webpack:a}=s;return this.applyViteIgnorePlugin(r,a),this._generateFiles(),e.webpack?e.webpack(r,s):r},rewrites:async function(){try{let r=e.rewrites?await e.rewrites():[],s=this.getAPIRewrites();return this.mergeRewrites(r,s)}catch(r){return this.logger.error(`${this.getHandlerName()} handler failed to merge rewrites: ${r.message}`),this.logger.error(`Stack: ${r.stack||"No stack trace available"}`),[]}}.bind(this)})}async generateFiles(){try{let e=await this.getDiscoveryData();return this.options.verbose&&this.logDiscoveryResults(e),await this.generateConfigFile(e),this.options.generateManifest&&await this.generateManifest(e),await this.generateSpecificFiles(e),this.getHandlerName()==="Route"&&await this.generateNextEnvTypes(),this.logger.debug(`Generated ${this.getHandlerName()}: ${this.getGenerationSummary(e)}`),e}catch(e){throw this.logger.error(`${this.getHandlerName()} handler failed to generate files: ${e.message}`),this.logger.error(`Stack: ${e.stack||"No stack trace available"}`),e}}async generateConfigFile(e){let r=this.getHandlerName().toLowerCase(),s=Xe.next[`config${r.charAt(0).toUpperCase()}${r.slice(1)}`];if(!s)throw new Error(`No config path defined for ${r} handler. Add config${r.charAt(0).toUpperCase()}${r.slice(1)} to GENERATED_PATHS.next in constants.js`);let i=this.generateConfigContent(e);this.writeGeneratedFile(s,i,`DnDev ${r} config`)}generateConfigContent(e){let r=this.getHandlerName().toLowerCase(),s=ge[r]||r;return`// Auto-generated DnDev config by @donotdev/config
5
5
  // Generated at: ${new Date().toISOString()}
6
6
  // Populates _DNDEV_CONFIG_ with discovery results
7
7
 
@@ -23,7 +23,7 @@ if (typeof globalThis !== 'undefined') {
23
23
 
24
24
  // Export for compatibility
25
25
  export default ${r}Config;
26
- `}writeGeneratedFile(e,r,s="file"){let i=this.pathResolver.resolveAppPath(e);return this.pathResolver.writeSync(i,r),this.logger.debug(`Generated ${s}: ${i}`),i}async generateManifest(e){let r=this.createManifestContent(e);this.writeGeneratedFile(this.options.manifestPath,JSON.stringify(r,null,2),`${this.getHandlerName().toLowerCase()} manifest`)}async generateNextEnvTypes(){try{let e=this.pathResolver.resolveAppPath("next-env.d.ts"),r=this.pathResolver.readSync(e,{format:"text"});r&&(this.writeGeneratedFile("next-env.d.ts",r,"Next.js environment types"),this.logger.debug("Generated Next.js environment types"))}catch(e){this.logger.debug(`Could not generate Next.js environment types: ${e.message}`)}}applyViteIgnorePlugin(e,r){return e.plugins=e.plugins||[],e.plugins.push(new r.IgnorePlugin({resourceRegExp:/^vite$/})),e.plugins.push(new r.IgnorePlugin({resourceRegExp:/^@vitejs\//})),e.plugins.push(new r.IgnorePlugin({resourceRegExp:/vite/,contextRegExp:/node_modules/})),e}mergeRewrites(e,r){let s={beforeFiles:r?.beforeFiles||[],afterFiles:r?.afterFiles||[],fallback:r?.fallback||[]};return{beforeFiles:[...Array.isArray(e)?[]:e?.beforeFiles||[],...s.beforeFiles],afterFiles:[...Array.isArray(e)?e:e?.afterFiles||[],...s.afterFiles],fallback:[...Array.isArray(e)?[]:e?.fallback||[],...s.fallback]}}async _generateFiles(){return this.generateFiles()}getHandlerName(){throw new Error("getHandlerName() must be implemented by subclass")}async getDiscoveryData(){throw new Error("getDiscoveryData() must be implemented by subclass")}async generateSpecificFiles(e){throw new Error("generateSpecificFiles() must be implemented by subclass")}async generateAPIHandler(e){return Promise.resolve()}getAPIRewrites(){throw new Error("getAPIRewrites() must be implemented by subclass")}formatAPIResponse(e){throw new Error("formatAPIResponse() must be implemented by subclass")}createManifestContent(e){throw new Error("createManifestContent() must be implemented by subclass")}getGenerationSummary(e){throw new Error("getGenerationSummary() must be implemented by subclass")}};Q();g();g();var he=class t{constructor(e,r={}){if(this.constructor===t)throw new Error("BaseDiscovery is abstract and cannot be instantiated directly");this.pathResolver=e,this.options={...r},p.env.NODE_ENV==="development"&&(this.options.cacheTimeout=Math.max(this.options.cacheTimeout||6e4,3e5)),this.logger=me(this._getDiscoveryType(),this.options.debug,this.options.verbose,{fileLogging:this.options.fileLogging,logDir:this.options.logDir}),this.cache=null,this._lastDiscoveryTime=0}async discover(e=!1){if(!e&&this._isCacheValid())return this.logger.debug("Using cached results"),this.cache;let r=Date.now();try{let s=await this._getPatterns();this.options.verbose&&s&&(typeof s=="object"&&s.pattern?this.logger.verbose(`Pattern: ${s.pattern}`):typeof s=="string"&&this.logger.verbose(`Pattern: ${s}`),s.dirs&&this.logger.verbose(`Search directories: ${s.dirs.slice(0,3).join(", ")}${s.dirs.length>3?` (${s.dirs.length} total)`:""}`));let i=await this._scanFiles(s),n=await this._processFiles(i);this.cache={...n,timestamp:Date.now()};let a=Date.now()-r;return this.logger.debug(`Discovery completed in ${a}ms`),this._lastDiscoveryTime=Date.now(),this.cache}catch(s){return this.logger.error(`${this._getDiscoveryType()} discovery failed during file scanning: ${s.message}`),this.logger.error(`Stack: ${s.stack||"No stack trace available"}`),this._getEmptyResult()}}clearCache(){this.cache=null,this._lastDiscoveryTime=0,this.logger.debug("Cache cleared")}getCachedResults(){return this.cache}_getDiscoveryType(){throw new Error("_getDiscoveryType must be implemented by subclass")}_getPatterns(){throw new Error("_getPatterns must be implemented by subclass")}_getPatternType(){throw new Error("_getPatternType must be implemented by subclass")}async _processFiles(e){throw new Error("_processFiles must be implemented by subclass")}_getEmptyResult(){throw new Error("_getEmptyResult must be implemented by subclass")}_getDiscoverySummary(){throw new Error("_getDiscoverySummary must be implemented by subclass")}async _scanFiles(e){let r=this._getPatternType();return await this.pathResolver.resolveFiles(e,r)}_extractFileNameInfo(e){let r=e.split("/"),s=r[r.length-1],i=s.split(".")[0],n=s.split(".").pop();return{fileName:s,baseName:i,extension:n,directory:r.slice(0,-1).join("/")}}async _processSingleFile(e,r){try{let s=this.pathResolver.getFileInfo(e);return s?await r(s):(this.logger.debug(`Could not get file info: ${e}`),null)}catch(s){return this.logger.debug(`Error processing file ${e}: ${s.message}`),null}}async _batchProcessFiles(e,r){return(await Promise.all(e.map(i=>this._processSingleFile(i,r)))).filter(i=>i!==null)}_isCacheValid(){return this.cache?Date.now()-this.cache.timestamp<this.options.cacheTimeout:!1}};Q();var Yt=class extends he{constructor(e,r={}){super(e,{assets:ce.assets.fallback,assetPatterns:ce.assets.patterns,frameworkPackage:lr.package,assetsPath:lr.assetsPath,modernFormats:ce.assets.modern,...r}),this.hasRunForSession=!1}_getDiscoveryType(){return"Asset"}async _getPatterns(){return await this.pathResolver.resolvePatterns("assets")}_getPatternType(){return"assets"}async _processFiles(e){let r=this.pathResolver.getAppRoot(),s=await this._ensureDefaultAssets(r),i=this.pathResolver.resolveAppPath("public/logo.svg");this.pathResolver.pathExists(i)||this.logger.warn("logo.svg not found in public/. Add your logo.svg to generate PWA assets, or copy from node_modules/@donotdev/ui/assets/logo.svg");let a=[],o=this.pathResolver.resolveAppPath("public/logo.svg");this.pathResolver.pathExists(o)&&this.options.generateAssets!==!1&&(a=(await this._generateMissingAssets(r))?.generated||[]);let{consumerFiles:c}=e,u=await this._processAssetFiles(c),f=this._buildAssetManifest(u),m=await this._readLogoSvgContent("/logo.svg",r);return{assets:u,manifest:{...f,logoSvgContent:m},copiedAssets:s,generatedAssets:a,pwaIcons:this._extractPWAIcons(u)}}_extractPWAIcons(e){let r=[/icon-(\d+)x(\d+)\.(png|jpg|jpeg|webp|svg)/i,/apple-touch-icon/i,/android-chrome/i,/favicon\.(ico|svg)/i];return e.filter(s=>{let i=s.path.split("/").pop()||"";return r.some(n=>n.test(i))}).map(s=>{let i=s.path.split("/").pop()||"",n=i.match(/(\d+)x(\d+)/),a=n?{width:parseInt(n[1]),height:parseInt(n[2])}:this._getDefaultIconSize(i);return{type:"icon",path:s.path.replace(/^\/?public\//,""),size:a,format:s.format||this._getFormatFromPath(s.path),purpose:this._getIconPurpose(i)}})}_getDefaultIconSize(e){return e.includes("apple-touch-icon")?{width:180,height:180}:e.includes("favicon")?{width:32,height:32}:{width:192,height:192}}_getFormatFromPath(e){return e.split(".").pop()?.toLowerCase()||"png"}_getIconPurpose(e){return e.includes("maskable")||e.includes("mask")?"maskable":"any"}_getEmptyResult(){return{assets:[],manifest:this._getEmptyManifest(),copiedAssets:[],timestamp:Date.now()}}_getDiscoverySummary(){let e=this.cache?.assets?.length||0,r=this.cache?.copiedAssets?.length||0,s=this.cache?.copiedAssets?.filter(i=>i.startsWith("fonts/")).length||0;return s>0?`${e} assets, ${r} copied (${s} fonts)`:`${e} assets, ${r} copied`}async discoverAssets(e=!1){return await this.discover(e)}getAssets(){return this.cache?.assets||[]}getManifest(){return this.cache?.manifest||this._getEmptyManifest()}getOptimalAsset(e,r){let s=this.getAssets().map(n=>n.path),i=r||this.options.modernFormats;for(let n of i){let a=`/${e}.${n}`;if(s.includes(a))return a}return null}async _ensureDefaultAssets(e){this.logger.debug("Ensuring default assets with modern format support...");let r=[];try{let s=await this._resolveFrameworkAssetsDir(e);if(this.logger.debug(`Framework assets directory resolved to: ${s}`),!s)return this.logger.debug("Framework assets directory not found, skipping defaults"),r;let i=this.pathResolver.resolveAppPath(_e.public);this.pathResolver.pathExists(i)||(this.pathResolver.mkdir(i),this.logger.debug(`Created public directory: ${i}`));for(let n of this.options.assets)await this._ensureAsset(n,i,s)&&r.push(n);if(this.options.copyFonts!==!1){let n=await this._copyFrameworkFonts(s,i);r.push(...n)}else this.logger.debug("Font copying disabled, skipping framework fonts");r.length>0&&this.logger.debug(`Added ${r.length} default assets from DNDev framework`)}catch(s){this.logger.debug(`Failed to ensure default assets: ${s.message}`)}return r}async _ensureAsset(e,r,s){let i=this.pathResolver.resolveAppPath(`${_e.public}/${e}`);if(this.pathResolver.pathExists(i))return this.logger.debug(`Asset exists: ${e}`),!1;let n=this.pathResolver.normalizePath(`${s}/${e}`);if(this.pathResolver.pathExists(n)){if(await this.pathResolver.copy(n,i))return this.logger.debug(`Copied framework asset: ${e}`),!0;this.logger.debug(`Failed to copy framework asset: ${e}`)}return!1}async _copyFrameworkFonts(e,r){let s=[],i=this.pathResolver.normalizePath(`${e}/fonts`);if(!this.pathResolver.pathExists(i))return this.logger.debug("Framework fonts directory not found, skipping fonts"),s;let n=this.pathResolver.resolveAppPath(`${_e.public}/${_e.fonts}`);this.pathResolver.pathExists(n)||(this.pathResolver.mkdir(n),this.logger.debug(`Created fonts directory: ${n}`));try{let a=await this.pathResolver.findFiles(i,"*",{onlyFiles:!0,ignore:["**/dist/**","**/build/**","**/.git/**"]});for(let o of a){let c=o.split("/").pop()||o.split("\\").pop(),u=this.pathResolver.resolveAppPath(`${_e.public}/${_e.fonts}/${c}`);if(this.pathResolver.pathExists(u)){this.logger.debug(`Font already exists: ${c}`);continue}await this.pathResolver.copy(o,u)?(s.push(`fonts/${c}`),this.logger.debug(`Copied framework font: ${c}`)):this.logger.debug(`Failed to copy font: ${c}`)}s.length>0&&this.logger.debug(`Copied ${s.length} font files from framework`)}catch(a){this.logger.debug(`Error copying fonts: ${a.message}`)}return s}async _processAssetFiles(e){let r=[];for(let s of e)try{let i=this.pathResolver.getFileInfo(s);if(i&&i.isFile){let n=s.split("/").pop()||s.split("\\").pop(),a=this._analyzeAsset(n,i.size);a&&r.push(a)}}catch(i){this.logger.debug(`Error processing asset file ${s}: ${i.message}`)}return this.logger.debug(`Processed ${r.length} assets from ${e.length} files`),r}_analyzeAsset(e,r){let s=this._determineAssetType(e),i=this._determineAssetFormat(e);return this.options.assetPatterns.some(a=>this._matchesPattern(e,a))?{path:`/${e}`,name:e,type:s,format:i,size:r,sizeFormatted:this._formatBytes(r),isModern:this.options.modernFormats.includes(i)}:(this.logger.debug(`Asset ${e} does not match any pattern, skipping`),null)}_determineAssetType(e){let r=e.toLowerCase();if(r.includes("favicon"))return"favicon";if(r.includes("logo"))return"logo";if(r.includes("icon"))return"icon";if(r.includes("apple-touch"))return"apple-touch-icon";if(r.includes("android-chrome"))return"android-icon";if(r.includes("manifest"))return"manifest";let s=e.split(".").pop()?.toLowerCase();return["png","jpg","jpeg","gif","webp","avif","svg"].includes(s)?"image":["woff2","woff","ttf","otf"].includes(s)?"font":["json"].includes(s)?"json":["ico"].includes(s)?"icon":"unknown"}_determineAssetFormat(e){return e.split(".").pop()?.toLowerCase()||"unknown"}_formatBytes(e){if(e===0)return"0 Bytes";let r=1024,s=["Bytes","KB","MB","GB"],i=Math.floor(Math.log(e)/Math.log(r));return parseFloat((e/Math.pow(r,i)).toFixed(2))+" "+s[i]}_matchesPattern(e,r){let s=e.toLowerCase(),i=r.toLowerCase();return s.includes(i.replace("*",""))}_buildAssetManifest(e){let r=e.map(i=>i.path);return{logo:{optimal:this._getOptimalAsset("logo",r,this.options.modernFormats),fallback:this._getOptimalAsset("logo",r,["png","jpg","jpeg"])},favicon:{optimal:this._getOptimalAsset("favicon",r,["svg","ico"]),fallback:this._getOptimalAsset("favicon",r,["ico"])},appleTouchIcon:this._getOptimalAsset("apple-touch-icon",r,["png"]),androidChrome:{192:this._getOptimalAsset("android-chrome-192x192",r,["png"]),512:this._getOptimalAsset("android-chrome-512x512",r,["png"])},manifest:r.find(i=>i.includes("manifest.json"))||null,modernFormats:e.filter(i=>i.isModern).map(i=>i.path),fallbackFormats:e.filter(i=>!i.isModern).map(i=>i.path)}}_getOptimalAsset(e,r,s){for(let i of s){let n=`/${e}.${i}`;if(r.includes(n))return n}return null}async _resolveFrameworkAssetsDir(e){try{let r=this.pathResolver.getRepoRoot(),s=await this._resolvePackage("@donotdev/ui",r);if(!s)return this.logger.debug("@donotdev/ui package not found"),null;let i=this.pathResolver.normalizePath(`${s}/assets`);return this.pathResolver.pathExists(i)?(this.logger.debug(`Using framework assets from: ${i}`),i):(this.logger.debug(`Assets directory not found: ${i}`),null)}catch(r){return this.logger.debug(`Error resolving framework assets directory: ${r.message}`),null}}async _resolvePackage(e,r){try{let s=this.pathResolver.resolveFrameworkPackage(e,r);return s?(this.logger.debug(`Found package: ${s}`),s):(this.logger.debug(`Package ${e} not found`),null)}catch(s){return this.logger.debug(`Error resolving package ${e}: ${s.message}`),null}}_getEmptyManifest(){return{logo:{optimal:null,fallback:null},favicon:{optimal:null,fallback:null},appleTouchIcon:null,androidChrome:{192:null,512:null},manifest:null,modernFormats:[],fallbackFormats:[],logoSvgContent:null}}async _readLogoSvgContent(e,r){if(!e||!e.endsWith(".svg"))return null;try{let s=e.slice(1),i=this.pathResolver.resolveAppPath(`${_e.public}/${s}`);return this.pathResolver.pathExists(i)&&await this.pathResolver.read(i,{format:"text"})||null}catch(s){return this.logger.debug(`Failed to read logo SVG content: ${s.message}`),null}}async _copyFrameworkLogo(e){try{let r=await this._resolveFrameworkAssetsDir(e);if(!r)return this.logger.debug("Framework assets directory not found"),!1;let s=this.pathResolver.normalizePath(`${r}/logo.svg`);if(!this.pathResolver.pathExists(s))return this.logger.debug("Framework logo.svg not found"),!1;let i=this.pathResolver.resolveAppPath(_e.public);this.pathResolver.pathExists(i)||this.pathResolver.mkdir(i);let n=this.pathResolver.resolveAppPath("public/logo.svg");return await this.pathResolver.copy(s,n)}catch(r){return this.logger.debug(`Failed to copy framework logo: ${r.message}`),!1}}async _generateMissingAssets(e){let r=this.pathResolver.resolveAppPath("public/logo.svg"),s=this.pathResolver.resolveAppPath("public");if(!this.pathResolver.pathExists(r))return this.logger.debug("logo.svg not found in public/, skipping asset generation"),{generated:[],skipped:[],error:"logo.svg not found in public/"};let i=[{name:"favicon.ico",size:32,format:"ico"},{name:"apple-touch-icon.png",size:180,format:"png"},{name:"icon-192x192.png",size:192,format:"png"},{name:"icon-512x512.png",size:512,format:"png"}],n=[{name:"favicon.svg",format:"svg"}],a=[],o=[];try{let c=await this.pathResolver.read(r,{format:"text"});if(!c)return{generated:[],skipped:[...n,...i].map(f=>f.name),error:"Failed to read logo.svg"};for(let f of n){let m=`${s}/${f.name}`;if(this.pathResolver.pathExists(m)){o.push(f.name);continue}try{await this.pathResolver.write(`public/${f.name}`,c),a.push(f.name)}catch(v){this.logger.debug(`Failed to copy ${f.name}: ${v.message}`),o.push(f.name)}}let u=await Promise.resolve().then(()=>ya(Cn(),1)).catch(()=>null);if(!u)this.logger.debug("sharp not installed, skipping PNG/ICO generation"),o.push(...i.map(f=>f.name));else for(let f of i){let m=`${s}/${f.name}`;if(this.pathResolver.pathExists(m)){o.push(f.name);continue}try{let v=u.default(c).resize(f.size,f.size,{fit:"contain",background:{r:255,g:255,b:255,alpha:0}}),I;f.format==="ico"?I=await v.toFormat("png").toBuffer():I=await v.toFormat(f.format).toBuffer(),await this.pathResolver.write(`public/${f.name}`,I),a.push(f.name)}catch(v){this.logger.debug(`Failed to generate ${f.name}: ${v.message}`),o.push(f.name)}}return{generated:a,skipped:o,error:null}}catch(c){return this.logger.debug(`Asset generation failed: ${c.message}`),{generated:[],skipped:requiredAssets.map(u=>u.name),error:c.message}}}};var qr={data:null},Ur=class extends se{constructor(e={}){super(Yt,e)}getHandlerDefaults(){return{manifestPath:Xe.next.assetManifest,generateManifest:!0,optimizeImages:!0,modernFormats:["webp","avif","png","jpg","jpeg"]}}createDiscovery(e){return new e(this.pathResolver,this.options)}getHandlerName(){return"Asset"}generateConfigContent(e){let r=e.manifest?.logoSvgContent||null;return`// Auto-generated DnDev config by @donotdev/config
26
+ `}writeGeneratedFile(e,r,s="file"){let i=this.pathResolver.resolveAppPath(e);return this.pathResolver.writeSync(i,r),this.logger.debug(`Generated ${s}: ${i}`),i}async generateManifest(e){let r=this.createManifestContent(e);this.writeGeneratedFile(this.options.manifestPath,JSON.stringify(r,null,2),`${this.getHandlerName().toLowerCase()} manifest`)}async generateNextEnvTypes(){try{let e=this.pathResolver.resolveAppPath("next-env.d.ts"),r=this.pathResolver.readSync(e,{format:"text"});r&&(this.writeGeneratedFile("next-env.d.ts",r,"Next.js environment types"),this.logger.debug("Generated Next.js environment types"))}catch(e){this.logger.debug(`Could not generate Next.js environment types: ${e.message}`)}}applyViteIgnorePlugin(e,r){return e.plugins=e.plugins||[],e.plugins.push(new r.IgnorePlugin({resourceRegExp:/^vite$/})),e.plugins.push(new r.IgnorePlugin({resourceRegExp:/^@vitejs\//})),e.plugins.push(new r.IgnorePlugin({resourceRegExp:/vite/,contextRegExp:/node_modules/})),e}mergeRewrites(e,r){let s={beforeFiles:r?.beforeFiles||[],afterFiles:r?.afterFiles||[],fallback:r?.fallback||[]};return{beforeFiles:[...Array.isArray(e)?[]:e?.beforeFiles||[],...s.beforeFiles],afterFiles:[...Array.isArray(e)?e:e?.afterFiles||[],...s.afterFiles],fallback:[...Array.isArray(e)?[]:e?.fallback||[],...s.fallback]}}async _generateFiles(){return this.generateFiles()}getHandlerName(){throw new Error("getHandlerName() must be implemented by subclass")}async getDiscoveryData(){throw new Error("getDiscoveryData() must be implemented by subclass")}async generateSpecificFiles(e){throw new Error("generateSpecificFiles() must be implemented by subclass")}async generateAPIHandler(e){return Promise.resolve()}getAPIRewrites(){throw new Error("getAPIRewrites() must be implemented by subclass")}formatAPIResponse(e){throw new Error("formatAPIResponse() must be implemented by subclass")}createManifestContent(e){throw new Error("createManifestContent() must be implemented by subclass")}getGenerationSummary(e){throw new Error("getGenerationSummary() must be implemented by subclass")}};Q();g();g();var he=class t{constructor(e,r={}){if(this.constructor===t)throw new Error("BaseDiscovery is abstract and cannot be instantiated directly");this.pathResolver=e,this.options={...r},p.env.NODE_ENV==="development"&&(this.options.cacheTimeout=Math.max(this.options.cacheTimeout||6e4,3e5)),this.logger=me(this._getDiscoveryType(),this.options.debug,this.options.verbose,{fileLogging:this.options.fileLogging,logDir:this.options.logDir}),this.cache=null,this._lastDiscoveryTime=0}async discover(e=!1){if(!e&&this._isCacheValid())return this.logger.debug("Using cached results"),this.cache;let r=Date.now();try{let s=await this._getPatterns();this.options.verbose&&s&&(typeof s=="object"&&s.pattern?this.logger.verbose(`Pattern: ${s.pattern}`):typeof s=="string"&&this.logger.verbose(`Pattern: ${s}`),s.dirs&&this.logger.verbose(`Search directories: ${s.dirs.slice(0,3).join(", ")}${s.dirs.length>3?` (${s.dirs.length} total)`:""}`));let i=await this._scanFiles(s),n=await this._processFiles(i);this.cache={...n,timestamp:Date.now()};let a=Date.now()-r;return this.logger.debug(`Discovery completed in ${a}ms`),this._lastDiscoveryTime=Date.now(),this.cache}catch(s){return this.logger.error(`${this._getDiscoveryType()} discovery failed during file scanning: ${s.message}`),this.logger.error(`Stack: ${s.stack||"No stack trace available"}`),this._getEmptyResult()}}clearCache(){this.cache=null,this._lastDiscoveryTime=0,this.logger.debug("Cache cleared")}getCachedResults(){return this.cache}_getDiscoveryType(){throw new Error("_getDiscoveryType must be implemented by subclass")}_getPatterns(){throw new Error("_getPatterns must be implemented by subclass")}_getPatternType(){throw new Error("_getPatternType must be implemented by subclass")}async _processFiles(e){throw new Error("_processFiles must be implemented by subclass")}_getEmptyResult(){throw new Error("_getEmptyResult must be implemented by subclass")}_getDiscoverySummary(){throw new Error("_getDiscoverySummary must be implemented by subclass")}async _scanFiles(e){let r=this._getPatternType();return await this.pathResolver.resolveFiles(e,r)}_extractFileNameInfo(e){let r=e.split("/"),s=r[r.length-1],i=s.split(".")[0],n=s.split(".").pop();return{fileName:s,baseName:i,extension:n,directory:r.slice(0,-1).join("/")}}async _processSingleFile(e,r){try{let s=this.pathResolver.getFileInfo(e);return s?await r(s):(this.logger.debug(`Could not get file info: ${e}`),null)}catch(s){return this.logger.debug(`Error processing file ${e}: ${s.message}`),null}}async _batchProcessFiles(e,r){return(await Promise.all(e.map(i=>this._processSingleFile(i,r)))).filter(i=>i!==null)}_isCacheValid(){return this.cache?Date.now()-this.cache.timestamp<this.options.cacheTimeout:!1}};Q();var Yt=class extends he{constructor(e,r={}){super(e,{assets:ce.assets.fallback,assetPatterns:ce.assets.patterns,frameworkPackage:lr.package,assetsPath:lr.assetsPath,modernFormats:ce.assets.modern,...r}),this.hasRunForSession=!1}_getDiscoveryType(){return"Asset"}async _getPatterns(){return await this.pathResolver.resolvePatterns("assets")}_getPatternType(){return"assets"}async _processFiles(e){let r=this.pathResolver.getAppRoot(),s=await this._ensureDefaultAssets(r),i=this.pathResolver.resolveAppPath("public/logo.svg");this.pathResolver.pathExists(i)||this.logger.warn("logo.svg not found in public/. Add your logo.svg to generate PWA assets, or copy from node_modules/@donotdev/ui/assets/logo.svg");let a=[],o=this.pathResolver.resolveAppPath("public/logo.svg");this.pathResolver.pathExists(o)&&this.options.generateAssets!==!1&&(a=(await this._generateMissingAssets(r))?.generated||[]);let{consumerFiles:c}=e,u=await this._processAssetFiles(c),f=this._buildAssetManifest(u),m=await this._readLogoSvgContent("/logo.svg",r);return{assets:u,manifest:{...f,logoSvgContent:m},copiedAssets:s,generatedAssets:a,pwaIcons:this._extractPWAIcons(u)}}_extractPWAIcons(e){let r=[/icon-(\d+)x(\d+)\.(png|jpg|jpeg|webp|svg)/i,/apple-touch-icon/i,/android-chrome/i,/favicon\.(ico|svg)/i];return e.filter(s=>{let i=s.path.split("/").pop()||"";return r.some(n=>n.test(i))}).map(s=>{let i=s.path.split("/").pop()||"",n=i.match(/(\d+)x(\d+)/),a=n?{width:parseInt(n[1]),height:parseInt(n[2])}:this._getDefaultIconSize(i);return{type:"icon",path:s.path.replace(/^\/?public\//,""),size:a,format:s.format||this._getFormatFromPath(s.path),purpose:this._getIconPurpose(i)}})}_getDefaultIconSize(e){return e.includes("apple-touch-icon")?{width:180,height:180}:e.includes("favicon")?{width:32,height:32}:{width:192,height:192}}_getFormatFromPath(e){return e.split(".").pop()?.toLowerCase()||"png"}_getIconPurpose(e){return e.includes("maskable")||e.includes("mask")?"maskable":"any"}_getEmptyResult(){return{assets:[],manifest:this._getEmptyManifest(),copiedAssets:[],timestamp:Date.now()}}_getDiscoverySummary(){let e=this.cache?.assets?.length||0,r=this.cache?.copiedAssets?.length||0,s=this.cache?.copiedAssets?.filter(i=>i.startsWith("fonts/")).length||0;return s>0?`${e} assets, ${r} copied (${s} fonts)`:`${e} assets, ${r} copied`}async discoverAssets(e=!1){return await this.discover(e)}getAssets(){return this.cache?.assets||[]}getManifest(){return this.cache?.manifest||this._getEmptyManifest()}getOptimalAsset(e,r){let s=this.getAssets().map(n=>n.path),i=r||this.options.modernFormats;for(let n of i){let a=`/${e}.${n}`;if(s.includes(a))return a}return null}async _ensureDefaultAssets(e){this.logger.debug("Ensuring default assets with modern format support...");let r=[];try{let s=await this._resolveFrameworkAssetsDir(e);if(this.logger.debug(`Framework assets directory resolved to: ${s}`),!s)return this.logger.debug("Framework assets directory not found, skipping defaults"),r;let i=this.pathResolver.resolveAppPath(Ae.public);this.pathResolver.pathExists(i)||(this.pathResolver.mkdir(i),this.logger.debug(`Created public directory: ${i}`));for(let n of this.options.assets)await this._ensureAsset(n,i,s)&&r.push(n);if(this.options.copyFonts!==!1){let n=await this._copyFrameworkFonts(s,i);r.push(...n)}else this.logger.debug("Font copying disabled, skipping framework fonts");r.length>0&&this.logger.debug(`Added ${r.length} default assets from DNDev framework`)}catch(s){this.logger.debug(`Failed to ensure default assets: ${s.message}`)}return r}async _ensureAsset(e,r,s){let i=this.pathResolver.resolveAppPath(`${Ae.public}/${e}`);if(this.pathResolver.pathExists(i))return this.logger.debug(`Asset exists: ${e}`),!1;let n=this.pathResolver.normalizePath(`${s}/${e}`);if(this.pathResolver.pathExists(n)){if(await this.pathResolver.copy(n,i))return this.logger.debug(`Copied framework asset: ${e}`),!0;this.logger.debug(`Failed to copy framework asset: ${e}`)}return!1}async _copyFrameworkFonts(e,r){let s=[],i=this.pathResolver.normalizePath(`${e}/fonts`);if(!this.pathResolver.pathExists(i))return this.logger.debug("Framework fonts directory not found, skipping fonts"),s;let n=this.pathResolver.resolveAppPath(`${Ae.public}/${Ae.fonts}`);this.pathResolver.pathExists(n)||(this.pathResolver.mkdir(n),this.logger.debug(`Created fonts directory: ${n}`));try{let a=await this.pathResolver.findFiles(i,"*",{onlyFiles:!0,ignore:["**/dist/**","**/build/**","**/.git/**"]});for(let o of a){let c=o.split("/").pop()||o.split("\\").pop(),u=this.pathResolver.resolveAppPath(`${Ae.public}/${Ae.fonts}/${c}`);if(this.pathResolver.pathExists(u)){this.logger.debug(`Font already exists: ${c}`);continue}await this.pathResolver.copy(o,u)?(s.push(`fonts/${c}`),this.logger.debug(`Copied framework font: ${c}`)):this.logger.debug(`Failed to copy font: ${c}`)}s.length>0&&this.logger.debug(`Copied ${s.length} font files from framework`)}catch(a){this.logger.debug(`Error copying fonts: ${a.message}`)}return s}async _processAssetFiles(e){let r=[];for(let s of e)try{let i=this.pathResolver.getFileInfo(s);if(i&&i.isFile){let n=s.split("/").pop()||s.split("\\").pop(),a=this._analyzeAsset(n,i.size);a&&r.push(a)}}catch(i){this.logger.debug(`Error processing asset file ${s}: ${i.message}`)}return this.logger.debug(`Processed ${r.length} assets from ${e.length} files`),r}_analyzeAsset(e,r){let s=this._determineAssetType(e),i=this._determineAssetFormat(e);return this.options.assetPatterns.some(a=>this._matchesPattern(e,a))?{path:`/${e}`,name:e,type:s,format:i,size:r,sizeFormatted:this._formatBytes(r),isModern:this.options.modernFormats.includes(i)}:(this.logger.debug(`Asset ${e} does not match any pattern, skipping`),null)}_determineAssetType(e){let r=e.toLowerCase();if(r.includes("favicon"))return"favicon";if(r.includes("logo"))return"logo";if(r.includes("icon"))return"icon";if(r.includes("apple-touch"))return"apple-touch-icon";if(r.includes("android-chrome"))return"android-icon";if(r.includes("manifest"))return"manifest";let s=e.split(".").pop()?.toLowerCase();return["png","jpg","jpeg","gif","webp","avif","svg"].includes(s)?"image":["woff2","woff","ttf","otf"].includes(s)?"font":["json"].includes(s)?"json":["ico"].includes(s)?"icon":"unknown"}_determineAssetFormat(e){return e.split(".").pop()?.toLowerCase()||"unknown"}_formatBytes(e){if(e===0)return"0 Bytes";let r=1024,s=["Bytes","KB","MB","GB"],i=Math.floor(Math.log(e)/Math.log(r));return parseFloat((e/Math.pow(r,i)).toFixed(2))+" "+s[i]}_matchesPattern(e,r){let s=e.toLowerCase(),i=r.toLowerCase();return s.includes(i.replace("*",""))}_buildAssetManifest(e){let r=e.map(i=>i.path);return{logo:{optimal:this._getOptimalAsset("logo",r,this.options.modernFormats),fallback:this._getOptimalAsset("logo",r,["png","jpg","jpeg"])},favicon:{optimal:this._getOptimalAsset("favicon",r,["svg","ico"]),fallback:this._getOptimalAsset("favicon",r,["ico"])},appleTouchIcon:this._getOptimalAsset("apple-touch-icon",r,["png"]),androidChrome:{192:this._getOptimalAsset("android-chrome-192x192",r,["png"]),512:this._getOptimalAsset("android-chrome-512x512",r,["png"])},manifest:r.find(i=>i.includes("manifest.json"))||null,modernFormats:e.filter(i=>i.isModern).map(i=>i.path),fallbackFormats:e.filter(i=>!i.isModern).map(i=>i.path)}}_getOptimalAsset(e,r,s){for(let i of s){let n=`/${e}.${i}`;if(r.includes(n))return n}return null}async _resolveFrameworkAssetsDir(e){try{let r=this.pathResolver.getRepoRoot(),s=await this._resolvePackage("@donotdev/ui",r);if(!s)return this.logger.debug("@donotdev/ui package not found"),null;let i=this.pathResolver.normalizePath(`${s}/assets`);return this.pathResolver.pathExists(i)?(this.logger.debug(`Using framework assets from: ${i}`),i):(this.logger.debug(`Assets directory not found: ${i}`),null)}catch(r){return this.logger.debug(`Error resolving framework assets directory: ${r.message}`),null}}async _resolvePackage(e,r){try{let s=this.pathResolver.resolveFrameworkPackage(e,r);return s?(this.logger.debug(`Found package: ${s}`),s):(this.logger.debug(`Package ${e} not found`),null)}catch(s){return this.logger.debug(`Error resolving package ${e}: ${s.message}`),null}}_getEmptyManifest(){return{logo:{optimal:null,fallback:null},favicon:{optimal:null,fallback:null},appleTouchIcon:null,androidChrome:{192:null,512:null},manifest:null,modernFormats:[],fallbackFormats:[],logoSvgContent:null}}async _readLogoSvgContent(e,r){if(!e||!e.endsWith(".svg"))return null;try{let s=e.slice(1),i=this.pathResolver.resolveAppPath(`${Ae.public}/${s}`);return this.pathResolver.pathExists(i)&&await this.pathResolver.read(i,{format:"text"})||null}catch(s){return this.logger.debug(`Failed to read logo SVG content: ${s.message}`),null}}async _copyFrameworkLogo(e){try{let r=await this._resolveFrameworkAssetsDir(e);if(!r)return this.logger.debug("Framework assets directory not found"),!1;let s=this.pathResolver.normalizePath(`${r}/logo.svg`);if(!this.pathResolver.pathExists(s))return this.logger.debug("Framework logo.svg not found"),!1;let i=this.pathResolver.resolveAppPath(Ae.public);this.pathResolver.pathExists(i)||this.pathResolver.mkdir(i);let n=this.pathResolver.resolveAppPath("public/logo.svg");return await this.pathResolver.copy(s,n)}catch(r){return this.logger.debug(`Failed to copy framework logo: ${r.message}`),!1}}async _generateMissingAssets(e){let r=this.pathResolver.resolveAppPath("public/logo.svg"),s=this.pathResolver.resolveAppPath("public");if(!this.pathResolver.pathExists(r))return this.logger.debug("logo.svg not found in public/, skipping asset generation"),{generated:[],skipped:[],error:"logo.svg not found in public/"};let i=[{name:"favicon.ico",size:32,format:"ico"},{name:"apple-touch-icon.png",size:180,format:"png"},{name:"icon-192x192.png",size:192,format:"png"},{name:"icon-512x512.png",size:512,format:"png"}],n=[{name:"favicon.svg",format:"svg"}],a=[],o=[];try{let c=await this.pathResolver.read(r,{format:"text"});if(!c)return{generated:[],skipped:[...n,...i].map(f=>f.name),error:"Failed to read logo.svg"};for(let f of n){let m=`${s}/${f.name}`;if(this.pathResolver.pathExists(m)){o.push(f.name);continue}try{await this.pathResolver.write(`public/${f.name}`,c),a.push(f.name)}catch(v){this.logger.debug(`Failed to copy ${f.name}: ${v.message}`),o.push(f.name)}}let u=await Promise.resolve().then(()=>ya(Cn(),1)).catch(()=>null);if(!u)this.logger.debug("sharp not installed, skipping PNG/ICO generation"),o.push(...i.map(f=>f.name));else for(let f of i){let m=`${s}/${f.name}`;if(this.pathResolver.pathExists(m)){o.push(f.name);continue}try{let v=u.default(c).resize(f.size,f.size,{fit:"contain",background:{r:255,g:255,b:255,alpha:0}}),I;f.format==="ico"?I=await v.toFormat("png").toBuffer():I=await v.toFormat(f.format).toBuffer(),await this.pathResolver.write(`public/${f.name}`,I),a.push(f.name)}catch(v){this.logger.debug(`Failed to generate ${f.name}: ${v.message}`),o.push(f.name)}}return{generated:a,skipped:o,error:null}}catch(c){return this.logger.debug(`Asset generation failed: ${c.message}`),{generated:[],skipped:requiredAssets.map(u=>u.name),error:c.message}}}};var qr={data:null},Ur=class extends se{constructor(e={}){super(Yt,e)}getHandlerDefaults(){return{manifestPath:Xe.next.assetManifest,generateManifest:!0,optimizeImages:!0,modernFormats:["webp","avif","png","jpg","jpeg"]}}createDiscovery(e){return new e(this.pathResolver,this.options)}getHandlerName(){return"Asset"}generateConfigContent(e){let r=e.manifest?.logoSvgContent||null;return`// Auto-generated DnDev config by @donotdev/config
27
27
  // Generated at: ${new Date().toISOString()}
28
28
  // Populates _DNDEV_CONFIG_ with discovery results
29
29
 
@@ -120,7 +120,7 @@ ${r}
120
120
  export const imageAssets = ${JSON.stringify(e.map(s=>s.path),null,2)};
121
121
 
122
122
  export default imageConfigs;
123
- `}};function jn(t={}){return new Ur(t)}g();g();Q();var Qt=class extends he{constructor(e,r={}){super(e,{fallbackLanguage:"en",...r})}_getDiscoveryType(){return"I18n"}async _getPatterns(){return await this.pathResolver.resolvePatterns("i18n")}_getPatternType(){return"i18n"}async _processFiles(e){let r=this.pathResolver.getAppRoot(),s=this.pathResolver.getRepoRoot();if(!r||r===s)throw this.logger.error(`I18n discovery: appRoot not properly set (appRoot: ${r}, repoRoot: ${s})`),new Error("App root not set before i18n discovery. Ensure configResolved hook has run.");this.logger.debug(`I18n discovery: appRoot=${r}, repoRoot=${s}`);let i=await this._getPatterns();this.logger.debug(`I18n patterns - eager: ${i.eager.length}, lazy: ${i.lazy.length}, framework eager: ${i.framework?.eager?.length||0}, framework lazy: ${i.framework?.lazy?.length||0}`),this.logger.debug(`isMonorepo: ${this.pathResolver.isMonorepo()}, repoRoot: ${this.pathResolver.getRepoRoot()}`);let n=Ft("i18n"),a=i.eager||[],o=i.lazy||[],c=i.framework?.eager||[],u=i.framework?.lazy||[];this.logger.debug(`Resolved patterns - eager: ${a.join(", ")}, lazy: ${o.join(", ")}, framework eager: ${c.join(", ")}, framework lazy: ${u.join(", ")}`),c.length===0&&u.length===0&&this.logger.error(`\u26A0\uFE0F Framework i18n patterns are EMPTY! isMonorepo=${this.pathResolver.isMonorepo()}, repoRoot=${this.pathResolver.getRepoRoot()}`);let f=this.pathResolver.normalizePath(r),m=this.pathResolver.normalizePath(s),v=(O,U)=>{let z=this.pathResolver.normalizePath(O),Y=this.pathResolver.normalizePath(U);return z.startsWith(Y)?z.slice(Y.length+1):z},I=a.map(O=>v(O,r)),L=o.map(O=>v(O,r)),B=c.map(O=>v(O,s)),oe=u.map(O=>v(O,s)),Ue={...n,onlyFiles:!0,absolute:!0,braceExpansion:!0,extglob:!0,globstar:!0,cwd:r},fe=await this.pathResolver._globWithNormalization(I,Ue),Re=await this.pathResolver._globWithNormalization(L,Ue),$e={...n,onlyFiles:!0,absolute:!0,braceExpansion:!0,extglob:!0,globstar:!0,cwd:s,ignore:n.ignore?.filter(O=>O!=="**/node_modules/**")||[]};this.logger.debug(`\u{1F50D} Searching framework patterns with cwd: ${s}, ignore: ${JSON.stringify($e.ignore)}`);let le=await this.pathResolver._globWithNormalization(B,$e),ke=await this.pathResolver._globWithNormalization(oe,$e);this.logger.debug(`Found ${fe.length} eager, ${Re.length} lazy, ${le.length} framework eager, ${ke.length} framework lazy files`),le.length>0?this.logger.debug(`Framework eager files (first 3): ${le.slice(0,3).join(", ")}`):this.logger.error(`\u274C NO framework eager files found! Patterns were: ${c.join(", ")}`),ke.length>0?this.logger.debug(`Framework lazy files (first 3): ${ke.slice(0,3).join(", ")}`):this.logger.error(`\u274C NO framework lazy files found! Patterns were: ${u.join(", ")}`);let gt=[...new Set([...fe,...Re,...le,...ke])],qe=new Set([...fe,...le]),M={mapping:{},content:{},eagerNamespaces:new Set,allNamespaces:new Set,supportedLanguages:new Set,files:[]},Ge=new Map,D=[...le,...ke];for(let O of D){let U=this._processTranslationFile(O,le.includes(O),r);if(U){let z=`${U.namespace}_${U.language}`;Ge.set(z,U),M.allNamespaces.add(U.namespace),M.supportedLanguages.add(U.language),le.includes(O)&&M.eagerNamespaces.add(U.namespace)}}let He=new Set;for(let O of gt){if(D.includes(O))continue;let U=this._processTranslationFile(O,qe.has(O),r);if(U){let{namespace:z,language:Y,importPath:pt,content:rr}=U,mt=`${U.namespace}_${U.language}`;if(Ge.has(mt)){let sr=Ge.get(mt);U.content=this._mergeTranslations(sr.content,rr)}M.allNamespaces.add(z),M.supportedLanguages.add(Y),He.add(Y),qe.has(O)&&M.eagerNamespaces.add(z),M.mapping[z]||(M.mapping[z]={}),M.mapping[z][Y]=pt,U.content&&(M.content[z]||(M.content[z]={}),M.content[z][Y]=U.content),M.files.push({path:O,relativePath:this.pathResolver.getRelativePath(O),namespace:z,language:Y,eager:qe.has(O),size:U.content?JSON.stringify(U.content).length:0})}}for(let[O,U]of Ge){let[z,Y]=O.split("_");(!M.mapping[z]||!M.mapping[z][Y])&&(M.mapping[z]||(M.mapping[z]={}),M.mapping[z][Y]=U.importPath,M.content[z]||(M.content[z]={}),M.content[z][Y]=U.content)}let Te=He.size>0?[...He].sort():[this.options.fallbackLanguage];return{mapping:M.mapping,content:M.content,eagerNamespaces:[...M.eagerNamespaces].sort(),allNamespaces:[...M.allNamespaces].sort(),supportedLanguages:Te,fallbackLanguage:this.options.fallbackLanguage,files:M.files}}_getEmptyResult(){return{mapping:{},content:{},eagerNamespaces:[],allNamespaces:["common"],supportedLanguages:[this.options.fallbackLanguage],fallbackLanguage:this.options.fallbackLanguage,files:[],timestamp:Date.now()}}_getDiscoverySummary(){return`${this.cache?.allNamespaces?.length||0} namespaces, ${this.cache?.supportedLanguages?.length||0} languages`}async discover(e=!1){if(!e&&this._isCacheValid())return this.logger.debug("Using cached results"),this.cache;let r=Date.now();try{let s=await this._processFiles([]);this.cache={...s,timestamp:Date.now()};let i=Date.now()-r;return this.logger.debug(`Discovery completed in ${i}ms`),this._lastDiscoveryTime=Date.now(),this.cache}catch(s){throw this.logger.error(`I18n discovery failed: ${s.message}`),s}}async discoverTranslations(e=!1){return await this.discover(e)}getMapping(){return this.cache?.mapping||{}}getLanguages(){return this.cache?.supportedLanguages||[this.options.fallbackLanguage]}getNamespaces(){return this.cache?.allNamespaces||["common"]}getEagerNamespaces(){return this.cache?.eagerNamespaces||[]}_processTranslationFile(e,r,s){let i=e.split("/").pop()||e.split("\\").pop()||"",n=i.match(/^([^_]+)_([^.]+)\.json$/);if(!n)return this.logger.debug(`Invalid translation file name format: ${i}`),null;let[,a,o]=n;if(!a||!o)return this.logger.debug(`Invalid namespace or language in file: ${i}`),null;let u="./"+this.pathResolver.getRelativePath(e).replace(/\\/g,"/"),f;try{if(f=this.pathResolver.readSync(e,{format:"json"}),!f)return this.logger.debug(`Could not read file: ${e}`),null}catch(m){return this.logger.debug(`Error parsing JSON from ${e}: ${m.message}`),null}return{namespace:a,language:o,importPath:u,content:f}}_mergeTranslations(e,r){let s={...e};for(let[i,n]of Object.entries(r))typeof n=="object"&&n!==null&&!Array.isArray(n)?s[i]=this._mergeTranslations(s[i]||{},n):s[i]=n;return s}};Q();var Gr=class extends se{constructor(e={}){super(Qt,e)}getHandlerDefaults(){return{generateI18nProvider:!1,generateTranslationHooks:!1,manifestPath:"public/i18n-manifest.json",fallbackLanguage:"en"}}createDiscovery(e){let r={...yt.discovery,...this.options,fallbackLanguage:this.options.fallbackLanguage};return new e(this.pathResolver,r)}getHandlerName(){return"I18n"}logDiscoveryResults(e){let r=e.supportedLanguages||[],s=Object.keys(e.mapping||{}).filter(i=>i!=="default").length||0;this.logger.info(`\u{1F310} I18n: ${r.length} languages, ${s} namespaces`)}async getDiscoveryData(){return await this.discovery.discoverTranslations()}getAPIRewrites(){return{beforeFiles:[],afterFiles:[{source:"/api/i18n",destination:"/api/i18n/route"},{source:"/api/translations/:namespace/:language",destination:"/api/translations/[namespace]/[language]/route"}],fallback:[]}}formatAPIResponse(e){return{mapping:e.mapping,languages:e.supportedLanguages,namespaces:e.allNamespaces,eagerNamespaces:e.eagerNamespaces,fallbackLanguage:e.fallbackLanguage,stats:e.stats,timestamp:e.timestamp}}createManifestContent(e){return{languages:e.supportedLanguages,namespaces:e.allNamespaces,eagerNamespaces:e.eagerNamespaces,fallbackLanguage:e.fallbackLanguage,stats:e.stats,generatedAt:new Date().toISOString()}}getGenerationSummary(e){let r=e.stats||{},s=r.totalNamespaces||0,i=r.totalLanguages||0;return`${s} namespaces, ${i} languages`}async generateSpecificFiles(e){this.options.generateManifest&&await this.generateManifest(e),await this.generateAPIHandler(e)}async generateI18n(){let e=await this.getDiscoveryData();await this.generateConfigFile(e)}async generateConfigFile(e){return super.generateConfigFile(e)}generateConfigContent(e){let{mapping:r,supportedLanguages:s,eagerNamespaces:i,fallbackLanguage:n,content:a}=e;return`// Auto-generated DnDev config by @donotdev/config
123
+ `}};function jn(t={}){return new Ur(t)}g();g();Q();var Qt=class extends he{constructor(e,r={}){super(e,{fallbackLanguage:"en",...r})}_getDiscoveryType(){return"I18n"}async _getPatterns(){return await this.pathResolver.resolvePatterns("i18n")}_getPatternType(){return"i18n"}async _processFiles(e){let r=this.pathResolver.getAppRoot(),s=this.pathResolver.getRepoRoot();if(!r||r===s)throw this.logger.error(`I18n discovery: appRoot not properly set (appRoot: ${r}, repoRoot: ${s})`),new Error("App root not set before i18n discovery. Ensure configResolved hook has run.");this.logger.debug(`I18n discovery: appRoot=${r}, repoRoot=${s}`);let i=await this._getPatterns();this.logger.debug(`I18n patterns - eager: ${i.eager.length}, lazy: ${i.lazy.length}, framework eager: ${i.framework?.eager?.length||0}, framework lazy: ${i.framework?.lazy?.length||0}`),this.logger.debug(`isMonorepo: ${this.pathResolver.isMonorepo()}, repoRoot: ${this.pathResolver.getRepoRoot()}`);let n=Ft("i18n"),a=i.eager||[],o=i.lazy||[],c=i.framework?.eager||[],u=i.framework?.lazy||[];this.logger.debug(`Resolved patterns - eager: ${a.join(", ")}, lazy: ${o.join(", ")}, framework eager: ${c.join(", ")}, framework lazy: ${u.join(", ")}`),c.length===0&&u.length===0&&this.logger.error(`\u26A0\uFE0F Framework i18n patterns are EMPTY! isMonorepo=${this.pathResolver.isMonorepo()}, repoRoot=${this.pathResolver.getRepoRoot()}`);let f=this.pathResolver.normalizePath(r),m=this.pathResolver.normalizePath(s),v=(O,U)=>{let z=this.pathResolver.normalizePath(O),Y=this.pathResolver.normalizePath(U);return z.startsWith(Y)?z.slice(Y.length+1):z},I=a.map(O=>v(O,r)),L=o.map(O=>v(O,r)),B=c.map(O=>v(O,s)),oe=u.map(O=>v(O,s)),Be={...n,onlyFiles:!0,absolute:!0,braceExpansion:!0,extglob:!0,globstar:!0,cwd:r},fe=await this.pathResolver._globWithNormalization(I,Be),Re=await this.pathResolver._globWithNormalization(L,Be),Ue={...n,onlyFiles:!0,absolute:!0,braceExpansion:!0,extglob:!0,globstar:!0,cwd:s,ignore:n.ignore?.filter(O=>O!=="**/node_modules/**")||[]};this.logger.debug(`\u{1F50D} Searching framework patterns with cwd: ${s}, ignore: ${JSON.stringify(Ue.ignore)}`);let le=await this.pathResolver._globWithNormalization(B,Ue),$e=await this.pathResolver._globWithNormalization(oe,Ue);this.logger.debug(`Found ${fe.length} eager, ${Re.length} lazy, ${le.length} framework eager, ${$e.length} framework lazy files`),le.length>0?this.logger.debug(`Framework eager files (first 3): ${le.slice(0,3).join(", ")}`):this.logger.error(`\u274C NO framework eager files found! Patterns were: ${c.join(", ")}`),$e.length>0?this.logger.debug(`Framework lazy files (first 3): ${$e.slice(0,3).join(", ")}`):this.logger.error(`\u274C NO framework lazy files found! Patterns were: ${u.join(", ")}`);let gt=[...new Set([...fe,...Re,...le,...$e])],qe=new Set([...fe,...le]),M={mapping:{},content:{},eagerNamespaces:new Set,allNamespaces:new Set,supportedLanguages:new Set,files:[]},Ge=new Map,D=[...le,...$e];for(let O of D){let U=this._processTranslationFile(O,le.includes(O),r);if(U){let z=`${U.namespace}_${U.language}`;Ge.set(z,U),M.allNamespaces.add(U.namespace),M.supportedLanguages.add(U.language),le.includes(O)&&M.eagerNamespaces.add(U.namespace)}}let He=new Set;for(let O of gt){if(D.includes(O))continue;let U=this._processTranslationFile(O,qe.has(O),r);if(U){let{namespace:z,language:Y,importPath:pt,content:rr}=U,mt=`${U.namespace}_${U.language}`;if(Ge.has(mt)){let sr=Ge.get(mt);U.content=this._mergeTranslations(sr.content,rr)}M.allNamespaces.add(z),M.supportedLanguages.add(Y),He.add(Y),qe.has(O)&&M.eagerNamespaces.add(z),M.mapping[z]||(M.mapping[z]={}),M.mapping[z][Y]=pt,U.content&&(M.content[z]||(M.content[z]={}),M.content[z][Y]=U.content),M.files.push({path:O,relativePath:this.pathResolver.getRelativePath(O),namespace:z,language:Y,eager:qe.has(O),size:U.content?JSON.stringify(U.content).length:0})}}for(let[O,U]of Ge){let[z,Y]=O.split("_");(!M.mapping[z]||!M.mapping[z][Y])&&(M.mapping[z]||(M.mapping[z]={}),M.mapping[z][Y]=U.importPath,M.content[z]||(M.content[z]={}),M.content[z][Y]=U.content)}let De=He.size>0?[...He].sort():[this.options.fallbackLanguage];return{mapping:M.mapping,content:M.content,eagerNamespaces:[...M.eagerNamespaces].sort(),allNamespaces:[...M.allNamespaces].sort(),supportedLanguages:De,fallbackLanguage:this.options.fallbackLanguage,files:M.files}}_getEmptyResult(){return{mapping:{},content:{},eagerNamespaces:[],allNamespaces:["common"],supportedLanguages:[this.options.fallbackLanguage],fallbackLanguage:this.options.fallbackLanguage,files:[],timestamp:Date.now()}}_getDiscoverySummary(){return`${this.cache?.allNamespaces?.length||0} namespaces, ${this.cache?.supportedLanguages?.length||0} languages`}async discover(e=!1){if(!e&&this._isCacheValid())return this.logger.debug("Using cached results"),this.cache;let r=Date.now();try{let s=await this._processFiles([]);this.cache={...s,timestamp:Date.now()};let i=Date.now()-r;return this.logger.debug(`Discovery completed in ${i}ms`),this._lastDiscoveryTime=Date.now(),this.cache}catch(s){throw this.logger.error(`I18n discovery failed: ${s.message}`),s}}async discoverTranslations(e=!1){return await this.discover(e)}getMapping(){return this.cache?.mapping||{}}getLanguages(){return this.cache?.supportedLanguages||[this.options.fallbackLanguage]}getNamespaces(){return this.cache?.allNamespaces||["common"]}getEagerNamespaces(){return this.cache?.eagerNamespaces||[]}_processTranslationFile(e,r,s){let i=e.split("/").pop()||e.split("\\").pop()||"",n=i.match(/^([^_]+)_([^.]+)\.json$/);if(!n)return this.logger.debug(`Invalid translation file name format: ${i}`),null;let[,a,o]=n;if(!a||!o)return this.logger.debug(`Invalid namespace or language in file: ${i}`),null;let u="./"+this.pathResolver.getRelativePath(e).replace(/\\/g,"/"),f;try{if(f=this.pathResolver.readSync(e,{format:"json"}),!f)return this.logger.debug(`Could not read file: ${e}`),null}catch(m){return this.logger.debug(`Error parsing JSON from ${e}: ${m.message}`),null}return{namespace:a,language:o,importPath:u,content:f}}_mergeTranslations(e,r){let s={...e};for(let[i,n]of Object.entries(r))typeof n=="object"&&n!==null&&!Array.isArray(n)?s[i]=this._mergeTranslations(s[i]||{},n):s[i]=n;return s}};Q();var Gr=class extends se{constructor(e={}){super(Qt,e)}getHandlerDefaults(){return{generateI18nProvider:!1,generateTranslationHooks:!1,manifestPath:"public/i18n-manifest.json",fallbackLanguage:"en"}}createDiscovery(e){let r={...yt.discovery,...this.options,fallbackLanguage:this.options.fallbackLanguage};return new e(this.pathResolver,r)}getHandlerName(){return"I18n"}logDiscoveryResults(e){let r=e.supportedLanguages||[],s=Object.keys(e.mapping||{}).filter(i=>i!=="default").length||0;this.logger.info(`\u{1F310} I18n: ${r.length} languages, ${s} namespaces`)}async getDiscoveryData(){return await this.discovery.discoverTranslations()}getAPIRewrites(){return{beforeFiles:[],afterFiles:[{source:"/api/i18n",destination:"/api/i18n/route"},{source:"/api/translations/:namespace/:language",destination:"/api/translations/[namespace]/[language]/route"}],fallback:[]}}formatAPIResponse(e){return{mapping:e.mapping,languages:e.supportedLanguages,namespaces:e.allNamespaces,eagerNamespaces:e.eagerNamespaces,fallbackLanguage:e.fallbackLanguage,stats:e.stats,timestamp:e.timestamp}}createManifestContent(e){return{languages:e.supportedLanguages,namespaces:e.allNamespaces,eagerNamespaces:e.eagerNamespaces,fallbackLanguage:e.fallbackLanguage,stats:e.stats,generatedAt:new Date().toISOString()}}getGenerationSummary(e){let r=e.stats||{},s=r.totalNamespaces||0,i=r.totalLanguages||0;return`${s} namespaces, ${i} languages`}async generateSpecificFiles(e){this.options.generateManifest&&await this.generateManifest(e),await this.generateAPIHandler(e)}async generateI18n(){let e=await this.getDiscoveryData();await this.generateConfigFile(e)}async generateConfigFile(e){return super.generateConfigFile(e)}generateConfigContent(e){let{mapping:r,supportedLanguages:s,eagerNamespaces:i,fallbackLanguage:n,content:a}=e;return`// Auto-generated DnDev config by @donotdev/config
124
124
  // Generated at: ${new Date().toISOString()}
125
125
  // Populates _DNDEV_CONFIG_ with discovery results
126
126
 
@@ -551,9 +551,9 @@ export function useTheme() {
551
551
  }
552
552
 
553
553
  export default useTheme;
554
- `}};function Hn(t={}){return new Xr(t)}function Wn({debug:t,verbose:e,generateManifest:r,routeOptions:s,themeOptions:i,i18nOptions:n,assetOptions:a,seoOptions:o,pwaOptions:c,serverShimOptions:u,appUrl:f,isDev:m,logger:v}){let I=s.debug??t,L=i.debug??t,B=n.debug??t,oe=a.debug??t,Ue=o.debug??t,fe=c.debug??t,Re=u.debug??t,$e=s.verbose??e,le=i.verbose??e,ke=n.verbose??e,gt=a.verbose??e,qe=o.verbose??e,M=c.verbose??e,Ge=u.verbose??e,D={debug:t,verbose:e,generateManifest:r},He=s.disabled?null:Un({...D,...s,debug:I,verbose:$e});t&&v.debug(`Route handler created: ${He?"enabled":"disabled"} (debug: ${I})`);let Te=Hn({...D,...i,debug:L,verbose:le}),O=Dn({...D,...n,debug:B,verbose:ke}),U=jn({...D,...a,debug:oe,verbose:gt}),z=qn({...D,...o,debug:Ue,verbose:qe,appUrl:f,isDev:m}),Y=Tn({...D,...c,debug:fe,verbose:M}),pt=Gn({...D,...u,debug:Re,verbose:Ge});return{routeHandler:He,themeHandler:Te,i18nHandler:O,assetHandler:U,seoHandler:z,pwaHandler:Y,serverShimHandler:pt}}function Vn(t,e){let r={};if(t.routeHandler)try{r.routeConfig=t.routeHandler.createNextConfig()}catch(i){e.error(`Route handler failed during config creation: ${i.message}`),e.error(`Stack: ${i.stack||"No stack trace available"}`),r.routeConfig=()=>({})}else r.routeConfig=()=>({});let s=[{name:"theme",handler:t.themeHandler},{name:"i18n",handler:t.i18nHandler},{name:"asset",handler:t.assetHandler},{name:"seo",handler:t.seoHandler},{name:"pwa",handler:t.pwaHandler}];for(let{name:i,handler:n}of s)try{r[`${i}Config`]=n.createNextConfig()}catch(a){e.error(`${i.charAt(0).toUpperCase()+i.slice(1)} handler failed: ${a.message}`),e.error(`Stack: ${a.stack||"No stack trace available"}`),r[`${i}Config`]=()=>({})}try{r.serverShimConfig=t.serverShimHandler}catch(i){e.error(`ServerShim handler failed: ${i.message}`),e.error(`Stack: ${i.stack||"No stack trace available"}`),r.serverShimConfig=()=>({})}return r}g();var lu=["public/route-manifest.json","public/theme-manifest.json","public/i18n-manifest.json","public/asset-manifest.json","public/seo-manifest.json","public/pwa-manifest.json"],cu="dndev-config-",Xn=".dndev-build";function hu(t){if(!t)return!1;let e=V.getInstance(),r=e.resolveAppPath(Xn),s=p.env.DNDEV_BUILD_ID;try{return(e.readSync(r,{format:"text"})||"").trim()===s}catch{return!1}}function uu(t){if(!t)return;let e=V.getInstance(),r=e.resolveAppPath(Xn),s=p.env.DNDEV_BUILD_ID;try{e.writeSync(r,s)}catch{}}function Jr(t,e){if(!t)return;let r=V.getInstance();for(let i of lu){let n=r.resolveAppPath(i);if(r.pathExists(n))try{r.removeSync(n),e.debug(`Cleaned: ${i}`)}catch{}}let s=r.resolveAppPath("src/config");if(r.pathExists(s))try{let i=r.readdirSync(s);for(let n of i)if(n.startsWith(cu)&&n.endsWith(".js"))try{let a=r.resolvePath(n,s);r.removeSync(a),e.debug(`Cleaned: src/config/${n}`)}catch{}}catch{}}async function Kr({routeHandler:t,themeHandler:e,i18nHandler:r,assetHandler:s,seoHandler:i,pwaHandler:n},a){let o=t?.pathResolver;if(!o)throw new Error("PathResolver not available - handlers must be initialized with PathResolver");let c=o.getAppRoot(),u=o.getRepoRoot();if(!c||c===u){a.warn("\u26A0\uFE0F App root not properly set before discovery - waiting for appRoot resolution"),await new Promise(L=>setTimeout(L,0));let I=o.getAppRoot();if(!I||I===u)throw new Error("App root not set before discovery. Ensure resolveAppRoot() is called before runDiscoveries().")}if(hu(c)){a.debug("Discoveries already completed this build, skipping");return}let f=Date.now();if(t)try{a.info("\u{1F50D} Starting route discovery...");let L=(await t.generateFiles())?.routes?.length||0;a.info(`\u2705 Routes generated: ${L} routes found`),L===0&&a.error("\u274C NO ROUTES FOUND! Check that pages exist in src/pages/")}catch(I){throw a.error(`\u274C Route generation failed: ${I.message}`),I.stack&&a.error(`Stack: ${I.stack}`),I}else a.warn("\u26A0\uFE0F Route handler is disabled - no routes will be discovered");let m=[{name:"Theme",handler:e},{name:"I18n",handler:r},{name:"Asset",handler:s},{name:"SEO",handler:i},{name:"PWA",handler:n}];for(let{name:I,handler:L}of m)try{await L.generateFiles()}catch(B){a.debug(`${I} generation failed: ${B.message}`)}let v=Date.now()-f;a.verbose?.(`\u2705 All discoveries completed in ${v}ms - Next.js can now compile`),uu(c)}async function Jn(t,e,r){if(r)return!1;try{let s=await t.getDiscoveryData();return s?.copiedAssets?.length>0&&e.info(`\u{1F4E6} Copied ${s.copiedAssets.length} assets from framework`),!0}catch(s){return e.debug(`Asset discovery failed (non-critical): ${s.message}`),!1}}g();function Kn({originalWebpack:t,unusedFeaturePackages:e,usedFeaturePackages:r,logger:s,debug:i}){return(n,a)=>{let{dev:o,isServer:c,webpack:u}=a;o&&!c&&(n.infrastructureLogging={level:"error"},n.stats={...n.stats,logging:"error",loggingTrace:!1},n.ignoreWarnings=[...n.ignoreWarnings||[],/WebSocket connection to/,/WebSocket closed without opened/,/failed to connect to websocket/,/WebSocket error/]);let f=n.module?.rules?.find(m=>m.test?.test?.(".svg"));if(f&&(f.exclude=/\.svg$/i),n.module=n.module||{},n.module.rules=n.module.rules||[],n.module.rules.push({test:/\.svg$/i,type:"asset/resource",generator:{filename:"static/media/[name].[hash][ext]"}}),u?.IgnorePlugin&&n.plugins.push(new u.IgnorePlugin({resourceRegExp:/^(vite|@vitejs|vite-tsconfig-paths|react-router-dom)$/})),e.length>0)if(s.info(`\u{1F6AB} Excluding unused features: ${e.join(", ")}`),s.info(`\u2705 Including features: ${r.join(", ")}`),n.externals=n.externals||[],Array.isArray(n.externals))n.externals.push(...e);else{let m=n.externals;n.externals=(v,I,L)=>e.includes(I)?L(null,"commonjs "+I):typeof m=="function"?m(v,I,L):L()}return t?t(n,a):n}}function Yn({originalRewrites:t,handlers:e,logger:r}){return async function(){try{let s=t?await t():[],n=e.filter(a=>a?.getAPIRewrites).map(a=>a.getAPIRewrites()).reduce((a,o)=>(o?.beforeFiles&&a.beforeFiles.push(...o.beforeFiles),o?.afterFiles&&a.afterFiles.push(...o.afterFiles),o?.fallback&&a.fallback.push(...o.fallback),a),{beforeFiles:[],afterFiles:[],fallback:[]});return{beforeFiles:[...Array.isArray(s)?[]:s?.beforeFiles||[],...n.beforeFiles],afterFiles:[...Array.isArray(s)?s:s?.afterFiles||[],...n.afterFiles],fallback:[...Array.isArray(s)?[]:s?.fallback||[],...n.fallback]}}catch(s){return r.error(`Next.js config failed to merge rewrites: ${s.message}`),r.error(`Stack: ${s.stack||"No stack trace available"}`),{beforeFiles:[],afterFiles:[],fallback:[]}}}}function Qn({routeResult:t,themeResult:e,i18nResult:r,assetResult:s,seoResult:i,pwaResult:n,serverShimResult:a,restNextConfig:o,discoveredPackages:c,nextVersion:u,isNext15:f,webpackConfig:m,rewritesConfig:v,missingOptionalDeps:I,env:L,logger:B}){let oe=o?.output==="export";return{transpilePackages:c,...Ie(o)?o:(B.warn("restNextConfig is not a plain object:",o),{}),...p.env.NODE_ENV==="development"&&{devIndicators:{position:"bottom-right"},onDemandEntries:{maxInactiveAge:25*1e3,pagesBufferLength:2},experimental:{...o.experimental}},...Ie(t)?t:(B.error(`Route handler config invalid (got ${typeof t}):`,t),{}),...Ie(e)?e:(B.error(`Theme handler config invalid (got ${typeof e}):`,e),{}),...Ie(r)?r:(B.error(`I18n handler config invalid (got ${typeof r}):`,r),{}),...Ie(s)?s:(B.error(`Asset handler config invalid (got ${typeof s}):`,s),{}),...Ie(i)?i:(B.error(`SEO handler config invalid (got ${typeof i}):`,i),{}),...Ie(n)?n:(B.error(`PWA handler config invalid (got ${typeof n}):`,n),{}),...Ie(a)?a:(B.warn("serverShimConfig returned non-object:",a),{}),webpack:m,...oe?{}:{rewrites:v},env:L,...f&&o.experimental&&{experimental:o.experimental},...p.env.NODE_ENV==="production"&&{logging:{fetches:{fullUrl:!1}}},turbopack:{resolveAlias:{...(I||[]).reduce((fe,Re)=>{let $e=V.getInstance();return fe[Re]=$e.getEmptyModulePath(),fe},{}),...o.turbopack?.resolveAlias||{}},...o.turbopack||{}}}}function fu(t={}){let{port:e,...r}=t;if(e&&p.env.NODE_ENV!=="production"&&(p.env.PORT=String(e)),!p.env.DNDEV_BUILD_ID){let Ae=p.env.CI==="true";p.env.DNDEV_BUILD_ID=Ae?`ci-${Math.random().toString(36).slice(2,9)}`:Math.random().toString(36).slice(2,9)}let{appConfig:s,...i}=r;if(!s)throw new Error("appConfig is required. Import appConfig from src/config/app.ts and pass it to defineNextConfig({ appConfig, ... })");let n=s?.features?{debug:s.features.debug}:void 0,a=s?.seo&&typeof s.seo!="boolean"?{...s.seo,siteName:s.seo.siteName||s.app?.name}:s?.app?.name?{siteName:s.app.name}:void 0,o=s?.app?{name:s.app.name,shortName:s.app.shortName,description:s.app.description,url:s.app.url}:void 0,{features:c,seo:u,...f}=i,m={...n?{features:n}:{},...a?{seo:a}:{},...f},v=ns(m),I=as(v);if(!I)throw new Error("normalizeOptions returned undefined");let{generateManifest:L,debug:B,verbose:oe,mode:Ue,isDev:fe,routeOptions:Re,themeOptions:$e,i18nOptions:le,assetOptions:ke,pwaOptions:gt,seoOptions:qe,serverShimOptions:M,nextConfigOptions:Ge}=I,D=me("next-config",B,oe),{appRoot:He,appRootSet:Te}=ds({logger:D,debug:B}),O=!1,U=!1,{installed:z}=ur(p.cwd()),Y=Object.values(ts.packageNames),pt=Y.filter(Ae=>!z.includes(Ae)),rr=Y.filter(Ae=>z.includes(Ae)),mt=p.env.DNDEV_BUILD_ID,sr=Re?.routingMode||"app";D.info(`
555
- \u{1F3D7}\uFE0F DnDev Framework - Building for ${Ue}${mt?` [build:${mt}]`:""}`),D.info(` Platform: Next.js | Routing: ${sr}
556
- `);let St=o?.url;if(fe){let Ae=p.env.PORT||3e3;p.env.NEXT_PUBLIC_APP_URL=`http://localhost:${Ae}`,B&&(D.debug(`NEXT_PUBLIC_APP_URL: ${p.env.NEXT_PUBLIC_APP_URL}`),e&&D.debug(`Port configured: ${Ae} (set PORT env var)`))}else St?(p.env.NEXT_PUBLIC_APP_URL=St,B&&D.debug(`NEXT_PUBLIC_APP_URL: ${St}`)):D.warn("NEXT_PUBLIC_APP_URL not found in appConfig.app.url");let Se=Wn({debug:B,verbose:oe,generateManifest:L,routeOptions:Re,themeOptions:$e,i18nOptions:le,assetOptions:ke,seoOptions:qe,pwaOptions:gt,serverShimOptions:M,appUrl:St,isDev:fe,logger:D}),We=Vn(Se,D);return async function(ir={}){let nr=!1,At="15.0.0";try{At=await fr(),nr=await us(),B&&D.debug(`Next.js version: ${At} (15+: ${nr})`)}catch(vt){B&&D.warn("Could not determine Next.js version:",vt.message)}let bt=V.getInstance(),_t=Te?fs():[];B&&_t.length>0&&D.debug(`Discovered ${_t.length} packages: ${_t.join(", ")}`);let{missing:ar}=ur(bt.getAppRoot());B&&ar.length>0&&D.debug(`Missing optional deps (will alias to empty): ${ar.join(", ")}`);let Yr=bt.getAppRoot();if(Te&&!O){let vt=bt.resolveAppPath(".dndev-build"),or=p.env.DNDEV_BUILD_ID;try{bt.readSync(vt,{format:"text"})?.trim()===or?(D.debug("Discoveries already completed by another worker, skipping"),O=!0):(Jr(Yr,D),await Kr(Se,D),O=!0)}catch{Jr(Yr,D),await Kr(Se,D),O=!0}}let Ve=typeof ir=="object"&&ir!==null?ir:{},{webpack:ea,rewrites:ta,...ra}=Ve;Te&&!U&&(U=await Jn(Se.assetHandler,D,U));let sa=We.routeConfig(Ve),ia=We.themeConfig(Ve),na=We.i18nConfig(Ve),aa=We.assetConfig(Ve),oa=We.seoConfig(Ve),la=We.pwaConfig(Ve),ca=We.serverShimConfig(),ha=Kn({originalWebpack:ea,unusedFeaturePackages:pt,usedFeaturePackages:rr,logger:D,debug:B}),ua=Yn({originalRewrites:ta,handlers:[Se.routeHandler,Se.themeHandler,Se.i18nHandler,Se.assetHandler,Se.pwaHandler],logger:D}),fa={_DNDEV_CONFIG_:JSON.stringify({platform:"nextjs",mode:p.env.NODE_ENV||"development",version:At,context:"build",timestamp:Date.now()}),...p.env.NEXT_PUBLIC_APP_URL?{NEXT_PUBLIC_APP_URL:p.env.NEXT_PUBLIC_APP_URL}:{},...p.env.NEXT_PUBLIC_DONOTDEV_LICENSE_KEY?{NEXT_PUBLIC_DONOTDEV_LICENSE_KEY:p.env.NEXT_PUBLIC_DONOTDEV_LICENSE_KEY}:{}},da=Qn({routeResult:sa,themeResult:ia,i18nResult:na,assetResult:aa,seoResult:oa,pwaResult:la,serverShimResult:ca,restNextConfig:ra,discoveredPackages:_t,nextVersion:At,isNext15:nr,webpackConfig:ha,rewritesConfig:ua,missingOptionalDeps:ar,env:fa,logger:D});if(D.debug("Next.js config generated"),Te){let vt=o?.name||"app",or=bt.getAppRoot();D.info(`Name: ${vt}`),D.info(`URL: ${p.env.NEXT_PUBLIC_APP_URL||"http://localhost:3000"}`),D.info("\u{1F527} Features: auto-detected"),D.info(`App root (final): ${or}`)}return da}}var Zn=fu;export{Zn as default,Zn as defineNextConfig};
554
+ `}};function Hn(t={}){return new Xr(t)}function Wn({debug:t,verbose:e,generateManifest:r,routeOptions:s,themeOptions:i,i18nOptions:n,assetOptions:a,seoOptions:o,pwaOptions:c,serverShimOptions:u,appUrl:f,isDev:m,logger:v}){let I=s.debug??t,L=i.debug??t,B=n.debug??t,oe=a.debug??t,Be=o.debug??t,fe=c.debug??t,Re=u.debug??t,Ue=s.verbose??e,le=i.verbose??e,$e=n.verbose??e,gt=a.verbose??e,qe=o.verbose??e,M=c.verbose??e,Ge=u.verbose??e,D={debug:t,verbose:e,generateManifest:r},He=s.disabled?null:Un({...D,...s,debug:I,verbose:Ue});t&&v.debug(`Route handler created: ${He?"enabled":"disabled"} (debug: ${I})`);let De=Hn({...D,...i,debug:L,verbose:le}),O=Dn({...D,...n,debug:B,verbose:$e}),U=jn({...D,...a,debug:oe,verbose:gt}),z=qn({...D,...o,debug:Be,verbose:qe,appUrl:f,isDev:m}),Y=Tn({...D,...c,debug:fe,verbose:M}),pt=Gn({...D,...u,debug:Re,verbose:Ge});return{routeHandler:He,themeHandler:De,i18nHandler:O,assetHandler:U,seoHandler:z,pwaHandler:Y,serverShimHandler:pt}}function Vn(t,e){let r={};if(t.routeHandler)try{r.routeConfig=t.routeHandler.createNextConfig()}catch(i){e.error(`Route handler failed during config creation: ${i.message}`),e.error(`Stack: ${i.stack||"No stack trace available"}`),r.routeConfig=()=>({})}else r.routeConfig=()=>({});let s=[{name:"theme",handler:t.themeHandler},{name:"i18n",handler:t.i18nHandler},{name:"asset",handler:t.assetHandler},{name:"seo",handler:t.seoHandler},{name:"pwa",handler:t.pwaHandler}];for(let{name:i,handler:n}of s)try{r[`${i}Config`]=n.createNextConfig()}catch(a){e.error(`${i.charAt(0).toUpperCase()+i.slice(1)} handler failed: ${a.message}`),e.error(`Stack: ${a.stack||"No stack trace available"}`),r[`${i}Config`]=()=>({})}try{r.serverShimConfig=t.serverShimHandler}catch(i){e.error(`ServerShim handler failed: ${i.message}`),e.error(`Stack: ${i.stack||"No stack trace available"}`),r.serverShimConfig=()=>({})}return r}g();var lu=["public/route-manifest.json","public/theme-manifest.json","public/i18n-manifest.json","public/asset-manifest.json","public/seo-manifest.json","public/pwa-manifest.json"],cu="dndev-config-",Xn=".dndev-build";function hu(t){if(!t)return!1;let e=V.getInstance(),r=e.resolveAppPath(Xn),s=p.env.DNDEV_BUILD_ID;try{return(e.readSync(r,{format:"text"})||"").trim()===s}catch{return!1}}function uu(t){if(!t)return;let e=V.getInstance(),r=e.resolveAppPath(Xn),s=p.env.DNDEV_BUILD_ID;try{e.writeSync(r,s)}catch{}}function Jr(t,e){if(!t)return;let r=V.getInstance();for(let i of lu){let n=r.resolveAppPath(i);if(r.pathExists(n))try{r.removeSync(n),e.debug(`Cleaned: ${i}`)}catch{}}let s=r.resolveAppPath("src/config");if(r.pathExists(s))try{let i=r.readdirSync(s);for(let n of i)if(n.startsWith(cu)&&n.endsWith(".js"))try{let a=r.resolvePath(n,s);r.removeSync(a),e.debug(`Cleaned: src/config/${n}`)}catch{}}catch{}}async function Kr({routeHandler:t,themeHandler:e,i18nHandler:r,assetHandler:s,seoHandler:i,pwaHandler:n},a){let o=t?.pathResolver;if(!o)throw new Error("PathResolver not available - handlers must be initialized with PathResolver");let c=o.getAppRoot(),u=o.getRepoRoot();if(!c||c===u){a.warn("\u26A0\uFE0F App root not properly set before discovery - waiting for appRoot resolution"),await new Promise(L=>setTimeout(L,0));let I=o.getAppRoot();if(!I||I===u)throw new Error("App root not set before discovery. Ensure resolveAppRoot() is called before runDiscoveries().")}if(hu(c)){a.debug("Discoveries already completed this build, skipping");return}let f=Date.now();if(t)try{a.info("\u{1F50D} Starting route discovery...");let L=(await t.generateFiles())?.routes?.length||0;a.info(`\u2705 Routes generated: ${L} routes found`),L===0&&a.error("\u274C NO ROUTES FOUND! Check that pages exist in src/pages/")}catch(I){throw a.error(`\u274C Route generation failed: ${I.message}`),I.stack&&a.error(`Stack: ${I.stack}`),I}else a.warn("\u26A0\uFE0F Route handler is disabled - no routes will be discovered");let m=[{name:"Theme",handler:e},{name:"I18n",handler:r},{name:"Asset",handler:s},{name:"SEO",handler:i},{name:"PWA",handler:n}];for(let{name:I,handler:L}of m)try{await L.generateFiles()}catch(B){a.debug(`${I} generation failed: ${B.message}`)}let v=Date.now()-f;a.verbose?.(`\u2705 All discoveries completed in ${v}ms - Next.js can now compile`),uu(c)}async function Jn(t,e,r){if(r)return!1;try{let s=await t.getDiscoveryData();return s?.copiedAssets?.length>0&&e.info(`\u{1F4E6} Copied ${s.copiedAssets.length} assets from framework`),!0}catch(s){return e.debug(`Asset discovery failed (non-critical): ${s.message}`),!1}}g();function Kn({originalWebpack:t,unusedFeaturePackages:e,usedFeaturePackages:r,logger:s,debug:i}){return(n,a)=>{let{dev:o,isServer:c,webpack:u}=a;o&&!c&&(n.infrastructureLogging={level:"error"},n.stats={...n.stats,logging:"error",loggingTrace:!1},n.ignoreWarnings=[...n.ignoreWarnings||[],/WebSocket connection to/,/WebSocket closed without opened/,/failed to connect to websocket/,/WebSocket error/]);let f=n.module?.rules?.find(m=>m.test?.test?.(".svg"));if(f&&(f.exclude=/\.svg$/i),n.module=n.module||{},n.module.rules=n.module.rules||[],n.module.rules.push({test:/\.svg$/i,type:"asset/resource",generator:{filename:"static/media/[name].[hash][ext]"}}),u?.IgnorePlugin&&n.plugins.push(new u.IgnorePlugin({resourceRegExp:/^(vite|@vitejs|vite-tsconfig-paths|react-router-dom)$/})),e.length>0)if(s.info(`\u{1F6AB} Excluding unused features: ${e.join(", ")}`),s.info(`\u2705 Including features: ${r.join(", ")}`),n.externals=n.externals||[],Array.isArray(n.externals))n.externals.push(...e);else{let m=n.externals;n.externals=(v,I,L)=>e.includes(I)?L(null,"commonjs "+I):typeof m=="function"?m(v,I,L):L()}return t?t(n,a):n}}function Yn({originalRewrites:t,handlers:e,logger:r}){return async function(){try{let s=t?await t():[],n=e.filter(a=>a?.getAPIRewrites).map(a=>a.getAPIRewrites()).reduce((a,o)=>(o?.beforeFiles&&a.beforeFiles.push(...o.beforeFiles),o?.afterFiles&&a.afterFiles.push(...o.afterFiles),o?.fallback&&a.fallback.push(...o.fallback),a),{beforeFiles:[],afterFiles:[],fallback:[]});return{beforeFiles:[...Array.isArray(s)?[]:s?.beforeFiles||[],...n.beforeFiles],afterFiles:[...Array.isArray(s)?s:s?.afterFiles||[],...n.afterFiles],fallback:[...Array.isArray(s)?[]:s?.fallback||[],...n.fallback]}}catch(s){return r.error(`Next.js config failed to merge rewrites: ${s.message}`),r.error(`Stack: ${s.stack||"No stack trace available"}`),{beforeFiles:[],afterFiles:[],fallback:[]}}}}function Qn({routeResult:t,themeResult:e,i18nResult:r,assetResult:s,seoResult:i,pwaResult:n,serverShimResult:a,restNextConfig:o,discoveredPackages:c,nextVersion:u,isNext15:f,webpackConfig:m,rewritesConfig:v,missingOptionalDeps:I,env:L,logger:B}){let oe=o?.output==="export";return{transpilePackages:c,...Ne(o)?o:(B.warn("restNextConfig is not a plain object:",o),{}),...p.env.NODE_ENV==="development"&&{devIndicators:{position:"bottom-right"},onDemandEntries:{maxInactiveAge:25*1e3,pagesBufferLength:2},experimental:{...o.experimental}},...Ne(t)?t:(B.error(`Route handler config invalid (got ${typeof t}):`,t),{}),...Ne(e)?e:(B.error(`Theme handler config invalid (got ${typeof e}):`,e),{}),...Ne(r)?r:(B.error(`I18n handler config invalid (got ${typeof r}):`,r),{}),...Ne(s)?s:(B.error(`Asset handler config invalid (got ${typeof s}):`,s),{}),...Ne(i)?i:(B.error(`SEO handler config invalid (got ${typeof i}):`,i),{}),...Ne(n)?n:(B.error(`PWA handler config invalid (got ${typeof n}):`,n),{}),...Ne(a)?a:(B.warn("serverShimConfig returned non-object:",a),{}),webpack:m,...oe?{}:{rewrites:v},env:L,...f&&o.experimental&&{experimental:o.experimental},...p.env.NODE_ENV==="production"&&{logging:{fetches:{fullUrl:!1}}},turbopack:{resolveAlias:{...(I||[]).reduce((fe,Re)=>(fe[Re]="./empty.js",fe),{}),...o.turbopack?.resolveAlias||{}},...o.turbopack||{}}}}function fu(t={}){let{port:e,...r}=t;if(e&&p.env.NODE_ENV!=="production"&&(p.env.PORT=String(e)),!p.env.DNDEV_BUILD_ID){let Se=p.env.CI==="true";p.env.DNDEV_BUILD_ID=Se?`ci-${Math.random().toString(36).slice(2,9)}`:Math.random().toString(36).slice(2,9)}let{appConfig:s,...i}=r;if(!s)throw new Error("appConfig is required. Import appConfig from src/config/app.ts and pass it to defineNextConfig({ appConfig, ... })");let n=s?.features?{debug:s.features.debug}:void 0,a=s?.seo&&typeof s.seo!="boolean"?{...s.seo,siteName:s.seo.siteName||s.app?.name}:s?.app?.name?{siteName:s.app.name}:void 0,o=s?.app?{name:s.app.name,shortName:s.app.shortName,description:s.app.description,url:s.app.url}:void 0,{features:c,seo:u,...f}=i,m={...n?{features:n}:{},...a?{seo:a}:{},...f},v=ns(m),I=as(v);if(!I)throw new Error("normalizeOptions returned undefined");let{generateManifest:L,debug:B,verbose:oe,mode:Be,isDev:fe,routeOptions:Re,themeOptions:Ue,i18nOptions:le,assetOptions:$e,pwaOptions:gt,seoOptions:qe,serverShimOptions:M,nextConfigOptions:Ge}=I,D=me("next-config",B,oe),{appRoot:He,appRootSet:De}=ds({logger:D,debug:B}),O=!1,U=!1,{installed:z}=ur(p.cwd()),Y=Object.values(ts.packageNames),pt=Y.filter(Se=>!z.includes(Se)),rr=Y.filter(Se=>z.includes(Se)),mt=p.env.DNDEV_BUILD_ID,sr=Re?.routingMode||"app";D.info(`
555
+ \u{1F3D7}\uFE0F DnDev Framework - Building for ${Be}${mt?` [build:${mt}]`:""}`),D.info(` Platform: Next.js | Routing: ${sr}
556
+ `);let St=o?.url;if(fe){let Se=p.env.PORT||3e3;p.env.NEXT_PUBLIC_APP_URL=`http://localhost:${Se}`,B&&(D.debug(`NEXT_PUBLIC_APP_URL: ${p.env.NEXT_PUBLIC_APP_URL}`),e&&D.debug(`Port configured: ${Se} (set PORT env var)`))}else St?(p.env.NEXT_PUBLIC_APP_URL=St,B&&D.debug(`NEXT_PUBLIC_APP_URL: ${St}`)):D.warn("NEXT_PUBLIC_APP_URL not found in appConfig.app.url");let ke=Wn({debug:B,verbose:oe,generateManifest:L,routeOptions:Re,themeOptions:Ue,i18nOptions:le,assetOptions:$e,seoOptions:qe,pwaOptions:gt,serverShimOptions:M,appUrl:St,isDev:fe,logger:D}),We=Vn(ke,D);return async function(ir={}){let nr=!1,At="15.0.0";try{At=await fr(),nr=await us(),B&&D.debug(`Next.js version: ${At} (15+: ${nr})`)}catch(vt){B&&D.warn("Could not determine Next.js version:",vt.message)}let bt=V.getInstance(),_t=De?fs():[];B&&_t.length>0&&D.debug(`Discovered ${_t.length} packages: ${_t.join(", ")}`);let{missing:ar}=ur(bt.getAppRoot());B&&ar.length>0&&D.debug(`Missing optional deps (will alias to empty): ${ar.join(", ")}`);let Yr=bt.getAppRoot();if(De&&!O){let vt=bt.resolveAppPath(".dndev-build"),or=p.env.DNDEV_BUILD_ID;try{bt.readSync(vt,{format:"text"})?.trim()===or?(D.debug("Discoveries already completed by another worker, skipping"),O=!0):(Jr(Yr,D),await Kr(ke,D),O=!0)}catch{Jr(Yr,D),await Kr(ke,D),O=!0}}let Ve=typeof ir=="object"&&ir!==null?ir:{},{webpack:ea,rewrites:ta,...ra}=Ve;De&&!U&&(U=await Jn(ke.assetHandler,D,U));let sa=We.routeConfig(Ve),ia=We.themeConfig(Ve),na=We.i18nConfig(Ve),aa=We.assetConfig(Ve),oa=We.seoConfig(Ve),la=We.pwaConfig(Ve),ca=We.serverShimConfig(),ha=Kn({originalWebpack:ea,unusedFeaturePackages:pt,usedFeaturePackages:rr,logger:D,debug:B}),ua=Yn({originalRewrites:ta,handlers:[ke.routeHandler,ke.themeHandler,ke.i18nHandler,ke.assetHandler,ke.pwaHandler],logger:D}),fa={_DNDEV_CONFIG_:JSON.stringify({platform:"nextjs",mode:p.env.NODE_ENV||"development",version:At,context:"build",timestamp:Date.now()}),...p.env.NEXT_PUBLIC_APP_URL?{NEXT_PUBLIC_APP_URL:p.env.NEXT_PUBLIC_APP_URL}:{},...p.env.NEXT_PUBLIC_DONOTDEV_LICENSE_KEY?{NEXT_PUBLIC_DONOTDEV_LICENSE_KEY:p.env.NEXT_PUBLIC_DONOTDEV_LICENSE_KEY}:{}},da=Qn({routeResult:sa,themeResult:ia,i18nResult:na,assetResult:aa,seoResult:oa,pwaResult:la,serverShimResult:ca,restNextConfig:ra,discoveredPackages:_t,nextVersion:At,isNext15:nr,webpackConfig:ha,rewritesConfig:ua,missingOptionalDeps:ar,env:fa,logger:D});if(D.debug("Next.js config generated"),De){let vt=o?.name||"app",or=bt.getAppRoot();D.info(`Name: ${vt}`),D.info(`URL: ${p.env.NEXT_PUBLIC_APP_URL||"http://localhost:3000"}`),D.info("\u{1F527} Features: auto-detected"),D.info(`App root (final): ${or}`)}return da}}var Zn=fu;export{Zn as default,Zn as defineNextConfig};
557
557
  /*! Bundled license information:
558
558
 
559
559
  sharp/lib/is.js: