UNPKG

@netlify/framework-info

Version:

Framework detection utility

2 lines 172 kB
var Df=Object.defineProperty;var Af=(H,K,Y)=>K in H?Df(H,K,{enumerable:!0,configurable:!0,writable:!0,value:Y}):H[K]=Y;var qn=(H,K,Y)=>(Af(H,typeof K!="symbol"?K+"":K,Y),Y),Bo=(H,K,Y)=>{if(!K.has(H))throw TypeError("Cannot "+Y)};var De=(H,K,Y)=>(Bo(H,K,"read from private field"),Y?Y.call(H):K.get(H)),Yt=(H,K,Y)=>{if(K.has(H))throw TypeError("Cannot add the same private member more than once");K instanceof WeakSet?K.add(H):K.set(H,Y)},Te=(H,K,Y,He)=>(Bo(H,K,"write to private field"),He?He.call(H,Y):K.set(H,Y),Y);var Un=(H,K,Y,He)=>({set _(Qt){Te(H,K,Qt,Y)},get _(){return De(H,K,He)}});(function(H,K){typeof exports=="object"&&typeof module<"u"?K(exports):typeof define=="function"&&define.amd?define(["exports"],K):(H=typeof globalThis<"u"?globalThis:H||self,K(H.frameworkInfo={}))})(this,function(H){var Ee,Ue,ze;"use strict";async function K(e,t,{concurrency:r=Number.POSITIVE_INFINITY,stopOnError:n=!0,signal:s}={}){return new Promise((o,a)=>{if(e[Symbol.iterator]===void 0&&e[Symbol.asyncIterator]===void 0)throw new TypeError(`Expected \`input\` to be either an \`Iterable\` or \`AsyncIterable\`, got (${typeof e})`);if(typeof t!="function")throw new TypeError("Mapper function is required");if(!(Number.isSafeInteger(r)&&r>=1||r===Number.POSITIVE_INFINITY))throw new TypeError(`Expected \`concurrency\` to be an integer from 1 and up or \`Infinity\`, got \`${r}\` (${typeof r})`);const u=[],c=[],i=new Map;let d=!1,p=!1,b=!1,$=0,g=0;const E=e[Symbol.iterator]===void 0?e[Symbol.asyncIterator]():e[Symbol.iterator](),v=()=>{k(s.reason)},m=()=>{s==null||s.removeEventListener("abort",v)},_=R=>{o(R),m()},k=R=>{d=!0,p=!0,a(R),m()};s&&(s.aborted&&k(s.reason),s.addEventListener("abort",v,{once:!0}));const O=async()=>{if(p)return;const R=await E.next(),G=g;if(g++,R.done){if(b=!0,$===0&&!p){if(!n&&c.length>0){k(new AggregateError(c));return}if(p=!0,i.size===0){_(u);return}const X=[];for(const[ee,ue]of u.entries())i.get(ee)!==Y&&X.push(ue);_(X)}return}$++,(async()=>{try{const X=await R.value;if(p)return;const ee=await t(X,G);ee===Y&&i.set(G,ee),u[G]=ee,$--,await O()}catch(X){if(n)k(X);else{c.push(X),$--;try{await O()}catch(ee){k(ee)}}}})()};(async()=>{for(let R=0;R<r;R++){try{await O()}catch(G){k(G);break}if(b||d)break}})()})}const Y=Symbol("skip");async function He(e,t,r){return(await K(e,(s,o)=>Promise.all([t(s,o),s]),r)).filter(s=>!!s[0]).map(s=>s[1])}class Qt{constructor(t){qn(this,"value");qn(this,"next");this.value=t}}class Yo{constructor(){Yt(this,Ee,void 0);Yt(this,Ue,void 0);Yt(this,ze,void 0);this.clear()}enqueue(t){const r=new Qt(t);De(this,Ee)?(De(this,Ue).next=r,Te(this,Ue,r)):(Te(this,Ee,r),Te(this,Ue,r)),Un(this,ze)._++}dequeue(){const t=De(this,Ee);if(t)return Te(this,Ee,De(this,Ee).next),Un(this,ze)._--,t.value}clear(){Te(this,Ee,void 0),Te(this,Ue,void 0),Te(this,ze,0)}get size(){return De(this,ze)}*[Symbol.iterator](){let t=De(this,Ee);for(;t;)yield t.value,t=t.next}}Ee=new WeakMap,Ue=new WeakMap,ze=new WeakMap;function zn(e){if(!((Number.isInteger(e)||e===Number.POSITIVE_INFINITY)&&e>0))throw new TypeError("Expected `concurrency` to be a number from 1 and up");const t=new Yo;let r=0;const n=()=>{r--,t.size>0&&t.dequeue()()},s=async(u,c,i)=>{r++;const d=(async()=>u(...i))();c(d);try{await d}catch{}n()},o=(u,c,i)=>{t.enqueue(s.bind(void 0,u,c,i)),(async()=>(await Promise.resolve(),r<e&&t.size>0&&t.dequeue()()))()},a=(u,...c)=>new Promise(i=>{o(u,i,c)});return Object.defineProperties(a,{activeCount:{get:()=>r},pendingCount:{get:()=>t.size},clearQueue:{value:()=>{t.clear()}}}),a}class Gn extends Error{constructor(t){super(),this.value=t}}const Qo=async(e,t)=>t(await e),Zo=async e=>{const t=await Promise.all(e);if(t[1]===!0)throw new Gn(t[0]);return!1};async function ea(e,t,{concurrency:r=Number.POSITIVE_INFINITY,preserveOrder:n=!0}={}){const s=zn(r),o=[...e].map(u=>[u,s(Qo,u,t)]),a=zn(n?1:Number.POSITIVE_INFINITY);try{await Promise.all(o.map(u=>a(Zo,u)))}catch(u){if(u instanceof Gn)return u.value;throw u}}const Hn=async function({detect:{npmDependencies:e,excludedNpmDependencies:t,configFiles:r}},{pathExists:n,npmDependencies:s}){return ta(e,s)&&ra(t,s)&&await sa(r,n)},ta=function(e,t){return e.length===0||e.some(r=>t.includes(r))},ra=function(e,t){return e.every(r=>!t.includes(r))},na=async(e,t)=>!!await ea(e,n=>t(n)),sa=async function(e,t){return e.length===0||await na(e,t)},oa=function({frameworkDevCommand:e,scripts:t,runScriptCommand:r}){if(e===void 0)return[];const n=aa(t,e).map(s=>`${r} ${s}`);return n.length!==0?n:[e]},aa=function(e,t){const r=ia(e,t);return r.length!==0?r:Object.keys(e).filter(s=>ca(s,e[s])).sort(Kn)},xn=e=>e===-1?Number.MAX_SAFE_INTEGER:e,Kn=(e,t)=>{const r=er.findIndex(s=>Zt(e,s)),n=er.findIndex(s=>Zt(t,s));return xn(r)-xn(n)},ia=function(e,t){return Object.entries(e).filter(([,r])=>r.includes(t)).map(([r])=>r).sort(Kn)},ca=function(e,t){return er.some(r=>Zt(e,r)&&!la(t))},Zt=function(e,t){return e===t||e.endsWith(`:${t}`)},er=["dev","serve","develop","start","run","build","web"],la=function(e){return ua.some(t=>e.includes(t))},ua=["netlify dev"],tr=[{id:"astro",name:"Astro",category:"static_site_generator",detect:{npmDependencies:["astro"],excludedNpmDependencies:[],configFiles:["astro.config.mjs"]},dev:{command:"astro dev",port:3e3,pollingStrategies:[{name:"TCP"},{name:"HTTP"}]},build:{command:"astro build",directory:"dist"},staticAssetsDirectory:"public",env:{},logo:{default:"https://framework-info.netlify.app/logos/astro/light.svg",light:"https://framework-info.netlify.app/logos/astro/light.svg",dark:"https://framework-info.netlify.app/logos/astro/dark.svg"},plugins:[]},{id:"docusaurus",name:"Docusaurus",category:"static_site_generator",detect:{npmDependencies:["docusaurus"],excludedNpmDependencies:[],configFiles:["siteConfig.js"]},dev:{command:"docusaurus-start",port:3e3,pollingStrategies:[{name:"TCP"},{name:"HTTP"}]},build:{command:"docusaurus-build",directory:"build/<project-name>"},staticAssetsDirectory:"static",logo:{default:"https://framework-info.netlify.app/logos/docusaurus/default.svg",light:"https://framework-info.netlify.app/logos/docusaurus/default.svg",dark:"https://framework-info.netlify.app/logos/docusaurus/default.svg"},env:{BROWSER:"none"},plugins:[]},{id:"docusaurus-v2",name:"Docusaurus 2",category:"static_site_generator",detect:{npmDependencies:["@docusaurus/core"],excludedNpmDependencies:[],configFiles:["docusaurus.config.js"]},dev:{command:"docusaurus start",port:3e3,pollingStrategies:[{name:"TCP"},{name:"HTTP"}]},build:{command:"docusaurus build",directory:"build"},staticAssetsDirectory:"static",logo:{default:"https://framework-info.netlify.app/logos/docusaurus/default.svg",light:"https://framework-info.netlify.app/logos/docusaurus/default.svg",dark:"https://framework-info.netlify.app/logos/docusaurus/default.svg"},env:{BROWSER:"none"},plugins:[]},{id:"eleventy",name:"Eleventy",category:"static_site_generator",detect:{npmDependencies:["@11ty/eleventy"],excludedNpmDependencies:[],configFiles:[".eleventy.js","eleventy.config.js","eleventy.config.cjs"]},dev:{command:"eleventy --serve",port:8080,pollingStrategies:[{name:"TCP"},{name:"HTTP"}]},build:{command:"eleventy",directory:"_site"},logo:{default:"https://framework-info.netlify.app/logos/eleventy/default.svg",light:"https://framework-info.netlify.app/logos/eleventy/default.svg",dark:"https://framework-info.netlify.app/logos/eleventy/default.svg"},env:{},plugins:[]},{id:"gatsby",name:"Gatsby",category:"static_site_generator",detect:{npmDependencies:["gatsby"],excludedNpmDependencies:[],configFiles:["gatsby-config.js","gatsby-config.ts"]},dev:{command:"gatsby develop",port:8e3,pollingStrategies:[{name:"TCP"},{name:"HTTP"}]},build:{command:"gatsby build",directory:"public"},staticAssetsDirectory:"static",env:{GATSBY_LOGGER:"yurnalist",GATSBY_PRECOMPILE_DEVELOP_FUNCTIONS:"true",AWS_LAMBDA_JS_RUNTIME:"nodejs14.x",NODE_VERSION:"14"},logo:{default:"https://framework-info.netlify.app/logos/gatsby/default.svg",light:"https://framework-info.netlify.app/logos/gatsby/light.svg",dark:"https://framework-info.netlify.app/logos/gatsby/dark.svg"},plugins:[{packageName:"@netlify/plugin-gatsby",condition:{minNodeVersion:"12.13.0"}}]},{id:"gridsome",name:"Gridsome",category:"static_site_generator",detect:{npmDependencies:["gridsome"],excludedNpmDependencies:[],configFiles:["gridsome.config.js"]},dev:{command:"gridsome develop",port:8080,pollingStrategies:[{name:"TCP"},{name:"HTTP"}]},build:{command:"gridsome build",directory:"dist"},logo:{default:"https://framework-info.netlify.app/logos/gridsome/default.svg",light:"https://framework-info.netlify.app/logos/gridsome/light.svg",dark:"https://framework-info.netlify.app/logos/gridsome/dark.svg"},env:{},plugins:[]},{id:"hexo",name:"Hexo",category:"static_site_generator",detect:{npmDependencies:["hexo"],excludedNpmDependencies:[],configFiles:["_config.yml"]},dev:{command:"hexo server",port:4e3,pollingStrategies:[{name:"TCP"},{name:"HTTP"}]},build:{command:"hexo generate",directory:"public"},logo:{default:"https://framework-info.netlify.app/logos/hexo/default.svg",light:"https://framework-info.netlify.app/logos/hexo/light.svg",dark:"https://framework-info.netlify.app/logos/hexo/dark.svg"},env:{},plugins:[]},{id:"hugo",name:"Hugo",category:"static_site_generator",detect:{npmDependencies:[],excludedNpmDependencies:[],configFiles:["config.json","config.toml","config.yaml","hugo.toml"]},dev:{command:"hugo server -w",port:1313,pollingStrategies:[{name:"TCP"},{name:"HTTP"}]},build:{command:"hugo",directory:"public"},logo:{default:"https://framework-info.netlify.app/logos/hugo/default.svg",light:"https://framework-info.netlify.app/logos/hugo/default.svg",dark:"https://framework-info.netlify.app/logos/hugo/default.svg"},env:{},plugins:[]},{id:"hydrogen",name:"Hydrogen",category:"static_site_generator",detect:{npmDependencies:["@shopify/hydrogen"],excludedNpmDependencies:[],configFiles:[]},dev:{command:"vite",port:3e3,pollingStrategies:[{name:"TCP"}]},build:{command:"npm run build",directory:"dist/client"},logo:{default:"https://framework-info.netlify.app/logos/hydrogen/default.svg",light:"https://framework-info.netlify.app/logos/hydrogen/default.svg",dark:"https://framework-info.netlify.app/logos/hydrogen/default.svg"},env:{},plugins:[]},{id:"jekyll",name:"Jekyll",category:"static_site_generator",detect:{npmDependencies:[],excludedNpmDependencies:[],configFiles:["_config.yml","_config.yaml","_config.toml"]},dev:{command:"bundle exec jekyll serve -w",port:4e3,pollingStrategies:[{name:"TCP"},{name:"HTTP"}]},build:{command:"bundle exec jekyll build",directory:"_site"},logo:{default:"https://framework-info.netlify.app/logos/jekyll/dark.svg",light:"https://framework-info.netlify.app/logos/jekyll/light.svg",dark:"https://framework-info.netlify.app/logos/jekyll/dark.svg"},env:{},plugins:[]},{id:"middleman",name:"Middleman",category:"static_site_generator",detect:{npmDependencies:[],excludedNpmDependencies:[],configFiles:["config.rb"]},dev:{command:"bundle exec middleman server",port:4567,pollingStrategies:[{name:"TCP"},{name:"HTTP"}]},build:{command:"bundle exec middleman build",directory:"build"},logo:{default:"https://framework-info.netlify.app/logos/middleman/default.svg",light:"https://framework-info.netlify.app/logos/middleman/default.svg",dark:"https://framework-info.netlify.app/logos/middleman/default.svg"},env:{},plugins:[]},{id:"next-nx",name:"Next.js with Nx",category:"static_site_generator",detect:{npmDependencies:["@nrwl/next"],excludedNpmDependencies:[],configFiles:[]},dev:{command:"nx serve",port:4200,pollingStrategies:[{name:"TCP"},{name:"HTTP"}]},build:{command:"nx build",directory:"dist/apps/<app name>/.next"},env:{},plugins:[{packageName:"@netlify/plugin-nextjs",condition:{minNodeVersion:"10.13.0"}}]},{id:"next",name:"Next.js",category:"static_site_generator",detect:{npmDependencies:["next"],excludedNpmDependencies:["@nrwl/next"],configFiles:[]},dev:{command:"next",port:3e3,pollingStrategies:[{name:"TCP"}]},build:{command:"next build",directory:".next"},logo:{default:"https://framework-info.netlify.app/logos/nextjs/light.svg",light:"https://framework-info.netlify.app/logos/nextjs/light.svg",dark:"https://framework-info.netlify.app/logos/nextjs/dark.svg"},env:{},plugins:[{packageName:"@netlify/plugin-nextjs",condition:{minNodeVersion:"10.13.0"}}]},{id:"blitz",name:"Blitz.js",category:"static_site_generator",detect:{npmDependencies:["blitz"],excludedNpmDependencies:[],configFiles:[]},dev:{command:"blitz dev",port:3e3,pollingStrategies:[{name:"TCP"}]},build:{command:"blitz build",directory:"out"},logo:{default:"https://framework-info.netlify.app/logos/blitz/light.svg",light:"https://framework-info.netlify.app/logos/blitz/light.svg",dark:"https://framework-info.netlify.app/logos/blitz/dark.svg"},env:{},plugins:[]},{id:"nuxt",name:"Nuxt 2",category:"static_site_generator",detect:{npmDependencies:["nuxt","nuxt-edge"],excludedNpmDependencies:[],configFiles:[]},dev:{command:"nuxt",port:3e3,pollingStrategies:[{name:"TCP"},{name:"HTTP"}]},build:{command:"nuxt generate",directory:"dist"},logo:{default:"https://framework-info.netlify.app/logos/nuxt/default.svg",light:"https://framework-info.netlify.app/logos/nuxt/light.svg",dark:"https://framework-info.netlify.app/logos/nuxt/dark.svg"},env:{},plugins:[]},{id:"nuxt3",name:"Nuxt 3",category:"static_site_generator",detect:{npmDependencies:["nuxt3"],excludedNpmDependencies:[],configFiles:[]},dev:{command:"npm run dev",port:3e3,pollingStrategies:[{name:"TCP"},{name:"HTTP"}]},build:{command:"npm run build",directory:"dist"},env:{AWS_LAMBDA_JS_RUNTIME:"nodejs14.x",NODE_VERSION:"14"},logo:{default:"https://framework-info.netlify.app/logos/nuxt/default.svg",light:"https://framework-info.netlify.app/logos/nuxt/light.svg",dark:"https://framework-info.netlify.app/logos/nuxt/dark.svg"},plugins:[]},{id:"phenomic",name:"Phenomic",category:"static_site_generator",detect:{npmDependencies:["@phenomic/core"],excludedNpmDependencies:[],configFiles:[]},dev:{command:"phenomic start",port:3333,pollingStrategies:[{name:"TCP"},{name:"HTTP"}]},build:{command:"phenomic build",directory:"public"},logo:{default:"https://framework-info.netlify.app/logos/phenomic/default.svg",light:"https://framework-info.netlify.app/logos/phenomic/default.svg",dark:"https://framework-info.netlify.app/logos/phenomic/default.svg"},env:{},plugins:[]},{id:"qwik",name:"Qwik",category:"static_site_generator",detect:{npmDependencies:["@builder.io/qwik"],excludedNpmDependencies:[],configFiles:[]},dev:{command:"vite",port:5173,pollingStrategies:[{name:"TCP"}]},build:{command:"npm run build",directory:"dist"},logo:{default:"https://framework-info.netlify.app/logos/qwik/default.svg",light:"https://framework-info.netlify.app/logos/qwik/default.svg",dark:"https://framework-info.netlify.app/logos/qwik/default.svg"},env:{},plugins:[]},{id:"react-static",name:"React Static",category:"static_site_generator",detect:{npmDependencies:["react-static"],excludedNpmDependencies:[],configFiles:["static.config.js"]},dev:{command:"react-static start",port:3e3,pollingStrategies:[{name:"TCP"},{name:"HTTP"}]},build:{command:"react-static build",directory:"dist"},logo:{default:"https://framework-info.netlify.app/logos/react-static/default.png",light:"https://framework-info.netlify.app/logos/react-static/default.png",dark:"https://framework-info.netlify.app/logos/react-static/default.png"},env:{},plugins:[]},{id:"redwoodjs",name:"RedwoodJS",category:"static_site_generator",detect:{npmDependencies:["@redwoodjs/core"],excludedNpmDependencies:[],configFiles:["redwood.toml"]},dev:{command:"yarn rw dev",port:8910,pollingStrategies:[{name:"TCP"}]},build:{command:"rw deploy netlify",directory:"web/dist"},staticAssetsDirectory:"public",logo:{default:"https://framework-info.netlify.app/logos/redwoodjs/default.svg",light:"https://framework-info.netlify.app/logos/redwoodjs/default.svg",dark:"https://framework-info.netlify.app/logos/redwoodjs/default.svg"},env:{},plugins:[]},{id:"remix",name:"Remix",category:"static_site_generator",detect:{npmDependencies:["remix","@remix-run/netlify","@remix-run/netlify-edge"],excludedNpmDependencies:[],configFiles:["remix.config.js"]},dev:{command:"remix watch"},build:{command:"remix build",directory:"public"},logo:{default:"https://framework-info.netlify.app/logos/remix/default.svg",light:"https://framework-info.netlify.app/logos/remix/light.svg",dark:"https://framework-info.netlify.app/logos/remix/dark.svg"},env:{},plugins:[]},{id:"solid-js",name:"SolidJS",category:"static_site_generator",detect:{npmDependencies:["solid-js"],excludedNpmDependencies:["solid-start"],configFiles:[]},dev:{command:"npm run dev",port:3e3,pollingStrategies:[{name:"TCP"}]},build:{command:"npm run build",directory:"netlify"},logo:{default:"https://framework-info.netlify.app/logos/solid-js/default.svg",light:"https://framework-info.netlify.app/logos/solid-js/default.svg",dark:"https://framework-info.netlify.app/logos/solid-js/dark.svg"},env:{},plugins:[]},{id:"solid-start",name:"Solid Start",category:"static_site_generator",detect:{npmDependencies:["solid-start"],excludedNpmDependencies:[],configFiles:[]},dev:{command:"solid-start dev",port:3e3,pollingStrategies:[{name:"TCP"}]},build:{command:"solid-start build",directory:"netlify"},logo:{default:"https://framework-info.netlify.app/logos/solid-start/default.svg",light:"https://framework-info.netlify.app/logos/solid-start/default.svg",dark:"https://framework-info.netlify.app/logos/solid-start/default.svg"},env:{},plugins:[]},{id:"stencil",name:"Stencil",category:"static_site_generator",detect:{npmDependencies:["@stencil/core"],excludedNpmDependencies:[],configFiles:["stencil.config.ts"]},dev:{command:"stencil build --dev --watch --serve",port:3333,pollingStrategies:[{name:"TCP"},{name:"HTTP"}]},build:{command:"stencil build",directory:"www"},logo:{default:"https://framework-info.netlify.app/logos/stencil/light.svg",light:"https://framework-info.netlify.app/logos/stencil/light.svg",dark:"https://framework-info.netlify.app/logos/stencil/dark.svg"},env:{BROWSER:"none",PORT:"3000"},plugins:[]},{id:"vuepress",name:"VuePress",category:"static_site_generator",detect:{npmDependencies:["vuepress"],excludedNpmDependencies:[],configFiles:[]},dev:{command:"vuepress dev",port:8080,pollingStrategies:[{name:"TCP"},{name:"HTTP"}]},build:{command:"vuepress build",directory:".vuepress/dist"},logo:{default:"https://framework-info.netlify.app/logos/vuepress/default.svg",light:"https://framework-info.netlify.app/logos/vuepress/default.svg",dark:"https://framework-info.netlify.app/logos/vuepress/default.svg"},env:{},plugins:[]},{id:"assemble",name:"Assemble",category:"static_site_generator",detect:{npmDependencies:["assemble"],excludedNpmDependencies:[],configFiles:[]},dev:{},build:{command:"grunt build",directory:"dist"},env:{},logo:{default:"https://framework-info.netlify.app/logos/assemble/default.svg",light:"https://framework-info.netlify.app/logos/assemble/default.svg",dark:"https://framework-info.netlify.app/logos/assemble/default.svg"},plugins:[]},{id:"docpad",name:"DocPad",category:"static_site_generator",detect:{npmDependencies:["docpad"],excludedNpmDependencies:[],configFiles:[]},dev:{command:"docpad run",port:9778,pollingStrategies:[{name:"TCP"},{name:"HTTP"}]},build:{command:"docpad generate",directory:"out"},env:{},plugins:[]},{id:"harp",name:"Harp",category:"static_site_generator",detect:{npmDependencies:["harp"],excludedNpmDependencies:[],configFiles:[]},dev:{command:"harp server",port:9e3,pollingStrategies:[{name:"TCP"},{name:"HTTP"}]},build:{command:"harp compile",directory:"www"},logo:{default:"https://framework-info.netlify.app/logos/harp/default.svg",light:"https://framework-info.netlify.app/logos/harp/light.svg",dark:"https://framework-info.netlify.app/logos/harp/default.svg"},env:{},plugins:[]},{id:"metalsmith",name:"Metalsmith",category:"static_site_generator",detect:{npmDependencies:["metalsmith"],excludedNpmDependencies:[],configFiles:[]},dev:{},build:{command:"metalsmith",directory:"build"},logo:{default:"https://framework-info.netlify.app/logos/metalsmith/default.svg",light:"https://framework-info.netlify.app/logos/metalsmith/default.svg",dark:"https://framework-info.netlify.app/logos/metalsmith/default.svg"},env:{},plugins:[]},{id:"roots",name:"Roots",category:"static_site_generator",detect:{npmDependencies:["roots"],excludedNpmDependencies:[],configFiles:[]},dev:{command:"roots watch",port:1111,pollingStrategies:[{name:"TCP"},{name:"HTTP"}]},build:{command:"roots compile",directory:"public"},logo:{default:"https://framework-info.netlify.app/logos/roots/default.svg",light:"https://framework-info.netlify.app/logos/roots/default.svg",dark:"https://framework-info.netlify.app/logos/roots/default.svg"},env:{},plugins:[]},{id:"wintersmith",name:"Wintersmith",category:"static_site_generator",detect:{npmDependencies:["wintersmith"],excludedNpmDependencies:[],configFiles:["config.json"]},dev:{command:"wintersmith preview",port:8080,pollingStrategies:[{name:"TCP"},{name:"HTTP"}]},build:{command:"wintersmith build",directory:"build"},logo:{default:"https://framework-info.netlify.app/logos/wintersmith/default.svg",light:"https://framework-info.netlify.app/logos/wintersmith/default.svg",dark:"https://framework-info.netlify.app/logos/wintersmith/default.svg"},env:{},plugins:[]},{id:"cecil",name:"Cecil",category:"static_site_generator",detect:{npmDependencies:[],excludedNpmDependencies:[],configFiles:["config.yml"]},dev:{command:"cecil serve",port:8e3,pollingStrategies:[{name:"TCP"},{name:"HTTP"}]},build:{command:"cecil build",directory:"_site"},env:{},logo:{default:"https://framework-info.netlify.app/logos/cecil/default.svg",light:"https://framework-info.netlify.app/logos/cecil/default.svg",dark:"https://framework-info.netlify.app/logos/cecil/default.svg"},plugins:[]},{id:"zola",name:"Zola",category:"static_site_generator",detect:{npmDependencies:[],excludedNpmDependencies:[],configFiles:["config.toml"]},dev:{command:"zola serve",port:1111,pollingStrategies:[{name:"TCP"},{name:"HTTP"}]},build:{command:"zola build",directory:"public"},env:{},plugins:[]},{id:"angular",name:"Angular",category:"frontend_framework",detect:{npmDependencies:["@angular/cli"],excludedNpmDependencies:[],configFiles:["angular.json"]},dev:{command:"ng serve",port:4200,pollingStrategies:[{name:"TCP"},{name:"HTTP"}]},build:{command:"ng build --prod",directory:"dist/"},logo:{default:"https://framework-info.netlify.app/logos/angular/default.svg",light:"https://framework-info.netlify.app/logos/angular/default.svg",dark:"https://framework-info.netlify.app/logos/angular/default.svg"},env:{},plugins:[]},{id:"create-react-app",name:"Create React App",category:"frontend_framework",detect:{npmDependencies:["react-scripts"],excludedNpmDependencies:[],configFiles:[]},dev:{command:"react-scripts start",port:3e3,pollingStrategies:[{name:"TCP"},{name:"HTTP"}]},build:{command:"react-scripts build",directory:"build"},staticAssetsDirectory:"public",logo:{default:"https://framework-info.netlify.app/logos/create-react-app/default.svg",light:"https://framework-info.netlify.app/logos/create-react-app/default.svg",dark:"https://framework-info.netlify.app/logos/create-react-app/default.svg"},env:{BROWSER:"none",PORT:"3000"},plugins:[]},{id:"ember",name:"Ember.js",category:"frontend_framework",detect:{npmDependencies:["ember-cli"],excludedNpmDependencies:[],configFiles:["ember-cli-build.js"]},dev:{command:"ember serve",port:4200,pollingStrategies:[{name:"TCP"},{name:"HTTP"}]},build:{command:"ember build",directory:"dist"},logo:{default:"https://framework-info.netlify.app/logos/ember/default.svg",light:"https://framework-info.netlify.app/logos/ember/light.svg",dark:"https://framework-info.netlify.app/logos/ember/dark.svg"},env:{},plugins:[]},{id:"expo",name:"Expo",category:"frontend_framework",detect:{npmDependencies:["expo"],excludedNpmDependencies:[],configFiles:["app.json"]},dev:{command:"expo start --web",port:19006,pollingStrategies:[{name:"TCP"},{name:"HTTP"}]},build:{command:"expo build:web",directory:"web-build"},logo:{default:"https://framework-info.netlify.app/logos/expo/default.svg",light:"https://framework-info.netlify.app/logos/expo/light.svg",dark:"https://framework-info.netlify.app/logos/expo/dark.svg"},env:{},plugins:[]},{id:"quasar",name:"Quasar",category:"frontend_framework",detect:{npmDependencies:["@quasar/app"],excludedNpmDependencies:[],configFiles:[]},dev:{command:"quasar dev -p 8081",port:8081,pollingStrategies:[{name:"TCP"},{name:"HTTP"}]},build:{command:"quasar build",directory:"dist/spa"},logo:{default:"https://framework-info.netlify.app/logos/quasar/default.svg",light:"https://framework-info.netlify.app/logos/quasar/default.svg",dark:"https://framework-info.netlify.app/logos/quasar/default.svg"},env:{},plugins:[]},{id:"quasar-v0.17",name:"Quasar",category:"frontend_framework",detect:{npmDependencies:["quasar-cli"],excludedNpmDependencies:[],configFiles:[]},dev:{command:"quasar dev -p 8080",port:8080,pollingStrategies:[{name:"TCP"},{name:"HTTP"}]},build:{command:"quasar build",directory:".quasar"},logo:{default:"https://framework-info.netlify.app/logos/quasar/default.svg",light:"https://framework-info.netlify.app/logos/quasar/default.svg",dark:"https://framework-info.netlify.app/logos/quasar/default.svg"},env:{},plugins:[]},{id:"sapper",name:"Sapper",category:"frontend_framework",detect:{npmDependencies:["sapper"],excludedNpmDependencies:[],configFiles:[]},dev:{command:"sapper dev",port:3e3,pollingStrategies:[{name:"TCP"},{name:"HTTP"}]},build:{command:"sapper export",directory:"__sapper__/export"},logo:{default:"https://framework-info.netlify.app/logos/sapper/default.svg",light:"https://framework-info.netlify.app/logos/sapper/default.svg",dark:"https://framework-info.netlify.app/logos/sapper/default.svg"},staticAssetsDirectory:"static",env:{},plugins:[]},{id:"svelte",name:"Svelte",category:"frontend_framework",detect:{npmDependencies:["svelte"],excludedNpmDependencies:["sapper","@sveltejs/kit"],configFiles:[]},dev:{command:"npm run dev",port:5e3,pollingStrategies:[{name:"TCP"},{name:"HTTP"}]},build:{command:"npm run build",directory:"public"},logo:{default:"https://framework-info.netlify.app/logos/svelte-kit/default.svg",light:"https://framework-info.netlify.app/logos/svelte-kit/default.svg",dark:"https://framework-info.netlify.app/logos/svelte-kit/default.svg"},env:{},plugins:[]},{id:"svelte-kit",name:"SvelteKit",category:"frontend_framework",detect:{npmDependencies:["@sveltejs/kit"],excludedNpmDependencies:[],configFiles:[]},dev:{command:"vite dev",port:5173,pollingStrategies:[{name:"TCP"},{name:"HTTP"}]},build:{command:"vite build",directory:"build"},logo:{default:"https://framework-info.netlify.app/logos/svelte-kit/default.svg",light:"https://framework-info.netlify.app/logos/svelte-kit/default.svg",dark:"https://framework-info.netlify.app/logos/svelte-kit/default.svg"},staticAssetsDirectory:"static",env:{},plugins:[]},{id:"vue",name:"Vue.js",category:"frontend_framework",detect:{npmDependencies:["@vue/cli-service"],excludedNpmDependencies:[],configFiles:[]},dev:{command:"vue-cli-service serve",port:8080,pollingStrategies:[{name:"TCP"},{name:"HTTP"}]},build:{command:"vue-cli-service build",directory:"dist"},logo:{default:"https://framework-info.netlify.app/logos/vue/default.svg",light:"https://framework-info.netlify.app/logos/vue/default.svg",dark:"https://framework-info.netlify.app/logos/vue/default.svg"},env:{},plugins:[]},{id:"brunch",name:"Brunch",category:"build_tool",detect:{npmDependencies:["brunch"],excludedNpmDependencies:[],configFiles:["brunch-config.js"]},dev:{command:"brunch watch --server",port:3333,pollingStrategies:[{name:"TCP"},{name:"HTTP"}]},build:{command:"brunch build",directory:"public"},env:{},logo:{default:"https://framework-info.netlify.app/logos/brunch/default.svg",light:"https://framework-info.netlify.app/logos/brunch/default.svg",dark:"https://framework-info.netlify.app/logos/brunch/default.svg"},plugins:[]},{id:"parcel",name:"Parcel",category:"build_tool",detect:{npmDependencies:["parcel-bundler","parcel"],excludedNpmDependencies:[],configFiles:[]},dev:{command:"parcel",port:1234,pollingStrategies:[{name:"TCP"},{name:"HTTP"}]},build:{command:"parcel build",directory:"dist"},logo:{default:"https://framework-info.netlify.app/logos/parcel/default.svg",light:"https://framework-info.netlify.app/logos/parcel/default.svg",dark:"https://framework-info.netlify.app/logos/parcel/default.svg"},env:{},plugins:[]},{id:"grunt",name:"Grunt",category:"build_tool",detect:{npmDependencies:["grunt"],excludedNpmDependencies:[],configFiles:[]},dev:{},build:{command:"grunt build",directory:"dist"},logo:{default:"https://framework-info.netlify.app/logos/grunt/default.svg",light:"https://framework-info.netlify.app/logos/grunt/default.svg",dark:"https://framework-info.netlify.app/logos/grunt/default.svg"},env:{},plugins:[]},{id:"gulp",name:"gulp.js",category:"build_tool",detect:{npmDependencies:["gulp"],excludedNpmDependencies:[],configFiles:[]},dev:{},build:{command:"gulp build",directory:"dist"},logo:{default:"https://framework-info.netlify.app/logos/gulp/default.svg",light:"https://framework-info.netlify.app/logos/gulp/default.svg",dark:"https://framework-info.netlify.app/logos/gulp/default.svg"},env:{},plugins:[]},{id:"vite",name:"Vite",category:"build_tool",detect:{npmDependencies:["vite"],excludedNpmDependencies:["@shopify/hydrogen","@builder.io/qwik","solid-start","solid-js","@sveltejs/kit"],configFiles:[]},dev:{command:"vite",port:5173,pollingStrategies:[{name:"TCP"}]},build:{command:"vite build",directory:"dist"},logo:{default:"https://framework-info.netlify.app/logos/vite/default.svg",light:"https://framework-info.netlify.app/logos/vite/default.svg",dark:"https://framework-info.netlify.app/logos/vite/default.svg"},env:{},plugins:[]},{id:"wmr",name:"WMR",category:"build_tool",detect:{npmDependencies:["wmr"],excludedNpmDependencies:[],configFiles:[]},dev:{command:"wmr",port:8080,pollingStrategies:[{name:"TCP"},{name:"HTTP"}]},build:{command:"wmr build",directory:"dist"},logo:{default:"https://framework-info.netlify.app/logos/wmr/default.svg",light:"https://framework-info.netlify.app/logos/wmr/default.svg",dark:"https://framework-info.netlify.app/logos/wmr/default.svg"},env:{},plugins:[]}];function da(e,t){const r={};if(Array.isArray(t))for(const n of t){const s=Object.getOwnPropertyDescriptor(e,n);s!=null&&s.enumerable&&Object.defineProperty(r,n,s)}else for(const n of Reflect.ownKeys(e)){const s=Object.getOwnPropertyDescriptor(e,n);if(s.enumerable){const o=e[n];t(n,o,e)&&Object.defineProperty(r,n,s)}}return r}function Xn(e){if(typeof e!="object"||e===null)return!1;const t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}const fa=function(e){if(e===void 0)return{npmDependencies:[],scripts:{}};const t=pa(e),r=ma(e);return{npmDependencies:t,scripts:r}},pa=function({dependencies:e,devDependencies:t}){return[...Jn(e),...Jn(t)]},Jn=function(e){return Xn(e)?Object.keys(e):[]},ma=function({scripts:e}){return Xn(e)?da(e,ha):{}},ha=function(e,t){return typeof t=="string"};function Wn(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var rr={exports:{}},Bn={},de={},xe={},st={},U={},ot={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.regexpCode=e.getEsmExportName=e.getProperty=e.safeStringify=e.stringify=e.strConcat=e.addCodeArg=e.str=e._=e.nil=e._Code=e.Name=e.IDENTIFIER=e._CodeOrName=void 0;class t{}e._CodeOrName=t,e.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class r extends t{constructor(_){if(super(),!e.IDENTIFIER.test(_))throw new Error("CodeGen: name must be a valid identifier");this.str=_}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}e.Name=r;class n extends t{constructor(_){super(),this._items=typeof _=="string"?[_]:_}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;const _=this._items[0];return _===""||_==='""'}get str(){var _;return(_=this._str)!==null&&_!==void 0?_:this._str=this._items.reduce((k,O)=>`${k}${O}`,"")}get names(){var _;return(_=this._names)!==null&&_!==void 0?_:this._names=this._items.reduce((k,O)=>(O instanceof r&&(k[O.str]=(k[O.str]||0)+1),k),{})}}e._Code=n,e.nil=new n("");function s(m,..._){const k=[m[0]];let O=0;for(;O<_.length;)u(k,_[O]),k.push(m[++O]);return new n(k)}e._=s;const o=new n("+");function a(m,..._){const k=[$(m[0])];let O=0;for(;O<_.length;)k.push(o),u(k,_[O]),k.push(o,$(m[++O]));return c(k),new n(k)}e.str=a;function u(m,_){_ instanceof n?m.push(..._._items):_ instanceof r?m.push(_):m.push(p(_))}e.addCodeArg=u;function c(m){let _=1;for(;_<m.length-1;){if(m[_]===o){const k=i(m[_-1],m[_+1]);if(k!==void 0){m.splice(_-1,3,k);continue}m[_++]="+"}_++}}function i(m,_){if(_==='""')return m;if(m==='""')return _;if(typeof m=="string")return _ instanceof r||m[m.length-1]!=='"'?void 0:typeof _!="string"?`${m.slice(0,-1)}${_}"`:_[0]==='"'?m.slice(0,-1)+_.slice(1):void 0;if(typeof _=="string"&&_[0]==='"'&&!(m instanceof r))return`"${m}${_.slice(1)}`}function d(m,_){return _.emptyStr()?m:m.emptyStr()?_:a`${m}${_}`}e.strConcat=d;function p(m){return typeof m=="number"||typeof m=="boolean"||m===null?m:$(Array.isArray(m)?m.join(","):m)}function b(m){return new n($(m))}e.stringify=b;function $(m){return JSON.stringify(m).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}e.safeStringify=$;function g(m){return typeof m=="string"&&e.IDENTIFIER.test(m)?new n(`.${m}`):s`[${m}]`}e.getProperty=g;function E(m){if(typeof m=="string"&&e.IDENTIFIER.test(m))return new n(`${m}`);throw new Error(`CodeGen: invalid export name: ${m}, use explicit $id name mapping`)}e.getEsmExportName=E;function v(m){return new n(m.toString())}e.regexpCode=v})(ot);var nr={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ValueScope=e.ValueScopeName=e.Scope=e.varKinds=e.UsedValueState=void 0;const t=ot;class r extends Error{constructor(i){super(`CodeGen: "code" for ${i} not defined`),this.value=i.value}}var n;(function(c){c[c.Started=0]="Started",c[c.Completed=1]="Completed"})(n||(e.UsedValueState=n={})),e.varKinds={const:new t.Name("const"),let:new t.Name("let"),var:new t.Name("var")};class s{constructor({prefixes:i,parent:d}={}){this._names={},this._prefixes=i,this._parent=d}toName(i){return i instanceof t.Name?i:this.name(i)}name(i){return new t.Name(this._newName(i))}_newName(i){const d=this._names[i]||this._nameGroup(i);return`${i}${d.index++}`}_nameGroup(i){var d,p;if(!((p=(d=this._parent)===null||d===void 0?void 0:d._prefixes)===null||p===void 0)&&p.has(i)||this._prefixes&&!this._prefixes.has(i))throw new Error(`CodeGen: prefix "${i}" is not allowed in this scope`);return this._names[i]={prefix:i,index:0}}}e.Scope=s;class o extends t.Name{constructor(i,d){super(d),this.prefix=i}setValue(i,{property:d,itemIndex:p}){this.value=i,this.scopePath=(0,t._)`.${new t.Name(d)}[${p}]`}}e.ValueScopeName=o;const a=(0,t._)`\n`;class u extends s{constructor(i){super(i),this._values={},this._scope=i.scope,this.opts={...i,_n:i.lines?a:t.nil}}get(){return this._scope}name(i){return new o(i,this._newName(i))}value(i,d){var p;if(d.ref===void 0)throw new Error("CodeGen: ref must be passed in value");const b=this.toName(i),{prefix:$}=b,g=(p=d.key)!==null&&p!==void 0?p:d.ref;let E=this._values[$];if(E){const _=E.get(g);if(_)return _}else E=this._values[$]=new Map;E.set(g,b);const v=this._scope[$]||(this._scope[$]=[]),m=v.length;return v[m]=d.ref,b.setValue(d,{property:$,itemIndex:m}),b}getValue(i,d){const p=this._values[i];if(p)return p.get(d)}scopeRefs(i,d=this._values){return this._reduceValues(d,p=>{if(p.scopePath===void 0)throw new Error(`CodeGen: name "${p}" has no value`);return(0,t._)`${i}${p.scopePath}`})}scopeCode(i=this._values,d,p){return this._reduceValues(i,b=>{if(b.value===void 0)throw new Error(`CodeGen: name "${b}" has no value`);return b.value.code},d,p)}_reduceValues(i,d,p={},b){let $=t.nil;for(const g in i){const E=i[g];if(!E)continue;const v=p[g]=p[g]||new Map;E.forEach(m=>{if(v.has(m))return;v.set(m,n.Started);let _=d(m);if(_){const k=this.opts.es5?e.varKinds.var:e.varKinds.const;$=(0,t._)`${$}${k} ${m} = ${_};${this.opts._n}`}else if(_=b==null?void 0:b(m))$=(0,t._)`${$}${_}${this.opts._n}`;else throw new r(m);v.set(m,n.Completed)})}return $}}e.ValueScope=u})(nr),function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.or=e.and=e.not=e.CodeGen=e.operators=e.varKinds=e.ValueScopeName=e.ValueScope=e.Scope=e.Name=e.regexpCode=e.stringify=e.getProperty=e.nil=e.strConcat=e.str=e._=void 0;const t=ot,r=nr;var n=ot;Object.defineProperty(e,"_",{enumerable:!0,get:function(){return n._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return n.str}}),Object.defineProperty(e,"strConcat",{enumerable:!0,get:function(){return n.strConcat}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return n.nil}}),Object.defineProperty(e,"getProperty",{enumerable:!0,get:function(){return n.getProperty}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return n.stringify}}),Object.defineProperty(e,"regexpCode",{enumerable:!0,get:function(){return n.regexpCode}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return n.Name}});var s=nr;Object.defineProperty(e,"Scope",{enumerable:!0,get:function(){return s.Scope}}),Object.defineProperty(e,"ValueScope",{enumerable:!0,get:function(){return s.ValueScope}}),Object.defineProperty(e,"ValueScopeName",{enumerable:!0,get:function(){return s.ValueScopeName}}),Object.defineProperty(e,"varKinds",{enumerable:!0,get:function(){return s.varKinds}}),e.operators={GT:new t._Code(">"),GTE:new t._Code(">="),LT:new t._Code("<"),LTE:new t._Code("<="),EQ:new t._Code("==="),NEQ:new t._Code("!=="),NOT:new t._Code("!"),OR:new t._Code("||"),AND:new t._Code("&&"),ADD:new t._Code("+")};class o{optimizeNodes(){return this}optimizeNames(l,f){return this}}class a extends o{constructor(l,f,S){super(),this.varKind=l,this.name=f,this.rhs=S}render({es5:l,_n:f}){const S=l?r.varKinds.var:this.varKind,A=this.rhs===void 0?"":` = ${this.rhs}`;return`${S} ${this.name}${A};`+f}optimizeNames(l,f){if(l[this.name.str])return this.rhs&&(this.rhs=T(this.rhs,l,f)),this}get names(){return this.rhs instanceof t._CodeOrName?this.rhs.names:{}}}class u extends o{constructor(l,f,S){super(),this.lhs=l,this.rhs=f,this.sideEffects=S}render({_n:l}){return`${this.lhs} = ${this.rhs};`+l}optimizeNames(l,f){if(!(this.lhs instanceof t.Name&&!l[this.lhs.str]&&!this.sideEffects))return this.rhs=T(this.rhs,l,f),this}get names(){const l=this.lhs instanceof t.Name?{}:{...this.lhs.names};return Ce(l,this.rhs)}}class c extends u{constructor(l,f,S,A){super(l,S,A),this.op=f}render({_n:l}){return`${this.lhs} ${this.op}= ${this.rhs};`+l}}class i extends o{constructor(l){super(),this.label=l,this.names={}}render({_n:l}){return`${this.label}:`+l}}class d extends o{constructor(l){super(),this.label=l,this.names={}}render({_n:l}){return`break${this.label?` ${this.label}`:""};`+l}}class p extends o{constructor(l){super(),this.error=l}render({_n:l}){return`throw ${this.error};`+l}get names(){return this.error.names}}class b extends o{constructor(l){super(),this.code=l}render({_n:l}){return`${this.code};`+l}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(l,f){return this.code=T(this.code,l,f),this}get names(){return this.code instanceof t._CodeOrName?this.code.names:{}}}class $ extends o{constructor(l=[]){super(),this.nodes=l}render(l){return this.nodes.reduce((f,S)=>f+S.render(l),"")}optimizeNodes(){const{nodes:l}=this;let f=l.length;for(;f--;){const S=l[f].optimizeNodes();Array.isArray(S)?l.splice(f,1,...S):S?l[f]=S:l.splice(f,1)}return l.length>0?this:void 0}optimizeNames(l,f){const{nodes:S}=this;let A=S.length;for(;A--;){const L=S[A];L.optimizeNames(l,f)||(N(l,L.names),S.splice(A,1))}return S.length>0?this:void 0}get names(){return this.nodes.reduce((l,f)=>ye(l,f.names),{})}}class g extends ${render(l){return"{"+l._n+super.render(l)+"}"+l._n}}class E extends ${}class v extends g{}v.kind="else";class m extends g{constructor(l,f){super(f),this.condition=l}render(l){let f=`if(${this.condition})`+super.render(l);return this.else&&(f+="else "+this.else.render(l)),f}optimizeNodes(){super.optimizeNodes();const l=this.condition;if(l===!0)return this.nodes;let f=this.else;if(f){const S=f.optimizeNodes();f=this.else=Array.isArray(S)?new v(S):S}if(f)return l===!1?f instanceof m?f:f.nodes:this.nodes.length?this:new m(F(l),f instanceof m?[f]:f.nodes);if(!(l===!1||!this.nodes.length))return this}optimizeNames(l,f){var S;if(this.else=(S=this.else)===null||S===void 0?void 0:S.optimizeNames(l,f),!!(super.optimizeNames(l,f)||this.else))return this.condition=T(this.condition,l,f),this}get names(){const l=super.names;return Ce(l,this.condition),this.else&&ye(l,this.else.names),l}}m.kind="if";class _ extends g{}_.kind="for";class k extends _{constructor(l){super(),this.iteration=l}render(l){return`for(${this.iteration})`+super.render(l)}optimizeNames(l,f){if(super.optimizeNames(l,f))return this.iteration=T(this.iteration,l,f),this}get names(){return ye(super.names,this.iteration.names)}}class O extends _{constructor(l,f,S,A){super(),this.varKind=l,this.name=f,this.from=S,this.to=A}render(l){const f=l.es5?r.varKinds.var:this.varKind,{name:S,from:A,to:L}=this;return`for(${f} ${S}=${A}; ${S}<${L}; ${S}++)`+super.render(l)}get names(){const l=Ce(super.names,this.from);return Ce(l,this.to)}}class R extends _{constructor(l,f,S,A){super(),this.loop=l,this.varKind=f,this.name=S,this.iterable=A}render(l){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(l)}optimizeNames(l,f){if(super.optimizeNames(l,f))return this.iterable=T(this.iterable,l,f),this}get names(){return ye(super.names,this.iterable.names)}}class G extends g{constructor(l,f,S){super(),this.name=l,this.args=f,this.async=S}render(l){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(l)}}G.kind="func";class X extends ${render(l){return"return "+super.render(l)}}X.kind="return";class ee extends g{render(l){let f="try"+super.render(l);return this.catch&&(f+=this.catch.render(l)),this.finally&&(f+=this.finally.render(l)),f}optimizeNodes(){var l,f;return super.optimizeNodes(),(l=this.catch)===null||l===void 0||l.optimizeNodes(),(f=this.finally)===null||f===void 0||f.optimizeNodes(),this}optimizeNames(l,f){var S,A;return super.optimizeNames(l,f),(S=this.catch)===null||S===void 0||S.optimizeNames(l,f),(A=this.finally)===null||A===void 0||A.optimizeNames(l,f),this}get names(){const l=super.names;return this.catch&&ye(l,this.catch.names),this.finally&&ye(l,this.finally.names),l}}class ue extends g{constructor(l){super(),this.error=l}render(l){return`catch(${this.error})`+super.render(l)}}ue.kind="catch";class Ne extends g{render(l){return"finally"+super.render(l)}}Ne.kind="finally";class Ge{constructor(l,f={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...f,_n:f.lines?` `:""},this._extScope=l,this._scope=new r.Scope({parent:l}),this._nodes=[new E]}toString(){return this._root.render(this.opts)}name(l){return this._scope.name(l)}scopeName(l){return this._extScope.name(l)}scopeValue(l,f){const S=this._extScope.value(l,f);return(this._values[S.prefix]||(this._values[S.prefix]=new Set)).add(S),S}getScopeValue(l,f){return this._extScope.getValue(l,f)}scopeRefs(l){return this._extScope.scopeRefs(l,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(l,f,S,A){const L=this._scope.toName(f);return S!==void 0&&A&&(this._constants[L.str]=S),this._leafNode(new a(l,L,S)),L}const(l,f,S){return this._def(r.varKinds.const,l,f,S)}let(l,f,S){return this._def(r.varKinds.let,l,f,S)}var(l,f,S){return this._def(r.varKinds.var,l,f,S)}assign(l,f,S){return this._leafNode(new u(l,f,S))}add(l,f){return this._leafNode(new c(l,e.operators.ADD,f))}code(l){return typeof l=="function"?l():l!==t.nil&&this._leafNode(new b(l)),this}object(...l){const f=["{"];for(const[S,A]of l)f.length>1&&f.push(","),f.push(S),(S!==A||this.opts.es5)&&(f.push(":"),(0,t.addCodeArg)(f,A));return f.push("}"),new t._Code(f)}if(l,f,S){if(this._blockNode(new m(l)),f&&S)this.code(f).else().code(S).endIf();else if(f)this.code(f).endIf();else if(S)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(l){return this._elseNode(new m(l))}else(){return this._elseNode(new v)}endIf(){return this._endBlockNode(m,v)}_for(l,f){return this._blockNode(l),f&&this.code(f).endFor(),this}for(l,f){return this._for(new k(l),f)}forRange(l,f,S,A,L=this.opts.es5?r.varKinds.var:r.varKinds.let){const J=this._scope.toName(l);return this._for(new O(L,J,f,S),()=>A(J))}forOf(l,f,S,A=r.varKinds.const){const L=this._scope.toName(l);if(this.opts.es5){const J=f instanceof t.Name?f:this.var("_arr",f);return this.forRange("_i",0,(0,t._)`${J}.length`,x=>{this.var(L,(0,t._)`${J}[${x}]`),S(L)})}return this._for(new R("of",A,L,f),()=>S(L))}forIn(l,f,S,A=this.opts.es5?r.varKinds.var:r.varKinds.const){if(this.opts.ownProperties)return this.forOf(l,(0,t._)`Object.keys(${f})`,S);const L=this._scope.toName(l);return this._for(new R("in",A,L,f),()=>S(L))}endFor(){return this._endBlockNode(_)}label(l){return this._leafNode(new i(l))}break(l){return this._leafNode(new d(l))}return(l){const f=new X;if(this._blockNode(f),this.code(l),f.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(X)}try(l,f,S){if(!f&&!S)throw new Error('CodeGen: "try" without "catch" and "finally"');const A=new ee;if(this._blockNode(A),this.code(l),f){const L=this.name("e");this._currNode=A.catch=new ue(L),f(L)}return S&&(this._currNode=A.finally=new Ne,this.code(S)),this._endBlockNode(ue,Ne)}throw(l){return this._leafNode(new p(l))}block(l,f){return this._blockStarts.push(this._nodes.length),l&&this.code(l).endBlock(f),this}endBlock(l){const f=this._blockStarts.pop();if(f===void 0)throw new Error("CodeGen: not in self-balancing block");const S=this._nodes.length-f;if(S<0||l!==void 0&&S!==l)throw new Error(`CodeGen: wrong number of nodes: ${S} vs ${l} expected`);return this._nodes.length=f,this}func(l,f=t.nil,S,A){return this._blockNode(new G(l,f,S)),A&&this.code(A).endFunc(),this}endFunc(){return this._endBlockNode(G)}optimize(l=1){for(;l-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(l){return this._currNode.nodes.push(l),this}_blockNode(l){this._currNode.nodes.push(l),this._nodes.push(l)}_endBlockNode(l,f){const S=this._currNode;if(S instanceof l||f&&S instanceof f)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${f?`${l.kind}/${f.kind}`:l.kind}"`)}_elseNode(l){const f=this._currNode;if(!(f instanceof m))throw new Error('CodeGen: "else" without "if"');return this._currNode=f.else=l,this}get _root(){return this._nodes[0]}get _currNode(){const l=this._nodes;return l[l.length-1]}set _currNode(l){const f=this._nodes;f[f.length-1]=l}}e.CodeGen=Ge;function ye(y,l){for(const f in l)y[f]=(y[f]||0)+(l[f]||0);return y}function Ce(y,l){return l instanceof t._CodeOrName?ye(y,l.names):y}function T(y,l,f){if(y instanceof t.Name)return S(y);if(!A(y))return y;return new t._Code(y._items.reduce((L,J)=>(J instanceof t.Name&&(J=S(J)),J instanceof t._Code?L.push(...J._items):L.push(J),L),[]));function S(L){const J=f[L.str];return J===void 0||l[L.str]!==1?L:(delete l[L.str],J)}function A(L){return L instanceof t._Code&&L._items.some(J=>J instanceof t.Name&&l[J.str]===1&&f[J.str]!==void 0)}}function N(y,l){for(const f in l)y[f]=(y[f]||0)-(l[f]||0)}function F(y){return typeof y=="boolean"||typeof y=="number"||y===null?!y:(0,t._)`!${w(y)}`}e.not=F;const D=h(e.operators.AND);function V(...y){return y.reduce(D)}e.and=V;const C=h(e.operators.OR);function P(...y){return y.reduce(C)}e.or=P;function h(y){return(l,f)=>l===t.nil?f:f===t.nil?l:(0,t._)`${w(l)} ${y} ${w(f)}`}function w(y){return y instanceof t.Name?y:(0,t._)`(${y})`}}(U);var I={};Object.defineProperty(I,"__esModule",{value:!0}),I.checkStrictMode=I.getErrorPath=I.Type=I.useFunc=I.setEvaluated=I.evaluatedPropsToName=I.mergeEvaluated=I.eachItem=I.unescapeJsonPointer=I.escapeJsonPointer=I.escapeFragment=I.unescapeFragment=I.schemaRefOrVal=I.schemaHasRulesButRef=I.schemaHasRules=I.checkUnknownRules=I.alwaysValidSchema=I.toHash=void 0;const W=U,ga=ot;function ya(e){const t={};for(const r of e)t[r]=!0;return t}I.toHash=ya;function $a(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(Yn(e,t),!Qn(t,e.self.RULES.all))}I.alwaysValidSchema=$a;function Yn(e,t=e.schema){const{opts:r,self:n}=e;if(!r.strictSchema||typeof t=="boolean")return;const s=n.RULES.keywords;for(const o in t)s[o]||ns(e,`unknown keyword: "${o}"`)}I.checkUnknownRules=Yn;function Qn(e,t){if(typeof e=="boolean")return!e;for(const r in e)if(t[r])return!0;return!1}I.schemaHasRules=Qn;function va(e,t){if(typeof e=="boolean")return!e;for(const r in e)if(r!=="$ref"&&t.all[r])return!0;return!1}I.schemaHasRulesButRef=va;function _a({topSchemaRef:e,schemaPath:t},r,n,s){if(!s){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,W._)`${r}`}return(0,W._)`${e}${t}${(0,W.getProperty)(n)}`}I.schemaRefOrVal=_a;function wa(e){return Zn(decodeURIComponent(e))}I.unescapeFragment=wa;function Ea(e){return encodeURIComponent(sr(e))}I.escapeFragment=Ea;function sr(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}I.escapeJsonPointer=sr;function Zn(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}I.unescapeJsonPointer=Zn;function ba(e,t){if(Array.isArray(e))for(const r of e)t(r);else t(e)}I.eachItem=ba;function es({mergeNames:e,mergeToName:t,mergeValues:r,resultToName:n}){return(s,o,a,u)=>{const c=a===void 0?o:a instanceof W.Name?(o instanceof W.Name?e(s,o,a):t(s,o,a),a):o instanceof W.Name?(t(s,a,o),o):r(o,a);return u===W.Name&&!(c instanceof W.Name)?n(s,c):c}}I.mergeEvaluated={props:es({mergeNames