create-vitnode-app 0.0.10-canary.10 → 0.0.10-canary.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/package.json +2 -2
- package/templates/basic/apps/frontend/src/plugins/admin/langs/en.json +40 -10
- package/templates/basic/apps/frontend/src/plugins/core/langs/en.json +5 -4
- package/templates/basic/apps/frontend/src/plugins/welcome/templates/default-page.tsx +1 -1
- package/templates/docker/apps/frontend/DockerFile +1 -1
- package/templates/docker/deploy.sh +1 -1
package/dist/index.cjs
CHANGED
|
@@ -24,7 +24,7 @@ Expecting one of '${i.join("', '")}'`);let r=`${e}Help`;return this.on(r,s=>{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=U.default.blue("package manager"),{packageManager:s}=await(0,Y.default)({onState:R,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:`${s}@${i[s]}`}}if(e.eslint===void 0){let i=U.default.blue("ESLint"),{eslint:r}=await(0,Y.default)({onState:R,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=U.default.blue("Dockerfile & Docker Compose"),{docker:r}=await(0,Y.default)({onState:R,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=U.default.blue("Install dependencies"),{install:r}=await(0,Y.default)({onState:R,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 se(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.10-canary.
|
|
27
|
+
`),!1}return!0}var $t=require("constants"),Pt=require("fs/promises");async function Nt(t){try{return await(0,Pt.access)(t,$t.W_OK),!0}catch{return!1}}var It=p(require("validate-npm-package-name"),1),Te=({name:t})=>{let e=(0,It.default)(t);return e.validForNewPackages?{valid:!0}:{valid:!1,problems:[...e.errors??[],...e.warnings??[]]}};var Rt={name:"create-vitnode-app",version:"0.0.10-canary.11",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.8.0",picocolors:"^1.1.1",prompts:"^2.4.2","validate-npm-package-name":"^6.0.0"},devDependencies:{"@types/cross-spawn":"^6.0.6","@types/figlet":"^1.7.0","@types/node":"^22.9.1","@types/prompts":"^2.4.9","@types/validate-npm-package-name":"^4.0.2",commander:"^12.1.0","cross-spawn":"^7.0.6","eslint-config-typescript-vitnode":"workspace:*",ora:"^8.1.1",tsup:"^8.3.5",typescript:"^5.6.3"}};var C=require("fs"),v=require("path"),oi=require("crypto"),ai=p(require("figlet"),1);var Q=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]}},Cs=Object.keys(m.modifier),Ni=Object.keys(m.color),Ii=Object.keys(m.bgColor),Es=[...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(s=>s+s).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 s=Math.max(n,i,r)*2;if(s===0)return 30;let u=30+(Math.round(r)<<2|Math.round(i)<<1|Math.round(n));return s===2&&(u+=60),u},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(),y=ji;var oe=p(require("process"),1),Wt=p(require("os"),1),ke=p(require("tty"),1);function B(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,ue;B("no-color")||B("no-colors")||B("color=false")||B("color=never")?ue=0:(B("color")||B("colors")||B("color=true")||B("color=always"))&&(ue=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&&(ue=i);let r=n?ue:i;if(r===0)return 0;if(n){if(B("color=16m")||B("color=full")||B("color=truecolor"))return 3;if(B("color=256"))return 2}if("TF_BUILD"in d&&"AGENT_NAME"in d)return 1;if(t&&!e&&r===void 0)return 0;let s=r||0;if(d.TERM==="dumb")return s;if(oe.default.platform==="win32"){let u=Wt.default.release().split(".");return Number(u[0])>=10&&Number(u[2])>=10586?Number(u[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(u=>u in d)||d.CI_NAME==="codeship"?1:s;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 u=Number.parseInt((d.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(d.TERM_PROGRAM){case"iTerm.app":return u>=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:s}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)})},Lt=Wi;function qt(t,e,n){let i=t.indexOf(e);if(i===-1)return t;let r=e.length,s=0,u="";do u+=t.slice(s,i)+e+n,s=i+r,i=t.indexOf(e,s);while(i!==-1);return u+=t.slice(s),u}function Gt(t,e,n,i){let r=0,s="";do{let u=t[i-1]==="\r";s+=t.slice(r,u?i-1:i)+e+(u?`\r
|
|
28
28
|
`:`
|
|
29
29
|
`)+n,r=i+1,i=t.indexOf(`
|
|
30
30
|
`,r)}while(i!==-1);return s+=t.slice(r),s}var{stdout:Ut,stderr:Yt}=Lt,$e=Symbol("GENERATOR"),j=Symbol("STYLER"),z=Symbol("IS_EMPTY"),zt=["ansi","ansi","ansi256","ansi16m"],V=Object.create(null),Li=(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 qi=t=>{let e=(...n)=>n.join(" ");return Li(e,t),Object.setPrototypeOf(e,J.prototype),e};function J(t){return qi(t)}Object.setPrototypeOf(J.prototype,Function.prototype);for(let[t,e]of Object.entries(y))V[t]={get(){let n=ae(this,Ne(e.open,e.close,this[j]),this[z]);return Object.defineProperty(this,t,{value:n}),n}};V.visible={get(){let t=ae(this,this[j],!0);return Object.defineProperty(this,"visible",{value:t}),t}};var Pe=(t,e,n,...i)=>t==="rgb"?e==="ansi16m"?y[n].ansi16m(...i):e==="ansi256"?y[n].ansi256(y.rgbToAnsi256(...i)):y[n].ansi(y.rgbToAnsi(...i)):t==="hex"?Pe("rgb",e,n,...y.hexToRgb(...i)):y[n][t](...i),Gi=["rgb","hex","ansi256"];for(let t of Gi){V[t]={get(){let{level:n}=this;return function(...i){let r=Ne(Pe(t,zt[n],"color",...i),y.color.close,this[j]);return ae(this,r,this[z])}}};let e="bg"+t[0].toUpperCase()+t.slice(1);V[e]={get(){let{level:n}=this;return function(...i){let r=Ne(Pe(t,zt[n],"bgColor",...i),y.bgColor.close,this[j]);return ae(this,r,this[z])}}}}var Ui=Object.defineProperties(()=>{},{...V,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[j]=e,i[z]=n,i},Yi=(t,e)=>{if(t.level<=0||!e)return t[z]?"":e;let n=t[j];if(n===void 0)return e;let{openAll:i,closeAll:r}=n;if(e.includes("\x1B"))for(;n!==void 0;)e=qt(e,n.close,n.open),n=n.parent;let s=e.indexOf(`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-vitnode-app",
|
|
3
|
-
"version": "0.0.10-canary.
|
|
3
|
+
"version": "0.0.10-canary.12",
|
|
4
4
|
"description": "Create a new VitNode app in seconds.",
|
|
5
5
|
"author": "VitNode Team",
|
|
6
6
|
"license": "MIT",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"ora": "^8.1.1",
|
|
43
43
|
"tsup": "^8.3.5",
|
|
44
44
|
"typescript": "^5.6.3",
|
|
45
|
-
"eslint-config-typescript-vitnode": "0.0.10-canary.
|
|
45
|
+
"eslint-config-typescript-vitnode": "0.0.10-canary.12"
|
|
46
46
|
},
|
|
47
47
|
"scripts": {
|
|
48
48
|
"lint": "eslint .",
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
"diagnostic_tools": "Diagnostic Tools",
|
|
9
9
|
"home_page": "Home Page",
|
|
10
10
|
"mobile_not_supported": "Mobile devices are not supported.",
|
|
11
|
+
"require_email_service": "The email service is disabled.",
|
|
11
12
|
"search": {
|
|
12
13
|
"placeholder": "Search...",
|
|
13
14
|
"no_results": "No results found.",
|
|
@@ -147,17 +148,46 @@
|
|
|
147
148
|
}
|
|
148
149
|
},
|
|
149
150
|
"authorization": {
|
|
150
|
-
"
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
151
|
+
"title": "Authorization",
|
|
152
|
+
"desc": "Manage authorization settings for your website.",
|
|
153
|
+
"settings": {
|
|
154
|
+
"title": "Settings",
|
|
155
|
+
"force_login": {
|
|
156
|
+
"title": "Force Login",
|
|
157
|
+
"desc": "Force users to log in before they can access your website."
|
|
158
|
+
},
|
|
159
|
+
"lock_register": {
|
|
160
|
+
"title": "Lock Register",
|
|
161
|
+
"desc": "Don't allow users to register on your website."
|
|
162
|
+
},
|
|
163
|
+
"require_confirm_email": {
|
|
164
|
+
"title": "Require Confirm Email",
|
|
165
|
+
"desc": "Require users to confirm their email address before they can access your site."
|
|
166
|
+
}
|
|
157
167
|
},
|
|
158
|
-
"
|
|
159
|
-
"title": "
|
|
160
|
-
"
|
|
168
|
+
"methods": {
|
|
169
|
+
"title": "Login Methods",
|
|
170
|
+
"name": "Name",
|
|
171
|
+
"enabled": "Enabled",
|
|
172
|
+
"create": {
|
|
173
|
+
"title": "Create Method",
|
|
174
|
+
"desc": "New login method for your website.",
|
|
175
|
+
"provider": "Provider",
|
|
176
|
+
"client_id": "Client ID",
|
|
177
|
+
"client_secret": "Client Secret",
|
|
178
|
+
"success": "Login method has been created.",
|
|
179
|
+
"your_callback_url": "Your callback URL"
|
|
180
|
+
},
|
|
181
|
+
"edit": {
|
|
182
|
+
"title": "Edit Method",
|
|
183
|
+
"success": "Login method has been updated."
|
|
184
|
+
},
|
|
185
|
+
"delete": {
|
|
186
|
+
"desc": "This action will delete the login method <name></name>.",
|
|
187
|
+
"warn": "If you delete this login method, users who use this method to log in will not be able to log in.",
|
|
188
|
+
"success": "Login method has been deleted.",
|
|
189
|
+
"submit": "Yes, delete login method"
|
|
190
|
+
}
|
|
161
191
|
}
|
|
162
192
|
},
|
|
163
193
|
"legal": {
|
|
@@ -232,14 +232,15 @@
|
|
|
232
232
|
"sign_in": {
|
|
233
233
|
"title": "Login",
|
|
234
234
|
"desc": "You don't have an account? <link></link>.",
|
|
235
|
+
"or": "or",
|
|
235
236
|
"sign_up": "Sign Up",
|
|
236
237
|
"email": "Email",
|
|
237
238
|
"password": "Password",
|
|
238
|
-
"remember": {
|
|
239
|
-
"label": "Remember me",
|
|
240
|
-
"desc": "Not recommended on shared computers."
|
|
241
|
-
},
|
|
242
239
|
"submit": "Log In",
|
|
240
|
+
"sso_first_login": {
|
|
241
|
+
"title": "Almost there!",
|
|
242
|
+
"desc": "Please complete your registration by entering your name."
|
|
243
|
+
},
|
|
243
244
|
"error": {
|
|
244
245
|
"title": "Invalid credentials",
|
|
245
246
|
"desc": "The email address or password was incorrect. Please try again (make sure your caps lock is off)."
|
|
@@ -7,7 +7,7 @@ export default function DefaultPage() {
|
|
|
7
7
|
const t = useTranslations('welcome.home');
|
|
8
8
|
|
|
9
9
|
return (
|
|
10
|
-
<main className="container
|
|
10
|
+
<main className="container flex max-w-5xl flex-wrap items-center justify-between gap-8 px-8 py-10">
|
|
11
11
|
<div className="max-w-md space-y-4">
|
|
12
12
|
<h1 className="text-balance text-3xl font-bold tracking-tight md:text-4xl">
|
|
13
13
|
{t('title')}
|
|
@@ -201,7 +201,7 @@ else
|
|
|
201
201
|
echo ".env file already exists. Skipping creation."
|
|
202
202
|
fi
|
|
203
203
|
|
|
204
|
-
sudo docker-compose -f ./docker-compose.yml -p vitnode up -d
|
|
204
|
+
sudo docker-compose -f ./docker-compose.yml -p vitnode up --build -d
|
|
205
205
|
|
|
206
206
|
sudo chown -R 1001:1001 ./apps/backend/src/plugins/core
|
|
207
207
|
sudo chown -R 1001:1001 ./apps/backend/uploads
|