create-vitnode-app 0.0.9-canary.56 → 0.0.9-canary.57
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 +3 -3
- package/templates/basic/apps/frontend/src/app/[locale]/(main)/(vitnode)/[...slug]/page.tsx +4 -8
- package/templates/basic/apps/frontend/src/app/[locale]/(main)/(vitnode)/legal/[code]/page.tsx +12 -0
- package/templates/basic/apps/frontend/src/app/[locale]/(main)/(vitnode)/legal/page.tsx +10 -0
- package/templates/basic/apps/frontend/src/app/[locale]/(main)/(vitnode)/login/page.tsx +10 -0
- package/templates/basic/apps/frontend/src/app/[locale]/(main)/(vitnode)/profile/[id]/page.tsx +5 -0
- package/templates/basic/apps/frontend/src/app/[locale]/(main)/(vitnode)/register/confirm-email/page.tsx +12 -0
- package/templates/basic/apps/frontend/src/app/[locale]/(main)/(vitnode)/register/page.tsx +10 -0
- package/templates/basic/apps/frontend/src/app/[locale]/(main)/(vitnode)/settings/devices/page.tsx +10 -0
- package/templates/basic/apps/frontend/src/app/[locale]/(main)/(vitnode)/settings/files/page.tsx +12 -0
- package/templates/basic/apps/frontend/src/app/[locale]/(main)/(vitnode)/settings/layout.tsx +4 -2
- package/templates/basic/apps/frontend/src/app/[locale]/(main)/(vitnode)/settings/page.tsx +2 -2
- package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/[...slug]/page.tsx +4 -8
- package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/advanced/files/page.tsx +12 -0
- package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/dashboard/page.tsx +5 -0
- package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/diagnostic/page.tsx +10 -0
- package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/langs/page.tsx +12 -0
- package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/plugins/[code]/dev/nav/page.tsx +7 -0
- package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/plugins/[code]/dev/page.tsx +7 -0
- package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/plugins/page.tsx +12 -0
- package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/settings/authorization/page.tsx +10 -0
- package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/settings/email/logs/page.tsx +12 -0
- package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/settings/email/page.tsx +10 -0
- package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/settings/legal/page.tsx +12 -0
- package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/settings/main/page.tsx +10 -0
- package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/settings/metadata/page.tsx +10 -0
- package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/settings/security/page.tsx +10 -0
- package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/styles/editor/page.tsx +10 -0
- package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/styles/nav/page.tsx +10 -0
- package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/members/groups/page.tsx +12 -0
- package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/members/staff/administrators/page.tsx +12 -0
- package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/members/staff/moderators/page.tsx +12 -0
- package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/members/users/[id]/page.tsx +12 -0
- package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/members/users/page.tsx +12 -0
- package/templates/basic/apps/frontend/src/graphql/types.ts +49 -1
- package/templates/basic/apps/frontend/src/middleware.ts +2 -2
- package/templates/basic/apps/frontend/src/plugins/admin/langs/en.json +41 -4
- package/templates/basic/apps/frontend/src/plugins/core/langs/en.json +23 -14
- package/templates/basic/apps/frontend/src/plugins/welcome/templates/default-page.tsx +3 -3
- package/templates/basic/apps/frontend/src/app/[locale]/(main)/(vitnode)/settings/[...slug]/page.tsx +0 -11
- package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/plugins/[code]/dev/[...slug]/page.tsx +0 -8
- package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/plugins/[code]/error.tsx +0 -7
- package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/plugins/[code]/not-found.tsx +0 -5
- /package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/{(vitnode)/[...slug]/error.tsx → error.tsx} +0 -0
- /package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/{(vitnode)/[...slug]/not-found.tsx → not-found.tsx} +0 -0
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.56",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":"^5.0.1"},devDependencies:{"@types/cross-spawn":"^6.0.6","@types/figlet":"^1.5.8","@types/node":"^22.6.1","@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 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.0","react-dom":"^19.0.0-rc.0"}:{},devDependencies:{...r?{"eslint-config-typescript-vitnode":`^${u.version}`,prettier:"^3.3.3","prettier-plugin-tailwindcss":"^0.6.
|
|
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 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.0","react-dom":"^19.0.0-rc.0"}:{},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:"vitnode-frontend init && 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.445.0",next:"15.0.0-canary.155","next-intl":"^3.20.0",react:"^19.0.0-rc-d6cb4e77-20240911","react-dom":"^19.0.0-rc-d6cb4e77-20240911","react-hook-form":"^7.53.0",sonner:"^1.5.0","vitnode-frontend":`^${u.version}`,zod:"^3.23.8"},devDependencies:{"@types/node":"^22.6.1","@types/react":"^18.3.9","@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:"npm run db && 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:"drizzle-kit up && drizzle-kit generate && drizzle-kit migrate"},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.0","react-dom":"^19.0.0-rc.0","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.6.1","@types/pg":"^8.11.10","@types/react":"^18.3.9","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("pnpm")){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.57",
|
|
4
4
|
"description": "Create a new VitNode app in seconds.",
|
|
5
5
|
"author": "VitNode Team",
|
|
6
6
|
"license": "MIT",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@types/cross-spawn": "^6.0.6",
|
|
36
36
|
"@types/figlet": "^1.5.8",
|
|
37
|
-
"@types/node": "^22.
|
|
37
|
+
"@types/node": "^22.6.1",
|
|
38
38
|
"@types/prompts": "^2.4.9",
|
|
39
39
|
"@types/validate-npm-package-name": "^4.0.2",
|
|
40
40
|
"commander": "^12.1.0",
|
|
@@ -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.57"
|
|
46
46
|
},
|
|
47
47
|
"scripts": {
|
|
48
48
|
"lint": "eslint .",
|
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
generateMetadataSlug,
|
|
3
|
-
SlugView,
|
|
4
|
-
SlugViewProps,
|
|
5
|
-
} from 'vitnode-frontend/views/slug';
|
|
1
|
+
// ! DO NOT TOUCH THIS FILE!!! IT IS GENERATED BY VITNODE-CLI
|
|
6
2
|
|
|
7
|
-
|
|
3
|
+
import { notFound } from 'next/navigation';
|
|
8
4
|
|
|
9
|
-
export default function Page(
|
|
10
|
-
return
|
|
5
|
+
export default function Page() {
|
|
6
|
+
return notFound();
|
|
11
7
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import {
|
|
2
|
+
generateMetadataItemLegal,
|
|
3
|
+
ItemLegalView,
|
|
4
|
+
} from 'vitnode-frontend/views/theme/views/legal/item/item-legal-view';
|
|
5
|
+
|
|
6
|
+
export const generateMetadata = generateMetadataItemLegal;
|
|
7
|
+
|
|
8
|
+
export default function Page(
|
|
9
|
+
props: React.ComponentProps<typeof ItemLegalView>,
|
|
10
|
+
) {
|
|
11
|
+
return <ItemLegalView {...props} />;
|
|
12
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ConfirmEmailSignUpView,
|
|
3
|
+
metadataConfirmEmailSignUp,
|
|
4
|
+
} from 'vitnode-frontend/views/theme/views/auth/sign/up/confirm-email/confirm-email-sign-up-view';
|
|
5
|
+
|
|
6
|
+
export const metadata = metadataConfirmEmailSignUp;
|
|
7
|
+
|
|
8
|
+
export default function Page(
|
|
9
|
+
props: React.ComponentProps<typeof ConfirmEmailSignUpView>,
|
|
10
|
+
) {
|
|
11
|
+
return <ConfirmEmailSignUpView {...props} />;
|
|
12
|
+
}
|
package/templates/basic/apps/frontend/src/app/[locale]/(main)/(vitnode)/settings/devices/page.tsx
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DevicesSettingsView,
|
|
3
|
+
generateMetadataDevicesSettings,
|
|
4
|
+
} from 'vitnode-frontend/views/theme/views/settings/views/devices/devices-settings-view';
|
|
5
|
+
|
|
6
|
+
export const generateMetadata = generateMetadataDevicesSettings;
|
|
7
|
+
|
|
8
|
+
export default function Page() {
|
|
9
|
+
return <DevicesSettingsView />;
|
|
10
|
+
}
|
package/templates/basic/apps/frontend/src/app/[locale]/(main)/(vitnode)/settings/files/page.tsx
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import {
|
|
2
|
+
FilesSettingsView,
|
|
3
|
+
generateMetadataFilesSettings,
|
|
4
|
+
} from 'vitnode-frontend/views/theme/views/settings/views/files/files-settings-view';
|
|
5
|
+
|
|
6
|
+
export const generateMetadata = generateMetadataFilesSettings;
|
|
7
|
+
|
|
8
|
+
export default function Page(
|
|
9
|
+
props: React.ComponentProps<typeof FilesSettingsView>,
|
|
10
|
+
) {
|
|
11
|
+
return <FilesSettingsView {...props} />;
|
|
12
|
+
}
|
|
@@ -6,6 +6,8 @@ import {
|
|
|
6
6
|
|
|
7
7
|
export const generateMetadata = generateMetadataLayoutSettings;
|
|
8
8
|
|
|
9
|
-
export default function Layout(
|
|
10
|
-
|
|
9
|
+
export default function Layout(
|
|
10
|
+
props: React.ComponentProps<typeof LayoutSettingsView>,
|
|
11
|
+
) {
|
|
12
|
+
return <LayoutSettingsView {...props} />;
|
|
11
13
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { OverviewSettingsView } from 'vitnode-frontend/views/theme/views/settings/views/overview/overview-settings-view';
|
|
2
2
|
|
|
3
3
|
export default function Page() {
|
|
4
|
-
|
|
4
|
+
return <OverviewSettingsView />;
|
|
5
5
|
}
|
package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/[...slug]/page.tsx
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
generateMetadataSlugAdmin,
|
|
3
|
-
SlugAdminView,
|
|
4
|
-
} from 'vitnode-frontend/views/admin/views/slug';
|
|
5
|
-
import { SlugViewProps } from 'vitnode-frontend/views/slug';
|
|
1
|
+
// ! DO NOT TOUCH THIS FILE!!! IT IS GENERATED BY VITNODE-CLI
|
|
6
2
|
|
|
7
|
-
|
|
3
|
+
import { notFound } from 'next/navigation';
|
|
8
4
|
|
|
9
|
-
export default function Page(
|
|
10
|
-
return
|
|
5
|
+
export default function Page() {
|
|
6
|
+
return notFound();
|
|
11
7
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import {
|
|
2
|
+
FilesAdvancedCoreAdminView,
|
|
3
|
+
generateMetadataFilesAdvancedCoreAdmin,
|
|
4
|
+
} from 'vitnode-frontend/views/admin/views/core/advanced/files/files-advanced-core-admin-view';
|
|
5
|
+
|
|
6
|
+
export const generateMetadata = generateMetadataFilesAdvancedCoreAdmin;
|
|
7
|
+
|
|
8
|
+
export default function Page(
|
|
9
|
+
props: React.ComponentProps<typeof FilesAdvancedCoreAdminView>,
|
|
10
|
+
) {
|
|
11
|
+
return <FilesAdvancedCoreAdminView {...props} />;
|
|
12
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DiagnosticToolsView,
|
|
3
|
+
generateMetadataDiagnosticAdmin,
|
|
4
|
+
} from 'vitnode-frontend/views/admin/views/core/diagnostic/diagnostic-tools-view';
|
|
5
|
+
|
|
6
|
+
export const generateMetadata = generateMetadataDiagnosticAdmin;
|
|
7
|
+
|
|
8
|
+
export default function Page() {
|
|
9
|
+
return <DiagnosticToolsView />;
|
|
10
|
+
}
|
package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/langs/page.tsx
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import {
|
|
2
|
+
generateMetadataLangsCoreAdmin,
|
|
3
|
+
LangsCoreAdminView,
|
|
4
|
+
} from 'vitnode-frontend/views/admin/views/core/langs/langs-core-admin-view';
|
|
5
|
+
|
|
6
|
+
export const generateMetadata = generateMetadataLangsCoreAdmin;
|
|
7
|
+
|
|
8
|
+
export default function Page(
|
|
9
|
+
props: React.ComponentProps<typeof LangsCoreAdminView>,
|
|
10
|
+
) {
|
|
11
|
+
return <LangsCoreAdminView {...props} />;
|
|
12
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { OverviewDevPluginAdminView } from 'vitnode-frontend/views/admin/views/core/plugins/views/dev/overview';
|
|
2
|
+
|
|
3
|
+
export default function Page(
|
|
4
|
+
props: React.ComponentProps<typeof OverviewDevPluginAdminView>,
|
|
5
|
+
) {
|
|
6
|
+
return <OverviewDevPluginAdminView {...props} />;
|
|
7
|
+
}
|
package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/plugins/page.tsx
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import {
|
|
2
|
+
generateMetadataPluginsAdmin,
|
|
3
|
+
PluginsAdminView,
|
|
4
|
+
} from 'vitnode-frontend/views/admin/views/core/plugins/plugins-admin-view';
|
|
5
|
+
|
|
6
|
+
export const generateMetadata = generateMetadataPluginsAdmin;
|
|
7
|
+
|
|
8
|
+
export default function Page(
|
|
9
|
+
props: React.ComponentProps<typeof PluginsAdminView>,
|
|
10
|
+
) {
|
|
11
|
+
return <PluginsAdminView {...props} />;
|
|
12
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AuthorizationSettingsCoreAdminView,
|
|
3
|
+
generateMetadataAuthorizationSettingsAdmin,
|
|
4
|
+
} from 'vitnode-frontend/views/admin/views/core/settings/authorization/authorization-settings-core-admin-view';
|
|
5
|
+
|
|
6
|
+
export const generateMetadata = generateMetadataAuthorizationSettingsAdmin;
|
|
7
|
+
|
|
8
|
+
export default function Page() {
|
|
9
|
+
return <AuthorizationSettingsCoreAdminView />;
|
|
10
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import {
|
|
2
|
+
generateMetadataLogsEmailSettingsAdmin,
|
|
3
|
+
LogsEmailSettingsAdminView,
|
|
4
|
+
} from 'vitnode-frontend/views/admin/views/core/settings/email/logs/logs-email-settings-admin-view';
|
|
5
|
+
|
|
6
|
+
export const generateMetadata = generateMetadataLogsEmailSettingsAdmin;
|
|
7
|
+
|
|
8
|
+
export default function Page(
|
|
9
|
+
props: React.ComponentProps<typeof LogsEmailSettingsAdminView>,
|
|
10
|
+
) {
|
|
11
|
+
return <LogsEmailSettingsAdminView {...props} />;
|
|
12
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import {
|
|
2
|
+
EmailSettingsAdminView,
|
|
3
|
+
generateMetadataEmailSettingsAdmin,
|
|
4
|
+
} from 'vitnode-frontend/views/admin/views/core/settings/email/email-settings-admin-view';
|
|
5
|
+
|
|
6
|
+
export const generateMetadata = generateMetadataEmailSettingsAdmin;
|
|
7
|
+
|
|
8
|
+
export default function Page() {
|
|
9
|
+
return <EmailSettingsAdminView />;
|
|
10
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import {
|
|
2
|
+
generateMetadataLegalSettingsAdmin,
|
|
3
|
+
LegalSettingsAdminView,
|
|
4
|
+
} from 'vitnode-frontend/views/admin/views/core/settings/legal/legal-core-admin-view';
|
|
5
|
+
|
|
6
|
+
export const generateMetadata = generateMetadataLegalSettingsAdmin;
|
|
7
|
+
|
|
8
|
+
export default function Page(
|
|
9
|
+
props: React.ComponentProps<typeof LegalSettingsAdminView>,
|
|
10
|
+
) {
|
|
11
|
+
return <LegalSettingsAdminView {...props} />;
|
|
12
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import {
|
|
2
|
+
generateMetadataMainSettingsCoreAdmin,
|
|
3
|
+
MainSettingsCoreAdminView,
|
|
4
|
+
} from 'vitnode-frontend/views/admin/views/core/settings/main/main-settings-core-admin-view';
|
|
5
|
+
|
|
6
|
+
export const generateMetadata = generateMetadataMainSettingsCoreAdmin;
|
|
7
|
+
|
|
8
|
+
export default function Page() {
|
|
9
|
+
return <MainSettingsCoreAdminView />;
|
|
10
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import {
|
|
2
|
+
generateMetadataManifestMetadataCoreAdmin,
|
|
3
|
+
ManifestMetadataCoreAdminView,
|
|
4
|
+
} from 'vitnode-frontend/views/admin/views/core/settings/metadata/manifest/manifest-metadata-core-view';
|
|
5
|
+
|
|
6
|
+
export const generateMetadata = generateMetadataManifestMetadataCoreAdmin;
|
|
7
|
+
|
|
8
|
+
export default function Page() {
|
|
9
|
+
return <ManifestMetadataCoreAdminView />;
|
|
10
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CaptchaSecurityAdminView,
|
|
3
|
+
generateMetadataCaptchaSecurityAdmin,
|
|
4
|
+
} from 'vitnode-frontend/views/admin/views/core/settings/security/captcha/captcha-security-admin-view';
|
|
5
|
+
|
|
6
|
+
export const generateMetadata = generateMetadataCaptchaSecurityAdmin;
|
|
7
|
+
|
|
8
|
+
export default function Page() {
|
|
9
|
+
return <CaptchaSecurityAdminView />;
|
|
10
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import {
|
|
2
|
+
EditorAdminView,
|
|
3
|
+
generateMetadataEditorAdmin,
|
|
4
|
+
} from 'vitnode-frontend/views/admin/views/core/styles/editor/editor-admin-view';
|
|
5
|
+
|
|
6
|
+
export const generateMetadata = generateMetadataEditorAdmin;
|
|
7
|
+
|
|
8
|
+
export default function Page() {
|
|
9
|
+
return <EditorAdminView />;
|
|
10
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import {
|
|
2
|
+
generateMetadataNavAdmin,
|
|
3
|
+
NavAdminView,
|
|
4
|
+
} from 'vitnode-frontend/views/admin/views/core/styles/nav/nav-admin-view';
|
|
5
|
+
|
|
6
|
+
export const generateMetadata = generateMetadataNavAdmin;
|
|
7
|
+
|
|
8
|
+
export default function Page() {
|
|
9
|
+
return <NavAdminView />;
|
|
10
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import {
|
|
2
|
+
generateMetadataGroupsMembersAdmin,
|
|
3
|
+
GroupsMembersAdminView,
|
|
4
|
+
} from 'vitnode-frontend/views/admin/views/members/groups/groups-members-admin-view';
|
|
5
|
+
|
|
6
|
+
export const generateMetadata = generateMetadataGroupsMembersAdmin;
|
|
7
|
+
|
|
8
|
+
export default function Page(
|
|
9
|
+
props: React.ComponentProps<typeof GroupsMembersAdminView>,
|
|
10
|
+
) {
|
|
11
|
+
return <GroupsMembersAdminView {...props} />;
|
|
12
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AdministratorsStaffAdminView,
|
|
3
|
+
generateMetadataAdministratorsStaffAdmin,
|
|
4
|
+
} from 'vitnode-frontend/views/admin/views/members/staff/administrators/administrators-view';
|
|
5
|
+
|
|
6
|
+
export const generateMetadata = generateMetadataAdministratorsStaffAdmin;
|
|
7
|
+
|
|
8
|
+
export default function Page(
|
|
9
|
+
props: React.ComponentProps<typeof AdministratorsStaffAdminView>,
|
|
10
|
+
) {
|
|
11
|
+
return <AdministratorsStaffAdminView {...props} />;
|
|
12
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import {
|
|
2
|
+
generateMetadataModeratorsStaffAdmin,
|
|
3
|
+
ModeratorsStaffAdminView,
|
|
4
|
+
} from 'vitnode-frontend/views/admin/views/members/staff/moderators/moderators-view';
|
|
5
|
+
|
|
6
|
+
export const generateMetadata = generateMetadataModeratorsStaffAdmin;
|
|
7
|
+
|
|
8
|
+
export default function Page(
|
|
9
|
+
props: React.ComponentProps<typeof ModeratorsStaffAdminView>,
|
|
10
|
+
) {
|
|
11
|
+
return <ModeratorsStaffAdminView {...props} />;
|
|
12
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import {
|
|
2
|
+
generateMetadataUserMembersAdmin,
|
|
3
|
+
UserMembersAdminView,
|
|
4
|
+
} from 'vitnode-frontend/views/admin/views/members/users/user/user-members-admin-view';
|
|
5
|
+
|
|
6
|
+
export const generateMetadata = generateMetadataUserMembersAdmin;
|
|
7
|
+
|
|
8
|
+
export default function Page(
|
|
9
|
+
props: React.ComponentProps<typeof UserMembersAdminView>,
|
|
10
|
+
) {
|
|
11
|
+
return <UserMembersAdminView {...props} />;
|
|
12
|
+
}
|
package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/members/users/page.tsx
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import {
|
|
2
|
+
generateMetadataUsersMembersAdmin,
|
|
3
|
+
UsersMembersAdminView,
|
|
4
|
+
} from 'vitnode-frontend/views/admin/views/members/users/users-members-admin-view';
|
|
5
|
+
|
|
6
|
+
export const generateMetadata = generateMetadataUsersMembersAdmin;
|
|
7
|
+
|
|
8
|
+
export default function Page(
|
|
9
|
+
props: React.ComponentProps<typeof UsersMembersAdminView>,
|
|
10
|
+
) {
|
|
11
|
+
return <UsersMembersAdminView {...props} />;
|
|
12
|
+
}
|
|
@@ -240,6 +240,23 @@ export type LogosEditAdminThemeEditor = {
|
|
|
240
240
|
width: Scalars['Float']['input'];
|
|
241
241
|
};
|
|
242
242
|
|
|
243
|
+
export type LogsAdminEmail = {
|
|
244
|
+
__typename?: 'LogsAdminEmail';
|
|
245
|
+
created: Scalars['DateTime']['output'];
|
|
246
|
+
error: Scalars['String']['output'];
|
|
247
|
+
html: Scalars['String']['output'];
|
|
248
|
+
id: Scalars['Float']['output'];
|
|
249
|
+
provider: Scalars['String']['output'];
|
|
250
|
+
subject: Scalars['String']['output'];
|
|
251
|
+
to: Scalars['String']['output'];
|
|
252
|
+
};
|
|
253
|
+
|
|
254
|
+
export type LogsAdminEmailObj = {
|
|
255
|
+
__typename?: 'LogsAdminEmailObj';
|
|
256
|
+
edges: Array<LogsAdminEmail>;
|
|
257
|
+
pageInfo: PageInfo;
|
|
258
|
+
};
|
|
259
|
+
|
|
243
260
|
export type Mutation = {
|
|
244
261
|
__typename?: 'Mutation';
|
|
245
262
|
admin__core_authorization_settings__edit: ShowAdminAuthorizationSettingsObj;
|
|
@@ -254,6 +271,7 @@ export type Mutation = {
|
|
|
254
271
|
admin__core_languages__edit: ShowCoreLanguages;
|
|
255
272
|
admin__core_main_settings__edit: EditAdminSettingsObj;
|
|
256
273
|
admin__core_manifest_metadata__edit: ShowAdminManifestMetadataObj;
|
|
274
|
+
admin__core_members__confirm_email: Scalars['String']['output'];
|
|
257
275
|
admin__core_members__create: SignUpCoreSessionsObj;
|
|
258
276
|
admin__core_members__delete: Scalars['String']['output'];
|
|
259
277
|
admin__core_members__edit: EditAdminMembersObj;
|
|
@@ -297,12 +315,14 @@ export type Mutation = {
|
|
|
297
315
|
export type MutationAdmin__Core_Authorization_Settings__EditArgs = {
|
|
298
316
|
force_login: Scalars['Boolean']['input'];
|
|
299
317
|
lock_register: Scalars['Boolean']['input'];
|
|
318
|
+
require_confirm_email: Scalars['Boolean']['input'];
|
|
300
319
|
};
|
|
301
320
|
|
|
302
321
|
|
|
303
322
|
export type MutationAdmin__Core_Email_Settings__EditArgs = {
|
|
304
323
|
color_primary: Scalars['String']['input'];
|
|
305
324
|
color_primary_foreground: Scalars['String']['input'];
|
|
325
|
+
from: Scalars['String']['input'];
|
|
306
326
|
logo?: InputMaybe<UploadWithKeepCoreFilesArgs>;
|
|
307
327
|
provider: EmailProvider;
|
|
308
328
|
resend_key?: InputMaybe<Scalars['String']['input']>;
|
|
@@ -311,7 +331,6 @@ export type MutationAdmin__Core_Email_Settings__EditArgs = {
|
|
|
311
331
|
|
|
312
332
|
|
|
313
333
|
export type MutationAdmin__Core_Email_Settings__TestArgs = {
|
|
314
|
-
from: Scalars['String']['input'];
|
|
315
334
|
message: Scalars['String']['input'];
|
|
316
335
|
preview_text?: InputMaybe<Scalars['String']['input']>;
|
|
317
336
|
subject: Scalars['String']['input'];
|
|
@@ -372,6 +391,7 @@ export type MutationAdmin__Core_Languages__EditArgs = {
|
|
|
372
391
|
|
|
373
392
|
|
|
374
393
|
export type MutationAdmin__Core_Main_Settings__EditArgs = {
|
|
394
|
+
contact_email: Scalars['String']['input'];
|
|
375
395
|
site_copyright: Array<StringLanguageInput>;
|
|
376
396
|
site_description: Array<StringLanguageInput>;
|
|
377
397
|
site_name: Scalars['String']['input'];
|
|
@@ -387,6 +407,11 @@ export type MutationAdmin__Core_Manifest_Metadata__EditArgs = {
|
|
|
387
407
|
};
|
|
388
408
|
|
|
389
409
|
|
|
410
|
+
export type MutationAdmin__Core_Members__Confirm_EmailArgs = {
|
|
411
|
+
id: Scalars['Float']['input'];
|
|
412
|
+
};
|
|
413
|
+
|
|
414
|
+
|
|
390
415
|
export type MutationAdmin__Core_Members__CreateArgs = {
|
|
391
416
|
email: Scalars['String']['input'];
|
|
392
417
|
name: Scalars['String']['input'];
|
|
@@ -641,6 +666,7 @@ export type PageInfo = {
|
|
|
641
666
|
export type Query = {
|
|
642
667
|
__typename?: 'Query';
|
|
643
668
|
admin__core_authorization_settings__show: ShowAdminAuthorizationSettingsObj;
|
|
669
|
+
admin__core_email__logs: LogsAdminEmailObj;
|
|
644
670
|
admin__core_email_settings__show: ShowAdminEmailSettingsServiceObj;
|
|
645
671
|
admin__core_files__show: ShowAdminFilesObj;
|
|
646
672
|
admin__core_groups__show: ShowAdminGroupsObj;
|
|
@@ -664,12 +690,20 @@ export type Query = {
|
|
|
664
690
|
core_plugins__show: Array<ShowCorePluginsObj>;
|
|
665
691
|
core_sessions__authorization: AuthorizationCoreSessionsObj;
|
|
666
692
|
core_sessions__devices__show: Array<ShowCoreSessionDevicesObj>;
|
|
693
|
+
core_sessions__email_verify: Scalars['String']['output'];
|
|
667
694
|
core_settings__show: ShowSettingsObj;
|
|
668
695
|
core_terms__show: ShowCoreTermsObj;
|
|
669
696
|
core_theme_editor__show: ShowCoreThemeEditorObj;
|
|
670
697
|
};
|
|
671
698
|
|
|
672
699
|
|
|
700
|
+
export type QueryAdmin__Core_Email__LogsArgs = {
|
|
701
|
+
cursor?: InputMaybe<Scalars['Int']['input']>;
|
|
702
|
+
first?: InputMaybe<Scalars['Int']['input']>;
|
|
703
|
+
last?: InputMaybe<Scalars['Int']['input']>;
|
|
704
|
+
};
|
|
705
|
+
|
|
706
|
+
|
|
673
707
|
export type QueryAdmin__Core_Files__ShowArgs = {
|
|
674
708
|
cursor?: InputMaybe<Scalars['Int']['input']>;
|
|
675
709
|
first?: InputMaybe<Scalars['Int']['input']>;
|
|
@@ -770,6 +804,12 @@ export type QueryCore_Nav__ShowArgs = {
|
|
|
770
804
|
};
|
|
771
805
|
|
|
772
806
|
|
|
807
|
+
export type QueryCore_Sessions__Email_VerifyArgs = {
|
|
808
|
+
token: Scalars['String']['input'];
|
|
809
|
+
user_id: Scalars['Float']['input'];
|
|
810
|
+
};
|
|
811
|
+
|
|
812
|
+
|
|
773
813
|
export type QueryCore_Terms__ShowArgs = {
|
|
774
814
|
code?: InputMaybe<Scalars['String']['input']>;
|
|
775
815
|
cursor?: InputMaybe<Scalars['Int']['input']>;
|
|
@@ -798,7 +838,9 @@ export type SecurityCoreMiddleware = {
|
|
|
798
838
|
export type ShowAdminAuthorizationSettingsObj = {
|
|
799
839
|
__typename?: 'ShowAdminAuthorizationSettingsObj';
|
|
800
840
|
force_login: Scalars['Boolean']['output'];
|
|
841
|
+
is_email_enabled: Scalars['Boolean']['output'];
|
|
801
842
|
lock_register: Scalars['Boolean']['output'];
|
|
843
|
+
require_confirm_email: Scalars['Boolean']['output'];
|
|
802
844
|
};
|
|
803
845
|
|
|
804
846
|
export type ShowAdminCaptchaSecurityObj = {
|
|
@@ -811,6 +853,7 @@ export type ShowAdminCaptchaSecurityObj = {
|
|
|
811
853
|
export type ShowAdminEmailSettingsServiceObj = {
|
|
812
854
|
__typename?: 'ShowAdminEmailSettingsServiceObj';
|
|
813
855
|
color_primary: Scalars['String']['output'];
|
|
856
|
+
from: Scalars['String']['output'];
|
|
814
857
|
logo?: Maybe<UploadCoreFilesObj>;
|
|
815
858
|
provider: EmailProvider | `${EmailProvider}`;
|
|
816
859
|
smtp_host?: Maybe<Scalars['String']['output']>;
|
|
@@ -890,6 +933,7 @@ export type ShowAdminMembers = {
|
|
|
890
933
|
avatar?: Maybe<AvatarUser>;
|
|
891
934
|
avatar_color: Scalars['String']['output'];
|
|
892
935
|
email: Scalars['String']['output'];
|
|
936
|
+
email_verified: Scalars['Boolean']['output'];
|
|
893
937
|
group: GroupUser;
|
|
894
938
|
id: Scalars['Int']['output'];
|
|
895
939
|
joined: Scalars['DateTime']['output'];
|
|
@@ -1210,6 +1254,7 @@ export type ShowCoreThemeEditorObj = {
|
|
|
1210
1254
|
|
|
1211
1255
|
export type ShowSettingsObj = {
|
|
1212
1256
|
__typename?: 'ShowSettingsObj';
|
|
1257
|
+
contact_email: Scalars['String']['output'];
|
|
1213
1258
|
site_copyright: Array<StringLanguage>;
|
|
1214
1259
|
site_description: Array<StringLanguage>;
|
|
1215
1260
|
site_name: Scalars['String']['output'];
|
|
@@ -1219,7 +1264,10 @@ export type ShowSettingsObj = {
|
|
|
1219
1264
|
export type SignUpCoreSessionsObj = {
|
|
1220
1265
|
__typename?: 'SignUpCoreSessionsObj';
|
|
1221
1266
|
email: Scalars['String']['output'];
|
|
1267
|
+
email_verified: Scalars['Boolean']['output'];
|
|
1222
1268
|
group_id: Scalars['Int']['output'];
|
|
1269
|
+
id: Scalars['Float']['output'];
|
|
1270
|
+
language: Scalars['String']['output'];
|
|
1223
1271
|
name: Scalars['String']['output'];
|
|
1224
1272
|
newsletter?: Maybe<Scalars['Boolean']['output']>;
|
|
1225
1273
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import createMiddleware from 'vitnode-frontend/middleware';
|
|
1
|
+
import { createMiddleware } from 'vitnode-frontend/middleware';
|
|
2
2
|
|
|
3
3
|
export default createMiddleware();
|
|
4
4
|
|
|
5
5
|
export const config = {
|
|
6
|
-
matcher: '/((?!_next
|
|
6
|
+
matcher: '/((?!_next|robots.txt|sitemap.xml|sitemap).*)',
|
|
7
7
|
};
|
|
@@ -59,6 +59,7 @@
|
|
|
59
59
|
"settings": {
|
|
60
60
|
"main": {
|
|
61
61
|
"title": "Main Settings",
|
|
62
|
+
"desc": "These settings are used to configure the main features of your website.",
|
|
62
63
|
"name": {
|
|
63
64
|
"label": "Name Site"
|
|
64
65
|
},
|
|
@@ -70,9 +71,32 @@
|
|
|
70
71
|
},
|
|
71
72
|
"copyright": {
|
|
72
73
|
"label": "Copyright Site"
|
|
74
|
+
},
|
|
75
|
+
"contact_email": {
|
|
76
|
+
"label": "Contact Email",
|
|
77
|
+
"desc": "This email address will be applied to the contact form and other contact points on your website."
|
|
73
78
|
}
|
|
74
79
|
},
|
|
75
80
|
"email": {
|
|
81
|
+
"title": "Email",
|
|
82
|
+
"desc": "Send emails from your website. Unlock more features like password reset, email verification, and more.",
|
|
83
|
+
"logs": {
|
|
84
|
+
"title": "Email Error Logs",
|
|
85
|
+
"id": "ID",
|
|
86
|
+
"to": "To",
|
|
87
|
+
"provider": "Provider",
|
|
88
|
+
"subject": "Subject",
|
|
89
|
+
"created": "Created",
|
|
90
|
+
"error": "Error",
|
|
91
|
+
"show": {
|
|
92
|
+
"title": "Show log",
|
|
93
|
+
"title_dialog": "Email Log - #{id}",
|
|
94
|
+
"to": "To: <email>{to}</email>, Using: <provider></provider>",
|
|
95
|
+
"html": "HTML",
|
|
96
|
+
"error": "Error Message",
|
|
97
|
+
"subject": "Subject"
|
|
98
|
+
}
|
|
99
|
+
},
|
|
76
100
|
"provider": {
|
|
77
101
|
"title": "Email Provider",
|
|
78
102
|
"none": "None",
|
|
@@ -80,6 +104,10 @@
|
|
|
80
104
|
"resend": "Resend Email",
|
|
81
105
|
"resend_desc": "Read more on <link>Resend Email</link>."
|
|
82
106
|
},
|
|
107
|
+
"from": {
|
|
108
|
+
"title": "From",
|
|
109
|
+
"desc": "This email address will be used as the sender of the emails sent from your website."
|
|
110
|
+
},
|
|
83
111
|
"logo": "Logo",
|
|
84
112
|
"resend_key": "Resend Key",
|
|
85
113
|
"smtp_host": "SMTP Host",
|
|
@@ -90,7 +118,6 @@
|
|
|
90
118
|
"color_primary": "Primary Color",
|
|
91
119
|
"test": {
|
|
92
120
|
"title": "Test Email Send",
|
|
93
|
-
"from": "From",
|
|
94
121
|
"to": "To",
|
|
95
122
|
"subject": "Subject",
|
|
96
123
|
"preview_text": "Preview Message",
|
|
@@ -132,11 +159,15 @@
|
|
|
132
159
|
"authorization": {
|
|
133
160
|
"force_login": {
|
|
134
161
|
"title": "Force Login",
|
|
135
|
-
"desc": "
|
|
162
|
+
"desc": "Force users to log in before they can access your website."
|
|
136
163
|
},
|
|
137
164
|
"lock_register": {
|
|
138
165
|
"title": "Lock Register",
|
|
139
|
-
"desc": "
|
|
166
|
+
"desc": "Don't allow users to register on your website."
|
|
167
|
+
},
|
|
168
|
+
"require_confirm_email": {
|
|
169
|
+
"title": "Require Confirm Email",
|
|
170
|
+
"desc": "Require users to confirm their email address before they can access your site."
|
|
140
171
|
}
|
|
141
172
|
},
|
|
142
173
|
"legal": {
|
|
@@ -455,6 +486,7 @@
|
|
|
455
486
|
"members": {
|
|
456
487
|
"users": {
|
|
457
488
|
"title": "Users List",
|
|
489
|
+
"desc": "Manage users on your website.",
|
|
458
490
|
"search_placeholder": "Search by name or email...",
|
|
459
491
|
"filters": {
|
|
460
492
|
"groups": "Groups"
|
|
@@ -471,10 +503,15 @@
|
|
|
471
503
|
"item": {
|
|
472
504
|
"user_menu": "User Menu",
|
|
473
505
|
"public_profile": "Public Profile",
|
|
506
|
+
"confirm_email": {
|
|
507
|
+
"title": "Confirm Email",
|
|
508
|
+
"success": "Email has been confirmed."
|
|
509
|
+
},
|
|
474
510
|
"info": {
|
|
475
511
|
"title": "Info User",
|
|
476
512
|
"joined": "Joined",
|
|
477
|
-
"email": "Email"
|
|
513
|
+
"email": "Email",
|
|
514
|
+
"not_email_verified": "This user has not verified their email address."
|
|
478
515
|
},
|
|
479
516
|
"edit": {
|
|
480
517
|
"title": "Edit User",
|
|
@@ -171,15 +171,7 @@
|
|
|
171
171
|
"my_profile": "My Profile",
|
|
172
172
|
"settings": "Settings",
|
|
173
173
|
"admin_cp": "Admin Panel",
|
|
174
|
-
"dark_light_switcher":
|
|
175
|
-
"light": "Light",
|
|
176
|
-
"dark": "Dark",
|
|
177
|
-
"system": "System",
|
|
178
|
-
"toggle": "Toggle Mode"
|
|
179
|
-
},
|
|
180
|
-
"theme": {
|
|
181
|
-
"change": "Change Theme"
|
|
182
|
-
},
|
|
174
|
+
"dark_light_switcher": "Toggle Theme",
|
|
183
175
|
"language": {
|
|
184
176
|
"change": "Change Language"
|
|
185
177
|
}
|
|
@@ -215,11 +207,15 @@
|
|
|
215
207
|
"label": "Remember me",
|
|
216
208
|
"desc": "Not recommended on shared computers."
|
|
217
209
|
},
|
|
218
|
-
"submit": "
|
|
210
|
+
"submit": "Log In"
|
|
219
211
|
},
|
|
220
212
|
"error": {
|
|
221
213
|
"title": "Invalid credentials",
|
|
222
214
|
"desc": "The email address or password was incorrect. Please try again (make sure your caps lock is off)."
|
|
215
|
+
},
|
|
216
|
+
"not_verified": {
|
|
217
|
+
"title": "Email is not verified",
|
|
218
|
+
"desc": "Please check your inbox and click the link to activate your account."
|
|
223
219
|
}
|
|
224
220
|
},
|
|
225
221
|
"sign_up": {
|
|
@@ -244,7 +240,7 @@
|
|
|
244
240
|
},
|
|
245
241
|
"terms": {
|
|
246
242
|
"label": "Accept terms and conditions",
|
|
247
|
-
"desc": "You agree to our
|
|
243
|
+
"desc": "You agree to our <link>Legal documents & Policies</link>.",
|
|
248
244
|
"empty": "You must agree to the Terms of Service."
|
|
249
245
|
},
|
|
250
246
|
"newsletter": {
|
|
@@ -253,10 +249,23 @@
|
|
|
253
249
|
},
|
|
254
250
|
"submit": "Sign Up",
|
|
255
251
|
"success": {
|
|
256
|
-
"title": "
|
|
257
|
-
"desc": "
|
|
252
|
+
"title": "Account Created!",
|
|
253
|
+
"desc": "We've sent a verification email to <email></email>. Please check your inbox and click the link to activate your account.",
|
|
258
254
|
"sign_in": "Sign In"
|
|
259
255
|
}
|
|
256
|
+
},
|
|
257
|
+
"confirm_email": {
|
|
258
|
+
"title": "Confirmation Successful",
|
|
259
|
+
"desc": "Thank you for confirming your email address. You can now access to our platform.",
|
|
260
|
+
"sign_in": "Sign In",
|
|
261
|
+
"mail": {
|
|
262
|
+
"subject": "Confirm your email address",
|
|
263
|
+
"preview": "You're receiving this email because you created an account on our platform.",
|
|
264
|
+
"welcome": "Thank you for signing up!",
|
|
265
|
+
"desc": "To complete your registration, please confirm your email address by clicking the link below:",
|
|
266
|
+
"ignore": "If you didn't create an account, you can ignore this email.",
|
|
267
|
+
"button": "Confirm Email"
|
|
268
|
+
}
|
|
260
269
|
}
|
|
261
270
|
},
|
|
262
271
|
"settings": {
|
|
@@ -347,7 +356,7 @@
|
|
|
347
356
|
"title": "Core",
|
|
348
357
|
"dashboard": "Dashboard",
|
|
349
358
|
"settings": "Settings",
|
|
350
|
-
"
|
|
359
|
+
"settings_main": "Main",
|
|
351
360
|
"settings_security": "Security",
|
|
352
361
|
"settings_metadata": "Metadata",
|
|
353
362
|
"settings_email": "Email",
|
|
@@ -11,17 +11,17 @@ export default function DefaultPage() {
|
|
|
11
11
|
</h1>
|
|
12
12
|
|
|
13
13
|
<p className="text-muted-foreground text-pretty">
|
|
14
|
-
Dive in
|
|
14
|
+
Dive in. Create or install your first plugin!
|
|
15
15
|
</p>
|
|
16
16
|
|
|
17
17
|
<div className="flex flex-wrap items-center gap-2 md:gap-4">
|
|
18
|
-
<Button asChild
|
|
18
|
+
<Button asChild>
|
|
19
19
|
<Link href="/admin" target="_blank">
|
|
20
20
|
Go to AdminCP
|
|
21
21
|
</Link>
|
|
22
22
|
</Button>
|
|
23
23
|
|
|
24
|
-
<Button asChild
|
|
24
|
+
<Button asChild variant="ghost">
|
|
25
25
|
<Link
|
|
26
26
|
href="https://vitnode.com/docs"
|
|
27
27
|
rel="noopener noreferrer"
|
package/templates/basic/apps/frontend/src/app/[locale]/(main)/(vitnode)/settings/[...slug]/page.tsx
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { SlugViewProps } from 'vitnode-frontend/views/slug';
|
|
2
|
-
import {
|
|
3
|
-
generateMetadataSlugSettings,
|
|
4
|
-
SlugSettingsView,
|
|
5
|
-
} from 'vitnode-frontend/views/theme/views/settings/slug';
|
|
6
|
-
|
|
7
|
-
export const generateMetadata = generateMetadataSlugSettings;
|
|
8
|
-
|
|
9
|
-
export default function Page(props: SlugViewProps) {
|
|
10
|
-
return <SlugSettingsView {...props} />;
|
|
11
|
-
}
|
|
File without changes
|