@mostajs/mjs-unit 0.9.0 → 0.11.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.
@@ -0,0 +1,76 @@
1
+ /** La configuration résolue d'un projet. */
2
+ export interface ConfigQatrax {
3
+ racine: string;
4
+ projet: string;
5
+ nom: string;
6
+ url: string;
7
+ version: string;
8
+ plan: string;
9
+ run: string;
10
+ sbom: string;
11
+ defauts: string;
12
+ curseur: string;
13
+ cle: string;
14
+ avertissements: string[];
15
+ }
16
+ /** Un défaut tel que qatrax le rend (GET /recette/defauts). */
17
+ export interface DefautRecette {
18
+ id: string;
19
+ ref: string;
20
+ gravite: string;
21
+ etat: string;
22
+ titre: string;
23
+ campagnes: string[];
24
+ exigence?: string;
25
+ faire?: string;
26
+ attendu?: string;
27
+ description?: string;
28
+ pieces: Array<{
29
+ id: string;
30
+ nom: string;
31
+ sha256: string;
32
+ }>;
33
+ }
34
+ /** Une erreur qui porte son code de sortie : 1 refus ou fichier absent, 2 usage ou configuration. */
35
+ export declare class ErreurQatrax extends Error {
36
+ code: 1 | 2;
37
+ constructor(message: string, code?: 1 | 2);
38
+ }
39
+ /** Un nom de fichier sûr : ni chemin, ni caractère exotique (comme defauts-recette.sh). */
40
+ export declare const nomSur: (s: unknown) => string;
41
+ /**
42
+ * Lit la configuration : le bloc « qatrax » du package.json du projet, l'environnement par-dessus (QATRAX_URL), la clé
43
+ * de CI dans QATRAX_CLE_CI, sinon ~/.config/qatrax/cle-ci-<projet> (avertissement si le fichier n'est pas en 600).
44
+ */
45
+ export declare function configQatrax({ racine, env }?: {
46
+ racine?: string;
47
+ env?: Record<string, string | undefined>;
48
+ }): ConfigQatrax;
49
+ /** Le client d'un projet. Chaque méthode rend des lignes à afficher, ou lève une ErreurQatrax. */
50
+ export declare function creerClientQatrax(c: ConfigQatrax): {
51
+ config: ConfigQatrax;
52
+ /** Le nouveau depuis le dernier passage. Le curseur (identifiant → état et campagnes) est réécrit à chaque fois. */
53
+ etat({ bref }?: {
54
+ bref?: boolean | undefined;
55
+ }): Promise<string[]>;
56
+ /** La fiche des défauts (et, avec tous, l'historique) et leurs pièces, sous c.defauts. */
57
+ rapatrier({ tous }?: {
58
+ tous?: boolean | undefined;
59
+ }): Promise<string[]>;
60
+ /** « pris » (en_cours) ou « corrige » (version : « <projet> <version du package.json> » par défaut). */
61
+ poserEtat(id: string, etat: "en_cours" | "corrige", { version, note }?: {
62
+ version?: string | undefined;
63
+ note?: string | undefined;
64
+ }): Promise<string[]>;
65
+ /** Plan, run, SBOM, dans cet ordre. Un run absent n'est jamais un succès ; siVert refuse un run qui a des échecs. */
66
+ pousser({ niveaux, siVert }?: {
67
+ niveaux?: string[];
68
+ siVert?: boolean;
69
+ }): Promise<string[]>;
70
+ };
71
+ /** La sous-commande du CLI : `mjs-unit qatrax <commande> [arguments]`. Rend le code de sortie. */
72
+ export declare function principal(args: string[], { racine, ecrire }?: {
73
+ racine?: string | undefined;
74
+ ecrire?: ((s: string) => void) | undefined;
75
+ }): Promise<number>;
76
+ //# sourceMappingURL=qatrax.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qatrax.d.ts","sourceRoot":"","sources":["../src/qatrax.ts"],"names":[],"mappings":"AAsBA,4CAA4C;AAC5C,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAC1E,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAC1E,GAAG,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,EAAE,CAAC;CACvC;AACD,+DAA+D;AAC/D,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAC3F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC1E,MAAM,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC5D;AACD,qGAAqG;AACrG,qBAAa,YAAa,SAAQ,KAAK;IACD,IAAI,EAAE,CAAC,GAAG,CAAC;gBAAnC,OAAO,EAAE,MAAM,EAAS,IAAI,GAAE,CAAC,GAAG,CAAK;CACpD;AAID,2FAA2F;AAC3F,eAAO,MAAM,MAAM,GAAI,GAAG,OAAO,WAA6E,CAAC;AAE/G;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAAE,MAAsB,EAAE,GAAiB,EAAE,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;CAAO,GAAG,YAAY,CA0B5J;AAOD,kGAAkG;AAClG,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,YAAY;;IA4B7C,oHAAoH;;;QACjF,OAAO,CAAC,MAAM,EAAE,CAAC;IA2BpD,0FAA0F;;;QAClD,OAAO,CAAC,MAAM,EAAE,CAAC;IAyCzD,wGAAwG;kBACpF,MAAM,QAAQ,UAAU,GAAG,SAAS;;;QAAqC,OAAO,CAAC,MAAM,EAAE,CAAC;IAQ9G,qHAAqH;kCAChD;QAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;EA0BzI;AAED,kGAAkG;AAClG,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAsB,EAAE,MAAsC,EAAE;;kBAA3B,MAAM;CAA0B,GAAG,OAAO,CAAC,MAAM,CAAC,CA+BxI"}
package/dist/qatrax.js ADDED
@@ -0,0 +1,272 @@
1
+ /**
2
+ * @mostajs/mjs-unit/qatrax — LE CLIENT QATRAX (0.11.0) : la boucle tests → qatrax → recette → défauts → poste.
3
+ *
4
+ * etat le nouveau depuis le dernier passage (curseur local) : défauts nouveaux, rouverts, corrigés, clos
5
+ * rapatrier la fiche des défauts de recette et leurs pièces (empreintes vérifiées)
6
+ * pris « je le prends » : le défaut passe « en cours » chez qatrax
7
+ * corrige « corrigé dans <version> — à rejouer en recette » (la recette suivante le clôt, ou le rouvre)
8
+ * pousser plan Dev+Test, run, SBOM — dans cet ordre (DEVRULES-QA §4, §5.bis, §4.ter)
9
+ *
10
+ * Remplace les scripts recopiés de projet en projet (push-qatrax-*-prod.sh, outils/pousser-devtest.sh,
11
+ * outils/defauts-recette.sh : docs/13-AUDIT-EXISTANT-CLIENT-QATRAX-27102026.md). Le CŒUR de mjs-unit n'importe pas
12
+ * ce fichier : il reste sans réseau ni secret. La clé de CI ne passe jamais en argument d'un processus, et n'est
13
+ * jamais écrite dans une sortie.
14
+ *
15
+ * @author Dr Hamid MADANI <drmdh@msn.com>
16
+ * @license AGPL-3.0-or-later
17
+ */
18
+ import { createHash } from "node:crypto";
19
+ import { existsSync, mkdirSync, readFileSync, statSync, writeFileSync } from "node:fs";
20
+ import { homedir } from "node:os";
21
+ import { join, resolve } from "node:path";
22
+ /** Une erreur qui porte son code de sortie : 1 refus ou fichier absent, 2 usage ou configuration. */
23
+ export class ErreurQatrax extends Error {
24
+ constructor(message, code = 1) {
25
+ super(message);
26
+ this.code = code;
27
+ this.name = "ErreurQatrax";
28
+ }
29
+ }
30
+ const lireJson = (f) => JSON.parse(readFileSync(f, "utf8"));
31
+ const sha256 = (b) => createHash("sha256").update(b).digest("hex");
32
+ /** Un nom de fichier sûr : ni chemin, ni caractère exotique (comme defauts-recette.sh). */
33
+ export const nomSur = (s) => String(s ?? "").replace(/[^A-Za-z0-9._-]/g, "_").slice(0, 80) || "piece";
34
+ /**
35
+ * Lit la configuration : le bloc « qatrax » du package.json du projet, l'environnement par-dessus (QATRAX_URL), la clé
36
+ * de CI dans QATRAX_CLE_CI, sinon ~/.config/qatrax/cle-ci-<projet> (avertissement si le fichier n'est pas en 600).
37
+ */
38
+ export function configQatrax({ racine = process.cwd(), env = process.env } = {}) {
39
+ const r = resolve(racine);
40
+ const fpkg = join(r, "package.json");
41
+ if (!existsSync(fpkg))
42
+ throw new ErreurQatrax(`package.json introuvable dans ${r}`, 2);
43
+ const pkg = lireJson(fpkg);
44
+ const q = pkg.qatrax ?? {};
45
+ const projet = String(q.projet ?? "").trim();
46
+ if (!projet)
47
+ throw new ErreurQatrax('bloc « qatrax » absent du package.json : { "qatrax": { "projet": "…", "url": "https://….qatrax.dev" } }', 2);
48
+ const url = String(env.QATRAX_URL || q.url || "").replace(/\/+$/, "");
49
+ if (!/^https?:\/\//.test(url))
50
+ throw new ErreurQatrax(`adresse de qatrax absente ou invalide (qatrax.url ou QATRAX_URL) : « ${url} »`, 2);
51
+ const avertissements = [];
52
+ let cle = String(env.QATRAX_CLE_CI ?? "").trim();
53
+ const fcle = join(env.HOME || homedir(), ".config", "qatrax", `cle-ci-${projet}`);
54
+ if (!cle && existsSync(fcle)) {
55
+ cle = readFileSync(fcle, "utf8").replace(/\s+/g, "");
56
+ const mode = statSync(fcle).mode & 0o777;
57
+ if (mode & 0o077)
58
+ avertissements.push(`⚠ ${fcle} est lisible par d'autres (mode ${mode.toString(8)}) : chmod 600`);
59
+ }
60
+ if (!cle)
61
+ throw new ErreurQatrax(`clé de CI absente : QATRAX_CLE_CI ou ${fcle} (écran « Projets » de ${url}, opération « pousser »)`, 2);
62
+ const chemin = (v, defaut) => resolve(r, String(v || defaut));
63
+ return {
64
+ racine: r, projet, nom: String(q.nom || projet), url, version: String(pkg.version ?? "0.0.0"),
65
+ plan: chemin(q.plan, `docs/DEVTEST-PLAN.${projet}.json`), run: chemin(q.run, "test-scripts/.out/report.json"),
66
+ sbom: chemin(q.sbom, "sbom.cyclonedx.json"), defauts: chemin(q.defauts, "docs/recette/defauts"),
67
+ curseur: chemin(q.curseur, "test-scripts/.out/qatrax-etat.json"), cle, avertissements,
68
+ };
69
+ }
70
+ const ETATS = { open: "ouvert", in_progress: "en cours", resolved: "corrigé, à rejouer", closed: "clos (confirmé en recette)", rejected: "rejeté" };
71
+ const GRAVITES = { critical: "bloquant", high: "panne", medium: "écart", low: "mineur" };
72
+ const etatLisible = (e) => ETATS[e] ?? e;
73
+ const graviteLisible = (g) => GRAVITES[g] ?? g;
74
+ /** Le client d'un projet. Chaque méthode rend des lignes à afficher, ou lève une ErreurQatrax. */
75
+ export function creerClientQatrax(c) {
76
+ const entetes = (json = false) => ({ authorization: `Bearer ${c.cle}`, accept: "application/json", ...(json ? { "content-type": "application/json" } : {}) });
77
+ /** Le message d'erreur du serveur, et ses erreurs de validation (jamais la clé : elle n'est pas dans la réponse). */
78
+ async function erreurDe(r, quoi) {
79
+ const texte = await r.text();
80
+ let detail = texte.slice(0, 300);
81
+ try {
82
+ const j = JSON.parse(texte);
83
+ detail = [j.error ?? j.message ?? "", ...(Array.isArray(j.errors) ? j.errors.map((e) => ` ${e.path ?? ""} : ${e.message ?? e}`) : [])].filter(Boolean).join("\n");
84
+ }
85
+ catch { /* corps non JSON : ses premiers caractères */ }
86
+ return new ErreurQatrax(`✗ HTTP ${r.status} — ${quoi} : ${detail}`);
87
+ }
88
+ async function appel(methode, chemin, corps) {
89
+ try {
90
+ return await fetch(`${c.url}${chemin}`, { method: methode, headers: entetes(corps !== undefined), body: corps, signal: AbortSignal.timeout(60000) });
91
+ }
92
+ catch (e) {
93
+ throw new ErreurQatrax(`✗ ${c.url} injoignable (${e?.cause?.code ?? e?.name ?? "réseau"})`);
94
+ }
95
+ }
96
+ async function lireDefauts(tous = false) {
97
+ const r = await appel("GET", `/recette/defauts?p=${encodeURIComponent(c.projet)}${tous ? "&etat=tous" : ""}`);
98
+ if (!r.ok)
99
+ throw await erreurDe(r, `${c.url}/recette/defauts`);
100
+ return (await r.json()).defauts ?? [];
101
+ }
102
+ return {
103
+ config: c,
104
+ /** Le nouveau depuis le dernier passage. Le curseur (identifiant → état et campagnes) est réécrit à chaque fois. */
105
+ async etat({ bref = false } = {}) {
106
+ const ds = await lireDefauts(true);
107
+ const avant = existsSync(c.curseur) ? lireJson(c.curseur).defauts ?? {} : {};
108
+ const nouveaux = [];
109
+ const changes = [];
110
+ for (const d of ds) {
111
+ const a = avant[d.id];
112
+ if (!a) {
113
+ if (d.etat !== "closed")
114
+ nouveaux.push(d);
115
+ continue;
116
+ }
117
+ if (a.etat !== d.etat)
118
+ changes.push([d, a.etat === "resolved" && d.etat === "open" ? "rouvert en recette" : `${etatLisible(a.etat)} → ${etatLisible(d.etat)}`]);
119
+ else if ((d.campagnes ?? []).length > (a.campagnes ?? []).length)
120
+ changes.push([d, `relevé de nouveau (campagne ${d.campagnes[d.campagnes.length - 1]})`]);
121
+ }
122
+ mkdirSync(join(c.curseur, ".."), { recursive: true });
123
+ writeFileSync(c.curseur, `${JSON.stringify({ projet: c.projet, vuLe: new Date().toISOString(), defauts: Object.fromEntries(ds.map((d) => [d.id, { etat: d.etat, campagnes: d.campagnes ?? [] }])) }, null, 1)}\n`);
124
+ const ouverts = ds.filter((d) => d.etat === "open" || d.etat === "in_progress").length;
125
+ if (bref) {
126
+ return [!nouveaux.length && !changes.length
127
+ ? `qatrax ${c.projet} : rien de nouveau en recette (${ouverts} ouvert(s))`
128
+ : `qatrax ${c.projet} : ${nouveaux.length} nouveau(x), ${changes.length} changé(s) en recette — mjs-unit qatrax rapatrier`];
129
+ }
130
+ if (!nouveaux.length && !changes.length)
131
+ return [`✓ ${c.nom} (${c.url}) : aucun changement en recette depuis le dernier passage — ${ouverts} défaut(s) ouvert(s)`];
132
+ return [
133
+ `${c.nom} (${c.url}) : ${nouveaux.length} nouveau(x), ${changes.length} changé(s)`,
134
+ ...nouveaux.map((d) => ` + ${d.ref.padEnd(8)} ${graviteLisible(d.gravite).padEnd(9)} ${d.titre.slice(0, 80)}`),
135
+ ...changes.map(([d, quoi]) => ` ~ ${d.ref.padEnd(8)} ${quoi} — ${d.titre.slice(0, 60)}`),
136
+ " → mjs-unit qatrax rapatrier",
137
+ ];
138
+ },
139
+ /** La fiche des défauts (et, avec tous, l'historique) et leurs pièces, sous c.defauts. */
140
+ async rapatrier({ tous = false } = {}) {
141
+ const ds = await lireDefauts(tous);
142
+ const lignes = [];
143
+ mkdirSync(c.defauts, { recursive: true });
144
+ for (const d of ds)
145
+ for (const p of d.pieces ?? []) {
146
+ const dossier = join(c.defauts, nomSur(d.ref));
147
+ mkdirSync(dossier, { recursive: true });
148
+ const r = await appel("GET", `/recette/defauts/piece?p=${encodeURIComponent(c.projet)}&id=${encodeURIComponent(p.id)}`);
149
+ if (!r.ok) {
150
+ lignes.push(` ⚠ pièce ${p.nom} (HTTP ${r.status})`);
151
+ continue;
152
+ }
153
+ const octets = Buffer.from(await r.arrayBuffer());
154
+ writeFileSync(join(dossier, nomSur(p.nom)), octets);
155
+ if (sha256(octets) !== p.sha256)
156
+ lignes.push(` ⚠ pièce ${p.nom} : empreinte différente de celle signée par ValiTrax`);
157
+ }
158
+ const plan = existsSync(c.plan) ? lireJson(c.plan) : { specs: [], tests: [] };
159
+ const specs = Object.fromEntries((plan.specs ?? []).map((s) => [s.ref, s.title]));
160
+ const essais = Object.fromEntries((plan.tests ?? []).map((t) => [t.ref, t]));
161
+ const L = [`# Défauts relevés en recette — ${c.nom}`, "",
162
+ "**Auteur** : Dr Hamid MADANI <drmdh@msn.com> ",
163
+ `**Source** : ${c.url}/recette/defauts?p=${c.projet} — rapatrié le ${new Date().toLocaleString("fr-FR", { dateStyle: "short", timeStyle: "short" })} `,
164
+ "**Boucle** : qatrax (spec→dev→test) → ValiTrax (recette→défaut) → qatrax → poste du développeur → recette suivante", "",
165
+ `${ds.length} défaut(s). Fiche ENGENDRÉE par \`mjs-unit qatrax rapatrier\` : ne pas la modifier à la main. Les pièces`,
166
+ "appartiennent à qatrax, qui en garde l'original pour la validation finale et le suivi des bugs : copie de travail.", "",
167
+ "Pour chaque défaut : `mjs-unit qatrax pris <id>` en commençant, réparer, ajouter ou ajuster l'essai qui le couvre,",
168
+ "livrer, puis `mjs-unit qatrax corrige <id> [version]`. La recette suivante le clôt (ligne rejouée ok) ou le rouvre (ko).", "",
169
+ "| réf. | gravité | état | campagnes | titre |", "|---|---|---|---|---|",
170
+ ...ds.map((d) => `| [${d.ref}](#${nomSur(d.ref).toLowerCase()}) | ${graviteLisible(d.gravite)} | ${etatLisible(d.etat)} | ${(d.campagnes ?? []).join(", ")} | ${d.titre.replace(/\|/g, "/")} |`)];
171
+ for (const d of ds) {
172
+ const e = essais[d.ref];
173
+ L.push("", `## ${d.ref}`, "", `- **id** : \`${d.id}\``, `- **état** : ${etatLisible(d.etat)} · **gravité** : ${graviteLisible(d.gravite)} · **campagnes** : ${(d.campagnes ?? []).join(", ") || "—"}`, `- **exigence** : ${d.exigence || "—"}${d.exigence && specs[d.exigence] ? ` — ${specs[d.exigence]}` : ""}`, `- **essai du plan** : ${d.ref}${e ? ` — ${e.title ?? ""}` : " (absent du plan Dev+Test)"}`, `- **à faire** : ${d.faire || "—"}`, `- **attendu** : ${d.attendu || "—"}`);
174
+ if (d.pieces?.length)
175
+ L.push(`- **pièces** : ${d.pieces.map((p) => `[${p.nom}](${nomSur(d.ref)}/${nomSur(p.nom)})`).join(", ")}`);
176
+ L.push("", "```text", String(d.description ?? "").trim(), "```", "", `\`mjs-unit qatrax pris ${d.id}\` · \`mjs-unit qatrax corrige ${d.id}\``);
177
+ }
178
+ const fiche = join(c.defauts, "DEFAUTS-RECETTE.md");
179
+ writeFileSync(fiche, `${L.join("\n")}\n`);
180
+ return [`✓ ${ds.length} défaut(s) — ${fiche}`, ...lignes,
181
+ ...ds.map((d) => ` ${d.ref.padEnd(8)} ${graviteLisible(d.gravite).padEnd(9)} ${etatLisible(d.etat).padEnd(22)} ${d.id} ${d.titre.slice(0, 70)}`)];
182
+ },
183
+ /** « pris » (en_cours) ou « corrige » (version : « <projet> <version du package.json> » par défaut). */
184
+ async poserEtat(id, etat, { version = "", note = "" } = {}) {
185
+ if (!id)
186
+ throw new ErreurQatrax(`usage : mjs-unit qatrax ${etat === "corrige" ? "corrige <id> [version] [note]" : "pris <id> [note]"}`, 2);
187
+ const v = etat === "corrige" ? (version || `${c.projet} ${c.version}`) : "";
188
+ const r = await appel("POST", `/recette/defauts/etat?p=${encodeURIComponent(c.projet)}`, JSON.stringify({ id, etat, version: v, note }));
189
+ if (!r.ok)
190
+ throw await erreurDe(r, "état du défaut");
191
+ return [etat === "corrige" ? `✓ ${id} : corrigé dans ${v} — à rejouer en recette` : `✓ ${id} : en cours`];
192
+ },
193
+ /** Plan, run, SBOM, dans cet ordre. Un run absent n'est jamais un succès ; siVert refuse un run qui a des échecs. */
194
+ async pousser({ niveaux = ["plan", "run", "sbom"], siVert = false } = {}) {
195
+ const inconnus = niveaux.filter((n) => !["plan", "run", "sbom"].includes(n));
196
+ if (inconnus.length)
197
+ throw new ErreurQatrax(`niveau inconnu : ${inconnus.join(", ")} (attendus : plan, run, sbom)`, 2);
198
+ const a = (n) => niveaux.includes(n);
199
+ if (a("plan") && !existsSync(c.plan))
200
+ throw new ErreurQatrax(`✗ plan absent : ${c.plan}`);
201
+ if ((a("run") || siVert) && !existsSync(c.run))
202
+ throw new ErreurQatrax(`✗ aucun rapport d'exécution (${c.run}) : lancer d'abord npm test`);
203
+ if (a("sbom") && !existsSync(c.sbom))
204
+ throw new ErreurQatrax(`✗ SBOM absente (${c.sbom}) : npx -y -p @mostajs/mjs-sbom mjs-sbom --version=${c.version}`);
205
+ if (siVert) {
206
+ const s = lireJson(c.run).summary ?? {};
207
+ if (Number(s.failed) > 0)
208
+ throw new ErreurQatrax(`✗ ${s.failed} échec(s) au dernier run : rien n'est poussé (--si-vert)`);
209
+ }
210
+ const envois = [];
211
+ if (a("plan"))
212
+ envois.push(["plan Dev+Test", "/import", c.plan]);
213
+ if (a("run"))
214
+ envois.push(["exécutions", `/runs?p=${encodeURIComponent(c.projet)}`, c.run]);
215
+ if (a("sbom"))
216
+ envois.push([`SBOM ${c.projet} ${c.version}`, `/sbom?p=${encodeURIComponent(c.projet)}&version=${encodeURIComponent(c.version)}`, c.sbom]);
217
+ const lignes = [];
218
+ for (const [quoi, route, fichier] of envois) {
219
+ const r = await appel("POST", route, readFileSync(fichier, "utf8"));
220
+ if (!r.ok)
221
+ throw new ErreurQatrax([...lignes, (await erreurDe(r, quoi)).message].join("\n"));
222
+ const j = await r.json().catch(() => ({}));
223
+ const resume = j.report?.counts ? ` — ${j.report.counts.pass ?? 0} ok, ${j.report.counts.fail ?? 0} échec(s)` : j.revision ? ` — révision ${j.revision}` : "";
224
+ lignes.push(`✓ HTTP ${r.status} — ${quoi} (${c.url}${route.split("?")[0]})${resume}`);
225
+ }
226
+ return lignes;
227
+ },
228
+ };
229
+ }
230
+ /** La sous-commande du CLI : `mjs-unit qatrax <commande> [arguments]`. Rend le code de sortie. */
231
+ export async function principal(args, { racine = process.cwd(), ecrire = (s) => console.log(s) } = {}) {
232
+ const [cmd = "aide", ...reste] = args;
233
+ const options = reste.filter((x) => x.startsWith("--"));
234
+ const pos = reste.filter((x) => !x.startsWith("--"));
235
+ if (cmd === "aide" || cmd === "--help" || cmd === "-h") {
236
+ ecrire(["usage : mjs-unit qatrax <commande>",
237
+ " etat [--bref] le nouveau en recette depuis le dernier passage",
238
+ " rapatrier [--tous] fiche des défauts + pièces → docs/recette/defauts/",
239
+ " pris <id> [note] le défaut passe « en cours »",
240
+ " corrige <id> [version] [note] « corrigé dans <version> — à rejouer »",
241
+ " pousser [plan,run,sbom] [--si-vert] plan, run, SBOM (dans cet ordre)",
242
+ 'configuration : package.json → "qatrax": { "projet", "url", "nom" } ; QATRAX_URL ; clé QATRAX_CLE_CI ou ~/.config/qatrax/cle-ci-<projet>'].join("\n"));
243
+ return 0;
244
+ }
245
+ try {
246
+ const c = configQatrax({ racine });
247
+ for (const a of c.avertissements)
248
+ ecrire(a);
249
+ const client = creerClientQatrax(c);
250
+ let lignes;
251
+ if (cmd === "etat")
252
+ lignes = await client.etat({ bref: options.includes("--bref") });
253
+ else if (cmd === "rapatrier")
254
+ lignes = await client.rapatrier({ tous: options.includes("--tous") });
255
+ else if (cmd === "pris")
256
+ lignes = await client.poserEtat(pos[0] ?? "", "en_cours", { note: pos[1] ?? "" });
257
+ else if (cmd === "corrige")
258
+ lignes = await client.poserEtat(pos[0] ?? "", "corrige", { version: pos[1] ?? "", note: pos[2] ?? "" });
259
+ else if (cmd === "pousser")
260
+ lignes = await client.pousser({ niveaux: pos.length ? pos.join(",").split(",").filter(Boolean) : undefined, siVert: options.includes("--si-vert") });
261
+ else
262
+ throw new ErreurQatrax(`commande inconnue : ${cmd} (mjs-unit qatrax aide)`, 2);
263
+ for (const l of lignes)
264
+ ecrire(l);
265
+ return 0;
266
+ }
267
+ catch (e) {
268
+ ecrire(e instanceof ErreurQatrax ? e.message : `✗ ${e?.message ?? e}`);
269
+ return e instanceof ErreurQatrax ? e.code : 1;
270
+ }
271
+ }
272
+ //# sourceMappingURL=qatrax.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qatrax.js","sourceRoot":"","sources":["../src/qatrax.ts"],"names":[],"mappings":"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"}
package/dist/report.d.ts CHANGED
@@ -77,7 +77,17 @@ export interface ContexteCompteRendu {
77
77
  outil: {
78
78
  name: string;
79
79
  version: string;
80
+ mode?: "lecteur";
80
81
  };
82
+ /** 0.10.0 — mode lecteur : les rapports LUS (Java, C#, Python…) et leurs empreintes ; les défauts de lecture */
83
+ lecture?: {
84
+ rapports: {
85
+ fichier: string;
86
+ format: string;
87
+ sha256: string;
88
+ }[];
89
+ defauts?: string[];
90
+ } | null;
81
91
  }
82
92
  export type StatutCompteRendu = "succes" | "echec" | "erreur" | "ignore";
83
93
  export type Verdict = "conforme" | "non conforme" | "incomplet";
@@ -1 +1 @@
1
- {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,sDAAsD;AACtD,MAAM,WAAW,WAAW;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,UAAU,EAAE,CAAA;CAAE;AACpE,uCAAuC;AACvC,MAAM,WAAW,UAAU;IAAG,MAAM,EAAE,WAAW,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE;AAE7G;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,EAAO,GAAG,MAAM,CAGvE;AAQD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CA0B5D;AAWD,wCAAwC;AACxC,wBAAgB,SAAS,CAAC,MAAM,EAAE,UAAU;;;;;;EAG3C;AAED,wDAAwD;AACxD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAE3D;AAED,mFAAmF;AACnF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAmD3D;AAQD,8DAA8D;AAC9D,MAAM,WAAW,mBAAmB;IAClC,oFAAoF;IACpF,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,GAAG,CAAA;KAAE,GAAG,IAAI,CAAC;IAChE,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,GAAG,CAAA;KAAE,GAAG,IAAI,CAAC;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC/C,aAAa,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5G,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1C;AAED,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AACzE,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,cAAc,GAAG,WAAW,CAAC;AAEhE,6FAA6F;AAC7F,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3C;AAGD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAsDvG;AAED,iEAAiE;AACjE,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAW1D;AAED,+GAA+G;AAC/G,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAkBtE"}
1
+ {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG1C,sDAAsD;AACtD,MAAM,WAAW,WAAW;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,UAAU,EAAE,CAAA;CAAE;AACpE,uCAAuC;AACvC,MAAM,WAAW,UAAU;IAAG,MAAM,EAAE,WAAW,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE;AAE7G;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,EAAO,GAAG,MAAM,CAGvE;AAQD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CA0B5D;AAWD,wCAAwC;AACxC,wBAAgB,SAAS,CAAC,MAAM,EAAE,UAAU;;;;;;EAG3C;AAED,wDAAwD;AACxD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAE3D;AAED,mFAAmF;AACnF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAmD3D;AAQD,8DAA8D;AAC9D,MAAM,WAAW,mBAAmB;IAClC,oFAAoF;IACpF,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,GAAG,CAAA;KAAE,GAAG,IAAI,CAAC;IAChE,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,GAAG,CAAA;KAAE,GAAG,IAAI,CAAC;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC/C,aAAa,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5G,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC;IAC3D,gHAAgH;IAChH,OAAO,CAAC,EAAE;QAAE,QAAQ,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC;CAC1G;AAED,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AACzE,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,cAAc,GAAG,WAAW,CAAC;AAEhE,6FAA6F;AAC7F,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3C;AAGD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CA8DvG;AAED,iEAAiE;AACjE,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAW1D;AAED,+GAA+G;AAC/G,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAmBtE"}
package/dist/report.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { refDuPlan, rattacherAuPlan } from "./lecteurs.js";
1
2
  /**
2
3
  * Le `classname` JUnit d'un cas : le chemin du fichier sans extension, en notation pointée, suivi de ses
3
4
  * groupes `describe` — `test-scripts/a.test.mjs` + [Groupe] → `test-scripts.a.test.Groupe`.
@@ -127,11 +128,19 @@ export function construireCompteRendu(report, ctx) {
127
128
  defauts.push(ctx.sbomErreur ? `SBOM illisible : ${ctx.sbomErreur}` : "SBOM absente : la version éprouvée est inconnue (--sbom)");
128
129
  else if (!comp.version)
129
130
  defauts.push("SBOM sans version de produit (metadata.component.version)");
130
- const cas = report.suites.flatMap((s) => s.results.filter((r) => !r.hook).map((r) => ({ r, fichier: s.file })));
131
+ // 0.10.0 — une référence écrite à la manière de Java, C#, Python (test_T_MOD_01_…) est cherchée dans le plan.
132
+ const refsPlan = (ctx.plan?.contenu?.tests ?? []).map((t) => String(t?.ref ?? "")).filter(Boolean);
133
+ for (const d of ctx.lecture?.defauts ?? [])
134
+ defauts.push(d);
135
+ // 0.10.0 — rattachées au plan AVANT le sceau (référence en tête du nom, fichier de l'autoRef) : qatrax ne réécrit pas
136
+ // un compte rendu scellé, et c'est par `autoRef` qu'il prouve une exigence.
137
+ const autoRefs = (ctx.plan?.contenu?.tests ?? []).map((t) => String(t?.autoRef ?? "")).filter(Boolean);
138
+ const suites = autoRefs.length ? rattacherAuPlan(report.suites, autoRefs) : report.suites;
139
+ const cas = suites.flatMap((s) => s.results.filter((r) => !r.hook).map((r) => ({ r, fichier: s.file })));
131
140
  const resultats = cas.map(({ r, fichier }) => {
132
141
  const titre = r.title ?? r.name;
133
142
  const statut = statutDe(r);
134
- return { ref: refDe(titre), titre, fichier, statut, dureeMs: Math.round(r.durationMs || 0),
143
+ return { ref: refDe(titre) || (refsPlan.length ? refDuPlan(titre, refsPlan) : ""), titre, fichier, statut, dureeMs: Math.round(r.durationMs || 0),
135
144
  ...(statut === "ignore" ? { motif: r.skipReason ?? "" } : {}), ...(r.error ? { message: String(r.error).slice(0, 2000) } : {}) };
136
145
  });
137
146
  for (const x of resultats) {
@@ -165,6 +174,7 @@ export function construireCompteRendu(report, ctx) {
165
174
  genereLe: report.generatedAt,
166
175
  ...(report.title ? { titre: report.title } : {}),
167
176
  outil: ctx.outil,
177
+ ...(ctx.lecture ? { lecture: { rapports: ctx.lecture.rapports } } : {}),
168
178
  produit: { nom: String(comp.name ?? "inconnu"), version: String(comp.version || "inconnue"), purl: String(comp.purl ?? "") },
169
179
  sbom: ctx.sbom ? { fichier: ctx.sbom.fichier, serialNumber: String(sb?.serialNumber ?? ""), revision: Number(sb?.version) || 1, sha256: ctx.sbom.sha256 } : null,
170
180
  source: { publication: prop("mostajs:publication"), etiquette: prop("mostajs:git:tag"), commit: prop("mostajs:git:commit") },
@@ -175,7 +185,7 @@ export function construireCompteRendu(report, ctx) {
175
185
  synthese,
176
186
  defauts,
177
187
  // Les suites au format du rapport JSON : le compte rendu reste lisible par qatrax.dev (qa-engine) tel quel.
178
- suites: report.suites,
188
+ suites,
179
189
  };
180
190
  }
181
191
  /** Export CTRF (Common Test Report Format) d'un compte rendu. */
@@ -204,7 +214,8 @@ export function renderInTotoTestResult(cr) {
204
214
  predicateType: "https://in-toto.io/attestation/test-result/v0.1",
205
215
  predicate: {
206
216
  result,
207
- configuration: [...(cr.plan ? [{ name: cr.plan.fichier, digest: { sha256: cr.plan.sha256 } }] : []), ...(cr.scripts ?? []).map((s) => ({ name: s.fichier, digest: { sha256: s.sha256 } }))],
217
+ configuration: [...(cr.plan ? [{ name: cr.plan.fichier, digest: { sha256: cr.plan.sha256 } }] : []), ...(cr.scripts ?? []).map((s) => ({ name: s.fichier, digest: { sha256: s.sha256 } })),
218
+ ...(cr.lecture?.rapports ?? []).map((r) => ({ name: r.fichier, digest: { sha256: r.sha256 } }))],
208
219
  ...(cr.environnement?.ci ? { url: cr.environnement.ci } : {}),
209
220
  passedTests: noms((x) => x.statut === "succes"),
210
221
  warnedTests: noms((x) => x.statut === "ignore"),
@@ -1 +1 @@
1
- {"version":3,"file":"report.js","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"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"}
package/llms.txt CHANGED
@@ -111,6 +111,14 @@ node node_modules/@mostajs/mjs-unit/bin/cli.mjs test-scripts/*.test.mjs
111
111
  sort en code 1 avec un message. Le compte s'imprime : « ✓ N/N test(s) exécutés sur F fichier(s) ».
112
112
  - Le resolver n'agit que sur les specifiers RELATIFS sans extension ; les packages (bare) passent normalement.
113
113
 
114
+ ## CLIENT QATRAX (0.11.0)
115
+ `mjs-unit qatrax etat [--bref] | rapatrier [--tous] | pris <id> [note] | corrige <id> [version] [note] | pousser [plan,run,sbom] [--si-vert]`.
116
+ Config : package.json "qatrax": { projet, url, nom?, plan?, run?, sbom?, defauts?, curseur? } ; QATRAX_URL l'emporte ; clé QATRAX_CLE_CI
117
+ ou ~/.config/qatrax/cle-ci-<projet> (600). Codes : 0 ok, 1 refus/fichier absent, 2 usage/config. API : `@mostajs/mjs-unit/qatrax`
118
+ → configQatrax({ racine, env }), creerClientQatrax(c) → { etat, rapatrier, poserEtat(id, 'en_cours'|'corrige', { version, note }), pousser({ niveaux, siVert }) }.
119
+ Routes qatrax : GET /recette/defauts?p=, GET /recette/defauts/piece?p=&id=, POST /recette/defauts/etat?p=, POST /import, /runs?p=, /sbom?p=&version=.
120
+ Le cœur (`.`) n'importe pas ce client.
121
+
114
122
  ## CONVENTION (écosystème)
115
123
  Tout test ET son runner (`run-tests.sh`) sont versionnés dans `test-scripts/` ; `package.json` `scripts.test`
116
124
  pointe sur le runner. Jamais de test jetable.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mostajs/mjs-unit",
3
- "version": "0.9.0",
4
- "description": "Micro-framework de test pour l'écosystème @mostajs/* : zéro dépendance, API minimale (test/expect/run), runner CLI (preuves HTML/JSON/JUnit XML via --report/--json/--junit ; compte rendu de validation CRA lié à la SBOM, CTRF, in-toto test-result via --compte-rendu/--ctrf/--intoto ; menu en shell mjs-unit-menu), notions JUnit (échec/erreur, classname, crochets, délai, étiquettes, tests paramétrés), reporters réutilisables (./report), et un resolver ESM qui exécute sous Node les dist à imports sans extension (convention moduleResolution=bundler).",
3
+ "version": "0.11.0",
4
+ "description": "Micro-framework de test pour l'écosystème @mostajs/* : zéro dépendance, API minimale (test/expect/run), runner CLI (preuves HTML/JSON/JUnit XML via --report/--json/--junit ; compte rendu de validation CRA lié à la SBOM, CTRF, in-toto test-result via --compte-rendu/--ctrf/--intoto ; mode lecteur --depuis : lit le rapport natif de Java, C#, Python, Go, C++… — JUnit XML, NUnit, TRX, TestNG, Robot Framework, CTest, Cucumber JSON, Behave JSON, Allure 2, CTRF, TAP — et en fait le même compte rendu ; lecteurs réutilisables ./lecteurs ; menu en shell mjs-unit-menu), notions JUnit (échec/erreur, classname, crochets, délai, étiquettes, tests paramétrés), reporters réutilisables (./report), et un resolver ESM qui exécute sous Node les dist à imports sans extension (convention moduleResolution=bundler). Depuis 0.11.0 : le client qatrax (mjs-unit qatrax etat|rapatrier|pris|corrige|pousser, @mostajs/mjs-unit/qatrax), hors du cœur.",
5
5
  "author": "Dr Hamid MADANI <drmdh@msn.com>",
6
6
  "license": "AGPL-3.0-or-later",
7
7
  "type": "module",
@@ -27,6 +27,16 @@
27
27
  "import": "./dist/report.js",
28
28
  "default": "./dist/report.js"
29
29
  },
30
+ "./lecteurs": {
31
+ "types": "./dist/lecteurs.d.ts",
32
+ "import": "./dist/lecteurs.js",
33
+ "default": "./dist/lecteurs.js"
34
+ },
35
+ "./qatrax": {
36
+ "types": "./dist/qatrax.d.ts",
37
+ "import": "./dist/qatrax.js",
38
+ "default": "./dist/qatrax.js"
39
+ },
30
40
  "./register": {
31
41
  "default": "./register.mjs"
32
42
  },
@@ -58,7 +68,18 @@
58
68
  "esm",
59
69
  "bundler",
60
70
  "zero-dependency",
61
- "mostajs"
71
+ "mostajs",
72
+ "nunit",
73
+ "trx",
74
+ "testng",
75
+ "robot-framework",
76
+ "cucumber",
77
+ "behave",
78
+ "allure",
79
+ "ctest",
80
+ "junit",
81
+ "qatrax",
82
+ "recette"
62
83
  ],
63
84
  "mostajs": {
64
85
  "niveau": "N0",