@lastbrain/app 0.1.24 → 0.1.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/module-registry.test.d.ts +2 -0
- package/dist/__tests__/module-registry.test.d.ts.map +1 -0
- package/dist/__tests__/module-registry.test.js +64 -0
- package/dist/app-shell/(admin)/layout.d.ts +3 -2
- package/dist/app-shell/(admin)/layout.d.ts.map +1 -1
- package/dist/app-shell/(admin)/layout.js +1 -1
- package/dist/app-shell/(auth)/layout.d.ts +3 -2
- package/dist/app-shell/(auth)/layout.d.ts.map +1 -1
- package/dist/app-shell/(auth)/layout.js +1 -1
- package/dist/app-shell/(public)/page.d.ts.map +1 -1
- package/dist/cli.js +50 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/layouts/AdminLayout.d.ts +3 -2
- package/dist/layouts/AdminLayout.d.ts.map +1 -1
- package/dist/layouts/AdminLayoutWithSidebar.d.ts +8 -0
- package/dist/layouts/AdminLayoutWithSidebar.d.ts.map +1 -0
- package/dist/layouts/AdminLayoutWithSidebar.js +9 -0
- package/dist/layouts/AppProviders.d.ts +3 -2
- package/dist/layouts/AppProviders.d.ts.map +1 -1
- package/dist/layouts/AuthLayout.d.ts +3 -2
- package/dist/layouts/AuthLayout.d.ts.map +1 -1
- package/dist/layouts/AuthLayoutWithSidebar.d.ts +8 -0
- package/dist/layouts/AuthLayoutWithSidebar.d.ts.map +1 -0
- package/dist/layouts/AuthLayoutWithSidebar.js +9 -0
- package/dist/layouts/PublicLayout.d.ts +3 -2
- package/dist/layouts/PublicLayout.d.ts.map +1 -1
- package/dist/layouts/RootLayout.d.ts +3 -2
- package/dist/layouts/RootLayout.d.ts.map +1 -1
- package/dist/scripts/db-init.js +2 -2
- package/dist/scripts/db-migrations-sync.js +5 -5
- package/dist/scripts/dev-sync.js +21 -10
- package/dist/scripts/init-app.d.ts.map +1 -1
- package/dist/scripts/init-app.js +126 -21
- package/dist/scripts/module-add.d.ts.map +1 -1
- package/dist/scripts/module-add.js +20 -7
- package/dist/scripts/module-build.d.ts.map +1 -1
- package/dist/scripts/module-build.js +285 -30
- package/dist/scripts/module-create.d.ts.map +1 -1
- package/dist/scripts/module-create.js +25 -15
- package/dist/scripts/module-remove.d.ts.map +1 -1
- package/dist/scripts/module-remove.js +24 -11
- package/dist/scripts/script-runner.d.ts +5 -0
- package/dist/scripts/script-runner.d.ts.map +1 -0
- package/dist/scripts/script-runner.js +25 -0
- package/dist/styles.css +1 -1
- package/dist/templates/DefaultDoc.js +1 -7
- package/dist/templates/DocPage.d.ts.map +1 -1
- package/dist/templates/DocPage.js +14 -14
- package/dist/templates/components/AppAside.d.ts +6 -0
- package/dist/templates/components/AppAside.d.ts.map +1 -0
- package/dist/templates/components/AppAside.js +9 -0
- package/dist/templates/layouts/admin-layout.d.ts +4 -0
- package/dist/templates/layouts/admin-layout.d.ts.map +1 -0
- package/dist/templates/layouts/admin-layout.js +6 -0
- package/dist/templates/layouts/auth-layout.d.ts +4 -0
- package/dist/templates/layouts/auth-layout.d.ts.map +1 -0
- package/dist/templates/layouts/auth-layout.js +6 -0
- package/package.json +2 -1
- package/src/__tests__/module-registry.test.ts +74 -0
- package/src/app-shell/(admin)/layout.tsx +5 -3
- package/src/app-shell/(auth)/layout.tsx +5 -3
- package/src/app-shell/(public)/page.tsx +6 -2
- package/src/auth/useAuthSession.ts +1 -1
- package/src/cli.ts +51 -1
- package/src/index.ts +6 -0
- package/src/layouts/AdminLayout.tsx +1 -3
- package/src/layouts/AdminLayoutWithSidebar.tsx +35 -0
- package/src/layouts/AppProviders.tsx +3 -5
- package/src/layouts/AuthLayout.tsx +1 -3
- package/src/layouts/AuthLayoutWithSidebar.tsx +35 -0
- package/src/layouts/PublicLayout.tsx +1 -3
- package/src/layouts/RootLayout.tsx +1 -2
- package/src/scripts/db-init.ts +13 -8
- package/src/scripts/db-migrations-sync.ts +4 -4
- package/src/scripts/dev-sync.ts +49 -18
- package/src/scripts/init-app.ts +246 -73
- package/src/scripts/module-add.ts +49 -23
- package/src/scripts/module-build.ts +393 -88
- package/src/scripts/module-create.ts +85 -49
- package/src/scripts/module-remove.ts +116 -57
- package/src/scripts/readme-build.ts +2 -2
- package/src/scripts/script-runner.ts +28 -0
- package/src/templates/AuthGuidePage.tsx +1 -1
- package/src/templates/DefaultDoc.tsx +7 -7
- package/src/templates/DocPage.tsx +74 -46
|
@@ -30,8 +30,7 @@ export const AVAILABLE_MODULES: ModuleDefinition[] = [
|
|
|
30
30
|
name: "ai",
|
|
31
31
|
package: "@lastbrain/module-ai",
|
|
32
32
|
displayName: "🤖 AI Generation",
|
|
33
|
-
description:
|
|
34
|
-
"Génération de texte et d'images avec gestion de tokens",
|
|
33
|
+
description: "Génération de texte et d'images avec gestion de tokens",
|
|
35
34
|
hasMigrations: true,
|
|
36
35
|
migrationsPath: "supabase/migrations",
|
|
37
36
|
migrationsDownPath: "supabase/migrations-down",
|
|
@@ -45,7 +44,7 @@ export async function addModule(moduleName: string, targetDir: string) {
|
|
|
45
44
|
const module = AVAILABLE_MODULES.find((m) => m.name === moduleName);
|
|
46
45
|
if (!module) {
|
|
47
46
|
console.error(
|
|
48
|
-
chalk.red(`❌ Module "${moduleName}" non trouvé. Modules disponibles:`)
|
|
47
|
+
chalk.red(`❌ Module "${moduleName}" non trouvé. Modules disponibles:`),
|
|
49
48
|
);
|
|
50
49
|
AVAILABLE_MODULES.forEach((m) => {
|
|
51
50
|
console.log(chalk.gray(` - ${m.name}: ${m.description}`));
|
|
@@ -81,14 +80,13 @@ export async function addModule(moduleName: string, targetDir: string) {
|
|
|
81
80
|
console.log(chalk.yellow("📥 Installation des dépendances..."));
|
|
82
81
|
try {
|
|
83
82
|
execSync("pnpm install", { cwd: targetDir, stdio: "inherit" });
|
|
84
|
-
} catch
|
|
83
|
+
} catch {
|
|
85
84
|
console.error(chalk.red("❌ Erreur lors de l'installation"));
|
|
86
85
|
process.exit(1);
|
|
87
86
|
}
|
|
88
87
|
|
|
89
88
|
// 5. Copier les migrations du module
|
|
90
|
-
|
|
91
|
-
|
|
89
|
+
const copiedMigrationFiles: string[] = [];
|
|
92
90
|
if (module.hasMigrations) {
|
|
93
91
|
console.log(chalk.yellow("\n📋 Copie des migrations du module..."));
|
|
94
92
|
|
|
@@ -96,12 +94,12 @@ export async function addModule(moduleName: string, targetDir: string) {
|
|
|
96
94
|
const modulePackagePath = path.join(
|
|
97
95
|
targetDir,
|
|
98
96
|
"node_modules",
|
|
99
|
-
...module.package.split("/")
|
|
97
|
+
...module.package.split("/"),
|
|
100
98
|
);
|
|
101
99
|
|
|
102
100
|
const moduleMigrationsDir = path.join(
|
|
103
101
|
modulePackagePath,
|
|
104
|
-
module.migrationsPath || "supabase/migrations"
|
|
102
|
+
module.migrationsPath || "supabase/migrations",
|
|
105
103
|
);
|
|
106
104
|
|
|
107
105
|
const projectMigrationsDir = path.join(targetDir, "supabase", "migrations");
|
|
@@ -123,12 +121,20 @@ export async function addModule(moduleName: string, targetDir: string) {
|
|
|
123
121
|
|
|
124
122
|
// 6. Demander comment appliquer les migrations
|
|
125
123
|
console.log(
|
|
126
|
-
chalk.yellow("\n🗄️ Application des migrations à la base de données\n")
|
|
124
|
+
chalk.yellow("\n🗄️ Application des migrations à la base de données\n"),
|
|
127
125
|
);
|
|
128
|
-
|
|
126
|
+
|
|
129
127
|
console.log("Choisissez une option:");
|
|
130
|
-
console.log(
|
|
131
|
-
|
|
128
|
+
console.log(
|
|
129
|
+
chalk.cyan(
|
|
130
|
+
" 1) 🔄 Reset complet (supabase db reset) - Recommandé en dev",
|
|
131
|
+
),
|
|
132
|
+
);
|
|
133
|
+
console.log(
|
|
134
|
+
chalk.cyan(
|
|
135
|
+
" 2) ⬆️ Push uniquement les nouvelles migrations (supabase migration up)",
|
|
136
|
+
),
|
|
137
|
+
);
|
|
132
138
|
console.log(chalk.cyan(" 3) ⏭️ Ignorer pour l'instant"));
|
|
133
139
|
console.log("");
|
|
134
140
|
|
|
@@ -159,22 +165,29 @@ export async function addModule(moduleName: string, targetDir: string) {
|
|
|
159
165
|
try {
|
|
160
166
|
execSync("supabase db reset", { cwd: targetDir, stdio: "inherit" });
|
|
161
167
|
console.log(chalk.green("✓ Base de données réinitialisée"));
|
|
162
|
-
} catch
|
|
168
|
+
} catch {
|
|
163
169
|
console.error(chalk.red("❌ Erreur lors du reset"));
|
|
164
170
|
}
|
|
165
171
|
} else if (migrationAction === "push") {
|
|
166
|
-
console.log(
|
|
172
|
+
console.log(
|
|
173
|
+
chalk.yellow("\n⬆️ Application des nouvelles migrations..."),
|
|
174
|
+
);
|
|
167
175
|
try {
|
|
168
|
-
execSync("supabase migration up", {
|
|
176
|
+
execSync("supabase migration up", {
|
|
177
|
+
cwd: targetDir,
|
|
178
|
+
stdio: "inherit",
|
|
179
|
+
});
|
|
169
180
|
console.log(chalk.green("✓ Migrations appliquées"));
|
|
170
|
-
} catch
|
|
171
|
-
console.error(
|
|
181
|
+
} catch {
|
|
182
|
+
console.error(
|
|
183
|
+
chalk.red("❌ Erreur lors de l'application des migrations"),
|
|
184
|
+
);
|
|
172
185
|
}
|
|
173
186
|
} else {
|
|
174
187
|
console.log(
|
|
175
188
|
chalk.gray(
|
|
176
|
-
"\n⚠️ N'oubliez pas d'appliquer les migrations avec:\n supabase db reset ou supabase migration up\n"
|
|
177
|
-
)
|
|
189
|
+
"\n⚠️ N'oubliez pas d'appliquer les migrations avec:\n supabase db reset ou supabase migration up\n",
|
|
190
|
+
),
|
|
178
191
|
);
|
|
179
192
|
}
|
|
180
193
|
} else {
|
|
@@ -201,7 +214,9 @@ export async function addModule(moduleName: string, targetDir: string) {
|
|
|
201
214
|
|
|
202
215
|
// Initialiser tous les modules disponibles s'ils n'existent pas
|
|
203
216
|
for (const availableModule of AVAILABLE_MODULES) {
|
|
204
|
-
const exists = modulesConfig.modules.find(
|
|
217
|
+
const exists = modulesConfig.modules.find(
|
|
218
|
+
(m) => m.package === availableModule.package,
|
|
219
|
+
);
|
|
205
220
|
if (!exists) {
|
|
206
221
|
modulesConfig.modules.push({
|
|
207
222
|
package: availableModule.package,
|
|
@@ -212,7 +227,7 @@ export async function addModule(moduleName: string, targetDir: string) {
|
|
|
212
227
|
}
|
|
213
228
|
|
|
214
229
|
const existingModuleIndex = modulesConfig.modules.findIndex(
|
|
215
|
-
(m) => m.package === module.package
|
|
230
|
+
(m) => m.package === module.package,
|
|
216
231
|
);
|
|
217
232
|
|
|
218
233
|
const migrationsList = copiedMigrationFiles;
|
|
@@ -234,9 +249,20 @@ export async function addModule(moduleName: string, targetDir: string) {
|
|
|
234
249
|
await fs.writeJson(modulesConfigPath, modulesConfig, { spaces: 2 });
|
|
235
250
|
|
|
236
251
|
console.log(
|
|
237
|
-
chalk.green(`\n✅ Module ${module.displayName} ajouté avec succès!\n`)
|
|
252
|
+
chalk.green(`\n✅ Module ${module.displayName} ajouté avec succès!\n`),
|
|
238
253
|
);
|
|
254
|
+
|
|
255
|
+
// 7. Générer automatiquement les routes du module
|
|
256
|
+
console.log(chalk.yellow("🔧 Génération des routes du module..."));
|
|
257
|
+
try {
|
|
258
|
+
execSync("pnpm build:modules", { cwd: targetDir, stdio: "inherit" });
|
|
259
|
+
console.log(chalk.green("✓ Routes du module générées"));
|
|
260
|
+
} catch (error) {
|
|
261
|
+
console.error(chalk.red("❌ Erreur lors de la génération des routes"));
|
|
262
|
+
console.error(chalk.gray("Vous pouvez les générer manuellement avec: pnpm build:modules"));
|
|
263
|
+
}
|
|
264
|
+
|
|
239
265
|
console.log(
|
|
240
|
-
chalk.gray("
|
|
266
|
+
chalk.gray("\nLe serveur de développement redémarrera automatiquement.\n"),
|
|
241
267
|
);
|
|
242
268
|
}
|