@donotdev/core 0.0.13 → 0.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/eslint/index.js +1 -1
  2. package/functions/index.d.ts +1083 -3
  3. package/functions/index.js +11 -1
  4. package/i18n/locales/eager/dndev_ar.json +0 -139
  5. package/i18n/locales/eager/dndev_de.json +0 -139
  6. package/i18n/locales/eager/dndev_en.json +5 -139
  7. package/i18n/locales/eager/dndev_es.json +0 -139
  8. package/i18n/locales/eager/dndev_fr.json +0 -139
  9. package/i18n/locales/eager/dndev_it.json +47 -186
  10. package/i18n/locales/eager/dndev_ja.json +0 -139
  11. package/i18n/locales/eager/dndev_ko.json +0 -139
  12. package/i18n/locales/lazy/crud_ar.json +195 -0
  13. package/i18n/locales/lazy/crud_de.json +195 -0
  14. package/i18n/locales/lazy/crud_en.json +412 -0
  15. package/i18n/locales/lazy/crud_es.json +195 -0
  16. package/i18n/locales/lazy/crud_fr.json +195 -0
  17. package/i18n/locales/lazy/crud_it.json +195 -0
  18. package/i18n/locales/lazy/crud_ja.json +195 -0
  19. package/i18n/locales/lazy/crud_ko.json +195 -0
  20. package/i18n/locales/lazy/oauth_ar.json +11 -11
  21. package/i18n/locales/lazy/oauth_de.json +11 -11
  22. package/i18n/locales/lazy/oauth_en.json +11 -11
  23. package/i18n/locales/lazy/oauth_es.json +11 -11
  24. package/i18n/locales/lazy/oauth_fr.json +11 -11
  25. package/i18n/locales/lazy/oauth_it.json +11 -11
  26. package/i18n/locales/lazy/oauth_ja.json +11 -11
  27. package/i18n/locales/lazy/oauth_ko.json +11 -11
  28. package/index.d.ts +6636 -6348
  29. package/index.js +37 -37
  30. package/next/index.d.ts +209 -154
  31. package/next/index.js +20 -20
  32. package/package.json +1 -1
  33. package/server.d.ts +4787 -3940
  34. package/server.js +1 -1
  35. package/vite/index.d.ts +209 -154
  36. package/vite/index.js +2 -2
package/next/index.js CHANGED
@@ -1,7 +1,7 @@
1
- var ha=Object.create;var Jr=Object.defineProperty;var ua=Object.getOwnPropertyDescriptor;var fa=Object.getOwnPropertyNames;var da=Object.getPrototypeOf,ga=Object.prototype.hasOwnProperty;var G=(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 Kr=(t,e)=>()=>(t&&(e=t(t=0)),e);var j=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var pa=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of fa(e))!ga.call(t,i)&&i!==r&&Jr(t,i,{get:()=>e[i],enumerable:!(s=ua(e,i))||s.enumerable});return t};var ma=(t,e,r)=>(r=t!=null?ha(da(t)):{},pa(e||!t||!t.__esModule?Jr(r,"default",{value:t,enumerable:!0}):r,t));function es(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 Nt(t){return Yr[t]||Yr.base}var vt,Qr,de,Ve,ar,ke,At,ce,_t,Zr,or,lr,Yr,Q=Kr(()=>{"use strict";g();vt={HOMEPAGE_FILE:"HomePage.tsx",HOMEPAGE_PATH:"/",HOMEPAGE_COMPONENT:"HomePage"},Qr={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"]}},de={routes:"routes",themes:"themes",i18n:"i18n",assets:"assets",env:"env"},Ve={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"}},ar={package:"@donotdev/ui",assetsPath:"packages/ui/assets",browserTargets:["> 1%","last 2 versions","Firefox ESR","not dead","not op_mini all"]},ke={public:"public",fonts:"fonts",nodeModules:"node_modules",packages:"packages",core:"core",ui:"ui"},At={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:[`${At.SOURCE_EAGER}/*_*.json`],lazy:[`${At.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/**"]},_t={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"]},Zr=["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"],or={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)/}},lr=[{name:"light",displayName:"Light",icon:"Sun",isDark:!1}],Yr={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 va}from"node:module";import{fileURLToPath as wa}from"node:url";import{dirname as ya,resolve as mu}from"node:path";import{Buffer as b}from"node:buffer";import p from"node:process";var Ea,w,y,g=Kr(()=>{"use strict";Ea=va(import.meta.url),w=wa(import.meta.url),y=ya(w);typeof globalThis<"u"&&(globalThis.require=Ea,globalThis.__filename=w,globalThis.__dirname=y,globalThis.Buffer=b,globalThis.process=p,typeof global>"u"&&(globalThis.global=globalThis))});var me=j((ef,us)=>{g();var hs=t=>typeof t<"u"&&t!==null,ja=t=>typeof t=="object",Da=t=>Object.prototype.toString.call(t)==="[object Object]",Ta=t=>typeof t=="function",La=t=>typeof t=="boolean",Oa=t=>t instanceof b,Ma=t=>{if(hs(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},za=t=>t instanceof ArrayBuffer,Ba=t=>typeof t=="string"&&t.length>0,Ua=t=>typeof t=="number"&&!Number.isNaN(t),qa=t=>Number.isInteger(t),Ga=(t,e,r)=>t>=e&&t<=r,Ha=(t,e)=>e.includes(t),Wa=(t,e,r)=>new Error(`Expected ${e} for ${t} but received ${r} of type ${typeof r}`),Va=(t,e)=>(e.message=t.message,e);us.exports={defined:hs,object:ja,plainObject:Da,fn:Ta,bool:La,buffer:Oa,typedArray:Ma,arrayBuffer:za,string:Ba,number:Ua,integer:qa,inRange:Ga,inArray:Ha,invalidParameterError:Wa,nativeError:Va}});var gs=j((rf,ds)=>{"use strict";g();var fs=()=>p.platform==="linux",Ft=null,Xa=()=>{if(!Ft)if(fs()&&p.report){let t=p.report.excludeNetwork;p.report.excludeNetwork=!0,Ft=p.report.getReport(),p.report.excludeNetwork=t}else Ft={};return Ft};ds.exports={isLinux:fs,getReport:Xa}});var ms=j((nf,ps)=>{"use strict";g();var tt=G("fs"),Ja="/usr/bin/ldd",Ka="/proc/self/exe",Ct=2048,Ya=t=>{let e=tt.openSync(t,"r"),r=b.alloc(Ct),s=tt.readSync(e,r,0,Ct,0);return tt.close(e,()=>{}),r.subarray(0,s)},Qa=t=>new Promise((e,r)=>{tt.open(t,"r",(s,i)=>{if(s)r(s);else{let n=b.alloc(Ct);tt.read(i,n,0,Ct,0,(a,o)=>{e(n.subarray(0,o)),tt.close(i,()=>{})})}})});ps.exports={LDD_PATH:Ja,SELF_PATH:Ka,readFileSync:Ya,readFile:Qa}});var vs=j((of,bs)=>{"use strict";g();var Za=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};bs.exports={interpreterPath:Za}});var Dt=j((cf,Ts)=>{"use strict";g();var ys=G("child_process"),{isLinux:rt,getReport:Es}=gs(),{LDD_PATH:jt,SELF_PATH:Ps,readFile:hr,readFileSync:ur}=ms(),{interpreterPath:xs}=vs(),be,ve,we,Rs="getconf GNU_LIBC_VERSION 2>&1 || true; ldd --version 2>&1 || true",Te="",$s=()=>Te||new Promise(t=>{ys.exec(Rs,(e,r)=>{Te=e?" ":r,t(Te)})}),ks=()=>{if(!Te)try{Te=ys.execSync(Rs,{encoding:"utf8"})}catch{Te=" "}return Te},_e="glibc",Ss=/LIBC[a-z0-9 \-).]*?(\d+\.\d+)/i,Xe="musl",eo=t=>t.includes("libc.musl-")||t.includes("ld-musl-"),As=()=>{let t=Es();return t.header&&t.header.glibcVersionRuntime?_e:Array.isArray(t.sharedObjects)&&t.sharedObjects.some(eo)?Xe:null},_s=t=>{let[e,r]=t.split(/[\r\n]+/);return e&&e.includes(_e)?_e:r&&r.includes(Xe)?Xe:null},Ns=t=>{if(t){if(t.includes("/ld-musl-"))return Xe;if(t.includes("/ld-linux-"))return _e}return null},Is=t=>(t=t.toString(),t.includes("musl")?Xe:t.includes("GNU C Library")?_e:null),to=async()=>{if(ve!==void 0)return ve;ve=null;try{let t=await hr(jt);ve=Is(t)}catch{}return ve},ro=()=>{if(ve!==void 0)return ve;ve=null;try{let t=ur(jt);ve=Is(t)}catch{}return ve},so=async()=>{if(be!==void 0)return be;be=null;try{let t=await hr(Ps),e=xs(t);be=Ns(e)}catch{}return be},io=()=>{if(be!==void 0)return be;be=null;try{let t=ur(Ps),e=xs(t);be=Ns(e)}catch{}return be},Fs=async()=>{let t=null;if(rt()&&(t=await so(),!t&&(t=await to(),t||(t=As()),!t))){let e=await $s();t=_s(e)}return t},Cs=()=>{let t=null;if(rt()&&(t=io(),!t&&(t=ro(),t||(t=As()),!t))){let e=ks();t=_s(e)}return t},no=async()=>rt()&&await Fs()!==_e,ao=()=>rt()&&Cs()!==_e,oo=async()=>{if(we!==void 0)return we;we=null;try{let e=(await hr(jt)).match(Ss);e&&(we=e[1])}catch{}return we},lo=()=>{if(we!==void 0)return we;we=null;try{let e=ur(jt).match(Ss);e&&(we=e[1])}catch{}return we},js=()=>{let t=Es();return t.header&&t.header.glibcVersionRuntime?t.header.glibcVersionRuntime:null},ws=t=>t.trim().split(/\s+/)[1],Ds=t=>{let[e,r,s]=t.split(/[\r\n]+/);return e&&e.includes(_e)?ws(e):r&&s&&r.includes(Xe)?ws(s):null},co=async()=>{let t=null;if(rt()&&(t=await oo(),t||(t=js()),!t)){let e=await $s();t=Ds(e)}return t},ho=()=>{let t=null;if(rt()&&(t=lo(),t||(t=js()),!t)){let e=ks();t=Ds(e)}return t};Ts.exports={GLIBC:_e,MUSL:Xe,family:Fs,familySync:Cs,isNonGlibcLinux:no,isNonGlibcLinuxSync:ao,version:co,versionSync:ho}});var yt=j((uf,Ls)=>{"use strict";g();var uo=typeof p=="object"&&p.env&&p.env.NODE_DEBUG&&/\bsemver\b/i.test(p.env.NODE_DEBUG)?(...t)=>{}:()=>{};Ls.exports=uo});var Tt=j((df,Os)=>{"use strict";g();var fo="2.0.0",go=Number.MAX_SAFE_INTEGER||9007199254740991,po=16,mo=250,bo=["major","premajor","minor","preminor","patch","prepatch","prerelease"];Os.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:po,MAX_SAFE_BUILD_LENGTH:mo,MAX_SAFE_INTEGER:go,RELEASE_TYPES:bo,SEMVER_SPEC_VERSION:fo,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var Et=j((ye,Ms)=>{"use strict";g();var{MAX_SAFE_COMPONENT_LENGTH:fr,MAX_SAFE_BUILD_LENGTH:vo,MAX_LENGTH:wo}=Tt(),yo=yt();ye=Ms.exports={};var Eo=ye.re=[],Po=ye.safeRe=[],N=ye.src=[],xo=ye.safeSrc=[],I=ye.t={},Ro=0,dr="[a-zA-Z0-9-]",$o=[["\\s",1],["\\d",wo],[dr,vo]],ko=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=ko(e),i=Ro++;yo(t,i,e),I[t]=i,N[i]=e,xo[i]=s,Eo[i]=new RegExp(e,r?"g":void 0),Po[i]=new RegExp(s,r?"g":void 0)};C("NUMERICIDENTIFIER","0|[1-9]\\d*");C("NUMERICIDENTIFIERLOOSE","\\d+");C("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${dr}*`);C("MAINVERSION",`(${N[I.NUMERICIDENTIFIER]})\\.(${N[I.NUMERICIDENTIFIER]})\\.(${N[I.NUMERICIDENTIFIER]})`);C("MAINVERSIONLOOSE",`(${N[I.NUMERICIDENTIFIERLOOSE]})\\.(${N[I.NUMERICIDENTIFIERLOOSE]})\\.(${N[I.NUMERICIDENTIFIERLOOSE]})`);C("PRERELEASEIDENTIFIER",`(?:${N[I.NONNUMERICIDENTIFIER]}|${N[I.NUMERICIDENTIFIER]})`);C("PRERELEASEIDENTIFIERLOOSE",`(?:${N[I.NONNUMERICIDENTIFIER]}|${N[I.NUMERICIDENTIFIERLOOSE]})`);C("PRERELEASE",`(?:-(${N[I.PRERELEASEIDENTIFIER]}(?:\\.${N[I.PRERELEASEIDENTIFIER]})*))`);C("PRERELEASELOOSE",`(?:-?(${N[I.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${N[I.PRERELEASEIDENTIFIERLOOSE]})*))`);C("BUILDIDENTIFIER",`${dr}+`);C("BUILD",`(?:\\+(${N[I.BUILDIDENTIFIER]}(?:\\.${N[I.BUILDIDENTIFIER]})*))`);C("FULLPLAIN",`v?${N[I.MAINVERSION]}${N[I.PRERELEASE]}?${N[I.BUILD]}?`);C("FULL",`^${N[I.FULLPLAIN]}$`);C("LOOSEPLAIN",`[v=\\s]*${N[I.MAINVERSIONLOOSE]}${N[I.PRERELEASELOOSE]}?${N[I.BUILD]}?`);C("LOOSE",`^${N[I.LOOSEPLAIN]}$`);C("GTLT","((?:<|>)?=?)");C("XRANGEIDENTIFIERLOOSE",`${N[I.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);C("XRANGEIDENTIFIER",`${N[I.NUMERICIDENTIFIER]}|x|X|\\*`);C("XRANGEPLAIN",`[v=\\s]*(${N[I.XRANGEIDENTIFIER]})(?:\\.(${N[I.XRANGEIDENTIFIER]})(?:\\.(${N[I.XRANGEIDENTIFIER]})(?:${N[I.PRERELEASE]})?${N[I.BUILD]}?)?)?`);C("XRANGEPLAINLOOSE",`[v=\\s]*(${N[I.XRANGEIDENTIFIERLOOSE]})(?:\\.(${N[I.XRANGEIDENTIFIERLOOSE]})(?:\\.(${N[I.XRANGEIDENTIFIERLOOSE]})(?:${N[I.PRERELEASELOOSE]})?${N[I.BUILD]}?)?)?`);C("XRANGE",`^${N[I.GTLT]}\\s*${N[I.XRANGEPLAIN]}$`);C("XRANGELOOSE",`^${N[I.GTLT]}\\s*${N[I.XRANGEPLAINLOOSE]}$`);C("COERCEPLAIN",`(^|[^\\d])(\\d{1,${fr}})(?:\\.(\\d{1,${fr}}))?(?:\\.(\\d{1,${fr}}))?`);C("COERCE",`${N[I.COERCEPLAIN]}(?:$|[^\\d])`);C("COERCEFULL",N[I.COERCEPLAIN]+`(?:${N[I.PRERELEASE]})?(?:${N[I.BUILD]})?(?:$|[^\\d])`);C("COERCERTL",N[I.COERCE],!0);C("COERCERTLFULL",N[I.COERCEFULL],!0);C("LONETILDE","(?:~>?)");C("TILDETRIM",`(\\s*)${N[I.LONETILDE]}\\s+`,!0);ye.tildeTrimReplace="$1~";C("TILDE",`^${N[I.LONETILDE]}${N[I.XRANGEPLAIN]}$`);C("TILDELOOSE",`^${N[I.LONETILDE]}${N[I.XRANGEPLAINLOOSE]}$`);C("LONECARET","(?:\\^)");C("CARETTRIM",`(\\s*)${N[I.LONECARET]}\\s+`,!0);ye.caretTrimReplace="$1^";C("CARET",`^${N[I.LONECARET]}${N[I.XRANGEPLAIN]}$`);C("CARETLOOSE",`^${N[I.LONECARET]}${N[I.XRANGEPLAINLOOSE]}$`);C("COMPARATORLOOSE",`^${N[I.GTLT]}\\s*(${N[I.LOOSEPLAIN]})$|^$`);C("COMPARATOR",`^${N[I.GTLT]}\\s*(${N[I.FULLPLAIN]})$|^$`);C("COMPARATORTRIM",`(\\s*)${N[I.GTLT]}\\s*(${N[I.LOOSEPLAIN]}|${N[I.XRANGEPLAIN]})`,!0);ye.comparatorTrimReplace="$1$2$3";C("HYPHENRANGE",`^\\s*(${N[I.XRANGEPLAIN]})\\s+-\\s+(${N[I.XRANGEPLAIN]})\\s*$`);C("HYPHENRANGELOOSE",`^\\s*(${N[I.XRANGEPLAINLOOSE]})\\s+-\\s+(${N[I.XRANGEPLAINLOOSE]})\\s*$`);C("STAR","(<|>)?=?\\s*\\*");C("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");C("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var Lt=j((mf,zs)=>{"use strict";g();var So=Object.freeze({loose:!0}),Ao=Object.freeze({}),_o=t=>t?typeof t!="object"?So:t:Ao;zs.exports=_o});var Gs=j((vf,qs)=>{"use strict";g();var Bs=/^[0-9]+$/,Us=(t,e)=>{if(typeof t=="number"&&typeof e=="number")return t===e?0:t<e?-1:1;let r=Bs.test(t),s=Bs.test(e);return r&&s&&(t=+t,e=+e),t===e?0:r&&!s?-1:s&&!r?1:t<e?-1:1},No=(t,e)=>Us(e,t);qs.exports={compareIdentifiers:Us,rcompareIdentifiers:No}});var st=j((yf,Ws)=>{"use strict";g();var Ot=yt(),{MAX_LENGTH:Hs,MAX_SAFE_INTEGER:Mt}=Tt(),{safeRe:zt,t:Bt}=Et(),Io=Lt(),{compareIdentifiers:gr}=Gs(),pr=class t{constructor(e,r){if(r=Io(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>Hs)throw new TypeError(`version is longer than ${Hs} characters`);Ot("SemVer",e,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let s=e.trim().match(r.loose?zt[Bt.LOOSE]:zt[Bt.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>Mt||this.major<0)throw new TypeError("Invalid major version");if(this.minor>Mt||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>Mt||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<Mt)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(Ot("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(Ot("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 gr(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(Ot("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 gr(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?zt[Bt.PRERELEASELOOSE]:zt[Bt.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]),gr(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}};Ws.exports=pr});var Js=j((Pf,Xs)=>{"use strict";g();var Vs=st(),Fo=(t,e,r=!1)=>{if(t instanceof Vs)return t;try{return new Vs(t,e)}catch(s){if(!r)return null;throw s}};Xs.exports=Fo});var Ys=j((Rf,Ks)=>{"use strict";g();var Co=st(),jo=Js(),{safeRe:Ut,t:qt}=Et(),Do=(t,e)=>{if(t instanceof Co)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?Ut[qt.COERCEFULL]:Ut[qt.COERCE]);else{let c=e.includePrerelease?Ut[qt.COERCERTLFULL]:Ut[qt.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 jo(`${s}.${i}.${n}${a}${o}`,e)};Ks.exports=Do});var Je=j((kf,Zs)=>{"use strict";g();var Qs=st(),To=(t,e,r)=>new Qs(t,r).compare(new Qs(e,r));Zs.exports=To});var mr=j((Af,ei)=>{"use strict";g();var Lo=Je(),Oo=(t,e,r)=>Lo(t,e,r)>=0;ei.exports=Oo});var ri=j((Nf,ti)=>{"use strict";g();var br=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}};ti.exports=br});var ii=j((Ff,si)=>{"use strict";g();var Mo=Je(),zo=(t,e,r)=>Mo(t,e,r)===0;si.exports=zo});var ai=j((jf,ni)=>{"use strict";g();var Bo=Je(),Uo=(t,e,r)=>Bo(t,e,r)!==0;ni.exports=Uo});var li=j((Tf,oi)=>{"use strict";g();var qo=Je(),Go=(t,e,r)=>qo(t,e,r)>0;oi.exports=Go});var hi=j((Of,ci)=>{"use strict";g();var Ho=Je(),Wo=(t,e,r)=>Ho(t,e,r)<0;ci.exports=Wo});var fi=j((zf,ui)=>{"use strict";g();var Vo=Je(),Xo=(t,e,r)=>Vo(t,e,r)<=0;ui.exports=Xo});var gi=j((Uf,di)=>{"use strict";g();var Jo=ii(),Ko=ai(),Yo=li(),Qo=mr(),Zo=hi(),el=fi(),tl=(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 Jo(t,r,s);case"!=":return Ko(t,r,s);case">":return Yo(t,r,s);case">=":return Qo(t,r,s);case"<":return Zo(t,r,s);case"<=":return el(t,r,s);default:throw new TypeError(`Invalid operator: ${e}`)}};di.exports=tl});var Ei=j((Gf,yi)=>{"use strict";g();var Pt=Symbol("SemVer ANY"),yr=class t{static get ANY(){return Pt}constructor(e,r){if(r=pi(r),e instanceof t){if(e.loose===!!r.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),wr("comparator",e,r),this.options=r,this.loose=!!r.loose,this.parse(e),this.semver===Pt?this.value="":this.value=this.operator+this.semver.version,wr("comp",this)}parse(e){let r=this.options.loose?mi[bi.COMPARATORLOOSE]:mi[bi.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 vi(s[2],this.options.loose):this.semver=Pt}toString(){return this.value}test(e){if(wr("Comparator.test",e,this.options.loose),this.semver===Pt||e===Pt)return!0;if(typeof e=="string")try{e=new vi(e,this.options)}catch{return!1}return vr(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 wi(e.value,r).test(this.value):e.operator===""?e.value===""?!0:new wi(this.value,r).test(e.semver):(r=pi(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("=")||vr(this.semver,"<",e.semver,r)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||vr(this.semver,">",e.semver,r)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};yi.exports=yr;var pi=Lt(),{safeRe:mi,t:bi}=Et(),vr=gi(),wr=yt(),vi=st(),wi=Er()});var Er=j((Wf,$i)=>{"use strict";g();var rl=/\s+/g,Pr=class t{constructor(e,r){if(r=il(r),e instanceof t)return e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease?e:new t(e.raw,r);if(e instanceof xr)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(rl," "),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=>!xi(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&&ul(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&&cl)|(this.options.loose&&hl))+":"+e,i=Pi.get(s);if(i)return i;let n=this.options.loose,a=n?ee[Z.HYPHENRANGELOOSE]:ee[Z.HYPHENRANGE];e=e.replace(a,El(this.options.includePrerelease)),q("hyphen replace",e),e=e.replace(ee[Z.COMPARATORTRIM],al),q("comparator trim",e),e=e.replace(ee[Z.TILDETRIM],ol),q("tilde trim",e),e=e.replace(ee[Z.CARETTRIM],ll),q("caret trim",e);let o=e.split(" ").map(m=>fl(m,this.options)).join(" ").split(/\s+/).map(m=>yl(m,this.options));n&&(o=o.filter(m=>(q("loose invalid filter",m,this.options),!!m.match(ee[Z.COMPARATORLOOSE])))),q("range list",o);let c=new Map,u=o.map(m=>new xr(m,this.options));for(let m of u){if(xi(m))return[m];c.set(m.value,m)}c.size>1&&c.has("")&&c.delete("");let f=[...c.values()];return Pi.set(s,f),f}intersects(e,r){if(!(e instanceof t))throw new TypeError("a Range is required");return this.set.some(s=>Ri(s,r)&&e.set.some(i=>Ri(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 nl(e,this.options)}catch{return!1}for(let r=0;r<this.set.length;r++)if(Pl(this.set[r],e,this.options))return!0;return!1}};$i.exports=Pr;var sl=ri(),Pi=new sl,il=Lt(),xr=Ei(),q=yt(),nl=st(),{safeRe:ee,t:Z,comparatorTrimReplace:al,tildeTrimReplace:ol,caretTrimReplace:ll}=Et(),{FLAG_INCLUDE_PRERELEASE:cl,FLAG_LOOSE:hl}=Tt(),xi=t=>t.value==="<0.0.0-0",ul=t=>t.value==="",Ri=(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},fl=(t,e)=>(t=t.replace(ee[Z.BUILD],""),q("comp",t,e),t=pl(t,e),q("caret",t),t=dl(t,e),q("tildes",t),t=bl(t,e),q("xrange",t),t=wl(t,e),q("stars",t),t),te=t=>!t||t.toLowerCase()==="x"||t==="*",dl=(t,e)=>t.trim().split(/\s+/).map(r=>gl(r,e)).join(" "),gl=(t,e)=>{let r=e.loose?ee[Z.TILDELOOSE]:ee[Z.TILDE];return t.replace(r,(s,i,n,a,o)=>{q("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?(q("replaceTilde pr",o),c=`>=${i}.${n}.${a}-${o} <${i}.${+n+1}.0-0`):c=`>=${i}.${n}.${a} <${i}.${+n+1}.0-0`,q("tilde return",c),c})},pl=(t,e)=>t.trim().split(/\s+/).map(r=>ml(r,e)).join(" "),ml=(t,e)=>{q("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)=>{q("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?(q("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`):(q("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`),q("caret return",u),u})},bl=(t,e)=>(q("replaceXRanges",t,e),t.split(/\s+/).map(r=>vl(r,e)).join(" ")),vl=(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)=>{q("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`),q("xRange return",s),s})},wl=(t,e)=>(q("replaceStars",t,e),t.trim().replace(ee[Z.STAR],"")),yl=(t,e)=>(q("replaceGTE0",t,e),t.trim().replace(ee[e.includePrerelease?Z.GTE0PRE:Z.GTE0],"")),El=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()),Pl=(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(q(t[s].semver),t[s].semver!==xr.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 Si=j((Xf,ki)=>{"use strict";g();var xl=Er(),Rl=(t,e,r)=>{try{e=new xl(e,r)}catch{return!1}return e.test(t)};ki.exports=Rl});var Rr=j((Kf,$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 kr=j((Yf,Li)=>{g();var{spawnSync:Gt}=G("node:child_process"),{createHash:kl}=G("node:crypto"),Ii=Ys(),Sl=mr(),Al=Si(),Ai=Dt(),{config:_l,engines:_i,optionalDependencies:Nl}=Rr(),Il=p.env.npm_package_config_libvips||_l.libvips,Fi=Ii(Il).version,Fl=["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"],Ht={encoding:"utf8",shell:!0},Cl=t=>{t instanceof Error},Ci=()=>Ai.isNonGlibcLinuxSync()?Ai.familySync():"",jl=()=>`${p.platform}${Ci()}-${p.arch}`,it=()=>{if(ji())return"wasm32";let{npm_config_arch:t,npm_config_platform:e,npm_config_libc:r}=p.env,s=typeof r=="string"?r:Ci();return`${e||p.platform}${s}-${t||p.arch}`},Dl=()=>{try{return G(`@img/sharp-libvips-dev-${it()}/include`)}catch{try{return G("@img/sharp-libvips-dev/include")}catch{}}return""},Tl=()=>{try{return G("@img/sharp-libvips-dev/cplusplus")}catch{}return""},Ll=()=>{try{return G(`@img/sharp-libvips-dev-${it()}/lib`)}catch{try{return G(`@img/sharp-libvips-${it()}/lib`)}catch{}}return""},Ol=()=>{if(p.release?.name==="node"&&p.versions&&!Al(p.versions.node,_i.node))return{found:p.versions.node,expected:_i.node}},ji=()=>{let{CC:t}=p.env;return!!t?.endsWith("/emcc")},Ml=()=>p.platform==="darwin"&&p.arch==="x64"?(Gt("sysctl sysctl.proc_translated",Ht).stdout||"").trim()==="sysctl.proc_translated: 1":!1,Ni=t=>kl("sha512").update(t).digest("hex"),zl=()=>{try{let t=Ni(`imgsharp-libvips-${it()}`),e=Ii(Nl[`@img/sharp-libvips-${it()}`],{includePrerelease:!0}).version;return Ni(`${t}npm:${e}`).slice(0,10)}catch{}return""},Bl=()=>Gt(`node-gyp rebuild --directory=src ${ji()?"--nodedir=emscripten":""}`,{...Ht,stdio:"inherit"}).status,Di=()=>p.platform!=="win32"?(Gt("pkg-config --modversion vips-cpp",{...Ht,env:{...p.env,PKG_CONFIG_PATH:Ti()}}).stdout||"").trim():"",Ti=()=>p.platform!=="win32"?[(Gt('which brew >/dev/null 2>&1 && brew environment --plain | grep PKG_CONFIG_LIBDIR | cut -d" " -f2',Ht).stdout||"").trim(),p.env.PKG_CONFIG_PATH,"/usr/local/lib/pkgconfig","/usr/lib/pkgconfig","/usr/local/libdata/pkgconfig","/usr/libdata/pkgconfig"].filter(Boolean).join(":"):"",$r=(t,e,r)=>(r&&r(`Detected ${e}, skipping search for globally-installed libvips`),t),Ul=t=>{if(p.env.SHARP_IGNORE_GLOBAL_LIBVIPS)return $r(!1,"SHARP_IGNORE_GLOBAL_LIBVIPS",t);if(p.env.SHARP_FORCE_GLOBAL_LIBVIPS)return $r(!0,"SHARP_FORCE_GLOBAL_LIBVIPS",t);if(Ml())return $r(!1,"Rosetta",t);let e=Di();return!!e&&Sl(e,Fi)};Li.exports={minimumLibvipsVersion:Fi,prebuiltPlatforms:Fl,buildPlatformArch:it,buildSharpLibvipsIncludeDir:Dl,buildSharpLibvipsCPlusPlusDir:Tl,buildSharpLibvipsLibDir:Ll,isUnsupportedNodeRuntime:Ol,runtimePlatformArch:jl,log:Cl,yarnLocator:zl,spawnRebuild:Bl,globalLibvipsVersion:Di,pkgConfigPath:Ti,useGlobalLibvips:Ul}});var Rt=j((ed,Mi)=>{g();var{familySync:ql,versionSync:Gl}=Dt(),{runtimePlatformArch:Hl,isUnsupportedNodeRuntime:Oi,prebuiltPlatforms:Wl,minimumLibvipsVersion:Vl}=kr(),Ke=Hl(),Xl=[`../src/build/Release/sharp-${Ke}.node`,"../src/build/Release/sharp-wasm32.node",`@img/sharp-${Ke}/sharp.node`,"@img/sharp-wasm32/sharp.node"],Sr,nt,xt=[];for(Sr of Xl)try{nt=G(Sr);break}catch(t){xt.push(t)}if(nt&&Sr.startsWith("@img/sharp-linux-x64")&&!nt._isUsingX64V2()){let t=new Error("Prebuilt binaries for linux-x64 require v2 microarchitecture");t.code="Unsupported CPU",xt.push(t),nt=null}if(nt)Mi.exports=nt;else{let[t,e,r]=["linux","darwin","win32"].map(n=>Ke.startsWith(n)),s=[`Could not load the "sharp" module using the ${Ke} runtime`];xt.forEach(n=>{n.code!=="MODULE_NOT_FOUND"&&s.push(`${n.code}: ${n.message}`)});let i=xt.map(n=>n.message).join(" ");if(s.push("Possible solutions:"),Oi()){let{found:n,expected:a}=Oi();s.push("- Please upgrade Node.js:",` Found ${n}`,` Requires ${a}`)}else if(Wl.includes(Ke)){let[n,a]=Ke.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 >= ${Vl}`,"- 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}=G(`@img/sharp-libvips-${Ke}/package`),a=`${ql()} ${Gl()}`,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"),xt.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 Bi=j((sd,zi)=>{g();var Jl=G("node:util"),Ar=G("node:stream"),Kl=me();Rt();var Yl=Jl.debuglog("sharp"),Ql=t=>{Ye.queue.emit("change",t)},Ye=function(t,e){if(arguments.length===1&&!Kl.defined(t))throw new Error("Invalid input");return this instanceof Ye?(Ar.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),Yl(r)},queueListener:Ql},this.options.input=this._createInputDescriptor(t,e,{allowStream:!0}),this):new Ye(t,e)};Object.setPrototypeOf(Ye.prototype,Ar.Duplex.prototype);Object.setPrototypeOf(Ye,Ar.Duplex);function Zl(){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(Ye.prototype,{clone:Zl});zi.exports=Ye});var Gi=j((nd,qi)=>{g();var h=me(),Le=Rt(),ec={left:"low",top:"low",low:"low",center:"centre",centre:"centre",right:"high",bottom:"high",high:"high"},tc=["failOn","limitInputPixels","unlimited","animated","autoOrient","density","ignoreIcc","page","pages","sequentialRead","jp2","openSlide","pdf","raw","svg","tiff","failOnError","openSlideLevel","pdfBackground","tiffSubifd"];function Ui(t){let e=tc.filter(r=>h.defined(t[r])).map(r=>[r,t[r]]);return e.length?Object.fromEntries(e):void 0}function rc(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,Ui(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 sc(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 ic(){this._isStreamInput()&&(this.options.input.buffer=b.concat(this.options.input.buffer))}function nc(){return Array.isArray(this.options.input.buffer)}function ac(t){let e=Error();return h.fn(t)?(this._isStreamInput()?this.on("finish",()=>{this._flattenBufferIn(),Le.metadata(this.options,(r,s)=>{r?t(h.nativeError(r,e)):t(null,s)})}):Le.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(),Le.metadata(this.options,(n,a)=>{n?s(h.nativeError(n,e)):r(a)})};this.writableFinished?i():this.once("finish",i)}):new Promise((r,s)=>{Le.metadata(this.options,(i,n)=>{i?s(h.nativeError(i,e)):r(n)})})}function oc(t){let e=Error();return h.fn(t)?(this._isStreamInput()?this.on("finish",()=>{this._flattenBufferIn(),Le.stats(this.options,(r,s)=>{r?t(h.nativeError(r,e)):t(null,s)})}):Le.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(),Le.stats(this.options,(i,n)=>{i?s(h.nativeError(i,e)):r(n)})})}):new Promise((r,s)=>{Le.stats(this.options,(i,n)=>{i?s(h.nativeError(i,e)):r(n)})})}qi.exports=t=>{Object.assign(t.prototype,{_inputOptionsFromObject:Ui,_createInputDescriptor:rc,_write:sc,_flattenBufferIn:ic,_isStreamInput:nc,metadata:ac,stats:oc}),t.align=ec}});var Ki=j((od,Ji)=>{g();var F=me(),Wi={center:0,centre:0,north:1,east:2,south:3,west:4,northeast:5,southeast:6,southwest:7,northwest:8},Vi={top:1,right:2,bottom:3,left:4,"right top":5,"right bottom":6,"left bottom":7,"left top":8},Hi={background:"background",copy:"copy",repeat:"repeat",mirror:"mirror"},Xi={entropy:16,attention:17},_r={nearest:"nearest",linear:"linear",cubic:"cubic",mitchell:"mitchell",lanczos2:"lanczos2",lanczos3:"lanczos3",mks2013:"mks2013",mks2021:"mks2021"},lc={contain:"contain",cover:"cover",fill:"fill",inside:"inside",outside:"outside"},cc={contain:"embed",cover:"crop",fill:"ignore_aspect",inside:"max",outside:"min"};function Nr(t){return t.angle%360!==0||t.rotationAngle!==0}function Wt(t){return t.width!==-1||t.height!==-1}function hc(t,e,r){if(Wt(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=cc[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:Xi[r.position]||Vi[r.position]||Wi[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(_r[r.kernel]))this.options.kernel=_r[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 Nr(this.options)&&Wt(this.options)&&(this.options.rotateBefore=!0),this}function uc(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(Hi[t.extendWith]))this.options.extendWith=Hi[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 fc(t){let e=Wt(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),Nr(this.options)&&!Wt(this.options)&&(this.options.widthPre===-1||this.options.widthPost===-1)&&(this.options.rotateBefore=!0),this.options.input.autoOrient&&(this.options.orientBefore=!0),this}function dc(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 Nr(this.options)&&(this.options.rotateBefore=!0),this}Ji.exports=t=>{Object.assign(t.prototype,{resize:hc,extend:uc,extract:fc,trim:dc}),t.gravity=Wi,t.strategy=Xi,t.kernel=_r,t.fit=lc,t.position=Vi}});var Qi=j((cd,Yi)=>{g();var U=me(),Ir={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 gc(t){if(!Array.isArray(t))throw U.invalidParameterError("images to composite","array",t);return this.options.composite=t.map(e=>{if(!U.object(e))throw U.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(U.defined(e.blend))if(U.string(Ir[e.blend]))s.blend=Ir[e.blend];else throw U.invalidParameterError("blend","valid blend name",e.blend);if(U.defined(e.tile))if(U.bool(e.tile))s.tile=e.tile;else throw U.invalidParameterError("tile","boolean",e.tile);if(U.defined(e.left))if(U.integer(e.left))s.left=e.left;else throw U.invalidParameterError("left","integer",e.left);if(U.defined(e.top))if(U.integer(e.top))s.top=e.top;else throw U.invalidParameterError("top","integer",e.top);if(U.defined(e.top)!==U.defined(e.left))throw new Error("Expected both left and top to be set");if(s.hasOffset=U.integer(e.top)&&U.integer(e.left),U.defined(e.gravity))if(U.integer(e.gravity)&&U.inRange(e.gravity,0,8))s.gravity=e.gravity;else if(U.string(e.gravity)&&U.integer(this.constructor.gravity[e.gravity]))s.gravity=this.constructor.gravity[e.gravity];else throw U.invalidParameterError("gravity","valid gravity",e.gravity);if(U.defined(e.premultiplied))if(U.bool(e.premultiplied))s.premultiplied=e.premultiplied;else throw U.invalidParameterError("premultiplied","boolean",e.premultiplied);return s}),this}Yi.exports=t=>{t.prototype.composite=gc,t.blend=Ir}});var sn=j((ud,rn)=>{g();var d=me(),Zi={integer:"integer",float:"float",approximate:"approximate"};function pc(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 mc(){return this.options.input.autoOrient=!0,this}function bc(t){return this.options.flip=d.bool(t)?t:!0,this}function vc(t){return this.options.flop=d.bool(t)?t:!0,this}function wc(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 yc(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 Ec(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 Pc(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(Zi[t.precision]))this.options.precision=Zi[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 en(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",en);return this}function tn(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",tn);return this}function xc(t){return this.options.flatten=d.bool(t)?t:!0,d.object(t)&&this._setBackgroundColourOption("flattenBackground",t.background),this}function Rc(){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 kc(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 Sc(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 Ac(t){return this.normalise(t)}function _c(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 Nc(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 Ic(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 Fc(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 Cc(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 jc(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 Dc(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}rn.exports=t=>{Object.assign(t.prototype,{autoOrient:mc,rotate:pc,flip:bc,flop:vc,affine:wc,sharpen:yc,erode:tn,dilate:en,median:Ec,blur:Pc,flatten:xc,unflatten:Rc,gamma:$c,negate:kc,normalise:Sc,normalize:Ac,clahe:_c,convolve:Nc,threshold:Ic,boolean:Fc,linear:Cc,recomb:jc,modulate:Dc})}});var hn=j((dd,cn)=>{g();var Dr=Object.defineProperty,Tc=Object.getOwnPropertyDescriptor,Lc=Object.getOwnPropertyNames,Oc=Object.prototype.hasOwnProperty,Mc=(t,e)=>{for(var r in e)Dr(t,r,{get:e[r],enumerable:!0})},zc=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Lc(e))!Oc.call(t,i)&&i!==r&&Dr(t,i,{get:()=>e[i],enumerable:!(s=Tc(e,i))||s.enumerable});return t},Bc=t=>zc(Dr({},"__esModule",{value:!0}),t),nn={};Mc(nn,{default:()=>th});cn.exports=Bc(nn);var Ee={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]},an=Object.create(null);for(let t in Ee)Object.hasOwn(Ee,t)&&(an[Ee[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(Ee,o[1])?(a=Ee[o[1]],a[3]=1,a):null:null;for(c=0;c<3;c++)a[c]=Oe(a[c],0,255);return a[3]=Oe(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=Oe(Number.parseFloat(r[2]),0,100),a=Oe(Number.parseFloat(r[3]),0,100),o=Oe(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=Oe(Number.parseFloat(r[2]),0,100),a=Oe(Number.parseFloat(r[3]),0,100),o=Oe(Number.isNaN(s)?1:s,0,1);return[i,n,a,o]}return null};ie.to.hex=function(...t){return"#"+Vt(t[0])+Vt(t[1])+Vt(t[2])+(t[3]<1?Vt(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 an[t.slice(0,3)]};function Oe(t,e,r){return Math.min(Math.max(e,t),r)}function Vt(t){let e=Math.round(t).toString(16).toUpperCase();return e.length<2?"0"+e:e}var at=ie,on={};for(let t of Object.keys(Ee))on[Ee[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"]}},Qe=A,Ne=(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 Uc(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=on[t];if(e)return e;let r=Number.POSITIVE_INFINITY,s;for(let i of Object.keys(Ee)){let n=Ee[i],a=Uc(t,n);a<r&&(r=a,s=i)}return s};A.keyword.rgb=function(t){return Ee[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>Ne?r**(1/3):7.787*r+16/116,s=s>Ne?s**(1/3):7.787*s+16/116,i=i>Ne?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>Ne?e**(1/3):7.787*e+16/116,r=r>Ne?r**(1/3):7.787*r+16/116,s=s>Ne?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>Ne?o:(n-16/116)/7.787,i=c>Ne?c:(i-16/116)/7.787,a=u>Ne?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 qc(){let t={},e=Object.keys(Qe);for(let{length:r}=e,s=0;s<r;s++)t[e[s]]={distance:-1,parent:null};return t}function Gc(t){let e=qc(),r=[t];for(e[t].distance=0;r.length>0;){let s=r.pop(),i=Object.keys(Qe[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 Hc(t,e){return function(r){return e(t(r))}}function Wc(t,e){let r=[e[t].parent,t],s=Qe[e[t].parent][t],i=e[t].parent;for(;e[i].parent;)r.unshift(e[i].parent),s=Hc(Qe[e[i].parent][i],s),i=e[i].parent;return s.conversion=r,s}function Vc(t){let e=Gc(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]=Wc(a,e))}return r}var Xc=Vc,ot={},Jc=Object.keys(Qe);function Kc(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 Yc(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 Jc){ot[t]={},Object.defineProperty(ot[t],"channels",{value:Qe[t].channels}),Object.defineProperty(ot[t],"labels",{value:Qe[t].labels});let e=Xc(t),r=Object.keys(e);for(let s of r){let i=e[s];ot[t][s]=Yc(i),ot[t][s].raw=Kc(i)}}var oe=ot,ln=["keyword","gray","hex"],Fr={};for(let t of Object.keys(oe))Fr[[...oe[t].labels].sort().join("")]=t;var Cr={};function K(t,e){if(!(this instanceof K))return new K(t,e);if(e&&e in ln&&(e=null),e&&!(e in oe))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=oe[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=oe[this.model].channels;let i=Array.prototype.slice.call(t,0,s);this.color=jr(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 Fr))throw new Error("Unable to parse color from object: "+JSON.stringify(t));this.model=Fr[n];let{labels:a}=oe[this.model],o=[];for(r=0;r<a.length;r++)o.push(t[a[r]]);this.color=jr(o)}if(Cr[this.model])for(s=oe[this.model].channels,r=0;r<s;r++){let i=Cr[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}=oe[this.model],{labels:r}=oe[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(Zc(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:H("rgb",0,W(255)),green:H("rgb",1,W(255)),blue:H("rgb",2,W(255)),hue:H(["hsl","hsv","hsl","hwb","hcg"],0,t=>(t%360+360)%360),saturationl:H("hsl",1,W(100)),lightness:H("hsl",2,W(100)),saturationv:H("hsv",1,W(100)),value:H("hsv",2,W(100)),chroma:H("hcg",1,W(100)),gray:H("hcg",2,W(100)),white:H("hwb",1,W(100)),wblack:H("hwb",2,W(100)),cyan:H("cmyk",0,W(100)),magenta:H("cmyk",1,W(100)),yellow:H("cmyk",2,W(100)),black:H("cmyk",3,W(100)),x:H("xyz",0,W(95.047)),y:H("xyz",1,W(100)),z:H("xyz",2,W(108.833)),l:H("lab",0,W(100)),a:H("lab",1),b:H("lab",2),keyword(t){return t!==void 0?new K(t):oe[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(oe)){if(ln.includes(t))continue;let{channels:e}=oe[t];K.prototype[t]=function(...r){return this.model===t?new K(this):r.length>0?new K(r,t):new K([...eh(oe[this.model][t].raw(this.color)),this.valpha],t)},K[t]=function(...r){let s=r[0];return typeof s=="number"&&(s=jr(r,e)),new K(s,t)}}function Qc(t,e){return Number(t.toFixed(e))}function Zc(t){return function(e){return Qc(e,t)}}function H(t,e,r){t=Array.isArray(t)?t:[t];for(let s of t)(Cr[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 W(t){return function(e){return Math.max(0,Math.min(t,e))}}function eh(t){return Array.isArray(t)?t:[t]}function jr(t,e){for(let r=0;r<e;r++)typeof t[r]!="number"&&(t[r]=0);return t}var th=K});var fn=j((pd,un)=>{g();un.exports=hn().default});var mn=j((bd,pn)=>{g();var rh=fn(),Ie=me(),dn={multiband:"multiband","b-w":"b-w",bw:"b-w",cmyk:"cmyk",srgb:"srgb"};function sh(t){return this._setBackgroundColourOption("tint",t),this}function ih(t){return this.options.greyscale=Ie.bool(t)?t:!0,this}function nh(t){return this.greyscale(t)}function ah(t){if(!Ie.string(t))throw Ie.invalidParameterError("colourspace","string",t);return this.options.colourspacePipeline=t,this}function oh(t){return this.pipelineColourspace(t)}function lh(t){if(!Ie.string(t))throw Ie.invalidParameterError("colourspace","string",t);return this.options.colourspace=t,this}function ch(t){return this.toColourspace(t)}function gn(t){if(Ie.object(t)||Ie.string(t)&&t.length>=3&&t.length<=200){let e=rh(t);return[e.red(),e.green(),e.blue(),Math.round(e.alpha()*255)]}else throw Ie.invalidParameterError("background","object or string",t)}function hh(t,e){Ie.defined(e)&&(this.options[t]=gn(e))}pn.exports=t=>{Object.assign(t.prototype,{tint:sh,greyscale:ih,grayscale:nh,pipelineColourspace:ah,pipelineColorspace:oh,toColourspace:lh,toColorspace:ch,_getBackgroundColourOption:gn,_setBackgroundColourOption:hh}),t.colourspace=dn,t.colorspace=dn}});var vn=j((wd,bn)=>{g();var Pe=me(),uh={and:"and",or:"or",eor:"eor"};function fh(){return this.options.removeAlpha=!0,this}function dh(t){if(Pe.defined(t))if(Pe.number(t)&&Pe.inRange(t,0,1))this.options.ensureAlpha=t;else throw Pe.invalidParameterError("alpha","number between 0 and 1",t);else this.options.ensureAlpha=1;return this}function gh(t){let e={red:0,green:1,blue:2,alpha:3};if(Object.keys(e).includes(t)&&(t=e[t]),Pe.integer(t)&&Pe.inRange(t,0,4))this.options.extractChannel=t;else throw Pe.invalidParameterError("channel","integer or one of: red, green, blue, alpha",t);return this}function ph(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 mh(t){if(Pe.string(t)&&Pe.inArray(t,["and","or","eor"]))this.options.bandBoolOp=t;else throw Pe.invalidParameterError("boolOp","one of: and, or, eor",t);return this}bn.exports=t=>{Object.assign(t.prototype,{removeAlpha:fh,ensureAlpha:dh,extractChannel:gh,joinChannel:ph,bandbool:mh}),t.bool=uh}});var xn=j((Ed,Pn)=>{g();var Tr=G("node:path"),l=me(),ht=Rt(),wn=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"]]),bh=/\.(jp[2x]|j2[kc])$/i,yn=()=>new Error("JP2 output requires libvips with support for OpenJPEG"),En=t=>1<<31-Math.clz32(Math.ceil(Math.log2(t)));function vh(t,e){let r;if(l.string(t)?l.string(this.options.input.file)&&Tr.resolve(this.options.input.file)===Tr.resolve(t)?r=new Error("Cannot use same file for input and output"):bh.test(Tr.extname(t))&&!this.constructor.format.jp2k.output.file&&(r=yn()):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 wh(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 yh(){return this.options.keepMetadata|=1,this}function Eh(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 Ph(t){return this.withExif(t),this.options.withExifMerge=!0,this}function xh(){return this.options.keepMetadata|=8,this}function Rh(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 kh(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 Sh(){return this.options.keepMetadata=31,this}function Ah(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 _h(t,e){let r=wn.get((l.object(t)&&l.string(t.id)?t.id:t).toLowerCase());if(!r)throw l.invalidParameterError("format",`one of: ${[...wn.keys()].join(", ")}`,t);return this[r](e)}function Nh(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 Ih(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=En(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 Fh(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 Lr(t,this.options),this._updateFormatOut("webp",t)}function Ch(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=En(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 Lr(t,this.options),this._updateFormatOut("gif",t)}function jh(t){if(!this.constructor.format.jp2k.output.buffer)throw yn();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 Lr(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 Dh(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 Th(t){return this.heif({...t,compression:"av1"})}function Lh(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 Oh(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 Lr(t,this.options),this._updateFormatOut("jxl",t)}function Mh(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 zh(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 Bh(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 Uh(t,e){return l.object(e)&&e.force===!1||(this.options.formatOut=t),this}function qh(t,e){if(l.bool(e))this.options[t]=e;else throw l.invalidParameterError(t,"boolean",e)}function Gh(){if(!this.options.streamOut){this.options.streamOut=!0;let t=Error();this._pipeline(void 0,t)}}function Hh(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)})})}Pn.exports=t=>{Object.assign(t.prototype,{toFile:vh,toBuffer:wh,keepExif:yh,withExif:Eh,withExifMerge:Ph,keepIccProfile:xh,withIccProfile:Rh,keepXmp:$h,withXmp:kh,keepMetadata:Sh,withMetadata:Ah,toFormat:_h,jpeg:Nh,jp2:jh,png:Ih,webp:Fh,tiff:Dh,avif:Th,heif:Lh,jxl:Oh,gif:Ch,raw:Mh,tile:zh,timeout:Bh,_updateFormatOut:Uh,_setBooleanOption:qh,_read:Gh,_pipeline:Hh})}});var Sn=j((xd,kn)=>{g();var Wh=G("node:events"),Xt=Dt(),ue=me(),{runtimePlatformArch:Vh}=kr(),re=Rt(),Rn=Vh(),Or=re.libvipsVersion(),Me=re.format();Me.heif.output.alias=["avif","heic"];Me.jpeg.output.alias=["jpe","jpg"];Me.tiff.output.alias=["tif"];Me.jp2k.output.alias=["j2c","j2k","jp2","jpx"];var Xh={nearest:"nearest",bilinear:"bilinear",bicubic:"bicubic",locallyBoundedBicubic:"lbb",nohalo:"nohalo",vertexSplitQuadraticBasisSpline:"vsqbs"},ut={vips:Or.semver};if(!Or.isGlobal)if(Or.isWasm)try{ut=G("@img/sharp-wasm32/versions")}catch{}else try{ut=G(`@img/sharp-${Rn}/versions`)}catch{try{ut=G(`@img/sharp-libvips-${Rn}/versions`)}catch{}}ut.sharp=Rr().version;ut.heif&&Me.heif&&(Me.heif.input.fileSuffix=[".avif"],Me.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 Jh(t){return re.concurrency(ue.integer(t)?t:null)}Xt.familySync()===Xt.GLIBC&&!re._isUsingJemalloc()?re.concurrency(1):Xt.familySync()===Xt.MUSL&&re.concurrency()===1024&&re.concurrency(G("node:os").availableParallelism());var Kh=new Wh.EventEmitter;function Yh(){return re.counters()}function Qh(t){return re.simd(ue.bool(t)?t:null)}function Zh(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 eu(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)}kn.exports=t=>{t.cache=$n,t.concurrency=Jh,t.counters=Yh,t.simd=Qh,t.format=Me,t.interpolators=Xh,t.versions=ut,t.queue=Kh,t.block=Zh,t.unblock=eu}});var _n=j((kd,An)=>{g();var Fe=Bi();Gi()(Fe);Ki()(Fe);Qi()(Fe);sn()(Fe);mn()(Fe);vn()(Fe);xn()(Fe);Sn()(Fe);An.exports=Fe});g();g();Q();g();var wt={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 ts(t,e){let r={...t};return e&&Object.keys(e).forEach(s=>{e[s]&&typeof e[s]=="object"&&!Array.isArray(e[s])?r[s]=ts(t[s]||{},e[s]):r[s]=e[s]}),r}function rs(t={}){return ts(wt,t)}function ss(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,..._}=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:_}}g();import*as ae from"@clack/prompts";g();import{createRequire as Pa}from"node:module";import{resolve as It,join as Se,dirname as De,relative as is,normalize as xa,sep as ns,extname as Ra}from"node:path";import{fileURLToPath as $a}from"node:url";import*as T from"node:fs";Q();import ka from"fast-glob";var et={getGlobOptionsFor:Nt||void 0,SCAN_PATTERNS:ce||void 0,getPatternsFor:es||void 0,I18N_PATHS:At||void 0},X={error:(t,e)=>{},warn:(t,e)=>{},info:t=>{}};function as(t,e){return t().catch(r=>{throw new Error(`${e}: ${r instanceof Error?r.message:String(r)}`)})}var os={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"},J=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 xa(e).split(ns).join("/")}catch{return String(e).split(ns).join("/")}}getRelativePath(e){let r=this.getAppRoot(),s=is(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(De(e)):""}resolvePackage(e,r=null){try{let s=r||this.getAppRoot(),n=Pa(Se(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=It(r,e);return this.normalizePath(s)}resolveRepoPath(e){let r=this.getRepoRoot(),s=this.normalizePath(e),i=It(r,s);return this.normalizePath(i)}resolvePath(e,r){let s=this.normalizePath(r),i=this.normalizePath(e),n=It(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:Ra(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&&X.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&&X.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(De(c)),f=this.pathExists(c);if(f&&!n)return o&&X.info(`Skipping existing file: ${c}`),!1;if(a)return X.info(`[DRY RUN] Would write file: ${c}`),!0;try{await T.promises.mkdir(u,{recursive:!0})}catch(_){if(_?.code!=="EEXIST")throw _}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 as(async()=>(b.isBuffer(v)?await T.promises.writeFile(c,v):await T.promises.writeFile(c,v,"utf8"),o&&X.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(De(c)),f=this.pathExists(c);if(f&&!n)return o&&X.info(`Skipping existing file: ${c}`),!1;if(a)return X.info(`[DRY RUN] Would write file: ${c}`),!0;try{T.mkdirSync(u,{recursive:!0})}catch(_){if(_?.code!=="EEXIST")throw _}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&&X.info(`${f?"Updated":"Created"} file: ${c}`),!0}catch(_){throw new Error(`Failed to write file: ${c}: ${_ instanceof Error?_.message:String(_)}`)}}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&&X.info(`Skipping existing file: ${o}`),!1;if(n)return X.info(`[DRY RUN] Would copy file: ${o}`),!0;let u=this.normalizePath(De(o));try{await T.promises.mkdir(u,{recursive:!0})}catch(f){if(f?.code!=="EEXIST")throw f}try{return await as(async()=>(await T.promises.copyFile(e,o),a&&X.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&&X.info(`Skipping existing file: ${o}`),!1;if(n)return X.info(`[DRY RUN] Would copy file: ${o}`),!0;let u=this.normalizePath(De(o));try{T.mkdirSync(u,{recursive:!0})}catch(f){if(f?.code!=="EEXIST")throw f}try{return T.copyFileSync(e,o),a&&X.info(`${c?"Updated":"Created"} file: ${o}`),!0}catch{return!1}}pathExists(e,r=!1){try{return T.existsSync(e)}catch(s){return r||X.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&&X.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&&X.warn(`Failed to stat file: ${e}`,r),null}}lstatSync(e){try{return T.lstatSync(e)}catch(r){return this.options.debug&&X.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=Se(this._repoRoot,"packages");return this.pathExists(e)}isWithinApp(e){let r=this.normalizePath(It(e)),s=this.getAppRoot(),i=is(s,r),n=this.normalizePath(i);return!n.startsWith("../")&&!n.startsWith("/")}async findFiles(e,r,s={}){let i=this.normalizePath(Se(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(Se(i,r.PUBLISHED_ROOT,s)),a=n.replace(/\/[^/]*\*.*$/,"");return this.pathExists(a),n}async _globWithNormalization(e,r){return(await ka(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(e=!1){if(e)return"@donotdev/core/empty";let r=this.resolvePackage("@donotdev/core/empty");if(r)return r;let s=De($a(import.meta.url));return this.normalizePath(Se(s,"../empty.js"))}_findRepoRoot(e){let r=this.normalizePath(e),s=0,i=this.options.maxLevels;for(;s<i;){let n=this.normalizePath(Se(r,os.TOOLING)),a=this.normalizePath(Se(r,os.CORE));if(this.pathExists(n)&&this.pathExists(a))return r;let o=Se(r,"apps");if(this.pathExists(o)&&this.statSync(o)?.isDirectory())return this.normalizePath(r);let c=this.normalizePath(Se(r,"package.json"));if(this.pathExists(c)&&this.normalizePath(De(r))===r)return r;let u=this.normalizePath(De(r));if(u===r)break;r=u,s++}return this.normalizePath(e)}};var fe={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 Sa(){return p.env.NO_COLOR?!1:p.platform==="win32"?!0:p.stdout.isTTY===!0}function ge(t,e){return Sa()?`${e}${t}${fe.reset}`:t}function pe(t,e,r,s={}){let{logDir:i=".dndev-logs",fileLogging:n=!1}=s,a=J.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
- `;a.writeSync(o,m)}let c=(f,m,v)=>{if(o){let _=new Date().toISOString(),L=v.length>0?" "+v.map(ne=>typeof ne=="object"?JSON.stringify(ne,null,2):String(ne)).join(" "):"",V=`${_} [${f}] ${m}${L}
4
- `;a.appendFile(o,V)}},u=(f,m)=>{if(m.length===0)return f;let v=m.map(_=>typeof _=="object"?JSON.stringify(_,null,2):String(_)).join(" ");return`${f} ${v}`};return{debug:(f,...m)=>{e&&(n?c("DEBUG",f,m):ae.log.message(ge(u(f,m),fe.gray)))},verbose:(f,...m)=>{r&&(n?c("VERBOSE",f,m):ae.log.message(u(f,m)))},info:(f,...m)=>{n?c("INFO",f,m):ae.log.info(ge(u(f,m),fe.brightCyan))},warn:(f,...m)=>{e&&n?c("WARN",f,m):ae.log.warn(ge(u(f,m),fe.brightYellow))},error:(f,...m)=>{e&&n?c("ERROR",f,m):ae.log.error(ge(u(f,m),fe.brightRed))},success:(f,...m)=>{e&&n?c("SUCCESS",f,m):ae.log.success(ge(u(f,m),fe.brightGreen))},when:(f,m="debug")=>(v,..._)=>{if(f){let L=u(v,_);switch(m){case"verbose":r&&(ae.log.message(L),c("VERBOSE",v,_));break;case"info":ae.log.info(ge(L,fe.brightCyan)),c("INFO",v,_);break;case"warn":ae.log.warn(ge(L,fe.brightYellow)),c("WARN",v,_);break;case"error":ae.log.error(ge(L,fe.brightRed)),c("ERROR",v,_);break;case"success":ae.log.success(ge(L,fe.brightGreen)),c("SUCCESS",v,_);break;default:e&&(ae.log.message(ge(L,fe.gray)),c("DEBUG",v,_))}}},getLogFilePath:()=>o}}g();Q();import{readFileSync as Aa}from"node:fs";import{join as _a}from"node:path";import{createRequire as Na}from"node:module";var Ia=Na(import.meta.url);function Fa(t){if(!t)return[];try{let e=_a(t,"package.json"),r=JSON.parse(Aa(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 Ca(t){let e=_t.optionalFeatures||[],r=Fa(t);return[...new Set([...e,...r])]}function cr(t){let e=Ca(t),r=[],s=[];for(let i of e)try{Ia.resolve(i,{paths:[t||p.cwd()]}),s.push(i)}catch{r.push(i)}return{missing:r,installed:s}}g();Q();function ls(){try{let t=J.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=>!_t.buildTimePackages.includes(n)).sort()}catch{return[]}}function Ae(t){return t&&typeof t=="object"&&!Array.isArray(t)}g();function cs({logger:t,debug:e=!1}={}){let r=J.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}`),_=r.resolveRepoPath(`apps/${m}/next.config.js`);r.pathExists(_)&&(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=pe(`Next${this.getHandlerName()}Handler`,this.options.debug,this.options.verbose),this.pathResolver=J.getInstance(),this.configRoot=this.pathResolver.getAppRoot(),this.discovery=this.createDiscovery(e),this.initialize()}getHandlerDefaults(){return{}}logDiscoveryResults(e){}createDiscovery(e){let r={...wt.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=Ve.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=de[r]||r;return`// Auto-generated DnDev config by @donotdev/config
1
+ var ha=Object.create;var Jr=Object.defineProperty;var ua=Object.getOwnPropertyDescriptor;var fa=Object.getOwnPropertyNames;var da=Object.getPrototypeOf,ga=Object.prototype.hasOwnProperty;var G=(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 Kr=(t,e)=>()=>(t&&(e=t(t=0)),e);var j=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var pa=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of fa(e))!ga.call(t,i)&&i!==r&&Jr(t,i,{get:()=>e[i],enumerable:!(s=ua(e,i))||s.enumerable});return t};var ma=(t,e,r)=>(r=t!=null?ha(da(t)):{},pa(e||!t||!t.__esModule?Jr(r,"default",{value:t,enumerable:!0}):r,t));function es(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 Nt(t){return Yr[t]||Yr.base}var vt,Qr,ge,Xe,ar,Se,At,ce,_t,Zr,or,lr,Yr,Q=Kr(()=>{"use strict";g();vt={HOMEPAGE_FILE:"HomePage.tsx",HOMEPAGE_PATH:"/",HOMEPAGE_COMPONENT:"HomePage"},Qr={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"}},ar={package:"@donotdev/ui",assetsPath:"packages/ui/assets",browserTargets:["> 1%","last 2 versions","Firefox ESR","not dead","not op_mini all"]},Se={public:"public",fonts:"fonts",nodeModules:"node_modules",packages:"packages",core:"core",ui:"ui"},At={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:[`${At.SOURCE_EAGER}/*_*.json`],lazy:[`${At.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/**"]},_t={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","@tiptap/react","@tiptap/starter-kit","@tiptap/extension-placeholder"],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","@tiptap/react","@tiptap/starter-kit","@tiptap/extension-placeholder","sharp","semver","file-type"]},Zr=["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"],or={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)/}},lr=[{name:"light",displayName:"Light",icon:"Sun",isDark:!1}],Yr={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{Buffer as b}from"node:buffer";import{createRequire as va}from"node:module";import{dirname as wa,resolve as mu}from"node:path";import p from"node:process";import{fileURLToPath as ya}from"node:url";var Ea,w,y,g=Kr(()=>{"use strict";Ea=va(import.meta.url),w=ya(import.meta.url),y=wa(w);typeof globalThis<"u"&&(globalThis.require=Ea,globalThis.__filename=w,globalThis.__dirname=y,globalThis.Buffer=b,globalThis.process=p,typeof global>"u"&&(globalThis.global=globalThis))});var be=j((ef,ms)=>{g();var ps=t=>typeof t<"u"&&t!==null,Fa=t=>typeof t=="object",Ca=t=>Object.prototype.toString.call(t)==="[object Object]",ja=t=>typeof t=="function",Da=t=>typeof t=="boolean",Ta=t=>t instanceof b,La=t=>{if(ps(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},Oa=t=>t instanceof ArrayBuffer,Ma=t=>typeof t=="string"&&t.length>0,za=t=>typeof t=="number"&&!Number.isNaN(t),Ba=t=>Number.isInteger(t),Ua=(t,e,r)=>t>=e&&t<=r,qa=(t,e)=>e.includes(t),Ga=(t,e,r)=>new Error(`Expected ${e} for ${t} but received ${r} of type ${typeof r}`),Ha=(t,e)=>(e.message=t.message,e);ms.exports={defined:ps,object:Fa,plainObject:Ca,fn:ja,bool:Da,buffer:Ta,typedArray:La,arrayBuffer:Oa,string:Ma,number:za,integer:Ba,inRange:Ua,inArray:qa,invalidParameterError:Ga,nativeError:Ha}});var ws=j((rf,vs)=>{"use strict";g();var bs=()=>p.platform==="linux",Ft=null,Wa=()=>{if(!Ft)if(bs()&&p.report){let t=p.report.excludeNetwork;p.report.excludeNetwork=!0,Ft=p.report.getReport(),p.report.excludeNetwork=t}else Ft={};return Ft};vs.exports={isLinux:bs,getReport:Wa}});var Es=j((nf,ys)=>{"use strict";g();var tt=G("fs"),Va="/usr/bin/ldd",Xa="/proc/self/exe",Ct=2048,Ja=t=>{let e=tt.openSync(t,"r"),r=b.alloc(Ct),s=tt.readSync(e,r,0,Ct,0);return tt.close(e,()=>{}),r.subarray(0,s)},Ka=t=>new Promise((e,r)=>{tt.open(t,"r",(s,i)=>{if(s)r(s);else{let n=b.alloc(Ct);tt.read(i,n,0,Ct,0,(a,o)=>{e(n.subarray(0,o)),tt.close(i,()=>{})})}})});ys.exports={LDD_PATH:Va,SELF_PATH:Xa,readFileSync:Ja,readFile:Ka}});var xs=j((of,Ps)=>{"use strict";g();var Ya=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};Ps.exports={interpreterPath:Ya}});var Dt=j((cf,Bs)=>{"use strict";g();var $s=G("child_process"),{isLinux:rt,getReport:ks}=ws(),{LDD_PATH:jt,SELF_PATH:Ss,readFile:ur,readFileSync:fr}=Es(),{interpreterPath:As}=xs(),ve,we,ye,_s="getconf GNU_LIBC_VERSION 2>&1 || true; ldd --version 2>&1 || true",Te="",Ns=()=>Te||new Promise(t=>{$s.exec(_s,(e,r)=>{Te=e?" ":r,t(Te)})}),Is=()=>{if(!Te)try{Te=$s.execSync(_s,{encoding:"utf8"})}catch{Te=" "}return Te},Ne="glibc",Fs=/LIBC[a-z0-9 \-).]*?(\d+\.\d+)/i,Je="musl",Qa=t=>t.includes("libc.musl-")||t.includes("ld-musl-"),Cs=()=>{let t=ks();return t.header&&t.header.glibcVersionRuntime?Ne:Array.isArray(t.sharedObjects)&&t.sharedObjects.some(Qa)?Je:null},js=t=>{let[e,r]=t.split(/[\r\n]+/);return e&&e.includes(Ne)?Ne:r&&r.includes(Je)?Je:null},Ds=t=>{if(t){if(t.includes("/ld-musl-"))return Je;if(t.includes("/ld-linux-"))return Ne}return null},Ts=t=>(t=t.toString(),t.includes("musl")?Je:t.includes("GNU C Library")?Ne:null),Za=async()=>{if(we!==void 0)return we;we=null;try{let t=await ur(jt);we=Ts(t)}catch{}return we},eo=()=>{if(we!==void 0)return we;we=null;try{let t=fr(jt);we=Ts(t)}catch{}return we},to=async()=>{if(ve!==void 0)return ve;ve=null;try{let t=await ur(Ss),e=As(t);ve=Ds(e)}catch{}return ve},ro=()=>{if(ve!==void 0)return ve;ve=null;try{let t=fr(Ss),e=As(t);ve=Ds(e)}catch{}return ve},Ls=async()=>{let t=null;if(rt()&&(t=await to(),!t&&(t=await Za(),t||(t=Cs()),!t))){let e=await Ns();t=js(e)}return t},Os=()=>{let t=null;if(rt()&&(t=ro(),!t&&(t=eo(),t||(t=Cs()),!t))){let e=Is();t=js(e)}return t},so=async()=>rt()&&await Ls()!==Ne,io=()=>rt()&&Os()!==Ne,no=async()=>{if(ye!==void 0)return ye;ye=null;try{let e=(await ur(jt)).match(Fs);e&&(ye=e[1])}catch{}return ye},ao=()=>{if(ye!==void 0)return ye;ye=null;try{let e=fr(jt).match(Fs);e&&(ye=e[1])}catch{}return ye},Ms=()=>{let t=ks();return t.header&&t.header.glibcVersionRuntime?t.header.glibcVersionRuntime:null},Rs=t=>t.trim().split(/\s+/)[1],zs=t=>{let[e,r,s]=t.split(/[\r\n]+/);return e&&e.includes(Ne)?Rs(e):r&&s&&r.includes(Je)?Rs(s):null},oo=async()=>{let t=null;if(rt()&&(t=await no(),t||(t=Ms()),!t)){let e=await Ns();t=zs(e)}return t},lo=()=>{let t=null;if(rt()&&(t=ao(),t||(t=Ms()),!t)){let e=Is();t=zs(e)}return t};Bs.exports={GLIBC:Ne,MUSL:Je,family:Ls,familySync:Os,isNonGlibcLinux:so,isNonGlibcLinuxSync:io,version:oo,versionSync:lo}});var yt=j((uf,Us)=>{"use strict";g();var co=typeof p=="object"&&p.env&&p.env.NODE_DEBUG&&/\bsemver\b/i.test(p.env.NODE_DEBUG)?(...t)=>{}:()=>{};Us.exports=co});var Tt=j((df,qs)=>{"use strict";g();var ho="2.0.0",uo=Number.MAX_SAFE_INTEGER||9007199254740991,fo=16,go=250,po=["major","premajor","minor","preminor","patch","prepatch","prerelease"];qs.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:fo,MAX_SAFE_BUILD_LENGTH:go,MAX_SAFE_INTEGER:uo,RELEASE_TYPES:po,SEMVER_SPEC_VERSION:ho,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var Et=j((Ee,Gs)=>{"use strict";g();var{MAX_SAFE_COMPONENT_LENGTH:dr,MAX_SAFE_BUILD_LENGTH:mo,MAX_LENGTH:bo}=Tt(),vo=yt();Ee=Gs.exports={};var wo=Ee.re=[],yo=Ee.safeRe=[],N=Ee.src=[],Eo=Ee.safeSrc=[],I=Ee.t={},Po=0,gr="[a-zA-Z0-9-]",xo=[["\\s",1],["\\d",bo],[gr,mo]],Ro=t=>{for(let[e,r]of xo)t=t.split(`${e}*`).join(`${e}{0,${r}}`).split(`${e}+`).join(`${e}{1,${r}}`);return t},C=(t,e,r)=>{let s=Ro(e),i=Po++;vo(t,i,e),I[t]=i,N[i]=e,Eo[i]=s,wo[i]=new RegExp(e,r?"g":void 0),yo[i]=new RegExp(s,r?"g":void 0)};C("NUMERICIDENTIFIER","0|[1-9]\\d*");C("NUMERICIDENTIFIERLOOSE","\\d+");C("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${gr}*`);C("MAINVERSION",`(${N[I.NUMERICIDENTIFIER]})\\.(${N[I.NUMERICIDENTIFIER]})\\.(${N[I.NUMERICIDENTIFIER]})`);C("MAINVERSIONLOOSE",`(${N[I.NUMERICIDENTIFIERLOOSE]})\\.(${N[I.NUMERICIDENTIFIERLOOSE]})\\.(${N[I.NUMERICIDENTIFIERLOOSE]})`);C("PRERELEASEIDENTIFIER",`(?:${N[I.NONNUMERICIDENTIFIER]}|${N[I.NUMERICIDENTIFIER]})`);C("PRERELEASEIDENTIFIERLOOSE",`(?:${N[I.NONNUMERICIDENTIFIER]}|${N[I.NUMERICIDENTIFIERLOOSE]})`);C("PRERELEASE",`(?:-(${N[I.PRERELEASEIDENTIFIER]}(?:\\.${N[I.PRERELEASEIDENTIFIER]})*))`);C("PRERELEASELOOSE",`(?:-?(${N[I.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${N[I.PRERELEASEIDENTIFIERLOOSE]})*))`);C("BUILDIDENTIFIER",`${gr}+`);C("BUILD",`(?:\\+(${N[I.BUILDIDENTIFIER]}(?:\\.${N[I.BUILDIDENTIFIER]})*))`);C("FULLPLAIN",`v?${N[I.MAINVERSION]}${N[I.PRERELEASE]}?${N[I.BUILD]}?`);C("FULL",`^${N[I.FULLPLAIN]}$`);C("LOOSEPLAIN",`[v=\\s]*${N[I.MAINVERSIONLOOSE]}${N[I.PRERELEASELOOSE]}?${N[I.BUILD]}?`);C("LOOSE",`^${N[I.LOOSEPLAIN]}$`);C("GTLT","((?:<|>)?=?)");C("XRANGEIDENTIFIERLOOSE",`${N[I.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);C("XRANGEIDENTIFIER",`${N[I.NUMERICIDENTIFIER]}|x|X|\\*`);C("XRANGEPLAIN",`[v=\\s]*(${N[I.XRANGEIDENTIFIER]})(?:\\.(${N[I.XRANGEIDENTIFIER]})(?:\\.(${N[I.XRANGEIDENTIFIER]})(?:${N[I.PRERELEASE]})?${N[I.BUILD]}?)?)?`);C("XRANGEPLAINLOOSE",`[v=\\s]*(${N[I.XRANGEIDENTIFIERLOOSE]})(?:\\.(${N[I.XRANGEIDENTIFIERLOOSE]})(?:\\.(${N[I.XRANGEIDENTIFIERLOOSE]})(?:${N[I.PRERELEASELOOSE]})?${N[I.BUILD]}?)?)?`);C("XRANGE",`^${N[I.GTLT]}\\s*${N[I.XRANGEPLAIN]}$`);C("XRANGELOOSE",`^${N[I.GTLT]}\\s*${N[I.XRANGEPLAINLOOSE]}$`);C("COERCEPLAIN",`(^|[^\\d])(\\d{1,${dr}})(?:\\.(\\d{1,${dr}}))?(?:\\.(\\d{1,${dr}}))?`);C("COERCE",`${N[I.COERCEPLAIN]}(?:$|[^\\d])`);C("COERCEFULL",N[I.COERCEPLAIN]+`(?:${N[I.PRERELEASE]})?(?:${N[I.BUILD]})?(?:$|[^\\d])`);C("COERCERTL",N[I.COERCE],!0);C("COERCERTLFULL",N[I.COERCEFULL],!0);C("LONETILDE","(?:~>?)");C("TILDETRIM",`(\\s*)${N[I.LONETILDE]}\\s+`,!0);Ee.tildeTrimReplace="$1~";C("TILDE",`^${N[I.LONETILDE]}${N[I.XRANGEPLAIN]}$`);C("TILDELOOSE",`^${N[I.LONETILDE]}${N[I.XRANGEPLAINLOOSE]}$`);C("LONECARET","(?:\\^)");C("CARETTRIM",`(\\s*)${N[I.LONECARET]}\\s+`,!0);Ee.caretTrimReplace="$1^";C("CARET",`^${N[I.LONECARET]}${N[I.XRANGEPLAIN]}$`);C("CARETLOOSE",`^${N[I.LONECARET]}${N[I.XRANGEPLAINLOOSE]}$`);C("COMPARATORLOOSE",`^${N[I.GTLT]}\\s*(${N[I.LOOSEPLAIN]})$|^$`);C("COMPARATOR",`^${N[I.GTLT]}\\s*(${N[I.FULLPLAIN]})$|^$`);C("COMPARATORTRIM",`(\\s*)${N[I.GTLT]}\\s*(${N[I.LOOSEPLAIN]}|${N[I.XRANGEPLAIN]})`,!0);Ee.comparatorTrimReplace="$1$2$3";C("HYPHENRANGE",`^\\s*(${N[I.XRANGEPLAIN]})\\s+-\\s+(${N[I.XRANGEPLAIN]})\\s*$`);C("HYPHENRANGELOOSE",`^\\s*(${N[I.XRANGEPLAINLOOSE]})\\s+-\\s+(${N[I.XRANGEPLAINLOOSE]})\\s*$`);C("STAR","(<|>)?=?\\s*\\*");C("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");C("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var Lt=j((mf,Hs)=>{"use strict";g();var $o=Object.freeze({loose:!0}),ko=Object.freeze({}),So=t=>t?typeof t!="object"?$o:t:ko;Hs.exports=So});var Js=j((vf,Xs)=>{"use strict";g();var Ws=/^[0-9]+$/,Vs=(t,e)=>{if(typeof t=="number"&&typeof e=="number")return t===e?0:t<e?-1:1;let r=Ws.test(t),s=Ws.test(e);return r&&s&&(t=+t,e=+e),t===e?0:r&&!s?-1:s&&!r?1:t<e?-1:1},Ao=(t,e)=>Vs(e,t);Xs.exports={compareIdentifiers:Vs,rcompareIdentifiers:Ao}});var st=j((yf,Ys)=>{"use strict";g();var Ot=yt(),{MAX_LENGTH:Ks,MAX_SAFE_INTEGER:Mt}=Tt(),{safeRe:zt,t:Bt}=Et(),_o=Lt(),{compareIdentifiers:pr}=Js(),mr=class t{constructor(e,r){if(r=_o(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>Ks)throw new TypeError(`version is longer than ${Ks} characters`);Ot("SemVer",e,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let s=e.trim().match(r.loose?zt[Bt.LOOSE]:zt[Bt.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>Mt||this.major<0)throw new TypeError("Invalid major version");if(this.minor>Mt||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>Mt||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<Mt)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(Ot("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(Ot("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 pr(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(Ot("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 pr(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?zt[Bt.PRERELEASELOOSE]:zt[Bt.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]),pr(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}};Ys.exports=mr});var ei=j((Pf,Zs)=>{"use strict";g();var Qs=st(),No=(t,e,r=!1)=>{if(t instanceof Qs)return t;try{return new Qs(t,e)}catch(s){if(!r)return null;throw s}};Zs.exports=No});var ri=j((Rf,ti)=>{"use strict";g();var Io=st(),Fo=ei(),{safeRe:Ut,t:qt}=Et(),Co=(t,e)=>{if(t instanceof Io)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?Ut[qt.COERCEFULL]:Ut[qt.COERCE]);else{let c=e.includePrerelease?Ut[qt.COERCERTLFULL]:Ut[qt.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 Fo(`${s}.${i}.${n}${a}${o}`,e)};ti.exports=Co});var Ke=j((kf,ii)=>{"use strict";g();var si=st(),jo=(t,e,r)=>new si(t,r).compare(new si(e,r));ii.exports=jo});var br=j((Af,ni)=>{"use strict";g();var Do=Ke(),To=(t,e,r)=>Do(t,e,r)>=0;ni.exports=To});var oi=j((Nf,ai)=>{"use strict";g();var vr=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}};ai.exports=vr});var ci=j((Ff,li)=>{"use strict";g();var Lo=Ke(),Oo=(t,e,r)=>Lo(t,e,r)===0;li.exports=Oo});var ui=j((jf,hi)=>{"use strict";g();var Mo=Ke(),zo=(t,e,r)=>Mo(t,e,r)!==0;hi.exports=zo});var di=j((Tf,fi)=>{"use strict";g();var Bo=Ke(),Uo=(t,e,r)=>Bo(t,e,r)>0;fi.exports=Uo});var pi=j((Of,gi)=>{"use strict";g();var qo=Ke(),Go=(t,e,r)=>qo(t,e,r)<0;gi.exports=Go});var bi=j((zf,mi)=>{"use strict";g();var Ho=Ke(),Wo=(t,e,r)=>Ho(t,e,r)<=0;mi.exports=Wo});var wi=j((Uf,vi)=>{"use strict";g();var Vo=ci(),Xo=ui(),Jo=di(),Ko=br(),Yo=pi(),Qo=bi(),Zo=(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 Vo(t,r,s);case"!=":return Xo(t,r,s);case">":return Jo(t,r,s);case">=":return Ko(t,r,s);case"<":return Yo(t,r,s);case"<=":return Qo(t,r,s);default:throw new TypeError(`Invalid operator: ${e}`)}};vi.exports=Zo});var ki=j((Gf,$i)=>{"use strict";g();var Pt=Symbol("SemVer ANY"),Er=class t{static get ANY(){return Pt}constructor(e,r){if(r=yi(r),e instanceof t){if(e.loose===!!r.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),yr("comparator",e,r),this.options=r,this.loose=!!r.loose,this.parse(e),this.semver===Pt?this.value="":this.value=this.operator+this.semver.version,yr("comp",this)}parse(e){let r=this.options.loose?Ei[Pi.COMPARATORLOOSE]:Ei[Pi.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 xi(s[2],this.options.loose):this.semver=Pt}toString(){return this.value}test(e){if(yr("Comparator.test",e,this.options.loose),this.semver===Pt||e===Pt)return!0;if(typeof e=="string")try{e=new xi(e,this.options)}catch{return!1}return wr(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 Ri(e.value,r).test(this.value):e.operator===""?e.value===""?!0:new Ri(this.value,r).test(e.semver):(r=yi(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("=")||wr(this.semver,"<",e.semver,r)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||wr(this.semver,">",e.semver,r)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};$i.exports=Er;var yi=Lt(),{safeRe:Ei,t:Pi}=Et(),wr=wi(),yr=yt(),xi=st(),Ri=Pr()});var Pr=j((Wf,Ni)=>{"use strict";g();var el=/\s+/g,xr=class t{constructor(e,r){if(r=rl(r),e instanceof t)return e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease?e:new t(e.raw,r);if(e instanceof Rr)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(el," "),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=>!Ai(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&&cl(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&&ol)|(this.options.loose&&ll))+":"+e,i=Si.get(s);if(i)return i;let n=this.options.loose,a=n?ee[Z.HYPHENRANGELOOSE]:ee[Z.HYPHENRANGE];e=e.replace(a,wl(this.options.includePrerelease)),q("hyphen replace",e),e=e.replace(ee[Z.COMPARATORTRIM],il),q("comparator trim",e),e=e.replace(ee[Z.TILDETRIM],nl),q("tilde trim",e),e=e.replace(ee[Z.CARETTRIM],al),q("caret trim",e);let o=e.split(" ").map(m=>hl(m,this.options)).join(" ").split(/\s+/).map(m=>vl(m,this.options));n&&(o=o.filter(m=>(q("loose invalid filter",m,this.options),!!m.match(ee[Z.COMPARATORLOOSE])))),q("range list",o);let c=new Map,u=o.map(m=>new Rr(m,this.options));for(let m of u){if(Ai(m))return[m];c.set(m.value,m)}c.size>1&&c.has("")&&c.delete("");let f=[...c.values()];return Si.set(s,f),f}intersects(e,r){if(!(e instanceof t))throw new TypeError("a Range is required");return this.set.some(s=>_i(s,r)&&e.set.some(i=>_i(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 sl(e,this.options)}catch{return!1}for(let r=0;r<this.set.length;r++)if(yl(this.set[r],e,this.options))return!0;return!1}};Ni.exports=xr;var tl=oi(),Si=new tl,rl=Lt(),Rr=ki(),q=yt(),sl=st(),{safeRe:ee,t:Z,comparatorTrimReplace:il,tildeTrimReplace:nl,caretTrimReplace:al}=Et(),{FLAG_INCLUDE_PRERELEASE:ol,FLAG_LOOSE:ll}=Tt(),Ai=t=>t.value==="<0.0.0-0",cl=t=>t.value==="",_i=(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},hl=(t,e)=>(t=t.replace(ee[Z.BUILD],""),q("comp",t,e),t=dl(t,e),q("caret",t),t=ul(t,e),q("tildes",t),t=pl(t,e),q("xrange",t),t=bl(t,e),q("stars",t),t),te=t=>!t||t.toLowerCase()==="x"||t==="*",ul=(t,e)=>t.trim().split(/\s+/).map(r=>fl(r,e)).join(" "),fl=(t,e)=>{let r=e.loose?ee[Z.TILDELOOSE]:ee[Z.TILDE];return t.replace(r,(s,i,n,a,o)=>{q("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?(q("replaceTilde pr",o),c=`>=${i}.${n}.${a}-${o} <${i}.${+n+1}.0-0`):c=`>=${i}.${n}.${a} <${i}.${+n+1}.0-0`,q("tilde return",c),c})},dl=(t,e)=>t.trim().split(/\s+/).map(r=>gl(r,e)).join(" "),gl=(t,e)=>{q("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)=>{q("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?(q("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`):(q("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`),q("caret return",u),u})},pl=(t,e)=>(q("replaceXRanges",t,e),t.split(/\s+/).map(r=>ml(r,e)).join(" ")),ml=(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)=>{q("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`),q("xRange return",s),s})},bl=(t,e)=>(q("replaceStars",t,e),t.trim().replace(ee[Z.STAR],"")),vl=(t,e)=>(q("replaceGTE0",t,e),t.trim().replace(ee[e.includePrerelease?Z.GTE0PRE:Z.GTE0],"")),wl=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()),yl=(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(q(t[s].semver),t[s].semver!==Rr.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 Fi=j((Xf,Ii)=>{"use strict";g();var El=Pr(),Pl=(t,e,r)=>{try{e=new El(e,r)}catch{return!1}return e.test(t)};Ii.exports=Pl});var $r=j((Kf,xl)=>{xl.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 Sr=j((Yf,Ui)=>{g();var{spawnSync:Gt}=G("node:child_process"),{createHash:Rl}=G("node:crypto"),Ti=ri(),$l=br(),kl=Fi(),Ci=Dt(),{config:Sl,engines:ji,optionalDependencies:Al}=$r(),_l=p.env.npm_package_config_libvips||Sl.libvips,Li=Ti(_l).version,Nl=["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"],Ht={encoding:"utf8",shell:!0},Il=t=>{t instanceof Error},Oi=()=>Ci.isNonGlibcLinuxSync()?Ci.familySync():"",Fl=()=>`${p.platform}${Oi()}-${p.arch}`,it=()=>{if(Mi())return"wasm32";let{npm_config_arch:t,npm_config_platform:e,npm_config_libc:r}=p.env,s=typeof r=="string"?r:Oi();return`${e||p.platform}${s}-${t||p.arch}`},Cl=()=>{try{return G(`@img/sharp-libvips-dev-${it()}/include`)}catch{try{return G("@img/sharp-libvips-dev/include")}catch{}}return""},jl=()=>{try{return G("@img/sharp-libvips-dev/cplusplus")}catch{}return""},Dl=()=>{try{return G(`@img/sharp-libvips-dev-${it()}/lib`)}catch{try{return G(`@img/sharp-libvips-${it()}/lib`)}catch{}}return""},Tl=()=>{if(p.release?.name==="node"&&p.versions&&!kl(p.versions.node,ji.node))return{found:p.versions.node,expected:ji.node}},Mi=()=>{let{CC:t}=p.env;return!!t?.endsWith("/emcc")},Ll=()=>p.platform==="darwin"&&p.arch==="x64"?(Gt("sysctl sysctl.proc_translated",Ht).stdout||"").trim()==="sysctl.proc_translated: 1":!1,Di=t=>Rl("sha512").update(t).digest("hex"),Ol=()=>{try{let t=Di(`imgsharp-libvips-${it()}`),e=Ti(Al[`@img/sharp-libvips-${it()}`],{includePrerelease:!0}).version;return Di(`${t}npm:${e}`).slice(0,10)}catch{}return""},Ml=()=>Gt(`node-gyp rebuild --directory=src ${Mi()?"--nodedir=emscripten":""}`,{...Ht,stdio:"inherit"}).status,zi=()=>p.platform!=="win32"?(Gt("pkg-config --modversion vips-cpp",{...Ht,env:{...p.env,PKG_CONFIG_PATH:Bi()}}).stdout||"").trim():"",Bi=()=>p.platform!=="win32"?[(Gt('which brew >/dev/null 2>&1 && brew environment --plain | grep PKG_CONFIG_LIBDIR | cut -d" " -f2',Ht).stdout||"").trim(),p.env.PKG_CONFIG_PATH,"/usr/local/lib/pkgconfig","/usr/lib/pkgconfig","/usr/local/libdata/pkgconfig","/usr/libdata/pkgconfig"].filter(Boolean).join(":"):"",kr=(t,e,r)=>(r&&r(`Detected ${e}, skipping search for globally-installed libvips`),t),zl=t=>{if(p.env.SHARP_IGNORE_GLOBAL_LIBVIPS)return kr(!1,"SHARP_IGNORE_GLOBAL_LIBVIPS",t);if(p.env.SHARP_FORCE_GLOBAL_LIBVIPS)return kr(!0,"SHARP_FORCE_GLOBAL_LIBVIPS",t);if(Ll())return kr(!1,"Rosetta",t);let e=zi();return!!e&&$l(e,Li)};Ui.exports={minimumLibvipsVersion:Li,prebuiltPlatforms:Nl,buildPlatformArch:it,buildSharpLibvipsIncludeDir:Cl,buildSharpLibvipsCPlusPlusDir:jl,buildSharpLibvipsLibDir:Dl,isUnsupportedNodeRuntime:Tl,runtimePlatformArch:Fl,log:Il,yarnLocator:Ol,spawnRebuild:Ml,globalLibvipsVersion:zi,pkgConfigPath:Bi,useGlobalLibvips:zl}});var Rt=j((ed,Gi)=>{g();var{familySync:Bl,versionSync:Ul}=Dt(),{runtimePlatformArch:ql,isUnsupportedNodeRuntime:qi,prebuiltPlatforms:Gl,minimumLibvipsVersion:Hl}=Sr(),Ye=ql(),Wl=[`../src/build/Release/sharp-${Ye}.node`,"../src/build/Release/sharp-wasm32.node",`@img/sharp-${Ye}/sharp.node`,"@img/sharp-wasm32/sharp.node"],Ar,nt,xt=[];for(Ar of Wl)try{nt=G(Ar);break}catch(t){xt.push(t)}if(nt&&Ar.startsWith("@img/sharp-linux-x64")&&!nt._isUsingX64V2()){let t=new Error("Prebuilt binaries for linux-x64 require v2 microarchitecture");t.code="Unsupported CPU",xt.push(t),nt=null}if(nt)Gi.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`];xt.forEach(n=>{n.code!=="MODULE_NOT_FOUND"&&s.push(`${n.code}: ${n.message}`)});let i=xt.map(n=>n.message).join(" ");if(s.push("Possible solutions:"),qi()){let{found:n,expected:a}=qi();s.push("- Please upgrade Node.js:",` Found ${n}`,` Requires ${a}`)}else if(Gl.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 >= ${Hl}`,"- 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}=G(`@img/sharp-libvips-${Ye}/package`),a=`${Bl()} ${Ul()}`,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"),xt.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 Wi=j((sd,Hi)=>{g();var Vl=G("node:util"),_r=G("node:stream"),Xl=be();Rt();var Jl=Vl.debuglog("sharp"),Kl=t=>{Qe.queue.emit("change",t)},Qe=function(t,e){if(arguments.length===1&&!Xl.defined(t))throw new Error("Invalid input");return this instanceof Qe?(_r.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),Jl(r)},queueListener:Kl},this.options.input=this._createInputDescriptor(t,e,{allowStream:!0}),this):new Qe(t,e)};Object.setPrototypeOf(Qe.prototype,_r.Duplex.prototype);Object.setPrototypeOf(Qe,_r.Duplex);function Yl(){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:Yl});Hi.exports=Qe});var Ji=j((nd,Xi)=>{g();var h=be(),Le=Rt(),Ql={left:"low",top:"low",low:"low",center:"centre",centre:"centre",right:"high",bottom:"high",high:"high"},Zl=["failOn","limitInputPixels","unlimited","animated","autoOrient","density","ignoreIcc","page","pages","sequentialRead","jp2","openSlide","pdf","raw","svg","tiff","failOnError","openSlideLevel","pdfBackground","tiffSubifd"];function Vi(t){let e=Zl.filter(r=>h.defined(t[r])).map(r=>[r,t[r]]);return e.length?Object.fromEntries(e):void 0}function ec(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,Vi(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 tc(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 rc(){this._isStreamInput()&&(this.options.input.buffer=b.concat(this.options.input.buffer))}function sc(){return Array.isArray(this.options.input.buffer)}function ic(t){let e=Error();return h.fn(t)?(this._isStreamInput()?this.on("finish",()=>{this._flattenBufferIn(),Le.metadata(this.options,(r,s)=>{r?t(h.nativeError(r,e)):t(null,s)})}):Le.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(),Le.metadata(this.options,(n,a)=>{n?s(h.nativeError(n,e)):r(a)})};this.writableFinished?i():this.once("finish",i)}):new Promise((r,s)=>{Le.metadata(this.options,(i,n)=>{i?s(h.nativeError(i,e)):r(n)})})}function nc(t){let e=Error();return h.fn(t)?(this._isStreamInput()?this.on("finish",()=>{this._flattenBufferIn(),Le.stats(this.options,(r,s)=>{r?t(h.nativeError(r,e)):t(null,s)})}):Le.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(),Le.stats(this.options,(i,n)=>{i?s(h.nativeError(i,e)):r(n)})})}):new Promise((r,s)=>{Le.stats(this.options,(i,n)=>{i?s(h.nativeError(i,e)):r(n)})})}Xi.exports=t=>{Object.assign(t.prototype,{_inputOptionsFromObject:Vi,_createInputDescriptor:ec,_write:tc,_flattenBufferIn:rc,_isStreamInput:sc,metadata:ic,stats:nc}),t.align=Ql}});var tn=j((od,en)=>{g();var F=be(),Yi={center:0,centre:0,north:1,east:2,south:3,west:4,northeast:5,southeast:6,southwest:7,northwest:8},Qi={top:1,right:2,bottom:3,left:4,"right top":5,"right bottom":6,"left bottom":7,"left top":8},Ki={background:"background",copy:"copy",repeat:"repeat",mirror:"mirror"},Zi={entropy:16,attention:17},Nr={nearest:"nearest",linear:"linear",cubic:"cubic",mitchell:"mitchell",lanczos2:"lanczos2",lanczos3:"lanczos3",mks2013:"mks2013",mks2021:"mks2021"},ac={contain:"contain",cover:"cover",fill:"fill",inside:"inside",outside:"outside"},oc={contain:"embed",cover:"crop",fill:"ignore_aspect",inside:"max",outside:"min"};function Ir(t){return t.angle%360!==0||t.rotationAngle!==0}function Wt(t){return t.width!==-1||t.height!==-1}function lc(t,e,r){if(Wt(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=oc[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:Zi[r.position]||Qi[r.position]||Yi[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(Nr[r.kernel]))this.options.kernel=Nr[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 Ir(this.options)&&Wt(this.options)&&(this.options.rotateBefore=!0),this}function cc(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(Ki[t.extendWith]))this.options.extendWith=Ki[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 hc(t){let e=Wt(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),Ir(this.options)&&!Wt(this.options)&&(this.options.widthPre===-1||this.options.widthPost===-1)&&(this.options.rotateBefore=!0),this.options.input.autoOrient&&(this.options.orientBefore=!0),this}function uc(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 Ir(this.options)&&(this.options.rotateBefore=!0),this}en.exports=t=>{Object.assign(t.prototype,{resize:lc,extend:cc,extract:hc,trim:uc}),t.gravity=Yi,t.strategy=Zi,t.kernel=Nr,t.fit=ac,t.position=Qi}});var sn=j((cd,rn)=>{g();var U=be(),Fr={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 fc(t){if(!Array.isArray(t))throw U.invalidParameterError("images to composite","array",t);return this.options.composite=t.map(e=>{if(!U.object(e))throw U.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(U.defined(e.blend))if(U.string(Fr[e.blend]))s.blend=Fr[e.blend];else throw U.invalidParameterError("blend","valid blend name",e.blend);if(U.defined(e.tile))if(U.bool(e.tile))s.tile=e.tile;else throw U.invalidParameterError("tile","boolean",e.tile);if(U.defined(e.left))if(U.integer(e.left))s.left=e.left;else throw U.invalidParameterError("left","integer",e.left);if(U.defined(e.top))if(U.integer(e.top))s.top=e.top;else throw U.invalidParameterError("top","integer",e.top);if(U.defined(e.top)!==U.defined(e.left))throw new Error("Expected both left and top to be set");if(s.hasOffset=U.integer(e.top)&&U.integer(e.left),U.defined(e.gravity))if(U.integer(e.gravity)&&U.inRange(e.gravity,0,8))s.gravity=e.gravity;else if(U.string(e.gravity)&&U.integer(this.constructor.gravity[e.gravity]))s.gravity=this.constructor.gravity[e.gravity];else throw U.invalidParameterError("gravity","valid gravity",e.gravity);if(U.defined(e.premultiplied))if(U.bool(e.premultiplied))s.premultiplied=e.premultiplied;else throw U.invalidParameterError("premultiplied","boolean",e.premultiplied);return s}),this}rn.exports=t=>{t.prototype.composite=fc,t.blend=Fr}});var cn=j((ud,ln)=>{g();var d=be(),nn={integer:"integer",float:"float",approximate:"approximate"};function dc(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 gc(){return this.options.input.autoOrient=!0,this}function pc(t){return this.options.flip=d.bool(t)?t:!0,this}function mc(t){return this.options.flop=d.bool(t)?t:!0,this}function bc(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 vc(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 wc(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 yc(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(nn[t.precision]))this.options.precision=nn[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 an(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",an);return this}function on(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",on);return this}function Ec(t){return this.options.flatten=d.bool(t)?t:!0,d.object(t)&&this._setBackgroundColourOption("flattenBackground",t.background),this}function Pc(){return this.options.unflatten=!0,this}function xc(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 Rc(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 $c(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 kc(t){return this.normalise(t)}function Sc(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 Ac(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 _c(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 Nc(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 Ic(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 Fc(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 Cc(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}ln.exports=t=>{Object.assign(t.prototype,{autoOrient:gc,rotate:dc,flip:pc,flop:mc,affine:bc,sharpen:vc,erode:on,dilate:an,median:wc,blur:yc,flatten:Ec,unflatten:Pc,gamma:xc,negate:Rc,normalise:$c,normalize:kc,clahe:Sc,convolve:Ac,threshold:_c,boolean:Nc,linear:Ic,recomb:Fc,modulate:Cc})}});var pn=j((dd,gn)=>{g();var Tr=Object.defineProperty,jc=Object.getOwnPropertyDescriptor,Dc=Object.getOwnPropertyNames,Tc=Object.prototype.hasOwnProperty,Lc=(t,e)=>{for(var r in e)Tr(t,r,{get:e[r],enumerable:!0})},Oc=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Dc(e))!Tc.call(t,i)&&i!==r&&Tr(t,i,{get:()=>e[i],enumerable:!(s=jc(e,i))||s.enumerable});return t},Mc=t=>Oc(Tr({},"__esModule",{value:!0}),t),hn={};Lc(hn,{default:()=>Zc});gn.exports=Mc(hn);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]},un=Object.create(null);for(let t in Pe)Object.hasOwn(Pe,t)&&(un[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]=Oe(a[c],0,255);return a[3]=Oe(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=Oe(Number.parseFloat(r[2]),0,100),a=Oe(Number.parseFloat(r[3]),0,100),o=Oe(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=Oe(Number.parseFloat(r[2]),0,100),a=Oe(Number.parseFloat(r[3]),0,100),o=Oe(Number.isNaN(s)?1:s,0,1);return[i,n,a,o]}return null};ie.to.hex=function(...t){return"#"+Vt(t[0])+Vt(t[1])+Vt(t[2])+(t[3]<1?Vt(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 un[t.slice(0,3)]};function Oe(t,e,r){return Math.min(Math.max(e,t),r)}function Vt(t){let e=Math.round(t).toString(16).toUpperCase();return e.length<2?"0"+e:e}var at=ie,fn={};for(let t of Object.keys(Pe))fn[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,Ie=(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 zc(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=fn[t];if(e)return e;let r=Number.POSITIVE_INFINITY,s;for(let i of Object.keys(Pe)){let n=Pe[i],a=zc(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>Ie?r**(1/3):7.787*r+16/116,s=s>Ie?s**(1/3):7.787*s+16/116,i=i>Ie?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>Ie?e**(1/3):7.787*e+16/116,r=r>Ie?r**(1/3):7.787*r+16/116,s=s>Ie?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>Ie?o:(n-16/116)/7.787,i=c>Ie?c:(i-16/116)/7.787,a=u>Ie?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 Bc(){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 Uc(t){let e=Bc(),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 qc(t,e){return function(r){return e(t(r))}}function Gc(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=qc(Ze[e[i].parent][i],s),i=e[i].parent;return s.conversion=r,s}function Hc(t){let e=Uc(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]=Gc(a,e))}return r}var Wc=Hc,ot={},Vc=Object.keys(Ze);function Xc(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 Jc(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 Vc){ot[t]={},Object.defineProperty(ot[t],"channels",{value:Ze[t].channels}),Object.defineProperty(ot[t],"labels",{value:Ze[t].labels});let e=Wc(t),r=Object.keys(e);for(let s of r){let i=e[s];ot[t][s]=Jc(i),ot[t][s].raw=Xc(i)}}var ae=ot,dn=["keyword","gray","hex"],Cr={};for(let t of Object.keys(ae))Cr[[...ae[t].labels].sort().join("")]=t;var jr={};function K(t,e){if(!(this instanceof K))return new K(t,e);if(e&&e in dn&&(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=Dr(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 Cr))throw new Error("Unable to parse color from object: "+JSON.stringify(t));this.model=Cr[n];let{labels:a}=ae[this.model],o=[];for(r=0;r<a.length;r++)o.push(t[a[r]]);this.color=Dr(o)}if(jr[this.model])for(s=ae[this.model].channels,r=0;r<s;r++){let i=jr[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(Yc(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:H("rgb",0,W(255)),green:H("rgb",1,W(255)),blue:H("rgb",2,W(255)),hue:H(["hsl","hsv","hsl","hwb","hcg"],0,t=>(t%360+360)%360),saturationl:H("hsl",1,W(100)),lightness:H("hsl",2,W(100)),saturationv:H("hsv",1,W(100)),value:H("hsv",2,W(100)),chroma:H("hcg",1,W(100)),gray:H("hcg",2,W(100)),white:H("hwb",1,W(100)),wblack:H("hwb",2,W(100)),cyan:H("cmyk",0,W(100)),magenta:H("cmyk",1,W(100)),yellow:H("cmyk",2,W(100)),black:H("cmyk",3,W(100)),x:H("xyz",0,W(95.047)),y:H("xyz",1,W(100)),z:H("xyz",2,W(108.833)),l:H("lab",0,W(100)),a:H("lab",1),b:H("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(dn.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([...Qc(ae[this.model][t].raw(this.color)),this.valpha],t)},K[t]=function(...r){let s=r[0];return typeof s=="number"&&(s=Dr(r,e)),new K(s,t)}}function Kc(t,e){return Number(t.toFixed(e))}function Yc(t){return function(e){return Kc(e,t)}}function H(t,e,r){t=Array.isArray(t)?t:[t];for(let s of t)(jr[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 W(t){return function(e){return Math.max(0,Math.min(t,e))}}function Qc(t){return Array.isArray(t)?t:[t]}function Dr(t,e){for(let r=0;r<e;r++)typeof t[r]!="number"&&(t[r]=0);return t}var Zc=K});var bn=j((pd,mn)=>{g();mn.exports=pn().default});var En=j((bd,yn)=>{g();var eh=bn(),Fe=be(),vn={multiband:"multiband","b-w":"b-w",bw:"b-w",cmyk:"cmyk",srgb:"srgb"};function th(t){return this._setBackgroundColourOption("tint",t),this}function rh(t){return this.options.greyscale=Fe.bool(t)?t:!0,this}function sh(t){return this.greyscale(t)}function ih(t){if(!Fe.string(t))throw Fe.invalidParameterError("colourspace","string",t);return this.options.colourspacePipeline=t,this}function nh(t){return this.pipelineColourspace(t)}function ah(t){if(!Fe.string(t))throw Fe.invalidParameterError("colourspace","string",t);return this.options.colourspace=t,this}function oh(t){return this.toColourspace(t)}function wn(t){if(Fe.object(t)||Fe.string(t)&&t.length>=3&&t.length<=200){let e=eh(t);return[e.red(),e.green(),e.blue(),Math.round(e.alpha()*255)]}else throw Fe.invalidParameterError("background","object or string",t)}function lh(t,e){Fe.defined(e)&&(this.options[t]=wn(e))}yn.exports=t=>{Object.assign(t.prototype,{tint:th,greyscale:rh,grayscale:sh,pipelineColourspace:ih,pipelineColorspace:nh,toColourspace:ah,toColorspace:oh,_getBackgroundColourOption:wn,_setBackgroundColourOption:lh}),t.colourspace=vn,t.colorspace=vn}});var xn=j((wd,Pn)=>{g();var xe=be(),ch={and:"and",or:"or",eor:"eor"};function hh(){return this.options.removeAlpha=!0,this}function uh(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 fh(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 dh(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 gh(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}Pn.exports=t=>{Object.assign(t.prototype,{removeAlpha:hh,ensureAlpha:uh,extractChannel:fh,joinChannel:dh,bandbool:gh}),t.bool=ch}});var An=j((Ed,Sn)=>{g();var Lr=G("node:path"),l=be(),ht=Rt(),Rn=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"]]),ph=/\.(jp[2x]|j2[kc])$/i,$n=()=>new Error("JP2 output requires libvips with support for OpenJPEG"),kn=t=>1<<31-Math.clz32(Math.ceil(Math.log2(t)));function mh(t,e){let r;if(l.string(t)?l.string(this.options.input.file)&&Lr.resolve(this.options.input.file)===Lr.resolve(t)?r=new Error("Cannot use same file for input and output"):ph.test(Lr.extname(t))&&!this.constructor.format.jp2k.output.file&&(r=$n()):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 bh(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 vh(){return this.options.keepMetadata|=1,this}function wh(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 yh(t){return this.withExif(t),this.options.withExifMerge=!0,this}function Eh(){return this.options.keepMetadata|=8,this}function Ph(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 xh(){return this.options.keepMetadata|=2,this}function Rh(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 $h(){return this.options.keepMetadata=31,this}function kh(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 Sh(t,e){let r=Rn.get((l.object(t)&&l.string(t.id)?t.id:t).toLowerCase());if(!r)throw l.invalidParameterError("format",`one of: ${[...Rn.keys()].join(", ")}`,t);return this[r](e)}function Ah(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 _h(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=kn(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 Nh(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 Or(t,this.options),this._updateFormatOut("webp",t)}function Ih(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=kn(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 Or(t,this.options),this._updateFormatOut("gif",t)}function Fh(t){if(!this.constructor.format.jp2k.output.buffer)throw $n();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 Or(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 Ch(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 jh(t){return this.heif({...t,compression:"av1"})}function Dh(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 Th(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 Or(t,this.options),this._updateFormatOut("jxl",t)}function Lh(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 Oh(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 Mh(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 zh(t,e){return l.object(e)&&e.force===!1||(this.options.formatOut=t),this}function Bh(t,e){if(l.bool(e))this.options[t]=e;else throw l.invalidParameterError(t,"boolean",e)}function Uh(){if(!this.options.streamOut){this.options.streamOut=!0;let t=Error();this._pipeline(void 0,t)}}function qh(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)})})}Sn.exports=t=>{Object.assign(t.prototype,{toFile:mh,toBuffer:bh,keepExif:vh,withExif:wh,withExifMerge:yh,keepIccProfile:Eh,withIccProfile:Ph,keepXmp:xh,withXmp:Rh,keepMetadata:$h,withMetadata:kh,toFormat:Sh,jpeg:Ah,jp2:Fh,png:_h,webp:Nh,tiff:Ch,avif:jh,heif:Dh,jxl:Th,gif:Ih,raw:Lh,tile:Oh,timeout:Mh,_updateFormatOut:zh,_setBooleanOption:Bh,_read:Uh,_pipeline:qh})}});var Fn=j((xd,In)=>{g();var Gh=G("node:events"),Xt=Dt(),ue=be(),{runtimePlatformArch:Hh}=Sr(),re=Rt(),_n=Hh(),Mr=re.libvipsVersion(),Me=re.format();Me.heif.output.alias=["avif","heic"];Me.jpeg.output.alias=["jpe","jpg"];Me.tiff.output.alias=["tif"];Me.jp2k.output.alias=["j2c","j2k","jp2","jpx"];var Wh={nearest:"nearest",bilinear:"bilinear",bicubic:"bicubic",locallyBoundedBicubic:"lbb",nohalo:"nohalo",vertexSplitQuadraticBasisSpline:"vsqbs"},ut={vips:Mr.semver};if(!Mr.isGlobal)if(Mr.isWasm)try{ut=G("@img/sharp-wasm32/versions")}catch{}else try{ut=G(`@img/sharp-${_n}/versions`)}catch{try{ut=G(`@img/sharp-libvips-${_n}/versions`)}catch{}}ut.sharp=$r().version;ut.heif&&Me.heif&&(Me.heif.input.fileSuffix=[".avif"],Me.heif.output.alias=["avif"]);function Nn(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()}Nn(!0);function Vh(t){return re.concurrency(ue.integer(t)?t:null)}Xt.familySync()===Xt.GLIBC&&!re._isUsingJemalloc()?re.concurrency(1):Xt.familySync()===Xt.MUSL&&re.concurrency()===1024&&re.concurrency(G("node:os").availableParallelism());var Xh=new Gh.EventEmitter;function Jh(){return re.counters()}function Kh(t){return re.simd(ue.bool(t)?t:null)}function Yh(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 Qh(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)}In.exports=t=>{t.cache=Nn,t.concurrency=Vh,t.counters=Jh,t.simd=Kh,t.format=Me,t.interpolators=Wh,t.versions=ut,t.queue=Xh,t.block=Yh,t.unblock=Qh}});var jn=j((kd,Cn)=>{g();var Ce=Wi();Ji()(Ce);tn()(Ce);sn()(Ce);cn()(Ce);En()(Ce);xn()(Ce);An()(Ce);Fn()(Ce);Cn.exports=Ce});g();g();Q();g();g();import{createRequire as Pa}from"node:module";import{resolve as It,join as Ae,dirname as De,relative as ts,normalize as xa,sep as rs,extname as Ra}from"node:path";import{fileURLToPath as $a}from"node:url";import*as T from"node:fs";Q();import ka from"fast-glob";var et={getGlobOptionsFor:Nt||void 0,SCAN_PATTERNS:ce||void 0,getPatternsFor:es||void 0,I18N_PATHS:At||void 0},X={error:(t,e)=>{},warn:(t,e)=>{},info:t=>{}};function ss(t,e){return t().catch(r=>{throw new Error(`${e}: ${r instanceof Error?r.message:String(r)}`)})}var is={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"},J=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 xa(e).split(rs).join("/")}catch{return String(e).split(rs).join("/")}}getRelativePath(e){let r=this.getAppRoot(),s=ts(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(De(e)):""}resolvePackage(e,r=null){try{let s=r||this.getAppRoot(),n=Pa(Ae(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=It(r,e);return this.normalizePath(s)}resolveRepoPath(e){let r=this.getRepoRoot(),s=this.normalizePath(e),i=It(r,s);return this.normalizePath(i)}resolvePath(e,r){let s=this.normalizePath(r),i=this.normalizePath(e),n=It(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:Ra(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&&X.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&&X.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(De(c)),f=this.pathExists(c);if(f&&!n)return o&&X.info(`Skipping existing file: ${c}`),!1;if(a)return X.info(`[DRY RUN] Would write file: ${c}`),!0;try{await T.promises.mkdir(u,{recursive:!0})}catch(_){if(_?.code!=="EEXIST")throw _}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 ss(async()=>(b.isBuffer(v)?await T.promises.writeFile(c,v):await T.promises.writeFile(c,v,"utf8"),o&&X.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(De(c)),f=this.pathExists(c);if(f&&!n)return o&&X.info(`Skipping existing file: ${c}`),!1;if(a)return X.info(`[DRY RUN] Would write file: ${c}`),!0;try{T.mkdirSync(u,{recursive:!0})}catch(_){if(_?.code!=="EEXIST")throw _}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&&X.info(`${f?"Updated":"Created"} file: ${c}`),!0}catch(_){throw new Error(`Failed to write file: ${c}: ${_ instanceof Error?_.message:String(_)}`)}}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&&X.info(`Skipping existing file: ${o}`),!1;if(n)return X.info(`[DRY RUN] Would copy file: ${o}`),!0;let u=this.normalizePath(De(o));try{await T.promises.mkdir(u,{recursive:!0})}catch(f){if(f?.code!=="EEXIST")throw f}try{return await ss(async()=>(await T.promises.copyFile(e,o),a&&X.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&&X.info(`Skipping existing file: ${o}`),!1;if(n)return X.info(`[DRY RUN] Would copy file: ${o}`),!0;let u=this.normalizePath(De(o));try{T.mkdirSync(u,{recursive:!0})}catch(f){if(f?.code!=="EEXIST")throw f}try{return T.copyFileSync(e,o),a&&X.info(`${c?"Updated":"Created"} file: ${o}`),!0}catch{return!1}}pathExists(e,r=!1){try{return T.existsSync(e)}catch(s){return r||X.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&&X.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&&X.warn(`Failed to stat file: ${e}`,r),null}}lstatSync(e){try{return T.lstatSync(e)}catch(r){return this.options.debug&&X.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=Ae(this._repoRoot,"packages");return this.pathExists(e)}isWithinApp(e){let r=this.normalizePath(It(e)),s=this.getAppRoot(),i=ts(s,r),n=this.normalizePath(i);return!n.startsWith("../")&&!n.startsWith("/")}async findFiles(e,r,s={}){let i=this.normalizePath(Ae(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(Ae(i,r.PUBLISHED_ROOT,s)),a=n.replace(/\/[^/]*\*.*$/,"");return this.pathExists(a),n}async _globWithNormalization(e,r){return(await ka(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(e=!1){if(e)return"@donotdev/core/empty";let r=this.resolvePackage("@donotdev/core/empty");if(r)return r;let s=De($a(import.meta.url));return this.normalizePath(Ae(s,"../empty.js"))}_findRepoRoot(e){let r=this.normalizePath(e),s=0,i=this.options.maxLevels;for(;s<i;){let n=this.normalizePath(Ae(r,is.TOOLING)),a=this.normalizePath(Ae(r,is.CORE));if(this.pathExists(n)&&this.pathExists(a))return r;let o=Ae(r,"apps");if(this.pathExists(o)&&this.statSync(o)?.isDirectory())return this.normalizePath(r);let c=this.normalizePath(Ae(r,"package.json"));if(this.pathExists(c)&&this.normalizePath(De(r))===r)return r;let u=this.normalizePath(De(r));if(u===r)break;r=u,s++}return this.normalizePath(e)}};function ns({logger:t,debug:e=!1}={}){let r=J.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}`),_=r.resolveRepoPath(`apps/${m}/next.config.js`);r.pathExists(_)&&(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();Q();function as(){try{let t=J.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=>{let a=n.startsWith("@donotdev/"),o=n==="entities",c=s[n]&&typeof s[n]=="string"&&s[n].startsWith("workspace:");return a||o||c}).filter(n=>!_t.buildTimePackages.includes(n)).sort()}catch{return[]}}function _e(t){return t&&typeof t=="object"&&!Array.isArray(t)}function os({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)$/})),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,_,L)=>e.includes(_)?L(null,"commonjs "+_):typeof m=="function"?m(v,_,L):L()}return t?t(n,a):n}}function ls({originalRewrites:t,handlers:e,logger:r}){return async function(){try{let s=t?await t():[],n=e.filter(o=>o?.getAPIRewrites).map(o=>o.getAPIRewrites()).reduce((o,c)=>(c?.beforeFiles&&o.beforeFiles.push(...c.beforeFiles),c?.afterFiles&&o.afterFiles.push(...c.afterFiles),c?.fallback&&o.fallback.push(...c.fallback),o),{beforeFiles:[],afterFiles:[],fallback:[]}),a={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]};return a.beforeFiles.length===0&&a.afterFiles.length===0&&a.fallback.length===0?null:a}catch(s){return r.error(`Next.js config failed to merge rewrites: ${s.message}`),r.error(`Stack: ${s.stack||"No stack trace available"}`),null}}}function cs({routeResult:t,themeResult:e,i18nResult:r,assetResult:s,seoResult:i,pwaResult:n,serverShimResult:a,restNextConfig:o,discoveredPackages:c,webpackConfig:u,rewritesConfig:f,missingOptionalDeps:m,env:v,logger:_}){let L=o?.output==="export",oe=o?.distDir||".next";return{transpilePackages:c,...o?.serverExternalPackages||o?.serverComponentsExternalPackages?{serverExternalPackages:(o?.serverExternalPackages||o?.serverComponentsExternalPackages||[]).filter(fe=>!fe.startsWith("@donotdev/"))}:{},..._e(o)?o:(_.warn("restNextConfig is not a plain object:",o),{}),distDir:oe,...p.env.NODE_ENV==="development"&&{devIndicators:{position:"bottom-right"},onDemandEntries:{maxInactiveAge:60*1e3,pagesBufferLength:5}},..._e(t)?t:(_.error(`Route handler config invalid (got ${typeof t}):`,t),{}),..._e(e)?e:(_.error(`Theme handler config invalid (got ${typeof e}):`,e),{}),..._e(r)?r:(_.error(`I18n handler config invalid (got ${typeof r}):`,r),{}),..._e(s)?s:(_.error(`Asset handler config invalid (got ${typeof s}):`,s),{}),..._e(i)?i:(_.error(`SEO handler config invalid (got ${typeof i}):`,i),{}),..._e(n)?n:(_.error(`PWA handler config invalid (got ${typeof n}):`,n),{}),..._e(a)?a:(_.warn("serverShimConfig returned non-object:",a),{}),webpack:u,...L?{}:{rewrites:async()=>await f()||void 0},env:v,...p.env.NODE_ENV==="production"&&{logging:{fetches:{fullUrl:!1}}}}}g();var Sa=["public/route-manifest.json","public/theme-manifest.json","public/i18n-manifest.json","public/asset-manifest.json","public/seo-manifest.json","public/pwa-manifest.json"],Aa="dndev-config-",hs=".dndev-build";function _a(t){if(!t)return!1;let e=J.getInstance(),r=e.resolveAppPath(hs),s=p.env.DNDEV_BUILD_ID;try{return(e.readSync(r,{format:"text"})||"").trim()===s}catch{return!1}}function Na(t){if(!t)return;let e=J.getInstance(),r=e.resolveAppPath(hs),s=p.env.DNDEV_BUILD_ID;try{e.writeSync(r,s)}catch{}}function cr(t,e){if(!t)return;let r=J.getInstance();for(let i of Sa){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(Aa)&&n.endsWith(".js"))try{let a=r.resolvePath(n,s);r.removeSync(a),e.debug(`Cleaned: src/config/${n}`)}catch{}}catch{}}async function hr({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 _=o.getAppRoot();if(!_||_===u)throw new Error("App root not set before discovery. Ensure resolveAppRoot() is called before runDiscoveries().")}if(_a(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(_){throw a.error(`\u274C Route generation failed: ${_.message}`),_.stack&&a.error(`Stack: ${_.stack}`),_}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:_,handler:L}of m)try{await L.generateFiles()}catch(V){a.debug(`${_} generation failed: ${V.message}`)}let v=Date.now()-f;a.verbose?.(`\u2705 All discoveries completed in ${v}ms - Next.js can now compile`),Na(c)}async function us(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();g();g();Q();g();var wt={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 fs(t,e){let r={...t};return e&&Object.keys(e).forEach(s=>{e[s]&&typeof e[s]=="object"&&!Array.isArray(e[s])?r[s]=fs(t[s]||{},e[s]):r[s]=e[s]}),r}function ds(t={}){return fs(wt,t)}function gs(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,..._}=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:_}}g();import*as ne from"@clack/prompts";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=J.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
+ `;a.writeSync(o,m)}let c=(f,m,v)=>{if(o){let _=new Date().toISOString(),L=v.length>0?" "+v.map(oe=>typeof oe=="object"?JSON.stringify(oe,null,2):String(oe)).join(" "):"",V=`${_} [${f}] ${m}${L}
4
+ `;a.appendFile(o,V)}},u=(f,m)=>{if(m.length===0)return f;let v=m.map(_=>typeof _=="object"?JSON.stringify(_,null,2):String(_)).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,..._)=>{if(f){let L=u(v,_);switch(m){case"verbose":r&&(ne.log.message(L),c("VERBOSE",v,_));break;case"info":ne.log.info(pe(L,de.brightCyan)),c("INFO",v,_);break;case"warn":ne.log.warn(pe(L,de.brightYellow)),c("WARN",v,_);break;case"error":ne.log.error(pe(L,de.brightRed)),c("ERROR",v,_);break;case"success":ne.log.success(pe(L,de.brightGreen)),c("SUCCESS",v,_);break;default:e&&(ne.log.message(pe(L,de.gray)),c("DEBUG",v,_))}}},getLogFilePath:()=>o}}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=J.getInstance(),this.configRoot=this.pathResolver.getAppRoot(),this.discovery=this.createDiscovery(e),this.initialize()}getHandlerDefaults(){return{}}logDiscoveryResults(e){}createDiscovery(e){let r={...wt.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=pe(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 Jt=class extends he{constructor(e,r={}){super(e,{assets:ce.assets.fallback,assetPatterns:ce.assets.patterns,frameworkPackage:ar.package,assetsPath:ar.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(ke.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(`${ke.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(`${ke.public}/${ke.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(`${ke.public}/${ke.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(`${ke.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(ke.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(()=>ma(_n(),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(r).resize(f.size,f.size,{fit:"contain",background:{r:255,g:255,b:255,alpha:0}}),_;f.format==="ico"?_=await v.toFormat("png").toBuffer():_=await v.toFormat(f.format).toBuffer(),await this.pathResolver.write(`public/${f.name}`,_),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 zr={data:null},Mr=class extends se{constructor(e={}){super(Jt,e)}getHandlerDefaults(){return{manifestPath:Ve.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 Jt=class extends he{constructor(e,r={}){super(e,{assets:ce.assets.fallback,assetPatterns:ce.assets.patterns,frameworkPackage:ar.package,assetsPath:ar.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(Se.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(`${Se.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(`${Se.public}/${Se.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(`${Se.public}/${Se.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(`${Se.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(Se.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(()=>ma(jn(),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(r).resize(f.size,f.size,{fit:"contain",background:{r:255,g:255,b:255,alpha:0}}),_;f.format==="ico"?_=await v.toFormat("png").toBuffer():_=await v.toFormat(f.format).toBuffer(),await this.pathResolver.write(`public/${f.name}`,_),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 Br={data:null},zr=class extends se{constructor(e={}){super(Jt,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
 
@@ -40,7 +40,7 @@ if (typeof globalThis !== 'undefined') {
40
40
  timestamp: Date.now(),
41
41
  };
42
42
  }
43
- globalThis._DNDEV_CONFIG_.${de.assets} = {
43
+ globalThis._DNDEV_CONFIG_.${ge.assets} = {
44
44
  mapping: assetConfig.manifest,
45
45
  logoSvgContent: ${JSON.stringify(r)},
46
46
  manifest: {
@@ -52,7 +52,7 @@ if (typeof globalThis !== 'undefined') {
52
52
 
53
53
  // Export for compatibility
54
54
  export default assetConfig;
55
- `}logDiscoveryResults(e){let r=e.assets?.length||0,s=e.generatedAssets?.length||0;s>0?this.logger.info(`\u{1F3AF} Assets: ${r} found, ${s} generated`):this.logger.info(`\u{1F3AF} Assets: ${r} found`)}async getDiscoveryData(){let e=await this.discovery.discoverAssets();return e?.pwaIcons&&(zr.data={pwaIcons:e.pwaIcons}),e}getAPIRewrites(){return{beforeFiles:[],afterFiles:[{source:"/api/assets",destination:"/api/assets/asset"}],fallback:[]}}formatAPIResponse(e){return{assets:e.assets,manifest:e.manifest,copiedAssets:e.copiedAssets,source:e.source,totalAssets:e.assets.length,timestamp:e.timestamp}}createManifestContent(e){return{assets:e.assets.map(r=>({path:r.path,type:r.type,format:r.format,size:r.size,optimized:r.optimized})),manifest:e.manifest,copiedAssets:e.copiedAssets,source:e.source,totalAssets:e.assets.length,generatedAt:new Date().toISOString()}}getGenerationSummary(e){return`${e.assets.length} assets, ${e.copiedAssets.length} copied from framework`}async generateSpecificFiles(e){this.options.generateManifest&&await this.generateAssetManifest(e),this.options.optimizeImages&&await this.generateImageOptimization(e),await this.generateAPIHandler(e)}async generateAssetManifest(e){let r=this.generateAssetManifestContent(e);this.writeGeneratedFile("src/app/assets.generated.ts",r,"asset manifest")}generateAssetManifestContent(e){let r=e.assets.map(n=>` {
55
+ `}logDiscoveryResults(e){let r=e.assets?.length||0,s=e.generatedAssets?.length||0;s>0?this.logger.info(`\u{1F3AF} Assets: ${r} found, ${s} generated`):this.logger.info(`\u{1F3AF} Assets: ${r} found`)}async getDiscoveryData(){let e=await this.discovery.discoverAssets();return e?.pwaIcons&&(Br.data={pwaIcons:e.pwaIcons}),e}getAPIRewrites(){return{beforeFiles:[],afterFiles:[{source:"/api/assets",destination:"/api/assets/asset"}],fallback:[]}}formatAPIResponse(e){return{assets:e.assets,manifest:e.manifest,copiedAssets:e.copiedAssets,source:e.source,totalAssets:e.assets.length,timestamp:e.timestamp}}createManifestContent(e){return{assets:e.assets.map(r=>({path:r.path,type:r.type,format:r.format,size:r.size,optimized:r.optimized})),manifest:e.manifest,copiedAssets:e.copiedAssets,source:e.source,totalAssets:e.assets.length,generatedAt:new Date().toISOString()}}getGenerationSummary(e){return`${e.assets.length} assets, ${e.copiedAssets.length} copied from framework`}async generateSpecificFiles(e){this.options.generateManifest&&await this.generateAssetManifest(e),this.options.optimizeImages&&await this.generateImageOptimization(e),await this.generateAPIHandler(e)}async generateAssetManifest(e){let r=this.generateAssetManifestContent(e);this.writeGeneratedFile("src/app/assets.generated.ts",r,"asset manifest")}generateAssetManifestContent(e){let r=e.assets.map(n=>` {
56
56
  path: '${n.path}',
57
57
  type: '${n.type}',
58
58
  format: '${n.format}',
@@ -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 Nn(t={}){return new Mr(t)}g();g();Q();var Kt=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=Nt("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,B)=>{let z=this.pathResolver.normalizePath(O),Y=this.pathResolver.normalizePath(B);return z.startsWith(Y)?z.slice(Y.length+1):z},_=a.map(O=>v(O,r)),L=o.map(O=>v(O,r)),V=c.map(O=>v(O,s)),ne=u.map(O=>v(O,s)),Ze={...n,onlyFiles:!0,absolute:!0,braceExpansion:!0,extglob:!0,globstar:!0,cwd:r},Ce=await this.pathResolver._globWithNormalization(_,Ze),ze=await this.pathResolver._globWithNormalization(L,Ze),Be={...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(Be.ignore)}`);let le=await this.pathResolver._globWithNormalization(V,Be),xe=await this.pathResolver._globWithNormalization(ne,Be);this.logger.debug(`Found ${Ce.length} eager, ${ze.length} lazy, ${le.length} framework eager, ${xe.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(", ")}`),xe.length>0?this.logger.debug(`Framework lazy files (first 3): ${xe.slice(0,3).join(", ")}`):this.logger.error(`\u274C NO framework lazy files found! Patterns were: ${u.join(", ")}`);let gt=[...new Set([...Ce,...ze,...le,...xe])],Ue=new Set([...Ce,...le]),M={mapping:{},content:{},eagerNamespaces:new Set,allNamespaces:new Set,supportedLanguages:new Set,files:[]},qe=new Map,D=[...le,...xe];for(let O of D){let B=this._processTranslationFile(O,le.includes(O),r);if(B){let z=`${B.namespace}_${B.language}`;qe.set(z,B),M.allNamespaces.add(B.namespace),M.supportedLanguages.add(B.language),le.includes(O)&&M.eagerNamespaces.add(B.namespace)}}let Ge=new Set;for(let O of gt){if(D.includes(O))continue;let B=this._processTranslationFile(O,Ue.has(O),r);if(B){let{namespace:z,language:Y,importPath:pt,content:er}=B,mt=`${B.namespace}_${B.language}`;if(qe.has(mt)){let tr=qe.get(mt);B.content=this._mergeTranslations(tr.content,er)}M.allNamespaces.add(z),M.supportedLanguages.add(Y),Ge.add(Y),Ue.has(O)&&M.eagerNamespaces.add(z),M.mapping[z]||(M.mapping[z]={}),M.mapping[z][Y]=pt,B.content&&(M.content[z]||(M.content[z]={}),M.content[z][Y]=B.content),M.files.push({path:O,relativePath:this.pathResolver.getRelativePath(O),namespace:z,language:Y,eager:Ue.has(O),size:B.content?JSON.stringify(B.content).length:0})}}for(let[O,B]of qe){let[z,Y]=O.split("_");(!M.mapping[z]||!M.mapping[z][Y])&&(M.mapping[z]||(M.mapping[z]={}),M.mapping[z][Y]=B.importPath,M.content[z]||(M.content[z]={}),M.content[z][Y]=B.content)}let je=Ge.size>0?[...Ge].sort():[this.options.fallbackLanguage];return{mapping:M.mapping,content:M.content,eagerNamespaces:[...M.eagerNamespaces].sort(),allNamespaces:[...M.allNamespaces].sort(),supportedLanguages:je,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,a,o=i.match(/^([^_]+)_([^.]+)\.json$/);if(!o)return this.logger.debug(`Invalid translation file name format: ${i}`),null;if([,n,a]=o,!n||!a)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:n,language:a,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 Br=class extends se{constructor(e={}){super(Kt,e)}getHandlerDefaults(){return{generateI18nProvider:!1,generateTranslationHooks:!1,manifestPath:"public/i18n-manifest.json",fallbackLanguage:"en"}}createDiscovery(e){let r={...wt.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 Dn(t={}){return new zr(t)}g();Q();g();Q();var Kt=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=Nt("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,B)=>{let z=this.pathResolver.normalizePath(O),Y=this.pathResolver.normalizePath(B);return z.startsWith(Y)?z.slice(Y.length+1):z},_=a.map(O=>v(O,r)),L=o.map(O=>v(O,r)),V=c.map(O=>v(O,s)),oe=u.map(O=>v(O,s)),ze={...n,onlyFiles:!0,absolute:!0,braceExpansion:!0,extglob:!0,globstar:!0,cwd:r},fe=await this.pathResolver._globWithNormalization(_,ze),Be=await this.pathResolver._globWithNormalization(L,ze),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(V,Ue),Re=await this.pathResolver._globWithNormalization(oe,Ue);this.logger.debug(`Found ${fe.length} eager, ${Be.length} lazy, ${le.length} framework eager, ${Re.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(", ")}`),Re.length>0?this.logger.debug(`Framework lazy files (first 3): ${Re.slice(0,3).join(", ")}`):this.logger.error(`\u274C NO framework lazy files found! Patterns were: ${u.join(", ")}`);let gt=[...new Set([...fe,...Be,...le,...Re])],qe=new Set([...fe,...le]),M={mapping:{},content:{},eagerNamespaces:new Set,allNamespaces:new Set,supportedLanguages:new Set,files:[]},Ge=new Map,D=[...le,...Re];for(let O of D){let B=this._processTranslationFile(O,le.includes(O),r);if(B){let z=`${B.namespace}_${B.language}`;Ge.set(z,B),M.allNamespaces.add(B.namespace),M.supportedLanguages.add(B.language),le.includes(O)&&M.eagerNamespaces.add(B.namespace)}}let He=new Set;for(let O of gt){if(D.includes(O))continue;let B=this._processTranslationFile(O,qe.has(O),r);if(B){let{namespace:z,language:Y,importPath:pt,content:er}=B,mt=`${B.namespace}_${B.language}`;if(Ge.has(mt)){let tr=Ge.get(mt);B.content=this._mergeTranslations(tr.content,er)}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,B.content&&(M.content[z]||(M.content[z]={}),M.content[z][Y]=B.content),M.files.push({path:O,relativePath:this.pathResolver.getRelativePath(O),namespace:z,language:Y,eager:qe.has(O),size:B.content?JSON.stringify(B.content).length:0})}}for(let[O,B]of Ge){let[z,Y]=O.split("_");(!M.mapping[z]||!M.mapping[z][Y])&&(M.mapping[z]||(M.mapping[z]={}),M.mapping[z][Y]=B.importPath,M.content[z]||(M.content[z]={}),M.content[z][Y]=B.content)}let je=He.size>0?[...He].sort():[this.options.fallbackLanguage];return{mapping:M.mapping,content:M.content,eagerNamespaces:[...M.eagerNamespaces].sort(),allNamespaces:[...M.allNamespaces].sort(),supportedLanguages:je,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,a,o=i.match(/^([^_]+)_([^.]+)\.json$/);if(!o)return this.logger.debug(`Invalid translation file name format: ${i}`),null;if([,n,a]=o,!n||!a)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:n,language:a,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}};var Ur=class extends se{constructor(e={}){super(Kt,e)}getHandlerDefaults(){return{generateI18nProvider:!1,generateTranslationHooks:!1,manifestPath:"public/i18n-manifest.json",fallbackLanguage:"en"}}createDiscovery(e){let r={...wt.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
 
@@ -162,12 +162,12 @@ if (typeof globalThis !== 'undefined') {
162
162
  timestamp: Date.now(),
163
163
  };
164
164
  }
165
- globalThis._DNDEV_CONFIG_.${de.i18n} = i18nConfig;
165
+ globalThis._DNDEV_CONFIG_.${ge.i18n} = i18nConfig;
166
166
  }
167
167
 
168
168
  // Export for compatibility
169
169
  export default i18nConfig;
170
- `}};function In(t={}){return new Br(t)}g();g();var Yt=class extends he{constructor(e,r={}){super(e,{...r})}_getDiscoveryType(){return"PWA"}async _getPatterns(){return await this.pathResolver.resolvePatterns("pwa")}_getPatternType(){return"pwa"}async _processFiles(e){let{frameworkFiles:r,consumerFiles:s}=e,i=[...r,...s];this.logger.debug(`Processing ${i.length} PWA files`);let n=[];this.options.assetData?.pwaIcons&&(this.logger.debug(`Using ${this.options.assetData.pwaIcons.length} icons from AssetDiscovery`),n=[...this.options.assetData.pwaIcons]);let a=await this._analyzePWAFiles(i),o=a.filter(v=>v.type==="manifest"||v.type==="service-worker");n.push(...o);let c=a.filter(v=>v.type==="icon"),u=new Set(n.filter(v=>v.type==="icon").map(v=>v.path)),f=c.filter(v=>!u.has(v.path));n.push(...f);let m=this._generatePWAManifest(n);return{assets:n,manifest:m,totalFiles:i.length,timestamp:Date.now()}}_getEmptyResult(){return{assets:[],manifest:this._getDefaultManifest(),totalFiles:0,timestamp:Date.now()}}_getDiscoverySummary(){return`${this.cache?.assets?.length||0} PWA assets discovered`}async _analyzePWAFiles(e){let r=[];for(let s of e){let i=typeof s=="string"?{absolutePath:s,relativePath:this.pathResolver.getRelativePath(s),fileName:s.split("/").pop()||"",extension:(s.split(".").pop()||"").toLowerCase()}:s,n=await this._analyzePWAAsset(i);n&&r.push(n)}return r}async _analyzePWAAsset(e){let r=await this.pathResolver.read(e.absolutePath,{format:"text"});if(!r)return null;let s=e.relativePath,i=e.fileName;return i.includes("manifest.json")?this._parseManifestFile(r,s):i.includes("service-worker")||i.includes("sw.")?this._parseServiceWorkerFile(r,s):this._isPWAIcon(i)?this._parseIconFile(e,s):null}_parseManifestFile(e,r){try{let s=typeof e=="string"?JSON.parse(e):e;return{type:"manifest",path:r,content:s,size:typeof e=="string"?e.length:JSON.stringify(s).length}}catch(s){return this.logger.debug(`Failed to parse manifest: ${s.message}`),null}}_parseServiceWorkerFile(e,r){return{type:"service-worker",path:r,size:e.length,hasWorkbox:e.includes("workbox")}}_parseIconFile(e,r){let s=e.fileName,i=this._extractIconSize(s);return{type:"icon",path:r,size:i,format:e.extension,purpose:this._getIconPurpose(s)}}_isPWAIcon(e){return["icon","logo","apple-touch-icon","android-chrome","favicon"].some(s=>e.includes(s))}_extractIconSize(e){let r=e.match(/(\d+)x(\d+)/);return r?{width:parseInt(r[1]),height:parseInt(r[2])}:e.includes("favicon")?{width:32,height:32}:e.includes("apple-touch-icon")?{width:180,height:180}:e.includes("icon-192")?{width:192,height:192}:e.includes("icon-512")?{width:512,height:512}:{width:192,height:192}}_getIconPurpose(e){return e.includes("maskable")?"maskable":e.includes("apple-touch")?"apple-touch":e.includes("android-chrome")?"android":"any"}_generatePWAManifest(e){let r=e.filter(n=>n.type==="icon"),i=e.find(n=>n.type==="manifest")?.content||this._getDefaultManifest();return r.length>0&&(i.icons=r.map(n=>({src:`/${n.path}`,sizes:`${n.size.width}x${n.size.height}`,type:`image/${n.format}`,purpose:n.purpose}))),i}_getDefaultManifest(){let e=this.options?.app||{};return{name:e.name,short_name:e.shortName,description:e.description,start_url:"/",display:"standalone",background_color:"#ffffff",theme_color:"#000000",icons:[]}}generateManifestContent(e){let r=e.manifest||this._getDefaultManifest();return JSON.stringify(r,null,2)}generateServiceWorkerContent(e,r={}){let s=this._getWorkboxDefaults(r),i=r.backgroundSync!==!1&&r.backgroundSync,n=r.precacheManifest||[],a=JSON.stringify(n,null,2);return`// Generated by @donotdev/config - PWA Service Worker with Workbox
170
+ `}};function Tn(t={}){return new Ur(t)}g();g();var Yt=class extends he{constructor(e,r={}){super(e,{...r})}_getDiscoveryType(){return"PWA"}async _getPatterns(){return await this.pathResolver.resolvePatterns("pwa")}_getPatternType(){return"pwa"}async _processFiles(e){let{frameworkFiles:r,consumerFiles:s}=e,i=[...r,...s];this.logger.debug(`Processing ${i.length} PWA files`);let n=[];this.options.assetData?.pwaIcons&&(this.logger.debug(`Using ${this.options.assetData.pwaIcons.length} icons from AssetDiscovery`),n=[...this.options.assetData.pwaIcons]);let a=await this._analyzePWAFiles(i),o=a.filter(v=>v.type==="manifest"||v.type==="service-worker");n.push(...o);let c=a.filter(v=>v.type==="icon"),u=new Set(n.filter(v=>v.type==="icon").map(v=>v.path)),f=c.filter(v=>!u.has(v.path));n.push(...f);let m=this._generatePWAManifest(n);return{assets:n,manifest:m,totalFiles:i.length,timestamp:Date.now()}}_getEmptyResult(){return{assets:[],manifest:this._getDefaultManifest(),totalFiles:0,timestamp:Date.now()}}_getDiscoverySummary(){return`${this.cache?.assets?.length||0} PWA assets discovered`}async _analyzePWAFiles(e){let r=[];for(let s of e){let i=typeof s=="string"?{absolutePath:s,relativePath:this.pathResolver.getRelativePath(s),fileName:s.split("/").pop()||"",extension:(s.split(".").pop()||"").toLowerCase()}:s,n=await this._analyzePWAAsset(i);n&&r.push(n)}return r}async _analyzePWAAsset(e){let r=await this.pathResolver.read(e.absolutePath,{format:"text"});if(!r)return null;let s=e.relativePath,i=e.fileName;return i.includes("manifest.json")?this._parseManifestFile(r,s):i.includes("service-worker")||i.includes("sw.")?this._parseServiceWorkerFile(r,s):this._isPWAIcon(i)?this._parseIconFile(e,s):null}_parseManifestFile(e,r){try{let s=typeof e=="string"?JSON.parse(e):e;return{type:"manifest",path:r,content:s,size:typeof e=="string"?e.length:JSON.stringify(s).length}}catch(s){return this.logger.debug(`Failed to parse manifest: ${s.message}`),null}}_parseServiceWorkerFile(e,r){return{type:"service-worker",path:r,size:e.length,hasWorkbox:e.includes("workbox")}}_parseIconFile(e,r){let s=e.fileName,i=this._extractIconSize(s);return{type:"icon",path:r,size:i,format:e.extension,purpose:this._getIconPurpose(s)}}_isPWAIcon(e){return["icon","logo","apple-touch-icon","android-chrome","favicon"].some(s=>e.includes(s))}_extractIconSize(e){let r=e.match(/(\d+)x(\d+)/);return r?{width:parseInt(r[1]),height:parseInt(r[2])}:e.includes("favicon")?{width:32,height:32}:e.includes("apple-touch-icon")?{width:180,height:180}:e.includes("icon-192")?{width:192,height:192}:e.includes("icon-512")?{width:512,height:512}:{width:192,height:192}}_getIconPurpose(e){return e.includes("maskable")?"maskable":e.includes("apple-touch")?"apple-touch":e.includes("android-chrome")?"android":"any"}_generatePWAManifest(e){let r=e.filter(n=>n.type==="icon"),i=e.find(n=>n.type==="manifest")?.content||this._getDefaultManifest();return r.length>0&&(i.icons=r.map(n=>({src:`/${n.path}`,sizes:`${n.size.width}x${n.size.height}`,type:`image/${n.format}`,purpose:n.purpose}))),i}_getDefaultManifest(){let e=this.options?.app||{};return{name:e.name,short_name:e.shortName,description:e.description,start_url:"/",display:"standalone",background_color:"#ffffff",theme_color:"#000000",icons:[]}}generateManifestContent(e){let r=e.manifest||this._getDefaultManifest();return JSON.stringify(r,null,2)}generateServiceWorkerContent(e,r={}){let s=this._getWorkboxDefaults(r),i=r.backgroundSync!==!1&&r.backgroundSync,n=r.precacheManifest||[],a=JSON.stringify(n,null,2);return`// Generated by @donotdev/config - PWA Service Worker with Workbox
171
171
  // Generated at ${new Date().toISOString()}
172
172
 
173
173
  importScripts('https://storage.googleapis.com/workbox-cdn/releases/7.0.0/workbox-sw.js');
@@ -235,7 +235,7 @@ registerRoute(
235
235
  }),
236
236
  'POST'
237
237
  );
238
- `}getPWAHeaders(){return[{source:"/manifest.json",headers:[{key:"Content-Type",value:"application/manifest+json"},{key:"Cache-Control",value:"public, max-age=3600"}]},{source:"/sw.js",headers:[{key:"Content-Type",value:"application/javascript"},{key:"Cache-Control",value:"no-cache"}]}]}getPWARewrites(){return{beforeFiles:[],afterFiles:[{source:"/sw.js",destination:"/sw.js"},{source:"/workbox-:path*",destination:"/workbox-:path*"}],fallback:[]}}async discoverNextBuildAssets(e=".next"){let r=this.pathResolver.resolveAppPath(`${e}/static`),s=this.pathResolver.resolveAppPath(`${e}/static/chunks`),i=this.pathResolver.resolveAppPath(`${e}/static/css`),n=[];try{let a=[`${r}/**/*.{js,css,woff2,woff,ttf,eot}`,`${s}/**/*.{js,css}`,`${i}/**/*.css`];for(let o of a){let c=await this.pathResolver.findFiles(this.pathResolver.getAppRoot(),o.replace(this.pathResolver.getAppRoot(),""),{onlyFiles:!0});for(let u of c){let f=this.pathResolver.getRelativePath(u);if(f.startsWith(`${e}/static/`)){let m=`/_next/${f.replace(`${e}/static/`,"")}`;n.push({url:m,revision:null})}}}}catch(a){this.logger?.warn(`Failed to discover Next.js build assets: ${a.message}`)}return n}generatePrecacheManifest(e=[],r=null){let s=e;return r&&typeof r=="function"&&(s=r(s)),s}async discoverPWAAssets(e=!1){return await this.discover(e)}getPWAAssets(){return this.cache?.assets||[]}getPWAManifest(){return this.cache?.manifest||this._getDefaultManifest()}};var Ur=class extends se{constructor(e={}){super(Yt,e)}getHandlerDefaults(){return{enabled:!1,manifestPath:"public/manifest.json",serviceWorkerPath:"public/sw.js",workboxPath:"public/workbox-*.js",generateServiceWorker:!0,generateManifest:!0}}createDiscovery(e){let r=this.options.assetData||zr.data;return new e(this.pathResolver,{...this.options,assetData:r})}getHandlerName(){return"PWA"}async getDiscoveryData(){return await this.discovery.discoverPWAAssets()}getAPIRewrites(){return this.options.enabled?this.discovery.getPWARewrites():{beforeFiles:[],afterFiles:[],fallback:[]}}formatAPIResponse(e){return{assets:e.assets,manifest:e.manifest,totalAssets:e.assets.length,timestamp:e.timestamp}}createManifestContent(e){return{assets:e.assets.map(r=>({type:r.type,path:r.path,size:r.size})),manifest:e.manifest,totalAssets:e.assets.length,generatedAt:new Date().toISOString()}}getGenerationSummary(e){return`${e.assets.length} PWA assets for Next.js`}async generateSpecificFiles(e){if(!this.options.enabled){this.logger.debug("PWA disabled, skipping generation");return}this.options.generateManifest&&await this.generatePWAManifest(e),this.options.generateServiceWorker&&await this.generateServiceWorker(e),await this.generateAPIHandler(e)}async generatePWAManifest(e){let r=this.discovery.generateManifestContent(e);this.writeGeneratedFile(this.options.manifestPath,r,"PWA manifest")}async generateServiceWorker(e){let r=this.options.workbox||{},s=[];if(this.options.discoverBuildAssets!==!1){let n=await this.discovery.discoverNextBuildAssets(".next");s=this.discovery.generatePrecacheManifest(n,r.manifestTransform)}let i=this.discovery.generateServiceWorkerContent(e,{...r,precacheManifest:s});this.writeGeneratedFile(this.options.serviceWorkerPath,i,"service worker")}createNextConfig(){return this.options.enabled?(e={})=>(this.logger.debug("Initializing Next.js PWA handler"),{...e,async headers(){let r=e.headers?await e.headers():[],s=this.discovery.getPWAHeaders();return[...r,...s]},webpack:(r,s)=>{let{dev:i,isServer:n,webpack:a}=s;return this.applyViteIgnorePlugin(r,a),!i&&!n&&this._generateFiles(),e.webpack?e.webpack(r,s):r}}):()=>({})}async generatePWA(){return this.generateFiles()}createPWAAPIHandler(){return this.createAPIHandler()}};function Fn(t={}){return new Ur(t)}g();Q();g();Q();g();function Cn(t,e="unknown"){try{let r=/export\s+const\s+meta\s*[^=]*=\s*(\{[\s\S]*?\});/,s=t.match(r);if(!s)return null;let i=s[1];i=i.replace(/icon:\s*<(\w+)[\s\/][^>]*\/?>/g,(c,u)=>`icon: '${u}'`);let n=/(?:export\s+)?const\s+(\w+)\s*=\s*['"]([^'"]+)['"]/g;return[...t.matchAll(n)].forEach(c=>{let u=c[1],f=c[2];i=i.replace(new RegExp(`\\b${u}\\b`,"g"),`'${f}'`)}),Function(`return ${i}`)()}catch{return null}}var $t=null,jn=null;function tu(t){let r=(t.split("/").pop()?.replace(/\.tsx?$/,"")||"Component").replace(/[^a-zA-Z0-9]/g,"");return r.charAt(0).toUpperCase()+r.slice(1)}var ft=class extends he{constructor(e,r={}){super(e,{additionalPatterns:[],...r}),this.routes=[],this.errors=[],this.source="auto-discovery"}_getDiscoveryType(){return"Route"}async _getPatterns(){return await this.pathResolver.resolvePatterns("routes")}_getPatternType(){return"routes"}async _processFiles(e){let r=this.pathResolver.getAppRoot(),s=p.env.DNDEV_BUILD_ID;if($t&&jn===s)return this.logger.debug("Using cached route discovery results"),this.routes=$t.routes,this.errors=$t.errors,this.source=$t.source,{routes:this.routes,errors:this.errors,source:this.source,totalFiles:this.routes.length};if(this.logger.debug("Route discovery mode: AUTO-DISCOVERY"),this.logger.debug(`App root: ${r}`),this.options.verbose||this.options.debug){let i=e?.consumerFiles?.length||0;if(this.logger.info(`\u{1F50D} Route discovery: Scanning ${i} files in ${r}`),this.options.debug){let n=await this._getPatterns();this.logger.debug(`Patterns: ${JSON.stringify(n)}`)}}return await this._performAutoDiscovery(e,r),(this.options.verbose||this.options.debug)&&(this.logger.info(`\u{1F50D} Route discovery: Found ${this.routes.length} routes`),this.routes.length===0&&this.logger.warn("\u26A0\uFE0F No routes discovered! Check that pages exist in src/pages/")),$t={routes:this.routes,errors:this.errors,source:this.source},jn=p.env.DNDEV_BUILD_ID,{routes:this.routes,errors:this.errors,source:this.source,totalFiles:this.routes.length}}_getEmptyResult(){return{routes:[],errors:[],source:"empty",totalFiles:0,timestamp:Date.now()}}_getDiscoverySummary(){return`${this.cache?.routes?.length||0} routes discovered via ${this.cache?.source||"unknown"}`}async discoverRoutes(e=!1){return await this.discover(e)}getRoutes(){return this.cache?.routes||[]}async _performAutoDiscovery(e,r){let{consumerFiles:s}=e,i=await this._batchProcessFiles(s,u=>this._analyzePageFile(u,r)),n=await this._scanAdditionalPatterns(r),a=await this._batchProcessFiles(n,u=>this._analyzePageFile(u,r)),o=[...i,...a];this.logger.debug(`Auto-discovering from ${s.length} app + ${n.length} additional files`),this.routes=o.filter(u=>u.path==="home"||u.path==="/home"?(this.logger.debug(`Filtered reserved route: ${u.path} - Use root "/" instead (${u.file})`),!1):!0);let c=new Map;for(let u of this.routes){let f=u.path;if(c.has(f)){let m=c.get(f);throw new Error(`Route conflict: Multiple routes found for path '${f}'. Routes: ${m.file} and ${u.file}. Use PageMeta route override to specify unique paths. Example: export const meta: PageMeta = { route: '/custom-path' };`)}c.set(f,u)}this.logger.debug(`Auto-discovered ${this.routes.length} routes from ${s.length+n.length} files`)}async _scanAdditionalPatterns(e){let r=this.options.additionalPatterns.map(s=>this.pathResolver.resolveAppPath(s));if(r.length===0)return[];try{let{consumerFiles:s}=await this.pathResolver.resolveFiles({consumer:r,framework:[]},"routes");return s}catch(s){return this.logger.debug(`Error scanning additional patterns: ${s.message}`),[]}}async _analyzePageFile(e,r){let s=await this.pathResolver.read(e.absolutePath,{format:"text"});if(!s)return null;let i=e.relativePath,n="/src/"+i.replace(/\\/g,"/");n=n.replace(/src\/src\//g,"src/").replace(/src\/src\//g,"src/");let a=this._extractMetaExport(s,e.absolutePath),o=tu(n),u=o===vt.HOMEPAGE_COMPONENT?vt.HOMEPAGE_PATH:this._resolveRoutePath(a,i,e.absolutePath),f=this._extractPageMeta(i,s),{entity:m,action:v,..._}=a||{};return{path:u,component:o,importPath:n,auth:a?.auth||!1,meta:{...f,..._,entity:f.entity,action:f.action},metaExport:a,file:i}}_extractMetaExport(e,r){try{let s=Cn(e,r);return s?(this.logger.debug(`Extracted meta export from ${r}: ${JSON.stringify(s)}`),s):null}catch(s){return this.logger.debug(`Error parsing meta export from ${r}: ${s.message}`),null}}_generateRoutePath(e){let r=e.replace(/\.tsx$/,"").replace(/Page$/,"").replace(/^src\//,"").replace(/^pages\//,"").replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();return(r.endsWith("/index")||r==="index")&&(r=r.replace(/\/index$/,"")||"/"),r==="/"?"/":"/"+r.replace(/\/+/g,"/")}_resolveRoutePath(e,r,s){if(!e?.route)return this._generateRoutePath(r);if(typeof e.route=="string"){let i=e.route.trim();return i==="/"?"/":(i=i.replace(/\/+/g,"/"),i.startsWith("/")||(i="/"+i),i)}if(typeof e.route=="object"&&e.route!==null){let i=this._generateRoutePath(r),n=e.route.params;if(Array.isArray(n)&&n.length>0){let a=n.map(o=>`:${o}`).join("/");return`${i}/${a}`}return i}return this.logger.warn(`Invalid route format in ${s}. Use string format: route: "/path/:param" or object format: route: { params: ['id'] }`),this.logger.debug(`Falling back to auto-generated path for ${s}`),this._generateRoutePath(r)}_extractPageMeta(e,r){let s=e.split("/").pop()?.replace(".tsx","")||"",i=s.replace(/Page$/,"");i=i.replace(/([A-Z])/g," $1").trim(),i=i.charAt(0).toUpperCase()+i.slice(1);let n=e.split("/"),a=null,o=null;return n.length>1&&(a=n[n.length-2],s.includes("List")?o="list":s.includes("Form")||s.includes("Create")||s.includes("Edit")?o="form":(s.includes("Detail")||s.includes("View"))&&(o="detail")),{title:i,entity:a,action:o,file:e}}};g();function ru(t,e,r="configuration-error",s={}){let i=`[${t}] ${e}`,n=new Error(i);return n.code=r,n.pluginName=t,n.context=s,n}function Dn(t,e,r,s={}){return ru(t,`Required resource missing: ${e}. ${r}`,"missing-required-resource",Object.assign({resourceName:e},s))}g();function Tn(t){return t?.languages||t?.supportedLanguages||["en"]}function Ln(t){return t?.fallback||t?.fallbackLanguage||"en"}import{createRequire as su}from"node:module";var qr=class extends se{constructor(e={}){super(ft,e)}getHandlerDefaults(){return{routingMode:"app",generateMiddleware:!0,generateAppPages:!0,middlewarePath:Ve.next.middleware,manifestPath:Ve.next.routeManifest}}createDiscovery(e){return new e(this.pathResolver,this.options)}getHandlerName(){return"Route"}logDiscoveryResults(e){let r=e.routes||[],s=r.filter(n=>n.auth&&n.auth.required).length,i=r.length;this.logger.info(`\u{1F6E3}\uFE0F Routes: ${i} found${s>0?`, ${s} are authguarded`:""}`)}async getDiscoveryData(){return await this.discovery.discoverRoutes()}getAPIRewrites(){return{beforeFiles:[],afterFiles:[{source:"/api/routes",destination:"/api/routes/route"}],fallback:[]}}formatAPIResponse(e){return{routes:e.routes,source:e.source,totalRoutes:e.routes.length,timestamp:e.timestamp}}createManifestContent(e){return{routes:e.routes.map(r=>({path:r.path,auth:r.auth,meta:r.meta})),source:e.source,totalRoutes:e.routes.length,generatedAt:new Date().toISOString(),routingMode:this.options.routingMode}}getGenerationSummary(e){return`${e.routes.length} routes for Next.js ${this.options.routingMode} router`}generateConfigContent(e){let r=e.routes||[],s={totalRoutes:r.length,authRequired:r.filter(i=>i.auth&&i.auth.required).length,publicRoutes:r.filter(i=>!i.auth||i.auth===!1).length,source:e.source,generatedAt:new Date().toISOString()};return`// Auto-generated DnDev config by @donotdev/config
238
+ `}getPWAHeaders(){return[{source:"/manifest.json",headers:[{key:"Content-Type",value:"application/manifest+json"},{key:"Cache-Control",value:"public, max-age=3600"}]},{source:"/sw.js",headers:[{key:"Content-Type",value:"application/javascript"},{key:"Cache-Control",value:"no-cache"}]}]}getPWARewrites(){return{beforeFiles:[],afterFiles:[{source:"/sw.js",destination:"/sw.js"},{source:"/workbox-:path*",destination:"/workbox-:path*"}],fallback:[]}}async discoverNextBuildAssets(e=".next"){let r=this.pathResolver.resolveAppPath(`${e}/static`),s=this.pathResolver.resolveAppPath(`${e}/static/chunks`),i=this.pathResolver.resolveAppPath(`${e}/static/css`),n=[];try{let a=[`${r}/**/*.{js,css,woff2,woff,ttf,eot}`,`${s}/**/*.{js,css}`,`${i}/**/*.css`];for(let o of a){let c=await this.pathResolver.findFiles(this.pathResolver.getAppRoot(),o.replace(this.pathResolver.getAppRoot(),""),{onlyFiles:!0});for(let u of c){let f=this.pathResolver.getRelativePath(u);if(f.startsWith(`${e}/static/`)){let m=`/_next/${f.replace(`${e}/static/`,"")}`;n.push({url:m,revision:null})}}}}catch(a){this.logger?.warn(`Failed to discover Next.js build assets: ${a.message}`)}return n}generatePrecacheManifest(e=[],r=null){let s=e;return r&&typeof r=="function"&&(s=r(s)),s}async discoverPWAAssets(e=!1){return await this.discover(e)}getPWAAssets(){return this.cache?.assets||[]}getPWAManifest(){return this.cache?.manifest||this._getDefaultManifest()}};var qr=class extends se{constructor(e={}){super(Yt,e)}getHandlerDefaults(){return{enabled:!1,manifestPath:"public/manifest.json",serviceWorkerPath:"public/sw.js",workboxPath:"public/workbox-*.js",generateServiceWorker:!0,generateManifest:!0}}createDiscovery(e){let r=this.options.assetData||Br.data;return new e(this.pathResolver,{...this.options,assetData:r})}getHandlerName(){return"PWA"}async getDiscoveryData(){return await this.discovery.discoverPWAAssets()}getAPIRewrites(){return this.options.enabled?this.discovery.getPWARewrites():{beforeFiles:[],afterFiles:[],fallback:[]}}formatAPIResponse(e){return{assets:e.assets,manifest:e.manifest,totalAssets:e.assets.length,timestamp:e.timestamp}}createManifestContent(e){return{assets:e.assets.map(r=>({type:r.type,path:r.path,size:r.size})),manifest:e.manifest,totalAssets:e.assets.length,generatedAt:new Date().toISOString()}}getGenerationSummary(e){return`${e.assets.length} PWA assets for Next.js`}async generateSpecificFiles(e){if(!this.options.enabled){this.logger.debug("PWA disabled, skipping generation");return}this.options.generateManifest&&await this.generatePWAManifest(e),this.options.generateServiceWorker&&await this.generateServiceWorker(e),await this.generateAPIHandler(e)}async generatePWAManifest(e){let r=this.discovery.generateManifestContent(e);this.writeGeneratedFile(this.options.manifestPath,r,"PWA manifest")}async generateServiceWorker(e){let r=this.options.workbox||{},s=[];if(this.options.discoverBuildAssets!==!1){let n=await this.discovery.discoverNextBuildAssets(".next");s=this.discovery.generatePrecacheManifest(n,r.manifestTransform)}let i=this.discovery.generateServiceWorkerContent(e,{...r,precacheManifest:s});this.writeGeneratedFile(this.options.serviceWorkerPath,i,"service worker")}createNextConfig(){return this.options.enabled?(e={})=>(this.logger.debug("Initializing Next.js PWA handler"),{...e,async headers(){let r=e.headers?await e.headers():[],s=this.discovery.getPWAHeaders();return[...r,...s]},webpack:(r,s)=>{let{dev:i,isServer:n,webpack:a}=s;return this.applyViteIgnorePlugin(r,a),!i&&!n&&this._generateFiles(),e.webpack?e.webpack(r,s):r}}):()=>({})}async generatePWA(){return this.generateFiles()}createPWAAPIHandler(){return this.createAPIHandler()}};function Ln(t={}){return new qr(t)}g();import{createRequire as tu}from"node:module";Q();g();Q();g();function On(t,e="unknown"){try{let r=/export\s+const\s+meta\s*[^=]*=\s*(\{[\s\S]*?\});/,s=t.match(r);if(!s)return null;let i=s[1];i=i.replace(/icon:\s*<(\w+)[\s\/][^>]*\/?>/g,(c,u)=>`icon: '${u}'`);let n=/(?:export\s+)?const\s+(\w+)\s*=\s*['"]([^'"]+)['"]/g;return[...t.matchAll(n)].forEach(c=>{let u=c[1],f=c[2];i=i.replace(new RegExp(`\\b${u}\\b`,"g"),`'${f}'`)}),Function(`return ${i}`)()}catch{return null}}var $t=null,Mn=null;function Zh(t){let r=(t.split("/").pop()?.replace(/\.tsx?$/,"")||"Component").replace(/[^a-zA-Z0-9]/g,"");return r.charAt(0).toUpperCase()+r.slice(1)}var ft=class extends he{constructor(e,r={}){super(e,{additionalPatterns:[],...r}),this.routes=[],this.errors=[],this.source="auto-discovery"}_getDiscoveryType(){return"Route"}async _getPatterns(){return await this.pathResolver.resolvePatterns("routes")}_getPatternType(){return"routes"}async _processFiles(e){let r=this.pathResolver.getAppRoot(),s=p.env.DNDEV_BUILD_ID;if($t&&Mn===s)return this.logger.debug("Using cached route discovery results"),this.routes=$t.routes,this.errors=$t.errors,this.source=$t.source,{routes:this.routes,errors:this.errors,source:this.source,totalFiles:this.routes.length};if(this.logger.debug("Route discovery mode: AUTO-DISCOVERY"),this.logger.debug(`App root: ${r}`),this.options.verbose||this.options.debug){let i=e?.consumerFiles?.length||0;if(this.logger.info(`\u{1F50D} Route discovery: Scanning ${i} files in ${r}`),this.options.debug){let n=await this._getPatterns();this.logger.debug(`Patterns: ${JSON.stringify(n)}`)}}return await this._performAutoDiscovery(e,r),(this.options.verbose||this.options.debug)&&(this.logger.info(`\u{1F50D} Route discovery: Found ${this.routes.length} routes`),this.routes.length===0&&this.logger.warn("\u26A0\uFE0F No routes discovered! Check that pages exist in src/pages/")),$t={routes:this.routes,errors:this.errors,source:this.source},Mn=p.env.DNDEV_BUILD_ID,{routes:this.routes,errors:this.errors,source:this.source,totalFiles:this.routes.length}}_getEmptyResult(){return{routes:[],errors:[],source:"empty",totalFiles:0,timestamp:Date.now()}}_getDiscoverySummary(){return`${this.cache?.routes?.length||0} routes discovered via ${this.cache?.source||"unknown"}`}async discoverRoutes(e=!1){return await this.discover(e)}getRoutes(){return this.cache?.routes||[]}async _performAutoDiscovery(e,r){let{consumerFiles:s}=e,i=await this._batchProcessFiles(s,u=>this._analyzePageFile(u,r)),n=await this._scanAdditionalPatterns(r),a=await this._batchProcessFiles(n,u=>this._analyzePageFile(u,r)),o=[...i,...a];this.logger.debug(`Auto-discovering from ${s.length} app + ${n.length} additional files`),this.routes=o.filter(u=>u.path==="home"||u.path==="/home"?(this.logger.debug(`Filtered reserved route: ${u.path} - Use root "/" instead (${u.file})`),!1):!0);let c=new Map;for(let u of this.routes){let f=u.path;if(c.has(f)){let m=c.get(f);throw new Error(`Route conflict: Multiple routes found for path '${f}'. Routes: ${m.file} and ${u.file}. Use PageMeta route override to specify unique paths. Example: export const meta: PageMeta = { route: '/custom-path' };`)}c.set(f,u)}this.logger.debug(`Auto-discovered ${this.routes.length} routes from ${s.length+n.length} files`)}async _scanAdditionalPatterns(e){let r=this.options.additionalPatterns.map(s=>this.pathResolver.resolveAppPath(s));if(r.length===0)return[];try{let{consumerFiles:s}=await this.pathResolver.resolveFiles({consumer:r,framework:[]},"routes");return s}catch(s){return this.logger.debug(`Error scanning additional patterns: ${s.message}`),[]}}async _analyzePageFile(e,r){let s=await this.pathResolver.read(e.absolutePath,{format:"text"});if(!s)return null;let i=e.relativePath,n="/src/"+i.replace(/\\/g,"/");n=n.replace(/src\/src\//g,"src/").replace(/src\/src\//g,"src/");let a=this._extractMetaExport(s,e.absolutePath),o=Zh(n),u=o===vt.HOMEPAGE_COMPONENT?vt.HOMEPAGE_PATH:this._resolveRoutePath(a,i,e.absolutePath),f=this._extractPageMeta(i,s),{entity:m,action:v,..._}=a||{};return{path:u,component:o,importPath:n,auth:a?.auth||!1,meta:{...f,..._,entity:f.entity,action:f.action},metaExport:a,file:i}}_extractMetaExport(e,r){try{let s=On(e,r);return s?(this.logger.debug(`Extracted meta export from ${r}: ${JSON.stringify(s)}`),s):null}catch(s){return this.logger.debug(`Error parsing meta export from ${r}: ${s.message}`),null}}_generateRoutePath(e){let r=e.replace(/\.tsx$/,"").replace(/Page$/,"").replace(/^src\//,"").replace(/^pages\//,"").replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();return(r.endsWith("/index")||r==="index")&&(r=r.replace(/\/index$/,"")||"/"),r==="/"?"/":"/"+r.replace(/\/+/g,"/")}_resolveRoutePath(e,r,s){if(!e?.route)return this._generateRoutePath(r);if(typeof e.route=="string"){let i=e.route.trim();return i==="/"?"/":(i=i.replace(/\/+/g,"/"),i.startsWith("/")||(i="/"+i),i)}if(typeof e.route=="object"&&e.route!==null){let i=this._generateRoutePath(r),n=e.route.params;if(Array.isArray(n)&&n.length>0){let a=n.map(o=>`:${o}`).join("/");return`${i}/${a}`}return i}return this.logger.warn(`Invalid route format in ${s}. Use string format: route: "/path/:param" or object format: route: { params: ['id'] }`),this.logger.debug(`Falling back to auto-generated path for ${s}`),this._generateRoutePath(r)}_extractPageMeta(e,r){let s=e.split("/").pop()?.replace(".tsx","")||"",i=s.replace(/Page$/,"");i=i.replace(/([A-Z])/g," $1").trim(),i=i.charAt(0).toUpperCase()+i.slice(1);let n=e.split("/"),a=null,o=null;return n.length>1&&(a=n[n.length-2],s.includes("List")?o="list":s.includes("Form")||s.includes("Create")||s.includes("Edit")?o="form":(s.includes("Detail")||s.includes("View"))&&(o="detail")),{title:i,entity:a,action:o,file:e}}};g();function eu(t,e,r="configuration-error",s={}){let i=`[${t}] ${e}`,n=new Error(i);return n.code=r,n.pluginName=t,n.context=s,n}function zn(t,e,r,s={}){return eu(t,`Required resource missing: ${e}. ${r}`,"missing-required-resource",Object.assign({resourceName:e},s))}g();function Bn(t){return t?.languages||t?.supportedLanguages||["en"]}function Un(t){return t?.fallback||t?.fallbackLanguage||"en"}var Gr=class extends se{constructor(e={}){super(ft,e)}getHandlerDefaults(){return{routingMode:"app",generateMiddleware:!0,generateAppPages:!0,middlewarePath:Xe.next.middleware,manifestPath:Xe.next.routeManifest}}createDiscovery(e){return new e(this.pathResolver,this.options)}getHandlerName(){return"Route"}logDiscoveryResults(e){let r=e.routes||[],s=r.filter(n=>n.auth&&n.auth.required).length,i=r.length;this.logger.info(`\u{1F6E3}\uFE0F Routes: ${i} found${s>0?`, ${s} are authguarded`:""}`)}async getDiscoveryData(){return await this.discovery.discoverRoutes()}getAPIRewrites(){return{beforeFiles:[],afterFiles:[{source:"/api/routes",destination:"/api/routes/route"}],fallback:[]}}formatAPIResponse(e){return{routes:e.routes,source:e.source,totalRoutes:e.routes.length,timestamp:e.timestamp}}createManifestContent(e){return{routes:e.routes.map(r=>({path:r.path,auth:r.auth,meta:r.meta})),source:e.source,totalRoutes:e.routes.length,generatedAt:new Date().toISOString(),routingMode:this.options.routingMode}}getGenerationSummary(e){return`${e.routes.length} routes for Next.js ${this.options.routingMode} router`}generateConfigContent(e){let r=e.routes||[],s={totalRoutes:r.length,authRequired:r.filter(i=>i.auth&&i.auth.required).length,publicRoutes:r.filter(i=>!i.auth||i.auth===!1).length,source:e.source,generatedAt:new Date().toISOString()};return`// Auto-generated DnDev config by @donotdev/config
239
239
  // Generated at: ${new Date().toISOString()}
240
240
  // Populates _DNDEV_CONFIG_.routes with discovery results
241
241
 
@@ -254,7 +254,7 @@ if (typeof globalThis !== 'undefined') {
254
254
  timestamp: Date.now(),
255
255
  };
256
256
  }
257
- globalThis._DNDEV_CONFIG_.${de.routes} = {
257
+ globalThis._DNDEV_CONFIG_.${ge.routes} = {
258
258
  mapping: routeMapping,
259
259
  manifest: routeManifest,
260
260
  };
@@ -264,7 +264,7 @@ if (typeof globalThis !== 'undefined') {
264
264
  export const routes = routeMapping;
265
265
  export const manifest = routeManifest;
266
266
  export default { routes: routeMapping, manifest: routeManifest };
267
- `}async generateSpecificFiles(e){this.options.generateMiddleware&&await this.generateMiddleware(e),this.options.generateAppPages&&await this.generateAppPageFiles(e),this.options.routingMode==="app"?await this.generateAppRoutes(e):await this.generatePagesRoutes(e),await this.generateAPIHandler(e)}async generateAppPageFiles(e){this.logger.debug("Starting app/** page file generation");try{await this.cleanGeneratedPageFiles();let r=0;for(let s of e.routes)await this.generateSingleAppPage(s)&&r++;this.logger.debug(`Successfully generated ${r}/${e.routes.length} app/** page files`)}catch(r){throw this.logger.error(`Failed to generate app/** files: ${r.message}`),r}}async cleanGeneratedPageFiles(){try{let e=this.pathResolver.getAppRoot(),r=["src/app/**/page.tsx","src/app/[...slug]/page.tsx"],s=await this.pathResolver._globWithNormalization(r,{cwd:e,absolute:!0,onlyFiles:!0,braceExpansion:!0,extglob:!0,globstar:!0}),i=0;for(let n of s)if(await this.hasGenerationMarker(n))try{await this.pathResolver.remove(n),i++,this.logger.debug(`Cleaned generated file: ${n}`)}catch(a){this.logger.debug(`Could not clean file ${n}: ${a.message}`)}i>0&&this.logger.debug(`Cleaned ${i} existing generated page files`)}catch(e){this.logger.debug(`Error during cleanup: ${e.message}`)}}async generateSingleAppPage(e){try{let r=this.convertRouteToAppPath(e.path),s=`src/app${r}/page.tsx`,i=this.pathResolver.resolveAppPath(s);if(this.pathResolver.pathExists(i)&&!await this.hasGenerationMarker(i))return this.logger.debug(`Skipping ${s} - user-created file detected (no generation marker)`),!1;let n={...e,filePath:e.file||e.filePath||this.pathResolver.resolveAppPath(e.file),relativePath:e.file||e.relativePath},a=this.generatePageFileContent(n);return this.writeGeneratedFile(s,a,`app page: ${r}`),!0}catch(r){return this.logger.debug(`Error generating page for route ${e.path}: ${r.message}`),!1}}convertRouteToAppPath(e){if(e===vt.HOMEPAGE_PATH)return"";let r=e;return r.startsWith("/")||(r="/"+r),r=r.replace(/\/+/g,"/"),r}loadI18nConfig(){try{let e=this.pathResolver.resolveAppPath("src/config/dndev-config-i18n.js");if(!this.pathResolver.pathExists(e))return this.logger.debug("I18n config file not found, skipping metadata generation"),null;if(typeof globalThis<"u"&&globalThis._DNDEV_CONFIG_?.i18n)return globalThis._DNDEV_CONFIG_.i18n;try{let r=this.pathResolver.getAppRoot(),s=su(r),i=s.resolve(e);delete s.cache[i];let n=s(i);return n.default||n.i18nConfig||n}catch(r){return this.logger.debug(`Failed to require i18n config: ${r.message}`),null}}catch(e){return this.logger.debug(`Failed to load i18n config: ${e.message}`),null}}generatePageFileContent(e){let r=this.extractComponentName(e.filePath),s=e.relativePath||e.file,i=this.calculateRelativeImportPath(s,e.path),n=this.isClientComponent(e.filePath),a=e.metaExport&&Object.keys(e.metaExport).length>0,o=this.loadI18nConfig(),c=e.metaExport?.namespace,u=`// Generated by @donotdev/config - DO NOT EDIT
267
+ `}async generateSpecificFiles(e){this.options.generateMiddleware&&await this.generateMiddleware(e),this.options.generateAppPages&&await this.generateAppPageFiles(e),this.options.routingMode==="app"?await this.generateAppRoutes(e):await this.generatePagesRoutes(e),await this.generateAPIHandler(e)}async generateAppPageFiles(e){this.logger.debug("Starting app/** page file generation");try{await this.cleanGeneratedPageFiles();let r=0;for(let s of e.routes)await this.generateSingleAppPage(s)&&r++;this.logger.debug(`Successfully generated ${r}/${e.routes.length} app/** page files`)}catch(r){throw this.logger.error(`Failed to generate app/** files: ${r.message}`),r}}async cleanGeneratedPageFiles(){try{let e=this.pathResolver.getAppRoot(),r=["src/app/**/page.tsx","src/app/[...slug]/page.tsx"],s=await this.pathResolver._globWithNormalization(r,{cwd:e,absolute:!0,onlyFiles:!0,braceExpansion:!0,extglob:!0,globstar:!0}),i=0;for(let n of s)if(await this.hasGenerationMarker(n))try{await this.pathResolver.remove(n),i++,this.logger.debug(`Cleaned generated file: ${n}`)}catch(a){this.logger.debug(`Could not clean file ${n}: ${a.message}`)}i>0&&this.logger.debug(`Cleaned ${i} existing generated page files`)}catch(e){this.logger.debug(`Error during cleanup: ${e.message}`)}}async generateSingleAppPage(e){try{let r=this.convertRouteToAppPath(e.path),s=`src/app${r}/page.tsx`,i=this.pathResolver.resolveAppPath(s);if(this.pathResolver.pathExists(i)&&!await this.hasGenerationMarker(i))return this.logger.debug(`Skipping ${s} - user-created file detected (no generation marker)`),!1;let n={...e,filePath:e.file||e.filePath||this.pathResolver.resolveAppPath(e.file),relativePath:e.file||e.relativePath},a=this.generatePageFileContent(n);return this.writeGeneratedFile(s,a,`app page: ${r}`),!0}catch(r){return this.logger.debug(`Error generating page for route ${e.path}: ${r.message}`),!1}}convertRouteToAppPath(e){if(e===vt.HOMEPAGE_PATH)return"";let r=e;return r.startsWith("/")||(r="/"+r),r=r.replace(/\/+/g,"/"),r}loadI18nConfig(){try{let e=this.pathResolver.resolveAppPath("src/config/dndev-config-i18n.js");if(!this.pathResolver.pathExists(e))return this.logger.debug("I18n config file not found, skipping metadata generation"),null;if(typeof globalThis<"u"&&globalThis._DNDEV_CONFIG_?.i18n)return globalThis._DNDEV_CONFIG_.i18n;try{let r=this.pathResolver.getAppRoot(),s=tu(r),i=s.resolve(e);delete s.cache[i];let n=s(i);return n.default||n.i18nConfig||n}catch(r){return this.logger.debug(`Failed to require i18n config: ${r.message}`),null}}catch(e){return this.logger.debug(`Failed to load i18n config: ${e.message}`),null}}generatePageFileContent(e){let r=this.extractComponentName(e.filePath),s=e.relativePath||e.file,i=this.calculateRelativeImportPath(s,e.path),n=this.isClientComponent(e.filePath),a=e.metaExport&&Object.keys(e.metaExport).length>0,o=this.loadI18nConfig(),c=e.metaExport?.namespace,u=`// Generated by @donotdev/config - DO NOT EDIT
268
268
  // This file will be regenerated when src/pages changes
269
269
  // To customize: edit ${e.filePath} or create manual app/** files
270
270
  ${n?`'use client';
@@ -274,7 +274,7 @@ import ${r} from '${i}';
274
274
  export const metadata = ${this.generateMetadataObject(e.metaExport)};
275
275
  `)),u+=`
276
276
  export default ${r};
277
- `,u}generateMetadataFunction(e,r,s){let i=Tn(s),n=Ln(s),a="`",o=i.map(c=>` '${c}': { href: ${a}\${baseUrl}\${currentPath}${a} }`).join(`,
277
+ `,u}generateMetadataFunction(e,r,s){let i=Bn(s),n=Un(s),a="`",o=i.map(c=>` '${c}': { href: ${a}\${baseUrl}\${currentPath}${a} }`).join(`,
278
278
  `);return`
279
279
  import type { Metadata } from 'next';
280
280
  import { readFileSync } from 'node:fs';
@@ -495,7 +495,7 @@ export const routeManifest = {
495
495
 
496
496
  export default pageRoutes;
497
497
  `}pathToComponentName(e){return e.split("/").filter(Boolean).map(r=>r.charAt(0).toUpperCase()+r.slice(1)).join("")+"Page"}calculateRelativeImportPath(e,r){if(!e)throw new Error("relativePath is required for import path calculation");let i=e.replace(/\.tsx$/,"").replace(/^src\//,""),n=r==="/"?0:r.split("/").filter(Boolean).length;return`${"../".repeat(n+1)}${i}`}isClientComponent(e){try{let r=this.pathResolver.resolveAppPath(e);if(!this.pathResolver.pathExists(r))return!1;let s=this.pathResolver.readSync(r);return s?s.split(`
498
- `).slice(0,50).some(n=>n.trim()==="'use client';"||n.trim()==='"use client";'):!1}catch{return!1}}};function On(t={}){return new qr(t)}g();g();var Qt=class{constructor(e={}){let{debug:r=!1,generateRobotsTxt:s=!0,generateSitemap:i=!0,baseUrl:n,siteName:a,crawlDelay:o=1,routes:c={},...u}=e;if(!n||!a)throw new Error("SEOGenerator requires baseUrl and siteName options");this.options={debug:r,generateRobotsTxt:s,generateSitemap:i,baseUrl:n,siteName:a,crawlDelay:o,routes:c,defaultImage:"/og-image.jpg",twitterHandle:"@donotdev",defaultAuthor:"DNDev Team",defaultLanguage:"en",staticTags:{},...u},this.logger=pe("SEO Generator",e.debug,e.verbose)}async generateSEOFiles(e,r,s=null){try{let i=this.generateRouteMetaTags(e.routes||[]),n={routes:e.routes||[],routeMetaTags:i,baseUrl:this.options.baseUrl,siteName:this.options.siteName},a={robotsTxt:null,sitemap:null,manifest:null,totalRoutes:n.routes.length,publicRoutes:n.routes.filter(o=>!o.auth||o.auth===!1).length,protectedRoutes:n.routes.filter(o=>o.auth&&o.auth.required).length};return this.options.generateRobotsTxt&&(a.robotsTxt=await this.generateRobotsTxt(n,r,s)),this.options.generateSitemap&&(a.sitemap=await this.generateSitemap(n,r,s)),a.manifest=await this.generateManifest(n,r,s),a}catch(i){throw this.logger.error(`SEO generator failed to create files (robots.txt/sitemap.xml/manifest): ${i.message}`),this.logger.error(`Stack: ${i.stack||"No stack trace available"}`),i}}async generateRobotsTxt(e,r,s=null){if(s&&await s("robots.txt"))return this.logger.info("\u2705 robots.txt already exists, skipping generation"),{fileName:"robots.txt",skipped:!0};let i=[];(e.routes||[]).forEach(a=>{if(a.auth&&a.auth.required){let o=a.path.startsWith("/")?a.path:`/${a.path}`;i.push(o)}}),i.push("/admin","/api","/_next","/static");let n=this.generateRobotsTxtContent({disallowedPaths:[...new Set(i)],sitemap:`${this.options.baseUrl}/sitemap.xml`,crawlDelay:this.options.crawlDelay});return await r("robots.txt",n),{fileName:"robots.txt",content:n,disallowedPaths:i.length}}async generateSitemap(e,r,s=null){if(s&&await s("sitemap.xml"))return this.logger.info("\u2705 sitemap.xml already exists, skipping generation"),{fileName:"sitemap.xml",skipped:!0};let n=(e.routes||[]).filter(o=>!o.auth||o.auth===!1).map(o=>({url:o.path,lastmod:new Date().toISOString().split("T")[0],changefreq:"weekly",priority:o.path==="/"?"1.0":"0.8"})),a=this.generateSitemapContent(n);return await r("sitemap.xml",a),{fileName:"sitemap.xml",content:a,publicRoutes:n.length}}async generateManifest(e,r,s=null){if(s&&await s("seo-manifest.json"))return this.logger.info("\u2705 seo-manifest.json already exists, skipping generation"),{fileName:"seo-manifest.json",skipped:!0};let i={totalRoutes:e.routes?.length||0,publicRoutes:e.routes?.filter(a=>!a.auth||a.auth===!1).length||0,protectedRoutes:e.routes?.filter(a=>a.auth&&a.auth.required).length||0,baseUrl:this.options.baseUrl,siteName:this.options.siteName,generatedAt:new Date().toISOString(),routeMetaTags:e.routeMetaTags||[]},n=JSON.stringify(i,null,2);return await r("seo-manifest.json",n),{fileName:"seo-manifest.json",content:n,manifest:i}}generateRobotsTxtContent(e={}){let{allowedPaths:r=["/"],disallowedPaths:s=["/admin","/api"],sitemap:i,crawlDelay:n}=e,a=c=>c?c==="*"?"*":c.startsWith("/")?c:`/${c}`:"/",o=["User-agent: *",...s.map(c=>`Disallow: ${a(c)}`),...r.map(c=>`Allow: ${a(c)}`)];return n&&o.push(`Crawl-delay: ${n}`),i&&o.push(`Sitemap: ${i}`),o.join(`
498
+ `).slice(0,50).some(n=>n.trim()==="'use client';"||n.trim()==='"use client";'):!1}catch{return!1}}};function qn(t={}){return new Gr(t)}g();g();var Qt=class{constructor(e={}){let{debug:r=!1,generateRobotsTxt:s=!0,generateSitemap:i=!0,baseUrl:n,siteName:a,crawlDelay:o=1,routes:c={},...u}=e;if(!n||!a)throw new Error("SEOGenerator requires baseUrl and siteName options");this.options={debug:r,generateRobotsTxt:s,generateSitemap:i,baseUrl:n,siteName:a,crawlDelay:o,routes:c,defaultImage:"/og-image.jpg",twitterHandle:"@donotdev",defaultAuthor:"DNDev Team",defaultLanguage:"en",staticTags:{},...u},this.logger=me("SEO Generator",e.debug,e.verbose)}async generateSEOFiles(e,r,s=null){try{let i=this.generateRouteMetaTags(e.routes||[]),n={routes:e.routes||[],routeMetaTags:i,baseUrl:this.options.baseUrl,siteName:this.options.siteName},a={robotsTxt:null,sitemap:null,manifest:null,totalRoutes:n.routes.length,publicRoutes:n.routes.filter(o=>!o.auth||o.auth===!1).length,protectedRoutes:n.routes.filter(o=>o.auth&&o.auth.required).length};return this.options.generateRobotsTxt&&(a.robotsTxt=await this.generateRobotsTxt(n,r,s)),this.options.generateSitemap&&(a.sitemap=await this.generateSitemap(n,r,s)),a.manifest=await this.generateManifest(n,r,s),a}catch(i){throw this.logger.error(`SEO generator failed to create files (robots.txt/sitemap.xml/manifest): ${i.message}`),this.logger.error(`Stack: ${i.stack||"No stack trace available"}`),i}}async generateRobotsTxt(e,r,s=null){if(s&&await s("robots.txt"))return this.logger.info("\u2705 robots.txt already exists, skipping generation"),{fileName:"robots.txt",skipped:!0};let i=[];(e.routes||[]).forEach(a=>{if(a.auth&&a.auth.required){let o=a.path.startsWith("/")?a.path:`/${a.path}`;i.push(o)}}),i.push("/admin","/api","/_next","/static");let n=this.generateRobotsTxtContent({disallowedPaths:[...new Set(i)],sitemap:`${this.options.baseUrl}/sitemap.xml`,crawlDelay:this.options.crawlDelay});return await r("robots.txt",n),{fileName:"robots.txt",content:n,disallowedPaths:i.length}}async generateSitemap(e,r,s=null){if(s&&await s("sitemap.xml"))return this.logger.info("\u2705 sitemap.xml already exists, skipping generation"),{fileName:"sitemap.xml",skipped:!0};let n=(e.routes||[]).filter(o=>!o.auth||o.auth===!1).map(o=>({url:o.path,lastmod:new Date().toISOString().split("T")[0],changefreq:"weekly",priority:o.path==="/"?"1.0":"0.8"})),a=this.generateSitemapContent(n);return await r("sitemap.xml",a),{fileName:"sitemap.xml",content:a,publicRoutes:n.length}}async generateManifest(e,r,s=null){if(s&&await s("seo-manifest.json"))return this.logger.info("\u2705 seo-manifest.json already exists, skipping generation"),{fileName:"seo-manifest.json",skipped:!0};let i={totalRoutes:e.routes?.length||0,publicRoutes:e.routes?.filter(a=>!a.auth||a.auth===!1).length||0,protectedRoutes:e.routes?.filter(a=>a.auth&&a.auth.required).length||0,baseUrl:this.options.baseUrl,siteName:this.options.siteName,generatedAt:new Date().toISOString(),routeMetaTags:e.routeMetaTags||[]},n=JSON.stringify(i,null,2);return await r("seo-manifest.json",n),{fileName:"seo-manifest.json",content:n,manifest:i}}generateRobotsTxtContent(e={}){let{allowedPaths:r=["/"],disallowedPaths:s=["/admin","/api"],sitemap:i,crawlDelay:n}=e,a=c=>c?c==="*"?"*":c.startsWith("/")?c:`/${c}`:"/",o=["User-agent: *",...s.map(c=>`Disallow: ${a(c)}`),...r.map(c=>`Allow: ${a(c)}`)];return n&&o.push(`Crawl-delay: ${n}`),i&&o.push(`Sitemap: ${i}`),o.join(`
499
499
  `)}generateSitemapContent(e){return`<?xml version="1.0" encoding="UTF-8"?>
500
500
  <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
501
501
  ${e.map(({url:s,lastmod:i,changefreq:n,priority:a})=>{let o=[` <loc>${this.options.baseUrl}${s}</loc>`];return i&&o.push(` <lastmod>${i}</lastmod>`),n&&o.push(` <changefreq>${n}</changefreq>`),a&&o.push(` <priority>${a}</priority>`),` <url>
@@ -503,7 +503,7 @@ ${o.join(`
503
503
  `)}
504
504
  </url>`}).join(`
505
505
  `)}
506
- </urlset>`}generateRouteMetaTags(e){return e.map(r=>{let s=this.options.siteName;if(r.meta?.title)s=`${r.meta.title} - ${this.options.siteName}`;else if(r.path!=="/"){let n=r.path.split("/").filter(Boolean);n.length>0&&(s=`${n[n.length-1].split("-").map(c=>c.charAt(0).toUpperCase()+c.slice(1)).join(" ")} - ${this.options.siteName}`)}let i=`Welcome to ${this.options.siteName}`;if(r.meta?.description)i=r.meta.description;else if(r.meta?.entity&&r.meta?.action)i=`${r.meta.action} ${r.meta.entity} on ${this.options.siteName}`;else if(r.path!=="/"){let n=r.path.split("/").filter(Boolean);n.length>0&&(i=`Explore ${n[n.length-1].split("-").map(c=>c.charAt(0).toUpperCase()+c.slice(1)).join(" ").toLowerCase()} on ${this.options.siteName}`)}return{path:r.path,meta:{title:s,description:i,canonical:`${this.options.baseUrl}${r.path}`,robots:r.auth&&r.auth.required?"noindex, nofollow":"index, follow"}}})}getGenerationSummary(e){let r=e.routes?.length||0,s=e.routes?.filter(n=>!n.auth||n.auth===!1).length||0,i=e.routes?.filter(n=>n.auth&&n.auth.required).length||0;return`${r} routes (${s} public, ${i} protected)`}formatAPIResponse(e){return{totalRoutes:e.routes?.length||0,publicRoutes:e.routes?.filter(r=>!r.auth||r.auth===!1).length||0,protectedRoutes:e.routes?.filter(r=>r.auth&&r.auth.required).length||0,baseUrl:this.options.baseUrl,siteName:this.options.siteName,generatedAt:new Date().toISOString()}}};var Gr=class extends se{constructor(e={}){super(ft,e);let r=J.getInstance(),s=pe("SEO Handler",this.options.debug,this.options.verbose),i=null;if(e.appUrl)i=e.appUrl,this.options.debug&&s.debug(`Using app URL from appConfig.app.url: ${i}`);else{let c=p.env.NEXT_PUBLIC_APP_URL||null;c&&(i=c,this.options.debug&&s.debug(`Using app URL from NEXT_PUBLIC_APP_URL: ${i}`))}let n=e.seo?.baseUrl;if(!n&&i){let c=i.trim().replace(/\/+$/,"");n=/^https?:\/\//i.test(c)?c:`https://${c}`}n?s.debug(`Found app URL: ${n}`):s.warn("Missing app URL. Set appConfig.app.url in src/config/app.ts or NEXT_PUBLIC_APP_URL in .env file.");let a=e.siteName||e.seo?.siteName||null;if(s.verbose(`Name: ${a||"Not found"}`),s.verbose(`URL: ${n||"Not found"}`),a&&s.debug(` - Site name from appConfig: "${a}"`),e.seo?.disabled===!0){s.info("SEO generation disabled (disabled: true)"),this.disabled=!0;return}let o=[];if(n||o.push("baseUrl (NEXT_PUBLIC_APP_URL in .env)"),a||o.push("siteName (APP_NAME in src/config/app.ts)"),o.length>0){s.warn("\u26A0\uFE0F SEO Handler disabled - missing required configuration:"),o.forEach(c=>s.warn(` - ${c}`)),s.warn(""),s.warn(" To fix:"),n||s.warn(" 1. Add NEXT_PUBLIC_APP_URL=https://yourdomain.com to your .env file"),a||(s.warn(" 2. Add APP_NAME export to src/config/app.ts:"),s.warn(' export const APP_NAME = "Your App Name";')),s.warn(""),s.warn(" robots.txt and sitemap.xml will NOT be generated."),s.warn(""),this.disabled=!0;return}this.seoGenerator=new Qt({debug:this.options.debug,generateRobotsTxt:this.options.generateRobotsTxt,generateSitemap:this.options.generateSitemap,baseUrl:n,siteName:a,crawlDelay:this.options.crawlDelay,...e})}getHandlerDefaults(){return{manifestPath:"public/seo-manifest.json"}}createNextConfig(){return this.disabled?()=>({}):super.createNextConfig()}async getDiscoveryData(){return this.disabled?{routes:[],errors:[],source:"disabled"}:await this.discovery.discoverRoutes()}getAPIRewrites(){return this.disabled?{beforeFiles:[],afterFiles:[],fallback:[]}:{beforeFiles:[],afterFiles:[],fallback:[]}}getHandlerName(){return"SEO"}async generateSpecificFiles(e){if(!this.disabled){if(!e||!e.routes)try{let r=this.pathResolver.resolveAppPath("public/route-manifest.json");if(this.pathResolver.pathExists(r))e=await this.pathResolver.read(r,{format:"json"});else{this.logger.debug("Route manifest not found, skipping SEO file generation");return}}catch(r){this.logger.debug(`Could not load route manifest for SEO: ${r.message}`);return}try{let r=async(n,a)=>{if(!n){this.logger.debug("Skipping SEO file write - fileName is undefined");return}this.writeGeneratedFile(`public/${n}`,a,n)},s=async n=>{try{let a=this.pathResolver.resolveAppPath(`public/${n}`);return this.pathResolver.pathExists(a)}catch{return!1}},i=await this.seoGenerator.generateSEOFiles(e,r,s);i.robotsTxt&&!i.robotsTxt.skipped&&this.logger.info(`\u{1F916} robots.txt: ${i.robotsTxt.disallowedPaths||0} disallowed paths`),i.sitemap&&!i.sitemap.skipped&&this.logger.info(`\u{1F5FA}\uFE0F sitemap.xml: ${i.sitemap.publicRoutes||0} routes`),i.manifest&&!i.manifest.skipped&&this.logger.info("\u{1F4C4} seo-manifest.json")}catch(r){this.logger.error(`SEO handler failed to generate files (robots.txt/sitemap.xml): ${r.message}`),this.logger.error(`Stack: ${r.stack||"No stack trace available"}`)}}}createManifestContent(e){return this.disabled?{}:this.seoGenerator.formatAPIResponse(e)}formatAPIResponse(e){return this.disabled?{}:this.seoGenerator.formatAPIResponse(e)}getGenerationSummary(e){return this.disabled?"SEO disabled":`${(e?.routes||[]).length} routes processed for SEO`}};function Mn(t={}){return new Gr(t)}g();Q();function zn(t={}){let{debug:e}=t;return(r={})=>({...r,webpack:(s,i)=>{let{isServer:n}=i;return n||(s.externals||(s.externals={}),Zr.forEach(a=>{s.externals[a]=`commonjs ${a}`})),r.webpack?r.webpack(s,i):s}})}g();g();Q();g();Q();var dt=class{constructor(e,r={}){if(!e)throw new Error("CSSExtractor requires PathResolver instance");this.pathResolver=e,this.options={debug:!1,customPatterns:{},...r},this.logger=r.logger||{debug:(s,...i)=>{this.options.debug}},this.patterns={selectors:{...or.selectors,...this.options.customPatterns?.selectors},themes:{...or.themes,...this.options.customPatterns?.themes}}}cssVarToJsIdentifier(e){if(!e||typeof e!="string")return this._debug(`Invalid CSS variable: ${e}`),null;let r=e.replace(/^--/,"");if(!r)return this._debug(`Empty CSS variable after removing --: ${e}`),null;let s=r.split("-").filter(a=>a.length>0);if(s.length===0)return this._debug(`No valid parts in CSS variable: ${e}`),null;let i=s.map((a,o)=>{let c=a.replace(/[^a-zA-Z0-9]/g,"");return c?o===0?c.toLowerCase():c.charAt(0).toUpperCase()+c.slice(1).toLowerCase():null}).filter(Boolean).join("");return!i||!/^[a-zA-Z][a-zA-Z0-9]*$/.test(i)?(this._debug(`Invalid JavaScript identifier generated from ${e}: ${i}`),null):["const","let","var","function","class","export","import","default","if","else","for","while"].includes(i)?`${i}Var`:i}_stripComments(e){return e.replace(/\/\*[\s\S]*?\*\//g,"")}extractThemes(e,r,s){let i=[],n,a=this.pathResolver.normalizePath(r),o=this._stripComments(e),c=/(?::root\.|\.)([a-z][a-z0-9-]*)\s*\{([^}]*--theme-label\s*:\s*['"]([^'"]+)['"][^}]*)\}/gim;for(;(n=c.exec(o))!==null;){let[,u,f,m]=n;if(!u||!m)continue;let v=f.match(this.patterns.themes.themeIcon),_=f.match(this.patterns.themes.themeIsDark),L={name:u,displayName:m,isDark:_?_[1]==="1":!1,meta:{icon:v?.[1]},source:this.pathResolver.getBasename(r)};this._debug(`Discovered theme: ${u} (${m})`),i.push(L),s.themes.set(u,{name:u,displayName:m,isDark:L.isDark,file:a,variables:new Set,meta:L.meta})}return i.length>0&&this._debug(`Extracted ${i.length} themes from ${a}`),i}extractClasses(e,r){(e.match(this.patterns.selectors.class)||[]).forEach(i=>{let n=i.slice(1);n.startsWith("_")||r.classes.add(n)})}extractVariables(e,r,s){(e.match(this.patterns.selectors.variable)||[]).forEach(n=>{n.startsWith("--")&&n.length>2?s==="framework"?r.variables.framework.add(n):r.variables.consumer.add(n):this._debug(`Skipping invalid CSS variable: ${n}`)})}extractKeyframes(e,r){(e.match(this.patterns.selectors.keyframe)||[]).forEach(i=>{let n=i.replace("@keyframes","").trim();n&&r.keyframes.add(n)})}validateCSS(e){let r=[],s=e.match(/--[a-zA-Z0-9-_]*[^a-zA-Z0-9-_:;\s]/g);return s&&s.forEach(n=>{r.push(`Possible malformed CSS variable: ${n}`)}),(e.match(/\.[a-z][a-z0-9-]+\s*\{[^}]*\}/gi)||[]).forEach(n=>{if(!n.includes("--theme-label")&&n.includes("--")){let a=n.match(/\.([a-z][a-z0-9-]+)/)?.[1];a&&r.push(`Theme class "${a}" missing --theme-label`)}}),r}extractAll(e,r,s="consumer"){let i={themes:new Map,classes:new Set,variables:{framework:new Set,consumer:new Set},keyframes:new Set},n=this.extractThemes(e,r,i);this.extractClasses(e,i),this.extractVariables(e,i,s),this.extractKeyframes(e,i);let a=this.validateCSS(e);return{themes:n,classes:Array.from(i.classes),variables:{framework:Array.from(i.variables.framework),consumer:Array.from(i.variables.consumer),all:[...Array.from(i.variables.framework),...Array.from(i.variables.consumer)].sort()},keyframes:Array.from(i.keyframes),warnings:a}}getPatterns(){return{...this.patterns}}setPatterns(e){this.patterns={...this.patterns,...e,selectors:{...this.patterns.selectors,...e.selectors},themes:{...this.patterns.themes,...e.themes}}}_debug(e,r){this.logger.debug(e,r||"")}};var Zt=class extends he{constructor(e,r,s={}){super(r,s),this.cssExtractor=e||new dt(r,{debug:s.debug,logger:this.logger}),this.discovered={themes:new Map,variables:{framework:new Set,consumer:new Set},classes:new Set,keyframes:new Set},this._addEssentialThemes()}_getDiscoveryType(){return"Theme"}async _getPatterns(){return await this.pathResolver.resolvePatterns("css")}_getPatternType(){return"css"}async _processFiles(e){this.discovered={themes:new Map,variables:{framework:new Set,consumer:new Set},classes:new Set,keyframes:new Set},this._addEssentialThemes();let{frameworkFiles:r,consumerFiles:s}=e;this.logger.debug(`Scanning ${r.length} framework + ${s.length} consumer CSS files`),this.logger.debug("\u{1F50D} FILES DISCOVERED:"),this.logger.debug("Framework files:",r),this.logger.debug("Consumer files:",s),r.length>0?(this.logger.debug(`Framework files found: ${r.length}`),this.logger.debug("Framework files:",r)):this.logger.debug("No framework files found"),s.length>0?(this.logger.debug(`Consumer files found: ${s.length}`),this.logger.debug("Consumer files:",s)):this.logger.debug("No consumer files found"),await this._processFrameworkFiles(r),await this._processConsumerFiles(s);let i=this._serializeThemes();return this.logger.debug(`Discovered ${i.length} themes:`,i.map(n=>n.name)),{themes:i,variables:{framework:Array.from(this.discovered.variables.framework).sort(),consumer:Array.from(this.discovered.variables.consumer).sort(),all:[...Array.from(this.discovered.variables.framework),...Array.from(this.discovered.variables.consumer)].sort()},classes:Array.from(this.discovered.classes).sort(),keyframes:Array.from(this.discovered.keyframes).sort()}}_getEmptyResult(){let e=this._serializeThemes();return{themes:e.length>0?e:this._getEssentialThemesFallback(),variables:{framework:[],consumer:[],all:[]},classes:[],keyframes:[],timestamp:Date.now()}}_getEssentialThemesFallback(){return lr.map(e=>({name:e.name,displayName:e.displayName,meta:{icon:e.icon,category:e.isDark?"dark":"light"},essential:!0,isDark:e.isDark,source:"built-in",variableCount:0}))}_getDiscoverySummary(){return""}async discoverThemes(e=!1){return await this.discover(e)}getThemes(){return this.cache?.themes||[]}getVariables(){return this.cache?.variables||{framework:[],consumer:[],all:[]}}getClasses(){return this.cache?.classes||[]}async _processFrameworkFiles(e){for(let r of e)try{let s=await this.pathResolver.read(r,{format:"text"}),i=this.pathResolver.normalizePath(r);this.cssExtractor.extractThemes(s,i,this.discovered),this.cssExtractor.extractClasses(s,this.discovered),this.cssExtractor.extractVariables(s,this.discovered,"framework"),this.cssExtractor.extractKeyframes(s,this.discovered),this.logger.debug(`\u2705 Processed framework: ${this.pathResolver.getRelativePath(i)}`)}catch(s){this.logger.debug(`Error scanning framework file ${r}: ${s.message}`)}}async _processConsumerFiles(e){for(let r of e)try{let s=await this.pathResolver.read(r,{format:"text"}),i=this.pathResolver.normalizePath(r);this.cssExtractor.extractThemes(s,i,this.discovered),this.cssExtractor.extractVariables(s,this.discovered,"consumer"),this.logger.debug(`\u2705 Processed consumer: ${this.pathResolver.getRelativePath(i)}`)}catch(s){this.logger.debug(`Error scanning consumer file ${r}: ${s.message}`)}}_addEssentialThemes(){lr.forEach(e=>{this.discovered.themes.set(e.name,{name:e.name,displayName:e.displayName,meta:{icon:e.icon,category:e.isDark?"dark":"light"},essential:!0,isDark:e.isDark,source:"built-in",variables:new Set})})}_serializeThemes(){return Array.from(this.discovered.themes.values()).map(e=>({name:e.name,displayName:e.displayName,meta:e.meta,source:e.source,essential:e.essential||!1,isDark:e.isDark||!1,variableCount:e.variables?.size||0}))}};Q();var Hr=class extends se{constructor(e={}){super(Zt,e)}getHandlerDefaults(){return{generateThemeProvider:!1,manifestPath:"public/theme-manifest.json"}}createDiscovery(e){return this.cssExtractor=new dt(this.pathResolver,{debug:this.options.debug}),new e(this.cssExtractor,this.pathResolver,this.options)}getHandlerName(){return"Theme"}logDiscoveryResults(e){let r=e.themes||[],s=r.filter(n=>!n.essential).length,i=r.length;if(i===0)throw Dn("dndev-theme","themes","Framework requires at least one theme. Ensure CSS files with theme definitions exist in your project. Check that @donotdev/components/styles are imported.");this.logger.info(`\u{1F3A8} Themes: ${i} discovered${s>0?` (${s} custom)`:""}`)}async getDiscoveryData(){return await this.discovery.discoverThemes()}getAPIRewrites(){return{beforeFiles:[],afterFiles:[{source:"/api/themes",destination:"/api/themes/route"}],fallback:[]}}formatAPIResponse(e){return{themes:e.themes,variables:e.variables,stats:e.stats,timestamp:e.timestamp}}createManifestContent(e){return{themes:e.themes,variables:{total:e.variables.all.length,framework:e.variables.framework.length,consumer:e.variables.consumer.length},stats:e.stats,generatedAt:new Date().toISOString()}}getGenerationSummary(e){return`${e.themes.length} themes, ${e.variables.all.length} variables`}async generateSpecificFiles(e){await this.generateAPIHandler(e)}async generateThemes(){let e=await this.getDiscoveryData();await this.generateConfigFile(e)}async generateConfigFile(e){return super.generateConfigFile(e)}generateConfigContent(e){let{themes:r,variables:s}=e;return`// Auto-generated DnDev config by @donotdev/config
506
+ </urlset>`}generateRouteMetaTags(e){return e.map(r=>{let s=this.options.siteName;if(r.meta?.title)s=`${r.meta.title} - ${this.options.siteName}`;else if(r.path!=="/"){let n=r.path.split("/").filter(Boolean);n.length>0&&(s=`${n[n.length-1].split("-").map(c=>c.charAt(0).toUpperCase()+c.slice(1)).join(" ")} - ${this.options.siteName}`)}let i=`Welcome to ${this.options.siteName}`;if(r.meta?.description)i=r.meta.description;else if(r.meta?.entity&&r.meta?.action)i=`${r.meta.action} ${r.meta.entity} on ${this.options.siteName}`;else if(r.path!=="/"){let n=r.path.split("/").filter(Boolean);n.length>0&&(i=`Explore ${n[n.length-1].split("-").map(c=>c.charAt(0).toUpperCase()+c.slice(1)).join(" ").toLowerCase()} on ${this.options.siteName}`)}return{path:r.path,meta:{title:s,description:i,canonical:`${this.options.baseUrl}${r.path}`,robots:r.auth&&r.auth.required?"noindex, nofollow":"index, follow"}}})}getGenerationSummary(e){let r=e.routes?.length||0,s=e.routes?.filter(n=>!n.auth||n.auth===!1).length||0,i=e.routes?.filter(n=>n.auth&&n.auth.required).length||0;return`${r} routes (${s} public, ${i} protected)`}formatAPIResponse(e){return{totalRoutes:e.routes?.length||0,publicRoutes:e.routes?.filter(r=>!r.auth||r.auth===!1).length||0,protectedRoutes:e.routes?.filter(r=>r.auth&&r.auth.required).length||0,baseUrl:this.options.baseUrl,siteName:this.options.siteName,generatedAt:new Date().toISOString()}}};var Hr=class extends se{constructor(e={}){super(ft,e);let r=J.getInstance(),s=me("SEO Handler",this.options.debug,this.options.verbose),i=null;if(e.appUrl)i=e.appUrl,this.options.debug&&s.debug(`Using app URL from appConfig.app.url: ${i}`);else{let c=p.env.NEXT_PUBLIC_APP_URL||null;c&&(i=c,this.options.debug&&s.debug(`Using app URL from NEXT_PUBLIC_APP_URL: ${i}`))}let n=e.seo?.baseUrl;if(!n&&i){let c=i.trim().replace(/\/+$/,"");n=/^https?:\/\//i.test(c)?c:`https://${c}`}n?s.debug(`Found app URL: ${n}`):s.warn("Missing app URL. Set appConfig.app.url in src/config/app.ts or NEXT_PUBLIC_APP_URL in .env file.");let a=e.siteName||e.seo?.siteName||null;if(s.verbose(`Name: ${a||"Not found"}`),s.verbose(`URL: ${n||"Not found"}`),a&&s.debug(` - Site name from appConfig: "${a}"`),e.seo?.disabled===!0){s.info("SEO generation disabled (disabled: true)"),this.disabled=!0;return}let o=[];if(n||o.push("baseUrl (NEXT_PUBLIC_APP_URL in .env)"),a||o.push("siteName (APP_NAME in src/config/app.ts)"),o.length>0){s.warn("\u26A0\uFE0F SEO Handler disabled - missing required configuration:"),o.forEach(c=>s.warn(` - ${c}`)),s.warn(""),s.warn(" To fix:"),n||s.warn(" 1. Add NEXT_PUBLIC_APP_URL=https://yourdomain.com to your .env file"),a||(s.warn(" 2. Add APP_NAME export to src/config/app.ts:"),s.warn(' export const APP_NAME = "Your App Name";')),s.warn(""),s.warn(" robots.txt and sitemap.xml will NOT be generated."),s.warn(""),this.disabled=!0;return}this.seoGenerator=new Qt({debug:this.options.debug,generateRobotsTxt:this.options.generateRobotsTxt,generateSitemap:this.options.generateSitemap,baseUrl:n,siteName:a,crawlDelay:this.options.crawlDelay,...e})}getHandlerDefaults(){return{manifestPath:"public/seo-manifest.json"}}createNextConfig(){return this.disabled?()=>({}):super.createNextConfig()}async getDiscoveryData(){return this.disabled?{routes:[],errors:[],source:"disabled"}:await this.discovery.discoverRoutes()}getAPIRewrites(){return this.disabled?{beforeFiles:[],afterFiles:[],fallback:[]}:{beforeFiles:[],afterFiles:[],fallback:[]}}getHandlerName(){return"SEO"}async generateSpecificFiles(e){if(!this.disabled){if(!e||!e.routes)try{let r=this.pathResolver.resolveAppPath("public/route-manifest.json");if(this.pathResolver.pathExists(r))e=await this.pathResolver.read(r,{format:"json"});else{this.logger.debug("Route manifest not found, skipping SEO file generation");return}}catch(r){this.logger.debug(`Could not load route manifest for SEO: ${r.message}`);return}try{let r=async(n,a)=>{if(!n){this.logger.debug("Skipping SEO file write - fileName is undefined");return}this.writeGeneratedFile(`public/${n}`,a,n)},s=async n=>{try{let a=this.pathResolver.resolveAppPath(`public/${n}`);return this.pathResolver.pathExists(a)}catch{return!1}},i=await this.seoGenerator.generateSEOFiles(e,r,s);i.robotsTxt&&!i.robotsTxt.skipped&&this.logger.info(`\u{1F916} robots.txt: ${i.robotsTxt.disallowedPaths||0} disallowed paths`),i.sitemap&&!i.sitemap.skipped&&this.logger.info(`\u{1F5FA}\uFE0F sitemap.xml: ${i.sitemap.publicRoutes||0} routes`),i.manifest&&!i.manifest.skipped&&this.logger.info("\u{1F4C4} seo-manifest.json")}catch(r){this.logger.error(`SEO handler failed to generate files (robots.txt/sitemap.xml): ${r.message}`),this.logger.error(`Stack: ${r.stack||"No stack trace available"}`)}}}createManifestContent(e){return this.disabled?{}:this.seoGenerator.formatAPIResponse(e)}formatAPIResponse(e){return this.disabled?{}:this.seoGenerator.formatAPIResponse(e)}getGenerationSummary(e){return this.disabled?"SEO disabled":`${(e?.routes||[]).length} routes processed for SEO`}};function Gn(t={}){return new Hr(t)}g();Q();function Hn(t={}){let{debug:e}=t;return(r={})=>({...r,webpack:(s,i)=>{let{isServer:n}=i;return n||(s.externals||(s.externals={}),Zr.forEach(a=>{s.externals[a]=`commonjs ${a}`})),r.webpack?r.webpack(s,i):s}})}g();Q();g();Q();g();Q();var dt=class{constructor(e,r={}){if(!e)throw new Error("CSSExtractor requires PathResolver instance");this.pathResolver=e,this.options={debug:!1,customPatterns:{},...r},this.logger=r.logger||{debug:(s,...i)=>{this.options.debug}},this.patterns={selectors:{...or.selectors,...this.options.customPatterns?.selectors},themes:{...or.themes,...this.options.customPatterns?.themes}}}cssVarToJsIdentifier(e){if(!e||typeof e!="string")return this._debug(`Invalid CSS variable: ${e}`),null;let r=e.replace(/^--/,"");if(!r)return this._debug(`Empty CSS variable after removing --: ${e}`),null;let s=r.split("-").filter(a=>a.length>0);if(s.length===0)return this._debug(`No valid parts in CSS variable: ${e}`),null;let i=s.map((a,o)=>{let c=a.replace(/[^a-zA-Z0-9]/g,"");return c?o===0?c.toLowerCase():c.charAt(0).toUpperCase()+c.slice(1).toLowerCase():null}).filter(Boolean).join("");return!i||!/^[a-zA-Z][a-zA-Z0-9]*$/.test(i)?(this._debug(`Invalid JavaScript identifier generated from ${e}: ${i}`),null):["const","let","var","function","class","export","import","default","if","else","for","while"].includes(i)?`${i}Var`:i}_stripComments(e){return e.replace(/\/\*[\s\S]*?\*\//g,"")}extractThemes(e,r,s){let i=[],n,a=this.pathResolver.normalizePath(r),o=this._stripComments(e),c=/(?::root\.|\.)([a-z][a-z0-9-]*)\s*\{([^}]*--theme-label\s*:\s*['"]([^'"]+)['"][^}]*)\}/gim;for(;(n=c.exec(o))!==null;){let[,u,f,m]=n;if(!u||!m)continue;let v=f.match(this.patterns.themes.themeIcon),_=f.match(this.patterns.themes.themeIsDark),L={name:u,displayName:m,isDark:_?_[1]==="1":!1,meta:{icon:v?.[1]},source:this.pathResolver.getBasename(r)};this._debug(`Discovered theme: ${u} (${m})`),i.push(L),s.themes.set(u,{name:u,displayName:m,isDark:L.isDark,file:a,variables:new Set,meta:L.meta})}return i.length>0&&this._debug(`Extracted ${i.length} themes from ${a}`),i}extractClasses(e,r){(e.match(this.patterns.selectors.class)||[]).forEach(i=>{let n=i.slice(1);n.startsWith("_")||r.classes.add(n)})}extractVariables(e,r,s){(e.match(this.patterns.selectors.variable)||[]).forEach(n=>{n.startsWith("--")&&n.length>2?s==="framework"?r.variables.framework.add(n):r.variables.consumer.add(n):this._debug(`Skipping invalid CSS variable: ${n}`)})}extractKeyframes(e,r){(e.match(this.patterns.selectors.keyframe)||[]).forEach(i=>{let n=i.replace("@keyframes","").trim();n&&r.keyframes.add(n)})}validateCSS(e){let r=[],s=e.match(/--[a-zA-Z0-9-_]*[^a-zA-Z0-9-_:;\s]/g);return s&&s.forEach(n=>{r.push(`Possible malformed CSS variable: ${n}`)}),(e.match(/\.[a-z][a-z0-9-]+\s*\{[^}]*\}/gi)||[]).forEach(n=>{if(!n.includes("--theme-label")&&n.includes("--")){let a=n.match(/\.([a-z][a-z0-9-]+)/)?.[1];a&&r.push(`Theme class "${a}" missing --theme-label`)}}),r}extractAll(e,r,s="consumer"){let i={themes:new Map,classes:new Set,variables:{framework:new Set,consumer:new Set},keyframes:new Set},n=this.extractThemes(e,r,i);this.extractClasses(e,i),this.extractVariables(e,i,s),this.extractKeyframes(e,i);let a=this.validateCSS(e);return{themes:n,classes:Array.from(i.classes),variables:{framework:Array.from(i.variables.framework),consumer:Array.from(i.variables.consumer),all:[...Array.from(i.variables.framework),...Array.from(i.variables.consumer)].sort()},keyframes:Array.from(i.keyframes),warnings:a}}getPatterns(){return{...this.patterns}}setPatterns(e){this.patterns={...this.patterns,...e,selectors:{...this.patterns.selectors,...e.selectors},themes:{...this.patterns.themes,...e.themes}}}_debug(e,r){this.logger.debug(e,r||"")}};var Zt=class extends he{constructor(e,r,s={}){super(r,s),this.cssExtractor=e||new dt(r,{debug:s.debug,logger:this.logger}),this.discovered={themes:new Map,variables:{framework:new Set,consumer:new Set},classes:new Set,keyframes:new Set},this._addEssentialThemes()}_getDiscoveryType(){return"Theme"}async _getPatterns(){return await this.pathResolver.resolvePatterns("css")}_getPatternType(){return"css"}async _processFiles(e){this.discovered={themes:new Map,variables:{framework:new Set,consumer:new Set},classes:new Set,keyframes:new Set},this._addEssentialThemes();let{frameworkFiles:r,consumerFiles:s}=e;this.logger.debug(`Scanning ${r.length} framework + ${s.length} consumer CSS files`),this.logger.debug("\u{1F50D} FILES DISCOVERED:"),this.logger.debug("Framework files:",r),this.logger.debug("Consumer files:",s),r.length>0?(this.logger.debug(`Framework files found: ${r.length}`),this.logger.debug("Framework files:",r)):this.logger.debug("No framework files found"),s.length>0?(this.logger.debug(`Consumer files found: ${s.length}`),this.logger.debug("Consumer files:",s)):this.logger.debug("No consumer files found"),await this._processFrameworkFiles(r),await this._processConsumerFiles(s);let i=this._serializeThemes();return this.logger.debug(`Discovered ${i.length} themes:`,i.map(n=>n.name)),{themes:i,variables:{framework:Array.from(this.discovered.variables.framework).sort(),consumer:Array.from(this.discovered.variables.consumer).sort(),all:[...Array.from(this.discovered.variables.framework),...Array.from(this.discovered.variables.consumer)].sort()},classes:Array.from(this.discovered.classes).sort(),keyframes:Array.from(this.discovered.keyframes).sort()}}_getEmptyResult(){let e=this._serializeThemes();return{themes:e.length>0?e:this._getEssentialThemesFallback(),variables:{framework:[],consumer:[],all:[]},classes:[],keyframes:[],timestamp:Date.now()}}_getEssentialThemesFallback(){return lr.map(e=>({name:e.name,displayName:e.displayName,meta:{icon:e.icon,category:e.isDark?"dark":"light"},essential:!0,isDark:e.isDark,source:"built-in",variableCount:0}))}_getDiscoverySummary(){return""}async discoverThemes(e=!1){return await this.discover(e)}getThemes(){return this.cache?.themes||[]}getVariables(){return this.cache?.variables||{framework:[],consumer:[],all:[]}}getClasses(){return this.cache?.classes||[]}async _processFrameworkFiles(e){for(let r of e)try{let s=await this.pathResolver.read(r,{format:"text"}),i=this.pathResolver.normalizePath(r);this.cssExtractor.extractThemes(s,i,this.discovered),this.cssExtractor.extractClasses(s,this.discovered),this.cssExtractor.extractVariables(s,this.discovered,"framework"),this.cssExtractor.extractKeyframes(s,this.discovered),this.logger.debug(`\u2705 Processed framework: ${this.pathResolver.getRelativePath(i)}`)}catch(s){this.logger.debug(`Error scanning framework file ${r}: ${s.message}`)}}async _processConsumerFiles(e){for(let r of e)try{let s=await this.pathResolver.read(r,{format:"text"}),i=this.pathResolver.normalizePath(r);this.cssExtractor.extractThemes(s,i,this.discovered),this.cssExtractor.extractVariables(s,this.discovered,"consumer"),this.logger.debug(`\u2705 Processed consumer: ${this.pathResolver.getRelativePath(i)}`)}catch(s){this.logger.debug(`Error scanning consumer file ${r}: ${s.message}`)}}_addEssentialThemes(){lr.forEach(e=>{this.discovered.themes.set(e.name,{name:e.name,displayName:e.displayName,meta:{icon:e.icon,category:e.isDark?"dark":"light"},essential:!0,isDark:e.isDark,source:"built-in",variables:new Set})})}_serializeThemes(){return Array.from(this.discovered.themes.values()).map(e=>({name:e.name,displayName:e.displayName,meta:e.meta,source:e.source,essential:e.essential||!1,isDark:e.isDark||!1,variableCount:e.variables?.size||0}))}};var Wr=class extends se{constructor(e={}){super(Zt,e)}getHandlerDefaults(){return{generateThemeProvider:!1,manifestPath:"public/theme-manifest.json"}}createDiscovery(e){return this.cssExtractor=new dt(this.pathResolver,{debug:this.options.debug}),new e(this.cssExtractor,this.pathResolver,this.options)}getHandlerName(){return"Theme"}logDiscoveryResults(e){let r=e.themes||[],s=r.filter(n=>!n.essential).length,i=r.length;if(i===0)throw zn("dndev-theme","themes","Framework requires at least one theme. Ensure CSS files with theme definitions exist in your project. Check that @donotdev/components/styles are imported.");this.logger.info(`\u{1F3A8} Themes: ${i} discovered${s>0?` (${s} custom)`:""}`)}async getDiscoveryData(){return await this.discovery.discoverThemes()}getAPIRewrites(){return{beforeFiles:[],afterFiles:[{source:"/api/themes",destination:"/api/themes/route"}],fallback:[]}}formatAPIResponse(e){return{themes:e.themes,variables:e.variables,stats:e.stats,timestamp:e.timestamp}}createManifestContent(e){return{themes:e.themes,variables:{total:e.variables.all.length,framework:e.variables.framework.length,consumer:e.variables.consumer.length},stats:e.stats,generatedAt:new Date().toISOString()}}getGenerationSummary(e){return`${e.themes.length} themes, ${e.variables.all.length} variables`}async generateSpecificFiles(e){await this.generateAPIHandler(e)}async generateThemes(){let e=await this.getDiscoveryData();await this.generateConfigFile(e)}async generateConfigFile(e){return super.generateConfigFile(e)}generateConfigContent(e){let{themes:r,variables:s}=e;return`// Auto-generated DnDev config by @donotdev/config
507
507
  // Generated at: ${new Date().toISOString()}
508
508
  // Populates _DNDEV_CONFIG_ with discovery results
509
509
 
@@ -535,7 +535,7 @@ if (typeof globalThis !== 'undefined') {
535
535
  timestamp: Date.now(),
536
536
  };
537
537
  }
538
- globalThis._DNDEV_CONFIG_.${de.themes} = themeConfig;
538
+ globalThis._DNDEV_CONFIG_.${ge.themes} = themeConfig;
539
539
  }
540
540
 
541
541
  // Export for compatibility
@@ -551,9 +551,9 @@ export function useTheme() {
551
551
  }
552
552
 
553
553
  export default useTheme;
554
- `}};function Bn(t={}){return new Hr(t)}function Un({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 _=s.debug??t,L=i.debug??t,V=n.debug??t,ne=a.debug??t,Ze=o.debug??t,Ce=c.debug??t,ze=u.debug??t,Be=s.verbose??e,le=i.verbose??e,xe=n.verbose??e,gt=a.verbose??e,Ue=o.verbose??e,M=c.verbose??e,qe=u.verbose??e,D={debug:t,verbose:e,generateManifest:r},Ge=s.disabled?null:On({...D,...s,debug:_,verbose:Be});t&&v.debug(`Route handler created: ${Ge?"enabled":"disabled"} (debug: ${_})`);let je=Bn({...D,...i,debug:L,verbose:le}),O=In({...D,...n,debug:V,verbose:xe}),B=Nn({...D,...a,debug:ne,verbose:gt}),z=Mn({...D,...o,debug:Ze,verbose:Ue,appUrl:f,isDev:m}),Y=Fn({...D,...c,debug:Ce,verbose:M}),pt=zn({...D,...u,debug:ze,verbose:qe});return{routeHandler:Ge,themeHandler:je,i18nHandler:O,assetHandler:B,seoHandler:z,pwaHandler:Y,serverShimHandler:pt}}function qn(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 iu=["public/route-manifest.json","public/theme-manifest.json","public/i18n-manifest.json","public/asset-manifest.json","public/seo-manifest.json","public/pwa-manifest.json"],nu="dndev-config-",Gn=".dndev-build";function au(t){if(!t)return!1;let e=J.getInstance(),r=e.resolveAppPath(Gn),s=p.env.DNDEV_BUILD_ID;try{return(e.readSync(r,{format:"text"})||"").trim()===s}catch{return!1}}function ou(t){if(!t)return;let e=J.getInstance(),r=e.resolveAppPath(Gn),s=p.env.DNDEV_BUILD_ID;try{e.writeSync(r,s)}catch{}}function Wr(t,e){if(!t)return;let r=J.getInstance();for(let i of iu){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(nu)&&n.endsWith(".js"))try{let a=r.resolvePath(n,s);r.removeSync(a),e.debug(`Cleaned: src/config/${n}`)}catch{}}catch{}}async function Vr({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 _=o.getAppRoot();if(!_||_===u)throw new Error("App root not set before discovery. Ensure resolveAppRoot() is called before runDiscoveries().")}if(au(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(_){throw a.error(`\u274C Route generation failed: ${_.message}`),_.stack&&a.error(`Stack: ${_.stack}`),_}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:_,handler:L}of m)try{await L.generateFiles()}catch(V){a.debug(`${_} generation failed: ${V.message}`)}let v=Date.now()-f;a.verbose?.(`\u2705 All discoveries completed in ${v}ms - Next.js can now compile`),ou(c)}async function Hn(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 Wn({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,_,L)=>e.includes(_)?L(null,"commonjs "+_):typeof m=="function"?m(v,_,L):L()}return t?t(n,a):n}}function Vn({originalRewrites:t,handlers:e,logger:r}){return async function(){try{let s=t?await t():[],n=e.filter(o=>o?.getAPIRewrites).map(o=>o.getAPIRewrites()).reduce((o,c)=>(c?.beforeFiles&&o.beforeFiles.push(...c.beforeFiles),c?.afterFiles&&o.afterFiles.push(...c.afterFiles),c?.fallback&&o.fallback.push(...c.fallback),o),{beforeFiles:[],afterFiles:[],fallback:[]}),a={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]};return a.beforeFiles.length===0&&a.afterFiles.length===0&&a.fallback.length===0?null:a}catch(s){return r.error(`Next.js config failed to merge rewrites: ${s.message}`),r.error(`Stack: ${s.stack||"No stack trace available"}`),null}}}function Xn({routeResult:t,themeResult:e,i18nResult:r,assetResult:s,seoResult:i,pwaResult:n,serverShimResult:a,restNextConfig:o,discoveredPackages:c,webpackConfig:u,rewritesConfig:f,missingOptionalDeps:m,env:v,logger:_}){let L=o?.output==="export";return{transpilePackages:c,...o?.serverExternalPackages||o?.serverComponentsExternalPackages?{serverExternalPackages:(o?.serverExternalPackages||o?.serverComponentsExternalPackages||[]).filter(ne=>!ne.startsWith("@donotdev/"))}:{},...Ae(o)?o:(_.warn("restNextConfig is not a plain object:",o),{}),...p.env.NODE_ENV==="development"&&{devIndicators:{position:"bottom-right"},onDemandEntries:{maxInactiveAge:60*1e3,pagesBufferLength:5}},...Ae(t)?t:(_.error(`Route handler config invalid (got ${typeof t}):`,t),{}),...Ae(e)?e:(_.error(`Theme handler config invalid (got ${typeof e}):`,e),{}),...Ae(r)?r:(_.error(`I18n handler config invalid (got ${typeof r}):`,r),{}),...Ae(s)?s:(_.error(`Asset handler config invalid (got ${typeof s}):`,s),{}),...Ae(i)?i:(_.error(`SEO handler config invalid (got ${typeof i}):`,i),{}),...Ae(n)?n:(_.error(`PWA handler config invalid (got ${typeof n}):`,n),{}),...Ae(a)?a:(_.warn("serverShimConfig returned non-object:",a),{}),webpack:u,...L?{}:{rewrites:async()=>await f()||void 0},env:v,...p.env.NODE_ENV==="production"&&{logging:{fetches:{fullUrl:!1}}}}}function lu(t={}){let{port:e,...r}=t;if(e&&p.env.NODE_ENV!=="production"&&(p.env.PORT=String(e)),!p.env.DNDEV_BUILD_ID){let $e=p.env.CI==="true";p.env.DNDEV_BUILD_ID=$e?`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=rs(m),_=ss(v);if(!_)throw new Error("normalizeOptions returned undefined");let{generateManifest:L,debug:V,verbose:ne,mode:Ze,isDev:Ce,routeOptions:ze,themeOptions:Be,i18nOptions:le,assetOptions:xe,pwaOptions:gt,seoOptions:Ue,serverShimOptions:M,nextConfigOptions:qe}=_,D=pe("next-config",V,ne),{appRoot:Ge,appRootSet:je}=cs({logger:D,debug:V}),O=!1,B=!1,{installed:z}=cr(p.cwd()),Y=Object.values(Qr.packageNames),pt=Y.filter($e=>!z.includes($e)),er=Y.filter($e=>z.includes($e)),mt=p.env.DNDEV_BUILD_ID,tr=ze?.routingMode||"app";D.info(`
555
- \u{1F3D7}\uFE0F DnDev Framework - Building for ${Ze}${mt?` [build:${mt}]`:""}`),D.info(` Platform: Next.js | Routing: ${tr}
556
- `);let kt=o?.url;if(Ce){let $e=p.env.PORT||3e3;p.env.NEXT_PUBLIC_APP_URL=`http://localhost:${$e}`,V&&(D.debug(`NEXT_PUBLIC_APP_URL: ${p.env.NEXT_PUBLIC_APP_URL}`),e&&D.debug(`Port configured: ${$e} (set PORT env var)`))}else kt?(p.env.NEXT_PUBLIC_APP_URL=kt,V&&D.debug(`NEXT_PUBLIC_APP_URL: ${kt}`)):D.warn("NEXT_PUBLIC_APP_URL not found in appConfig.app.url");let Re=Un({debug:V,verbose:ne,generateManifest:L,routeOptions:ze,themeOptions:Be,i18nOptions:le,assetOptions:xe,seoOptions:Ue,pwaOptions:gt,serverShimOptions:M,appUrl:kt,isDev:Ce,logger:D}),He=qn(Re,D);return async function(rr={}){let bt=J.getInstance(),St=je?ls():[];V&&St.length>0&&D.debug(`Discovered ${St.length} packages: ${St.join(", ")}`);let{missing:sr}=cr(bt.getAppRoot());V&&sr.length>0&&D.debug(`Missing optional deps (will alias to empty): ${sr.join(", ")}`);let Xr=bt.getAppRoot();if(je&&!O){let ir=bt.resolveAppPath(".dndev-build"),nr=p.env.DNDEV_BUILD_ID;try{bt.readSync(ir,{format:"text"})?.trim()===nr?(D.debug("Discoveries already completed by another worker, skipping"),O=!0):(Wr(Xr,D),await Vr(Re,D),O=!0)}catch{Wr(Xr,D),await Vr(Re,D),O=!0}}let We=typeof rr=="object"&&rr!==null?rr:{},{webpack:Kn,rewrites:Yn,...Qn}=We;je&&!B&&(B=await Hn(Re.assetHandler,D,B));let Zn=He.routeConfig(We),ea=He.themeConfig(We),ta=He.i18nConfig(We),ra=He.assetConfig(We),sa=He.seoConfig(We),ia=He.pwaConfig(We),na=He.serverShimConfig(),aa=Wn({originalWebpack:Kn,unusedFeaturePackages:pt,usedFeaturePackages:er,logger:D,debug:V}),oa=Vn({originalRewrites:Yn,handlers:[Re.routeHandler,Re.themeHandler,Re.i18nHandler,Re.assetHandler,Re.pwaHandler],logger:D}),la={_DNDEV_CONFIG_:JSON.stringify({platform:"nextjs",mode:p.env.NODE_ENV||"development",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}:{}},ca=Xn({routeResult:Zn,themeResult:ea,i18nResult:ta,assetResult:ra,seoResult:sa,pwaResult:ia,serverShimResult:na,restNextConfig:Qn,discoveredPackages:St,webpackConfig:aa,rewritesConfig:oa,missingOptionalDeps:sr,env:la,logger:D});if(D.debug("Next.js config generated"),je){let ir=o?.name||"app",nr=bt.getAppRoot();D.info(`Name: ${ir}`),D.info(`URL: ${p.env.NEXT_PUBLIC_APP_URL||"http://localhost:3000"}`),D.info("\u{1F527} Features: auto-detected"),D.info(`App root (final): ${nr}`)}return ca}}var Jn=lu;export{Jn as default,Jn as defineNextConfig};
554
+ `}};function Wn(t={}){return new Wr(t)}function Vn({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 _=s.debug??t,L=i.debug??t,V=n.debug??t,oe=a.debug??t,ze=o.debug??t,fe=c.debug??t,Be=u.debug??t,Ue=s.verbose??e,le=i.verbose??e,Re=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:qn({...D,...s,debug:_,verbose:Ue});t&&v.debug(`Route handler created: ${He?"enabled":"disabled"} (debug: ${_})`);let je=Wn({...D,...i,debug:L,verbose:le}),O=Tn({...D,...n,debug:V,verbose:Re}),B=Dn({...D,...a,debug:oe,verbose:gt}),z=Gn({...D,...o,debug:ze,verbose:qe,appUrl:f,isDev:m}),Y=Ln({...D,...c,debug:fe,verbose:M}),pt=Hn({...D,...u,debug:Be,verbose:Ge});return{routeHandler:He,themeHandler:je,i18nHandler:O,assetHandler:B,seoHandler:z,pwaHandler:Y,serverShimHandler:pt}}function Xn(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();Q();import{readFileSync as ru}from"node:fs";import{createRequire as su}from"node:module";import{join as iu}from"node:path";var nu=su(import.meta.url);function au(t){if(!t)return[];try{let e=iu(t,"package.json"),r=JSON.parse(ru(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 ou(t){let e=_t.optionalFeatures||[],r=au(t);return[...new Set([...e,...r])]}function Vr(t){let e=ou(t),r=[],s=[];for(let i of e)try{nu.resolve(i,{paths:[t||p.cwd()]}),s.push(i)}catch{r.push(i)}return{missing:r,installed:s}}function lu(t={}){let{port:e,...r}=t;if(e&&p.env.NODE_ENV!=="production"&&(p.env.PORT=String(e)),!p.env.DNDEV_BUILD_ID){let ke=p.env.CI==="true";p.env.DNDEV_BUILD_ID=ke?`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=ds(m),_=gs(v);if(!_)throw new Error("normalizeOptions returned undefined");let{generateManifest:L,debug:V,verbose:oe,mode:ze,isDev:fe,routeOptions:Be,themeOptions:Ue,i18nOptions:le,assetOptions:Re,pwaOptions:gt,seoOptions:qe,serverShimOptions:M,nextConfigOptions:Ge}=_,D=me("next-config",V,oe),{appRoot:He,appRootSet:je}=ns({logger:D,debug:V}),O=!1,B=!1,{installed:z}=Vr(p.cwd()),Y=Object.values(Qr.packageNames),pt=Y.filter(ke=>!z.includes(ke)),er=Y.filter(ke=>z.includes(ke)),mt=p.env.DNDEV_BUILD_ID,tr=Be?.routingMode||"app";D.info(`
555
+ \u{1F3D7}\uFE0F DnDev Framework - Building for ${ze}${mt?` [build:${mt}]`:""}`),D.info(` Platform: Next.js | Routing: ${tr}
556
+ `);let kt=o?.url;if(fe){let ke=p.env.PORT||3e3;p.env.NEXT_PUBLIC_APP_URL=`http://localhost:${ke}`,V&&(D.debug(`NEXT_PUBLIC_APP_URL: ${p.env.NEXT_PUBLIC_APP_URL}`),e&&D.debug(`Port configured: ${ke} (set PORT env var)`))}else kt?(p.env.NEXT_PUBLIC_APP_URL=kt,V&&D.debug(`NEXT_PUBLIC_APP_URL: ${kt}`)):D.warn("NEXT_PUBLIC_APP_URL not found in appConfig.app.url");let $e=Vn({debug:V,verbose:oe,generateManifest:L,routeOptions:Be,themeOptions:Ue,i18nOptions:le,assetOptions:Re,seoOptions:qe,pwaOptions:gt,serverShimOptions:M,appUrl:kt,isDev:fe,logger:D}),We=Xn($e,D);return async function(rr={}){let bt=J.getInstance(),St=je?as():[];V&&St.length>0&&D.debug(`Discovered ${St.length} packages: ${St.join(", ")}`);let{missing:sr}=Vr(bt.getAppRoot());V&&sr.length>0&&D.debug(`Missing optional deps (will alias to empty): ${sr.join(", ")}`);let Xr=bt.getAppRoot();if(je&&!O){let ir=bt.resolveAppPath(".dndev-build"),nr=p.env.DNDEV_BUILD_ID;try{bt.readSync(ir,{format:"text"})?.trim()===nr?(D.debug("Discoveries already completed by another worker, skipping"),O=!0):(cr(Xr,D),await hr($e,D),O=!0)}catch{cr(Xr,D),await hr($e,D),O=!0}}let Ve=typeof rr=="object"&&rr!==null?rr:{},{webpack:Kn,rewrites:Yn,...Qn}=Ve;je&&!B&&(B=await us($e.assetHandler,D,B));let Zn=We.routeConfig(Ve),ea=We.themeConfig(Ve),ta=We.i18nConfig(Ve),ra=We.assetConfig(Ve),sa=We.seoConfig(Ve),ia=We.pwaConfig(Ve),na=We.serverShimConfig(),aa=os({originalWebpack:Kn,unusedFeaturePackages:pt,usedFeaturePackages:er,logger:D,debug:V}),oa=ls({originalRewrites:Yn,handlers:[$e.routeHandler,$e.themeHandler,$e.i18nHandler,$e.assetHandler,$e.pwaHandler],logger:D}),la={_DNDEV_CONFIG_:JSON.stringify({platform:"nextjs",mode:p.env.NODE_ENV||"development",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}:{}},ca=cs({routeResult:Zn,themeResult:ea,i18nResult:ta,assetResult:ra,seoResult:sa,pwaResult:ia,serverShimResult:na,restNextConfig:Qn,discoveredPackages:St,webpackConfig:aa,rewritesConfig:oa,missingOptionalDeps:sr,env:la,logger:D});if(D.debug("Next.js config generated"),je){let ir=o?.name||"app",nr=bt.getAppRoot();D.info(`Name: ${ir}`),D.info(`URL: ${p.env.NEXT_PUBLIC_APP_URL||"http://localhost:3000"}`),D.info("\u{1F527} Features: auto-detected"),D.info(`App root (final): ${nr}`)}return ca}}var Jn=lu;export{Jn as default,Jn as defineNextConfig};
557
557
  /*! Bundled license information:
558
558
 
559
559
  sharp/lib/is.js: