@lastbrain/app 2.0.21 → 2.0.24
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/config/version.js +18 -18
- package/dist/scripts/module-build.d.ts.map +1 -1
- package/dist/scripts/module-build.js +10 -4
- package/package.json +25 -23
- package/src/config/version.ts +18 -18
- package/src/scripts/module-build.ts +19 -6
package/dist/config/version.js
CHANGED
|
@@ -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.
|
|
8
|
-
"@lastbrain-labs/module-cj-analyzer-pro": "^0.1.
|
|
9
|
-
"@lastbrain-labs/module-core-cart-pro": "^2.0.
|
|
10
|
-
"@lastbrain-labs/module-core-commerce-pro": "^2.0.
|
|
11
|
-
"@lastbrain-labs/module-core-order-pro": "^2.0.
|
|
12
|
-
"@lastbrain-labs/module-core-payment-pro": "^2.0.
|
|
13
|
-
"@lastbrain-labs/module-core-product-pro": "^2.0.
|
|
14
|
-
"@lastbrain-labs/module-recipes-pro": "^2.0.
|
|
15
|
-
"@lastbrain-labs/module-shop-pro": "^0.1.
|
|
16
|
-
"@lastbrain/app": "^2.0.
|
|
17
|
-
"@lastbrain/core": "^2.0.
|
|
18
|
-
"@lastbrain/module-ai": "^2.0.
|
|
19
|
-
"@lastbrain/module-auth": "^2.0.
|
|
20
|
-
"@lastbrain/module-legal": "^2.0.
|
|
21
|
-
"@lastbrain/module-project-board": "^2.0.
|
|
22
|
-
"@lastbrain/module-tasks": "^2.0.
|
|
23
|
-
"@lastbrain/ui": "^2.0.
|
|
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":"
|
|
1
|
+
{"version":3,"file":"module-build.d.ts","sourceRoot":"","sources":["../../src/scripts/module-build.ts"],"names":[],"mappings":"AAkyDA,wBAAsB,cAAc,kBA8GnC"}
|
|
@@ -255,6 +255,8 @@ export default function ${wrapperName}${hasDynamicParams ? "(props: Record<strin
|
|
|
255
255
|
const dynamicParamNames = allSegments
|
|
256
256
|
.filter((seg) => seg.startsWith("[") && seg.endsWith("]"))
|
|
257
257
|
.map((seg) => seg.slice(1, -1)); // Enlève les []
|
|
258
|
+
// Détecter si le module path lui-même a des params dynamiques (pas seulement [lang])
|
|
259
|
+
const moduleHasDynamicParams = segments.some((seg) => seg.startsWith("[") && seg.endsWith("]"));
|
|
258
260
|
// Générer le type des params si nécessaire
|
|
259
261
|
const paramsType = dynamicParamNames.length > 0
|
|
260
262
|
? `{ ${dynamicParamNames.map((name) => `${name}: string`).join("; ")} }`
|
|
@@ -262,16 +264,20 @@ export default function ${wrapperName}${hasDynamicParams ? "(props: Record<strin
|
|
|
262
264
|
const propsSignature = hasDynamicParams && paramsType
|
|
263
265
|
? `({\n params,\n}: {\n params: Promise<${paramsType}>;\n})`
|
|
264
266
|
: "()";
|
|
265
|
-
//
|
|
266
|
-
|
|
267
|
-
|
|
267
|
+
// Détecter si c'est un Server Component (entryPoint: "server")
|
|
268
|
+
const isServerComponent = page.entryPoint === "server";
|
|
269
|
+
// Les Server Components reçoivent params en props SEULEMENT si le module lui-même a des params
|
|
270
|
+
// Les Client Components utilisent useParams() en interne
|
|
271
|
+
const componentProps = isServerComponent && moduleHasDynamicParams ? "params={params}" : "";
|
|
272
|
+
// Si params existe mais n'est pas passé au composant, on doit le unwrap quand même
|
|
273
|
+
const awaitParams = hasDynamicParams && !componentProps
|
|
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.
|
|
3
|
+
"version": "2.0.24",
|
|
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.
|
|
55
|
-
"@lastbrain/ui": "^2.0.
|
|
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
|
+
}
|
package/src/config/version.ts
CHANGED
|
@@ -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.
|
|
9
|
-
"@lastbrain-labs/module-cj-analyzer-pro": "^0.1.
|
|
10
|
-
"@lastbrain-labs/module-core-cart-pro": "^2.0.
|
|
11
|
-
"@lastbrain-labs/module-core-commerce-pro": "^2.0.
|
|
12
|
-
"@lastbrain-labs/module-core-order-pro": "^2.0.
|
|
13
|
-
"@lastbrain-labs/module-core-payment-pro": "^2.0.
|
|
14
|
-
"@lastbrain-labs/module-core-product-pro": "^2.0.
|
|
15
|
-
"@lastbrain-labs/module-recipes-pro": "^2.0.
|
|
16
|
-
"@lastbrain-labs/module-shop-pro": "^0.1.
|
|
17
|
-
"@lastbrain/app": "^2.0.
|
|
18
|
-
"@lastbrain/core": "^2.0.
|
|
19
|
-
"@lastbrain/module-ai": "^2.0.
|
|
20
|
-
"@lastbrain/module-auth": "^2.0.
|
|
21
|
-
"@lastbrain/module-legal": "^2.0.
|
|
22
|
-
"@lastbrain/module-project-board": "^2.0.
|
|
23
|
-
"@lastbrain/module-tasks": "^2.0.
|
|
24
|
-
"@lastbrain/ui": "^2.0.
|
|
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
|
};
|
|
@@ -319,6 +319,11 @@ export default function ${wrapperName}${hasDynamicParams ? "(props: Record<strin
|
|
|
319
319
|
.filter((seg) => seg.startsWith("[") && seg.endsWith("]"))
|
|
320
320
|
.map((seg) => seg.slice(1, -1)); // Enlève les []
|
|
321
321
|
|
|
322
|
+
// Détecter si le module path lui-même a des params dynamiques (pas seulement [lang])
|
|
323
|
+
const moduleHasDynamicParams = segments.some(
|
|
324
|
+
(seg) => seg.startsWith("[") && seg.endsWith("]")
|
|
325
|
+
);
|
|
326
|
+
|
|
322
327
|
// Générer le type des params si nécessaire
|
|
323
328
|
const paramsType =
|
|
324
329
|
dynamicParamNames.length > 0
|
|
@@ -330,17 +335,25 @@ export default function ${wrapperName}${hasDynamicParams ? "(props: Record<strin
|
|
|
330
335
|
? `({\n params,\n}: {\n params: Promise<${paramsType}>;\n})`
|
|
331
336
|
: "()";
|
|
332
337
|
|
|
333
|
-
//
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
+
// Détecter si c'est un Server Component (entryPoint: "server")
|
|
339
|
+
const isServerComponent = page.entryPoint === "server";
|
|
340
|
+
|
|
341
|
+
// Les Server Components reçoivent params en props SEULEMENT si le module lui-même a des params
|
|
342
|
+
// Les Client Components utilisent useParams() en interne
|
|
343
|
+
const componentProps =
|
|
344
|
+
isServerComponent && moduleHasDynamicParams ? "params={params}" : "";
|
|
345
|
+
|
|
346
|
+
// Si params existe mais n'est pas passé au composant, on doit le unwrap quand même
|
|
347
|
+
const awaitParams =
|
|
348
|
+
hasDynamicParams && !componentProps
|
|
349
|
+
? "await params; // Unwrap params for Next.js 15\n "
|
|
350
|
+
: "";
|
|
338
351
|
|
|
339
352
|
content = `// GENERATED BY LASTBRAIN MODULE BUILD
|
|
340
353
|
import { ${page.componentExport} } from "${importPath}";
|
|
341
354
|
${page.metadataExport ? `\nexport { ${page.metadataExport} as generateMetadata } from "${importPath}";\n` : ""}
|
|
342
355
|
export default ${hasDynamicParams ? "async " : ""}function ${wrapperName}${propsSignature} {
|
|
343
|
-
${awaitParams}return <${page.componentExport} />;
|
|
356
|
+
${awaitParams}return <${page.componentExport} ${componentProps} />;
|
|
344
357
|
}
|
|
345
358
|
`;
|
|
346
359
|
}
|