@lastbrain/app 0.1.31 → 0.1.33

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.
@@ -186,29 +186,62 @@ function getLastBrainVersions(targetDir) {
186
186
  core: "workspace:*",
187
187
  ui: "workspace:*",
188
188
  moduleAuth: "workspace:*",
189
+ moduleAi: "workspace:*",
189
190
  };
190
191
  }
191
- // Hors monorepo, lire les versions depuis les package.json locaux (plus fiable que "latest")
192
+ // Hors monorepo, essayer de lire les versions depuis le monorepo source
192
193
  try {
193
- // Essayer de lire depuis node_modules/@lastbrain (si init-app a été installé)
194
- const appPkgPath = path.join(__dirname, "../../package.json");
195
- if (fs.existsSync(appPkgPath)) {
196
- const appPkg = JSON.parse(fs.readFileSync(appPkgPath, "utf-8"));
197
- const appVersion = `^${appPkg.version}`;
198
- // Lire les versions des dépendances de @lastbrain/app
199
- const coreDep = appPkg.dependencies?.["@lastbrain/core"];
200
- const uiDep = appPkg.dependencies?.["@lastbrain/ui"];
201
- const authDep = appPkg.dependencies?.["@lastbrain/module-auth"];
194
+ // Détecter si on est dans le contexte du package CLI en build
195
+ const cliPkgPath = path.join(__dirname, "../../package.json");
196
+ if (fs.existsSync(cliPkgPath)) {
197
+ const cliPkg = JSON.parse(fs.readFileSync(cliPkgPath, "utf-8"));
198
+ const cliVersion = `^${cliPkg.version}`;
199
+ // Essayer de lire les versions depuis le monorepo (si disponible)
200
+ const monorepoRoot = path.join(__dirname, "../../../../");
201
+ const moduleAuthPkgPath = path.join(monorepoRoot, "packages/module-auth/package.json");
202
+ const moduleAiPkgPath = path.join(monorepoRoot, "packages/module-ai/package.json");
203
+ const corePkgPath = path.join(monorepoRoot, "packages/core/package.json");
204
+ const uiPkgPath = path.join(monorepoRoot, "packages/ui/package.json");
205
+ let moduleAuthVersion = cliVersion;
206
+ let moduleAiVersion = cliVersion;
207
+ let coreVersion = cliPkg.dependencies?.["@lastbrain/core"] || cliVersion;
208
+ let uiVersion = cliPkg.dependencies?.["@lastbrain/ui"] || cliVersion;
209
+ // Lire les vraies versions depuis les package.json du monorepo
210
+ if (fs.existsSync(moduleAuthPkgPath)) {
211
+ const moduleAuthPkg = JSON.parse(fs.readFileSync(moduleAuthPkgPath, "utf-8"));
212
+ moduleAuthVersion = `^${moduleAuthPkg.version}`;
213
+ }
214
+ else {
215
+ // Fallback: utiliser latest pour éviter les problèmes de versions
216
+ moduleAuthVersion = "latest";
217
+ }
218
+ if (fs.existsSync(moduleAiPkgPath)) {
219
+ const moduleAiPkg = JSON.parse(fs.readFileSync(moduleAiPkgPath, "utf-8"));
220
+ moduleAiVersion = `^${moduleAiPkg.version}`;
221
+ }
222
+ else {
223
+ // Fallback: utiliser latest pour éviter les problèmes de versions
224
+ moduleAiVersion = "latest";
225
+ }
226
+ if (fs.existsSync(corePkgPath)) {
227
+ const corePkg = JSON.parse(fs.readFileSync(corePkgPath, "utf-8"));
228
+ coreVersion = `^${corePkg.version}`;
229
+ }
230
+ if (fs.existsSync(uiPkgPath)) {
231
+ const uiPkg = JSON.parse(fs.readFileSync(uiPkgPath, "utf-8"));
232
+ uiVersion = `^${uiPkg.version}`;
233
+ }
202
234
  return {
203
- app: appVersion,
204
- core: coreDep || appVersion,
205
- ui: uiDep || appVersion,
206
- moduleAuth: authDep || appVersion,
235
+ app: cliVersion,
236
+ core: coreVersion,
237
+ ui: uiVersion,
238
+ moduleAuth: moduleAuthVersion,
239
+ moduleAi: moduleAiVersion,
207
240
  };
208
241
  }
209
242
  }
210
- catch {
211
- console.warn(chalk.yellow("⚠️ Impossible de lire les versions locales, utilisation de 'latest'"));
243
+ catch (error) {
244
+ console.warn(chalk.yellow(`⚠️ Impossible de lire les versions locales (${error}), utilisation de 'latest'`));
212
245
  }
213
246
  // Fallback: utiliser "latest"
214
247
  return {
@@ -216,6 +249,7 @@ function getLastBrainVersions(targetDir) {
216
249
  core: "latest",
217
250
  ui: "latest",
218
251
  moduleAuth: "latest",
252
+ moduleAi: "latest",
219
253
  };
220
254
  }
221
255
  async function addDependencies(targetDir, useHeroUI, withAuth, selectedModules = []) {
@@ -243,8 +277,14 @@ async function addDependencies(targetDir, useHeroUI, withAuth, selectedModules =
243
277
  for (const moduleName of selectedModules) {
244
278
  const moduleInfo = AVAILABLE_MODULES.find((m) => m.name === moduleName);
245
279
  if (moduleInfo && moduleInfo.package !== "@lastbrain/module-auth") {
246
- // Pour les autres modules, utiliser "latest" pour éviter les problèmes de versions
247
- requiredDeps[moduleInfo.package] = "latest";
280
+ // Utiliser les vraies versions au lieu de "latest"
281
+ if (moduleInfo.package === "@lastbrain/module-ai") {
282
+ requiredDeps[moduleInfo.package] = versions.moduleAi;
283
+ }
284
+ else {
285
+ // Pour les futurs modules, utiliser "latest" en attendant
286
+ requiredDeps[moduleInfo.package] = "latest";
287
+ }
248
288
  }
249
289
  }
250
290
  // Ajouter les dépendances HeroUI si nécessaire
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lastbrain/app",
3
- "version": "0.1.31",
3
+ "version": "0.1.33",
4
4
  "description": "Framework modulaire Next.js avec CLI et système de modules",
5
5
  "private": false,
6
6
  "type": "module",
@@ -252,6 +252,7 @@ function getLastBrainVersions(targetDir: string): {
252
252
  core: string;
253
253
  ui: string;
254
254
  moduleAuth: string;
255
+ moduleAi: string;
255
256
  } {
256
257
  const targetIsInMonorepo =
257
258
  fs.existsSync(
@@ -266,34 +267,80 @@ function getLastBrainVersions(targetDir: string): {
266
267
  core: "workspace:*",
267
268
  ui: "workspace:*",
268
269
  moduleAuth: "workspace:*",
270
+ moduleAi: "workspace:*",
269
271
  };
270
272
  }
271
273
 
272
- // Hors monorepo, lire les versions depuis les package.json locaux (plus fiable que "latest")
274
+ // Hors monorepo, essayer de lire les versions depuis le monorepo source
273
275
  try {
274
- // Essayer de lire depuis node_modules/@lastbrain (si init-app a été installé)
275
- const appPkgPath = path.join(__dirname, "../../package.json");
276
+ // Détecter si on est dans le contexte du package CLI en build
277
+ const cliPkgPath = path.join(__dirname, "../../package.json");
278
+
279
+ if (fs.existsSync(cliPkgPath)) {
280
+ const cliPkg = JSON.parse(fs.readFileSync(cliPkgPath, "utf-8"));
281
+ const cliVersion = `^${cliPkg.version}`;
282
+
283
+ // Essayer de lire les versions depuis le monorepo (si disponible)
284
+ const monorepoRoot = path.join(__dirname, "../../../../");
285
+ const moduleAuthPkgPath = path.join(
286
+ monorepoRoot,
287
+ "packages/module-auth/package.json",
288
+ );
289
+ const moduleAiPkgPath = path.join(
290
+ monorepoRoot,
291
+ "packages/module-ai/package.json",
292
+ );
293
+ const corePkgPath = path.join(monorepoRoot, "packages/core/package.json");
294
+ const uiPkgPath = path.join(monorepoRoot, "packages/ui/package.json");
295
+
296
+ let moduleAuthVersion = cliVersion;
297
+ let moduleAiVersion = cliVersion;
298
+ let coreVersion = cliPkg.dependencies?.["@lastbrain/core"] || cliVersion;
299
+ let uiVersion = cliPkg.dependencies?.["@lastbrain/ui"] || cliVersion;
300
+
301
+ // Lire les vraies versions depuis les package.json du monorepo
302
+ if (fs.existsSync(moduleAuthPkgPath)) {
303
+ const moduleAuthPkg = JSON.parse(
304
+ fs.readFileSync(moduleAuthPkgPath, "utf-8"),
305
+ );
306
+ moduleAuthVersion = `^${moduleAuthPkg.version}`;
307
+ } else {
308
+ // Fallback: utiliser latest pour éviter les problèmes de versions
309
+ moduleAuthVersion = "latest";
310
+ }
311
+
312
+ if (fs.existsSync(moduleAiPkgPath)) {
313
+ const moduleAiPkg = JSON.parse(
314
+ fs.readFileSync(moduleAiPkgPath, "utf-8"),
315
+ );
316
+ moduleAiVersion = `^${moduleAiPkg.version}`;
317
+ } else {
318
+ // Fallback: utiliser latest pour éviter les problèmes de versions
319
+ moduleAiVersion = "latest";
320
+ }
276
321
 
277
- if (fs.existsSync(appPkgPath)) {
278
- const appPkg = JSON.parse(fs.readFileSync(appPkgPath, "utf-8"));
279
- const appVersion = `^${appPkg.version}`;
322
+ if (fs.existsSync(corePkgPath)) {
323
+ const corePkg = JSON.parse(fs.readFileSync(corePkgPath, "utf-8"));
324
+ coreVersion = `^${corePkg.version}`;
325
+ }
280
326
 
281
- // Lire les versions des dépendances de @lastbrain/app
282
- const coreDep = appPkg.dependencies?.["@lastbrain/core"];
283
- const uiDep = appPkg.dependencies?.["@lastbrain/ui"];
284
- const authDep = appPkg.dependencies?.["@lastbrain/module-auth"];
327
+ if (fs.existsSync(uiPkgPath)) {
328
+ const uiPkg = JSON.parse(fs.readFileSync(uiPkgPath, "utf-8"));
329
+ uiVersion = `^${uiPkg.version}`;
330
+ }
285
331
 
286
332
  return {
287
- app: appVersion,
288
- core: coreDep || appVersion,
289
- ui: uiDep || appVersion,
290
- moduleAuth: authDep || appVersion,
333
+ app: cliVersion,
334
+ core: coreVersion,
335
+ ui: uiVersion,
336
+ moduleAuth: moduleAuthVersion,
337
+ moduleAi: moduleAiVersion,
291
338
  };
292
339
  }
293
- } catch {
340
+ } catch (error) {
294
341
  console.warn(
295
342
  chalk.yellow(
296
- "⚠️ Impossible de lire les versions locales, utilisation de 'latest'",
343
+ `⚠️ Impossible de lire les versions locales (${error}), utilisation de 'latest'`,
297
344
  ),
298
345
  );
299
346
  }
@@ -304,6 +351,7 @@ function getLastBrainVersions(targetDir: string): {
304
351
  core: "latest",
305
352
  ui: "latest",
306
353
  moduleAuth: "latest",
354
+ moduleAi: "latest",
307
355
  };
308
356
  }
309
357
 
@@ -342,8 +390,13 @@ async function addDependencies(
342
390
  for (const moduleName of selectedModules) {
343
391
  const moduleInfo = AVAILABLE_MODULES.find((m) => m.name === moduleName);
344
392
  if (moduleInfo && moduleInfo.package !== "@lastbrain/module-auth") {
345
- // Pour les autres modules, utiliser "latest" pour éviter les problèmes de versions
346
- requiredDeps[moduleInfo.package] = "latest";
393
+ // Utiliser les vraies versions au lieu de "latest"
394
+ if (moduleInfo.package === "@lastbrain/module-ai") {
395
+ requiredDeps[moduleInfo.package] = versions.moduleAi;
396
+ } else {
397
+ // Pour les futurs modules, utiliser "latest" en attendant
398
+ requiredDeps[moduleInfo.package] = "latest";
399
+ }
347
400
  }
348
401
  }
349
402