slicejs-cli 2.5.1 → 2.7.0

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "slicejs-cli",
3
- "version": "2.5.1",
3
+ "version": "2.7.0",
4
4
  "description": "Command client for developing web applications with Slice.js framework",
5
5
  "main": "client.js",
6
6
  "bin": {
package/post.js CHANGED
@@ -5,142 +5,21 @@ import Print from './commands/Print.js';
5
5
 
6
6
  const __filename = fileURLToPath(import.meta.url);
7
7
  const __dirname = path.dirname(__filename);
8
- const projectName = path.basename(__dirname);
9
8
 
10
- const projectPackageJsonPath = path.resolve(__dirname, '../../package.json');
11
-
12
- // Check if package.json file exists
13
- fs.promises.access(projectPackageJsonPath, fs.constants.F_OK)
14
- .then(() => {
15
- // The package.json file exists, so we read it and add the commands
16
- return fs.promises.readFile(projectPackageJsonPath, 'utf8');
17
- })
18
- .then(data => {
19
- // Convert the file content to a JSON object
20
- const projectPackageJson = JSON.parse(data);
21
-
22
- // Add custom commands to the project scripts
23
- projectPackageJson.scripts = projectPackageJson.scripts || {};
24
-
25
- // Main project commands - using 'slice' directly
26
- projectPackageJson.scripts['dev'] = 'slice dev';
27
- projectPackageJson.scripts['start'] = 'slice start';
28
-
29
- // Component management
30
- projectPackageJson.scripts['component:create'] = 'slice component create';
31
- projectPackageJson.scripts['component:list'] = 'slice component list';
32
- projectPackageJson.scripts['component:delete'] = 'slice component delete';
33
-
34
- // Main repository commands (most used shortcuts)
35
- projectPackageJson.scripts['get'] = 'slice get';
36
- projectPackageJson.scripts['browse'] = 'slice browse';
37
- projectPackageJson.scripts['sync'] = 'slice sync';
38
-
39
- // Utility commands
40
- projectPackageJson.scripts['slice:version'] = 'slice version';
41
- projectPackageJson.scripts['slice:update'] = 'slice update';
42
-
43
- // Legacy commands - mantener por compatibilidad temporal
44
- projectPackageJson.scripts['slice:init'] = 'slice init';
45
- projectPackageJson.scripts['slice:start'] = 'slice start';
46
- projectPackageJson.scripts['slice:dev'] = 'slice dev';
47
- projectPackageJson.scripts['slice:create'] = 'slice component create';
48
- projectPackageJson.scripts['slice:list'] = 'slice component list';
49
- projectPackageJson.scripts['slice:delete'] = 'slice component delete';
50
- projectPackageJson.scripts['slice:get'] = 'slice get';
51
- projectPackageJson.scripts['slice:browse'] = 'slice browse';
52
- projectPackageJson.scripts['slice:sync'] = 'slice sync';
53
- projectPackageJson.scripts['run'] = 'slice dev';
54
-
55
- // Module configuration
56
- projectPackageJson.type = 'module';
57
- projectPackageJson.engines = {
58
- "node": ">=20.0.0"
59
- };
60
-
61
- // Write the new content to package.json
62
- return fs.promises.writeFile(projectPackageJsonPath, JSON.stringify(projectPackageJson, null, 2), 'utf8');
63
- })
64
- .then(() => {
65
- console.log('✅ SliceJS CLI configured successfully');
66
- console.log('\n🎯 New recommended commands:');
67
- console.log(' slice dev - Start development server');
68
- console.log(' slice get Button - Get components from repository');
69
- console.log(' slice browse - View available components');
70
- console.log(' slice component create - Create local component');
71
- console.log('\n📦 Available npm scripts:');
72
- console.log(' npm run dev - Start development server');
73
- console.log(' npm run get - Install components');
74
- console.log(' npm run browse - Browse components');
75
- console.log('\n⚠️ Legacy commands (deprecated but still work):');
76
- console.log(' npm run slice:dev - Use "slice dev" instead');
77
- console.log(' npm run slice:get - Use "slice get" instead');
78
- console.log('\n💡 You can also use npx:');
79
- console.log(' npx slicejs-cli dev');
80
- console.log('\n📘 Documentation: https://slice-js-docs.vercel.app/');
81
- })
82
- .catch(err => {
83
- if (err.code === 'ENOENT') {
84
- // The package.json file doesn't exist, so we create a new one with the commands
85
- const defaultPackageJson = {
86
- name: projectName,
87
- version: '1.0.0',
88
- description: 'Slice.js project',
89
- main: 'api/index.js',
90
- scripts: {
91
- // Main workflow commands
92
- 'dev': 'slice dev',
93
- 'start': 'slice start',
94
-
95
- // Component management
96
- 'component:create': 'slice component create',
97
- 'component:list': 'slice component list',
98
- 'component:delete': 'slice component delete',
99
-
100
- // Repository commands
101
- 'get': 'slice get',
102
- 'browse': 'slice browse',
103
- 'sync': 'slice sync',
104
-
105
- // Utility
106
- 'slice:version': 'slice version',
107
- 'slice:update': 'slice update',
108
-
109
- // Legacy commands (for compatibility)
110
- 'slice:init': 'slice init',
111
- 'slice:start': 'slice start',
112
- 'slice:dev': 'slice dev',
113
- 'slice:create': 'slice component create',
114
- 'slice:list': 'slice component list',
115
- 'slice:delete': 'slice component delete',
116
- 'slice:get': 'slice get',
117
- 'slice:browse': 'slice browse',
118
- 'slice:sync': 'slice sync',
119
- 'run': 'slice dev'
120
- },
121
- type: 'module',
122
- engines: {
123
- "node": ">=20.0.0"
124
- }
125
- };
126
-
127
- return fs.promises.writeFile(projectPackageJsonPath, JSON.stringify(defaultPackageJson, null, 2), 'utf8');
128
- } else {
129
- throw err;
130
- }
131
- })
132
- .then(() => {
133
- console.log('✅ SliceJS CLI commands configured successfully');
134
- console.log('\n🎯 Simplified development workflow:');
135
- console.log(' slice dev → Start development server');
136
- console.log(' slice get Button → Install components');
137
- console.log(' slice browse → View available components');
138
- console.log('\n🔧 Benefits:');
139
- console.log(' • Simple and direct commands');
140
- console.log(' • Can be used globally or with npx');
141
- console.log(' • Legacy npm scripts still work for compatibility');
142
- })
143
- .catch(err => {
144
- console.error('❌ Error setting up package.json:', err.message);
145
- process.exit(1);
146
- });
9
+ const isGlobal = process.env.npm_config_global === 'true';
10
+ const initCwd = process.env.INIT_CWD ? path.resolve(process.env.INIT_CWD) : null;
11
+ const targetRoot = initCwd || path.resolve(__dirname, '../../');
12
+ const projectPackageJsonPath = path.join(targetRoot, 'package.json');
13
+
14
+ if (isGlobal) {
15
+ console.log('ℹ️ Instalación global detectada de slicejs-cli.');
16
+ console.log(' Omite configuración de scripts. Usa el binario directamente:');
17
+ console.log(' slice dev');
18
+ console.log(' slice get Button');
19
+ process.exit(0);
20
+ }
21
+
22
+ console.log('ℹ️ Instalación local detectada de slicejs-cli.');
23
+ console.log(' Se omite configuración automática de scripts en postinstall.');
24
+ console.log(' Usa "slice init" para configurar los scripts del proyecto.');
25
+ process.exit(0);