@deploid/cli 2.0.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/dist/init.js ADDED
@@ -0,0 +1,470 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ import { execa } from 'execa';
5
+ import readline from 'node:readline';
6
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
7
+ export async function initProject(options) {
8
+ const cwd = process.cwd();
9
+ const configPath = path.join(cwd, 'deploid.config.ts');
10
+ if (options.packaging !== 'capacitor') {
11
+ throw new Error(`Packaging engine "${options.packaging}" is not supported in Deploid 2.0. Use "capacitor".`);
12
+ }
13
+ // Check if config already exists
14
+ if (fs.existsSync(configPath)) {
15
+ console.log('āš ļø deploid.config.ts already exists. Skipping init.');
16
+ return;
17
+ }
18
+ // If no Firebase options provided, ask interactively
19
+ if (options.packaging === 'capacitor' && options.firebase === undefined) {
20
+ const firebaseSetup = await askFirebaseSetup();
21
+ options.firebase = firebaseSetup.enabled;
22
+ options.firebaseProjectId = firebaseSetup.projectId;
23
+ options.firebaseApiKey = firebaseSetup.apiKey;
24
+ }
25
+ // Generate config based on options
26
+ const config = generateConfig(options);
27
+ // Write config file
28
+ fs.writeFileSync(configPath, config);
29
+ console.log('āœ… Created deploid.config.ts');
30
+ // Create basic project structure
31
+ await createProjectStructure(cwd, options);
32
+ // Install required dependencies
33
+ await installDependencies(cwd, options);
34
+ // Setup Firebase if requested
35
+ if (options.firebase && options.packaging === 'capacitor') {
36
+ await setupFirebase(cwd, options);
37
+ }
38
+ // Install plugin dependencies
39
+ console.log('šŸ“¦ Installing plugin dependencies...');
40
+ await installPluginDependencies(cwd, options);
41
+ console.log('šŸŽ‰ Deploid initialized!');
42
+ console.log('Next steps:');
43
+ console.log(' 1. Add your logo to assets/logo.svg');
44
+ console.log(' 2. Run: deploid assets');
45
+ console.log(' 3. Run: deploid package');
46
+ }
47
+ function generateConfig(options) {
48
+ const { framework, packaging, firebase, firebaseProjectId } = options;
49
+ const buildCommand = getBuildCommand(framework);
50
+ const webDir = getWebDir(framework);
51
+ const firebaseConfig = firebase ? `
52
+ firebase: {
53
+ projectId: '${firebaseProjectId || 'your-firebase-project-id'}',
54
+ enabled: true,
55
+ },` : '';
56
+ return `// Deploid configuration
57
+ // Generated by deploid init
58
+
59
+ export default {
60
+ appName: 'MyApp',
61
+ appId: 'com.example.myapp',
62
+ web: {
63
+ framework: '${framework}',
64
+ buildCommand: '${buildCommand}',
65
+ webDir: '${webDir}',
66
+ pwa: { manifest: 'public/manifest.json', serviceWorker: true },
67
+ },
68
+ android: {
69
+ packaging: '${packaging}',
70
+ targetSdk: 34,
71
+ minSdk: 24,
72
+ permissions: ['INTERNET'],
73
+ version: { code: 1, name: '1.0.0' },
74
+ display: {
75
+ fullscreen: false,
76
+ orientation: 'portrait',
77
+ statusBarStyle: 'auto',
78
+ windowSoftInputMode: 'adjustResize',
79
+ },
80
+ build: {
81
+ minifyEnabled: false,
82
+ enableMultidex: false,
83
+ },
84
+ },${firebaseConfig}
85
+ assets: {
86
+ source: 'assets/logo.svg',
87
+ output: 'assets-gen/',
88
+ },
89
+ publish: {
90
+ github: { repo: 'your-username/your-repo', draft: true },
91
+ },
92
+ };
93
+ `;
94
+ }
95
+ function getBuildCommand(framework) {
96
+ switch (framework) {
97
+ case 'vite': return 'npm run build';
98
+ case 'next': return 'npm run build';
99
+ case 'cra': return 'npm run build';
100
+ case 'static': return 'echo "Static files ready"';
101
+ default: return 'npm run build';
102
+ }
103
+ }
104
+ function getWebDir(framework) {
105
+ switch (framework) {
106
+ case 'vite': return 'dist';
107
+ case 'next': return 'out';
108
+ case 'cra': return 'build';
109
+ case 'static': return 'public';
110
+ default: return 'dist';
111
+ }
112
+ }
113
+ async function createProjectStructure(cwd, options) {
114
+ // Create assets directory
115
+ const assetsDir = path.join(cwd, 'assets');
116
+ if (!fs.existsSync(assetsDir)) {
117
+ fs.mkdirSync(assetsDir, { recursive: true });
118
+ console.log('āœ… Created assets/ directory');
119
+ }
120
+ // Create assets-gen directory
121
+ const assetsGenDir = path.join(cwd, 'assets-gen');
122
+ if (!fs.existsSync(assetsGenDir)) {
123
+ fs.mkdirSync(assetsGenDir, { recursive: true });
124
+ console.log('āœ… Created assets-gen/ directory');
125
+ }
126
+ // Create template files based on packaging engine
127
+ await createTemplateFiles(cwd, options.packaging);
128
+ }
129
+ async function installDependencies(cwd, options) {
130
+ console.log('šŸ“¦ Installing required dependencies...');
131
+ try {
132
+ // Install Capacitor CLI and core packages
133
+ await execa('npm', ['install', '@capacitor/cli', '@capacitor/core'], {
134
+ cwd,
135
+ stdio: 'inherit'
136
+ });
137
+ // Install platform-specific packages based on packaging engine
138
+ switch (options.packaging) {
139
+ case 'capacitor':
140
+ await execa('npm', ['install', '@capacitor/android'], {
141
+ cwd,
142
+ stdio: 'inherit'
143
+ });
144
+ break;
145
+ case 'tauri':
146
+ // TODO: Install Tauri dependencies
147
+ console.log('āš ļø Tauri packaging not yet implemented');
148
+ break;
149
+ case 'twa':
150
+ // TODO: Install TWA dependencies
151
+ console.log('āš ļø TWA packaging not yet implemented');
152
+ break;
153
+ }
154
+ console.log('āœ… Dependencies installed');
155
+ }
156
+ catch (error) {
157
+ console.log('āš ļø Failed to install dependencies automatically');
158
+ console.log('Please run manually:');
159
+ console.log(' npm install @capacitor/cli @capacitor/core @capacitor/android');
160
+ }
161
+ }
162
+ async function createTemplateFiles(cwd, packaging) {
163
+ const templatesDir = path.join(__dirname, '../../templates');
164
+ switch (packaging) {
165
+ case 'capacitor':
166
+ await createCapacitorTemplate(cwd);
167
+ break;
168
+ case 'tauri':
169
+ await createTauriTemplate(cwd);
170
+ break;
171
+ case 'twa':
172
+ await createTWATemplate(cwd);
173
+ break;
174
+ }
175
+ }
176
+ async function createCapacitorTemplate(cwd) {
177
+ const capacitorConfig = `{
178
+ "appId": "com.example.myapp",
179
+ "appName": "MyApp",
180
+ "webDir": "dist",
181
+ "bundledWebRuntime": false,
182
+ "plugins": {
183
+ "SplashScreen": {
184
+ "launchShowDuration": 2000
185
+ }
186
+ }
187
+ }`;
188
+ fs.writeFileSync(path.join(cwd, 'capacitor.config.json'), capacitorConfig);
189
+ console.log('āœ… Created capacitor.config.json');
190
+ }
191
+ async function createTauriTemplate(cwd) {
192
+ const tauriDir = path.join(cwd, 'src-tauri');
193
+ if (!fs.existsSync(tauriDir)) {
194
+ fs.mkdirSync(tauriDir, { recursive: true });
195
+ }
196
+ const tauriConfig = `{
197
+ "build": {
198
+ "beforeDevCommand": "npm run dev",
199
+ "beforeBuildCommand": "npm run build",
200
+ "devPath": "http://localhost:3000",
201
+ "distDir": "../dist"
202
+ },
203
+ "package": {
204
+ "productName": "MyApp",
205
+ "version": "1.0.0"
206
+ },
207
+ "tauri": {
208
+ "allowlist": {
209
+ "all": false,
210
+ "shell": {
211
+ "all": false,
212
+ "open": true
213
+ }
214
+ },
215
+ "bundle": {
216
+ "active": true,
217
+ "targets": "all",
218
+ "identifier": "com.example.myapp",
219
+ "icon": [
220
+ "icons/32x32.png",
221
+ "icons/128x128.png",
222
+ "icons/128x128@2x.png",
223
+ "icons/icon.icns",
224
+ "icons/icon.ico"
225
+ ]
226
+ },
227
+ "security": {
228
+ "csp": null
229
+ },
230
+ "windows": [
231
+ {
232
+ "fullscreen": false,
233
+ "resizable": true,
234
+ "title": "MyApp",
235
+ "width": 1200,
236
+ "height": 800
237
+ }
238
+ ]
239
+ }
240
+ }`;
241
+ fs.writeFileSync(path.join(tauriDir, 'tauri.conf.json'), tauriConfig);
242
+ console.log('āœ… Created tauri.conf.json');
243
+ }
244
+ async function createTWATemplate(cwd) {
245
+ const publicDir = path.join(cwd, 'public');
246
+ if (!fs.existsSync(publicDir)) {
247
+ fs.mkdirSync(publicDir, { recursive: true });
248
+ }
249
+ const manifest = `{
250
+ "name": "MyApp",
251
+ "short_name": "MyApp",
252
+ "description": "My awesome app",
253
+ "start_url": "/",
254
+ "display": "standalone",
255
+ "background_color": "#ffffff",
256
+ "theme_color": "#000000",
257
+ "icons": [
258
+ {
259
+ "src": "assets-gen/icon-192.png",
260
+ "sizes": "192x192",
261
+ "type": "image/png"
262
+ },
263
+ {
264
+ "src": "assets-gen/icon-512.png",
265
+ "sizes": "512x512",
266
+ "type": "image/png"
267
+ }
268
+ ]
269
+ }`;
270
+ fs.writeFileSync(path.join(publicDir, 'manifest.json'), manifest);
271
+ console.log('āœ… Created public/manifest.json');
272
+ }
273
+ async function askFirebaseSetup() {
274
+ const rl = readline.createInterface({
275
+ input: process.stdin,
276
+ output: process.stdout
277
+ });
278
+ const question = (prompt) => {
279
+ return new Promise((resolve) => {
280
+ rl.question(prompt, resolve);
281
+ });
282
+ };
283
+ try {
284
+ console.log('\nšŸ”„ Firebase Setup for Push Notifications');
285
+ console.log('Firebase enables native push notifications for your Android app.');
286
+ const enableFirebase = await question('Do you want to set up Firebase for push notifications? (y/N): ');
287
+ const enabled = enableFirebase.toLowerCase().startsWith('y');
288
+ if (!enabled) {
289
+ console.log('āš ļø Skipping Firebase setup. You can add it later with: deploid firebase');
290
+ return { enabled: false };
291
+ }
292
+ console.log('\nšŸ“‹ Firebase Setup Options:');
293
+ console.log('1. Auto-create Firebase project (requires Firebase CLI)');
294
+ console.log('2. Use existing Firebase project');
295
+ console.log('3. Skip for now (add later with: deploid firebase)');
296
+ const choice = await question('Choose an option (1-3): ');
297
+ if (choice === '3') {
298
+ console.log('āš ļø Skipping Firebase setup. You can add it later with: deploid firebase');
299
+ return { enabled: false };
300
+ }
301
+ if (choice === '1') {
302
+ console.log('šŸš€ Auto-creating Firebase project...');
303
+ return { enabled: true };
304
+ }
305
+ if (choice === '2') {
306
+ const projectId = await question('Enter your Firebase project ID: ');
307
+ const apiKey = await question('Enter your Firebase API key (optional): ');
308
+ return { enabled: true, projectId, apiKey };
309
+ }
310
+ return { enabled: false };
311
+ }
312
+ finally {
313
+ rl.close();
314
+ }
315
+ }
316
+ async function setupFirebase(cwd, options) {
317
+ console.log('šŸ”„ Setting up Firebase...');
318
+ try {
319
+ // Check if Firebase CLI is installed
320
+ try {
321
+ await execa('firebase', ['--version'], { stdio: 'pipe' });
322
+ }
323
+ catch (error) {
324
+ console.log('šŸ“¦ Installing Firebase CLI...');
325
+ await execa('npm', ['install', '-g', 'firebase-tools'], { stdio: 'inherit' });
326
+ }
327
+ // Login to Firebase
328
+ console.log('šŸ” Please login to Firebase...');
329
+ await execa('firebase', ['login'], { stdio: 'inherit' });
330
+ // Create Firebase project
331
+ if (!options.firebaseProjectId) {
332
+ console.log('šŸš€ Creating Firebase project...');
333
+ const projectName = path.basename(cwd).replace(/[^a-zA-Z0-9]/g, '-');
334
+ await execa('firebase', ['projects:create', projectName], { stdio: 'inherit' });
335
+ options.firebaseProjectId = projectName;
336
+ }
337
+ // Initialize Firebase in the project
338
+ await execa('firebase', ['init', 'hosting'], {
339
+ cwd,
340
+ stdio: 'inherit',
341
+ input: 'y\nn\n' // Yes to hosting, no to other features
342
+ });
343
+ // Add Android app to Firebase
344
+ console.log('šŸ“± Adding Android app to Firebase...');
345
+ const packageName = 'com.example.myapp'; // This should come from config
346
+ await execa('firebase', ['apps:create', 'android', packageName], {
347
+ cwd,
348
+ stdio: 'inherit'
349
+ });
350
+ // Download google-services.json
351
+ console.log('šŸ“„ Downloading google-services.json...');
352
+ await execa('firebase', ['apps:sdkconfig', 'android'], {
353
+ cwd,
354
+ stdio: 'inherit'
355
+ });
356
+ // Move google-services.json to correct location
357
+ const sourcePath = path.join(cwd, 'google-services.json');
358
+ const targetPath = path.join(cwd, 'android/app/google-services.json');
359
+ if (fs.existsSync(sourcePath)) {
360
+ fs.copyFileSync(sourcePath, targetPath);
361
+ fs.unlinkSync(sourcePath); // Remove from root
362
+ console.log('āœ… Firebase setup complete!');
363
+ }
364
+ else {
365
+ console.log('āš ļø google-services.json not found. Please download it manually from Firebase Console.');
366
+ }
367
+ }
368
+ catch (error) {
369
+ console.log('āš ļø Firebase setup failed:', error);
370
+ console.log('You can set it up manually later with: deploid firebase');
371
+ }
372
+ }
373
+ async function installPluginDependencies(cwd, options) {
374
+ try {
375
+ // Define available plugins
376
+ const availablePlugins = {
377
+ 'assets': {
378
+ name: '@deploid/plugin-assets',
379
+ description: 'Generate app icons and assets from your logo',
380
+ required: true // Always needed for basic functionality
381
+ },
382
+ 'packaging-capacitor': {
383
+ name: '@deploid/plugin-packaging-capacitor',
384
+ description: 'Package your app with Capacitor',
385
+ required: options.packaging === 'capacitor'
386
+ },
387
+ 'build-android': {
388
+ name: '@deploid/plugin-build-android',
389
+ description: 'Build Android APK/AAB files',
390
+ required: true // Always needed for Android builds
391
+ },
392
+ 'deploy-android': {
393
+ name: '@deploid/plugin-deploy-android',
394
+ description: 'Deploy to Android devices via ADB',
395
+ required: false
396
+ },
397
+ 'prepare-ios': {
398
+ name: '@deploid/plugin-prepare-ios',
399
+ description: 'Prepare iOS project for Mac handoff',
400
+ required: false
401
+ },
402
+ 'debug-network': {
403
+ name: '@deploid/plugin-debug-network',
404
+ description: 'Add network debugging tools to your app',
405
+ required: false
406
+ },
407
+ 'storage': {
408
+ name: '@deploid/plugin-storage',
409
+ description: 'Cross-platform storage utilities for web and native',
410
+ required: false
411
+ }
412
+ };
413
+ // Collect plugins to install
414
+ const pluginsToInstall = [];
415
+ // Add required plugins
416
+ for (const [key, plugin] of Object.entries(availablePlugins)) {
417
+ if (plugin.required) {
418
+ pluginsToInstall.push(plugin.name);
419
+ console.log(`āœ… ${plugin.description} (required)`);
420
+ }
421
+ }
422
+ // Ask about optional plugins
423
+ if (options.allPlugins) {
424
+ console.log('\nšŸ”§ Installing all optional plugins...');
425
+ for (const [key, plugin] of Object.entries(availablePlugins)) {
426
+ if (!plugin.required) {
427
+ pluginsToInstall.push(plugin.name);
428
+ console.log(`āœ… ${plugin.description}`);
429
+ }
430
+ }
431
+ }
432
+ else {
433
+ console.log('\nšŸ”§ Optional plugins:');
434
+ for (const [key, plugin] of Object.entries(availablePlugins)) {
435
+ if (!plugin.required) {
436
+ const rl = readline.createInterface({
437
+ input: process.stdin,
438
+ output: process.stdout
439
+ });
440
+ const answer = await new Promise((resolve) => {
441
+ rl.question(`Install ${plugin.description}? (y/N): `, resolve);
442
+ });
443
+ rl.close();
444
+ if (answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes') {
445
+ pluginsToInstall.push(plugin.name);
446
+ console.log(`āœ… ${plugin.description}`);
447
+ }
448
+ else {
449
+ console.log(`ā­ļø Skipped ${plugin.description}`);
450
+ }
451
+ }
452
+ }
453
+ }
454
+ if (pluginsToInstall.length === 0) {
455
+ console.log('āš ļø No plugins selected. You can install them later with: npm install <plugin-name>');
456
+ return;
457
+ }
458
+ console.log(`\nšŸ“¦ Installing: ${pluginsToInstall.join(', ')}`);
459
+ await execa('npm', ['install', ...pluginsToInstall], {
460
+ cwd,
461
+ stdio: 'inherit'
462
+ });
463
+ console.log('āœ… Plugin packages installed');
464
+ }
465
+ catch (error) {
466
+ console.log('āš ļø Failed to install plugin packages:', error);
467
+ console.log('You can install them manually later with: npm install <plugin-name>');
468
+ }
469
+ }
470
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export interface PluginManagerOptions {
2
+ list?: boolean;
3
+ install?: string;
4
+ remove?: string;
5
+ }
6
+ export declare function managePlugins(options: PluginManagerOptions): Promise<void>;
7
+ //# sourceMappingURL=plugin-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-manager.d.ts","sourceRoot":"","sources":["../src/plugin-manager.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAyCD,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBhF"}