create-vitnode-app 0.0.9-canary.56 → 0.0.9-canary.57

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +49 -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 +23 -14
  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.55",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.56",
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.56"
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
+ }
@@ -240,6 +240,23 @@ export type LogosEditAdminThemeEditor = {
240
240
  width: Scalars['Float']['input'];
241
241
  };
242
242
 
243
+ export type LogsAdminEmail = {
244
+ __typename?: 'LogsAdminEmail';
245
+ created: Scalars['DateTime']['output'];
246
+ error: Scalars['String']['output'];
247
+ html: Scalars['String']['output'];
248
+ id: Scalars['Float']['output'];
249
+ provider: Scalars['String']['output'];
250
+ subject: Scalars['String']['output'];
251
+ to: Scalars['String']['output'];
252
+ };
253
+
254
+ export type LogsAdminEmailObj = {
255
+ __typename?: 'LogsAdminEmailObj';
256
+ edges: Array<LogsAdminEmail>;
257
+ pageInfo: PageInfo;
258
+ };
259
+
243
260
  export type Mutation = {
244
261
  __typename?: 'Mutation';
245
262
  admin__core_authorization_settings__edit: ShowAdminAuthorizationSettingsObj;
@@ -254,6 +271,7 @@ export type Mutation = {
254
271
  admin__core_languages__edit: ShowCoreLanguages;
255
272
  admin__core_main_settings__edit: EditAdminSettingsObj;
256
273
  admin__core_manifest_metadata__edit: ShowAdminManifestMetadataObj;
274
+ admin__core_members__confirm_email: Scalars['String']['output'];
257
275
  admin__core_members__create: SignUpCoreSessionsObj;
258
276
  admin__core_members__delete: Scalars['String']['output'];
259
277
  admin__core_members__edit: EditAdminMembersObj;
@@ -297,12 +315,14 @@ export type Mutation = {
297
315
  export type MutationAdmin__Core_Authorization_Settings__EditArgs = {
298
316
  force_login: Scalars['Boolean']['input'];
299
317
  lock_register: Scalars['Boolean']['input'];
318
+ require_confirm_email: Scalars['Boolean']['input'];
300
319
  };
301
320
 
302
321
 
303
322
  export type MutationAdmin__Core_Email_Settings__EditArgs = {
304
323
  color_primary: Scalars['String']['input'];
305
324
  color_primary_foreground: Scalars['String']['input'];
325
+ from: Scalars['String']['input'];
306
326
  logo?: InputMaybe<UploadWithKeepCoreFilesArgs>;
307
327
  provider: EmailProvider;
308
328
  resend_key?: InputMaybe<Scalars['String']['input']>;
@@ -311,7 +331,6 @@ export type MutationAdmin__Core_Email_Settings__EditArgs = {
311
331
 
312
332
 
313
333
  export type MutationAdmin__Core_Email_Settings__TestArgs = {
314
- from: Scalars['String']['input'];
315
334
  message: Scalars['String']['input'];
316
335
  preview_text?: InputMaybe<Scalars['String']['input']>;
317
336
  subject: Scalars['String']['input'];
@@ -372,6 +391,7 @@ export type MutationAdmin__Core_Languages__EditArgs = {
372
391
 
373
392
 
374
393
  export type MutationAdmin__Core_Main_Settings__EditArgs = {
394
+ contact_email: Scalars['String']['input'];
375
395
  site_copyright: Array<StringLanguageInput>;
376
396
  site_description: Array<StringLanguageInput>;
377
397
  site_name: Scalars['String']['input'];
@@ -387,6 +407,11 @@ export type MutationAdmin__Core_Manifest_Metadata__EditArgs = {
387
407
  };
388
408
 
389
409
 
410
+ export type MutationAdmin__Core_Members__Confirm_EmailArgs = {
411
+ id: Scalars['Float']['input'];
412
+ };
413
+
414
+
390
415
  export type MutationAdmin__Core_Members__CreateArgs = {
391
416
  email: Scalars['String']['input'];
392
417
  name: Scalars['String']['input'];
@@ -641,6 +666,7 @@ export type PageInfo = {
641
666
  export type Query = {
642
667
  __typename?: 'Query';
643
668
  admin__core_authorization_settings__show: ShowAdminAuthorizationSettingsObj;
669
+ admin__core_email__logs: LogsAdminEmailObj;
644
670
  admin__core_email_settings__show: ShowAdminEmailSettingsServiceObj;
645
671
  admin__core_files__show: ShowAdminFilesObj;
646
672
  admin__core_groups__show: ShowAdminGroupsObj;
@@ -664,12 +690,20 @@ export type Query = {
664
690
  core_plugins__show: Array<ShowCorePluginsObj>;
665
691
  core_sessions__authorization: AuthorizationCoreSessionsObj;
666
692
  core_sessions__devices__show: Array<ShowCoreSessionDevicesObj>;
693
+ core_sessions__email_verify: Scalars['String']['output'];
667
694
  core_settings__show: ShowSettingsObj;
668
695
  core_terms__show: ShowCoreTermsObj;
669
696
  core_theme_editor__show: ShowCoreThemeEditorObj;
670
697
  };
671
698
 
672
699
 
700
+ export type QueryAdmin__Core_Email__LogsArgs = {
701
+ cursor?: InputMaybe<Scalars['Int']['input']>;
702
+ first?: InputMaybe<Scalars['Int']['input']>;
703
+ last?: InputMaybe<Scalars['Int']['input']>;
704
+ };
705
+
706
+
673
707
  export type QueryAdmin__Core_Files__ShowArgs = {
674
708
  cursor?: InputMaybe<Scalars['Int']['input']>;
675
709
  first?: InputMaybe<Scalars['Int']['input']>;
@@ -770,6 +804,12 @@ export type QueryCore_Nav__ShowArgs = {
770
804
  };
771
805
 
772
806
 
807
+ export type QueryCore_Sessions__Email_VerifyArgs = {
808
+ token: Scalars['String']['input'];
809
+ user_id: Scalars['Float']['input'];
810
+ };
811
+
812
+
773
813
  export type QueryCore_Terms__ShowArgs = {
774
814
  code?: InputMaybe<Scalars['String']['input']>;
775
815
  cursor?: InputMaybe<Scalars['Int']['input']>;
@@ -798,7 +838,9 @@ export type SecurityCoreMiddleware = {
798
838
  export type ShowAdminAuthorizationSettingsObj = {
799
839
  __typename?: 'ShowAdminAuthorizationSettingsObj';
800
840
  force_login: Scalars['Boolean']['output'];
841
+ is_email_enabled: Scalars['Boolean']['output'];
801
842
  lock_register: Scalars['Boolean']['output'];
843
+ require_confirm_email: Scalars['Boolean']['output'];
802
844
  };
803
845
 
804
846
  export type ShowAdminCaptchaSecurityObj = {
@@ -811,6 +853,7 @@ export type ShowAdminCaptchaSecurityObj = {
811
853
  export type ShowAdminEmailSettingsServiceObj = {
812
854
  __typename?: 'ShowAdminEmailSettingsServiceObj';
813
855
  color_primary: Scalars['String']['output'];
856
+ from: Scalars['String']['output'];
814
857
  logo?: Maybe<UploadCoreFilesObj>;
815
858
  provider: EmailProvider | `${EmailProvider}`;
816
859
  smtp_host?: Maybe<Scalars['String']['output']>;
@@ -890,6 +933,7 @@ export type ShowAdminMembers = {
890
933
  avatar?: Maybe<AvatarUser>;
891
934
  avatar_color: Scalars['String']['output'];
892
935
  email: Scalars['String']['output'];
936
+ email_verified: Scalars['Boolean']['output'];
893
937
  group: GroupUser;
894
938
  id: Scalars['Int']['output'];
895
939
  joined: Scalars['DateTime']['output'];
@@ -1210,6 +1254,7 @@ export type ShowCoreThemeEditorObj = {
1210
1254
 
1211
1255
  export type ShowSettingsObj = {
1212
1256
  __typename?: 'ShowSettingsObj';
1257
+ contact_email: Scalars['String']['output'];
1213
1258
  site_copyright: Array<StringLanguage>;
1214
1259
  site_description: Array<StringLanguage>;
1215
1260
  site_name: Scalars['String']['output'];
@@ -1219,7 +1264,10 @@ export type ShowSettingsObj = {
1219
1264
  export type SignUpCoreSessionsObj = {
1220
1265
  __typename?: 'SignUpCoreSessionsObj';
1221
1266
  email: Scalars['String']['output'];
1267
+ email_verified: Scalars['Boolean']['output'];
1222
1268
  group_id: Scalars['Int']['output'];
1269
+ id: Scalars['Float']['output'];
1270
+ language: Scalars['String']['output'];
1223
1271
  name: Scalars['String']['output'];
1224
1272
  newsletter?: Maybe<Scalars['Boolean']['output']>;
1225
1273
  };
@@ -1,7 +1,7 @@
1
- import createMiddleware from 'vitnode-frontend/middleware';
1
+ import { createMiddleware } from 'vitnode-frontend/middleware';
2
2
 
3
3
  export default createMiddleware();
4
4
 
5
5
  export const config = {
6
- matcher: '/((?!_next/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",
@@ -171,15 +171,7 @@
171
171
  "my_profile": "My Profile",
172
172
  "settings": "Settings",
173
173
  "admin_cp": "Admin Panel",
174
- "dark_light_switcher": {
175
- "light": "Light",
176
- "dark": "Dark",
177
- "system": "System",
178
- "toggle": "Toggle Mode"
179
- },
180
- "theme": {
181
- "change": "Change Theme"
182
- },
174
+ "dark_light_switcher": "Toggle Theme",
183
175
  "language": {
184
176
  "change": "Change Language"
185
177
  }
@@ -215,11 +207,15 @@
215
207
  "label": "Remember me",
216
208
  "desc": "Not recommended on shared computers."
217
209
  },
218
- "submit": "Sign In"
210
+ "submit": "Log In"
219
211
  },
220
212
  "error": {
221
213
  "title": "Invalid credentials",
222
214
  "desc": "The email address or password was incorrect. Please try again (make sure your caps lock is off)."
215
+ },
216
+ "not_verified": {
217
+ "title": "Email is not verified",
218
+ "desc": "Please check your inbox and click the link to activate your account."
223
219
  }
224
220
  },
225
221
  "sign_up": {
@@ -244,7 +240,7 @@
244
240
  },
245
241
  "terms": {
246
242
  "label": "Accept terms and conditions",
247
- "desc": "You agree to our Terms of Service and Privacy Policy.",
243
+ "desc": "You agree to our <link>Legal documents & Policies</link>.",
248
244
  "empty": "You must agree to the Terms of Service."
249
245
  },
250
246
  "newsletter": {
@@ -253,10 +249,23 @@
253
249
  },
254
250
  "submit": "Sign Up",
255
251
  "success": {
256
- "title": "Hi <name></name>! 🎉",
257
- "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.",
258
254
  "sign_in": "Sign In"
259
255
  }
256
+ },
257
+ "confirm_email": {
258
+ "title": "Confirmation Successful",
259
+ "desc": "Thank you for confirming your email address. You can now access to our platform.",
260
+ "sign_in": "Sign In",
261
+ "mail": {
262
+ "subject": "Confirm your email address",
263
+ "preview": "You're receiving this email because you created an account on our platform.",
264
+ "welcome": "Thank you for signing up!",
265
+ "desc": "To complete your registration, please confirm your email address by clicking the link below:",
266
+ "ignore": "If you didn't create an account, you can ignore this email.",
267
+ "button": "Confirm Email"
268
+ }
260
269
  }
261
270
  },
262
271
  "settings": {
@@ -347,7 +356,7 @@
347
356
  "title": "Core",
348
357
  "dashboard": "Dashboard",
349
358
  "settings": "Settings",
350
- "settings_general": "General",
359
+ "settings_main": "Main",
351
360
  "settings_security": "Security",
352
361
  "settings_metadata": "Metadata",
353
362
  "settings_email": "Email",
@@ -11,17 +11,17 @@ export default function DefaultPage() {
11
11
  </h1>
12
12
 
13
13
  <p className="text-muted-foreground text-pretty">
14
- Dive in 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
- }