vibefast-cli 1.3.0 → 1.3.1
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/README.md +30 -95
- package/dist/__tests__/recipes.test.js +8 -9
- package/dist/__tests__/recipes.test.js.map +1 -1
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +271 -125
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/checklist.d.ts.map +1 -1
- package/dist/commands/checklist.js +85 -44
- package/dist/commands/checklist.js.map +1 -1
- package/dist/commands/health.d.ts.map +1 -1
- package/dist/commands/health.js +13 -4
- package/dist/commands/health.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +118 -26
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/migrate.d.ts +3 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +202 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/remove.d.ts.map +1 -1
- package/dist/commands/remove.js +61 -3
- package/dist/commands/remove.js.map +1 -1
- package/dist/core/auth.d.ts.map +1 -1
- package/dist/core/auth.js +20 -18
- package/dist/core/auth.js.map +1 -1
- package/dist/core/codemod.d.ts +33 -0
- package/dist/core/codemod.d.ts.map +1 -1
- package/dist/core/codemod.js +116 -0
- package/dist/core/codemod.js.map +1 -1
- package/dist/core/detect.d.ts.map +1 -1
- package/dist/core/detect.js +24 -7
- package/dist/core/detect.js.map +1 -1
- package/dist/core/journal.d.ts +1 -0
- package/dist/core/journal.d.ts.map +1 -1
- package/dist/core/journal.js.map +1 -1
- package/dist/core/recipes.d.ts.map +1 -1
- package/dist/core/recipes.js +25 -7
- package/dist/core/recipes.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/docs/architecture.md +50 -0
- package/docs/commands.md +78 -0
- package/docs/contributing.md +27 -0
- package/docs/quickstart.md +50 -0
- package/docs/recipes.md +57 -0
- package/docs/troubleshooting.md +31 -0
- package/package.json +2 -2
- package/recipes/0/apps/native/src/components/advanced-ui/timeline/demo.tsx +445 -0
- package/recipes/0/apps/native/src/components/advanced-ui/timeline/timeline-view.tsx +355 -0
- package/recipes/0/apps/native/src/components/advanced-ui/timeline/types.ts +31 -0
- package/recipes/0/recipe.json +18 -0
- package/recipes/animated-chip/apps/native/src/components/advanced-ui/chip/demo.tsx +2 -1
- package/recipes/animated-chip/recipe.json +5 -2
- package/recipes/animated-chip-native@latest.zip +0 -0
- package/recipes/animated-chip@latest.zip +0 -0
- package/recipes/animated-switch/apps/native/src/components/advanced-ui/switch/demo.tsx +1 -1
- package/recipes/animated-switch/recipe.json +5 -2
- package/recipes/animated-switch-native@latest.zip +0 -0
- package/recipes/animated-switch@latest.zip +0 -0
- package/recipes/audio-recorder/apps/native/src/features/audio-recorder/components/audio-recorder.tsx +2 -1
- package/recipes/audio-recorder/apps/native/src/features/audio-recorder/demo/with-recording-list-demo.tsx +2 -2
- package/recipes/audio-recorder/recipe.json +7 -2
- package/recipes/audio-recorder-native@latest.zip +0 -0
- package/recipes/audio-recorder-supabase/apps/native/src/features/audio-recorder/components/audio-recorder.tsx +2 -1
- package/recipes/audio-recorder-supabase/apps/native/src/features/audio-recorder/demo/with-recording-list-demo.tsx +2 -1
- package/recipes/audio-recorder-supabase/recipe.json +12 -33
- package/recipes/audio-recorder-supabase-native@latest.zip +0 -0
- package/recipes/audio-recorder-supabase@latest.zip +0 -0
- package/recipes/audio-recorder@latest.zip +0 -0
- package/recipes/charts/apps/native/src/app/charts/index.tsx +3 -0
- package/recipes/charts/apps/native/src/features/charts/components/bar-chart.tsx +3 -1
- package/recipes/charts/apps/native/src/features/charts/components/candlestick-chart.tsx +3 -1
- package/recipes/charts/apps/native/src/features/charts/components/column-chart.tsx +3 -1
- package/recipes/charts/apps/native/src/features/charts/components/doughnut-chart.tsx +3 -1
- package/recipes/charts/apps/native/src/features/charts/components/line-chart.tsx +3 -1
- package/recipes/charts/apps/native/src/features/charts/components/radar-chart.tsx +3 -1
- package/recipes/charts/apps/native/src/features/charts/components/stacked-bar-chart.tsx +3 -1
- package/recipes/charts/recipe.json +13 -4
- package/recipes/charts-native@latest.zip +0 -0
- package/recipes/charts@latest.zip +0 -0
- package/recipes/chatbot/apps/native/src/features/chatbot/components/chat-markdown.tsx +86 -86
- package/recipes/chatbot/apps/native/src/features/chatbot/components/markdown/code-block.tsx +4 -4
- package/recipes/chatbot/recipe.json +3 -40
- package/recipes/chatbot-native@latest.zip +0 -0
- package/recipes/chatbot-supabase/apps/native/src/features/chatbot/components/chat-markdown.tsx +4 -1
- package/recipes/chatbot-supabase/apps/native/src/features/chatbot/components/markdown/code-block.tsx +86 -53
- package/recipes/chatbot-supabase/recipe.json +3 -69
- package/recipes/chatbot-supabase-native@latest.zip +0 -0
- package/recipes/chatbot-supabase@latest.zip +0 -0
- package/recipes/chatbot@latest.zip +0 -0
- package/recipes/glowing-button/recipe.json +6 -2
- package/recipes/glowing-button-native@latest.zip +0 -0
- package/recipes/glowing-button@latest.zip +0 -0
- package/recipes/image-analysis/apps/native/src/app/analysis/[type]/_layout.tsx +5 -0
- package/recipes/image-analysis/apps/native/src/app/analysis/[type]/analysis-options.tsx +50 -0
- package/recipes/image-analysis/apps/native/src/app/analysis/[type]/camera.tsx +2 -0
- package/recipes/image-analysis/apps/native/src/app/analysis/[type]/index.tsx +50 -0
- package/recipes/image-analysis/apps/native/src/app/analysis/[type]/loading.tsx +50 -0
- package/recipes/image-analysis/apps/native/src/app/analysis/[type]/results.tsx +2 -0
- package/recipes/image-analysis/apps/native/src/app/analysis/[type]/trait-details.tsx +3 -0
- package/recipes/image-analysis/apps/native/src/features/image-analyzer/app/analysis-options-screen.tsx +2 -2
- package/recipes/image-analysis/apps/native/src/features/image-analyzer/app/camera.tsx +72 -65
- package/recipes/image-analysis/apps/native/src/features/image-analyzer/app/image-capture-screen.tsx +65 -47
- package/recipes/image-analysis/apps/native/src/features/image-analyzer/app/loading-screen.tsx +43 -2
- package/recipes/image-analysis/apps/native/src/features/image-analyzer/app/loading.tsx +34 -1
- package/recipes/image-analysis/apps/native/src/features/image-analyzer/hooks/use-image-analysis.ts +83 -2
- package/recipes/image-analysis/recipe.json +11 -19
- package/recipes/image-analysis-native@latest.zip +0 -0
- package/recipes/image-analysis-supabase/apps/native/src/app/analysis/[type]/_layout.tsx +5 -0
- package/recipes/image-analysis-supabase/apps/native/src/app/analysis/[type]/analysis-options.tsx +50 -0
- package/recipes/image-analysis-supabase/apps/native/src/app/analysis/[type]/camera.tsx +2 -0
- package/recipes/image-analysis-supabase/apps/native/src/app/analysis/[type]/index.tsx +50 -0
- package/recipes/image-analysis-supabase/apps/native/src/app/analysis/[type]/loading.tsx +50 -0
- package/recipes/image-analysis-supabase/apps/native/src/app/analysis/[type]/results.tsx +2 -0
- package/recipes/image-analysis-supabase/apps/native/src/app/analysis/[type]/trait-details.tsx +3 -0
- package/recipes/image-analysis-supabase/recipe.json +10 -70
- package/recipes/image-analysis-supabase-native@latest.zip +0 -0
- package/recipes/image-analysis-supabase@latest.zip +0 -0
- package/recipes/image-analysis@latest.zip +0 -0
- package/recipes/image-analyzer/apps/native/src/app/(root)/(protected)/image-analyzer/index.tsx +2 -0
- package/recipes/image-generator/apps/native/src/app/image-generator/gallery.tsx +3 -0
- package/recipes/image-generator/apps/native/src/app/image-generator/index.tsx +3 -0
- package/recipes/image-generator/recipe.json +8 -18
- package/recipes/image-generator-native@latest.zip +0 -0
- package/recipes/image-generator-supabase/recipe.json +6 -62
- package/recipes/image-generator-supabase-native@latest.zip +0 -0
- package/recipes/image-generator-supabase@latest.zip +0 -0
- package/recipes/image-generator@latest.zip +0 -0
- package/recipes/ios-widget/recipe.json +18 -119
- package/recipes/ios-widget-native@latest.zip +0 -0
- package/recipes/ios-widget@latest.zip +0 -0
- package/recipes/number-stepper/apps/native/src/components/advanced-ui/stepper/demo.tsx +1 -1
- package/recipes/number-stepper/recipe.json +5 -2
- package/recipes/number-stepper-native@latest.zip +0 -0
- package/recipes/number-stepper@latest.zip +0 -0
- package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/interactive-onboarding.tsx +11 -18
- package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/ai-tone-step.tsx +5 -7
- package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/currency-step.tsx +9 -7
- package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/feature-ai-step.tsx +8 -7
- package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/feature-chatbot-step.tsx +6 -5
- package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/feature-manual-step.tsx +4 -3
- package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/feature-scan-step.tsx +6 -5
- package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/main-reason-step.tsx +5 -7
- package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/notification-step.tsx +7 -6
- package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/overspend-step.tsx +5 -7
- package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/personalizing-step.tsx +8 -7
- package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/rating-step.tsx +6 -5
- package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/reminder-step.tsx +5 -6
- package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/safety-step.tsx +5 -4
- package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/struggle-step.tsx +5 -7
- package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/welcome-step.tsx +7 -6
- package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/ui/onboarding-header.tsx +4 -3
- package/recipes/onboarding/recipe.json +9 -6
- package/recipes/onboarding-native@latest.zip +0 -0
- package/recipes/onboarding@latest.zip +0 -0
- package/recipes/payments/apps/native/src/app/paywall/index.tsx +74 -0
- package/recipes/payments/apps/native/src/app/paywall/local.tsx +25 -0
- package/recipes/payments/apps/native/src/app/paywall/remote.tsx +23 -0
- package/recipes/payments/packages/backend/convex/payments.ts +21 -3
- package/recipes/payments/recipe.json +14 -34
- package/recipes/payments-native@latest.zip +0 -0
- package/recipes/payments-supabase/apps/native/src/app/paywall/index.tsx +74 -0
- package/recipes/payments-supabase/apps/native/src/app/paywall/local.tsx +25 -0
- package/recipes/payments-supabase/apps/native/src/app/paywall/remote.tsx +23 -0
- package/recipes/payments-supabase/recipe.json +16 -44
- package/recipes/payments-supabase-native@latest.zip +0 -0
- package/recipes/payments-supabase@latest.zip +0 -0
- package/recipes/payments@latest.zip +0 -0
- package/recipes/posthog/apps/native/src/components/analytics/navigation-tracker.tsx +14 -0
- package/recipes/posthog/apps/native/src/lib/hooks/use-navigation-analytics.ts +44 -0
- package/recipes/posthog/apps/native/src/providers/posthog-provider.tsx +51 -0
- package/recipes/posthog/recipe.json +60 -0
- package/recipes/posthog-native@latest.zip +0 -0
- package/recipes/progress-circle/apps/native/src/components/advanced-ui/progress-bars/progress-circle-page.tsx +1 -1
- package/recipes/progress-circle/recipe.json +5 -2
- package/recipes/progress-circle-native@latest.zip +0 -0
- package/recipes/progress-circle@latest.zip +0 -0
- package/recipes/quiz/apps/native/src/app/quiz/index.tsx +47 -0
- package/recipes/quiz/recipe.json +9 -6
- package/recipes/quiz-native@latest.zip +0 -0
- package/recipes/quiz@latest.zip +0 -0
- package/recipes/screen-kits/apps/native/src/app/screen-kits/_layout.tsx +12 -0
- package/recipes/screen-kits/apps/native/src/app/screen-kits/index.tsx +114 -0
- package/recipes/screen-kits/apps/native/src/features/screen-kits/index.ts +1 -0
- package/recipes/screen-kits/apps/native/src/features/screen-kits/types.ts +28 -0
- package/recipes/screen-kits/recipe.json +26 -0
- package/recipes/screen-kits-duolingo/apps/native/src/app/screen-kits/duolingo/_layout.tsx +12 -0
- package/recipes/screen-kits-duolingo/apps/native/src/app/screen-kits/duolingo/home.tsx +5 -0
- package/recipes/screen-kits-duolingo/apps/native/src/app/screen-kits/duolingo/index.tsx +5 -0
- package/recipes/screen-kits-duolingo/apps/native/src/app/screen-kits/duolingo/lesson-complete.tsx +5 -0
- package/recipes/screen-kits-duolingo/apps/native/src/app/screen-kits/duolingo/lesson-fail.tsx +5 -0
- package/recipes/screen-kits-duolingo/apps/native/src/app/screen-kits/duolingo/lesson.tsx +5 -0
- package/recipes/screen-kits-duolingo/apps/native/src/app/screen-kits/duolingo/skill-tree.tsx +5 -0
- package/recipes/screen-kits-duolingo/apps/native/src/features/screen-kits/duolingo/components/duo-button.tsx +174 -0
- package/recipes/screen-kits-duolingo/apps/native/src/features/screen-kits/duolingo/components/skill-button.tsx +186 -0
- package/recipes/screen-kits-duolingo/apps/native/src/features/screen-kits/duolingo/components/xp-header.tsx +115 -0
- package/recipes/screen-kits-duolingo/apps/native/src/features/screen-kits/duolingo/constants.ts +89 -0
- package/recipes/screen-kits-duolingo/apps/native/src/features/screen-kits/duolingo/index.ts +3 -0
- package/recipes/screen-kits-duolingo/apps/native/src/features/screen-kits/duolingo/screens/home-screen.tsx +225 -0
- package/recipes/screen-kits-duolingo/apps/native/src/features/screen-kits/duolingo/screens/lesson-complete-screen.tsx +485 -0
- package/recipes/screen-kits-duolingo/apps/native/src/features/screen-kits/duolingo/screens/lesson-fail-screen.tsx +105 -0
- package/recipes/screen-kits-duolingo/apps/native/src/features/screen-kits/duolingo/screens/lesson-screen.tsx +384 -0
- package/recipes/screen-kits-duolingo/recipe.json +58 -0
- package/recipes/screen-kits-duolingo-native@latest.zip +0 -0
- package/recipes/screen-kits-finance/apps/native/src/app/screen-kits/finance/_layout.tsx +45 -0
- package/recipes/screen-kits-finance/apps/native/src/app/screen-kits/finance/asset-detail.tsx +3 -0
- package/recipes/screen-kits-finance/apps/native/src/app/screen-kits/finance/notifications.tsx +3 -0
- package/recipes/screen-kits-finance/apps/native/src/app/screen-kits/finance/receive.tsx +3 -0
- package/recipes/screen-kits-finance/apps/native/src/app/screen-kits/finance/send.tsx +3 -0
- package/recipes/screen-kits-finance/apps/native/src/app/screen-kits/finance/swap.tsx +3 -0
- package/recipes/screen-kits-finance/apps/native/src/app/screen-kits/finance/wallet.tsx +3 -0
- package/recipes/screen-kits-finance/apps/native/src/features/screen-kits/finance/components/ActionButtons.tsx +78 -0
- package/recipes/screen-kits-finance/apps/native/src/features/screen-kits/finance/components/AssetRow.tsx +94 -0
- package/recipes/screen-kits-finance/apps/native/src/features/screen-kits/finance/components/BalanceCard.tsx +118 -0
- package/recipes/screen-kits-finance/apps/native/src/features/screen-kits/finance/constants.ts +85 -0
- package/recipes/screen-kits-finance/apps/native/src/features/screen-kits/finance/screens/asset-detail.tsx +378 -0
- package/recipes/screen-kits-finance/apps/native/src/features/screen-kits/finance/screens/notifications.tsx +210 -0
- package/recipes/screen-kits-finance/apps/native/src/features/screen-kits/finance/screens/receive-modal.tsx +317 -0
- package/recipes/screen-kits-finance/apps/native/src/features/screen-kits/finance/screens/send-modal.tsx +420 -0
- package/recipes/screen-kits-finance/apps/native/src/features/screen-kits/finance/screens/swap-modal.tsx +363 -0
- package/recipes/screen-kits-finance/apps/native/src/features/screen-kits/finance/screens/wallet-dashboard.tsx +281 -0
- package/recipes/screen-kits-finance/recipe.json +46 -0
- package/recipes/screen-kits-finance-native@latest.zip +0 -0
- package/recipes/screen-kits-fitness/apps/native/assets/sounds/timer-beep.wav +0 -0
- package/recipes/screen-kits-fitness/apps/native/src/app/screen-kits/fitness/_layout.tsx +10 -0
- package/recipes/screen-kits-fitness/apps/native/src/app/screen-kits/fitness/index.tsx +6 -0
- package/recipes/screen-kits-fitness/apps/native/src/app/screen-kits/fitness/timer.tsx +3 -0
- package/recipes/screen-kits-fitness/apps/native/src/app/screen-kits/fitness/workout.tsx +3 -0
- package/recipes/screen-kits-fitness/apps/native/src/features/screen-kits/fitness/components/timer-components.tsx +500 -0
- package/recipes/screen-kits-fitness/apps/native/src/features/screen-kits/fitness/components/timer-settings-modal.tsx +352 -0
- package/recipes/screen-kits-fitness/apps/native/src/features/screen-kits/fitness/components/workout-card.tsx +105 -0
- package/recipes/screen-kits-fitness/apps/native/src/features/screen-kits/fitness/constants.ts +189 -0
- package/recipes/screen-kits-fitness/apps/native/src/features/screen-kits/fitness/hooks/use-timer.ts +307 -0
- package/recipes/screen-kits-fitness/apps/native/src/features/screen-kits/fitness/index.ts +1 -0
- package/recipes/screen-kits-fitness/apps/native/src/features/screen-kits/fitness/screens/timer-screen.tsx +278 -0
- package/recipes/screen-kits-fitness/apps/native/src/features/screen-kits/fitness/screens/workout-dashboard.tsx +350 -0
- package/recipes/screen-kits-fitness/recipe.json +63 -0
- package/recipes/screen-kits-fitness-native@latest.zip +0 -0
- package/recipes/screen-kits-habits/apps/native/src/app/screen-kits/productivity/habits.tsx +1 -0
- package/recipes/screen-kits-habits/apps/native/src/app/screen-kits/productivity/kanban.tsx +1 -0
- package/recipes/screen-kits-habits/apps/native/src/app/screen-kits/productivity/routes.ts +4 -0
- package/recipes/screen-kits-habits/apps/native/src/features/screen-kits/productivity/components/AddTaskModal.tsx +246 -0
- package/recipes/screen-kits-habits/apps/native/src/features/screen-kits/productivity/components/DraggableTaskCard.tsx +92 -0
- package/recipes/screen-kits-habits/apps/native/src/features/screen-kits/productivity/components/KanbanColumn.tsx +238 -0
- package/recipes/screen-kits-habits/apps/native/src/features/screen-kits/productivity/components/TaskCard.tsx +144 -0
- package/recipes/screen-kits-habits/apps/native/src/features/screen-kits/productivity/components/add-habit-modal.tsx +271 -0
- package/recipes/screen-kits-habits/apps/native/src/features/screen-kits/productivity/constants.ts +295 -0
- package/recipes/screen-kits-habits/apps/native/src/features/screen-kits/productivity/kanban-utils.ts +62 -0
- package/recipes/screen-kits-habits/apps/native/src/features/screen-kits/productivity/screens/habit-tracker.tsx +1160 -0
- package/recipes/screen-kits-habits/apps/native/src/features/screen-kits/productivity/screens/kanban-board.tsx +432 -0
- package/recipes/screen-kits-habits/recipe.json +52 -0
- package/recipes/screen-kits-habits-native@latest.zip +0 -0
- package/recipes/screen-kits-native@latest.zip +0 -0
- package/recipes/sentry/apps/native/src/providers/sentry-provider.tsx +64 -0
- package/recipes/sentry/recipe.json +39 -0
- package/recipes/sentry-native@latest.zip +0 -0
- package/recipes/swipe-slider/apps/native/src/components/advanced-ui/sliders/swipe-slider-page.tsx +1 -1
- package/recipes/swipe-slider/recipe.json +5 -2
- package/recipes/swipe-slider-native@latest.zip +0 -0
- package/recipes/swipe-slider@latest.zip +0 -0
- package/recipes/timeline/apps/native/src/components/advanced-ui/timeline/demo.tsx +2 -1
- package/recipes/timeline/recipe.json +5 -2
- package/recipes/timeline-native@latest.zip +0 -0
- package/recipes/timeline@latest.zip +0 -0
- package/recipes/tracker-app/apps/native/src/app/tracker-app/index.tsx +1 -0
- package/recipes/tracker-app/recipe.json +10 -7
- package/recipes/tracker-app-native@latest.zip +0 -0
- package/recipes/tracker-app@latest.zip +0 -0
- package/recipes/upload-all.sh +8 -31
- package/recipes/voice-bot/apps/native/src/app/voice-bot/index.tsx +56 -0
- package/recipes/voice-bot/recipe.json +31 -7
- package/recipes/voice-bot-native@latest.zip +0 -0
- package/recipes/voice-bot@latest.zip +0 -0
- package/recipes/wake-word/apps/native/src/app/{(root)/(protected)/test-wake-word.tsx → test-wake-word.tsx} +43 -4
- package/recipes/wake-word/recipe.json +16 -26
- package/recipes/wake-word-native@latest.zip +0 -0
- package/recipes/wake-word@latest.zip +0 -0
- package/scripts/create-advanced-ui-recipes.sh +46 -19
- package/scripts/create-recipes.mjs +471 -117
- package/scripts/package-recipes.mjs +76 -0
- package/scripts/publish-all.sh +6 -2
- package/CHANGELOG.md +0 -198
- package/docs/archive/AUTO-DETECT-DEPS.md +0 -607
- package/docs/archive/FINAL-PACKAGE-STRATEGY.md +0 -583
- package/docs/archive/FINAL-SIMPLE-PLAN.md +0 -487
- package/docs/archive/FINAL-STATUS.md +0 -144
- package/docs/archive/FLOW-DIAGRAM.md +0 -1629
- package/docs/archive/GOTCHAS-AND-RISKS.md +0 -801
- package/docs/archive/IMPLEMENTATION-PLAN.md +0 -1360
- package/docs/archive/PLAN.md +0 -453
- package/docs/archive/PRODUCTION-READINESS.md +0 -684
- package/docs/archive/PRODUCTION-TEST-RESULTS.md +0 -465
- package/docs/archive/SIMPLIFIED-PLAN.md +0 -578
- package/docs/archive/STATUS.md +0 -199
- package/docs/archive/SUCCESS.md +0 -259
- package/docs/archive/TEST-SUMMARY.md +0 -261
- package/docs/archive/TESTING-CHECKLIST.md +0 -450
- package/docs/archive/USER-MODIFICATIONS.md +0 -448
- package/docs/decisions.md +0 -55
- package/docs/manual-testing.md +0 -91
- package/docs/next-steps.md +0 -12
- package/recipes/README.md +0 -156
- package/recipes/audio-recorder-supabase/packages/backend/src/services/recordings.ts +0 -369
- package/recipes/chatbot/apps/native/src/api-client/chatbot.ts +0 -83
- package/recipes/chatbot/packages/backend/convex/agents.ts +0 -115
- package/recipes/chatbot/packages/backend/convex/tools/index.ts +0 -18
- package/recipes/chatbot/packages/backend/convex/tools/knowledgeRetrieval.ts +0 -97
- package/recipes/chatbot/packages/backend/convex/tools/tavilySearch.ts +0 -83
- package/recipes/chatbot/packages/backend/convex/tools/userProfile.ts +0 -72
- package/recipes/chatbot-supabase/apps/native/src/api-client/supabase/chatbot.ts +0 -515
- package/recipes/chatbot-supabase/packages/backend/src/services/conversations.ts +0 -243
- package/recipes/chatbot-supabase/packages/backend/src/services/messages.ts +0 -327
- package/recipes/image-analysis/apps/native/src/api-client/image-analyzer.ts +0 -62
- package/recipes/image-analysis-supabase/packages/backend/src/services/image-analyses.ts +0 -132
- package/recipes/image-generator/apps/native/src/api-client/image-generator.ts +0 -34
- package/recipes/payments/apps/native/src/api-client/payments.ts +0 -44
- package/recipes/payments-supabase/packages/backend/src/services/payments.ts +0 -201
- package/recipes/posthog.json +0 -47
- package/recipes/revenuecat.json +0 -43
- package/recipes/sentry.json +0 -47
- package/recipes/wake-word/apps/native/assets/vosk-model/README.md +0 -103
- package/recipes/wake-word/apps/native/scripts/download-vosk-model.mjs +0 -127
- /package/recipes/{audio-recorder/apps/native/src/app/(root)/(protected) → audio-recorder-supabase/apps/native/src/app}/audio-recorder/index.tsx +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/AppIntent.swift +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-20x20@1x.png +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-20x20@2x.png +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-20x20@3x.png +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-29x29@1x.png +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-29x29@2x.png +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-29x29@3x.png +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-40x40@1x.png +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-40x40@2x.png +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-40x40@3x.png +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-60x60@2x.png +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-60x60@3x.png +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-76x76@1x.png +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-76x76@2x.png +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-83.5x83.5@2x.png +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/CalorieTrackerWidget.swift +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/HabitTrackerWidget.swift +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Info.plist +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/WidgetLiveActivity.swift +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/expo-target.config.js +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/generated.entitlements +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/index.swift +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/widgets.swift +0 -0
|
@@ -1,578 +0,0 @@
|
|
|
1
|
-
# 🎯 Simplified Implementation Plan
|
|
2
|
-
|
|
3
|
-
## The Two Questions
|
|
4
|
-
|
|
5
|
-
### Question 1: Auto-install vs Manual Install?
|
|
6
|
-
|
|
7
|
-
**Auto-install is the HARD part. Finding packages is EASY.**
|
|
8
|
-
|
|
9
|
-
#### Easy Part: Show Required Packages ✅
|
|
10
|
-
```typescript
|
|
11
|
-
// recipe.json (created by YOU when making the feature)
|
|
12
|
-
{
|
|
13
|
-
"name": "charts",
|
|
14
|
-
"dependencies": {
|
|
15
|
-
"npm": {
|
|
16
|
-
"react-native-chart-kit": "^6.12.0",
|
|
17
|
-
"react-native-svg": "^13.9.0"
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
// CLI just reads this and shows it:
|
|
23
|
-
log.info('📦 This feature requires:');
|
|
24
|
-
log.plain(' • react-native-chart-kit@^6.12.0');
|
|
25
|
-
log.plain(' • react-native-svg@^13.9.0');
|
|
26
|
-
log.plain('');
|
|
27
|
-
log.info('Install with:');
|
|
28
|
-
log.plain(' pnpm add react-native-chart-kit@^6.12.0 react-native-svg@^13.9.0');
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
**Difficulty: TRIVIAL** - Just read JSON and display it
|
|
32
|
-
|
|
33
|
-
#### Hard Part: Auto-install 🔴
|
|
34
|
-
```typescript
|
|
35
|
-
// CLI tries to install automatically:
|
|
36
|
-
await executeBash('pnpm add react-native-chart-kit@^6.12.0');
|
|
37
|
-
|
|
38
|
-
// Problems:
|
|
39
|
-
// 1. Which package manager? (pnpm/yarn/npm/bun)
|
|
40
|
-
// 2. Monorepo workspace? (need --filter flag)
|
|
41
|
-
// 3. Which directory to run in? (root vs workspace)
|
|
42
|
-
// 4. What if it fails? (network, permissions, conflicts)
|
|
43
|
-
// 5. Version conflicts? (breaks existing code)
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
**Difficulty: HARD** - Many edge cases
|
|
47
|
-
|
|
48
|
-
---
|
|
49
|
-
|
|
50
|
-
## Recommendation: Start Simple
|
|
51
|
-
|
|
52
|
-
### Phase 1: Manual Install (Ship This First) ✅
|
|
53
|
-
|
|
54
|
-
```bash
|
|
55
|
-
$ vf add charts
|
|
56
|
-
|
|
57
|
-
✓ charts installed successfully!
|
|
58
|
-
ℹ Files added: 17
|
|
59
|
-
|
|
60
|
-
📦 This feature requires the following packages:
|
|
61
|
-
• react-native-chart-kit@^6.12.0
|
|
62
|
-
• react-native-svg@^13.9.0
|
|
63
|
-
|
|
64
|
-
📋 Install them with:
|
|
65
|
-
pnpm add react-native-chart-kit@^6.12.0 react-native-svg@^13.9.0
|
|
66
|
-
|
|
67
|
-
⚠️ Don't forget to install these packages before running your app!
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
**Advantages:**
|
|
71
|
-
- ✅ Simple to implement (1 day)
|
|
72
|
-
- ✅ No edge cases
|
|
73
|
-
- ✅ Works for everyone
|
|
74
|
-
- ✅ User has control
|
|
75
|
-
- ✅ No risk of breaking things
|
|
76
|
-
|
|
77
|
-
**Disadvantages:**
|
|
78
|
-
- ❌ User has to run extra command
|
|
79
|
-
- ❌ Less convenient
|
|
80
|
-
|
|
81
|
-
### Phase 2: Auto-install (Add Later) 🔄
|
|
82
|
-
|
|
83
|
-
```bash
|
|
84
|
-
$ vf add charts
|
|
85
|
-
|
|
86
|
-
✓ charts installed successfully!
|
|
87
|
-
ℹ Files added: 17
|
|
88
|
-
|
|
89
|
-
📦 This feature requires the following packages:
|
|
90
|
-
• react-native-chart-kit@^6.12.0
|
|
91
|
-
• react-native-svg@^13.9.0
|
|
92
|
-
|
|
93
|
-
Install packages now? (Y/n): y
|
|
94
|
-
|
|
95
|
-
📦 Installing packages...
|
|
96
|
-
✓ Packages installed successfully!
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
**Add this AFTER you've tested with real users and know the edge cases.**
|
|
100
|
-
|
|
101
|
-
---
|
|
102
|
-
|
|
103
|
-
## Question 2: What Else Can Be Added/Removed with CLI?
|
|
104
|
-
|
|
105
|
-
### Things That Work Well with CLI ✅
|
|
106
|
-
|
|
107
|
-
#### 1. UI Components (Perfect for CLI)
|
|
108
|
-
```bash
|
|
109
|
-
$ vf add charts
|
|
110
|
-
$ vf add forms
|
|
111
|
-
$ vf add cards
|
|
112
|
-
$ vf add modals
|
|
113
|
-
$ vf add bottom-sheets
|
|
114
|
-
$ vf add image-gallery
|
|
115
|
-
$ vf add calendar
|
|
116
|
-
$ vf add data-tables
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
**Why it works:**
|
|
120
|
-
- Self-contained code
|
|
121
|
-
- No external services
|
|
122
|
-
- No API keys needed
|
|
123
|
-
- Just copy files + install packages
|
|
124
|
-
|
|
125
|
-
#### 2. Utility Features (Good for CLI)
|
|
126
|
-
```bash
|
|
127
|
-
$ vf add qr-scanner
|
|
128
|
-
$ vf add image-picker
|
|
129
|
-
$ vf add pdf-viewer
|
|
130
|
-
$ vf add audio-player
|
|
131
|
-
$ vf add video-player
|
|
132
|
-
$ vf add maps
|
|
133
|
-
$ vf add camera
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
**Why it works:**
|
|
137
|
-
- Mostly self-contained
|
|
138
|
-
- Minimal configuration
|
|
139
|
-
- Standard packages
|
|
140
|
-
|
|
141
|
-
#### 3. Standalone Screens (Good for CLI)
|
|
142
|
-
```bash
|
|
143
|
-
$ vf add profile-screen
|
|
144
|
-
$ vf add settings-screen
|
|
145
|
-
$ vf add about-screen
|
|
146
|
-
$ vf add help-screen
|
|
147
|
-
$ vf add onboarding
|
|
148
|
-
$ vf add splash-screen
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
**Why it works:**
|
|
152
|
-
- Complete screens
|
|
153
|
-
- Drop-in ready
|
|
154
|
-
- Minimal customization needed
|
|
155
|
-
|
|
156
|
-
---
|
|
157
|
-
|
|
158
|
-
### Things That Need Manual Steps ⚠️
|
|
159
|
-
|
|
160
|
-
#### 4. Service Integrations (CLI + Manual)
|
|
161
|
-
|
|
162
|
-
**Sentry (Error Tracking)**
|
|
163
|
-
```bash
|
|
164
|
-
$ vf add sentry
|
|
165
|
-
|
|
166
|
-
✓ sentry installed successfully!
|
|
167
|
-
ℹ Files added: 5
|
|
168
|
-
|
|
169
|
-
📦 Packages installed:
|
|
170
|
-
✓ @sentry/react-native@^5.15.0
|
|
171
|
-
|
|
172
|
-
⚠️ MANUAL STEPS REQUIRED:
|
|
173
|
-
|
|
174
|
-
┌─────────────────────────────────────────────────────────────┐
|
|
175
|
-
│ Step 1: Create Sentry Project │
|
|
176
|
-
│ │
|
|
177
|
-
│ 1. Go to https://sentry.io/signup/ │
|
|
178
|
-
│ 2. Create a new React Native project │
|
|
179
|
-
│ 3. Copy your DSN │
|
|
180
|
-
└─────────────────────────────────────────────────────────────┘
|
|
181
|
-
|
|
182
|
-
┌─────────────────────────────────────────────────────────────┐
|
|
183
|
-
│ Step 2: Add DSN to .env │
|
|
184
|
-
│ │
|
|
185
|
-
│ Add this line to your .env file: │
|
|
186
|
-
│ SENTRY_DSN=your-dsn-here │
|
|
187
|
-
└─────────────────────────────────────────────────────────────┘
|
|
188
|
-
|
|
189
|
-
💡 Run 'vf checklist sentry' to see these steps again
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
**PostHog (Analytics)**
|
|
193
|
-
```bash
|
|
194
|
-
$ vf add posthog
|
|
195
|
-
|
|
196
|
-
✓ posthog installed successfully!
|
|
197
|
-
|
|
198
|
-
⚠️ MANUAL STEPS:
|
|
199
|
-
1. Sign up at posthog.com
|
|
200
|
-
2. Get your API key
|
|
201
|
-
3. Add to .env: POSTHOG_API_KEY=your-key
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
**RevenueCat (In-App Purchases)**
|
|
205
|
-
```bash
|
|
206
|
-
$ vf add revenuecat
|
|
207
|
-
|
|
208
|
-
✓ revenuecat installed successfully!
|
|
209
|
-
|
|
210
|
-
⚠️ MANUAL STEPS:
|
|
211
|
-
1. Create RevenueCat account
|
|
212
|
-
2. Configure products
|
|
213
|
-
3. Add API keys to .env
|
|
214
|
-
4. Configure app.json
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
**Supabase (Backend)**
|
|
218
|
-
```bash
|
|
219
|
-
$ vf add supabase
|
|
220
|
-
|
|
221
|
-
✓ supabase installed successfully!
|
|
222
|
-
|
|
223
|
-
⚠️ MANUAL STEPS:
|
|
224
|
-
1. Create Supabase project
|
|
225
|
-
2. Get URL and anon key
|
|
226
|
-
3. Add to .env:
|
|
227
|
-
SUPABASE_URL=your-url
|
|
228
|
-
SUPABASE_ANON_KEY=your-key
|
|
229
|
-
```
|
|
230
|
-
|
|
231
|
-
**Firebase**
|
|
232
|
-
```bash
|
|
233
|
-
$ vf add firebase
|
|
234
|
-
|
|
235
|
-
✓ firebase installed successfully!
|
|
236
|
-
|
|
237
|
-
⚠️ MANUAL STEPS:
|
|
238
|
-
1. Create Firebase project
|
|
239
|
-
2. Download google-services.json
|
|
240
|
-
3. Place in android/app/
|
|
241
|
-
4. Download GoogleService-Info.plist
|
|
242
|
-
5. Place in ios/
|
|
243
|
-
```
|
|
244
|
-
|
|
245
|
-
---
|
|
246
|
-
|
|
247
|
-
### Things That Should NOT Be CLI-Managed ❌
|
|
248
|
-
|
|
249
|
-
#### 5. Complex Systems (Too Complex)
|
|
250
|
-
|
|
251
|
-
**Authentication System**
|
|
252
|
-
- Too many variations (email, social, phone, magic link)
|
|
253
|
-
- Requires backend setup
|
|
254
|
-
- User-specific flows
|
|
255
|
-
- Security considerations
|
|
256
|
-
|
|
257
|
-
**Better approach:** Provide documentation/guide
|
|
258
|
-
|
|
259
|
-
**Payment Processing**
|
|
260
|
-
- Requires merchant accounts
|
|
261
|
-
- Legal compliance varies by country
|
|
262
|
-
- Too many providers (Stripe, PayPal, etc.)
|
|
263
|
-
- Complex integration
|
|
264
|
-
|
|
265
|
-
**Better approach:** Provide integration guides
|
|
266
|
-
|
|
267
|
-
**Custom Business Logic**
|
|
268
|
-
- Every app is different
|
|
269
|
-
- Can't be templated
|
|
270
|
-
- Requires understanding of business rules
|
|
271
|
-
|
|
272
|
-
**Better approach:** Provide examples/patterns
|
|
273
|
-
|
|
274
|
-
---
|
|
275
|
-
|
|
276
|
-
## Complete Feature List for CLI
|
|
277
|
-
|
|
278
|
-
### Tier 1: Fully Automated (No Manual Steps) ✅
|
|
279
|
-
|
|
280
|
-
```bash
|
|
281
|
-
# UI Components
|
|
282
|
-
vf add charts
|
|
283
|
-
vf add forms
|
|
284
|
-
vf add cards
|
|
285
|
-
vf add modals
|
|
286
|
-
vf add bottom-sheets
|
|
287
|
-
vf add tabs
|
|
288
|
-
vf add accordions
|
|
289
|
-
vf add carousels
|
|
290
|
-
vf add progress-bars
|
|
291
|
-
vf add skeletons
|
|
292
|
-
vf add badges
|
|
293
|
-
vf add avatars
|
|
294
|
-
|
|
295
|
-
# Utilities
|
|
296
|
-
vf add qr-scanner
|
|
297
|
-
vf add barcode-scanner
|
|
298
|
-
vf add image-picker
|
|
299
|
-
vf add camera
|
|
300
|
-
vf add pdf-viewer
|
|
301
|
-
vf add audio-player
|
|
302
|
-
vf add video-player
|
|
303
|
-
vf add file-picker
|
|
304
|
-
vf add share
|
|
305
|
-
vf add clipboard
|
|
306
|
-
|
|
307
|
-
# Screens
|
|
308
|
-
vf add profile-screen
|
|
309
|
-
vf add settings-screen
|
|
310
|
-
vf add about-screen
|
|
311
|
-
vf add help-screen
|
|
312
|
-
vf add faq-screen
|
|
313
|
-
vf add contact-screen
|
|
314
|
-
vf add feedback-screen
|
|
315
|
-
|
|
316
|
-
# Navigation
|
|
317
|
-
vf add drawer-navigation
|
|
318
|
-
vf add tab-navigation
|
|
319
|
-
vf add stack-navigation
|
|
320
|
-
|
|
321
|
-
# Animations
|
|
322
|
-
vf add loading-animations
|
|
323
|
-
vf add page-transitions
|
|
324
|
-
vf add micro-interactions
|
|
325
|
-
```
|
|
326
|
-
|
|
327
|
-
### Tier 2: Partial Automation (Manual Steps Required) ⚠️
|
|
328
|
-
|
|
329
|
-
```bash
|
|
330
|
-
# Analytics & Monitoring
|
|
331
|
-
vf add sentry # Need: DSN
|
|
332
|
-
vf add posthog # Need: API key
|
|
333
|
-
vf add mixpanel # Need: Token
|
|
334
|
-
vf add amplitude # Need: API key
|
|
335
|
-
vf add firebase-analytics # Need: config files
|
|
336
|
-
|
|
337
|
-
# Backend Services
|
|
338
|
-
vf add supabase # Need: URL + anon key
|
|
339
|
-
vf add firebase # Need: config files
|
|
340
|
-
vf add appwrite # Need: endpoint + project ID
|
|
341
|
-
|
|
342
|
-
# Payments
|
|
343
|
-
vf add revenuecat # Need: API keys + product config
|
|
344
|
-
vf add stripe # Need: publishable key
|
|
345
|
-
|
|
346
|
-
# Push Notifications
|
|
347
|
-
vf add expo-notifications # Need: credentials
|
|
348
|
-
vf add firebase-messaging # Need: config
|
|
349
|
-
|
|
350
|
-
# Maps
|
|
351
|
-
vf add google-maps # Need: API key
|
|
352
|
-
vf add mapbox # Need: access token
|
|
353
|
-
|
|
354
|
-
# Social
|
|
355
|
-
vf add facebook-login # Need: app ID
|
|
356
|
-
vf add google-login # Need: client ID
|
|
357
|
-
vf add apple-login # Need: service ID
|
|
358
|
-
```
|
|
359
|
-
|
|
360
|
-
### Tier 3: Documentation Only (Too Complex) ❌
|
|
361
|
-
|
|
362
|
-
```
|
|
363
|
-
# These get guides/docs, not CLI commands
|
|
364
|
-
- Authentication system
|
|
365
|
-
- Payment processing
|
|
366
|
-
- Custom backend
|
|
367
|
-
- State management setup
|
|
368
|
-
- Testing setup
|
|
369
|
-
- CI/CD pipeline
|
|
370
|
-
```
|
|
371
|
-
|
|
372
|
-
---
|
|
373
|
-
|
|
374
|
-
## Implementation Priority
|
|
375
|
-
|
|
376
|
-
### Week 1: Core Improvements (Must Have) 🔴
|
|
377
|
-
|
|
378
|
-
1. **Interactive confirmation for overwrites**
|
|
379
|
-
```bash
|
|
380
|
-
$ vf add charts --force
|
|
381
|
-
⚠️ 3 files will be overwritten. Continue? (y/N):
|
|
382
|
-
```
|
|
383
|
-
|
|
384
|
-
2. **Show required packages (manual install)**
|
|
385
|
-
```bash
|
|
386
|
-
📦 This feature requires:
|
|
387
|
-
• package-name@version
|
|
388
|
-
|
|
389
|
-
Install with:
|
|
390
|
-
pnpm add package-name@version
|
|
391
|
-
```
|
|
392
|
-
|
|
393
|
-
3. **Modification detection**
|
|
394
|
-
```bash
|
|
395
|
-
$ vf remove charts
|
|
396
|
-
⚠️ 2 files were modified by you. Continue? (y/N):
|
|
397
|
-
```
|
|
398
|
-
|
|
399
|
-
### Week 2: Enhanced UX (Should Have) 🟡
|
|
400
|
-
|
|
401
|
-
4. **Manual steps display**
|
|
402
|
-
```bash
|
|
403
|
-
⚠️ MANUAL STEPS REQUIRED:
|
|
404
|
-
Step 1: Get API key from service.com
|
|
405
|
-
Step 2: Add to .env file
|
|
406
|
-
```
|
|
407
|
-
|
|
408
|
-
5. **Status command**
|
|
409
|
-
```bash
|
|
410
|
-
$ vf status
|
|
411
|
-
Installed features:
|
|
412
|
-
✓ charts (v1.0.0)
|
|
413
|
-
⚠️ sentry (v1.2.0) - Manual steps pending
|
|
414
|
-
```
|
|
415
|
-
|
|
416
|
-
6. **Checklist command**
|
|
417
|
-
```bash
|
|
418
|
-
$ vf checklist sentry
|
|
419
|
-
Manual setup steps for sentry:
|
|
420
|
-
[ ] Step 1: Create account
|
|
421
|
-
[ ] Step 2: Add DSN to .env
|
|
422
|
-
```
|
|
423
|
-
|
|
424
|
-
### Week 3: Advanced Features (Nice to Have) 🟢
|
|
425
|
-
|
|
426
|
-
7. **Auto-install packages** (with good error handling)
|
|
427
|
-
8. **Type checking** (with timeout)
|
|
428
|
-
9. **Update command**
|
|
429
|
-
```bash
|
|
430
|
-
$ vf update charts
|
|
431
|
-
```
|
|
432
|
-
|
|
433
|
-
---
|
|
434
|
-
|
|
435
|
-
## Recipe.json Format (Final)
|
|
436
|
-
|
|
437
|
-
```json
|
|
438
|
-
{
|
|
439
|
-
"name": "charts",
|
|
440
|
-
"version": "1.0.0",
|
|
441
|
-
"description": "Beautiful data visualization",
|
|
442
|
-
"target": "native",
|
|
443
|
-
|
|
444
|
-
"copy": [
|
|
445
|
-
{
|
|
446
|
-
"from": "apps/native/src/app/charts",
|
|
447
|
-
"to": "apps/native/src/app/(root)/(protected)/charts"
|
|
448
|
-
},
|
|
449
|
-
{
|
|
450
|
-
"from": "apps/native/src/features/charts",
|
|
451
|
-
"to": "apps/native/src/features/charts"
|
|
452
|
-
}
|
|
453
|
-
],
|
|
454
|
-
|
|
455
|
-
"nav": {
|
|
456
|
-
"href": "/(root)/(protected)/charts",
|
|
457
|
-
"label": "Charts",
|
|
458
|
-
"icon": "📊",
|
|
459
|
-
"color": "#6366F1"
|
|
460
|
-
},
|
|
461
|
-
|
|
462
|
-
"dependencies": {
|
|
463
|
-
"npm": {
|
|
464
|
-
"react-native-chart-kit": "^6.12.0",
|
|
465
|
-
"react-native-svg": "^13.9.0"
|
|
466
|
-
}
|
|
467
|
-
},
|
|
468
|
-
|
|
469
|
-
"postInstall": {
|
|
470
|
-
"message": "Charts installed! Check the /charts route to see it in action."
|
|
471
|
-
}
|
|
472
|
-
}
|
|
473
|
-
```
|
|
474
|
-
|
|
475
|
-
**For services with manual steps:**
|
|
476
|
-
|
|
477
|
-
```json
|
|
478
|
-
{
|
|
479
|
-
"name": "sentry",
|
|
480
|
-
"version": "1.0.0",
|
|
481
|
-
"description": "Error tracking with Sentry",
|
|
482
|
-
"target": "native",
|
|
483
|
-
|
|
484
|
-
"copy": [...],
|
|
485
|
-
|
|
486
|
-
"dependencies": {
|
|
487
|
-
"npm": {
|
|
488
|
-
"@sentry/react-native": "^5.15.0"
|
|
489
|
-
}
|
|
490
|
-
},
|
|
491
|
-
|
|
492
|
-
"env": {
|
|
493
|
-
"required": [
|
|
494
|
-
{
|
|
495
|
-
"key": "SENTRY_DSN",
|
|
496
|
-
"description": "Your Sentry DSN from sentry.io",
|
|
497
|
-
"example": "https://xxx@xxx.ingest.sentry.io/xxx",
|
|
498
|
-
"link": "https://sentry.io/settings/projects/"
|
|
499
|
-
}
|
|
500
|
-
]
|
|
501
|
-
},
|
|
502
|
-
|
|
503
|
-
"manualSteps": [
|
|
504
|
-
{
|
|
505
|
-
"step": 1,
|
|
506
|
-
"title": "Create Sentry Project",
|
|
507
|
-
"description": "Go to sentry.io and create a new React Native project",
|
|
508
|
-
"link": "https://sentry.io/signup/"
|
|
509
|
-
},
|
|
510
|
-
{
|
|
511
|
-
"step": 2,
|
|
512
|
-
"title": "Add DSN to .env",
|
|
513
|
-
"description": "Copy your DSN and add it to .env file",
|
|
514
|
-
"file": ".env",
|
|
515
|
-
"content": "SENTRY_DSN=your-dsn-here"
|
|
516
|
-
}
|
|
517
|
-
],
|
|
518
|
-
|
|
519
|
-
"postInstall": {
|
|
520
|
-
"message": "Sentry installed! Complete the manual steps above to finish setup.",
|
|
521
|
-
"commands": [
|
|
522
|
-
"npm run test:sentry"
|
|
523
|
-
]
|
|
524
|
-
}
|
|
525
|
-
}
|
|
526
|
-
```
|
|
527
|
-
|
|
528
|
-
---
|
|
529
|
-
|
|
530
|
-
## Summary
|
|
531
|
-
|
|
532
|
-
### Answer to Question 1: Auto-install vs Manual?
|
|
533
|
-
|
|
534
|
-
**Start with MANUAL install:**
|
|
535
|
-
- ✅ Easy to implement (1 day)
|
|
536
|
-
- ✅ No edge cases
|
|
537
|
-
- ✅ Works for everyone
|
|
538
|
-
- Just show the command, user runs it
|
|
539
|
-
|
|
540
|
-
**Add AUTO-install later:**
|
|
541
|
-
- After testing with real users
|
|
542
|
-
- After understanding monorepo patterns
|
|
543
|
-
- With good error handling
|
|
544
|
-
|
|
545
|
-
### Answer to Question 2: What else can be added/removed?
|
|
546
|
-
|
|
547
|
-
**Tier 1 (Fully automated):**
|
|
548
|
-
- UI components (charts, forms, modals, etc.)
|
|
549
|
-
- Utilities (QR scanner, image picker, etc.)
|
|
550
|
-
- Screens (profile, settings, etc.)
|
|
551
|
-
|
|
552
|
-
**Tier 2 (Partial automation):**
|
|
553
|
-
- Services (Sentry, PostHog, Supabase, etc.)
|
|
554
|
-
- CLI installs code + shows manual steps
|
|
555
|
-
- User adds API keys/config
|
|
556
|
-
|
|
557
|
-
**Tier 3 (Documentation only):**
|
|
558
|
-
- Auth systems (too complex)
|
|
559
|
-
- Payment processing (too complex)
|
|
560
|
-
- Custom business logic (too specific)
|
|
561
|
-
|
|
562
|
-
---
|
|
563
|
-
|
|
564
|
-
## Final Recommendation
|
|
565
|
-
|
|
566
|
-
**Ship v1 with:**
|
|
567
|
-
1. Interactive confirmation ✅
|
|
568
|
-
2. Manual package install (show command) ✅
|
|
569
|
-
3. Modification detection ✅
|
|
570
|
-
4. Manual steps display ✅
|
|
571
|
-
5. Status/checklist commands ✅
|
|
572
|
-
|
|
573
|
-
**Add v2 later:**
|
|
574
|
-
6. Auto-install packages
|
|
575
|
-
7. Type checking
|
|
576
|
-
8. Update command
|
|
577
|
-
|
|
578
|
-
This gets you to production in **1-2 weeks** instead of 3-4 weeks, with less risk.
|