tsoft-cli 3.9.5 → 3.10.1

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/CHANGELOG.md CHANGED
@@ -5,6 +5,21 @@ All notable changes to T-Soft CLI will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [3.10.1] - 2026-07-30
9
+
10
+ ### Fixed
11
+ - The declared Node.js requirement now matches what the CLI actually needs: `>=20.19.0` instead of `>=18.0.0`. The old figure had not been true for some time. `@inquirer/prompts` dropped Node 18 and 19 entirely, and `chokidar` requires 20.19.0 or newer, so installing on Node 18 produced an `EBADENGINE` warning and then failed at runtime on any interactive command. Nothing about the CLI changed — the requirement is simply stated honestly now, so npm can warn before installation rather than leaving you with a broken command.
12
+ - The same version is now stated consistently in `package.json`, the README requirements list, and CONTRIBUTING. Previously all three repeated the outdated `18.0.0`, and the figure on the npm package page comes straight from `package.json`.
13
+
14
+ ## [3.10.0] - 2026-07-30
15
+
16
+ ### Added
17
+ - `tsoft theme create` now accepts the theme name as an argument: `tsoft theme create my-theme`. The name was previously only ever asked for interactively, so a name passed on the command line was silently discarded and the prompt appeared anyway. Every other theme command already took an optional name, and `create` was the exception. Running `tsoft theme create` with no argument still prompts exactly as before.
18
+
19
+ ### Fixed
20
+ - `tsoft theme init` is now also available as `tsoft theme fork`. The command has always forked an existing theme into a copy of your own, but the name `init` read like "start a blank project", so developers looked for a fork command and concluded forking was unavailable. Both names run the same command and `theme init` keeps working unchanged.
21
+ - The help screen lists the command as `theme fork`, and the JSON-mode usage hint points to `tsoft --json theme fork --from <slug>`.
22
+
8
23
  ## [3.9.5] - 2026-07-20
9
24
 
10
25
  ### Fixed
package/README.md CHANGED
@@ -10,7 +10,7 @@ npm install -g tsoft-cli
10
10
 
11
11
  ## Requirements
12
12
 
13
- - Node.js >= 18.0.0
13
+ - Node.js >= 20.19.0
14
14
 
15
15
  ## Quick Start
16
16
 
package/locales/en.json CHANGED
@@ -214,7 +214,7 @@
214
214
  "init.location_label": "Location:",
215
215
  "init.dev_tip": "To start development: tsoft theme dev {{slug}}",
216
216
  "init.json_error.message": "--from parameter required (interactive selection not supported in JSON mode)",
217
- "init.json_error.hint": "Usage: tsoft --json theme init --from <slug>",
217
+ "init.json_error.hint": "Usage: tsoft --json theme fork --from <slug>",
218
218
  "init.theme_not_found": "Theme not found: {{slug}}",
219
219
  "section.list.no_active_theme": "No active theme found. Please run \"tsoft theme use <theme-name>\" first.",
220
220
  "section.list.starting": "Listing sections...",
@@ -316,7 +316,7 @@
316
316
  "help.cmd.theme_create": "Create a new theme",
317
317
  "help.cmd.theme_pull": "Download an existing theme",
318
318
  "help.cmd.theme_use": "Set the active theme",
319
- "help.cmd.theme_init": "Initialize a new theme by forking an existing one",
319
+ "help.cmd.theme_init": "Fork an existing theme into a new theme of your own (alias: theme init)",
320
320
  "help.cmd.login": "Authenticate with your tsoft360 store",
321
321
  "help.cmd.logout": "Sign out and clear local credentials",
322
322
  "help.cmd.whoami": "Show the logged-in user and store info",
package/locales/tr.json CHANGED
@@ -214,7 +214,7 @@
214
214
  "init.location_label": "Konum:",
215
215
  "init.dev_tip": "Geliştirmeye başlamak için: tsoft theme dev {{slug}}",
216
216
  "init.json_error.message": "--from parametresi gerekli (JSON modda interaktif seçim desteklenmez)",
217
- "init.json_error.hint": "Kullanim: tsoft --json theme init --from <slug>",
217
+ "init.json_error.hint": "Kullanim: tsoft --json theme fork --from <slug>",
218
218
  "init.theme_not_found": "Tema bulunamadı: {{slug}}",
219
219
  "section.list.no_active_theme": "Aktif tema bulunamadı. Lütfen önce \"tsoft theme use <tema-adı>\" komutunu çalıştırın.",
220
220
  "section.list.starting": "Section'lar listeleniyor...",
@@ -316,7 +316,7 @@
316
316
  "help.cmd.theme_create": "Yeni bir tema oluşturun",
317
317
  "help.cmd.theme_pull": "Mevcut bir temayı indirin",
318
318
  "help.cmd.theme_use": "Aktif temayı ayarlayın",
319
- "help.cmd.theme_init": "Mevcut bir temayi fork ederek yeni tema başlatın",
319
+ "help.cmd.theme_init": "Mevcut bir temayi fork ederek kendi temanizi olusturun (eski adi: theme init)",
320
320
  "help.cmd.login": "tsoft360 mağazanızla kimlik doğrulayın",
321
321
  "help.cmd.logout": "Oturumu kapatın ve yerel kimlik bilgilerini temizleyin",
322
322
  "help.cmd.whoami": "Giriş yapan kullanıcı ve mağaza bilgilerini gösterin",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tsoft-cli",
3
- "version": "3.9.5",
3
+ "version": "3.10.1",
4
4
  "description": "Command-line tool for tsoft360 theme development and management",
5
5
  "type": "module",
6
6
  "main": "src/index.js",
@@ -8,14 +8,15 @@
8
8
  "tsoft": "src/index.js"
9
9
  },
10
10
  "engines": {
11
- "node": ">=18.0.0"
11
+ "node": ">=20.19.0"
12
12
  },
13
13
  "scripts": {
14
14
  "start": "node src/index.js",
15
15
  "dev": "node --watch src/index.js",
16
16
  "test": "vitest run",
17
17
  "test:watch": "vitest",
18
- "check-locales": "node scripts/check-locales.js"
18
+ "check-locales": "node scripts/check-locales.js",
19
+ "check-engine-floor": "node scripts/check-engine-floor.js"
19
20
  },
20
21
  "keywords": [
21
22
  "tsoft",
@@ -54,6 +55,7 @@
54
55
  "url": "git+https://github.com/tekrom/tsoft-cli.git"
55
56
  },
56
57
  "devDependencies": {
58
+ "semver": "^7.8.5",
57
59
  "vitest": "^4.1.5"
58
60
  }
59
61
  }
@@ -71,7 +71,7 @@ export async function themeListCommand() {
71
71
  }
72
72
  }
73
73
 
74
- export async function themeCreateCommand() {
74
+ export async function themeCreateCommand(themeName) {
75
75
  try {
76
76
  const store = await getActiveStore();
77
77
  if (!store) {
@@ -81,7 +81,9 @@ export async function themeCreateCommand() {
81
81
 
82
82
  console.log(chalk.cyan(t('theme.creating') + '\n'));
83
83
 
84
- const name = await input({
84
+ const providedName = typeof themeName === 'string' ? themeName.trim() : '';
85
+
86
+ const name = providedName || await input({
85
87
  message: t('theme.name_prompt'), validate: (value) => {
86
88
  if (!value.trim()) {
87
89
  return t('theme.name_required');
package/src/index.js CHANGED
@@ -93,10 +93,10 @@ theme
93
93
  });
94
94
 
95
95
  theme
96
- .command('create')
96
+ .command('create [theme-name]')
97
97
  .description('Create a new theme')
98
- .action(async () => {
99
- await themeCreateCommand();
98
+ .action(async (themeName) => {
99
+ await themeCreateCommand(themeName);
100
100
  });
101
101
 
102
102
  theme
@@ -146,7 +146,8 @@ submitCmd._hidden = true;
146
146
 
147
147
  theme
148
148
  .command('init')
149
- .description('Initialize a new theme by forking an existing one')
149
+ .alias('fork')
150
+ .description('Fork an existing theme into a new theme of your own')
150
151
  .option('--from [slug]', 'Slug or name of the theme to fork')
151
152
  .action(async (options) => {
152
153
  await themeInitCommand(options.from);
@@ -52,7 +52,7 @@ const COMMAND_GROUPS = [
52
52
  { display: 'theme create', descKey: 'help.cmd.theme_create' },
53
53
  { display: 'theme pull', descKey: 'help.cmd.theme_pull' },
54
54
  { display: 'theme use', descKey: 'help.cmd.theme_use' },
55
- { display: 'theme init', descKey: 'help.cmd.theme_init' },
55
+ { display: 'theme fork', descKey: 'help.cmd.theme_init' },
56
56
  ]
57
57
  },
58
58
  {