create-tamagui 1.112.0 → 1.112.2

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.js CHANGED
@@ -7287,7 +7287,7 @@ var require_prompts3 = __commonJS({
7287
7287
  // ../../../node_modules/zx/node_modules/which/lib/index.js
7288
7288
  var require_lib3 = __commonJS({
7289
7289
  "../../../node_modules/zx/node_modules/which/lib/index.js"(exports2, module2) {
7290
- var isexe = require_isexe(), { join: join3, delimiter, sep: sep2, posix: posix3 } = require("path"), isWindows = process.platform === "win32", rSlash = new RegExp(`[${posix3.sep}${sep2 === posix3.sep ? "" : sep2}]`.replace(/(\\)/g, "\\$1")), rRel = new RegExp(`^\\.${rSlash.source}`), getNotFoundError = (cmd) => Object.assign(new Error(`not found: ${cmd}`), { code: "ENOENT" }), getPathInfo = (cmd, {
7290
+ var isexe = require_isexe(), { join: join2, delimiter, sep: sep2, posix: posix3 } = require("path"), isWindows = process.platform === "win32", rSlash = new RegExp(`[${posix3.sep}${sep2 === posix3.sep ? "" : sep2}]`.replace(/(\\)/g, "\\$1")), rRel = new RegExp(`^\\.${rSlash.source}`), getNotFoundError = (cmd) => Object.assign(new Error(`not found: ${cmd}`), { code: "ENOENT" }), getPathInfo = (cmd, {
7291
7291
  path: optPath = process.env.PATH,
7292
7292
  pathExt: optPathExt = process.env.PATHEXT,
7293
7293
  delimiter: optDelimiter = delimiter
@@ -7305,7 +7305,7 @@ var require_lib3 = __commonJS({
7305
7305
  return { pathEnv, pathExt: [""] };
7306
7306
  }, getPathPart = (raw, cmd) => {
7307
7307
  let pathPart = /^".*"$/.test(raw) ? raw.slice(1, -1) : raw;
7308
- return (!pathPart && rRel.test(cmd) ? cmd.slice(0, 2) : "") + join3(pathPart, cmd);
7308
+ return (!pathPart && rRel.test(cmd) ? cmd.slice(0, 2) : "") + join2(pathPart, cmd);
7309
7309
  }, which2 = async (cmd, opt = {}) => {
7310
7310
  let { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt), found = [];
7311
7311
  for (let envPart of pathEnv) {
@@ -21915,8 +21915,8 @@ var require_os_homedir = __commonJS({
21915
21915
  "use strict";
21916
21916
  var os2 = require("os");
21917
21917
  function homedir2() {
21918
- var env2 = process.env, home2 = env2.HOME, user = env2.LOGNAME || env2.USER || env2.LNAME || env2.USERNAME;
21919
- return process.platform === "win32" ? env2.USERPROFILE || env2.HOMEDRIVE + env2.HOMEPATH || home2 || null : process.platform === "darwin" ? home2 || (user ? "/Users/" + user : null) : process.platform === "linux" ? home2 || (process.getuid() === 0 ? "/root" : user ? "/home/" + user : null) : home2 || null;
21918
+ var env2 = process.env, home = env2.HOME, user = env2.LOGNAME || env2.USER || env2.LNAME || env2.USERNAME;
21919
+ return process.platform === "win32" ? env2.USERPROFILE || env2.HOMEDRIVE + env2.HOMEPATH || home || null : process.platform === "darwin" ? home || (user ? "/Users/" + user : null) : process.platform === "linux" ? home || (process.getuid() === 0 ? "/root" : user ? "/home/" + user : null) : home || null;
21920
21920
  }
21921
21921
  module2.exports = typeof os2.homedir == "function" ? os2.homedir : homedir2;
21922
21922
  }
@@ -25114,7 +25114,7 @@ var require_build = __commonJS({
25114
25114
  });
25115
25115
 
25116
25116
  // src/index.ts
25117
- var import_node_child_process3 = require("node:child_process"), import_node_fs3 = __toESM(require("node:fs")), import_node_path5 = __toESM(require("node:path")), import_node_process3 = require("node:process"), import_chalk13 = __toESM(require_source()), import_commander = __toESM(require_commander());
25117
+ var import_node_child_process4 = require("node:child_process"), import_node_fs4 = __toESM(require("node:fs")), import_node_path7 = __toESM(require("node:path")), import_node_process3 = require("node:process"), import_chalk13 = __toESM(require_source()), import_commander = __toESM(require_commander());
25118
25118
 
25119
25119
  // ../../../node_modules/detect-package-manager/dist/index.mjs
25120
25120
  var import_fs = require("fs"), import_path = require("path"), import_execa = __toESM(require_execa(), 1);
@@ -26191,7 +26191,7 @@ var globby2 = Object.assign(function(patterns, options) {
26191
26191
  // package.json
26192
26192
  var package_default = {
26193
26193
  name: "create-tamagui",
26194
- version: "1.111.13",
26194
+ version: "1.112.1",
26195
26195
  bin: "./run.js",
26196
26196
  main: "dist",
26197
26197
  files: [
@@ -26201,9 +26201,10 @@ var package_default = {
26201
26201
  scripts: {
26202
26202
  start: "./run.js",
26203
26203
  "//": "disabling for now need to migrate to new stack",
26204
- test: "true",
26205
26204
  "test-disabled": "NODE_ENV=test node -r esbuild-register ../../../node_modules/.bin/playwright test integration.test.ts",
26206
26205
  "test:debug": "yarn test --debug",
26206
+ test: "yarn build:test && vitest run",
26207
+ "build:test": "yarn build",
26207
26208
  prerelease: "rimraf ./dist/",
26208
26209
  prepublish: "yarn build",
26209
26210
  build: "tamagui-build --skip-types --bundle --bundle-modules",
@@ -26214,7 +26215,7 @@ var package_default = {
26214
26215
  devDependencies: {
26215
26216
  "@expo/package-manager": "^1.1.2",
26216
26217
  "@playwright/test": "^1.45.2",
26217
- "@tamagui/build": "1.111.13",
26218
+ "@tamagui/build": "1.112.1",
26218
26219
  "@types/async-retry": "1.4.2",
26219
26220
  "@types/cross-spawn": "^6.0.2",
26220
26221
  "@types/node": "^22.1.0",
@@ -26236,13 +26237,16 @@ var package_default = {
26236
26237
  prompts: "2.1.0",
26237
26238
  rimraf: "^5.0.1",
26238
26239
  tar: "4.4.10",
26240
+ tempy: "^3.1.0",
26239
26241
  "update-check": "1.5.4",
26240
26242
  "validate-npm-package-name": "3.0.0",
26243
+ vitest: "2.1.1",
26241
26244
  "wait-port": "^0.3.0",
26242
26245
  zx: "^7.2.3"
26243
26246
  },
26244
26247
  engines: {
26245
- node: ">=12.22.0"
26248
+ node: ">=20.22.0",
26249
+ yarn: ">=4.4.0"
26246
26250
  },
26247
26251
  publishConfig: {
26248
26252
  access: "public"
@@ -31164,23 +31168,20 @@ rimraf.rimraf = rimraf;
31164
31168
  var open = require_opener(), exec = (cmd, options) => (0, import_node_child_process2.execSync)(cmd, {
31165
31169
  stdio: process.env.DEBUG ? "inherit" : "ignore",
31166
31170
  ...options
31167
- }), home = (0, import_node_os2.homedir)(), tamaguiDir = (0, import_node_path4.join)(home, ".tamagui"), targetGitDir = "", cloneStarter = async (template, resolvedProjectPath, projectName) => {
31168
- targetGitDir = IS_TEST ? (0, import_node_path4.join)(tamaguiDir, "tamagui-test", template.repo.url.split("/").at(-1)) : (0, import_node_path4.join)(tamaguiDir, "tamagui", template.repo.url.split("/").at(-1)), console.info(), await setupTamaguiDotDir(template);
31171
+ }), tamaguiDir = (0, import_node_path4.join)((0, import_node_os2.homedir)(), ".tamagui-repo-cache"), targetGitDir = "", cloneStarter = async (template, resolvedProjectPath, projectName) => {
31172
+ targetGitDir = (0, import_node_path4.join)(tamaguiDir, "tamagui", template.repo.url.split("/").at(-1)), console.info(), await setupTamaguiDotDir(template);
31169
31173
  let starterDir = (0, import_node_path4.join)(targetGitDir, ...template.repo.dir);
31170
31174
  console.info(), console.info(
31171
31175
  `Copying starter from ${starterDir} into ${import_chalk5.default.blueBright(projectName)}...`
31172
31176
  ), console.info(), await (0, import_fs_extra.copy)(starterDir, resolvedProjectPath), await rimraf(`${resolvedProjectPath}/.git`), console.info(import_chalk5.default.green(`${projectName} created!`)), console.info();
31173
31177
  };
31174
31178
  async function setupTamaguiDotDir(template, isRetry = !1) {
31175
- let repoRoot2 = (0, import_node_path4.join)(__dirname, "..", "..", "..");
31176
- if (console.info(`Setting up ${import_chalk5.default.blueBright(targetGitDir)}...`), IS_TEST && cd(repoRoot2), process.env.GITHUB_HEAD_REF)
31179
+ if (console.info(`Setting up ${import_chalk5.default.blueBright(targetGitDir)}...`), process.env.GITHUB_HEAD_REF)
31177
31180
  try {
31178
- await $`git switch -c ${process.env.GITHUB_HEAD_REF}`;
31181
+ await $`cd ${targetGitDir} && git switch -c ${process.env.GITHUB_HEAD_REF}`;
31179
31182
  } catch {
31180
31183
  }
31181
31184
  let branch = template.repo.branch;
31182
- if (IS_TEST && (console.info("Test mode: cleaning old tamagui git dir"), await (0, import_fs_extra.remove)(targetGitDir), !await (0, import_fs_extra.pathExists)((0, import_node_path4.join)(repoRoot2, ".git"))))
31183
- throw new Error("Not in a git folder");
31184
31185
  await (0, import_fs_extra.ensureDir)(tamaguiDir), cd(tamaguiDir);
31185
31186
  let isInSubDir = template.repo.dir.length > 0;
31186
31187
  if (await (0, import_fs_extra.pathExists)(targetGitDir))
@@ -31212,10 +31213,16 @@ async function setupTamaguiDotDir(template, isRetry = !1) {
31212
31213
  exec(cmd, { cwd: targetGitDir }), console.info();
31213
31214
  }
31214
31215
  try {
31215
- let cmd2 = `git pull --rebase --allow-unrelated-histories --depth 1 ${getDefaultRemoteName()} ${branch}`;
31216
- exec(cmd2, {
31217
- cwd: targetGitDir
31218
- }), console.info();
31216
+ let remoteName = getDefaultRemoteName();
31217
+ if (await (0, import_fs_extra.pathExists)((0, import_node_path4.join)(targetGitDir, ".git"))) {
31218
+ let cmd2 = `git pull --rebase --allow-unrelated-histories --depth 1 ${remoteName} ${branch}`;
31219
+ exec(cmd2, {
31220
+ cwd: targetGitDir
31221
+ }), console.info();
31222
+ } else
31223
+ console.warn(
31224
+ `Warning: ${targetGitDir} is not a git repository. Skipping pull operation.`
31225
+ );
31219
31226
  } catch (err) {
31220
31227
  console.info(
31221
31228
  `Error updating: ${err.message} ${isRetry ? `failing.
@@ -31227,15 +31234,17 @@ ${err.stack}` : "trying from fresh."}`
31227
31234
  }
31228
31235
  var getDefaultRemoteName = () => {
31229
31236
  try {
31230
- return (0, import_node_child_process2.execSync)("git remote").toString().trim().split(`
31231
- `)[0] || "origin";
31237
+ return (0, import_fs_extra.pathExists)((0, import_node_path4.join)(targetGitDir, ".git")) ? (0, import_node_child_process2.execSync)("git remote", { cwd: targetGitDir }).toString().trim().split(`
31238
+ `)[0] || "origin" : (console.warn(
31239
+ 'Warning: Not in a git repository. Using default remote name "origin".'
31240
+ ), "origin");
31232
31241
  } catch (error) {
31233
- return console.error("Error getting default remote name:", error), "origin";
31242
+ return console.warn("Error getting default remote name:", error), console.warn('Using default remote name "origin".'), "origin";
31234
31243
  }
31235
31244
  };
31236
31245
 
31237
31246
  // src/helpers/getProjectName.ts
31238
- var import_path7 = __toESM(require("path")), import_chalk6 = __toESM(require_source()), import_prompts = __toESM(require_prompts3());
31247
+ var import_node_path5 = __toESM(require("node:path")), import_chalk6 = __toESM(require_source()), import_prompts = __toESM(require_prompts3());
31239
31248
 
31240
31249
  // src/helpers/validateNpmPackage.ts
31241
31250
  var import_validate_npm_package_name = __toESM(require_validate_npm_package_name());
@@ -31256,7 +31265,7 @@ var getProjectName = async (projectPath2) => {
31256
31265
  message: "Project name:",
31257
31266
  initial: "myapp",
31258
31267
  validate: (name) => {
31259
- let validation = validateNpmName(import_path7.default.basename(import_path7.default.resolve(name)));
31268
+ let validation = validateNpmName(import_node_path5.default.basename(import_node_path5.default.resolve(name)));
31260
31269
  return validation.valid ? !0 : "Invalid project name: " + validation.problems[0];
31261
31270
  }
31262
31271
  });
@@ -31271,7 +31280,7 @@ var getProjectName = async (projectPath2) => {
31271
31280
  var import_prompts3 = __toESM(require_prompts3());
31272
31281
 
31273
31282
  // src/templates.ts
31274
- var import_fs14 = require("fs"), import_path9 = require("path"), import_chalk12 = __toESM(require_source());
31283
+ var import_chalk12 = __toESM(require_source());
31275
31284
 
31276
31285
  // src/steps/simple-web.ts
31277
31286
  var import_chalk7 = __toESM(require_source()), packageManager = "yarn", useYarn = packageManager === "yarn", runCommand = (scriptName) => `${packageManager} ${useYarn ? "" : "run "}${scriptName}`, main = async ({ isFullClone, projectName }) => {
@@ -31338,7 +31347,7 @@ visit your project:
31338
31347
  }, remix_default = main4;
31339
31348
 
31340
31349
  // src/steps/takeout.ts
31341
- var import_child_process = require("child_process"), import_fs13 = require("fs"), import_promises2 = __toESM(require("fs/promises")), import_path8 = __toESM(require("path")), import_chalk11 = __toESM(require_source()), import_prompts2 = __toESM(require_prompts3());
31350
+ var import_node_child_process3 = require("node:child_process"), import_node_fs3 = require("node:fs"), import_promises2 = __toESM(require("node:fs/promises")), import_node_path6 = __toESM(require("node:path")), import_chalk11 = __toESM(require_source()), import_prompts2 = __toESM(require_prompts3());
31342
31351
  var packageManager4 = "yarn", useYarn4 = packageManager4 === "yarn", runCommand4 = (scriptName) => `${packageManager4} ${useYarn4 ? "" : "run "}${scriptName}`, main5 = async ({ isFullClone, projectName, projectPath: projectPath2 }) => {
31343
31352
  console.info(`
31344
31353
  ${tamaguiRainbowAsciiArt.split(`
@@ -31370,12 +31379,12 @@ ${takeoutAsciiArt}
31370
31379
  initial: !0
31371
31380
  });
31372
31381
  if (setUpSupabaseEnv) {
31373
- let envs = getEnvFromSupabaseStatus((0, import_child_process.execSync)("yarn supa status").toString()), newEnvContent = Object.entries(envs).map(([key, value]) => `${key}=${value}`).join(`
31382
+ let envs = getEnvFromSupabaseStatus((0, import_node_child_process3.execSync)("yarn supa status").toString()), newEnvContent = Object.entries(envs).map(([key, value]) => `${key}=${value}`).join(`
31374
31383
  `);
31375
- (0, import_fs13.existsSync)(import_path8.default.join(projectPath2, ".env.local")) && (0, import_fs13.readFileSync)(import_path8.default.join(projectPath2, ".env.local")).toString() !== newEnvContent && (0, import_fs13.renameSync)(
31376
- import_path8.default.join(projectPath2, ".env.local"),
31377
- import_path8.default.join(projectPath2, `.env.local.old-${Number(/* @__PURE__ */ new Date())}`)
31378
- ), await import_promises2.default.writeFile(import_path8.default.join(projectPath2, "./.env.local"), newEnvContent);
31384
+ (0, import_node_fs3.existsSync)(import_node_path6.default.join(projectPath2, ".env.local")) && (0, import_node_fs3.readFileSync)(import_node_path6.default.join(projectPath2, ".env.local")).toString() !== newEnvContent && (0, import_node_fs3.renameSync)(
31385
+ import_node_path6.default.join(projectPath2, ".env.local"),
31386
+ import_node_path6.default.join(projectPath2, `.env.local.old-${Number(/* @__PURE__ */ new Date())}`)
31387
+ ), await import_promises2.default.writeFile(import_node_path6.default.join(projectPath2, "./.env.local"), newEnvContent);
31379
31388
  }
31380
31389
  }
31381
31390
  console.info();
@@ -31418,7 +31427,7 @@ visit your project:
31418
31427
  }, takeout_default = main5;
31419
31428
  async function runRetryableCommand(cmd, retriesCount = 0) {
31420
31429
  try {
31421
- return (0, import_child_process.execSync)(cmd, { stdio: "inherit" }), !0;
31430
+ return (0, import_node_child_process3.execSync)(cmd, { stdio: "inherit" }), !0;
31422
31431
  } catch {
31423
31432
  let { tryAgain } = await (0, import_prompts2.default)({
31424
31433
  name: "tryAgain",
@@ -31446,7 +31455,7 @@ async function linkSupabase() {
31446
31455
  initial: !0
31447
31456
  }), cmd = `npx supabase link --project-ref ${supabaseRefId.trim()}`;
31448
31457
  try {
31449
- return (0, import_child_process.execSync)(cmd, {
31458
+ return (0, import_node_child_process3.execSync)(cmd, {
31450
31459
  stdio: "inherit"
31451
31460
  }), !0;
31452
31461
  } catch {
@@ -31480,7 +31489,7 @@ function getEnvFromSupabaseStatus(status) {
31480
31489
  }
31481
31490
 
31482
31491
  // src/templates.ts
31483
- var repoRoot = (0, import_path9.join)(__dirname, "..", "..", ".."), starterFreeRoot = (0, import_path9.join)(__dirname, "..", "..", "..", "..", "starter-free"), starterExists = (0, import_fs14.existsSync)(starterFreeRoot), templates = [
31492
+ var templates = [
31484
31493
  {
31485
31494
  title: "Free - Expo + Next in a production ready monorepo",
31486
31495
  value: "starter-free",
@@ -31488,7 +31497,7 @@ var repoRoot = (0, import_path9.join)(__dirname, "..", "..", ".."), starterFreeR
31488
31497
  hidden: !1,
31489
31498
  packageManager: "yarn",
31490
31499
  repo: {
31491
- url: IS_TEST && starterExists ? `file://${starterFreeRoot}` : "https://github.com/tamagui/starter-free.git",
31500
+ url: process.env.STARTER_FREE_REPO_SOURCE || "https://github.com/tamagui/starter-free.git",
31492
31501
  sshFallback: "git@github.com:tamagui/starter-free.git",
31493
31502
  dir: [],
31494
31503
  branch: "main"
@@ -31516,8 +31525,9 @@ var repoRoot = (0, import_path9.join)(__dirname, "..", "..", ".."), starterFreeR
31516
31525
  value: "expo-router",
31517
31526
  type: "included-in-monorepo",
31518
31527
  hidden: !1,
31528
+ packageManager: "yarn",
31519
31529
  repo: {
31520
- url: IS_TEST ? `file://${repoRoot}` : "https://github.com/tamagui/tamagui.git",
31530
+ url: process.env.TAMAGUI_REPO_SOURCE || "https://github.com/tamagui/tamagui.git",
31521
31531
  sshFallback: "git@github.com:tamagui/tamagui.git",
31522
31532
  dir: ["code", "starters", "expo-router"],
31523
31533
  branch: "master"
@@ -31529,8 +31539,9 @@ var repoRoot = (0, import_path9.join)(__dirname, "..", "..", ".."), starterFreeR
31529
31539
  value: "simple-web",
31530
31540
  type: "included-in-monorepo",
31531
31541
  hidden: !1,
31542
+ packageManager: "yarn",
31532
31543
  repo: {
31533
- url: IS_TEST ? `file://${repoRoot}` : "https://github.com/tamagui/tamagui.git",
31544
+ url: process.env.TAMAGUI_REPO_SOURCE || "https://github.com/tamagui/tamagui.git",
31534
31545
  sshFallback: "git@github.com:tamagui/tamagui.git",
31535
31546
  dir: ["code", "starters", "simple-web"],
31536
31547
  branch: "master"
@@ -31542,8 +31553,9 @@ var repoRoot = (0, import_path9.join)(__dirname, "..", "..", ".."), starterFreeR
31542
31553
  value: "remix",
31543
31554
  type: "included-in-monorepo",
31544
31555
  hidden: !1,
31556
+ packageManager: "yarn",
31545
31557
  repo: {
31546
- url: IS_TEST ? `file://${repoRoot}` : "https://github.com/tamagui/tamagui.git",
31558
+ url: process.env.TAMAGUI_REPO_SOURCE || "https://github.com/tamagui/tamagui.git",
31547
31559
  sshFallback: "git@github.com:tamagui/tamagui.git",
31548
31560
  dir: ["code", "starters", "remix"],
31549
31561
  branch: "master"
@@ -31566,6 +31578,10 @@ var validTemplates = templates.map(({ value }) => value).join(", "), getTemplate
31566
31578
  // src/helpers/installDependencies.ts
31567
31579
  var PackageManager = __toESM(require_build());
31568
31580
  async function installDependencies(projectRoot, packageManager5) {
31581
+ if (process.env.VITEST) {
31582
+ console.warn("Skipping dependency installation because Vitest 2 is running.");
31583
+ return;
31584
+ }
31569
31585
  let options = { cwd: projectRoot };
31570
31586
  packageManager5 === "yarn" ? await new PackageManager.YarnPackageManager(options).installAsync() : await new PackageManager.NpmPackageManager(options).installAsync();
31571
31587
  }
@@ -31594,73 +31610,77 @@ ${import_chalk13.default.blueBright(`npx ${package_default.name} next-expo`)}`
31594
31610
  process.argv.includes("--version") && (console.info(package_default.version), process.exit(0));
31595
31611
  var info = !!program.info;
31596
31612
  async function run() {
31597
- if (info) {
31598
- await (await getTemplateInfo(program.template)).extraSteps({
31599
- isFullClone: !1,
31600
- projectName: import_node_path5.default.basename((0, import_node_process3.cwd)()),
31601
- projectPath: (0, import_node_process3.cwd)()
31602
- });
31603
- return;
31604
- }
31605
- console.info(), console.info(
31606
- import_chalk13.default.bold(
31607
- ' Note: You may need to run "npm create tamagui@latest" to get the latest version!'
31608
- )
31609
- ), console.info(), console.info(), console.info(tamaguiRainbowAsciiArt), console.info(import_chalk13.default.bold("Creating tamagui app...")), parseFloat(
31610
- (0, import_node_child_process3.execSync)("git --version").toString().replace("git version ", "").trim()
31611
- ) < 2.27 && (console.error(`
31613
+ try {
31614
+ if (info) {
31615
+ let template2 = await getTemplateInfo(program.template);
31616
+ template2?.extraSteps && await template2.extraSteps({
31617
+ isFullClone: !1,
31618
+ projectName: import_node_path7.default.basename((0, import_node_process3.cwd)()),
31619
+ projectPath: (0, import_node_process3.cwd)()
31620
+ }), process.exit(0);
31621
+ }
31622
+ console.info(), console.info(
31623
+ import_chalk13.default.bold(
31624
+ ' Note: You may need to run "npm create tamagui@latest" to get the latest version!'
31625
+ )
31626
+ ), console.info(), console.info(), console.info(tamaguiRainbowAsciiArt), console.info(import_chalk13.default.bold("Creating tamagui app...")), Number.parseFloat(
31627
+ (0, import_node_child_process4.execSync)("git --version").toString().replace("git version ", "").trim()
31628
+ ) < 2.27 && (console.error(`
31612
31629
 
31613
31630
  \u26A0\uFE0F Tamagui can't install: Git version must be >= 2.27
31614
31631
 
31615
31632
  `), process.exit(1)), projectPath ||= await getProjectName(projectPath);
31616
- let template = await getTemplateInfo(program.template);
31617
- template.type === "premium" && ((await (0, import_prompts4.default)({
31618
- type: "confirm",
31619
- name: "purchased",
31620
- message: "Have you purchased Takeout on https://tamagui.dev/takeout"
31621
- })).purchased || ((0, import_opener.default)("https://tamagui.dev/takeout"), console.info(
31622
- `
31633
+ let template = await getTemplateInfo(program.template);
31634
+ template.type === "premium" && ((await (0, import_prompts4.default)({
31635
+ type: "confirm",
31636
+ name: "purchased",
31637
+ message: "Have you purchased Takeout on https://tamagui.dev/takeout"
31638
+ })).purchased || ((0, import_opener.default)("https://tamagui.dev/takeout"), console.info(
31639
+ `
31623
31640
  Opening Takeout website - once you purchase you can restart the create process. Thank you!
31624
31641
  `
31625
- ), process.exit(0))), console.info();
31626
- let resolvedProjectPath = import_node_path5.default.resolve(process.cwd(), projectPath), projectName = import_node_path5.default.basename(resolvedProjectPath), { valid, problems } = validateNpmName(projectName);
31627
- valid || (console.error(
31628
- `Could not create a project called ${import_chalk13.default.red(
31629
- `"${projectName}"`
31630
- )} because of npm naming restrictions:`
31631
- ), problems.forEach((p) => console.error(` ${import_chalk13.default.red.bold("*")} ${p}`)), process.exit(1)), import_node_fs3.default.existsSync(resolvedProjectPath) && (console.info(), console.info(
31632
- import_chalk13.default.red("\u{1F6A8} [tamagui] error"),
31633
- `You tried to make a project called ${import_chalk13.default.underline(
31634
- import_chalk13.default.blueBright(projectName)
31635
- )}, but a folder with that name already exists: ${import_chalk13.default.blueBright(
31636
- resolvedProjectPath
31637
- )}
31642
+ ), process.exit(0))), console.info();
31643
+ let resolvedProjectPath = import_node_path7.default.resolve(process.cwd(), projectPath), projectName = import_node_path7.default.basename(resolvedProjectPath), { valid, problems } = validateNpmName(projectName);
31644
+ valid || (console.error(
31645
+ `Could not create a project called ${import_chalk13.default.red(
31646
+ `"${projectName}"`
31647
+ )} because of npm naming restrictions:`
31648
+ ), problems.forEach((p) => console.error(` ${import_chalk13.default.red.bold("*")} ${p}`)), process.exit(1)), import_node_fs4.default.existsSync(resolvedProjectPath) && (console.info(), console.info(
31649
+ import_chalk13.default.red("\u{1F6A8} [tamagui] error"),
31650
+ `You tried to make a project called ${import_chalk13.default.underline(
31651
+ import_chalk13.default.blueBright(projectName)
31652
+ )}, but a folder with that name already exists: ${import_chalk13.default.blueBright(
31653
+ resolvedProjectPath
31654
+ )}
31638
31655
 
31639
31656
  ${import_chalk13.default.bold(import_chalk13.default.red("Please pick a different project name \u{1F978}"))}`
31640
- ), console.info(), console.info(), process.exit(1)), console.info(), console.info(`Creating a new tamagui app ${import_chalk13.default.blueBright(resolvedProjectPath)}...`), import_node_fs3.default.mkdirSync(resolvedProjectPath), console.info(import_chalk13.default.green(`${projectName} folder created.`));
31641
- try {
31642
- await cloneStarter(template, resolvedProjectPath, projectName), cd(resolvedProjectPath), console.info();
31643
- } catch (e) {
31644
- console.error(`[tamagui] Failed to copy example into ${resolvedProjectPath}
31657
+ ), console.info(), console.info(), process.exit(1)), console.info(), console.info(`Creating a new tamagui app ${import_chalk13.default.blueBright(resolvedProjectPath)}...`), import_node_fs4.default.mkdirSync(resolvedProjectPath), console.info(import_chalk13.default.green(`${projectName} folder created.`));
31658
+ try {
31659
+ await cloneStarter(template, resolvedProjectPath, projectName), cd(resolvedProjectPath), console.info();
31660
+ } catch (e) {
31661
+ console.error(`[tamagui] Failed to copy example into ${resolvedProjectPath}
31645
31662
 
31646
31663
  `, e), process.exit(1);
31647
- }
31648
- updatePackageJsonName(projectName, resolvedProjectPath), console.info("Installing packages. This might take a couple of minutes."), console.info();
31649
- let packageManager5 = ("packageManager" in template ? template.packageManager : void 0) || await detect();
31650
- try {
31651
- console.info("installing with " + packageManager5), await installDependencies(resolvedProjectPath, packageManager5);
31652
- } catch (e) {
31653
- console.error("[tamagui] error installing with " + packageManager5 + `
31664
+ }
31665
+ updatePackageJsonName(projectName, resolvedProjectPath), console.info("Installing packages. This might take a couple of minutes."), console.info();
31666
+ let packageManager5 = ("packageManager" in template ? template.packageManager : void 0) || await detect();
31667
+ try {
31668
+ console.info("installing with " + packageManager5), await installDependencies(resolvedProjectPath, packageManager5);
31669
+ } catch (e) {
31670
+ console.error("[tamagui] error installing with " + packageManager5 + `
31654
31671
  ${e}`), process.exit(1);
31672
+ }
31673
+ await template?.extraSteps?.({
31674
+ isFullClone: !0,
31675
+ projectName,
31676
+ projectPath: resolvedProjectPath
31677
+ }), console.info(), console.info(import_chalk13.default.gray(tamaguiDuckAsciiArt)), process.exit(0);
31678
+ } catch (error) {
31679
+ console.error("An unexpected error occurred:", error), process.exit(1);
31655
31680
  }
31656
- await template.extraSteps({
31657
- isFullClone: !0,
31658
- projectName,
31659
- projectPath: resolvedProjectPath
31660
- }), console.info(), console.info(import_chalk13.default.gray(tamaguiDuckAsciiArt));
31661
31681
  }
31662
31682
  function updatePackageJsonName(projectName, dir) {
31663
- let packageJsonPath = import_node_path5.default.join(dir, "package.json");
31683
+ let packageJsonPath = import_node_path7.default.join(dir, "package.json");
31664
31684
  if ((0, import_fs_extra2.existsSync)(packageJsonPath)) {
31665
31685
  let contentWithUpdatedName = (0, import_fs_extra2.readFileSync)(packageJsonPath).toString().replace(
31666
31686
  /("name": ")(.*)(",)/,
@@ -31669,7 +31689,9 @@ function updatePackageJsonName(projectName, dir) {
31669
31689
  (0, import_fs_extra2.writeFileSync)(packageJsonPath, contentWithUpdatedName);
31670
31690
  }
31671
31691
  }
31672
- run();
31692
+ run().catch((error) => {
31693
+ console.error("An unexpected error occurred:", error), process.exit(1);
31694
+ });
31673
31695
  /*! Bundled license information:
31674
31696
 
31675
31697
  is-extglob/index.js: