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.
Files changed (46) hide show
  1. package/dist/index.cjs +2 -2
  2. package/package.json +3 -3
  3. package/templates/basic/apps/frontend/src/app/[locale]/(main)/(vitnode)/[...slug]/page.tsx +4 -8
  4. package/templates/basic/apps/frontend/src/app/[locale]/(main)/(vitnode)/legal/[code]/page.tsx +12 -0
  5. package/templates/basic/apps/frontend/src/app/[locale]/(main)/(vitnode)/legal/page.tsx +10 -0
  6. package/templates/basic/apps/frontend/src/app/[locale]/(main)/(vitnode)/login/page.tsx +10 -0
  7. package/templates/basic/apps/frontend/src/app/[locale]/(main)/(vitnode)/profile/[id]/page.tsx +5 -0
  8. package/templates/basic/apps/frontend/src/app/[locale]/(main)/(vitnode)/register/confirm-email/page.tsx +12 -0
  9. package/templates/basic/apps/frontend/src/app/[locale]/(main)/(vitnode)/register/page.tsx +10 -0
  10. package/templates/basic/apps/frontend/src/app/[locale]/(main)/(vitnode)/settings/devices/page.tsx +10 -0
  11. package/templates/basic/apps/frontend/src/app/[locale]/(main)/(vitnode)/settings/files/page.tsx +12 -0
  12. package/templates/basic/apps/frontend/src/app/[locale]/(main)/(vitnode)/settings/layout.tsx +4 -2
  13. package/templates/basic/apps/frontend/src/app/[locale]/(main)/(vitnode)/settings/page.tsx +2 -2
  14. package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/[...slug]/page.tsx +4 -8
  15. package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/advanced/files/page.tsx +12 -0
  16. package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/dashboard/page.tsx +5 -0
  17. package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/diagnostic/page.tsx +10 -0
  18. package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/langs/page.tsx +12 -0
  19. package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/plugins/[code]/dev/nav/page.tsx +7 -0
  20. package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/plugins/[code]/dev/page.tsx +7 -0
  21. package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/plugins/page.tsx +12 -0
  22. package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/settings/authorization/page.tsx +10 -0
  23. package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/settings/email/logs/page.tsx +12 -0
  24. package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/settings/email/page.tsx +10 -0
  25. package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/settings/legal/page.tsx +12 -0
  26. package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/settings/main/page.tsx +10 -0
  27. package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/settings/metadata/page.tsx +10 -0
  28. package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/settings/security/page.tsx +10 -0
  29. package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/styles/editor/page.tsx +10 -0
  30. package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/styles/nav/page.tsx +10 -0
  31. package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/members/groups/page.tsx +12 -0
  32. package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/members/staff/administrators/page.tsx +12 -0
  33. package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/members/staff/moderators/page.tsx +12 -0
  34. package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/members/users/[id]/page.tsx +12 -0
  35. package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/members/users/page.tsx +12 -0
  36. package/templates/basic/apps/frontend/src/graphql/types.ts +50 -1
  37. package/templates/basic/apps/frontend/src/middleware.ts +2 -2
  38. package/templates/basic/apps/frontend/src/plugins/admin/langs/en.json +41 -4
  39. package/templates/basic/apps/frontend/src/plugins/core/langs/en.json +26 -22
  40. package/templates/basic/apps/frontend/src/plugins/welcome/templates/default-page.tsx +3 -3
  41. package/templates/basic/apps/frontend/src/app/[locale]/(main)/(vitnode)/settings/[...slug]/page.tsx +0 -11
  42. package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/plugins/[code]/dev/[...slug]/page.tsx +0 -8
  43. package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/plugins/[code]/error.tsx +0 -7
  44. package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/(vitnode)/core/plugins/[code]/not-found.tsx +0 -5
  45. /package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/{(vitnode)/[...slug]/error.tsx → error.tsx} +0 -0
  46. /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.54",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.5.5","@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
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.6"}:{},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.441.0",next:"15.0.0-canary.155","next-intl":"^3.19.1",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.5.5","@types/react":"^18.3.7","@types/react-dom":"^18.3.0",autoprefixer:"^10.4.20",...r?{eslint:"^9.10.0"}:{},"eslint-config-typescript-vitnode":`^${u.version}`,"graphql-tag":"^2.12.6",postcss:"^8.4.47",tailwindcss:"^3.4.12",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:"vitnode-backend init && cross-env NODE_ENV=development nest start -w",build:"nest build",start:"node dist/main",lint:"eslint .","lint:fix":"eslint . --fix",db:"vitnode-backend db"},dependencies:{"@nestjs/common":"^10.4.3","@nestjs/core":"^10.4.3","@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.3","@nestjs/schematics":"^10.1.4","@types/express":"^4.17.21","@types/node":"^22.5.5","@types/pg":"^8.11.10","@types/react":"^18.3.7","cross-env":"^7.0.3","drizzle-kit":"^0.24.2","drizzle-orm":"^0.33.0",...r?{eslint:"^9.10.0"}:{},"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.
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.55",
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.5.5",
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.55"
45
+ "eslint-config-typescript-vitnode": "0.0.9-canary.57"
46
46
  },
47
47
  "scripts": {
48
48
  "lint": "eslint .",
@@ -1,11 +1,7 @@
1
- import {
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
- export const generateMetadata = generateMetadataSlug;
3
+ import { notFound } from 'next/navigation';
8
4
 
9
- export default function Page(props: SlugViewProps) {
10
- return <SlugView {...props} />;
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,10 @@
1
+ import {
2
+ generateMetadataLegal,
3
+ LegalView,
4
+ } from 'vitnode-frontend/views/theme/views/legal/legal-view';
5
+
6
+ export const generateMetadata = generateMetadataLegal;
7
+
8
+ export default function Page() {
9
+ return <LegalView />;
10
+ }
@@ -0,0 +1,10 @@
1
+ import {
2
+ generateMetadataSignIn,
3
+ SignInView,
4
+ } from 'vitnode-frontend/views/theme/views/auth/sign/in/sign-in-view';
5
+
6
+ export const generateMetadata = generateMetadataSignIn;
7
+
8
+ export default function Page() {
9
+ return <SignInView />;
10
+ }
@@ -0,0 +1,5 @@
1
+ import { ProfileView } from 'vitnode-frontend/views/theme/views/profile/profile-view';
2
+
3
+ export default function Page(props: React.ComponentProps<typeof ProfileView>) {
4
+ return <ProfileView {...props} />;
5
+ }
@@ -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
+ }
@@ -0,0 +1,10 @@
1
+ import {
2
+ generateMetadataSignUp,
3
+ SignUpView,
4
+ } from 'vitnode-frontend/views/theme/views/auth/sign/up/sign-up-view';
5
+
6
+ export const generateMetadata = generateMetadataSignUp;
7
+
8
+ export default function Page() {
9
+ return <SignUpView />;
10
+ }
@@ -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
+ }
@@ -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({ children }: { children: React.ReactNode }) {
10
- return <LayoutSettingsView>{children}</LayoutSettingsView>;
9
+ export default function Layout(
10
+ props: React.ComponentProps<typeof LayoutSettingsView>,
11
+ ) {
12
+ return <LayoutSettingsView {...props} />;
11
13
  }
@@ -1,5 +1,5 @@
1
- import { redirect } from 'vitnode-frontend/navigation';
1
+ import { OverviewSettingsView } from 'vitnode-frontend/views/theme/views/settings/views/overview/overview-settings-view';
2
2
 
3
3
  export default function Page() {
4
- redirect('/settings/overview');
4
+ return <OverviewSettingsView />;
5
5
  }
@@ -1,11 +1,7 @@
1
- import {
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
- export const generateMetadata = generateMetadataSlugAdmin;
3
+ import { notFound } from 'next/navigation';
8
4
 
9
- export default function Page(props: SlugViewProps) {
10
- return <SlugAdminView {...props} />;
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,5 @@
1
+ import { DashboardCoreAdminView } from 'vitnode-frontend/views/admin/views/core/dashboard/dashboard-core-admin-view';
2
+
3
+ export default function Page() {
4
+ return <DashboardCoreAdminView />;
5
+ }
@@ -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
+ }
@@ -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 { NavDevPluginAdminView } from 'vitnode-frontend/views/admin/views/core/plugins/views/dev/nav/nav';
2
+
3
+ export default function Page(
4
+ props: React.ComponentProps<typeof NavDevPluginAdminView>,
5
+ ) {
6
+ return <NavDevPluginAdminView {...props} />;
7
+ }
@@ -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
+ }
@@ -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
+ }
@@ -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/static|_next/image|robots.txt|sitemap.xml|sitemap).*)',
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": "This option will block your site access from guest users."
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": "This option will lock users from registering on your site."
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
- "invalid_file_type": {
145
- "title": "Invalid file type!",
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": "Sign In"
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 Terms of Service and Privacy Policy.",
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": "Hi <name></name>! 🎉",
263
- "desc": "Your account has been created successfully. Now you can sign in.",
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
- "settings_general": "General",
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 and create install or your first plugin!
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 className="rounded-full px-6">
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 className="rounded-full px-6" variant="ghost">
24
+ <Button asChild variant="ghost">
25
25
  <Link
26
26
  href="https://vitnode.com/docs"
27
27
  rel="noopener noreferrer"
@@ -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
- }
@@ -1,8 +0,0 @@
1
- import {
2
- SlugDevPluginsAdminProps,
3
- SlugDevPluginsAdminView,
4
- } from 'vitnode-frontend/views/admin/views/core/plugins/views/dev/slug';
5
-
6
- export default function Page(props: SlugDevPluginsAdminProps) {
7
- return <SlugDevPluginsAdminView {...props} />;
8
- }
@@ -1,7 +0,0 @@
1
- 'use client';
2
-
3
- import { ErrorView } from 'vitnode-frontend/views/theme/views/error/error-view';
4
-
5
- export default function Error() {
6
- return <ErrorView code="500" />;
7
- }
@@ -1,5 +0,0 @@
1
- import { ErrorView } from 'vitnode-frontend/views/theme/views/error/error-view';
2
-
3
- export default function NotFoundPage() {
4
- return <ErrorView code="404" />;
5
- }