@lastbrain/app 2.0.21 → 2.0.23

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.
@@ -4,23 +4,23 @@
4
4
  * Mise à jour automatique lors de pnpm version:patch/minor/major
5
5
  */
6
6
  export const PACKAGE_VERSIONS = {
7
- "@lastbrain-labs/module-billing-pro": "^2.0.17",
8
- "@lastbrain-labs/module-cj-analyzer-pro": "^0.1.9",
9
- "@lastbrain-labs/module-core-cart-pro": "^2.0.17",
10
- "@lastbrain-labs/module-core-commerce-pro": "^2.0.17",
11
- "@lastbrain-labs/module-core-order-pro": "^2.0.17",
12
- "@lastbrain-labs/module-core-payment-pro": "^2.0.17",
13
- "@lastbrain-labs/module-core-product-pro": "^2.0.17",
14
- "@lastbrain-labs/module-recipes-pro": "^2.0.17",
15
- "@lastbrain-labs/module-shop-pro": "^0.1.9",
16
- "@lastbrain/app": "^2.0.20",
17
- "@lastbrain/core": "^2.0.18",
18
- "@lastbrain/module-ai": "^2.0.17",
19
- "@lastbrain/module-auth": "^2.0.18",
20
- "@lastbrain/module-legal": "^2.0.17",
21
- "@lastbrain/module-project-board": "^2.0.17",
22
- "@lastbrain/module-tasks": "^2.0.17",
23
- "@lastbrain/ui": "^2.0.18",
7
+ "@lastbrain-labs/module-billing-pro": "^2.0.18",
8
+ "@lastbrain-labs/module-cj-analyzer-pro": "^0.1.10",
9
+ "@lastbrain-labs/module-core-cart-pro": "^2.0.18",
10
+ "@lastbrain-labs/module-core-commerce-pro": "^2.0.18",
11
+ "@lastbrain-labs/module-core-order-pro": "^2.0.18",
12
+ "@lastbrain-labs/module-core-payment-pro": "^2.0.18",
13
+ "@lastbrain-labs/module-core-product-pro": "^2.0.18",
14
+ "@lastbrain-labs/module-recipes-pro": "^2.0.18",
15
+ "@lastbrain-labs/module-shop-pro": "^0.1.10",
16
+ "@lastbrain/app": "^2.0.21",
17
+ "@lastbrain/core": "^2.0.19",
18
+ "@lastbrain/module-ai": "^2.0.18",
19
+ "@lastbrain/module-auth": "^2.0.19",
20
+ "@lastbrain/module-legal": "^2.0.18",
21
+ "@lastbrain/module-project-board": "^2.0.18",
22
+ "@lastbrain/module-tasks": "^2.0.18",
23
+ "@lastbrain/ui": "^2.0.19",
24
24
  "apps/recipe": "^2.0.11",
25
25
  "lastbrain": "^2.0.11",
26
26
  };
@@ -1 +1 @@
1
- {"version":3,"file":"module-build.d.ts","sourceRoot":"","sources":["../../src/scripts/module-build.ts"],"names":[],"mappings":"AAqxDA,wBAAsB,cAAc,kBA8GnC"}
1
+ {"version":3,"file":"module-build.d.ts","sourceRoot":"","sources":["../../src/scripts/module-build.ts"],"names":[],"mappings":"AA8xDA,wBAAsB,cAAc,kBA8GnC"}
@@ -262,16 +262,22 @@ export default function ${wrapperName}${hasDynamicParams ? "(props: Record<strin
262
262
  const propsSignature = hasDynamicParams && paramsType
263
263
  ? `({\n params,\n}: {\n params: Promise<${paramsType}>;\n})`
264
264
  : "()";
265
- // Les composants utilisent useParams() en interne, on ne passe jamais params en props
266
- // On fait juste l'unwrap pour Next.js 15 si des params existent
267
- const awaitParams = hasDynamicParams
265
+ // Détecter si c'est un Server Component (entryPoint: "server")
266
+ const isServerComponent = page.entryPoint === "server";
267
+ // Les Server Components reçoivent params en props
268
+ // Les Client Components utilisent useParams() en interne
269
+ const componentProps = isServerComponent && hasDynamicParams
270
+ ? "params={params}"
271
+ : "";
272
+ // Si params existe mais n'est pas passé au composant, on doit le unwrap quand même
273
+ const awaitParams = hasDynamicParams && !isServerComponent
268
274
  ? "await params; // Unwrap params for Next.js 15\n "
269
275
  : "";
270
276
  content = `// GENERATED BY LASTBRAIN MODULE BUILD
271
277
  import { ${page.componentExport} } from "${importPath}";
272
278
  ${page.metadataExport ? `\nexport { ${page.metadataExport} as generateMetadata } from "${importPath}";\n` : ""}
273
279
  export default ${hasDynamicParams ? "async " : ""}function ${wrapperName}${propsSignature} {
274
- ${awaitParams}return <${page.componentExport} />;
280
+ ${awaitParams}return <${page.componentExport} ${componentProps} />;
275
281
  }
276
282
  `;
277
283
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lastbrain/app",
3
- "version": "2.0.21",
3
+ "version": "2.0.23",
4
4
  "description": "Framework modulaire Next.js avec CLI et système de modules",
5
5
  "private": false,
6
6
  "type": "module",
@@ -24,7 +24,8 @@
24
24
  "directory": "packages/app"
25
25
  },
26
26
  "publishConfig": {
27
- "access": "public"
27
+ "access": "public",
28
+ "registry": "https://registry.npmjs.org"
28
29
  },
29
30
  "bin": {
30
31
  "lastbrain": "./dist/cli.js"
@@ -50,9 +51,28 @@
50
51
  "default": "./dist/i18n/server-lang.js"
51
52
  }
52
53
  },
54
+ "scripts": {
55
+ "dev": "tsc -p tsconfig.json --watch",
56
+ "build": "tsc -p tsconfig.json && npm run build:css && npm run copy:templates && chmod +x dist/cli.js 2>/dev/null || true",
57
+ "build:css": "NODE_ENV=production pnpm exec postcss ./src/styles.css -o ./dist/styles.css",
58
+ "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)",
59
+ "lint": "eslint .",
60
+ "prepublishOnly": "if [ -z \"$CI\" ]; then node ../../scripts/pre-publish.js && npm run build; fi",
61
+ "module:build": "node dist/scripts/module-build.js",
62
+ "module:create": "node dist/scripts/module-create.js",
63
+ "module:add": "node dist/scripts/module-add.js",
64
+ "module:remove": "node dist/scripts/module-remove.js",
65
+ "module:list": "node dist/scripts/module-list.js",
66
+ "build:modules": "node dist/scripts/module-build.js",
67
+ "db:migrations:sync": "node dist/scripts/db-migrations-sync.js",
68
+ "db:init": "node dist/scripts/db-init.js",
69
+ "readme:create": "node dist/scripts/readme-build.js",
70
+ "dev:shell": "next dev ./src/app-shell -p 3001",
71
+ "dev:sync": "node dist/scripts/dev-sync.js"
72
+ },
53
73
  "dependencies": {
54
- "@lastbrain/core": "^2.0.19",
55
- "@lastbrain/ui": "^2.0.19",
74
+ "@lastbrain/core": "^2.0.20",
75
+ "@lastbrain/ui": "^2.0.20",
56
76
  "@supabase/supabase-js": "^2.84.0",
57
77
  "chalk": "^5.3.0",
58
78
  "commander": "^14.0.2",
@@ -81,23 +101,5 @@
81
101
  "postcss-cli": "^11.0.0",
82
102
  "tailwindcss": "^4.1.17",
83
103
  "typescript": "^5.4.0"
84
- },
85
- "scripts": {
86
- "dev": "tsc -p tsconfig.json --watch",
87
- "build": "tsc -p tsconfig.json && npm run build:css && npm run copy:templates && chmod +x dist/cli.js 2>/dev/null || true",
88
- "build:css": "NODE_ENV=production pnpm exec postcss ./src/styles.css -o ./dist/styles.css",
89
- "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)",
90
- "lint": "eslint .",
91
- "module:build": "node dist/scripts/module-build.js",
92
- "module:create": "node dist/scripts/module-create.js",
93
- "module:add": "node dist/scripts/module-add.js",
94
- "module:remove": "node dist/scripts/module-remove.js",
95
- "module:list": "node dist/scripts/module-list.js",
96
- "build:modules": "node dist/scripts/module-build.js",
97
- "db:migrations:sync": "node dist/scripts/db-migrations-sync.js",
98
- "db:init": "node dist/scripts/db-init.js",
99
- "readme:create": "node dist/scripts/readme-build.js",
100
- "dev:shell": "next dev ./src/app-shell -p 3001",
101
- "dev:sync": "node dist/scripts/dev-sync.js"
102
104
  }
103
- }
105
+ }
@@ -5,23 +5,23 @@
5
5
  */
6
6
 
7
7
  export const PACKAGE_VERSIONS: Record<string, string> = {
8
- "@lastbrain-labs/module-billing-pro": "^2.0.17",
9
- "@lastbrain-labs/module-cj-analyzer-pro": "^0.1.9",
10
- "@lastbrain-labs/module-core-cart-pro": "^2.0.17",
11
- "@lastbrain-labs/module-core-commerce-pro": "^2.0.17",
12
- "@lastbrain-labs/module-core-order-pro": "^2.0.17",
13
- "@lastbrain-labs/module-core-payment-pro": "^2.0.17",
14
- "@lastbrain-labs/module-core-product-pro": "^2.0.17",
15
- "@lastbrain-labs/module-recipes-pro": "^2.0.17",
16
- "@lastbrain-labs/module-shop-pro": "^0.1.9",
17
- "@lastbrain/app": "^2.0.20",
18
- "@lastbrain/core": "^2.0.18",
19
- "@lastbrain/module-ai": "^2.0.17",
20
- "@lastbrain/module-auth": "^2.0.18",
21
- "@lastbrain/module-legal": "^2.0.17",
22
- "@lastbrain/module-project-board": "^2.0.17",
23
- "@lastbrain/module-tasks": "^2.0.17",
24
- "@lastbrain/ui": "^2.0.18",
8
+ "@lastbrain-labs/module-billing-pro": "^2.0.18",
9
+ "@lastbrain-labs/module-cj-analyzer-pro": "^0.1.10",
10
+ "@lastbrain-labs/module-core-cart-pro": "^2.0.18",
11
+ "@lastbrain-labs/module-core-commerce-pro": "^2.0.18",
12
+ "@lastbrain-labs/module-core-order-pro": "^2.0.18",
13
+ "@lastbrain-labs/module-core-payment-pro": "^2.0.18",
14
+ "@lastbrain-labs/module-core-product-pro": "^2.0.18",
15
+ "@lastbrain-labs/module-recipes-pro": "^2.0.18",
16
+ "@lastbrain-labs/module-shop-pro": "^0.1.10",
17
+ "@lastbrain/app": "^2.0.21",
18
+ "@lastbrain/core": "^2.0.19",
19
+ "@lastbrain/module-ai": "^2.0.18",
20
+ "@lastbrain/module-auth": "^2.0.19",
21
+ "@lastbrain/module-legal": "^2.0.18",
22
+ "@lastbrain/module-project-board": "^2.0.18",
23
+ "@lastbrain/module-tasks": "^2.0.18",
24
+ "@lastbrain/ui": "^2.0.19",
25
25
  "apps/recipe": "^2.0.11",
26
26
  "lastbrain": "^2.0.11",
27
27
  };
@@ -330,17 +330,26 @@ export default function ${wrapperName}${hasDynamicParams ? "(props: Record<strin
330
330
  ? `({\n params,\n}: {\n params: Promise<${paramsType}>;\n})`
331
331
  : "()";
332
332
 
333
- // Les composants utilisent useParams() en interne, on ne passe jamais params en props
334
- // On fait juste l'unwrap pour Next.js 15 si des params existent
335
- const awaitParams = hasDynamicParams
336
- ? "await params; // Unwrap params for Next.js 15\n "
333
+ // Détecter si c'est un Server Component (entryPoint: "server")
334
+ const isServerComponent = page.entryPoint === "server";
335
+
336
+ // Les Server Components reçoivent params en props
337
+ // Les Client Components utilisent useParams() en interne
338
+ const componentProps = isServerComponent && hasDynamicParams
339
+ ? "params={params}"
337
340
  : "";
338
341
 
342
+ // Si params existe mais n'est pas passé au composant, on doit le unwrap quand même
343
+ const awaitParams =
344
+ hasDynamicParams && !isServerComponent
345
+ ? "await params; // Unwrap params for Next.js 15\n "
346
+ : "";
347
+
339
348
  content = `// GENERATED BY LASTBRAIN MODULE BUILD
340
349
  import { ${page.componentExport} } from "${importPath}";
341
350
  ${page.metadataExport ? `\nexport { ${page.metadataExport} as generateMetadata } from "${importPath}";\n` : ""}
342
351
  export default ${hasDynamicParams ? "async " : ""}function ${wrapperName}${propsSignature} {
343
- ${awaitParams}return <${page.componentExport} />;
352
+ ${awaitParams}return <${page.componentExport} ${componentProps} />;
344
353
  }
345
354
  `;
346
355
  }