@fraza/start 0.0.0-stage → 0.3.4

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.
Files changed (59) hide show
  1. package/CHANGELOG.md +180 -0
  2. package/LICENSE +21 -0
  3. package/README.md +169 -2
  4. package/THIRD-PARTY-NOTICES.md +11 -0
  5. package/bin/agents-block.md +61 -0
  6. package/bin/cli.js +197 -0
  7. package/bin/project.js +281 -0
  8. package/bin/version.js +2 -0
  9. package/changelog.json +577 -0
  10. package/package.json +42 -4
  11. package/templates/app/(admin)/admin/[...admin]/layout.js +3 -0
  12. package/templates/app/(admin)/admin/[...admin]/loading.js +3 -0
  13. package/templates/app/(admin)/admin/[...admin]/page.js +1 -0
  14. package/templates/app/(admin)/admin/error.js +4 -0
  15. package/templates/app/(admin)/admin/layout.js +17 -0
  16. package/templates/app/(admin)/admin/not-found.js +2 -0
  17. package/templates/app/(admin)/admin/page.js +5 -0
  18. package/templates/app/(auth)/auth/[...auth]/page.js +1 -0
  19. package/templates/app/(auth)/auth/page.js +5 -0
  20. package/templates/app/(public)/[...slug]/page.js +29 -0
  21. package/templates/app/(public)/error.js +6 -0
  22. package/templates/app/(public)/layout.js +17 -0
  23. package/templates/app/(public)/not-found.js +20 -0
  24. package/templates/app/(public)/page.js +248 -0
  25. package/templates/app/.fraza/blocks.client.js +8 -0
  26. package/templates/app/.fraza/blocks.server.js +4 -0
  27. package/templates/app/.fraza/modules.client.js +6 -0
  28. package/templates/app/.fraza/modules.generated.js +3 -0
  29. package/templates/app/.fraza/public-pages.server.js +4 -0
  30. package/templates/app/.fraza/sources.css +2 -0
  31. package/templates/app/.fraza/templates.server.js +5 -0
  32. package/templates/app/global-error.js +5 -0
  33. package/templates/app/icon.svg +1 -0
  34. package/templates/app/layout.js +31 -0
  35. package/templates/app/za/[...path]/not-found.js +6 -0
  36. package/templates/app/za/[...path]/page.js +8 -0
  37. package/templates/app/za/api/[...path]/route.js +1 -0
  38. package/templates/app/za/media/[filename]/route.js +1 -0
  39. package/templates/components/fraza/blocks/README.md +207 -0
  40. package/templates/components/fraza/blocks/accordion/fields.js +19 -0
  41. package/templates/components/fraza/blocks/accordion/render.js +47 -0
  42. package/templates/components/fraza/blocks/accordion/template.js +28 -0
  43. package/templates/components/fraza/blocks/callout/fields.js +15 -0
  44. package/templates/components/fraza/blocks/callout/render.js +28 -0
  45. package/templates/components/fraza/blocks/callout/template.js +37 -0
  46. package/templates/components/fraza/blocks/icon-list/fields.js +20 -0
  47. package/templates/components/fraza/blocks/icon-list/render.js +44 -0
  48. package/templates/components/fraza/blocks/icon-list/template.js +89 -0
  49. package/templates/components/fraza/blocks/three-cards/fields.js +19 -0
  50. package/templates/components/fraza/blocks/three-cards/render.js +33 -0
  51. package/templates/components/fraza/blocks/three-cards/template.js +57 -0
  52. package/templates/components/fraza/templates/README.md +293 -0
  53. package/templates/components/fraza/templates/content.js +271 -0
  54. package/templates/components/fraza/templates/default.js +18 -0
  55. package/templates/components/fraza/templates/post-blogue.js +97 -0
  56. package/templates/instrumentation.js +21 -0
  57. package/templates/jsconfig.json +9 -0
  58. package/templates/styles/globals.css +25 -0
  59. package/templates/theme.js +25 -0
package/changelog.json ADDED
@@ -0,0 +1,577 @@
1
+ {
2
+ "name": "@fraza/start",
3
+ "versions": [
4
+ {
5
+ "version": "0.3.4",
6
+ "date": "2026-10-25",
7
+ "breaking": [],
8
+ "envAdded": [],
9
+ "envRemoved": [],
10
+ "templateChanged": [],
11
+ "action": [],
12
+ "entries": [
13
+ {
14
+ "type": "docs",
15
+ "scope": null,
16
+ "subject": "update README and CLI configuration",
17
+ "hash": "7fecf81",
18
+ "breaking": false
19
+ }
20
+ ]
21
+ },
22
+ {
23
+ "version": "0.3.3",
24
+ "date": "2026-10-24",
25
+ "breaking": [],
26
+ "envAdded": [],
27
+ "envRemoved": [],
28
+ "templateChanged": [
29
+ "components/fraza/blocks/README.md",
30
+ "components/fraza/blocks/icon-list/render.js",
31
+ "components/fraza/blocks/icon-list/template.js",
32
+ "components/fraza/icons.js"
33
+ ],
34
+ "action": [
35
+ "npx fraza-doctor --fix"
36
+ ],
37
+ "entries": [
38
+ {
39
+ "type": "refactor",
40
+ "scope": "templates/components/fraza/blocks/icon-list",
41
+ "subject": "update icon resolution",
42
+ "hash": "d5ad8f2",
43
+ "breaking": false
44
+ },
45
+ {
46
+ "type": "refactor",
47
+ "scope": "components",
48
+ "subject": "remove unused icon module",
49
+ "hash": "5fb8291",
50
+ "breaking": false
51
+ }
52
+ ]
53
+ },
54
+ {
55
+ "version": "0.3.2",
56
+ "date": "2026-10-24",
57
+ "breaking": [],
58
+ "envAdded": [],
59
+ "envRemoved": [],
60
+ "templateChanged": [
61
+ "components/fraza/icons.js"
62
+ ],
63
+ "action": [
64
+ "npx fraza-doctor --fix"
65
+ ],
66
+ "entries": [
67
+ {
68
+ "type": "refactor",
69
+ "scope": "components/frazaicons",
70
+ "subject": "group imports and update descriptions",
71
+ "hash": "9fba523",
72
+ "breaking": false
73
+ }
74
+ ]
75
+ },
76
+ {
77
+ "version": "0.3.1",
78
+ "date": "2026-10-24",
79
+ "breaking": [],
80
+ "envAdded": [],
81
+ "envRemoved": [],
82
+ "templateChanged": [
83
+ "components/fraza/blocks/README.md",
84
+ "components/fraza/blocks/accordion/fields.js",
85
+ "components/fraza/blocks/accordion/render.js",
86
+ "components/fraza/blocks/callout/fields.js",
87
+ "components/fraza/blocks/callout/render.js",
88
+ "components/fraza/blocks/icon-list/fields.js",
89
+ "components/fraza/blocks/icon-list/template.js",
90
+ "components/fraza/blocks/three-cards/fields.js",
91
+ "components/fraza/icons.js"
92
+ ],
93
+ "action": [
94
+ "npx fraza-doctor --fix"
95
+ ],
96
+ "entries": [
97
+ {
98
+ "type": "fix",
99
+ "scope": "package.json, package-lock.json",
100
+ "subject": "bump version to 0.3.0",
101
+ "hash": "1a1aa74",
102
+ "breaking": false
103
+ },
104
+ {
105
+ "type": "refactor",
106
+ "scope": "cli",
107
+ "subject": "ensure exact package versions for Fraza projects",
108
+ "hash": "70fa0a3",
109
+ "breaking": false
110
+ },
111
+ {
112
+ "type": "refactor",
113
+ "scope": "fraza",
114
+ "subject": "update icon names and descriptions",
115
+ "hash": "08cdcfe",
116
+ "breaking": false
117
+ },
118
+ {
119
+ "type": "other",
120
+ "scope": null,
121
+ "subject": "fix(fraza(blocks)): update icon imports and labels",
122
+ "hash": "863eeab",
123
+ "breaking": false
124
+ }
125
+ ]
126
+ },
127
+ {
128
+ "version": "0.2.6",
129
+ "date": "2026-10-23",
130
+ "breaking": [],
131
+ "envAdded": [],
132
+ "envRemoved": [],
133
+ "templateChanged": [
134
+ "components/fraza/blocks/accordion/render.js",
135
+ "components/fraza/blocks/callout/render.js",
136
+ "components/fraza/blocks/icon-list/template.js"
137
+ ],
138
+ "action": [
139
+ "npx fraza-doctor --fix"
140
+ ],
141
+ "entries": [
142
+ {
143
+ "type": "refactor",
144
+ "scope": "bin/cli.js, templates/components/fraza/blocks/**/*.render.js, templates/components/fraza/blocks/icon-list/template.js, test/templates.test.js",
145
+ "subject": "update dependencies and imports to use @fraza/icons",
146
+ "hash": "8a1bc61",
147
+ "breaking": false
148
+ }
149
+ ]
150
+ },
151
+ {
152
+ "version": "0.2.5",
153
+ "date": "2026-10-22",
154
+ "breaking": [],
155
+ "envAdded": [],
156
+ "envRemoved": [],
157
+ "templateChanged": [
158
+ "components/fraza/icons.js"
159
+ ],
160
+ "action": [
161
+ "npx fraza-doctor --fix"
162
+ ],
163
+ "entries": [
164
+ {
165
+ "type": "refactor",
166
+ "scope": "fraza/icons",
167
+ "subject": "update icon descriptions and paths",
168
+ "hash": "12490c5",
169
+ "breaking": false
170
+ }
171
+ ]
172
+ },
173
+ {
174
+ "version": "0.2.4",
175
+ "date": "2026-10-21",
176
+ "breaking": [],
177
+ "envAdded": [],
178
+ "envRemoved": [],
179
+ "templateChanged": [
180
+ "app/(public)/page.js"
181
+ ],
182
+ "action": [
183
+ "npx fraza-doctor --fix"
184
+ ],
185
+ "entries": [
186
+ {
187
+ "type": "chore",
188
+ "scope": null,
189
+ "subject": "update app page and README",
190
+ "hash": "e66aa1f",
191
+ "breaking": false
192
+ }
193
+ ]
194
+ },
195
+ {
196
+ "version": "0.2.3",
197
+ "date": "2026-10-21",
198
+ "breaking": [],
199
+ "envAdded": [],
200
+ "envRemoved": [],
201
+ "templateChanged": [
202
+ "app/za/[...path]/not-found.js",
203
+ "app/za/[...path]/page.js",
204
+ "app/za/api/[...path]/route.js",
205
+ "app/za/media/[filename]/route.js",
206
+ "components/fraza/blocks/README.md",
207
+ "components/fraza/templates/README.md",
208
+ "components/fraza/templates/post-blogue.js"
209
+ ],
210
+ "action": [
211
+ "npx fraza-doctor --fix"
212
+ ],
213
+ "entries": [
214
+ {
215
+ "type": "fix",
216
+ "scope": "components/fraza",
217
+ "subject": "update API endpoint URLs",
218
+ "hash": "a6839a7",
219
+ "breaking": false
220
+ },
221
+ {
222
+ "type": "refactor",
223
+ "scope": null,
224
+ "subject": "rename files from fraza to za",
225
+ "hash": "da3f362",
226
+ "breaking": false
227
+ }
228
+ ]
229
+ },
230
+ {
231
+ "version": "0.2.2",
232
+ "date": "2026-10-20",
233
+ "breaking": [],
234
+ "envAdded": [],
235
+ "envRemoved": [],
236
+ "templateChanged": [],
237
+ "action": [],
238
+ "entries": [
239
+ {
240
+ "type": "fix",
241
+ "scope": "package.json",
242
+ "subject": "correct bin path",
243
+ "hash": "ef61e32",
244
+ "breaking": false
245
+ }
246
+ ]
247
+ },
248
+ {
249
+ "version": "0.2.1",
250
+ "date": "2026-10-20",
251
+ "breaking": [
252
+ "decide the admin 404 in the layout of [...admin], render it in the shell",
253
+ "boot from @fraza/core/init, import Button by its own entry on the public pages",
254
+ "drop app/(public)/loading.js, which made every unknown URL answer 200",
255
+ "pin create-next-app to the tested Next, check the prerequisites first",
256
+ "track .env.example, keep .env.local and every other .env out of git",
257
+ "never copy the registry token into the project .npmrc",
258
+ "drop fs-extra, require Node 20.12, test the generation steps"
259
+ ],
260
+ "envAdded": [],
261
+ "envRemoved": [],
262
+ "templateChanged": [
263
+ "app/(admin)/admin/[...admin]/layout.js",
264
+ "app/(admin)/admin/[...admin]/loading.js",
265
+ "app/(admin)/admin/error.js",
266
+ "app/(admin)/admin/loading.js",
267
+ "app/(admin)/admin/not-found.js",
268
+ "app/(public)/[...slug]/page.js",
269
+ "app/(public)/error.js",
270
+ "app/(public)/layout.js",
271
+ "app/(public)/loading.js",
272
+ "app/(public)/not-found.js",
273
+ "app/(public)/page.js",
274
+ "app/global-error.js",
275
+ "components/fraza/blocks/README.md",
276
+ "components/fraza/blocks/icon-list/render.js",
277
+ "components/fraza/templates/README.md",
278
+ "components/fraza/templates/content.js",
279
+ "instrumentation.js",
280
+ "jsconfig.json",
281
+ "styles/globals.css"
282
+ ],
283
+ "action": [
284
+ "npx fraza-doctor --fix"
285
+ ],
286
+ "entries": [
287
+ {
288
+ "type": "docs",
289
+ "scope": "readme",
290
+ "subject": "npm run release warns about breaking changes in a patch, it no longer refuses",
291
+ "hash": "e913df9",
292
+ "breaking": false
293
+ },
294
+ {
295
+ "type": "docs",
296
+ "scope": "readme",
297
+ "subject": "say npm run release refuses patch while breaking changes wait",
298
+ "hash": "ed209d8",
299
+ "breaking": false
300
+ },
301
+ {
302
+ "type": "feat",
303
+ "scope": "release",
304
+ "subject": "bump the version in npm run release, patch by default",
305
+ "hash": "6a87a26",
306
+ "breaking": false
307
+ },
308
+ {
309
+ "type": "feat",
310
+ "scope": "release",
311
+ "subject": "check, publish, then tag and push, with changelog and version module",
312
+ "hash": "ce8f04a",
313
+ "breaking": false
314
+ },
315
+ {
316
+ "type": "fix",
317
+ "scope": "templates",
318
+ "subject": "pass the links of an image and an icon list through sanitizeUrl",
319
+ "hash": "d268cc2",
320
+ "breaking": false
321
+ },
322
+ {
323
+ "type": "fix",
324
+ "scope": "templates",
325
+ "subject": "decide the admin 404 in the layout of [...admin], render it in the shell",
326
+ "hash": "69c8bca",
327
+ "breaking": true
328
+ },
329
+ {
330
+ "type": "fix",
331
+ "scope": "templates",
332
+ "subject": "render a linked image from the filename the Medias module resolves",
333
+ "hash": "8cfc288",
334
+ "breaking": false
335
+ },
336
+ {
337
+ "type": "fix",
338
+ "scope": "templates",
339
+ "subject": "boot from @fraza/core/init, import Button by its own entry on the public pages",
340
+ "hash": "c62e26c",
341
+ "breaking": true
342
+ },
343
+ {
344
+ "type": "docs",
345
+ "scope": "cli",
346
+ "subject": "say the core now declares Next 16.3.8 as tested",
347
+ "hash": "9ddec07",
348
+ "breaking": false
349
+ },
350
+ {
351
+ "type": "fix",
352
+ "scope": "templates",
353
+ "subject": "drop app/(public)/loading.js, which made every unknown URL answer 200",
354
+ "hash": "32fd83f",
355
+ "breaking": true
356
+ },
357
+ {
358
+ "type": "fix",
359
+ "scope": "cli",
360
+ "subject": "give .env.local a header written for it, not the one of .env.example",
361
+ "hash": "382a376",
362
+ "breaking": false
363
+ },
364
+ {
365
+ "type": "fix",
366
+ "scope": "cli",
367
+ "subject": "install the latest patch of the tested Next minor, 16.3.8",
368
+ "hash": "83dea71",
369
+ "breaking": false
370
+ },
371
+ {
372
+ "type": "fix",
373
+ "scope": "templates",
374
+ "subject": "use the core Button on the home page, drop its hard-coded title",
375
+ "hash": "7805ebc",
376
+ "breaking": false
377
+ },
378
+ {
379
+ "type": "fix",
380
+ "scope": "templates",
381
+ "subject": "clip horizontal overflow without breaking sticky elements",
382
+ "hash": "b775491",
383
+ "breaking": false
384
+ },
385
+ {
386
+ "type": "fix",
387
+ "scope": "templates",
388
+ "subject": "keep the @/* alias of create-next-app in jsconfig.json",
389
+ "hash": "2a5edf6",
390
+ "breaking": false
391
+ },
392
+ {
393
+ "type": "refactor",
394
+ "scope": "templates",
395
+ "subject": "drop the dead branches of the public catch-all",
396
+ "hash": "27e9cb1",
397
+ "breaking": false
398
+ },
399
+ {
400
+ "type": "fix",
401
+ "scope": "templates",
402
+ "subject": "title the public pages with FRAZA_NAME instead of an empty string",
403
+ "hash": "84fa798",
404
+ "breaking": false
405
+ },
406
+ {
407
+ "type": "feat",
408
+ "scope": "templates",
409
+ "subject": "add error, loading and global-error boundaries",
410
+ "hash": "8a38c39",
411
+ "breaking": false
412
+ },
413
+ {
414
+ "type": "feat",
415
+ "scope": "cli",
416
+ "subject": "write every message in French, like the rest of the product",
417
+ "hash": "d9b776f",
418
+ "breaking": false
419
+ },
420
+ {
421
+ "type": "feat",
422
+ "scope": "cli",
423
+ "subject": "pin create-next-app to the tested Next, check the prerequisites first",
424
+ "hash": "63d338c",
425
+ "breaking": true
426
+ },
427
+ {
428
+ "type": "feat",
429
+ "scope": "cli",
430
+ "subject": "track .env.example, keep .env.local and every other .env out of git",
431
+ "hash": "f7252c8",
432
+ "breaking": true
433
+ },
434
+ {
435
+ "type": "fix",
436
+ "scope": "cli",
437
+ "subject": "never copy the registry token into the project .npmrc",
438
+ "hash": "fc9160e",
439
+ "breaking": true
440
+ },
441
+ {
442
+ "type": "refactor",
443
+ "scope": "cli",
444
+ "subject": "drop fs-extra, require Node 20.12, test the generation steps",
445
+ "hash": "bd10684",
446
+ "breaking": true
447
+ },
448
+ {
449
+ "type": "docs",
450
+ "scope": "blocks",
451
+ "subject": "say that two blocks under one id stop the startup",
452
+ "hash": "b3ed4ff",
453
+ "breaking": false
454
+ }
455
+ ]
456
+ },
457
+ {
458
+ "version": "0.1.2",
459
+ "date": "2026-10-19",
460
+ "breaking": [],
461
+ "envAdded": [],
462
+ "envRemoved": [],
463
+ "templateChanged": [
464
+ "components/Icons.js",
465
+ "components/fraza/blocks/README.md",
466
+ "components/fraza/blocks/icon-list/render.js",
467
+ "components/fraza/blocks/icon-list/template.js",
468
+ "components/fraza/icons.js"
469
+ ],
470
+ "action": [
471
+ "npx fraza-doctor --fix"
472
+ ],
473
+ "entries": [
474
+ {
475
+ "type": "feat",
476
+ "scope": null,
477
+ "subject": "write the @fraza-pro scope in .npmrc, no token needed for free packages",
478
+ "hash": "3279869",
479
+ "breaking": false
480
+ },
481
+ {
482
+ "type": "refactor",
483
+ "scope": "fraza",
484
+ "subject": "update icon list to use local icon import",
485
+ "hash": "a0aa439",
486
+ "breaking": false
487
+ },
488
+ {
489
+ "type": "refactor",
490
+ "scope": "api",
491
+ "subject": "remove unused Icons component",
492
+ "hash": "ae72fcd",
493
+ "breaking": false
494
+ }
495
+ ]
496
+ },
497
+ {
498
+ "version": "0.1.1",
499
+ "date": "2026-10-19",
500
+ "breaking": [],
501
+ "envAdded": [],
502
+ "envRemoved": [],
503
+ "templateChanged": [
504
+ "app/(admin)/admin/[...admin]/page.js",
505
+ "app/(admin)/admin/layout.js",
506
+ "app/(admin)/admin/page.js",
507
+ "app/(auth)/auth/[...auth]/page.js",
508
+ "app/(auth)/auth/page.js",
509
+ "app/(public)/[...slug]/page.js",
510
+ "app/(public)/layout.js",
511
+ "app/(public)/not-found.js",
512
+ "app/(public)/page.js",
513
+ "app/.fraza/blocks.client.js",
514
+ "app/.fraza/blocks.server.js",
515
+ "app/.fraza/modules.client.js",
516
+ "app/.fraza/modules.generated.js",
517
+ "app/.fraza/public-pages.server.js",
518
+ "app/.fraza/sources.css",
519
+ "app/.fraza/templates.server.js",
520
+ "app/fraza/[...path]/not-found.js",
521
+ "app/fraza/[...path]/page.js",
522
+ "app/fraza/api/[...path]/route.js",
523
+ "app/fraza/media/[filename]/route.js",
524
+ "app/icon.svg",
525
+ "app/layout.js",
526
+ "components/Icons.js",
527
+ "components/fraza/blocks/README.md",
528
+ "components/fraza/blocks/accordion/fields.js",
529
+ "components/fraza/blocks/accordion/render.js",
530
+ "components/fraza/blocks/accordion/template.js",
531
+ "components/fraza/blocks/callout/fields.js",
532
+ "components/fraza/blocks/callout/render.js",
533
+ "components/fraza/blocks/callout/template.js",
534
+ "components/fraza/blocks/icon-list/fields.js",
535
+ "components/fraza/blocks/icon-list/render.js",
536
+ "components/fraza/blocks/icon-list/template.js",
537
+ "components/fraza/blocks/three-cards/fields.js",
538
+ "components/fraza/blocks/three-cards/render.js",
539
+ "components/fraza/blocks/three-cards/template.js",
540
+ "components/fraza/templates/README.md",
541
+ "components/fraza/templates/content.js",
542
+ "components/fraza/templates/default.js",
543
+ "components/fraza/templates/post-blogue.js",
544
+ "instrumentation.js",
545
+ "jsconfig.json",
546
+ "styles/globals.css",
547
+ "theme.js"
548
+ ],
549
+ "action": [
550
+ "npx fraza-doctor --fix"
551
+ ],
552
+ "entries": [
553
+ {
554
+ "type": "style",
555
+ "scope": "templates",
556
+ "subject": "public site follows the Fraza charter",
557
+ "hash": "06d01fd",
558
+ "breaking": false
559
+ },
560
+ {
561
+ "type": "feat",
562
+ "scope": null,
563
+ "subject": "initial Fraza 0.1.0 codebase",
564
+ "hash": "85f1053",
565
+ "breaking": false
566
+ },
567
+ {
568
+ "type": "other",
569
+ "scope": null,
570
+ "subject": "Initial commit",
571
+ "hash": "402f173",
572
+ "breaking": false
573
+ }
574
+ ]
575
+ }
576
+ ]
577
+ }
package/package.json CHANGED
@@ -1,6 +1,44 @@
1
1
  {
2
2
  "name": "@fraza/start",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.3.4",
4
+ "description": "CLI pour créer un projet Fraza avec Next.js",
5
+ "publishConfig": {
6
+ "access": "public"
7
+ },
8
+ "license": "MIT",
9
+ "author": "HYKO",
10
+ "files": [
11
+ "bin",
12
+ "templates",
13
+ "README.md",
14
+ "LICENSE",
15
+ "THIRD-PARTY-NOTICES.md",
16
+ "CHANGELOG.md",
17
+ "changelog.json"
18
+ ],
19
+ "type": "module",
20
+ "scripts": {
21
+ "build": "npm run check:contract && npm run build:notices",
22
+ "test": "node --test test/",
23
+ "build:notices": "node ./scripts/generate-notices.js",
24
+ "check:contract": "node ./scripts/check-contract.js",
25
+ "sync:version": "node ./scripts/fraza-module.js sync-version",
26
+ "build:changelog": "node ./scripts/fraza-module.js changelog",
27
+ "prepublishOnly": "node ./scripts/fraza-module.js sync-version --check && npm run build",
28
+ "release": "node ./scripts/fraza-module.js release",
29
+ "release:publish": "node ./scripts/fraza-module.js publish"
30
+ },
31
+ "bin": {
32
+ "fraza-start": "bin/cli.js"
33
+ },
34
+ "engines": {
35
+ "node": ">=20.12.0"
36
+ },
37
+ "fraza": {
38
+ "breaking": false,
39
+ "action": [],
40
+ "envAdded": [],
41
+ "envRemoved": [],
42
+ "template": false
43
+ }
44
+ }
@@ -0,0 +1,3 @@
1
+ // Décide, avant que la réponse parte, si la page existe pour cet utilisateur :
2
+ // une page inconnue ou refusée répond 404.
3
+ export { default } from '@fraza/core/features/admin/page-layout';
@@ -0,0 +1,3 @@
1
+ // Chargement d'une page de l'administration, affiché le temps du rendu serveur.
2
+ // Placé ici, sous le layout qui décide du 404, et non dans app/(admin)/admin/.
3
+ export { default } from '@fraza/core/features/admin/loading';
@@ -0,0 +1 @@
1
+ export { default, generateMetadata } from '@fraza/core/features/admin/server';
@@ -0,0 +1,4 @@
1
+ 'use client';
2
+
3
+ // Erreur au rendu d'une page de l'administration : écran d'erreur du core.
4
+ export { default } from '@fraza/core/features/admin/error';
@@ -0,0 +1,17 @@
1
+ // Les manifestes clients se rendent ici, pas dans le layout racine : ils
2
+ // enregistrent les pages, les widgets et les blocs de l'éditeur, que seule
3
+ // l'administration lit. Rendus à la racine, ils feraient entrer tout ce code
4
+ // dans le bundle de chaque page publique.
5
+ import FrazaModulesClient from '../../.fraza/modules.client.js';
6
+ import FrazaBlocksClient from '../../.fraza/blocks.client.js';
7
+ import AdminLayout from '@fraza/core/features/admin/layout';
8
+
9
+ export default function Layout({ children }) {
10
+ return (
11
+ <>
12
+ <FrazaModulesClient />
13
+ <FrazaBlocksClient />
14
+ <AdminLayout>{children}</AdminLayout>
15
+ </>
16
+ );
17
+ }
@@ -0,0 +1,2 @@
1
+ // Page introuvable de l'administration, rendue dans la coquille.
2
+ export { default } from '@fraza/core/features/admin/not-found';
@@ -0,0 +1,5 @@
1
+ import { redirect } from 'next/navigation';
2
+
3
+ export default function Redirect() {
4
+ redirect('/admin/dashboard');
5
+ }
@@ -0,0 +1 @@
1
+ export { default, generateMetadata } from '@fraza/core/features/auth/server';
@@ -0,0 +1,5 @@
1
+ import { redirect } from 'next/navigation';
2
+
3
+ export default function Redirect() {
4
+ redirect('/auth/login/');
5
+ }