@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.
@@ -0,0 +1,262 @@
1
+ import { execa } from 'execa';
2
+ import * as fs from 'node:fs';
3
+ import * as path from 'node:path';
4
+ import * as readline from 'node:readline';
5
+ // Available plugins with their details
6
+ const availablePlugins = {
7
+ 'assets': {
8
+ name: '@deploid/plugin-assets',
9
+ description: 'Generate app icons and assets from your logo',
10
+ required: true
11
+ },
12
+ 'packaging-capacitor': {
13
+ name: '@deploid/plugin-packaging-capacitor',
14
+ description: 'Package your app with Capacitor',
15
+ required: false
16
+ },
17
+ 'build-android': {
18
+ name: '@deploid/plugin-build-android',
19
+ description: 'Build Android APK/AAB files',
20
+ required: false
21
+ },
22
+ 'deploy-android': {
23
+ name: '@deploid/plugin-deploy-android',
24
+ description: 'Deploy to Android devices via ADB',
25
+ required: false
26
+ },
27
+ 'prepare-ios': {
28
+ name: '@deploid/plugin-prepare-ios',
29
+ description: 'Prepare iOS project for Mac handoff',
30
+ required: false
31
+ },
32
+ 'debug-network': {
33
+ name: '@deploid/plugin-debug-network',
34
+ description: 'Add network debugging tools to your app',
35
+ required: false
36
+ },
37
+ 'storage': {
38
+ name: '@deploid/plugin-storage',
39
+ description: 'Cross-platform storage utilities for web and native',
40
+ required: false
41
+ }
42
+ };
43
+ export async function managePlugins(options) {
44
+ const cwd = process.cwd();
45
+ // Check if we're in a Deploid project
46
+ if (!fs.existsSync(path.join(cwd, 'deploid.config.ts'))) {
47
+ console.error('❌ Not in a Deploid project. Run "deploid init" first.');
48
+ process.exit(1);
49
+ }
50
+ if (options.list) {
51
+ await listPlugins(cwd);
52
+ }
53
+ else if (options.install) {
54
+ await installPlugin(cwd, options.install);
55
+ }
56
+ else if (options.remove) {
57
+ await removePlugin(cwd, options.remove);
58
+ }
59
+ else {
60
+ // Interactive mode
61
+ await interactivePluginManager(cwd);
62
+ }
63
+ }
64
+ async function listPlugins(cwd) {
65
+ console.log('πŸ“¦ Available Deploid Plugins:\n');
66
+ for (const [key, plugin] of Object.entries(availablePlugins)) {
67
+ const isInstalled = await isPluginInstalled(cwd, plugin.name);
68
+ const status = isInstalled ? 'βœ… Installed' : '⏸️ Not installed';
69
+ const required = plugin.required ? ' (Required)' : '';
70
+ console.log(`${status} ${plugin.description}${required}`);
71
+ console.log(` Package: ${plugin.name}`);
72
+ console.log(` Key: ${key}\n`);
73
+ }
74
+ }
75
+ async function installPlugin(cwd, pluginKey) {
76
+ const plugin = availablePlugins[pluginKey];
77
+ if (!plugin) {
78
+ console.error(`❌ Unknown plugin: ${pluginKey}`);
79
+ console.log('Available plugins:', Object.keys(availablePlugins).join(', '));
80
+ process.exit(1);
81
+ }
82
+ if (await isPluginInstalled(cwd, plugin.name)) {
83
+ console.log(`βœ… Plugin ${plugin.name} is already installed`);
84
+ return;
85
+ }
86
+ console.log(`πŸ“¦ Installing ${plugin.description}...`);
87
+ try {
88
+ // Try normal install first
89
+ try {
90
+ await execa('npm', ['install', plugin.name], { cwd });
91
+ }
92
+ catch (error) {
93
+ // If normal install fails, try with legacy peer deps
94
+ console.log('⚠️ Normal install failed, trying with legacy peer deps...');
95
+ await execa('npm', ['install', plugin.name, '--legacy-peer-deps'], { cwd });
96
+ }
97
+ console.log(`βœ… Successfully installed ${plugin.name}`);
98
+ // If it's a plugin that sets up files, run it
99
+ if (pluginKey === 'storage') {
100
+ console.log('πŸ”§ Setting up storage utilities...');
101
+ // The storage plugin will automatically set up files when installed
102
+ }
103
+ }
104
+ catch (error) {
105
+ console.error(`❌ Failed to install ${plugin.name}:`, error);
106
+ process.exit(1);
107
+ }
108
+ }
109
+ async function removePlugin(cwd, pluginKey) {
110
+ const plugin = availablePlugins[pluginKey];
111
+ if (!plugin) {
112
+ console.error(`❌ Unknown plugin: ${pluginKey}`);
113
+ console.log('Available plugins:', Object.keys(availablePlugins).join(', '));
114
+ process.exit(1);
115
+ }
116
+ if (plugin.required) {
117
+ console.error(`❌ Cannot remove required plugin: ${plugin.description}`);
118
+ process.exit(1);
119
+ }
120
+ if (!(await isPluginInstalled(cwd, plugin.name))) {
121
+ console.log(`ℹ️ Plugin ${plugin.name} is not installed`);
122
+ return;
123
+ }
124
+ console.log(`πŸ—‘οΈ Removing ${plugin.description}...`);
125
+ try {
126
+ await execa('npm', ['uninstall', plugin.name], { cwd });
127
+ console.log(`βœ… Successfully removed ${plugin.name}`);
128
+ }
129
+ catch (error) {
130
+ console.error(`❌ Failed to remove ${plugin.name}:`, error);
131
+ process.exit(1);
132
+ }
133
+ }
134
+ async function interactivePluginManager(cwd) {
135
+ console.log('πŸ”§ Deploid Plugin Manager\n');
136
+ const rl = readline.createInterface({
137
+ input: process.stdin,
138
+ output: process.stdout
139
+ });
140
+ const question = (prompt) => {
141
+ return new Promise((resolve) => {
142
+ rl.question(prompt, resolve);
143
+ });
144
+ };
145
+ try {
146
+ console.log('What would you like to do?');
147
+ console.log('1. List available plugins');
148
+ console.log('2. Install a plugin');
149
+ console.log('3. Remove a plugin');
150
+ console.log('4. Exit');
151
+ const choice = await question('\nEnter your choice (1-4): ');
152
+ switch (choice.trim()) {
153
+ case '1':
154
+ await listPlugins(cwd);
155
+ break;
156
+ case '2':
157
+ await interactiveInstall(cwd, rl);
158
+ break;
159
+ case '3':
160
+ await interactiveRemove(cwd, rl);
161
+ break;
162
+ case '4':
163
+ console.log('πŸ‘‹ Goodbye!');
164
+ break;
165
+ default:
166
+ console.log('❌ Invalid choice');
167
+ }
168
+ }
169
+ finally {
170
+ rl.close();
171
+ }
172
+ }
173
+ async function interactiveInstall(cwd, rl) {
174
+ console.log('\nπŸ“¦ Available plugins to install:\n');
175
+ const allPlugins = Object.entries(availablePlugins)
176
+ .filter(([key, plugin]) => !plugin.required);
177
+ const installablePlugins = [];
178
+ for (let i = 0; i < allPlugins.length; i++) {
179
+ const [key, plugin] = allPlugins[i];
180
+ const isInstalled = await isPluginInstalled(cwd, plugin.name);
181
+ installablePlugins.push({
182
+ key,
183
+ plugin,
184
+ index: i + 1,
185
+ isInstalled
186
+ });
187
+ }
188
+ for (const { key, plugin, index, isInstalled } of installablePlugins) {
189
+ const status = isInstalled ? 'βœ… Installed' : '⏸️ Not installed';
190
+ console.log(`${index}. ${status} ${plugin.description}`);
191
+ }
192
+ const choice = await new Promise((resolve) => {
193
+ rl.question('\nEnter plugin number to install (or 0 to cancel): ', resolve);
194
+ });
195
+ const pluginIndex = parseInt(choice) - 1;
196
+ if (pluginIndex === -1) {
197
+ console.log('Installation cancelled');
198
+ return;
199
+ }
200
+ if (pluginIndex < 0 || pluginIndex >= installablePlugins.length) {
201
+ console.log('❌ Invalid choice');
202
+ return;
203
+ }
204
+ const { key, plugin, isInstalled } = installablePlugins[pluginIndex];
205
+ if (isInstalled) {
206
+ console.log(`βœ… ${plugin.description} is already installed`);
207
+ return;
208
+ }
209
+ await installPlugin(cwd, key);
210
+ }
211
+ async function interactiveRemove(cwd, rl) {
212
+ console.log('\nπŸ—‘οΈ Installed plugins you can remove:\n');
213
+ const allPlugins = Object.entries(availablePlugins)
214
+ .filter(([key, plugin]) => !plugin.required);
215
+ const removablePlugins = [];
216
+ for (let i = 0; i < allPlugins.length; i++) {
217
+ const [key, plugin] = allPlugins[i];
218
+ const isInstalled = await isPluginInstalled(cwd, plugin.name);
219
+ if (isInstalled) {
220
+ removablePlugins.push({
221
+ key,
222
+ plugin,
223
+ index: removablePlugins.length + 1
224
+ });
225
+ }
226
+ }
227
+ if (removablePlugins.length === 0) {
228
+ console.log('No removable plugins found');
229
+ return;
230
+ }
231
+ for (const { key, plugin, index } of removablePlugins) {
232
+ console.log(`${index}. ${plugin.description}`);
233
+ }
234
+ const choice = await new Promise((resolve) => {
235
+ rl.question('\nEnter plugin number to remove (or 0 to cancel): ', resolve);
236
+ });
237
+ const pluginIndex = parseInt(choice) - 1;
238
+ if (pluginIndex === -1) {
239
+ console.log('Removal cancelled');
240
+ return;
241
+ }
242
+ if (pluginIndex < 0 || pluginIndex >= removablePlugins.length) {
243
+ console.log('❌ Invalid choice');
244
+ return;
245
+ }
246
+ const { key } = removablePlugins[pluginIndex];
247
+ await removePlugin(cwd, key);
248
+ }
249
+ async function isPluginInstalled(cwd, pluginName) {
250
+ try {
251
+ const packageJsonPath = path.join(cwd, 'package.json');
252
+ if (!fs.existsSync(packageJsonPath)) {
253
+ return false;
254
+ }
255
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
256
+ return !!(packageJson.dependencies?.[pluginName] || packageJson.devDependencies?.[pluginName]);
257
+ }
258
+ catch {
259
+ return false;
260
+ }
261
+ }
262
+ //# sourceMappingURL=plugin-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-manager.js","sourceRoot":"","sources":["../src/plugin-manager.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,60 @@
1
+ {
2
+ "name": "@deploid/cli",
3
+ "version": "2.0.0",
4
+ "description": "Build β†’ package β†’ sign β†’ publish web apps to Android",
5
+ "keywords": [
6
+ "android",
7
+ "capacitor",
8
+ "pwa",
9
+ "mobile",
10
+ "build",
11
+ "publish"
12
+ ],
13
+ "author": "MadsenDev",
14
+ "license": "MIT",
15
+ "homepage": "https://github.com/MadsenDev/deploid",
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "https://github.com/MadsenDev/deploid.git"
19
+ },
20
+ "bugs": {
21
+ "url": "https://github.com/MadsenDev/deploid/issues"
22
+ },
23
+ "private": false,
24
+ "publishConfig": {
25
+ "access": "public"
26
+ },
27
+ "type": "module",
28
+ "main": "dist/index.js",
29
+ "bin": {
30
+ "deploid": "bin/deploid"
31
+ },
32
+ "files": [
33
+ "dist/",
34
+ "bin/",
35
+ "README.md"
36
+ ],
37
+ "dependencies": {
38
+ "commander": "^12.1.0",
39
+ "execa": "^8.0.1",
40
+ "@deploid/core": "2.0.0",
41
+ "@deploid/plugin-assets": "2.0.0",
42
+ "@deploid/plugin-build-android": "2.0.0",
43
+ "@deploid/plugin-debug-network": "2.0.0",
44
+ "@deploid/plugin-deploy-android": "2.0.0",
45
+ "@deploid/plugin-packaging-capacitor": "2.0.0",
46
+ "@deploid/plugin-prepare-ios": "2.0.0"
47
+ },
48
+ "engines": {
49
+ "node": ">=18.0.0"
50
+ },
51
+ "devDependencies": {
52
+ "@types/node": "^20.19.23",
53
+ "vitest": "^2.1.9"
54
+ },
55
+ "scripts": {
56
+ "build": "tsc -b",
57
+ "dev": "tsx src/index.ts",
58
+ "test": "vitest run"
59
+ }
60
+ }