@fraza/start 0.3.5 → 0.3.7

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/CHANGELOG.md CHANGED
@@ -4,6 +4,18 @@ Historique des versions publiées de `@fraza/start`.
4
4
 
5
5
  Ce fichier est généré par `fraza-module changelog` à partir des messages de commit. Ne pas le modifier à la main.
6
6
 
7
+ ## 0.3.7 (2026-10-25)
8
+
9
+ ### Refontes
10
+
11
+ - **bin/project.js** : update Next version and env file generation (544646f)
12
+
13
+ ## 0.3.6 (2026-10-25)
14
+
15
+ ### Documentation
16
+
17
+ - add command to start project (5edd2f6)
18
+
7
19
  ## 0.3.5 (2026-10-25)
8
20
 
9
21
  ### Ajouts
package/README.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  Le CLI crée un projet Next.js avec `@fraza/core` déjà branché : administration, comptes, site public et variables d'environnement prêtes à remplir.
4
4
 
5
+ ```sh
6
+ npx @fraza/start
7
+ ```
8
+
5
9
  [Documentation](https://docs.fraza.ca/docs) · [Installation](https://docs.fraza.ca/docs/demarrage/installation) · [Structure du projet](https://docs.fraza.ca/docs/demarrage/structure-du-projet)
6
10
 
7
11
  > [!WARNING]
@@ -39,7 +43,7 @@ Ouvrez `http://localhost:3000/auth` pour créer le premier compte, qui reçoit l
39
43
 
40
44
  ## Ce que fait le CLI
41
45
 
42
- 1. Crée le projet avec `create-next-app` 16.3.8, la version de Next contre laquelle le core est validé.
46
+ 1. Crée le projet avec `create-next-app` 16.4.3, la version de Next contre laquelle le core est validé.
43
47
  2. Remplace le dossier `app/` de Next par les gabarits Fraza : administration, authentification, API, page d'accueil, pages d'erreur, gabarits de page, exemples de blocs, `theme.js`, `instrumentation.js` et `jsconfig.json`.
44
48
  3. Ajoute les scripts `dev`, `build` et `postinstall`, qui lancent `fraza-modules sync`.
45
49
  4. Masque l'indicateur de développement de Next dans `next.config.mjs`.
@@ -47,7 +51,7 @@ Ouvrez `http://localhost:3000/auth` pour créer le premier compte, qui reçoit l
47
51
  6. Ajoute un bloc Fraza à l'`AGENTS.md`, qui renvoie un agent à la documentation livrée dans `node_modules/@fraza/core/dist/docs/`.
48
52
  7. Écrit le `.npmrc` du projet, sans jeton.
49
53
  8. Installe `@fraza/core`.
50
- 9. Crée `.env.example`, suivi par git, et `.env.local`, ignoré par git, avec `FRAZA_ENCRYPTION_KEY` générée et `NEXT_PUBLIC_URL` locale.
54
+ 9. Crée `.env.example`, suivi par git, et `.env.local`, ignoré par git, avec `FRAZA_ENCRYPTION_KEY` générée et `NEXT_PUBLIC_URL` locale. Crée aussi `.env.development.local`, ignoré par git, avec `NEXT_PUBLIC_URL=http://localhost:3000` et `FRAZA_DEVKIT=true`.
51
55
 
52
56
  ## Variables d'environnement
53
57
 
@@ -55,6 +59,7 @@ Ouvrez `http://localhost:3000/auth` pour créer le premier compte, qui reçoit l
55
59
  |---|---|---|
56
60
  | `.env.example` | La liste des variables, sans aucune valeur secrète. Une variable ajoutée par le projet y entre aussi. | Oui |
57
61
  | `.env.local` | Les valeurs de cette machine : base de données, stockage, courriel, clés. | Non |
62
+ | `.env.development.local` | Les valeurs du développement local, lues seulement par `npm run dev` : URL locale et devkit de l'admin. | Non |
58
63
 
59
64
  En production, les variables se saisissent dans la plateforme d'hébergement, jamais dans un fichier suivi par git. Partez de `.env.example` pour la liste.
60
65
 
package/bin/cli.js CHANGED
@@ -169,6 +169,7 @@ async function initProject() {
169
169
  const env = writeEnvFiles(envTemplate, cwd);
170
170
  if (env.example) done('.env.example créé à partir du modèle de @fraza/core');
171
171
  if (env.local) done('.env.local créé, FRAZA_ENCRYPTION_KEY générée');
172
+ if (env.development) done('.env.development.local créé (URL locale, devkit activé)');
172
173
 
173
174
  const file = (name) => `${c.cyan}${name}${c.reset}`;
174
175
  const dim = (text) => `${c.dim}${text}${c.reset}`;
package/bin/project.js CHANGED
@@ -17,12 +17,14 @@ export const MIN_NODE = [20, 12];
17
17
  // Version de `create-next-app`, donc de Next, installée dans le projet généré.
18
18
  // C'est le dernier correctif de la version mineure contre laquelle le core a
19
19
  // été validé (`packages.next.tested` de son `supported.json`) : un correctif de
20
- // Next ne change pas d'API, et il porte souvent une faille corrigée : 16.3.5,
21
- // validée d'abord, est touchée par GHSA-vcvr-r3jv-pc5j, corrigée en 16.3.8,
22
- // la version que le core déclare maintenant.
20
+ // Next ne change pas d'API, et il porte souvent une faille corrigée. 16.3.8
21
+ // était touchée par GHSA-2464-fhr4-w9xw et GHSA-673q-mjm6-r5xr, deux
22
+ // exécutions de code à distance corrigées en 16.4.1 seulement, sans correctif
23
+ // dans la 16.3 : le core a donc été validé contre la 16.4, et l'épingle suit
24
+ // maintenant 16.4.3, le dernier correctif de cette version mineure.
23
25
  // `npm run check:contract` échoue si l'épingle quitte la version mineure
24
26
  // validée ou passe sous la version validée (`pinFollowsTestedNext`).
25
- export const CREATE_NEXT_APP_VERSION = '16.3.8';
27
+ export const CREATE_NEXT_APP_VERSION = '16.4.3';
26
28
 
27
29
  // Entrées tolérées dans le dossier cible : métadonnées d'éditeur ou de gestion
28
30
  // de versions, que ni `create-next-app` ni ce CLI n'écrivent. Toute autre entrée
@@ -255,18 +257,34 @@ export function fillLocalEnv(template, { key = randomBytes(32).toString('hex'),
255
257
  }
256
258
 
257
259
  /**
258
- * Crée `.env.example` (copie du modèle du core, suivie par git) et `.env.local`
259
- * (la même copie remplie pour cette machine, ignorée par git). Un fichier qui
260
+ * Contenu de `.env.development.local` : les valeurs du développement local, que
261
+ * Next.js ne lit qu'avec `next dev` et qui passent avant `.env.local`. On y met
262
+ * l'origine locale et le devkit de l'admin, qui ne doivent jamais aller en
263
+ * production.
264
+ */
265
+ export const DEVELOPMENT_ENV = [
266
+ '# Valeurs du développement local, lues par Next.js avec `next dev` seulement,',
267
+ '# avant celles de .env.local. Ignoré par git.',
268
+ 'NEXT_PUBLIC_URL=http://localhost:3000',
269
+ 'FRAZA_DEVKIT=true',
270
+ '',
271
+ ].join('\n');
272
+
273
+ /**
274
+ * Crée `.env.example` (copie du modèle du core, suivie par git), `.env.local`
275
+ * (la même copie remplie pour cette machine, ignorée par git) et
276
+ * `.env.development.local` (`DEVELOPMENT_ENV`, ignoré par git). Un fichier qui
260
277
  * existe déjà n'est jamais remplacé.
261
278
  * @param {string} templatePath `node_modules/@fraza/core/.env.example`.
262
279
  * @param {string} projectDir
263
- * @returns {{ example: boolean, local: boolean }} Les fichiers créés.
280
+ * @returns {{ example: boolean, local: boolean, development: boolean }} Les fichiers créés.
264
281
  */
265
282
  export function writeEnvFiles(templatePath, projectDir) {
266
283
  const template = fs.readFileSync(templatePath, 'utf-8');
267
284
  const examplePath = path.join(projectDir, '.env.example');
268
285
  const localPath = path.join(projectDir, '.env.local');
269
- const created = { example: false, local: false };
286
+ const developmentPath = path.join(projectDir, '.env.development.local');
287
+ const created = { example: false, local: false, development: false };
270
288
 
271
289
  if (!fs.existsSync(examplePath)) {
272
290
  fs.writeFileSync(examplePath, template);
@@ -277,5 +295,9 @@ export function writeEnvFiles(templatePath, projectDir) {
277
295
  fs.writeFileSync(localPath, fillLocalEnv(template), { mode: 0o600 });
278
296
  created.local = true;
279
297
  }
298
+ if (!fs.existsSync(developmentPath)) {
299
+ fs.writeFileSync(developmentPath, DEVELOPMENT_ENV);
300
+ created.development = true;
301
+ }
280
302
  return created;
281
303
  }
package/bin/version.js CHANGED
@@ -1,2 +1,2 @@
1
1
  // AUTO-GÉNÉRÉ par `fraza-module sync-version`, ne pas modifier à la main.
2
- export const STARTER_VERSION = '0.3.5';
2
+ export const STARTER_VERSION = '0.3.7';
package/changelog.json CHANGED
@@ -1,6 +1,42 @@
1
1
  {
2
2
  "name": "@fraza/start",
3
3
  "versions": [
4
+ {
5
+ "version": "0.3.7",
6
+ "date": "2026-10-25",
7
+ "breaking": [],
8
+ "envAdded": [],
9
+ "envRemoved": [],
10
+ "templateChanged": [],
11
+ "action": [],
12
+ "entries": [
13
+ {
14
+ "type": "refactor",
15
+ "scope": "bin/project.js",
16
+ "subject": "update Next version and env file generation",
17
+ "hash": "544646f",
18
+ "breaking": false
19
+ }
20
+ ]
21
+ },
22
+ {
23
+ "version": "0.3.6",
24
+ "date": "2026-10-25",
25
+ "breaking": [],
26
+ "envAdded": [],
27
+ "envRemoved": [],
28
+ "templateChanged": [],
29
+ "action": [],
30
+ "entries": [
31
+ {
32
+ "type": "docs",
33
+ "scope": null,
34
+ "subject": "add command to start project",
35
+ "hash": "5edd2f6",
36
+ "breaking": false
37
+ }
38
+ ]
39
+ },
4
40
  {
5
41
  "version": "0.3.5",
6
42
  "date": "2026-10-25",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fraza/start",
3
- "version": "0.3.5",
3
+ "version": "0.3.7",
4
4
  "description": "CLI pour créer un projet Fraza avec Next.js",
5
5
  "publishConfig": {
6
6
  "access": "public"