vibingbase 0.12.36 → 0.12.38

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.
@@ -3,13 +3,14 @@
3
3
  /.playwright-mcp
4
4
  __MACOSX
5
5
  .DS_Store
6
- *.tsbuildinfo
7
- *.db
8
- .vars
9
- .secrets
10
6
  .env
11
7
  .env.*
8
+ .vars
9
+ .secrets
12
10
  node_modules
11
+ *.tsbuildinfo
12
+ tsconfig.api-extractor.json
13
+ .api-extractor
13
14
  dist
14
15
  .react-router
15
16
  build
@@ -20,5 +21,4 @@ out
20
21
  .vercel
21
22
  target
22
23
  gen
23
- tsconfig.api-extractor.json
24
- .api-extractor
24
+ *.db
@@ -0,0 +1,43 @@
1
+ # AGENTS.md
2
+
3
+ ## Job Description
4
+
5
+ You must always deliver a fully-functional desktop app that the user can interact with and provide feedback on. If the user's requirements are unclear, you should still deliver a fully-functional desktop app based on your best assumptions.
6
+
7
+ ## Tech Stack
8
+
9
+ - Web Components: TypeScript + React Router v7 (SPA) + React v19 + Vite v7
10
+ - Desktop Components: Rust + Tauri v2
11
+
12
+ ## Project Structure
13
+
14
+ ```
15
+ app/
16
+ ├─ entry.server.tsx # Server-side entry point (SPA build script)
17
+ ├─ entry.client.tsx # Client-side entry point (SPA load script)
18
+ ├─ root.tsx # Root route
19
+ ├─ routes.ts # Config-based routes
20
+ └─ routes/
21
+ ├─ index.tsx # Index route
22
+ └─ … # Other routes
23
+ src-tauri/
24
+ ├── capabilities/ # Tauri app capabilities
25
+ ├── icons/ # Tauri app icons
26
+ ├── src/ # Tauri source files
27
+ └── tauri.conf.json # Tauri configuration
28
+ react-router.config.js # React Router configuration
29
+ vite.config.js # Vite configuration
30
+ ```
31
+
32
+ ## SPA Mode
33
+
34
+ The React Router v7 app must be built with "SPA Mode" enabled (`ssr: false` in `react-router.config.js`). Only `app/root.tsx` may have a `loader` function to load data at build time. All other routes must use `clientLoader` instead of `loader`. All other server-side features are unavailable (e.g., `action`, `middleware`, etc.) and should be substituted with client-side features (e.g., `clientAction`, `clientMiddleware`, etc.).
35
+
36
+ ## Common Commands
37
+
38
+ ```bash
39
+ <%= exec %> tauri dev
40
+ <%= exec %> tauri build
41
+ <%= exec %> react-router typegen
42
+ <%= exec %> tsc --noEmit
43
+ ```
@@ -0,0 +1,3 @@
1
+ # CLAUDE.md
2
+
3
+ See @AGENTS.md
@@ -4,6 +4,11 @@
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "dependencies": {
7
+ "@tauri-apps/api": "^2.9.1",
8
+ "@tauri-apps/plugin-deep-link": "^2.4.5",
9
+ "@tauri-apps/plugin-opener": "^2.5.2",
10
+ "@tauri-apps/plugin-process": "^2.3.1",
11
+ "@tauri-apps/plugin-updater": "^2.9.0",
7
12
  "@vercel/react-router": "^1.2.4",
8
13
  "react": "^19.2.3",
9
14
  "react-dom": "^19.2.3",
@@ -13,6 +18,7 @@
13
18
  "devDependencies": {
14
19
  "@react-router/dev": "^7.11.0",
15
20
  "@react-router/node": "^7.11.0",
21
+ "@tauri-apps/cli": "^2.9.6",
16
22
  "@types/node": "^24.10.2",
17
23
  "@types/react": "^19.2.7",
18
24
  "@types/react-dom": "^19.2.3",
@@ -23,8 +29,8 @@
23
29
  },
24
30
  "scripts": {
25
31
  "prepare": "react-router typegen",
26
- "dev": "react-router dev",
27
- "build": "react-router build"
32
+ "dev": "tauri dev",
33
+ "build": "tauri build"
28
34
  },
29
35
  "packageManager": "pnpm@10.26.1"
30
36
  }
@@ -397,9 +397,9 @@ dependencies = [
397
397
 
398
398
  [[package]]
399
399
  name = "cc"
400
- version = "1.2.49"
400
+ version = "1.2.50"
401
401
  source = "registry+https://github.com/rust-lang/crates.io-index"
402
- checksum = "90583009037521a116abf44494efecd645ba48b6622457080f080b85544e2215"
402
+ checksum = "9f50d563227a1c37cc0a263f64eca3334388c01c5e4c4861a9def205c614383c"
403
403
  dependencies = [
404
404
  "find-msvc-tools",
405
405
  "shlex",
@@ -1806,9 +1806,9 @@ dependencies = [
1806
1806
 
1807
1807
  [[package]]
1808
1808
  name = "itoa"
1809
- version = "1.0.15"
1809
+ version = "1.0.16"
1810
1810
  source = "registry+https://github.com/rust-lang/crates.io-index"
1811
- checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
1811
+ checksum = "7ee5b5339afb4c41626dde77b7a611bd4f2c202b897852b4bcf5d03eddc61010"
1812
1812
 
1813
1813
  [[package]]
1814
1814
  name = "javascriptcore-rs"
@@ -3256,9 +3256,9 @@ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
3256
3256
 
3257
3257
  [[package]]
3258
3258
  name = "ryu"
3259
- version = "1.0.20"
3259
+ version = "1.0.21"
3260
3260
  source = "registry+https://github.com/rust-lang/crates.io-index"
3261
- checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
3261
+ checksum = "62049b2877bf12821e8f9ad256ee38fdc31db7387ec2d3b3f403024de2034aea"
3262
3262
 
3263
3263
  [[package]]
3264
3264
  name = "same-file"
@@ -1,17 +1,15 @@
1
1
  {
2
2
  "$schema": "https://schema.tauri.app/config/2",
3
- "identifier": "com.vibingbase.app-<%= id %>",
4
3
  "productName": "<%= name %>",
4
+ "identifier": "com.vibingbase.app-<%= id %>-dev",
5
5
  "version": "<%= version %>",
6
6
  "build": {
7
- "beforeDevCommand": "pnpm dev",
7
+ "beforeDevCommand": "react-router dev",
8
8
  "devUrl": "http://localhost:1420",
9
- "beforeBuildCommand": "pnpm build",
9
+ "beforeBuildCommand": "react-router build",
10
10
  "frontendDist": "../build/client"
11
11
  },
12
12
  "bundle": {
13
- "active": true,
14
- "createUpdaterArtifacts": true,
15
13
  "icon": [
16
14
  "icons/32x32.png",
17
15
  "icons/64x64.png",
@@ -20,15 +18,7 @@
20
18
  "icons/icon.png",
21
19
  "icons/icon.ico",
22
20
  "icons/icon.icns"
23
- ],
24
- "targets": [
25
- "app",
26
- "dmg",
27
- "nsis"
28
- ],
29
- "windows": {
30
- "signCommand": "trusted-signing-cli -e https://eus.codesigning.azure.net -a phuctm97 -c phuctm97 %1"
31
- }
21
+ ]
32
22
  },
33
23
  "app": {
34
24
  "windows": [
@@ -48,14 +38,14 @@
48
38
  "deep-link": {
49
39
  "desktop": {
50
40
  "schemes": [
51
- "app-<%= id %>"
41
+ "app-<%= id %>-dev"
52
42
  ]
53
43
  }
54
44
  },
55
45
  "updater": {
56
- "pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IDkzMEJBRTRGMkZBREIxMTIKUldRU3NhMHZUNjRMazdXcFd4RUxUNXFDK1NBUEJSYjFhZlVXaHI4YVZBOW1QYXRobEt4eTI5QXkK",
46
+ "pubkey": "app-<%= id %>-dev",
57
47
  "endpoints": [
58
- "<%= websiteURL %>/v1/updater/app-<%= id %>"
48
+ "<%= websiteURL %>/v1/updater/app-<%= id %>-dev"
59
49
  ]
60
50
  }
61
51
  }
@@ -3,13 +3,14 @@
3
3
  /.playwright-mcp
4
4
  __MACOSX
5
5
  .DS_Store
6
- *.tsbuildinfo
7
- *.db
8
- .vars
9
- .secrets
10
6
  .env
11
7
  .env.*
8
+ .vars
9
+ .secrets
12
10
  node_modules
11
+ *.tsbuildinfo
12
+ tsconfig.api-extractor.json
13
+ .api-extractor
13
14
  dist
14
15
  .react-router
15
16
  build
@@ -20,5 +21,4 @@ out
20
21
  .vercel
21
22
  target
22
23
  gen
23
- tsconfig.api-extractor.json
24
- .api-extractor
24
+ *.db
@@ -0,0 +1,44 @@
1
+ # AGENTS.md
2
+
3
+ ## Job Description
4
+
5
+ You must always deliver a fully-functional desktop app that the user can interact with and provide feedback on. If the user's requirements are unclear, you should still deliver a fully-functional desktop app based on your best assumptions.
6
+
7
+ ## Tech Stack
8
+
9
+ - Web Components: TypeScript + React Router v7 (SPA) + React v19 + Tailwind CSS v4 + Vite v7
10
+ - Desktop Components: Rust + Tauri v2
11
+
12
+ ## Project Structure
13
+
14
+ ```
15
+ app/
16
+ ├─ entry.server.tsx # Server-side entry point (SPA build script)
17
+ ├─ entry.client.tsx # Client-side entry point (SPA load script)
18
+ ├─ entry.client.css # Global styles
19
+ ├─ root.tsx # Root route
20
+ ├─ routes.ts # Config-based routes
21
+ └─ routes/
22
+ ├─ index.tsx # Index route
23
+ └─ … # Other routes
24
+ src-tauri/
25
+ ├── capabilities/ # Tauri app capabilities
26
+ ├── icons/ # Tauri app icons
27
+ ├── src/ # Tauri source files
28
+ └── tauri.conf.json # Tauri configuration
29
+ react-router.config.js # React Router configuration
30
+ vite.config.js # Vite configuration
31
+ ```
32
+
33
+ ## SPA Mode
34
+
35
+ The React Router v7 app must be built with "SPA Mode" enabled (`ssr: false` in `react-router.config.js`). Only `app/root.tsx` may have a `loader` function to load data at build time. All other routes must use `clientLoader` instead of `loader`. All other server-side features are unavailable (e.g., `action`, `middleware`, etc.) and should be substituted with client-side features (e.g., `clientAction`, `clientMiddleware`, etc.).
36
+
37
+ ## Common Commands
38
+
39
+ ```bash
40
+ <%= exec %> tauri dev
41
+ <%= exec %> tauri build
42
+ <%= exec %> react-router typegen
43
+ <%= exec %> tsc --noEmit
44
+ ```
@@ -0,0 +1,3 @@
1
+ # CLAUDE.md
2
+
3
+ See @AGENTS.md
@@ -4,6 +4,11 @@
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "dependencies": {
7
+ "@tauri-apps/api": "^2.9.1",
8
+ "@tauri-apps/plugin-deep-link": "^2.4.5",
9
+ "@tauri-apps/plugin-opener": "^2.5.2",
10
+ "@tauri-apps/plugin-process": "^2.3.1",
11
+ "@tauri-apps/plugin-updater": "^2.9.0",
7
12
  "@vercel/react-router": "^1.2.4",
8
13
  "react": "^19.2.3",
9
14
  "react-dom": "^19.2.3",
@@ -14,6 +19,7 @@
14
19
  "@react-router/dev": "^7.11.0",
15
20
  "@react-router/node": "^7.11.0",
16
21
  "@tailwindcss/vite": "^4.1.18",
22
+ "@tauri-apps/cli": "^2.9.6",
17
23
  "@types/node": "^24.10.2",
18
24
  "@types/react": "^19.2.7",
19
25
  "@types/react-dom": "^19.2.3",
@@ -25,8 +31,8 @@
25
31
  },
26
32
  "scripts": {
27
33
  "prepare": "react-router typegen",
28
- "dev": "react-router dev",
29
- "build": "react-router build"
34
+ "dev": "tauri dev",
35
+ "build": "tauri build"
30
36
  },
31
37
  "packageManager": "pnpm@10.26.1"
32
38
  }
@@ -397,9 +397,9 @@ dependencies = [
397
397
 
398
398
  [[package]]
399
399
  name = "cc"
400
- version = "1.2.49"
400
+ version = "1.2.50"
401
401
  source = "registry+https://github.com/rust-lang/crates.io-index"
402
- checksum = "90583009037521a116abf44494efecd645ba48b6622457080f080b85544e2215"
402
+ checksum = "9f50d563227a1c37cc0a263f64eca3334388c01c5e4c4861a9def205c614383c"
403
403
  dependencies = [
404
404
  "find-msvc-tools",
405
405
  "shlex",
@@ -1806,9 +1806,9 @@ dependencies = [
1806
1806
 
1807
1807
  [[package]]
1808
1808
  name = "itoa"
1809
- version = "1.0.15"
1809
+ version = "1.0.16"
1810
1810
  source = "registry+https://github.com/rust-lang/crates.io-index"
1811
- checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
1811
+ checksum = "7ee5b5339afb4c41626dde77b7a611bd4f2c202b897852b4bcf5d03eddc61010"
1812
1812
 
1813
1813
  [[package]]
1814
1814
  name = "javascriptcore-rs"
@@ -3256,9 +3256,9 @@ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
3256
3256
 
3257
3257
  [[package]]
3258
3258
  name = "ryu"
3259
- version = "1.0.20"
3259
+ version = "1.0.21"
3260
3260
  source = "registry+https://github.com/rust-lang/crates.io-index"
3261
- checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
3261
+ checksum = "62049b2877bf12821e8f9ad256ee38fdc31db7387ec2d3b3f403024de2034aea"
3262
3262
 
3263
3263
  [[package]]
3264
3264
  name = "same-file"
@@ -1,17 +1,15 @@
1
1
  {
2
2
  "$schema": "https://schema.tauri.app/config/2",
3
- "identifier": "com.vibingbase.app-<%= id %>",
4
3
  "productName": "<%= name %>",
4
+ "identifier": "com.vibingbase.app-<%= id %>-dev",
5
5
  "version": "<%= version %>",
6
6
  "build": {
7
- "beforeDevCommand": "pnpm dev",
7
+ "beforeDevCommand": "react-router dev",
8
8
  "devUrl": "http://localhost:1420",
9
- "beforeBuildCommand": "pnpm build",
9
+ "beforeBuildCommand": "react-router build",
10
10
  "frontendDist": "../build/client"
11
11
  },
12
12
  "bundle": {
13
- "active": true,
14
- "createUpdaterArtifacts": true,
15
13
  "icon": [
16
14
  "icons/32x32.png",
17
15
  "icons/64x64.png",
@@ -20,15 +18,7 @@
20
18
  "icons/icon.png",
21
19
  "icons/icon.ico",
22
20
  "icons/icon.icns"
23
- ],
24
- "targets": [
25
- "app",
26
- "dmg",
27
- "nsis"
28
- ],
29
- "windows": {
30
- "signCommand": "trusted-signing-cli -e https://eus.codesigning.azure.net -a phuctm97 -c phuctm97 %1"
31
- }
21
+ ]
32
22
  },
33
23
  "app": {
34
24
  "windows": [
@@ -48,14 +38,14 @@
48
38
  "deep-link": {
49
39
  "desktop": {
50
40
  "schemes": [
51
- "app-<%= id %>"
41
+ "app-<%= id %>-dev"
52
42
  ]
53
43
  }
54
44
  },
55
45
  "updater": {
56
- "pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IDkzMEJBRTRGMkZBREIxMTIKUldRU3NhMHZUNjRMazdXcFd4RUxUNXFDK1NBUEJSYjFhZlVXaHI4YVZBOW1QYXRobEt4eTI5QXkK",
46
+ "pubkey": "app-<%= id %>-dev",
57
47
  "endpoints": [
58
- "<%= websiteURL %>/v1/updater/app-<%= id %>"
48
+ "<%= websiteURL %>/v1/updater/app-<%= id %>-dev"
59
49
  ]
60
50
  }
61
51
  }
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import*as e from"@clack/prompts";import{capitalCase as F}from"change-case";import{Command as G}from"commander";import W from"node:fs";import v from"node:path";import _ from"picocolors";function u(){let t=process.env.npm_config_user_agent??"";return t.startsWith("pnpm")?"pnpm":t.startsWith("yarn")?"yarn":t.startsWith("bun")?"bun":"npm"}import{exec as C}from"node:child_process";import{promisify as j}from"node:util";var m=j(C);import{customAlphabet as V}from"nanoid";var I="0123456789abcdefghijklmnopqrstuvwxyz",f=V(I);function b(t,i){return t==="npm"?`npm run ${i}`:`${t} ${i}`}import P from"ejs";import{copyFile as A,mkdir as N,readdir as T,readFile as D,writeFile as M}from"node:fs/promises";import w from"node:path";var y=".template";async function d(t,i,r){await N(i,{recursive:!0});let o=await T(t,{withFileTypes:!0});await Promise.all(o.map(async n=>{let p=n.name.endsWith(y),s=w.join(t,n.name),a=w.join(i,p?n.name.slice(0,-y.length):n.name);if(n.isDirectory())await d(s,a,r);else if(p){let c=await D(s,"utf8");await M(a,P.render(c,r))}else await A(s,a)}))}function x(t){if(!t)return"App name is required";if(t!==t.trim())return"No leading/trailing spaces allowed";if(t.includes(" "))return"No double spaces allowed"}var $=/^[a-zA-Z0-9]+([_-][a-zA-Z0-9]+)*$/;function h(t){if(!t)return"Directory name is required";if(!$.test(t))return"Only letters, numbers, dash, underscore allowed (no leading/trailing/double dash or underscore)"}var l={name:"vibingbase",version:"0.12.36",description:"CLI for creating Vibingbase apps",keywords:["vibingbase","vibe-coding","ai-coding","low-code","no-code"],homepage:"https://www.vibingbase.com",bugs:{url:"https://github.com/vibingbase/apps/issues",email:"team@vibingbase.com"},license:"MIT",author:{name:"Vibingbase",email:"team@vibingbase.com"},type:"module",imports:{"#./*":"./*"},exports:{".":{development:"./lib/index.ts",import:"./dist/index.js"}},bin:"./bin/index.js",dependencies:{"@clack/prompts":"^0.11.0","change-case":"^5.4.4",commander:"^14.0.2",ejs:"^3.1.10",nanoid:"^5.1.6",picocolors:"^1.1.1"},devDependencies:{"@types/ejs":"^3.1.5","eslint-config-base":"workspace:^"}};var g=new G;g.name(l.name).version(l.version).description(l.description);var k="Create a new Vibingbase app";g.command("create",{isDefault:!0}).description(k).action(async()=>{e.intro(_.bold(k));let t="my-app",i=await e.text({message:"Directory name:",placeholder:t,defaultValue:t,initialValue:t,validate:h});e.isCancel(i)&&process.exit(0);let r=v.join(process.cwd(),i);if(W.existsSync(r)){let c=await e.confirm({message:"Overwrite existing directory?",initialValue:!1});(e.isCancel(c)||!c)&&process.exit(0)}let o=F(i),n=await e.text({message:"App name:",placeholder:o,defaultValue:o,initialValue:o,validate:x});e.isCancel(n)&&process.exit(0);let p=await e.confirm({message:"Use Tailwind CSS?",initialValue:!0});e.isCancel(p)&&process.exit(0);let s=await e.select({message:"Package manager:",initialValue:u(),options:[{value:"npm",label:"npm"},{value:"pnpm",label:"pnpm"},{value:"yarn",label:"yarn"},{value:"bun",label:"bun"}]});e.isCancel(s)&&process.exit(0);let a=e.spinner();a.start("Generating files..."),await d(v.join(import.meta.dirname,"..","assets",p?"tailwind":"default"),r,{name:n,id:f(),version:"1.0.0",websiteURL:"https://www.vibingbase.com"}),a.stop("Generated files!"),a.start("Installing dependencies..."),await m(`${s} install`,{cwd:r}),a.stop("Installed dependencies!"),a.start("Initializing Git..."),await m("git init",{cwd:r}),await m("git add .",{cwd:r}),await m('git commit -m "Initialize repository with Vibingbase CLI"',{cwd:r}),a.stop("Initialized Git!"),e.note(`cd ${i}
2
- ${b(s,"dev")}`,"Next steps"),e.outro("Happy coding!")});await g.parseAsync();
1
+ import*as t from"@clack/prompts";import{capitalCase as W}from"change-case";import{Command as q}from"commander";import{existsSync as E}from"node:fs";import{rm as L}from"node:fs/promises";import d from"node:path";import _ from"picocolors";function w(){let e=process.env.npm_config_user_agent??"";return e.startsWith("pnpm")?"pnpm":e.startsWith("yarn")?"yarn":e.startsWith("bun")?"bun":"npm"}import{exec as M}from"node:child_process";import{promisify as I}from"node:util";var m=I(M);import{customAlphabet as V}from"nanoid";var A="0123456789abcdefghijklmnopqrstuvwxyz",x=V(A);function D(e){switch(e){case"install":case"start":return!1;default:return!0}}function y(e,r){let a=e==="npm"&&D(r)?`run ${r}`:r;return`${e} ${a}`}function v(e){switch(e){case"npm":return"npx";case"pnpm":return"pnpm exec";case"yarn":return"yarn";case"bun":return"bunx"}}import N from"ejs";import{copyFile as T,mkdir as $,readdir as F,readFile as S,writeFile as z}from"node:fs/promises";import h from"node:path";var k=".template";async function u(e,r,a){await $(r,{recursive:!0});let i=await F(e,{withFileTypes:!0});await Promise.all(i.map(async n=>{let c=n.name.endsWith(k),l=h.join(e,n.name),p=h.join(r,c?n.name.slice(0,-k.length):n.name);if(n.isDirectory())await u(l,p,a);else if(c){let s=await S(l,"utf8");await z(p,N.render(s,a))}else await T(l,p)}))}function P(e){if(!e)return"App name is required";if(e.includes(" "))return"No double spaces allowed"}function C(e){if(!e)return"Directory name is required"}var g={name:"vibingbase",version:"0.12.38",description:"CLI for creating Vibingbase apps",keywords:["vibingbase","vibe-coding","ai-coding","low-code","no-code"],homepage:"https://www.vibingbase.com",bugs:{url:"https://github.com/vibingbase/apps/issues",email:"team@vibingbase.com"},license:"MIT",author:{name:"Vibingbase",email:"team@vibingbase.com"},type:"module",imports:{"#./*":"./*"},exports:{".":{development:"./lib/index.ts",import:"./dist/index.js"}},bin:"./bin/index.js",dependencies:{"@clack/prompts":"^0.11.0","change-case":"^5.4.4",commander:"^14.0.2",ejs:"^3.1.10",nanoid:"^5.1.6",picocolors:"^1.1.1"},devDependencies:{"@types/ejs":"^3.1.5","eslint-config-base":"workspace:^"}};var f=new q;f.name(g.name).version(g.version).description(g.description);var j="Create a new Vibingbase app";f.command("create",{isDefault:!0}).description(j).action(async()=>{t.intro(_.bold(j));let e="my-app",r=await t.text({message:"Directory name:",placeholder:e,defaultValue:e,initialValue:e,validate:C});t.isCancel(r)&&process.exit(0);let a=r.trim(),i=d.isAbsolute(a)?a:d.join(process.cwd(),a);if(E(i)){let b=await t.confirm({message:"Overwrite existing directory?",initialValue:!1});(t.isCancel(b)||!b)&&process.exit(0),await L(i,{recursive:!0,force:!0})}let n=W(d.basename(a)),c=await t.text({message:"App name:",placeholder:n,defaultValue:n,initialValue:n,validate:P});t.isCancel(c)&&process.exit(0);let l=c.trim(),p=await t.confirm({message:"Use Tailwind CSS?",initialValue:!0});t.isCancel(p)&&process.exit(0);let s=await t.select({message:"Package manager:",initialValue:w(),options:[{value:"npm",label:"npm"},{value:"pnpm",label:"pnpm"},{value:"yarn",label:"yarn"},{value:"bun",label:"bun"}]});t.isCancel(s)&&process.exit(0);let o=t.spinner();o.start("Generating project files..."),await u(d.join(import.meta.dirname,"..","assets",p?"tailwind":"default"),i,{name:l,id:x(),version:"1.0.0",exec:v(s),websiteURL:"https://www.vibingbase.com"}),o.stop("Generated project files!"),o.start(`Installing ${s} dependencies...`),await m(`${s} install`,{cwd:i}),o.stop(`Installed ${s} dependencies!`),o.start("Installing cargo dependencies..."),await m("cargo fetch",{cwd:d.join(i,"src-tauri")}),o.stop("Installed cargo dependencies!"),o.start("Initializing Git..."),await m("git init",{cwd:i}),await m("git add .",{cwd:i}),await m('git commit -m "Initialize repository with Vibingbase CLI"',{cwd:i}),o.stop("Initialized Git!"),t.note(`cd ${a}
2
+ ${y(s,"dev")}`,"Next steps"),t.outro("Happy coding!")});await f.parseAsync();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vibingbase",
3
- "version": "0.12.36",
3
+ "version": "0.12.38",
4
4
  "description": "CLI for creating Vibingbase apps",
5
5
  "keywords": [
6
6
  "vibingbase",