@factiii/stack 0.1.33 → 0.1.34

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.
Files changed (60) hide show
  1. package/dist/cli/fix.d.ts.map +1 -1
  2. package/dist/cli/fix.js +7 -1
  3. package/dist/cli/fix.js.map +1 -1
  4. package/dist/plugins/frameworks/expo/index.d.ts +45 -0
  5. package/dist/plugins/frameworks/expo/index.d.ts.map +1 -0
  6. package/dist/plugins/frameworks/expo/index.js +549 -0
  7. package/dist/plugins/frameworks/expo/index.js.map +1 -0
  8. package/dist/plugins/frameworks/prisma-trpc/index.js +8 -8
  9. package/dist/plugins/frameworks/prisma-trpc/index.js.map +1 -1
  10. package/dist/plugins/index.d.ts.map +1 -1
  11. package/dist/plugins/index.js +8 -0
  12. package/dist/plugins/index.js.map +1 -1
  13. package/dist/plugins/pipelines/aws/scanfix/aws-cli.js +1 -1
  14. package/dist/plugins/pipelines/aws/scanfix/aws-cli.js.map +1 -1
  15. package/dist/plugins/pipelines/aws/scanfix/config.js +4 -4
  16. package/dist/plugins/pipelines/aws/scanfix/config.js.map +1 -1
  17. package/dist/plugins/pipelines/aws/scanfix/credentials.js +4 -4
  18. package/dist/plugins/pipelines/aws/scanfix/credentials.js.map +1 -1
  19. package/dist/plugins/pipelines/aws/scanfix/db-replication.js +2 -2
  20. package/dist/plugins/pipelines/aws/scanfix/db-replication.js.map +1 -1
  21. package/dist/plugins/pipelines/aws/scanfix/ec2.js +3 -3
  22. package/dist/plugins/pipelines/aws/scanfix/ec2.js.map +1 -1
  23. package/dist/plugins/pipelines/aws/scanfix/ecr.js +2 -2
  24. package/dist/plugins/pipelines/aws/scanfix/ecr.js.map +1 -1
  25. package/dist/plugins/pipelines/aws/scanfix/iam.js +2 -2
  26. package/dist/plugins/pipelines/aws/scanfix/iam.js.map +1 -1
  27. package/dist/plugins/pipelines/aws/scanfix/rds.js +4 -4
  28. package/dist/plugins/pipelines/aws/scanfix/rds.js.map +1 -1
  29. package/dist/plugins/pipelines/aws/scanfix/s3.js +2 -2
  30. package/dist/plugins/pipelines/aws/scanfix/s3.js.map +1 -1
  31. package/dist/plugins/pipelines/aws/scanfix/security-groups.js +3 -3
  32. package/dist/plugins/pipelines/aws/scanfix/security-groups.js.map +1 -1
  33. package/dist/plugins/pipelines/aws/scanfix/ses.js +3 -3
  34. package/dist/plugins/pipelines/aws/scanfix/ses.js.map +1 -1
  35. package/dist/plugins/pipelines/aws/scanfix/vpc.js +4 -4
  36. package/dist/plugins/pipelines/aws/scanfix/vpc.js.map +1 -1
  37. package/dist/plugins/pipelines/factiii/scanfix/ansible.js +1 -1
  38. package/dist/plugins/pipelines/factiii/scanfix/ansible.js.map +1 -1
  39. package/dist/plugins/pipelines/factiii/scanfix/bootstrap.js +6 -6
  40. package/dist/plugins/pipelines/factiii/scanfix/bootstrap.js.map +1 -1
  41. package/dist/plugins/pipelines/factiii/scanfix/config.js +1 -1
  42. package/dist/plugins/pipelines/factiii/scanfix/config.js.map +1 -1
  43. package/dist/plugins/pipelines/factiii/scanfix/env-files.js +7 -7
  44. package/dist/plugins/pipelines/factiii/scanfix/env-files.js.map +1 -1
  45. package/dist/plugins/pipelines/factiii/scanfix/github-cli.js +1 -1
  46. package/dist/plugins/pipelines/factiii/scanfix/github-cli.js.map +1 -1
  47. package/dist/plugins/pipelines/factiii/scanfix/secrets.js +7 -7
  48. package/dist/plugins/pipelines/factiii/scanfix/secrets.js.map +1 -1
  49. package/dist/plugins/pipelines/factiii/scanfix/workflows.d.ts.map +1 -1
  50. package/dist/plugins/pipelines/factiii/scanfix/workflows.js +52 -4
  51. package/dist/plugins/pipelines/factiii/scanfix/workflows.js.map +1 -1
  52. package/dist/plugins/servers/mac/scanfix/config.js +5 -5
  53. package/dist/plugins/servers/mac/scanfix/config.js.map +1 -1
  54. package/dist/plugins/servers/mac/scanfix/containers.js +1 -1
  55. package/dist/plugins/servers/mac/scanfix/containers.js.map +1 -1
  56. package/dist/plugins/servers/mac/scanfix/system.js +6 -6
  57. package/dist/plugins/servers/mac/scanfix/system.js.map +1 -1
  58. package/dist/plugins/servers/windows/index.js +2 -2
  59. package/dist/plugins/servers/windows/index.js.map +1 -1
  60. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"fix.d.ts","sourceRoot":"","sources":["../../src/cli/fix.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AASH,OAAO,KAAK,EAAiB,UAAU,EAAE,SAAS,EAAuB,MAAM,mBAAmB,CAAC;AAoLnG,wBAAsB,GAAG,CAAC,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CAsItE;AAED,eAAe,GAAG,CAAC"}
1
+ {"version":3,"file":"fix.d.ts","sourceRoot":"","sources":["../../src/cli/fix.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AASH,OAAO,KAAK,EAAiB,UAAU,EAAE,SAAS,EAAuB,MAAM,mBAAmB,CAAC;AAoLnG,wBAAsB,GAAG,CAAC,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CA8ItE;AAED,eAAe,GAAG,CAAC"}
package/dist/cli/fix.js CHANGED
@@ -304,7 +304,13 @@ async function fix(options = {}) {
304
304
  }
305
305
  }
306
306
  console.log('-'.repeat(60));
307
- console.log('TOTAL: Fixed: ' + result.fixed + ', Manual: ' + result.manual + ', Failed: ' + result.failed);
307
+ console.log('TOTAL: ' +
308
+ '✅ Fixed: ' +
309
+ result.fixed +
310
+ ', 📝 Manual: ' +
311
+ result.manual +
312
+ ', ❌ Failed: ' +
313
+ result.failed);
308
314
  // Show next-step guidance after successful fix
309
315
  if (result.failed === 0 && result.manual === 0) {
310
316
  const hasProdStage = stages.includes('prod') || stages.includes('staging');
@@ -1 +1 @@
1
- {"version":3,"file":"fix.js","sourceRoot":"","sources":["../../src/cli/fix.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fix.js","sourceRoot":"","sources":["../../src/cli/fix.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Expo (React Native) Framework Plugin
3
+ *
4
+ * Validates all dependencies needed for EAS Build to work.
5
+ * Each dependency has its own scanfix so `eas build` succeeds
6
+ * once all checks pass.
7
+ */
8
+ import type { FactiiiConfig, Fix, DeployResult } from '../../../types/index.js';
9
+ interface DetectedConfig {
10
+ has_expo: boolean;
11
+ expo_version?: string | null;
12
+ has_app_json: boolean;
13
+ has_eas_json: boolean;
14
+ }
15
+ declare class ExpoPlugin {
16
+ static readonly id = "expo";
17
+ static readonly name = "Expo (React Native)";
18
+ static readonly category: 'framework';
19
+ static readonly version = "1.0.0";
20
+ static readonly requiredEnvVars: string[];
21
+ static readonly configSchema: Record<string, unknown>;
22
+ static readonly autoConfigSchema: Record<string, string>;
23
+ /**
24
+ * Determine if this plugin should be loaded for this project
25
+ * Loads if 'expo' is in package.json dependencies
26
+ */
27
+ static shouldLoad(rootDir: string, _config: FactiiiConfig): Promise<boolean>;
28
+ static readonly fixes: Fix[];
29
+ /**
30
+ * Auto-detect Expo configuration
31
+ */
32
+ static detectConfig(rootDir: string): Promise<DetectedConfig | null>;
33
+ private _config;
34
+ constructor(config: FactiiiConfig);
35
+ /**
36
+ * Deploy - trigger EAS Build
37
+ */
38
+ deploy(_config: FactiiiConfig, environment: string): Promise<DeployResult>;
39
+ /**
40
+ * Undeploy - nothing to do for Expo
41
+ */
42
+ undeploy(_config: FactiiiConfig, _environment: string): Promise<DeployResult>;
43
+ }
44
+ export default ExpoPlugin;
45
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/frameworks/expo/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAkBhF,UAAU,cAAc;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;CACvB;AAsCD,cAAM,UAAU;IAKd,MAAM,CAAC,QAAQ,CAAC,EAAE,UAAU;IAC5B,MAAM,CAAC,QAAQ,CAAC,IAAI,yBAAyB;IAC7C,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAe;IACpD,MAAM,CAAC,QAAQ,CAAC,OAAO,WAAW;IAElC,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,CAAM;IAE/C,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAInD;IAEF,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAKtD;IAEF;;;OAGG;WACU,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBlF,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,CAqW1B;IAMF;;OAEG;WACU,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IA0B1E,OAAO,CAAC,OAAO,CAAgB;gBAEnB,MAAM,EAAE,aAAa;IAIjC;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAoBhF;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CAGpF;AAED,eAAe,UAAU,CAAC"}
@@ -0,0 +1,549 @@
1
+ "use strict";
2
+ /**
3
+ * Expo (React Native) Framework Plugin
4
+ *
5
+ * Validates all dependencies needed for EAS Build to work.
6
+ * Each dependency has its own scanfix so `eas build` succeeds
7
+ * once all checks pass.
8
+ */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || (function () {
26
+ var ownKeys = function(o) {
27
+ ownKeys = Object.getOwnPropertyNames || function (o) {
28
+ var ar = [];
29
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
+ return ar;
31
+ };
32
+ return ownKeys(o);
33
+ };
34
+ return function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ })();
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ const fs = __importStar(require("fs"));
44
+ const path = __importStar(require("path"));
45
+ const child_process_1 = require("child_process");
46
+ const config_helpers_js_1 = require("../../../utils/config-helpers.js");
47
+ /**
48
+ * Read and parse app.json from rootDir
49
+ */
50
+ function readAppJson(rootDir) {
51
+ const appJsonPath = path.join(rootDir, 'app.json');
52
+ if (!fs.existsSync(appJsonPath))
53
+ return null;
54
+ try {
55
+ return JSON.parse(fs.readFileSync(appJsonPath, 'utf8'));
56
+ }
57
+ catch {
58
+ return null;
59
+ }
60
+ }
61
+ /**
62
+ * Check if any app config file exists (app.json, app.config.js, app.config.ts)
63
+ */
64
+ function hasAppConfig(rootDir) {
65
+ return (fs.existsSync(path.join(rootDir, 'app.json')) ||
66
+ fs.existsSync(path.join(rootDir, 'app.config.js')) ||
67
+ fs.existsSync(path.join(rootDir, 'app.config.ts')));
68
+ }
69
+ /**
70
+ * Get dev OS from stack.local.yml or fall back to process.platform
71
+ */
72
+ function getDevOS(rootDir) {
73
+ const localConfig = (0, config_helpers_js_1.loadLocalConfig)(rootDir);
74
+ if (localConfig.dev_os)
75
+ return localConfig.dev_os;
76
+ if (process.platform === 'darwin')
77
+ return 'mac';
78
+ if (process.platform === 'win32')
79
+ return 'windows';
80
+ return 'ubuntu';
81
+ }
82
+ class ExpoPlugin {
83
+ // ============================================================
84
+ // STATIC METADATA
85
+ // ============================================================
86
+ static id = 'expo';
87
+ static name = 'Expo (React Native)';
88
+ static category = 'framework';
89
+ static version = '1.0.0';
90
+ static requiredEnvVars = [];
91
+ static configSchema = {
92
+ expo: {
93
+ profile: null, // Optional: EAS build profile override
94
+ },
95
+ };
96
+ static autoConfigSchema = {
97
+ has_expo: 'boolean',
98
+ expo_version: 'string',
99
+ has_app_json: 'boolean',
100
+ has_eas_json: 'boolean',
101
+ };
102
+ /**
103
+ * Determine if this plugin should be loaded for this project
104
+ * Loads if 'expo' is in package.json dependencies
105
+ */
106
+ static async shouldLoad(rootDir, _config) {
107
+ const pkgPath = path.join(rootDir, 'package.json');
108
+ if (!fs.existsSync(pkgPath))
109
+ return false;
110
+ try {
111
+ const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
112
+ const deps = { ...pkg.dependencies, ...pkg.devDependencies };
113
+ return !!deps.expo;
114
+ }
115
+ catch {
116
+ return false;
117
+ }
118
+ }
119
+ // ============================================================
120
+ // FIXES - All EAS Build dependencies
121
+ // ============================================================
122
+ static fixes = [
123
+ // ============================================================
124
+ // CLI & Runtime
125
+ // ============================================================
126
+ {
127
+ id: 'expo-not-installed',
128
+ stage: 'dev',
129
+ severity: 'critical',
130
+ description: '📦 Expo SDK not found in package.json dependencies',
131
+ scan: async (_config, rootDir) => {
132
+ const pkgPath = path.join(rootDir, 'package.json');
133
+ if (!fs.existsSync(pkgPath))
134
+ return true;
135
+ try {
136
+ const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
137
+ const deps = { ...pkg.dependencies, ...pkg.devDependencies };
138
+ return !deps.expo;
139
+ }
140
+ catch {
141
+ return true;
142
+ }
143
+ },
144
+ fix: async (_config, rootDir) => {
145
+ try {
146
+ (0, child_process_1.execSync)('pnpm add expo', { cwd: rootDir, stdio: 'inherit' });
147
+ console.log(' Installed Expo SDK');
148
+ return true;
149
+ }
150
+ catch {
151
+ return false;
152
+ }
153
+ },
154
+ manualFix: 'Run: pnpm add expo',
155
+ },
156
+ {
157
+ id: 'eas-cli-not-installed',
158
+ stage: 'dev',
159
+ severity: 'critical',
160
+ description: '🔧 EAS CLI not installed (required for eas build)',
161
+ scan: async (_config, _rootDir) => {
162
+ try {
163
+ (0, child_process_1.execSync)('npx eas --version', { stdio: 'pipe' });
164
+ return false;
165
+ }
166
+ catch {
167
+ return true;
168
+ }
169
+ },
170
+ fix: async (_config, _rootDir) => {
171
+ try {
172
+ (0, child_process_1.execSync)('pnpm add -g eas-cli', { stdio: 'inherit' });
173
+ console.log(' Installed eas-cli globally');
174
+ return true;
175
+ }
176
+ catch {
177
+ return false;
178
+ }
179
+ },
180
+ manualFix: 'Run: pnpm add -g eas-cli',
181
+ },
182
+ // ============================================================
183
+ // Config Files
184
+ // ============================================================
185
+ {
186
+ id: 'expo-app-config-missing',
187
+ stage: 'dev',
188
+ severity: 'critical',
189
+ description: '📋 Expo app config not found (app.json, app.config.js, or app.config.ts)',
190
+ scan: async (_config, rootDir) => {
191
+ return !hasAppConfig(rootDir);
192
+ },
193
+ fix: null,
194
+ manualFix: 'Create app.json in your project root:\n' +
195
+ ' {\n' +
196
+ ' "expo": {\n' +
197
+ ' "name": "My App",\n' +
198
+ ' "slug": "my-app",\n' +
199
+ ' "version": "1.0.0",\n' +
200
+ ' "ios": { "bundleIdentifier": "com.example.myapp" },\n' +
201
+ ' "android": { "package": "com.example.myapp" }\n' +
202
+ ' }\n' +
203
+ ' }',
204
+ },
205
+ {
206
+ id: 'expo-eas-json-missing',
207
+ stage: 'dev',
208
+ severity: 'critical',
209
+ description: '📋 eas.json not found (required for EAS Build configuration)',
210
+ scan: async (_config, rootDir) => {
211
+ return !fs.existsSync(path.join(rootDir, 'eas.json'));
212
+ },
213
+ fix: async (_config, rootDir) => {
214
+ try {
215
+ (0, child_process_1.execSync)('npx eas build:configure', { cwd: rootDir, stdio: 'inherit' });
216
+ console.log(' Created eas.json via eas build:configure');
217
+ return true;
218
+ }
219
+ catch {
220
+ return false;
221
+ }
222
+ },
223
+ manualFix: 'Run: npx eas build:configure',
224
+ },
225
+ {
226
+ id: 'expo-app-name-missing',
227
+ stage: 'dev',
228
+ severity: 'warning',
229
+ description: '📝 Expo app name or slug missing in app.json',
230
+ scan: async (_config, rootDir) => {
231
+ const appJson = readAppJson(rootDir);
232
+ if (!appJson)
233
+ return false; // Caught by expo-app-config-missing
234
+ return !appJson.expo?.name || !appJson.expo?.slug;
235
+ },
236
+ fix: null,
237
+ manualFix: 'Add name and slug to app.json:\n' +
238
+ ' "expo": {\n' +
239
+ ' "name": "Your App Name",\n' +
240
+ ' "slug": "your-app-slug"\n' +
241
+ ' }',
242
+ },
243
+ {
244
+ id: 'expo-bundle-id-missing',
245
+ stage: 'dev',
246
+ severity: 'warning',
247
+ description: '🍎 iOS bundleIdentifier not set in app.json (required for iOS builds)',
248
+ scan: async (_config, rootDir) => {
249
+ const appJson = readAppJson(rootDir);
250
+ if (!appJson)
251
+ return false; // Caught by expo-app-config-missing
252
+ return !appJson.expo?.ios?.bundleIdentifier;
253
+ },
254
+ fix: null,
255
+ manualFix: 'Add ios.bundleIdentifier to app.json:\n' +
256
+ ' "expo": {\n' +
257
+ ' "ios": { "bundleIdentifier": "com.yourcompany.yourapp" }\n' +
258
+ ' }',
259
+ },
260
+ {
261
+ id: 'expo-package-name-missing',
262
+ stage: 'dev',
263
+ severity: 'warning',
264
+ description: '🤖 Android package name not set in app.json (required for Android builds)',
265
+ scan: async (_config, rootDir) => {
266
+ const appJson = readAppJson(rootDir);
267
+ if (!appJson)
268
+ return false; // Caught by expo-app-config-missing
269
+ return !appJson.expo?.android?.package;
270
+ },
271
+ fix: null,
272
+ manualFix: 'Add android.package to app.json:\n' +
273
+ ' "expo": {\n' +
274
+ ' "android": { "package": "com.yourcompany.yourapp" }\n' +
275
+ ' }',
276
+ },
277
+ // ============================================================
278
+ // Auth
279
+ // ============================================================
280
+ {
281
+ id: 'expo-not-logged-in',
282
+ stage: 'dev',
283
+ severity: 'critical',
284
+ description: '🔑 Not logged into Expo account (required for EAS Build)',
285
+ scan: async (_config, _rootDir) => {
286
+ try {
287
+ (0, child_process_1.execSync)('npx eas whoami', { stdio: 'pipe' });
288
+ return false;
289
+ }
290
+ catch {
291
+ return true;
292
+ }
293
+ },
294
+ fix: async (_config, _rootDir) => {
295
+ try {
296
+ (0, child_process_1.execSync)('npx eas login', { stdio: 'inherit' });
297
+ // Verify login succeeded
298
+ (0, child_process_1.execSync)('npx eas whoami', { stdio: 'pipe' });
299
+ console.log(' Logged into Expo account');
300
+ return true;
301
+ }
302
+ catch {
303
+ return false;
304
+ }
305
+ },
306
+ manualFix: 'Log into your Expo account:\n' +
307
+ ' npx eas login\n' +
308
+ ' For CI, set EXPO_TOKEN environment variable',
309
+ },
310
+ // ============================================================
311
+ // Platform Tools (OS-aware)
312
+ // ============================================================
313
+ {
314
+ id: 'expo-xcode-missing',
315
+ stage: 'dev',
316
+ severity: 'warning',
317
+ description: '🍎 Xcode not installed (required for local iOS builds)',
318
+ scan: async (_config, rootDir) => {
319
+ const devOS = getDevOS(rootDir);
320
+ if (devOS !== 'mac')
321
+ return false; // Only check on macOS
322
+ try {
323
+ (0, child_process_1.execSync)('xcodebuild -version', { stdio: 'pipe' });
324
+ return false;
325
+ }
326
+ catch {
327
+ return true;
328
+ }
329
+ },
330
+ fix: null,
331
+ manualFix: 'Install Xcode from the Mac App Store:\n' +
332
+ ' 1. Open App Store and search for "Xcode"\n' +
333
+ ' 2. Install Xcode\n' +
334
+ ' 3. Run: sudo xcode-select --switch /Applications/Xcode.app\n' +
335
+ ' 4. Run: sudo xcodebuild -license accept',
336
+ },
337
+ {
338
+ id: 'expo-cocoapods-missing',
339
+ stage: 'dev',
340
+ severity: 'warning',
341
+ description: '🍎 CocoaPods not installed (required for iOS builds)',
342
+ scan: async (_config, rootDir) => {
343
+ const devOS = getDevOS(rootDir);
344
+ if (devOS !== 'mac')
345
+ return false; // Only check on macOS
346
+ try {
347
+ (0, child_process_1.execSync)('pod --version', { stdio: 'pipe' });
348
+ return false;
349
+ }
350
+ catch {
351
+ return true;
352
+ }
353
+ },
354
+ fix: async (_config, _rootDir) => {
355
+ try {
356
+ (0, child_process_1.execSync)('brew install cocoapods', { stdio: 'inherit' });
357
+ console.log(' Installed CocoaPods via Homebrew');
358
+ return true;
359
+ }
360
+ catch {
361
+ // Fallback to gem install
362
+ try {
363
+ (0, child_process_1.execSync)('sudo gem install cocoapods', { stdio: 'inherit' });
364
+ console.log(' Installed CocoaPods via gem');
365
+ return true;
366
+ }
367
+ catch {
368
+ return false;
369
+ }
370
+ }
371
+ },
372
+ manualFix: 'Run: brew install cocoapods (or: sudo gem install cocoapods)',
373
+ },
374
+ {
375
+ id: 'expo-jdk-missing',
376
+ stage: 'dev',
377
+ severity: 'warning',
378
+ description: '☕ JDK 17+ not installed (required for Android builds)',
379
+ scan: async (_config, _rootDir) => {
380
+ try {
381
+ const output = (0, child_process_1.execSync)('java -version 2>&1', {
382
+ encoding: 'utf8',
383
+ stdio: ['pipe', 'pipe', 'pipe'],
384
+ });
385
+ // Parse version: "openjdk version "17.0.x"" or "java version "17.0.x""
386
+ const versionMatch = output.match(/version "(\d+)/);
387
+ if (versionMatch) {
388
+ const major = parseInt(versionMatch[1], 10);
389
+ return major < 17;
390
+ }
391
+ return true; // Can't parse version
392
+ }
393
+ catch {
394
+ return true;
395
+ }
396
+ },
397
+ fix: async (_config, rootDir) => {
398
+ const devOS = getDevOS(rootDir);
399
+ try {
400
+ if (devOS === 'mac') {
401
+ (0, child_process_1.execSync)('brew install openjdk@17', { stdio: 'inherit' });
402
+ console.log(' Installed JDK 17 via Homebrew');
403
+ }
404
+ else if (devOS === 'windows') {
405
+ (0, child_process_1.execSync)('winget install --id=EclipseAdoptium.Temurin.17.JDK --accept-source-agreements --accept-package-agreements', { stdio: 'inherit' });
406
+ console.log(' Installed JDK 17 via winget');
407
+ }
408
+ else {
409
+ (0, child_process_1.execSync)('sudo apt-get install -y openjdk-17-jdk', { stdio: 'inherit' });
410
+ console.log(' Installed JDK 17 via apt-get');
411
+ }
412
+ return true;
413
+ }
414
+ catch {
415
+ return false;
416
+ }
417
+ },
418
+ manualFix: 'Install JDK 17+:\n' +
419
+ ' macOS: brew install openjdk@17\n' +
420
+ ' Windows: winget install EclipseAdoptium.Temurin.17.JDK\n' +
421
+ ' Linux: sudo apt-get install openjdk-17-jdk',
422
+ },
423
+ {
424
+ id: 'expo-android-sdk-missing',
425
+ stage: 'dev',
426
+ severity: 'info',
427
+ description: '🤖 ANDROID_HOME not set (Android SDK required for local Android builds)',
428
+ scan: async (_config, _rootDir) => {
429
+ const androidHome = process.env.ANDROID_HOME || process.env.ANDROID_SDK_ROOT;
430
+ if (!androidHome)
431
+ return true;
432
+ return !fs.existsSync(androidHome);
433
+ },
434
+ fix: null,
435
+ manualFix: 'Install Android Studio and set ANDROID_HOME:\n' +
436
+ ' 1. Download Android Studio from https://developer.android.com/studio\n' +
437
+ ' 2. Install and open Android Studio\n' +
438
+ ' 3. Install Android SDK via SDK Manager\n' +
439
+ ' 4. Set ANDROID_HOME environment variable:\n' +
440
+ ' macOS: export ANDROID_HOME=$HOME/Library/Android/sdk\n' +
441
+ ' Windows: setx ANDROID_HOME "%LOCALAPPDATA%\\Android\\Sdk"\n' +
442
+ ' Linux: export ANDROID_HOME=$HOME/Android/Sdk',
443
+ },
444
+ // ============================================================
445
+ // Project Integrity
446
+ // ============================================================
447
+ {
448
+ id: 'expo-project-id-missing',
449
+ stage: 'dev',
450
+ severity: 'warning',
451
+ description: '🆔 EAS project ID not configured (required for EAS Build)',
452
+ scan: async (_config, rootDir) => {
453
+ const appJson = readAppJson(rootDir);
454
+ if (!appJson)
455
+ return false; // Caught by expo-app-config-missing
456
+ // Check app.json for projectId
457
+ if (appJson.expo?.extra?.eas?.projectId)
458
+ return false;
459
+ // Also check app.config.js/ts (can't parse, but check if eas.json has projectId)
460
+ const easJsonPath = path.join(rootDir, 'eas.json');
461
+ if (fs.existsSync(easJsonPath)) {
462
+ try {
463
+ const easJson = JSON.parse(fs.readFileSync(easJsonPath, 'utf8'));
464
+ // eas.json doesn't store projectId, but if eas init was run, app.json would have it
465
+ }
466
+ catch {
467
+ // ignore
468
+ }
469
+ }
470
+ return true;
471
+ },
472
+ fix: async (_config, rootDir) => {
473
+ try {
474
+ (0, child_process_1.execSync)('npx eas init', { cwd: rootDir, stdio: 'inherit' });
475
+ console.log(' Configured EAS project ID');
476
+ return true;
477
+ }
478
+ catch {
479
+ return false;
480
+ }
481
+ },
482
+ manualFix: 'Run: npx eas init (links your project to an EAS project)',
483
+ },
484
+ ];
485
+ // ============================================================
486
+ // STATIC HELPER METHODS
487
+ // ============================================================
488
+ /**
489
+ * Auto-detect Expo configuration
490
+ */
491
+ static async detectConfig(rootDir) {
492
+ const pkgPath = path.join(rootDir, 'package.json');
493
+ if (!fs.existsSync(pkgPath))
494
+ return null;
495
+ let expoVersion = null;
496
+ try {
497
+ const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
498
+ const deps = { ...pkg.dependencies, ...pkg.devDependencies };
499
+ if (!deps.expo)
500
+ return null;
501
+ expoVersion = deps.expo ? deps.expo.replace(/^[\^~]/, '') : null;
502
+ }
503
+ catch {
504
+ return null;
505
+ }
506
+ return {
507
+ has_expo: true,
508
+ expo_version: expoVersion,
509
+ has_app_json: fs.existsSync(path.join(rootDir, 'app.json')),
510
+ has_eas_json: fs.existsSync(path.join(rootDir, 'eas.json')),
511
+ };
512
+ }
513
+ // ============================================================
514
+ // INSTANCE METHODS
515
+ // ============================================================
516
+ _config;
517
+ constructor(config) {
518
+ this._config = config;
519
+ }
520
+ /**
521
+ * Deploy - trigger EAS Build
522
+ */
523
+ async deploy(_config, environment) {
524
+ const rootDir = process.cwd();
525
+ const profile = environment === 'prod' ? 'production' : environment;
526
+ console.log(' Building with EAS for ' + environment + ' (profile: ' + profile + ')...');
527
+ try {
528
+ (0, child_process_1.execSync)('npx eas build --profile ' + profile + ' --non-interactive', {
529
+ cwd: rootDir,
530
+ stdio: 'inherit',
531
+ });
532
+ return { success: true, message: 'EAS Build submitted for ' + environment };
533
+ }
534
+ catch (error) {
535
+ return {
536
+ success: false,
537
+ error: error instanceof Error ? error.message : String(error),
538
+ };
539
+ }
540
+ }
541
+ /**
542
+ * Undeploy - nothing to do for Expo
543
+ */
544
+ async undeploy(_config, _environment) {
545
+ return { success: true, message: 'Nothing to undeploy for Expo' };
546
+ }
547
+ }
548
+ exports.default = ExpoPlugin;
549
+ //# sourceMappingURL=index.js.map