create-vitnode-app 0.0.9-canary.61 → 0.0.9-canary.65
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/README.md +6 -6
- package/dist/index.cjs +2 -2
- package/package.json +2 -2
- package/templates/basic/apps/frontend/src/app/[locale]/(main)/(layout)/(vitnode)/page.tsx +30 -0
- package/templates/basic/apps/frontend/src/app/[locale]/(main)/(layout)/layout.tsx +9 -0
- package/templates/basic/apps/frontend/src/app/[locale]/{error.tsx → (main)/(layout)/not-found.tsx} +2 -4
- package/templates/basic/apps/frontend/src/app/[locale]/(main)/layout.tsx +6 -5
- package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/plugins/[code]/dev/layout.tsx +3 -2
- package/templates/basic/apps/frontend/src/app/[locale]/admin/layout.tsx +5 -7
- package/templates/basic/apps/frontend/src/app/[locale]/layout.tsx +3 -4
- package/templates/basic/apps/frontend/src/graphql/types.ts +2 -26
- package/templates/basic/apps/frontend/src/i18n.ts +13 -0
- package/templates/basic/apps/frontend/src/plugins/admin/langs/en.json +2 -24
- package/templates/basic/apps/frontend/src/plugins/core/langs/en.json +2 -1
- package/templates/basic/apps/frontend/src/app/[locale]/(main)/page.tsx +0 -21
- package/templates/basic/apps/frontend/src/i18n/request.ts +0 -13
- /package/templates/basic/apps/frontend/src/app/[locale]/(main)/{(vitnode) → (layout)/(vitnode)}/[...slug]/page.tsx +0 -0
- /package/templates/basic/apps/frontend/src/app/[locale]/(main)/{(vitnode) → (layout)/(vitnode)}/legal/[code]/page.tsx +0 -0
- /package/templates/basic/apps/frontend/src/app/[locale]/(main)/{(vitnode) → (layout)/(vitnode)}/legal/page.tsx +0 -0
- /package/templates/basic/apps/frontend/src/app/[locale]/(main)/{(vitnode) → (layout)/(vitnode)}/login/layout.tsx +0 -0
- /package/templates/basic/apps/frontend/src/app/[locale]/(main)/{(vitnode) → (layout)/(vitnode)}/login/page.tsx +0 -0
- /package/templates/basic/apps/frontend/src/app/[locale]/(main)/{(vitnode) → (layout)/(vitnode)}/profile/[id]/page.tsx +0 -0
- /package/templates/basic/apps/frontend/src/app/[locale]/(main)/{(vitnode) → (layout)/(vitnode)}/register/confirm-email/page.tsx +0 -0
- /package/templates/basic/apps/frontend/src/app/[locale]/(main)/{(vitnode) → (layout)/(vitnode)}/register/layout.tsx +0 -0
- /package/templates/basic/apps/frontend/src/app/[locale]/(main)/{(vitnode) → (layout)/(vitnode)}/register/page.tsx +0 -0
- /package/templates/basic/apps/frontend/src/app/[locale]/(main)/{(vitnode) → (layout)/(vitnode)}/settings/devices/page.tsx +0 -0
- /package/templates/basic/apps/frontend/src/app/[locale]/(main)/{(vitnode) → (layout)/(vitnode)}/settings/files/page.tsx +0 -0
- /package/templates/basic/apps/frontend/src/app/[locale]/(main)/{(vitnode) → (layout)/(vitnode)}/settings/layout.tsx +0 -0
- /package/templates/basic/apps/frontend/src/app/[locale]/(main)/{(vitnode) → (layout)/(vitnode)}/settings/page.tsx +0 -0
- /package/templates/basic/apps/frontend/src/app/[locale]/(main)/{error.tsx → (layout)/error.tsx} +0 -0
- /package/templates/basic/apps/frontend/src/app/[locale]/{global.css → (main)/global.css} +0 -0
package/README.md
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
# (VitNode) Create App
|
|
2
|
+
|
|
3
|
+
This package is a CLI tool to create a new VitNode app quickly.
|
|
4
|
+
|
|
5
|
+
Script based on [Create Next App](https://nextjs.org/).
|
|
6
|
+
|
|
1
7
|
<p align="center">
|
|
2
8
|
<br>
|
|
3
9
|
<a href="https://vitnode.com/" target="_blank">
|
|
@@ -11,12 +17,6 @@
|
|
|
11
17
|
<br>
|
|
12
18
|
</p>
|
|
13
19
|
|
|
14
|
-
# (VitNode) Create App
|
|
15
|
-
|
|
16
|
-
This package is a CLI tool to create a new VitNode app quickly.
|
|
17
|
-
|
|
18
|
-
Script based on [Create Next App](https://nextjs.org/).
|
|
19
|
-
|
|
20
20
|
## Usage
|
|
21
21
|
|
|
22
22
|
```bash
|
package/dist/index.cjs
CHANGED
|
@@ -24,7 +24,7 @@ Expecting one of '${i.join("', '")}'`);let r=`${e}Help`;return this.on(r,u=>{let
|
|
|
24
24
|
`),process.exit(1))},Tt=async t=>{let e=t.opts(),n={packageManager:e.packageManager,eslint:e.eslint,install:!e.skipInstall,docker:e.docker};if(!e.packageManager){let i=await St(),r=G.default.blue("package manager"),{packageManager:u}=await(0,U.default)({onState:I,name:"packageManager",type:"select",message:`Which ${r} do you want to use?`,initial:e.packageManager,choices:[{title:`npm${i.npm?`@${i.npm}`:""}`,value:"npm",disabled:!i.npm},{title:`pnpm${i.pnpm?`@${i.pnpm}`:""}`,value:"pnpm",disabled:!i.pnpm}]});n={...n,packageManager:`${u}@${i[u]}`}}if(e.eslint===void 0){let i=G.default.blue("ESLint"),{eslint:r}=await(0,U.default)({onState:I,type:"toggle",name:"eslint",message:`Would you like to use ${i}?`,initial:e.eslint?"Yes":"No",active:"Yes",inactive:"No"});n={...n,eslint:!!r}}if(e.docker===void 0){let i=G.default.blue("Dockerfile & Docker Compose"),{docker:r}=await(0,U.default)({onState:I,type:"toggle",name:"docker",message:`Would you like to create ${i}?`,initial:e.i18nRouting?"Yes":"No",active:"Yes",inactive:"No"});n={...n,docker:!!r}}if(e.skipInstall===void 0){let i=G.default.blue("Install dependencies"),{install:r}=await(0,U.default)({onState:I,type:"toggle",name:"install",message:`Would you like to ${i}?`,initial:e.eslint?"Yes":"No",active:"Yes",inactive:"No"});n={...n,install:!!r}}return n};var re=require("fs"),kt=require("path"),Se=p(require("picocolors"),1);function ue(t,e){let n=[".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"],i=(0,re.readdirSync)(t).filter(r=>!n.includes(r)&&!r.endsWith(".iml"));if(i.length>0){console.log(`The directory ${Se.default.green(e)} contains files that could conflict:
|
|
25
25
|
`);for(let r of i)try{(0,re.lstatSync)((0,kt.join)(t,r)).isDirectory()?console.log(`${Se.default.blue(r)}/`):console.log(r)}catch{console.log(r)}return console.log(`
|
|
26
26
|
Either try using a new directory name, or remove the files listed above.
|
|
27
|
-
`),!1}return!0}var $t=require("constants"),Pt=require("fs/promises");async function Nt(t){try{return await(0,Pt.access)(t,$t.W_OK),!0}catch{return!1}}var It=p(require("validate-npm-package-name"),1),Te=({name:t})=>{let e=(0,It.default)(t);return e.validForNewPackages?{valid:!0}:{valid:!1,problems:[...e.errors??[],...e.warnings??[]]}};var Rt={name:"create-vitnode-app",version:"0.0.9-canary.
|
|
27
|
+
`),!1}return!0}var $t=require("constants"),Pt=require("fs/promises");async function Nt(t){try{return await(0,Pt.access)(t,$t.W_OK),!0}catch{return!1}}var It=p(require("validate-npm-package-name"),1),Te=({name:t})=>{let e=(0,It.default)(t);return e.validForNewPackages?{valid:!0}:{valid:!1,problems:[...e.errors??[],...e.warnings??[]]}};var Rt={name:"create-vitnode-app",version:"0.0.9-canary.64",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.7.0",picocolors:"^1.1.0",prompts:"^2.4.2","validate-npm-package-name":"^6.0.0"},devDependencies:{"@types/cross-spawn":"^6.0.6","@types/figlet":"^1.5.8","@types/node":"^22.7.4","@types/prompts":"^2.4.9","@types/validate-npm-package-name":"^4.0.2",commander:"^12.1.0","cross-spawn":"^7.0.3","eslint-config-typescript-vitnode":"workspace:*",ora:"^8.1.0",tsup:"^8.3.0",typescript:"^5.6.2"}};var C=require("fs"),A=require("path"),oi=require("crypto"),ai=p(require("figlet"),1);var Z=p(require("process"),1);var jt=(t=0)=>e=>`\x1B[${e+t}m`,Vt=(t=0)=>e=>`\x1B[${38+t};5;${e}m`,Mt=(t=0)=>(e,n,i)=>`\x1B[${38+t};2;${e};${n};${i}m`,m={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]}},Cu=Object.keys(m.modifier),Ni=Object.keys(m.color),Ii=Object.keys(m.bgColor),Eu=[...Ni,...Ii];function Ri(){let t=new Map;for(let[e,n]of Object.entries(m)){for(let[i,r]of Object.entries(n))m[i]={open:`\x1B[${r[0]}m`,close:`\x1B[${r[1]}m`},n[i]=m[i],t.set(r[0],r[1]);Object.defineProperty(m,e,{value:n,enumerable:!1})}return Object.defineProperty(m,"codes",{value:t,enumerable:!1}),m.color.close="\x1B[39m",m.bgColor.close="\x1B[49m",m.color.ansi=jt(),m.color.ansi256=Vt(),m.color.ansi16m=Mt(),m.bgColor.ansi=jt(10),m.bgColor.ansi256=Vt(10),m.bgColor.ansi16m=Mt(10),Object.defineProperties(m,{rgbToAnsi256:{value(e,n,i){return e===n&&n===i?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(n/255*5)+Math.round(i/255*5)},enumerable:!1},hexToRgb:{value(e){let n=/[a-f\d]{6}|[a-f\d]{3}/i.exec(e.toString(16));if(!n)return[0,0,0];let[i]=n;i.length===3&&(i=[...i].map(u=>u+u).join(""));let r=Number.parseInt(i,16);return[r>>16&255,r>>8&255,r&255]},enumerable:!1},hexToAnsi256:{value:e=>m.rgbToAnsi256(...m.hexToRgb(e)),enumerable:!1},ansi256ToAnsi:{value(e){if(e<8)return 30+e;if(e<16)return 90+(e-8);let n,i,r;if(e>=232)n=((e-232)*10+8)/255,i=n,r=n;else{e-=16;let o=e%36;n=Math.floor(e/36)/5,i=Math.floor(o/6)/5,r=o%6/5}let u=Math.max(n,i,r)*2;if(u===0)return 30;let s=30+(Math.round(r)<<2|Math.round(i)<<1|Math.round(n));return u===2&&(s+=60),s},enumerable:!1},rgbToAnsi:{value:(e,n,i)=>m.ansi256ToAnsi(m.rgbToAnsi256(e,n,i)),enumerable:!1},hexToAnsi:{value:e=>m.ansi256ToAnsi(m.hexToAnsi256(e)),enumerable:!1}}),m}var ji=Ri(),v=ji;var oe=p(require("process"),1),Wt=p(require("os"),1),ke=p(require("tty"),1);function x(t,e=globalThis.Deno?globalThis.Deno.args:oe.default.argv){let n=t.startsWith("-")?"":t.length===1?"-":"--",i=e.indexOf(n+t),r=e.indexOf("--");return i!==-1&&(r===-1||i<r)}var{env:d}=oe.default,se;x("no-color")||x("no-colors")||x("color=false")||x("color=never")?se=0:(x("color")||x("colors")||x("color=true")||x("color=always"))&&(se=1);function Vi(){if("FORCE_COLOR"in d)return d.FORCE_COLOR==="true"?1:d.FORCE_COLOR==="false"?0:d.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(d.FORCE_COLOR,10),3)}function Mi(t){return t===0?!1:{level:t,hasBasic:!0,has256:t>=2,has16m:t>=3}}function Hi(t,{streamIsTTY:e,sniffFlags:n=!0}={}){let i=Vi();i!==void 0&&(se=i);let r=n?se:i;if(r===0)return 0;if(n){if(x("color=16m")||x("color=full")||x("color=truecolor"))return 3;if(x("color=256"))return 2}if("TF_BUILD"in d&&"AGENT_NAME"in d)return 1;if(t&&!e&&r===void 0)return 0;let u=r||0;if(d.TERM==="dumb")return u;if(oe.default.platform==="win32"){let s=Wt.default.release().split(".");return Number(s[0])>=10&&Number(s[2])>=10586?Number(s[2])>=14931?3:2:1}if("CI"in d)return"GITHUB_ACTIONS"in d||"GITEA_ACTIONS"in d?3:["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(s=>s in d)||d.CI_NAME==="codeship"?1:u;if("TEAMCITY_VERSION"in d)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(d.TEAMCITY_VERSION)?1:0;if(d.COLORTERM==="truecolor"||d.TERM==="xterm-kitty")return 3;if("TERM_PROGRAM"in d){let s=Number.parseInt((d.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(d.TERM_PROGRAM){case"iTerm.app":return s>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(d.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(d.TERM)||"COLORTERM"in d?1:u}function Ht(t,e={}){let n=Hi(t,{streamIsTTY:t&&t.isTTY,...e});return Mi(n)}var Wi={stdout:Ht({isTTY:ke.default.isatty(1)}),stderr:Ht({isTTY:ke.default.isatty(2)})},qt=Wi;function Lt(t,e,n){let i=t.indexOf(e);if(i===-1)return t;let r=e.length,u=0,s="";do s+=t.slice(u,i)+e+n,u=i+r,i=t.indexOf(e,u);while(i!==-1);return s+=t.slice(u),s}function Gt(t,e,n,i){let r=0,u="";do{let s=t[i-1]==="\r";u+=t.slice(r,s?i-1:i)+e+(s?`\r
|
|
28
28
|
`:`
|
|
29
29
|
`)+n,r=i+1,i=t.indexOf(`
|
|
30
30
|
`,r)}while(i!==-1);return u+=t.slice(r),u}var{stdout:Ut,stderr:Yt}=qt,$e=Symbol("GENERATOR"),R=Symbol("STYLER"),Y=Symbol("IS_EMPTY"),zt=["ansi","ansi","ansi256","ansi16m"],j=Object.create(null),qi=(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 n=Ut?Ut.level:0;t.level=e.level===void 0?n:e.level};var Li=t=>{let e=(...n)=>n.join(" ");return qi(e,t),Object.setPrototypeOf(e,z.prototype),e};function z(t){return Li(t)}Object.setPrototypeOf(z.prototype,Function.prototype);for(let[t,e]of Object.entries(v))j[t]={get(){let n=ae(this,Ne(e.open,e.close,this[R]),this[Y]);return Object.defineProperty(this,t,{value:n}),n}};j.visible={get(){let t=ae(this,this[R],!0);return Object.defineProperty(this,"visible",{value:t}),t}};var Pe=(t,e,n,...i)=>t==="rgb"?e==="ansi16m"?v[n].ansi16m(...i):e==="ansi256"?v[n].ansi256(v.rgbToAnsi256(...i)):v[n].ansi(v.rgbToAnsi(...i)):t==="hex"?Pe("rgb",e,n,...v.hexToRgb(...i)):v[n][t](...i),Gi=["rgb","hex","ansi256"];for(let t of Gi){j[t]={get(){let{level:n}=this;return function(...i){let r=Ne(Pe(t,zt[n],"color",...i),v.color.close,this[R]);return ae(this,r,this[Y])}}};let e="bg"+t[0].toUpperCase()+t.slice(1);j[e]={get(){let{level:n}=this;return function(...i){let r=Ne(Pe(t,zt[n],"bgColor",...i),v.bgColor.close,this[R]);return ae(this,r,this[Y])}}}}var Ui=Object.defineProperties(()=>{},{...j,level:{enumerable:!0,get(){return this[$e].level},set(t){this[$e].level=t}}}),Ne=(t,e,n)=>{let i,r;return n===void 0?(i=t,r=e):(i=n.openAll+t,r=e+n.closeAll),{open:t,close:e,openAll:i,closeAll:r,parent:n}},ae=(t,e,n)=>{let i=(...r)=>Yi(i,r.length===1?""+r[0]:r.join(" "));return Object.setPrototypeOf(i,Ui),i[$e]=t,i[R]=e,i[Y]=n,i},Yi=(t,e)=>{if(t.level<=0||!e)return t[Y]?"":e;let n=t[R];if(n===void 0)return e;let{openAll:i,closeAll:r}=n;if(e.includes("\x1B"))for(;n!==void 0;)e=Lt(e,n.close,n.open),n=n.parent;let u=e.indexOf(`
|
|
@@ -32,7 +32,7 @@ Either try using a new directory name, or remove the files listed above.
|
|
|
32
32
|
${e}`,Qi=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),er=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),tr=(t,e,n)=>{let i=n===""?"":`with ${n.trim()}() `,r=Zi.bind(null,i,e.toString());Object.defineProperty(r,"name",er);let{writable:u,enumerable:s,configurable:o}=Qi;Object.defineProperty(t,"toString",{value:r,writable:u,enumerable:s,configurable:o})};function Ie(t,e,{ignoreNonConfigurable:n=!1}={}){let{name:i}=t;for(let r of Reflect.ownKeys(e))Ji(t,e,r,n);return Xi(t,e),tr(t,e,i),t}var De=new WeakMap,Jt=(t,e={})=>{if(typeof t!="function")throw new TypeError("Expected a function");let n,i=0,r=t.displayName||t.name||"<anonymous>",u=function(...s){if(De.set(u,++i),i===1)n=t.apply(this,s),t=void 0;else if(e.throw===!0)throw new Error(`Function \`${r}\` can only be called once`);return n};return Ie(u,t),De.set(u,i),u};Jt.callCount=t=>{if(!De.has(t))throw new Error(`The given function \`${t.name}\` is not wrapped by the \`onetime\` package`);return De.get(t)};var Kt=Jt;var N=[];N.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&N.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&N.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var le=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",Re=Symbol.for("signal-exit emitter"),je=globalThis,nr=Object.defineProperty.bind(Object),Ve=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(je[Re])return je[Re];nr(je,Re,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(e,n){this.listeners[e].push(n)}removeListener(e,n){let i=this.listeners[e],r=i.indexOf(n);r!==-1&&(r===0&&i.length===1?i.length=0:i.splice(r,1))}emit(e,n,i){if(this.emitted[e])return!1;this.emitted[e]=!0;let r=!1;for(let u of this.listeners[e])r=u(n,i)===!0||r;return e==="exit"&&(r=this.emit("afterExit",n,i)||r),r}},ce=class{},ir=t=>({onExit(e,n){return t.onExit(e,n)},load(){return t.load()},unload(){return t.unload()}}),Me=class extends ce{onExit(){return()=>{}}load(){}unload(){}},He=class extends ce{#r=We.platform==="win32"?"SIGINT":"SIGHUP";#i=new Ve;#e;#u;#t;#s={};#n=!1;constructor(e){super(),this.#e=e,this.#s={};for(let n of N)this.#s[n]=()=>{let i=this.#e.listeners(n),{count:r}=this.#i,u=e;if(typeof u.__signal_exit_emitter__=="object"&&typeof u.__signal_exit_emitter__.count=="number"&&(r+=u.__signal_exit_emitter__.count),i.length===r){this.unload();let s=this.#i.emit("exit",null,n),o=n==="SIGHUP"?this.#r:n;s||e.kill(e.pid,o)}};this.#t=e.reallyExit,this.#u=e.emit}onExit(e,n){if(!le(this.#e))return()=>{};this.#n===!1&&this.load();let i=n?.alwaysLast?"afterExit":"exit";return this.#i.on(i,e),()=>{this.#i.removeListener(i,e),this.#i.listeners.exit.length===0&&this.#i.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#n){this.#n=!0,this.#i.count+=1;for(let e of N)try{let n=this.#s[e];n&&this.#e.on(e,n)}catch{}this.#e.emit=(e,...n)=>this.#f(e,...n),this.#e.reallyExit=e=>this.#h(e)}}unload(){this.#n&&(this.#n=!1,N.forEach(e=>{let n=this.#s[e];if(!n)throw new Error("Listener not defined for signal: "+e);try{this.#e.removeListener(e,n)}catch{}}),this.#e.emit=this.#u,this.#e.reallyExit=this.#t,this.#i.count-=1)}#h(e){return le(this.#e)?(this.#e.exitCode=e||0,this.#i.emit("exit",this.#e.exitCode,null),this.#t.call(this.#e,this.#e.exitCode)):0}#f(e,...n){let i=this.#u;if(e==="exit"&&le(this.#e)){typeof n[0]=="number"&&(this.#e.exitCode=n[0]);let r=i.call(this.#e,e,...n);return this.#i.emit("exit",this.#e.exitCode,null),r}else return i.call(this.#e,e,...n)}},We=globalThis.process,{onExit:Xt,load:Pu,unload:Nu}=ir(le(We)?new He(We):new Me);var Zt=J.default.stderr.isTTY?J.default.stderr:J.default.stdout.isTTY?J.default.stdout:void 0,rr=Zt?Kt(()=>{Xt(()=>{Zt.write("\x1B[?25h")},{alwaysLast:!0})}):()=>{},Qt=rr;var he=!1,V={};V.show=(t=qe.default.stderr)=>{t.isTTY&&(he=!1,t.write("\x1B[?25h"))};V.hide=(t=qe.default.stderr)=>{t.isTTY&&(Qt(),he=!0,t.write("\x1B[?25l"))};V.toggle=(t,e)=>{t!==void 0&&(he=t),he?V.show(e):V.hide(e)};var Le=V;var Q=p(Ge(),1);var y=p(require("process"),1);function Ue(){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:O.blue("\u2139"),success:O.green("\u2714"),warning:O.yellow("\u26A0"),error:O.red("\u2716")},or={info:O.blue("i"),success:O.green("\u221A"),warning:O.yellow("\u203C"),error:O.red("\xD7")},ar=Ue()?sr:or,K=ar;function Ye({onlyFirst:t=!1}={}){let n=["[\\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(n,t?void 0:"g")}var Dr=Ye();function X(t){if(typeof t!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof t}\``);return t.replace(Dr,"")}function rn(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 un(t){return t===12288||t>=65281&&t<=65376||t>=65504&&t<=65510}function sn(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>=9800&&t<=9811||t===9855||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<=12771||t>=12783&&t<=12830||t>=12832&&t<=12871||t>=12880&&t<=19903||t>=19968&&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>=101632&&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===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<=129672||t>=129680&&t<=129725||t>=129727&&t<=129733||t>=129742&&t<=129755||t>=129760&&t<=129768||t>=129776&&t<=129784||t>=131072&&t<=196605||t>=196608&&t<=262141}function lr(t){if(!Number.isSafeInteger(t))throw new TypeError(`Expected a code point, got \`${typeof t}\`.`)}function on(t,{ambiguousAsWide:e=!1}={}){return lr(t),un(t)||sn(t)||e&&rn(t)?2:1}var an=()=>/[#*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 cr=new Intl.Segmenter,hr=/^\p{Default_Ignorable_Code_Point}$/u;function ze(t,e={}){if(typeof t!="string"||t.length===0)return 0;let{ambiguousIsNarrow:n=!0,countAnsiEscapeCodes:i=!1}=e;if(i||(t=X(t)),t.length===0)return 0;let r=0,u={ambiguousAsWide:!n};for(let{segment:s}of cr.segment(t)){let o=s.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)&&!hr.test(s)){if(an().test(s)){r+=2;continue}r+=on(o,u)}}return r}function Je({stream:t=process.stdout}={}){return!!(t&&t.isTTY&&process.env.TERM!=="dumb"&&!("CI"in process.env))}var Ke=p(require("process"),1);function Xe(){let{env:t}=Ke.default,{TERM:e,TERM_PROGRAM:n}=t;return Ke.default.platform!=="win32"?e!=="linux":!!t.WT_SESSION||!!t.TERMINUS_SUBLIME||t.ConEmuTask==="{cmd::Cmder}"||n==="Terminus-Sublime"||n==="vscode"||e==="xterm-256color"||e==="alacritty"||e==="rxvt-unicode"||e==="rxvt-unicode-256color"||t.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var w=p(require("process"),1),fr=3,Ze=class{#r=0;start(){this.#r++,this.#r===1&&this.#i()}stop(){if(this.#r<=0)throw new Error("`stop` called more times than `start`");this.#r--,this.#r===0&&this.#e()}#i(){w.default.platform==="win32"||!w.default.stdin.isTTY||(w.default.stdin.setRawMode(!0),w.default.stdin.on("data",this.#u),w.default.stdin.resume())}#e(){w.default.stdin.isTTY&&(w.default.stdin.off("data",this.#u),w.default.stdin.pause(),w.default.stdin.setRawMode(!1))}#u(e){e[0]===fr&&w.default.emit("SIGINT")}},mr=new Ze,Qe=mr;var pr=p(Ge(),1),et=class{#r=0;#i=!1;#e=0;#u=0;#t;#s;#n;#h;#f;#D;#l;#c;#p;#o;#a;color;constructor(e){typeof e=="string"&&(e={text:e}),this.#t={color:"cyan",stream:Z.default.stderr,discardStdin:!0,hideCursor:!0,...e},this.color=this.#t.color,this.spinner=this.#t.spinner,this.#f=this.#t.interval,this.#n=this.#t.stream,this.#D=typeof this.#t.isEnabled=="boolean"?this.#t.isEnabled:Je({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,Z.default.env.NODE_ENV==="test"&&(this._stream=this.#n,this._isEnabled=this.#D,Object.defineProperty(this,"_linesToClear",{get(){return this.#r},set(n){this.#r=n}}),Object.defineProperty(this,"_frameIndex",{get(){return this.#u}}),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.#m()}get interval(){return this.#f??this.#s.interval??100}get spinner(){return this.#s}set spinner(e){if(this.#u=0,this.#f=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(!Xe())this.#s=Q.default.line;else if(e===void 0)this.#s=Q.default.dots;else if(e!=="default"&&Q.default[e])this.#s=Q.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.#p}set text(e=""){this.#p=e,this.#m()}get prefixText(){return this.#o}set prefixText(e=""){this.#o=e,this.#m()}get suffixText(){return this.#a}set suffixText(e=""){this.#a=e,this.#m()}get isSpinning(){return this.#h!==void 0}#d(e=this.#o,n=" "){return typeof e=="string"&&e!==""?e+n:typeof e=="function"?e()+n:""}#F(e=this.#a,n=" "){return typeof e=="string"&&e!==""?n+e:typeof e=="function"?n+e():""}#m(){let e=this.#n.columns??80,n=this.#d(this.#o,"-"),i=this.#F(this.#a,"-"),r=" ".repeat(this.#c)+n+"--"+this.#p+"--"+i;this.#e=0;for(let u of X(r).split(`
|
|
33
33
|
`))this.#e+=Math.max(1,Math.ceil(ze(u,{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{frames:e}=this.#s,n=e[this.#u];this.color&&(n=O[this.color](n)),this.#u=++this.#u%e.length;let i=typeof this.#o=="string"&&this.#o!==""?this.#o+" ":"",r=typeof this.text=="string"?" "+this.text:"",u=typeof this.#a=="string"&&this.#a!==""?" "+this.#a:"";return i+n+r+u}clear(){if(!this.#D||!this.#n.isTTY)return this;this.#n.cursorTo(0);for(let e=0;e<this.#r;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.#r=0,this}render(){return this.#l?this:(this.clear(),this.#n.write(this.frame()),this.#r=this.#e,this)}start(e){return e&&(this.text=e),this.#l?this:this.#D?this.isSpinning?this:(this.#t.hideCursor&&Le.hide(this.#n),this.#t.discardStdin&&Z.default.stdin.isTTY&&(this.#i=!0,Qe.start()),this.render(),this.#h=setInterval(this.render.bind(this),this.interval),this):(this.text&&this.#n.write(`- ${this.text}
|
|
34
34
|
`),this)}stop(){return this.#D?(clearInterval(this.#h),this.#h=void 0,this.#u=0,this.clear(),this.#t.hideCursor&&Le.show(this.#n),this.#t.discardStdin&&Z.default.stdin.isTTY&&this.#i&&(Qe.stop(),this.#i=!1),this):this}succeed(e){return this.stopAndPersist({symbol:K.success,text:e})}fail(e){return this.stopAndPersist({symbol:K.error,text:e})}warn(e){return this.stopAndPersist({symbol:K.warning,text:e})}info(e){return this.stopAndPersist({symbol:K.info,text:e})}stopAndPersist(e={}){if(this.#l)return this;let n=e.prefixText??this.#o,i=this.#d(n," "),r=e.symbol??" ",u=e.text??this.text,s=typeof u=="string"?" "+u:"",o=e.suffixText??this.#a,a=this.#F(o," "),D=i+r+s+a+`
|
|
35
|
-
`;return this.stop(),this.#n.write(D),this}};function tt(t){return new et(t)}var b=p(require("picocolors"),1);var M=require("fs"),ee=require("path"),Dn=({appName:t,root:e,packageManager:n,docker:i,eslint:r})=>{let u=JSON.parse((0,M.readFileSync)((0,ee.join)(__dirname,"..","package.json"),"utf-8")),s={name:t,version:"1.0.0",private:!0,scripts:{"config:init":"turbo config:init",dev:"turbo config:init && turbo dev",build:"turbo build",start:"turbo start",codegen:"turbo codegen",db:"turbo db",...r?{lint:"turbo lint","lint:fix":"turbo lint:fix"}:{},...i?{"docker:dev":`docker compose -f ./docker-compose-dev.yml -p vitnode-dev-${t} up -d`}:{}},overrides:n.startsWith("npm")?{react:"
|
|
35
|
+
`;return this.stop(),this.#n.write(D),this}};function tt(t){return new et(t)}var b=p(require("picocolors"),1);var M=require("fs"),ee=require("path"),Dn=({appName:t,root:e,packageManager:n,docker:i,eslint:r})=>{let u=JSON.parse((0,M.readFileSync)((0,ee.join)(__dirname,"..","package.json"),"utf-8")),s={name:t,version:"1.0.0",private:!0,scripts:{"config:init":"turbo config:init",dev:"turbo config:init && turbo dev",build:"turbo build",start:"turbo start",codegen:"turbo codegen",db:"turbo db",...r?{lint:"turbo lint","lint:fix":"turbo lint:fix"}:{},...i?{"docker:dev":`docker compose -f ./docker-compose-dev.yml -p vitnode-dev-${t} up -d`}:{}},overrides:n.startsWith("npm")?{react:"19.0.0-rc-1460d67c-20241003","react-dom":"19.0.0-rc-1460d67c-20241003"}:{},devDependencies:{...r?{"eslint-config-typescript-vitnode":`^${u.version}`,prettier:"^3.3.3","prettier-plugin-tailwindcss":"^0.6.8"}:{},turbo:"^2.1.2"},packageManager:n,workspaces:["apps/*"]};(0,M.writeFileSync)((0,ee.join)(e,"package.json"),JSON.stringify(s,null,2));let o={name:"frontend",version:"1.0.0",private:!0,scripts:{"config:init":"vitnode-frontend init",dev:"next dev --turbo",build:"next build",start:"next start",lint:"eslint .","lint:fix":"eslint . --fix"},dependencies:{"@hookform/resolvers":"^3.9.0",geist:"^1.3.1","lucide-react":"^0.446.0",next:"15.0.0-canary.179","next-intl":"^3.21.0-canary.0",react:"19.0.0-rc-1460d67c-20241003","react-dom":"19.0.0-rc-1460d67c-20241003","react-hook-form":"^7.53.0",sonner:"^1.5.0","vitnode-frontend":`^${u.version}`,zod:"^3.23.8"},devDependencies:{"@types/node":"^22.7.4","@types/react":"^18.3.10","@types/react-dom":"^18.3.0",autoprefixer:"^10.4.20",...r?{eslint:"^9.11.1"}:{},"eslint-config-typescript-vitnode":`^${u.version}`,"graphql-tag":"^2.12.6",postcss:"^8.4.47",tailwindcss:"^3.4.13",typescript:"^5.6.2"}};(0,M.writeFileSync)((0,ee.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",codegen:"graphql-codegen",dev:"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/common":"^10.4.4","@nestjs/core":"^10.4.4","@nestjs/graphql":"^12.2.0","@nestjs/schedule":"^4.1.1","@nestjs/throttler":"^6.2.1","@react-email/components":"^0.0.25","class-transformer":"^0.5.1","class-validator":"^0.14.1",react:"19.0.0-rc-1460d67c-20241003","react-dom":"19.0.0-rc-1460d67c-20241003","reflect-metadata":"^0.2.2","vitnode-backend":`^${u.version}`},devDependencies:{"@graphql-codegen/cli":"^5.0.2","@nestjs/cli":"^10.4.5","@nestjs/platform-express":"^10.4.4","@nestjs/schematics":"^10.1.4","@types/express":"^4.17.21","@types/node":"^22.7.4","@types/pg":"^8.11.10","@types/react":"^18.3.10","cross-env":"^7.0.3","drizzle-kit":"^0.24.2","drizzle-orm":"^0.33.0",...r?{eslint:"^9.11.1"}:{},"eslint-config-typescript-vitnode":`^${u.version}`,pg:"^8.13.0","source-map-support":"^0.5.21","ts-loader":"^9.5.1","ts-node":"^10.9.2","tsconfig-paths":"^4.2.0",typescript:"^5.6.2"}};(0,M.writeFileSync)((0,ee.join)(e,"apps","backend","package.json"),JSON.stringify(a,null,2))};var ti=p(Xn(),1),ni=p(require("picocolors"),1);var Zn=require("child_process"),ct=require("dns/promises"),Qn=require("url");function Wr(){if(process.env.https_proxy)return process.env.https_proxy;try{let t=(0,Zn.execSync)("npm config get https-proxy").toString().trim();return t!=="null"?t:void 0}catch{return}}async function ei(){try{return await(0,ct.lookup)("registry.yarnpkg.com"),!0}catch{let t=Wr();if(!t)return!1;let{hostname:e}=new Qn.URL(t);if(!e)return!1;try{return await(0,ct.lookup)(e),!0}catch{return!1}}}var ii=async({packageManager:t})=>{let e=t.split("@")[0],n=await ei(),i=e==="npm"?["install","--force"]:["install"];return n||(console.log(ni.default.yellow(`You appear to be offline.
|
|
36
36
|
Falling back to the local cache.`)),i.push("--offline")),new Promise((r,u)=>{(0,ti.default)(e,i,{stdio:"ignore",env:{...process.env,ADBLOCK:"1",NODE_ENV:"development",DISABLE_OPENCOLLECTIVE:"1"}}).on("close",o=>{if(o!==0){u({command:`${e} ${i.join(" ")}`});return}r()})})};var P=require("child_process"),ri=require("fs"),ui=require("path");function qr(){try{return(0,P.execSync)("git rev-parse --is-inside-work-tree",{stdio:"ignore"}),!0}catch{}return!1}function Lr(){try{return(0,P.execSync)("hg --cwd . root",{stdio:"ignore"}),!0}catch{}return!1}function Gr(){try{return(0,P.execSync)("git config init.defaultBranch",{stdio:"ignore"}),!0}catch{}return!1}function si(t){let e=!1;try{return(0,P.execSync)("git --version",{stdio:"ignore"}),qr()||Lr()?!1:((0,P.execSync)("git init",{stdio:"ignore"}),e=!0,Gr()||(0,P.execSync)("git checkout -b main",{stdio:"ignore"}),(0,P.execSync)("git add -A",{stdio:"ignore"}),(0,P.execSync)('git commit -m "Initial commit from Create VitNode App"',{stdio:"ignore"}),!0)}catch{if(e)try{(0,ri.rmSync)((0,ui.join)(t,".git"),{recursive:!0,force:!0})}catch{}return!1}}var Di=async({root:t,appName:e,packageManager:n,eslint:i,docker:r,install:u})=>{let s=n.startsWith("npm"),o=n.split("@")[0],a=(0,A.join)(__dirname,"..","templates"),D=tt(`Creating a new VitNode app in ${b.default.green(t)}. Using ${b.default.green(n)}...`).start();if((0,C.mkdirSync)(t,{recursive:!0}),ue(t,e)||process.exit(1),process.chdir(t),D.text="Copying files...",(0,C.cpSync)((0,A.join)(a,"basic"),t,{recursive:!0}),D.text="Creating package.json...",Dn({appName:e,root:t,packageManager:n,docker:r,eslint:i}),D.text="Renaming files...",(0,C.renameSync)((0,A.join)(t,".gitignore_template"),(0,A.join)(t,".gitignore")),(0,C.renameSync)((0,A.join)(t,".npmrc_template"),(0,A.join)(t,".npmrc")),D.text="Changing tailwind.config.ts...",n.startsWith("npm")){let E=(0,A.join)(t,"apps","frontend","tailwind.config.ts"),_=(0,C.readFileSync)(E,"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");(0,C.writeFileSync)(E,_)}n.startsWith("pnpm")&&(D.text="Copying pnpm template...",(0,C.cpSync)((0,A.join)(a,"pnpm"),t,{recursive:!0})),i&&(D.text="Copying eslint template...",(0,C.cpSync)((0,A.join)(a,"eslint"),t,{recursive:!0})),r&&(D.text="Copying docker template...",(0,C.cpSync)((0,A.join)(a,"docker"),t,{recursive:!0})),D.text="Changing .env file...",(0,C.copyFileSync)((0,A.join)(t,".env.template"),(0,A.join)(t,".env"));let l=(0,A.join)(t,".env"),f=(0,C.readFileSync)(l,"utf-8").replace("LOGIN_TOKEN_SECRET=vitnode_secret",`LOGIN_TOKEN_SECRET=${(0,oi.randomBytes)(32).toString("hex")}`);(0,C.writeFileSync)(l,f),u&&(D.text="Installing dependencies...",await ii({packageManager:n})),D.text="Initializing a git repository...",si(t),console.log(`
|
|
37
37
|
`+b.default.blue(ai.default.textSync("VitNode",{horizontalLayout:"full"})),+`
|
|
38
38
|
`),D.succeed(` ${b.default.green("Success!")} Created ${b.default.cyan(e)} at ${b.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.0.9-canary.
|
|
3
|
+
"version": "0.0.9-canary.65",
|
|
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.0",
|
|
43
43
|
"tsup": "^8.3.0",
|
|
44
44
|
"typescript": "^5.6.2",
|
|
45
|
-
"eslint-config-typescript-vitnode": "0.0.9-canary.
|
|
45
|
+
"eslint-config-typescript-vitnode": "0.0.9-canary.65"
|
|
46
46
|
},
|
|
47
47
|
"scripts": {
|
|
48
48
|
"lint": "eslint .",
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// ! DO NOT TOUCH THIS FILE!!! IT IS GENERATED BY VITNODE-CLI
|
|
2
|
+
// ! If you remove this then default page plugin will not work
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { TranslationsProvider } from 'vitnode-frontend/components/translations-provider';
|
|
5
|
+
import { getSessionData } from 'vitnode-frontend/graphql/get-session-data';
|
|
6
|
+
import { generateMetadataDefaultPage } from 'vitnode-frontend/views/theme/views/default-page';
|
|
7
|
+
|
|
8
|
+
export const generateMetadata = generateMetadataDefaultPage;
|
|
9
|
+
|
|
10
|
+
export default async function Page() {
|
|
11
|
+
const {
|
|
12
|
+
core_sessions__authorization: { plugin_default },
|
|
13
|
+
} = await getSessionData();
|
|
14
|
+
|
|
15
|
+
const PageFromTheme = React.lazy(async () =>
|
|
16
|
+
import(`@/plugins/${plugin_default}/templates/default-page`).then(
|
|
17
|
+
module => ({
|
|
18
|
+
default: module.default,
|
|
19
|
+
}),
|
|
20
|
+
),
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
return (
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
25
|
+
// @ts-expect-error
|
|
26
|
+
<TranslationsProvider namespaces={`${plugin_default}.home`}>
|
|
27
|
+
<PageFromTheme />
|
|
28
|
+
</TranslationsProvider>
|
|
29
|
+
);
|
|
30
|
+
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { TranslationsProvider } from 'vitnode-frontend/components/translations-provider';
|
|
2
2
|
import { AuthLayout } from 'vitnode-frontend/views/layout/auth/auth-layout';
|
|
3
|
-
|
|
3
|
+
|
|
4
|
+
import './global.css';
|
|
4
5
|
|
|
5
6
|
export default function Layout({ children }: { children: React.ReactNode }) {
|
|
6
7
|
return (
|
|
7
|
-
<
|
|
8
|
-
<
|
|
9
|
-
</
|
|
8
|
+
<TranslationsProvider namespaces={[]}>
|
|
9
|
+
<AuthLayout>{children}</AuthLayout>
|
|
10
|
+
</TranslationsProvider>
|
|
10
11
|
);
|
|
11
12
|
}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
// ! DO NOT TOUCH THIS FILE!!! IT IS GENERATED BY VITNODE-CLI
|
|
2
2
|
import {
|
|
3
3
|
DevPluginAdminLayout,
|
|
4
|
-
DevPluginAdminLayoutProps,
|
|
5
4
|
generateMetadataDevPluginAdminLayout,
|
|
6
5
|
} from 'vitnode-frontend/admin/core/plugins/views/dev/layout/layout';
|
|
7
6
|
|
|
8
7
|
export const generateMetadata = generateMetadataDevPluginAdminLayout;
|
|
9
8
|
|
|
10
|
-
export default function Layout(
|
|
9
|
+
export default function Layout(
|
|
10
|
+
props: React.ComponentProps<typeof DevPluginAdminLayout>,
|
|
11
|
+
) {
|
|
11
12
|
return <DevPluginAdminLayout {...props} />;
|
|
12
13
|
}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
// ! DO NOT TOUCH THIS FILE!!! IT IS GENERATED BY VITNODE-CLI
|
|
2
1
|
import React from 'react';
|
|
3
2
|
import 'vitnode-frontend/admin/css';
|
|
3
|
+
import { TranslationsProvider } from 'vitnode-frontend/components/translations-provider';
|
|
4
4
|
|
|
5
|
-
export default
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}) {
|
|
10
|
-
return children;
|
|
5
|
+
export default function Layout({ children }: { children: React.ReactNode }) {
|
|
6
|
+
return (
|
|
7
|
+
<TranslationsProvider namespaces={[]}>{children}</TranslationsProvider>
|
|
8
|
+
);
|
|
11
9
|
}
|
|
@@ -2,13 +2,12 @@ import { GeistSans } from 'geist/font/sans';
|
|
|
2
2
|
import {
|
|
3
3
|
generateMetadataRootLayout,
|
|
4
4
|
RootLayout,
|
|
5
|
-
RootLayoutProps,
|
|
6
5
|
} from 'vitnode-frontend/views/layout/root-layout';
|
|
7
6
|
|
|
8
|
-
import './global.css';
|
|
9
|
-
|
|
10
7
|
export const generateMetadata = generateMetadataRootLayout;
|
|
11
8
|
|
|
12
|
-
export default function Layout(
|
|
9
|
+
export default function Layout(
|
|
10
|
+
props: Omit<React.ComponentProps<typeof RootLayout>, 'className'>,
|
|
11
|
+
) {
|
|
13
12
|
return <RootLayout className={GeistSans.className} {...props} />;
|
|
14
13
|
}
|
|
@@ -42,6 +42,7 @@ export type AuthorizationAdminSessionsObj = {
|
|
|
42
42
|
export type AuthorizationCoreMiddleware = {
|
|
43
43
|
__typename?: 'AuthorizationCoreMiddleware';
|
|
44
44
|
force_login: Scalars['Boolean']['output'];
|
|
45
|
+
is_email_enabled: Scalars['Boolean']['output'];
|
|
45
46
|
lock_register: Scalars['Boolean']['output'];
|
|
46
47
|
};
|
|
47
48
|
|
|
@@ -163,13 +164,6 @@ export type EditorShowCoreMiddleware = {
|
|
|
163
164
|
sticky: Scalars['Boolean']['output'];
|
|
164
165
|
};
|
|
165
166
|
|
|
166
|
-
export const EmailProvider = {
|
|
167
|
-
none: 'none',
|
|
168
|
-
resend: 'resend',
|
|
169
|
-
smtp: 'smtp'
|
|
170
|
-
} as const;
|
|
171
|
-
|
|
172
|
-
export type EmailProvider = typeof EmailProvider[keyof typeof EmailProvider];
|
|
173
167
|
export type FilesAuthorizationCoreSessions = {
|
|
174
168
|
__typename?: 'FilesAuthorizationCoreSessions';
|
|
175
169
|
allow_upload: Scalars['Boolean']['output'];
|
|
@@ -253,7 +247,6 @@ export type LogsAdminEmail = {
|
|
|
253
247
|
error: Scalars['String']['output'];
|
|
254
248
|
html: Scalars['String']['output'];
|
|
255
249
|
id: Scalars['Float']['output'];
|
|
256
|
-
provider: Scalars['String']['output'];
|
|
257
250
|
subject: Scalars['String']['output'];
|
|
258
251
|
to: Scalars['String']['output'];
|
|
259
252
|
};
|
|
@@ -343,11 +336,7 @@ export type MutationAdmin__Core_Authorization_Settings__EditArgs = {
|
|
|
343
336
|
export type MutationAdmin__Core_Email_Settings__EditArgs = {
|
|
344
337
|
color_primary: Scalars['String']['input'];
|
|
345
338
|
color_primary_foreground: Scalars['String']['input'];
|
|
346
|
-
from: Scalars['String']['input'];
|
|
347
339
|
logo?: InputMaybe<UploadWithKeepCoreFilesArgs>;
|
|
348
|
-
provider: EmailProvider;
|
|
349
|
-
resend_key?: InputMaybe<Scalars['String']['input']>;
|
|
350
|
-
smtp?: InputMaybe<SmtpEditAdminEmailSettingsService>;
|
|
351
340
|
};
|
|
352
341
|
|
|
353
342
|
|
|
@@ -839,14 +828,6 @@ export type QueryCore_Terms__ShowArgs = {
|
|
|
839
828
|
last?: InputMaybe<Scalars['Int']['input']>;
|
|
840
829
|
};
|
|
841
830
|
|
|
842
|
-
export type SmtpEditAdminEmailSettingsService = {
|
|
843
|
-
host: Scalars['String']['input'];
|
|
844
|
-
password: Scalars['String']['input'];
|
|
845
|
-
port: Scalars['Int']['input'];
|
|
846
|
-
secure: Scalars['Boolean']['input'];
|
|
847
|
-
user: Scalars['String']['input'];
|
|
848
|
-
};
|
|
849
|
-
|
|
850
831
|
export type SearchAdminSessionsObj = {
|
|
851
832
|
__typename?: 'SearchAdminSessionsObj';
|
|
852
833
|
nav: Array<NavSearchAdminSessions>;
|
|
@@ -881,13 +862,8 @@ export type ShowAdminCoreAiObj = {
|
|
|
881
862
|
export type ShowAdminEmailSettingsServiceObj = {
|
|
882
863
|
__typename?: 'ShowAdminEmailSettingsServiceObj';
|
|
883
864
|
color_primary: Scalars['String']['output'];
|
|
884
|
-
|
|
865
|
+
is_enabled: Scalars['Boolean']['output'];
|
|
885
866
|
logo?: Maybe<UploadCoreFilesObj>;
|
|
886
|
-
provider: EmailProvider | `${EmailProvider}`;
|
|
887
|
-
smtp_host?: Maybe<Scalars['String']['output']>;
|
|
888
|
-
smtp_port?: Maybe<Scalars['Int']['output']>;
|
|
889
|
-
smtp_secure?: Maybe<Scalars['Boolean']['output']>;
|
|
890
|
-
smtp_user?: Maybe<Scalars['String']['output']>;
|
|
891
867
|
};
|
|
892
868
|
|
|
893
869
|
export type ShowAdminFiles = {
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { getRequestConfig } from 'next-intl/server';
|
|
2
|
+
import { i18nConfigVitNode } from 'vitnode-frontend/i18n';
|
|
3
|
+
|
|
4
|
+
export default getRequestConfig(async ({ requestLocale }) => {
|
|
5
|
+
const config = await i18nConfigVitNode({
|
|
6
|
+
pathsToMessagesFromPlugins: async ({ plugin, locale }) => {
|
|
7
|
+
return await import(`./plugins/${plugin}/langs/${locale}.json`);
|
|
8
|
+
},
|
|
9
|
+
requestLocale,
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
return config;
|
|
13
|
+
});
|
|
@@ -88,30 +88,18 @@
|
|
|
88
88
|
"title": "Email Error Logs",
|
|
89
89
|
"id": "ID",
|
|
90
90
|
"to": "To",
|
|
91
|
-
"provider": "Provider",
|
|
92
91
|
"subject": "Subject",
|
|
93
92
|
"created": "Created",
|
|
94
93
|
"error": "Error",
|
|
95
94
|
"show": {
|
|
96
95
|
"title": "Show log",
|
|
97
96
|
"title_dialog": "Email Log - #{id}",
|
|
98
|
-
"to": "To: <email>{to}</email
|
|
97
|
+
"to": "To: <email>{to}</email>",
|
|
99
98
|
"html": "HTML",
|
|
100
99
|
"error": "Error Message",
|
|
101
100
|
"subject": "Subject"
|
|
102
101
|
}
|
|
103
102
|
},
|
|
104
|
-
"provider": {
|
|
105
|
-
"title": "Email Provider",
|
|
106
|
-
"none": "None",
|
|
107
|
-
"smtp": "SMTP",
|
|
108
|
-
"resend": "Resend Email",
|
|
109
|
-
"resend_desc": "Read more on <link>Resend Email</link>."
|
|
110
|
-
},
|
|
111
|
-
"from": {
|
|
112
|
-
"title": "From",
|
|
113
|
-
"desc": "This email address will be used as the sender of the emails sent from your website."
|
|
114
|
-
},
|
|
115
103
|
"logo": "Logo",
|
|
116
104
|
"resend_key": "Resend Key",
|
|
117
105
|
"smtp_host": "SMTP Host",
|
|
@@ -306,7 +294,6 @@
|
|
|
306
294
|
},
|
|
307
295
|
"create": {
|
|
308
296
|
"title": "Create Plugin",
|
|
309
|
-
"success": "Plugin has been created.",
|
|
310
297
|
"name": {
|
|
311
298
|
"label": "Name",
|
|
312
299
|
"desc": "Min 3-50 characters."
|
|
@@ -341,11 +328,6 @@
|
|
|
341
328
|
"title": "Upload Plugin",
|
|
342
329
|
"title_new_version": "Upload New Version Plugin",
|
|
343
330
|
"info": "After uploading the plugin, you need to restart the server to apply the changes.",
|
|
344
|
-
"success": {
|
|
345
|
-
"title": "Plugin has been uploaded.",
|
|
346
|
-
"update": "The plugin has been updated.",
|
|
347
|
-
"desc": "You can now restart the server to apply the changes."
|
|
348
|
-
},
|
|
349
331
|
"errors": {
|
|
350
332
|
"PLUGIN_ALREADY_EXISTS": "Plugin with this code already exists. If you want to update the plugin, use the upload new version form from the plugin dropdown menu.",
|
|
351
333
|
"PLUGIN_VERSION_IS_LOWER": "The version of the uploaded plugin is lower than the current version."
|
|
@@ -355,11 +337,7 @@
|
|
|
355
337
|
"delete": {
|
|
356
338
|
"submit": "Yes, delete plugin",
|
|
357
339
|
"desc": "This action will delete <name></name> plugin created by <author></author> and all data associated with it.",
|
|
358
|
-
"info": "You may see the errors while the system is changing files. After the process is complete, you need to restart the server to apply the changes."
|
|
359
|
-
"success": {
|
|
360
|
-
"title": "Plugin has been deleted.",
|
|
361
|
-
"desc": "You can now restart the server to apply the changes."
|
|
362
|
-
}
|
|
340
|
+
"info": "You may see the errors while the system is changing files. After the process is complete, you need to restart the server to apply the changes."
|
|
363
341
|
},
|
|
364
342
|
"download": {
|
|
365
343
|
"title": "Download Plugin",
|
|
@@ -275,6 +275,7 @@
|
|
|
275
275
|
"success": {
|
|
276
276
|
"title": "Account Created!",
|
|
277
277
|
"desc": "We've sent a verification email to <email></email>. Please check your inbox and click the link to activate your account.",
|
|
278
|
+
"desc_without_email": "Your account has been created successfully. You can now log in.",
|
|
278
279
|
"sign_in": "Sign In"
|
|
279
280
|
},
|
|
280
281
|
"confirm_email": {
|
|
@@ -319,7 +320,7 @@
|
|
|
319
320
|
"settings_email": "Email",
|
|
320
321
|
"settings_authorization": "Authorization",
|
|
321
322
|
"settings_legal": "Legal & Policies",
|
|
322
|
-
"ai": "AI",
|
|
323
|
+
"ai": "Artificial Intelligence (AI)",
|
|
323
324
|
"ai_settings": "Settings",
|
|
324
325
|
"plugins": "Plugins",
|
|
325
326
|
"styles": "Styles",
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
// ! DO NOT TOUCH THIS FILE!!! IT IS GENERATED BY VITNODE-CLI
|
|
2
|
-
|
|
3
|
-
import React from 'react';
|
|
4
|
-
import {
|
|
5
|
-
DefaultPage,
|
|
6
|
-
DefaultPageProps,
|
|
7
|
-
generateMetadataDefaultPage,
|
|
8
|
-
} from 'vitnode-frontend/views/theme/views/default-page';
|
|
9
|
-
|
|
10
|
-
export const generateMetadata = generateMetadataDefaultPage;
|
|
11
|
-
|
|
12
|
-
export default function Page(props: DefaultPageProps) {
|
|
13
|
-
return (
|
|
14
|
-
<DefaultPage
|
|
15
|
-
pathToDefaultPage={async plugin =>
|
|
16
|
-
import(`@/plugins/${plugin}/templates/default-page`)
|
|
17
|
-
}
|
|
18
|
-
{...props}
|
|
19
|
-
/>
|
|
20
|
-
);
|
|
21
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { getRequestConfig } from 'next-intl/server';
|
|
2
|
-
import { i18nConfig } from 'vitnode-frontend/i18n';
|
|
3
|
-
|
|
4
|
-
export default getRequestConfig(async args => {
|
|
5
|
-
const config = await i18nConfig({
|
|
6
|
-
...args,
|
|
7
|
-
pathsToMessagesFromPlugins: async ({ plugin, locale }) => {
|
|
8
|
-
return import(`@/plugins/${plugin}/langs/${locale}.json`);
|
|
9
|
-
},
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
return config;
|
|
13
|
-
});
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/templates/basic/apps/frontend/src/app/[locale]/(main)/{error.tsx → (layout)/error.tsx}
RENAMED
|
File without changes
|
|
File without changes
|