@mostajs/qrpanel 0.3.1 → 0.3.2
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/dist/config.d.ts +8 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +32 -3
- package/dist/config.js.map +1 -1
- package/package.json +1 -1
package/dist/config.d.ts
CHANGED
|
@@ -46,8 +46,14 @@ export interface QrConfig {
|
|
|
46
46
|
export declare const DEFAULT_CONFIG: QrConfig;
|
|
47
47
|
/**
|
|
48
48
|
* Lit la config depuis `cwd` (default `process.cwd()`).
|
|
49
|
-
*
|
|
50
|
-
*
|
|
49
|
+
*
|
|
50
|
+
* Comportement (depuis 0.3.2) :
|
|
51
|
+
* - Si `.qrconfig.json/.js/.qrconfig` trouvé → lecture + cache mtime.
|
|
52
|
+
* - Si absent ET auto-ensure activé → tente writeFileSync silencieux.
|
|
53
|
+
* - Si writeFileSync échoue (readonly fs, perm denied) → fallback transparent
|
|
54
|
+
* sur DEFAULT_CONFIG, l'échec est mémorisé pour ne pas retenter.
|
|
55
|
+
*
|
|
56
|
+
* Désactiver l'auto-ensure : `QRPANEL_AUTO_ENSURE=false`.
|
|
51
57
|
*/
|
|
52
58
|
export declare function loadQrConfig(cwd?: string): QrConfig;
|
|
53
59
|
/**
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAI3C,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAAA;AAChD,MAAM,MAAM,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AAEzC,wDAAwD;AACxD,MAAM,WAAW,gBAAgB;IAC/B,mFAAmF;IACnF,QAAQ,EAAE,OAAO,CAAA;IACjB,uDAAuD;IACvD,MAAM,EAAE,QAAQ,CAAA;IAChB,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAA;IACb,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAA;IACd,8EAA8E;IAC9E,oBAAoB,EAAE,KAAK,CAAA;IAC3B,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAA;IACjB,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAA;IAClB,wFAAwF;IACxF,KAAK,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAA;IACnC,yDAAyD;IACzD,SAAS,EAAE,QAAQ,EAAE,CAAA;IACrB;;;;;OAKG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB,sEAAsE;IACtE,gBAAgB,EAAE,MAAM,CAAA;IACxB,qCAAqC;IACrC,YAAY,EAAE,MAAM,CAAA;IACpB,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,gBAAgB,CAAA;IACzB,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC/D;AAID,eAAO,MAAM,cAAc,EAAE,QAmB5B,CAAA;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAI3C,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAAA;AAChD,MAAM,MAAM,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AAEzC,wDAAwD;AACxD,MAAM,WAAW,gBAAgB;IAC/B,mFAAmF;IACnF,QAAQ,EAAE,OAAO,CAAA;IACjB,uDAAuD;IACvD,MAAM,EAAE,QAAQ,CAAA;IAChB,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAA;IACb,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAA;IACd,8EAA8E;IAC9E,oBAAoB,EAAE,KAAK,CAAA;IAC3B,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAA;IACjB,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAA;IAClB,wFAAwF;IACxF,KAAK,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAA;IACnC,yDAAyD;IACzD,SAAS,EAAE,QAAQ,EAAE,CAAA;IACrB;;;;;OAKG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB,sEAAsE;IACtE,gBAAgB,EAAE,MAAM,CAAA;IACxB,qCAAqC;IACrC,YAAY,EAAE,MAAM,CAAA;IACpB,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,gBAAgB,CAAA;IACzB,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC/D;AAID,eAAO,MAAM,cAAc,EAAE,QAmB5B,CAAA;AAwCD;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,GAAG,GAAE,MAAsB,GAAG,QAAQ,CA0ClE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,GAAG,GAAE,MAAsB,EAC3B,SAAS,GAAE,OAAO,CAAC,gBAAgB,CAAM,GACxC,MAAM,CAoBR;AAED,oDAAoD;AACpD,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC"}
|
package/dist/config.js
CHANGED
|
@@ -45,13 +45,42 @@ function findConfigFile(cwd) {
|
|
|
45
45
|
}
|
|
46
46
|
const _cache = new Map();
|
|
47
47
|
// ─── Readers ───────────────────────────────────────────────────────
|
|
48
|
+
/**
|
|
49
|
+
* Décide si l'auto-création silencieuse est activée.
|
|
50
|
+
* Désactivable via `process.env.QRPANEL_AUTO_ENSURE=false` ou `=0` ou `=off`.
|
|
51
|
+
* Activée par défaut (depuis 0.3.2).
|
|
52
|
+
*/
|
|
53
|
+
function isAutoEnsureEnabled() {
|
|
54
|
+
const v = process.env.QRPANEL_AUTO_ENSURE;
|
|
55
|
+
if (v == null)
|
|
56
|
+
return true;
|
|
57
|
+
const lower = String(v).toLowerCase().trim();
|
|
58
|
+
return !(lower === 'false' || lower === '0' || lower === 'off' || lower === 'no');
|
|
59
|
+
}
|
|
60
|
+
// Mémoire pour ne pas re-tenter writeFileSync à chaque appel sur un FS readonly
|
|
61
|
+
const _autoEnsureFailedFor = new Set();
|
|
48
62
|
/**
|
|
49
63
|
* Lit la config depuis `cwd` (default `process.cwd()`).
|
|
50
|
-
*
|
|
51
|
-
*
|
|
64
|
+
*
|
|
65
|
+
* Comportement (depuis 0.3.2) :
|
|
66
|
+
* - Si `.qrconfig.json/.js/.qrconfig` trouvé → lecture + cache mtime.
|
|
67
|
+
* - Si absent ET auto-ensure activé → tente writeFileSync silencieux.
|
|
68
|
+
* - Si writeFileSync échoue (readonly fs, perm denied) → fallback transparent
|
|
69
|
+
* sur DEFAULT_CONFIG, l'échec est mémorisé pour ne pas retenter.
|
|
70
|
+
*
|
|
71
|
+
* Désactiver l'auto-ensure : `QRPANEL_AUTO_ENSURE=false`.
|
|
52
72
|
*/
|
|
53
73
|
export function loadQrConfig(cwd = process.cwd()) {
|
|
54
|
-
|
|
74
|
+
let path = findConfigFile(cwd);
|
|
75
|
+
// Auto-création (0.3.2+) : si pas de fichier et pas déjà échoué une fois ici
|
|
76
|
+
if (!path && isAutoEnsureEnabled() && !_autoEnsureFailedFor.has(cwd)) {
|
|
77
|
+
try {
|
|
78
|
+
path = ensureQrConfig(cwd);
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
_autoEnsureFailedFor.add(cwd); // FS readonly / perm denied → on retombe sur defaults sans bruit
|
|
82
|
+
}
|
|
83
|
+
}
|
|
55
84
|
if (!path)
|
|
56
85
|
return DEFAULT_CONFIG;
|
|
57
86
|
const stat = statSync(path);
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,0CAA0C;AAC1C,EAAE;AACF,YAAY;AACZ,sCAAsC;AACtC,oEAAoE;AACpE,qEAAqE;AACrE,EAAE;AACF,wEAAwE;AACxE,mEAAmE;AACnE,0CAA0C;AAE1C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC3E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAiDzC,sEAAsE;AAEtE,MAAM,CAAC,MAAM,cAAc,GAAa;IACtC,OAAO,EAAE;QACP,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,KAAK;QACb,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,CAAC;QACT,oBAAoB,EAAE,GAAG;QACzB,SAAS,EAAE,SAAS;QACpB,UAAU,EAAE,SAAS;QACrB,KAAK,EAAE,QAAQ;QACf,SAAS,EAAE;YACT,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM;YAC5D,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ;SACrD;QACD,YAAY,EAAE,GAAG;QACjB,gBAAgB,EAAE,IAAI;QACtB,YAAY,EAAE,GAAG;QACjB,UAAU,EAAE,SAAS;KACtB;CACF,CAAA;AAED,sEAAsE;AAEtE,MAAM,YAAY,GAAG,CAAC,gBAAgB,EAAE,cAAc,EAAE,WAAW,CAAU,CAAA;AAE7E,mFAAmF;AACnF,SAAS,cAAc,CAAC,GAAW;IACjC,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QACzB,IAAI,UAAU,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAA;IAC7B,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAQD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAsB,CAAA;AAE5C,sEAAsE;AAEtE;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IACtD,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mostajs/qrpanel",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "QR code panel — server-side PNG/SVG generator with 12 built-in themes (image-as-frame composite, ECC=H), config-driven (.qrconfig.json), cross-OS no chromium, + React <QrPanel> client with copy/share/mailto.",
|
|
5
5
|
"author": "Dr Hamid MADANI <drmdh@msn.com>",
|
|
6
6
|
"license": "AGPL-3.0-or-later",
|