create-rari-app 0.4.6 → 0.4.7

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.mjs CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- import{spawn as e}from"node:child_process";import{mkdir as t,readFile as n,writeFile as r}from"node:fs/promises";import{dirname as i,join as a}from"node:path";import o from"node:process";import{fileURLToPath as s}from"node:url";import{cancel as c,confirm as l,intro as u,isCancel as d,outro as f,select as p,spinner as m,text as h}from"@clack/prompts";const g=!o.env.NO_COLOR&&!o.argv.includes(`--no-color`)&&(o.env.FORCE_COLOR||o.argv.includes(`--color`)||o.platform===`win32`||o.stdout?.isTTY&&o.env.TERM!==`dumb`||o.env.CI);function _(e,t,n=e){return r=>{let i=String(r),a=i.indexOf(t,e.length);return~a?e+v(i,t,n,a)+t:e+i+t}}function v(e,t,n,r){let i=``,a=0;do i+=e.substring(a,r)+n,a=r+t.length,r=e.indexOf(t,a);while(~r);return i+e.substring(a)}const y=g?_:()=>String;var b={isColorSupported:g,black:y(`\x1B[30m`,`\x1B[39m`),red:y(`\x1B[31m`,`\x1B[39m`),green:y(`\x1B[32m`,`\x1B[39m`),yellow:y(`\x1B[33m`,`\x1B[39m`),blue:y(`\x1B[34m`,`\x1B[39m`),cyan:y(`\x1B[36m`,`\x1B[39m`),gray:y(`\x1B[90m`,`\x1B[39m`),bold:y(`\x1B[1m`,`\x1B[22m`,`\x1B[22m\x1B[1m`),bgCyan:y(`\x1B[46m`,`\x1B[49m`)};const x={default:{name:`Default`,description:`A clean starter with React Server Components`}},S={pnpm:`pnpm`,npm:`npm`,yarn:`yarn`,bun:`bun`};async function C(){u(b.bgCyan(b.black(` create-rari-app `)));let e=o.argv.slice(2)[0];if(e)e.includes(` `)&&(console.error(b.red(`Error: Project name cannot contain spaces.`)),o.exit(1)),/^[@\w/-]+$/.test(e)||(console.error(b.red(`Error: Project name can only contain letters, numbers, hyphens, underscores, slashes, and @ symbol.`)),o.exit(1));else{let t=await h({message:`What is your project named?`,placeholder:`my-rari-app`,validate:e=>{if(!e)return`Please enter a project name.`;if(e.includes(` `))return`Project name cannot contain spaces.`;if(!/^[@\w/-]+$/.test(e))return`Project name can only contain letters, numbers, hyphens, underscores, slashes, and @ symbol.`}});d(t)&&(c(`Operation cancelled.`),o.exit(0)),e=t}let t=await p({message:`Which template would you like to use?`,options:Object.entries(x).map(([e,{name:t,description:n}])=>({value:e,label:t,hint:n}))});d(t)&&(c(`Operation cancelled.`),o.exit(0));let n=await p({message:`Which package manager would you like to use?`,options:Object.entries(S).map(([e,t])=>({value:e,label:t}))});d(n)&&(c(`Operation cancelled.`),o.exit(0));let r=await l({message:`Install dependencies?`,initialValue:!0});d(r)&&(c(`Operation cancelled.`),o.exit(0));let i={name:e,template:t,packageManager:n,installDeps:r};await w(i),f(b.green(`🎉 Project created successfully!`)),console.warn(),console.warn(b.cyan(`Next steps:`)),console.warn(b.gray(` cd ${i.name}`)),i.installDeps||console.warn(b.gray(` ${i.packageManager} install`)),console.warn(b.gray(` ${i.packageManager} run dev`)),console.warn()}async function w(e){let n=a(o.cwd(),e.name),r=a(i(s(import.meta.url)),`..`,`templates`,e.template),c=m();try{c.start(`Creating project structure...`),await t(n,{recursive:!0}),await T(r,n,e),c.stop(`Project structure created.`),e.installDeps&&(c.start(`Installing dependencies...`),await E(n,e.packageManager),c.stop(`Dependencies installed.`))}catch(e){throw c.stop(`Error occurred.`),e}}async function T(e,o,s){let c=[`package.json`,`vite.config.ts`,`tsconfig.json`,`index.html`,`README.md`,`src/app/globals.css`,`src/app/layout.tsx`,`src/app/page.tsx`,`src/app/robots.ts`,`src/app/about/page.tsx`,`src/components/Welcome.tsx`,`src/components/ServerTime.tsx`,`src/components/Rari.tsx`,`gitignore`];await t(a(o,`src`,`app`,`about`),{recursive:!0}),await t(a(o,`src`,`components`),{recursive:!0});for(let l of c){let c=a(e,l),u=a(o,l===`gitignore`?`.gitignore`:l);try{let e=await n(c,`utf-8`);e=e.replace(/\{\{PROJECT_NAME\}\}/g,s.name).replace(/\{\{PACKAGE_MANAGER\}\}/g,s.packageManager),await t(i(u),{recursive:!0}),await r(u,e)}catch(e){console.warn(`Warning: Could not copy ${l}:`,e)}}}async function E(t,n){return new Promise((r,i)=>{let a=e(n,[`install`],{cwd:t,stdio:`pipe`});a.on(`close`,e=>{e===0?r():i(Error(`${n} install failed with code ${e}`))}),a.on(`error`,i)})}C().catch(e=>{console.error(b.red(`Error:`),e.message),o.exit(1)});export{};
2
+ import{spawn as e}from"node:child_process";import{mkdir as t,readFile as n,writeFile as r}from"node:fs/promises";import{dirname as i,join as a}from"node:path";import o from"node:process";import{fileURLToPath as s}from"node:url";import{styleText as c}from"node:util";import{cancel as l,confirm as u,intro as d,isCancel as f,outro as p,select as m,spinner as h,text as g}from"@clack/prompts";const _={default:{name:`Default`,description:`A clean starter with React Server Components`}},v={pnpm:`pnpm`,npm:`npm`,yarn:`yarn`,bun:`bun`};async function y(){d(c([`bgCyan`,`black`],` create-rari-app `));let e=o.argv.slice(2)[0];if(e)e.includes(` `)&&(console.error(c(`red`,`Error: Project name cannot contain spaces.`)),o.exit(1)),/^[@\w/-]+$/.test(e)||(console.error(c(`red`,`Error: Project name can only contain letters, numbers, hyphens, underscores, slashes, and @ symbol.`)),o.exit(1));else{let t=await g({message:`What is your project named?`,placeholder:`my-rari-app`,validate:e=>{if(!e)return`Please enter a project name.`;if(e.includes(` `))return`Project name cannot contain spaces.`;if(!/^[@\w/-]+$/.test(e))return`Project name can only contain letters, numbers, hyphens, underscores, slashes, and @ symbol.`}});f(t)&&(l(`Operation cancelled.`),o.exit(0)),e=t}let t=await m({message:`Which template would you like to use?`,options:Object.entries(_).map(([e,{name:t,description:n}])=>({value:e,label:t,hint:n}))});f(t)&&(l(`Operation cancelled.`),o.exit(0));let n=await m({message:`Which package manager would you like to use?`,options:Object.entries(v).map(([e,t])=>({value:e,label:t}))});f(n)&&(l(`Operation cancelled.`),o.exit(0));let r=await u({message:`Install dependencies?`,initialValue:!0});f(r)&&(l(`Operation cancelled.`),o.exit(0));let i={name:e,template:t,packageManager:n,installDeps:r};await b(i),p(c(`green`,`🎉 Project created successfully!`)),console.warn(),console.warn(c(`cyan`,`Next steps:`)),console.warn(c(`gray`,` cd ${i.name}`)),i.installDeps||console.warn(c(`gray`,` ${i.packageManager} install`)),console.warn(c(`gray`,` ${i.packageManager} run dev`)),console.warn()}async function b(e){let n=a(o.cwd(),e.name),r=a(i(s(import.meta.url)),`..`,`templates`,e.template),c=h();try{c.start(`Creating project structure...`),await t(n,{recursive:!0}),await x(r,n,e),c.stop(`Project structure created.`),e.installDeps&&(c.start(`Installing dependencies...`),await S(n,e.packageManager),c.stop(`Dependencies installed.`))}catch(e){throw c.stop(`Error occurred.`),e}}async function x(e,o,s){let c=[`package.json`,`vite.config.ts`,`tsconfig.json`,`index.html`,`README.md`,`src/app/globals.css`,`src/app/layout.tsx`,`src/app/page.tsx`,`src/app/robots.ts`,`src/app/about/page.tsx`,`src/components/Welcome.tsx`,`src/components/ServerTime.tsx`,`src/components/Rari.tsx`,`gitignore`];await t(a(o,`src`,`app`,`about`),{recursive:!0}),await t(a(o,`src`,`components`),{recursive:!0});for(let l of c){let c=a(e,l),u=a(o,l===`gitignore`?`.gitignore`:l);try{let e=await n(c,`utf-8`);e=e.replace(/\{\{PROJECT_NAME\}\}/g,s.name).replace(/\{\{PACKAGE_MANAGER\}\}/g,s.packageManager),await t(i(u),{recursive:!0}),await r(u,e)}catch(e){console.warn(`Warning: Could not copy ${l}:`,e)}}}async function S(t,n){return new Promise((r,i)=>{let a=e(n,[`install`],{cwd:t,stdio:`pipe`});a.on(`close`,e=>{e===0?r():i(Error(`${n} install failed with code ${e}`))}),a.on(`error`,i)})}y().catch(e=>{console.error(c(`red`,`Error:`),e.message),o.exit(1)});export{};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "create-rari-app",
3
3
  "type": "module",
4
- "version": "0.4.6",
4
+ "version": "0.4.7",
5
5
  "description": "Create Runtime Accelerated Rendering Infrastructure (rari) applications with no build configuration",
6
6
  "author": "Ryan Skinner",
7
7
  "license": "MIT",
@@ -44,8 +44,8 @@
44
44
  },
45
45
  "devDependencies": {
46
46
  "@types/node": "^25.2.0",
47
- "@typescript/native-preview": "^7.0.0-dev.20260201.1",
48
- "oxlint": "^1.42.0",
47
+ "@typescript/native-preview": "^7.0.0-dev.20260202.1",
48
+ "oxlint": "^1.43.0",
49
49
  "tsdown": "^0.20.1"
50
50
  },
51
51
  "scripts": {
@@ -26,7 +26,7 @@
26
26
  "@types/node": "^25.2.0",
27
27
  "@types/react": "^19.2.10",
28
28
  "@types/react-dom": "^19.2.3",
29
- "@typescript/native-preview": "^7.0.0-dev.20260201.1",
29
+ "@typescript/native-preview": "^7.0.0-dev.20260202.1",
30
30
  "rolldown-vite": "^7.3.1",
31
31
  "tailwindcss": "^4.1.18"
32
32
  }