@fraza/start 0.0.0-stage → 0.3.5

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