rapidkit 1.0.0-beta.4 โ†’ 1.0.0-beta.5

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/README.md CHANGED
@@ -187,6 +187,9 @@ npx rapidkit [workspace-name] [options]
187
187
  - `--demo-only` - **[Internal]** Generate a single project in current directory (used by demo workspace script)
188
188
  - `--skip-git` - Skip git initialization
189
189
  - `--test-mode` - **[Beta Testing]** Install from local RapidKit path (for development/testing only)
190
+ - `--debug` - Enable verbose debug logging
191
+ - `--dry-run` - Preview what would be created without creating it
192
+ - `--no-update-check` - Skip checking for newer versions
190
193
  - `--help` - Display help information
191
194
  - `--version` - Show version number
192
195
 
@@ -227,6 +230,45 @@ npx rapidkit --demo
227
230
  npx rapidkit my-workspace --demo --skip-git
228
231
  ```
229
232
 
233
+ ### Debug mode
234
+ ```bash
235
+ npx rapidkit my-workspace --debug
236
+ ```
237
+
238
+ ### Dry-run (preview without creating)
239
+ ```bash
240
+ npx rapidkit my-workspace --dry-run
241
+ npx rapidkit my-workspace --demo --dry-run
242
+ ```
243
+
244
+ ## Configuration
245
+
246
+ ### User Configuration File
247
+
248
+ Create `~/.rapidkitrc.json` in your home directory to set default values:
249
+
250
+ ```json
251
+ {
252
+ "defaultKit": "fastapi.standard",
253
+ "defaultInstallMethod": "poetry",
254
+ "pythonVersion": "3.11",
255
+ "author": "Your Name",
256
+ "license": "MIT",
257
+ "skipGit": false
258
+ }
259
+ ```
260
+
261
+ ### Environment Variables
262
+
263
+ For test mode with local RapidKit installation:
264
+
265
+ ```bash
266
+ export RAPIDKIT_DEV_PATH=/path/to/local/rapidkit
267
+ npx rapidkit my-workspace --test-mode
268
+ ```
269
+
270
+ **Priority:** CLI options > Environment variables > Config file > Defaults
271
+
230
272
  ## Requirements
231
273
 
232
274
  - **Node.js**: 18+ (for running npx)
@@ -398,7 +440,17 @@ MIT
398
440
 
399
441
  ### About This Beta
400
442
 
401
- **rapidkit** (npm package) is currently in beta version 1.0.0-beta.4. The `--demo` mode is fully functional for creating workspaces with bundled FastAPI templates. You can generate multiple projects within the same workspace without needing Python RapidKit installed.
443
+ **rapidkit** (npm package) is currently in beta version 1.0.0-beta.5. The `--demo` mode is fully functional for creating workspaces with bundled FastAPI templates. You can generate multiple projects within the same workspace without needing Python RapidKit installed.
444
+
445
+ **New in beta.5:**
446
+ - ๐Ÿ› Custom error classes with detailed messages
447
+ - โœ… Input validation for project names
448
+ - โš™๏ธ Configuration file support (~/.rapidkitrc.json)
449
+ - ๐Ÿ” Debug mode (--debug) and dry-run mode (--dry-run)
450
+ - ๐Ÿ”„ Automatic update checker
451
+ - ๐Ÿงน Graceful cleanup on interrupt (Ctrl+C)
452
+ - ๐Ÿงช Full test suite with 26 tests
453
+ - ๐Ÿ“š Comprehensive documentation (DEVELOPMENT.md, CHANGELOG.md)
402
454
 
403
455
  Install with:
404
456
  ```bash
@@ -0,0 +1,13 @@
1
+ export interface UserConfig {
2
+ defaultKit?: string;
3
+ defaultInstallMethod?: 'poetry' | 'venv' | 'pipx';
4
+ pythonVersion?: '3.10' | '3.11' | '3.12';
5
+ author?: string;
6
+ license?: string;
7
+ skipGit?: boolean;
8
+ testRapidKitPath?: string;
9
+ }
10
+ export declare function loadUserConfig(): Promise<UserConfig>;
11
+ export declare function saveUserConfig(config: UserConfig): Promise<void>;
12
+ export declare function getTestRapidKitPath(config: UserConfig): string | undefined;
13
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IAClD,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAOD,wBAAsB,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC,CAa1D;AAKD,wBAAsB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAStE;AAKD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAO1E"}
package/dist/config.js ADDED
@@ -0,0 +1,34 @@
1
+ import { promises as fs } from 'fs';
2
+ import path from 'path';
3
+ import os from 'os';
4
+ import { logger } from './logger.js';
5
+ const CONFIG_FILE_NAME = '.rapidkitrc.json';
6
+ export async function loadUserConfig() {
7
+ const configPath = path.join(os.homedir(), CONFIG_FILE_NAME);
8
+ try {
9
+ const content = await fs.readFile(configPath, 'utf-8');
10
+ const config = JSON.parse(content);
11
+ logger.debug(`Loaded config from ${configPath}`);
12
+ return config;
13
+ }
14
+ catch (error) {
15
+ logger.debug('No user config found, using defaults');
16
+ return {};
17
+ }
18
+ }
19
+ export async function saveUserConfig(config) {
20
+ const configPath = path.join(os.homedir(), CONFIG_FILE_NAME);
21
+ try {
22
+ await fs.writeFile(configPath, JSON.stringify(config, null, 2), 'utf-8');
23
+ logger.debug(`Saved config to ${configPath}`);
24
+ }
25
+ catch (error) {
26
+ logger.warn('Could not save configuration file');
27
+ }
28
+ }
29
+ export function getTestRapidKitPath(config) {
30
+ return (process.env.RAPIDKIT_DEV_PATH ||
31
+ config.testRapidKitPath ||
32
+ undefined);
33
+ }
34
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAarC,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAK5C,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAE7D,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAe,CAAC;QACjD,MAAM,CAAC,KAAK,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAC;QACjD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAEf,MAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACrD,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAKD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAkB;IACrD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAE7D,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACzE,MAAM,CAAC,KAAK,CAAC,mBAAmB,UAAU,EAAE,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAKD,MAAM,UAAU,mBAAmB,CAAC,MAAkB;IAEpD,OAAO,CACL,OAAO,CAAC,GAAG,CAAC,iBAAiB;QAC7B,MAAM,CAAC,gBAAgB;QACvB,SAAS,CACV,CAAC;AACJ,CAAC"}
package/dist/create.d.ts CHANGED
@@ -1,7 +1,10 @@
1
+ import { UserConfig } from './config.js';
1
2
  interface CreateProjectOptions {
2
3
  skipGit?: boolean;
3
4
  testMode?: boolean;
4
5
  demoMode?: boolean;
6
+ dryRun?: boolean;
7
+ userConfig?: UserConfig;
5
8
  }
6
9
  export declare function createProject(projectName: string | undefined, options: CreateProjectOptions): Promise<void>;
7
10
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"AAQA,UAAU,oBAAoB;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,OAAO,EAAE,oBAAoB,iBAgJ9B"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAuB,MAAM,aAAa,CAAC;AAU9D,UAAU,oBAAoB;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,OAAO,EAAE,oBAAoB,iBA0J9B"}
package/dist/create.js CHANGED
@@ -5,14 +5,19 @@ import inquirer from 'inquirer';
5
5
  import chalk from 'chalk';
6
6
  import ora from 'ora';
7
7
  import { execa } from 'execa';
8
+ import { logger } from './logger.js';
9
+ import { getTestRapidKitPath } from './config.js';
10
+ import { DirectoryExistsError, PythonNotFoundError, PoetryNotFoundError, PipxNotFoundError, InstallationError, RapidKitNotAvailableError, } from './errors.js';
8
11
  export async function createProject(projectName, options) {
9
- const { skipGit = false, testMode = false, demoMode = false } = options;
12
+ const { skipGit = false, testMode = false, demoMode = false, dryRun = false, userConfig = {}, } = options;
10
13
  const name = projectName || 'rapidkit';
11
14
  const projectPath = path.resolve(process.cwd(), name);
12
15
  if (await fsExtra.pathExists(projectPath)) {
13
- console.log(chalk.red(`\nโŒ Directory "${name}" already exists!`));
14
- console.log(chalk.yellow('๐Ÿ’ก Please choose a different name or remove the existing directory.\n'));
15
- process.exit(1);
16
+ throw new DirectoryExistsError(name);
17
+ }
18
+ if (dryRun) {
19
+ await showDryRun(projectPath, name, demoMode, userConfig);
20
+ return;
16
21
  }
17
22
  if (demoMode) {
18
23
  await createDemoWorkspace(projectPath, name, skipGit);
@@ -24,7 +29,7 @@ export async function createProject(projectName, options) {
24
29
  name: 'pythonVersion',
25
30
  message: 'Select Python version for RapidKit:',
26
31
  choices: ['3.10', '3.11', '3.12'],
27
- default: '3.11',
32
+ default: userConfig.pythonVersion || '3.11',
28
33
  },
29
34
  {
30
35
  type: 'list',
@@ -35,22 +40,22 @@ export async function createProject(projectName, options) {
35
40
  { name: '๐Ÿ“ฆ pip with venv (Standard)', value: 'venv' },
36
41
  { name: '๐Ÿ”ง pipx (Global isolated install)', value: 'pipx' },
37
42
  ],
38
- default: 'poetry',
43
+ default: userConfig.defaultInstallMethod || 'poetry',
39
44
  },
40
45
  ]);
41
- console.log(chalk.blue('\n๐Ÿ“ฆ Setting up RapidKit environment...\n'));
46
+ logger.step(1, 3, 'Setting up RapidKit environment');
42
47
  const spinner = ora('Creating directory').start();
43
48
  try {
44
49
  await fsExtra.ensureDir(projectPath);
45
50
  spinner.succeed('Directory created');
46
51
  if (pythonAnswers.installMethod === 'poetry') {
47
- await installWithPoetry(projectPath, pythonAnswers.pythonVersion, spinner, testMode);
52
+ await installWithPoetry(projectPath, pythonAnswers.pythonVersion, spinner, testMode, userConfig);
48
53
  }
49
54
  else if (pythonAnswers.installMethod === 'venv') {
50
- await installWithVenv(projectPath, pythonAnswers.pythonVersion, spinner, testMode);
55
+ await installWithVenv(projectPath, pythonAnswers.pythonVersion, spinner, testMode, userConfig);
51
56
  }
52
57
  else {
53
- await installWithPipx(projectPath, spinner, testMode);
58
+ await installWithPipx(projectPath, spinner, testMode, userConfig);
54
59
  }
55
60
  await createReadme(projectPath, pythonAnswers.installMethod);
56
61
  spinner.succeed('RapidKit environment ready!');
@@ -123,17 +128,14 @@ export async function createProject(projectName, options) {
123
128
  process.exit(1);
124
129
  }
125
130
  }
126
- async function installWithPoetry(projectPath, pythonVersion, spinner, testMode) {
131
+ async function installWithPoetry(projectPath, pythonVersion, spinner, testMode, userConfig) {
127
132
  spinner.start('Checking Poetry installation');
128
133
  try {
129
134
  await execa('poetry', ['--version']);
130
135
  spinner.succeed('Poetry found');
131
136
  }
132
137
  catch (error) {
133
- spinner.fail('Poetry not found');
134
- console.log(chalk.yellow('\nโš ๏ธ Poetry is not installed.'));
135
- console.log(chalk.cyan('Install Poetry: https://python-poetry.org/docs/#installation\n'));
136
- process.exit(1);
138
+ throw new PoetryNotFoundError();
137
139
  }
138
140
  spinner.start('Initializing Poetry project');
139
141
  await execa('poetry', ['init', '--no-interaction', '--python', `^${pythonVersion}`], {
@@ -146,31 +148,41 @@ async function installWithPoetry(projectPath, pythonVersion, spinner, testMode)
146
148
  spinner.succeed('Poetry project initialized');
147
149
  spinner.start('Installing RapidKit');
148
150
  if (testMode) {
149
- const localRapidKitPath = '/home/debux/WOSP/Rapid/community';
151
+ const localPath = getTestRapidKitPath(userConfig || {});
152
+ if (!localPath) {
153
+ throw new InstallationError('Test mode installation', new Error('No local RapidKit path configured. Set RAPIDKIT_DEV_PATH environment variable.'));
154
+ }
155
+ logger.debug(`Installing from local path: ${localPath}`);
150
156
  spinner.text = 'Installing RapidKit from local path (test mode)';
151
- await execa('poetry', ['add', localRapidKitPath], { cwd: projectPath });
157
+ await execa('poetry', ['add', localPath], { cwd: projectPath });
152
158
  }
153
159
  else {
154
- await execa('poetry', ['add', 'rapidkit'], { cwd: projectPath });
160
+ spinner.text = 'Installing RapidKit from PyPI';
161
+ try {
162
+ await execa('poetry', ['add', 'rapidkit'], { cwd: projectPath });
163
+ }
164
+ catch (error) {
165
+ throw new RapidKitNotAvailableError();
166
+ }
155
167
  }
156
168
  spinner.succeed('RapidKit installed');
157
169
  }
158
- async function installWithVenv(projectPath, pythonVersion, spinner, testMode) {
170
+ async function installWithVenv(projectPath, pythonVersion, spinner, testMode, userConfig) {
159
171
  spinner.start(`Checking Python ${pythonVersion}`);
160
172
  let pythonCmd = 'python3';
161
173
  try {
162
174
  const { stdout } = await execa(pythonCmd, ['--version']);
163
175
  const version = stdout.match(/Python (\d+\.\d+)/)?.[1];
164
176
  if (version && parseFloat(version) < parseFloat(pythonVersion)) {
165
- throw new Error(`Python ${pythonVersion}+ required, found ${version}`);
177
+ throw new PythonNotFoundError(pythonVersion, version);
166
178
  }
167
179
  spinner.succeed(`Python ${version} found`);
168
180
  }
169
181
  catch (error) {
170
- spinner.fail('Python not found or version too old');
171
- console.log(chalk.red('\nโŒ Python 3.10+ is required.'));
172
- console.log(chalk.cyan('Install Python: https://www.python.org/downloads/\n'));
173
- process.exit(1);
182
+ if (error instanceof PythonNotFoundError) {
183
+ throw error;
184
+ }
185
+ throw new PythonNotFoundError(pythonVersion);
174
186
  }
175
187
  spinner.start('Creating virtual environment');
176
188
  await execa(pythonCmd, ['-m', 'venv', '.venv'], { cwd: projectPath });
@@ -179,35 +191,52 @@ async function installWithVenv(projectPath, pythonVersion, spinner, testMode) {
179
191
  const pipPath = path.join(projectPath, '.venv', 'bin', 'pip');
180
192
  await execa(pipPath, ['install', '--upgrade', 'pip'], { cwd: projectPath });
181
193
  if (testMode) {
182
- const localRapidKitPath = '/home/debux/WOSP/Rapid/community';
194
+ const localPath = getTestRapidKitPath(userConfig || {});
195
+ if (!localPath) {
196
+ throw new InstallationError('Test mode installation', new Error('No local RapidKit path configured. Set RAPIDKIT_DEV_PATH environment variable.'));
197
+ }
198
+ logger.debug(`Installing from local path: ${localPath}`);
183
199
  spinner.text = 'Installing RapidKit from local path (test mode)';
184
- await execa(pipPath, ['install', '-e', localRapidKitPath], { cwd: projectPath });
200
+ await execa(pipPath, ['install', '-e', localPath], { cwd: projectPath });
185
201
  }
186
202
  else {
187
- await execa(pipPath, ['install', 'rapidkit'], { cwd: projectPath });
203
+ spinner.text = 'Installing RapidKit from PyPI';
204
+ try {
205
+ await execa(pipPath, ['install', 'rapidkit'], { cwd: projectPath });
206
+ }
207
+ catch (error) {
208
+ throw new RapidKitNotAvailableError();
209
+ }
188
210
  }
189
211
  spinner.succeed('RapidKit installed');
190
212
  }
191
- async function installWithPipx(projectPath, spinner, testMode) {
213
+ async function installWithPipx(projectPath, spinner, testMode, userConfig) {
192
214
  spinner.start('Checking pipx installation');
193
215
  try {
194
216
  await execa('pipx', ['--version']);
195
217
  spinner.succeed('pipx found');
196
218
  }
197
219
  catch (error) {
198
- spinner.fail('pipx not found');
199
- console.log(chalk.yellow('\nโš ๏ธ pipx is not installed.'));
200
- console.log(chalk.cyan('Install pipx: https://pypa.github.io/pipx/installation/\n'));
201
- process.exit(1);
220
+ throw new PipxNotFoundError();
202
221
  }
203
222
  spinner.start('Installing RapidKit globally with pipx');
204
223
  if (testMode) {
205
- const localRapidKitPath = '/home/debux/WOSP/Rapid/community';
224
+ const localPath = getTestRapidKitPath(userConfig || {});
225
+ if (!localPath) {
226
+ throw new InstallationError('Test mode installation', new Error('No local RapidKit path configured. Set RAPIDKIT_DEV_PATH environment variable.'));
227
+ }
228
+ logger.debug(`Installing from local path: ${localPath}`);
206
229
  spinner.text = 'Installing RapidKit from local path (test mode)';
207
- await execa('pipx', ['install', '-e', localRapidKitPath]);
230
+ await execa('pipx', ['install', '-e', localPath]);
208
231
  }
209
232
  else {
210
- await execa('pipx', ['install', 'rapidkit']);
233
+ spinner.text = 'Installing RapidKit from PyPI';
234
+ try {
235
+ await execa('pipx', ['install', 'rapidkit']);
236
+ }
237
+ catch (error) {
238
+ throw new RapidKitNotAvailableError();
239
+ }
211
240
  }
212
241
  spinner.succeed('RapidKit installed globally');
213
242
  await fsExtra.outputFile(path.join(projectPath, '.rapidkit-global'), 'RapidKit installed globally with pipx\n', 'utf-8');
@@ -502,4 +531,35 @@ ${name}/
502
531
  throw error;
503
532
  }
504
533
  }
534
+ async function showDryRun(projectPath, _name, demoMode, userConfig) {
535
+ console.log(chalk.cyan('\n๐Ÿ” Dry-run mode - showing what would be created:\n'));
536
+ console.log(chalk.white('๐Ÿ“‚ Project path:'), projectPath);
537
+ console.log(chalk.white('๐Ÿ“ฆ Project type:'), demoMode ? 'Demo workspace' : 'Full RapidKit environment');
538
+ if (demoMode) {
539
+ console.log(chalk.white('\n๐Ÿ“ Files to create:'));
540
+ console.log(chalk.gray(' - package.json'));
541
+ console.log(chalk.gray(' - generate-demo.js (project generator)'));
542
+ console.log(chalk.gray(' - README.md'));
543
+ console.log(chalk.gray(' - .gitignore'));
544
+ console.log(chalk.white('\n๐ŸŽฏ Capabilities:'));
545
+ console.log(chalk.gray(' - Generate multiple FastAPI demo projects'));
546
+ console.log(chalk.gray(' - No Python RapidKit installation required'));
547
+ console.log(chalk.gray(' - Bundled templates included'));
548
+ }
549
+ else {
550
+ console.log(chalk.white('\nโš™๏ธ Configuration:'));
551
+ console.log(chalk.gray(` - Python version: ${userConfig.pythonVersion || '3.11'}`));
552
+ console.log(chalk.gray(` - Install method: ${userConfig.defaultInstallMethod || 'poetry'}`));
553
+ console.log(chalk.gray(` - Git initialization: ${userConfig.skipGit ? 'No' : 'Yes'}`));
554
+ console.log(chalk.white('\n๐Ÿ“ Files to create:'));
555
+ console.log(chalk.gray(' - pyproject.toml (Poetry) or .venv/ (venv)'));
556
+ console.log(chalk.gray(' - README.md'));
557
+ console.log(chalk.gray(' - .gitignore'));
558
+ console.log(chalk.white('\n๐ŸŽฏ Next steps after creation:'));
559
+ console.log(chalk.gray(' 1. Install RapidKit Python package'));
560
+ console.log(chalk.gray(' 2. Create projects with rapidkit CLI'));
561
+ console.log(chalk.gray(' 3. Add modules and customize'));
562
+ }
563
+ console.log(chalk.white('\n๐Ÿ’ก To proceed with actual creation, run without --dry-run flag\n'));
564
+ }
505
565
  //# sourceMappingURL=create.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ export declare class RapidKitError extends Error {
2
+ code: string;
3
+ details?: string | undefined;
4
+ constructor(message: string, code: string, details?: string | undefined);
5
+ }
6
+ export declare class PythonNotFoundError extends RapidKitError {
7
+ constructor(requiredVersion: string, foundVersion?: string);
8
+ }
9
+ export declare class PoetryNotFoundError extends RapidKitError {
10
+ constructor();
11
+ }
12
+ export declare class PipxNotFoundError extends RapidKitError {
13
+ constructor();
14
+ }
15
+ export declare class DirectoryExistsError extends RapidKitError {
16
+ constructor(dirName: string);
17
+ }
18
+ export declare class InvalidProjectNameError extends RapidKitError {
19
+ constructor(name: string, reason: string);
20
+ }
21
+ export declare class InstallationError extends RapidKitError {
22
+ constructor(step: string, originalError: Error);
23
+ }
24
+ export declare class RapidKitNotAvailableError extends RapidKitError {
25
+ constructor();
26
+ }
27
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAIA,qBAAa,aAAc,SAAQ,KAAK;IAG7B,IAAI,EAAE,MAAM;IACZ,OAAO,CAAC,EAAE,MAAM;gBAFvB,OAAO,EAAE,MAAM,EACR,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,YAAA;CAM1B;AAED,qBAAa,mBAAoB,SAAQ,aAAa;gBACxC,eAAe,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;CAM3D;AAED,qBAAa,mBAAoB,SAAQ,aAAa;;CAQrD;AAED,qBAAa,iBAAkB,SAAQ,aAAa;;CAQnD;AAED,qBAAa,oBAAqB,SAAQ,aAAa;gBACzC,OAAO,EAAE,MAAM;CAO5B;AAED,qBAAa,uBAAwB,SAAQ,aAAa;gBAC5C,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAOzC;AAED,qBAAa,iBAAkB,SAAQ,aAAa;gBACtC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK;CAO/C;AAED,qBAAa,yBAA0B,SAAQ,aAAa;;CAQ3D"}
package/dist/errors.js ADDED
@@ -0,0 +1,50 @@
1
+ export class RapidKitError extends Error {
2
+ code;
3
+ details;
4
+ constructor(message, code, details) {
5
+ super(message);
6
+ this.code = code;
7
+ this.details = details;
8
+ this.name = 'RapidKitError';
9
+ Error.captureStackTrace(this, this.constructor);
10
+ }
11
+ }
12
+ export class PythonNotFoundError extends RapidKitError {
13
+ constructor(requiredVersion, foundVersion) {
14
+ const message = foundVersion
15
+ ? `Python ${requiredVersion}+ required, found ${foundVersion}`
16
+ : `Python ${requiredVersion}+ not found`;
17
+ super(message, 'PYTHON_NOT_FOUND', `Please install Python from https://www.python.org/downloads/`);
18
+ }
19
+ }
20
+ export class PoetryNotFoundError extends RapidKitError {
21
+ constructor() {
22
+ super('Poetry is not installed', 'POETRY_NOT_FOUND', 'Install Poetry from https://python-poetry.org/docs/#installation');
23
+ }
24
+ }
25
+ export class PipxNotFoundError extends RapidKitError {
26
+ constructor() {
27
+ super('pipx is not installed', 'PIPX_NOT_FOUND', 'Install pipx from https://pypa.github.io/pipx/installation/');
28
+ }
29
+ }
30
+ export class DirectoryExistsError extends RapidKitError {
31
+ constructor(dirName) {
32
+ super(`Directory "${dirName}" already exists`, 'DIRECTORY_EXISTS', 'Please choose a different name or remove the existing directory');
33
+ }
34
+ }
35
+ export class InvalidProjectNameError extends RapidKitError {
36
+ constructor(name, reason) {
37
+ super(`Invalid project name: "${name}"`, 'INVALID_PROJECT_NAME', reason);
38
+ }
39
+ }
40
+ export class InstallationError extends RapidKitError {
41
+ constructor(step, originalError) {
42
+ super(`Installation failed at step: ${step}`, 'INSTALLATION_ERROR', originalError.message);
43
+ }
44
+ }
45
+ export class RapidKitNotAvailableError extends RapidKitError {
46
+ constructor() {
47
+ super('RapidKit Python package is not yet available on PyPI', 'RAPIDKIT_NOT_AVAILABLE', 'Please use --demo mode or --test-mode with a local RapidKit installation');
48
+ }
49
+ }
50
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,aAAc,SAAQ,KAAK;IAG7B;IACA;IAHT,YACE,OAAe,EACR,IAAY,EACZ,OAAgB;QAEvB,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAS;QAGvB,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,aAAa;IACpD,YAAY,eAAuB,EAAE,YAAqB;QACxD,MAAM,OAAO,GAAG,YAAY;YAC1B,CAAC,CAAC,UAAU,eAAe,qBAAqB,YAAY,EAAE;YAC9D,CAAC,CAAC,UAAU,eAAe,aAAa,CAAC;QAC3C,KAAK,CAAC,OAAO,EAAE,kBAAkB,EAAE,8DAA8D,CAAC,CAAC;IACrG,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,aAAa;IACpD;QACE,KAAK,CACH,yBAAyB,EACzB,kBAAkB,EAClB,kEAAkE,CACnE,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IAClD;QACE,KAAK,CACH,uBAAuB,EACvB,gBAAgB,EAChB,6DAA6D,CAC9D,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,aAAa;IACrD,YAAY,OAAe;QACzB,KAAK,CACH,cAAc,OAAO,kBAAkB,EACvC,kBAAkB,EAClB,iEAAiE,CAClE,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,uBAAwB,SAAQ,aAAa;IACxD,YAAY,IAAY,EAAE,MAAc;QACtC,KAAK,CACH,0BAA0B,IAAI,GAAG,EACjC,sBAAsB,EACtB,MAAM,CACP,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IAClD,YAAY,IAAY,EAAE,aAAoB;QAC5C,KAAK,CACH,gCAAgC,IAAI,EAAE,EACtC,oBAAoB,EACpB,aAAa,CAAC,OAAO,CACtB,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,aAAa;IAC1D;QACE,KAAK,CACH,sDAAsD,EACtD,wBAAwB,EACxB,0EAA0E,CAC3E,CAAC;IACJ,CAAC;CACF"}
package/dist/index.js CHANGED
@@ -5,22 +5,69 @@ import { createProject } from './create.js';
5
5
  import { generateDemoKit } from './demo-kit.js';
6
6
  import inquirer from 'inquirer';
7
7
  import path from 'path';
8
+ import { logger } from './logger.js';
9
+ import { checkForUpdates, getVersion } from './update-checker.js';
10
+ import { loadUserConfig } from './config.js';
11
+ import { validateProjectName } from './validation.js';
12
+ import { RapidKitError } from './errors.js';
13
+ import * as fsExtra from 'fs-extra';
14
+ let currentProjectPath = null;
15
+ let cleanupInProgress = false;
8
16
  const program = new Command();
9
17
  program
10
18
  .name('create-rapidkit')
11
19
  .description('Create a RapidKit development environment or workspace')
12
- .version('1.0.0-beta.4')
20
+ .version(getVersion())
13
21
  .argument('[directory-name]', 'Name of the workspace or project directory')
14
22
  .option('--skip-git', 'Skip git initialization')
15
- .option('--test-mode', 'Install RapidKit from local path (for testing only)')
23
+ .option('--test-mode', 'Install RapidKit from local path (for development/testing only)')
16
24
  .option('--demo', 'Create workspace with demo kit templates (no Python installation required)')
17
25
  .option('--demo-only', 'Generate a demo project in current directory (used by demo workspace)')
26
+ .option('--debug', 'Enable debug logging')
27
+ .option('--dry-run', 'Show what would be created without creating it')
28
+ .option('--no-update-check', 'Skip checking for updates')
18
29
  .action(async (directoryName, options) => {
19
30
  try {
31
+ if (options.debug) {
32
+ logger.setDebug(true);
33
+ logger.debug('Debug mode enabled');
34
+ }
35
+ const userConfig = await loadUserConfig();
36
+ logger.debug('User config loaded', userConfig);
37
+ if (options.updateCheck !== false) {
38
+ await checkForUpdates();
39
+ }
20
40
  console.log(chalk.blue.bold('\n๐Ÿš€ Welcome to create-rapidkit!\n'));
21
41
  if (options.demoOnly) {
22
42
  const projectName = directoryName || 'my-fastapi-project';
43
+ try {
44
+ validateProjectName(projectName);
45
+ }
46
+ catch (error) {
47
+ if (error instanceof RapidKitError) {
48
+ logger.error(`\nโŒ ${error.message}`);
49
+ if (error.details) {
50
+ logger.warn(`๐Ÿ’ก ${error.details}\n`);
51
+ }
52
+ process.exit(1);
53
+ }
54
+ throw error;
55
+ }
23
56
  const projectPath = path.resolve(process.cwd(), projectName);
57
+ currentProjectPath = projectPath;
58
+ if (options.dryRun) {
59
+ console.log(chalk.cyan('\n๐Ÿ” Dry-run mode - showing what would be created:\n'));
60
+ console.log(chalk.white('๐Ÿ“‚ Project path:'), projectPath);
61
+ console.log(chalk.white('๐Ÿ“ฆ Project type:'), 'FastAPI demo project');
62
+ console.log(chalk.white('๐Ÿ“ Files to create:'));
63
+ console.log(chalk.gray(' - src/main.py'));
64
+ console.log(chalk.gray(' - src/cli.py'));
65
+ console.log(chalk.gray(' - src/routing/'));
66
+ console.log(chalk.gray(' - tests/'));
67
+ console.log(chalk.gray(' - pyproject.toml'));
68
+ console.log(chalk.gray(' - README.md\n'));
69
+ return;
70
+ }
24
71
  const answers = await inquirer.prompt([
25
72
  {
26
73
  type: 'input',
@@ -51,12 +98,28 @@ program
51
98
  return;
52
99
  }
53
100
  const workspaceName = directoryName || 'rapidkit-workspace';
101
+ try {
102
+ validateProjectName(workspaceName);
103
+ }
104
+ catch (error) {
105
+ if (error instanceof RapidKitError) {
106
+ logger.error(`\nโŒ ${error.message}`);
107
+ if (error.details) {
108
+ logger.warn(`๐Ÿ’ก ${error.details}\n`);
109
+ }
110
+ process.exit(1);
111
+ }
112
+ throw error;
113
+ }
114
+ currentProjectPath = path.resolve(process.cwd(), workspaceName);
54
115
  if (options.demo) {
55
116
  console.log(chalk.gray('This will create a workspace with demo kit templates.\nYou can generate demo projects inside without installing Python RapidKit.\n'));
56
117
  await createProject(workspaceName, {
57
- skipGit: options.skipGit,
118
+ skipGit: options.skipGit || userConfig.skipGit,
58
119
  testMode: false,
59
120
  demoMode: true,
121
+ dryRun: options.dryRun,
122
+ userConfig,
60
123
  });
61
124
  return;
62
125
  }
@@ -74,15 +137,62 @@ program
74
137
  }
75
138
  console.log(chalk.yellow('โš ๏ธ Running in TEST MODE - Installing from local path\n'));
76
139
  await createProject(workspaceName, {
77
- skipGit: options.skipGit,
140
+ skipGit: options.skipGit || userConfig.skipGit,
78
141
  testMode: options.testMode,
79
142
  demoMode: false,
143
+ dryRun: options.dryRun,
144
+ userConfig,
80
145
  });
81
146
  }
82
147
  catch (error) {
83
- console.error(chalk.red('\nโŒ Failed to create RapidKit environment:'), error);
148
+ if (error instanceof RapidKitError) {
149
+ logger.error(`\nโŒ ${error.message}`);
150
+ if (error.details) {
151
+ logger.warn(`๐Ÿ’ก ${error.details}`);
152
+ }
153
+ logger.debug('Error code:', error.code);
154
+ }
155
+ else {
156
+ logger.error('\nโŒ An unexpected error occurred:');
157
+ console.error(error);
158
+ }
84
159
  process.exit(1);
85
160
  }
161
+ finally {
162
+ currentProjectPath = null;
163
+ }
164
+ });
165
+ process.on('SIGINT', async () => {
166
+ if (cleanupInProgress)
167
+ return;
168
+ cleanupInProgress = true;
169
+ console.log(chalk.yellow('\n\nโš ๏ธ Interrupted by user'));
170
+ if (currentProjectPath && await fsExtra.pathExists(currentProjectPath)) {
171
+ console.log(chalk.gray('Cleaning up partial installation...'));
172
+ try {
173
+ await fsExtra.remove(currentProjectPath);
174
+ console.log(chalk.green('โœ“ Cleanup complete'));
175
+ }
176
+ catch (error) {
177
+ logger.debug('Cleanup failed:', error);
178
+ }
179
+ }
180
+ process.exit(130);
181
+ });
182
+ process.on('SIGTERM', async () => {
183
+ if (cleanupInProgress)
184
+ return;
185
+ cleanupInProgress = true;
186
+ logger.debug('Received SIGTERM');
187
+ if (currentProjectPath && await fsExtra.pathExists(currentProjectPath)) {
188
+ try {
189
+ await fsExtra.remove(currentProjectPath);
190
+ }
191
+ catch (error) {
192
+ logger.debug('Cleanup failed:', error);
193
+ }
194
+ }
195
+ process.exit(143);
86
196
  });
87
197
  program.parse();
88
198
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ declare class Logger {
2
+ private debugEnabled;
3
+ setDebug(enabled: boolean): void;
4
+ debug(message: string, ...args: any[]): void;
5
+ info(message: string, ...args: any[]): void;
6
+ success(message: string, ...args: any[]): void;
7
+ warn(message: string, ...args: any[]): void;
8
+ error(message: string, ...args: any[]): void;
9
+ step(stepNum: number, total: number, message: string): void;
10
+ }
11
+ export declare const logger: Logger;
12
+ export {};
13
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAKA,cAAM,MAAM;IACV,OAAO,CAAC,YAAY,CAAS;IAE7B,QAAQ,CAAC,OAAO,EAAE,OAAO;IAIzB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;IAMrC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;IAIpC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;IAIvC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;IAIpC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;IAIrC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAGrD;AAED,eAAO,MAAM,MAAM,QAAe,CAAC"}
package/dist/logger.js ADDED
@@ -0,0 +1,29 @@
1
+ import chalk from 'chalk';
2
+ class Logger {
3
+ debugEnabled = false;
4
+ setDebug(enabled) {
5
+ this.debugEnabled = enabled;
6
+ }
7
+ debug(message, ...args) {
8
+ if (this.debugEnabled) {
9
+ console.log(chalk.gray(`[DEBUG] ${message}`), ...args);
10
+ }
11
+ }
12
+ info(message, ...args) {
13
+ console.log(chalk.blue(message), ...args);
14
+ }
15
+ success(message, ...args) {
16
+ console.log(chalk.green(message), ...args);
17
+ }
18
+ warn(message, ...args) {
19
+ console.log(chalk.yellow(message), ...args);
20
+ }
21
+ error(message, ...args) {
22
+ console.error(chalk.red(message), ...args);
23
+ }
24
+ step(stepNum, total, message) {
25
+ console.log(chalk.cyan(`\n[${stepNum}/${total}]`), chalk.white(message));
26
+ }
27
+ }
28
+ export const logger = new Logger();
29
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,MAAM,MAAM;IACF,YAAY,GAAG,KAAK,CAAC;IAE7B,QAAQ,CAAC,OAAgB;QACvB,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,GAAG,IAAW;QACnC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,OAAO,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,GAAG,IAAW;QAClC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,CAAC,OAAe,EAAE,GAAG,IAAW;QACrC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,GAAG,IAAW;QAClC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,GAAG,IAAW;QACnC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,KAAa,EAAE,OAAe;QAClD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,OAAO,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3E,CAAC;CACF;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function checkForUpdates(): Promise<void>;
2
+ export declare function getVersion(): string;
3
+ //# sourceMappingURL=update-checker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-checker.d.ts","sourceRoot":"","sources":["../src/update-checker.ts"],"names":[],"mappings":"AAUA,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAwBrD;AAKD,wBAAgB,UAAU,IAAI,MAAM,CAEnC"}
@@ -0,0 +1,28 @@
1
+ import { execa } from 'execa';
2
+ import chalk from 'chalk';
3
+ import { logger } from './logger.js';
4
+ const PACKAGE_NAME = 'rapidkit';
5
+ const CURRENT_VERSION = '1.0.0-beta.5';
6
+ export async function checkForUpdates() {
7
+ try {
8
+ logger.debug('Checking for updates...');
9
+ const { stdout } = await execa('npm', ['view', PACKAGE_NAME, 'version'], {
10
+ timeout: 3000,
11
+ });
12
+ const latestVersion = stdout.trim();
13
+ if (latestVersion && latestVersion !== CURRENT_VERSION) {
14
+ console.log(chalk.yellow(`\nโš ๏ธ Update available: ${CURRENT_VERSION} โ†’ ${latestVersion}`));
15
+ console.log(chalk.cyan('Run: npm install -g rapidkit@latest\n'));
16
+ }
17
+ else {
18
+ logger.debug('You are using the latest version');
19
+ }
20
+ }
21
+ catch (error) {
22
+ logger.debug('Could not check for updates');
23
+ }
24
+ }
25
+ export function getVersion() {
26
+ return CURRENT_VERSION;
27
+ }
28
+ //# sourceMappingURL=update-checker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-checker.js","sourceRoot":"","sources":["../src/update-checker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,YAAY,GAAG,UAAU,CAAC;AAChC,MAAM,eAAe,GAAG,cAAc,CAAC;AAKvC,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,IAAI,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAExC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE;YACvE,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAEpC,IAAI,aAAa,IAAI,aAAa,KAAK,eAAe,EAAE,CAAC;YACvD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CAAC,2BAA2B,eAAe,MAAM,aAAa,EAAE,CAAC,CAC9E,CAAC;YACF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CACpD,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAEf,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC;AAKD,MAAM,UAAU,UAAU;IACxB,OAAO,eAAe,CAAC;AACzB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function validateProjectName(name: string): boolean;
2
+ export declare function toSnakeCase(name: string): string;
3
+ export declare function toKebabCase(name: string): string;
4
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAMA,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAqDzD;AAKD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD;AAKD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD"}
@@ -0,0 +1,36 @@
1
+ import validateNpmPackageName from 'validate-npm-package-name';
2
+ import { InvalidProjectNameError } from './errors.js';
3
+ export function validateProjectName(name) {
4
+ const npmCheck = validateNpmPackageName(name);
5
+ if (!npmCheck.validForNewPackages) {
6
+ const errors = npmCheck.errors || [];
7
+ const warnings = npmCheck.warnings || [];
8
+ const issues = [...errors, ...warnings];
9
+ throw new InvalidProjectNameError(name, `NPM validation failed: ${issues.join(', ')}`);
10
+ }
11
+ if (!/^[a-z][a-z0-9_-]*$/.test(name)) {
12
+ throw new InvalidProjectNameError(name, 'Must start with a lowercase letter and contain only lowercase letters, numbers, hyphens, and underscores');
13
+ }
14
+ const reservedNames = [
15
+ 'test', 'tests', 'src', 'dist', 'build', 'lib',
16
+ 'python', 'pip', 'poetry', 'node', 'npm',
17
+ 'rapidkit', 'create-rapidkit'
18
+ ];
19
+ if (reservedNames.includes(name.toLowerCase())) {
20
+ throw new InvalidProjectNameError(name, `"${name}" is a reserved name. Please choose a different name.`);
21
+ }
22
+ if (name.length < 2) {
23
+ throw new InvalidProjectNameError(name, 'Name must be at least 2 characters long');
24
+ }
25
+ if (name.length > 214) {
26
+ throw new InvalidProjectNameError(name, 'Name must be less than 214 characters');
27
+ }
28
+ return true;
29
+ }
30
+ export function toSnakeCase(name) {
31
+ return name.replace(/-/g, '_');
32
+ }
33
+ export function toKebabCase(name) {
34
+ return name.replace(/_/g, '-');
35
+ }
36
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAKtD,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAE9C,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAE9C,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC;QACxC,MAAM,IAAI,uBAAuB,CAC/B,IAAI,EACJ,0BAA0B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC9C,CAAC;IACJ,CAAC;IAID,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,uBAAuB,CAC/B,IAAI,EACJ,0GAA0G,CAC3G,CAAC;IACJ,CAAC;IAGD,MAAM,aAAa,GAAG;QACpB,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK;QAC9C,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK;QACxC,UAAU,EAAE,iBAAiB;KAC9B,CAAC;IAEF,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,uBAAuB,CAC/B,IAAI,EACJ,IAAI,IAAI,uDAAuD,CAChE,CAAC;IACJ,CAAC;IAGD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,uBAAuB,CAC/B,IAAI,EACJ,yCAAyC,CAC1C,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACtB,MAAM,IAAI,uBAAuB,CAC/B,IAAI,EACJ,uCAAuC,CACxC,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAKD,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACjC,CAAC;AAKD,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACjC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rapidkit",
3
- "version": "1.0.0-beta.4",
3
+ "version": "1.0.0-beta.5",
4
4
  "type": "module",
5
5
  "description": "Create RapidKit projects with a single command - The official CLI for RapidKit framework",
6
6
  "keywords": [
@@ -31,7 +31,9 @@
31
31
  "build": "tsc",
32
32
  "dev": "tsc --watch",
33
33
  "prepare": "npm run build",
34
- "test": "echo \"No tests yet\" && exit 0"
34
+ "test": "vitest run",
35
+ "test:watch": "vitest",
36
+ "test:coverage": "vitest run --coverage"
35
37
  },
36
38
  "dependencies": {
37
39
  "chalk": "^5.3.0",
@@ -49,7 +51,10 @@
49
51
  "@types/node": "^20.14.0",
50
52
  "@types/nunjucks": "^3.2.6",
51
53
  "@types/validate-npm-package-name": "^4.0.2",
52
- "typescript": "^5.5.0"
54
+ "@vitest/coverage-v8": "^2.0.0",
55
+ "@vitest/ui": "^2.0.0",
56
+ "typescript": "^5.5.0",
57
+ "vitest": "^2.0.0"
53
58
  },
54
59
  "engines": {
55
60
  "node": ">=18.0.0"
@@ -0,0 +1,70 @@
1
+ {
2
+ "name": "fastapi-standard",
3
+ "version": "1.0.0",
4
+ "description": "Standard FastAPI starter kit with basic project structure",
5
+ "author": "RapidKit Team",
6
+ "license": "MIT",
7
+ "rapidkit_min_version": "2.0.0",
8
+ "python_min_version": "3.10",
9
+ "tags": ["fastapi", "python", "api", "backend", "microservices"],
10
+ "features": [
11
+ "FastAPI application setup",
12
+ "Routing system with health check",
13
+ "Module system for extensibility",
14
+ "CLI commands via Poetry scripts",
15
+ "Testing setup with pytest",
16
+ "Code quality tools (black, ruff, mypy)"
17
+ ],
18
+ "files": [
19
+ "src/main.py",
20
+ "src/__init__.py",
21
+ "src/cli.py",
22
+ "src/routing/__init__.py",
23
+ "src/routing/health.py",
24
+ "src/modules/__init__.py",
25
+ "tests/__init__.py",
26
+ "README.md",
27
+ "pyproject.toml"
28
+ ],
29
+ "variables": {
30
+ "project_name": {
31
+ "type": "string",
32
+ "description": "Project name (snake_case)",
33
+ "required": true,
34
+ "pattern": "^[a-z][a-z0-9_]*$"
35
+ },
36
+ "author": {
37
+ "type": "string",
38
+ "description": "Project author name",
39
+ "default": "RapidKit User"
40
+ },
41
+ "description": {
42
+ "type": "string",
43
+ "description": "Project description",
44
+ "default": "FastAPI service generated with RapidKit"
45
+ },
46
+ "app_version": {
47
+ "type": "string",
48
+ "description": "Initial version number",
49
+ "default": "0.1.0",
50
+ "pattern": "^\\d+\\.\\d+\\.\\d+$"
51
+ },
52
+ "license": {
53
+ "type": "string",
54
+ "description": "Project license",
55
+ "default": "MIT",
56
+ "enum": ["MIT", "Apache-2.0", "BSD-3-Clause", "GPL-3.0", "Proprietary"]
57
+ }
58
+ },
59
+ "dependencies": {
60
+ "required": {
61
+ "python": "^3.10",
62
+ "poetry": "^1.5.0"
63
+ },
64
+ "python_packages": {
65
+ "fastapi": "^0.100.0",
66
+ "uvicorn": "^0.23.0",
67
+ "pydantic": "^2.0.0"
68
+ }
69
+ }
70
+ }