create-vitnode-app 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +2 -2
- package/package.json +2 -2
- package/templates/basic/apps/frontend/src/app/[locale]/(main)/layout.tsx +9 -2
- package/templates/basic/apps/frontend/src/plugins/admin/langs/en.json +0 -7
- package/templates/basic/apps/frontend/src/plugins/core/langs/en.json +0 -1
- package/templates/basic/apps/frontend/src/app/[locale]/(main)/(layout)/layout.tsx +0 -12
- /package/templates/basic/apps/frontend/src/app/[locale]/(main)/{(layout)/[...slug] → [...slug]}/page.tsx +0 -0
- /package/templates/basic/apps/frontend/src/app/[locale]/(main)/{(layout)/footer.tsx → footer.tsx} +0 -0
- /package/templates/basic/apps/frontend/src/app/[locale]/(main)/{(layout)/not-found.tsx → not-found.tsx} +0 -0
- /package/templates/basic/apps/frontend/src/app/[locale]/(main)/{(layout)/page.tsx → page.tsx} +0 -0
package/dist/index.cjs
CHANGED
|
@@ -22,7 +22,7 @@ Expecting one of '${n.join("', '")}'`);let r=`${e}Help`;return this.on(r,s=>{let
|
|
|
22
22
|
`),process.exit(1))},kt=async t=>{let e=t.opts(),i={packageManager:e.packageManager,eslint:e.eslint,install:!e.skipInstall,docker:e.docker};if(!e.packageManager){let n=await St(),r=L.default.blue("package manager"),{packageManager:s}=await(0,q.default)({onState:N,name:"packageManager",type:"select",message:`Which ${r} do you want to use?`,initial:e.packageManager,choices:[{title:`npm${n.npm?`@${n.npm}`:""}`,value:"npm",disabled:!n.npm},{title:`pnpm${n.pnpm?`@${n.pnpm}`:""}`,value:"pnpm",disabled:!n.pnpm}]});i={...i,packageManager:`${s}@${n[s]}`}}if(e.eslint===void 0){let n=L.default.blue("ESLint"),{eslint:r}=await(0,q.default)({onState:N,type:"toggle",name:"eslint",message:`Would you like to use ${n}?`,initial:e.eslint?"Yes":"No",active:"Yes",inactive:"No"});i={...i,eslint:!!r}}if(e.docker===void 0){let n=L.default.blue("Dockerfile & Docker Compose"),{docker:r}=await(0,q.default)({onState:N,type:"toggle",name:"docker",message:`Would you like to create ${n}?`,initial:e.i18nRouting?"Yes":"No",active:"Yes",inactive:"No"});i={...i,docker:!!r}}if(e.skipInstall===void 0){let n=L.default.blue("Install dependencies"),{install:r}=await(0,q.default)({onState:N,type:"toggle",name:"install",message:`Would you like to ${n}?`,initial:e.eslint?"Yes":"No",active:"Yes",inactive:"No"});i={...i,install:!!r}}return i};var ie=require("fs"),$t=require("path"),Se=m(require("picocolors"),1);function ne(t,e){let i=[".DS_Store",".git",".gitattributes",".gitignore",".gitlab-ci.yml",".hg",".hgcheck",".hgignore",".idea",".npmignore",".travis.yml","LICENSE","Thumbs.db","docs","mkdocs.yml","npm-debug.log","yarn-debug.log","yarn-error.log","yarnrc.yml",".yarn"],n=(0,ie.readdirSync)(t).filter(r=>!i.includes(r)&&!r.endsWith(".iml"));if(n.length>0){console.log(`The directory ${Se.default.green(e)} contains files that could conflict:
|
|
23
23
|
`);for(let r of n)try{(0,ie.lstatSync)((0,$t.join)(t,r)).isDirectory()?console.log(`${Se.default.blue(r)}/`):console.log(r)}catch{console.log(r)}return console.log(`
|
|
24
24
|
Either try using a new directory name, or remove the files listed above.
|
|
25
|
-
`),!1}return!0}var Pt=require("constants"),Nt=require("fs/promises");async function It(t){try{return await(0,Nt.access)(t,Pt.W_OK),!0}catch{return!1}}var Rt=m(require("validate-npm-package-name"),1),ke=({name:t})=>{let e=(0,Rt.default)(t);return e.validForNewPackages?{valid:!0}:{valid:!1,problems:[...e.errors??[],...e.warnings??[]]}};var jt={name:"create-vitnode-app",version:"0.1.3
|
|
25
|
+
`),!1}return!0}var Pt=require("constants"),Nt=require("fs/promises");async function It(t){try{return await(0,Nt.access)(t,Pt.W_OK),!0}catch{return!1}}var Rt=m(require("validate-npm-package-name"),1),ke=({name:t})=>{let e=(0,Rt.default)(t);return e.validForNewPackages?{valid:!0}:{valid:!1,problems:[...e.errors??[],...e.warnings??[]]}};var jt={name:"create-vitnode-app",version:"0.1.3",description:"Create a new VitNode app in seconds.",author:"VitNode Team",license:"MIT",homepage:"https://vitnode.com",repository:{type:"git",url:"git+https://github.com/VitNode/vitnode.git",directory:"packages/create-vitnode-app"},type:"module",bin:{"create-vitnode-app":"dist/index.cjs"},scripts:{lint:"eslint .","lint:fix":"eslint . --fix","build:scripts":"tsup index.ts","dev:script":"tsup index.ts --watch","start:script":"node dist/index.cjs"},keywords:["vitnode","react","next","nest","nextjs","nestjs","typescript","next.js","nest.js"],dependencies:{figlet:"^1.8.0",picocolors:"^1.1.1",prompts:"^2.4.2","validate-npm-package-name":"^6.0.0"},devDependencies:{"@types/cross-spawn":"^6.0.6","@types/figlet":"^1.7.0","@types/node":"^22.10.5","@types/prompts":"^2.4.9","@types/validate-npm-package-name":"^4.0.2",commander:"^13.0.0","cross-spawn":"^7.0.6","eslint-config-typescript-vitnode":"workspace:*",ora:"^8.1.1",tsup:"^8.3.5",typescript:"^5.7.2"}};var E=require("path"),sn=require("crypto"),un=m(require("figlet"),1);var K=m(require("process"),1);var Vt=(t=0)=>e=>`\x1B[${e+t}m`,Mt=(t=0)=>e=>`\x1B[${38+t};5;${e}m`,Ht=(t=0)=>(e,i,n)=>`\x1B[${38+t};2;${e};${i};${n}m`,p={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},ms=Object.keys(p.modifier),Pn=Object.keys(p.color),Nn=Object.keys(p.bgColor),ds=[...Pn,...Nn];function In(){let t=new Map;for(let[e,i]of Object.entries(p)){for(let[n,r]of Object.entries(i))p[n]={open:`\x1B[${r[0]}m`,close:`\x1B[${r[1]}m`},i[n]=p[n],t.set(r[0],r[1]);Object.defineProperty(p,e,{value:i,enumerable:!1})}return Object.defineProperty(p,"codes",{value:t,enumerable:!1}),p.color.close="\x1B[39m",p.bgColor.close="\x1B[49m",p.color.ansi=Vt(),p.color.ansi256=Mt(),p.color.ansi16m=Ht(),p.bgColor.ansi=Vt(10),p.bgColor.ansi256=Mt(10),p.bgColor.ansi16m=Ht(10),Object.defineProperties(p,{rgbToAnsi256:{value(e,i,n){return e===i&&i===n?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(i/255*5)+Math.round(n/255*5)},enumerable:!1},hexToRgb:{value(e){let i=/[a-f\d]{6}|[a-f\d]{3}/i.exec(e.toString(16));if(!i)return[0,0,0];let[n]=i;n.length===3&&(n=[...n].map(s=>s+s).join(""));let r=Number.parseInt(n,16);return[r>>16&255,r>>8&255,r&255]},enumerable:!1},hexToAnsi256:{value:e=>p.rgbToAnsi256(...p.hexToRgb(e)),enumerable:!1},ansi256ToAnsi:{value(e){if(e<8)return 30+e;if(e<16)return 90+(e-8);let i,n,r;if(e>=232)i=((e-232)*10+8)/255,n=i,r=i;else{e-=16;let o=e%36;i=Math.floor(e/36)/5,n=Math.floor(o/6)/5,r=o%6/5}let s=Math.max(i,n,r)*2;if(s===0)return 30;let u=30+(Math.round(r)<<2|Math.round(n)<<1|Math.round(i));return s===2&&(u+=60),u},enumerable:!1},rgbToAnsi:{value:(e,i,n)=>p.ansi256ToAnsi(p.rgbToAnsi256(e,i,n)),enumerable:!1},hexToAnsi:{value:e=>p.ansi256ToAnsi(p.hexToAnsi256(e)),enumerable:!1}}),p}var Rn=In(),x=Rn;var se=m(require("process"),1),Lt=m(require("os"),1),$e=m(require("tty"),1);function b(t,e=globalThis.Deno?globalThis.Deno.args:se.default.argv){let i=t.startsWith("-")?"":t.length===1?"-":"--",n=e.indexOf(i+t),r=e.indexOf("--");return n!==-1&&(r===-1||n<r)}var{env:F}=se.default,re;b("no-color")||b("no-colors")||b("color=false")||b("color=never")?re=0:(b("color")||b("colors")||b("color=true")||b("color=always"))&&(re=1);function jn(){if("FORCE_COLOR"in F)return F.FORCE_COLOR==="true"?1:F.FORCE_COLOR==="false"?0:F.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(F.FORCE_COLOR,10),3)}function Vn(t){return t===0?!1:{level:t,hasBasic:!0,has256:t>=2,has16m:t>=3}}function Mn(t,{streamIsTTY:e,sniffFlags:i=!0}={}){let n=jn();n!==void 0&&(re=n);let r=i?re:n;if(r===0)return 0;if(i){if(b("color=16m")||b("color=full")||b("color=truecolor"))return 3;if(b("color=256"))return 2}if("TF_BUILD"in F&&"AGENT_NAME"in F)return 1;if(t&&!e&&r===void 0)return 0;let s=r||0;if(F.TERM==="dumb")return s;if(se.default.platform==="win32"){let u=Lt.default.release().split(".");return Number(u[0])>=10&&Number(u[2])>=10586?Number(u[2])>=14931?3:2:1}if("CI"in F)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(u=>u in F)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(u=>u in F)||F.CI_NAME==="codeship"?1:s;if("TEAMCITY_VERSION"in F)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(F.TEAMCITY_VERSION)?1:0;if(F.COLORTERM==="truecolor"||F.TERM==="xterm-kitty")return 3;if("TERM_PROGRAM"in F){let u=Number.parseInt((F.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(F.TERM_PROGRAM){case"iTerm.app":return u>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(F.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(F.TERM)||"COLORTERM"in F?1:s}function Wt(t,e={}){let i=Mn(t,{streamIsTTY:t&&t.isTTY,...e});return Vn(i)}var Hn={stdout:Wt({isTTY:$e.default.isatty(1)}),stderr:Wt({isTTY:$e.default.isatty(2)})},qt=Hn;function Gt(t,e,i){let n=t.indexOf(e);if(n===-1)return t;let r=e.length,s=0,u="";do u+=t.slice(s,n)+e+i,s=n+r,n=t.indexOf(e,s);while(n!==-1);return u+=t.slice(s),u}function Ut(t,e,i,n){let r=0,s="";do{let u=t[n-1]==="\r";s+=t.slice(r,u?n-1:n)+e+(u?`\r
|
|
26
26
|
`:`
|
|
27
27
|
`)+i,r=n+1,n=t.indexOf(`
|
|
28
28
|
`,r)}while(n!==-1);return s+=t.slice(r),s}var{stdout:Yt,stderr:Jt}=qt,Pe=Symbol("GENERATOR"),I=Symbol("STYLER"),G=Symbol("IS_EMPTY"),zt=["ansi","ansi","ansi256","ansi16m"],R=Object.create(null),Wn=(t,e={})=>{if(e.level&&!(Number.isInteger(e.level)&&e.level>=0&&e.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let i=Yt?Yt.level:0;t.level=e.level===void 0?i:e.level};var Ln=t=>{let e=(...i)=>i.join(" ");return Wn(e,t),Object.setPrototypeOf(e,U.prototype),e};function U(t){return Ln(t)}Object.setPrototypeOf(U.prototype,Function.prototype);for(let[t,e]of Object.entries(x))R[t]={get(){let i=ue(this,Ie(e.open,e.close,this[I]),this[G]);return Object.defineProperty(this,t,{value:i}),i}};R.visible={get(){let t=ue(this,this[I],!0);return Object.defineProperty(this,"visible",{value:t}),t}};var Ne=(t,e,i,...n)=>t==="rgb"?e==="ansi16m"?x[i].ansi16m(...n):e==="ansi256"?x[i].ansi256(x.rgbToAnsi256(...n)):x[i].ansi(x.rgbToAnsi(...n)):t==="hex"?Ne("rgb",e,i,...x.hexToRgb(...n)):x[i][t](...n),qn=["rgb","hex","ansi256"];for(let t of qn){R[t]={get(){let{level:i}=this;return function(...n){let r=Ie(Ne(t,zt[i],"color",...n),x.color.close,this[I]);return ue(this,r,this[G])}}};let e="bg"+t[0].toUpperCase()+t.slice(1);R[e]={get(){let{level:i}=this;return function(...n){let r=Ie(Ne(t,zt[i],"bgColor",...n),x.bgColor.close,this[I]);return ue(this,r,this[G])}}}}var Gn=Object.defineProperties(()=>{},{...R,level:{enumerable:!0,get(){return this[Pe].level},set(t){this[Pe].level=t}}}),Ie=(t,e,i)=>{let n,r;return i===void 0?(n=t,r=e):(n=i.openAll+t,r=e+i.closeAll),{open:t,close:e,openAll:n,closeAll:r,parent:i}},ue=(t,e,i)=>{let n=(...r)=>Un(n,r.length===1?""+r[0]:r.join(" "));return Object.setPrototypeOf(n,Gn),n[Pe]=t,n[I]=e,n[G]=i,n},Un=(t,e)=>{if(t.level<=0||!e)return t[G]?"":e;let i=t[I];if(i===void 0)return e;let{openAll:n,closeAll:r}=i;if(e.includes("\x1B"))for(;i!==void 0;)e=Gt(e,i.close,i.open),i=i.parent;let s=e.indexOf(`
|
|
@@ -30,7 +30,7 @@ Either try using a new directory name, or remove the files listed above.
|
|
|
30
30
|
${e}`,Zn=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),Qn=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),er=(t,e,i)=>{let n=i===""?"":`with ${i.trim()}() `,r=Xn.bind(null,n,e.toString());Object.defineProperty(r,"name",Qn);let{writable:s,enumerable:u,configurable:o}=Zn;Object.defineProperty(t,"toString",{value:r,writable:s,enumerable:u,configurable:o})};function Re(t,e,{ignoreNonConfigurable:i=!1}={}){let{name:n}=t;for(let r of Reflect.ownKeys(e))Jn(t,e,r,i);return Kn(t,e),er(t,e,n),t}var oe=new WeakMap,Kt=(t,e={})=>{if(typeof t!="function")throw new TypeError("Expected a function");let i,n=0,r=t.displayName||t.name||"<anonymous>",s=function(...u){if(oe.set(s,++n),n===1)i=t.apply(this,u),t=void 0;else if(e.throw===!0)throw new Error(`Function \`${r}\` can only be called once`);return i};return Re(s,t),oe.set(s,n),s};Kt.callCount=t=>{if(!oe.has(t))throw new Error(`The given function \`${t.name}\` is not wrapped by the \`onetime\` package`);return oe.get(t)};var Xt=Kt;var $=[];$.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&$.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&$.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var ae=t=>!!t&&typeof t=="object"&&typeof t.removeListener=="function"&&typeof t.emit=="function"&&typeof t.reallyExit=="function"&&typeof t.listeners=="function"&&typeof t.kill=="function"&&typeof t.pid=="number"&&typeof t.on=="function",je=Symbol.for("signal-exit emitter"),Ve=globalThis,tr=Object.defineProperty.bind(Object),Me=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(Ve[je])return Ve[je];tr(Ve,je,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(e,i){this.listeners[e].push(i)}removeListener(e,i){let n=this.listeners[e],r=n.indexOf(i);r!==-1&&(r===0&&n.length===1?n.length=0:n.splice(r,1))}emit(e,i,n){if(this.emitted[e])return!1;this.emitted[e]=!0;let r=!1;for(let s of this.listeners[e])r=s(i,n)===!0||r;return e==="exit"&&(r=this.emit("afterExit",i,n)||r),r}},De=class{},ir=t=>({onExit(e,i){return t.onExit(e,i)},load(){return t.load()},unload(){return t.unload()}}),He=class extends De{onExit(){return()=>{}}load(){}unload(){}},We=class extends De{#u=Le.platform==="win32"?"SIGINT":"SIGHUP";#i=new Me;#e;#r;#h;#t={};#s=!1;constructor(e){super(),this.#e=e,this.#t={};for(let i of $)this.#t[i]=()=>{let n=this.#e.listeners(i),{count:r}=this.#i,s=e;if(typeof s.__signal_exit_emitter__=="object"&&typeof s.__signal_exit_emitter__.count=="number"&&(r+=s.__signal_exit_emitter__.count),n.length===r){this.unload();let u=this.#i.emit("exit",null,i),o=i==="SIGHUP"?this.#u:i;u||e.kill(e.pid,o)}};this.#h=e.reallyExit,this.#r=e.emit}onExit(e,i){if(!ae(this.#e))return()=>{};this.#s===!1&&this.load();let n=i?.alwaysLast?"afterExit":"exit";return this.#i.on(n,e),()=>{this.#i.removeListener(n,e),this.#i.listeners.exit.length===0&&this.#i.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#s){this.#s=!0,this.#i.count+=1;for(let e of $)try{let i=this.#t[e];i&&this.#e.on(e,i)}catch{}this.#e.emit=(e,...i)=>this.#f(e,...i),this.#e.reallyExit=e=>this.#n(e)}}unload(){this.#s&&(this.#s=!1,$.forEach(e=>{let i=this.#t[e];if(!i)throw new Error("Listener not defined for signal: "+e);try{this.#e.removeListener(e,i)}catch{}}),this.#e.emit=this.#r,this.#e.reallyExit=this.#h,this.#i.count-=1)}#n(e){return ae(this.#e)?(this.#e.exitCode=e||0,this.#i.emit("exit",this.#e.exitCode,null),this.#h.call(this.#e,this.#e.exitCode)):0}#f(e,...i){let n=this.#r;if(e==="exit"&&ae(this.#e)){typeof i[0]=="number"&&(this.#e.exitCode=i[0]);let r=n.call(this.#e,e,...i);return this.#i.emit("exit",this.#e.exitCode,null),r}else return n.call(this.#e,e,...i)}},Le=globalThis.process,{onExit:Zt,load:Ts,unload:Ss}=ir(ae(Le)?new We(Le):new He);var Qt=Y.default.stderr.isTTY?Y.default.stderr:Y.default.stdout.isTTY?Y.default.stdout:void 0,nr=Qt?Xt(()=>{Zt(()=>{Qt.write("\x1B[?25h")},{alwaysLast:!0})}):()=>{},ei=nr;var le=!1,j={};j.show=(t=qe.default.stderr)=>{t.isTTY&&(le=!1,t.write("\x1B[?25h"))};j.hide=(t=qe.default.stderr)=>{t.isTTY&&(ei(),le=!0,t.write("\x1B[?25l"))};j.toggle=(t,e)=>{t!==void 0&&(le=t),le?j.show(e):j.hide(e)};var Ge=j;var X=m(Ue(),1);var y=m(require("process"),1);function Ye(){return y.default.platform!=="win32"?y.default.env.TERM!=="linux":!!y.default.env.CI||!!y.default.env.WT_SESSION||!!y.default.env.TERMINUS_SUBLIME||y.default.env.ConEmuTask==="{cmd::Cmder}"||y.default.env.TERM_PROGRAM==="Terminus-Sublime"||y.default.env.TERM_PROGRAM==="vscode"||y.default.env.TERM==="xterm-256color"||y.default.env.TERM==="alacritty"||y.default.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var sr={info:v.blue("\u2139"),success:v.green("\u2714"),warning:v.yellow("\u26A0"),error:v.red("\u2716")},ur={info:v.blue("i"),success:v.green("\u221A"),warning:v.yellow("\u203C"),error:v.red("\xD7")},or=Ye()?sr:ur,J=or;function Je({onlyFirst:t=!1}={}){let i=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(i,t?void 0:"g")}var ar=Je();function z(t){if(typeof t!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof t}\``);return t.replace(ar,"")}function ri(t){return t===161||t===164||t===167||t===168||t===170||t===173||t===174||t>=176&&t<=180||t>=182&&t<=186||t>=188&&t<=191||t===198||t===208||t===215||t===216||t>=222&&t<=225||t===230||t>=232&&t<=234||t===236||t===237||t===240||t===242||t===243||t>=247&&t<=250||t===252||t===254||t===257||t===273||t===275||t===283||t===294||t===295||t===299||t>=305&&t<=307||t===312||t>=319&&t<=322||t===324||t>=328&&t<=331||t===333||t===338||t===339||t===358||t===359||t===363||t===462||t===464||t===466||t===468||t===470||t===472||t===474||t===476||t===593||t===609||t===708||t===711||t>=713&&t<=715||t===717||t===720||t>=728&&t<=731||t===733||t===735||t>=768&&t<=879||t>=913&&t<=929||t>=931&&t<=937||t>=945&&t<=961||t>=963&&t<=969||t===1025||t>=1040&&t<=1103||t===1105||t===8208||t>=8211&&t<=8214||t===8216||t===8217||t===8220||t===8221||t>=8224&&t<=8226||t>=8228&&t<=8231||t===8240||t===8242||t===8243||t===8245||t===8251||t===8254||t===8308||t===8319||t>=8321&&t<=8324||t===8364||t===8451||t===8453||t===8457||t===8467||t===8470||t===8481||t===8482||t===8486||t===8491||t===8531||t===8532||t>=8539&&t<=8542||t>=8544&&t<=8555||t>=8560&&t<=8569||t===8585||t>=8592&&t<=8601||t===8632||t===8633||t===8658||t===8660||t===8679||t===8704||t===8706||t===8707||t===8711||t===8712||t===8715||t===8719||t===8721||t===8725||t===8730||t>=8733&&t<=8736||t===8739||t===8741||t>=8743&&t<=8748||t===8750||t>=8756&&t<=8759||t===8764||t===8765||t===8776||t===8780||t===8786||t===8800||t===8801||t>=8804&&t<=8807||t===8810||t===8811||t===8814||t===8815||t===8834||t===8835||t===8838||t===8839||t===8853||t===8857||t===8869||t===8895||t===8978||t>=9312&&t<=9449||t>=9451&&t<=9547||t>=9552&&t<=9587||t>=9600&&t<=9615||t>=9618&&t<=9621||t===9632||t===9633||t>=9635&&t<=9641||t===9650||t===9651||t===9654||t===9655||t===9660||t===9661||t===9664||t===9665||t>=9670&&t<=9672||t===9675||t>=9678&&t<=9681||t>=9698&&t<=9701||t===9711||t===9733||t===9734||t===9737||t===9742||t===9743||t===9756||t===9758||t===9792||t===9794||t===9824||t===9825||t>=9827&&t<=9829||t>=9831&&t<=9834||t===9836||t===9837||t===9839||t===9886||t===9887||t===9919||t>=9926&&t<=9933||t>=9935&&t<=9939||t>=9941&&t<=9953||t===9955||t===9960||t===9961||t>=9963&&t<=9969||t===9972||t>=9974&&t<=9977||t===9979||t===9980||t===9982||t===9983||t===10045||t>=10102&&t<=10111||t>=11094&&t<=11097||t>=12872&&t<=12879||t>=57344&&t<=63743||t>=65024&&t<=65039||t===65533||t>=127232&&t<=127242||t>=127248&&t<=127277||t>=127280&&t<=127337||t>=127344&&t<=127373||t===127375||t===127376||t>=127387&&t<=127404||t>=917760&&t<=917999||t>=983040&&t<=1048573||t>=1048576&&t<=1114109}function si(t){return t===12288||t>=65281&&t<=65376||t>=65504&&t<=65510}function ui(t){return t>=4352&&t<=4447||t===8986||t===8987||t===9001||t===9002||t>=9193&&t<=9196||t===9200||t===9203||t===9725||t===9726||t===9748||t===9749||t>=9776&&t<=9783||t>=9800&&t<=9811||t===9855||t>=9866&&t<=9871||t===9875||t===9889||t===9898||t===9899||t===9917||t===9918||t===9924||t===9925||t===9934||t===9940||t===9962||t===9970||t===9971||t===9973||t===9978||t===9981||t===9989||t===9994||t===9995||t===10024||t===10060||t===10062||t>=10067&&t<=10069||t===10071||t>=10133&&t<=10135||t===10160||t===10175||t===11035||t===11036||t===11088||t===11093||t>=11904&&t<=11929||t>=11931&&t<=12019||t>=12032&&t<=12245||t>=12272&&t<=12287||t>=12289&&t<=12350||t>=12353&&t<=12438||t>=12441&&t<=12543||t>=12549&&t<=12591||t>=12593&&t<=12686||t>=12688&&t<=12773||t>=12783&&t<=12830||t>=12832&&t<=12871||t>=12880&&t<=42124||t>=42128&&t<=42182||t>=43360&&t<=43388||t>=44032&&t<=55203||t>=63744&&t<=64255||t>=65040&&t<=65049||t>=65072&&t<=65106||t>=65108&&t<=65126||t>=65128&&t<=65131||t>=94176&&t<=94180||t===94192||t===94193||t>=94208&&t<=100343||t>=100352&&t<=101589||t>=101631&&t<=101640||t>=110576&&t<=110579||t>=110581&&t<=110587||t===110589||t===110590||t>=110592&&t<=110882||t===110898||t>=110928&&t<=110930||t===110933||t>=110948&&t<=110951||t>=110960&&t<=111355||t>=119552&&t<=119638||t>=119648&&t<=119670||t===126980||t===127183||t===127374||t>=127377&&t<=127386||t>=127488&&t<=127490||t>=127504&&t<=127547||t>=127552&&t<=127560||t===127568||t===127569||t>=127584&&t<=127589||t>=127744&&t<=127776||t>=127789&&t<=127797||t>=127799&&t<=127868||t>=127870&&t<=127891||t>=127904&&t<=127946||t>=127951&&t<=127955||t>=127968&&t<=127984||t===127988||t>=127992&&t<=128062||t===128064||t>=128066&&t<=128252||t>=128255&&t<=128317||t>=128331&&t<=128334||t>=128336&&t<=128359||t===128378||t===128405||t===128406||t===128420||t>=128507&&t<=128591||t>=128640&&t<=128709||t===128716||t>=128720&&t<=128722||t>=128725&&t<=128727||t>=128732&&t<=128735||t===128747||t===128748||t>=128756&&t<=128764||t>=128992&&t<=129003||t===129008||t>=129292&&t<=129338||t>=129340&&t<=129349||t>=129351&&t<=129535||t>=129648&&t<=129660||t>=129664&&t<=129673||t>=129679&&t<=129734||t>=129742&&t<=129756||t>=129759&&t<=129769||t>=129776&&t<=129784||t>=131072&&t<=196605||t>=196608&&t<=262141}function Dr(t){if(!Number.isSafeInteger(t))throw new TypeError(`Expected a code point, got \`${typeof t}\`.`)}function oi(t,{ambiguousAsWide:e=!1}={}){return Dr(t),si(t)||ui(t)||e&&ri(t)?2:1}var ai=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g;var lr=new Intl.Segmenter,cr=/^\p{Default_Ignorable_Code_Point}$/u;function ze(t,e={}){if(typeof t!="string"||t.length===0)return 0;let{ambiguousIsNarrow:i=!0,countAnsiEscapeCodes:n=!1}=e;if(n||(t=z(t)),t.length===0)return 0;let r=0,s={ambiguousAsWide:!i};for(let{segment:u}of lr.segment(t)){let o=u.codePointAt(0);if(!(o<=31||o>=127&&o<=159)&&!(o>=8203&&o<=8207||o===65279)&&!(o>=768&&o<=879||o>=6832&&o<=6911||o>=7616&&o<=7679||o>=8400&&o<=8447||o>=65056&&o<=65071)&&!(o>=55296&&o<=57343)&&!(o>=65024&&o<=65039)&&!cr.test(u)){if(ai().test(u)){r+=2;continue}r+=oi(o,s)}}return r}function Ke({stream:t=process.stdout}={}){return!!(t&&t.isTTY&&process.env.TERM!=="dumb"&&!("CI"in process.env))}var Xe=m(require("process"),1);function Ze(){let{env:t}=Xe.default,{TERM:e,TERM_PROGRAM:i}=t;return Xe.default.platform!=="win32"?e!=="linux":!!t.WT_SESSION||!!t.TERMINUS_SUBLIME||t.ConEmuTask==="{cmd::Cmder}"||i==="Terminus-Sublime"||i==="vscode"||e==="xterm-256color"||e==="alacritty"||e==="rxvt-unicode"||e==="rxvt-unicode-256color"||t.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var B=m(require("process"),1),hr=3,Qe=class{#u=0;start(){this.#u++,this.#u===1&&this.#i()}stop(){if(this.#u<=0)throw new Error("`stop` called more times than `start`");this.#u--,this.#u===0&&this.#e()}#i(){B.default.platform==="win32"||!B.default.stdin.isTTY||(B.default.stdin.setRawMode(!0),B.default.stdin.on("data",this.#r),B.default.stdin.resume())}#e(){B.default.stdin.isTTY&&(B.default.stdin.off("data",this.#r),B.default.stdin.pause(),B.default.stdin.setRawMode(!1))}#r(e){e[0]===hr&&B.default.emit("SIGINT")}},fr=new Qe,et=fr;var pr=m(Ue(),1),tt=class{#u=0;#i=!1;#e=0;#r=-1;#h=0;#t;#s;#n;#f;#m;#D;#l;#c;#d;#o;#a;color;constructor(e){typeof e=="string"&&(e={text:e}),this.#t={color:"cyan",stream:K.default.stderr,discardStdin:!0,hideCursor:!0,...e},this.color=this.#t.color,this.spinner=this.#t.spinner,this.#m=this.#t.interval,this.#n=this.#t.stream,this.#D=typeof this.#t.isEnabled=="boolean"?this.#t.isEnabled:Ke({stream:this.#n}),this.#l=typeof this.#t.isSilent=="boolean"?this.#t.isSilent:!1,this.text=this.#t.text,this.prefixText=this.#t.prefixText,this.suffixText=this.#t.suffixText,this.indent=this.#t.indent,K.default.env.NODE_ENV==="test"&&(this._stream=this.#n,this._isEnabled=this.#D,Object.defineProperty(this,"_linesToClear",{get(){return this.#u},set(i){this.#u=i}}),Object.defineProperty(this,"_frameIndex",{get(){return this.#r}}),Object.defineProperty(this,"_lineCount",{get(){return this.#e}}))}get indent(){return this.#c}set indent(e=0){if(!(e>=0&&Number.isInteger(e)))throw new Error("The `indent` option must be an integer from 0 and up");this.#c=e,this.#p()}get interval(){return this.#m??this.#s.interval??100}get spinner(){return this.#s}set spinner(e){if(this.#r=-1,this.#m=void 0,typeof e=="object"){if(e.frames===void 0)throw new Error("The given spinner must have a `frames` property");this.#s=e}else if(!Ze())this.#s=X.default.line;else if(e===void 0)this.#s=X.default.dots;else if(e!=="default"&&X.default[e])this.#s=X.default[e];else throw new Error(`There is no built-in spinner named '${e}'. See https://github.com/sindresorhus/cli-spinners/blob/main/spinners.json for a full list.`)}get text(){return this.#d}set text(e=""){this.#d=e,this.#p()}get prefixText(){return this.#o}set prefixText(e=""){this.#o=e,this.#p()}get suffixText(){return this.#a}set suffixText(e=""){this.#a=e,this.#p()}get isSpinning(){return this.#f!==void 0}#F(e=this.#o,i=" "){return typeof e=="string"&&e!==""?e+i:typeof e=="function"?e()+i:""}#g(e=this.#a,i=" "){return typeof e=="string"&&e!==""?i+e:typeof e=="function"?i+e():""}#p(){let e=this.#n.columns??80,i=this.#F(this.#o,"-"),n=this.#g(this.#a,"-"),r=" ".repeat(this.#c)+i+"--"+this.#d+"--"+n;this.#e=0;for(let s of z(r).split(`
|
|
31
31
|
`))this.#e+=Math.max(1,Math.ceil(ze(s,{countAnsiEscapeCodes:!0})/e))}get isEnabled(){return this.#D&&!this.#l}set isEnabled(e){if(typeof e!="boolean")throw new TypeError("The `isEnabled` option must be a boolean");this.#D=e}get isSilent(){return this.#l}set isSilent(e){if(typeof e!="boolean")throw new TypeError("The `isSilent` option must be a boolean");this.#l=e}frame(){let e=Date.now();(this.#r===-1||e-this.#h>=this.interval)&&(this.#r=++this.#r%this.#s.frames.length,this.#h=e);let{frames:i}=this.#s,n=i[this.#r];this.color&&(n=v[this.color](n));let r=typeof this.#o=="string"&&this.#o!==""?this.#o+" ":"",s=typeof this.text=="string"?" "+this.text:"",u=typeof this.#a=="string"&&this.#a!==""?" "+this.#a:"";return r+n+s+u}clear(){if(!this.#D||!this.#n.isTTY)return this;this.#n.cursorTo(0);for(let e=0;e<this.#u;e++)e>0&&this.#n.moveCursor(0,-1),this.#n.clearLine(1);return(this.#c||this.lastIndent!==this.#c)&&this.#n.cursorTo(this.#c),this.lastIndent=this.#c,this.#u=0,this}render(){return this.#l?this:(this.clear(),this.#n.write(this.frame()),this.#u=this.#e,this)}start(e){return e&&(this.text=e),this.#l?this:this.#D?this.isSpinning?this:(this.#t.hideCursor&&Ge.hide(this.#n),this.#t.discardStdin&&K.default.stdin.isTTY&&(this.#i=!0,et.start()),this.render(),this.#f=setInterval(this.render.bind(this),this.interval),this):(this.text&&this.#n.write(`- ${this.text}
|
|
32
32
|
`),this)}stop(){return this.#D?(clearInterval(this.#f),this.#f=void 0,this.#r=0,this.clear(),this.#t.hideCursor&&Ge.show(this.#n),this.#t.discardStdin&&K.default.stdin.isTTY&&this.#i&&(et.stop(),this.#i=!1),this):this}succeed(e){return this.stopAndPersist({symbol:J.success,text:e})}fail(e){return this.stopAndPersist({symbol:J.error,text:e})}warn(e){return this.stopAndPersist({symbol:J.warning,text:e})}info(e){return this.stopAndPersist({symbol:J.info,text:e})}stopAndPersist(e={}){if(this.#l)return this;let i=e.prefixText??this.#o,n=this.#F(i," "),r=e.symbol??" ",s=e.text??this.text,o=typeof s=="string"?(r?" ":"")+s:"",a=e.suffixText??this.#a,D=this.#g(a," "),l=n+r+o+D+`
|
|
33
|
-
`;return this.stop(),this.#n.write(l),this}};function it(t){return new tt(t)}var C=m(require("picocolors"),1);var P=require("fs/promises"),V=require("path"),Di=async({appName:t,root:e,packageManager:i,docker:n,eslint:r})=>{let s=JSON.parse(await(0,P.readFile)((0,V.join)(__dirname,"..","package.json"),"utf-8")),u={name:t,version:"1.0.0",private:!0,scripts:{"config:init":"turbo config:init",dev:"turbo dev",build:"turbo build",start:"turbo start",db:"turbo db",...r?{lint:"turbo lint","lint:fix":"turbo lint:fix"}:{},...n?{"docker:dev":`docker compose -f ./docker-compose-dev.yml -p ${t}-dev up -d`,"docker:prod":`docker compose -f ./docker-compose.yml -p ${t} up -d`}:{}},devDependencies:{...r?{"eslint-config-typescript-vitnode":`^${s.version}`}:{},turbo:"^2.3.3"},packageManager:i,workspaces:["apps/*"]};await(0,P.writeFile)((0,V.join)(e,"package.json"),JSON.stringify(u,null,2));let o={name:"frontend",version:"1.0.0",private:!0,scripts:{postinstall:"vitnode-frontend init",dev:"next dev --turbo",build:"next build",start:"next start","start:prod":"node server.js",lint:"eslint .","lint:fix":"eslint . --fix"},dependencies:{"@hookform/resolvers":"^3.
|
|
33
|
+
`;return this.stop(),this.#n.write(l),this}};function it(t){return new tt(t)}var C=m(require("picocolors"),1);var P=require("fs/promises"),V=require("path"),Di=async({appName:t,root:e,packageManager:i,docker:n,eslint:r})=>{let s=JSON.parse(await(0,P.readFile)((0,V.join)(__dirname,"..","package.json"),"utf-8")),u={name:t,version:"1.0.0",private:!0,scripts:{"config:init":"turbo config:init",dev:"turbo dev",build:"turbo build",start:"turbo start",db:"turbo db",...r?{lint:"turbo lint","lint:fix":"turbo lint:fix"}:{},...n?{"docker:dev":`docker compose -f ./docker-compose-dev.yml -p ${t}-dev up -d`,"docker:prod":`docker compose -f ./docker-compose.yml -p ${t} up -d`}:{}},devDependencies:{...r?{"eslint-config-typescript-vitnode":`^${s.version}`}:{},turbo:"^2.3.3"},packageManager:i,workspaces:["apps/*"]};await(0,P.writeFile)((0,V.join)(e,"package.json"),JSON.stringify(u,null,2));let o={name:"frontend",version:"1.0.0",private:!0,scripts:{postinstall:"vitnode-frontend init",dev:"next dev --turbo",build:"next build",start:"next start","start:prod":"node server.js",lint:"eslint .","lint:fix":"eslint . --fix"},dependencies:{"@hookform/resolvers":"^3.10.0",geist:"^1.3.1","lucide-react":"^0.469.0",next:"^15.1.4","next-intl":"4.0.0-beta-ddd5ae5",react:"^19.0.0","react-dom":"^19.0.0","react-hook-form":"^7.54.2",recharts:"^2.15.0",shiki:"^1.26.1",sonner:"^1.7.1","vitnode-frontend":`^${s.version}`,zod:"^3.24.1"},devDependencies:{"@types/node":"^22.10.5","@types/react":"^19.0.3","@types/react-dom":"^19.0.2",autoprefixer:"^10.4.20","eslint-config-typescript-vitnode":`^${s.version}`,postcss:"^8.4.49",shared:i.startsWith("npm")?"*":"workspace:*",tailwindcss:"^3.4.17",typescript:"^5.7.2","vitnode-shared":`^${s.version}`}};await(0,P.writeFile)((0,V.join)(e,"apps","frontend","package.json"),JSON.stringify(o,null,2));let a={name:"backend",version:"1.0.0",private:!0,scripts:{"drizzle-kit":"drizzle-kit","config:init":"vitnode-backend init",dev:"vitnode-backend init && cross-env NODE_ENV=development nest start -w",build:"nest build",start:"node dist/main",lint:"eslint .","lint:fix":"eslint . --fix",db:"vitnode-backend db"},dependencies:{"@nestjs/cache-manager":"^3.0.0-next.0","@nestjs/common":"^10.4.15","@nestjs/core":"^10.4.15","@nestjs/platform-express":"^10.4.15","@nestjs/schedule":"^4.1.2","@nestjs/swagger":"^8.1.0","@react-email/components":"^0.0.32","class-transformer":"^0.5.1","class-validator":"^0.14.1","drizzle-kit":"^0.30.1","drizzle-orm":"^0.38.3",react:"^19.0.0","react-dom":"^19.0.0","reflect-metadata":"^0.2.2","vitnode-backend":`^${s.version}`},devDependencies:{"@nestjs/cli":"^10.4.9","@nestjs/schematics":"^10.2.3","@swc/cli":"^0.5.2","@types/express":"^5.0.0","@types/node":"^22.10.5","@types/react":"^19.0.3","cross-env":"^7.0.3","eslint-config-typescript-vitnode":`^${s.version}`,shared:i.startsWith("npm")?"*":"workspace:*",typescript:"^5.7.2","vitnode-shared":`^${s.version}`}};await(0,P.writeFile)((0,V.join)(e,"apps","backend","package.json"),JSON.stringify(a,null,2));let D={name:"shared",version:"1.0.0",private:!0,scripts:{build:"tsc",dev:"tsc -w",lint:"eslint .","lint:fix":"eslint . --fix"},exports:{"./*":{require:"./dist/*.js",import:"./dist/*.js",types:"./dist/*.d.ts"}},dependencies:{"@nestjs/common":"^10.4.15","@nestjs/swagger":"^8.1.0"},devDependencies:{"@types/multer":"^1.4.12","@types/node":"^22.10.5","class-transformer":"^0.5.1","class-validator":"^0.14.1","eslint-config-typescript-vitnode":`^${s.version}`,typescript:"^5.7.2","vitnode-shared":`^${s.version}`}};await(0,P.writeFile)((0,V.join)(e,"apps","shared","package.json"),JSON.stringify(D,null,2))};var tn=m(Xi(),1),nn=m(require("picocolors"),1);var Zi=require("child_process"),ht=require("dns/promises"),Qi=require("url");async function en(){try{return await(0,ht.lookup)("registry.yarnpkg.com"),!0}catch{let t=Hr();if(!t)return!1;let{hostname:e}=new Qi.URL(t);if(!e)return!1;try{return await(0,ht.lookup)(e),!0}catch{return!1}}}function Hr(){if(process.env.https_proxy)return process.env.https_proxy;try{let t=(0,Zi.execSync)("npm config get https-proxy").toString().trim();return t!=="null"?t:void 0}catch{return}}var rn=async({packageManager:t})=>{let e=t.split("@")[0],i=await en(),n=e==="npm"?["install","--force"]:["install"];return i||(console.log(nn.default.yellow(`You appear to be offline.
|
|
34
34
|
Falling back to the local cache.`)),n.push("--offline")),new Promise((r,s)=>{(0,tn.default)(e,n,{stdio:"ignore",env:{...process.env,ADBLOCK:"1",NODE_ENV:"development",DISABLE_OPENCOLLECTIVE:"1"}}).on("close",o=>{if(o!==0){s({command:`${e} ${n.join(" ")}`});return}r()})})};var g=require("fs/promises"),on=async({root:t,appName:e,packageManager:i,eslint:n,docker:r,install:s})=>{let u=i.startsWith("npm"),o=i.split("@")[0],a=(0,E.join)(__dirname,"..","templates"),D=it(`Creating a new VitNode app in ${C.default.green(t)}. Using ${C.default.green(i)}...`).start();if(await(0,g.mkdir)(t,{recursive:!0}),ne(t,e)||process.exit(1),process.chdir(t),D.text="Copying files...",await(0,g.cp)((0,E.join)(a,"basic"),t,{recursive:!0}),D.text="Creating package.json...",Di({appName:e,root:t,packageManager:i,docker:r,eslint:n}),D.text="Renaming files...",await(0,g.rename)((0,E.join)(t,".gitignore_template"),(0,E.join)(t,".gitignore")),D.text="Changing tailwind.config.ts...",i.startsWith("npm")){let h=(0,E.join)(t,"apps","frontend","tailwind.config.ts"),_=(await(0,g.readFile)(h,"utf-8")).replace("./node_modules/vitnode-frontend/src/components/**/*.tsx","../../node_modules/vitnode-frontend/src/components/**/*.tsx").replace("./node_modules/vitnode-frontend/src/views/**/*.tsx","../../node_modules/vitnode-frontend/src/views/**/*.tsx");await(0,g.writeFile)(h,_)}if(i.startsWith("pnpm")&&(D.text="Copying pnpm template...",await(0,g.cp)((0,E.join)(a,"pnpm"),t,{recursive:!0})),n&&(D.text="Copying eslint template...",await(0,g.cp)((0,E.join)(a,"eslint"),t,{recursive:!0})),r){D.text="Copying docker template...",await(0,g.cp)((0,E.join)(a,"docker"),t,{recursive:!0}),D.text="Setup docker-compose-dev.yml...";let h=(0,E.join)(t,"docker-compose-dev.yml"),_=(await(0,g.readFile)(h,"utf-8")).replace("vitnode_postgres_dev",`${e}_postgres_dev`).replace("vitnode_pgadmin_dev",`${e}_pgadmin_dev`);await(0,g.writeFile)(h,_)}D.text="Changing .env file...",await(0,g.copyFile)((0,E.join)(t,".env.template"),(0,E.join)(t,".env"));let l=(0,E.join)(t,".env"),c=(await(0,g.readFile)(l,"utf-8")).replace("LOGIN_TOKEN_SECRET=vitnode_secret",`LOGIN_TOKEN_SECRET=${(0,sn.randomBytes)(32).toString("hex")}`);await(0,g.writeFile)(l,c),s&&(D.text="Installing dependencies...",await rn({packageManager:i})),console.log(`
|
|
35
35
|
`+C.default.blue(un.default.textSync("VitNode",{horizontalLayout:"full"})),+`
|
|
36
36
|
`),D.succeed(` ${C.default.green("Success!")} Created ${C.default.cyan(e)} at ${C.default.cyan(t)}`),console.log(`Inside that directory, you can run several commands:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-vitnode-app",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "Create a new VitNode app in seconds.",
|
|
5
5
|
"author": "VitNode Team",
|
|
6
6
|
"license": "MIT",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"ora": "^8.1.1",
|
|
43
43
|
"tsup": "^8.3.5",
|
|
44
44
|
"typescript": "^5.7.2",
|
|
45
|
-
"eslint-config-typescript-vitnode": "0.1.
|
|
45
|
+
"eslint-config-typescript-vitnode": "0.1.4"
|
|
46
46
|
},
|
|
47
47
|
"scripts": {
|
|
48
48
|
"lint": "eslint .",
|
|
@@ -1,5 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ThemeLayout } from 'vitnode-frontend/views/theme/layout/theme-layout';
|
|
2
|
+
|
|
3
|
+
import { Footer } from './footer';
|
|
2
4
|
|
|
3
5
|
export default function Layout({ children }: { children: React.ReactNode }) {
|
|
4
|
-
return
|
|
6
|
+
return (
|
|
7
|
+
<>
|
|
8
|
+
<ThemeLayout>{children}</ThemeLayout>
|
|
9
|
+
<Footer />
|
|
10
|
+
</>
|
|
11
|
+
);
|
|
5
12
|
}
|
|
@@ -470,13 +470,6 @@
|
|
|
470
470
|
"desc_with_children": "You have sub-navigations. If you delete this navigation, all sub-navigations will be moved to the parent navigation.",
|
|
471
471
|
"success": "Navigation has been deleted."
|
|
472
472
|
}
|
|
473
|
-
},
|
|
474
|
-
"editor": {
|
|
475
|
-
"title": "Editor",
|
|
476
|
-
"sticky": {
|
|
477
|
-
"label": "Sticky Toolbar",
|
|
478
|
-
"desc": "The toolbar will be fixed at the top of the screen."
|
|
479
|
-
}
|
|
480
473
|
}
|
|
481
474
|
},
|
|
482
475
|
"langs": {
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { ThemeLayout } from 'vitnode-frontend/views/theme/layout/theme-layout';
|
|
2
|
-
|
|
3
|
-
import { Footer } from './footer';
|
|
4
|
-
|
|
5
|
-
export default function Layout({ children }: { children: React.ReactNode }) {
|
|
6
|
-
return (
|
|
7
|
-
<>
|
|
8
|
-
<ThemeLayout>{children}</ThemeLayout>
|
|
9
|
-
<Footer />
|
|
10
|
-
</>
|
|
11
|
-
);
|
|
12
|
-
}
|
|
File without changes
|
/package/templates/basic/apps/frontend/src/app/[locale]/(main)/{(layout)/footer.tsx → footer.tsx}
RENAMED
|
File without changes
|
|
File without changes
|
/package/templates/basic/apps/frontend/src/app/[locale]/(main)/{(layout)/page.tsx → page.tsx}
RENAMED
|
File without changes
|