vibefast-cli 1.1.2 → 1.1.5

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.
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect } from 'vitest';
2
2
  import { RECIPES, getRecipesByCategory, getRecipeInfo } from '../core/recipes.js';
3
- import { existsSync } from 'fs';
3
+ import { existsSync, readFileSync } from 'fs';
4
4
  import { join } from 'path';
5
5
  describe('Recipe System', () => {
6
6
  describe('Recipe Metadata', () => {
@@ -77,6 +77,27 @@ describe('Recipe System', () => {
77
77
  }
78
78
  });
79
79
  });
80
+ describe('Recipe Copy Sources', () => {
81
+ const getRecipesDir = () => {
82
+ if (existsSync(join(process.cwd(), 'recipes'))) {
83
+ return join(process.cwd(), 'recipes');
84
+ }
85
+ return join(process.cwd(), 'vibefast-cli/recipes');
86
+ };
87
+ it('should have all copy sources present for every recipe', () => {
88
+ const recipesDir = getRecipesDir();
89
+ const features = getRecipesByCategory('feature');
90
+ for (const feature of features) {
91
+ const recipePath = join(recipesDir, `${feature.name}/recipe.json`);
92
+ const manifest = JSON.parse(readFileSync(recipePath, 'utf-8'));
93
+ const copies = manifest.copy || manifest.files || [];
94
+ for (const entry of copies) {
95
+ const srcPath = join(recipesDir, feature.name, entry.from);
96
+ expect(existsSync(srcPath), `${feature.name}: missing copy source ${entry.from}`).toBe(true);
97
+ }
98
+ }
99
+ });
100
+ });
80
101
  describe('Recipe Content', () => {
81
102
  const getRecipesDir = () => {
82
103
  if (existsSync(join(process.cwd(), 'recipes'))) {
@@ -104,7 +125,8 @@ describe('Recipe System', () => {
104
125
  const content = readFileSync(recipePath, 'utf-8');
105
126
  const recipe = JSON.parse(content);
106
127
  expect(recipe.dependencies).toBeDefined();
107
- expect(recipe.dependencies.npm).toContain('@bacons/apple-targets');
128
+ expect(Array.isArray(recipe.dependencies.expo)).toBe(true);
129
+ expect(recipe.dependencies.expo).toContain('@bacons/apple-targets');
108
130
  });
109
131
  it('should have manual steps for ios-widget', () => {
110
132
  const { readFileSync } = require('fs');
@@ -114,7 +136,7 @@ describe('Recipe System', () => {
114
136
  const recipe = JSON.parse(content);
115
137
  expect(recipe.manualSteps).toBeDefined();
116
138
  expect(recipe.manualSteps.length).toBeGreaterThan(0);
117
- const pluginStep = recipe.manualSteps.find((s) => s.title.includes('Widget Plugin'));
139
+ const pluginStep = recipe.manualSteps.find((s) => typeof s.title === 'string' && s.title.toLowerCase().includes('plugin'));
118
140
  expect(pluginStep).toBeDefined();
119
141
  expect(pluginStep.file).toBe('apps/native/app.config.ts');
120
142
  });
@@ -1 +1 @@
1
- {"version":3,"file":"recipes.test.js","sourceRoot":"","sources":["../../src/__tests__/recipes.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recipes.test.js","sourceRoot":"","sources":["../../src/__tests__/recipes.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,MAAM,QAAQ,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;YACjD,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,QAAQ,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;YACjD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;YAE3D,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACxC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;YACjF,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,MAAM,QAAQ,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;YACjD,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAE/C,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;YACjD,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACzC,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC1C,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;YACjD,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;YAClD,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACvC,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YAC9C,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC5C,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC5C,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,MAAM,IAAI,GAAG,aAAa,CAAC,sBAAsB,CAAC,CAAC;YACnD,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,MAAM,aAAa,GAAG,GAAG,EAAE;YACzB,2CAA2C;YAC3C,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;gBAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;YACxC,CAAC;YACD,kCAAkC;YAClC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,sBAAsB,CAAC,CAAC;QACrD,CAAC,CAAC;QAEF,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;YAC9D,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAC;YAC1D,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;YAEjD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,cAAc,CAAC,CAAC;gBACnE,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,2BAA2B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxF,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;YAEjD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,aAAa,CAAC,CAAC;gBAC/D,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,MAAM,aAAa,GAAG,GAAG,EAAE;YACzB,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;gBAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;YACxC,CAAC;YACD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,sBAAsB,CAAC,CAAC;QACrD,CAAC,CAAC;QAEF,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAC/D,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;YAEjD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,cAAc,CAAC,CAAC;gBACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC/D,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;gBAErD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC3D,MAAM,CACJ,UAAU,CAAC,OAAO,CAAC,EACnB,GAAG,OAAO,CAAC,IAAI,yBAAyB,KAAK,CAAC,IAAI,EAAE,CACrD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACf,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,MAAM,aAAa,GAAG,GAAG,EAAE;YACzB,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;gBAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;YACxC,CAAC;YACD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,sBAAsB,CAAC,CAAC;QACrD,CAAC,CAAC;QAEF,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;YAC9D,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAEnC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACvC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;YAChF,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;YAC9D,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAEnC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3D,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;YAC9D,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAEnC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;YACzC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAErD,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CACxC,CAAC,CAAM,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACpF,CAAC;YACF,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;YACjC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC9D,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;YAC9D,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAEnC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;YACzC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;YACtD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,UAAU,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;YACvD,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,+CAA+C;QAClF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgKpC,eAAO,MAAM,UAAU,SA6HnB,CAAC;AAEL,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,iBA0+B3E"}
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgKpC,eAAO,MAAM,UAAU,SA6HnB,CAAC;AAEL,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,iBA8iC3E"}
@@ -340,36 +340,97 @@ export async function installFeature(feature, options, paths) {
340
340
  return;
341
341
  const original = await readFileContent(appConfigPath);
342
342
  let updated = original;
343
- const pluginsStart = updated.indexOf('plugins: [');
344
- const extraStart = updated.indexOf('\n\n extra:');
345
- if (pluginsStart === -1 || extraStart === -1) {
346
- log.warn('⚠ Could not locate plugins block in app.config.ts; skipping plugin auto-insert.');
347
- return;
343
+ const fail = (msg) => {
344
+ log.error(msg);
345
+ throw new Error(msg);
346
+ };
347
+ // Ensure a plugins block exists; insert one if missing (before extra: or at end)
348
+ const findIndex = (pattern) => {
349
+ const match = pattern.exec(updated);
350
+ return match ? match.index : -1;
351
+ };
352
+ let pluginsStart = findIndex(/plugins\s*:\s*\[/);
353
+ let extraStart = findIndex(/\n\s+extra:/);
354
+ if (pluginsStart === -1) {
355
+ const block = ` plugins: [\n ],\n\n`;
356
+ if (extraStart !== -1) {
357
+ updated = `${updated.slice(0, extraStart)}${block}${updated.slice(extraStart)}`;
358
+ }
359
+ else {
360
+ // Append before the final closing of the config object
361
+ const insertPos = updated.lastIndexOf('};');
362
+ updated =
363
+ insertPos !== -1
364
+ ? `${updated.slice(0, insertPos)}${block}${updated.slice(insertPos)}`
365
+ : `${updated.trimEnd()}\n\n${block}};`;
366
+ }
367
+ // recompute positions
368
+ pluginsStart = findIndex(/plugins\s*:\s*\[/);
369
+ extraStart = findIndex(/\n\s+extra:/);
348
370
  }
349
- // Boundaries for plugins block
350
- const pluginsSection = updated.slice(pluginsStart, extraStart);
351
- const closeIdxLocal = pluginsSection.lastIndexOf('],');
352
- if (closeIdxLocal === -1) {
353
- log.warn('⚠ Could not locate plugins closing bracket; skipping plugin auto-insert.');
354
- return;
371
+ if (pluginsStart === -1) {
372
+ fail('Could not locate plugins block in app.config.ts; aborting plugin auto-insert.');
373
+ }
374
+ if (extraStart === -1) {
375
+ extraStart = updated.length;
376
+ }
377
+ // Boundaries for plugins block (tolerant of nested arrays)
378
+ const firstBracket = updated.indexOf('[', pluginsStart);
379
+ let depth = 0;
380
+ let pluginsClose = -1;
381
+ for (let i = firstBracket; i < updated.length; i++) {
382
+ const ch = updated[i];
383
+ if (ch === '[')
384
+ depth += 1;
385
+ if (ch === ']') {
386
+ depth -= 1;
387
+ if (depth === 0) {
388
+ pluginsClose = i;
389
+ break;
390
+ }
391
+ }
392
+ if (i >= extraStart && extraStart !== updated.length && depth <= 0)
393
+ break;
394
+ }
395
+ if (pluginsClose === -1) {
396
+ fail('Could not locate plugins closing bracket; aborting plugin auto-insert.');
355
397
  }
356
- const pluginsClose = pluginsStart + closeIdxLocal;
357
398
  const addBlock = (block, needle) => {
358
399
  if (updated.includes(needle))
359
400
  return;
360
401
  updated = `${updated.slice(0, pluginsClose)} ${block}\n${updated.slice(pluginsClose)}`;
361
402
  };
403
+ const findBlockRange = (label) => {
404
+ const idx = updated.indexOf(label);
405
+ if (idx === -1)
406
+ return null;
407
+ const startBrace = updated.indexOf('{', idx);
408
+ if (startBrace === -1)
409
+ return null;
410
+ let depthLocal = 0;
411
+ for (let i = startBrace; i < updated.length; i++) {
412
+ const ch = updated[i];
413
+ if (ch === '{')
414
+ depthLocal += 1;
415
+ if (ch === '}') {
416
+ depthLocal -= 1;
417
+ if (depthLocal === 0)
418
+ return { start: idx, end: i + 1 };
419
+ }
420
+ }
421
+ return null;
422
+ };
362
423
  const patchIosBlock = () => {
363
- let iosIdx = updated.indexOf('ios:');
364
- const experimentsIdx = updated.indexOf('\n\n experiments:');
424
+ let iosRange = findBlockRange('ios:');
365
425
  // If ios block is missing, inject a minimal one before plugins.
366
- if (iosIdx === -1) {
426
+ if (!iosRange) {
367
427
  updated = updated.replace('plugins: [', `ios: {\n supportsTablet: true,\n bundleIdentifier: Env.BUNDLE_ID,\n appleTeamId: Env.APPLE_TEAM_ID,\n config: { usesNonExemptEncryption: false },\n entitlements: { 'com.apple.security.application-groups': ['group.' + Env.BUNDLE_ID] },\n },\n\n plugins: [`);
368
- iosIdx = updated.indexOf('ios:');
428
+ iosRange = findBlockRange('ios:');
369
429
  }
370
- if (iosIdx === -1 || experimentsIdx === -1)
371
- return;
372
- const block = updated.slice(iosIdx, experimentsIdx);
430
+ if (!iosRange) {
431
+ fail('Could not locate or create ios block in app.config.ts; aborting plugin auto-insert.');
432
+ }
433
+ const block = updated.slice(iosRange.start, iosRange.end);
373
434
  let patched = block;
374
435
  if (!patched.includes('appleTeamId')) {
375
436
  patched = patched.replace(/bundleIdentifier:\s*Env\.BUNDLE_ID,?/, (m) => `${m}\n appleTeamId: Env.APPLE_TEAM_ID,`);
@@ -398,7 +459,7 @@ export async function installFeature(feature, options, paths) {
398
459
  bundleIdentifier: \`\${Env.BUNDLE_ID}.widget\`,
399
460
  entitlements: {
400
461
  'com.apple.security.application-groups': [
401
- 'group.com.vibefast.vibefast',
462
+ 'group.' + Env.BUNDLE_ID,
402
463
  ],
403
464
  },
404
465
  },
@@ -407,6 +468,11 @@ export async function installFeature(feature, options, paths) {
407
468
  ],`, '@bacons/apple-targets');
408
469
  patchIosBlock();
409
470
  }
471
+ if (feature === 'voice-bot') {
472
+ addBlock(`'@livekit/react-native-expo-plugin',`, '@livekit/react-native-expo-plugin');
473
+ addBlock(`'@config-plugins/react-native-webrtc',`, '@config-plugins/react-native-webrtc');
474
+ patchIosBlock();
475
+ }
410
476
  if (feature === 'wake-word') {
411
477
  addBlock(`'expo-audio',`, `'expo-audio'`);
412
478
  addBlock(`[
@@ -416,6 +482,7 @@ export async function installFeature(feature, options, paths) {
416
482
  iOSMicrophonePermission: 'We use the mic for on-device wake-phrase detection.',
417
483
  },
418
484
  ],`, 'react-native-vosk');
485
+ patchIosBlock();
419
486
  }
420
487
  if (updated !== original && !options?.dryRun) {
421
488
  await writeFileContent(appConfigPath, updated, { force: true });
@@ -1 +1 @@
1
- {"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vibefast-cli",
3
- "version": "1.1.2",
3
+ "version": "1.1.5",
4
4
  "description": "CLI for installing VibeFast features into your monorepo",
5
5
  "type": "module",
6
6
  "bin": {
@@ -0,0 +1,326 @@
1
+ import { getAuthUserId } from '@convex-dev/auth/server';
2
+ import { v } from 'convex/values';
3
+
4
+ import { internal } from './_generated/api';
5
+ import type { Id } from './_generated/dataModel';
6
+ import {
7
+ action,
8
+ internalAction,
9
+ internalMutation,
10
+ internalQuery,
11
+ query,
12
+ } from './_generated/server';
13
+ import { generateImageAnalysis } from './lib/ai/imageAnalysisAdapter';
14
+
15
+ /**
16
+ * Public action to start image analysis
17
+ */
18
+ export const analyzeImages = action({
19
+ args: {
20
+ imagesAsBase64: v.array(v.string()),
21
+ preferences: v.object({
22
+ goal: v.string(),
23
+ feedbackStyle: v.string(),
24
+ }),
25
+ analysisConfigId: v.optional(v.string()), // Optional for backward compatibility
26
+ },
27
+ handler: async (ctx, args): Promise<Id<'imageAnalyses'>> => {
28
+ const userId = await getAuthUserId(ctx);
29
+ if (!userId) {
30
+ throw new Error('Not authenticated');
31
+ }
32
+
33
+ // Use default config if not provided (for backward compatibility)
34
+ const configId = args.analysisConfigId || 'face_analysis';
35
+
36
+ // Store images in Convex storage
37
+ const imageStorageIds: Id<'_storage'>[] = [];
38
+ for (const base64Image of args.imagesAsBase64) {
39
+ const uint8Array = new Uint8Array(Buffer.from(base64Image, 'base64'));
40
+ const blob = new Blob([uint8Array], { type: 'image/jpeg' });
41
+ const storageId = await ctx.storage.store(blob);
42
+ imageStorageIds.push(storageId);
43
+ }
44
+
45
+ // Create analysis record
46
+ const analysisId = await ctx.runMutation(
47
+ internal.imageAnalysis.createAnalysisRecord,
48
+ {
49
+ userId,
50
+ imageStorageIds,
51
+ analysisConfigId: configId,
52
+ preferences: args.preferences,
53
+ },
54
+ );
55
+
56
+ // Schedule background AI analysis
57
+ await ctx.scheduler.runAfter(
58
+ 0,
59
+ internal.imageAnalysis.performAiAnalysis,
60
+ {
61
+ analysisId,
62
+ },
63
+ );
64
+
65
+ return analysisId;
66
+ },
67
+ });
68
+
69
+ /**
70
+ * Internal mutation to create analysis record
71
+ */
72
+ export const createAnalysisRecord = internalMutation({
73
+ args: {
74
+ userId: v.id('users'),
75
+ imageStorageIds: v.array(v.id('_storage')),
76
+ analysisConfigId: v.optional(v.string()),
77
+ preferences: v.object({
78
+ goal: v.string(),
79
+ feedbackStyle: v.string(),
80
+ }),
81
+ },
82
+ handler: async (ctx, args) => {
83
+ return await ctx.db.insert('imageAnalyses', {
84
+ userId: args.userId,
85
+ status: 'processing',
86
+ imageStorageIds: args.imageStorageIds,
87
+ analysisConfigId: args.analysisConfigId,
88
+ preferences: args.preferences,
89
+ });
90
+ },
91
+ });
92
+
93
+ /**
94
+ * Internal action to perform AI analysis
95
+ */
96
+ export const performAiAnalysis = internalAction({
97
+ args: {
98
+ analysisId: v.id('imageAnalyses'),
99
+ },
100
+ handler: async (ctx, args) => {
101
+ try {
102
+ // Get analysis record
103
+ const analysis = await ctx.runQuery(
104
+ internal.imageAnalysis.getAnalysisRecord,
105
+ {
106
+ analysisId: args.analysisId,
107
+ },
108
+ );
109
+
110
+ if (!analysis) {
111
+ throw new Error('Analysis record not found');
112
+ }
113
+
114
+ // Get analysis configuration (use default if not specified for backward compatibility)
115
+ const configId = analysis.analysisConfigId || 'face_analysis';
116
+
117
+ // Get image URLs from storage - parallelize for better performance
118
+ const imageUrls = await Promise.all(
119
+ analysis.imageStorageIds.map(async (storageId) => {
120
+ const url = await ctx.storage.getUrl(storageId);
121
+ return url;
122
+ }),
123
+ );
124
+
125
+ // Convert image URLs to base64 for AI analysis - parallelize with timeout
126
+ const FETCH_TIMEOUT_MS = 30000; // 30 seconds per image
127
+ const imagesAsBase64 = await Promise.all(
128
+ imageUrls
129
+ .filter((url): url is string => url !== null)
130
+ .map(async (url) => {
131
+ const controller = new AbortController();
132
+ const timeoutId = setTimeout(
133
+ () => controller.abort(),
134
+ FETCH_TIMEOUT_MS,
135
+ );
136
+ try {
137
+ const response = await fetch(url, { signal: controller.signal });
138
+ clearTimeout(timeoutId);
139
+ if (!response.ok) {
140
+ throw new Error(
141
+ `Failed to fetch image: ${response.statusText}`,
142
+ );
143
+ }
144
+ const arrayBuffer = await response.arrayBuffer();
145
+ return Buffer.from(arrayBuffer).toString('base64');
146
+ } catch (error) {
147
+ clearTimeout(timeoutId);
148
+ if (error instanceof Error && error.name === 'AbortError') {
149
+ throw new Error(
150
+ `Image fetch timed out after ${FETCH_TIMEOUT_MS}ms`,
151
+ );
152
+ }
153
+ throw error;
154
+ }
155
+ }),
156
+ );
157
+
158
+ // Validate we have at least one image
159
+ if (imagesAsBase64.length === 0) {
160
+ throw new Error('No valid images found for analysis');
161
+ }
162
+
163
+ // Normalize preferences for backward compatibility
164
+ const normalizedPreferences = {
165
+ goal:
166
+ 'goal' in analysis.preferences
167
+ ? analysis.preferences.goal
168
+ : (analysis.preferences as any).analysisGoal,
169
+ feedbackStyle: analysis.preferences.feedbackStyle,
170
+ };
171
+
172
+ // Perform AI analysis
173
+ const results = await generateImageAnalysis(
174
+ imagesAsBase64,
175
+ normalizedPreferences,
176
+ configId,
177
+ );
178
+
179
+ // Update analysis record with results
180
+ await ctx.runMutation(
181
+ internal.imageAnalysis.updateAnalysisResults,
182
+ {
183
+ analysisId: args.analysisId,
184
+ results,
185
+ status: 'completed',
186
+ },
187
+ );
188
+ } catch (error) {
189
+ console.error('AI analysis failed:', error);
190
+
191
+ // Update analysis record with error
192
+ await ctx.runMutation(
193
+ internal.imageAnalysis.updateAnalysisResults,
194
+ {
195
+ analysisId: args.analysisId,
196
+ status: 'failed',
197
+ errorMessage:
198
+ error instanceof Error ? error.message : 'Unknown error',
199
+ },
200
+ );
201
+ }
202
+ },
203
+ });
204
+
205
+ /**
206
+ * Internal query to get analysis record
207
+ */
208
+ export const getAnalysisRecord = internalQuery({
209
+ args: {
210
+ analysisId: v.id('imageAnalyses'),
211
+ },
212
+ handler: async (ctx, args) => {
213
+ return await ctx.db.get(args.analysisId);
214
+ },
215
+ });
216
+
217
+ /**
218
+ * Internal mutation to update analysis results
219
+ */
220
+ export const updateAnalysisResults = internalMutation({
221
+ args: {
222
+ analysisId: v.id('imageAnalyses'),
223
+ results: v.optional(v.any()),
224
+ status: v.union(v.literal('completed'), v.literal('failed')),
225
+ errorMessage: v.optional(v.string()),
226
+ },
227
+ handler: async (ctx, args) => {
228
+ await ctx.db.patch(args.analysisId, {
229
+ status: args.status,
230
+ results: args.results,
231
+ errorMessage: args.errorMessage,
232
+ });
233
+ },
234
+ });
235
+
236
+ /**
237
+ * Public query to get analysis by ID
238
+ */
239
+ export const getAnalysisById = query({
240
+ args: {
241
+ analysisId: v.id('imageAnalyses'),
242
+ },
243
+ handler: async (ctx, args) => {
244
+ const userId = await getAuthUserId(ctx);
245
+ if (!userId) {
246
+ throw new Error('Not authenticated');
247
+ }
248
+
249
+ const analysis = await ctx.db.get(args.analysisId);
250
+ if (!analysis) {
251
+ return null;
252
+ }
253
+
254
+ // Ensure user owns this analysis
255
+ if (analysis.userId !== userId) {
256
+ throw new Error('Unauthorized');
257
+ }
258
+
259
+ return analysis;
260
+ },
261
+ });
262
+
263
+ /**
264
+ * Public query to get full analysis with image URLs
265
+ */
266
+ export const getImageAnalysis = query({
267
+ args: {
268
+ analysisId: v.id('imageAnalyses'),
269
+ },
270
+ handler: async (ctx, args) => {
271
+ const userId = await getAuthUserId(ctx);
272
+ if (!userId) {
273
+ throw new Error('Not authenticated');
274
+ }
275
+
276
+ const analysis = await ctx.db.get(args.analysisId);
277
+ if (!analysis) {
278
+ return null;
279
+ }
280
+
281
+ // Ensure user owns this analysis
282
+ if (analysis.userId !== userId) {
283
+ throw new Error('Unauthorized');
284
+ }
285
+
286
+ // Get image URLs - parallelize for better performance
287
+ const imageUrls = await Promise.all(
288
+ analysis.imageStorageIds.map(async (storageId) => {
289
+ const url = await ctx.storage.getUrl(storageId);
290
+ return url;
291
+ }),
292
+ );
293
+
294
+ return {
295
+ ...analysis,
296
+ imageUrls: imageUrls.filter((url): url is string => url !== null),
297
+ };
298
+ },
299
+ });
300
+
301
+ /**
302
+ * Public query to get user's analysis history with pagination
303
+ */
304
+ export const getUserImageAnalyses = query({
305
+ args: {
306
+ paginationOpts: v.optional(
307
+ v.object({
308
+ numItems: v.number(),
309
+ cursor: v.union(v.string(), v.null()),
310
+ }),
311
+ ),
312
+ },
313
+ handler: async (ctx, args) => {
314
+ const userId = await getAuthUserId(ctx);
315
+ if (!userId) {
316
+ throw new Error('Not authenticated');
317
+ }
318
+
319
+ return await ctx.db
320
+ .query('imageAnalyses')
321
+ .withIndex('by_userId', (q) => q.eq('userId', userId))
322
+ .order('desc')
323
+ .paginate(args.paginationOpts ?? { numItems: 50, cursor: null });
324
+ },
325
+ });
326
+
@@ -64,15 +64,15 @@
64
64
  ],
65
65
  "manualSteps": [
66
66
  {
67
- "title": "Get ONE LLM API key (choose OpenAI or Gemini)",
68
- "description": "You only need ONE of these:\\n\\n Option A: OpenAI\\n Visit https://platform.openai.com/account/api-keys and create an API key\\n\\n Option B: Google Gemini\\n Visit https://aistudio.google.com/api-keys and create an API key",
67
+ "title": "Get an LLM API key (OpenAI or Gemini)",
68
+ "description": "Start with either provider (OpenAI or Gemini). You can add both later if you like.\\n\\n Option A: OpenAI\\n Visit https://platform.openai.com/account/api-keys and create an API key\\n\\n Option B: Google Gemini\\n Visit https://aistudio.google.com/api-keys and create an API key",
69
69
  "link": "https://platform.openai.com/account/api-keys"
70
70
  },
71
71
  {
72
72
  "title": "Add keys to backend .env file",
73
- "description": "Open packages/backend/.env.local and add the ONE provider key you chose. Optionally set AI_PROVIDER to choose it explicitly.",
73
+ "description": "Open packages/backend/.env.local and add at least one provider key. You can add both. Optionally set AI_PROVIDER to choose it explicitly.",
74
74
  "file": "packages/backend/.env.local",
75
- "content": "# Choose ONE provider:\\nOPENAI_API_KEY=sk-...\\n# OR\\nGEMINI_API_KEY=AIzaSy...\\n# Optional override:\\nAI_PROVIDER=openai\\n"
75
+ "content": "# Add one or both:\\nOPENAI_API_KEY=sk-...\\nGEMINI_API_KEY=AIzaSy...\\n# Optional override:\\nAI_PROVIDER=openai\\n"
76
76
  }
77
77
  ]
78
78
  }
Binary file
@@ -51,13 +51,19 @@ const downloadFile = (url, dest) => {
51
51
 
52
52
  const unzipFile = (zipPath, destDir) => {
53
53
  console.log('📦 Extracting model...');
54
+ const isWin = process.platform === 'win32';
54
55
  try {
55
- // Try unzip command (macOS/Linux)
56
- execSync(`unzip -q "${zipPath}" -d "${destDir}"`, { stdio: 'inherit' });
56
+ if (isWin) {
57
+ execSync(
58
+ `powershell -NoProfile -Command "Expand-Archive -Path \"${zipPath}\" -DestinationPath \"${destDir}\" -Force"`,
59
+ { stdio: 'inherit' }
60
+ );
61
+ } else {
62
+ execSync(`unzip -q "${zipPath}" -d "${destDir}"`, { stdio: 'inherit' });
63
+ }
57
64
  } catch {
58
- // Fallback: try using node's built-in if available
59
65
  console.error(
60
- '❌ unzip command not found. Please install unzip or extract manually.'
66
+ '❌ Could not extract zip automatically. Please install unzip (macOS/Linux) or ensure PowerShell Expand-Archive works (Windows), or extract manually.'
61
67
  );
62
68
  throw new Error('Extraction failed');
63
69
  }
Binary file