create-vitnode-app 0.0.9-canary.55 → 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 +50 -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 +26 -22
- 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
|
+
}
|
|
@@ -26,6 +26,7 @@ export const AllowTypeFilesEnum = {
|
|
|
26
26
|
export type AllowTypeFilesEnum = typeof AllowTypeFilesEnum[keyof typeof AllowTypeFilesEnum];
|
|
27
27
|
export type AuthorizationAdminSessionsObj = {
|
|
28
28
|
__typename?: 'AuthorizationAdminSessionsObj';
|
|
29
|
+
files: FilesAuthorizationCoreSessions;
|
|
29
30
|
restart_server: Scalars['Boolean']['output'];
|
|
30
31
|
user?: Maybe<AuthorizationCurrentUserObj>;
|
|
31
32
|
version: Scalars['String']['output'];
|
|
@@ -239,6 +240,23 @@ export type LogosEditAdminThemeEditor = {
|
|
|
239
240
|
width: Scalars['Float']['input'];
|
|
240
241
|
};
|
|
241
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
|
+
|
|
242
260
|
export type Mutation = {
|
|
243
261
|
__typename?: 'Mutation';
|
|
244
262
|
admin__core_authorization_settings__edit: ShowAdminAuthorizationSettingsObj;
|
|
@@ -253,6 +271,7 @@ export type Mutation = {
|
|
|
253
271
|
admin__core_languages__edit: ShowCoreLanguages;
|
|
254
272
|
admin__core_main_settings__edit: EditAdminSettingsObj;
|
|
255
273
|
admin__core_manifest_metadata__edit: ShowAdminManifestMetadataObj;
|
|
274
|
+
admin__core_members__confirm_email: Scalars['String']['output'];
|
|
256
275
|
admin__core_members__create: SignUpCoreSessionsObj;
|
|
257
276
|
admin__core_members__delete: Scalars['String']['output'];
|
|
258
277
|
admin__core_members__edit: EditAdminMembersObj;
|
|
@@ -296,12 +315,14 @@ export type Mutation = {
|
|
|
296
315
|
export type MutationAdmin__Core_Authorization_Settings__EditArgs = {
|
|
297
316
|
force_login: Scalars['Boolean']['input'];
|
|
298
317
|
lock_register: Scalars['Boolean']['input'];
|
|
318
|
+
require_confirm_email: Scalars['Boolean']['input'];
|
|
299
319
|
};
|
|
300
320
|
|
|
301
321
|
|
|
302
322
|
export type MutationAdmin__Core_Email_Settings__EditArgs = {
|
|
303
323
|
color_primary: Scalars['String']['input'];
|
|
304
324
|
color_primary_foreground: Scalars['String']['input'];
|
|
325
|
+
from: Scalars['String']['input'];
|
|
305
326
|
logo?: InputMaybe<UploadWithKeepCoreFilesArgs>;
|
|
306
327
|
provider: EmailProvider;
|
|
307
328
|
resend_key?: InputMaybe<Scalars['String']['input']>;
|
|
@@ -310,7 +331,6 @@ export type MutationAdmin__Core_Email_Settings__EditArgs = {
|
|
|
310
331
|
|
|
311
332
|
|
|
312
333
|
export type MutationAdmin__Core_Email_Settings__TestArgs = {
|
|
313
|
-
from: Scalars['String']['input'];
|
|
314
334
|
message: Scalars['String']['input'];
|
|
315
335
|
preview_text?: InputMaybe<Scalars['String']['input']>;
|
|
316
336
|
subject: Scalars['String']['input'];
|
|
@@ -371,6 +391,7 @@ export type MutationAdmin__Core_Languages__EditArgs = {
|
|
|
371
391
|
|
|
372
392
|
|
|
373
393
|
export type MutationAdmin__Core_Main_Settings__EditArgs = {
|
|
394
|
+
contact_email: Scalars['String']['input'];
|
|
374
395
|
site_copyright: Array<StringLanguageInput>;
|
|
375
396
|
site_description: Array<StringLanguageInput>;
|
|
376
397
|
site_name: Scalars['String']['input'];
|
|
@@ -386,6 +407,11 @@ export type MutationAdmin__Core_Manifest_Metadata__EditArgs = {
|
|
|
386
407
|
};
|
|
387
408
|
|
|
388
409
|
|
|
410
|
+
export type MutationAdmin__Core_Members__Confirm_EmailArgs = {
|
|
411
|
+
id: Scalars['Float']['input'];
|
|
412
|
+
};
|
|
413
|
+
|
|
414
|
+
|
|
389
415
|
export type MutationAdmin__Core_Members__CreateArgs = {
|
|
390
416
|
email: Scalars['String']['input'];
|
|
391
417
|
name: Scalars['String']['input'];
|
|
@@ -640,6 +666,7 @@ export type PageInfo = {
|
|
|
640
666
|
export type Query = {
|
|
641
667
|
__typename?: 'Query';
|
|
642
668
|
admin__core_authorization_settings__show: ShowAdminAuthorizationSettingsObj;
|
|
669
|
+
admin__core_email__logs: LogsAdminEmailObj;
|
|
643
670
|
admin__core_email_settings__show: ShowAdminEmailSettingsServiceObj;
|
|
644
671
|
admin__core_files__show: ShowAdminFilesObj;
|
|
645
672
|
admin__core_groups__show: ShowAdminGroupsObj;
|
|
@@ -663,12 +690,20 @@ export type Query = {
|
|
|
663
690
|
core_plugins__show: Array<ShowCorePluginsObj>;
|
|
664
691
|
core_sessions__authorization: AuthorizationCoreSessionsObj;
|
|
665
692
|
core_sessions__devices__show: Array<ShowCoreSessionDevicesObj>;
|
|
693
|
+
core_sessions__email_verify: Scalars['String']['output'];
|
|
666
694
|
core_settings__show: ShowSettingsObj;
|
|
667
695
|
core_terms__show: ShowCoreTermsObj;
|
|
668
696
|
core_theme_editor__show: ShowCoreThemeEditorObj;
|
|
669
697
|
};
|
|
670
698
|
|
|
671
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
|
+
|
|
672
707
|
export type QueryAdmin__Core_Files__ShowArgs = {
|
|
673
708
|
cursor?: InputMaybe<Scalars['Int']['input']>;
|
|
674
709
|
first?: InputMaybe<Scalars['Int']['input']>;
|
|
@@ -769,6 +804,12 @@ export type QueryCore_Nav__ShowArgs = {
|
|
|
769
804
|
};
|
|
770
805
|
|
|
771
806
|
|
|
807
|
+
export type QueryCore_Sessions__Email_VerifyArgs = {
|
|
808
|
+
token: Scalars['String']['input'];
|
|
809
|
+
user_id: Scalars['Float']['input'];
|
|
810
|
+
};
|
|
811
|
+
|
|
812
|
+
|
|
772
813
|
export type QueryCore_Terms__ShowArgs = {
|
|
773
814
|
code?: InputMaybe<Scalars['String']['input']>;
|
|
774
815
|
cursor?: InputMaybe<Scalars['Int']['input']>;
|
|
@@ -797,7 +838,9 @@ export type SecurityCoreMiddleware = {
|
|
|
797
838
|
export type ShowAdminAuthorizationSettingsObj = {
|
|
798
839
|
__typename?: 'ShowAdminAuthorizationSettingsObj';
|
|
799
840
|
force_login: Scalars['Boolean']['output'];
|
|
841
|
+
is_email_enabled: Scalars['Boolean']['output'];
|
|
800
842
|
lock_register: Scalars['Boolean']['output'];
|
|
843
|
+
require_confirm_email: Scalars['Boolean']['output'];
|
|
801
844
|
};
|
|
802
845
|
|
|
803
846
|
export type ShowAdminCaptchaSecurityObj = {
|
|
@@ -810,6 +853,7 @@ export type ShowAdminCaptchaSecurityObj = {
|
|
|
810
853
|
export type ShowAdminEmailSettingsServiceObj = {
|
|
811
854
|
__typename?: 'ShowAdminEmailSettingsServiceObj';
|
|
812
855
|
color_primary: Scalars['String']['output'];
|
|
856
|
+
from: Scalars['String']['output'];
|
|
813
857
|
logo?: Maybe<UploadCoreFilesObj>;
|
|
814
858
|
provider: EmailProvider | `${EmailProvider}`;
|
|
815
859
|
smtp_host?: Maybe<Scalars['String']['output']>;
|
|
@@ -889,6 +933,7 @@ export type ShowAdminMembers = {
|
|
|
889
933
|
avatar?: Maybe<AvatarUser>;
|
|
890
934
|
avatar_color: Scalars['String']['output'];
|
|
891
935
|
email: Scalars['String']['output'];
|
|
936
|
+
email_verified: Scalars['Boolean']['output'];
|
|
892
937
|
group: GroupUser;
|
|
893
938
|
id: Scalars['Int']['output'];
|
|
894
939
|
joined: Scalars['DateTime']['output'];
|
|
@@ -1209,6 +1254,7 @@ export type ShowCoreThemeEditorObj = {
|
|
|
1209
1254
|
|
|
1210
1255
|
export type ShowSettingsObj = {
|
|
1211
1256
|
__typename?: 'ShowSettingsObj';
|
|
1257
|
+
contact_email: Scalars['String']['output'];
|
|
1212
1258
|
site_copyright: Array<StringLanguage>;
|
|
1213
1259
|
site_description: Array<StringLanguage>;
|
|
1214
1260
|
site_name: Scalars['String']['output'];
|
|
@@ -1218,7 +1264,10 @@ export type ShowSettingsObj = {
|
|
|
1218
1264
|
export type SignUpCoreSessionsObj = {
|
|
1219
1265
|
__typename?: 'SignUpCoreSessionsObj';
|
|
1220
1266
|
email: Scalars['String']['output'];
|
|
1267
|
+
email_verified: Scalars['Boolean']['output'];
|
|
1221
1268
|
group_id: Scalars['Int']['output'];
|
|
1269
|
+
id: Scalars['Float']['output'];
|
|
1270
|
+
language: Scalars['String']['output'];
|
|
1222
1271
|
name: Scalars['String']['output'];
|
|
1223
1272
|
newsletter?: Maybe<Scalars['Boolean']['output']>;
|
|
1224
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",
|
|
@@ -141,14 +141,8 @@
|
|
|
141
141
|
"images_videos": "Images & Videos",
|
|
142
142
|
"images": "Images",
|
|
143
143
|
"errors": {
|
|
144
|
-
"
|
|
145
|
-
|
|
146
|
-
"desc": "Allowed types: {types}."
|
|
147
|
-
},
|
|
148
|
-
"max_storage_for_submit": {
|
|
149
|
-
"title": "Maximum storage reached!",
|
|
150
|
-
"desc": "You can't upload more files then total {size} for one submit."
|
|
151
|
-
}
|
|
144
|
+
"max_storage_extended": "Max storage exceeded. You can't upload more files. Max storage is {size}.",
|
|
145
|
+
"invalid_file_type": "Invalid file type! Allowed types: {types}."
|
|
152
146
|
}
|
|
153
147
|
},
|
|
154
148
|
|
|
@@ -177,15 +171,7 @@
|
|
|
177
171
|
"my_profile": "My Profile",
|
|
178
172
|
"settings": "Settings",
|
|
179
173
|
"admin_cp": "Admin Panel",
|
|
180
|
-
"dark_light_switcher":
|
|
181
|
-
"light": "Light",
|
|
182
|
-
"dark": "Dark",
|
|
183
|
-
"system": "System",
|
|
184
|
-
"toggle": "Toggle Mode"
|
|
185
|
-
},
|
|
186
|
-
"theme": {
|
|
187
|
-
"change": "Change Theme"
|
|
188
|
-
},
|
|
174
|
+
"dark_light_switcher": "Toggle Theme",
|
|
189
175
|
"language": {
|
|
190
176
|
"change": "Change Language"
|
|
191
177
|
}
|
|
@@ -221,11 +207,15 @@
|
|
|
221
207
|
"label": "Remember me",
|
|
222
208
|
"desc": "Not recommended on shared computers."
|
|
223
209
|
},
|
|
224
|
-
"submit": "
|
|
210
|
+
"submit": "Log In"
|
|
225
211
|
},
|
|
226
212
|
"error": {
|
|
227
213
|
"title": "Invalid credentials",
|
|
228
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."
|
|
229
219
|
}
|
|
230
220
|
},
|
|
231
221
|
"sign_up": {
|
|
@@ -250,7 +240,7 @@
|
|
|
250
240
|
},
|
|
251
241
|
"terms": {
|
|
252
242
|
"label": "Accept terms and conditions",
|
|
253
|
-
"desc": "You agree to our
|
|
243
|
+
"desc": "You agree to our <link>Legal documents & Policies</link>.",
|
|
254
244
|
"empty": "You must agree to the Terms of Service."
|
|
255
245
|
},
|
|
256
246
|
"newsletter": {
|
|
@@ -259,10 +249,23 @@
|
|
|
259
249
|
},
|
|
260
250
|
"submit": "Sign Up",
|
|
261
251
|
"success": {
|
|
262
|
-
"title": "
|
|
263
|
-
"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.",
|
|
264
254
|
"sign_in": "Sign In"
|
|
265
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
|
+
}
|
|
266
269
|
}
|
|
267
270
|
},
|
|
268
271
|
"settings": {
|
|
@@ -294,6 +297,7 @@
|
|
|
294
297
|
"desc": "Manage your files.",
|
|
295
298
|
"search": "Search files by name...",
|
|
296
299
|
"temp_file": "Temporary File will be deleted soon",
|
|
300
|
+
"storage_usage": "{used} of {total} ({percent}%) storage used",
|
|
297
301
|
"table": {
|
|
298
302
|
"file_size": "File Size",
|
|
299
303
|
"count_uses": "Count Uses",
|
|
@@ -352,7 +356,7 @@
|
|
|
352
356
|
"title": "Core",
|
|
353
357
|
"dashboard": "Dashboard",
|
|
354
358
|
"settings": "Settings",
|
|
355
|
-
"
|
|
359
|
+
"settings_main": "Main",
|
|
356
360
|
"settings_security": "Security",
|
|
357
361
|
"settings_metadata": "Metadata",
|
|
358
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
|