vibefast-cli 1.1.5 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (301) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +63 -169
  3. package/dist/__tests__/recipes.test.js +89 -85
  4. package/dist/__tests__/recipes.test.js.map +1 -1
  5. package/dist/commands/add.d.ts +1 -1
  6. package/dist/commands/add.d.ts.map +1 -1
  7. package/dist/commands/add.js +576 -588
  8. package/dist/commands/add.js.map +1 -1
  9. package/dist/commands/checklist.d.ts +1 -1
  10. package/dist/commands/checklist.d.ts.map +1 -1
  11. package/dist/commands/checklist.js +40 -39
  12. package/dist/commands/checklist.js.map +1 -1
  13. package/dist/commands/doctor.d.ts +1 -1
  14. package/dist/commands/doctor.js +22 -22
  15. package/dist/commands/doctor.js.map +1 -1
  16. package/dist/commands/env.d.ts +1 -1
  17. package/dist/commands/env.d.ts.map +1 -1
  18. package/dist/commands/env.js +58 -53
  19. package/dist/commands/env.js.map +1 -1
  20. package/dist/commands/health.d.ts +1 -1
  21. package/dist/commands/health.d.ts.map +1 -1
  22. package/dist/commands/health.js +101 -93
  23. package/dist/commands/health.js.map +1 -1
  24. package/dist/commands/init.d.ts +1 -1
  25. package/dist/commands/init.d.ts.map +1 -1
  26. package/dist/commands/init.js +416 -296
  27. package/dist/commands/init.js.map +1 -1
  28. package/dist/commands/remove.d.ts +1 -1
  29. package/dist/commands/remove.d.ts.map +1 -1
  30. package/dist/commands/remove.js +77 -64
  31. package/dist/commands/remove.js.map +1 -1
  32. package/dist/commands/status.d.ts +1 -1
  33. package/dist/commands/status.d.ts.map +1 -1
  34. package/dist/commands/status.js +15 -14
  35. package/dist/commands/status.js.map +1 -1
  36. package/dist/core/__tests__/detect.test.js +68 -34
  37. package/dist/core/__tests__/detect.test.js.map +1 -1
  38. package/dist/core/ast.d.ts +14 -0
  39. package/dist/core/ast.d.ts.map +1 -0
  40. package/dist/core/ast.js +239 -0
  41. package/dist/core/ast.js.map +1 -0
  42. package/dist/core/codemod.d.ts.map +1 -1
  43. package/dist/core/codemod.js +62 -44
  44. package/dist/core/codemod.js.map +1 -1
  45. package/dist/core/config.d.ts +10 -0
  46. package/dist/core/config.d.ts.map +1 -0
  47. package/dist/core/config.js +51 -0
  48. package/dist/core/config.js.map +1 -0
  49. package/dist/core/detect.d.ts +8 -2
  50. package/dist/core/detect.d.ts.map +1 -1
  51. package/dist/core/detect.js +52 -21
  52. package/dist/core/detect.js.map +1 -1
  53. package/dist/core/errors.d.ts.map +1 -1
  54. package/dist/core/errors.js +9 -8
  55. package/dist/core/errors.js.map +1 -1
  56. package/dist/core/exec.d.ts +16 -0
  57. package/dist/core/exec.d.ts.map +1 -0
  58. package/dist/core/exec.js +48 -0
  59. package/dist/core/exec.js.map +1 -0
  60. package/dist/core/manualSteps.d.ts +7 -0
  61. package/dist/core/manualSteps.d.ts.map +1 -0
  62. package/dist/core/manualSteps.js +59 -0
  63. package/dist/core/manualSteps.js.map +1 -0
  64. package/dist/core/paths.d.ts +3 -1
  65. package/dist/core/paths.d.ts.map +1 -1
  66. package/dist/core/paths.js +14 -10
  67. package/dist/core/paths.js.map +1 -1
  68. package/dist/core/spinner.d.ts +1 -1
  69. package/dist/core/spinner.d.ts.map +1 -1
  70. package/dist/core/spinner.js +38 -8
  71. package/dist/core/spinner.js.map +1 -1
  72. package/dist/core/vosk.d.ts.map +1 -1
  73. package/dist/core/vosk.js +50 -39
  74. package/dist/core/vosk.js.map +1 -1
  75. package/docs/manual-testing.md +91 -0
  76. package/package.json +6 -3
  77. package/recipes/audio-recorder/apps/native/src/app/audio-recorder/index.tsx +5 -0
  78. package/recipes/audio-recorder/recipe.json +3 -3
  79. package/recipes/audio-recorder-supabase/apps/native/src/features/audio-recorder/components/audio-player.tsx +301 -0
  80. package/recipes/audio-recorder-supabase/apps/native/src/features/audio-recorder/components/audio-recorder.tsx +373 -0
  81. package/recipes/audio-recorder-supabase/apps/native/src/features/audio-recorder/components/audio-waveform.tsx +270 -0
  82. package/recipes/audio-recorder-supabase/apps/native/src/features/audio-recorder/components/index.ts +4 -0
  83. package/recipes/audio-recorder-supabase/apps/native/src/features/audio-recorder/components/recording-list.tsx +89 -0
  84. package/recipes/audio-recorder-supabase/apps/native/src/features/audio-recorder/demo/audio-player-demo.tsx +66 -0
  85. package/recipes/audio-recorder-supabase/apps/native/src/features/audio-recorder/demo/audio-recorder-cloud.tsx +68 -0
  86. package/recipes/audio-recorder-supabase/apps/native/src/features/audio-recorder/demo/audio-recorder-interview.tsx +102 -0
  87. package/recipes/audio-recorder-supabase/apps/native/src/features/audio-recorder/demo/basic.tsx +27 -0
  88. package/recipes/audio-recorder-supabase/apps/native/src/features/audio-recorder/demo/index.ts +5 -0
  89. package/recipes/audio-recorder-supabase/apps/native/src/features/audio-recorder/demo/with-recording-list-demo.tsx +82 -0
  90. package/recipes/audio-recorder-supabase/packages/backend/src/services/recordings.ts +369 -0
  91. package/recipes/audio-recorder-supabase/packages/backend/supabase/migrations/recordings.sql +70 -0
  92. package/recipes/audio-recorder-supabase/recipe.json +52 -0
  93. package/recipes/audio-recorder-supabase@latest.zip +0 -0
  94. package/recipes/audio-recorder@latest.zip +0 -0
  95. package/recipes/charts/apps/native/src/features/charts/components/bar-chart.tsx +3 -3
  96. package/recipes/charts/apps/native/src/features/charts/components/candlestick-chart.tsx +2 -2
  97. package/recipes/charts/apps/native/src/features/charts/components/chart-card.tsx +5 -5
  98. package/recipes/charts/apps/native/src/features/charts/components/column-chart.tsx +3 -3
  99. package/recipes/charts/apps/native/src/features/charts/components/doughnut-chart.tsx +20 -4
  100. package/recipes/charts/apps/native/src/features/charts/components/line-chart.tsx +7 -6
  101. package/recipes/charts/apps/native/src/features/charts/components/radar-chart.tsx +6 -4
  102. package/recipes/charts/apps/native/src/features/charts/components/radial-bar-chart.tsx +1 -1
  103. package/recipes/charts/apps/native/src/features/charts/components/stacked-bar-chart.tsx +5 -4
  104. package/recipes/charts/recipe.json +4 -13
  105. package/recipes/charts@latest.zip +0 -0
  106. package/recipes/chatbot/apps/native/src/app/chatbot/index.tsx +1 -0
  107. package/recipes/chatbot/apps/native/src/features/chatbot/components/chat-markdown.tsx +86 -86
  108. package/recipes/chatbot/apps/native/src/features/chatbot/components/markdown/code-block.tsx +86 -53
  109. package/recipes/chatbot/recipe.json +26 -92
  110. package/recipes/chatbot-supabase/apps/native/src/api-client/supabase/chatbot.ts +515 -0
  111. package/recipes/chatbot-supabase/apps/native/src/features/chatbot/app/index.tsx +257 -0
  112. package/recipes/chatbot-supabase/apps/native/src/features/chatbot/components/chat-header-buttons.tsx +59 -0
  113. package/recipes/chatbot-supabase/apps/native/src/features/chatbot/components/chat-input-bar.tsx +485 -0
  114. package/recipes/chatbot-supabase/apps/native/src/features/chatbot/components/chat-markdown.tsx +575 -0
  115. package/recipes/chatbot-supabase/apps/native/src/features/chatbot/components/chat-message-bubble.tsx +223 -0
  116. package/recipes/chatbot-supabase/apps/native/src/features/chatbot/components/chat-settings-modal.tsx +161 -0
  117. package/recipes/chatbot-supabase/apps/native/src/features/chatbot/components/image-preview-list.tsx +116 -0
  118. package/recipes/chatbot-supabase/apps/native/src/features/chatbot/components/markdown/code-block.tsx +165 -0
  119. package/recipes/chatbot-supabase/apps/native/src/features/chatbot/components/markdown/index.ts +10 -0
  120. package/recipes/chatbot-supabase/apps/native/src/features/chatbot/components/markdown/table-renderer.tsx +129 -0
  121. package/recipes/chatbot-supabase/apps/native/src/features/chatbot/components/message-error-boundary.tsx +78 -0
  122. package/recipes/chatbot-supabase/apps/native/src/features/chatbot/components/message-list.tsx +170 -0
  123. package/recipes/chatbot-supabase/apps/native/src/features/chatbot/components/model-selector.tsx +283 -0
  124. package/recipes/chatbot-supabase/apps/native/src/features/chatbot/components/report-content-modal.tsx +188 -0
  125. package/recipes/chatbot-supabase/apps/native/src/features/chatbot/components/suggested-messages.tsx +67 -0
  126. package/recipes/chatbot-supabase/apps/native/src/features/chatbot/constants/models.ts +20 -0
  127. package/recipes/chatbot-supabase/apps/native/src/features/chatbot/constants/report-reasons.ts +9 -0
  128. package/recipes/chatbot-supabase/apps/native/src/features/chatbot/hooks/use-attachment-cache.ts +142 -0
  129. package/recipes/chatbot-supabase/apps/native/src/features/chatbot/hooks/use-chat-config.ts +458 -0
  130. package/recipes/chatbot-supabase/apps/native/src/features/chatbot/hooks/use-chat-handlers.ts +429 -0
  131. package/recipes/chatbot-supabase/apps/native/src/features/chatbot/hooks/use-chatbot-settings.ts +89 -0
  132. package/recipes/chatbot-supabase/apps/native/src/features/chatbot/hooks/use-conversation.ts +90 -0
  133. package/recipes/chatbot-supabase/apps/native/src/features/chatbot/hooks/use-image-picker.ts +122 -0
  134. package/recipes/chatbot-supabase/apps/native/src/features/chatbot/hooks/use-keyboard-coordinator.ts +161 -0
  135. package/recipes/chatbot-supabase/apps/native/src/features/chatbot/hooks/use-smart-scroll-manager.ts +213 -0
  136. package/recipes/chatbot-supabase/apps/native/src/features/chatbot/models/index.ts +86 -0
  137. package/recipes/chatbot-supabase/apps/native/src/features/chatbot/models/models.ts +162 -0
  138. package/recipes/chatbot-supabase/apps/native/src/features/chatbot/models/providers.ts +62 -0
  139. package/recipes/chatbot-supabase/apps/native/src/features/chatbot/models/types.ts +40 -0
  140. package/recipes/chatbot-supabase/apps/native/src/features/chatbot/services/file-uploader.ts +287 -0
  141. package/recipes/chatbot-supabase/apps/native/src/features/chatbot/services/message-handler-service.ts +189 -0
  142. package/recipes/chatbot-supabase/apps/native/src/features/chatbot/types/index.ts +70 -0
  143. package/recipes/chatbot-supabase/apps/native/src/features/chatbot/utils/chat-telemetry.ts +91 -0
  144. package/recipes/chatbot-supabase/packages/backend/src/services/conversations.ts +243 -0
  145. package/recipes/chatbot-supabase/packages/backend/src/services/messages.ts +327 -0
  146. package/recipes/chatbot-supabase/packages/backend/supabase/functions/chat-stream/index.ts +347 -0
  147. package/recipes/chatbot-supabase/packages/backend/supabase/migrations/chatbot.sql +104 -0
  148. package/recipes/chatbot-supabase/recipe.json +106 -0
  149. package/recipes/chatbot-supabase@latest.zip +0 -0
  150. package/recipes/chatbot.zip +0 -0
  151. package/recipes/chatbot@latest.zip +0 -0
  152. package/recipes/image-analysis/packages/backend/convex/imageAnalysis/index.ts +2 -2
  153. package/recipes/image-analysis/packages/backend/convex/imageAnalysis.ts +0 -1
  154. package/recipes/image-analysis/recipe.json +15 -55
  155. package/recipes/image-analysis-supabase/apps/native/src/features/image-analyzer/app/analysis-options-screen.tsx +304 -0
  156. package/recipes/image-analysis-supabase/apps/native/src/features/image-analyzer/app/camera.tsx +221 -0
  157. package/recipes/image-analysis-supabase/apps/native/src/features/image-analyzer/app/image-capture-screen.tsx +333 -0
  158. package/recipes/image-analysis-supabase/apps/native/src/features/image-analyzer/app/loading-screen.tsx +214 -0
  159. package/recipes/image-analysis-supabase/apps/native/src/features/image-analyzer/app/loading.tsx +191 -0
  160. package/recipes/image-analysis-supabase/apps/native/src/features/image-analyzer/app/results.tsx +137 -0
  161. package/recipes/image-analysis-supabase/apps/native/src/features/image-analyzer/app/trait-details.tsx +172 -0
  162. package/recipes/image-analysis-supabase/apps/native/src/features/image-analyzer/app/use-analysis-data.ts +160 -0
  163. package/recipes/image-analysis-supabase/apps/native/src/features/image-analyzer/app/use-results-screen.ts +151 -0
  164. package/recipes/image-analysis-supabase/apps/native/src/features/image-analyzer/components/results/achievement-badge.tsx +77 -0
  165. package/recipes/image-analysis-supabase/apps/native/src/features/image-analyzer/components/results/achievement-card.tsx +75 -0
  166. package/recipes/image-analysis-supabase/apps/native/src/features/image-analyzer/components/results/achievement-unlocked-modal.tsx +162 -0
  167. package/recipes/image-analysis-supabase/apps/native/src/features/image-analyzer/components/results/achievements-section.tsx +44 -0
  168. package/recipes/image-analysis-supabase/apps/native/src/features/image-analyzer/components/results/advice-list.tsx +42 -0
  169. package/recipes/image-analysis-supabase/apps/native/src/features/image-analyzer/components/results/circular-progress.tsx +233 -0
  170. package/recipes/image-analysis-supabase/apps/native/src/features/image-analyzer/components/results/content-card.tsx +38 -0
  171. package/recipes/image-analysis-supabase/apps/native/src/features/image-analyzer/components/results/error-state.tsx +42 -0
  172. package/recipes/image-analysis-supabase/apps/native/src/features/image-analyzer/components/results/index.ts +9 -0
  173. package/recipes/image-analysis-supabase/apps/native/src/features/image-analyzer/components/results/loading-state.tsx +26 -0
  174. package/recipes/image-analysis-supabase/apps/native/src/features/image-analyzer/components/results/profile-image.tsx +60 -0
  175. package/recipes/image-analysis-supabase/apps/native/src/features/image-analyzer/components/results/results-header.tsx +62 -0
  176. package/recipes/image-analysis-supabase/apps/native/src/features/image-analyzer/components/results/score-display.tsx +54 -0
  177. package/recipes/image-analysis-supabase/apps/native/src/features/image-analyzer/components/results/share-options-modal.tsx +110 -0
  178. package/recipes/image-analysis-supabase/apps/native/src/features/image-analyzer/components/results/traits-grid.tsx +74 -0
  179. package/recipes/image-analysis-supabase/apps/native/src/features/image-analyzer/config/analysis-config.ts +80 -0
  180. package/recipes/image-analysis-supabase/apps/native/src/features/image-analyzer/config/master-analysis-config.ts +157 -0
  181. package/recipes/image-analysis-supabase/apps/native/src/features/image-analyzer/hooks/index.ts +1 -0
  182. package/recipes/image-analysis-supabase/apps/native/src/features/image-analyzer/hooks/use-analysis.ts +38 -0
  183. package/recipes/image-analysis-supabase/apps/native/src/features/image-analyzer/hooks/use-image-analysis.ts +208 -0
  184. package/recipes/image-analysis-supabase/apps/native/src/features/image-analyzer/services/analysis-service.ts +262 -0
  185. package/recipes/image-analysis-supabase/apps/native/src/features/image-analyzer/services/share-service.ts +176 -0
  186. package/recipes/image-analysis-supabase/apps/native/src/features/image-analyzer/services/trait-details-service.ts +289 -0
  187. package/recipes/image-analysis-supabase/packages/backend/src/services/image-analyses.ts +132 -0
  188. package/recipes/image-analysis-supabase/packages/backend/supabase/functions/analyze-image/index.ts +312 -0
  189. package/recipes/image-analysis-supabase/packages/backend/supabase/migrations/image_analysis.sql +42 -0
  190. package/recipes/image-analysis-supabase/recipe.json +90 -0
  191. package/recipes/image-analysis-supabase@latest.zip +0 -0
  192. package/recipes/image-analysis@latest.zip +0 -0
  193. package/recipes/image-generator/apps/native/src/features/image-generator/app/index.tsx +16 -2
  194. package/recipes/image-generator/apps/native/src/features/image-generator/components/image-model-selector.tsx +11 -5
  195. package/recipes/image-generator/apps/native/src/features/image-generator/hooks/use-image-generator.ts +11 -5
  196. package/recipes/image-generator/packages/backend/convex/imageGeneration/index.ts +2 -2
  197. package/recipes/image-generator/recipe.json +16 -39
  198. package/recipes/image-generator-supabase/apps/native/src/features/image-generator/app/_layout.tsx +26 -0
  199. package/recipes/image-generator-supabase/apps/native/src/features/image-generator/app/gallery.tsx +217 -0
  200. package/recipes/image-generator-supabase/apps/native/src/features/image-generator/app/index.tsx +251 -0
  201. package/recipes/image-generator-supabase/apps/native/src/features/image-generator/components/gallery-image.tsx +25 -0
  202. package/recipes/image-generator-supabase/apps/native/src/features/image-generator/components/image-detail-modal.tsx +215 -0
  203. package/recipes/image-generator-supabase/apps/native/src/features/image-generator/components/image-model-selector.tsx +216 -0
  204. package/recipes/image-generator-supabase/apps/native/src/features/image-generator/components/image-placeholder.tsx +26 -0
  205. package/recipes/image-generator-supabase/apps/native/src/features/image-generator/hooks/use-image-gallery.ts +71 -0
  206. package/recipes/image-generator-supabase/apps/native/src/features/image-generator/hooks/use-image-generator-settings.ts +152 -0
  207. package/recipes/image-generator-supabase/apps/native/src/features/image-generator/hooks/use-image-generator.ts +103 -0
  208. package/recipes/image-generator-supabase/apps/native/src/features/image-generator/models/models.ts +66 -0
  209. package/recipes/image-generator-supabase/apps/native/src/features/image-generator/services/image-gallery-service.ts +96 -0
  210. package/recipes/image-generator-supabase/apps/native/src/features/image-generator/services/image-save-service.ts +120 -0
  211. package/recipes/image-generator-supabase/packages/backend/supabase/functions/generate-image/index.ts +291 -0
  212. package/recipes/image-generator-supabase/packages/backend/supabase/migrations/image_generator.sql +71 -0
  213. package/recipes/image-generator-supabase/recipe.json +86 -0
  214. package/recipes/image-generator-supabase@latest.zip +0 -0
  215. package/recipes/image-generator@latest.zip +0 -0
  216. package/recipes/ios-widget/recipe.json +15 -24
  217. package/recipes/ios-widget@latest.zip +0 -0
  218. package/recipes/onboarding/apps/native/src/features/onboarding/analytics/index.ts +9 -0
  219. package/recipes/onboarding/apps/native/src/features/onboarding/components/onboarding-with-analytics.tsx +141 -0
  220. package/recipes/onboarding/apps/native/src/features/onboarding/components/onboarding.tsx +173 -0
  221. package/recipes/onboarding/apps/native/src/features/onboarding/config/onboarding-flow-config.ts +189 -0
  222. package/recipes/onboarding/apps/native/src/features/onboarding/demo-one/app/index.tsx +42 -0
  223. package/recipes/onboarding/apps/native/src/features/onboarding/demo-one/data.ts +32 -0
  224. package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/app/index.tsx +43 -0
  225. package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/interactive-onboarding.tsx +222 -0
  226. package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/ai-tone-step.tsx +133 -0
  227. package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/currency-step.tsx +165 -0
  228. package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/feature-ai-step.tsx +199 -0
  229. package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/feature-chatbot-step.tsx +154 -0
  230. package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/feature-manual-step.tsx +156 -0
  231. package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/feature-scan-step.tsx +158 -0
  232. package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/main-reason-step.tsx +139 -0
  233. package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/notification-step.tsx +129 -0
  234. package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/overspend-step.tsx +138 -0
  235. package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/personalizing-step.tsx +190 -0
  236. package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/rating-step.tsx +98 -0
  237. package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/reminder-step.tsx +181 -0
  238. package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/safety-step.tsx +110 -0
  239. package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/struggle-step.tsx +139 -0
  240. package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/welcome-step.tsx +217 -0
  241. package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/ui/onboarding-header.tsx +58 -0
  242. package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/constants.ts +179 -0
  243. package/recipes/onboarding/apps/native/src/features/onboarding/hooks/use-onboarding-analytics.ts +323 -0
  244. package/recipes/onboarding/apps/native/src/features/onboarding/services/onboarding-analytics.ts +432 -0
  245. package/recipes/onboarding/recipe.json +15 -0
  246. package/recipes/onboarding@latest.zip +0 -0
  247. package/recipes/payments/recipe.json +28 -61
  248. package/recipes/payments-supabase/apps/native/src/features/payments/README.md +200 -0
  249. package/recipes/payments-supabase/apps/native/src/features/payments/app/local-paywall.tsx +194 -0
  250. package/recipes/payments-supabase/apps/native/src/features/payments/app/remote-paywall.tsx +79 -0
  251. package/recipes/payments-supabase/apps/native/src/features/payments/components/payment-initializer.tsx +95 -0
  252. package/recipes/payments-supabase/apps/native/src/features/payments/components/paywall-error-state.tsx +60 -0
  253. package/recipes/payments-supabase/apps/native/src/features/payments/components/paywall-local-mode.tsx +116 -0
  254. package/recipes/payments-supabase/apps/native/src/features/payments/components/paywall-product-card.tsx +133 -0
  255. package/recipes/payments-supabase/apps/native/src/features/payments/components/paywall-remote-mode.tsx +146 -0
  256. package/recipes/payments-supabase/apps/native/src/features/payments/hooks/use-entitlement.ts +63 -0
  257. package/recipes/payments-supabase/apps/native/src/features/payments/index.ts +8 -0
  258. package/recipes/payments-supabase/apps/native/src/features/payments/services/revenuecat-adapter.ts +407 -0
  259. package/recipes/payments-supabase/packages/backend/src/services/payments.ts +201 -0
  260. package/recipes/payments-supabase/packages/backend/supabase/migrations/payments.sql +35 -0
  261. package/recipes/payments-supabase/recipe.json +72 -0
  262. package/recipes/payments-supabase@latest.zip +0 -0
  263. package/recipes/payments@latest.zip +0 -0
  264. package/recipes/quiz/apps/native/src/features/quiz/index.tsx +1 -2
  265. package/recipes/quiz/recipe.json +6 -9
  266. package/recipes/quiz@latest.zip +0 -0
  267. package/recipes/tracker-app/apps/native/src/features/tracker-app/app/index.tsx +1 -2
  268. package/recipes/tracker-app/recipe.json +7 -10
  269. package/recipes/tracker-app@latest.zip +0 -0
  270. package/recipes/voice-bot/recipe.json +8 -68
  271. package/recipes/voice-bot.zip +0 -0
  272. package/recipes/voice-bot@latest.zip +0 -0
  273. package/recipes/wake-word/recipe.json +10 -9
  274. package/recipes/wake-word.zip +0 -0
  275. package/recipes/wake-word@latest.zip +0 -0
  276. package/recipes/charts/apps/native/src/app/(root)/(protected)/charts/index.tsx +0 -3
  277. package/recipes/chatbot/packages/backend/convex/lib/rateLimit.ts +0 -100
  278. package/recipes/chatbot/packages/backend/convex/lib/telemetry.ts +0 -29
  279. package/recipes/chatbot/packages/backend/convex/ragKnowledge.ts +0 -0
  280. package/recipes/image-analysis/apps/native/assets/features/image-analyzer/front.jpg +0 -0
  281. package/recipes/image-analysis/apps/native/assets/features/image-analyzer/side.jpg +0 -0
  282. package/recipes/image-analysis/apps/native/assets/features/image-analyzer/threeQuarter.jpg +0 -0
  283. package/recipes/image-analysis/apps/native/src/app/(root)/(protected)/analysis/[type]/_layout.tsx +0 -5
  284. package/recipes/image-analysis/apps/native/src/app/(root)/(protected)/analysis/[type]/analysis-options.tsx +0 -50
  285. package/recipes/image-analysis/apps/native/src/app/(root)/(protected)/analysis/[type]/camera.tsx +0 -2
  286. package/recipes/image-analysis/apps/native/src/app/(root)/(protected)/analysis/[type]/index.tsx +0 -50
  287. package/recipes/image-analysis/apps/native/src/app/(root)/(protected)/analysis/[type]/loading.tsx +0 -50
  288. package/recipes/image-analysis/apps/native/src/app/(root)/(protected)/analysis/[type]/results.tsx +0 -2
  289. package/recipes/image-analysis/apps/native/src/app/(root)/(protected)/analysis/[type]/trait-details.tsx +0 -3
  290. package/recipes/image-analysis/packages/backend/convex/imageAnalysisFunctions.ts +0 -325
  291. package/recipes/image-analysis/packages/backend/convex/lib/ai/imageAnalysisAdapter.ts +0 -200
  292. package/recipes/payments/apps/native/src/app/(root)/(protected)/paywall/index.tsx +0 -74
  293. package/recipes/payments/apps/native/src/app/(root)/(protected)/paywall/local.tsx +0 -25
  294. package/recipes/payments/apps/native/src/app/(root)/(protected)/paywall/remote.tsx +0 -23
  295. package/recipes/quiz/apps/native/src/app/(root)/(protected)/quiz/index.tsx +0 -47
  296. package/recipes/tracker-app/apps/native/src/app/(root)/(protected)/tracker-app/index.tsx +0 -1
  297. package/recipes/voice-bot/apps/native/src/app/(root)/(protected)/voice-bot/index.tsx +0 -27
  298. package/recipes/voice-bot/packages/backend/convex/router.ts +0 -81
  299. /package/recipes/{chatbot/apps/native/src/app/(root)/(protected) → chatbot-supabase/apps/native/src/app}/chatbot/index.tsx +0 -0
  300. /package/recipes/{image-generator/apps/native/src/app/(root)/(protected) → image-generator-supabase/apps/native/src/app}/image-generator/gallery.tsx +0 -0
  301. /package/recipes/{image-generator/apps/native/src/app/(root)/(protected) → image-generator-supabase/apps/native/src/app}/image-generator/index.tsx +0 -0
package/CHANGELOG.md CHANGED
@@ -2,11 +2,28 @@
2
2
 
3
3
  All notable changes to VibeFast CLI will be documented in this file.
4
4
 
5
+ ## [1.2.0] - 2024-11-27
6
+
7
+ ### Added
8
+
9
+ - **AST-Based Modifications**: The CLI now uses Abstract Syntax Trees (AST) to safely modify `app.config.ts` when installing plugins. This replaces fragile regex-based replacements.
10
+ - **E2E Testing Suite**: Added comprehensive End-to-End tests for `init`, `add`, and `remove` commands to ensure stability.
11
+ - **Local CI**: Integrated Husky for pre-push checks, running tests automatically before every push.
12
+ - **Manual Testing Guide**: Added `docs/manual-testing.md` to help contributors test the CLI locally.
13
+ - **`--skip-install` for `add`**: Added a flag to skip dependency installation during `vf add`, useful for testing and CI.
14
+
15
+ ### Fixed
16
+
17
+ - **Recipe Imports**: Fixed incorrect import paths in `image-analysis` and `image-generator` recipes (`imageAnalysisFunctions` -> `imageAnalysis`).
18
+ - **Path Handling**: Improved cross-platform path compatibility for Windows/Linux.
19
+ - **Test Stability**: Fixed flaky tests by increasing timeouts and improving sandbox cleanup.
20
+
5
21
  ## [0.3.0] - 2024-11-15
6
22
 
7
23
  ### Added - Phase 1, 2 & 3 Features 🚀
8
24
 
9
25
  **Phase 1 & 2:**
26
+
10
27
  - **`vf init` Command**: One command to initialize a new VibeFast project
11
28
  - Interactive prompts for branch selection (clean/full)
12
29
  - Automatic repository cloning
@@ -31,6 +48,7 @@ All notable changes to VibeFast CLI will be documented in this file.
31
48
  - Better UX for interactive workflows
32
49
 
33
50
  **Phase 3:**
51
+
34
52
  - **Auto-Install Dependencies**: After `vf add`, automatically prompts to install required packages
35
53
  - Native: Uses `npx expo install` for compatible versions
36
54
  - Web: Auto-detects package manager (pnpm/npm/yarn/bun)
@@ -51,6 +69,7 @@ All notable changes to VibeFast CLI will be documented in this file.
51
69
  - Exit codes: 0 = healthy, 1 = warnings, 2 = errors
52
70
 
53
71
  ### Improved
72
+
54
73
  - **`vf add` Command**: Now uses spinners and auto-detects target
55
74
  - **`vf list` Command**: Shows spinner while fetching features
56
75
  - **Error Messages**: More helpful messages for Git and permission errors
@@ -58,26 +77,31 @@ All notable changes to VibeFast CLI will be documented in this file.
58
77
  - **Performance**: Parallel operations where possible
59
78
 
60
79
  ### New Core Modules
80
+
61
81
  - `src/core/detect.ts` - Target and package manager detection
62
82
  - `src/core/spinner.ts` - Progress indicators
63
83
  - `src/core/prompts.ts` - Interactive prompts
64
84
 
65
85
  ### New Dependencies
86
+
66
87
  - `ora` - Terminal spinners
67
88
  - `inquirer` - Interactive prompts
68
89
  - `simple-git` - Git operations
69
90
 
70
91
  ### Documentation
92
+
71
93
  - Added `PHASE-1-2-IMPLEMENTATION.md` - Implementation details
72
94
  - Added `QUICK-START.md` - Quick start guide with new features
73
95
 
74
96
  ### Testing
97
+
75
98
  - Added unit tests for detection module (9 tests)
76
99
  - All tests passing
77
100
 
78
101
  ## [0.2.2] - 2024-11-14
79
102
 
80
103
  ### Fixed
104
+
81
105
  - **Error Messages**: Removed nested error wrapping that caused confusing messages
82
106
  - Error messages are now clean and single-level with helpful context
83
107
  - Improved error display in `list`, `devices`, and `add` commands
@@ -85,6 +109,7 @@ All notable changes to VibeFast CLI will be documented in this file.
85
109
  ## [0.2.0] - 2024-11-13
86
110
 
87
111
  ### Added
112
+
88
113
  - **Interactive Confirmation**: CLI now asks before overwriting existing files
89
114
  - **Package Dependency Display**: Shows required packages with `npx expo install` command
90
115
  - **Modification Detection**: Warns before deleting files you've modified
@@ -97,6 +122,7 @@ All notable changes to VibeFast CLI will be documented in this file.
97
122
  - **Comprehensive Tests**: 34 unit tests covering all core functionality
98
123
 
99
124
  ### Improved
125
+
100
126
  - **Error Messages**: User-friendly error messages with clear actionable solutions
101
127
  - **Support Contact**: All error messages include support@vibefast.pro
102
128
  - **CI/CD Compatibility**: Detects non-interactive environments and behaves appropriately
@@ -104,10 +130,12 @@ All notable changes to VibeFast CLI will be documented in this file.
104
130
  - **Documentation**: Comprehensive documentation and examples
105
131
 
106
132
  ### Changed
133
+
107
134
  - **Package Management**: Now uses `npx expo install` for native apps (no version management needed)
108
135
  - **Journal Format**: Updated to store file hashes (auto-migrates old format)
109
136
 
110
137
  ### Fixed
138
+
111
139
  - Files being overwritten without confirmation
112
140
  - No warning when deleting modified files
113
141
  - Missing package installation information
@@ -116,6 +144,7 @@ All notable changes to VibeFast CLI will be documented in this file.
116
144
  ## [0.1.4] - 2024-11-11
117
145
 
118
146
  ### Added
147
+
119
148
  - Initial release
120
149
  - Basic `vf add` and `vf remove` commands
121
150
  - Authentication with `vf login` and `vf logout`
@@ -127,6 +156,7 @@ All notable changes to VibeFast CLI will be documented in this file.
127
156
  - Journal tracking
128
157
 
129
158
  ### Security
159
+
130
160
  - Path security with directory traversal prevention
131
161
  - Token storage in user home directory
132
162
  - HTTPS-only communication
@@ -141,6 +171,7 @@ All notable changes to VibeFast CLI will be documented in this file.
141
171
  No breaking changes! The CLI will automatically migrate your journal to the new format.
142
172
 
143
173
  **New Features You Can Use:**
174
+
144
175
  ```bash
145
176
  # Check what's installed
146
177
  vf status
@@ -161,6 +192,7 @@ The CLI now provides much clearer error messages with actionable solutions.
161
192
  ## Support
162
193
 
163
194
  For issues or questions:
195
+
164
196
  - Email: support@vibefast.pro
165
197
  - GitHub: https://github.com/vibefast/vibefast-cli/issues
166
198
  - Website: https://vibefast.pro
package/README.md CHANGED
@@ -1,219 +1,113 @@
1
1
  # VibeFast CLI
2
2
 
3
- Official CLI for installing VibeFast features into your monorepo.
3
+ <div align="center">
4
+ <img src="vibefast_cli_architecture.png" alt="VibeFast CLI Architecture" width="100%" />
5
+ <br />
6
+ <br />
7
+ <a href="https://vibefast.pro">
8
+ <img src="https://img.shields.io/badge/VibeFast-Pro-7C3AED?style=for-the-badge" alt="VibeFast Pro" />
9
+ </a>
10
+ <a href="https://www.npmjs.com/package/vibefast-cli">
11
+ <img src="https://img.shields.io/npm/v/vibefast-cli?style=for-the-badge&color=blue" alt="NPM Version" />
12
+ </a>
13
+ </div>
4
14
 
5
- ## ✨ New in v0.2.0
15
+ ## Overview
6
16
 
7
- - **Interactive Confirmation** - No more silent overwrites! CLI asks before replacing files
8
- - **Package Management** - Shows required packages with `npx expo install` command
9
- - **Modification Detection** - Warns before deleting files you've modified
10
- - **Manual Steps** - Clear setup instructions for services like Sentry, PostHog
11
- - **New Commands** - `vf status` and `vf checklist` for better management
12
- - **Better Errors** - User-friendly error messages with actionable solutions
17
+ The **VibeFast CLI** is the command center for your VibeFast monorepo. It automates the complex task of integrating full-stack features—handling file copying, dependency management, configuration updates, and code modifications safely and reliably.
13
18
 
14
- [See full changelog](CHANGELOG.md)
19
+ Think of it as a "smart installer" that understands your project structure.
15
20
 
16
- ## Installation
21
+ ## Architecture
17
22
 
18
- ```bash
19
- npm install -g vibefast-cli
20
- ```
23
+ The CLI operates as a bridge between the **VibeFast Cloud** (where recipes are stored) and your **Local Project**.
21
24
 
22
- Or use directly with npx:
23
-
24
- ```bash
25
- npx vibefast-cli <command>
26
- ```
25
+ 1. **Command Execution**: You run a command like `vf add chatbot`.
26
+ 2. **Authentication & Fetch**: The CLI verifies your license and fetches the latest "Recipe" (a zip bundle of code) from our edge network (R2).
27
+ 3. **Smart Installation**:
28
+ - **Extraction**: Files are extracted to the correct locations (`apps/native`, `apps/web`, `packages/backend`).
29
+ - **AST Modification**: We use Abstract Syntax Trees to safely modify your `app.config.ts`, `babel.config.js`, and other config files—no fragile regex replacements.
30
+ - **Dependency Management**: Automatically detects your package manager (pnpm, npm, yarn, bun) and installs required libraries.
31
+ 4. **Journaling**: Every action is recorded in `.vibefast/journal.json`, allowing for clean uninstalls via `vf remove`.
27
32
 
28
33
  ## Quick Start
29
34
 
30
- 1. **Login with your token:**
31
- Use the same license key you received in your LemonSqueezy receipt:
32
-
33
- ```bash
34
- vf login --token YOUR_LICENSE_KEY
35
- ```
36
-
37
- 2. **Verify your setup:**
38
- ```bash
39
- vf doctor
40
- ```
35
+ ### 1. Installation
41
36
 
42
- 3. **List available features:**
43
37
  ```bash
44
- vf list
38
+ npm install -g vibefast-cli
45
39
  ```
46
40
 
47
- 4. **Install a feature:**
48
- ```bash
49
- vf add charts
50
- vf add charts-web --target web
51
- ```
41
+ ### 2. Login
52
42
 
53
- 5. **Check what's installed:**
54
- ```bash
55
- vf status
56
- ```
43
+ Authenticate with your license key (from your purchase receipt):
57
44
 
58
- 6. **Remove a feature:**
59
45
  ```bash
60
- vf remove charts
46
+ vf login --token YOUR_LICENSE_KEY
61
47
  ```
62
48
 
63
- ## Commands
64
-
65
- ### `vf login --token <TOKEN>`
66
- Authenticate with your VibeFast license token.
67
-
68
- ### `vf logout`
69
- Clear your stored token.
70
-
71
- ### `vf devices`
72
- List your active device activations.
73
-
74
- **Options:**
75
- - `--deactivate <id>` - Free up a device slot
76
-
77
- ### `vf doctor`
78
- Check your VibeFast setup and verify all requirements.
79
-
80
- ### `vf list`
81
- Show all available features for your license.
49
+ ### 3. Initialize a Project
82
50
 
83
- ### `vf add <feature>`
84
- Install a feature into your project.
51
+ Start a new VibeFast project from scratch:
85
52
 
86
- **Options:**
87
- - `--target <native|web>` - Target platform (default: native)
88
- - `--dry-run` - Preview changes without applying
89
- - `--force` - Overwrite existing files without asking
90
- - `--yes` - Answer yes to all prompts (for automation)
91
-
92
- **Example:**
93
53
  ```bash
94
- vf add charts --target native
95
- vf add chatbot --target web --force
96
- vf add sentry --yes # For CI/CD
54
+ vf init
97
55
  ```
98
56
 
99
- **What happens:**
100
- 1. Downloads and extracts the feature
101
- 2. Copies files to your project
102
- 3. Adds navigation link (if applicable)
103
- 4. Shows required packages to install
104
- 5. Shows manual setup steps (if needed)
105
-
106
- ### `vf remove <feature>`
107
- Remove an installed feature.
57
+ ### 4. Add Features
108
58
 
109
- **Options:**
110
- - `--target <native|web>` - Target platform (default: native)
111
- - `--dry-run` - Preview changes without applying
112
- - `--force` - Skip modification check
113
- - `--yes` - Answer yes to all prompts
59
+ Install pre-built features instantly:
114
60
 
115
- **Example:**
116
61
  ```bash
117
- vf remove charts --target native
62
+ vf add charts
63
+ vf add chatbot --target web
118
64
  ```
119
65
 
120
- **What happens:**
121
- 1. Checks if files were modified (warns you)
122
- 2. Deletes all tracked files
123
- 3. Removes navigation link
124
- 4. Updates journal
125
-
126
- ### `vf status` 🆕
127
- Show all installed features and their status.
128
-
129
- **Example:**
130
- ```bash
131
- $ vf status
132
-
133
- Installed features:
66
+ ## Core Commands
134
67
 
135
- charts (v1.0.0) - native
136
- Files: 17
137
- Installed: 11/13/2024
68
+ | Command | Description |
69
+ | :----------------------- | :------------------------------------------------------- |
70
+ | `vf init` | Scaffolds a new VibeFast monorepo project. |
71
+ | `vf add <feature>` | Installs a feature, handling all file ops and configs. |
72
+ | `vf remove <feature>` | Uninstalls a feature and cleans up files. |
73
+ | `vf list` | Lists all available features for your license. |
74
+ | `vf status` | Shows installed features and their health. |
75
+ | `vf doctor` | Diagnoses issues with your project setup. |
76
+ | `vf checklist <feature>` | Shows manual setup steps (e.g., API keys) for a feature. |
77
+ | `vf devices` | Manages your active device sessions. |
138
78
 
139
- sentry (v1.2.0) - native
140
- Files: 5
141
- Installed: 11/13/2024
142
- ⚠ Has manual setup steps
79
+ ## Advanced Usage
143
80
 
144
- Total: 2 feature(s) installed
145
- ```
146
-
147
- ### `vf checklist <feature>` 🆕
148
- Show manual setup steps for an installed feature.
149
-
150
- **Options:**
151
- - `--target <native|web>` - Target platform (default: native)
152
-
153
- **Example:**
154
- ```bash
155
- vf checklist sentry
156
- ```
81
+ ### Automation (CI/CD)
157
82
 
158
- **When to use:**
159
- Some features (like Sentry, PostHog, Stripe) require external service setup. After installing such features, you'll see:
83
+ The CLI is designed for automation. Use flags to bypass interactive prompts:
160
84
 
161
85
  ```bash
162
- MANUAL STEPS REQUIRED:
86
+ # Install without prompts
87
+ vf add sentry --yes --force
163
88
 
164
- Step 1: Create Sentry Account
165
- Sign up at sentry.io and create a project
166
- 🔗 https://sentry.io/signup/
167
-
168
- 💡 Run 'vf checklist sentry' to see these steps again
89
+ # Skip dependency installation (faster for CI)
90
+ vf add chatbot --skip-install
169
91
  ```
170
92
 
171
- Run `vf checklist <feature>` anytime to see the setup instructions again.
172
-
173
- ## Requirements
174
-
175
- - Node.js 18+
176
- - A VibeFast monorepo with `.vibefast/starter.json`
177
- - Valid VibeFast license token
178
-
179
- ## Device Limits
93
+ ### Manual Testing
180
94
 
181
- Each license includes 2 device slots by default. A device is identified by a stable ID based on your machine's username, hostname, and OS. You can manage your devices with:
182
-
183
- ```bash
184
- vf devices # List active devices
185
- vf devices --deactivate <id> # Free a slot
186
- ```
95
+ If you are contributing to the CLI, see our [Manual Testing Guide](docs/manual-testing.md).
187
96
 
188
97
  ## Troubleshooting
189
98
 
190
99
  **"Not a VibeFast repo"**
191
- - Make sure you're in the root of your VibeFast monorepo
192
- - Check that `.vibefast/starter.json` exists
193
-
194
- **"Not logged in"**
195
- - Run `vf login --token <YOUR_TOKEN>`
100
+ Ensure you are in the root of your project and that `.vibefast/starter.json` exists.
196
101
 
197
102
  **"Device limit reached"**
198
- - Run `vf devices` to see active devices
199
- - Deactivate unused devices with `vf devices --deactivate <id>`
200
-
201
- **"Missing navigation markers"**
202
- - Ensure your nav files have the required marker comments
203
- - Run `vf doctor` to check
204
-
205
- ## Environment Variables
103
+ Your license has a limit on active devices. Run `vf devices` to see them and `vf devices --deactivate <id>` to free up a slot.
206
104
 
207
- - `VIBEFAST_WORKER_URL` - Override the API endpoint (default: https://api.vibefast.pro)
208
-
209
- ## Documentation
105
+ ## Support
210
106
 
211
- - **[README.md](README.md)** - This file (user guide)
212
- - **[CHANGELOG.md](CHANGELOG.md)** - Version history
213
- - **[HOW-IT-WORKS.md](HOW-IT-WORKS.md)** - Technical architecture
214
- - **[MANUAL-STEPS-GUIDE.md](MANUAL-STEPS-GUIDE.md)** - Guide for recipe creators
215
- - **[IMPLEMENTATION-COMPLETE.md](IMPLEMENTATION-COMPLETE.md)** - Implementation details
107
+ For issues, please contact [support@vibefast.pro](mailto:support@vibefast.pro).
216
108
 
217
- ## Support
109
+ ---
218
110
 
219
- For issues or questions, contact support@vibefast.pro
111
+ <div align="center">
112
+ <sub>Built with ❤️ by the VibeFast Team</sub>
113
+ </div>