@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
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import {configManager} from '../config/config-manager.js';
|
|
7
|
+
import {toPinoRedactPaths} from '../utils/redaction.js';
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* Create server formatter (structured JSON)
|
|
@@ -39,7 +40,7 @@ export const getServerConfig = () => {
|
|
|
39
40
|
},
|
|
40
41
|
// Redact sensitive information in production (configurable)
|
|
41
42
|
redact: {
|
|
42
|
-
paths: redactConfig.paths
|
|
43
|
+
paths: toPinoRedactPaths(redactConfig.paths),
|
|
43
44
|
censor: redactConfig.censor || '[REDACTED]'
|
|
44
45
|
}
|
|
45
46
|
};
|
package/index.js
CHANGED
|
@@ -14,33 +14,9 @@ import {createServerFormatter, getServerConfig} from './formatters/server-format
|
|
|
14
14
|
import {LogStore} from './stores/log-store.js';
|
|
15
15
|
import {metaLog, metaWarn, metaError} from './utils/meta-logger.js';
|
|
16
16
|
import {buildLogEntry, dispatchToTransports} from './utils/transport-dispatcher.js';
|
|
17
|
+
import {redactValue} from './utils/redaction.js';
|
|
17
18
|
import packageJson from './package.json' with {type: 'json'};
|
|
18
19
|
|
|
19
|
-
// Check default config for devtools at module load time
|
|
20
|
-
// This allows bundlers to tree-shake if disabled
|
|
21
|
-
const defaultDevtoolsEnabled = defaultConfig.devtools?.enabled ?? false;
|
|
22
|
-
|
|
23
|
-
// Conditional static import - bundlers can eliminate if condition is false
|
|
24
|
-
// If defaultDevtoolsEnabled is false, bundler removes this entire block
|
|
25
|
-
// Use lazy initialization to avoid top-level await (which would make module async)
|
|
26
|
-
let devtoolsModule = null;
|
|
27
|
-
let devtoolsModulePromise = null;
|
|
28
|
-
if (defaultDevtoolsEnabled) {
|
|
29
|
-
metaLog('[JSG-LOGGER] DevTools module pre-loading started (default config enabled)');
|
|
30
|
-
// Start loading immediately but don't await (non-blocking)
|
|
31
|
-
// Bundlers can still analyze this static import for tree-shaking
|
|
32
|
-
devtoolsModulePromise = import('@crimsonsunset/jsg-logger/devtools').then(module => {
|
|
33
|
-
devtoolsModule = module;
|
|
34
|
-
metaLog('[JSG-LOGGER] DevTools module pre-loaded successfully');
|
|
35
|
-
return module;
|
|
36
|
-
}).catch(error => {
|
|
37
|
-
metaError('[JSG-LOGGER] DevTools module pre-load failed:', error);
|
|
38
|
-
return null;
|
|
39
|
-
});
|
|
40
|
-
} else {
|
|
41
|
-
metaLog('[JSG-LOGGER] DevTools module NOT pre-loaded (default config disabled - will tree-shake)');
|
|
42
|
-
}
|
|
43
|
-
|
|
44
20
|
/**
|
|
45
21
|
* Main Logger Class
|
|
46
22
|
* Manages logger instances and provides the public API
|
|
@@ -138,7 +114,8 @@ class JSGLogger {
|
|
|
138
114
|
if (isBrowser() && typeof window !== 'undefined' && window.JSG_Logger) {
|
|
139
115
|
// If enhanced loggers reference exists, use it (preferred)
|
|
140
116
|
if (window.__JSG_Logger_Enhanced__) {
|
|
141
|
-
|
|
117
|
+
JSGLogger._recoverFromGlobal();
|
|
118
|
+
return JSGLogger._enhancedLoggers;
|
|
142
119
|
}
|
|
143
120
|
// Fallback: reconstruct enhanced loggers from controls object
|
|
144
121
|
// This handles cases where __JSG_Logger_Enhanced__ wasn't set
|
|
@@ -157,7 +134,7 @@ class JSGLogger {
|
|
|
157
134
|
// Server equivalent: check globalThis for cross-module-instance singleton
|
|
158
135
|
// Same problem as browser cross-bundle, but for Node.js bundled server chunks
|
|
159
136
|
if (!isBrowser() && globalThis.__JSG_Logger_Enhanced__) {
|
|
160
|
-
JSGLogger.
|
|
137
|
+
JSGLogger._recoverFromGlobal();
|
|
161
138
|
return JSGLogger._enhancedLoggers;
|
|
162
139
|
}
|
|
163
140
|
|
|
@@ -464,18 +441,20 @@ class JSGLogger {
|
|
|
464
441
|
let data;
|
|
465
442
|
|
|
466
443
|
// Handle different argument patterns
|
|
444
|
+
const redactConfig = configManager.getRedactConfig();
|
|
445
|
+
|
|
467
446
|
if (typeof first === 'string') {
|
|
468
447
|
message = first;
|
|
469
448
|
if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null) {
|
|
470
|
-
data = args[0];
|
|
471
|
-
pinoLogger[level](
|
|
449
|
+
data = redactValue(args[0], redactConfig);
|
|
450
|
+
pinoLogger[level](data, message);
|
|
472
451
|
} else {
|
|
473
452
|
pinoLogger[level](message);
|
|
474
453
|
}
|
|
475
454
|
} else if (typeof first === 'object' && first !== null) {
|
|
476
|
-
data = first;
|
|
455
|
+
data = redactValue(first, redactConfig);
|
|
477
456
|
message = (args.length > 0 && typeof args[0] === 'string') ? args[0] : '';
|
|
478
|
-
pinoLogger[level](
|
|
457
|
+
pinoLogger[level](data, ...(message ? [message] : []));
|
|
479
458
|
} else {
|
|
480
459
|
pinoLogger[level](first, ...args);
|
|
481
460
|
}
|
|
@@ -538,6 +517,9 @@ class JSGLogger {
|
|
|
538
517
|
*/
|
|
539
518
|
getLoggerExports() {
|
|
540
519
|
return {
|
|
520
|
+
// Back-reference for cross-bundle singleton recovery
|
|
521
|
+
_jsgLoggerInstance: this,
|
|
522
|
+
|
|
541
523
|
// All component loggers
|
|
542
524
|
...this.loggers,
|
|
543
525
|
|
|
@@ -706,24 +688,15 @@ class JSGLogger {
|
|
|
706
688
|
}
|
|
707
689
|
|
|
708
690
|
try {
|
|
709
|
-
|
|
691
|
+
const {loadDevtoolsModule} = await import('./utils/devtools-loader.js');
|
|
692
|
+
const devtoolsModule = await loadDevtoolsModule();
|
|
693
|
+
|
|
710
694
|
if (!devtoolsModule) {
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
devtoolsLogger.info('Waiting for pre-loaded DevTools module...');
|
|
714
|
-
// Wait for pre-load to complete
|
|
715
|
-
devtoolsModule = await devtoolsModulePromise;
|
|
716
|
-
} else {
|
|
717
|
-
// Runtime config override: consumer enabled devtools but default was disabled
|
|
718
|
-
// Load on demand via dynamic import
|
|
719
|
-
devtoolsLogger.info('Loading DevTools module dynamically (runtime config override)...');
|
|
720
|
-
devtoolsModule = await import('@crimsonsunset/jsg-logger/devtools');
|
|
721
|
-
}
|
|
722
|
-
} else {
|
|
723
|
-
devtoolsLogger.info('Using pre-loaded DevTools module');
|
|
695
|
+
devtoolsLogger.warn('DevTools panel is not available in this build');
|
|
696
|
+
return null;
|
|
724
697
|
}
|
|
725
|
-
|
|
726
|
-
if (!devtoolsModule
|
|
698
|
+
|
|
699
|
+
if (!devtoolsModule.initializePanel) {
|
|
727
700
|
throw new Error('DevTools panel module missing initializePanel export');
|
|
728
701
|
}
|
|
729
702
|
|
|
@@ -797,18 +770,20 @@ class JSGLogger {
|
|
|
797
770
|
let data;
|
|
798
771
|
|
|
799
772
|
// Handle different argument patterns
|
|
773
|
+
const redactConfig = configManager.getRedactConfig();
|
|
774
|
+
|
|
800
775
|
if (typeof first === 'string') {
|
|
801
776
|
message = first;
|
|
802
777
|
logData.msg = first;
|
|
803
778
|
if (args.length === 1 && typeof args[0] === 'object') {
|
|
804
|
-
data = args[0];
|
|
805
|
-
Object.assign(logData,
|
|
779
|
+
data = redactValue(args[0], redactConfig);
|
|
780
|
+
Object.assign(logData, data);
|
|
806
781
|
} else if (args.length > 0) {
|
|
807
782
|
logData.args = args;
|
|
808
783
|
}
|
|
809
784
|
} else if (typeof first === 'object') {
|
|
810
|
-
data = first;
|
|
811
|
-
Object.assign(logData,
|
|
785
|
+
data = redactValue(first, redactConfig);
|
|
786
|
+
Object.assign(logData, data);
|
|
812
787
|
if (args.length > 0 && typeof args[0] === 'string') {
|
|
813
788
|
message = args[0];
|
|
814
789
|
logData.msg = args[0];
|
|
@@ -835,12 +810,20 @@ class JSGLogger {
|
|
|
835
810
|
}
|
|
836
811
|
|
|
837
812
|
/**
|
|
838
|
-
* Refresh all loggers with updated configuration
|
|
813
|
+
* Refresh all loggers with updated configuration.
|
|
814
|
+
* Uses the original createLogger (not the caching wrapper) so levels and
|
|
815
|
+
* formatters are rebuilt from the current config.
|
|
839
816
|
* @private
|
|
840
817
|
*/
|
|
841
818
|
refreshLoggers() {
|
|
842
|
-
|
|
843
|
-
|
|
819
|
+
const createLogger = this._createLoggerOriginal || this.createLogger.bind(this);
|
|
820
|
+
const components = new Set([
|
|
821
|
+
...configManager.getAvailableComponents(),
|
|
822
|
+
...Object.keys(this.loggers),
|
|
823
|
+
]);
|
|
824
|
+
|
|
825
|
+
components.forEach((componentName) => {
|
|
826
|
+
this.loggers[componentName] = createLogger(componentName);
|
|
844
827
|
});
|
|
845
828
|
}
|
|
846
829
|
|
|
@@ -996,6 +979,30 @@ class JSGLogger {
|
|
|
996
979
|
}
|
|
997
980
|
}
|
|
998
981
|
|
|
982
|
+
/**
|
|
983
|
+
* Restore static singleton refs from window/global enhanced loggers export.
|
|
984
|
+
* @returns {boolean} Whether a live instance was recovered
|
|
985
|
+
* @private
|
|
986
|
+
*/
|
|
987
|
+
static _recoverFromGlobal() {
|
|
988
|
+
const enhanced = (isBrowser() && typeof window !== 'undefined' && window.__JSG_Logger_Enhanced__)
|
|
989
|
+
|| (!isBrowser() && globalThis.__JSG_Logger_Enhanced__)
|
|
990
|
+
|| null;
|
|
991
|
+
|
|
992
|
+
if (!enhanced) {
|
|
993
|
+
return false;
|
|
994
|
+
}
|
|
995
|
+
|
|
996
|
+
JSGLogger._enhancedLoggers = enhanced;
|
|
997
|
+
|
|
998
|
+
if (enhanced._jsgLoggerInstance?.initialized) {
|
|
999
|
+
JSGLogger._instance = enhanced._jsgLoggerInstance;
|
|
1000
|
+
return true;
|
|
1001
|
+
}
|
|
1002
|
+
|
|
1003
|
+
return false;
|
|
1004
|
+
}
|
|
1005
|
+
|
|
999
1006
|
/**
|
|
1000
1007
|
* Update logger configuration post-initialization without reinitializing.
|
|
1001
1008
|
* Merges partialConfig into the current config without touching registered transports.
|
|
@@ -1006,6 +1013,8 @@ class JSGLogger {
|
|
|
1006
1013
|
* @returns {Object} Enhanced logger exports
|
|
1007
1014
|
*/
|
|
1008
1015
|
static configure(partialConfig = {}) {
|
|
1016
|
+
JSGLogger._recoverFromGlobal();
|
|
1017
|
+
|
|
1009
1018
|
if (!JSGLogger._instance?.initialized) {
|
|
1010
1019
|
return JSGLogger.getInstanceSync(partialConfig);
|
|
1011
1020
|
}
|
|
@@ -1017,6 +1026,15 @@ class JSGLogger {
|
|
|
1017
1026
|
JSGLogger._instance.transports = currentTransports;
|
|
1018
1027
|
JSGLogger._instance.refreshLoggers();
|
|
1019
1028
|
|
|
1029
|
+
if (isBrowser() && typeof window !== 'undefined' && JSGLogger._enhancedLoggers?.controls) {
|
|
1030
|
+
window.JSG_Logger = JSGLogger._enhancedLoggers.controls;
|
|
1031
|
+
window.__JSG_Logger_Enhanced__ = JSGLogger._enhancedLoggers;
|
|
1032
|
+
}
|
|
1033
|
+
|
|
1034
|
+
if (!isBrowser()) {
|
|
1035
|
+
globalThis.__JSG_Logger_Enhanced__ = JSGLogger._enhancedLoggers;
|
|
1036
|
+
}
|
|
1037
|
+
|
|
1020
1038
|
// Re-log init summary so consumers can see the applied project config.
|
|
1021
1039
|
// The module-level auto-init fires before configure() can run, meaning
|
|
1022
1040
|
// the one-time init log always shows defaults. This follow-up makes
|
|
@@ -1063,6 +1081,8 @@ class JSGLogger {
|
|
|
1063
1081
|
* @returns {Object|null} Controls object or null if singleton not initialized
|
|
1064
1082
|
*/
|
|
1065
1083
|
static getControls() {
|
|
1084
|
+
JSGLogger._recoverFromGlobal();
|
|
1085
|
+
|
|
1066
1086
|
// Check window.JSG_Logger first to ensure singleton works across bundles
|
|
1067
1087
|
// This is critical when devtools bundle loads separately from main app
|
|
1068
1088
|
if (isBrowser() && typeof window !== 'undefined' && window.JSG_Logger) {
|
package/package.json
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crimsonsunset/jsg-logger",
|
|
3
|
-
"version": "1.8.
|
|
3
|
+
"version": "1.8.8",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Multi-environment logger with smart detection, file-level overrides, and beautiful console formatting. Test it live: https://logger.joesangiorgio.com/",
|
|
6
6
|
"main": "index.js",
|
|
7
7
|
"types": "./index.d.ts",
|
|
8
|
+
"browser": {
|
|
9
|
+
"fs": false,
|
|
10
|
+
"fs/promises": false
|
|
11
|
+
},
|
|
8
12
|
"keywords": [
|
|
9
13
|
"logging",
|
|
10
14
|
"pino",
|
|
@@ -90,12 +94,14 @@
|
|
|
90
94
|
"dev": "vite",
|
|
91
95
|
"dev:devtools": "cd devtools && npm run dev",
|
|
92
96
|
"test:devtools": "vite",
|
|
93
|
-
"build:devtools": "cd devtools && npm run build",
|
|
97
|
+
"build:devtools": "cd devtools && npm ci && npm run build",
|
|
98
|
+
"prepublishOnly": "npm run build:devtools",
|
|
94
99
|
"build:devtools:netlify": "npm install && cd devtools && npm install && npm run build:netlify",
|
|
95
100
|
"preview:devtools": "cd devtools && npm run preview",
|
|
96
101
|
"release:patch": "node scripts/release.js patch",
|
|
97
102
|
"release:minor": "node scripts/release.js minor",
|
|
98
103
|
"release:major": "node scripts/release.js major",
|
|
104
|
+
"publish:ci": "node scripts/publish.js",
|
|
99
105
|
"publish:public": "npm publish --access public",
|
|
100
106
|
"publish:github": "npm publish --registry=https://npm.pkg.github.com/ --access public",
|
|
101
107
|
"check": "npm run test && echo 'Package ready for publishing'"
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lazy devtools panel loader — isolated from index.js so the devtools Vite
|
|
3
|
+
* build (which imports index.js) does not try to resolve panel-entry.js
|
|
4
|
+
* before it exists.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
let devtoolsModule = null;
|
|
8
|
+
let devtoolsModulePromise = null;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Load the devtools panel bundle on demand.
|
|
12
|
+
* @returns {Promise<Object|null>}
|
|
13
|
+
*/
|
|
14
|
+
export async function loadDevtoolsModule() {
|
|
15
|
+
if (devtoolsModule) {
|
|
16
|
+
return devtoolsModule;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
if (devtoolsModulePromise) {
|
|
20
|
+
return devtoolsModulePromise;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
if (process.env.NODE_ENV === 'production') {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const entry = ['./devtools', 'dist', 'panel-entry.js'].join('/');
|
|
28
|
+
|
|
29
|
+
devtoolsModulePromise = import(
|
|
30
|
+
/* webpackIgnore: true */
|
|
31
|
+
/* @vite-ignore */
|
|
32
|
+
entry
|
|
33
|
+
).then((module) => {
|
|
34
|
+
devtoolsModule = module;
|
|
35
|
+
return module;
|
|
36
|
+
}).catch((error) => {
|
|
37
|
+
console.error('[JSG-LOGGER] DevTools module load failed:', error);
|
|
38
|
+
devtoolsModulePromise = null;
|
|
39
|
+
return null;
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
return devtoolsModulePromise;
|
|
43
|
+
}
|
package/utils/redaction.js
CHANGED
|
@@ -3,6 +3,18 @@
|
|
|
3
3
|
* Used by browser, CLI, and server formatters
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* Pino/fast-redact only accepts dot-path keys — not JSG suffix wildcards like *key.
|
|
8
|
+
* Wildcard rules are applied via redactValue() in formatters and the pino wrapper.
|
|
9
|
+
*
|
|
10
|
+
* @param {string[]} paths - Redaction path patterns from config
|
|
11
|
+
* @returns {string[]} Paths safe to pass to pino's native redact option
|
|
12
|
+
*/
|
|
13
|
+
export function toPinoRedactPaths(paths) {
|
|
14
|
+
const exact = paths.filter((path) => !path.includes('*'));
|
|
15
|
+
return exact.length > 0 ? exact : ['password', 'token'];
|
|
16
|
+
}
|
|
17
|
+
|
|
6
18
|
/**
|
|
7
19
|
* Check if a key should be redacted based on patterns
|
|
8
20
|
* @param {string} key - Key to check
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
const __viteBrowserExternal = {};
|
|
2
|
-
export {
|
|
3
|
-
__viteBrowserExternal as default
|
|
4
|
-
};
|
|
5
|
-
//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js","sources":["__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js"],"sourcesContent":["const __viteBrowserExternal = {};\nexport {\n __viteBrowserExternal as default\n};\n//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map\n"],"names":[],"mappings":"AAAK,MAAC,wBAAwB,CAAA;"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
const __viteBrowserExternal = {};
|
|
2
|
-
export {
|
|
3
|
-
__viteBrowserExternal as default
|
|
4
|
-
};
|
|
5
|
-
//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js","sources":["__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js"],"sourcesContent":["const __viteBrowserExternal = {};\nexport {\n __viteBrowserExternal as default\n};\n//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map\n"],"names":[],"mappings":"AAAK,MAAC,wBAAwB,CAAA;"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
const __viteBrowserExternal = {};
|
|
2
|
-
export {
|
|
3
|
-
__viteBrowserExternal as default
|
|
4
|
-
};
|
|
5
|
-
//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js","sources":["__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js"],"sourcesContent":["const __viteBrowserExternal = {};\nexport {\n __viteBrowserExternal as default\n};\n//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map\n"],"names":[],"mappings":"AAAK,MAAC,wBAAwB,CAAA;"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
const __viteBrowserExternal = {};
|
|
2
|
-
export {
|
|
3
|
-
__viteBrowserExternal as default
|
|
4
|
-
};
|
|
5
|
-
//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js","sources":["__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js"],"sourcesContent":["const __viteBrowserExternal = {};\nexport {\n __viteBrowserExternal as default\n};\n//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map\n"],"names":[],"mappings":"AAAK,MAAC,wBAAwB,CAAA;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js","sources":["__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js"],"sourcesContent":["const __viteBrowserExternal = {};\nexport {\n __viteBrowserExternal as default\n};\n//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map\n"],"names":[],"mappings":"AAAK,MAAC,wBAAwB,CAAA;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js","sources":["__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js"],"sourcesContent":["const __viteBrowserExternal = {};\nexport {\n __viteBrowserExternal as default\n};\n//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map\n"],"names":[],"mappings":"AAAK,MAAC,wBAAwB,CAAA;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js","sources":["__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js"],"sourcesContent":["const __viteBrowserExternal = {};\nexport {\n __viteBrowserExternal as default\n};\n//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map\n"],"names":[],"mappings":"AAAK,MAAC,wBAAwB,CAAA;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js","sources":["__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js"],"sourcesContent":["const __viteBrowserExternal = {};\nexport {\n __viteBrowserExternal as default\n};\n//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map\n"],"names":[],"mappings":"AAAK,MAAC,wBAAwB,CAAA;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js","sources":["__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js"],"sourcesContent":["const __viteBrowserExternal = {};\nexport {\n __viteBrowserExternal as default\n};\n//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map\n"],"names":[],"mappings":"AAAK,MAAC,wBAAwB,CAAA;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js","sources":["__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js"],"sourcesContent":["const __viteBrowserExternal = {};\nexport {\n __viteBrowserExternal as default\n};\n//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map\n"],"names":[],"mappings":"AAAK,MAAC,wBAAwB,CAAA;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js","sources":["__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js"],"sourcesContent":["const __viteBrowserExternal = {};\nexport {\n __viteBrowserExternal as default\n};\n//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map\n"],"names":[],"mappings":"AAAK,MAAC,wBAAwB,CAAA;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js","sources":["__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js"],"sourcesContent":["const __viteBrowserExternal = {};\nexport {\n __viteBrowserExternal as default\n};\n//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map\n"],"names":[],"mappings":"AAAK,MAAC,wBAAwB,CAAA;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js","sources":["__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js"],"sourcesContent":["const __viteBrowserExternal = {};\nexport {\n __viteBrowserExternal as default\n};\n//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map\n"],"names":[],"mappings":"AAAK,MAAC,wBAAwB,CAAA;"}
|
package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js","sources":["__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js"],"sourcesContent":["const __viteBrowserExternal = {};\nexport {\n __viteBrowserExternal as default\n};\n//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map\n"],"names":[],"mappings":"AAAK,MAAC,wBAAwB,CAAA;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js","sources":["__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js"],"sourcesContent":["const __viteBrowserExternal = {};\nexport {\n __viteBrowserExternal as default\n};\n//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map\n"],"names":[],"mappings":"AAAK,MAAC,wBAAwB,CAAA;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js","sources":["__vite-browser-external-2Ng8QIWW-2Ng8QIWW.js"],"sourcesContent":["const __viteBrowserExternal = {};\nexport {\n __viteBrowserExternal as default\n};\n//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW.js.map\n"],"names":[],"mappings":"AAAK,MAAC,wBAAwB,CAAA;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__vite-browser-external-2Ng8QIWW-2Ng8QIWW.js","sources":["__vite-browser-external-2Ng8QIWW.js"],"sourcesContent":["const __viteBrowserExternal = {};\nexport {\n __viteBrowserExternal as default\n};\n//# sourceMappingURL=__vite-browser-external-2Ng8QIWW.js.map\n"],"names":[],"mappings":"AAAK,MAAC,wBAAwB,CAAA;"}
|