@idealyst/cli 1.2.1 → 1.2.3

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/constants.js CHANGED
@@ -78,14 +78,20 @@ exports.DEPENDENCIES = {
78
78
  mobile: {
79
79
  'react': `^${exports.REACT_VERSION}`,
80
80
  'react-native': `^${exports.REACT_NATIVE_VERSION}`,
81
- 'react-native-unistyles': '^3.0.15',
81
+ 'react-native-nitro-modules': '^0.32.0',
82
+ 'react-native-unistyles': '^3.0.21',
82
83
  '@react-navigation/native': '^7.0.0',
83
84
  '@react-navigation/native-stack': '^7.0.0',
84
- 'react-native-safe-area-context': '^4.10.0',
85
+ '@react-navigation/bottom-tabs': '^7.0.0',
86
+ '@react-navigation/drawer': '^7.0.0',
87
+ 'react-native-safe-area-context': '^5.6.0',
85
88
  'react-native-screens': '^4.4.0',
89
+ 'react-native-svg': '^15.11.0',
86
90
  'react-native-gesture-handler': '^2.20.0',
87
- 'react-native-reanimated': '^3.16.0',
91
+ 'react-native-reanimated': '^4.2.0',
92
+ 'react-native-worklets': '^0.7.0',
88
93
  'react-native-vector-icons': '^10.2.0',
94
+ '@react-native-vector-icons/material-design-icons': '^12.0.0',
89
95
  },
90
96
  trpc: {
91
97
  '@trpc/client': '^11.5.0',
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,7 @@ async function generateMobilePackage(projectPath, options) {
27
27
  packageName: options.packageName,
28
28
  directory: path_1.default.join(projectPath, 'packages'),
29
29
  skipInstall: options.skipInstall ?? true,
30
+ interactive: options.interactive ?? false,
30
31
  });
31
32
  // Now overlay Idealyst-specific files or generate programmatically
32
33
  const templatePath = (0, copier_1.getTemplatePath)('core', 'mobile');
@@ -54,7 +55,7 @@ async function generateMobilePackage(projectPath, options) {
54
55
  */
55
56
  async function generateMobileFiles(mobileDir, data, hasNative) {
56
57
  // Create directory structure
57
- await fs_extra_1.default.ensureDir(path_1.default.join(mobileDir, 'src', 'screens'));
58
+ await fs_extra_1.default.ensureDir(path_1.default.join(mobileDir, 'src'));
58
59
  // Create package.json
59
60
  await fs_extra_1.default.writeJson(path_1.default.join(mobileDir, 'package.json'), createMobilePackageJson(data), { spaces: 2 });
60
61
  // Create app.json
@@ -69,8 +70,6 @@ async function generateMobileFiles(mobileDir, data, hasNative) {
69
70
  await fs_extra_1.default.writeFile(path_1.default.join(mobileDir, 'index.js'), createIndexJs(data));
70
71
  // Create src/App.tsx
71
72
  await fs_extra_1.default.writeFile(path_1.default.join(mobileDir, 'src', 'App.tsx'), createAppTsx(data));
72
- // Create src/screens/Home.tsx
73
- await fs_extra_1.default.writeFile(path_1.default.join(mobileDir, 'src', 'screens', 'Home.tsx'), createHomeScreen(data));
74
73
  if (!hasNative) {
75
74
  logger_1.logger.warn('Native folders (android/ios) were not created.');
76
75
  logger_1.logger.dim('Run "npx react-native init" in the mobile directory to create them.');
@@ -107,6 +106,7 @@ function createMobilePackageJson(data) {
107
106
  '@babel/core': '^7.24.0',
108
107
  '@babel/preset-env': '^7.24.0',
109
108
  '@babel/runtime': '^7.24.0',
109
+ '@react-native-community/cli': '^18.0.0',
110
110
  '@react-native/babel-preset': '^0.83.0',
111
111
  '@react-native/eslint-config': '^0.83.0',
112
112
  '@react-native/metro-config': '^0.83.0',
@@ -121,8 +121,11 @@ function createMobilePackageJson(data) {
121
121
  * Create app.json
122
122
  */
123
123
  function createAppJson(data) {
124
+ // The 'name' must match the project name used in React Native init ('mobile')
125
+ // This is what AppRegistry.registerComponent uses and what native code expects
126
+ // The 'displayName' is what shows to users in the app launcher
124
127
  return {
125
- name: data.appDisplayName.replace(/\s+/g, ''),
128
+ name: 'mobile',
126
129
  displayName: data.appDisplayName,
127
130
  };
128
131
  }
@@ -165,6 +168,7 @@ function createBabelConfig(data) {
165
168
  ],
166
169
  }],
167
170
  ['react-native-unistyles/plugin', {
171
+ root: 'src',
168
172
  autoProcessPaths: [
169
173
  '@idealyst/components',
170
174
  '@${data.workspaceScope}/shared',
@@ -206,81 +210,42 @@ AppRegistry.registerComponent(appName, () => App);
206
210
  }
207
211
  /**
208
212
  * Create App.tsx
213
+ * Mobile just re-exports the shared App (all providers are in shared)
209
214
  */
210
215
  function createAppTsx(data) {
211
- const imports = [
212
- `import React from 'react';`,
213
- `import { NavigationContainer } from '@react-navigation/native';`,
214
- `import { createNativeStackNavigator } from '@react-navigation/native-stack';`,
215
- `import { ThemeProvider } from '@idealyst/theme';`,
216
- `import Home from './screens/Home';`,
217
- ];
218
216
  if (data.hasTrpc) {
219
- imports.push(`import { QueryClient, QueryClientProvider } from '@tanstack/react-query';`);
220
- imports.push(`import { trpc, trpcClient } from './utils/trpc';`);
221
- }
222
- let appContent = `
223
- const Stack = createNativeStackNavigator();
217
+ return `/**
218
+ * Mobile App entry point
219
+ * Wraps the shared App with mobile-specific API configuration
220
+ */
224
221
 
225
- export default function App() {
226
- return (
227
- <ThemeProvider>
228
- <NavigationContainer>
229
- <Stack.Navigator>
230
- <Stack.Screen
231
- name="Home"
232
- component={Home}
233
- options={{ title: '${data.appDisplayName}' }}
234
- />
235
- </Stack.Navigator>
236
- </NavigationContainer>
237
- </ThemeProvider>
238
- );
239
- }
240
- `;
241
- if (data.hasTrpc) {
242
- appContent = `
243
- const Stack = createNativeStackNavigator();
244
- const queryClient = new QueryClient();
222
+ import React from 'react';
223
+ import { Platform } from 'react-native';
224
+ import { App } from '@${data.workspaceScope}/shared';
245
225
 
246
- export default function App() {
247
- return (
248
- <trpc.Provider client={trpcClient} queryClient={queryClient}>
249
- <QueryClientProvider client={queryClient}>
250
- <ThemeProvider>
251
- <NavigationContainer>
252
- <Stack.Navigator>
253
- <Stack.Screen
254
- name="Home"
255
- component={Home}
256
- options={{ title: '${data.appDisplayName}' }}
257
- />
258
- </Stack.Navigator>
259
- </NavigationContainer>
260
- </ThemeProvider>
261
- </QueryClientProvider>
262
- </trpc.Provider>
263
- );
226
+ // API base URL for mobile
227
+ // Android emulator uses 10.0.2.2 to reach host localhost
228
+ // iOS simulator can use localhost directly
229
+ // For physical devices, use your machine's local IP address
230
+ const API_BASE_URL = Platform.select({
231
+ android: 'http://10.0.2.2:3001',
232
+ ios: 'http://localhost:3001',
233
+ default: 'http://localhost:3001',
234
+ });
235
+
236
+ export default function MobileApp() {
237
+ return <App apiBaseUrl={API_BASE_URL} />;
264
238
  }
265
239
  `;
266
240
  }
267
- return imports.join('\n') + '\n' + appContent;
268
- }
269
- /**
270
- * Create Home screen
241
+ return `/**
242
+ * Mobile App entry point
243
+ * Re-exports the shared App which includes all providers
271
244
  */
272
- function createHomeScreen(data) {
273
- return `import React from 'react';
274
- import { HelloWorld } from '@${data.workspaceScope}/shared';
275
245
 
276
- export default function Home() {
277
- return (
278
- <HelloWorld
279
- name="${data.appDisplayName}"
280
- onPress={() => console.log('Get Started pressed!')}
281
- />
282
- );
283
- }
246
+ import { App } from '@${data.workspaceScope}/shared';
247
+
248
+ export default App;
284
249
  `;
285
250
  }
286
251
  //# sourceMappingURL=mobile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mobile.js","sourceRoot":"","sources":["../../../src/generators/core/mobile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mobile.js","sourceRoot":"","sources":["../../../src/generators/core/mobile.ts"],"names":[],"mappings":"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"}
@@ -36,19 +36,41 @@ async function generateSharedPackage(projectPath, data) {
36
36
  async function generateSharedFiles(sharedDir, data) {
37
37
  // Create directory structure
38
38
  await fs_extra_1.default.ensureDir(path_1.default.join(sharedDir, 'src', 'components'));
39
- await fs_extra_1.default.ensureDir(path_1.default.join(sharedDir, 'src', 'utils'));
39
+ await fs_extra_1.default.ensureDir(path_1.default.join(sharedDir, 'src', 'screens'));
40
+ await fs_extra_1.default.ensureDir(path_1.default.join(sharedDir, 'src', 'navigation'));
41
+ // Create utils directory for tRPC client if enabled
42
+ if (data.hasTrpc) {
43
+ await fs_extra_1.default.ensureDir(path_1.default.join(sharedDir, 'src', 'utils'));
44
+ }
40
45
  // Create package.json
41
46
  await fs_extra_1.default.writeJson(path_1.default.join(sharedDir, 'package.json'), createSharedPackageJson(data), { spaces: 2 });
42
47
  // Create tsconfig.json
43
48
  await fs_extra_1.default.writeJson(path_1.default.join(sharedDir, 'tsconfig.json'), createSharedTsConfig(), { spaces: 2 });
44
49
  // Create src/index.ts
45
- await fs_extra_1.default.writeFile(path_1.default.join(sharedDir, 'src', 'index.ts'), createSharedIndex());
50
+ await fs_extra_1.default.writeFile(path_1.default.join(sharedDir, 'src', 'index.ts'), createSharedIndex(data));
46
51
  // Create src/theme.ts
47
52
  await fs_extra_1.default.writeFile(path_1.default.join(sharedDir, 'src', 'theme.ts'), createThemeConfig());
48
53
  // Create src/components/HelloWorld.tsx
49
54
  await fs_extra_1.default.writeFile(path_1.default.join(sharedDir, 'src', 'components', 'HelloWorld.tsx'), createHelloWorldComponent());
50
55
  // Create src/components/index.ts
51
56
  await fs_extra_1.default.writeFile(path_1.default.join(sharedDir, 'src', 'components', 'index.ts'), `export * from './HelloWorld';\n`);
57
+ // Create src/screens/Home.tsx
58
+ await fs_extra_1.default.writeFile(path_1.default.join(sharedDir, 'src', 'screens', 'Home.tsx'), createHomeScreen(data));
59
+ // Create src/screens/About.tsx
60
+ await fs_extra_1.default.writeFile(path_1.default.join(sharedDir, 'src', 'screens', 'About.tsx'), createAboutScreen());
61
+ // Create src/screens/index.ts
62
+ await fs_extra_1.default.writeFile(path_1.default.join(sharedDir, 'src', 'screens', 'index.ts'), `export { default as Home } from './Home';\nexport { default as About } from './About';\n`);
63
+ // Create src/navigation/AppRouter.ts
64
+ await fs_extra_1.default.writeFile(path_1.default.join(sharedDir, 'src', 'navigation', 'AppRouter.ts'), createAppRouter(data));
65
+ // Create src/navigation/index.ts
66
+ await fs_extra_1.default.writeFile(path_1.default.join(sharedDir, 'src', 'navigation', 'index.ts'), `export { AppRouter } from './AppRouter';\n`);
67
+ // Create src/App.tsx - main app with all providers
68
+ await fs_extra_1.default.writeFile(path_1.default.join(sharedDir, 'src', 'App.tsx'), createAppComponent(data));
69
+ // Create tRPC client if enabled
70
+ if (data.hasTrpc) {
71
+ await fs_extra_1.default.writeFile(path_1.default.join(sharedDir, 'src', 'utils', 'trpc.ts'), createTrpcClient(data));
72
+ await fs_extra_1.default.writeFile(path_1.default.join(sharedDir, 'src', 'utils', 'index.ts'), `export * from './trpc';\n`);
73
+ }
52
74
  }
53
75
  /**
54
76
  * Create shared package.json
@@ -107,17 +129,22 @@ function createSharedTsConfig() {
107
129
  /**
108
130
  * Create shared index.ts
109
131
  */
110
- function createSharedIndex() {
111
- return `/**
112
- * Shared package exports
113
- */
114
-
115
- export * from './components';
116
-
117
- // Re-export Idealyst components for convenience
118
- export * from '@idealyst/components';
119
- export * from '@idealyst/theme';
120
- `;
132
+ function createSharedIndex(data) {
133
+ const exports = [
134
+ `/**`,
135
+ ` * Shared package exports`,
136
+ ` */`,
137
+ ``,
138
+ `export { default as App } from './App';`,
139
+ `export * from './components';`,
140
+ `export * from './screens';`,
141
+ `export * from './navigation';`,
142
+ ];
143
+ if (data.hasTrpc) {
144
+ exports.push(`export * from './utils';`);
145
+ }
146
+ exports.push(``, `// Re-export Idealyst components for convenience`, `export * from '@idealyst/components';`, `export * from '@idealyst/theme';`);
147
+ return exports.join('\n') + '\n';
121
148
  }
122
149
  /**
123
150
  * Create theme configuration
@@ -130,12 +157,15 @@ function createThemeConfig() {
130
157
  import { StyleSheet } from 'react-native-unistyles';
131
158
  import { fromTheme, lightTheme, darkTheme } from '@idealyst/theme';
132
159
 
160
+ // Build themes as separate variables for babel plugin compatibility
161
+ const light = fromTheme(lightTheme).build();
162
+ const dark = fromTheme(darkTheme).build();
163
+
133
164
  // Configure unistyles with the Idealyst themes
134
- // fromTheme().build() is required for babel transpilation
135
165
  StyleSheet.configure({
136
166
  themes: {
137
- light: fromTheme(lightTheme).build(),
138
- dark: fromTheme(darkTheme).build(),
167
+ light,
168
+ dark,
139
169
  },
140
170
  settings: {
141
171
  initialTheme: 'light',
@@ -204,4 +234,241 @@ export function HelloWorld({ name = 'World', onPress }: HelloWorldProps) {
204
234
  }
205
235
  `;
206
236
  }
237
+ /**
238
+ * Create Home screen
239
+ */
240
+ function createHomeScreen(data) {
241
+ return `/**
242
+ * Home screen - shared between web and mobile
243
+ */
244
+
245
+ import React from 'react';
246
+ import { useNavigator } from '@idealyst/navigation';
247
+ import { HelloWorld } from '../components';
248
+
249
+ export default function Home() {
250
+ const { navigate } = useNavigator();
251
+
252
+ return (
253
+ <HelloWorld
254
+ name="${data.appDisplayName}"
255
+ onPress={() => navigate('/about')}
256
+ />
257
+ );
258
+ }
259
+ `;
260
+ }
261
+ /**
262
+ * Create AppRouter - shared navigation configuration
263
+ */
264
+ function createAppRouter(data) {
265
+ return `/**
266
+ * Application navigation router
267
+ * Shared between web and mobile platforms
268
+ */
269
+
270
+ import { NavigatorParam } from '@idealyst/navigation';
271
+ import Home from '../screens/Home';
272
+ import About from '../screens/About';
273
+
274
+ export const AppRouter: NavigatorParam = {
275
+ path: '/',
276
+ type: 'navigator',
277
+ layout: 'stack',
278
+ options: {
279
+ headerShown: false,
280
+ },
281
+ routes: [
282
+ {
283
+ path: '/',
284
+ type: 'screen',
285
+ component: Home,
286
+ options: { title: '${data.appDisplayName}' },
287
+ },
288
+ {
289
+ path: '/about',
290
+ type: 'screen',
291
+ component: About,
292
+ options: { title: 'About Idealyst' },
293
+ },
294
+ ],
295
+ };
296
+
297
+ export default AppRouter;
298
+ `;
299
+ }
300
+ /**
301
+ * Create About screen
302
+ */
303
+ function createAboutScreen() {
304
+ return `/**
305
+ * About screen - explains what Idealyst is
306
+ */
307
+
308
+ import React from 'react';
309
+ import { View, Text, Button } from '@idealyst/components';
310
+ import { useNavigator } from '@idealyst/navigation';
311
+ import { useUnistyles } from 'react-native-unistyles';
312
+
313
+ export default function About() {
314
+ const { theme } = useUnistyles();
315
+ const { goBack } = useNavigator();
316
+
317
+ return (
318
+ <View
319
+ style={{
320
+ flex: 1,
321
+ padding: 24,
322
+ backgroundColor: theme.colors.surface.primary,
323
+ }}
324
+ >
325
+ <Text
326
+ style={{
327
+ fontSize: 28,
328
+ fontWeight: 'bold',
329
+ color: theme.colors.text.primary,
330
+ marginBottom: 16,
331
+ }}
332
+ >
333
+ What is Idealyst?
334
+ </Text>
335
+
336
+ <Text
337
+ style={{
338
+ fontSize: 16,
339
+ color: theme.colors.text.secondary,
340
+ marginBottom: 16,
341
+ lineHeight: 24,
342
+ }}
343
+ >
344
+ Idealyst is a cross-platform framework for building React applications that run on both web and mobile from a single codebase.
345
+ </Text>
346
+
347
+ <Text
348
+ style={{
349
+ fontSize: 16,
350
+ color: theme.colors.text.secondary,
351
+ marginBottom: 16,
352
+ lineHeight: 24,
353
+ }}
354
+ >
355
+ Key features:
356
+ </Text>
357
+
358
+ <View style={{ marginLeft: 16, marginBottom: 16 }}>
359
+ <Text style={{ fontSize: 16, color: theme.colors.text.secondary, marginBottom: 8 }}>
360
+ • Unified component library for web and mobile
361
+ </Text>
362
+ <Text style={{ fontSize: 16, color: theme.colors.text.secondary, marginBottom: 8 }}>
363
+ • Shared navigation system across platforms
364
+ </Text>
365
+ <Text style={{ fontSize: 16, color: theme.colors.text.secondary, marginBottom: 8 }}>
366
+ • Theme system with light/dark mode support
367
+ </Text>
368
+ <Text style={{ fontSize: 16, color: theme.colors.text.secondary, marginBottom: 8 }}>
369
+ • Type-safe API integration with tRPC
370
+ </Text>
371
+ <Text style={{ fontSize: 16, color: theme.colors.text.secondary, marginBottom: 8 }}>
372
+ • Monorepo structure for code sharing
373
+ </Text>
374
+ </View>
375
+
376
+ <Text
377
+ style={{
378
+ fontSize: 16,
379
+ color: theme.colors.text.secondary,
380
+ marginBottom: 24,
381
+ lineHeight: 24,
382
+ }}
383
+ >
384
+ Write once, run everywhere - with native performance and consistent design.
385
+ </Text>
386
+
387
+ <Button onPress={goBack} intent="secondary">
388
+ Go Back
389
+ </Button>
390
+ </View>
391
+ );
392
+ }
393
+ `;
394
+ }
395
+ /**
396
+ * Create App component with all providers
397
+ */
398
+ function createAppComponent(data) {
399
+ if (data.hasTrpc) {
400
+ return `/**
401
+ * Main App component with all providers
402
+ * Platform packages wrap this with their specific router (e.g., BrowserRouter for web)
403
+ */
404
+
405
+ import React, { useMemo } from 'react';
406
+ import { NavigatorProvider } from '@idealyst/navigation';
407
+ import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
408
+ import { AppRouter } from './navigation';
409
+ import { trpc, createTrpcClient } from './utils/trpc';
410
+
411
+ export interface AppProps {
412
+ /** Base URL for the API server (e.g., 'http://localhost:3001') */
413
+ apiBaseUrl: string;
414
+ }
415
+
416
+ export default function App({ apiBaseUrl }: AppProps) {
417
+ const queryClient = useMemo(() => new QueryClient(), []);
418
+ const trpcClient = useMemo(() => createTrpcClient(apiBaseUrl), [apiBaseUrl]);
419
+
420
+ return (
421
+ <trpc.Provider client={trpcClient} queryClient={queryClient}>
422
+ <QueryClientProvider client={queryClient}>
423
+ <NavigatorProvider route={AppRouter} />
424
+ </QueryClientProvider>
425
+ </trpc.Provider>
426
+ );
427
+ }
428
+ `;
429
+ }
430
+ return `/**
431
+ * Main App component with all providers
432
+ * Platform packages wrap this with their specific router (e.g., BrowserRouter for web)
433
+ */
434
+
435
+ import React from 'react';
436
+ import { NavigatorProvider } from '@idealyst/navigation';
437
+ import { AppRouter } from './navigation';
438
+
439
+ export default function App() {
440
+ return <NavigatorProvider route={AppRouter} />;
441
+ }
442
+ `;
443
+ }
444
+ /**
445
+ * Create tRPC client for shared package
446
+ */
447
+ function createTrpcClient(data) {
448
+ return `/**
449
+ * tRPC client configuration
450
+ * Shared between web and mobile platforms
451
+ */
452
+
453
+ import { createTRPCReact } from '@trpc/react-query';
454
+ import { httpBatchLink } from '@trpc/client';
455
+ import type { AppRouter } from '@${data.workspaceScope}/api';
456
+
457
+ export const trpc = createTRPCReact<AppRouter>();
458
+
459
+ /**
460
+ * Create a tRPC client with the specified base URL
461
+ * @param baseUrl - The API server base URL (e.g., 'http://localhost:3001')
462
+ */
463
+ export function createTrpcClient(baseUrl: string) {
464
+ return trpc.createClient({
465
+ links: [
466
+ httpBatchLink({
467
+ url: \`\${baseUrl}/trpc\`,
468
+ }),
469
+ ],
470
+ });
471
+ }
472
+ `;
473
+ }
207
474
  //# sourceMappingURL=shared.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/generators/core/shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/generators/core/shared.ts"],"names":[],"mappings":"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"}