@lastbrain/app 0.1.31 → 0.1.32

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,54 @@ 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
+ if (fs.existsSync(moduleAiPkgPath)) {
215
+ const moduleAiPkg = JSON.parse(fs.readFileSync(moduleAiPkgPath, "utf-8"));
216
+ moduleAiVersion = `^${moduleAiPkg.version}`;
217
+ }
218
+ if (fs.existsSync(corePkgPath)) {
219
+ const corePkg = JSON.parse(fs.readFileSync(corePkgPath, "utf-8"));
220
+ coreVersion = `^${corePkg.version}`;
221
+ }
222
+ if (fs.existsSync(uiPkgPath)) {
223
+ const uiPkg = JSON.parse(fs.readFileSync(uiPkgPath, "utf-8"));
224
+ uiVersion = `^${uiPkg.version}`;
225
+ }
202
226
  return {
203
- app: appVersion,
204
- core: coreDep || appVersion,
205
- ui: uiDep || appVersion,
206
- moduleAuth: authDep || appVersion,
227
+ app: cliVersion,
228
+ core: coreVersion,
229
+ ui: uiVersion,
230
+ moduleAuth: moduleAuthVersion,
231
+ moduleAi: moduleAiVersion,
207
232
  };
208
233
  }
209
234
  }
210
- catch {
211
- console.warn(chalk.yellow("⚠️ Impossible de lire les versions locales, utilisation de 'latest'"));
235
+ catch (error) {
236
+ console.warn(chalk.yellow(`⚠️ Impossible de lire les versions locales (${error}), utilisation de 'latest'`));
212
237
  }
213
238
  // Fallback: utiliser "latest"
214
239
  return {
@@ -216,6 +241,7 @@ function getLastBrainVersions(targetDir) {
216
241
  core: "latest",
217
242
  ui: "latest",
218
243
  moduleAuth: "latest",
244
+ moduleAi: "latest",
219
245
  };
220
246
  }
221
247
  async function addDependencies(targetDir, useHeroUI, withAuth, selectedModules = []) {
@@ -243,8 +269,14 @@ async function addDependencies(targetDir, useHeroUI, withAuth, selectedModules =
243
269
  for (const moduleName of selectedModules) {
244
270
  const moduleInfo = AVAILABLE_MODULES.find((m) => m.name === moduleName);
245
271
  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";
272
+ // Utiliser les vraies versions au lieu de "latest"
273
+ if (moduleInfo.package === "@lastbrain/module-ai") {
274
+ requiredDeps[moduleInfo.package] = versions.moduleAi;
275
+ }
276
+ else {
277
+ // Pour les futurs modules, utiliser "latest" en attendant
278
+ requiredDeps[moduleInfo.package] = "latest";
279
+ }
248
280
  }
249
281
  }
250
282
  // 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.32",
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,74 @@ 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
+ }
308
+
309
+ if (fs.existsSync(moduleAiPkgPath)) {
310
+ const moduleAiPkg = JSON.parse(
311
+ fs.readFileSync(moduleAiPkgPath, "utf-8"),
312
+ );
313
+ moduleAiVersion = `^${moduleAiPkg.version}`;
314
+ }
276
315
 
277
- if (fs.existsSync(appPkgPath)) {
278
- const appPkg = JSON.parse(fs.readFileSync(appPkgPath, "utf-8"));
279
- const appVersion = `^${appPkg.version}`;
316
+ if (fs.existsSync(corePkgPath)) {
317
+ const corePkg = JSON.parse(fs.readFileSync(corePkgPath, "utf-8"));
318
+ coreVersion = `^${corePkg.version}`;
319
+ }
280
320
 
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"];
321
+ if (fs.existsSync(uiPkgPath)) {
322
+ const uiPkg = JSON.parse(fs.readFileSync(uiPkgPath, "utf-8"));
323
+ uiVersion = `^${uiPkg.version}`;
324
+ }
285
325
 
286
326
  return {
287
- app: appVersion,
288
- core: coreDep || appVersion,
289
- ui: uiDep || appVersion,
290
- moduleAuth: authDep || appVersion,
327
+ app: cliVersion,
328
+ core: coreVersion,
329
+ ui: uiVersion,
330
+ moduleAuth: moduleAuthVersion,
331
+ moduleAi: moduleAiVersion,
291
332
  };
292
333
  }
293
- } catch {
334
+ } catch (error) {
294
335
  console.warn(
295
336
  chalk.yellow(
296
- "⚠️ Impossible de lire les versions locales, utilisation de 'latest'",
337
+ `⚠️ Impossible de lire les versions locales (${error}), utilisation de 'latest'`,
297
338
  ),
298
339
  );
299
340
  }
@@ -304,6 +345,7 @@ function getLastBrainVersions(targetDir: string): {
304
345
  core: "latest",
305
346
  ui: "latest",
306
347
  moduleAuth: "latest",
348
+ moduleAi: "latest",
307
349
  };
308
350
  }
309
351
 
@@ -342,8 +384,13 @@ async function addDependencies(
342
384
  for (const moduleName of selectedModules) {
343
385
  const moduleInfo = AVAILABLE_MODULES.find((m) => m.name === moduleName);
344
386
  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";
387
+ // Utiliser les vraies versions au lieu de "latest"
388
+ if (moduleInfo.package === "@lastbrain/module-ai") {
389
+ requiredDeps[moduleInfo.package] = versions.moduleAi;
390
+ } else {
391
+ // Pour les futurs modules, utiliser "latest" en attendant
392
+ requiredDeps[moduleInfo.package] = "latest";
393
+ }
347
394
  }
348
395
  }
349
396