@mostajs/wagon-engine 0.4.1 → 0.5.0
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 +12 -0
- package/package.json +2 -2
- package/src/wagon.mjs +11 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,18 @@
|
|
|
3
3
|
**Auteur** : Dr Hamid MADANI <drmdh@msn.com>
|
|
4
4
|
Format : Keep a Changelog ; versions : SemVer.
|
|
5
5
|
|
|
6
|
+
## [0.5.0] — 2026-10-28
|
|
7
|
+
|
|
8
|
+
### Ajouté
|
|
9
|
+
- **`config.cadreWagon`** : le cadre des pages du moteur (tarifs, inscription, connexion, aide, à propos, compte,
|
|
10
|
+
déconnexion), par exemple `{ disposition: 'application', application: { retour: '/', langues: true } }`. Une greffe
|
|
11
|
+
qui vit dans la disposition « application » n'y renvoie plus la vitrine et son menu commun à tous les publics. Une
|
|
12
|
+
page de la charge qui choisit son cadre le garde. Essai T-ENG-13.
|
|
13
|
+
|
|
14
|
+
### Corrigé
|
|
15
|
+
- **Le pied de page ne liste que les textes légaux servis** (`legaux`, `@mostajs/wagon-ui` ≥ 0.11) : un texte incomplet
|
|
16
|
+
n'était pas servi (0.4) mais restait lié, d'où un 404 sur chaque page. Essai T-ENG-12.
|
|
17
|
+
|
|
6
18
|
## [0.4.1] — 2026-10-28
|
|
7
19
|
|
|
8
20
|
### Corrigé
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mostajs/wagon-engine",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Le wagon d'un SaaS, une fois pour toutes : comptes, connexion, paliers, quotas, paiement (Stripe, Chargily, SATIM), espace client, administration, pages légales, fr/en/ar. Une greffe n'apporte que wagon.config.mjs, charge/, legal/ et son .env ; la suite de conformité publiée juge la greffe.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mostajs",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"@mostajs/orm": "^2.12.1",
|
|
53
53
|
"@mostajs/payment": "^2.6.0",
|
|
54
54
|
"@mostajs/subscriptions-plan": "^0.9.0",
|
|
55
|
-
"@mostajs/wagon-ui": "^0.
|
|
55
|
+
"@mostajs/wagon-ui": "^0.11.0",
|
|
56
56
|
"better-sqlite3": "^12.11.1",
|
|
57
57
|
"stripe": "^17.7.0"
|
|
58
58
|
},
|
package/src/wagon.mjs
CHANGED
|
@@ -347,6 +347,14 @@ export async function creerWagon({ config, charge, sgbd, baseUrl, stripe = null,
|
|
|
347
347
|
return { html: complet ? mdToHtml(texte).html : '', complet };
|
|
348
348
|
}
|
|
349
349
|
|
|
350
|
+
/** 0.5 — les textes légaux servis dans une langue (lus une fois : ils ne changent qu'au redéploiement). */
|
|
351
|
+
const LEGAUX = ['mentions-legales', 'cgu', 'cgv', 'confidentialite'];
|
|
352
|
+
const servis = new Map();
|
|
353
|
+
const legauxServis = (lang) => {
|
|
354
|
+
if (!servis.has(lang)) servis.set(lang, LEGAUX.filter((doc) => documentLegal(doc, lang).complet));
|
|
355
|
+
return servis.get(lang);
|
|
356
|
+
};
|
|
357
|
+
|
|
350
358
|
async function vueEspace(compte) {
|
|
351
359
|
const actif = await facturation.activePlan(String(compte.id));
|
|
352
360
|
const quotas = {};
|
|
@@ -413,7 +421,9 @@ export async function creerWagon({ config, charge, sgbd, baseUrl, stripe = null,
|
|
|
413
421
|
const qui = s ? await comptes.qui(String(s.user ?? s.userId ?? '')) : null;
|
|
414
422
|
const estAdmin = !!(qui && await estAdministrateur(qui.utilisateur.courriel));
|
|
415
423
|
// 0.5 — `chemin` : la page réelle (canonique, liens de langue) ; `actif` reste l'onglet (wagon-ui 0.5.1).
|
|
416
|
-
|
|
424
|
+
// 0.5 — le pied de page ne liste que les textes légaux SERVIS (un lien vers un texte incomplet menait à un 404) ;
|
|
425
|
+
// `config.cadreWagon` donne le cadre des pages du moteur (une page de la charge qui choisit le sien le garde).
|
|
426
|
+
const page = (o) => ui.page({ lang, connecte: !!qui, base: origine, chemin, legaux: legauxServis(lang), ...(config.cadreWagon ?? {}), ...o });
|
|
417
427
|
const ouvrirSession = async (userId, vers = '/compte') => rediriger(vers, { 'set-cookie': cookieStrict('wagon_session', await sessions.ouvrir(userId), { maxAge: 30 * 86400, https }) });
|
|
418
428
|
|
|
419
429
|
// 0.5 — la santé : le commit EN SERVICE (fichier REVISION posé par le déployeur) et l'heure de démarrage.
|