@crimsonsunset/jsg-logger 1.8.6 → 1.8.8
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/config/config-manager.js +4 -2
- package/devtools/dist/panel-entry.js +408 -147
- package/devtools/dist/panel-entry.js.map +1 -1
- package/formatters/server-formatter.js +2 -1
- package/index.js +74 -54
- package/package.json +8 -2
- package/utils/devtools-loader.js +43 -0
- package/utils/redaction.js +12 -0
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js +0 -5
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map +0 -1
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js +0 -5
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map +0 -1
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js +0 -5
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map +0 -1
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js +0 -5
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map +0 -1
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js +0 -5
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map +0 -1
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js +0 -5
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map +0 -1
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js +0 -5
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map +0 -1
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js +0 -5
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map +0 -1
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js +0 -5
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map +0 -1
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js +0 -5
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map +0 -1
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js +0 -5
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map +0 -1
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js +0 -5
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map +0 -1
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js +0 -5
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map +0 -1
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js +0 -5
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map +0 -1
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js +0 -5
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map +0 -1
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js +0 -5
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map +0 -1
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW.js +0 -5
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW.js.map +0 -1
- package/devtools/dist/panel-entry-Ahej53sX-y0jCvGoU-BGR5GUGQ-B-CAdAd3-DipRT8xT-CSMwqnO2-CHbiC4Qe-BRrWXqYD-CNcJekPg.js +0 -13932
- package/devtools/dist/panel-entry-Ahej53sX-y0jCvGoU-BGR5GUGQ-B-CAdAd3-DipRT8xT-CSMwqnO2-CHbiC4Qe-BRrWXqYD-CNcJekPg.js.map +0 -1
- package/devtools/dist/panel-entry-B0ZWdsQY-DQdquw3J-TpkzsLdj-BGvdXuoS-CzTJvBQl-CAQNpg2W-Bo2gswMb-CAJV5DP5-DZe7oWlk-tDqwNUld.js +0 -13923
- package/devtools/dist/panel-entry-B0ZWdsQY-DQdquw3J-TpkzsLdj-BGvdXuoS-CzTJvBQl-CAQNpg2W-Bo2gswMb-CAJV5DP5-DZe7oWlk-tDqwNUld.js.map +0 -1
- package/devtools/dist/panel-entry-B2MhZ3gp.js +0 -13975
- package/devtools/dist/panel-entry-B2MhZ3gp.js.map +0 -1
- package/devtools/dist/panel-entry-BZ56bT66-BMyD75mc-BxfcB-io-DLFBg4X2-By57n0cz-DG9FfyPU-tsDeIORn-Brgs9eZh-C1aTwqVx-Bga5v200-D2uIBkta-DFygDOuM-CiZQ0ZWs-CK-Qy7JF-3_LfnrLj-C80pq-Ox-BAydVBl9.js +0 -13602
- package/devtools/dist/panel-entry-BZ56bT66-BMyD75mc-BxfcB-io-DLFBg4X2-By57n0cz-DG9FfyPU-tsDeIORn-Brgs9eZh-C1aTwqVx-Bga5v200-D2uIBkta-DFygDOuM-CiZQ0ZWs-CK-Qy7JF-3_LfnrLj-C80pq-Ox-BAydVBl9.js.map +0 -1
- package/devtools/dist/panel-entry-BaBkkSt6-B3YoMX06.js +0 -13963
- package/devtools/dist/panel-entry-BaBkkSt6-B3YoMX06.js.map +0 -1
- package/devtools/dist/panel-entry-CIG0rw0G-C23A9sjU-CbDuened.js +0 -13957
- package/devtools/dist/panel-entry-CIG0rw0G-C23A9sjU-CbDuened.js.map +0 -1
- package/devtools/dist/panel-entry-CLDrp2P4-BhE5Qmzo-DsrDp_aW-D77vFWhc-D0p-3Vck-juqy3fYf-Dla5eR-o-CER385zO-3kQqst6Z-mEXeTQxs-XDwY_WUW-CcUUttdq-BGVY77mY.js +0 -13914
- package/devtools/dist/panel-entry-CLDrp2P4-BhE5Qmzo-DsrDp_aW-D77vFWhc-D0p-3Vck-juqy3fYf-Dla5eR-o-CER385zO-3kQqst6Z-mEXeTQxs-XDwY_WUW-CcUUttdq-BGVY77mY.js.map +0 -1
- package/devtools/dist/panel-entry-Car1txqz-Cujk5tL9-pWwzfz1C-C_CMO2R5-BtcT6buV-DEh6fx7S-BLtwgJNF-CUuTgFqX.js +0 -13935
- package/devtools/dist/panel-entry-Car1txqz-Cujk5tL9-pWwzfz1C-C_CMO2R5-BtcT6buV-DEh6fx7S-BLtwgJNF-CUuTgFqX.js.map +0 -1
- package/devtools/dist/panel-entry-CdHyTMuR-wqllnGMv-CJFeg7x9-C7mRB5fj-DOgQaLRi-yYTqC4-t-DKUNOg6F-BtruRO_z-BDQrJIZQ-ByHq-LMj-Drlk5OTb-BAoinR4q-CD8VtN79-Cidg8klg-CA9PGoiF.js +0 -13728
- package/devtools/dist/panel-entry-CdHyTMuR-wqllnGMv-CJFeg7x9-C7mRB5fj-DOgQaLRi-yYTqC4-t-DKUNOg6F-BtruRO_z-BDQrJIZQ-ByHq-LMj-Drlk5OTb-BAoinR4q-CD8VtN79-Cidg8klg-CA9PGoiF.js.map +0 -1
- package/devtools/dist/panel-entry-D53S3yYJ-DlRCzJ0q-BnWPSxII-B57eqdYD-CRpb7P7m-CSgQ8r4U-DqjeAoTP.js +0 -13935
- package/devtools/dist/panel-entry-D53S3yYJ-DlRCzJ0q-BnWPSxII-B57eqdYD-CRpb7P7m-CSgQ8r4U-DqjeAoTP.js.map +0 -1
- package/devtools/dist/panel-entry-D6EQIVsV-51lrmGiZ-D4qVD_00-DVb1ySI7-C_RfHhv5-D78tUI3_.js +0 -13945
- package/devtools/dist/panel-entry-D6EQIVsV-51lrmGiZ-D4qVD_00-DVb1ySI7-C_RfHhv5-D78tUI3_.js.map +0 -1
- package/devtools/dist/panel-entry-Da9n85v7-C6Gam2oq-DDT89MNj-D9ZqvcEM-Dx--LZLa-BJiXK46m-DGuagWzT-B6evq62k-Cj2QcsAJ-BnxooYWW-D4oxy7MQ-g1-2DT91-DESRmxtW-BFO1EmVx-MWoTuzW5-Cg1SKwet.js +0 -13631
- package/devtools/dist/panel-entry-Da9n85v7-C6Gam2oq-DDT89MNj-D9ZqvcEM-Dx--LZLa-BJiXK46m-DGuagWzT-B6evq62k-Cj2QcsAJ-BnxooYWW-D4oxy7MQ-g1-2DT91-DESRmxtW-BFO1EmVx-MWoTuzW5-Cg1SKwet.js.map +0 -1
- package/devtools/dist/panel-entry-DeLbn5Tk-P7ZtOAd3-DXeez3fy-BFxPfyZi-9L9N-1f8-DzO_hXuM-CWXuuiJk-CI3ufk2T-CP3JflFQ-CLoczwy1-D7ukr7PE-DbMhopxi-BHxIMhDL-CDnadrxB.js +0 -13999
- package/devtools/dist/panel-entry-DeLbn5Tk-P7ZtOAd3-DXeez3fy-BFxPfyZi-9L9N-1f8-DzO_hXuM-CWXuuiJk-CI3ufk2T-CP3JflFQ-CLoczwy1-D7ukr7PE-DbMhopxi-BHxIMhDL-CDnadrxB.js.map +0 -1
- package/devtools/dist/panel-entry-Dh3i-JKj-D7NSYIQS-C_qI61WQ-BfJ0BW16-Df40_Q6R.js +0 -13951
- package/devtools/dist/panel-entry-Dh3i-JKj-D7NSYIQS-C_qI61WQ-BfJ0BW16-Df40_Q6R.js.map +0 -1
- package/devtools/dist/panel-entry-DlWAx2yA-vZadFV4d-DTvClgVl-zRu1NJo4-rPRjTg0e-dbBSWeq3-jx9KYEq_-B3sEcSWI-DeCc9Glr-02P4pIqr-CrzX1Fsr-C1C-Fcde.js +0 -13921
- package/devtools/dist/panel-entry-DlWAx2yA-vZadFV4d-DTvClgVl-zRu1NJo4-rPRjTg0e-dbBSWeq3-jx9KYEq_-B3sEcSWI-DeCc9Glr-02P4pIqr-CrzX1Fsr-C1C-Fcde.js.map +0 -1
- package/devtools/dist/panel-entry-DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s-.js +0 -11418
- package/devtools/dist/panel-entry-DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s-.js.map +0 -1
- package/devtools/dist/panel-entry-F_czAD5m-haMWJ-NK-CsYx2f8v-CczoKRsz-CIS8-qZe-F0ks_Y8t-CZBpt1gj-QmZJhT5N-460P-RpL-CKLofb-z-DEXl2ipp.js +0 -13921
- package/devtools/dist/panel-entry-F_czAD5m-haMWJ-NK-CsYx2f8v-CczoKRsz-CIS8-qZe-F0ks_Y8t-CZBpt1gj-QmZJhT5N-460P-RpL-CKLofb-z-DEXl2ipp.js.map +0 -1
- package/devtools/dist/panel-entry-L66PnOAy-CSPip1Cq-DIdgAB36-D56Z9rwz.js +0 -13957
- package/devtools/dist/panel-entry-L66PnOAy-CSPip1Cq-DIdgAB36-D56Z9rwz.js.map +0 -1
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
3
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
|
-
var _a;
|
|
5
4
|
var n, l$1, u$2, i$1, r$2, o$1, e$2, f$2, c$1, s$1, a$1, h$1, p$1 = {}, v$1 = [], y$1 = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i, w$3 = Array.isArray;
|
|
6
5
|
function d$1(n2, l2) {
|
|
7
6
|
for (var u2 in l2) n2[u2] = l2[u2];
|
|
@@ -4422,8 +4421,8 @@ const prop_types_1 = __importDefault$2(propTypesExports);
|
|
|
4422
4421
|
const enhancers_1$1 = enhancers;
|
|
4423
4422
|
const enhance_props_1 = __importDefault$2(enhanceProps$1);
|
|
4424
4423
|
const safeHref_1 = safeHref;
|
|
4425
|
-
const Box$1 = react_1.default.forwardRef((
|
|
4426
|
-
var { is, children, allowUnsafeHref } =
|
|
4424
|
+
const Box$1 = react_1.default.forwardRef((_a, ref) => {
|
|
4425
|
+
var { is, children, allowUnsafeHref } = _a, props = __rest(_a, ["is", "children", "allowUnsafeHref"]);
|
|
4427
4426
|
const { className, enhancedProps: parsedProps } = (0, enhance_props_1.default)(props);
|
|
4428
4427
|
parsedProps.className = className;
|
|
4429
4428
|
if (ref) {
|
|
@@ -8866,10 +8865,10 @@ getPrefix$1.default = void 0;
|
|
|
8866
8865
|
getPrefix$1.getPrefix = getPrefix;
|
|
8867
8866
|
const prefixes = ["Moz", "Webkit", "O", "ms"];
|
|
8868
8867
|
function getPrefix() {
|
|
8869
|
-
var
|
|
8868
|
+
var _a, _b;
|
|
8870
8869
|
let prop = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "transform";
|
|
8871
8870
|
if (typeof window === "undefined") return "";
|
|
8872
|
-
const style = (_b = (
|
|
8871
|
+
const style = (_b = (_a = window.document) == null ? void 0 : _a.documentElement) == null ? void 0 : _b.style;
|
|
8873
8872
|
if (!style) return "";
|
|
8874
8873
|
if (prop in style) return "";
|
|
8875
8874
|
for (let i2 = 0; i2 < prefixes.length; i2++) {
|
|
@@ -9442,8 +9441,8 @@ let DraggableCore$1 = class DraggableCore extends React.Component {
|
|
|
9442
9441
|
// React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find
|
|
9443
9442
|
// the underlying DOM node ourselves. See the README for more information.
|
|
9444
9443
|
findDOMNode() {
|
|
9445
|
-
var
|
|
9446
|
-
return ((
|
|
9444
|
+
var _a, _b, _c;
|
|
9445
|
+
return ((_a = this.props) == null ? void 0 : _a.nodeRef) ? (_c = (_b = this.props) == null ? void 0 : _b.nodeRef) == null ? void 0 : _c.current : _reactDom.default.findDOMNode(this);
|
|
9447
9446
|
}
|
|
9448
9447
|
render() {
|
|
9449
9448
|
return /* @__PURE__ */ React.cloneElement(React.Children.only(this.props.children), {
|
|
@@ -9797,8 +9796,8 @@ _defineProperty(DraggableCore$1, "defaultProps", {
|
|
|
9797
9796
|
// React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find
|
|
9798
9797
|
// the underlying DOM node ourselves. See the README for more information.
|
|
9799
9798
|
findDOMNode() {
|
|
9800
|
-
var
|
|
9801
|
-
return ((_b = (
|
|
9799
|
+
var _a, _b;
|
|
9800
|
+
return ((_b = (_a = this.props) == null ? void 0 : _a.nodeRef) == null ? void 0 : _b.current) ?? _reactDom2.default.findDOMNode(this);
|
|
9802
9801
|
}
|
|
9803
9802
|
render() {
|
|
9804
9803
|
const {
|
|
@@ -10225,8 +10224,8 @@ function ComponentFilters({ components: components2, loggerControls, onLevelChan
|
|
|
10225
10224
|
y(() => {
|
|
10226
10225
|
const levels2 = {};
|
|
10227
10226
|
components2.forEach((name2) => {
|
|
10228
|
-
var
|
|
10229
|
-
const level = ((
|
|
10227
|
+
var _a;
|
|
10228
|
+
const level = ((_a = loggerControls.getLevel) == null ? void 0 : _a.call(loggerControls, name2)) || "info";
|
|
10230
10229
|
levels2[name2] = levelNameToValue[level] ?? 3;
|
|
10231
10230
|
});
|
|
10232
10231
|
setComponentLevels(levels2);
|
|
@@ -10362,7 +10361,7 @@ function ComponentFilters({ components: components2, loggerControls, onLevelChan
|
|
|
10362
10361
|
);
|
|
10363
10362
|
}) });
|
|
10364
10363
|
}
|
|
10365
|
-
var browser = { exports: {} };
|
|
10364
|
+
var browser$1 = { exports: {} };
|
|
10366
10365
|
function tryStringify(o2) {
|
|
10367
10366
|
try {
|
|
10368
10367
|
return JSON.stringify(o2);
|
|
@@ -10473,7 +10472,7 @@ function format$2(f2, args, opts) {
|
|
|
10473
10472
|
return str;
|
|
10474
10473
|
}
|
|
10475
10474
|
const format$1 = quickFormatUnescaped;
|
|
10476
|
-
browser.exports = pino;
|
|
10475
|
+
browser$1.exports = pino;
|
|
10477
10476
|
const _console = pfGlobalThisOrFallback().console || {};
|
|
10478
10477
|
const stdSerializers = {
|
|
10479
10478
|
mapHttpRequest: mock,
|
|
@@ -10897,9 +10896,9 @@ function pfGlobalThisOrFallback() {
|
|
|
10897
10896
|
return defd(self) || defd(window) || defd(this) || {};
|
|
10898
10897
|
}
|
|
10899
10898
|
}
|
|
10900
|
-
browser.exports.default = pino;
|
|
10901
|
-
browser.exports.pino = pino;
|
|
10902
|
-
var browserExports = browser.exports;
|
|
10899
|
+
browser$1.exports.default = pino;
|
|
10900
|
+
browser$1.exports.pino = pino;
|
|
10901
|
+
var browserExports = browser$1.exports;
|
|
10903
10902
|
const pino$1 = /* @__PURE__ */ getDefaultExportFromCjs(browserExports);
|
|
10904
10903
|
const projectName = "JSG Logger";
|
|
10905
10904
|
const globalLevel = "info";
|
|
@@ -10920,6 +10919,17 @@ const display = {
|
|
|
10920
10919
|
jsonPayload: true,
|
|
10921
10920
|
stackTrace: true
|
|
10922
10921
|
};
|
|
10922
|
+
const redact = {
|
|
10923
|
+
paths: [
|
|
10924
|
+
"password",
|
|
10925
|
+
"token",
|
|
10926
|
+
"*key",
|
|
10927
|
+
"*secret",
|
|
10928
|
+
"*apiKey",
|
|
10929
|
+
"*api_key"
|
|
10930
|
+
],
|
|
10931
|
+
censor: "[REDACTED]"
|
|
10932
|
+
};
|
|
10923
10933
|
const levels = {
|
|
10924
10934
|
"10": {
|
|
10925
10935
|
name: "TRACE",
|
|
@@ -10971,6 +10981,7 @@ const defaultConfig = {
|
|
|
10971
10981
|
format,
|
|
10972
10982
|
timestampMode,
|
|
10973
10983
|
display,
|
|
10984
|
+
redact,
|
|
10974
10985
|
levels,
|
|
10975
10986
|
components,
|
|
10976
10987
|
fileOverrides,
|
|
@@ -11001,9 +11012,9 @@ const LEVEL_SCHEME = {
|
|
|
11001
11012
|
60: { emoji: "💀", color: "#D63031", name: "FATAL" }
|
|
11002
11013
|
};
|
|
11003
11014
|
const metaLog = (message, ...args) => {
|
|
11004
|
-
var
|
|
11015
|
+
var _a;
|
|
11005
11016
|
try {
|
|
11006
|
-
const metaLoggingConfig = (
|
|
11017
|
+
const metaLoggingConfig = (_a = configManager == null ? void 0 : configManager.config) == null ? void 0 : _a.metaLogging;
|
|
11007
11018
|
if (metaLoggingConfig === void 0 || metaLoggingConfig === true) {
|
|
11008
11019
|
console.log(message, ...args);
|
|
11009
11020
|
return;
|
|
@@ -11015,10 +11026,25 @@ const metaLog = (message, ...args) => {
|
|
|
11015
11026
|
console.log(message, ...args);
|
|
11016
11027
|
}
|
|
11017
11028
|
};
|
|
11029
|
+
const metaWarn = (message, ...args) => {
|
|
11030
|
+
var _a;
|
|
11031
|
+
try {
|
|
11032
|
+
const metaLoggingConfig = (_a = configManager == null ? void 0 : configManager.config) == null ? void 0 : _a.metaLogging;
|
|
11033
|
+
if (metaLoggingConfig === void 0 || metaLoggingConfig === true) {
|
|
11034
|
+
console.warn(message, ...args);
|
|
11035
|
+
return;
|
|
11036
|
+
}
|
|
11037
|
+
if (metaLoggingConfig === false) {
|
|
11038
|
+
return;
|
|
11039
|
+
}
|
|
11040
|
+
} catch (error) {
|
|
11041
|
+
console.warn(message, ...args);
|
|
11042
|
+
}
|
|
11043
|
+
};
|
|
11018
11044
|
const metaError$1 = (message, ...args) => {
|
|
11019
|
-
var
|
|
11045
|
+
var _a;
|
|
11020
11046
|
try {
|
|
11021
|
-
const metaLoggingConfig = (
|
|
11047
|
+
const metaLoggingConfig = (_a = configManager == null ? void 0 : configManager.config) == null ? void 0 : _a.metaLogging;
|
|
11022
11048
|
if (metaLoggingConfig === void 0 || metaLoggingConfig === true) {
|
|
11023
11049
|
console.error(message, ...args);
|
|
11024
11050
|
return;
|
|
@@ -11042,7 +11068,7 @@ class ConfigManager {
|
|
|
11042
11068
|
* @returns {Promise<Object>} Merged configuration
|
|
11043
11069
|
*/
|
|
11044
11070
|
async loadConfig(configSource) {
|
|
11045
|
-
var
|
|
11071
|
+
var _a, _b, _c;
|
|
11046
11072
|
try {
|
|
11047
11073
|
let externalConfig = {};
|
|
11048
11074
|
if (typeof configSource === "string") {
|
|
@@ -11053,7 +11079,7 @@ class ConfigManager {
|
|
|
11053
11079
|
externalConfig = configSource;
|
|
11054
11080
|
}
|
|
11055
11081
|
const normalizedConfig = this._normalizeConfigStructure(externalConfig);
|
|
11056
|
-
const devtoolsBefore = ((
|
|
11082
|
+
const devtoolsBefore = ((_a = this.config.devtools) == null ? void 0 : _a.enabled) ?? false;
|
|
11057
11083
|
const devtoolsAfter = ((_b = normalizedConfig.devtools) == null ? void 0 : _b.enabled) ?? devtoolsBefore;
|
|
11058
11084
|
this.config = this.mergeConfigs(this.config, normalizedConfig);
|
|
11059
11085
|
const finalDevtoolsEnabled = ((_c = this.config.devtools) == null ? void 0 : _c.enabled) ?? false;
|
|
@@ -11144,6 +11170,7 @@ class ConfigManager {
|
|
|
11144
11170
|
}
|
|
11145
11171
|
try {
|
|
11146
11172
|
const module = await import(
|
|
11173
|
+
/* webpackIgnore: true */
|
|
11147
11174
|
/* @vite-ignore */
|
|
11148
11175
|
path
|
|
11149
11176
|
);
|
|
@@ -11167,6 +11194,7 @@ class ConfigManager {
|
|
|
11167
11194
|
async _loadConfigBrowserImport(path) {
|
|
11168
11195
|
try {
|
|
11169
11196
|
const module = await import(
|
|
11197
|
+
/* webpackIgnore: true */
|
|
11170
11198
|
/* @vite-ignore */
|
|
11171
11199
|
path
|
|
11172
11200
|
);
|
|
@@ -11193,6 +11221,9 @@ class ConfigManager {
|
|
|
11193
11221
|
if (config.components) {
|
|
11194
11222
|
normalized.components = this._normalizeComponents(config.components);
|
|
11195
11223
|
}
|
|
11224
|
+
if (config.transports) {
|
|
11225
|
+
normalized.transports = config.transports;
|
|
11226
|
+
}
|
|
11196
11227
|
return normalized;
|
|
11197
11228
|
}
|
|
11198
11229
|
/**
|
|
@@ -11313,6 +11344,8 @@ class ConfigManager {
|
|
|
11313
11344
|
if (override.hasOwnProperty(key)) {
|
|
11314
11345
|
if (key === "components" && typeof override[key] === "object") {
|
|
11315
11346
|
merged[key] = override[key];
|
|
11347
|
+
} else if (key === "transports") {
|
|
11348
|
+
merged[key] = override[key];
|
|
11316
11349
|
} else if (typeof override[key] === "object" && !Array.isArray(override[key])) {
|
|
11317
11350
|
merged[key] = this.mergeConfigs(merged[key] || {}, override[key]);
|
|
11318
11351
|
} else {
|
|
@@ -11380,8 +11413,8 @@ class ConfigManager {
|
|
|
11380
11413
|
* @returns {Object} Component configuration
|
|
11381
11414
|
*/
|
|
11382
11415
|
getComponentConfig(componentName, filePath = null) {
|
|
11383
|
-
var
|
|
11384
|
-
let baseComponent = (
|
|
11416
|
+
var _a;
|
|
11417
|
+
let baseComponent = (_a = this.config.components) == null ? void 0 : _a[componentName];
|
|
11385
11418
|
if (!baseComponent) {
|
|
11386
11419
|
baseComponent = COMPONENT_SCHEME[componentName];
|
|
11387
11420
|
}
|
|
@@ -11461,6 +11494,28 @@ class ConfigManager {
|
|
|
11461
11494
|
}
|
|
11462
11495
|
return baseDisplay;
|
|
11463
11496
|
}
|
|
11497
|
+
/**
|
|
11498
|
+
* Get redact configuration with file override support
|
|
11499
|
+
* @param {string} filePath - Optional file path for override checking
|
|
11500
|
+
* @returns {Object} Redact configuration with paths array and censor string
|
|
11501
|
+
*/
|
|
11502
|
+
getRedactConfig(filePath = null) {
|
|
11503
|
+
const baseRedact = this.config.redact || {
|
|
11504
|
+
paths: [],
|
|
11505
|
+
censor: "[REDACTED]"
|
|
11506
|
+
};
|
|
11507
|
+
const checkFile = filePath || this.currentFile;
|
|
11508
|
+
if (checkFile) {
|
|
11509
|
+
const fileOverride = this.getFileOverride(checkFile);
|
|
11510
|
+
if (fileOverride && fileOverride.redact) {
|
|
11511
|
+
return {
|
|
11512
|
+
...baseRedact,
|
|
11513
|
+
...fileOverride.redact
|
|
11514
|
+
};
|
|
11515
|
+
}
|
|
11516
|
+
}
|
|
11517
|
+
return baseRedact;
|
|
11518
|
+
}
|
|
11464
11519
|
/**
|
|
11465
11520
|
* Get project name
|
|
11466
11521
|
* @returns {string} Project name
|
|
@@ -11591,10 +11646,10 @@ const isBrowser = () => {
|
|
|
11591
11646
|
return typeof window !== "undefined" && typeof document !== "undefined";
|
|
11592
11647
|
};
|
|
11593
11648
|
const isCLI = () => {
|
|
11594
|
-
var
|
|
11649
|
+
var _a, _b;
|
|
11595
11650
|
if (forcedEnvironment) return forcedEnvironment === "cli";
|
|
11596
11651
|
if (typeof process === "undefined") return false;
|
|
11597
|
-
const hasTTY = ((
|
|
11652
|
+
const hasTTY = ((_a = process.stdout) == null ? void 0 : _a.isTTY) || ((_b = process.stderr) == null ? void 0 : _b.isTTY);
|
|
11598
11653
|
const hasTermEnv = process.env.TERM || process.env.COLORTERM;
|
|
11599
11654
|
const notCI = !process.env.CI && !process.env.GITHUB_ACTIONS;
|
|
11600
11655
|
return hasTTY || hasTermEnv && notCI;
|
|
@@ -11605,6 +11660,39 @@ const getEnvironment = () => {
|
|
|
11605
11660
|
if (isCLI()) return "cli";
|
|
11606
11661
|
return "server";
|
|
11607
11662
|
};
|
|
11663
|
+
function toPinoRedactPaths(paths) {
|
|
11664
|
+
const exact = paths.filter((path) => !path.includes("*"));
|
|
11665
|
+
return exact.length > 0 ? exact : ["password", "token"];
|
|
11666
|
+
}
|
|
11667
|
+
function shouldRedactKey(key, paths) {
|
|
11668
|
+
return paths.some((pattern) => {
|
|
11669
|
+
if (pattern.startsWith("*")) {
|
|
11670
|
+
const suffix = pattern.slice(1).toLowerCase();
|
|
11671
|
+
return key.toLowerCase().endsWith(suffix);
|
|
11672
|
+
}
|
|
11673
|
+
return key.toLowerCase() === pattern.toLowerCase();
|
|
11674
|
+
});
|
|
11675
|
+
}
|
|
11676
|
+
function redactValue(value, redactConfig) {
|
|
11677
|
+
if (!redactConfig || !redactConfig.paths || redactConfig.paths.length === 0) {
|
|
11678
|
+
return value;
|
|
11679
|
+
}
|
|
11680
|
+
if (typeof value === "object" && value !== null && !Array.isArray(value)) {
|
|
11681
|
+
const redacted = {};
|
|
11682
|
+
for (const [key, val] of Object.entries(value)) {
|
|
11683
|
+
if (shouldRedactKey(key, redactConfig.paths)) {
|
|
11684
|
+
redacted[key] = redactConfig.censor || "[REDACTED]";
|
|
11685
|
+
} else {
|
|
11686
|
+
redacted[key] = redactValue(val, redactConfig);
|
|
11687
|
+
}
|
|
11688
|
+
}
|
|
11689
|
+
return redacted;
|
|
11690
|
+
}
|
|
11691
|
+
if (Array.isArray(value)) {
|
|
11692
|
+
return value.map((item) => redactValue(item, redactConfig));
|
|
11693
|
+
}
|
|
11694
|
+
return value;
|
|
11695
|
+
}
|
|
11608
11696
|
const createBrowserFormatter = (componentName, logStore = null) => {
|
|
11609
11697
|
return {
|
|
11610
11698
|
write: (data2) => {
|
|
@@ -11617,6 +11705,7 @@ const createBrowserFormatter = (componentName, logStore = null) => {
|
|
|
11617
11705
|
const component = configManager.getComponentConfig(componentName, filePath);
|
|
11618
11706
|
const level = configManager.getLevelConfig(logData.level);
|
|
11619
11707
|
const displayConfig = configManager.getDisplayConfig(filePath);
|
|
11708
|
+
const redactConfig = configManager.getRedactConfig(filePath);
|
|
11620
11709
|
const effectiveLevel = configManager.getEffectiveLevel(componentName, filePath);
|
|
11621
11710
|
if (!shouldDisplay(logData.level, effectiveLevel)) {
|
|
11622
11711
|
return;
|
|
@@ -11655,7 +11744,8 @@ const createBrowserFormatter = (componentName, logStore = null) => {
|
|
|
11655
11744
|
if (displayConfig.jsonPayload) {
|
|
11656
11745
|
const contextData = extractContextData(logData);
|
|
11657
11746
|
if (Object.keys(contextData).length > 0) {
|
|
11658
|
-
|
|
11747
|
+
const redactedData = redactValue(contextData, redactConfig);
|
|
11748
|
+
displayContextData(redactedData);
|
|
11659
11749
|
}
|
|
11660
11750
|
}
|
|
11661
11751
|
if (displayConfig.stackTrace && logData.err && logData.err.stack) {
|
|
@@ -11783,10 +11873,12 @@ const createCLIFormatter = () => {
|
|
|
11783
11873
|
const internalFields = ["level", "time", "msg", "pid", "hostname", "name", "v", "environment"];
|
|
11784
11874
|
const contextKeys = Object.keys(log2).filter((key) => !internalFields.includes(key));
|
|
11785
11875
|
if (contextKeys.length > 0) {
|
|
11876
|
+
const redactConfig = configManager.getRedactConfig();
|
|
11877
|
+
const redactedLog = redactValue(log2, redactConfig);
|
|
11786
11878
|
contextKeys.forEach((key, index) => {
|
|
11787
11879
|
const isLast = index === contextKeys.length - 1;
|
|
11788
11880
|
const prefix2 = isLast ? " └─" : " ├─";
|
|
11789
|
-
const value = formatValue(
|
|
11881
|
+
const value = formatValue(redactedLog[key]);
|
|
11790
11882
|
console.log(`${prefix2} ${key}: ${value}`);
|
|
11791
11883
|
});
|
|
11792
11884
|
}
|
|
@@ -11800,6 +11892,7 @@ const createServerFormatter = () => {
|
|
|
11800
11892
|
return null;
|
|
11801
11893
|
};
|
|
11802
11894
|
const getServerConfig = () => {
|
|
11895
|
+
const redactConfig = configManager.getRedactConfig();
|
|
11803
11896
|
return {
|
|
11804
11897
|
level: "info",
|
|
11805
11898
|
// More conservative logging in production
|
|
@@ -11815,10 +11908,10 @@ const getServerConfig = () => {
|
|
|
11815
11908
|
};
|
|
11816
11909
|
}
|
|
11817
11910
|
},
|
|
11818
|
-
// Redact sensitive information in production
|
|
11911
|
+
// Redact sensitive information in production (configurable)
|
|
11819
11912
|
redact: {
|
|
11820
|
-
paths:
|
|
11821
|
-
censor: "[REDACTED]"
|
|
11913
|
+
paths: toPinoRedactPaths(redactConfig.paths),
|
|
11914
|
+
censor: redactConfig.censor || "[REDACTED]"
|
|
11822
11915
|
}
|
|
11823
11916
|
};
|
|
11824
11917
|
};
|
|
@@ -11944,12 +12037,57 @@ class LogStore {
|
|
|
11944
12037
|
return levelMap[level] || "unknown";
|
|
11945
12038
|
}
|
|
11946
12039
|
}
|
|
12040
|
+
const LEVEL_NUMS = {
|
|
12041
|
+
trace: 10,
|
|
12042
|
+
debug: 20,
|
|
12043
|
+
info: 30,
|
|
12044
|
+
warn: 40,
|
|
12045
|
+
error: 50,
|
|
12046
|
+
fatal: 60
|
|
12047
|
+
};
|
|
12048
|
+
function extractError(data2) {
|
|
12049
|
+
if (data2 instanceof Error) return data2;
|
|
12050
|
+
if (data2 && typeof data2 === "object") {
|
|
12051
|
+
if (data2.err instanceof Error) return data2.err;
|
|
12052
|
+
if (data2.error instanceof Error) return data2.error;
|
|
12053
|
+
}
|
|
12054
|
+
return void 0;
|
|
12055
|
+
}
|
|
12056
|
+
function buildLogEntry(level, levelNum, component, message, data2) {
|
|
12057
|
+
return {
|
|
12058
|
+
level,
|
|
12059
|
+
levelNum,
|
|
12060
|
+
message: message ?? "",
|
|
12061
|
+
component,
|
|
12062
|
+
data: data2,
|
|
12063
|
+
timestamp: Date.now(),
|
|
12064
|
+
isError: levelNum >= 50,
|
|
12065
|
+
error: extractError(data2)
|
|
12066
|
+
};
|
|
12067
|
+
}
|
|
12068
|
+
function dispatchToTransports(entry, transports) {
|
|
12069
|
+
if (!transports || transports.length === 0) return;
|
|
12070
|
+
const entryLevelNum = entry.levelNum;
|
|
12071
|
+
for (const transport of transports) {
|
|
12072
|
+
try {
|
|
12073
|
+
const minLevel = transport.level ? LEVEL_NUMS[transport.level] ?? 0 : 0;
|
|
12074
|
+
if (entryLevelNum < minLevel) continue;
|
|
12075
|
+
transport.send(entry);
|
|
12076
|
+
} catch (err) {
|
|
12077
|
+
metaError$1("[JSG-LOGGER] Transport dispatch error:", err);
|
|
12078
|
+
}
|
|
12079
|
+
}
|
|
12080
|
+
}
|
|
11947
12081
|
const name = "@crimsonsunset/jsg-logger";
|
|
11948
|
-
const version = "1.
|
|
12082
|
+
const version = "1.8.8";
|
|
11949
12083
|
const type = "module";
|
|
11950
12084
|
const description = "Multi-environment logger with smart detection, file-level overrides, and beautiful console formatting. Test it live: https://logger.joesangiorgio.com/";
|
|
11951
12085
|
const main = "index.js";
|
|
11952
12086
|
const types = "./index.d.ts";
|
|
12087
|
+
const browser = {
|
|
12088
|
+
fs: false,
|
|
12089
|
+
"fs/promises": false
|
|
12090
|
+
};
|
|
11953
12091
|
const keywords = [
|
|
11954
12092
|
"logging",
|
|
11955
12093
|
"pino",
|
|
@@ -12035,12 +12173,14 @@ const scripts = {
|
|
|
12035
12173
|
dev: "vite",
|
|
12036
12174
|
"dev:devtools": "cd devtools && npm run dev",
|
|
12037
12175
|
"test:devtools": "vite",
|
|
12038
|
-
"build:devtools": "cd devtools && npm run build",
|
|
12176
|
+
"build:devtools": "cd devtools && npm ci && npm run build",
|
|
12177
|
+
prepublishOnly: "npm run build:devtools",
|
|
12039
12178
|
"build:devtools:netlify": "npm install && cd devtools && npm install && npm run build:netlify",
|
|
12040
12179
|
"preview:devtools": "cd devtools && npm run preview",
|
|
12041
12180
|
"release:patch": "node scripts/release.js patch",
|
|
12042
12181
|
"release:minor": "node scripts/release.js minor",
|
|
12043
12182
|
"release:major": "node scripts/release.js major",
|
|
12183
|
+
"publish:ci": "node scripts/publish.js",
|
|
12044
12184
|
"publish:public": "npm publish --access public",
|
|
12045
12185
|
"publish:github": "npm publish --registry=https://npm.pkg.github.com/ --access public",
|
|
12046
12186
|
check: "npm run test && echo 'Package ready for publishing'"
|
|
@@ -12052,6 +12192,7 @@ const packageJson = {
|
|
|
12052
12192
|
description,
|
|
12053
12193
|
main,
|
|
12054
12194
|
types,
|
|
12195
|
+
browser,
|
|
12055
12196
|
keywords,
|
|
12056
12197
|
author,
|
|
12057
12198
|
license,
|
|
@@ -12066,22 +12207,6 @@ const packageJson = {
|
|
|
12066
12207
|
exports,
|
|
12067
12208
|
scripts
|
|
12068
12209
|
};
|
|
12069
|
-
const defaultDevtoolsEnabled = ((_a = defaultConfig.devtools) == null ? void 0 : _a.enabled) ?? false;
|
|
12070
|
-
let devtoolsModule = null;
|
|
12071
|
-
let devtoolsModulePromise = null;
|
|
12072
|
-
if (defaultDevtoolsEnabled) {
|
|
12073
|
-
metaLog("[JSG-LOGGER] DevTools module pre-loading started (default config enabled)");
|
|
12074
|
-
devtoolsModulePromise = import("./panel-entry-B2MhZ3gp.js").then((module) => {
|
|
12075
|
-
devtoolsModule = module;
|
|
12076
|
-
metaLog("[JSG-LOGGER] DevTools module pre-loaded successfully");
|
|
12077
|
-
return module;
|
|
12078
|
-
}).catch((error) => {
|
|
12079
|
-
metaError$1("[JSG-LOGGER] DevTools module pre-load failed:", error);
|
|
12080
|
-
return null;
|
|
12081
|
-
});
|
|
12082
|
-
} else {
|
|
12083
|
-
metaLog("[JSG-LOGGER] DevTools module NOT pre-loaded (default config disabled - will tree-shake)");
|
|
12084
|
-
}
|
|
12085
12210
|
const _JSGLogger = class _JSGLogger {
|
|
12086
12211
|
// Lock to prevent concurrent initializations
|
|
12087
12212
|
constructor() {
|
|
@@ -12091,6 +12216,7 @@ const _JSGLogger = class _JSGLogger {
|
|
|
12091
12216
|
this.initialized = false;
|
|
12092
12217
|
this.components = {};
|
|
12093
12218
|
this.componentSubscribers = [];
|
|
12219
|
+
this.transports = [];
|
|
12094
12220
|
}
|
|
12095
12221
|
/**
|
|
12096
12222
|
* Get singleton instance with auto-initialization
|
|
@@ -12098,20 +12224,26 @@ const _JSGLogger = class _JSGLogger {
|
|
|
12098
12224
|
* @returns {Promise<Object>} Enhanced logger exports with controls API
|
|
12099
12225
|
*/
|
|
12100
12226
|
static async getInstance(options = {}) {
|
|
12101
|
-
var
|
|
12227
|
+
var _a, _b;
|
|
12102
12228
|
const hasOptions = options && Object.keys(options).length > 0;
|
|
12103
12229
|
if (!_JSGLogger._instance) {
|
|
12104
12230
|
_JSGLogger._instance = new _JSGLogger();
|
|
12105
12231
|
_JSGLogger._enhancedLoggers = await _JSGLogger._instance.init(options);
|
|
12106
|
-
if (isBrowser() && typeof window !== "undefined" && ((
|
|
12232
|
+
if (isBrowser() && typeof window !== "undefined" && ((_a = _JSGLogger._enhancedLoggers) == null ? void 0 : _a.controls)) {
|
|
12107
12233
|
window.JSG_Logger = _JSGLogger._enhancedLoggers.controls;
|
|
12108
12234
|
window.__JSG_Logger_Enhanced__ = _JSGLogger._enhancedLoggers;
|
|
12109
12235
|
}
|
|
12110
12236
|
} else if (hasOptions) {
|
|
12111
|
-
|
|
12112
|
-
|
|
12113
|
-
|
|
12114
|
-
|
|
12237
|
+
if (_JSGLogger._instance.initialized) {
|
|
12238
|
+
console.warn(
|
|
12239
|
+
"[JSGLogger] getInstance() called with options on an already-initialized instance — options were ignored to preserve registered transports. Use configure() to update settings post-init."
|
|
12240
|
+
);
|
|
12241
|
+
} else {
|
|
12242
|
+
_JSGLogger._enhancedLoggers = await _JSGLogger._instance.init(options);
|
|
12243
|
+
if (isBrowser() && typeof window !== "undefined" && ((_b = _JSGLogger._enhancedLoggers) == null ? void 0 : _b.controls)) {
|
|
12244
|
+
window.JSG_Logger = _JSGLogger._enhancedLoggers.controls;
|
|
12245
|
+
window.__JSG_Logger_Enhanced__ = _JSGLogger._enhancedLoggers;
|
|
12246
|
+
}
|
|
12115
12247
|
}
|
|
12116
12248
|
}
|
|
12117
12249
|
return _JSGLogger._enhancedLoggers;
|
|
@@ -12123,22 +12255,32 @@ const _JSGLogger = class _JSGLogger {
|
|
|
12123
12255
|
* @returns {Object} Enhanced logger exports with controls API
|
|
12124
12256
|
*/
|
|
12125
12257
|
static getInstanceSync(options = {}) {
|
|
12126
|
-
var
|
|
12258
|
+
var _a, _b, _c;
|
|
12127
12259
|
const hasOptions = options && Object.keys(options).length > 0;
|
|
12128
12260
|
if (hasOptions) {
|
|
12261
|
+
if ((_a = _JSGLogger._instance) == null ? void 0 : _a.initialized) {
|
|
12262
|
+
console.warn(
|
|
12263
|
+
"[JSGLogger] getInstanceSync() called with options on an already-initialized instance — options were ignored to preserve registered transports. Use configure() to update settings post-init."
|
|
12264
|
+
);
|
|
12265
|
+
return _JSGLogger._enhancedLoggers;
|
|
12266
|
+
}
|
|
12129
12267
|
if (!_JSGLogger._instance) {
|
|
12130
12268
|
_JSGLogger._instance = new _JSGLogger();
|
|
12131
12269
|
}
|
|
12132
12270
|
_JSGLogger._enhancedLoggers = _JSGLogger._instance.initSync(options);
|
|
12133
|
-
if (isBrowser() && typeof window !== "undefined" && ((
|
|
12271
|
+
if (isBrowser() && typeof window !== "undefined" && ((_b = _JSGLogger._enhancedLoggers) == null ? void 0 : _b.controls)) {
|
|
12134
12272
|
window.JSG_Logger = _JSGLogger._enhancedLoggers.controls;
|
|
12135
12273
|
window.__JSG_Logger_Enhanced__ = _JSGLogger._enhancedLoggers;
|
|
12136
12274
|
}
|
|
12275
|
+
if (!isBrowser()) {
|
|
12276
|
+
globalThis.__JSG_Logger_Enhanced__ = _JSGLogger._enhancedLoggers;
|
|
12277
|
+
}
|
|
12137
12278
|
return _JSGLogger._enhancedLoggers;
|
|
12138
12279
|
}
|
|
12139
12280
|
if (isBrowser() && typeof window !== "undefined" && window.JSG_Logger) {
|
|
12140
12281
|
if (window.__JSG_Logger_Enhanced__) {
|
|
12141
|
-
|
|
12282
|
+
_JSGLogger._recoverFromGlobal();
|
|
12283
|
+
return _JSGLogger._enhancedLoggers;
|
|
12142
12284
|
}
|
|
12143
12285
|
const globalControls = window.JSG_Logger;
|
|
12144
12286
|
return {
|
|
@@ -12151,13 +12293,20 @@ const _JSGLogger = class _JSGLogger {
|
|
|
12151
12293
|
JSGLogger: _JSGLogger
|
|
12152
12294
|
};
|
|
12153
12295
|
}
|
|
12296
|
+
if (!isBrowser() && globalThis.__JSG_Logger_Enhanced__) {
|
|
12297
|
+
_JSGLogger._recoverFromGlobal();
|
|
12298
|
+
return _JSGLogger._enhancedLoggers;
|
|
12299
|
+
}
|
|
12154
12300
|
if (!_JSGLogger._instance) {
|
|
12155
12301
|
_JSGLogger._instance = new _JSGLogger();
|
|
12156
12302
|
_JSGLogger._enhancedLoggers = _JSGLogger._instance.initSync(options);
|
|
12157
|
-
if (isBrowser() && typeof window !== "undefined" && ((
|
|
12303
|
+
if (isBrowser() && typeof window !== "undefined" && ((_c = _JSGLogger._enhancedLoggers) == null ? void 0 : _c.controls)) {
|
|
12158
12304
|
window.JSG_Logger = _JSGLogger._enhancedLoggers.controls;
|
|
12159
12305
|
window.__JSG_Logger_Enhanced__ = _JSGLogger._enhancedLoggers;
|
|
12160
12306
|
}
|
|
12307
|
+
if (!isBrowser()) {
|
|
12308
|
+
globalThis.__JSG_Logger_Enhanced__ = _JSGLogger._enhancedLoggers;
|
|
12309
|
+
}
|
|
12161
12310
|
}
|
|
12162
12311
|
return _JSGLogger._enhancedLoggers;
|
|
12163
12312
|
}
|
|
@@ -12167,7 +12316,7 @@ const _JSGLogger = class _JSGLogger {
|
|
|
12167
12316
|
* @returns {Promise<Object>} Logger instance with all components
|
|
12168
12317
|
*/
|
|
12169
12318
|
async init(options = {}) {
|
|
12170
|
-
var
|
|
12319
|
+
var _a;
|
|
12171
12320
|
try {
|
|
12172
12321
|
const isReinit = this.initialized;
|
|
12173
12322
|
const globalInitFlag = typeof window !== "undefined" ? window.__JSG_LOGGER_INITIALIZED__ = window.__JSG_LOGGER_INITIALIZED__ || false : false;
|
|
@@ -12182,6 +12331,7 @@ const _JSGLogger = class _JSGLogger {
|
|
|
12182
12331
|
forceEnvironment(configManager.config.forceEnvironment);
|
|
12183
12332
|
}
|
|
12184
12333
|
this.environment = getEnvironment();
|
|
12334
|
+
this.transports = configManager.config.transports ?? [];
|
|
12185
12335
|
const components2 = configManager.getAvailableComponents();
|
|
12186
12336
|
components2.forEach((componentName) => {
|
|
12187
12337
|
this.loggers[componentName] = this.createLogger(componentName);
|
|
@@ -12206,7 +12356,7 @@ const _JSGLogger = class _JSGLogger {
|
|
|
12206
12356
|
}
|
|
12207
12357
|
return this.getLoggerExports();
|
|
12208
12358
|
} catch (error) {
|
|
12209
|
-
if ((
|
|
12359
|
+
if ((_a = this.loggers) == null ? void 0 : _a.core) {
|
|
12210
12360
|
this.loggers.core.error("JSG Logger initialization failed:", error);
|
|
12211
12361
|
} else {
|
|
12212
12362
|
console.error("JSG Logger initialization failed:", error);
|
|
@@ -12220,7 +12370,7 @@ const _JSGLogger = class _JSGLogger {
|
|
|
12220
12370
|
* @returns {Object} Logger instance with all components
|
|
12221
12371
|
*/
|
|
12222
12372
|
initSync(options = {}) {
|
|
12223
|
-
var
|
|
12373
|
+
var _a;
|
|
12224
12374
|
try {
|
|
12225
12375
|
const isReinit = this.initialized;
|
|
12226
12376
|
const globalInitFlag = typeof window !== "undefined" ? window.__JSG_LOGGER_INITIALIZED__ = window.__JSG_LOGGER_INITIALIZED__ || false : false;
|
|
@@ -12242,12 +12392,10 @@ const _JSGLogger = class _JSGLogger {
|
|
|
12242
12392
|
forceEnvironment(configManager.config.forceEnvironment);
|
|
12243
12393
|
}
|
|
12244
12394
|
this.environment = getEnvironment();
|
|
12395
|
+
this.transports = configManager.config.transports ?? [];
|
|
12245
12396
|
this.loggers = {};
|
|
12246
12397
|
this.components = {};
|
|
12247
12398
|
const components2 = configManager.getAvailableComponents();
|
|
12248
|
-
if (components2.length > 0) {
|
|
12249
|
-
console.log(`[JSG-LOGGER] Creating ${components2.length} loggers during initSync:`, components2);
|
|
12250
|
-
}
|
|
12251
12399
|
components2.forEach((componentName) => {
|
|
12252
12400
|
const createFn = this._createLoggerOriginal || this.createLogger.bind(this);
|
|
12253
12401
|
this.loggers[componentName] = createFn(componentName);
|
|
@@ -12260,7 +12408,7 @@ const _JSGLogger = class _JSGLogger {
|
|
|
12260
12408
|
try {
|
|
12261
12409
|
callback(currentComponents);
|
|
12262
12410
|
} catch (error) {
|
|
12263
|
-
|
|
12411
|
+
metaError$1("Component subscriber error:", error);
|
|
12264
12412
|
}
|
|
12265
12413
|
});
|
|
12266
12414
|
}
|
|
@@ -12285,7 +12433,7 @@ const _JSGLogger = class _JSGLogger {
|
|
|
12285
12433
|
}
|
|
12286
12434
|
return this.getLoggerExports();
|
|
12287
12435
|
} catch (error) {
|
|
12288
|
-
if ((
|
|
12436
|
+
if ((_a = this.loggers) == null ? void 0 : _a.core) {
|
|
12289
12437
|
this.loggers.core.error("JSG Logger sync initialization failed:", error);
|
|
12290
12438
|
} else {
|
|
12291
12439
|
console.error("JSG Logger sync initialization failed:", error);
|
|
@@ -12330,21 +12478,33 @@ const _JSGLogger = class _JSGLogger {
|
|
|
12330
12478
|
*/
|
|
12331
12479
|
_wrapPinoLogger(pinoLogger) {
|
|
12332
12480
|
const levels2 = ["trace", "debug", "info", "warn", "error", "fatal"];
|
|
12481
|
+
const levelNums = { trace: 10, debug: 20, info: 30, warn: 40, error: 50, fatal: 60 };
|
|
12333
12482
|
const wrapped = {};
|
|
12483
|
+
const self2 = this;
|
|
12334
12484
|
levels2.forEach((level) => {
|
|
12335
12485
|
wrapped[level] = (first, ...args) => {
|
|
12486
|
+
let message = "";
|
|
12487
|
+
let data2;
|
|
12488
|
+
const redactConfig = configManager.getRedactConfig();
|
|
12336
12489
|
if (typeof first === "string") {
|
|
12337
|
-
|
|
12490
|
+
message = first;
|
|
12338
12491
|
if (args.length === 1 && typeof args[0] === "object" && args[0] !== null) {
|
|
12339
|
-
|
|
12492
|
+
data2 = redactValue(args[0], redactConfig);
|
|
12493
|
+
pinoLogger[level](data2, message);
|
|
12340
12494
|
} else {
|
|
12341
12495
|
pinoLogger[level](message);
|
|
12342
12496
|
}
|
|
12343
12497
|
} else if (typeof first === "object" && first !== null) {
|
|
12344
|
-
|
|
12498
|
+
data2 = redactValue(first, redactConfig);
|
|
12499
|
+
message = args.length > 0 && typeof args[0] === "string" ? args[0] : "";
|
|
12500
|
+
pinoLogger[level](data2, ...message ? [message] : []);
|
|
12345
12501
|
} else {
|
|
12346
12502
|
pinoLogger[level](first, ...args);
|
|
12347
12503
|
}
|
|
12504
|
+
if (self2.transports && self2.transports.length > 0) {
|
|
12505
|
+
const entry = buildLogEntry(level, levelNums[level], pinoLogger._componentName, message, data2);
|
|
12506
|
+
dispatchToTransports(entry, self2.transports);
|
|
12507
|
+
}
|
|
12348
12508
|
};
|
|
12349
12509
|
});
|
|
12350
12510
|
Object.keys(pinoLogger).forEach((key) => {
|
|
@@ -12386,6 +12546,8 @@ const _JSGLogger = class _JSGLogger {
|
|
|
12386
12546
|
*/
|
|
12387
12547
|
getLoggerExports() {
|
|
12388
12548
|
return {
|
|
12549
|
+
// Back-reference for cross-bundle singleton recovery
|
|
12550
|
+
_jsgLoggerInstance: this,
|
|
12389
12551
|
// All component loggers
|
|
12390
12552
|
...this.loggers,
|
|
12391
12553
|
// Auto-discovery convenience getters (kebab-case and camelCase)
|
|
@@ -12407,6 +12569,8 @@ const _JSGLogger = class _JSGLogger {
|
|
|
12407
12569
|
},
|
|
12408
12570
|
// Expose config manager for runtime configuration
|
|
12409
12571
|
configManager,
|
|
12572
|
+
// Post-init config updater — safe to call after transports are registered
|
|
12573
|
+
configure: (partialConfig) => _JSGLogger.configure(partialConfig),
|
|
12410
12574
|
// Log store for popup/debugging
|
|
12411
12575
|
logStore: this.logStore,
|
|
12412
12576
|
// Enhanced runtime controls with all new features
|
|
@@ -12419,18 +12583,19 @@ const _JSGLogger = class _JSGLogger {
|
|
|
12419
12583
|
}
|
|
12420
12584
|
},
|
|
12421
12585
|
getLevel: (component) => {
|
|
12422
|
-
var
|
|
12423
|
-
return (
|
|
12586
|
+
var _a;
|
|
12587
|
+
return (_a = this.loggers[component]) == null ? void 0 : _a._effectiveLevel;
|
|
12424
12588
|
},
|
|
12425
12589
|
// Component controls
|
|
12426
12590
|
listComponents: () => Object.keys(this.loggers),
|
|
12427
12591
|
subscribeToComponents: (callback) => {
|
|
12592
|
+
var _a;
|
|
12428
12593
|
this.componentSubscribers.push(callback);
|
|
12429
12594
|
const currentComponents = Object.keys(this.loggers);
|
|
12430
12595
|
try {
|
|
12431
12596
|
callback(currentComponents);
|
|
12432
12597
|
} catch (error) {
|
|
12433
|
-
|
|
12598
|
+
(_a = this.loggers.core) == null ? void 0 : _a.error("Component subscriber error (initial call):", error);
|
|
12434
12599
|
}
|
|
12435
12600
|
return () => {
|
|
12436
12601
|
const index = this.componentSubscribers.indexOf(callback);
|
|
@@ -12507,16 +12672,16 @@ const _JSGLogger = class _JSGLogger {
|
|
|
12507
12672
|
this.refreshLoggers();
|
|
12508
12673
|
},
|
|
12509
12674
|
getComponentLevel: (component) => {
|
|
12510
|
-
var
|
|
12511
|
-
return (_b = (
|
|
12675
|
+
var _a, _b;
|
|
12676
|
+
return (_b = (_a = configManager.config.components) == null ? void 0 : _a[component]) == null ? void 0 : _b.level;
|
|
12512
12677
|
},
|
|
12513
12678
|
// Component logger access
|
|
12514
12679
|
getComponent: (componentName) => this.getComponent(componentName),
|
|
12515
12680
|
// DevTools panel controls
|
|
12516
12681
|
enableDevPanel: async () => {
|
|
12517
|
-
var
|
|
12682
|
+
var _a;
|
|
12518
12683
|
const devtoolsLogger = this.getComponent("devtools-ui");
|
|
12519
|
-
const runtimeDevtoolsEnabled = ((
|
|
12684
|
+
const runtimeDevtoolsEnabled = ((_a = configManager.config.devtools) == null ? void 0 : _a.enabled) ?? false;
|
|
12520
12685
|
devtoolsLogger.info("enableDevPanel() called", {
|
|
12521
12686
|
runtimeConfig: runtimeDevtoolsEnabled ? "ENABLED" : "DISABLED"
|
|
12522
12687
|
});
|
|
@@ -12529,18 +12694,13 @@ const _JSGLogger = class _JSGLogger {
|
|
|
12529
12694
|
return null;
|
|
12530
12695
|
}
|
|
12531
12696
|
try {
|
|
12697
|
+
const { loadDevtoolsModule } = await import("../../utils/devtools-loader.js");
|
|
12698
|
+
const devtoolsModule = await loadDevtoolsModule();
|
|
12532
12699
|
if (!devtoolsModule) {
|
|
12533
|
-
|
|
12534
|
-
|
|
12535
|
-
devtoolsModule = await devtoolsModulePromise;
|
|
12536
|
-
} else {
|
|
12537
|
-
devtoolsLogger.info("Loading DevTools module dynamically (runtime config override)...");
|
|
12538
|
-
devtoolsModule = await import("./panel-entry-B2MhZ3gp.js");
|
|
12539
|
-
}
|
|
12540
|
-
} else {
|
|
12541
|
-
devtoolsLogger.info("Using pre-loaded DevTools module");
|
|
12700
|
+
devtoolsLogger.warn("DevTools panel is not available in this build");
|
|
12701
|
+
return null;
|
|
12542
12702
|
}
|
|
12543
|
-
if (!devtoolsModule
|
|
12703
|
+
if (!devtoolsModule.initializePanel) {
|
|
12544
12704
|
throw new Error("DevTools panel module missing initializePanel export");
|
|
12545
12705
|
}
|
|
12546
12706
|
devtoolsLogger.info("Initializing DevTools panel...");
|
|
@@ -12554,9 +12714,9 @@ const _JSGLogger = class _JSGLogger {
|
|
|
12554
12714
|
}
|
|
12555
12715
|
},
|
|
12556
12716
|
disableDevPanel: () => {
|
|
12557
|
-
var
|
|
12717
|
+
var _a;
|
|
12558
12718
|
const devtoolsLogger = this.getComponent("devtools-ui");
|
|
12559
|
-
if (typeof window !== "undefined" && ((
|
|
12719
|
+
if (typeof window !== "undefined" && ((_a = window.JSG_DevTools) == null ? void 0 : _a.destroy)) {
|
|
12560
12720
|
window.JSG_DevTools.destroy();
|
|
12561
12721
|
devtoolsLogger.info("DevTools panel disabled and destroyed");
|
|
12562
12722
|
return true;
|
|
@@ -12585,6 +12745,7 @@ const _JSGLogger = class _JSGLogger {
|
|
|
12585
12745
|
const formatter = createBrowserFormatter(componentName, this.logStore);
|
|
12586
12746
|
const levels2 = ["trace", "debug", "info", "warn", "error", "fatal"];
|
|
12587
12747
|
const levelMap = { trace: 10, debug: 20, info: 30, warn: 40, error: 50, fatal: 60 };
|
|
12748
|
+
const self2 = this;
|
|
12588
12749
|
const logger = {};
|
|
12589
12750
|
levels2.forEach((level) => {
|
|
12590
12751
|
logger[level] = (first, ...args) => {
|
|
@@ -12598,20 +12759,31 @@ const _JSGLogger = class _JSGLogger {
|
|
|
12598
12759
|
name: componentName,
|
|
12599
12760
|
v: 1
|
|
12600
12761
|
};
|
|
12762
|
+
let message = "";
|
|
12763
|
+
let data2;
|
|
12764
|
+
const redactConfig = configManager.getRedactConfig();
|
|
12601
12765
|
if (typeof first === "string") {
|
|
12766
|
+
message = first;
|
|
12602
12767
|
logData.msg = first;
|
|
12603
12768
|
if (args.length === 1 && typeof args[0] === "object") {
|
|
12604
|
-
|
|
12769
|
+
data2 = redactValue(args[0], redactConfig);
|
|
12770
|
+
Object.assign(logData, data2);
|
|
12605
12771
|
} else if (args.length > 0) {
|
|
12606
12772
|
logData.args = args;
|
|
12607
12773
|
}
|
|
12608
12774
|
} else if (typeof first === "object") {
|
|
12609
|
-
|
|
12775
|
+
data2 = redactValue(first, redactConfig);
|
|
12776
|
+
Object.assign(logData, data2);
|
|
12610
12777
|
if (args.length > 0 && typeof args[0] === "string") {
|
|
12778
|
+
message = args[0];
|
|
12611
12779
|
logData.msg = args[0];
|
|
12612
12780
|
}
|
|
12613
12781
|
}
|
|
12614
12782
|
formatter.write(JSON.stringify(logData));
|
|
12783
|
+
if (self2.transports && self2.transports.length > 0) {
|
|
12784
|
+
const entry = buildLogEntry(level, logLevel, componentName, message, data2);
|
|
12785
|
+
dispatchToTransports(entry, self2.transports);
|
|
12786
|
+
}
|
|
12615
12787
|
};
|
|
12616
12788
|
});
|
|
12617
12789
|
logger._componentEmoji = configManager.getComponentConfig(componentName).emoji;
|
|
@@ -12621,12 +12793,19 @@ const _JSGLogger = class _JSGLogger {
|
|
|
12621
12793
|
return logger;
|
|
12622
12794
|
}
|
|
12623
12795
|
/**
|
|
12624
|
-
* Refresh all loggers with updated configuration
|
|
12796
|
+
* Refresh all loggers with updated configuration.
|
|
12797
|
+
* Uses the original createLogger (not the caching wrapper) so levels and
|
|
12798
|
+
* formatters are rebuilt from the current config.
|
|
12625
12799
|
* @private
|
|
12626
12800
|
*/
|
|
12627
12801
|
refreshLoggers() {
|
|
12628
|
-
|
|
12629
|
-
|
|
12802
|
+
const createLogger = this._createLoggerOriginal || this.createLogger.bind(this);
|
|
12803
|
+
const components2 = /* @__PURE__ */ new Set([
|
|
12804
|
+
...configManager.getAvailableComponents(),
|
|
12805
|
+
...Object.keys(this.loggers)
|
|
12806
|
+
]);
|
|
12807
|
+
components2.forEach((componentName) => {
|
|
12808
|
+
this.loggers[componentName] = createLogger(componentName);
|
|
12630
12809
|
});
|
|
12631
12810
|
}
|
|
12632
12811
|
/**
|
|
@@ -12680,9 +12859,9 @@ const _JSGLogger = class _JSGLogger {
|
|
|
12680
12859
|
* @returns {Object} Logger instance (auto-created if needed)
|
|
12681
12860
|
*/
|
|
12682
12861
|
getComponent(componentName) {
|
|
12683
|
-
var
|
|
12862
|
+
var _a;
|
|
12684
12863
|
if (!this.loggers[componentName]) {
|
|
12685
|
-
const hasConfig = (
|
|
12864
|
+
const hasConfig = (_a = configManager.config.components) == null ? void 0 : _a[componentName];
|
|
12686
12865
|
const hasScheme = COMPONENT_SCHEME[componentName];
|
|
12687
12866
|
if (!hasConfig && !hasScheme) {
|
|
12688
12867
|
if (this.loggers.core) {
|
|
@@ -12706,10 +12885,11 @@ const _JSGLogger = class _JSGLogger {
|
|
|
12706
12885
|
}
|
|
12707
12886
|
}
|
|
12708
12887
|
this.componentSubscribers.forEach((callback) => {
|
|
12888
|
+
var _a2;
|
|
12709
12889
|
try {
|
|
12710
12890
|
callback(currentComponents);
|
|
12711
12891
|
} catch (error) {
|
|
12712
|
-
|
|
12892
|
+
(_a2 = this.loggers.core) == null ? void 0 : _a2.error("Component subscriber error:", error);
|
|
12713
12893
|
}
|
|
12714
12894
|
});
|
|
12715
12895
|
}
|
|
@@ -12759,6 +12939,84 @@ const _JSGLogger = class _JSGLogger {
|
|
|
12759
12939
|
return duration;
|
|
12760
12940
|
}
|
|
12761
12941
|
}
|
|
12942
|
+
/**
|
|
12943
|
+
* Restore static singleton refs from window/global enhanced loggers export.
|
|
12944
|
+
* @returns {boolean} Whether a live instance was recovered
|
|
12945
|
+
* @private
|
|
12946
|
+
*/
|
|
12947
|
+
static _recoverFromGlobal() {
|
|
12948
|
+
var _a;
|
|
12949
|
+
const enhanced = isBrowser() && typeof window !== "undefined" && window.__JSG_Logger_Enhanced__ || !isBrowser() && globalThis.__JSG_Logger_Enhanced__ || null;
|
|
12950
|
+
if (!enhanced) {
|
|
12951
|
+
return false;
|
|
12952
|
+
}
|
|
12953
|
+
_JSGLogger._enhancedLoggers = enhanced;
|
|
12954
|
+
if ((_a = enhanced._jsgLoggerInstance) == null ? void 0 : _a.initialized) {
|
|
12955
|
+
_JSGLogger._instance = enhanced._jsgLoggerInstance;
|
|
12956
|
+
return true;
|
|
12957
|
+
}
|
|
12958
|
+
return false;
|
|
12959
|
+
}
|
|
12960
|
+
/**
|
|
12961
|
+
* Update logger configuration post-initialization without reinitializing.
|
|
12962
|
+
* Merges partialConfig into the current config without touching registered transports.
|
|
12963
|
+
* If called before any initialization has occurred, delegates to getInstanceSync(partialConfig).
|
|
12964
|
+
* Emits a "JSG Logger configured" log so the applied project config is visible in the
|
|
12965
|
+
* console even though the one-time init log already fired with defaults at module eval time.
|
|
12966
|
+
* @param {Object} partialConfig - Partial config to merge into the current config
|
|
12967
|
+
* @returns {Object} Enhanced logger exports
|
|
12968
|
+
*/
|
|
12969
|
+
static configure(partialConfig = {}) {
|
|
12970
|
+
var _a, _b, _c;
|
|
12971
|
+
_JSGLogger._recoverFromGlobal();
|
|
12972
|
+
if (!((_a = _JSGLogger._instance) == null ? void 0 : _a.initialized)) {
|
|
12973
|
+
return _JSGLogger.getInstanceSync(partialConfig);
|
|
12974
|
+
}
|
|
12975
|
+
const currentTransports = _JSGLogger._instance.transports;
|
|
12976
|
+
const normalized = configManager._normalizeConfigStructure(partialConfig);
|
|
12977
|
+
configManager.config = configManager.mergeConfigs(configManager.config, normalized);
|
|
12978
|
+
configManager.config.transports = currentTransports;
|
|
12979
|
+
_JSGLogger._instance.transports = currentTransports;
|
|
12980
|
+
_JSGLogger._instance.refreshLoggers();
|
|
12981
|
+
if (isBrowser() && typeof window !== "undefined" && ((_b = _JSGLogger._enhancedLoggers) == null ? void 0 : _b.controls)) {
|
|
12982
|
+
window.JSG_Logger = _JSGLogger._enhancedLoggers.controls;
|
|
12983
|
+
window.__JSG_Logger_Enhanced__ = _JSGLogger._enhancedLoggers;
|
|
12984
|
+
}
|
|
12985
|
+
if (!isBrowser()) {
|
|
12986
|
+
globalThis.__JSG_Logger_Enhanced__ = _JSGLogger._enhancedLoggers;
|
|
12987
|
+
}
|
|
12988
|
+
if ((_c = _JSGLogger._instance.loggers) == null ? void 0 : _c.core) {
|
|
12989
|
+
const components2 = configManager.getAvailableComponents();
|
|
12990
|
+
_JSGLogger._instance.loggers.core.info("JSG Logger configured", {
|
|
12991
|
+
projectName: configManager.getProjectName(),
|
|
12992
|
+
components: components2.length,
|
|
12993
|
+
timestampMode: configManager.getTimestampMode()
|
|
12994
|
+
});
|
|
12995
|
+
}
|
|
12996
|
+
return _JSGLogger._enhancedLoggers;
|
|
12997
|
+
}
|
|
12998
|
+
/**
|
|
12999
|
+
* Add a transport to the running singleton without reinitializing.
|
|
13000
|
+
* Safe to call even if the singleton was already initialized by module-level code
|
|
13001
|
+
* or a third-party library — bypasses the reinit guard entirely.
|
|
13002
|
+
* Idempotent: calling with the same transport instance twice is a no-op.
|
|
13003
|
+
* @param {Object} transport - LogTransport instance to register
|
|
13004
|
+
* @returns {void}
|
|
13005
|
+
*/
|
|
13006
|
+
static addTransport(transport) {
|
|
13007
|
+
if (!transport || typeof transport.send !== "function") {
|
|
13008
|
+
metaWarn("[JSGLogger] addTransport() received an invalid transport — must have a send() method");
|
|
13009
|
+
return;
|
|
13010
|
+
}
|
|
13011
|
+
if (!_JSGLogger._instance) {
|
|
13012
|
+
metaWarn("[JSGLogger] addTransport() called before any initialization — initializing with defaults first");
|
|
13013
|
+
_JSGLogger._instance = new _JSGLogger();
|
|
13014
|
+
_JSGLogger._enhancedLoggers = _JSGLogger._instance.initSync({});
|
|
13015
|
+
}
|
|
13016
|
+
if (!_JSGLogger._instance.transports.includes(transport)) {
|
|
13017
|
+
_JSGLogger._instance.transports.push(transport);
|
|
13018
|
+
}
|
|
13019
|
+
}
|
|
12762
13020
|
/**
|
|
12763
13021
|
* Get singleton controls without triggering initialization
|
|
12764
13022
|
* Checks window.JSG_Logger first to ensure singleton works across separate bundles
|
|
@@ -12766,11 +13024,12 @@ const _JSGLogger = class _JSGLogger {
|
|
|
12766
13024
|
* @returns {Object|null} Controls object or null if singleton not initialized
|
|
12767
13025
|
*/
|
|
12768
13026
|
static getControls() {
|
|
12769
|
-
var
|
|
13027
|
+
var _a;
|
|
13028
|
+
_JSGLogger._recoverFromGlobal();
|
|
12770
13029
|
if (isBrowser() && typeof window !== "undefined" && window.JSG_Logger) {
|
|
12771
13030
|
return window.JSG_Logger;
|
|
12772
13031
|
}
|
|
12773
|
-
return ((
|
|
13032
|
+
return ((_a = _JSGLogger._enhancedLoggers) == null ? void 0 : _a.controls) || null;
|
|
12774
13033
|
}
|
|
12775
13034
|
};
|
|
12776
13035
|
// Static singleton instance
|
|
@@ -12786,20 +13045,22 @@ if (isBrowser() && typeof window !== "undefined") {
|
|
|
12786
13045
|
}
|
|
12787
13046
|
enhancedLoggers.getInstance = JSGLogger.getInstance;
|
|
12788
13047
|
enhancedLoggers.getInstanceSync = JSGLogger.getInstanceSync;
|
|
13048
|
+
enhancedLoggers.configure = JSGLogger.configure.bind(JSGLogger);
|
|
13049
|
+
enhancedLoggers.addTransport = JSGLogger.addTransport.bind(JSGLogger);
|
|
12789
13050
|
enhancedLoggers.logPerformance = JSGLogger.logPerformance;
|
|
12790
13051
|
enhancedLoggers.JSGLogger = JSGLogger;
|
|
12791
13052
|
const getDevToolsLogger$3 = () => {
|
|
12792
|
-
var
|
|
13053
|
+
var _a;
|
|
12793
13054
|
const instance = JSGLogger.getInstanceSync();
|
|
12794
|
-
return ((
|
|
13055
|
+
return ((_a = instance == null ? void 0 : instance.getComponent) == null ? void 0 : _a.call(instance, "devtools-ui")) || {
|
|
12795
13056
|
info: console.log.bind(console, "[JSG-DEVTOOLS]"),
|
|
12796
13057
|
warn: console.warn.bind(console, "[JSG-DEVTOOLS]"),
|
|
12797
13058
|
error: console.error.bind(console, "[JSG-DEVTOOLS]")
|
|
12798
13059
|
};
|
|
12799
13060
|
};
|
|
12800
13061
|
function GlobalControls({ onDebugAll, onTraceAll, onReset, loggerControls }) {
|
|
12801
|
-
var
|
|
12802
|
-
const stats = ((
|
|
13062
|
+
var _a, _b;
|
|
13063
|
+
const stats = ((_a = loggerControls.getStats) == null ? void 0 : _a.call(loggerControls)) || { total: 0, byLevel: {} };
|
|
12803
13064
|
const configSummary = ((_b = loggerControls.getConfigSummary) == null ? void 0 : _b.call(loggerControls)) || {};
|
|
12804
13065
|
return /* @__PURE__ */ u$1(Pane, { marginBottom: 16, children: [
|
|
12805
13066
|
/* @__PURE__ */ u$1(Pane, { display: "flex", gap: 8, marginBottom: 16, flexWrap: "wrap", children: [
|
|
@@ -12851,8 +13112,8 @@ function GlobalControls({ onDebugAll, onTraceAll, onReset, loggerControls }) {
|
|
|
12851
13112
|
flex: "1",
|
|
12852
13113
|
minWidth: 80,
|
|
12853
13114
|
onClick: () => {
|
|
12854
|
-
var
|
|
12855
|
-
const summary = (
|
|
13115
|
+
var _a2;
|
|
13116
|
+
const summary = (_a2 = loggerControls.getConfigSummary) == null ? void 0 : _a2.call(loggerControls);
|
|
12856
13117
|
const devtoolsLogger = getDevToolsLogger$3();
|
|
12857
13118
|
devtoolsLogger.info("Current Config:", summary);
|
|
12858
13119
|
alert("Config exported to console");
|
|
@@ -12902,9 +13163,9 @@ function GlobalControls({ onDebugAll, onTraceAll, onReset, loggerControls }) {
|
|
|
12902
13163
|
] });
|
|
12903
13164
|
}
|
|
12904
13165
|
const getDevToolsLogger$2 = () => {
|
|
12905
|
-
var
|
|
13166
|
+
var _a;
|
|
12906
13167
|
const instance = JSGLogger.getInstanceSync();
|
|
12907
|
-
return ((
|
|
13168
|
+
return ((_a = instance == null ? void 0 : instance.getComponent) == null ? void 0 : _a.call(instance, "devtools-ui")) || {
|
|
12908
13169
|
info: console.log.bind(console, "[JSG-DEVTOOLS]"),
|
|
12909
13170
|
warn: console.warn.bind(console, "[JSG-DEVTOOLS]"),
|
|
12910
13171
|
error: console.error.bind(console, "[JSG-DEVTOOLS]")
|
|
@@ -12996,10 +13257,10 @@ function DisplayControls({ loggerControls, onStateChange }) {
|
|
|
12996
13257
|
stackTrace: true
|
|
12997
13258
|
});
|
|
12998
13259
|
y(() => {
|
|
12999
|
-
var
|
|
13260
|
+
var _a, _b;
|
|
13000
13261
|
if (loggerControls) {
|
|
13001
13262
|
try {
|
|
13002
|
-
const config = (
|
|
13263
|
+
const config = (_a = loggerControls.getDisplayConfig) == null ? void 0 : _a.call(loggerControls);
|
|
13003
13264
|
if (config) {
|
|
13004
13265
|
setDisplayOptions((prev) => ({
|
|
13005
13266
|
...prev,
|
|
@@ -13025,12 +13286,12 @@ function DisplayControls({ loggerControls, onStateChange }) {
|
|
|
13025
13286
|
}
|
|
13026
13287
|
}, [displayOptions, timestampMode2, onStateChange]);
|
|
13027
13288
|
const handleTimestampModeChange = (mode) => {
|
|
13028
|
-
var
|
|
13289
|
+
var _a;
|
|
13029
13290
|
setTimestampMode(mode);
|
|
13030
13291
|
const isVisible = mode !== "disable";
|
|
13031
13292
|
setDisplayOptions((prev) => ({ ...prev, timestamp: isVisible }));
|
|
13032
13293
|
try {
|
|
13033
|
-
(
|
|
13294
|
+
(_a = loggerControls.setTimestampMode) == null ? void 0 : _a.call(loggerControls, mode);
|
|
13034
13295
|
const devtoolsLogger = getDevToolsLogger$2();
|
|
13035
13296
|
devtoolsLogger.info(`Timestamp mode changed to: ${mode}`);
|
|
13036
13297
|
} catch (error) {
|
|
@@ -13042,14 +13303,14 @@ function DisplayControls({ loggerControls, onStateChange }) {
|
|
|
13042
13303
|
}
|
|
13043
13304
|
};
|
|
13044
13305
|
const handleToggle = (option) => {
|
|
13045
|
-
var
|
|
13306
|
+
var _a;
|
|
13046
13307
|
const newValue = !displayOptions[option];
|
|
13047
13308
|
setDisplayOptions((prev) => ({
|
|
13048
13309
|
...prev,
|
|
13049
13310
|
[option]: newValue
|
|
13050
13311
|
}));
|
|
13051
13312
|
try {
|
|
13052
|
-
(
|
|
13313
|
+
(_a = loggerControls.setDisplayOption) == null ? void 0 : _a.call(loggerControls, option, newValue);
|
|
13053
13314
|
const devtoolsLogger = getDevToolsLogger$2();
|
|
13054
13315
|
devtoolsLogger.info(`Display option '${option}' set to: ${newValue}`);
|
|
13055
13316
|
} catch (error) {
|
|
@@ -13061,7 +13322,7 @@ function DisplayControls({ loggerControls, onStateChange }) {
|
|
|
13061
13322
|
}
|
|
13062
13323
|
};
|
|
13063
13324
|
const handleAllOn = () => {
|
|
13064
|
-
var
|
|
13325
|
+
var _a;
|
|
13065
13326
|
const allOn = {
|
|
13066
13327
|
timestamp: true,
|
|
13067
13328
|
emoji: true,
|
|
@@ -13075,10 +13336,10 @@ function DisplayControls({ loggerControls, onStateChange }) {
|
|
|
13075
13336
|
setTimestampMode("absolute");
|
|
13076
13337
|
try {
|
|
13077
13338
|
Object.entries(allOn).forEach(([key, value]) => {
|
|
13078
|
-
var
|
|
13079
|
-
(
|
|
13339
|
+
var _a2;
|
|
13340
|
+
(_a2 = loggerControls.setDisplayOption) == null ? void 0 : _a2.call(loggerControls, key, value);
|
|
13080
13341
|
});
|
|
13081
|
-
(
|
|
13342
|
+
(_a = loggerControls.setTimestampMode) == null ? void 0 : _a.call(loggerControls, "absolute");
|
|
13082
13343
|
const devtoolsLogger = getDevToolsLogger$2();
|
|
13083
13344
|
devtoolsLogger.info("All display options enabled");
|
|
13084
13345
|
} catch (error) {
|
|
@@ -13090,7 +13351,7 @@ function DisplayControls({ loggerControls, onStateChange }) {
|
|
|
13090
13351
|
}
|
|
13091
13352
|
};
|
|
13092
13353
|
const handleAllOff = () => {
|
|
13093
|
-
var
|
|
13354
|
+
var _a;
|
|
13094
13355
|
const allOff = {
|
|
13095
13356
|
timestamp: false,
|
|
13096
13357
|
emoji: false,
|
|
@@ -13105,10 +13366,10 @@ function DisplayControls({ loggerControls, onStateChange }) {
|
|
|
13105
13366
|
setTimestampMode("disable");
|
|
13106
13367
|
try {
|
|
13107
13368
|
Object.entries(allOff).forEach(([key, value]) => {
|
|
13108
|
-
var
|
|
13109
|
-
(
|
|
13369
|
+
var _a2;
|
|
13370
|
+
(_a2 = loggerControls.setDisplayOption) == null ? void 0 : _a2.call(loggerControls, key, value);
|
|
13110
13371
|
});
|
|
13111
|
-
(
|
|
13372
|
+
(_a = loggerControls.setTimestampMode) == null ? void 0 : _a.call(loggerControls, "disable");
|
|
13112
13373
|
const devtoolsLogger = getDevToolsLogger$2();
|
|
13113
13374
|
devtoolsLogger.info("All display options disabled (message kept on)");
|
|
13114
13375
|
} catch (error) {
|
|
@@ -13120,7 +13381,7 @@ function DisplayControls({ loggerControls, onStateChange }) {
|
|
|
13120
13381
|
}
|
|
13121
13382
|
};
|
|
13122
13383
|
const handleReset = () => {
|
|
13123
|
-
var
|
|
13384
|
+
var _a;
|
|
13124
13385
|
const defaults = {
|
|
13125
13386
|
timestamp: true,
|
|
13126
13387
|
emoji: true,
|
|
@@ -13134,10 +13395,10 @@ function DisplayControls({ loggerControls, onStateChange }) {
|
|
|
13134
13395
|
setTimestampMode("absolute");
|
|
13135
13396
|
try {
|
|
13136
13397
|
Object.entries(defaults).forEach(([key, value]) => {
|
|
13137
|
-
var
|
|
13138
|
-
(
|
|
13398
|
+
var _a2;
|
|
13399
|
+
(_a2 = loggerControls.setDisplayOption) == null ? void 0 : _a2.call(loggerControls, key, value);
|
|
13139
13400
|
});
|
|
13140
|
-
(
|
|
13401
|
+
(_a = loggerControls.setTimestampMode) == null ? void 0 : _a.call(loggerControls, "absolute");
|
|
13141
13402
|
const devtoolsLogger = getDevToolsLogger$2();
|
|
13142
13403
|
devtoolsLogger.info("Display options reset to defaults");
|
|
13143
13404
|
} catch (error) {
|
|
@@ -13427,9 +13688,9 @@ function PanelContainer({
|
|
|
13427
13688
|
);
|
|
13428
13689
|
}
|
|
13429
13690
|
const getDevToolsLogger$1 = () => {
|
|
13430
|
-
var
|
|
13691
|
+
var _a;
|
|
13431
13692
|
const instance = JSGLogger.getInstanceSync();
|
|
13432
|
-
return ((
|
|
13693
|
+
return ((_a = instance == null ? void 0 : instance.getComponent) == null ? void 0 : _a.call(instance, "devtools-ui")) || {
|
|
13433
13694
|
info: console.log.bind(console, "[JSG-DEVTOOLS]"),
|
|
13434
13695
|
warn: console.warn.bind(console, "[JSG-DEVTOOLS]"),
|
|
13435
13696
|
error: console.error.bind(console, "[JSG-DEVTOOLS]")
|
|
@@ -13441,17 +13702,17 @@ function DevToolsPanel({ loggerControls, onUnmount }) {
|
|
|
13441
13702
|
const [components2, setComponents] = d([]);
|
|
13442
13703
|
const [loggerStats, setLoggerStats] = d({ total: 0 });
|
|
13443
13704
|
y(() => {
|
|
13444
|
-
var
|
|
13705
|
+
var _a, _b, _c, _d;
|
|
13445
13706
|
if (loggerControls) {
|
|
13446
|
-
const componentList = ((
|
|
13707
|
+
const componentList = ((_a = loggerControls.listComponents) == null ? void 0 : _a.call(loggerControls)) || [];
|
|
13447
13708
|
const devtoolsLogger = getDevToolsLogger$1();
|
|
13448
13709
|
devtoolsLogger.info("📋 Initial component list read", { componentCount: componentList.length, components: componentList });
|
|
13449
13710
|
setComponents(componentList);
|
|
13450
13711
|
const stats = ((_b = loggerControls.getStats) == null ? void 0 : _b.call(loggerControls)) || { total: 0 };
|
|
13451
13712
|
setLoggerStats(stats);
|
|
13452
13713
|
const unsubscribe = (_c = loggerControls.subscribe) == null ? void 0 : _c.call(loggerControls, (logEntry, allLogs) => {
|
|
13453
|
-
var
|
|
13454
|
-
const updatedStats = ((
|
|
13714
|
+
var _a2;
|
|
13715
|
+
const updatedStats = ((_a2 = loggerControls.getStats) == null ? void 0 : _a2.call(loggerControls)) || { total: 0 };
|
|
13455
13716
|
setLoggerStats(updatedStats);
|
|
13456
13717
|
});
|
|
13457
13718
|
const unsubscribeComponents = (_d = loggerControls.subscribeToComponents) == null ? void 0 : _d.call(loggerControls, (newComponents) => {
|
|
@@ -13464,8 +13725,8 @@ function DevToolsPanel({ loggerControls, onUnmount }) {
|
|
|
13464
13725
|
const devtoolsLogger2 = getDevToolsLogger$1();
|
|
13465
13726
|
devtoolsLogger2.warn("⚠️ subscribeToComponents not available, using timeout fallback");
|
|
13466
13727
|
timeoutId = setTimeout(() => {
|
|
13467
|
-
var
|
|
13468
|
-
const updated = ((
|
|
13728
|
+
var _a2;
|
|
13729
|
+
const updated = ((_a2 = loggerControls.listComponents) == null ? void 0 : _a2.call(loggerControls)) || [];
|
|
13469
13730
|
setComponents(updated);
|
|
13470
13731
|
}, 100);
|
|
13471
13732
|
} else {
|
|
@@ -13510,32 +13771,32 @@ function DevToolsPanel({ loggerControls, onUnmount }) {
|
|
|
13510
13771
|
}
|
|
13511
13772
|
};
|
|
13512
13773
|
const handleLevelChange = (componentName, newLevel) => {
|
|
13513
|
-
var
|
|
13514
|
-
(
|
|
13774
|
+
var _a;
|
|
13775
|
+
(_a = loggerControls.setLevel) == null ? void 0 : _a.call(loggerControls, componentName, newLevel);
|
|
13515
13776
|
const devtoolsLogger = getDevToolsLogger$1();
|
|
13516
13777
|
devtoolsLogger.info(`Changed ${componentName} level to: ${newLevel.toUpperCase()}`);
|
|
13517
13778
|
};
|
|
13518
13779
|
const handleGlobalDebug = () => {
|
|
13519
|
-
var
|
|
13520
|
-
(
|
|
13780
|
+
var _a;
|
|
13781
|
+
(_a = loggerControls.enableDebugMode) == null ? void 0 : _a.call(loggerControls);
|
|
13521
13782
|
const devtoolsLogger = getDevToolsLogger$1();
|
|
13522
13783
|
devtoolsLogger.info("Enabled debug mode for all components");
|
|
13523
13784
|
};
|
|
13524
13785
|
const handleGlobalTrace = () => {
|
|
13525
|
-
var
|
|
13526
|
-
(
|
|
13786
|
+
var _a;
|
|
13787
|
+
(_a = loggerControls.enableTraceMode) == null ? void 0 : _a.call(loggerControls);
|
|
13527
13788
|
const devtoolsLogger = getDevToolsLogger$1();
|
|
13528
13789
|
devtoolsLogger.info("Enabled trace mode for all components");
|
|
13529
13790
|
};
|
|
13530
13791
|
const handleReset = () => {
|
|
13531
|
-
var
|
|
13532
|
-
(
|
|
13792
|
+
var _a;
|
|
13793
|
+
(_a = loggerControls.reset) == null ? void 0 : _a.call(loggerControls);
|
|
13533
13794
|
const devtoolsLogger = getDevToolsLogger$1();
|
|
13534
13795
|
devtoolsLogger.info("Reset all settings to defaults");
|
|
13535
13796
|
};
|
|
13536
13797
|
const handleUnload = () => {
|
|
13537
|
-
var
|
|
13538
|
-
(
|
|
13798
|
+
var _a;
|
|
13799
|
+
(_a = loggerControls.disableDevPanel) == null ? void 0 : _a.call(loggerControls);
|
|
13539
13800
|
};
|
|
13540
13801
|
y(() => {
|
|
13541
13802
|
if (onUnmount) {
|
|
@@ -13838,16 +14099,16 @@ let panelInstance = null;
|
|
|
13838
14099
|
let isInitialized = false;
|
|
13839
14100
|
let closeHandler = null;
|
|
13840
14101
|
function initializePanel() {
|
|
13841
|
-
var
|
|
14102
|
+
var _a;
|
|
13842
14103
|
const devtoolsLogger = getDevToolsLogger();
|
|
13843
14104
|
const existingPanel = document.getElementById("jsg-devtools-panel");
|
|
13844
14105
|
if (existingPanel) {
|
|
13845
14106
|
devtoolsLogger.info("Panel already exists in DOM, returning existing instance");
|
|
13846
|
-
return ((
|
|
14107
|
+
return ((_a = window.JSG_DevTools) == null ? void 0 : _a.panelInstance) || {
|
|
13847
14108
|
container: existingPanel,
|
|
13848
14109
|
destroy: () => {
|
|
13849
|
-
var
|
|
13850
|
-
if ((
|
|
14110
|
+
var _a2;
|
|
14111
|
+
if ((_a2 = window.JSG_DevTools) == null ? void 0 : _a2.destroy) {
|
|
13851
14112
|
window.JSG_DevTools.destroy();
|
|
13852
14113
|
}
|
|
13853
14114
|
}
|