@lastbrain/app 0.1.18 → 0.1.20
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/scripts/init-app.js +45 -19
- package/dist/styles.css +2 -1779
- package/package.json +26 -25
- package/src/scripts/init-app.ts +45 -19
- package/src/styles.css +3 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lastbrain/app",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.20",
|
|
4
4
|
"description": "Framework modulaire Next.js avec CLI et système de modules",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
|
@@ -30,7 +30,28 @@
|
|
|
30
30
|
"dist",
|
|
31
31
|
"src"
|
|
32
32
|
],
|
|
33
|
+
"scripts": {
|
|
34
|
+
"dev": "tsc -p tsconfig.json --watch",
|
|
35
|
+
"build": "tsc -p tsconfig.json && npm run build:css && npm run copy:templates && chmod +x dist/cli.js",
|
|
36
|
+
"build:css": "NODE_ENV=production pnpm exec postcss ./src/styles.css -o ./dist/styles.css",
|
|
37
|
+
"copy:templates": "mkdir -p dist/templates/migrations dist/templates/env.example dist/templates/gitignore && cp src/templates/migrations/* dist/templates/migrations/ 2>/dev/null || true && cp src/templates/env.example/.env.example dist/templates/env.example/ 2>/dev/null || true && cp src/templates/gitignore/.gitignore dist/templates/gitignore/ 2>/dev/null || true",
|
|
38
|
+
"prepublishOnly": "npm run build",
|
|
39
|
+
"module:build": "node dist/scripts/module-build.js",
|
|
40
|
+
"module:create": "node dist/scripts/module-create.js",
|
|
41
|
+
"module:add": "node dist/scripts/module-add.js",
|
|
42
|
+
"module:remove": "node dist/scripts/module-remove.js",
|
|
43
|
+
"module:list": "node dist/scripts/module-list.js",
|
|
44
|
+
"build:modules": "node dist/scripts/module-build.js",
|
|
45
|
+
"db:migrations:sync": "node dist/scripts/db-migrations-sync.js",
|
|
46
|
+
"db:init": "node dist/scripts/db-init.js",
|
|
47
|
+
"readme:create": "node dist/scripts/readme-build.js",
|
|
48
|
+
"dev:shell": "next dev ./src/app-shell -p 3001",
|
|
49
|
+
"dev:sync": "node dist/scripts/dev-sync.js"
|
|
50
|
+
},
|
|
33
51
|
"dependencies": {
|
|
52
|
+
"@lastbrain/core": "workspace:*",
|
|
53
|
+
"@lastbrain/module-auth": "workspace:*",
|
|
54
|
+
"@lastbrain/ui": "workspace:*",
|
|
34
55
|
"@supabase/supabase-js": "^2.36.0",
|
|
35
56
|
"chalk": "^5.3.0",
|
|
36
57
|
"commander": "^12.1.0",
|
|
@@ -39,41 +60,21 @@
|
|
|
39
60
|
"lucide-react": "^0.554.0",
|
|
40
61
|
"next-themes": "^0.4.6",
|
|
41
62
|
"react": "^19.0.0",
|
|
42
|
-
"react-dom": "^19.0.0"
|
|
43
|
-
"@lastbrain/core": "0.1.0",
|
|
44
|
-
"@lastbrain/module-auth": "0.1.1",
|
|
45
|
-
"@lastbrain/ui": "0.1.3"
|
|
63
|
+
"react-dom": "^19.0.0"
|
|
46
64
|
},
|
|
47
65
|
"peerDependencies": {
|
|
48
66
|
"next": ">=15.0.0"
|
|
49
67
|
},
|
|
50
68
|
"devDependencies": {
|
|
51
69
|
"@heroui/theme": "^2.4.23",
|
|
70
|
+
"@tailwindcss/postcss": "^4.1.17",
|
|
52
71
|
"@types/fs-extra": "^11.0.4",
|
|
53
72
|
"@types/inquirer": "^9.0.9",
|
|
54
73
|
"@types/node": "^20.0.0",
|
|
55
|
-
"autoprefixer": "^10.4.0",
|
|
56
74
|
"inquirer": "^13.0.1",
|
|
57
75
|
"postcss": "^8.4.0",
|
|
58
76
|
"postcss-cli": "^11.0.0",
|
|
59
|
-
"tailwindcss": "^
|
|
77
|
+
"tailwindcss": "^4.1.17",
|
|
60
78
|
"typescript": "^5.4.0"
|
|
61
|
-
},
|
|
62
|
-
"scripts": {
|
|
63
|
-
"dev": "tsc -p tsconfig.json --watch",
|
|
64
|
-
"build": "tsc -p tsconfig.json && npm run build:css && npm run copy:templates && chmod +x dist/cli.js",
|
|
65
|
-
"build:css": "NODE_ENV=production pnpm exec postcss ./src/styles.css -o ./dist/styles.css",
|
|
66
|
-
"copy:templates": "mkdir -p dist/templates/migrations dist/templates/env.example dist/templates/gitignore && cp src/templates/migrations/* dist/templates/migrations/ 2>/dev/null || true && cp src/templates/env.example/.env.example dist/templates/env.example/ 2>/dev/null || true && cp src/templates/gitignore/.gitignore dist/templates/gitignore/ 2>/dev/null || true",
|
|
67
|
-
"module:build": "node dist/scripts/module-build.js",
|
|
68
|
-
"module:create": "node dist/scripts/module-create.js",
|
|
69
|
-
"module:add": "node dist/scripts/module-add.js",
|
|
70
|
-
"module:remove": "node dist/scripts/module-remove.js",
|
|
71
|
-
"module:list": "node dist/scripts/module-list.js",
|
|
72
|
-
"build:modules": "node dist/scripts/module-build.js",
|
|
73
|
-
"db:migrations:sync": "node dist/scripts/db-migrations-sync.js",
|
|
74
|
-
"db:init": "node dist/scripts/db-init.js",
|
|
75
|
-
"readme:create": "node dist/scripts/readme-build.js",
|
|
76
|
-
"dev:shell": "next dev ./src/app-shell -p 3001",
|
|
77
|
-
"dev:sync": "node dist/scripts/dev-sync.js"
|
|
78
79
|
}
|
|
79
|
-
}
|
|
80
|
+
}
|
package/src/scripts/init-app.ts
CHANGED
|
@@ -235,9 +235,44 @@ async function addDependencies(
|
|
|
235
235
|
|
|
236
236
|
// Ajouter les dépendances HeroUI si nécessaire
|
|
237
237
|
if (useHeroUI) {
|
|
238
|
-
//
|
|
239
|
-
// Tous les composants sont déjà inclus dans @lastbrain/ui
|
|
238
|
+
// Tous les packages HeroUI nécessaires (car @lastbrain/ui les ré-exporte)
|
|
240
239
|
requiredDeps["@heroui/theme"] = "^2.4.23";
|
|
240
|
+
requiredDeps["@heroui/accordion"] = "^2.2.24";
|
|
241
|
+
requiredDeps["@heroui/alert"] = "^2.2.27";
|
|
242
|
+
requiredDeps["@heroui/autocomplete"] = "^2.3.29";
|
|
243
|
+
requiredDeps["@heroui/avatar"] = "^2.2.22";
|
|
244
|
+
requiredDeps["@heroui/badge"] = "^2.2.17";
|
|
245
|
+
requiredDeps["@heroui/breadcrumbs"] = "^2.2.22";
|
|
246
|
+
requiredDeps["@heroui/button"] = "^2.2.27";
|
|
247
|
+
requiredDeps["@heroui/card"] = "^2.2.25";
|
|
248
|
+
requiredDeps["@heroui/checkbox"] = "^2.3.27";
|
|
249
|
+
requiredDeps["@heroui/chip"] = "^2.2.22";
|
|
250
|
+
requiredDeps["@heroui/code"] = "^2.2.21";
|
|
251
|
+
requiredDeps["@heroui/divider"] = "^2.2.20";
|
|
252
|
+
requiredDeps["@heroui/drawer"] = "^2.2.24";
|
|
253
|
+
requiredDeps["@heroui/dropdown"] = "^2.3.27";
|
|
254
|
+
requiredDeps["@heroui/form"] = "^2.1.27";
|
|
255
|
+
requiredDeps["@heroui/input"] = "^2.4.28";
|
|
256
|
+
requiredDeps["@heroui/link"] = "^2.2.23";
|
|
257
|
+
requiredDeps["@heroui/listbox"] = "^2.3.26";
|
|
258
|
+
requiredDeps["@heroui/modal"] = "^2.2.24";
|
|
259
|
+
requiredDeps["@heroui/navbar"] = "^2.2.25";
|
|
260
|
+
requiredDeps["@heroui/pagination"] = "^2.2.24";
|
|
261
|
+
requiredDeps["@heroui/popover"] = "^2.3.27";
|
|
262
|
+
requiredDeps["@heroui/progress"] = "^2.2.22";
|
|
263
|
+
requiredDeps["@heroui/radio"] = "^2.3.27";
|
|
264
|
+
requiredDeps["@heroui/scroll-shadow"] = "^2.3.18";
|
|
265
|
+
requiredDeps["@heroui/select"] = "^2.4.28";
|
|
266
|
+
requiredDeps["@heroui/skeleton"] = "^2.2.17";
|
|
267
|
+
requiredDeps["@heroui/snippet"] = "^2.2.28";
|
|
268
|
+
requiredDeps["@heroui/spacer"] = "^2.2.21";
|
|
269
|
+
requiredDeps["@heroui/spinner"] = "^2.2.24";
|
|
270
|
+
requiredDeps["@heroui/switch"] = "^2.2.24";
|
|
271
|
+
requiredDeps["@heroui/table"] = "^2.2.27";
|
|
272
|
+
requiredDeps["@heroui/tabs"] = "^2.2.24";
|
|
273
|
+
requiredDeps["@heroui/toast"] = "^2.0.17";
|
|
274
|
+
requiredDeps["@heroui/tooltip"] = "^2.2.24";
|
|
275
|
+
requiredDeps["@heroui/user"] = "^2.2.22";
|
|
241
276
|
|
|
242
277
|
// Dependencies
|
|
243
278
|
requiredDeps["lucide-react"] = "^0.554.0";
|
|
@@ -247,9 +282,9 @@ async function addDependencies(
|
|
|
247
282
|
|
|
248
283
|
// DevDependencies
|
|
249
284
|
const requiredDevDeps = {
|
|
250
|
-
tailwindcss: "^
|
|
285
|
+
tailwindcss: "^4.1.0",
|
|
286
|
+
"@tailwindcss/postcss": "^4.1.0",
|
|
251
287
|
postcss: "^8.4.0",
|
|
252
|
-
autoprefixer: "^10.4.20",
|
|
253
288
|
typescript: "^5.4.0",
|
|
254
289
|
"@types/node": "^20.0.0",
|
|
255
290
|
"@types/react": "^18.3.0",
|
|
@@ -371,9 +406,9 @@ export default function RootLayout({ children }: PropsWithChildren<{}>) {
|
|
|
371
406
|
// Créer globals.css
|
|
372
407
|
const globalsPath = path.join(stylesDir, "globals.css");
|
|
373
408
|
if (!fs.existsSync(globalsPath) || force) {
|
|
374
|
-
const globalsContent = `@
|
|
375
|
-
|
|
376
|
-
@tailwind
|
|
409
|
+
const globalsContent = `@import "tailwindcss";
|
|
410
|
+
|
|
411
|
+
@config "../tailwind.config.mjs";
|
|
377
412
|
`;
|
|
378
413
|
await fs.writeFile(globalsPath, globalsContent);
|
|
379
414
|
console.log(chalk.green("✓ styles/globals.css créé"));
|
|
@@ -677,12 +712,7 @@ export default nextConfig;
|
|
|
677
712
|
|
|
678
713
|
if (useHeroUI) {
|
|
679
714
|
// Configuration avec HeroUI
|
|
680
|
-
tailwindConfig = `
|
|
681
|
-
try {
|
|
682
|
-
heroui = require("@heroui/theme").heroui;
|
|
683
|
-
} catch (e) {
|
|
684
|
-
heroui = () => ({});
|
|
685
|
-
}
|
|
715
|
+
tailwindConfig = `import { heroui } from "@heroui/theme";
|
|
686
716
|
|
|
687
717
|
/** @type {import('tailwindcss').Config} */
|
|
688
718
|
const config = {
|
|
@@ -690,11 +720,8 @@ const config = {
|
|
|
690
720
|
"./app/**/*.{js,ts,jsx,tsx,mdx}",
|
|
691
721
|
"./components/**/*.{js,ts,jsx,tsx,mdx}",
|
|
692
722
|
"./node_modules/@lastbrain/*/src/**/*.{js,jsx,ts,tsx}",
|
|
693
|
-
"./node_modules/@heroui
|
|
723
|
+
"./node_modules/@heroui/theme/dist/**/*.{js,mjs}",
|
|
694
724
|
],
|
|
695
|
-
theme: {
|
|
696
|
-
extend: {},
|
|
697
|
-
},
|
|
698
725
|
darkMode: "class",
|
|
699
726
|
plugins: [heroui()],
|
|
700
727
|
}
|
|
@@ -745,8 +772,7 @@ export default config;
|
|
|
745
772
|
if (!fs.existsSync(postcssConfigPath) || force) {
|
|
746
773
|
const postcssConfig = `export default {
|
|
747
774
|
plugins: {
|
|
748
|
-
tailwindcss: {},
|
|
749
|
-
autoprefixer: {},
|
|
775
|
+
'@tailwindcss/postcss': {},
|
|
750
776
|
},
|
|
751
777
|
};
|
|
752
778
|
`;
|
package/src/styles.css
CHANGED